Jump to content

H0zen

Senior getMaNGOS Developer
  • Content Count

    112
  • Donations

    0.00 GBP 
  • Joined

  • Last visited

  • Days Won

    10

Everything posted by H0zen

  1. Please go to Player.cpp file and change lines 1920-1926 into if (m_regenTimer != 0) return; Rebuild and send us the feedback
  2. Edit mangosd.conf and change the console log level to 0. For files change it to 1. Restart mangosd after editing.
  3. Sorry for the incovenience! Based on your report, we identified a nasty bug, which has been now fixed. Please update your sources with the latest version from https://github.com/mangostwo/server and rebuild. Thank you for your feedback!
  4. Your client does nothing because you didn't handle the connection step right. When the client is successfuly authenticated by the realm daemon, it is redirected to mangosd daemon and the first step, of course , is to establish a connection via TCP socket. When the connection is established, the server will send SMSG_AUTH_CHALLENGE packet. THIS IS THE FIRST PACKET YOU HAVE TO SEND AND IS MANDATORY!!! The client will respond to this packet with a CMSG_AUTH_SESSION packet, and this is where the miracle happens. The server has to handle this packet and has to create the so called session. If it succeeds, the server will send SMSG_AUTH_RESPONSE like yours. Because the intialization of Warden module is part of making the session, the server can send (but is not enforced to) various SMSG_WARDEN* packets, and this is what you already noticed. Hope this helps!
  5. All these issues comes from a wrong advice given in the mentioned install tutorial. All versions of MaNGOS have their own ACE integrated in the source code, so you don't need to mess with downloading and installing ACE separately. The guide says "Use External ACE libraries. Allows you to use the ACE libraries coming from your system. Untoggle this option only if you know what you are doing. " But this should read "Untoggle this option UNLESS you know what you're doing". So, the solution is to clear everything, and repeat the install and build process, BUT WITHOUT EXTERNAL ACE. You'll be amazed how smooth it'll compile and install.
  6. In mangosd.conf set LogFilter_AIAndMovegens = 1
  7. 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...
  8. Check mangosd.conf for parameter Expansion and set it to 2. Restart mangosd.
  9. 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.
  10. 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...
  11. 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.
  12. 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
  13. 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.
  14. 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!
  15. 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.
  16. 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
  17. 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.
  18. 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; }
  19. Go to mangosd.conf file and change LogLevel = 3 to LogLevel = 0 (or 1). This will diminish the verbosity of logs in console.
  20. It is not a table, it is a file in the source code. I suppose you compiled mangos.
  21. Go to line 40 in file src/game/MotionGenerators/WaypointMovementGenerator.cpp and comment it, or you can reduce the log level in mangosd.conf
  22. If you build playerbot module, the ahbot will not work. The reason is playerbot module also contains a buggy ahbot submodule, which interferes with the actual ahbot. So the ideea is simple: if you want ahbot, disable playerbots from building.
  23. Please go to Player.cpp file and change lines 1920-1926 into if (m_regenTimer != 0) return; Rebuild and send us the feedback
  24. Apply only the updates starting with Rel21_01_001_dbdocs_updates.sql (from Updates/Rel21/Rel20_to_BaseRel21_Updates)

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®
×
×
  • Create New...