Hoje tava procurando um script de NPC que vende spell, e achei um usuário, DeathSpells, com um script de um NPC que vende spells,
que não estava funcionando, e então, outro usuário, Vodkart, corrigiu o script dele, e estou disponibilizando aqui, para vocês acharem com mais facilidade.
Então vamos ao script.
Vá até seuot/data/npc
e crie um arquivo.xml e nomeie para: Marvik.xml
Agora abra o arquivo, e coloque o seguinte script:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Marvik" script="data/npc/scripts/spells.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="130" head="0" body="101" legs="120" feet="95" addons="0"/> <parameters> <parameter key="message_greet" value="Be greeted, |PLAYERNAME|. I can teach {spells} for druids."/> <parameter key="message_farewell" value="Farewell..."/> <parameter key="message_walkaway" value="Farewell..." /> <parameter key="module_keywords" value="1" /> <parameter key="keywords" value="15;9;8;spells" /> <parameter key="keyword_reply1" value="I can teach you, light healing" /> <parameter key="keyword_reply2" value="I can teach you, find person" /> </parameters> </npc>
Bom, se você ainda não sabe mexer com NPC's, voce pode ver este tutorial:
Voltando...
Agora você vai até: Vá até seuot/data/npc/scripts
e vai criar um arquivo.lua com o nome spells.lua
E vai colocar o seguinte script:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
-- OTServ event handling functions start
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
-- OTServ event handling functions end
local node1 = keywordHandler:addKeyword({'light healing'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Would you like to learn light healing for 170 gp?'})
node1:addChildKeyword({'yes'}, StdModule.learnSpell, {npcHandler = npcHandler, premium = false, spellName = 'light healing', vocation = 2, price = 170, level = 9})
node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Cant you handle the power of the spell?', reset = true})
-- Makes sure the npc reacts when you say hi, bye etc.
npcHandler:addModule(FocusModule:new())
- Legenda:
Cor de Pele: local node, a cada magia que voce adicionar, voce tem que aumentar o node1, exemplo, se voce colocar outra madia, todos os node1 que terão, você tera de adicionar +1, ou seja
node2.
Laranja: É o nome da spells que o player vai ter que dizer para aprende-la.
Vermelho: Fala do NPC após o player falar o nome da magia que quer aprender.
Roxo: Nome da magia configurado no spells.xml.
Verde Musgo: ID da vocação que é necessaria para aprender a magia.
Azul: Preço que o player ira pagar na magia.
Verde: Level necessário para aprender a magia.
''~~~~~~~~~~~~''~~~~~~~~~~~~''~~~~~~~~~~~~''~~~~~~~~~~~~''~~~~~~~~~~~~''~~~~~~~~~~~~''~~~~~~~~~~~~''~~~~~~~~~~~~''
Créditos:
95% DeathSpells e Vordkart 5% A mim por fazer o Tutorial
Tópico que foi retirato o conteúdo: