Jump to content
SubSpace Forum Network

Qndre

Member
  • Posts

    21
  • Joined

  • Last visited

Everything posted by Qndre

  1. Downloading MSVCP70.dll is no problem but MSVCI70.dll is, you can't get it anywhere! _ Please give all the runtime needed for your program!
  2. Can you please tell me the client-side memory addresses to access settings and own energy? Wanna write an application to post these things into IRC (like some bots do for HL). Wanna be able to do this for every zone, that's why I don't write a bot plugin.
  3. If you want to log in to a VIE server (no ContinuumOnly) you still have to use VIE encryption and checksums. So neither the VIE encryption nor the checksums are a real problem because there is many source code out there. But the checksums are a real problem because of a strange way the server sends the seeds or even doesn't send them. So it's not difficult to generate checksums because I let Coconut's plugin (which is also used in Catid's clients) do much of the work for me (because I don't know very much about C). But the problem with the checksums is that the server sends you a seed in the 0x18 packet. But what if I don't recieve any 0x18 packet and the server suddently kicks me out because my software didn't send checksum? I also checked the reliable packets but there is definitally no 0x18 packet sent to my client but checksum is required.
  4. So it's encrypt(reliableheader + packet) not encrypt(reliableheader + encrypt(packet)) ? PS: Reliableheader is 00 03 + ACKID; encrypt() function lets first byte unencrypted if game and first two bytes if core.
  5. How do I encrypt a reliable packet? "packet" contains the UNENCRYPTED packet which should be sent reliable "reliableheader" contains the "0x0003 + ACKID" "encrypt(packet)" is a pseudo-function which gives the encrypted value of "packet" back reliableheader + packet --- OR --- encrypt(reliableheader) + packet --- OR --- encrypt(reliableheader + packet) --- OR --- reliableheader + encrypt(packet) --- OR --- encrypt(reliableheader + encrypt(packet))
  6. The program requires much DLL stuff. msvcp70.dll (found it on the internet, downloaded it) msvci70.dll (didn't find it anywhere) ... (don't know what it needs next if it has the MSVCI driver) You should include the required drivers in your package.
  7. I am doing a very similar project. It's called "Metaspace", maybe you've already heard of it. Can you please explain how you wrote the part, which recieves LVL map, decompresses it and turns it into an image and how you did transparent blitting (I wasn't able to execute but I am sure this software blits the ships on top of the map)? _ Please do NOT POST CODE because I DON'T WANT TO STEAL CODE but maybe you can explain how it works?
  8. The software needs the "MSVCP.DLL" driver file. Can't run it!
  9. My "translation" of the algorithm is NOT right because this cannot be directly translated from C to BASIC (Catid told me this). So forget about the basic version. It can't because a += b xor c does not mean a = (a + b) xor c but a = a + (b xor c) . That's because BASIC has other mathematical order than C has.
  10. I tried it out but it didn't work. I declared "part" and "csum" as long (key as integer) but I got an overflow. What should I do? And if I set a debug-point then I got a negative value in part.
  11. I re-wrote this code to BASIC (not C). Only useful for people who use it in their BASIC programs: part = 0 csum = 0 part = &hc98ed41f part = part + &h3e1bc or key part = part xor &h42435942 xor key part = part + &h1d895300 or key part = part xor &h6b5c4032 xor key part = part + &h467e44 or key part = part xor &h516c7eda xor key part = part + &h8b0c708b or key part = part xor &h6b3e3429 xor key part = part + &h560674c9 or key part = part xor &hf4e6b721 xor key part = part + &he90cc483 or key part = part xor &h80ece15a xor key part = part + &h728bce33 or key part = part xor &h1fc5d1e6 xor key part = part + &h8b0c518b or key part = part xor &h24f1a96e xor key part = part + &h30ae0c1 or key part = part xor &h8858741b xor key csum = csum + part part = &h9c15857d part = part + &h424448b or key part = part xor &hcd0455ee xor key part = part + &h727 or key part = part xor &h8d7f29cd xor key csum = csum + part part = &h824b9278 part = part + &h6590 or key part = part xor &h8e16169a xor key part = part + &h8b524914 or key part = part xor &h82dce03a xor key part = part + &hfa83d733 or key part = part xor &hb0955349 xor key part = part + &he8000003 or key part = part xor &h7cfe3604 xor key csum = csum + part part = &he3f8d2af part = part + &h2de85024 or key part = part xor &hbed0296b xor key part = part + &h587501f8 or key part = part xor &hada70f65 xor key csum = csum + part part = &hcb54d8a0 part = part + &hf000001 or key part = part xor &h330f19ff xor key part = part + &h909090c3 or key part = part xor &hd20f9f9f xor key part = part + &h53004add or key part = part xor &h5d81256b xor key part = part + &h8b004b65 or key part = part xor &ha5312749 xor key part = part + &hb8004b67 or key part = part xor &h8adf8fb1 xor key part = part + &h8901e283 or key part = part xor &h8ec94507 xor key part = part + &h89d23300 or key part = part xor &h1ff8e1dc xor key part = part + &h108a004a or key part = part xor &hc73d6304 xor key part = part + &h43d2d3 or key part = part xor &h6f78e4ff xor key csum = csum + part part = &h45c23f9 part = part + &h47d86097 or key part = part xor &h7cb588bd xor key part = part + &h9286 or key part = part xor &h21d700f8 xor key part = part + &hdf8e0fd9 or key part = part xor &h42796c9e xor key part = part + &h8b000003 or key part = part xor &h3ad32a21 xor key csum = csum + part part = &hb229a3d0 part = part + &h47d708 or key part = part xor &h10b0a91 xor key csum = csum + part part = &h466e55a7 part = part + &hc7880d8b or key part = part xor &h44ce7067 xor key part = part + &he4 or key part = part xor &h923a6d44 xor key part = part + &h640047d6 or key part = part xor &ha62d606c xor key part = part + &h2bd1f7ae or key part = part xor &h2f5621fb xor key part = part + &h8b0f74ff or key part = part xor &h2928b332 csum = csum + part part = &h62cf369a csum = csum + part Please check if that is right. PS: THIS IS STILL CATID'S CODE - I ONLY RE-WROTE IT FOR BASIC!!!
  12. And I said "No - you don't even need this".
  13. I first said it would be a constant because I didn't know that it uses a salt-key. After I knew that I suggested CatID that he could combine a constant (the instant checksum) with the key like that: 0xABCDEF xor key (if key is the key and 0xABCDEF is the checksum of the EXE) And this was my idea. So but it isn't that simple - it's a bit more complicated. But I suggested it this way: 0xABCDEF xor key So this way is wrong but I made the suggestion of a constant instead of bytes of the EXE file and not Ekted. He only wrote that you could generate a checksum without including "subspace.exe". _ That's right but I had the idea with a constant.
  14. I said it could be a constant combined with the key and you didn't need to load the EXE file. I didn't say the checksum was always the same but that a constant (which is always the same) could be combined with a key (which is not always the same) so the result isn't always the same but the checksum is before it's combined with the key (not after). That's what I wanted to say. I'm sorry if you couldn't get it out of my reply but that's the way it is.
  15. MGB Forum -nintendo64 You have an EXE-checksum, a MAP-checksum, etc. and the EXE-checksum is a fixed value as far as I know. It's combined with the server key. So what? I can also combine a fixed number with the server key so that it changes when the server key changes. _ So you see... Mr. Ekted said this would work without the EXE but not with constants. I said it would also work with constants ...
  16. Thanks for telling my name but it's still your algo, catid. I only had the idea.
  17. Yes but in Metal Gear at example you can never stand still. You always move a little bit. On real life you can stop. If you are running then friction doesn't slow you down, that's right. But if you are running then you have your trusters on and so you move. If you want to stop moving you switch your trusters off (in real life you stop moving your legs) and the friction between your feet and the ground (theoretically) slows you down. And the physics engine can't only implement friction but also gravity (especially useful in 3d games - not useful in subspace).
  18. I said: "It is just a suggestion"
  19. This is just a suggestion but what about friction for ships? If you don't engage the thrusters then you slow down. I know this isn not useful for space-games but there is something like "ground warfare" or "metal gear" where it would make sense. And what about WDL compatiblity so that you can write your own game-physics-engine in the powerful C-compatible programming language WDL? I've already written some WDL code which would be able to do that. It's a full physics- and movement-engine written originally with 3D compatiblity but also compatible to a 2D-game like subspace is: //////////////////////////////////////////// // Qndre's Game Physics Engine 1.0.1 // // Requires a running instance // // of the A4 engine // // and an A5 compatible WDL C interpreter // // (C) by Qndre // // // // This software is still in beta. // //////////////////////////////////////////// var intindicat = 0; var a_position[3]; var a_angle[3]; var friction; var force[3]; var temp[3]; var dist[3]; action move_me { while (1) { force.pan = -10 * key_force.x; my.skill14 = time*force.pan + max(1-time*0.7,0)*my.skill14; my.pan += time * my.skill14; vec_set(temp.x); temp.z -= 4000; trace_mode = ignore_me+ignore_sprites+ignore_models; result = trace(my.x,temp); if (result > 5) { force.x = 0; force.y = 0; force.z = -5; friction = 0.1; } else { force.x = 10 * key_force.y; force.y = 0; force.z = -0.5 * result; friction = 0.7; } my.skill11 = time*force.x + max(1-time*friction,0)*my.skill11; my.skill13 = time*force.z + max(1-time*friction,0)*my.skill13; dist.x = time * my.skill11; dist.y = 0; dist.z = time * my.skill13; move(my,dist,nullvector); move_view(); wait(1); } } Even if it's not possible (and I don't think anyone would implement this into his server) then it's a good suggestion, isn't it? <_<
  20. I am writing a spec-only Continuum client. But what do I have to give if the server wants a "time-stamp"? I know it's not the CMOS time. I'll have to give a 24-bit value.
  21. I just started using MERVbot's plugin "rampage". I added a few messages to the INI file. But what does this plugin do?? Does it count the kills of someone or the kills until he gets killed? _ _ To unterstand what I mean please let me give an example: _ _ Way-Of-Counting-1 _ A killed B (A has 1 kill) A killed C (A has 2 kills) A killed B (A has 3 kills) B killed A (A has 3 kills) A killed B (A has 4 kills) ... _ _ Way-Of-Counting-2 _ A killed B (A has 1 kill) A killed C (A has 2 kills) A killed B (A has 3 kills) B killed A (A has 0 kills) A killed B (A has 1 kill) ... _ _ Please respond soon.
×
×
  • Create New...