Ir para conteúdo

[Npc] Upgrade Weapons


Legnus

Posts Recomendados

Achei isso perdido em um servidor antigo e decidi compartilhar. No vídeo fica fácil entender como funciona, espero que seja útil.

 

 

 

 

 

 

 

 

data/npc:

 

 

 


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Keny" script="data/npc/scripts/upgradeitems.lua" walkinterval="2000" floorchange="0">
    <health now="100" max="100"/>
    <look type="325" head="114" body="94" legs="114" feet="0" addons="2"/>
    <parameters>
<parameter key="message_greet" value="Hei |PLAYERNAME|, sou Keny o Ferreiro. Tem alguma arma que deseja {melhorar}? Posso dar uma olhada pra voce. "/>
</parameters></npc> 
 

 

 

 

data/npc/scripts/novoarquivo.lua:

 

 

 


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
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 swords = getPlayerWeapon(cid)
local pos = getPlayerLookPos(cid)
local valuecrystalcoin = getPlayerItemCount(cid, 2160)
local valuedragonham = getPlayerItemCount(cid, 2672)
if(msgcontains(msg, 'melhorar')) then
if (swords.itemid == 0) then
selfSay ('Voce nao esta empunhando nenhuma arma no momento', cid)
else
if (swords.itemid == 2397) then
selfSay('Oh, entao voce carrega uma Long Sword com voce, boa arma.. Posso melhorar sua lamina, por 10 Crystal coins, {ok}?', cid)
elseif (swords.itemid == 2406) then
selfSay('Hm... Vejamos, entao voce empunha uma Short Sword, com o material certo, posso transforma-la em uma arma melhor. Tenha 2 Dragon Ham em mãos, e a quantia de 2 Crystal Coins, {ok}?', cid)
end
end
end
--------

---------------------------------------------------------
if (msgcontains(msg, 'ok')) then
if (swords.itemid == 0) then
selfSay('Voce nao esta portando nenhuma arma no momento', cid)
end

if (swords.itemid == 2397) then
if getPlayerItemCount(cid, 2160) <= 9 then
selfSay('Você não tem o material necessário. Você tem '.. valuecrystalcoin .. ' Crystal Coins, eu preciso de 10.', cid)
else
doPlayerRemoveItem(cid, 2397, 1)
doPlayerRemoveItem(cid, 2160, 10)
doSendMagicEffect(pos, 36)
doCreateItem(2396, 1, pos)
selfSay ('Sua arma foi melhorada, a transformei em uma Ice Rapier!', cid)

end
end

if (swords.itemid == 2406) then
if getPlayerItemCount(cid, 2160) <= 1 or getPlayerItemCount(cid, 2672) <= 1 then

selfSay('Voce nao tem o material necessario. Você tem '.. valuedragonham ..' Dragon Hams, e '.. valuecrystalcoin .. ' Crystal Coins, Eu preciso de 2 de cada.', cid)
else
doPlayerRemoveItem(cid, 2406, 1)
doPlayerRemoveItem(cid, 2672, 2)
doPlayerRemoveItem(cid, 2160, 2)
doSendMagicEffect(pos, 36)
doCreateItem(2393, 1, pos)
selfSay ('Sua arma foi melhorada! A transformei em uma Giant Sword!.', cid)


end

end

end

return true

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

 

 

 

 

 

 

Como configurar:

 

 

 


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
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 swords = getPlayerWeapon(cid)
local pos = getPlayerLookPos(cid)
local valuecrystalcoin = getPlayerItemCount(cid, 2160)
local valuedragonham = getPlayerItemCount(cid, 2672)
if(msgcontains(msg, 'melhorar')) then
if (swords.itemid == 0) then
selfSay ('Voce nao esta empunhando nenhuma arma no momento', cid) --- Mensagem que aparecerá caso o player não tenha nenhum item em sua mão (Hand).
else
if (swords.itemid == 2397) then --- 'Item 1'
selfSay('Oh, entao voce carrega uma Long Sword com voce, boa arma.. Posso melhorar sua lamina, por 10 Crystal coins, {ok}?', cid) --- Mensagem que aparecerá caso o player tenha o 'Item 1' em mãos.
elseif (swords.itemid == 2406) then --- 'Item 2'
selfSay('Hm... Vejamos, entao voce empunha uma Short Sword, com o material certo, posso transforma-la em uma arma melhor. Tenha 2 Dragon Ham em mãos, e a quantia de 2 Crystal Coins, {ok}?', cid) --- Mensagem que aparecerá caso o player tenha o 'Item 2' em mãos.
end
end
end
--------

---------------------------------------------------------
if (msgcontains(msg, 'ok')) then
if (swords.itemid == 0) then
selfSay('Voce nao esta portando nenhuma arma no momento', cid) --- Mensagem que aparecerá caso o player não tenha nenhum item em sua mão (Hand).
end

if (swords.itemid == 2397) then --- 'Item 1'
if getPlayerItemCount(cid, 2160) <= 9 then --- '2160'(Crystal Coin) Corresponde ao ItemID do item que será necessário pro upgrade do 'Item 1', '9' corresponde a quantia necessária.
selfSay('Você não tem o material necessário. Você tem '.. valuecrystalcoin .. ' Crystal Coins, eu preciso de 10.', cid) --- Mensagem que aparecerá caso o player não tenha a quantia suficiente.
else
doPlayerRemoveItem(cid, 2397, 1) --- 'Item 1'
doPlayerRemoveItem(cid, 2160, 10) --- Aqui é feita a remoção dos items necessários. (2 Crystal Coin)
doSendMagicEffect(pos, 36) --- Efeito que aparecerá
doCreateItem(2396, 1, pos) --- Item Upgrade do 'Item 1'
selfSay ('Sua arma foi melhorada, a transformei em uma Ice Rapier!', cid) --- O que o Npc dirá após transformar o 'Item 1'

end
end

if (swords.itemid == 2406) then --- 'Item 2'
if getPlayerItemCount(cid, 2160) <= 1 or getPlayerItemCount(cid, 2672) <= 1 then --- '2160'(Crystal Coin) e '2672'(Dragon Ham) Corresponde ao ItemID do item que será necessário pro upgrade do 'Item 1', '1' corresponde a quantia necessária.

selfSay('Voce nao tem o material necessario. Você tem '.. valuedragonham ..' Dragon Hams, e '.. valuecrystalcoin .. ' Crystal Coins, Eu preciso de 2 de cada.', cid) --- Mensagem que aparecerá caso o player não tenha a quantia suficiente.
else
doPlayerRemoveItem(cid, 2406, 1) --- 'Item 2'
doPlayerRemoveItem(cid, 2672, 2) --- Aqui é feita a remoção dos items necessários. (2 Dragon Ham)
doPlayerRemoveItem(cid, 2160, 2) --- Aqui é feita a remoção dos items necessários. (2 Crystal Coin)
doSendMagicEffect(pos, 36) --- --- Efeito que aparecerá
doCreateItem(2393, 1, pos) --- Item Upgrade do 'Item 2'
selfSay ('Sua arma foi melhorada! A transformei em uma Giant Sword!.', cid) --- O que o Npc dirá após transformar o 'Item 2'


end

end

end

return true

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

 

 

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

×
×
  • Criar Novo...