Serginov
Onkonkoronkonk
I need help with this script;
The NPC does not reply when i say 'hallowed axe' or 'demon oak'. He just replies on 'hi' :/
No Error massage :s
I use TFS
Code:
-- WAS NOT Made by Coltain13 // Coltain, I only made it work for TFS --
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
-- OTServ event handling functions start
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
-- OTServ event handling functions end
function creatureSayCallback(cid, type, msg)
-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
if(npcHandler.focus ~= cid) then
return false
end
player_gold = getPlayerItemCount(cid,2148)
player_plat = getPlayerItemCount(cid,2152)*100
player_crys = getPlayerItemCount(cid,2160)*10000
player_money = player_gold + player_plat + player_crys
playerCap = getPlayerFreeCap(cid)
item = 8293 --Hallowed Axe
itemweight = getItemWeight(item, 1)
if msgcontains(msg, 'hallowed axe') then
if isPlayer(cid) then
if getPlayerItemCount(cid,2386) >= 1 and player_money >= 50000 then
selfSay('Do you want to buy a Hallowed Axe from me?')
talk_state = 1
else
selfSay('You have to bring me an axe and 50000 gp first.')
talk_state = 0
end
else
selfSay('You need premium to buy this axe from me.')
talk_state = 0
end
elseif msgcontains(msg, 'yes') and talk_state == 1 then
talk_state = 0
if getPlayerItemCount(cid,2386) >= 1 and player_money >= 50000 then
if doPlayerTakeItem(cid,2386,1) == 0 and doPlayerRemoveMoney(cid,50000) == TRUE then
selfSay('Here you are. You can now defeat the demon oak with this axe.')
doPlayerAddItem(cid,8293,1)
talk_state = 0
else
selfSay('The Hallowed Axe is too heavy for you. Make sure that you have enough capacity.')
talk_state = 0
end
else
selfSay('Please bring with you an axe and enough with money.')
talk_state = 0
end
elseif msgcontains(msg, 'demon oak') then
if getPlayerStorageValue(cid,20000) == 1 and getPlayerStorageValue(cid,20001) == 1 and getPlayerStorageValue(cid,20002) == 1 and getPlayerStorageValue(cid,20003) == 1 then
selfSay('Did you defeat the demon oak?')
talk_state = 2
else
selfSay('Go defeat the demon oak.')
talk_state = 0
end
elseif msgcontains(msg, 'yes') and talk_state == 2 then
talk_state = 0
if getPlayerStorageValue(cid,20000) == 1 and getPlayerStorageValue(cid,20001) == 1 and getPlayerStorageValue(cid,20002) == 1 and getPlayerStorageValue(cid,20003) == 1 then
setPlayerStorageValue(cid,20004,1)
selfSay('Good job!')
end
------------------------------------------------ confirm no ------------------------------------------------
elseif msgcontains(msg, 'no') and (talk_state >= 1 and talk_state <= 1) then
selfSay('Ok thanks.')
talk_state = 0
end
-- Place all your code in here. Remember that hi, bye and all that stuff is already handled by the npcsystem, so you do not have to take care of that yourself.
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
The NPC does not reply when i say 'hallowed axe' or 'demon oak'. He just replies on 'hi' :/
No Error massage :s
I use TFS
Last edited: