Talk:Enable and fix minibosses: Difference between revisions
Hendricks266 (talk | contribs) |
|||
| (11 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
== I will change all == | == I will change all == | ||
I have made codes that works totally correct in them. | I have made codes that works totally correct in them. [[Image:Smile.gif]] | ||
In fact, your code is basic, but not full-working. | In fact, your code is basic, but not full-working. | ||
| Line 16: | Line 16: | ||
Edit: Shouldn't we too disable BOSS3 from going in sector lotag 1? | Edit: Shouldn't we too disable BOSS3 from going in sector lotag 1? | ||
- | -[[User:Ilovefoxes|Ilovefoxes]] | ||
== I am offended. == | |||
Frankly, you butchered this tutorial. I cannot understand the tutorial for what it is. Remember, it is supposed to be easy. For now, '''''I''''' will work on a fix that will not waste time with seperate actors. All you have to do to is integrate an "ifspritepal 0 nullop else { <insert miniboss-only code here> }" clause into the code. | Frankly, you butchered this tutorial. I cannot understand the tutorial for what it is. Remember, it is supposed to be easy. For now, '''''I''''' will work on a fix that will not waste time with seperate actors. All you have to do to is integrate an "ifspritepal 0 nullop else { <insert miniboss-only code here> }" clause into the code. | ||
| Line 55: | Line 58: | ||
6 - BOSS4 should have a different speed in pal. | 6 - BOSS4 should have a different speed in pal. | ||
== | -[[User:Ilovefoxes|Ilovefoxes]] | ||
== I am sorry I got angry. == | |||
1 - The same thing with state checkboss2hitstate and state checkboss2hitstate. The death sound. | 1 - The same thing with state checkboss2hitstate and state checkboss2hitstate. The death sound. | ||
2 - I will fix that soon. | 2 - I thought that the opening quote was triggered by a [[sector]] effect… In any case, I will fix that soon. | ||
3 - I will fix that soon. | 3 - I will fix that soon. | ||
| Line 73: | Line 78: | ||
Cheers,<br /> | Cheers,<br /> | ||
[[User:Hendricks 266|Hendricks266]] | [[User:Hendricks 266|Hendricks266]] | ||
== So far… == | |||
I have edited the tutorial, and now all that is left to complete: | |||
#Fixing BOSS3's freezing effect | |||
#Adding the actors "BOSS1SHOOT" and "BOSS1LOB" (Note: I have done this already, but I need to fix the code.) | |||
#Adding a stayput for BOSS2 and BOSS3 (Note: See note that is above.) | |||
#Removing BOSS2's and BOSS3's opening quotes (if they are there…) | |||
#Making BOSS4 slower when shrunk | |||
…but, other than that, I think that the tutorial is mostly finished. | |||
If you are going to change my tutorial, please don't completely change it like you did before. I put a lot of effort into it. I know you did too, but yours "went against the grain", as so to speak. I did make a backup of yours, and I did add some of the better parts (like the clarification of the miniboss strengths). | |||
Also, please make sure that your spelling and grammar are correct, and that you are concise and to-the-point. | |||
If we work together, I bet we could finish it in two (2) days! | |||
Cheers,<br /> | |||
[[User:Hendricks 266|Hendricks266]] @ 17:09, 8 November 2006 (PST) | |||
== Further Discussion == | |||
There is an extended way to fix Queen pallete without using gamevars, but it is a big code. What should we use? | |||
-[[User:Ilovefoxes|Ilovefoxes]] | |||
---- | |||
Gamevars. | |||
Can you provide some code for fixing BOSS3's freezing effect and put it here, '''''not''''' in the tutorial itself? I will look it over, check your spelling and grammar, and expand you documentation. It would help me very much. [[Image:Wink.gif]] | |||
Thank you for cooperating so well! [[Image:Smile.gif]] | |||
Also, could you put a page-width line (Syntax: <code><nowiki>----</nowiki></code>) between my messages and your messages from now on? | |||
Cheers,<br /> | |||
[[User:Hendricks 266|Hendricks266]] @ 16:34, 9 November 2006 (PST) | |||
---- | |||
I will show you the codes I have made, to work perfectly correct. Note the bold parts (added codes). If you could work on them, would be good. =) | |||
Just remeber that it was made to be entire full-working mini-boss like Battlelord. Sample: | |||
ai AIBOSS4SEEKENEMY ABOSS4WALK BOSS4WALKVELS seekplayer | |||
state checkpalboss4seekstate | |||
ai AIBOSS4SEEKENEMY | |||
move PALBOSS4WALKVELS seekplayer | |||
ends | |||
You ask: Why did hell you set "BOSS4WALKVELS" and after put "move PALBOSS4WALKVELS"? At Battlelord, some times (after frozen, for what I remeber), the mini-boss move at the big-boss speed because is just set "ai AIBOSS4SEEKENEMY" instead "state checkpalboss4seekstate", and it is a detail, but the best to do with the mini-bosses and the hard-coded Queen, is make them works like Battlelord. | |||
Defs | |||
define BOSS2 2710 | |||
<b>define BOSS2STAYPUT 2711</b> | |||
define BOSS3 2760 | |||
<b>define BOSS3STAYPUT 2761</b> | |||
User | |||
define BOSS1STRENGTH 4500 | |||
define BOSS1PALSTRENGTH 1000 | |||
define BOSS2STRENGTH 4500 | |||
<b>define BOSS2PALSTRENGTH 1000</b> | |||
define BOSS3STRENGTH 4500 | |||
<b>define BOSS3PALSTRENGTH 1000</b> | |||
define BOSS4STRENGTH 6000 | |||
<b>define BOSS4PALSTRENGTH 1333</b> | |||
BOSS2 and BOSS3 | |||
action ABOSS2WALK 0 4 5 1 30 | |||
action ABOSS2FROZEN 0 1 5 | |||
action ABOSS2RUN 0 4 5 1 15 | |||
action ABOSS2SHOOT 20 2 5 1 15 | |||
action ABOSS2LOB 30 2 5 1 105 | |||
action ABOSS2DYING 40 8 1 1 35 | |||
action BOSS2FLINTCH 40 1 1 1 1 | |||
action ABOSS2DEAD 48 | |||
move PALBOSS2SHRUNKRUNVELS 32 | |||
move PALBOSS2RUNVELS 84 | |||
move BOSS2WALKVELS 192 | |||
move BOSS2RUNVELS 256 | |||
move BOSS2STOPPED | |||
ai AIBOSS2SEEKENEMY ABOSS2WALK BOSS2WALKVELS seekplayer | |||
ai AIBOSS2RUNENEMY ABOSS2RUN BOSS2RUNVELS faceplayer | |||
ai AIBOSS2SHOOTENEMY ABOSS2SHOOT BOSS2STOPPED faceplayer | |||
ai AIBOSS2LOBBED ABOSS2LOB BOSS2STOPPED faceplayer | |||
ai AIBOSS2DYING ABOSS2DYING BOSS2STOPPED faceplayer | |||
ai AIBOSS2PALSHRINK ABOSS2WALK PALBOSS2SHRUNKRUNVELS furthestdir | |||
state boss2palshrunkstate | |||
ifcount SHRUNKDONECOUNT | |||
{ | |||
cstat 257 | |||
ai AITROOPSEEKENEMY | |||
} | |||
else | |||
ifcount SHRUNKCOUNT | |||
sizeto 40 40 | |||
else | |||
state genericshrunkcode | |||
ends | |||
state checkboss2seekstate | |||
ai AIBOSS2SEEKENEMY | |||
ifspritepal 0 nullop | |||
else // a fake way of doing a ifspritepal NOT. | |||
move PALBOSS2RUNVELS seekplayer | |||
ends | |||
state boss2runenemystate | |||
ifcansee | |||
{ | |||
ifactioncount 3 | |||
{ | |||
ifcanshoottarget | |||
{ | |||
resetactioncount | |||
sound BOS1_WALK | |||
} | |||
else | |||
ai AIBOSS2SEEKENEMY | |||
} | |||
ifcount 48 | |||
ifrnd 2 | |||
{ | |||
ifp palive | |||
{ | |||
sound BOS2_ATTACK | |||
ai AIBOSS2SHOOTENEMY | |||
} | |||
break | |||
} | |||
} | |||
else | |||
ai AIBOSS2SEEKENEMY | |||
ends | |||
state boss2seekenemystate | |||
ifrnd 2 | |||
soundonce BOS2_ROAM | |||
else | |||
ifactioncount 3 | |||
{ | |||
resetactioncount | |||
sound BOS1_WALK | |||
} | |||
ifcansee | |||
ifcount 32 | |||
ifp palive | |||
ifrnd 48 | |||
ifcanshoottarget | |||
{ | |||
ifrnd 64 | |||
ifpdistg 4096 | |||
{ | |||
ai AIBOSS2RUNENEMY | |||
ifspritepal 0 nullop | |||
else | |||
move PALBOSS2RUNVELS seekplayer | |||
break | |||
} | |||
ifpdistl 10240 | |||
{ | |||
ifrnd 128 | |||
{ | |||
sound BOS2_ATTACK | |||
ai AIBOSS2LOBBED | |||
} | |||
} | |||
else | |||
{ | |||
sound BOS2_ATTACK | |||
ai AIBOSS2SHOOTENEMY | |||
} | |||
} | |||
ends | |||
state boss2dyingstate | |||
ifaction ABOSS2DEAD | |||
{ | |||
ifspritepal 0 | |||
break | |||
ifrespawn | |||
ifcount RESPAWNACTORTIME | |||
{ | |||
spawn TRANSPORTERSTAR | |||
cstat 257 | |||
strength PIGCOPSTRENGTH | |||
state checkboss2seekstate | |||
} | |||
else | |||
{ | |||
strength 0 | |||
ifhitweapon | |||
ifwasweapon RADIUSEXPLOSION | |||
{ | |||
sound SQUISHED | |||
state standard_jibs | |||
killit | |||
} | |||
break | |||
} | |||
} | |||
ifactioncount 8 | |||
{ | |||
iffloordistl 8 | |||
sound THUD | |||
action ABOSS2DEAD | |||
cstat 0 | |||
ifspritepal 0 | |||
endofgame 52 | |||
} | |||
ends | |||
state boss2lobbedstate | |||
ifcansee | |||
{ | |||
ifactioncount 2 | |||
resetactioncount | |||
else | |||
ifactioncount 1 | |||
{ | |||
ifrnd 128 | |||
shoot COOLEXPLOSION1 | |||
} | |||
else | |||
ifcount 64 | |||
ifrnd 16 | |||
state checkboss2seekstate | |||
} | |||
else | |||
state checkboss2seekstate | |||
ends | |||
state boss2shootenemy | |||
ifcount 72 | |||
state checkboss2seekstate | |||
else | |||
ifaction ABOSS2SHOOT | |||
ifactioncount 2 | |||
{ | |||
shoot RPG | |||
resetactioncount | |||
} | |||
ends | |||
state checkboss2hitstate | |||
ifrnd 2 | |||
spawn BLOODPOOL | |||
ifdead | |||
{ | |||
ifspritepal 0 | |||
globalsound DUKE_TALKTOBOSSFALL | |||
else | |||
{ | |||
ifrnd 64 | |||
globalsound DUKE_TALKTOBOSSFALL | |||
ifwasweapon FREEZEBLAST | |||
{ | |||
sound SOMETHINGFROZE | |||
spritepal 1 | |||
move 0 | |||
action ABOSS2FROZEN | |||
strength 0 | |||
break | |||
} | |||
} | |||
sound BOS2_DYING | |||
addkills 1 | |||
ai AIBOSS2DYING | |||
} | |||
else | |||
{ | |||
ifrnd 144 | |||
{ | |||
ifrnd 32 | |||
{ | |||
action BOSS2FLINTCH | |||
move 0 | |||
} | |||
else | |||
{ | |||
sound BOS2_ATTACK | |||
ai AIBOSS2SHOOTENEMY | |||
} | |||
} | |||
ifspritepal 0 nullop | |||
else | |||
ifwasweapon SHRINKSPARK | |||
{ | |||
sound ACTOR_SHRINKING | |||
ai AIBOSS2PALSHRINK | |||
break | |||
} | |||
soundonce BOS2_PAIN | |||
debris SCRAP1 1 | |||
guts JIBS6 1 | |||
} | |||
ends | |||
state boss2code | |||
ifaction ABOSS2FROZEN | |||
{ | |||
ifcount THAWTIME | |||
{ | |||
ai AIBOSS2SEEKENEMY | |||
spritepal 21 | |||
} | |||
else | |||
ifcount FROZENDRIPTIME | |||
{ | |||
ifactioncount 26 | |||
{ | |||
spawn WATERDRIP | |||
resetactioncount | |||
} | |||
} | |||
ifhitweapon | |||
{ | |||
ifwasweapon FREEZEBLAST | |||
{ | |||
strength 0 | |||
break | |||
} | |||
addkills 1 | |||
lotsofglass 30 | |||
sound GLASS_BREAKING | |||
ifrnd 84 spawn BLOODPOOL | |||
killit | |||
} | |||
ifp pfacing | |||
ifpdistl FROZENQUICKKICKDIST | |||
pkick | |||
break | |||
} | |||
ifai 0 | |||
{ | |||
ifspritepal 0 | |||
ai AIBOSS2RUNENEMY | |||
else | |||
{ | |||
strength <b>BOSS2PALSTRENGTH | |||
stopallsounds | |||
sound BOS2_RECOG</b> | |||
sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY | |||
<b>clipdist 16</b> | |||
} | |||
} | |||
else | |||
ifaction BOSS2FLINTCH | |||
{ | |||
ifactioncount 3 | |||
ai AIBOSS2SEEKENEMY | |||
} | |||
else | |||
ifai AIBOSS2SEEKENEMY | |||
state boss2seekenemystate | |||
else | |||
ifai AIBOSS2RUNENEMY | |||
state boss2runenemystate | |||
else | |||
ifai AIBOSS2SHOOTENEMY | |||
state boss2shootenemy | |||
else | |||
ifai AIBOSS2LOBBED | |||
state boss2lobbedstate | |||
else | |||
ifai AIBOSS2PALSHRINK | |||
state boss2palshrunkstate | |||
ifai AIBOSS2DYING | |||
state boss2dyingstate | |||
else | |||
{ | |||
ifhitweapon state checkboss2hitstate | |||
else | |||
ifp palive | |||
ifspritepal 0 ifpdistl | |||
1280 | |||
{ | |||
addphealth -1000 | |||
palfrom 63 63 | |||
} | |||
} | |||
ends | |||
<b>useractor enemystayput BOSS2STAYPUT BOSS2STRENGTH | |||
cactor BOSS2 | |||
ifaction 0 | |||
{ | |||
ifspritepal 0 | |||
sizeat 80 80 | |||
else | |||
sizeat 40 40 | |||
cstat 257 | |||
action ANULLACTION | |||
} | |||
enda</b> | |||
actor BOSS2 BOSS2STRENGTH fall state boss2code enda | |||
action ABOSS3WALK 0 4 5 1 30 | |||
action ABOSS3FROZEN 0 1 5 | |||
action ABOSS3RUN 0 4 5 1 15 | |||
action ABOSS3LOB 20 4 5 1 50 | |||
action ABOSS3LOBBING 30 2 5 1 15 | |||
action ABOSS3DYING 40 8 1 1 20 | |||
action BOSS3FLINTCH 40 1 1 1 1 | |||
action ABOSS3DEAD 48 | |||
move PALBOSS3SHRUNKRUNVELS 32 | |||
move PALBOSS3RUNVELS 84 | |||
move BOSS3WALKVELS 208 | |||
move BOSS3RUNVELS 270 | |||
move BOSS3STOPPED | |||
ai AIBOSS3SEEKENEMY ABOSS3WALK BOSS3WALKVELS seekplayer | |||
ai AIBOSS3RUNENEMY ABOSS3RUN BOSS3RUNVELS faceplayerslow | |||
ai AIBOSS3LOBENEMY ABOSS3LOB BOSS3STOPPED faceplayer | |||
ai AIBOSS3DYING ABOSS3DYING BOSS3STOPPED faceplayer | |||
ai AIBOSS3PALSHRINK ABOSS3WALK PALBOSS3SHRUNKRUNVELS <b>furthestdir</b> | |||
state boss3palshrunkstate | |||
ifcount SHRUNKDONECOUNT | |||
ai AITROOPSEEKENEMY | |||
else | |||
ifcount SHRUNKCOUNT | |||
sizeto 40 40 | |||
else | |||
state genericshrunkcode | |||
ends | |||
state checkboss3seekstate | |||
ai AIBOSS3SEEKENEMY | |||
ifspritepal 0 nullop | |||
else // a fake way of doing a ifspritepal NOT. | |||
move PALBOSS3RUNVELS seekplayer | |||
ends | |||
state boss3runenemystate | |||
ifcansee | |||
{ | |||
ifactioncount 3 | |||
{ | |||
ifcanshoottarget | |||
{ | |||
resetactioncount | |||
sound BOS1_WALK | |||
} | |||
else | |||
ai AIBOSS3SEEKENEMY | |||
} | |||
} | |||
else | |||
ai AIBOSS3SEEKENEMY | |||
ends | |||
state boss3seekenemystate | |||
ifrnd 2 | |||
soundonce BOS3_ROAM | |||
else | |||
ifactioncount 3 | |||
{ | |||
resetactioncount | |||
sound BOS1_WALK | |||
} | |||
ifcansee | |||
ifcount 32 | |||
ifrnd 48 | |||
ifcanshoottarget | |||
{ | |||
ifrnd 64 | |||
ifpdistg 4096 | |||
{ | |||
ai AIBOSS3RUNENEMY | |||
ifspritepal 0 | |||
break | |||
move PALBOSS3RUNVELS seekplayer | |||
break | |||
} | |||
ifp palive | |||
ai AIBOSS3LOBENEMY | |||
} | |||
ends | |||
state boss3dyingstate | |||
ifaction ABOSS3DEAD | |||
{ | |||
ifspritepal 0 | |||
break | |||
ifrespawn | |||
ifcount RESPAWNACTORTIME | |||
{ | |||
spawn TRANSPORTERSTAR | |||
cstat 257 | |||
strength PIGCOPSTRENGTH | |||
state checkboss3seekstate | |||
} | |||
else | |||
{ | |||
strength 0 | |||
ifhitweapon | |||
ifwasweapon RADIUSEXPLOSION | |||
{ | |||
sound SQUISHED | |||
state standard_jibs | |||
killit | |||
} | |||
break | |||
} | |||
} | |||
ifactioncount 8 | |||
{ | |||
iffloordistl 8 | |||
sound THUD | |||
action ABOSS3DEAD | |||
cstat 0 | |||
ifspritepal 0 | |||
endofgame 52 | |||
} | |||
ends | |||
state boss3lobbedstate | |||
ifcansee | |||
{ | |||
ifaction ABOSS3LOBBING | |||
ifactioncount 2 | |||
{ | |||
shoot RPG | |||
resetactioncount | |||
ifrnd 8 | |||
ai AIBOSS3SEEKENEMY | |||
} | |||
ifactioncount 3 | |||
{ | |||
action ABOSS3LOBBING | |||
resetcount | |||
} | |||
} | |||
else | |||
state checkboss3seekstate | |||
ends | |||
state checkboss3hitstate | |||
ifrnd 2 | |||
spawn BLOODPOOL | |||
ifdead | |||
{ | |||
ifspritepal 0 | |||
globalsound DUKE_TALKTOBOSSFALL | |||
else | |||
{ | |||
ifrnd 64 | |||
globalsound DUKE_TALKTOBOSSFALL | |||
ifwasweapon FREEZEBLAST | |||
{ | |||
sound SOMETHINGFROZE | |||
spritepal 1 | |||
move 0 | |||
action ABOSS3FROZEN | |||
strength 0 | |||
break | |||
} | |||
} | |||
addkills 1 | |||
ai AIBOSS3DYING | |||
sound BOS3_DYING | |||
sound JIBBED_ACTOR9 | |||
} | |||
else | |||
{ | |||
ifrnd 32 | |||
{ | |||
action BOSS3FLINTCH | |||
move 0 | |||
} | |||
ifspritepal 0 nullop | |||
else | |||
ifwasweapon SHRINKSPARK | |||
{ | |||
sound ACTOR_SHRINKING | |||
ai AIBOSS3PALSHRINK | |||
break | |||
} | |||
soundonce BOS3_PAIN | |||
debris SCRAP1 1 | |||
guts JIBS6 1 | |||
} | |||
ends | |||
state boss3code | |||
ifaction ABOSS3FROZEN | |||
<b> { | |||
ifcount THAWTIME | |||
{ | |||
ai AIBOSS3SEEKENEMY | |||
spritepal 21 | |||
} | |||
else | |||
ifcount FROZENDRIPTIME | |||
{ | |||
ifactioncount 26 | |||
{ | |||
spawn WATERDRIP | |||
resetactioncount | |||
} | |||
}</b> | |||
ifhitweapon | |||
{ | |||
ifwasweapon FREEZEBLAST | |||
{ | |||
strength 0 | |||
break | |||
} | |||
addkills 1 | |||
lotsofglass 30 | |||
ifrnd 84 | |||
spawn BLOODPOOL | |||
sound GLASS_BREAKING | |||
killit | |||
} | |||
ifp pfacing | |||
ifpdistl FROZENQUICKKICKDIST | |||
pkick | |||
break | |||
} | |||
ifai 0 | |||
{ | |||
ifspritepal 0 | |||
ai AIBOSS3RUNENEMY | |||
else | |||
{ | |||
strength <b>BOSS3PALSTRENGTH | |||
stopallsounds | |||
sound BOS3_RECOG</b> | |||
ai AIBOSS3LOBENEMY | |||
<b>clipdist 16</b> | |||
} | |||
} | |||
else | |||
ifaction BOSS3FLINTCH | |||
{ | |||
ifactioncount 3 | |||
ai AIBOSS3SEEKENEMY | |||
} | |||
else | |||
ifai AIBOSS3SEEKENEMY | |||
state boss3seekenemystate | |||
else | |||
ifai AIBOSS3RUNENEMY | |||
state boss3runenemystate | |||
else | |||
ifai AIBOSS3LOBENEMY | |||
state boss3lobbedstate | |||
else | |||
ifai AIBOSS3PALSHRINK | |||
state boss3palshrunkstate | |||
ifai AIBOSS3DYING | |||
state boss3dyingstate | |||
else | |||
{ | |||
ifhitweapon | |||
state checkboss3hitstate | |||
else | |||
ifp palive | |||
ifspritepal 0 | |||
ifpdistl 1280 | |||
{ | |||
addphealth -1000 | |||
palfrom 63 63 | |||
} | |||
} | |||
ends | |||
<b>useractor enemystayput BOSS3STAYPUT BOSS3STRENGTH | |||
cactor BOSS3 | |||
ifaction 0 | |||
{ | |||
ifspritepal 0 | |||
sizeat 80 80 | |||
else | |||
sizeat 40 40 | |||
cstat 257 | |||
} | |||
enda</b> | |||
actor BOSS3 BOSS3STRENGTH fall state boss3code enda | |||
BOSS4 | |||
action ABOSS4WALK 0 4 5 1 30 | |||
<b>action ABOSS4FROZEN 0 1 5</b> | |||
action ABOSS4DYING 40 9 1 1 20 | |||
action ABOSS4ABOUTTOSHOOT 20 1 5 1 40 | |||
action ABOSS4SHOOT 25 2 5 1 10 | |||
action ABOSS4LAYIT 50 3 5 1 120 | |||
action BOSS4FLINTCH 40 1 1 1 1 | |||
action ABOSS4DEAD 49 | |||
<b>move PALBOSS4WALKVELS 48</b> | |||
move BOSS4WALKVELS 128 | |||
move BOSS4STOPPED | |||
<b>ai AIBOSS4SEEKENEMY ABOSS4WALK BOSS4WALKVELS seekplayer</b> | |||
ai AIBOSS4LAYEGGS ABOSS4WALK BOSS4WALKVELS randomangle geth | |||
ai AIBOSS4SHOOT ABOSS4ABOUTTOSHOOT BOSS4STOPPED faceplayer | |||
ai AIBOSS4DYING ABOSS4DYING BOSS4STOPPED faceplayer | |||
state boss4shootstate | |||
ifaction ABOSS4ABOUTTOSHOOT | |||
ifactioncount 3 | |||
action ABOSS4SHOOT | |||
ifaction ABOSS4SHOOT | |||
{ | |||
ifcount 48 | |||
{ | |||
ifrnd 4 | |||
ai AIBOSS4LAYEGGS | |||
} | |||
ifcount 26 | |||
ifrnd 32 | |||
{ | |||
ifrnd 128 | |||
{ | |||
sound SHORT_CIRCUIT | |||
addphealth -2 | |||
} | |||
else | |||
{ | |||
sound DUKE_GRUNT | |||
addphealth -1 | |||
} | |||
palfrom 32 32 0 0 | |||
} | |||
} | |||
ends | |||
state boss4layeggs | |||
ifrnd 2 | |||
sound BOS4_ROAM | |||
ifaction ABOSS4LAYIT | |||
{ | |||
ifactioncount 3 | |||
ifcount 32 | |||
{ | |||
ai AIBOSS4LAYEGGS | |||
ifrnd 32 | |||
move BOSS4WALKVELS furthestdir geth | |||
spawn NEWBEASTHANG | |||
} | |||
} | |||
else | |||
ifcount 64 | |||
ifrnd 4 | |||
{ | |||
move 0 | |||
ifrnd 88 | |||
{ | |||
action ABOSS4LAYIT | |||
sound BOS4_LAY | |||
} | |||
else | |||
ifp palive | |||
ifcansee | |||
{ | |||
ai AIBOSS4SHOOT | |||
sound BOS4_ATTACK | |||
} | |||
} | |||
ends | |||
state boss4dyingstate | |||
ifaction ABOSS4DEAD | |||
break | |||
else | |||
ifactioncount 9 | |||
{ | |||
iffloordistl 8 | |||
sound THUD | |||
endofgame 52 | |||
action ABOSS4DEAD | |||
cstat 0 | |||
} | |||
ends | |||
state checkboss4hitstate | |||
ifrnd 2 | |||
spawn BLOODPOOL | |||
ifdead | |||
{ | |||
globalsound DUKE_TALKTOBOSSFALL | |||
addkills 1 | |||
ai AIBOSS4DYING | |||
sound BOS4_DYING | |||
sound BOSS4_DEADSPEECH | |||
} | |||
else | |||
{ | |||
soundonce BOS4_PAIN | |||
debris SCRAP1 1 | |||
guts JIBS6 1 | |||
ifaction ABOSS4LAYIT | |||
break | |||
ifrnd 16 | |||
{ | |||
action BOSS4FLINTCH | |||
move 0 | |||
} | |||
} | |||
ends | |||
state boss4code | |||
ifai 0 | |||
ai AIBOSS4LAYEGGS | |||
else | |||
ifaction BOSS4FLINTCH | |||
{ | |||
ifactioncount 3 | |||
ai AIBOSS4LAYEGGS | |||
} | |||
else | |||
ifai AIBOSS4LAYEGGS | |||
state boss4layeggs | |||
else | |||
ifai AIBOSS4SHOOT | |||
state boss4shootstate | |||
ifai AIBOSS4DYING | |||
state boss4dyingstate | |||
else | |||
{ | |||
ifhitweapon | |||
state checkboss4hitstate | |||
else | |||
ifp palive | |||
ifpdistl 1280 | |||
{ | |||
addphealth -1000 | |||
palfrom 63 63 | |||
} | |||
} | |||
ends | |||
<b>state checkpalboss4seekstate | |||
ai AIBOSS4SEEKENEMY | |||
move PALBOSS4WALKVELS seekplayer | |||
ends | |||
state palboss4seekenemystate | |||
ifrnd 2 | |||
sound BOS4_ROAM | |||
ifcount 64 | |||
ifrnd 4 | |||
{ | |||
move 0 | |||
ifp palive | |||
ifcansee | |||
{ | |||
ai AIBOSS4SHOOT | |||
sound BOS4_ATTACK | |||
} | |||
} | |||
ends | |||
state palboss4shootstate | |||
ifaction ABOSS4ABOUTTOSHOOT | |||
ifactioncount 3 | |||
action ABOSS4SHOOT | |||
ifaction ABOSS4SHOOT | |||
{ | |||
ifcount 48 | |||
{ | |||
ifrnd 4 | |||
{ | |||
state checkpalboss4seekstate | |||
} | |||
} | |||
ifcount 26 | |||
ifrnd 32 | |||
{ | |||
ifrnd 128 | |||
{ | |||
sound SHORT_CIRCUIT | |||
addphealth -2 | |||
} | |||
else | |||
{ | |||
sound DUKE_GRUNT | |||
addphealth -1 | |||
} | |||
palfrom 32 32 0 0 | |||
} | |||
} | |||
ends | |||
state palboss4dyingstate | |||
ifaction ABOSS4DEAD | |||
{ | |||
ifrespawn | |||
ifcount RESPAWNACTORTIME | |||
{ | |||
spawn TRANSPORTERSTAR | |||
cstat 257 | |||
strength PIGCOPSTRENGTH | |||
state checkpalboss4seekstate | |||
} | |||
else | |||
{ | |||
strength 0 | |||
ifhitweapon | |||
ifwasweapon RADIUSEXPLOSION | |||
{ | |||
sound SQUISHED | |||
state standard_jibs | |||
killit | |||
} | |||
break | |||
} | |||
} | |||
ifactioncount 9 | |||
{ | |||
iffloordistl 8 | |||
sound THUD | |||
action ABOSS4DEAD | |||
cstat 0 | |||
} | |||
ends | |||
state checkpalboss4hitstate | |||
ifrnd 2 | |||
spawn BLOODPOOL | |||
ifdead | |||
{ | |||
ifrnd 64 | |||
globalsound DUKE_TALKTOBOSSFALL | |||
ifwasweapon FREEZEBLAST | |||
{ | |||
sound SOMETHINGFROZE | |||
spritepal 1 | |||
move 0 | |||
action ABOSS4FROZEN | |||
strength 0 | |||
break | |||
} | |||
addkills 1 | |||
ai AIBOSS4DYING | |||
sound BOS4_DYING | |||
sound BOSS4_DEADSPEECH | |||
} | |||
else | |||
{ | |||
soundonce BOS4_PAIN | |||
debris SCRAP1 1 | |||
guts JIBS6 1 | |||
ifaction ABOSS4LAYIT | |||
break | |||
ifrnd 16 | |||
{ | |||
action BOSS4FLINTCH | |||
move 0 | |||
} | |||
} | |||
ends | |||
state palboss4code | |||
ifaction ABOSS4FROZEN | |||
{ | |||
ifcount THAWTIME | |||
{ | |||
ai AIBOSS4SEEKENEMY | |||
spritepal 3 | |||
} | |||
else | |||
ifcount FROZENDRIPTIME | |||
{ | |||
ifactioncount 26 | |||
{ | |||
spawn WATERDRIP | |||
resetactioncount | |||
} | |||
} | |||
ifhitweapon | |||
{ | |||
ifwasweapon FREEZEBLAST | |||
{ | |||
strength 0 | |||
break | |||
} | |||
addkills 1 | |||
lotsofglass 30 | |||
ifrnd 84 | |||
spawn BLOODPOOL | |||
sound GLASS_BREAKING | |||
killit | |||
} | |||
ifp pfacing | |||
ifpdistl FROZENQUICKKICKDIST | |||
pkick | |||
break | |||
} | |||
ifai 0 | |||
{ | |||
strength BOSS4PALSTRENGTH | |||
stopallsounds | |||
sound BOS4_RECOG | |||
sound BOS4_ATTACK | |||
ai AIBOSS4SHOOT | |||
} | |||
else | |||
ifaction BOSS4FLINTCH | |||
{ | |||
ifactioncount 3 | |||
ai AIBOSS4SEEKENEMY | |||
} | |||
else | |||
ifai AIBOSS4SEEKENEMY | |||
state palboss4seekenemystate | |||
else | |||
ifai AIBOSS4SHOOT | |||
state palboss4shootstate | |||
ifai AIBOSS4DYING | |||
state palboss4dyingstate | |||
else | |||
{ | |||
ifhitweapon | |||
state checkpalboss4hitstate | |||
} | |||
ends | |||
</b> | |||
actor BOSS4STAYPUT BOSS4STRENGTH | |||
fall | |||
cactor BOSS4 | |||
<b> ifspritepal 0 | |||
{</b> | |||
spritepal 6 | |||
state boss4code | |||
getlastpal | |||
<b> } | |||
else | |||
ifaction ABOSS4FROZEN | |||
state palboss4code | |||
else | |||
{ | |||
spritepal 6 | |||
state palboss4code | |||
ifaction ABOSS4FROZEN | |||
break | |||
getlastpal | |||
}</b> | |||
enda | |||
actor BOSS4 BOSS4STRENGTH | |||
fall | |||
cactor BOSS4 | |||
<b> ifspritepal 0 | |||
{</b> | |||
spritepal 6 | |||
state boss4code | |||
getlastpal | |||
<b> } | |||
else | |||
ifaction ABOSS4FROZEN | |||
state palboss4code | |||
else | |||
{ | |||
spritepal 6 | |||
state palboss4code | |||
ifaction ABOSS4FROZEN | |||
break | |||
getlastpal | |||
}</b> | |||
enda | |||
-[[User:Ilovefoxes|Ilovefoxes]] | |||
---- | |||
Thank you very very much! [[Image:Smile.gif]] [[Image:Smile.gif]] [[Image:Smile.gif]] | |||
I am finished with BOSS1, BOSS2, and BOSS3 for the most part. My modification of BOSS4 will take longer because I want to integrate your code with the existing code using <code>ifvarn BOSSSPRPAL 0 { <insert code here> }</code>. | |||
Cheers,<br /> | |||
[[User:Hendricks 266|Hendricks266]] @ 14:58, 11 November 2006 (PST) | |||
---- | |||
useractor enemy BOSS1SHOOT BOSS1STRENGTH fall cactor BOSS1 ai AIBOSS1SHOOTENEMY enda // This actor automatically shoots the player. | |||
The reason why they don't give to the boss that is because his first action already is shoots. =p | |||
ifdead | |||
{ | |||
ifspritepal 0 | |||
globalsound DUKE_TALKTOBOSSFALL | |||
else | |||
{ | |||
<b>ifrnd 64 | |||
globalsound DUKE_TALKTOBOSSFALL</b> | |||
ifwasweapon FREEZEBLAST | |||
{ | |||
sound SOMETHINGFROZE | |||
spritepal 1 | |||
move 0 | |||
action ABOSS1FROZEN | |||
strength 0 | |||
break | |||
} | |||
} | |||
sound BOS1_DYING | |||
addkills 1 | |||
ai AIBOSS1DYING | |||
} | |||
ifaction ABOSS1FROZEN | |||
{ | |||
ifcount THAWTIME | |||
{ | |||
ai AIBOSS1SEEKENEMY | |||
<b>spritepal 21</b> | |||
} | |||
else | |||
ifcount FROZENDRIPTIME | |||
{ | |||
ifactioncount 26 | |||
{ | |||
spawn WATERDRIP | |||
resetactioncount | |||
} | |||
} | |||
I don't agree in those changes. This tutorial is to add mini-bosses to Overlord, Cycloid Emperor and Queen, not to fix wathever bug you think that there are in Battlelord coding. Including adding a BOSS1LOBBING tile. | |||
And we shouldn't change a original enemy, anyway. | |||
As long as if we do that, we have a very big list of things coming with: | |||
Allow bosses to grow with expander; | |||
Fix Octabrain addskill -1; | |||
Add "ifaction ENEMYSHRUNK break action ENEMYHIT" to all enemies to them don't have the bug "shrunk enemy attacking"; | |||
And, how can you see, we cannot set what change along adding mini-bosses to the others, we should do. | |||
There is no needed to add a code to disable boss from going in water on the cases of Battlelord and Cycloid Emperor, because mini-Battlelord works perfectly, and Cycloid Emperor mini-boss is most done (as there is no frozen error and he don't go to water). | |||
useractor enemystayput BOSS2STAYPUT BOSS2STRENGTH fall cactor BOSS2 enda | |||
Is needed to put cstat and sizeat (mini 40 40 and big boss 80 80) at new actors for the bosses. | |||
I see you have replaced codes in BOSS3 at frozen, but there is only required add some. | |||
And at the end I don't know what risk in BOSS4 are you talking about, the one I have works perfectly, I just feel missing some codes at yours. =/ | |||
Edit: | |||
I related that Battlelord at stayput do not screm, so, I have made changes to the new mini-bosses scream only at non-stayput: | |||
ifai 0 | |||
{ | |||
ifspritepal 0 | |||
ai AIBOSS2RUNENEMY | |||
else | |||
{ | |||
strength BOSS2PALSTRENGTH | |||
sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY | |||
clipdist 16 | |||
} | |||
} | |||
useractor enemystayput BOSS2STAYPUT BOSS2STRENGTH | |||
cactor BOSS2 | |||
ifaction 0 | |||
{ | |||
ifspritepal 0 | |||
sizeat 80 80 | |||
else | |||
sizeat 40 40 | |||
cstat 257 | |||
action ANULLACTION | |||
} | |||
enda | |||
actor BOSS2 BOSS2STRENGTH fall state boss2code | |||
ifspritepal 0 | |||
nullop | |||
else | |||
ifaction 0 | |||
{ | |||
stopallsounds | |||
sound BOS2_RECOG | |||
action ANULLACTION | |||
} | |||
enda | |||
ifai 0 | |||
{ | |||
ifspritepal 0 | |||
ai AIBOSS3RUNENEMY | |||
else | |||
{ | |||
strength BOSS3PALSTRENGTH | |||
ai AIBOSS3LOBENEMY | |||
clipdist 16 | |||
} | |||
} | |||
useractor enemystayput BOSS3STAYPUT BOSS3STRENGTH | |||
cactor BOSS3 | |||
ifaction 0 | |||
{ | |||
ifspritepal 0 | |||
sizeat 80 80 | |||
else | |||
sizeat 40 40 | |||
cstat 257 | |||
} | |||
enda | |||
actor BOSS3 BOSS3STRENGTH fall state boss3code | |||
ifspritepal 0 | |||
nullop | |||
else | |||
ifaction 0 | |||
{ | |||
stopallsounds | |||
sound BOS3_RECOG | |||
action ANULLACTION | |||
} | |||
enda | |||
ifai 0 | |||
{ | |||
strength BOSS4PALSTRENGTH | |||
sound BOS4_ATTACK | |||
ai AIBOSS4SHOOT | |||
} | |||
actor BOSS4STAYPUT BOSS4STRENGTH | |||
fall | |||
cactor BOSS4 | |||
ifspritepal 0 | |||
{ | |||
spritepal 6 | |||
state boss4code | |||
getlastpal | |||
} | |||
else | |||
ifaction ABOSS4FROZEN | |||
state palboss4code | |||
else | |||
{ | |||
ifai 0 | |||
{ | |||
stopallsounds | |||
action ANULLACTION | |||
} | |||
spritepal 6 | |||
state palboss4code | |||
ifaction ABOSS4FROZEN | |||
break | |||
getlastpal | |||
} | |||
enda | |||
actor BOSS4 BOSS4STRENGTH | |||
fall | |||
cactor BOSS4 | |||
ifspritepal 0 | |||
{ | |||
spritepal 6 | |||
state boss4code | |||
getlastpal | |||
} | |||
else | |||
ifaction ABOSS4FROZEN | |||
state palboss4code | |||
else | |||
{ | |||
ifai 0 | |||
{ | |||
stopallsounds | |||
sound BOS4_RECOG | |||
action ANULLACTION | |||
} | |||
spritepal 6 | |||
state palboss4code | |||
ifaction ABOSS4FROZEN | |||
break | |||
getlastpal | |||
} | |||
enda | |||
Latest revision as of 11:15, 12 November 2006
I will change all
I have made codes that works totally correct in them.
In fact, your code is basic, but not full-working.
BOSS3 doesn't frozen correctly.
If you cannot shrinker a Newbeast, why should you be annolwed to do this with Alien Queen?
There should be good have a Stayput for Overlord and Cycloid Emperor.
There is duke talks, wich shouldn't be used to non gathering enemies, and if more than one togheder, is crap the sound. =p
BOSS4 is very hard to configure. You cannot just set a "IFSPRITEPAL", if you look to the blood color, you will report that this doesn't work totally.
Edit: Shouldn't we too disable BOSS3 from going in sector lotag 1?
I am offended.
Frankly, you butchered this tutorial. I cannot understand the tutorial for what it is. Remember, it is supposed to be easy. For now, I will work on a fix that will not waste time with seperate actors. All you have to do to is integrate an "ifspritepal 0 nullop else { <insert miniboss-only code here> }" clause into the code.
*tries to stop his pointless anger* *succeeds*
Well, what I mean is that all you had to do was change my tutorial, not overwrite it. I am going to change some things back because I had it perfectly organized and presented. (Smilies, anyone?) You need to be much more concise with tutorials. The key here is that this is for beginners, not experts.
Also, I don't know why you would want to keep the Cycloid Emperors out of water, other than that they don't behave very well.
*gets angry again*
One of the main points of my documentation is that you should not put a spritepal of 21 because of the changes in the sprite. Spritepal 3 is the way to go. Period.
What is the point?
BOSS3 is Overlord. Cycloid and Battlelord cannot go to onwater sectors, but why Overlord can?
Sorry if you got angry, but... what is the point in create a tutorial to begginers and not experts, if at all, the minibosses doesn't work correctly?
I know that you can think that it is not good for the Wiki, but if we cannot put the full-working mod, why should we put a half-working?
I can find many erros in the new tutorial:
1 - What's the point with checkboss1hitstate?
2 - I see some changes in DUKE_TALKTOBOSSFALL, but wasn't about it that I was talking about "I will strip you head... Kick your eye..." Duke talks everytime see a boss. Those are related with the tiles, and should be defined new tiles to activate them.
3 - Overlord still frozen with error.
4 - Queen shouldn't be shrinker, as Newbeast.
5 - A simply "ifspritepal" doesn't works for BOSS4, because of the green blood color, related to "spritepal 6 getlastpal".
6 - BOSS4 should have a different speed in pal.
I am sorry I got angry.
1 - The same thing with state checkboss2hitstate and state checkboss2hitstate. The death sound.
2 - I thought that the opening quote was triggered by a sector effect… In any case, I will fix that soon.
3 - I will fix that soon.
4 - I will fix that soon.
5 - So that is what that is for... I will fix that by getting the contents of the original spritepal to a gamevar.
6 - I will fix that soon.
To fix the issue about it being half-working, I will create a notice at the top of the page. Is that OK?
Cheers,
Hendricks266
So far…
I have edited the tutorial, and now all that is left to complete:
- Fixing BOSS3's freezing effect
- Adding the actors "BOSS1SHOOT" and "BOSS1LOB" (Note: I have done this already, but I need to fix the code.)
- Adding a stayput for BOSS2 and BOSS3 (Note: See note that is above.)
- Removing BOSS2's and BOSS3's opening quotes (if they are there…)
- Making BOSS4 slower when shrunk
…but, other than that, I think that the tutorial is mostly finished.
If you are going to change my tutorial, please don't completely change it like you did before. I put a lot of effort into it. I know you did too, but yours "went against the grain", as so to speak. I did make a backup of yours, and I did add some of the better parts (like the clarification of the miniboss strengths).
Also, please make sure that your spelling and grammar are correct, and that you are concise and to-the-point.
If we work together, I bet we could finish it in two (2) days!
Cheers,
Hendricks266 @ 17:09, 8 November 2006 (PST)
Further Discussion
There is an extended way to fix Queen pallete without using gamevars, but it is a big code. What should we use?
Gamevars.
Can you provide some code for fixing BOSS3's freezing effect and put it here, not in the tutorial itself? I will look it over, check your spelling and grammar, and expand you documentation. It would help me very much.
Thank you for cooperating so well!
Also, could you put a page-width line (Syntax: ----) between my messages and your messages from now on?
Cheers,
Hendricks266 @ 16:34, 9 November 2006 (PST)
I will show you the codes I have made, to work perfectly correct. Note the bold parts (added codes). If you could work on them, would be good. =)
Just remeber that it was made to be entire full-working mini-boss like Battlelord. Sample:
ai AIBOSS4SEEKENEMY ABOSS4WALK BOSS4WALKVELS seekplayer
state checkpalboss4seekstate
ai AIBOSS4SEEKENEMY
move PALBOSS4WALKVELS seekplayer
ends
You ask: Why did hell you set "BOSS4WALKVELS" and after put "move PALBOSS4WALKVELS"? At Battlelord, some times (after frozen, for what I remeber), the mini-boss move at the big-boss speed because is just set "ai AIBOSS4SEEKENEMY" instead "state checkpalboss4seekstate", and it is a detail, but the best to do with the mini-bosses and the hard-coded Queen, is make them works like Battlelord.
Defs
define BOSS2 2710 define BOSS2STAYPUT 2711 define BOSS3 2760 define BOSS3STAYPUT 2761
User
define BOSS1STRENGTH 4500 define BOSS1PALSTRENGTH 1000 define BOSS2STRENGTH 4500 define BOSS2PALSTRENGTH 1000 define BOSS3STRENGTH 4500 define BOSS3PALSTRENGTH 1000 define BOSS4STRENGTH 6000 define BOSS4PALSTRENGTH 1333
BOSS2 and BOSS3
action ABOSS2WALK 0 4 5 1 30
action ABOSS2FROZEN 0 1 5
action ABOSS2RUN 0 4 5 1 15
action ABOSS2SHOOT 20 2 5 1 15
action ABOSS2LOB 30 2 5 1 105
action ABOSS2DYING 40 8 1 1 35
action BOSS2FLINTCH 40 1 1 1 1
action ABOSS2DEAD 48
move PALBOSS2SHRUNKRUNVELS 32
move PALBOSS2RUNVELS 84
move BOSS2WALKVELS 192
move BOSS2RUNVELS 256
move BOSS2STOPPED
ai AIBOSS2SEEKENEMY ABOSS2WALK BOSS2WALKVELS seekplayer
ai AIBOSS2RUNENEMY ABOSS2RUN BOSS2RUNVELS faceplayer
ai AIBOSS2SHOOTENEMY ABOSS2SHOOT BOSS2STOPPED faceplayer
ai AIBOSS2LOBBED ABOSS2LOB BOSS2STOPPED faceplayer
ai AIBOSS2DYING ABOSS2DYING BOSS2STOPPED faceplayer
ai AIBOSS2PALSHRINK ABOSS2WALK PALBOSS2SHRUNKRUNVELS furthestdir
state boss2palshrunkstate
ifcount SHRUNKDONECOUNT
{
cstat 257
ai AITROOPSEEKENEMY
}
else
ifcount SHRUNKCOUNT
sizeto 40 40
else
state genericshrunkcode
ends
state checkboss2seekstate
ai AIBOSS2SEEKENEMY
ifspritepal 0 nullop
else // a fake way of doing a ifspritepal NOT.
move PALBOSS2RUNVELS seekplayer
ends
state boss2runenemystate
ifcansee
{
ifactioncount 3
{
ifcanshoottarget
{
resetactioncount
sound BOS1_WALK
}
else
ai AIBOSS2SEEKENEMY
}
ifcount 48
ifrnd 2
{
ifp palive
{
sound BOS2_ATTACK
ai AIBOSS2SHOOTENEMY
}
break
}
}
else
ai AIBOSS2SEEKENEMY
ends
state boss2seekenemystate
ifrnd 2
soundonce BOS2_ROAM
else
ifactioncount 3
{
resetactioncount
sound BOS1_WALK
}
ifcansee
ifcount 32
ifp palive
ifrnd 48
ifcanshoottarget
{
ifrnd 64
ifpdistg 4096
{
ai AIBOSS2RUNENEMY
ifspritepal 0 nullop
else
move PALBOSS2RUNVELS seekplayer
break
}
ifpdistl 10240
{
ifrnd 128
{
sound BOS2_ATTACK
ai AIBOSS2LOBBED
}
}
else
{
sound BOS2_ATTACK
ai AIBOSS2SHOOTENEMY
}
}
ends
state boss2dyingstate
ifaction ABOSS2DEAD
{
ifspritepal 0
break
ifrespawn
ifcount RESPAWNACTORTIME
{
spawn TRANSPORTERSTAR
cstat 257
strength PIGCOPSTRENGTH
state checkboss2seekstate
}
else
{
strength 0
ifhitweapon
ifwasweapon RADIUSEXPLOSION
{
sound SQUISHED
state standard_jibs
killit
}
break
}
}
ifactioncount 8
{
iffloordistl 8
sound THUD
action ABOSS2DEAD
cstat 0
ifspritepal 0
endofgame 52
}
ends
state boss2lobbedstate
ifcansee
{
ifactioncount 2
resetactioncount
else
ifactioncount 1
{
ifrnd 128
shoot COOLEXPLOSION1
}
else
ifcount 64
ifrnd 16
state checkboss2seekstate
}
else
state checkboss2seekstate
ends
state boss2shootenemy
ifcount 72
state checkboss2seekstate
else
ifaction ABOSS2SHOOT
ifactioncount 2
{
shoot RPG
resetactioncount
}
ends
state checkboss2hitstate
ifrnd 2
spawn BLOODPOOL
ifdead
{
ifspritepal 0
globalsound DUKE_TALKTOBOSSFALL
else
{
ifrnd 64
globalsound DUKE_TALKTOBOSSFALL
ifwasweapon FREEZEBLAST
{
sound SOMETHINGFROZE
spritepal 1
move 0
action ABOSS2FROZEN
strength 0
break
}
}
sound BOS2_DYING
addkills 1
ai AIBOSS2DYING
}
else
{
ifrnd 144
{
ifrnd 32
{
action BOSS2FLINTCH
move 0
}
else
{
sound BOS2_ATTACK
ai AIBOSS2SHOOTENEMY
}
}
ifspritepal 0 nullop
else
ifwasweapon SHRINKSPARK
{
sound ACTOR_SHRINKING
ai AIBOSS2PALSHRINK
break
}
soundonce BOS2_PAIN
debris SCRAP1 1
guts JIBS6 1
}
ends
state boss2code
ifaction ABOSS2FROZEN
{
ifcount THAWTIME
{
ai AIBOSS2SEEKENEMY
spritepal 21
}
else
ifcount FROZENDRIPTIME
{
ifactioncount 26
{
spawn WATERDRIP
resetactioncount
}
}
ifhitweapon
{
ifwasweapon FREEZEBLAST
{
strength 0
break
}
addkills 1
lotsofglass 30
sound GLASS_BREAKING
ifrnd 84 spawn BLOODPOOL
killit
}
ifp pfacing
ifpdistl FROZENQUICKKICKDIST
pkick
break
}
ifai 0
{
ifspritepal 0
ai AIBOSS2RUNENEMY
else
{
strength BOSS2PALSTRENGTH
stopallsounds
sound BOS2_RECOG
sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY
clipdist 16
}
}
else
ifaction BOSS2FLINTCH
{
ifactioncount 3
ai AIBOSS2SEEKENEMY
}
else
ifai AIBOSS2SEEKENEMY
state boss2seekenemystate
else
ifai AIBOSS2RUNENEMY
state boss2runenemystate
else
ifai AIBOSS2SHOOTENEMY
state boss2shootenemy
else
ifai AIBOSS2LOBBED
state boss2lobbedstate
else
ifai AIBOSS2PALSHRINK
state boss2palshrunkstate
ifai AIBOSS2DYING
state boss2dyingstate
else
{
ifhitweapon state checkboss2hitstate
else
ifp palive
ifspritepal 0 ifpdistl
1280
{
addphealth -1000
palfrom 63 63
}
}
ends
useractor enemystayput BOSS2STAYPUT BOSS2STRENGTH
cactor BOSS2
ifaction 0
{
ifspritepal 0
sizeat 80 80
else
sizeat 40 40
cstat 257
action ANULLACTION
}
enda
actor BOSS2 BOSS2STRENGTH fall state boss2code enda
action ABOSS3WALK 0 4 5 1 30
action ABOSS3FROZEN 0 1 5
action ABOSS3RUN 0 4 5 1 15
action ABOSS3LOB 20 4 5 1 50
action ABOSS3LOBBING 30 2 5 1 15
action ABOSS3DYING 40 8 1 1 20
action BOSS3FLINTCH 40 1 1 1 1
action ABOSS3DEAD 48
move PALBOSS3SHRUNKRUNVELS 32
move PALBOSS3RUNVELS 84
move BOSS3WALKVELS 208
move BOSS3RUNVELS 270
move BOSS3STOPPED
ai AIBOSS3SEEKENEMY ABOSS3WALK BOSS3WALKVELS seekplayer
ai AIBOSS3RUNENEMY ABOSS3RUN BOSS3RUNVELS faceplayerslow
ai AIBOSS3LOBENEMY ABOSS3LOB BOSS3STOPPED faceplayer
ai AIBOSS3DYING ABOSS3DYING BOSS3STOPPED faceplayer
ai AIBOSS3PALSHRINK ABOSS3WALK PALBOSS3SHRUNKRUNVELS furthestdir
state boss3palshrunkstate
ifcount SHRUNKDONECOUNT
ai AITROOPSEEKENEMY
else
ifcount SHRUNKCOUNT
sizeto 40 40
else
state genericshrunkcode
ends
state checkboss3seekstate
ai AIBOSS3SEEKENEMY
ifspritepal 0 nullop
else // a fake way of doing a ifspritepal NOT.
move PALBOSS3RUNVELS seekplayer
ends
state boss3runenemystate
ifcansee
{
ifactioncount 3
{
ifcanshoottarget
{
resetactioncount
sound BOS1_WALK
}
else
ai AIBOSS3SEEKENEMY
}
}
else
ai AIBOSS3SEEKENEMY
ends
state boss3seekenemystate
ifrnd 2
soundonce BOS3_ROAM
else
ifactioncount 3
{
resetactioncount
sound BOS1_WALK
}
ifcansee
ifcount 32
ifrnd 48
ifcanshoottarget
{
ifrnd 64
ifpdistg 4096
{
ai AIBOSS3RUNENEMY
ifspritepal 0
break
move PALBOSS3RUNVELS seekplayer
break
}
ifp palive
ai AIBOSS3LOBENEMY
}
ends
state boss3dyingstate
ifaction ABOSS3DEAD
{
ifspritepal 0
break
ifrespawn
ifcount RESPAWNACTORTIME
{
spawn TRANSPORTERSTAR
cstat 257
strength PIGCOPSTRENGTH
state checkboss3seekstate
}
else
{
strength 0
ifhitweapon
ifwasweapon RADIUSEXPLOSION
{
sound SQUISHED
state standard_jibs
killit
}
break
}
}
ifactioncount 8
{
iffloordistl 8
sound THUD
action ABOSS3DEAD
cstat 0
ifspritepal 0
endofgame 52
}
ends
state boss3lobbedstate
ifcansee
{
ifaction ABOSS3LOBBING
ifactioncount 2
{
shoot RPG
resetactioncount
ifrnd 8
ai AIBOSS3SEEKENEMY
}
ifactioncount 3
{
action ABOSS3LOBBING
resetcount
}
}
else
state checkboss3seekstate
ends
state checkboss3hitstate
ifrnd 2
spawn BLOODPOOL
ifdead
{
ifspritepal 0
globalsound DUKE_TALKTOBOSSFALL
else
{
ifrnd 64
globalsound DUKE_TALKTOBOSSFALL
ifwasweapon FREEZEBLAST
{
sound SOMETHINGFROZE
spritepal 1
move 0
action ABOSS3FROZEN
strength 0
break
}
}
addkills 1
ai AIBOSS3DYING
sound BOS3_DYING
sound JIBBED_ACTOR9
}
else
{
ifrnd 32
{
action BOSS3FLINTCH
move 0
}
ifspritepal 0 nullop
else
ifwasweapon SHRINKSPARK
{
sound ACTOR_SHRINKING
ai AIBOSS3PALSHRINK
break
}
soundonce BOS3_PAIN
debris SCRAP1 1
guts JIBS6 1
}
ends
state boss3code
ifaction ABOSS3FROZEN
{
ifcount THAWTIME
{
ai AIBOSS3SEEKENEMY
spritepal 21
}
else
ifcount FROZENDRIPTIME
{
ifactioncount 26
{
spawn WATERDRIP
resetactioncount
}
}
ifhitweapon
{
ifwasweapon FREEZEBLAST
{
strength 0
break
}
addkills 1
lotsofglass 30
ifrnd 84
spawn BLOODPOOL
sound GLASS_BREAKING
killit
}
ifp pfacing
ifpdistl FROZENQUICKKICKDIST
pkick
break
}
ifai 0
{
ifspritepal 0
ai AIBOSS3RUNENEMY
else
{
strength BOSS3PALSTRENGTH
stopallsounds
sound BOS3_RECOG
ai AIBOSS3LOBENEMY
clipdist 16
}
}
else
ifaction BOSS3FLINTCH
{
ifactioncount 3
ai AIBOSS3SEEKENEMY
}
else
ifai AIBOSS3SEEKENEMY
state boss3seekenemystate
else
ifai AIBOSS3RUNENEMY
state boss3runenemystate
else
ifai AIBOSS3LOBENEMY
state boss3lobbedstate
else
ifai AIBOSS3PALSHRINK
state boss3palshrunkstate
ifai AIBOSS3DYING
state boss3dyingstate
else
{
ifhitweapon
state checkboss3hitstate
else
ifp palive
ifspritepal 0
ifpdistl 1280
{
addphealth -1000
palfrom 63 63
}
}
ends
useractor enemystayput BOSS3STAYPUT BOSS3STRENGTH
cactor BOSS3
ifaction 0
{
ifspritepal 0
sizeat 80 80
else
sizeat 40 40
cstat 257
}
enda
actor BOSS3 BOSS3STRENGTH fall state boss3code enda
BOSS4
action ABOSS4WALK 0 4 5 1 30
action ABOSS4FROZEN 0 1 5
action ABOSS4DYING 40 9 1 1 20
action ABOSS4ABOUTTOSHOOT 20 1 5 1 40
action ABOSS4SHOOT 25 2 5 1 10
action ABOSS4LAYIT 50 3 5 1 120
action BOSS4FLINTCH 40 1 1 1 1
action ABOSS4DEAD 49
move PALBOSS4WALKVELS 48
move BOSS4WALKVELS 128
move BOSS4STOPPED
ai AIBOSS4SEEKENEMY ABOSS4WALK BOSS4WALKVELS seekplayer
ai AIBOSS4LAYEGGS ABOSS4WALK BOSS4WALKVELS randomangle geth
ai AIBOSS4SHOOT ABOSS4ABOUTTOSHOOT BOSS4STOPPED faceplayer
ai AIBOSS4DYING ABOSS4DYING BOSS4STOPPED faceplayer
state boss4shootstate
ifaction ABOSS4ABOUTTOSHOOT
ifactioncount 3
action ABOSS4SHOOT
ifaction ABOSS4SHOOT
{
ifcount 48
{
ifrnd 4
ai AIBOSS4LAYEGGS
}
ifcount 26
ifrnd 32
{
ifrnd 128
{
sound SHORT_CIRCUIT
addphealth -2
}
else
{
sound DUKE_GRUNT
addphealth -1
}
palfrom 32 32 0 0
}
}
ends
state boss4layeggs
ifrnd 2
sound BOS4_ROAM
ifaction ABOSS4LAYIT
{
ifactioncount 3
ifcount 32
{
ai AIBOSS4LAYEGGS
ifrnd 32
move BOSS4WALKVELS furthestdir geth
spawn NEWBEASTHANG
}
}
else
ifcount 64
ifrnd 4
{
move 0
ifrnd 88
{
action ABOSS4LAYIT
sound BOS4_LAY
}
else
ifp palive
ifcansee
{
ai AIBOSS4SHOOT
sound BOS4_ATTACK
}
}
ends
state boss4dyingstate
ifaction ABOSS4DEAD
break
else
ifactioncount 9
{
iffloordistl 8
sound THUD
endofgame 52
action ABOSS4DEAD
cstat 0
}
ends
state checkboss4hitstate
ifrnd 2
spawn BLOODPOOL
ifdead
{
globalsound DUKE_TALKTOBOSSFALL
addkills 1
ai AIBOSS4DYING
sound BOS4_DYING
sound BOSS4_DEADSPEECH
}
else
{
soundonce BOS4_PAIN
debris SCRAP1 1
guts JIBS6 1
ifaction ABOSS4LAYIT
break
ifrnd 16
{
action BOSS4FLINTCH
move 0
}
}
ends
state boss4code
ifai 0
ai AIBOSS4LAYEGGS
else
ifaction BOSS4FLINTCH
{
ifactioncount 3
ai AIBOSS4LAYEGGS
}
else
ifai AIBOSS4LAYEGGS
state boss4layeggs
else
ifai AIBOSS4SHOOT
state boss4shootstate
ifai AIBOSS4DYING
state boss4dyingstate
else
{
ifhitweapon
state checkboss4hitstate
else
ifp palive
ifpdistl 1280
{
addphealth -1000
palfrom 63 63
}
}
ends
state checkpalboss4seekstate
ai AIBOSS4SEEKENEMY
move PALBOSS4WALKVELS seekplayer
ends
state palboss4seekenemystate
ifrnd 2
sound BOS4_ROAM
ifcount 64
ifrnd 4
{
move 0
ifp palive
ifcansee
{
ai AIBOSS4SHOOT
sound BOS4_ATTACK
}
}
ends
state palboss4shootstate
ifaction ABOSS4ABOUTTOSHOOT
ifactioncount 3
action ABOSS4SHOOT
ifaction ABOSS4SHOOT
{
ifcount 48
{
ifrnd 4
{
state checkpalboss4seekstate
}
}
ifcount 26
ifrnd 32
{
ifrnd 128
{
sound SHORT_CIRCUIT
addphealth -2
}
else
{
sound DUKE_GRUNT
addphealth -1
}
palfrom 32 32 0 0
}
}
ends
state palboss4dyingstate
ifaction ABOSS4DEAD
{
ifrespawn
ifcount RESPAWNACTORTIME
{
spawn TRANSPORTERSTAR
cstat 257
strength PIGCOPSTRENGTH
state checkpalboss4seekstate
}
else
{
strength 0
ifhitweapon
ifwasweapon RADIUSEXPLOSION
{
sound SQUISHED
state standard_jibs
killit
}
break
}
}
ifactioncount 9
{
iffloordistl 8
sound THUD
action ABOSS4DEAD
cstat 0
}
ends
state checkpalboss4hitstate
ifrnd 2
spawn BLOODPOOL
ifdead
{
ifrnd 64
globalsound DUKE_TALKTOBOSSFALL
ifwasweapon FREEZEBLAST
{
sound SOMETHINGFROZE
spritepal 1
move 0
action ABOSS4FROZEN
strength 0
break
}
addkills 1
ai AIBOSS4DYING
sound BOS4_DYING
sound BOSS4_DEADSPEECH
}
else
{
soundonce BOS4_PAIN
debris SCRAP1 1
guts JIBS6 1
ifaction ABOSS4LAYIT
break
ifrnd 16
{
action BOSS4FLINTCH
move 0
}
}
ends
state palboss4code
ifaction ABOSS4FROZEN
{
ifcount THAWTIME
{
ai AIBOSS4SEEKENEMY
spritepal 3
}
else
ifcount FROZENDRIPTIME
{
ifactioncount 26
{
spawn WATERDRIP
resetactioncount
}
}
ifhitweapon
{
ifwasweapon FREEZEBLAST
{
strength 0
break
}
addkills 1
lotsofglass 30
ifrnd 84
spawn BLOODPOOL
sound GLASS_BREAKING
killit
}
ifp pfacing
ifpdistl FROZENQUICKKICKDIST
pkick
break
}
ifai 0
{
strength BOSS4PALSTRENGTH
stopallsounds
sound BOS4_RECOG
sound BOS4_ATTACK
ai AIBOSS4SHOOT
}
else
ifaction BOSS4FLINTCH
{
ifactioncount 3
ai AIBOSS4SEEKENEMY
}
else
ifai AIBOSS4SEEKENEMY
state palboss4seekenemystate
else
ifai AIBOSS4SHOOT
state palboss4shootstate
ifai AIBOSS4DYING
state palboss4dyingstate
else
{
ifhitweapon
state checkpalboss4hitstate
}
ends
actor BOSS4STAYPUT BOSS4STRENGTH
fall
cactor BOSS4
ifspritepal 0
{
spritepal 6
state boss4code
getlastpal
}
else
ifaction ABOSS4FROZEN
state palboss4code
else
{
spritepal 6
state palboss4code
ifaction ABOSS4FROZEN
break
getlastpal
}
enda
actor BOSS4 BOSS4STRENGTH
fall
cactor BOSS4
ifspritepal 0
{
spritepal 6
state boss4code
getlastpal
}
else
ifaction ABOSS4FROZEN
state palboss4code
else
{
spritepal 6
state palboss4code
ifaction ABOSS4FROZEN
break
getlastpal
}
enda
I am finished with BOSS1, BOSS2, and BOSS3 for the most part. My modification of BOSS4 will take longer because I want to integrate your code with the existing code using ifvarn BOSSSPRPAL 0 { <insert code here> }.
Cheers,
Hendricks266 @ 14:58, 11 November 2006 (PST)
useractor enemy BOSS1SHOOT BOSS1STRENGTH fall cactor BOSS1 ai AIBOSS1SHOOTENEMY enda // This actor automatically shoots the player.
The reason why they don't give to the boss that is because his first action already is shoots. =p
ifdead
{
ifspritepal 0
globalsound DUKE_TALKTOBOSSFALL
else
{
ifrnd 64
globalsound DUKE_TALKTOBOSSFALL
ifwasweapon FREEZEBLAST
{
sound SOMETHINGFROZE
spritepal 1
move 0
action ABOSS1FROZEN
strength 0
break
}
}
sound BOS1_DYING
addkills 1
ai AIBOSS1DYING
}
ifaction ABOSS1FROZEN
{
ifcount THAWTIME
{
ai AIBOSS1SEEKENEMY
spritepal 21
}
else
ifcount FROZENDRIPTIME
{
ifactioncount 26
{
spawn WATERDRIP
resetactioncount
}
}
I don't agree in those changes. This tutorial is to add mini-bosses to Overlord, Cycloid Emperor and Queen, not to fix wathever bug you think that there are in Battlelord coding. Including adding a BOSS1LOBBING tile.
And we shouldn't change a original enemy, anyway.
As long as if we do that, we have a very big list of things coming with: Allow bosses to grow with expander;
Fix Octabrain addskill -1;
Add "ifaction ENEMYSHRUNK break action ENEMYHIT" to all enemies to them don't have the bug "shrunk enemy attacking";
And, how can you see, we cannot set what change along adding mini-bosses to the others, we should do.
There is no needed to add a code to disable boss from going in water on the cases of Battlelord and Cycloid Emperor, because mini-Battlelord works perfectly, and Cycloid Emperor mini-boss is most done (as there is no frozen error and he don't go to water).
useractor enemystayput BOSS2STAYPUT BOSS2STRENGTH fall cactor BOSS2 enda
Is needed to put cstat and sizeat (mini 40 40 and big boss 80 80) at new actors for the bosses.
I see you have replaced codes in BOSS3 at frozen, but there is only required add some.
And at the end I don't know what risk in BOSS4 are you talking about, the one I have works perfectly, I just feel missing some codes at yours. =/
Edit:
I related that Battlelord at stayput do not screm, so, I have made changes to the new mini-bosses scream only at non-stayput:
ifai 0
{
ifspritepal 0
ai AIBOSS2RUNENEMY
else
{
strength BOSS2PALSTRENGTH
sound BOS2_ATTACK ai AIBOSS2SHOOTENEMY
clipdist 16
}
}
useractor enemystayput BOSS2STAYPUT BOSS2STRENGTH
cactor BOSS2
ifaction 0
{
ifspritepal 0
sizeat 80 80
else
sizeat 40 40
cstat 257
action ANULLACTION
}
enda
actor BOSS2 BOSS2STRENGTH fall state boss2code
ifspritepal 0
nullop
else
ifaction 0
{
stopallsounds
sound BOS2_RECOG
action ANULLACTION
}
enda
ifai 0
{
ifspritepal 0
ai AIBOSS3RUNENEMY
else
{
strength BOSS3PALSTRENGTH
ai AIBOSS3LOBENEMY
clipdist 16
}
}
useractor enemystayput BOSS3STAYPUT BOSS3STRENGTH
cactor BOSS3
ifaction 0
{
ifspritepal 0
sizeat 80 80
else
sizeat 40 40
cstat 257
}
enda
actor BOSS3 BOSS3STRENGTH fall state boss3code
ifspritepal 0
nullop
else
ifaction 0
{
stopallsounds
sound BOS3_RECOG
action ANULLACTION
}
enda
ifai 0
{
strength BOSS4PALSTRENGTH
sound BOS4_ATTACK
ai AIBOSS4SHOOT
}
actor BOSS4STAYPUT BOSS4STRENGTH
fall
cactor BOSS4
ifspritepal 0
{
spritepal 6
state boss4code
getlastpal
}
else
ifaction ABOSS4FROZEN
state palboss4code
else
{
ifai 0
{
stopallsounds
action ANULLACTION
}
spritepal 6
state palboss4code
ifaction ABOSS4FROZEN
break
getlastpal
}
enda
actor BOSS4 BOSS4STRENGTH
fall
cactor BOSS4
ifspritepal 0
{
spritepal 6
state boss4code
getlastpal
}
else
ifaction ABOSS4FROZEN
state palboss4code
else
{
ifai 0
{
stopallsounds
sound BOS4_RECOG
action ANULLACTION
}
spritepal 6
state palboss4code
ifaction ABOSS4FROZEN
break
getlastpal
}
enda