Jump to content

Spirited

Administrator
  • Posts

    527
  • Joined

  • Last visited

Everything posted by Spirited

  1. Yeah, looks like the animations aren't keeping up and it just kinda skips around like a player who's speed hacking. I'm not really aware of a solution, but I can at least double that suspicion. I wonder if you can apply other movement types to monsters that are normally granted to players via XP skills.
  2. I haven't, no. I've been unfortunately very busy. The most progress I've made on client mods / hacks is my Dragon project. I've been pretty swamped at work since then. I hope to return to project work again at some point.
  3. Hm, without going into a lot of detail about how I currently host this website... a lot of things would be broken here if there was file corruption. I'll keep an eye on this though.
  4. currently i have some problems in reading protobuff packets i can't get it have any ideas Well, protobuf is just a serializer. You don't need to worry about offsets, but you do need to worry about write / read order and data types. Is there something in specific that you need help understanding / reading about them?
  5. Oh! I don't either. I have it running in an Ubuntu 18.04 virtual machine. You could do the same if you find a linux version of Hopper. That, or you get the mac version and run MacOS in a VM... though I prefer running Linux. Yeah found the needed ConquerGameExe version but i need to study for reversing protobuf packets if you know any hint can you help Hm, I did add some pointers in the tutorial I linked you to. If you have any problems with those tips or thing it should cover something more, then just let me know.
  6. Yep, it should just be ready to go. Let me know if you run into any issues developing on it. It's my first time writing a client hook / injector.
  7. Interesting, which packets for example? I have every packet (except for MsgRegister, MsgConnect) handled through the map event queue, it ensures that any data being processed is in sync. Hm... I'd have to look into the complexity a bit more, but the idea was to have those events also queue on the channel. Things like monster movement, monster attacks, item usage, and item dropping/despawning would all be queued with player actions. If you were to take a multi-threaded approach, you could have a player thread and item despawn thread race to either pick up or despawn an item. Depending on how you handle those conditions, you could accidentally create a null object that crashes the server, or in the best case a poor player experience (where in the channel system, it would favor the player).
  8. Hm... so the original design of Comet was to prototype for another project. That other project utilizes a proxy and separate map servers. That's the reason why they're separated out. If you feel having a single processor is more beneficial for a single executable server, then it sounds reasonable. Though, I'm not sure if all actions can / need to be written to the map channels. For example, MsgRegister and MsgConnect. If you do combine it, then you might want to consider a backup for these types of packets.
  9. Yeah, Conquer Online's screen system is really rubbish. Drawing a line and spawning them in as far away from the player as possible to jump in does look the best with what's provided. So I think what you mentioned is totally fine. You could modify the client to expand its screen size... but idk how worth it that is.
  10. Hi Tyrantosaurus! That's a fun name. Your proposal is pretty solid, with the exception of using multiple channels per entity type. The reason why you potentially wouldn't want two channels for players and monsters is because that could cause locks on shared resources or race conditions during combat. But the idea of having a MapProcessor per map id is in-line with what I talked about in that article. An optimization might be to have multiple maps in a MapProcessor, but I wouldn't worry about that unless you start having problems with high parallelism. Good luck, and let me know if you want any additional feedback.
  11. Oh! I don't either. I have it running in an Ubuntu 18.04 virtual machine. You could do the same if you find a linux version of Hopper. That, or you get the mac version and run MacOS in a VM... though I prefer running Linux.
  12. Moved to the correct section. If you can't find the packet logs you're looking for, you can always try disassembling the mac client for packets:
  13. Spirited

    Heya

    Oh, uh... like a GW2 development section? I play GW2 as my primary MMORPG, but you'll have to educate me on what development stuff there is for it.
  14. Thanks for fixing those issues. Reopened!
  15. Hey there, sorry - I'm going to have to close this. Our rules do state that passwords can't be stored in plain text. As much as it was extremely wrong of Ultimation to post plain text account information from your server, it is proof that your server isn't safe for players. If you can show that your passwords and sensitive account data are being hashed, then I'd be glad to re-open this thread. Thanks.
  16. Oh, some of that stuff isn't effects. You can spawn terrain NPCs that act as those entities. Conquer Online usually uses terrain NPCs when they don't want players to be able to walk through the effect / entity. I haven't heard of the balloon effect, so it might be a floor effect? But you can also try terrain NPCs. I haven't added the packet yet to the wiki (I'll try doing that tonight if I remember). Here's the structure though: Offset 0: Length (UInt16) Offset 2: Packet Type (UInt16) = 1109 Offset 4: EntityID (UInt32) Offset 8: Max Health (Uint32) - optional Offset 12: Heath (UInt32) - optional Offset 16: X (UInt16) Offset 18: Y (UInt16) Offset 20: Mesh (UInt16) Offset 22: Flags (UInt16) Offset 26: Num Strings (Byte) = 1 Offset 27: String Length (Byte) Offset 28: Name (String) Which source are you using? It might already have the packet in it that you can call into. Same with effects, those should be MsgName (packet 1015). I haven't documented that either... but in the entity ID space, you'd instead put the X and Y coordinates as two individual UInt16s. And then I think the subtype for the packet is 9 for a map effect. A player effect spawned on the character is type 10. Feel free to post any questions you have about any of this. I know it's a lot for someone starting out. I'd be happy to clarify anything. Good luck and have fun! Edit: Also, if you need a beginner's guide, I set something up here: I'd appreciate your feedback on it if you have time - like what was helpful and what additional clarifications you need. Thanks!
  17. Oh, thank you. And okie dokie. You're welcome to contribute back to the open-source repo as well. I'll add a contributing.md and contributors.md file.
  18. Introduction Hi all! I wrote a little launcher and some hooks recently as practice (since I've never written client hooks before). I decided to make it open-source since I didn't find a lot of examples of QueueUserAPC DLL injection or some of the hooks I wrote using Detours. Enjoy, and give me feedback if you'd like. Thanks! About the project Dragon is Chimera's game client launcher. This open-source version of the project excludes the auto-patch / launcher application, but includes the command-line code injector and three modules: a flash module that loads the ActiveX Flash plugin from the client's directory, a connect module for redirecting socket connections for private servers, and a websites module for redirecting / blocking website popups. Dragon uses code injection to change the behavior of the game client. It starts a new process for the game client in a suspended state. Then, queues asynchronous procedure calls on the main thread of the client using QueueUserAPC. Once injected, the process is resumed. Modules injected into the client will load before the entry point of the client is called. Link You can find the project on my website here: https://spirited.io/project/dragon/
  19. Hi all, Please excuse some interruptions today. I'm aware of the problems, and my web host has informed me that there're some temporary outages with their web hosting and MySQL servers. They're working on it. Thanks for your patience and understanding! Spirited
  20. It's awesome my friend, nice job, I hope you got what you wanted. I'm a developer too but now I work just with Agile in Brazil. Thank you very much I did, thank you. It got me the job, but on the second try. And nice! We work in Agile at work as well. Feel free to introduce yourself fully in our Introductions section if you'd like. I need to get around to doing that as well... https://staging.cooldown.dev/forum/8-introductions/
  21. Well, if you're just talking about Comet, then you can change the version by targeting another branch: https://gitlab.com/spirited/comet/-/branches If you're talking about any other source, then it depends on how different the patches are. You might just need to modify the packet structures to match that version of the client, or you might need to change how packets are being encrypted. You can find both packets and encryption examples here: https://gitlab.com/conquer-online/wiki It's a bit advanced though if you're not comfortable with Conquer, so it might be easier to just start with another source that's running on that version already (at least just to start with if you really like another source better).
  22. Yep. It's "bare bones". It only logs you into the game client. Everything else is up to you to implement. World Conquer has a version of Comet that implements more systems, but yeah... Comet was just a 3-week programming challenge I did for some interviews. I've done very little to it since.
  23. It sounds like you might have your ports configured incorrectly. The account server runs on a port between 9958-9960 (depending on the patch). And then the game server always runs on 5816. Also, make sure you're connecting to the right realm. For example, if you configure your account server for Meteor, then you should connect to the Meteor server in the client.
  24. Yeah, unfortunately a lot of server projects died quickly in Conquer Online. They were mostly release-and-done projects that people would either privately develop on or later redistribute with modifications. The community is really late to the Git game. Something I did back in the day was start lower (like around patch 5187) and then work my way up. I know there're a few 5517 sources you can use as well (that's pretty close). I'll work on updating my server sources list today... I never got around to finishing it.
  25. Yep. After that point, you need to follow instructions in the server's readme. The realm you connect to needs to match whatever the account server is expecting. If you have an issue with the server, then I encourage you post whatever problems you're experiencing in a separate thread.
×
×
  • Create New...