Ir para conteúdo

[Pk] Npc Task System Para Poketibia


GuhPk

Posts Recomendados

Foi mal, esse erro foi burrice minha ._.

 

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
 
local t = {need_items = {2160, 2159, 2158}, remove_items = {1, 2, 3}}
local g = t.need_items
local h = t.remove_items
premio1 = x -- coloque aqui o id do dinheiro
quant1 = x -- quantidade de grana que vai ganhar
pexp = x -- experiencia que vai ganhar no premio
 
 
    if msgcontains(msg, 'mission') or msgcontains(msg, 'help') then
        selfSay("Você gostaria de me ajudar numa missão?", cid)
        doPlayerSendTextMessage(cid, 27, "Say yes or no.")
        talkState[talkUser] = 1
        return true           
    elseif msgcontains(msg 'yes') and talkState[talkUser] == 1 then
        if getPlayerStorageValue(cid, storage) < 1 then
            selfSay("Certo, vá pegar x qnt de x items!", cid) 
setPlayerStorageValue(cid, 222011, 1)
            doPlayerSendTextMessage(cid, 27, "If you alreay have the items, say complete.")
            talkState[talkUser] = 2
            return true
        else
            selfSay("Você já me ajudou.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif msgcontains(msg, 'no') and talkState[talkUser] == 1 then
        selfSay("Ok então...", cid)
        talkState[talkUser] = 0
        return true
    elseif msgcontains(msg, 'complete') and (talkState[talkUser] == 2 or getPlayerStorageValue(cid, 222011) >= 1) then
        for i = 1, #g do
            if getPlayerItemCount(cid, g[i]) >= h[i] then
                doPlayerRemoveItem(cid, g[i], h[i])
                selfSay("Obrigado! Aqui está seu prêmio.", cid)
                doPlayerAddItem(cid, premio1, quant1)
                setPlayerStorageValue(cid, storage, 1)
setPlayerStorageValue(cid, 222011, -1)
                talkState[talkUser] = 0
                return true
            else
                selfSay("Você não possui os items requisitados.", cid)
                talkState[talkUser] = 0
                return true
            end
        end
    end
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Link para o comentário
Compartilhar em outros sites

Quando falo hi, mission tudo certo, ai na hora do "yes" que não funciona e dar esse erro:

[15/11/2013 13:20:01] [Error - Npc interface] 
[15/11/2013 13:20:01] data/npc/scripts/task.lua:onCreatureSay
[15/11/2013 13:20:01] Description: 
[15/11/2013 13:20:01] data/npc/scripts/task.lua:29: attempt to call local 'msg' (a string value)
[15/11/2013 13:20:01] stack traceback:
[15/11/2013 13:20:01]  data/npc/scripts/task.lua:29: in function 'callback'
[15/11/2013 13:20:01]  data/npc/lib/npcsystem/npchandler.lua:391: in function 'onCreatureSay'
[15/11/2013 13:20:01]  data/npc/scripts/task.lua:7: in function <data/npc/scripts/task.lua:7>
Link para o comentário
Compartilhar em outros sites

Outra burrice, desculpe :c

 

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
 
local t = {need_items = {2160, 2159, 2158}, remove_items = {1, 2, 3}}
local g = t.need_items
local h = t.remove_items
premio1 = x -- coloque aqui o id do dinheiro
quant1 = x -- quantidade de grana que vai ganhar
pexp = x -- experiencia que vai ganhar no premio
 
 
    if msgcontains(msg, 'mission') or msgcontains(msg, 'help') then
        selfSay("Você gostaria de me ajudar numa missão?", cid)
        doPlayerSendTextMessage(cid, 27, "Say yes or no.")
        talkState[talkUser] = 1
        return true           
    elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
        if getPlayerStorageValue(cid, storage) < 1 then
            selfSay("Certo, vá pegar x qnt de x items!", cid) 
setPlayerStorageValue(cid, 222011, 1)
            doPlayerSendTextMessage(cid, 27, "If you alreay have the items, say complete.")
            talkState[talkUser] = 2
            return true
        else
            selfSay("Você já me ajudou.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif msgcontains(msg, 'no') and talkState[talkUser] == 1 then
        selfSay("Ok então...", cid)
        talkState[talkUser] = 0
        return true
    elseif msgcontains(msg, 'complete') and (talkState[talkUser] == 2 or getPlayerStorageValue(cid, 222011) >= 1) then
        for i = 1, #g do
            if getPlayerItemCount(cid, g[i]) >= h[i] then
                doPlayerRemoveItem(cid, g[i], h[i])
                selfSay("Obrigado! Aqui está seu prêmio.", cid)
                doPlayerAddItem(cid, premio1, quant1)
                setPlayerStorageValue(cid, storage, 1)
setPlayerStorageValue(cid, 222011, -1)
                talkState[talkUser] = 0
                return true
            else
                selfSay("Você não possui os items requisitados.", cid)
                talkState[talkUser] = 0
                return true
            end
        end
    end
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Link para o comentário
Compartilhar em outros sites

outro erro ´-´

[15/11/2013 20:22:12] [Error - TalkAction Interface] 
[15/11/2013 20:22:12] data/talkactions/scripts/createitem.lua:onSay
[15/11/2013 20:22:12] Description: 
[15/11/2013 20:22:12] (luaDoPlayerAddItemEx) Item not found
Link para o comentário
Compartilhar em outros sites

  • 6 years later...
Em 15/11/2013 em 17:12, zipter98 disse:

Outra burrice, desculpe :c

 


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
 
local t = {need_items = {2160, 2159, 2158}, remove_items = {1, 2, 3}}
local g = t.need_items
local h = t.remove_items
premio1 = x -- coloque aqui o id do dinheiro
quant1 = x -- quantidade de grana que vai ganhar
pexp = x -- experiencia que vai ganhar no premio
 
 
    if msgcontains(msg, 'mission') or msgcontains(msg, 'help') then
        selfSay("Você gostaria de me ajudar numa missão?", cid)
        doPlayerSendTextMessage(cid, 27, "Say yes or no.")
        talkState[talkUser] = 1
        return true           
    elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
        if getPlayerStorageValue(cid, storage) < 1 then
            selfSay("Certo, vá pegar x qnt de x items!", cid) 
setPlayerStorageValue(cid, 222011, 1)
            doPlayerSendTextMessage(cid, 27, "If you alreay have the items, say complete.")
            talkState[talkUser] = 2
            return true
        else
            selfSay("Você já me ajudou.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif msgcontains(msg, 'no') and talkState[talkUser] == 1 then
        selfSay("Ok então...", cid)
        talkState[talkUser] = 0
        return true
    elseif msgcontains(msg, 'complete') and (talkState[talkUser] == 2 or getPlayerStorageValue(cid, 222011) >= 1) then
        for i = 1, #g do
            if getPlayerItemCount(cid, g[i]) >= h[i] then
                doPlayerRemoveItem(cid, g[i], h[i])
                selfSay("Obrigado! Aqui está seu prêmio.", cid)
                doPlayerAddItem(cid, premio1, quant1)
                setPlayerStorageValue(cid, storage, 1)
setPlayerStorageValue(cid, 222011, -1)
                talkState[talkUser] = 0
                return true
            else
                selfSay("Você não possui os items requisitados.", cid)
                talkState[talkUser] = 0
                return true
            end
        end
    end
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

qe tire tp o npc?

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...