Ir para conteúdo
  • Cadastre-se

Posts Recomendados

 Bom, fiz esse script esses dias, e pensei que poderia ser útil há alguem, ou não. '-' De qualquer forma, a intenção que vale.

 

 

 Como funciona: Ao dizer 'melhorar' ao Npc, ele verificará que item o player tem em mãos (no slot hand), então se o item estiver pré configurado no script, o Npc dirá o que é preciso pra melhorar o item em questão. Caso o player não tenha o material necessário, o npc dirá quantos items o player possui, e novamente, quantos são necessários. Caso tenha os items, sua arma será transformada em uma nova, também pré configurada. Pode-se usar o script pra dar upgrade em armas, armors, helms, etc. basta configurar os ids no script.

 

 

 

 

 

 

 

Vá em Data/Npc, crie um novo arquivo .xml chamado Keny, e cole isso dentro:

 

<?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>

 

Salve, e feche.

 

 

Agora vá em Data/Npc/Scripts, crie um novo arquivo .lua chamado upgradeitems, e cole isso dentro:

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

 

Salve ambos.

Entre em seu servidor, e digite /n Keny, e o teste.

Pronto.

 

 

 

 

 

 

 

 

 

Explicando o Script:

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

 

Espero que seja útil a alguém, abraços. :D

 

 

 

 

 

 

Vídeo:

Editado por Legnus (veja o histórico de edições)


spacer.png

 

 

Link para o post
Compartilhar em outros sites

O script é bem útil para servidores que presam pelo RPG.

Foi você que fez?

 

Que bom que seja útil :D  Sim, foi eu quem fiz.


spacer.png

 

 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo