Help needed in getting Crawla Commander clone working

Status
Not open for further replies.

glaber

Emblem Radar Ready
Somehow I just knew I'd be asking for this kind of help again.

just recently I've attempted cloning the Crawla Commander. in the SOC code everything appears fine, until I get in game.

Here's what happens:
ChubbyChiefAnemonecrab.gif


http://gfycat.com/ChubbyChiefAnemonecrab
ChubbyChiefAnemonecrab


If you can see the picture, it showes that the crawla commander Classic is stuck in one frame and only takes 1 damage before being destroyed.

How do I fix this?

The Soc for it can be seen here:
Code:
#Old Crawla Commander
FREESLOT
MT_OldCrawlaComander
S_OCOMMAND1
S_OCOMMAND2
S_OCOMMAND3
S_OCOMMAND4
SPR_OCOM

#Old Crawla Commander
FREESLOT
MT_OldCrawlaComander
S_OCOMMAND1
S_OCOMMAND2
S_OCOMMAND3
S_OCOMMAND4
SPR_OCOM

Thing MT_OldCrawlaComander
MAPTHINGNUM = 4031
SPAWNSTATE = S_OCOMMAND1
SPAWNHEALTH = 2
SEESTATE = S_OCOMMAND3
SEESOUND = 0
REACTIONTIME = 2
ATTACKSOUND = 0
PAINSTATE = S_OCOMMAND3
PAINCHANCE = 200
PAINSOUND = sfx_dmpain
MELEESTATE = 0
MISSILESTATE = 0
DEATHSTATE = S_XPLD1
DEATHSOUND = sfx_pop
XDEATHSTATE = 0
SPEED = 3
RADIUS = 1048576
HEIGHT = 2097152
MASS = 100
DAMAGE = 0
ACTIVESOUND = 0
RAISESTATE = 0
FLAGS = MF_SLIDEME|MF_ENEMY|MF_SPECIAL|MF_SHOOTABLE

FRAME S_OCOMMAND1
SPRITENUMBER = SPR_OCOM
SPRITESUBNUMBER = 1
DURATION = 1
NEXT = S_OCOMMAND2
ACTION A_CrawlaCommanderThink
VAR1 = 0
VAR2 = 983040

FRAME S_OCOMMAND2
SPRITENUMBER = SPR_OCOM
SPRITESUBNUMBER = 1
DURATION = 1
NEXT = S_OCOMMAND1
ACTION A_CrawlaCommanderThink
VAR1 = 0
VAR2 = 983040

FRAME S_OCOMMAND3
SPRITENUMBER = SPR_OCOM
SPRITESUBNUMBER = 1
DURATION = 1
NEXT = S_OCOMMAND4
ACTION A_CrawlaCommanderThink
VAR1 = 0
VAR2 = 983040

FRAME S_OCOMMAND4
SPRITENUMBER = SPR_OCOM
SPRITESUBNUMBER = 1
DURATION = 1
NEXT = S_OCOMMAND3
ACTION A_CrawlaCommanderThink
VAR1 = 0
VAR2 = 983040
 
The SpriteSubNumbers in each frame need to be changed. That fixes the animation.
Code:
FRAME S_OCOMMAND1
SPRITESUBNUMBER = A

FRAME S_OCOMMAND2
SPRITESUBNUMBER = B

FRAME S_OCOMMAND3
SPRITESUBNUMBER = C

FRAME S_OCOMMAND4
SPRITESUBNUMBER = D
As for the Crawla Commander dying in one hit, I have no idea.
 
Yea, I have the health set as 2, so I really have no idea why the commander is dying so easily.
 
Alright, I've figured out the 1-hit problem. The Crawla Commander had no invincibility frames, so I've added some. More information here.
Now, I have no idea what version of SRB2 you're using to replicate its behavior nor do I know the sprites used, but I'm gonna assume you used direct rips of 1.09.4's srb2.srb.
Code:
#Old Crawla Commander

FREESLOT
MT_OldCrawlaComander
S_OCOMMAND1
S_OCOMMAND2
S_OCOMMAND3
S_OCOMMAND4
S_OCOMMAND_PAIN1
S_OCOMMAND_PAIN2
S_OCOMMAND_PAIN3
S_OCOMMAND_PAIN4
SPR_OCOM

Thing MT_OldCrawlaComander
MAPTHINGNUM = 4031
SPAWNSTATE = S_OCOMMAND1
SPAWNHEALTH = 2
SEESTATE = S_OCOMMAND3
SEESOUND = 0
REACTIONTIME = 2
ATTACKSOUND = 0
PAINSTATE = S_OCOMMAND_PAIN1
PAINCHANCE = 200
PAINSOUND = sfx_dmpain
MELEESTATE = 0
MISSILESTATE = 0
DEATHSTATE = S_XPLD1
DEATHSOUND = sfx_pop
XDEATHSTATE = 0
SPEED = 3
RADIUS = 1048576
HEIGHT = 2097152
MASS = 100
DAMAGE = 0
ACTIVESOUND = 0
RAISESTATE = 0
FLAGS = MF_SLIDEME|MF_ENEMY|MF_SPECIAL|MF_SHOOTABLE


FRAME S_OCOMMAND1
SPRITENUMBER = SPR_OCOM
SPRITESUBNUMBER = A
DURATION = 1
NEXT = S_OCOMMAND2
ACTION A_CrawlaCommanderThink
VAR1 = 0
VAR2 = 983040


FRAME S_OCOMMAND2
SPRITENUMBER = SPR_OCOM
SPRITESUBNUMBER = B
DURATION = 1
NEXT = S_OCOMMAND1
ACTION A_CrawlaCommanderThink
VAR1 = 0
VAR2 = 983040


FRAME S_OCOMMAND3
SPRITENUMBER = SPR_OCOM
SPRITESUBNUMBER = C
DURATION = 1
NEXT = S_OCOMMAND4
ACTION A_CrawlaCommanderThink
VAR1 = 0
VAR2 = 983040


FRAME S_OCOMMAND4
SPRITENUMBER = SPR_OCOM
SPRITESUBNUMBER = D
DURATION = 1
NEXT = S_OCOMMAND3
ACTION A_CrawlaCommanderThink
VAR1 = 0
VAR2 = 983040


#Pain cycle for Old Crawla Commander


STATE S_OCOMMAND_PAIN1
SPRITENAME = OCOM
SPRITEFRAME = D
DURATION = 1
NEXT = S_OCOMMAND_PAIN2
ACTION = A_SetObjectFlags
VAR1 = MF_SHOOTABLE
VAR2 = 1


STATE S_OCOMMAND_PAIN2
SPRITENAME = OCOM
SPRITEFRAME = D
DURATION = 1
NEXT = S_OCOMMAND_PAIN3
ACTION = A_PlaySound
VAR1 = sfx_dmpain
VAR2 = 0


STATE S_OCOMMAND_PAIN3
SPRITENAME = OCOM
SPRITEFRAME = D
DURATION = 17
NEXT = S_OCOMMAND_PAIN4
ACTION = A_BunnyHop
VAR1 = 0
VAR2 = -16


STATE S_OCOMMAND_PAIN4
SPRITENAME = OCOM
SPRITEFRAME = D
DURATION = 1
NEXT = S_OCOMMAND3
ACTION = A_SetObjectFlags
VAR1 = MF_SHOOTABLE
VAR2 = 2
If anyone else wants to provide a better solution to this, you're free to do so.
 
Yes, the sprites are a direct rip from 1.09.4, but the SOC information was pulled from the wiki due to 2.1 not having a socedit program.

Edit: I just applied the fix and the commander works perfectly now. Thank you!
 
Last edited:
Status
Not open for further replies.

Who is viewing this thread (Total: 1, Members: 0, Guests: 1)

Back
Top