Oct 28, 2011 at 3:53 AM
Professional Whatever
"Life begins and ends with Nu."
Join Date: Jan 13, 2011
Location: Lasagna
Posts: 4481
404notfound said:
What is the difference between a skipflag and a flag

Skipflags are kept set if you reset the game (load a file or go to main menu), but are unset when you close the game. It's used for boss dialogue so you don't drown in a sea of text, but it has many other uses as well. They are used via <SK+XXXX where XXXX is the skipflag number you want to set. <SK-XXXX unsets a skipflag, and <SKJXXXX:YYYY checks if skipflag XXXX is set, and if so, jumps to event YYYY.

EDIT: I have a question. Could anyone help me learn a bit about hacking the spur, or weapon hacking basics in general? I've been trying to learn myself, but I still can't figure out much about the polar star, let alone the spur.
 
Oct 31, 2011 at 8:23 PM
In front of a computer
"Man, if only I had an apple..."
Join Date: Mar 1, 2008
Location: Grasstown
Posts: 1435
trickybilly said:
This question is more like a constructive idea for you who are making a mod, since I don't plan to make one right now.

I'd like to ask if it is possible to publish mod-updates via SVN (subversion)? It's just like I get my updates for the other game I play with TortoiseSVN - right click -SVN checkout. That way all my progress is saved and everytime I can continue from that point with the content of the new version, without having to delete the old/dl the new version. Other benefit is that I can update almost daily, update paralell with the game development.

Example. I completed your last demo and saved the game, then SVN in about 3 weeks and continue playing with the new content in.
I'm a little unsure what you're asking here. Of course it's possible to put your mod in an SVN repository (though, since it's a lot of binary files, I'm not sure that would be a good idea), but I'm not sure if that's what your question is. If you're suggesting using SVN to distribute the mod, I'd say that's a bad idea; SVN and other version control systems are best when the repository contains only code, no binary files. Publishing the final product in the repository is thus ill-advised; you should only put the source there.
 
Nov 1, 2011 at 7:44 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
LunarSoul said:
EDIT: I have a question. Could anyone help me learn a bit about hacking the spur, or weapon hacking basics in general? I've been trying to learn myself, but I still can't figure out much about the polar star, let alone the spur.

It's really similar to NPC hacking in that it uses object-oriented programming, assembly style.

You have your pointer to the bullet and/or weapon object, i.e. [EBP+8], and you store it to some register and manipulate the object members using pointers and such. For example you could store DWORD [EBP+8] to ECX, which makes ECX the pointer to the bullet object, and modify [ECX+1C] to change the y-velocity of your bullet.
 
Nov 1, 2011 at 11:22 AM
Professional Whatever
"Life begins and ends with Nu."
Join Date: Jan 13, 2011
Location: Lasagna
Posts: 4481
Oh, I get it! So it uses the different weapon properties in the compendium, and you just change them.
But wouldn't storing the value of one of the weapon properties to a register then changing it only change a number, not the properties?

Sorry, I'm probably unclear.
Example: EBP+8.
MOV DWORD ECX,[EBP+8]
MOV DWORD [ECX+1C],1000

ECX+1C now equals 1000, but the y-velocity wouldn't.
That's probably formatted wrong, but I haven't assemblied in a long time.
 
Nov 1, 2011 at 1:29 PM
Lvl 1
Forum Moderator
"Life begins and ends with Nu."
Join Date: May 28, 2008
Location: PMMM MMO
Posts: 3713
Age: 31
You realize that since you're on a computer everything is just numbers, right? (actually everything is just bits but that's another level down)

That would change the y-velocity to 1000.
 
Nov 1, 2011 at 4:02 PM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
LunarSoul said:
Oh, I get it! So it uses the different weapon properties in the compendium, and you just change them.
But wouldn't storing the value of one of the weapon properties to a register then changing it only change a number, not the properties?

Sorry, I'm probably unclear.
Example: EBP+8.
MOV DWORD ECX,[EBP+8]
MOV DWORD [ECX+1C],1000

ECX+1C now equals 1000, but the y-velocity wouldn't.
That's probably formatted wrong, but I haven't assemblied in a long time.

[ECX+1C] and y-velocity are the same in this case, as GIR already explained.

"Storing to a register"? Notice that you store [EBP+8] to ECX and then do a pointer dereference on ECX+(something). The first part (MOV ECX,[EBP+8]) will change ECX because it's obviously a MOV instruction with ECX as the first operand. The second instruction does not change ECX in any way.

In other words, do you really understand how square brackets work?

Let's assume:
[EBP+8] = 4F1000
ECX = 0

Then execute the code:
MOV ECX, [EBP+8]
MOV [ECX+1C], 1000

Right now, ECX now holds 4F1000, and the DWORD at address 4F101C has been changed to 1000. 4F101C represents the y-velocity of the bullet instance you're operating on. (In reality, the actual bullet object wouldn't be at this address, but I don't care right now since we usually don't worry about the internal value of [EBP+8])

Notice that MOV [ECX+1C], 1000 never changes the value of ECX. ECX still holds 4F1000, not 1000 or any variant.
 
Nov 1, 2011 at 6:49 PM
Professional Whatever
"Life begins and ends with Nu."
Join Date: Jan 13, 2011
Location: Lasagna
Posts: 4481
Carrotlord said:
[ECX+1C] and y-velocity are the same in this case, as GIR already explained.

"Storing to a register"? Notice that you store [EBP+8] to ECX and then do a pointer dereference on ECX+(something). The first part (MOV ECX,[EBP+8]) will change ECX because it's obviously a MOV instruction with ECX as the first operand. The second instruction does not change ECX in any way.

In other words, do you really understand how square brackets work?
Evidently not.

Carrotlord said:
Let's assume:
[EBP+8] = 4F1000
ECX = 0

Then execute the code:
MOV ECX, [EBP+8]
MOV [ECX+1C], 1000

Right now, ECX now holds 4F1000, and the DWORD at address 4F101C has been changed to 1000. 4F101C represents the y-velocity of the bullet instance you're operating on. (In reality, the actual bullet object wouldn't be at this address, but I don't care right now since we usually don't worry about the internal value of [EBP+8])

Ohh, now I think I understand!
So EBP+8 is equal to 4F1000 in this case, so the y-velocity (+1C) would be 1C more than EBP+8...?
So you would set ECX (in this case) to 1000 (in hex) to make the y-velocity 101C (in hex)?
 
Nov 1, 2011 at 7:18 PM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
LunarSoul said:
Ohh, now I think I understand!
So EBP+8 is equal to 4F1000 in this case, so the y-velocity (+1C) would be 1C more than EBP+8...?
So you would set ECX (in this case) to 1000 (in hex) to make the y-velocity 101C (in hex)?

Wrong! EBP+8 is some address that points to the stack. [EBP+8] refers to some other address not inside the stack. The +1C part is an offset that refers to the y-velocity of a particular bullet.

I told you that ECX never becomes 1000. If you store [EBP+8] to ECX and [EBP+8] holds 4F1000, then ECX will hold 4F1000 until you change it later.

MOV [ECX+1C], 1000 will set address 41F01C to hold the numerical contents of 1000. ECX is NOT modified. There is no 101C stored anywhere.

You must be very careful with square brackets. Anything in square brackets is a dereference. Anything not in square brackets could be a number or an address (addresses are references). Dereferencing an address lets you change the value AT that address or see the value AT that address, not the address itself.
 
Nov 1, 2011 at 7:23 PM
Professional Whatever
"Life begins and ends with Nu."
Join Date: Jan 13, 2011
Location: Lasagna
Posts: 4481
Carrotlord said:
Wrong! EBP+8 is some address that points to the stack. [EBP+8] refers to some other address not inside the stack. The +1C part is an offset that refers to the y-velocity of a particular bullet.

I told you that ECX never becomes 1000. If you store [EBP+8] to ECX and [EBP+8] holds 4F1000, then ECX will hold 4F1000 until you change it later.

MOV [ECX+1C], 1000 will set address 41F01C to hold the numerical contents of 1000. ECX is NOT modified. There is no 101C stored anywhere.
(EDITED)
I never said that. What I meant was something like this:
(If [EBP+8] equals 41F000)
>MOV ECX,[EBP+8]
Y-velocity equals 41F01C.
>MOV ECX,1000
Y-velocity would equal 101C.
 
Nov 1, 2011 at 7:32 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
Nov 1, 2011 at 7:39 PM
Professional Whatever
"Life begins and ends with Nu."
Join Date: Jan 13, 2011
Location: Lasagna
Posts: 4481
Alright. I don't think I've even looked at that stuff anyway.
I'll look at it when I'm on a computer.
 
Nov 2, 2011 at 1:34 AM
Neophyte Member
"Fresh from the Bakery"
Join Date: Oct 23, 2011
Location: ....
Posts: 8
In sues workshop,when selecting an enemy/boss,Why wont the list of things appear?. (:debug:i bet that someone is going to answer this so easily in 6 minutes lol)
 
Nov 2, 2011 at 1:36 AM
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
Caverobo said:
In sues workshop,when selecting an enemy/boss,Why wont the list of things appear?. (:debug:i bet that someone is going to answer this so easily in 6 minutes lol)

Because Sue's Workshop is terrible

also I have no idea what list of things you're talking about
 
Nov 2, 2011 at 1:52 AM
Professional Whatever
"Life begins and ends with Nu."
Join Date: Jan 13, 2011
Location: Lasagna
Posts: 4481
The list of everything.
When I try and use Sue's, no data actually shows up under the different tabs (maps, backgrounds, etc). I still don't know what the problem is.

EDIT: Also, it seems that his problem is that he can't select an enemy or boss.
Or something. He might be talking about flags. Or entity numbers, or events.
I'm tired.
 
Nov 2, 2011 at 1:55 AM
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
Sue's workshop is the CS Editor equivalent of IE7
just... no

Nothing will appear in the data list if you've edited the executable with Cave Editor and saved it because CE relocates the mapdata and Sue's is "dumb" in the sense that it only looks in one spot.
 
Nov 2, 2011 at 1:58 AM
Professional Whatever
"Life begins and ends with Nu."
Join Date: Jan 13, 2011
Location: Lasagna
Posts: 4481
I thought it just crashed your exe. I didn't know you couldn't actually edit anything anyway.
 
Nov 2, 2011 at 4:57 AM
Not anymore
"Run, rabbit run. Dig that hole, forget the sun."
Join Date: Jan 28, 2010
Location: Internet
Posts: 1369
Age: 34
Caverobo said:
In sues workshop,when selecting an enemy/boss,Why wont the list of things appear?. (:debug:i bet that someone is going to answer this so easily in 6 minutes lol)

Okay, it's probably because you need to put the npc.ini file INTO your mod folder instead of the Sue's workshop folder. Then you can see the list of enemies.

I know that's confusing, but fortunately Lace enlightened me. Let me see if I can find the old post.
EDIT: Found them. Look here and here for more info.

Many people won't be familiar with Sue's features because they are CE diehards.
 
Nov 2, 2011 at 4:31 PM
Lvl 1
Forum Moderator
"Life begins and ends with Nu."
Join Date: May 28, 2008
Location: PMMM MMO
Posts: 3713
Age: 31
Entity 46- The Horizontal/Vertical Trigger.

I recommend you learn how to use this, it will solve your problems. Flag 1000 makes it vertical, otherwise horizontal by default. It runs an event when quote Crosses the line that it's on.
 
Nov 3, 2011 at 10:14 PM
Neophyte Member
"Fresh from the Bakery"
Join Date: Oct 23, 2011
Location: ....
Posts: 8
Carrotlord said:
Okay, it's probably because you need to put the npc.ini file INTO your mod folder instead of the Sue's workshop folder. Then you can see the list of enemies.

I know that's confusing, but fortunately Lace enlightened me. Let me see if I can find the old post.
EDIT: Found them. Look here and here for more info.

Many people won't be familiar with Sue's features because they are CE diehards.
oh. i read those thread you linked. i edit the sprites with CE. well, maybe i should learn how to use cave editor better.thanks
 
Top