I don't understand why it works fine until it gets to level 3.
So do I

. From the code you posted here I understand only one thing - your code isn't looking good

.
Use inheritance in decorate. Your axes have same properties and states, exept Fire states. So something like this
Code: Select all
ACTOR handaxe0 : Weapon
{
Weapon.AmmoUse 0
weapon.kickback 130
Weapon.SelectionOrder 1000
+noalert
DamageType Axe
States
{
Ready:
MYAX A 1 A_WeaponReady
Loop
Deselect:
NULL A 0 acs_executealways(440, 0, 1)
MYAX A 1 A_Lower
goto deselect +1
Select:
NULL A 0 acs_executealways(440, 0, 2)
MYAX A 1 A_Raise
goto select +1
Fire:
MYAX B 5
MYAX C 5
MYAX D 1 A_PlayWeaponSound("axswing") //axswing
MYAX D 1 A_CustomPunch(2, 0, 0, "MyAxePuff", 75) //MyAxePuff sickfogpuff
MYAX D 3
MYAX E 6
MYAX A 1 A_ReFire
MYAX A 4
Goto Ready
}
}
ACTOR handaxe1 : handaxe0
{
States
{
Fire:
MYAX B 5
MYAX C 4
MYAX D 1 A_PlayWeaponSound("axswing") //axswing
MYAX D 1 A_CustomPunch(2, 0, 0, "MyAxePuff", 75) //MyAxePuff sickfogpuff
MYAX D 1
MYAX E 6
MYAX A 1 A_ReFire
MYAX A 4
Goto Ready
}
}
looks better
Also, why are you using 1 and 2 as give and take for script 440? You can use true/false where 0 - false, and non-zero - true.
Code: Select all
//0 - take, 1 - give
script 440 (int give)
{
print(d: give);
if(give)
TakeActorInventory(255, "haveaxe", 1);
else
GiveActorInventory(255, "haveaxe", 1);
}
About subj - what you posted here isn't enough (well, for me

). Can't you post the wad here?