Quick Modding/Hacking Answers Thread

Feb 26, 2011 at 6:02 PM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
Have you tried the bullet functions then?

According to Noxid's List:
Code:
-=Bullets=-

004029B0 - Bullet Tile Collison, Solid	[08_X | 0C_Y | 10_???]
00402B30 - <Odd; after the main Tile collision runs, it does this check which returns which side of a tile it's hitting I think>
00402F50 - Generate effect, sound when Bullet hits wall							[08_WeaponObj]
00402FC0 - Bullet Tile Collison, Roof Slope 1
004030B0 - Bullet Tile Collison, Roof Slope 2
004031A0 - Bullet Tile Collison, Roof Slope 3
00403290 - Bullet Tile Collison, Roof Slope 4
00403380 - Bullet Tile Collison, Floor Slope 1
00403470 - Bullet Tile Collison, Floor Slope 2
00403560 - Bullet Tile Collison, Floor Slope 3
00403650 - Bullet Tile Collison, Floor Slope 4
00403740 - Bullet Tile Detection Algorithm
00403C00 - Clear All Weapon Object Slots
00403C40 - Count Weapon Shot Occurences				[08_WeaponID]
00403CB0 - Count All Slots Using Specific Shot			[08_ShotID]
00403D10 - Free All Slots Using Specific Weapon			[08_WeaponID]
00403D80 - Clear All Weapon Object Slots
00403DC0 - Render Bullets
00403F80 - Create Bullet
00404160 - Bullet 01: Snake Level 1
004043F0 - Bullet 02 - 03: Snake
004047B0 - Bullet 04 - 06: Polar Star				[08_WeaponObject | 0C_Level]
00404B30 - Bullet 07 - 09: Fireball 				[08_WeaponObject]
00405120 - Bullet 0A - 0C: Machine Gun
004055A0 - Bullet 0D - 0F: Missile Launcher
00405D80 - Explosion from missile <Bullet ID 10-12>
00405F30 - Bullet 13: Bubbler Level 1
00406190 - <Bullet 14?>
004064D0 - Bullet 15: Bubbler Level 3
004068B0 - Bullet 16: Bubble Spurs
00406BB0 - Bullet 19: Blade Level 1
00406E60 - Bullet 1A: Blade Level 2
00407110 - Bullet 1B: Blade Level 3
004075E0 - Bullet 17: Blade Slashes
004078A0 - Bullet 18
00407910 - Bullet 1C - 1E: Super Missile Launcher
00408080 - Bullet 1F - 21:
00408230 - Bullet 22 - 24, 2B: Nemesis
00408710 - Bullet 25 - 27
00408AE0 - Bullet 28 - 2A
00408F40 - Bullet 2C: Spur Level 2
00408F90 - Bullet 2D: Spur Level 3
00408FC0 - Runs Bullet AI
00409190 - Bullet 14: Bubbler Level 2 (?)
004095C0 - <Related to Bubbler?>


Also, I have what may be a slightly stupid question but.... in a weapon function, how would I check if a specific flag is set or not?
 
Feb 26, 2011 at 6:05 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Pronouns: he/him
Dubby said:
I'm quite aware of that, but I don't fully trust label systems.


Also, question:

Are the little bats that hover around Orangebell independent of Orangebell, or are they part of the same function? Reason is, I need bats that will attack/chase the player but don't drop exp (and there's no room to edit one of the existing bats)
Those bats are dependent of the parent entity and will crash if they haven't got a parent. That being said, it may be possible to have them be child to something other than orangebell..

Dubby said:
Have you tried the bullet functions then?

Also, I have what may be a slightly stupid question but.... in a weapon function, how would I check if a specific flag is set or not?
You mean normal old flags? There's a function for that.

0040E930 - Check Flag (Returns 1 or 0)
The param is (int flag).
 
Feb 26, 2011 at 10:56 PM
Pirate Member
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Dec 26, 2007
Location: Lithuania
Posts: 1946
Anyway to make the polar star literally shoot tiles?
 
Feb 26, 2011 at 11:01 PM
Hax on....Hax off....
"Keep on rollin'!"
Join Date: Jan 5, 2009
Location: Easter Island
Posts: 474
WoodenRat said:
Anyway to make the polar star literally shoot tiles?

Of course there is.
Assembly.
 
Mar 4, 2011 at 12:38 AM
In front of a computer
"Man, if only I had an apple..."
Join Date: Mar 1, 2008
Location: Grasstown
Posts: 1435
leafbarrett said:
The EXE file? If it was, then I don't think Sue's Workshop would have worked on it, and it did.
I think someone mentioned this, but the EXE is a specific file format (PEF or something) that Resource Hacker knows how to read; Sue's Workshop, however, does not save as a valid PEF executable when editing, so Resource Hacker looks and the file and thinks it is damaged or something.

Short answer: Never use Sue's Workshop if you can avoid it.
 
Mar 4, 2011 at 3:56 PM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
Uncy Dave said:
Of course there is.
Assembly.

The roller enemy automatically changes the tile it's on when it's spawned. (Changing it to 00, which is nothing) Typically on almost (maybe all?) tilesets, the next number, 01, is a solid block. If you use the roller enemy's code as a basis, you should be able to modify the collision part of the bullet to change whatever tile it collides with. That's not really 'shooting' tiles, though. If you can check which side the tile was hit on, then shift one unit away, and change that tile... then the polar star would 'shoot tiles'. Of course, you could really, REALLY screw up an area with such a weapon, unless the tiles were somehow temporary, or destructible.

It'd probably be better to make an ice weapon that instead of damaging an enemy, turns them into a different NPC that's just a frozen block... but pass the NPC's number to the ice block NPC, so if it's destroyed/thawed/whatever it can turn back into the original NPC type.
 
Mar 5, 2011 at 12:06 AM
Been here way too long...
"Life begins and ends with Nu."
Join Date: Jan 4, 2008
Location: Lingerie, but also, like, fancy curtains
Posts: 3052
You wouldn't necessarily need change the end-block only, you could make an invisible damageless bullet that each step does something like this:

Code:
xx = x /10
yy = y/10
if xx != xp or yy != yp {
t[xx,yy] = v*
v = t[xx,yy]
t[xx,yy] = 1
}

xp = xx
yp = yy

//apply constants

But that would yield a sorta jumpy looking thing. With smoke effects however, you could make it look like the tetris blocks in wtf.

I don't actually remember how the tiles work off the top of my head, but I'm assuming they make a 2d array of roomwidth by roomheight in tilesizes. If it allowed individual xs/ys, you could actually make a gun easily.

I was planning on doing something like this for a mod. Who knows?

Also, people, please refrain from making posts like "with assembly! hurr...." it isn't helpful.


*This use of a variable storing the original tile could also be used to make a time-out if you wanted to have that (and not wreck the map, as you mentioned in your post).
 
Mar 5, 2011 at 7:04 PM
Senior Member
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Jan 21, 2011
Location:
Posts: 249
Been looking for the up to date profile.dat hacking guide/lexicon for a while now. Can't seem to find it. If anyone has it, I'd appreciate being tossed a link.
 
Mar 5, 2011 at 8:47 PM
Been here way too long...
"Life begins and ends with Nu."
Join Date: Jan 4, 2008
Location: Lingerie, but also, like, fancy curtains
Posts: 3052
I don't think there is a more up-to-date version. The most recent one I have is from 2006. Maybe celtic will have more info because of his save converter? He'd be my first stop if i wanted to know more.
 
Mar 6, 2011 at 9:54 PM
The Preacher
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Feb 20, 2011
Location: lost in translation
Posts: 336
Age: 32
Pronouns: he/him
Hello, I would like to decrease the number of falling blocks (entity #294: Quake + Falling Blocks generator, used in the map Hell2 for example), is it possible?
 
Mar 7, 2011 at 4:05 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Pronouns: he/him
The blocks fall indefinitely, but it would be possible to decrease the freqency at which they occur

00461ACC |. 8378 78 18 CMP DWORD PTR [EAX+78],18

Change the 18 to a number larger than 18 to increase the timer.
Alternatively, the hex address is 0x61ACF
 
Mar 7, 2011 at 4:31 PM
Pirate Member
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Dec 26, 2007
Location: Lithuania
Posts: 1946
Now that you mention it, are their velocities easily editable?
 
Mar 7, 2011 at 4:38 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Pronouns: he/him
as easily as anything else.
the blocks themselves are a separate entity from the spawner of course.
 
Mar 7, 2011 at 4:50 PM
The Preacher
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Feb 20, 2011
Location: lost in translation
Posts: 336
Age: 32
Pronouns: he/him
Noxid said:
The blocks fall indefinitely, but it would be possible to decrease the freqency at which they occur

00461ACC |. 8378 78 18 CMP DWORD PTR [EAX+78],18

Change the 18 to a number larger than 18 to increase the timer.
Alternatively, the hex address is 0x61ACF
Yeah, I meant the frequency, sorry.
Thanks for the information. Do you think it's also possible to put something like the Entity ID address instead of 18? Like that I could choose the frequency I want each time I use the generator...
 
Mar 7, 2011 at 5:00 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Pronouns: he/him
You'll have to make the following changes:


00461AC9 8B4A 2C MOV ECX,[EDX+2C]
00461ACC 3948 78 CMP [EAX+78],ECX
00461ACF 90 NOP

That should do it.
 
Mar 7, 2011 at 7:10 PM
The Preacher
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Feb 20, 2011
Location: lost in translation
Posts: 336
Age: 32
Pronouns: he/him
Hmmm, it makes the game crash.
 
Mar 7, 2011 at 7:36 PM
In my body, in my head
Forum Moderator
"Life begins and ends with Nu."
Join Date: Aug 28, 2009
Location: The Purple Zone
Posts: 5998
Pronouns: he/him
Oh whoops, the 2nd one should be CMP [EDX+78], ECX
 
Mar 7, 2011 at 8:30 PM
The Preacher
"Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-Wacka-BLEIUP"
Join Date: Feb 20, 2011
Location: lost in translation
Posts: 336
Age: 32
Pronouns: he/him
... Doesn't work either. :awesomeface:
You don't have to worry anymore about that (unless you want to, in that case I'll keep the solution in my archives for it can be useful), I have another idea. Thanks for your help anyway!
 
Mar 8, 2011 at 2:53 AM
Been here way too long...
"Life begins and ends with Nu."
Join Date: Jan 4, 2008
Location: Lingerie, but also, like, fancy curtains
Posts: 3052
I don't know off of the top of my head what happens before that, but make sure you're moving in arg1 before taking the local var.
 
Mar 8, 2011 at 6:19 AM
Absentee Modder
"Ha! Ha! Ha! Mega Man is no match for my Mimiga Man!"
Join Date: Sep 7, 2010
Location: Outside your window. No no, don't check, it's okay
Posts: 272
Age: 29
Pronouns: he/him
Melee Weapon

I decided to try making the Blade into an actual melee weapon, and it's actually going pretty well. I figured out it's mostly an issue of fine-tuning it to look nice. One small problem is the little star-shaped explosion whenever you swing the sword... I don't want it there. I could just delete it from Caret.bmp, but I want it to appear for everything else. So does anyone know how to make that not show up? Preferably not using assembly hacking, but whatever works is good.
 
Back
Top