Log in

View Full Version : Need help with a lua file



kreteno
02-21-2016, 07:43 PM
Hello, I'm doing something wrong here and I just can't figure it out.

This is the code which I tried to write by myself and failed. When I try to run it it says

Line #: 58
Error: 'end' expected (to close 'function' at line 32) near 'elseif'

I have no idea how to fix that. I could only run the script after trying to put end's on different places but then some labels would not work. Could someone help me with that?




--Backpacks--
MainBP = "Backpack"
GoldBP = "Green Backpack"
LootBP = "Orange Backpack"
StacBP = "Fur Backpack"
SuppBP = "Pirate Backpack"
BoltBP = "Shopping bag"
--Mana Potions--
MaxMana = 500
MinMana = 150
ManaPrice = 80
ManaID = 237
--Health Potions--
MaxHealth = 50
MinHealth = 25
HealthPrice = 120
HealthID = 7642
--Capacity--
MinCap = 150
--Ammunition--
SpearBuy = 1100
LeaveAmmo = 400
AmmoID = 15793

----------------------------------------------------
----------------------------------------------------
----------------------------------------------------
----------------------------------------------------

registerEventListener(WALKER_SELECTLABEL, "onWalkerSelectLabel")
setTargetingEnabled(true)
setLooterEnabled(true)

function onWalkerSelectLabel(labelName)
if (labelName == "Check") then
if (Self.ItemCount(ManaID) < MinMana) or (Self.ItemCount(HealthID) < MinHealth) or (Self.Cap() < MinCap) or (Self.ItemCount(AmmoID) <= LeaveAmmo) then
gotoLabel("Leave")
else
gotoLabel("Hunt")
end

elseif (labelName == "Check2") then
if (Self.ItemCount(ManaID) < MinMana) or (Self.ItemCount(HealthID) < MinHealth) or (Self.Cap() < MinCap) or (Self.ItemCount(AmmoID) <= LeaveAmmo) then
gotoLabel("GoTown")
else
gotoLabel("Continue2")
end
elseif (labelName == "Pots") then
setWalkerEnabled(false)
Self.SayToNpc({"hi", "vials", "yes", "trade"},65)
wait(500,700)
Self.ShopBuyItemsUpTo(ManaID, MaxMana)
wait(900, 1200)
Self.ShopBuyItemsUpTo(HealthID, MaxHealth)
wait(200, 500)
setWalkerEnabled(true)
end


elseif (labelName == "Backpacks") then
setWalkerEnabled(false)
Self.CloseContainers()
wait(1800, 2400)
Self.OpenMainBackpack(true):OpenChildren({Item.Get ID(GoldBP), true}, {Item.GetID(LootBP), true}, {Item.GetID(SuppBP), true}, {Item.GetID(BoltBP), true}, {Item.GetID(StacBP), true})
wait(1800, 2400)
Walker.Start()


elseif(labelName == "Arrows") then
setBotEnabled(false)
Self.SayToNpc({"Hi", "Trade"}, 65)
wait(500,700)
Self.ShopBuyItem(AmmoID,(SpearBuy-Self.ItemCount(AmmoID)))
wait(900, 1200)
setBotEnabled(true)


elseif(LabelName == "Heliar") then
setWalkerEnabled(false)
Self.SayToNpc({"Hi", "Heliar", "Yes"}, 65)
setBotEnabled(true)


elseif(LabelName == "Yalahar") then
setWalkerEnabled(false)
Self.SayToNpc({"Hi", "Yalahar", "Yes"}, 65)
setBotEnabled(true)


elseif(LabelName == "Kick") then
setWalkerEnabled(false)
Self.SayToNpc({"Hi", "Kick"}, 65)
setWalkerEnabled(true)
end
end

Oscagi
02-22-2016, 12:25 AM
The bug is there:


elseif (labelName == "Pots") then
setWalkerEnabled(false)
Self.SayToNpc({"hi", "vials", "yes", "trade"},65)
wait(500,700)
Self.ShopBuyItemsUpTo(ManaID, MaxMana)
wait(900, 1200)
Self.ShopBuyItemsUpTo(HealthID, MaxHealth)
wait(200, 500)
setWalkerEnabled(true)
end -- << DELETE.


Dont write a end in ELSEIF, if u dont a checker,conditional, function...(inside)

BTW next time use [.xcode=lua] [./xcode] its better bcs u can see the line.