Uhg.

Sep 10, 2007 at 2:30 AM
Guy with Sword
Bobomb says: "I need a hug!"
Join Date: Jul 1, 2007
Location: Middle of Texas
Posts: 777
Age: 32
diph.php

This is one of those days...

Okay, I really don't understand sprites in Sue's Workshop. You enter the number of the sprite (if I could ever figure out what sprite number does what), and it comes out with a character that does something. Is there any way to make an NPC that doesn't do anything? That just stands there until I make it do something with TSC? Because whenever I try to do a cutscene with Balrog, all he goes right into jumping around and shooting stuff.
diph.php
program.
 
Sep 10, 2007 at 1:33 PM
Senior Member
"I, Ikachan. The Life and Documentary of the OrigiNAL SQuiD."
Join Date: Mar 9, 2007
Location:
Posts: 170
There is a file called npc.ini which, when placed in the same folder as doukutsu.exe, gives you a nice interface in Sue's that let's you pick and place npcs from a list.
Can't be bothered to upload it though. It's probably lying around here in the forums somewhere anyway.

I think the Balrog NPC you used is different from the cutscene Balrog NPC. Some NPCs are like that, if I remember correctly.
 
Sep 10, 2007 at 1:37 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
Atravir said:

Hope you wanted to say: "Awesome program."
Sue's Workshop is the best damn program I ever saw and it's not it's fault that you don't understand the npc numbers, just use npc number 0.
 
Sep 11, 2007 at 1:26 AM
Guy with Sword
Bobomb says: "I need a hug!"
Join Date: Jul 1, 2007
Location: Middle of Texas
Posts: 777
Age: 32
It's not as much the program itself, its that there's no manual, just the readme. And it's fairly confusing to us stupid peoples.

So that's what that was. I though that was a code for making a better Curly NPC. Thanks!
 
Sep 12, 2007 at 1:13 AM
Senior Member
"Huzzah!"
Join Date: Jun 1, 2007
Location: In Space
Posts: 191
It actually took me a good bit to figure it out myself. Ah, well, it happens to the best (and the worst) of us.

Conveniently enough, npc.ini is fully editable, so if you've got a custom mod which changes the actors' sprites, it's crazy-convenient. Hehe. It's a hell of alot easier to rename the entries instead of trying to remember that, for example, the Curly Boss actor goes with the Santa actor sprite. Pretty neat, really, though I guess that's a bit of a 'captain obvious' moment there. :D
 
Sep 13, 2007 at 5:51 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
Roonil Wazlib said:
Aw, come on SP, u don't gotta be so rude. Things like those happen in frustration.

Probably the reason i never try my hand at hackin :(

lol, I could say he/she was more rude :D
 
Sep 15, 2007 at 10:11 PM
Guy with Sword
Bobomb says: "I need a hug!"
Join Date: Jul 1, 2007
Location: Middle of Texas
Posts: 777
Age: 32
Sorry.
diph.php


Still messing around with Sue's. I know you have to have an NPC palette selected under the map settings for it to work, but the game only refers to whatever is in the first select box (so it will only use one npc set). How do I get it to refer to the palette in the second select box?
Note: And for some reason I didn't need an NPC palette for misery, she works just fine. :D
 
Sep 16, 2007 at 3:14 AM
Senior Member
"Huzzah!"
Join Date: Jun 1, 2007
Location: In Space
Posts: 191
Sadly, each NPC is hard-coded to get its graphics from a specific box. The first box is used for standard enemy sets (Weed, Eggs1/2, Maze, etc.) while the second is usually bosses or other special enemies (Balrog, Dr, Miza...). For example, a Gaudi would always use the graphics defined in the first box (though conveniently it's possible to have a 'variant' tileset, like Maze2 or something that changes their graphics). Unfortunately, Guest must be defined in the first box, so it's not possible to have those characters in a stage with enemies as well. 'Tis sad...

Also, Misery (and the good Doctor as well) are also in the Regu NPCset (the global one), and their specific tilesets are used only for their boss forms (notice how NpcDr has a slightly red-ish tint to it, and watch how the doctor's color changes slightly right as you begin to fight him). A bit strange how not all characters were defined as such. Ah, well, it comes in handy for mods, anyhow!
 
Sep 16, 2007 at 4:31 AM
Guy with Sword
Bobomb says: "I need a hug!"
Join Date: Jul 1, 2007
Location: Middle of Texas
Posts: 777
Age: 32
I understand it, but I still don't know how to get Sue's to use the palette in the second box. It just kind of ignores it.
 
Sep 16, 2007 at 12:11 PM
Hoxtilicious
"Life begins and ends with Nu."
Join Date: Dec 30, 2005
Location: Germany
Posts: 3218
Age: 32
Well thats one of the easiest things in hacking :x

Xaser said:
Sadly, each NPC is hard-coded to get its graphics from a specific box. The first box is used for standard enemy sets (Weed, Eggs1/2, Maze, etc.) while the second is usually bosses or other special enemies (Balrog, Dr, Miza...). For example, a Gaudi would always use the graphics defined in the first box (though conveniently it's possible to have a 'variant' tileset, like Maze2 or something that changes their graphics). Unfortunately, Guest must be defined in the first box, so it's not possible to have those characters in a stage with enemies as well. 'Tis sad...

Well, better call it 'set' rather than 'box', because there is a hitbox too and that's hardcoded into the code, not the set :D The set is in the 'npc.tbl' as raw data, but the hitbox is moved into the back pointer with machine code, it would look like this in assembly;

Code:
mov [ebp-0040],0x00000044
mov [ebp-003C],0x00000025
mov [ebp-0038],0x00000049
mov [ebp-0034],0x00000025
mov [ebp-0030],0x00000039
mov [ebp-002C],0x00000025
mov [ebp-0028],0x00000044
mov [ebp-0024],0x00000030
mov [ebp-0020],0x00000044
mov [ebp-001C],0x00000020
mov [ebp-0018],0x00000049
mov [ebp-0014],0x00000025
mov [ebp-0010],0x00000039
mov [ebp-000C],0x00000020
mov [ebp-0008],0x00000044
mov [ebp-0004],0x00000025
mov [ebp-0080],0x00000039
mov [ebp-007C],0x00000020
mov [ebp-0078],0x00000044
mov [ebp-0074],0x00000025
mov [ebp-0070],0x00000044
mov [ebp-006C],0x00000020
mov [ebp-0068],0x00000049
mov [ebp-0064],0x00000025
mov [ebp-0060],0x00000039
mov [ebp-005C],0x00000025
mov [ebp-0058],0x00000044
mov [ebp-0054],0x00000030
mov [ebp-0050],0x00000044
mov [ebp-004C],0x00000025
mov [ebp-0048],0x00000049
mov [ebp-0044],0x00000025

And you can also move specific enemies from one set to another, with a bmp editor, (like paint or something) so this would be no problem. You just need to have the sprite, at the same hitbox coordinates. And if there is no space, then just edit the 'npc.tbl' and let it use 'set 2'. Well b.t.w. there are NPCs too who use 'set 2' and aren't bosses like 'Ravil'.

And thats not all of the things you need to know :D
Maybe I should make a FAQ for all easy things o_o
 
Sep 16, 2007 at 2:46 PM
Guy with Sword
Bobomb says: "I need a hug!"
Join Date: Jul 1, 2007
Location: Middle of Texas
Posts: 777
Age: 32
Okay, simple enough. I'll have to mess with it though, the two characters I need are balrog and ballos, and they both have weird palette sizes.

Thanks! :D
 
Sep 17, 2007 at 1:15 AM
Senior Member
"Huzzah!"
Join Date: Jun 1, 2007
Location: In Space
Posts: 191
Certain sprites are hard-coded to use the sprites out of a certain box. Here's a list of which spritesets use which one:

Box #1: Cemet, Cent, Eggs1, Eggs2, Guest, Hell, Island, Kings, Maze, Moon, Plant, Priest, Ravil, Red, Sand, Stream, Toro, Weed.

Box #2: Almo1, Almo2, Ballos, Bllg, Curly, Dark, Dr, Frog, Heri, IronH, Miza, Omg, Press, Ravil, TwinD, X

Regu and Sym are always loaded, obviously. :)

Island is defined in the first box, yes, but I'm not 100% sure how that actor or its map works, really.

Ravil is actually used in both boxes, interestingly enough. However, the second box only defines it for the Igor Boss actor and the first box is used for Ravil and Enemy Igor (for Balcony).

Hmm... hope this helps a bit. It's a shame there's not an event flag that tells the program which box to use. Pixel didn't need to code that apparently, which is kinda sad because it would be useful as hell to mix two character sets together and see how Power Critters and Gaudi Armors complement each other.

Note that with a bit of npc.tbl hacking, it *is* possible to change which box a certain sprite takes its graphics from, so it's possible to achieve the above example to a degree. If you were to find all the actors from NpcMaze and change that flag so they use the second box, you could then put Weed in the first and Maze in the second for some added fun!

But aside from that, I guess that's one of those "Wait For Agora's Legends" features, or some such. ;P

[EDIT]: Egad! I swear, those last two posters jumped ahead of me! Ehehe, so Garde's answered most of this stuff already. Thanks and stuff!
And somehow, I never thought of that idea until now. I recall Crowned Witch's "Red Hell" stage now, which has hopping critters and Fire Whirrrs, mixed from two different tilesets. Hehe, very interesting idea, really. As long as the spaces don't overlap, it's very possible to add additional characters from a different tileset. Weed has a bunch of extra space toward the bottom that might come in useful, somehow, so maybe that example of mine is easier than I thought. Thanks Garde. ;P

And Atravir, your problem would actually be solved easily by changing the Ballos actors to use the first set instead of the second. Balrog is more of a common character than Ballos anyhow, and he usually appears in maps with enemies as well so it's good to keep him in the second set. :p

On second thought, are you using Ballos's first form (in NpcPriest)? 'Cause if so, he's already defined in the first box and the two can be used together already. Also, if you somehow need to use both Ballos forms + Balrog (or have some desire to use characters from more than two tilesets in a cutscene), there's a neat little method I devised for my ever-so-elusive mod. You can actually copy the room into a second map (with different actors defined), and if you don't use the fadein/fadeout commands while using <TRA####, the transition between maps will be instantaneous. I've found this one VERY useful myself. ;P
 
Top