New Action Parameters

Status
Not open for further replies.

SSNTails

What part of 'RETIRED' don't you understand?
Retired Staff
These are new variables that you can assign to each "State" in SOCs.

i.e.,

State 438
Action A_FireShot
Var1 = 42
Var2 = 1

Here are some that accept values:

A_FireShot
var1 = mobj type to fire
var2 = Z offset for missile spawn origin

A_SuperFireShot
Just like A_FireShot, but also stops Super Sonic

A_Look
var1 = if > 0, mobj looks all around itself for a target, rather than just where it's facing
var2 = if 0, the seestate and seesound is set when a target is found; if = 1, only the seestate is set; if = 2, only the seesound is played; if > 2, neither the seesound or seestate is set.

A_BunnyHop
var1 = Sets hop height
var2 = Sets hop distance

A_BubbleRise
if var1 > 0, don't randomly 'bend' around the water (rise straight up)
var2 = bubble rise speed

A_DropMine
var1 = z offset for spawning mine

A_Snowball
var1 = additional time to add to snowball duration

A_CrawlaCommanderThink
var1 = mobj type to fire as projectile (like old final demo behavior)
var2 = pogo height/speed

A_RingExplode
var1 = mobj type to spawn as debris

A_Boss2PogoSFX
var1 = pogo height

A_TurretStart
var1 = object # to fire
var2 = activation distance threshold in fracunits (2048 is default)

A_TurretStop
If var1 > 0, then don't play the 'activesound'

A_SmokeTrailer
var1 = mobj type to spawn as 'smoke'

A_SpawnObjectAbsolute(x,y,z,type)
A_SpawnObjectRelative(x,y,z,type)
Upper 16 bits of var1 = x
Lower 16 bits of var1 = y
Upper 16 bits of var2 = z
Lower 16 bits of var2 = type

A_ChangeAngleRelative
var1 = min
var2 = max
Changes angle by to a relative value randomly picked between the min and max

A_ChangeAngleAbsolute
var1 = min
var2 = max
Changes angle by to an absolute value randomly picked between the min and max

A_PlaySound
var1 = sfx number to play
var2 = if 0, plays sound from calling mobj, otherwise plays at local machine

A_FindTarget
var1 = mobj type to find as target
var2 = if 0, finds nearest, if nonzero, finds farthest away

A_SetTics
if var1 > 0, then set tics to value of var1
else, if var2 > 0, then set tics to value of mobj's threshold

A_SkullAttack
var1 =
0 - Fly at the player
1 - Fly away from the player
2 - Strafe in relation to the player

A_ChangeColorRelative
if(var1), find target and add its color value to yours
else, var2 = color value to add

A_ChangeColorAbsolute
if(var1), set your color to your target's color
else, var2 = color value to set to

A_MoveRelative
var1 = angle
var2 = force

A_MoveAbsolute
var1 = angle
var2 = force

Anyone have ideas for others?
 
I won't be using this.. but how about something with A_RingChase? Stronger attraction, or something.
 
A_RandomStateRelative
var1 = Minimum state number to choose.
var2 = Maximum state number to use.

It selects a random state between the two VARs.


A_RandomStateAbsolute
var1 = Minimum state number to choose.
var2 = Maximum state number to use.

Picks one of the two states at random.

Could be used for custom boss battles, random attacks, or real random monitors. :)

How about an A_ChangeMusic?

A_ChangeMusic
var1 = Music slot to change to.
var2 = If 0, the music changes instantly, like the TUNES command, if 1, it fades the music when changing.

A_BombBlast
var1 = Object to spawn as debris
var2 = Radius of the blast.

Just a few ideas.
 
with VAR1 being displacement from said angle(horizontal), and VAR2 being the vertical angle displacement!


*delete & repost bump*

A_CapeChase:

Var1 = object to attach to(-1 for currently set target, -2 for currently set tracer)
Var2 = action type(0 to make it only do it as long as the action is called, 1 to make it continue doing it until cancelled or overwritten(like turretfire), and 2 to cancel A_Capechase action that is already in progress).

*delete & repost bump(again)*

<Prime_2> hmm
<Prime_2> you think you could whip up an "A_SetJetFire"?
<Prime_2> like
<Prime_2> VAR1 = jetfire style(eggslimer, eggmobile 1, or just a solitary one in back)
<Prime_2> Var2 = jetfire object
<SSNTails> post it in the action parm thread

Does nobody care about SOC anymore? I'm the only guy posting here O_o

Anyways, this isn't quite an action paramiter(though it could be, depending on how it is implemented), but it pretains to SOC, so here goes. A linedef executor that activates an object(or rather, makes an object do something.). For instance: say you want some objects from a boss fight to die when eggman does. so you make eggman use A_LinedefExecute in his deathstate to activate a linedef special that calls A_Fall(or something else that would cause object death) on the objects you want dead.

Additionally, though this would only be implemented in my wildest dreams, an A_ArbitraryAction.

Code:
Var1(upper 16 bits) = Var1 of action
Var1(lower 16 bits) = object to call action(-1 for currently set target, -2 for currently set tracer)

Var2(upper 16 bits) = Var2 of action
Var2(lower 16 bits) = Action to call

Basically, an action that forces another object to call an action. Additional variations of this could be made to force the targetted object to its pain, attack, [insert object specific state here], or one of the user's choosing.

Now I'm going to be blunt. "A_ArbitraryAction" would be without a doubt the buggiest thing of all time, given that it would thrust actions into god knows what situation; but it could also be very useful. Either way, it would require a huge amount of bugfixing, not only for the actual performance of the action, but for the situations that result. Which is why it is for the most part, a wild SOC based dream. ~_^

EDIT: I almost forgot: SSN has informed me that the jetfire objects are special in a hard-coded way; in that you cannot substitute them with another object. So instead, I propose that a system akin to character skins be implemented so that the jetfire will look different. Given that A_SetJetFire is an entirely cosmetic action, I don't think this is all that limiting. So in revision:

Code:
A_SetJetFire
Var1 = jetfire style(eggslimer, eggmobile 1)
Var2 = jetfire skin
 
I have an idea.
A_Melee
var1 = how many frames it lasts for
var2 = What angle (Plus the player's direction) the hurt radius is.
0 = Right infront of you, also hurting enemies from your direction -45, and +45.
360 = All around

If A_Melee is used in your Melee state, after the *VAR1* amount of frames have shown, If you are not jumping you will return to a standstill in your stand frame.

A_Jumpup
var1 = What force you jump up. Set it to 201 and it will be the 'Thing's jumpheight.
var2 = What gravity the jump is.

Ok?
 
Code:
A_SetTracer
Var1 = object to set tracer to
Var2 = if 0, then closest, if 1, then farthest. If 3, then middle, if 4, then random.


Also, an addition to A_CapeChase.

Code:
Var1(upper 16 bits) = left/right displacement
Var2(upper 16 bits) = up/down displacement
Var2(lower 16 bits) = front/back displacement.

Finally, since we apparently can't have different jetfire objects, a replacement VAR2 for A_setjetfume:

VAR2 = object to spawn on(always nearest, -1 for self)
 
You probably don't wan't to hear this but I've always wanted a soc that leaves a trail of fire once you started running, but I can't make it, I've tried. :cry:
 
A_SpawnThingStayAtPosition
VAR1 = Thing to spawn on the opponent (Player if used by an enemy/robot) position.
VAR2 = Sound to play
Spawns a thing that stays on the opponent (Current target) until it goes to the S_DISS state. Acts like a bit like the A_VileStart, which plays a sound and spawns fire around the player. This is going to be used by me to make a Metal Sonic boss that spawns missles that home in on the player and a crosshair sign should show.

A_ThingTouchStateChange
VAR1 = The state the player will change to when it touches it.
VAR2 = N/A
This could be combined with Dash FOFs to make actual GRINDING!
I mean, custom states. SWEET!
When not touching this thing it goes to the correct state for the situation the player is in.
 
Tapika the fox said:
A_SpawnThingStayAtPosition
VAR1 = Thing to spawn on the opponent (Player if used by an enemy/robot) position.
VAR2 = Sound to play
Spawns a thing that stays on the opponent (Current target) until it goes to the S_DISS state. Acts like a bit like the A_VileStart, which plays a sound and spawns fire around the player. This is going to be used by me to make a Metal Sonic boss that spawns missles that home in on the player and a crosshair sign should show.

A_CapeChase, buddy.

A_ThingTouchStateChange
VAR1 = The state the player will change to when it touches it.
VAR2 = N/A
This could be combined with Dash FOFs to make actual GRINDING!
I mean, custom states. SWEET!
When not touching this thing it goes to the correct state for the situation the player is in.

You can actually do this with linedef executors.
 
:/
Ah well.
But...
Dont you think the name A_CapeChase sucks? I mean.. A cape? When was a cape ever used in SRB2?
 
I know this is old, but I know it won't be seen unless I post it here.

A_PumaJump desperately needs Var1 and Var2 to refer to the states it sends the object to. Otherwise it becomes impossible to use it without breaking Puma Flames.
 
First, ArbitaryAction I likey.

But anyway, I would like:

A_ZMove (Or whatever).

Moves target up or down in the z axis.

Var1: Constant = 1, Temp = 0
Var2: If constant, rate of movement (negative means downwards)
If temporary, distance moved

A_AirCheck

Calls state based on whether the target is on ground or not

Var1: State to goto if target is in air
Var2: State to goto if target is on ground

A_LockTarget

Halts target actions/movement temporarily

Var1: Time Halted
 
I think Warpshade's ideas are the best... And Tapika's A_Melee sounds good too... :P


A_WarpPositionAbsolute
A_WarpPositionRelative

Warps the object's position.

VAR1 = ( Xpos )
VAR2 = ( Ypos )

A_WarpTargetPositionAbsolute
A_WarpTargetPositionRelative

Warps the object's target's position.

VAR1 = ( Xpos )
VAR2 = ( Ypos )

I'll be really glad if you can add my ideas... :3
 
Status
Not open for further replies.

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

Back
Top