Jump to content

shlainn

Members
  • Posts

    246
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

Everything posted by shlainn

  1. YuruY, пожалуйста пишите на английском языке. X-Savior вас не понимает. И это вообще не место для ваших личных проблем ------------ YuruY, please write in english if possible, X-Savior obviously does not understand you. And, for the both of you, gentlemen, this is not the place for your personal problems!
  2. I believe that the idea was to drop the dll and compile SD2 directly into the core. I think we both know that this was a political move as much as a technical one, and, I agree with you, the current system is working and there is no big technical reason to change how it works. As to "talking to SD2 about it" - see "politics". I will not comment on that further - you know the issues as well as everyone else here. P.S.: If everytime someone proclaimed that mangos is dead those people would donate 1€/$/Gold, the hosting costs would be paid for the next 10 years already…
  3. I'm not happy when reading this. ( I apologize if you felt personally offended by my statement. We have 1000 members in this forum right now. If less then 1% of these (not counting people with "Developer" under their names) contribute, I think it is fairly accurate to say that the input from the community is limited. If you would post what you had in mind it could be discussed by all of us - more brains = more input. We should try to be as independent as possible from individuals as single-point-of-failure. That is the reason why e.g. the database (one and zero) is developed in git directly and not as updatepacks. Why, I knew. But that is beside the point, I guess. The main problem is not that people left the community - but that knowledge has left the community, and that is much harder to replace. I can teach anyone enough programming in a month to start hacking on mangos or fixing the db or whatever (that is, provided you are willing to learn and ask questions). But understanding some of the systems in MaNGOS (spells, or the map cell system come to mind) and their interactions can literally take ages, and almost no one is left who actually understands them still. I do not mean to say that you will not get help if you venture into those areas - just that it will be less... helpful. I cannot speak for the scripts, as I was not involved into that. I assume this could have been handled better, politically. My personal opinion: If something is free and open-source, anyone can do with it as they please. People fork projects all the time. As long as the commit authors are preserved I do not think anyone has reason to complain. Anyone can check the commits in the repo and see that the actual work was done by the SD2 team and just pulled by MaNGOS. Aside: Funny enough, all cries for help from the devs are ignored, but as soon as someone from the community expresses disappointment in commit frequecies, we have more activity in this thread alone than in all of the forum over the last week
  4. Political statement: Our devs are all working very hard on very exciting features for all of you! Watch this space for more updates! Reality: Too few devs. Too much to do. No help from the community. Low motivation. Updates will come when one of these issues changes.
  5. Aside: I would suggest using the GitHub Wiki at https://github.com/mangos-one/database/wiki - UDBwiki seemed a bit unreliable lately. On Topic: Having a proper documentation somewhere online and up-to-date would certainly make things easier for developers - and people who aspire to become developers. Much of the stuff can be copied from WoTLK anyway.
  6. http://udbwiki.no-ip.org/index.php/Creature_movement Please post some SQL for us to debug.
  7. Nice guide. Typo: hithub --> github (2nd code box) Suggestion: add howtos to create extract necessary materials (dbcs + *maps) Suggestion2: add howtos to applying the database.
  8. +1 maybe we should also rename mangos/mangos to mangos/server then?
  9. Sart13, apologies for the irony. Okay, I have another observation here: AttributesEx & 0x2000 is in the following spells:
  10. Ah, research... Now, let's see: SUMMON_PROP_GROUP_CONTROLLABLE (3) is set in SummonProperties.dbc for Effects 65, 427, 428, and 1301 Effect 65 is used for Spells Effect 427 is used for Spells Effect 428 is used for Spells Effect 1301 is used for Spell Now, with the exception of Raise Ally, they all have AttributesEx & 0x2000... Will check more later
  11. It's a learning process for us all But very kind of you to look down on us blessing our humble efforts - it makes this feel much more effective... So, in mangosR2 type 65 is handled customly in EffectSummonPossessed. The possessing is done by casting Spell 530 (Charm (Possess)) on the Eye once it is summoned. I assume this will yield the correct result. Now my question would be, if this is Blizzlike (aka, are there sniffs for this?) or if it "just works"...
  12. So, this thing got me a bit interested. Let's see what one can find out about this. All Data are from UDB or DBCs directly We are talking about quest 12641 - "Death Comes From On High" (http://udbtrac.dyndns.org/index.php?quest=12641). In this quest it is necessary to use GO 191609 which is a Type 10 GO (Goober), with Spell 51888 as data10. This spell (in Spell.dbc) goes by the name of "Summon Eye of Acherus". It has 1 effect of type FORCE_CAST (140) with ImplicitTargetA TARGET_DUELVSPLAYER(25)(The description seems wrong) and EffectTriggerSpell 51852. Spell 51852 is "The Eye of Acherus". It has 3 effects. Twice APPLY_AURA (6) and once SUMMON (28). The auras applied are 260 and 261 to the player which appears to be SCREEN_EFFECT and PHASE. SCREEN_EFFECT seems to be client side only, so that should work fine. PHASE has some handling in place. Now, for the summon, it has ImplicitTargetA TABLE_X_Y_Z_COORDINATES (17) and MiscValues 28511 (Creature: The Eye of Acherus) and 65 (from SummonProperties.dbc) SummonProperties 65 has all zeros except for "Group" which is CONTROLLABLE (3). For those curious, this is handled in game/SpellEffects.cpp line 4695++ and calls DoSummonGuardian(). So I guess this would be a good place to start looking for what is wrong... I will try to continue this later, hope it helps somewhat...
  13. Someone please correct me if I am wrong, but isn't "Hooks for Scripting Library for spells" moving the "tons of custom code in dummy, proc aura handlers which looks not nice" from core to the scripting library, which is also not nice? sart13, I happen to agree with you that the first step to fix a problem is to exactly define it. So, if you can find some time, could you point out in detail the limitations of the current Pet system somewhere? I, personally, would greatly appreciate this. Shlainn
  14. This says most of it. Other then that, you need TBC 2.4.3 for mangos one. You are using mangos one, right? Oh wait, you are using a custom repack for which you posted a link (which is not allowed)... Well, I guess you will need to talk to the guys who made the repack... Or compile mangos yourself
  15. Hey X, can you post a list of things to be done (or issues, or whatever you want to call it) on TBC-DB? This may lower the entry barrier for new users who don't have a big enough picture to identify issues... Shlainn
  16. What's the specs of your computer? A full build takes 15 min 23 sec on my Intel® Core2 6700 @ 2.66GHz with 2GB Ram (determined by make clean && time make)
  17. @ensiferum: this is off topic - go over to the proper forums. @rhaziel: Try a specific question. For general ideas on the structure on the system check my post above. Let me walk you through how I would go about figuring out how this system works. This may or may not work for you. 1) Compile MaNGOS 2) Compile PseuWoW 3) Configure PseuWoW for the maximum debug output possible Specifically this means in PseuWoW.conf: 4) Now start up PseuWow and see what happens... OMG! It's full of crap!!! ...No, seriously: An average PseuWoW login produces about 400 lines of logfile. Obviously in the beginning you have some startup messages which say that some script files are loaded, some config is read, some databases are loaded, etc. If you would like to know specifics on how this is done, do a search over all files using some of the log output. For example if you would like to know how the databases are loaded, run "Loading databases" in your search, and you will find out that databases are loaded somewhere in src/Client/DefScriptInterface.cpp. Then it says "Init complete. PseuInstance: Initialized and running" - The fun starts. PseuWoW connects to the server... I have to admit, that the realm socket code does not produce very nice output. But still. Every single line of log output can be found in the source, so you can follow the code execution. I will go through the next 5 lines: This line is logged in src/Client/Realm/RealmSocket.cpp RealmSocket::OnConnect(). When does this function get called? After some more searching we find out that RealmSocket is derived from TcpSocket (see src/Client/Realm/RealmSocket.h) and TcpSocket calls OnConnect() when a connection is made (see src/shared/Network/TcpSocket.cpp). Nice one! This line comes from src/Client/Realm/RealmSession.cpp RealmSession::SendLogonChallenge() which gets called from src/Client/PseuWoW.cpp PseuInstance::ConnectToRealm() which is called from PseuInstance::Update() which in turn gets called from PseuInstance::Run(). As you will also find out, Run() contains the main program loop. So after reading through some or all of these functions, you will see that SendLogonChallenge() puts together a data packet containing all kinds of logon data (I believe some of that is a bit hacky, now that I look at it...) (Client Version, account name, etc) and sends it off to the server. This is the first contact. So what does the server do with it? (At this point you should take a look at server startup logs using the same strategy as before) The server (in this case realmd) gets this AUTH_LOGON_CHALLENGE packet. Searching mangos source for that string reveals that src/realmd/AuthSocket.cpp handles it in AuthSocket::_HandleLogonChallenge. Reading through the code (and ignoring or looking up bits you don't understand right away) you will see that realmd checks if the packet is okay, if the account exists, is not banned, suspended, or any other bad thing and if it is not, it calculates some lovely bignumbers which are then used as logon challenge to the client. By following the pkt object throughout the function you can see the structure and order of data in the packet, just as before in PseuWoW. In the end, the packet is sent back to the client, which then says: By now you will not have any difficulties to find out that this is called from src/Client/Realm/RealmSocket.cpp RealmSocket::OnRead(). It receives all data on the socket, and adds it to a packet queue for processing. This message is reported from src/Client/Realm/RealmSession.cpp RealmSession::_HandleLogonChallenge(). How the hell did we get from the packet queue to this function? Let's see. RealmSession::_GetAuthHandlerTable() has a mention of _HandleLogonChallenge() in a table of some sorts. _GetAuthHandlerTable() gets called from RealmSession::Update() and returns a pointer to the table. A bit into the Update() function (which presumably gets called from the main loop, I leave it to you to verify this) you will find that a for loop goes through the table and checks if the Opcode of the packet matches the one in the table. If it does, a magic called "function pointers" is used to call the associated handler function, which we already know is _HandleLogonChallenge(). This line is also from _HandleLogonChallenge(), a bit further down. As you will have found out at this point, PseuWoW has checked if there were any errors, and found none. So now it will extract the data from the packet, calculate login proof data and send it off again, while outputting copious amounts of debug information. I hope this starts your learning process. What you will see all the time it this ping-pong game between the server and the client throwing packets at each other in response to something happening on either side (movement, attacks, cooldowns, etc) and replying to those packets. I am not sure what you mean by "pinning this thing down", but I am very certain that only a handful of people on this planet have a complete in-depth understanding of every bit of code in the MaNGOS repository. It is also not necessary to understand the underlying network code to fix something in the spell handling (just as an example). So I would recommend you not to get lost in implementation details before you have the big picture. And by "big picture" I refer to the three classic things every program needs to do: main() { Initialize(); while(running) DoStuff(); CleanUp(); } Hope it helps, apologies for the rather lengthy post... Shlainn
  18. And there are still idealistic people around who believe that the ultimate purpose of MaNGOS still is learning how to create a full-blown MMORPG. Any such endeavor would at some point require a client... like Pseuwow (funny how the clone count on my repo has gone up recently )
  19. Hi rhaziel, while MaNGOS looks big and scary, it actually all boils down to a couple of files. I suggest you start at understanding WHAT MaNGOS is trying to emulate - in order of appearance: Realm Login (https://github.com/mangos/mangos/blob/master/src/realmd/AuthSocket.cpp) World Login (https://github.com/mangos/mangos/blob/master/src/game/WorldSocket.cpp) Packet Handling (https://github.com/mangos/mangos/blob/master/src/game/Opcodes.cpp) Object system (https://github.com/mangos/mangos/blob/master/src/game/Object.h) Map/Grid system (https://github.com/mangos/mangos/blob/master/src/game/GridMap.cpp) While this list is probably very incomplete, it should be enough to jumpstart your MaNGOS adventure. In parallel, it may help you to look at PseuWoW (http://mangosclient.org)(yes, shameless self-promo), which attempts to emulate the client part. If you have any specific questions, you should ask them in the appropriate boards, and they may be answered... at some point
  20. KUNG FU NECRO BUMP! We are still here! And right now pretty alive and kicking! Over the past weeks I have been working on making PseuWoW compatible to Mangos Zero, Mangos One and Mangos (Two) all in one client! It has been interesting at some points, but ... it HAS WORKED. I can confirm compatibility (as in: as limited as before, but now times THREE) for all official versions of MaNGOS - the fearless may check it out at https://github.com/shlainn/pseuwow/ Shlainn
  21. Hi all, as you may (or may not) be aware, over the past couple of days I have been busy making PseuWoW (www.mangosclient.org) compatible to MaNGOS Zero. And now I have added MaNGOS One to the mix. And once again, I just successfully walked a test character from Northshire Abbey to Goldshire in PseuWoW on my One server... For those willing to try the clumsy, horribly documented, unstable and crashy code, you can find it at https://github.com/shlainn/pseuwow/. At some point I may even be persuaded to update the installation instructions... USE THE allinone BRANCH as this is the branch where I am working on cross-version compatibility for the Client. I have only tested this on Linux, so there will probably be horrible problems on Windows. If you are interested to help the porting effort, feel free to drop me a message here, on github or on www.mangosclient.org. NO BUGREPORTS HERE PLEASE -> GO TO www.mangosclient.org Shlainn
  22. Hi all, as you may (or may not) be aware, over the past couple of days I have been busy making PseuWoW (www.mangosclient.org) compatible to MaNGOS Zero. It is not fully there yet (actually it has WAYS to go), but I just successfully walked a test character (a very brave soul, indeed) from Northshire Abby to Goldshire in PseuWoW on my Zero server... For those willing to try the clumsy, horribly documented, unstable and crashy code, you can find it at https://github.com/shlainn/pseuwow/. At some point I may even be persuaded to update the installation instructions... USE THE allinone BRANCH as this is the branch where I am working on cross-version compatibility for the Client. I have only tested this on Linux, so there will probably be horrible problems on Windows. If you are interested to help the porting effort, feel free to drop me a message here, on github or on www.mangosclient.org. NO BUGREPORTS HERE PLEASE -> GO TO www.mangosclient.org Shlainn
  23. @Schmoo: How hard would it be to create a kind of chatbot to whom errors can be reported and who will ask (configurable) followup questions?
  24. Now that I have actually read your post and not just skimmed the surface I have some technical thoughts: * types - status combinations If you want to combine it with a web tracker, obviously the status combinations should be identical... * ReportTo - must agree on some sort of way to send datas (format) * Interaction to Bugtracker/ Website - I don't know how to handle such things If the tracker is off-site (like the UDB quest tracker) mangos could send data via a HTTP connection. This is not difficult (except for the fact that MaNGOS would need some more libs to handle it). It is also possible to put the reports in a database table and use a separate reporting tool which could run every few hours/days to send the database content to the tracker. A unified data format (JSON, XML, ...) would be a prerequisite for that. If the tracker has access to the same database as mangos, the database table solution fully applies. * Feedback from our site hosters, if there would be possibilities to create wrappers to ie forward to github issues or other trackers I see no problem to create a script for the UDB quest tracker that could receive and incorporate reports from anywhere, as long as we stick to a parseable format.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use