Npc De Teleporte Se Tiver O Item,mas Não Remove!

headhog
em Scripts

headhog

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/07/07Posts: 4Gênero: Masculino

Eae Galera.

Preciso de um npc de viagem,que é o seguinte;

Ele vai precisar ter 7 items,ele vai contar os itens e vai vê se o player tem todos em mãos,se tiver ele vai teletransportar para uma posição,caso ele não tenho,ele fica na lugar

 

é um npc simples,espero que alguem me ajude.

Distro: Tfs 0.3.6

Versão: 8.54

 

Rep + pra quem me ajudar!

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

Abre o arquivo 050-function.lua que está dentro da pasta data/lib e adicione no fim do arquivo:

function doPlayerCountItems(cid, items) -- by Vodka
local items = type(items) == "table" and items or {items}  
	for i = 1, table.maxn(items) do
	if getPlayerItemCount(cid, items[i]) <= 0 then  
 return false  
 end
end
return true  
end

 

NPC:

 

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

local talkState = {}

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 list = {111,222,333,444,555,666,777} -- id dos itens
local pos = {x=160, y=54, z=7} -- para onde ele vai

if(msgcontains(msg, 'TRAVEL') or msgcontains(msg, 'travel')) then
selfSay("Para viajar comigo você ter os 7 items,você tem eles? {yes} ", cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, "yes") and talkState[talkUser] >= 1)then
if doPlayerCountItems(cid, list) then	
selfSay("Boa viagem!.", cid)
doTeleportThing(cid, pos)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
else
selfSay("desculpe,mas você não tem os itens!", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
elseif msg == "no" and talkState[talkUser] >= 1 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())

bossisg.png

headhog

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/07/07Posts: 4Gênero: Masculino

Mto obrigado mano ! Rep +

-----------------

Vish,ta bugado,depois que fala yes,não acontece nada algum erro no count!

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

pronto editei,o erro é que a function tem que ser colocada direto na lib...não entendo mais o porque disso.

bossisg.png

headhog

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/07/07Posts: 4Gênero: Masculino

Obrigado :)

SkyDangerous

Deus Kalec
avatar
Lorde
Lorde

INFOS

Grupo: LordeRegistrado: 17/01/09Posts: 2098Char no Tibia: Adra Sata

Dúvida sanada.

Reportado.

Me segui lá (:

 

b906.png

http://ageofwar.servegame.com/

IP: ageofwar.servegame.com

TIBIA: 10.78

GLOBAL PERFECT CUSTOM

Gabriel Couto

Anyur
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 22/04/11Posts: 2455Gênero: MasculinoChar no Tibia: Thyn Zare

Movido para Pedidos Atendidos.

Sempre que tiver um pedido atendido, reporte para que movamos.

 

Até!

Gabriel Couto, 23 anos. Acadêmico de Medicina.

Ex-Diretor Geral do XTibia.

 

www.tibiatv.com.br