Npc Que Ensina Spells

brunouchihakiller
em Scripts

brunouchihakiller

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/12/11Posts: 18Char no Tibia: BuK

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+

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

Por favor postar

-Protocolo (versão)

-Servidor

-Nível de experiencia

-Informações adicionais

 

E já existem scripts de npcs que ensinam magia. (Procure antes de postar)

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

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

no caso cada elemento é uma vocação?

 

exemplo:

 

elemento fogo é voc 5

 

elemento terra é voc 4

bossisg.png

brunouchihakiller

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/12/11Posts: 18Char no Tibia: BuK

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.

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

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

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())

bossisg.png

othereality

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 18/01/11Posts: 343Char no Tibia: Zodriac

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())

não me dê rep

apenas leia abaixo

###motivos pra você clicar aqui agora e entrar no Uwnia99 OT###

 

Temos 15 classes e está sempre lançando mais.
A classe Assassin fica invisível até pra
 players :rip:

A classe Cake Guardian tem uma magia de refletir dano

Temos Eventos próprios acontecendo todo momento

Temos várias sprites únicas do OT

 A classe Feral Druid se transforma em vários bichos e tem magias diferentes dependendo da forma que está  :beurk:

Temos um contato muito grande entre desenvolvedor e jogador

 Temos uma classe chamada CAKE GUARDIAN! ELE ATIRA BOLOS!!!!! :love:

Não temos sistema vip e não vamos ter

Não vendemos nenhum tipo de vantagem na loja do site e nem vamos vender (apenas cosméticos)

 24h  :ph34r:

 

Entre no site clicando aqui!