Quote
Thanks a lot! First I'll finish with Dukeplus. If I have no luck, I'll try AWOL.
Quote
Mark, on 14 December 2024 - 07:01 PM, said:
Danukem, on 14 December 2024 - 12:15 PM, said:
vInstruction(CON_KILLIT): insptr++; vm.flags |= VM_KILL; return;
if ((pSprite->lotag > ud.player_skill) || ud.monsters_off == 1) { pSprite->xrepeat=pSprite->yrepeat=0; changespritestat(newSprite, STAT_MISC); goto SPAWN_END; }
/* // Handle game system state machines */ appendevent EVENT_WORLD { // Process AI Director for WORLDI sprofstat STAT_AIDIRECTOR { setu .vm_sprite WORLDI // Become the sprite we are iterating on setu .vm_player myconnectindex // Update which sprite the Player is ife GM_ACTIVE TRUE state ai_director } endevent /* // AI Director state machine */ defstate ai_director { [ an actual ton of code ] } ends /* // Init system effectors */ appendevent EVENT_ENTERLEVEL { for ACTORI allsprites { // Init AI Director ife sprite[ACTORI].picnum AI_DIRECTOR seta[ACTORI].statnum STAT_AIDIRECTOR } } endevent
// Save ourself set HOST_ID THISACTOR for ACTORI sprofstat STAT_SOMETHING { setu .vm_sprite ACTORI [ execute remote code ] } // Return to ourself setu .vm_sprite HOST_ID
// Perform particle logic appendevent EVENT_WORLD { for PARTICLE_I sprofstat STAT_EMBER { setu .vm_sprite PARTICLE_I // set our "THISACTOR" to the current id setu .vm_player myconnectindex // set our player to our currently connected player state particle_ember state particle_deleteme } for PARTICLE_I sprofstat STAT_SMALLFIRE { setu .vm_sprite PARTICLE_I setu .vm_player myconnectindex state particle_smallfire state particle_deleteme }
appendevent EVENT_WORLD { for PARTICLE_I sprofstat STAT_PARTICLE { setu .vm_sprite PARTICLE_I // set our "THISACTOR" to the current id setu .vm_player myconnectindex // set our player to our currently connected player // Remember, we are now running as the sprite PARTICLE_I so we need to check our own picnum instead of "sprite[PARTICLE_I].picnum" switch sprite[].picnum { case SOME_PARTICLE state particle_ember break case OTHER_PARTICLE state particle_smallfire break default [ some failsafe code ] break } endswitch state particle_deleteme } } endevent
// Process logic for corpses without making them actors appendevent EVENT_WORLD { for ACTORI sprofstat STAT_CORPSE { setu .vm_sprite ACTORI setu .vm_player myconnectindex fall action 0 move 0 state enemy_elite_display // Ignore for this example, this handles their palette and custom sprite display } } endevent
This post has been edited by eniojr: 16 December 2024 - 08:15 AM
Reaper_Man, on 16 December 2024 - 07:53 AM, said:
VGames, on 16 December 2024 - 06:25 AM, said:
onevent EVENT_GAME { getactor[THISACTOR].picnum picnum switch picnum { case LADDER { ifvare monstflags 1 { ifvare monstatus 0 { setvar monstatus 1 setvar temp 0 whilevarn temp 16384 { getactor[temp].picnum picnum ifvare picnum LADDER ifvarvarn temp THISACTOR { getactorvar[temp].monstflags tempb ifvare tempb 1 { getactorvar[temp].hitag tempc ifvarvare hitag tempc { setvarvar myspawner temp setvar monstatus 1 setvar temp 16383 getactor[THISACTOR].z z getactor[myspawner].z mz ifvarvarg z mz { setvar mtype 1 setvarvar topladder mz } } } } addvar temp 1 } } ifvare mtype 1 ifvare dodge 0 { getplayer[THISACTOR].posz mz ifp pducking subvar mz 4096 getactor[THISACTOR].z z addvar z 1024 ifvarvarg mz topladder ifvarvarl mz z { getplayer[THISACTOR].i target ldist xydist THISACTOR target ifangdiffl 384 ifvarl xydist 384 { ifvare onladder 0 { getplayer[THISACTOR].posx lastladderx getplayer[THISACTOR].posy lastladdery } setvar onladder 3 ifvarn lotag 0 setvarvar laddersound lotag else setvar laddersound -1 } } } } break } case APLAYER { ifvarg onladder 0 state ladderinteraction break } } endswitch } endevent
state ladderinteraction { // Lógica de interação com a escada ifvarg fpress 0 subvar fpress 1 ifvarg bpress 0 subvar bpress 1 ifvarl onladder 0 addvar onladder 1 ifvarg onladder 0 state laddercode ifp ponground setvar nofalldamage 0 ifvarn nofalldamage 0 setplayer[THISACTOR].falling_counter 0 ifvarg bhold 7 { setvar btap 0 setvar bhold 0 } ifvarg fhold 7 { setvar ftap 0 setvar fhold 0 } ifvarg lhold 7 { setvar ltap 0 setvar lhold 0 } ifvarg rhold 7 { setvar rtap 0 setvar rhold 0 } ifvarvarn timer fpresstime setvar fhold 0 ifvarvarn timer bpresstime setvar bhold 0 setvarvar tempb timer subvarvar tempb fpresstime ifvarg tempb 4 setvar ftap 0 setvarvar tempb timer subvarvar tempb bpresstime ifvarg tempb 4 setvar btap 0 setvarvar tempb timer subvarvar tempb lpresstime ifvarg tempb 4 setvar ltap 0 setvarvar tempb timer subvarvar tempb rpresstime ifvarg tempb 4 setvar rtap 0 } ends
This post has been edited by eniojr: 16 December 2024 - 02:28 PM
Danukem, on 16 December 2024 - 12:16 PM, said:
eniojr, on 17 December 2024 - 07:17 AM, said:
This post has been edited by Mark: 17 December 2024 - 08:10 AM
Reaper_Man, on 17 December 2024 - 07:02 AM, said:
VGames, on 17 December 2024 - 08:41 AM, said: