Ir para conteúdo
  • 0

Npc Que Ensina Spells


brunouchihakiller

Pergunta

Bom sem mais delongas, gostaria de pedir um NPC, que ensinasse varias spells de uma vez e por escolha..

 

Se chamara NPC elemental.

 

Voce falaria com ele e ele te ensinaria 5 spells, de 5 classes diferentes.

 

As classes seriam ; Fogo, Agua, Terra, Ar e Raio.

 

Ao falar com o NPC ele lhe perguntaria, qual elemento deseja aprender?

 

Ai o player escolheria um dos 5, e o NPC lhe ensinaria 5 magias do elemento escolhido.

 

----

 

Se o player falasse com o NPC novamente ele nao poderia escolher outro elemento.

 

Apenas um elemento por player.

 

---

EX:

 

PLAYER: Hi

NPC: Olá PLAYER, qual elemento deseja aprender?

PLAYER: Fogo

NPC: Parabéns, voce aprendeu o elemento fogo.

 

Ai o player aprenderia 5 spells de fogo (ou 5 de agua, ou 5 de terra, dependendo do elemento escolhido).

 

Acham que da pra fazer? Obg

 

Qm me ajudar ganha REP+

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

TFS 8.54

Nivel de experiencia baixo.. E sim eu encontrei NPCs que ensinam spells, ma nao do jeito que eu prescisava.

 

Nao Vodkart, todas as vocations poderao usar as spells, a diferença é que vc escolhe qual elemento quer aprender com o NPC, ai vc so aprendera spells daquele elemento.

Link para o comentário
Compartilhar em outros sites

  • 0

data/npc

 

Elemental.xml

<?xml version="1.0"?>
<npc name="Elemental" script="data/npc/scripts/elementos.lua" walkinterval="50000" floorchange="0">
<health now="100" max="100"/>
<look type="129" head="95" body="116" legs="121" feet="115" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|. Qual elemento deseja aprender?"/>
</parameters>
</npc>

 

data/npc/script

 

elementos.lua

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 msg,stor = string.lower(msg),754487
local elements = {
["fire"] = {"Find Person","Flame Strike","Blood Rage","Challenge","Fierce Berserk"},
["water"] = {"Find Person","Flame Strike","Blood Rage","Challenge","Fierce Berserk"},
["earth"] = {"Find Person","Flame Strike","Blood Rage","Challenge","Fierce Berserk"},
["air"] = {"Find Person","Flame Strike","Blood Rage","Challenge","Fierce Berserk"},
["thunder"] = {"Find Person","Flame Strike","Blood Rage","Challenge","Fierce Berserk"}
}
if elements[msg] then
if getPlayerStorageValue(cid, stor) <= 0 then
for _, spells in ipairs(elements[msg]) do
doPlayerLearnInstantSpell(cid, spells)
end
setPlayerStorageValue(cid,stor,1)
npcHandler:say("Parabéns, voce aprendeu o elemento do "..msg, cid)
else
npcHandler:say("você já escolheu seu elemento.", cid)
end
else
npcHandler:say("este elemento não existe.", cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

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

  • 0

NPC.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<npc name="NPC elemental" script="elemental.lua" walkinterval="2000" floorchange="0">
<health now="100" max="100"/>
<look type="131" head="115" body="132" legs="97" feet="114" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola, Eu posso lhe posso lhe ensinar sobre um dos 5 elementos: {fogo}, {agua}, {terra}, {ar} ou {raio}."/>
<parameter key="message_farewell" value="tchau." />
<parameter key="module_keywords" value="1" />
</parameters>
</npc>

 

NPC.lua

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

local Topic = {}

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

-- fogo
if(msgcontains(msg, 'fogo')) then
if getPlayerStorageValue(cid, 25501) < 1 then
setPlayerStorageValue(cid, 25501, 1)
doPlayerLearnInstantSpell(cid, 'nome da magia de fogo 1')
doPlayerLearnInstantSpell(cid, 'nome da magia de fogo 2')
doPlayerLearnInstantSpell(cid, 'nome da magia de fogo 3')
doPlayerLearnInstantSpell(cid, 'nome da magia de fogo 4')
doPlayerLearnInstantSpell(cid, 'nome da magia de fogo 5')
doSendMagicEffect(getPlayerPosition(cid), 6)
else
npcHandler:say("já te ensinei um elemento!", cid)
end

-- agua
elseif(msgcontains(msg, 'agua')) then
if getPlayerStorageValue(cid, 25501) < 1 then
setPlayerStorageValue(cid, 25501, 1)
doPlayerLearnInstantSpell(cid, 'nome da magia de agua 1')
doPlayerLearnInstantSpell(cid, 'nome da magia de agua 2')
doPlayerLearnInstantSpell(cid, 'nome da magia de agua 3')
doPlayerLearnInstantSpell(cid, 'nome da magia de agua 4')
doPlayerLearnInstantSpell(cid, 'nome da magia de agua 5')
doSendMagicEffect(getPlayerPosition(cid), 53)
else
npcHandler:say("já te ensinei um elemento!", cid)
end

-- terra
elseif(msgcontains(msg, 'terra')) then
if getPlayerStorageValue(cid, 25501) < 1 then
setPlayerStorageValue(cid, 25501, 1)
doPlayerLearnInstantSpell(cid, 'nome da magia de terra 1')
doPlayerLearnInstantSpell(cid, 'nome da magia de terra 2')
doPlayerLearnInstantSpell(cid, 'nome da magia de terra 3')
doPlayerLearnInstantSpell(cid, 'nome da magia de terra 4')
doPlayerLearnInstantSpell(cid, 'nome da magia de terra 5')
doSendMagicEffect(getPlayerPosition(cid), 44)
else
npcHandler:say("já te ensinei um elemento!", cid)
end

-- ar
elseif(msgcontains(msg, 'ar')) then
if getPlayerStorageValue(cid, 25501) < 1 then
setPlayerStorageValue(cid, 25501, 1)
doPlayerLearnInstantSpell(cid, 'nome da magia de ar 1')
doPlayerLearnInstantSpell(cid, 'nome da magia de ar 2')
doPlayerLearnInstantSpell(cid, 'nome da magia de ar 3')
doPlayerLearnInstantSpell(cid, 'nome da magia de ar 4')
doPlayerLearnInstantSpell(cid, 'nome da magia de ar 5')
doSendMagicEffect(getPlayerPosition(cid), 2)
else
npcHandler:say("já te ensinei um elemento!", cid)
end

-- raio
elseif(msgcontains(msg, 'raio')) then
if getPlayerStorageValue(cid, 25501) < 1 then
setPlayerStorageValue(cid, 25501, 1)
doPlayerLearnInstantSpell(cid, 'nome da magia de raio 1')
doPlayerLearnInstantSpell(cid, 'nome da magia de raio 2')
doPlayerLearnInstantSpell(cid, 'nome da magia de raio 3')
doPlayerLearnInstantSpell(cid, 'nome da magia de raio 4')
doPlayerLearnInstantSpell(cid, 'nome da magia de raio 5')
doSendMagicEffect(getPlayerPosition(cid), 47)
else
npcHandler:say("já te ensinei um elemento!", cid)
end
end
return TRUE
end

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

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

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