Ir para conteúdo
  • 0

Npc Acho Q É Simples


cacaiu

Pergunta

queria um npc que ele troca um X item por um teleport e exp..EX:

 

o cara fala com o npc e ele vai fala asim "Ola se vc min de Xitem eu posso te dar uma exp e te manda para o local corredo"

 

valendo rep +

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

local pos = {x=152,y=58,z=7} -- Pos para onde o player sera levado
local itemid = 2468 -- Id do item que vai ser removido do player
locao expGain = 1000 -- Quantidade de experiência que o player irá ganhar.

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

   if msgcontains(msg, "offer") or msgcontains(msg, "help") then
       selfSay("Eu posso te levar a TAL lugar por um "..getItemNameById(itemid).." item, fale {travel} se quizer viajar.", cid)
       talkState[cid] = 0
   elseif msgcontains(msg, 'travel') then
      if doPlayerRemoveItem(cid, itemid, 1) then
       selfSay("Boa viagem.", cid)
    doTeleportThing(cid, pos)
    doPlayerAddExp(cid, expGain)
    else
    selfSay("Voce nao tem o item nescessario.", cid)
    end
    end
    return TRUE   
    end


npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

Editei o código do tópico que foi lhe passado, adicionando mais duas linhas.

Uma com a declaração da variável "expGain", que é onde você irá a experiência que o player irá ganhar.

E a outra coisa, é a função que dá a experiência ao player após o mesmo ser teleportado. :)

Link para o comentário
Compartilhar em outros sites

  • 0

amigo achei um bug no distro:

 

 

[08/09/2012 23:00:21] [Error - LuaScriptInterface::loadFile] data/npc/scripts/Smalker.lua:8: '=' expected near 'expGain'

[08/09/2012 23:00:21] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/Smalker.lua

[08/09/2012 23:00:21] data/npc/scripts/Smalker.lua:8: '=' expected near 'expGain'

 

tem como arruma meu serve é 8.54 poketibia

Link para o comentário
Compartilhar em outros sites

  • 0

Só arrumar uma linha:

 

Substitui essa:

 

locao expGain = 1000 -- Quantidade de experiência que o player irá ganhar.

 

Por essa:

 

local expGain = 1000 -- Quantidade de experiência que o player irá ganhar.

 

Script do NPC corrigido:

 

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

 

local pos = {x=152,y=58,z=7} -- Pos para onde o player sera levado

local itemid = 2468 -- Id do item que vai ser removido do player

local expGain = 1000 -- Quantidade de experiência que o player irá ganhar.

 

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

 

if msgcontains(msg, "offer") or msgcontains(msg, "help") then

selfSay("Eu posso te levar a TAL lugar por um "..getItemNameById(itemid)..", apenas fale {travel}.", cid)

talkState[cid] = 0

elseif msgcontains(msg, 'travel') then

if doPlayerRemoveItem(cid, itemid, 1) then

selfSay("Boa viagem.", cid)

doTeleportThing(cid, pos)

doPlayerAddExp(cid, expGain)

else

selfSay("Você não possui o item necessário.", cid)

end

end

return TRUE

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...