não testei amigo:
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
function getNumber(txt)
x = string.gsub(txt,"%a","")
x = tonumber(x)
if x ~= nill and x > 0 then
return x
else
return 0
end
end
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
items = {
["boggy dreads"] = {id = 10583, price = 1000},
["centipede leg"] = {id = 11212, price = 2000},
["cobra tongue"] = {id = 10550, price = 3000},
["essence of a bad dream"] = {id = 11217, price = 4000},
["ghastly dragon head"] = {id = 11360, price = 5000},
["gland"] = {id = 8971, price = 5000},
["half digested piece of meat"] = {id = 11194, price = 5000},
["half eaten brain"] = {id = 10575, price = 5000},
["hellhound slobber"] = {id = 10553, price = 5000},
["lizard essence"] = {id = 12597, price = 5000},
["mutated flesh"] = {id = 11219, price = 5000},
["mutated rat tail"] = {id = 10584, price = 5000},
["book of necromantic rituals"] = {id = 11231, price = 5000},
["petrified scream"] = {id = 11331, price = 5000},
["tarantula egg"] = {id = 1192, price = 5000},
["undead heart"] = {id = 11361, price = 5000},
["broken halberd"] = {id = 11329, price = 5000},
["cursed shoulder spikes"] = {id = 11321, price = 5000},
["legionnaire flags"] = {id = 11328, price = 5000},
["spiked iron ball"] = {id = 11319, price = 5000}
}
msg = string.lower(msg)
if not talkState[talkUser] and not items[msg] then
selfSay('eu não compro este item!', cid)
elseif items[msg] then
selfSay('cada '..msg..' vale '..items[msg].price..' gold, quer me vender quantos desse item?', cid)
index,var = items[msg].id,items[msg].price
talkState[talkUser] = 1
elseif talkState[talkUser] == 1 then
if getNumber(msg) > 0 and getNumber(msg) < 11 then
n = getNumber(msg)
selfSay('você quer vender '..n..' '..getItemNameById(index)..' por um total de '..var*n..' gps? {yes}', cid)
talkState[talkUser] = 2
else
selfSay('digite num número de 1 a 10!', cid)
end
elseif msgcontains(msg, "yes") and talkState[talkUser] == 2 then
if doPlayerRemoveItem(cid, index, n) then
doPlayerAddMoney(cid, var*n)
selfSay('Muito obrigado, aqui está seu dinheiro!', cid)
else
selfSay('você não tem os items!', cid)
talkState[talkUser] = 0
end
elseif msg == "no" and talkState[talkUser] >= 1 then
selfSay("tudo bem então.", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())





info
Grupo: Cavaleiro
Registrado: 13/11/11
Posts: 190
Reputação: +20
Char no Tibia: Sweesh
Ae galera eu precisava que nesse script o player pudesse ja falar o nome do item direto sem precisar falar trade,vender ou sell antes.
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 function getNumber(txt) x = string.gsub(txt,"%a","") x = tonumber(x) if x ~= nill and x > 0 then return x else return 0 end end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid items = { ["boggy dreads"] = {id = 10583, price = 200}, ["centipede leg"] = {id = 11212, price = 28}, ["cobra tongue"] = {id = 10550, price = 15}, ["essence of a bad dream"] = {id = 11217, price = 360}, ["ghastly dragon head"] = {id = 11360, price = 700}, ["gland"] = {id = 8971, price = 500}, ["half digested piece of meat"] = {id = 11194, price = 55}, ["half eaten brain"] = {id = 10575, price = 85}, ["hellhound slobber"] = {id = 10553, price = 500}, ["lizard essence"] = {id = 12597, price = 300}, ["mutated flesh"] = {id = 11219, price = 50}, ["mutated rat tail"] = {id = 10584, price = 150}, ["book of necromantic rituals"] = {id = 11231, price = 250}, ["petrified scream"] = {id = 11331, price = 250}, ["tarantula egg"] = {id = 1192, price = 80}, ["undead heart"] = {id = 11361, price = 200}, ["broken halberd"] = {id = 11329, price = 100}, ["cursed shoulder spikes"] = {id = 11321, price = 320}, ["legionnaire flags"] = {id = 11328, price = 500}, ["spiked iron ball"] = {id = 11319, price = 100} } msg = string.lower(msg) if isInArray({"trade","vender","sell","selling"}, msg) then selfSay('Qual item você deseja me vender?', cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if items[msg] then selfSay('Compro cada '..msg..' por '..items[msg].price..' golds, quer me vender quantos desse item?', cid) index,var = items[msg].id,items[msg].price talkState[talkUser] = 2 else selfSay('Eu n\ão compro este item!', cid) end elseif talkState[talkUser] == 2 then if getNumber(msg) > 0 and getNumber(msg) <= 100 then n = getNumber(msg) selfSay('você quer vender '..n..' '..getItemNameById(index)..' por '..var*n..' golds?', cid) talkState[talkUser] = 3 else selfSay('Compro no m\ínimo 1 e no m\áximo 100 desse item!', cid) end elseif msgcontains(msg, "yes") and talkState[talkUser] == 3 then if doPlayerRemoveItem(cid, index, n) then doPlayerAddMoney(cid, var*n) selfSay('Muito obrigado, aqui está seu dinheiro!', cid) else selfSay('você não tem os items!', cid) talkState[talkUser] = 0 end elseif msg == "no" and talkState[talkUser] >= 1 then selfSay("Tudo bem então.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())Creio que o problema esteja aqui, tentei apagar mais bugou.