Ir para conteúdo
  • 0

Passagem Para Determinadas Vocações..


1579091

Pergunta

Bom, preciso de 3 npcs, 1 que permita viajar somente Druids, Elder Druids, Sorcerers e Master Sorcerers, outro que viaje somente knight e Elite knight, e outro que viaje somente Paladinos e Royal Paladinos....

 

Cada npc com seu nome, pode ser qualquer nome, valeu!!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

saindo do forno :)

data\npc\arquivo.xml

esse Aquivo.xml pode usa os 3 igual só .lua que não vai trocando os nomedonpc

<npc name="NOMEDONPC" script="data/npc/scripts/arquivo.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="134" head="78" body="88" legs="0" feet="88" addons="3"/>
	<parameters>
			<parameter key="message_greet" value="Ola. Para mais informacoes de meus servicos diga {go}." />
			<parameter key="message_farewell" value="Tchau." />
			<parameter key="message_walkaway" value="Tchau." />
	</parameters>
</npc>

data\npc\scripts\arquivo.lua

Esse È De Paladin

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local pos = {x=160,y=54,z=7} -------------- 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 msgcontains(msg, 'go') then
if getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 or getPlayerVocation(cid) == 11 then		
selfSay("Boa viagem.", cid)
doTeleportThing(cid, pos)
else
selfSay("Eu Não Posso Te Teleporta só Fiel A Os Paladin. E Vc Não è UM", cid)
end
end
return TRUE  
end -- By Notle

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

 

data\npc\scripts\arquivo.lua

Esse È De Knight

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local pos = {x=160,y=54,z=7} -------------- 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 msgcontains(msg, 'go') then
if getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 or getPlayerVocation(cid) == 12 then		
selfSay("Boa viagem.", cid)
doTeleportThing(cid, pos)
else
selfSay("Eu Não Posso Te Teleporta só Fiel A Os Kinght. E Vc Não è UM", cid)
end
end
return TRUE  
end -- By Notle

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

 

data\npc\scripts\arquivo.lua

Esse È De mages e druids

 


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local pos = {x=160,y=54,z=7} -------------- 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 msgcontains(msg, 'go') then
if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 6 or getPlayerVocation(cid) == 9 or getPlayerVocation(cid) == 10 then		  
selfSay("Boa viagem.", cid)
doTeleportThing(cid, pos)
else
selfSay("Eu Não Posso Te Teleporta só Fiel A Os Druds E Magos E Vc Não è UM", cid)
end
end
return TRUE  
end -- By Notle


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

 

no meu topico vc vai entende melhor link

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

  • 0
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
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 greetCallback(cid)
talkState[talkUser] = 0
return true
end

local vocationsId = {1,2,5,6} -- id's das vocations que podem viajar com esse npc.

local viagemNpc = {
   {lugar = "thais", pos = {x=160,y=54,z=7}, preco = 100}, -- nome da city, posição e preço da viagem.
   {lugar = "carlin", pos = {x=1845,y=645,z=7}, preco = 50},
   {lugar = "port hope", pos = {x=1478,y=35,z=7}, preco = 200}
}

function creatureSayCallback(cid, type, msg)

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if(not npcHandler:isFocused(cid)) then  
   return false  
end

local msg = string.lower(msg)

if not isInArray(vocationsId,getPlayerVocation(cid)) then
   selfSay("Você não pode viajar comigo.", cid)
   npcHandler:onCreatureDisappear(cid)
end

if msgcontains(msg, 'go') or msgcontains(msg, 'travel') then
   local text = ""
   for i=1, #viagemNpc do
       if i == 1 then
           text = text.." {"..(viagemNpc[i].lugar).."}["..(viagemNpc[i].preco).." gps], "
       elseif i == #viagemNpc then
           text = text.."{"..(viagemNpc[i].lugar).."}["..(viagemNpc[i].preco).." gps]."
       else
           text = text.."{"..(viagemNpc[i].lugar).."}["..(viagemNpc[i].preco).." gps], "
       end
   end
   selfSay("Eu posso te levar para"..text.." Onde você deseja ir?", cid)
   talkState[talkUser] = 2
elseif talkState[talkUser] == 2 then
   local cont = 0
   for i=1, #viagemNpc do
       if viagemNpc[i].lugar == msg then
           if doPlayerRemoveMoney(cid, viagemNpc[i].preco) then
               selfSay("Boa viajem!", cid)
               doTeleportThing(cid, viagemNpc[i].pos)                
               talkState[talkUser] = 0
           else
               selfSay("Você não tem dinheiro suficiente para viajar.", cid)
           end
       else
           cont = cont+1
       end
   end
   if cont == #viagemNpc then
       selfSay("Este lugar é invalido!", cid)
   end
end

return true
end

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

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...