Jump to content

H0zen

Senior getMaNGOS Developer
  • Content Count

    106
  • Donations

    0.00 GBP 
  • Joined

  • Last visited

  • Days Won

    9

H0zen last won the day on January 28

H0zen had the most liked content!

Community Reputation

21 Excellent

About H0zen

  • Rank
    getMaNGOS Developer
  • Birthday 10/27/1977

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. H0zen

    mangos zero Not able to rebuild

    In Solution explorer window (where you can see all the files from the project), right click on the INSTALL folder and you'll be able to see Build and Rebuild...
  2. Check mangosd.conf for parameter Expansion and set it to 2. Restart mangosd.
  3. H0zen

    UpdateFields: Type BYTES

    Imagine the object fields as an array of 32bit values. Let's call it "physical layout". Let's call the meaning of the fields "logical layout". There are 6 types of connections between physical layout and logical layout: 1:1 - 1(one) 32bit physical field means a 32bit logical field (ints and/or floats) - for example OBJECT_FIELD_TYPE 2:1 - 2(two) 32bit fields means a 64bit logical field (usually a GUID) - for example OBJECT_FIELD_GUID N:1 - N 32bit physical fields means a logical field - for example UNIT_FIELD_AURA is a logical field composed of an array of 56 integers. The N is specified as SIZE: N in comments 1:2 - 1(one) 32bit physical field means 2(two) 16bit logical fields, denotes as TWO-SHORT in comments (for example UNIT_TRAINING_POINTS field). In code you'll see defined the constants UNIT_TRAINING_POINTS_0 and UNIT_TRAINING_POINTS_1, which refers to the right most part and left most part of that physical field. 1:4 - 1(one) 32bit physical field means 4 (four) 8bit logical fields, denoted as BYTES in comments (for example UNIT_FIELD_BYTES_2). You can imagine these logical fields as an 4 byte array, indexed by 0. In code you'll see constants like UNIT_FIELD_BYTES_2_0, UNIT_FIELD_BYTES_2_1, etc, which simply refers to the corresponding byte at the index 0, 1, 2, 3 in that physical field. N:4N - a generalization of point e. N 32bit physical fields means a logical field composed of an array of 4*N bytes - for example UNIT_FIELD_AURAFLAGS has size 14, so it's a 56 8bit array field (each 8bit value is a flag for the corresponding 32bit value in array UNIT_FIELD_AURA referenced at point c) So, to recap, ALL physical fields are 32bit, i.e. 4bytes long, and their logical meanings are different sizes.
  4. H0zen

    update mask for SMSG_UPDATE_OBJECT

    Yes.
  5. H0zen

    Correct GUID sending via SMSG_UPDATE_OBJECT

    Where did you find that line? Please specify the file and line number, as I can't manage to find it anywhere in mangos one sources...
  6. H0zen

    update mask for SMSG_UPDATE_OBJECT

    No, you're not right! Updatemask is used as part of client/server dialog to send changes to the client. Everytime an object field CHANGES at the server side (from the last time it's update was sent), the corresponding updatemask bit is set to 1. When an object changes server side, the updatemask is sent along with the changed fields (and only those) to the client. After the object update is sent to the client, the updatemask resets all its bits to 0. When you first create an object first time, ALL FIELDS MUST BE INITIALIZED, so the updatemask bits are all 1 and you send to the client all object fields. There is no field left unintialized.
  7. UPDATETYPE_CREATE_OBJECT2 is sent for entities which have "position" in space (x, y,z coords), i.e gameobjects, corpses, creatures, players. The UPDATETYPE_CREATE_OBJECT is sent for entities without position, i.e items, bags
  8. H0zen

    LowGuid and HighGuid

    An ObjectGuid is a 64bit number which uniquely identifies an entity (Player, GameObject, Creature, etc.). Though the only requirement is to be unique, current implementations try to encode as much information as possible into this number, to limit external queries. For example, datas taken from sniffs revealed that the most significant bytes from the Blizzard's GUID identifies the entity type. These bytes were named High Guids (because of their position in the GUID). Low GUIDS are simply entries from databases, or counters, which can help figuring what exact entity is. Technically speaking these High and Low GUIDS have no importance, and it's up to you how you define the ObjectGuid, as long it is UNIQUE.
  9. H0zen

    SMSG_CHAR_ENUM returns error

    SMSG_CHAR_ENUM means an enumeration. The very first value you send (1 byte) is the number of characters (heroes) on the selected realm, not the number of characters in the name... After this field you start enumerating your characters, starting with their guid (8 bytes), name (null terminated), race, class, gender, skin, face etc. So, for example, if you have 5 heroes on the realm, you'll send 5 as the first byte and then 5 structures describing each of your hero, each one starting with the GUID. I cannot be more specific than this. Cheers!
  10. H0zen

    SMSG_ACCOUNT_DATA_TIMES

    This packet is sent, along with other SMSG_***, as a response to CMSG_PLAYER_LOGIN opcode sent by the client. You can see how is used for MaNGOS TBC here.
  11. H0zen

    mangos zero mangosd.conf

    Cmangos and MaNGOS are DIFFERENT projects. Here is the support site for the MaNGOS project, located at https://github.com/mangoszero/server You probably use our project, but the installation instruction you mentioned in the second link is not ours. Stick to the first one. Cheers
  12. H0zen

    maps/5301234.map isn't being extracted

    The issue is not in the extractors, it's in your Cata client, which is definitely not right. I strongly suggest you to find another one, avoiding in the future that source you mention in the link.
  13. H0zen

    Need help in fixing client connection

    Here is the relevant code from MaNGOS regarding encrypting / decrypting. Translating to Python should be trivial, and I guess you notice where is your issue. // encryption // _key = session key for (size_t t = 0; t < ENCRYPT_HEADER_SIZE; t++) { _send_i %= _key.size(); uint8 x = (data[t] ^ _key[_send_i]) + _send_j; ++_send_i; data[t] = _send_j = x; } // decryption // _key = session key for (size_t t = 0; t < DECRYPT_HEADER_SIZE; t++) { _recv_i %= _key.size(); uint8 x = (data[t] - _recv_j) ^ _key[_recv_i]; ++_recv_i; _recv_j = data[t]; data[t] = x; }
  14. H0zen

    Load Path SPAM every 4 secs

    Go to mangosd.conf file and change LogLevel = 3 to LogLevel = 0 (or 1). This will diminish the verbosity of logs in console.
  15. H0zen

    Load Path SPAM every 4 secs

    It is not a table, it is a file in the source code. I suppose you compiled mangos.

Contact Us

To contact us click here
You can also email us at [email protected]

Privacy Policy | Terms & Conditions

Repositories

The Link to the master list
of MaNGOS repositories:
Copyright © getMaNGOS. All rights Reserved.

This website is in no way associated with or endorsed by Blizzard Entertainment®
×