Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Pastebinning the relevant code here. All the irrelevant code has been snipped.
- // The tl;dr of the matter is how Iron Maiden mode works is that on picking up the weapon,
- // the player is given a custominventory item that, when used, jumps to a Henshin state
- // that adjusts the player's inventory and gives them dummy items.
- // The problem is that partway through the state, it simply...stops.
- // The Henshin state just stops working, and the player is left with a half-finished
- // set-up that results in a lot of breakage.
- // This is exclusive to 2.0. In 1.3, it works perfectly fine as intended.
- actor KamenRiderModeActivate : CustomInventory
- {
- +INVENTORY.UNDROPPABLE
- +INVBAR
- Inventory.Amount 1
- Inventory.MaxAmount 1
- States
- {
- Use:
- TNT1 A 0 A_JumpIfInventory("GotIronMaiden",1,"UseCheck") // If the player has the BFG9000 slot, it jumps.
- TNT1 A 1
- fail
- UseCheck:
- TNT1 A 0 A_JumpifInventory("HenshinCooldown",1,"UseFail")
- TNT1 A 0 A_JumpifInventory("HenshinActivated",1,"UseFail") // Technically not needed, but I'd rather not spam the server with ACS.
- TNT1 A 0 A_GiveInventory("HenshinActivated",1) // Activates the Henshin state on the weapon.
- TNT1 A 0 ACS_ExecuteAlways(WEEB_DECORATE,0,WEEB_DEC_HENSHIN,0,0) // This script simply takes away HenshinActivated after 10 tics.
- TNT1 A 1
- fail
- UseFail:
- TNT1 A 0
- fail
- }
- }
- actor "Kharon + Acacia A-22" : Kharon
- {
- Weapon.AmmoUse2 1
- Weapon.AmmoType2 "WeebClip"
- Weapon.SlotNumber 2
- States
- {
- Ready:
- TNT1 A 0 A_JumpIfInventory("TimeToLaunchOctopus",1,"PrepareToHoldAttackNormal")
- TNT1 A 0 A_JumpIfInventory("WaitingTooLong",0,"IdleAnimation")
- TNT1 A 0 A_JumpIfInventory("HenshinActivated",1,"HenshinCheck")
- WEPA A 1 A_WeaponReady
- Loop
- [...]
- HenshinCheck:
- TNT1 A 0 A_JumpIfInventory("SuperMeterCounter",100,"Henshin") // If the player doesn't have enough ammo, it doesn't work.
- TNT1 A 1
- TNT1 A 0 A_PlaySoundEx("henshin/error2","soundslot5",0,0)
- TNT1 A 0 A_PlaySoundEx("henshin/error","soundslot6",0,0)
- TNT1 A 0 A_PlaySoundEx("*pain","sounslot7",0,0)
- TNT1 A 0 A_Print("Error: Insufficient soul reserve.")
- TNT1 A 0 A_GiveInventory("HenshinCooldown",70)
- TNT1 A 0 A_SetBlend("White",1.0,35)
- TNT1 A 0 A_Recoil(10)
- TNT1 A 0 A_TakeInventory("HenshinActivated",1)
- TNT1 A 0 A_ClearRefire
- goto Fired2
- Henshin:
- WEPA BCD 1
- TNT1 A 1
- TNT1 A 0 A_PlaySoundEx("henshin/click","soundslot6",0,0)
- TNT1 A 4 A_TakeInventory("KharonSwung",1)
- TNT1 A 0 A_PlayWeaponSound("henshin/foley")
- HNSH AABBCDE 1
- HNSH F 15 A_PlaySoundEx("henshin/call","soundslot6",0,0)
- TNT1 A 0 A_PlayWeaponSound("henshin/foley")
- HNSH FGHIIJJKKLL 1
- TNT1 A 0 A_PlaySoundEx("hammer/spark","soundslot5",0,0)
- TNT1 A 0 A_PlayWeaponSound("henshin/foley")
- HNSH MNOOPP 1
- TNT1 A 0 A_PlayWeaponSound("henshin/foley")
- HNSH QRST 1
- TNT1 A 0 A_PlaySoundEx("henshin/donarmor","soundslot6",0,0)
- HNSH UVWX 2
- HNSH Y 2 A_SetBlend("Red",0.1,3)
- HNSH Z 2 A_SetBlend("Red",0.2,3)
- HNSN A 2 A_SetBlend("Red",0.3,3)
- HNSN B 2 A_SetBlend("Red",0.5,3)
- HNSN C 2 A_SetBlend("Red",0.7,3)
- HNSN D 2 A_SetBlend("Red",0.9,3)
- HNSN D 2 A_SetBlend("Red",1.0,70)
- TNT1 A 0 A_GiveInventory("Iron Fist",1)
- TNT1 A 0 A_SelectWeapon("Iron Fist")
- TNT1 A 0 A_SpawnItemEx("IronMaidenRepel",0,0,0,0,0,0,0,48)
- TNT1 A 0 ACS_ExecuteAlways(275,0,WEEB_DEC_CHANGEMUS,0,0)
- TNT1 A 0 A_TakeInventory("AlreadyInLevel",1)
- TNT1 A 0 A_TakeInventory("Kharon + Legion",1)
- TNT1 A 0 A_TakeInventory("Kharon + Frosthammer",1)
- TNT1 A 0 A_TakeInventory("Kharon + Testament",1)
- TNT1 A 0 A_TakeInventory("Kharon + Sabbath",1)
- TNT1 A 0 A_TakeInventory("Kharon + Exodus",1)
- TNT1 A 0 A_TakeInventory("Kharon + Omen",1)
- TNT1 A 0 A_TakeInventory("Kharon + Acacia A-22",1)
- TNT1 A 0 A_TakeInventory("Kharon",1)
- // The problem is right here. Somehow, for some reason, everything stops working here.
- // Everything past this point simple doesn't happen.
- TNT1 A 0 A_TakeInventory("HenshinActivated",1) // Isn't taken.
- TNT1 A 0 A_TakeInventory("SuperMeterCounter",40) // Isn't taken.
- TNT1 A 0 A_GiveInventory("IronMaidenArmor2",100) // Isn't given.
- TNT1 A 0 A_GiveInventory("InIronMaiden",1) // Isn't given.
- TNT1 A 0 A_GiveInventory("IronMaidenSpeed",1) // Isn't given.
- TNT1 A 1
- goto Deselect
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement