- Code: Select all • Expand view
Class RPistol : Pistol replaces Pistol
{
int dmg, crit, dur;
States
{
Fire:
PISG A 0 {invoker.dur = 3;}
PISG A 1
{
A_JumpIf(invoker.dur == 0, "Fire2");
invoker.dur--;
}
Goto Fire+1;
Fire2:
PISG B 6
...
Moderator: GZDoom Developers
Class RPistol : Pistol replaces Pistol
{
int dmg, crit, dur;
States
{
Fire:
PISG A 0 {invoker.dur = 3;}
PISG A 1
{
A_JumpIf(invoker.dur == 0, "Fire2");
invoker.dur--;
}
Goto Fire+1;
Fire2:
PISG B 6
...
Class RPistol : Pistol replaces Pistol
{
int dmg, crit, dur;
States
{
Fire:
PISG A 0 {invoker.dur = 3;}
PISG A 1
{
If(invoker.dur == 0){ Return ResolveState("Fire2"); }
invoker.dur--;
}
Goto Fire+1;
Fire2:
PISG B 6
...
Jarewill wrote:Jumps work differently in anonymous functions.
Try this:
- Code: Select all • Expand view
Class RPistol : Pistol replaces Pistol
{
int dmg, crit, dur;
States
{
Fire:
PISG A 0 {invoker.dur = 3;}
PISG A 1
{
If(invoker.dur == 0){ Return ResolveState("Fire2"); }
invoker.dur--;
}
Goto Fire+1;
Fire2:
PISG B 6
...
Class RPistol : Pistol replaces Pistol
{
int dmg, crit, dur;
States
{
Fire:
PISG A 0 {invoker.dur = 3;}
PISG A 1
{
If(invoker.dur == 0){ Return ResolveState("Fire2"); }
Else{ Return ResolveState(null); }
invoker.dur--;
}
Goto Fire+1;
Fire2:
PISG B 6
...
Jarewill wrote:Right, forgot about that.
Try this:
- Code: Select all • Expand view
Class RPistol : Pistol replaces Pistol
{
int dmg, crit, dur;
States
{
Fire:
PISG A 0 {invoker.dur = 3;}
PISG A 1
{
If(invoker.dur == 0){ Return ResolveState("Fire2"); }
Else{ Return ResolveState(null); }
invoker.dur--;
}
Goto Fire+1;
Fire2:
PISG B 6
...
PISG A 1
{
If(invoker.dur == 0){ Return ResolveState("Fire2"); }
Else{ invoker.dur--; Return ResolveState(null); }
}
Jarewill wrote:I was just being stupid and forgot to move the invoker.dur--; too.
This should work now:
- Code: Select all • Expand view
PISG A 1
{
If(invoker.dur == 0){ Return ResolveState("Fire2"); }
Else{ invoker.dur--; Return ResolveState(null); }
}
Users browsing this forum: No registered users and 3 guests