[NPC] Walk Hunt - Npc Caminha ate a hunt.

Kuro o Shiniga

avatar
Colaborador
Colaborador

INFOS

Grupo: ColaboradorRegistrado: 27/12/10Posts: 271Gênero: Masculino

                                                                                               O NPC caminha junto com o player ate a hunt.

                                                                       Esse sistema é bem SIMPLES, um amigo me pediu, desenvolvi para ele e vim compartilhar com vocês

 

Crie um arquivo lua em npcs e adicione :

 

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 possnpc = {  --- poss que o npc vai andar
{x=81 ,y=339, z=7}, {x=82 ,y=339, z=7}, {x=83 ,y=339, z=7}, {x=84 ,y=339, z=7}, {x=85 ,y=339, z=7}, {x=86 ,y=339, z=7}, {x=79, y=340, z=7} 
}

local possplayer = { -- poss que o player vai andar
{x=81 ,y=339, z=7}, {x=82 ,y=339, z=7}, {x=83 ,y=339, z=7}, {x=84 ,y=339, z=7}, {x=85 ,y=339, z=7}, {x=86 ,y=339, z=7}
}

local pid = getNpcId() -- não mexa

local config = { -- não mexa
str = 150729,
tempo = 30,
}

	function andarnpc()
		for i, pos in ipairs(possnpc) do
		addEvent(doTeleportThing, 1000+400*(i-1), pid, pos)
		end
	end

	function andarplayer(cid)
		for i, posdois in ipairs(possplayer) do
		if isCreature(cid) then
		addEvent(doTeleportThing, 1000+500*(i-1), cid, posdois)
		end
		end
	end

		for _, player in pairs(getPlayersOnline()) do
		if msgcontains(msg, "hunt") and getPlayerStorageValue(player, config.str) >= os.time() then
			selfSay("Não posso atender você agora!", cid)
		break
		end
		
		if msgcontains(msg, "hunt") and getPlayerStorageValue(player, config.str) < os.time() then
			setPlayerStorageValue(cid, config.str, os.time() + config.tempo)
			selfSay("Vou te levar ate a caverna misteriosa !", cid)
			andarnpc()
			andarplayer(cid)
		break
		end
	end
end

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

 

Configuração :

 

Aqui é aonde o npc vai andar, são as mesma poss que o player vai andar, porem você tem que por uma ultima poss para o npc, nessa ultima poss você coloca a posição aonde o npc estava antes do jogador falar com ele !

local possnpc = {  --- poss que o npc vai andar
{x=81 ,y=339, z=7}, {x=82 ,y=339, z=7}, {x=83 ,y=339, z=7}, {x=84 ,y=339, z=7}, {x=85 ,y=339, z=7}, {x=86 ,y=339, z=7}, {x=79, y=340, z=7} 
}

Essa é a poss do inicio, aonde o npc vai aparecer quando ele levar o jogador, não esqueca de colocar a posição correta, se não o npc vai ficar dentro da hunt com o player, e outros players não vão conseguir encontrar o npc.

{x=79, y=340, z=7} -- poss aonde o npc tava antes de levar o player para a hunt

OBS: Existe um tempo para poder falar com o NPC, caso o npc esteja levando algum player para a hunt, outro jogador não pode conversar com ele, ate que ele complete a caminhada, caso queira mudar o tempo edite aqui :

 

tempo = 30, -- 30 = 30 segundos

 

Walox

Deetrax
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 05/04/18Posts: 95Gênero: MasculinoChar no Tibia: Deetrax

Nice bro muito bom parabéns :D 

GOD Vitor

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/10/15Posts: 58Gênero: Masculino

Muito bom! Dá para criar muita coisa bacana a partir disso, basta usar a criatividade  :)

izKoK5k.gif

Kuro o Shiniga

avatar
Colaborador
Colaborador

INFOS

Grupo: ColaboradorRegistrado: 27/12/10Posts: 271Gênero: Masculino
17 horas atrás, GOD Vitor disse:

Muito bom! Dá para criar muita coisa bacana a partir disso, basta usar a criatividade  :)

Sim ^^

gabriel28

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 26/08/10Posts: 429Gênero: MasculinoChar no Tibia: Gabriel Rookgaardian
3 horas atrás, Kuro o Shiniga disse:

Sim ^^

O que acontece se tiver algo no caminho -outro player ou um monstro-?

Kuro o Shiniga

avatar
Colaborador
Colaborador

INFOS

Grupo: ColaboradorRegistrado: 27/12/10Posts: 271Gênero: Masculino
2 horas atrás, gabriel28 disse:

O que acontece se tiver algo no caminho -outro player ou um monstro-?

Não acontece nada, o player vai de poss em poss com doTeleportThing