CON coding problems. "Improvements and progress."
#271 Posted 29 June 2019 - 01:38 PM
#272 Posted 02 July 2019 - 07:31 AM
Coming soon: Duke 64.
#273 Posted 03 July 2019 - 10:41 AM
As I have corrected many more things in my files and added some "tiles" for the decoration of cartography, the current problems that have not been corrected are left aside for the moment.
I have encountered another problem in an inexplicable way. This is the coding "RESPAWN lotag" that I put in place, and also thanks to Zaxtor.
I will post the entire script of the problem to explain.
#274 Posted 03 July 2019 - 02:14 PM
gamevar L_RESPAWN 0 2 // lotag "RESPAWN" for all monsters / items state lotag_code { getactor[THISACTOR].lotag L_RESPAWN setactor[THISACTOR].lotag 0 } ends state lotag_code_items ifvare L_RESPAWN 21 { espawnvar FIRSTGUNSPRITE } else ifvare L_RESPAWN 22 { espawnvar CHAINGUNSPRITE } else ifvare L_RESPAWN 23 { espawnvar RPGSPRITE } else ifvare L_RESPAWN 24 { espawnvar FREEZESPRITE } else ifvare L_RESPAWN 25 { espawnvar SHRINKERSPRITE } else ifvare L_RESPAWN 26 { espawnvar HEAVYHBOMB } else ifvare L_RESPAWN 27 { espawnvar TRIPBOMBSPRITE } else ifvare L_RESPAWN 28 { espawnvar SHOTGUNSPRITE } else ifvare L_RESPAWN 29 { espawnvar DEVISTATORSPRITE } else ifvare L_RESPAWN 32 { espawnvar GROWSPRITE } else ifvare L_RESPAWN 37 { espawnvar FREEZEAMMO } else ifvare L_RESPAWN 40 { espawnvar AMMO } else ifvare L_RESPAWN 41 { espawnvar BATTERYAMMO } else ifvare L_RESPAWN 42 { espawnvar DEVISTATORAMMO } else ifvare L_RESPAWN 44 { espawnvar RPGAMMO } else ifvare L_RESPAWN 45 { espawnvar GROWAMMO } else ifvare L_RESPAWN 46 { espawnvar CRYSTALAMMO } else ifvare L_RESPAWN 47 { espawnvar HBOMBAMMO } else ifvare L_RESPAWN 48 { espawnvar AMMOLOTS } else ifvare L_RESPAWN 49 { espawnvar SHOTGUNAMMO } else ifvare L_RESPAWN 51 { espawnvar COLA } else ifvare L_RESPAWN 52 { espawnvar SIXPAK } else ifvare L_RESPAWN 53 { espawnvar FIRSTAID } else ifvare L_RESPAWN 54 { espawnvar SHIELD } else ifvare L_RESPAWN 55 { espawnvar STEROIDS } else ifvare L_RESPAWN 56 { espawnvar AIRTANK } else ifvare L_RESPAWN 57 { espawnvar JETPACK } else ifvare L_RESPAWN 59 { espawnvar HEATSENSOR } else ifvare L_RESPAWN 60 { espawnvar ACCESSCARD } else ifvare L_RESPAWN 61 { espawnvar BOOTS } else ifvare L_RESPAWN 100 { espawnvar ATOMICHEALTH } else ifvare L_RESPAWN 101 { espawnvar ACCESSCARD setactor[RETURN].pal 21 } else ifvare L_RESPAWN 102 { espawnvar ACCESSCARD setactor[RETURN].pal 23 } else ifvare L_RESPAWN 1348 { espawnvar HOLODUKE } ends state checktroophit ifaction ATROOPSUFFERING { stopsound LIZARD_BEG sound PRED_DYING state rf_unblock strength 0 action ATROOPSUFFERDEAD state shadowcode state lotag_operatedoor_code break } ifdead { ifwasweapon FREEZEBLAST { ifactor LIZTROOPDUCKING cactor LIZTROOP ifactor LIZTROOPONTOILET { sound FLUSH_TOILET cactor LIZTROOP } ifactor LIZTROOPJUSTSIT cactor LIZTROOP sound SOMETHINGFROZE spritepal 1 move 0 ifai AITROOPSHRUNK action ATROOPSHRUNKFROZEN else action ATROOPFROZEN strength 0 break } ifai AITROOPSHRUNK nullop else { state drop_ammo state random_wall_jibs } ifwasweapon GROWSPARK { ifactor LIZTROOPDUCKING cactor LIZTROOP ifactor LIZTROOPONTOILET { sound FLUSH_TOILET cactor LIZTROOP } ifactor LIZTROOPJUSTSIT cactor LIZTROOP cstat 257 sound ACTOR_GROWING ai AITROOPGROW break } else ifwasweapon RPG { sound SQUISHED state troop_body_jibs state standard_jibs state lotag_code_items killit } else ifwasweapon RADIUSEXPLOSION { sound SQUISHED state troop_body_jibs state standard_jibs state lotag_code_items killit } else { state lotag_code_items ifvarg H_RESPAWN 0 { operaterespawns H_RESPAWN setvar H_RESPAWN 0 } ifvarg OPERATEDOOR 0 { operateactivators OPERATEDOOR 0 } sound PRED_DYING addkills 1 addvar KILLCOUNTFIX 1 setvar ISDEADFIX 1 ifrnd 32 iffloordistl 32 { ifai AITROOPSHRUNK { action ATROOPDYING ifrnd 128 cstator 4 break } ifactor LIZTROOP cactor LIZTROOPDUCKING ifactor LIZTROOPONTOILET { sound FLUSH_TOILET cactor LIZTROOPDUCKING } ifactor LIZTROOPJUSTSIT cactor LIZTROOPDUCKING sound LIZARD_BEG spawn BLOODPOOL strength 0 move 0 action ATROOPSUFFERING ifrnd 128 cstator 4 break } ifactor LIZTROOPDUCKING cactor LIZTROOP ifactor LIZTROOPONTOILET { sound FLUSH_TOILET cactor LIZTROOP } ifactor LIZTROOPJUSTSIT cactor LIZTROOP action ATROOPDYING ifrnd 128 cstator 4 break } } else { state random_wall_jibs sound PRED_PAIN ifwasweapon GROWSPARK sound EXPANDERHIT ifai AITROOPSHRUNK break // ifwasweapon SHRINKER setactor[THISACTOR].htpicnum SHRINKSPARK // else ifwasweapon SHRINKSPARK { ifactor LIZTROOPDUCKING cactor LIZTROOP ifactor LIZTROOPONTOILET { sound FLUSH_TOILET cactor LIZTROOP } ifactor LIZTROOPJUSTSIT cactor LIZTROOP sound ACTOR_SHRINKING ai AITROOPSHRUNK } else iffloordistl 32 ifrnd 96 { ifactor LIZTROOPDUCKING cactor LIZTROOP ifactor LIZTROOPONTOILET { sound FLUSH_TOILET cactor LIZTROOP } ifactor LIZTROOPJUSTSIT cactor LIZTROOP action ATROOPFLINTCH } } { ifai AITROOPSHRUNK state lotag_code break } ends eventloadactor LIZTROOP // special lotag "RESPAWN" code for all enemies state lotag_code enda eventloadactor LIZTROOPRUNNING state lotag_code enda eventloadactor LIZTROOPSTAYPUT state lotag_code enda eventloadactor LIZTROOPSHOOT state lotag_code enda eventloadactor LIZTROOPJETPACK state lotag_code enda eventloadactor LIZTROOPONTOILET state lotag_code enda eventloadactor LIZTROOPJUSTSIT state lotag_code enda eventloadactor LIZTROOPDUCKING state lotag_code enda
I added the line "state lotag_code_items" to the place where the enemy will be killed.
It works very well. The real problem is here:
{ ifai AITROOPSHRUNK state lotag_code break }
When I choose the lotag of "60" (access card), it does not appear when the enemy is narrowed. But instead, there is sometimes "FREEZESPRITE" and "SHOTGUNSPRITE" that appears.
How to fix this problem ?
I do not want a narrowed enemy to be able to generate items and weapons, even if I define the corresponding lotag.
This post has been edited by Firefly_Trooper: 03 July 2019 - 02:16 PM
#275 Posted 07 July 2019 - 07:45 PM
state lotag_code_items { ifvare L_RESPAWN 21 { espawnvar FIRSTGUNSPRITE } else ifvare L_RESPAWN 22 { espawnvar CHAINGUNSPRITE } else ifvare L_RESPAWN 23 { espawnvar RPGSPRITE } else ifvare L_RESPAWN 24 { espawnvar FREEZESPRITE } else ifvare L_RESPAWN 25 { espawnvar SHRINKERSPRITE } else ifvare L_RESPAWN 26 { espawnvar HEAVYHBOMB } else ifvare L_RESPAWN 27 { espawnvar TRIPBOMBSPRITE } else ifvare L_RESPAWN 28 { espawnvar SHOTGUNSPRITE } else ifvare L_RESPAWN 29 { espawnvar DEVISTATORSPRITE } else ifvare L_RESPAWN 32 { espawnvar GROWSPRITE } else ifvare L_RESPAWN 37 { espawnvar FREEZEAMMO } else ifvare L_RESPAWN 40 { espawnvar AMMO } else ifvare L_RESPAWN 41 { espawnvar BATTERYAMMO } else ifvare L_RESPAWN 42 { espawnvar DEVISTATORAMMO } else ifvare L_RESPAWN 44 { espawnvar RPGAMMO } else ifvare L_RESPAWN 45 { espawnvar GROWAMMO } else ifvare L_RESPAWN 46 { espawnvar CRYSTALAMMO } else ifvare L_RESPAWN 47 { espawnvar HBOMBAMMO } else ifvare L_RESPAWN 48 { espawnvar AMMOLOTS } else ifvare L_RESPAWN 49 { espawnvar SHOTGUNAMMO } else ifvare L_RESPAWN 51 { espawnvar COLA } else ifvare L_RESPAWN 52 { espawnvar SIXPAK } else ifvare L_RESPAWN 53 { espawnvar FIRSTAID } else ifvare L_RESPAWN 54 { espawnvar SHIELD } else ifvare L_RESPAWN 55 { espawnvar STEROIDS } else ifvare L_RESPAWN 56 { espawnvar AIRTANK } else ifvare L_RESPAWN 57 { espawnvar JETPACK } else ifvare L_RESPAWN 59 { espawnvar HEATSENSOR } else ifvare L_RESPAWN 60 { espawnvar ACCESSCARD } else ifvare L_RESPAWN 61 { espawnvar BOOTS } else ifvare L_RESPAWN 100 { espawnvar ATOMICHEALTH } else ifvare L_RESPAWN 101 { espawnvar ACCESSCARD setactor[RETURN].pal 21 } else ifvare L_RESPAWN 102 { espawnvar ACCESSCARD setactor[RETURN].pal 23 } else ifvare L_RESPAWN 1348 { espawnvar HOLODUKE } } break ends
#276 Posted 07 July 2019 - 07:47 PM
Firefly_Trooper, on 26 June 2019 - 07:40 AM, said:
appendevent EVENT_SOUND ife RETURN PRED_RECOG { ifspritepal 21 ife sprite[].picnum LIZTROOPSTAYPUT set RETURN BLANK } ife RETURN PRED_RECOG { ifspritepal 22 ife sprite[].picnum LIZTROOP set RETURN BLANK } endevent
Results on a map: "LIZTROOP (pal 22)" has more sound (PRED_RECOG). "LIZTROOPSTAYPUT (pal 21)" still has the sound.
Now, I add the value "break" in the code:
appendevent EVENT_SOUND ife RETURN PRED_RECOG { ifspritepal 21 ife sprite[].picnum LIZTROOPSTAYPUT set RETURN BLANK } ife RETURN PRED_RECOG { ifspritepal 22 break ife sprite[].picnum LIZTROOP set RETURN BLANK } endevent
Results on the map: "LIZTROOP (pal 22)" still has the sound (PRED_RECOG). "LIZTROOPSTAYPUT (pal 21)" no longer has sound.
Conclusion: it works very well but only with two different "pal" There must be a way for this to work with all color palettes (0-25).
I still have this problem to solve.
#278 Posted 09 July 2019 - 11:23 AM
state lotag_code_items { ifvare L_RESPAWN 21 { espawnvar FIRSTGUNSPRITE } else ifvare L_RESPAWN 22 { espawnvar CHAINGUNSPRITE } else ifvare L_RESPAWN 23 { espawnvar RPGSPRITE } else ifvare L_RESPAWN 24 { espawnvar FREEZESPRITE } else ifvare L_RESPAWN 25 { espawnvar SHRINKERSPRITE } else ifvare L_RESPAWN 26 { espawnvar HEAVYHBOMB } else ifvare L_RESPAWN 27 { espawnvar TRIPBOMBSPRITE } else ifvare L_RESPAWN 28 { espawnvar SHOTGUNSPRITE } else ifvare L_RESPAWN 29 { espawnvar DEVISTATORSPRITE } else ifvare L_RESPAWN 32 { espawnvar GROWSPRITE } else ifvare L_RESPAWN 37 { espawnvar FREEZEAMMO } else ifvare L_RESPAWN 40 { espawnvar AMMO } else ifvare L_RESPAWN 41 { espawnvar BATTERYAMMO } else ifvare L_RESPAWN 42 { espawnvar DEVISTATORAMMO } else ifvare L_RESPAWN 44 { espawnvar RPGAMMO } else ifvare L_RESPAWN 45 { espawnvar GROWAMMO } else ifvare L_RESPAWN 46 { espawnvar CRYSTALAMMO } else ifvare L_RESPAWN 47 { espawnvar HBOMBAMMO } else ifvare L_RESPAWN 48 { espawnvar AMMOLOTS } else ifvare L_RESPAWN 49 { espawnvar SHOTGUNAMMO } else ifvare L_RESPAWN 51 { espawnvar COLA } else ifvare L_RESPAWN 52 { espawnvar SIXPAK } else ifvare L_RESPAWN 53 { espawnvar FIRSTAID } else ifvare L_RESPAWN 54 { espawnvar SHIELD } else ifvare L_RESPAWN 55 { espawnvar STEROIDS } else ifvare L_RESPAWN 56 { espawnvar AIRTANK } else ifvare L_RESPAWN 57 { espawnvar JETPACK } else ifvare L_RESPAWN 59 { espawnvar HEATSENSOR } else ifvare L_RESPAWN 60 { espawnvar ACCESSCARD } else ifvare L_RESPAWN 61 { espawnvar BOOTS } else ifvare L_RESPAWN 100 { espawnvar ATOMICHEALTH } else ifvare L_RESPAWN 101 { espawnvar ACCESSCARD setactor[RETURN].pal 21 } else ifvare L_RESPAWN 102 { espawnvar ACCESSCARD setactor[RETURN].pal 23 } else ifvare L_RESPAWN 1348 { espawnvar HOLODUKE } } break ends { ifai AITROOPSHRUNK state lotag_code break }
So I opted for this option which works much better:
onevent EVENT_GAME switch sprite[THISACTOR].picnum case LIZTROOP { ifai AITROOPSHRUNK state lotag_code } break endswitch endevent
Last little problem with this option "EVENT_GAME" the Liztroop that shrinks, does not have the animation walk. He simply slips on the floor, like a curling puck.
This post has been edited by Firefly_Trooper: 09 July 2019 - 11:24 AM
#279 Posted 09 July 2019 - 12:03 PM
onevent EVENT_GAME switch sprite[THISACTOR].picnum case LIZTROOP ifai AITROOPSHRUNK ifmove fleeenemy state lotag_code break endswitch endevent
Inverse result! The Liztroop has its correct animation, but the items appear. Will have to find again... and again !
#282 Posted 10 July 2019 - 01:52 PM
#283 Posted 10 July 2019 - 04:11 PM
Thats why I haven't offered any help lately.
#284 Posted 10 July 2019 - 04:51 PM
Mark, on 10 July 2019 - 04:11 PM, said:
Thats why I haven't offered any help lately.
It is true that I can lose people on the wire, because I post a lot of small content here and there. LOL
by constantly checking my files, I still corrects small errors, I add small ideas and lately, I posted two or three very annoying problems to finish.
1. Problem for Lorag Respawn code
2. Problem for recognize sound for enemystayput
#285 Posted 12 July 2019 - 08:33 AM
#286 Posted 13 July 2019 - 03:13 PM
However, I found a solution to another older problem. This is the processing of the fall command of an actor. It remains to adjust the position to height, before the actor falls to the ground. The same function as items, ammunition and weapons.
The value "htcgg" can set this.
This post has been edited by Firefly_Trooper: 13 July 2019 - 03:17 PM
#287 Posted 13 July 2019 - 07:26 PM
Exemple code:
useractor notenemy XMASGREENPRESENT_AMMO1 0 fall sizeat 20 20 state greenpresentdrop_ammo ifspawnedby LIZTROOPNUWI { ifaction 0 { sizeat 20 20 action GREENPRESENTAMMO1 } state greenpresentdrop_ammo } else ifspawnedby LIZTROOPNUWIRUNNING { ifaction 0 { sizeat 20 20 action GREENPRESENTAMMO1 } state greenpresentdrop_ammo } else ifspawnedby LIZTROOPNUWISTAYPUT { ifaction 0 { sizeat 20 20 action GREENPRESENTAMMO1 } state greenpresentdrop_ammo } else ifspawnedby LIZTROOPNUWISHOOT { ifaction 0 { sizeat 20 20 action GREENPRESENTAMMO1 } state greenpresentdrop_ammo } else ifspawnedby LIZTROOPNUWIJETPACK { ifaction 0 { sizeat 20 20 action GREENPRESENTAMMO1 } state greenpresentdrop_ammo } else ifspawnedby LIZTROOPNUWIONTOILET { ifaction 0 { sizeat 20 20 action GREENPRESENTAMMO1 } state greenpresentdrop_ammo } else ifspawnedby LIZTROOPNUWIJUSTSIT { ifaction 0 { sizeat 20 20 action GREENPRESENTAMMO1 } state greenpresentdrop_ammo } else ifspawnedby LIZTROOPNUWIDUCKING { ifaction 0 { sizeat 20 20 action GREENPRESENTAMMO1 } state greenpresentdrop_ammo } getactor[THISACTOR].cstat TEMPFIX1 xorvar TEMPFIX1 1 xorvar TEMPFIX1 0 cactor XMASGREENPRESENT_AMMO1 setactor[THISACTOR].cstat TEMPFIX1 getactor[THISACTOR].yrepeat TEMPFIX1 ifvarn TEMPFIX1 0 { ifvarand sprite[THISACTOR].cstat 8 mulvar TEMPFIX1 -360 else mulvar TEMPFIX1 -85 getactor[THISACTOR].z TEMPFIX2 addvarvar TEMPFIX2 TEMPFIX1 setactor[THISACTOR].z TEMPFIX2 setactor[THISACTOR].yoffset -25 randvar TEMPFIX1 128 setactor[RETURN].cstat 4 } enda
#289 Posted 16 July 2019 - 06:46 PM
- bug of "floating frozen duke" fixed !
- ammunitions / weapons of dead Predator + corrected JIBS6 fixed !
- fire attack bug of King Cobra + adding missing frames fixed !
- Infinite Shot of Commander Cari and Flying_Frosty fixed !
- adding a new sound for the dead Greenslime
- adding a new Duke quote of the Duke64 version (jibbed sound, portable medkit, Boss and level exploration)
- added the possibility of saving girls (Duke64 only) -- not finished
- functional "operate" command for all enemies
- additions and corrections of quotes (with the names.h file)
- the dying Liztroop (LIZTROOPSUFFERING) can now be killed directly
- the coding of "shadow enemies" is fixed (deleted the "shadow")
- adding a new "Atomic Health" named "Pearl Health" (Caribbean only)
- the four new monsters of "Game.com" porterage + all items is fixed
- add the unreleased enemy "Captain Iguana" of Caribbean (just two tiles only for the decoration)
- adding already existing quotes of weapon pickup and monsters killed, just like the N64 version (rockin', go ahead, make my day, etc...)
- added medkit version WT, with some modifications
- adding a spriteshadow, for all items and projectiles (someone)
- femcode is fixed (98%)
This post has been edited by Firefly_Trooper: 16 July 2019 - 06:56 PM
#290 Posted 16 July 2019 - 06:50 PM
Firefly_Trooper, on 16 July 2019 - 06:46 PM, said:
- bug of "floating frozen duke" fixed !
- ammunitions / weapons of dead Predator + corrected JIBS6 fixed !
- fire attack bug of King Cobra + adding missing frames fixed !
- Infinite Shot of Commander Cari and Flying_Frosty fixed !
- adding a new sound for the dead Greenslime
- adding a new Duke quote of the Duke64 version (jibbed sound, portable medkit, Boss and level exploration)
- added the possibility of saving girls (Duke64 only) -- not finished
- functional "operate" command for all enemies
- additions and corrections of quotes (with the names.h file)
- the dying Liztroop (LIZTROOPSUFFERING) can now be killed directly
- the coding of "shadow enemies" is fixed (deleted the "shadow")
- adding a new "Atomic Health" named "Pearl Health" (Caribbean only)
Where can I get your CON files from? There's nothing sticky on the first post. I currently used a fixed CON file from Darkus which has been solid (/8946-original-gamecon-fixes)
#291 Posted 16 July 2019 - 06:58 PM
Mitch Richters, on 16 July 2019 - 06:50 PM, said:
NEWS UPDATE !!!
- bug of "floating frozen duke" fixed !
- ammunitions / weapons of dead Predator + corrected JIBS6 fixed !
- fire attack bug of King Cobra + adding missing frames fixed !
- Infinite Shot of Commander Cari and Flying_Frosty fixed !
- adding a new sound for the dead Greenslime
- adding a new Duke quote of the Duke64 version (jibbed sound, portable medkit, Boss and level exploration)
- added the possibility of saving girls (Duke64 only) -- not finished
- functional "operate" command for all enemies
- additions and corrections of quotes (with the names.h file)
- the dying Liztroop (LIZTROOPSUFFERING) can now be killed directly
- the coding of "shadow enemies" is fixed (deleted the "shadow")
- adding a new "Atomic Health" named "Pearl Health" (Caribbean only)
- the four new monsters of "Game.com" porterage + all items is fixed
- add the unreleased enemy "Captain Iguana" of Caribbean (just two tiles only for the decoration)
- adding already existing quotes of weapon pickup and monsters killed, just like the N64 version (rockin', go ahead, make my day, etc...)
- added medkit version WT, with some modifications
- adding a spriteshadow, for all items and projectiles (someone)
- femcode is fixed (98%)
Good evening! You should wait a little bit my friend. I will be posting a mod update soon.
#292 Posted 16 July 2019 - 07:03 PM
#293 Posted 17 July 2019 - 06:08 AM
Adding missing spriteflags "GREENSLIME FOOD"
Quotes of the items Carribean is fixed.
All weapons and items of Caribbean is fixed.
This post has been edited by Firefly_Trooper: 17 July 2019 - 06:09 AM
#294 Posted 17 July 2019 - 06:20 AM
Mitch Richters, on 16 July 2019 - 06:50 PM, said:
You want to play mod, or just have CON files? The work done by Darkus has been very successful. I have further improved this work, because it is a set of very nice fixes for mapping and also play the game in an optimized way.
#295 Posted 18 July 2019 - 08:39 AM
getactor[THISACTOR].cstat TEMPFIX1 xorvar TEMPFIX1 1 xorvar TEMPFIX1 0 cactor XMASGREENPRESENT_AMMO1 setactor[THISACTOR].cstat TEMPFIX1 getactor[THISACTOR].yrepeat TEMPFIX1 ifvarn TEMPFIX1 0 { ifvarand sprite[THISACTOR].cstat 8 mulvar TEMPFIX1 -360 else mulvar TEMPFIX1 -85 getactor[THISACTOR].z TEMPFIX2 addvarvar TEMPFIX2 TEMPFIX1 setactor[THISACTOR].z TEMPFIX2 setactor[THISACTOR].yoffset -25 randvar TEMPFIX1 128 setactor[RETURN].cstat 4
#296 Posted 21 July 2019 - 01:50 PM
Quote for portable medkit is fixed.
Quote for Boss1, 2 and 3 partially fixed.
Quote jibbed fixed.
Only quote for map exploration is fixed.
#297 Posted 22 July 2019 - 10:32 AM
#298 Posted 23 July 2019 - 10:59 AM
New folder soon available.
#299 Posted 24 July 2019 - 12:50 PM
Firefly_Trooper, on 26 June 2019 - 07:40 AM, said:
appendevent EVENT_SOUND ife RETURN PRED_RECOG { ifspritepal 21 ife sprite[].picnum LIZTROOPSTAYPUT set RETURN BLANK } ife RETURN PRED_RECOG { ifspritepal 22 ife sprite[].picnum LIZTROOP set RETURN BLANK } endevent
Results on a map: "LIZTROOP (pal 22)" has more sound (PRED_RECOG). "LIZTROOPSTAYPUT (pal 21)" still has the sound.
Now, I add the value "break" in the code:
appendevent EVENT_SOUND ife RETURN PRED_RECOG { ifspritepal 21 ife sprite[].picnum LIZTROOPSTAYPUT set RETURN BLANK } ife RETURN PRED_RECOG { ifspritepal 22 break ife sprite[].picnum LIZTROOP set RETURN BLANK } endevent
Results on the map: "LIZTROOP (pal 22)" still has the sound (PRED_RECOG). "LIZTROOPSTAYPUT (pal 21)" no longer has sound.
Conclusion: it works very well but only with two different "pal" There must be a way for this to work with all color palettes (0-25).
I will resume this coding and try to find a solution.