Case # Call QuestMaster(index)
'***********************Sub QuestMaster(index)'***********************Dim MapDim LevelDim StartMsgDim ItemTakeMap = GetPlayerMap(index)Level = GetVar("scripts\mapextras\" & Map & ".ini", "QuestMaster", "LevelNeeded")StartMsg = GetVar("scripts\mapextras\" & Map & ".ini", "QuestMaster", "StartMsg")ItemTake = GetVar("scripts\mapextras\" & Map & ".ini", "QuestMaster", "ItemNeeded")'This will exit the sub if they are not the right levelMyVar = GetPlayerLevel(index) If MyVar = > Level Then Exit Sub End If'This give the start messageCall PlayerMsg(index, "" & StartMsg & "", 14)'This checks for the itemMyVar = GetPlayerInvItemNum(index, 1) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 2) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 3) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 4) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 5) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 6) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 7) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 8) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 9) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 10) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 11) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 12) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 13) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 14) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 15) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 16) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 17) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 18) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 19) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 20) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 21) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 22) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 23) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 24) If MyVar = ItemTake Then Call TakeItem(index)MyVar = GetPlayerInvItemNum(index, 25) If MyVar = ItemTake Then Call TakeItem(index)Else'You can edit the message, it says the person does not have the required item Call PlayerMsg(index, "You can not finish the quest right now, you are missing the required item.", 15)End Sub'***********************Sub Give_Item(index, number, durability)'***********************Dim slotslot = 1Do While slot < 25If Getplayerinvitemnum( index, Int( slot ) ) = 0 ThenCall SetPlayerInvItemNum(index, Int( slot ), Int( number ) )Call SetPlayerInvItemDur(index, Int( slot ), Int( durability ) )Call SetPlayerInvItemValue(index, Int( slot ), Int(0) )Call SendInventoryUpdate(index, Int(slot) )slot = 25End Ifslot = slot + 1LoopEnd Sub'***********************Sub quest_Take_Item(index, number, value)'***********************Dim slotDim initialDim finalDim takenslot=1Do While Int(slot) < 25If taken <> 1 ThenIf Getplayerinvitemnum(index,Int(slot)) = Int(number) ThenIf Int(getplayerinvitemvalue(index, Int(slot))) >= Int(value) Theninitial = Int(getplayerinvitemvalue(index, Int(slot) ) )final = Int(initial) - Int(value)If Int(final) <= 0 ThenCall setplayerinvitemnum(index, Int(slot), Int(0) )Call setplayerinvitemvalue(index, Int(slot), Int(0) )Call setplayerinvitemdur(index, Int(slot), Int(0) )Call SendInventoryUpdate(index, Int(slot))taken=1ElseCall setplayerinvitemvalue(index, Int(slot), Int(final) )Call SendInventoryUpdate(index, Int(slot) )taken=1End IfEnd IfEnd IfEnd Ifslot = slot + 1LoopEnd Sub'***********************Sub TakeItem(index)'***********************Dim ItemTakeItemTakeNeededItemTake = GetVar("scripts\mapextras\" & Map & ".ini", "QuestMaster", "ItemNeeded")ItemTakeNeeded = GetVar("scripts\mapextras\" & Map & ".ini", "QuestMaster", "Amount")'This take the item and checks if they have the right amountMyVar = GetPlayerInvItemValue(index, 1) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 1) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 2) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 2) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 3) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 3) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 4) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 4) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 5) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 5) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 6) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 6) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 7) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 7) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 8) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 8) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 9) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 9) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 10) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 10) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 11) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 11) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 12) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 12) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 13) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 13) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 14) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 14) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 15) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 15) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 16) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 16) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 17) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 17) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 18) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 18) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 19) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 19) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 20) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 20) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 21) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 21) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 22) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 22) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 23) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 23) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 24) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 24) Call SetXP(index)MyVar = GetPlayerInvItemValue(index, 25) If MyVar = ItemTakeNeeded quest_Take_Item(index, ItemTake, ItemTakeNeeded) Call SendInventoryUpdate(index, 25) Call SetXP(index)Else'Edit this message if you want, it says they don't have the right amount Call PlayerMsg(index, "You can not finish the quest right now, you are missing the required amount.", 15)End Sub'***********************Sub SetXP(index)'***********************Dim XPDim GiveItemDim GiveDurDim EndMsgXP = GetVar("scripts\mapextras\" & Map & ".ini", "QuestMaster", "GiveXP")GiveItem = GetVar("scripts\mapextras\" & Map & ".ini", "QuestMaster", "GiveItem")GiveDur = GetVar("scripts\mapextras\" & Map & ".ini", "QuestMaster", "GiveDurability")EndMsg = GetVar("scripts\mapextras\" & Map & ".ini", "QuestMaster", "EndMsg")'this give the xp, item, and end messageCall SetPlayerExp(index, GetPlayerExp(index) + Int(XP))Give_Item(index, GiveItem, GiveDur)Call PlayerMsg(index, "" & EndMsg & "", 15)End Sub
[QuestMaster]Name= < quest nameStartMsg= < Msg on startLevelNeeded= < level needed to do questItemNeeded= < item # neededAmount= < how manyGiveItem= < item prize numberGiveDurability= < durability on prizeGiveXP= < xp given to questerEndMsg= < msg when quest is completed
setplayerinvitemvalue
SetPlayerInvItemValue
Not entirely sure, but this might be case sensitive. For example ;QuotesetplayerinvitemvaluetoCode: [Select]SetPlayerInvItemValue