Discuss all aspects related to modding Zandronum here.
-
CtrlAltDestory
-
- Posts: 29
- Joined: Fri Dec 28, 2012 5:17 am
#1
Post
by CtrlAltDestory » Mon Jan 07, 2013 10:10 am
I wanted to try to make something no has made before or atleast that I know of, and It just wont work... Take note that its 2:10AM and It might be just because of sleep but I still want to see if I can get help (Its also not all 0's just because...).
Code: Select all
ACTOR Breifcase : Weapon
{
Obituary "%o was bludgened by %k's Breifcase."
Inventory.Pickupmessage "Picked up a Breifcase."
Tag "Breifcase"
+WEAPON.MELEEWEAPON
States
{
Ready:
TNT1 A 1 A_WeaponReady
Loop
Deselect:
TNT1 A 1 A_Lower
Loop
Select:
TNT1 A 1 A_Raise
Loop
Fire:
TNT1 A 4
TNT1 A 4 A_Punch
TNT1 A 5
TNT1 A 4
TNT1 A 5 A_ReFire
Goto Ready
AltFire:
TNT1 A 0 A_JumpIfInventory("ItemsTaken",1,"GiveWeapons")
TNT1 A 0 A_JumpIfInventory("ItemsTaken",0,"TakeWeapons")
Goto Error
TakeWeapons:
TNT1 A 1 A_JumpIfInventory("Chainsaw",0,3)
TNT1 A 1 A_GiveInventory("ChainsawEgg")
TNT1 A 1 A_TakeInventory("Chainsaw")
TNT1 A 1 A_JumpIfInventory("Pistol",0,3)
TNT1 A 1 A_GiveInventory("PistolEgg")
TNT1 A 1 A_TakeInventory("Pistol")
TNT1 A 8 A_Print("Items Taken")
TNT1 A 1 A_GiveInventory("ItemsTaken")
Goto Ready
GiveWeapons:
TNT1 A 1 A_JumpIfInventory("ChainsawEgg",0,3)
TNT1 A 1 A_GiveInventory("Chainsaw")
TNT1 A 1 A_TakeInventory("ChainsawEgg")
TNT1 A 1 A_JumpIfInventory("PistolEgg",0,3)
TNT1 A 1 A_GiveInventory("Pistol")
TNT1 A 1 A_TakeInventory("PistolEgg")
TNT1 A 8 A_Print("Items Given")
TNT1 A 1 A_TakeInventory("ItemsTaken")
Goto Ready
Error:
TNT1 A 8 A_Print("How the fuck are you seeing this?!")
Goto Ready
Spawn:
CSAW A -1
Stop
}
}
ACTOR ChainsawEgg : CustomInventory
{
+COUNTITEM
-INVENTORY.INVBAR
Inventory.Icon "TNT1A0"
Inventory.PickupMessage ""
Inventory.DefMaxAmount
Tag ""
States
{
Spawn:
TNT1 A 1
Loop
}
}
ACTOR PistolEgg : CustomInventory
{
+COUNTITEM
-INVENTORY.INVBAR
Inventory.Icon "TNT1A0"
Inventory.PickupMessage ""
Inventory.DefMaxAmount
Tag ""
States
{
Spawn:
TNT1 A 1
Loop
}
}
ACTOR ItemsTaken : CustomInventory
{
+COUNTITEM
-INVENTORY.INVBAR
Inventory.Icon "TNT1A0"
Inventory.PickupMessage ""
Inventory.DefMaxAmount
Tag ""
States
{
Spawn:
TNT1 A 1
Loop
}
}
Last edited by
CtrlAltDestory on Tue Jan 08, 2013 1:10 am, edited 1 time in total.
-
Catastrophe
- Retired Staff / Community Team Member
- Posts: 2571
- Joined: Sat Jun 02, 2012 2:44 am
#2
Post
by Catastrophe » Mon Jan 07, 2013 2:24 pm
I'm assuing takeweapons doesnt work?
-
CtrlAltDestory
-
- Posts: 29
- Joined: Fri Dec 28, 2012 5:17 am
#3
Post
by CtrlAltDestory » Tue Jan 08, 2013 1:11 am
Catastrophe wrote:
I'm assuing takeweapons doesnt work?
AltFire:
TNT1 A 0 A_JumpIfInventory("ItemsTaken",1,"GiveWeapons")
TNT1 A 0 A_JumpIfInventory("ItemsTaken",0,"TakeWeapons")
Goto Error
If it dident work I told it to Goto Error and its going to Error...
-
ZzZombo
- Forum Regular
- Posts: 323
- Joined: Mon Jun 11, 2012 12:11 pm
- Location: Ravenholm
#4
Post
by ZzZombo » Mon Jan 14, 2013 4:11 pm
Do you try in singleplayer or in multiplayer?
Also, if you want to check whether an actor DOESN'T have an item, you must do something like this:
Code: Select all
//do we have at least one item of type YourItem?
A_JumpIfInventory(YourItem,1,ActorHasItemState)//in your case GiveWeapons
goto ActoHasNoItem//TakeWeapons
Your second check is just redundant since A_JumpIfInventory jumps if the calling actor has EQUAL or more items than in the first parameter. Or, rather, possibly 0 has a special meaning here "jump if the actor has maximum amount of YourItem, don't remember.
-
Llewellyn
- Forum Regular
- Posts: 578
- Joined: Mon Jul 02, 2012 7:12 am
#5
Post
by Llewellyn » Mon Jan 14, 2013 6:16 pm
Yes when checking for an amount 0 always means "Max amount of" so checking for 1 and 0 is just checking for 1 twice in this case...
And you should probably specify an amount for A_TakeInventory and A_GiveInventory
Try this:
Code: Select all
ACTOR Breifcase : Weapon
{
Obituary "%o was bludgened by %k's Breifcase."
Inventory.Pickupmessage "Picked up a Breifcase."
Tag "Breifcase"
+WEAPON.MELEEWEAPON
States
{
Ready:
TNT1 A 1 A_WeaponReady
Loop
Deselect:
TNT1 A 1 A_Lower
Loop
Select:
TNT1 A 1 A_Raise
Loop
Fire:
TNT1 A 4
TNT1 A 4 A_Punch
TNT1 A 5
TNT1 A 4
TNT1 A 5 A_ReFire
Goto Ready
AltFire:
TNT1 A 0 A_JumpIfInventory("ItemsTaken", 1, "GiveWeapons") //Intentional drop through to TakeWeapons
TakeWeapons:
TNT1 A 1 A_JumpIfInventory("Chainsaw",0,3)
TNT1 A 1 A_GiveInventory("ChainsawEgg")
TNT1 A 1 A_TakeInventory("Chainsaw")
TNT1 A 1 A_JumpIfInventory("Pistol",0,3)
TNT1 A 1 A_GiveInventory("PistolEgg")
TNT1 A 1 A_TakeInventory("Pistol")
TNT1 A 8 A_Print("Items Taken")
TNT1 A 1 A_GiveInventory("ItemsTaken", 1)
Goto Ready
GiveWeapons:
TNT1 A 1 A_JumpIfInventory("ChainsawEgg",0,3)
TNT1 A 1 A_GiveInventory("Chainsaw")
TNT1 A 1 A_TakeInventory("ChainsawEgg")
TNT1 A 1 A_JumpIfInventory("PistolEgg",0,3)
TNT1 A 1 A_GiveInventory("Pistol")
TNT1 A 1 A_TakeInventory("PistolEgg")
TNT1 A 8 A_Print("Items Given")
TNT1 A 1 A_TakeInventory("ItemsTaken", 1)
Goto Ready
Spawn:
CSAW A -1
Stop
}
}
ACTOR ChainsawEgg : CustomInventory
{
+COUNTITEM
-INVENTORY.INVBAR
Inventory.Icon "TNT1A0"
Inventory.PickupMessage ""
Inventory.DefMaxAmount
Tag ""
States
{
Spawn:
TNT1 A 1
Loop
}
}
ACTOR PistolEgg : CustomInventory
{
+COUNTITEM
-INVENTORY.INVBAR
Inventory.Icon "TNT1A0"
Inventory.PickupMessage ""
Inventory.DefMaxAmount
Tag ""
States
{
Spawn:
TNT1 A 1
Loop
}
}
ACTOR ItemsTaken : CustomInventory
{
+COUNTITEM
-INVENTORY.INVBAR
Inventory.Icon "TNT1A0"
Inventory.PickupMessage ""
Inventory.MaxAmount 1
Tag ""
States
{
Spawn:
TNT1 A 1
Loop
}
}
Last edited by
Llewellyn on Mon Jan 14, 2013 6:33 pm, edited 1 time in total.