I Tried 2 different scripts, none of them worked.
Error Given :
Tried This Script
Second Script Used:
Error Given :
Code:
[Warning- Npcscript::Npcscript] can not load : data/npc/scripts/repairsoft.lua
cannot open data/npc/scripts/repairsoft.lua: no such file or directory
Code:
local talkState = {}
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
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
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then return false end
local SOFTBOOTS = {
WORN = 6530,
WORN2 = 10021,
NEW = 6132,
}
local PRICE = 200000
local QUERY = 'Do you want to repair your worn soft boots for '..PRICE..' gold coins?'
local BARE = "Sorry, you don't have the item."
local POOR = "Sorry, you don't have enough gold."
local DONE = 'Here you are.'
local BYE = 'Ok then.'
local player = Player(cid)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'soft') or msgcontains(msg, 'boots')) then
selfSay(QUERY, cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
local item = nil
if(player:getItemCount(SOFTBOOTS.WORN) >= 1) then
if(player:removeMoney(PRICE)) then
item = player:getItemById(SOFTBOOTS.WORN, true)
item:transform(SOFTBOOTS.NEW)
selfSay(DONE, cid)
else
selfSay(POOR, cid)
end
elseif(player:getItemCount(SOFTBOOTS.WORN2) >= 1) then
if(player:removeMoney(PRICE)) then
item = player:getItemById(SOFTBOOTS.WORN2, true)
item:transform(SOFTBOOTS.NEW)
selfSay(DONE, cid)
else
selfSay(POOR, cid)
end
else
selfSay(BARE, cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser])) then
talkState[talkUser] = 0
selfSay(BYE, cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Second Script Used:
Code:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
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
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if(msgcontains(msg, 'soft') or msgcontains(msg, 'boots')) then
selfSay('Do you want to repair your worn soft boots for 10000 gold coins?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, 10021) >= 1) then
if(doPlayerRemoveMoney(cid, 10000) == TRUE) then
doPlayerRemoveItem(cid, 10021, 1)
doPlayerAddItem(cid, 2640)
selfSay('Here you are.', cid)
else
selfSay('Sorry, you don\'t have enough gold.', cid)
end
else
selfSay('Sorry, you don\'t have the item.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok then.', cid)
elseif(msgcontains(msg, 'firewalker') or msgcontains(msg, 'boots')) then
selfSay('Do you want to repair your worn firewalker boots for 10000 gold coins?', cid)
talkState[talkUser] = 2
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if(getPlayerItemCount(cid, 10022) >= 1) then
if(doPlayerRemoveMoney(cid, 10000) == TRUE) then
doPlayerRemoveItem(cid, 10022, 1)
doPlayerAddItem(cid, 9933)
selfSay('Here you are.', cid)
else
selfSay('Sorry, you don\'t have enough gold.', cid)
end
else
selfSay('Sorry, you don\'t have the item.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ok then.', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())