Doom Marine
Register | User Profile | Member List | F.A.Q | Privacy Policy | New Blog | Search Forums | Forums Home
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Special Interest > Eternity > jump codepointer = broke
 
Author
All times are GMT. The time now is 17:05. Post New Thread    Post A Reply
Lance MDR Rocket
Mini-Member


Posts: 99
Registered: 03-06


Only the S_POSS_ATK* frames are important (right down the bottom there), but I copied the whole thing to make it easy for peeps to copy, paste, and test:

code:
// include the usual definitions too stdinclude("root.edf") // ZOMBIEMEN! // Changes: more aggro (attacks more often, shoots more bullets) - mean as a vanilla sergeant. More health. thingtype Zombieman { doomednum = 3004 spawnstate = S_POSS_STND spawnhealth = 30 seestate = S_POSS_RUN0 seesound = posit1 attacksound = pistol painstate = S_POSS_PAIN painchance = 160 painsound = popain missilestate = S_POSS_ATK0 deathstate = S_POSS_DIE1 xdeathstate = S_POSS_XDIE1 deathsound = podth1 speed = 8 height = 56.0 activesound = posact cflags = SOLID|SHOOTABLE|COUNTKILL|FOOTCLIP|SPACMONSTER|PASSMOBJ|RANGEHALF raisestate = S_POSS_RAISE1 droptype = AmmoClip obituary_normal = "was surprised by the zombie's firepower" acs_spawndata { num = 4; modes = doom } dehackednum = 2 } // altered Zombieman routines frame S_POSS_RUN0 { cmp = "POSS| *|*| 0|SetCounter(0,0,0)|S_POSS_RUN1"; } frame S_POSS_RUN1 { cmp = "POSS| *|*| 4|Chase |@next"; dehackednum = 176 } frame S_POSS_RUN2 { cmp = "POSS| *|*| 4|Chase |@next"; dehackednum = 177 } frame S_POSS_RUN3 { cmp = "POSS| 1|*| 4|Chase |@next"; dehackednum = 178 } frame S_POSS_RUN4 { cmp = "POSS| 1|*| 4|Chase |@next"; dehackednum = 179 } frame S_POSS_RUN5 { cmp = "POSS| 2|*| 4|Chase |@next"; dehackednum = 180 } frame S_POSS_RUN6 { cmp = "POSS| 2|*| 4|Chase |@next"; dehackednum = 181 } frame S_POSS_RUN7 { cmp = "POSS| 3|*| 4|Chase |@next"; dehackednum = 182 } frame S_POSS_RUN8 { cmp = "POSS| 3|*| 4|Chase |S_POSS_RUN0"; dehackednum = 183 } frame S_POSS_ATK0 { cmp = "POSS| 4|*| 3|FaceTarget |S_POSS_ATK1"; } frame S_POSS_ATK1 { cmp = "POSS| 4|*| 4|FaceTarget |@next"; dehackednum = 184 } frame S_POSS_ATK2 { cmp = "POSS| 5|*| 6|PosAttack |@next"; dehackednum = 185 } frame S_POSS_ATK3 { cmp = "POSS| 4|*| 0|SetCounter(0,1,1)|S_POSS_ATK4"; dehackednum = 186 } frame S_POSS_ATK4 { cmp = "POSS| 4|*| 1|CounterJump(S_POSS_ATK5,2,2,0)|S_POSS_ATK1"; } frame S_POSS_ATK5 { cmp = "SPOS| 4|*| 35|Jump(128,SPOS_RUN0)|S_POSS_ATK1"; }


What should happen is the Zombieman should attack three times, then turn into a Sergeant (this is so I can be sure the S_POSS_ATK5 frame is actually being entered) and either attack again OR reenter his movement states, half and half chance. What happens is he attacks until pained. The Jump codepointer simply does not work (in 3.40.20 & SVN r2094 from DRDTeam); RandomJump, fortunately, is just fine.

Compare the following code for further proof (if it works, the zombieman's idle frames will flicker between Imp & zombie frames):

code:
stdinclude("root.edf") //zombieman frame S_POSS_STND { cmp = "POSS| *|*|10|RandomJump|@this|*|175|128"; dehackednum = 174 } frame S_POSS_STND2 { cmp = "TROO| 1|*|10|RandomJump|@this|*|174|128"; dehackednum = 175 }


&

code:
stdinclude("root.edf") //zombieman frame S_POSS_STND { cmp = "POSS| *|*|10|Jump(S_POSS_STND2,128)|@this|*|175|128"; dehackednum = 174 } frame S_POSS_STND2 { cmp = "TROO| 1|*|10|Jump(S_POSS_STND,128)|@this"; dehackednum = 175 }


And, as long as I'm complaining, can we have user definable accuracy for custom bullet attacks please? I want the Sergeants to be more accurate & fire more (but less damaging) pellets, but setting their attacks to use the 'never accurate' setting makes them too lethal and they're even more useless than usual with SSG accuracy set.

Old Post 07-03-12 05:58 #
Lance MDR Rocket is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Quasar
Moderator


Posts: 5992
Registered: 08-00


A_Jump is for DECORATE states only, it does not allow references to global state names. It is provided for DECORATE compatibility.

If S_SPOS_RUN0 is assigned to the Sergeant's first walking state, then you can do it like this:

A_Jump(128, "Sergeant::See")

Old Post 07-03-12 18:43 #
Quasar is online now Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
Lance MDR Rocket
Mini-Member


Posts: 99
Registered: 03-06


The docs should probably reflect that. edit: never mind, I see guests can edit the Eternity wiki, so I did it myself.

Are there any other codepointers that are for decorate stuff only?

Last edited by Lance MDR Rocket on 07-04-12 at 00:57

Old Post 07-04-12 00:51 #
Lance MDR Rocket is offline Profile || Blog || PM || Search || Add Buddy IP || Edit/Delete || Quote
Quasar
Moderator


Posts: 5992
Registered: 08-00



Lance MDR Rocket said:
The docs should probably reflect that. edit: never mind, I see guests can edit the Eternity wiki, so I did it myself.

Are there any other codepointers that are for decorate stuff only?


I believe it is the only one so far which has this restriction. Pointers that are original to Eternity give preference to global state names, and then if one was not found, they'll check the actor's metastate names (which include DECORATE-syntax-defined states).

Old Post 07-05-12 05:02 #
Quasar is online now Profile || Blog || PM || Email || Homepage || Search || Add Buddy IP || Edit/Delete || Quote
All times are GMT. The time now is 17:05. Post New Thread    Post A Reply
 
Doomworld Forums : Powered by vBulletin version 2.2.5 Doomworld Forums > Special Interest > Eternity > jump codepointer = broke

Show Printable Version | Email this Page | Subscribe to this Thread

 

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are OFF
[IMG] code is ON
 

< Contact Us - Doomworld >

Powered by: vBulletin Version 2.2.5
Copyright ©2000, 2001, Jelsoft Enterprises Limited.