Jump to content

Spirited

Administrator
  • Posts

    497
  • Joined

  • Last visited

Reputation

46 Excellent

About Spirited

  • Birthday 12/18/1991

Personal Information

  • Location
    United States
  • Occupation
    Senior Software Engineer II
  • Pronouns
    he/him

Social Links

Recent Profile Visitors

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

  1. Good job! I haven't looked through the project too much, but it looks like you're following the hosted services factory pattern? Would be interested to know your thoughts around using it, and if you'd recommend it for C# game server development. I experimented a little with it for Comet's randomization service (BackgroundService using the host service pattern), but never implemented any game systems with it. Best of luck with your development!
  2. Huh! That's cool! I wonder if there's a higher level function that would allow you to target a role by their mesh ID or role ID... and then perform this detour for it. Would be pretty cool being able to apply some special modifier to a specific mob, like blinding someone / something tints them black or something (like they're in magical darkness). What are your current plans for using something like this?
  3. Wait, is it actually being used for items? I thought it was just included but unused.
  4. I don't think the server actually utilizes its MongoDB database...
  5. Woah! This is awesome!!
  6. I'm not familiar with what chat.dll does! What's the advantage of detouring these functions?
  7. Should be the same as modifying any other interface in the game now. It should be all DirectX. Optionally, I'd love it if someone open sourced a new login screen that replaces the flash one for flash-based clients.
  8. A good lesson that you should always understand what a script does before you run it.
  9. Can it be reproduced with another server project? I'm like 95% sure it's not a server problem.
  10. Welcome to our little community! I know a few people have dabbled in other game emulations / mods, but Conquer was my sandbox for like a decade and a half. Still is, but my work and house keep me away from hobby projects. I guess my house is my new hobby project. Lol Anyways, hope you have a fun here! I was a C# engineer in finance / business solutions as well. Haha
  11. Hm. To me, that sounds like a graphics driver issue. Maybe you can try using a different server as a test and see if the problem still exists. I think that's been reported in the past, and the solution was replacing the custom animated cursors in the game with your system cursors, or hooking WndProc to override the GCL_HCURSOR value to set the cursor in WNDCLASS to the current cursor. Haydz described that process and provided a pre-made hook here: https://www.elitepvpers.com/forum/co2-programming/3142253-release-cursorhook-old-client-cursor-blink-lag.html. It doesn't say much, but it does say he hooked SetCursor to achieve that.
  12. Hey! This seems like a cool thing to have up in GitHub, if you want to keep things updated / have people possibly contribute.
  13. I think the cipher for that is here: https://gitlab.com/conquer-online/wiki/-/snippets/1840786
  14. In some server projects, I've seen an exploit where you can log in as anyone (including GM and PM accounts). When logging in, the account server handles MsgAccount and authenticates the player. Then, it sends MsgConnectEx to the client with the IP address of the game server and an identifier. The client disconnects, connects to the game server, and sends MsgConnect with that identifier. In a lot of projects I've seen, that identifier is either the account ID or an incrementing counter. If it's an account ID, then a proxy can just fill that in with any account ID you want. If it's a counter, then a proxy can just keep sending MsgConnect requests until it steal's someone's new session when they try to log in. Fun stuff. Encrypting the identifier with one that uses cipher feedback is likely enough to patch that. If you wanna go above and beyond, then you can replace it with a cryptographically random access token that has a max life of a few seconds. It's a shame the identifier is max 64 bits though.
×
×
  • Create New...