Ir para conteúdo

[Npc] Spell Seller Por Trade


Vodkart

Posts Recomendados

Spell Seller.xml

<?xml version="1.0"?>
<npc name="Spell Seller" script="data/npc/scripts/spell_trade.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="Hello |PLAYERNAME|.I have many {spells} to sell for you! {trade}" />
</parameters>
</npc>

 

 

spell_trade.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 shopWindow = {}
local spells = {
{id=1950, buy = 150, name = "Exana Pox", spell_name = "Andidote", vocations = {1,2,3,4,5,6,7,8}, level = 10},
{id=1950, buy = 2500, name = "Exori", spell_name = "Berserk", vocations = {4,8}, level = 35},
{id=1950, buy = 80, name = "Exiva", spell_name = "Find Person", vocations = {1,2,3,4,5,6,7,8}, level = 8},
{id=2182, buy = 5000, name = "Exori Flam", spell_name = "Flame Strike", vocations = {1,2,5,6}, level = 12},
{id=1950, buy = 8000, name = "Utito Tempo", spell_name = "Blood Rage", vocations = {4,8}, level = 60},
{id=1950, buy = 2000, name = "Exeta Res", spell_name = "Challenge", vocations = {8}, level = 20},
{id=1950, buy = 5000, name = "Exori Gran", spell_name = "Fierce Berserk", vocations = {4,8}, level = 70},
{id=1950, buy = 500, name = "Utevo Gran Lux", spell_name = "Great Light", vocations = {1,2,3,4,5,6,7,8}, level = 13},
{id=1950, buy = 1500, name = "Exori Mas", spell_name = "Groundshaker", vocations = {4,8}, level = 33},
{id=1950, buy = 1500, name = "Exana Mort", spell_name = "Wound Cleansing", vocations = {4,8}, level = 30}
}
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
if not getPlayerLearnedInstantSpell(cid, shopWindow[item].Words) then
if getPlayerLevel(cid) >= shopWindow[item].Level then
if isInArray(shopWindow[item].Vocs, getPlayerVocation(cid)) then
doPlayerRemoveMoney(cid, shopWindow[item].Price)
doPlayerLearnInstantSpell(cid, shopWindow[item].Words)
npcHandler:say("você aprendeu uma nova magia chamada "..shopWindow[item].Words, cid)
else
npcHandler:say("você não tem a vocação para comprar está spell.", cid)
end
else
npcHandler:say("você precisa ter level "..shopWindow[item].Level.." ou mais para comprar essa magia.", cid)
end
else
npcHandler:say("você já aprendeu essa magia.", cid)
end
return true
end
if msgcontains(msg, 'trade') or msgcontains(msg, 'spells') then
for var, item in pairs(spells) do
shopWindow[item.id] = {Level = item.level, Vocs = item.vocations, item_id = item.id, Price = item.buy, subType = 0, Words = item.spell_name, SpellName = item.name}
end
openShopWindow(cid, spells, onBuy, onSell)
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

spell seller por trade lol essa é nova .-. tem como vc dar uma explicada oque fazer aonde colokar ? porque eu estou meio perdido mais parece que é em data/npc/scripts dai eu copio uma colo esse script dai eu volto pra data/npc copio um denovo edito dogeito que eu quizer o npc e coloko para esse script que eu colokei no data/npcs/scripts dai só dar /reload npc que pega? se nao for isso me explica oque tenho que fazer entaum .-.

Link para o comentário
Compartilhar em outros sites

spell seller por trade lol essa é nova .-. tem como vc dar uma explicada oque fazer aonde colokar ? porque eu estou meio perdido mais parece que é em data/npc/scripts dai eu copio uma colo esse script dai eu volto pra data/npc copio um denovo edito dogeito que eu quizer o npc e coloko para esse script que eu colokei no data/npcs/scripts dai só dar /reload npc que pega? se nao for isso me explica oque tenho que fazer entaum .-.

 

pronto, editado!

agr soh usar

 

agr só dar /reload npc e /n spell seller

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

[13:36:14.824] [Error - NpcScript Interface]
[13:36:14.826] data/npc/scripts/spells.lua:onCreatureSay
[13:36:14.828] Description:
[13:36:14.829] data/npc/lib/npcsystem/npchandler.lua:558: attempt to call global
'getDistanceTo' (a nil value)
[13:36:14.830] stack traceback:
[13:36:14.831]  data/npc/lib/npcsystem/npchandler.lua:558: in function 'isInRang
e'
[13:36:14.832]  data/npc/lib/npcsystem/npchandler.lua:381: in function 'onCreatu
reSay'
[13:36:14.833]  data/npc/scripts/spells.lua:7: in function <data/npc/scripts/spe
lls.lua:7>

 

Opa Vodkart, tudo bom? sou membro antigo do forum e mecho com servidores a muito tempo, porém perdi minha antiga senha e não há consegui recuperar... bom, sem mais demora, meu servidor apresendou o seguinte erro a cima, estou usando tfs 0.4 na versão 8.6, você tem alguma sugestão?

 

espero por respostas;

desde já agreadeço.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 3 weeks later...

Cara, seria "hi" "trade" escolher a spell e comprar?

 

Mal explicado... Muito mal explicado '-'

 

É cara, ou você não conhece o sistema de NPC do tibia? você não fala hi, trade?

É a mesma coisa, só que você compra a spell pelo trade --'

Link para o comentário
Compartilhar em outros sites

Não entendi muito bem essa script. Pode explicar melhor ?

 

Eu crio npc que vende spells mais as spells já não são liberadas para o player ?

 

=/

 

eu também queria entender isso ai =D

se rpecisa alterar algo pra "bloquea" as spells pro player precisar comprar, seila

Link para o comentário
Compartilhar em outros sites

^

na spell.xml na tag das spell tem um item needlearn dai se ponhe um nele, dai o player presisa aprende pra usa

Link para o comentário
Compartilhar em outros sites

  • 1 month later...

obrigado cara vo testa ai falo aqui!!!

________________________________edit___________________________________

 

Ai vodkart me explica ae, eu fui coloca o npc no meu mapa pelo RME ai eu coloco lá em Jump to brush: Spell Seller mas não aparece nd.

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

×
×
  • Criar Novo...