Ir para conteúdo
  • 0

[Erro] Npc Que Teleporta Com Item


Leoxtibia

Pergunta

Aí galera, eu tenho o script desse Npc que teleporta se tiver X item, mas não deve remover o item.

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local pos = {x=921,y=714,z=7} -------------- Pos para onde o player sera levado
local itemid = 2345 ----------------- Id do item que vai ser removido do player
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, "quest") or msgcontains(msg, "help") then
	selfSay("Eu posso te levar a um lugar por um "..getItemNameById(itemid).." fale {travel} se quiser viajar.", cid)
	talkState[cid] = 0
elseif msgcontains(msg, 'travel') then
   selfSay("Boa viagem.", cid)
 doTeleportThing(cid, pos)
 else
 selfSay("Voce nao tem o item necessario.", cid)
 end
 end
 return TRUE  
 end

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

 

Mas ta aparecendo o seguinte erro, alguém sabe como resolver ou teria um funcionando?

 

[03/06/2012 18:45:52] [Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/telequest.lua
[03/06/2012 18:45:52] data/npc/scripts/telequest.lua:31: '<eof>' expected near 'end'

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

Posts Recomendados

  • 0

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local pos = {x=921,y=714,z=7} -------------- Pos para onde o player sera levado
local itemid = 2345 ----------------- Id do item que vai ser removido do player
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, "quest") or msgcontains(msg, "help") then
		    selfSay("Eu posso te levar a um lugar por um "..getItemNameById(itemid).." fale {travel} se quiser viajar.", cid)
		    talkState[cid] = 0
    elseif msgcontains(msg, 'travel') then
	   selfSay("Boa viagem.", cid)
	 doTeleportThing(cid, pos)
	 doPlayerRemoveItem(cid,itemid,1)
	 else
	 selfSay("Voce nao tem o item necessario.", cid)
	 end
	 end
	 return TRUE
	 end

 

olha eu removi akilo escrito no fim então eu não sei se e o script que você não posto inteiro ai removi akilo e editei essa parte e estava sem a função de remover o item

ate

Link para o comentário
Compartilhar em outros sites

  • 0

so ir no script e procura por isso

 

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

 

e remova isso

 

e dps também procure por isso

 

doPlayerRemoveItem(cid,itemid,1)

 

e pronto espero ter ajudado

ate

Link para o comentário
Compartilhar em outros sites

  • 0

Não funcionou, eu retirei essa linha e mesmo assim não funcionou

doPlayerRemoveItem(cid,itemid,1)

Eu quero que o Npc só teleport se ele tiver o item 2345 mas que não remova o item =S

Link para o comentário
Compartilhar em outros sites

  • 0

smartbox ali no algoritmo local pos = {x=921,y=714,z=7} substituindo esse pos com lugar e o local colocano isso:{{x=129, y=53, z=6}, 1} nao funcionaria?

Link para o comentário
Compartilhar em outros sites

  • 0

leo faz oque eu falei pro smartbox fazer vai fikar mais ou menos assim:

 

local keywordHandler =KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

local lugar = {{x=129, y=53, z=6}, 1} -------------- Pos para onde o player sera levado

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, "quest") or msgcontains(msg, "help") then

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

talkState[cid] = 0

elseif msgcontains(msg, 'travel') then

selfSay("Boa viagem.", cid)

doTeleportThing(cid, pos)

doPlayerRemoveItem(cid,itemid,1)

else

selfSay("Voce nao tem o item necessario.", cid)

end

end

return TRUE

end

 

coloque o seguinte no script do seu npc:

 

<?xml version="1.0" encoding="UTF-8"?>

<npc name="nome do npc" script="data/npc/scripts/policial.lua" walkinterval="2000" speed="2000" floorchange="0">

<health now="100" max="100"/>

<look type="134" head="79" body="86" legs="114" feet="0" addons="3"/>

</npc>

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

  • 0

nao ue no meu script o npc so verifikara

 

na verdade meu script nao verificaria nada no caso eu nao sie oque fazer mas axo que fikaria legal se retirase assim você poderia ussar esse doll como donate

Link para o comentário
Compartilhar em outros sites

  • 0
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 item,pos = 2123,{x=129, y=53, z=6}

if (msgcontains(msg, 'travel') or msgcontains(msg, 'viajar'))then
npcHandler:say("Você precisa ter na bag 1 "..getItemNameById(item).." para teleportar, você quer teleportar? {yes}", cid)
talkState[talkUser] = 1
elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
if getPlayerItemCount(cid, item) >= 1 then  
doTeleportThing(cid, pos)
else
npcHandler:say("Você não tem o item!", cid)
end
elseif msg == "no" then  
selfSay("Then not", cid)  
talkState[talkUser] = 0  
npcHandler:releaseFocus(cid)  
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...