Ir para conteúdo

Featured Replies

Postado

@Nogard

Cara peguei um script seu que achei muito interessante para poder colocar no final de uma quest de meu otserv...porém no seu script o npc fazia a troca de apenas 2 itens e para minha quest seria nescessário ele trocar 6 itens então eu sem entender nada de programação... tentei modifica para ele troca 6 X item por outros 6 X item igualzinho o seu apenas almentei o tanto de itens e acabo que deu errado xD.. fica dando um erro quando inicia o servidor e o NPC não aparece. Você poderia consertar a burrada que eu fis e deixa de acordo com oque tentei fazer? 

O script ja esta com todas as ids dos itens que sera usado para trocar por outros itens so precisava fazer da certo.

O erro que da e o seguinte:

[Error - LuaInterface::loadFile] data/npc/scripts/upgradeitems.lua:134: 'end' expected (to close 'if' at line 24) near '<eof>'
[20/9/2017 4:41:29] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/upgradeitems.lua
[20/9/2017 4:41:29] data/npc/scripts/upgradeitems.lua:134: 'end' expected (to close 'if' at line 24) near '<eof>'

 

e o script fico assim:

 

 

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 valuegoldningot = getPlayerItemCount(cid, 9971)
local valuephoeniegg   = getPlayerItemCount(cid, 2328) 
if(msgcontains(msg, 'melhorar')) then   
if (swords.itemid == 0) then 
selfSay ('Voce nao esta empunhando nenhuma arma no momento', cid)
else
if (swords.itemid == 2342) then  
selfSay ('Oh, entao voce carrega um Helmet of the ancients com voce, bom helmet.. Posso fazer uma melhoria nele, por 30 phoenix egg e 90kk {ok}?', cid)
else
if (swords.itemid == 8865) then    
selfSay ('Hm... Vejamos, entao voce empunha uma Dark Lord cape, com o material certo, posso transforma-la em uma armadura muito melhor. Tenha 50 phoenix egg, e a quantia de 100kk, {ok}?', cid)
else
if (swords.itemid == 8888) then    
selfSay ('Hm... Vejamos, entao voce empunha uma Archer armor, com o material certo, posso transforma-la em uma armadura muito melhor. Tenha 50 phoenix egg, e a quantia de 100kk, {ok}?', cid)
else
if (swords.itemid == 8883) then    
selfSay ('Hm... Oh, Wimdborn Colossu armor...Admiravel, com o material certo, posso transforma-la em uma armadura ainda melhor. Tenha 50 phoenix egg, e a quantia de 100kk, {ok}?', cid)
else
if (swords.itemid == 7462) then    
selfSay ('Oh, Ragnir Helmet...Havia tempo que nao via um desses, pois bem, posso transforma-la em algo do seu interesse. Tenha 30 phoenix egg, e a quantia de 90kk, {ok}?', cid)
else
if (swords.itemid == 5924) then    
selfSay ('O meu deus, isso e uma sucata...Vamo la, acho que posso fazer algo por voce..quer melhora-lo? Tenha 30 phoenix egg, e a quantia de 90kk, {ok}?', cid)      
end    
end
end
--------

---------------------------------------------------------
if (msgcontains(msg, 'ok')) then
    if (swords.itemid == 0) then 
    selfSay('Voce nao esta portando nenhum item de upgrade no momento', cid)
        end  
      
 if (swords.itemid == 2342) then  
         if getPlayerItemCount(cid, 2328) <= 30 or  getPlayerItemCount(cid, 9971) <= 90  then
           selfSay('Voce nao tem o material necessario. Você tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 90 gold ingot e 30 phoenix egg.', cid)
 else
        doPlayerRemoveItem(cid, 2342, 1) --- 'Item 2'
         doPlayerRemoveItem(cid, 2328, 30)   --- Aqui é feita a remoção dos items necessários.  (30 phoenix egg)
            doPlayerRemoveItem(cid, 9971, 90) --- Aqui é feita a remoção dos items necessários. (90 gold ingot)
            doSendMagicEffect(pos, 36)
              doCreateItem(5903, 1, pos) 
                 selfSay ('O seu helmet foi melhorad0, a transformei em um Ferumbras Hat, Porém nada dura para sempre...!', cid)               
                end  
                  end                                  

       
 if (swords.itemid == 8865) then  
         if getPlayerItemCount(cid, 2328) <= 50 or  getPlayerItemCount(cid, 9971) <= 100  then
           selfSay('Voce nao tem o material necessario. Você tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 100 gold ingot e 50 phoenix egg.', cid)
 else
        doPlayerRemoveItem(cid, 8865, 1) --- 'Item 2'
         doPlayerRemoveItem(cid, 2328, 50)   --- Aqui é feita a remoção dos items necessários.  (30 phoenix egg)
            doPlayerRemoveItem(cid, 9971, 100) --- Aqui é feita a remoção dos items necessários. (90 gold ingot)
            doSendMagicEffect(pos, 36)
              doCreateItem(8890, 1, pos) 
                 selfSay ('O sua Robe foi melhorada, a transformei em uma robe of the underworld, Porem nada dura para sempre...!', cid)               
                end  
                  end

 if (swords.itemid == 8888) then  
         if getPlayerItemCount(cid, 2328) <= 50 or  getPlayerItemCount(cid, 9971) <= 100  then
           selfSay('Voce nao tem o material necessario. Você tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 100 gold ingot e 50 phoenix egg.', cid)
 else
        doPlayerRemoveItem(cid, 8888, 1) --- 'Item 2'
         doPlayerRemoveItem(cid, 2328, 50)   --- Aqui é feita a remoção dos items necessários.  (30 phoenix egg)
            doPlayerRemoveItem(cid, 9971, 100) --- Aqui é feita a remoção dos items necessários. (90 gold ingot)
            doSendMagicEffect(pos, 36)
              doCreateItem(2500, 1, pos) 
                 selfSay ('O sua Armadura foi melhorada, a transformei em uma Amazon Armor, Porem nada dura para sempre...!', cid)               
                end  
                  end

 if (swords.itemid == 8883) then  
         if getPlayerItemCount(cid, 2328) <= 50 or  getPlayerItemCount(cid, 9971) <= 100  then
           selfSay('Voce nao tem o material necessario. Você tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 100 gold ingot e 50 phoenix egg.', cid)
 else
        doPlayerRemoveItem(cid, 8883, 1) --- 'Item 2'
         doPlayerRemoveItem(cid, 2328, 50)   --- Aqui é feita a remoção dos items necessários.  (30 phoenix egg)
            doPlayerRemoveItem(cid, 9971, 100) --- Aqui é feita a remoção dos items necessários. (90 gold ingot)
            doSendMagicEffect(pos, 36)
              doCreateItem(2503, 1, pos) 
                 selfSay ('O sua Armadura foi melhorada, a transformei em uma Dwarven Armor, Porem nada dura para sempre...!', cid)               
                end  
                  end

 if (swords.itemid == 5924) then  
         if getPlayerItemCount(cid, 2328) <= 30 or  getPlayerItemCount(cid, 9971) <= 90  then
           selfSay('Voce nao tem o material necessario. Voce tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 90 gold ingot e 30 phoenix egg.', cid)
 else
        doPlayerRemoveItem(cid, 5924, 1) --- 'Item 2'
         doPlayerRemoveItem(cid, 2328, 30)   --- Aqui é feita a remoção dos items necessários.  (30 phoenix egg)
            doPlayerRemoveItem(cid, 9971, 90) --- Aqui é feita a remoção dos items necessários. (90 gold ingot)
            doSendMagicEffect(pos, 36)
              doCreateItem(2499, 1, pos) 
                 selfSay ('O sua sucata foi melhorada, a transformei em um Amazon helmet, Porem nada dura para sempre...!', cid)               
                end  
                  end

if (swords.itemid == 7462) then  
         if getPlayerItemCount(cid, 2328) <= 30 or  getPlayerItemCount(cid, 9971) <= 90  then
           selfSay('Voce nao tem o material necessario. Voce tem '.. valuegoldingot ..' Gold Ingots, e '.. valuephoenixegg .. ' Phoenix Eggs, Eu preciso de 90 gold ingot e 30 phoenix egg.', cid)
 else
        doPlayerRemoveItem(cid, 7462, 1) --- 'Item 2'
         doPlayerRemoveItem(cid, 2328, 30)   --- Aqui é feita a remoção dos items necessários.  (30 phoenix egg)
            doPlayerRemoveItem(cid, 9971, 90) --- Aqui é feita a remoção dos items necessários. (90 gold ingot)
            doSendMagicEffect(pos, 36)
              doCreateItem(2502, 1, pos) 
                 selfSay ('O seu helmet foi melhorad0, a transformei em um Dwarven Helmet, Porem nada dura para sempre...!', cid)               
                end  
                  end 

end

return true

end

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

 

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

Resolvido por Dwarfer

Ir para solução
Postado
  • Autor
5 horas atrás, victor4312 disse:

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 talkState = {}
local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
local shopWindow = {}
local moeda = 6527 -- id do item o moeda que ele vai pedir
local t = {
      [8981] = {price = 500},   id do item e o preço 
      [7443] = {price = 700},
      [7440] = {price = 300},
      [11250] = {price = 400},
      [5468] = {price = 350},    
      [2346] = {price = 200}
      }
      
local onBuy = function(cid, item, subType, amount, ignoreCap, inBackpacks)
    if  t[item] and not doPlayerRemoveItem(cid, moeda, t[item].price) then
          selfSay("You don't have "..t[item].price.." "..getItemNameById(moeda), cid)
             else
        doPlayerAddItem(cid, item)
        selfSay("Here are you.", cid)
       end
    return true
end
if (msgcontains(msg, 'trade') or msgcontains(msg, 'TRADE'))then
            for var, ret in pairs(t) do
                    table.insert(shopWindow, {id = var, subType = 0, buy = ret.price, sell = 0, name = getItemNameById(var)})
                end
            openShopWindow(cid, shopWindow, onBuy, onSell)
            end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) 
npcHandler:addModule(FocusModule:new())

eu n quero um npc que vende itens tipo aquele script que eu mostrei ali n é de comprar item de npc

Você precisaria ter na bp 30 phoenix egg(configurável) + 90 gold ingot (configurável)+ um helmet (configurável) para trocar por um outro helmet evoluído que seria o ferumbras Hat entendeu?

@Nogard

será que tu não conseguiria ajeitar o script pra min ?

Postado
  • Autor
2 minutos atrás, victor4312 disse:

não consigo adaptar mas vou verificar acho que tenho u script parecido aqui

Eu usei esse script aqui eu queria igualzinho a esse só que em vez de trocar apenas 2 itens precisava trocar 6

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo