You can; I've done it quite a bit to get NPCs to render a lot of different colors.
oh wait; via CNP? idk, but I'd have to guess it has something to do with CNP directly only being able to move 100 (binary) into the memory you'd have to check it out for yourself.
So, uh... does somebody know how to make more "Character Sprites"?, i just played Jenka's Nightmare recently and that was something i saw on the files, the third line, Curly whit the Pointed Glasses on. Something like that. How?
So, uh... does somebody know how to make more "Character Sprites"?, i just played Jenka's Nightmare recently and that was something i saw on the files, the third line, Curly whit the Pointed Glasses on. Something like that. How?
You can; I've done it quite a bit to get NPCs to render a lot of different colors.
oh wait; via CNP? idk, but I'd have to guess it has something to do with CNP directly only being able to move 100 (binary) into the memory you'd have to check it out for yourself.
I'm assuming level 2 or 3?
CPU Disasm
Address Command
0041F2DA CMP ECX,7
Basically that 7 is the fire rate. The lower it is, the faster it will repeat, and the faster it will shoot. Will affect both level 2 and 3.
Here's the whole checking algorithm; it's pretty inefficient though, IN TERMS OF SPACE
CPU Disasm
Address Command
0041F280 PUSH EBP
0041F281 MOV EBP,ESP
0041F283 PUSH 7
0041F285 CALL 00403C40
0041F28A ADD ESP,4
0041F28D CMP EAX,0F
0041F290 JLE SHORT 0041F297
0041F292 JMP 0041F579
I think the CMP EAX, 0F is the max bullets for level 2&3.
For level 1:
CPU Disasm
Address Command
0041EFD0 PUSH EBP
0041EFD1 MOV EBP,ESP
0041EFD3 PUSH 7
0041EFD5 CALL 00403C40
0041EFDA ADD ESP,4
0041EFDD CMP EAX,3
0041EFE0 JLE SHORT 0041EFE7
0041EFE2 JMP 0041F279
The CMP EAX,3 is the max bullets for level 1. Keep in mind it's a JLE, so the max for levels 2&3 is actually 0x10, and 4 for level 1.
EDIT: I'm assuming that you will also be pestering me about the ammo recharge rate?
CPU Disasm
Address Command
0041F54D MOV ECX,DWORD PTR DS:[4A555C]
0041F553 ADD ECX,1
0041F556 MOV DWORD PTR DS:[4A555C],ECX
0041F55C CMP DWORD PTR DS:[4A555C],1
0041F563 JLE SHORT 0041F579
0041F565 MOV DWORD PTR DS:[4A555C],0
0041F56F PUSH 1
0041F571 CALL 00402020
0041F576 ADD ESP,4
The ammo recharge rate is 1 per 2 frames, set by ADD ECX, 1 and CMP DWORD [4A555C], 1. For levels 2&3.
For level 1:
CPU Disasm
Address Command
0041F24F MOV EAX,DWORD PTR DS:[4A5558]
0041F254 ADD EAX,1
0041F257 MOV DWORD PTR DS:[4A5558],EAX
0041F25C CMP DWORD PTR DS:[4A5558],14
0041F263 JLE SHORT 0041F279
0041F265 MOV DWORD PTR DS:[4A5558],0
0041F26F PUSH 1
0041F271 CALL 00402020
0041F276 ADD ESP,4
That is set by CMP DWORD [4A5558], 14
[QUOTE="zxin, post: 217496, member: 7232"[QUOTE="Thomas Xin, post: 217493, member: 7964"EDIT: I'm assuming that you will also be pestering me about the ammo recharge rate?[/QUOTE]Actually, no--thanks for telling me anyway,--but how do I make the max bullets > F? I tried overwriting the JLE part (even though I suspected it wouldn't work) but then the gun just stopped firing entirely. (for obvious reasons)[/QUOTE]
^10/10 quote there lol
10 is 1 more than F.
The max bullets is 40 hex by the way (64 dec). Change it to CMP EAX, 40
When you overwrote the JLE, it made an unconditional jump to the return instead of the fire part.
If you want the game to limit the bullets by itself, without a limit for the bubbler gun, an easier alternative would to be to replace the JMP after the JLE with NOPs/FNOPs. Changing JLE to JNO or JS does the same thing.
Keep in mind if you have 64 bullets on screen, no weapon will be able to shoot anything. I recommend changing it to CMP EAX, 38 just to leave 8 slots for other weapon bullets, but it's your choice whether to let the player break the game and suffer from it or not
EDIT:
Since we're currently on the topic of the Bubbler, I found the offsets for the stats.
0x048F386
00 00 00 00 00 01 01 00 00 14 00 00 00 08 00 00
00 02 00 00 00 02 00 00 00 02 00 00 00 02 00 00
00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00
00 02 01 00 00 14 00 00 00 08 00 00 00 02 00 00
00 02 00 00 00 02 00 00 00 02 00 00 00 04 00 00
00 04 00 00 00 04 00 00 00 04 00 00 00 02 01 00
00 14 00 00 00 08 00 00 00 04 00 00 00 04 00 00
00 04 00 00 00 04 00 00 00 04 00 00 00 04 00 00
00 04 00
Sort through it yourself. Can be accessed via BL/CE as well, so this is probably useless. It was interesting to find out though.
TL;DR:
There are 3 ways you can do this.
Change CMP EAX, 0F to CMP EAX, 38 - Best way since it doesn't break the game, unless the player is super fast/doing a TAS
Replace JLE with JNO, JMP or JS
Replace the JMP after the JLE with NOPs or FNOPs
Really easy question, I just don't know where to look: If Say, Quote was walking right, how many ticks would I have to wait before he moves EXACTLY 6 tiles so I can stop him? Thanks.
Really easy question, I just don't know where to look: If Say, Quote was walking right, how many ticks would I have to wait before he moves EXACTLY 6 tiles so I can stop him? Thanks.