[Help] Player Proffesions menu

User Tag List

Results 1 to 10 of 10
  1. #1
    Endecs's Avatar Master Sergeant
    Reputation
    53
    Join Date
    Jan 2011
    Posts
    116
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    [Help] Player Proffesions

    Hey,

    in 4.0.3 I had a Function to read the Proffesions, but I think since 4.3 is the Line "Player_Skill_Info_1_1" Deleted.

    And now I see

    Code:
    PLAYER_PROFESSION_SKILL_LINE_1 = UnitField.UNIT_END + 0x1334,
    I tested it with the old Function, but it don't work.

    Code:
    dwIndex = 0;
    
    public object GetSkillId(i)
    {
    	dynamic PType = wow.ReadUInt(PlayerBase() + 0xC);
    	dynamic dwFieldInfo = wow.ReadUInt(PType + 0x1334 + (0x3 * 0x4 * i));
    	return dwFieldInfo & 0xffff;
    }
    public object GetSkillLevel(i)
    {
    	PlayerBase();
    	dynamic PType = wow.ReadUInt(PlayerBase() + 0xC);
    	dynamic dwFieldInfo = wow.ReadUInt(PType + 0x1334 + (0x3 * 0x4 * i) + 1 * 0x4);
    	return dwFieldInfo & 0xffff;
    }
    public object GetSkillIndex()
    {
    	dynamic PLAYER_MAX_SKILLS = 127;
    	for (i = 0; i <= PLAYER_MAX_SKILLS; i++) {
    		if (GetSkillId(i) == 356) {
    			return i;
    		}
    	}
    	return 0;
    }
    Anyone a Idea?

    greets,
    Endecs

    [Help] Player Proffesions
  2. #2
    TOM_RUS's Avatar Legendary
    Reputation
    914
    Join Date
    May 2008
    Posts
    699
    Thanks G/R
    0/52
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Yeah, they seems just split PLAYER_SKILL_INFO_1_1 into 6 separate fields:
    Code:
    PLAYER_SKILL_LINEID_0   = UNIT_END + 0x01E6, // Size: 64, Type: TWO_SHORT, Flags: PRIVATE
    PLAYER_SKILL_STEP_0     = UNIT_END + 0x0226, // Size: 64, Type: TWO_SHORT, Flags: PRIVATE
    PLAYER_SKILL_RANK_0     = UNIT_END + 0x0266, // Size: 64, Type: TWO_SHORT, Flags: PRIVATE
    PLAYER_SKILL_MAX_RANK_0 = UNIT_END + 0x02A6, // Size: 64, Type: TWO_SHORT, Flags: PRIVATE
    PLAYER_SKILL_MODIFIER_0 = UNIT_END + 0x02E6, // Size: 64, Type: TWO_SHORT, Flags: PRIVATE
    PLAYER_SKILL_TALENT_0   = UNIT_END + 0x0326, // Size: 64, Type: TWO_SHORT, Flags: PRIVATE
    Last edited by TOM_RUS; 01-19-2012 at 06:30 PM.

  3. #3
    miceiken's Avatar Contributor Authenticator enabled
    Reputation
    209
    Join Date
    Dec 2007
    Posts
    401
    Thanks G/R
    7/9
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    What's with returning "object" and using "dynamic" for all variables?

  4. #4
    Endecs's Avatar Master Sergeant
    Reputation
    53
    Join Date
    Jan 2011
    Posts
    116
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    First, thanks but I have a another Problem. :P


    I would read how mutch Items the Player have, so I tried first:


    If type = 1 Then
    Items += 1
    End If

    Type is from the Object Manager, so
    Code:
            1 -Items
            2 - Contains
            3 - NPC's
            4 - Players
            5 - GameObjects (Nodes etc)
            6 - DynamicObjects (Spells and stuff)
            7 - Corpses
    And on the end of the While he return
    "47" but I have only "20" Items in the Bag and "64" Slots in the Bag.

    So my Function from Object Manager is:

    Code:
    dynamic s_curMgr = wow.ReadUInt(Obj + 0x463c);
    dynamic curObj = wow.ReadUInt(s_curMgr + 0xc0);
    dynamic nextObj = 0;
    
    while (curObj != 0 && (curObj & 1) == 0) {
    	UInt64 type = wow.ReadUInt(curObj + 0x14);
    
    
    	if (type == 1) {
    		Items += 1;
    	}
    
    	nextObj = wow.ReadUInt(curObj + 0x3c);
    
    
    	if (nextObj == curObj) {
    		break; // might not be correct. Was : Exit While
    
    	} else {
    		curObj = nextObj;
    	}
    
    }

  5. #5
    boredevil's Avatar Active Member
    Reputation
    46
    Join Date
    Feb 2008
    Posts
    166
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    you got all kind of items int the object manager. bagitems, equipped, bankitems so it´s no wonder numbers don´t match

    at PLAYER_FIELD_INV_SLOT_HEAD begins an array of equipped item guids. these include your bags, but not your backpack.

    Code:
    enum eEquipLoc
    {
    	EQUIP_LOC_HEAD = 0,
    	EQUIP_LOC_NECK,
    	EQUIP_LOC_SHOULDER,
    	EQUIP_LOC_SHIRT,
    	EQUIP_LOC_CHEST,
    	EQUIP_LOC_WAIST,
    	EQUIP_LOC_LEGS,
    	EQUIP_LOC_FEET,
    	EQUIP_LOC_WRISTS,
    	EQUIP_LOC_HANDS,
    	EQUIP_LOC_FINGER_1,
    	EQUIP_LOC_FINGER_2,
    	EQUIP_LOC_TRINKET_1,
    	EQUIP_LOC_TRINKET_2,
    	EQUIP_LOC_BACK,
    	EQUIP_LOC_MAINHAND,
    	EQUIP_LOC_OFFHAND,
    	EQUIP_LOC_RANGED,
    	EQUIP_LOC_TABARD,
    	EQUIP_LOC_BAG_1,
    	EQUIP_LOC_BAG_2,
    	EQUIP_LOC_BAG_3,
    	EQUIP_LOC_BAG_4,
    	EQUIP_LOC_SLOTS_TOTAL
    };
    at PLAYER_FIELD_PACK_SLOT_1 is the beginning of your 16 backpack item guids.

    for container items:
    containers got CONTAINER_FIELD_NUM_SLOTS items beginning at CONTAINER_FIELD_SLOT_1
    or you could loop the mgr and check if ITEM_FIELD_CONTAINED == guidBag1,2,3,4

  6. #6
    Endecs's Avatar Master Sergeant
    Reputation
    53
    Join Date
    Jan 2011
    Posts
    116
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hmm, I wonder why

    Backpack = wow.ReadUInt64(BagGUID)
    Bag1 = wow.ReadUInt64(BagGUID + &H8)
    Bag2 = wow.ReadUInt64(BagGUID + &H10)
    Bag3 = wow.ReadUInt64(BagGUID + &H18)
    Bag4 = wow.ReadUInt64(BagGUID + &H20)

    Bag4 is "0"
    The other 4 are
    Code:
    4791830018303127709
    4791830018303127710
    4791830018303127712
    4791830018303127713
    And yes I have 4Bags and 1 Backpack

    /e: And maybe you know how I can read the Name from the Item?
    Last edited by Endecs; 01-22-2012 at 11:09 AM.

  7. #7
    boredevil's Avatar Active Member
    Reputation
    46
    Join Date
    Feb 2008
    Posts
    166
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    looks like you are reading the items in your backpack.

    you have to read from PLAYER_FIELD_INV_SLOT_HEAD + ( EQUIP_LOC_BAG_1 * sizeof(GUID ) to get the guid of your first container.

    at PLAYER_FIELD_PACK_SLOT_1 are just the 16 items in your backpack.

  8. #8
    Endecs's Avatar Master Sergeant
    Reputation
    53
    Join Date
    Jan 2011
    Posts
    116
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ehm what do you mean with * sizeof(GUID) ?
    Code:
    dynamic Descriptor = wow.ReadUInt(PlayerBase() + 0xc);
    dynamic InvField = wow.ReadUInt64(Descriptor + 0x700 + (19 * ?));
    Sry if I annoy you but I'm still on learning and testing :>

  9. #9
    miceiken's Avatar Contributor Authenticator enabled
    Reputation
    209
    Join Date
    Dec 2007
    Posts
    401
    Thanks G/R
    7/9
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    A GUID is 8 bytes long

    Code:
            public WoWItem GetEquippedItem(int slot)
            {
                var guid = GetDescriptor<ulong>((int)PlayerField.PLAYER_FIELD_INV_SLOT_HEAD + (slot * 8));
                var item = Items.FirstOrDefault(x => x.Guid == guid) ?? WoWItem.Invalid;
                return item;
            }
    Last edited by miceiken; 01-22-2012 at 02:05 PM.

  10. #10
    Endecs's Avatar Master Sergeant
    Reputation
    53
    Join Date
    Jan 2011
    Posts
    116
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by miceiken View Post
    A GUID is 8 bytes long

    Code:
            public WoWItem GetEquippedItem(int slot)
            {
                var guid = GetDescriptor<ulong>((int)PlayerField.PLAYER_FIELD_INV_SLOT_HEAD + (slot * 8));
                var item = Items.FirstOrDefault(x => x.Guid == guid) ?? WoWItem.Invalid;
                return item;
            }
    Ah omg, thanks mate.
    I'm ****ing brain afk.

Similar Threads

  1. [Help] Player Titles
    By Would in forum World of Warcraft Emulator Servers
    Replies: 0
    Last Post: 07-22-2008, 09:28 AM
  2. [Help] Players can't level weapon skills?
    By MisterEMU in forum World of Warcraft Emulator Servers
    Replies: 7
    Last Post: 05-21-2008, 01:15 PM
  3. [Help] Player names?
    By wraithZX in forum WoW Memory Editing
    Replies: 15
    Last Post: 05-13-2008, 07:45 AM
  4. [Help] Players cannot get 375 enchanting...
    By MisterEMU in forum World of Warcraft Emulator Servers
    Replies: 5
    Last Post: 04-27-2008, 11:02 AM
  5. [Help] player create info ids what do they all mean?
    By Masterkenshin in forum World of Warcraft Emulator Servers
    Replies: 7
    Last Post: 01-20-2008, 02:35 PM
All times are GMT -5. The time now is 04:38 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search