Ir para conteúdo
  • Cadastre-se

NPC (Trocar item por item.)


Posts Recomendados

Ola mas uma vez galerinha do TK.

 

Estou precisando de um NPC que troque major token (Editavel) por itens...exemplo:

 

ItempriceID = [18423 ,1]

Itens ID = [12360 ,1] - [iTEM ,COUNT] [Editavel] -- Item a ser recebido.

                [12360 ,1] -- Prismatic Legs -- Itens exemplos.

                [12360 ,1] -- Prismatic Helmet

                [12360 ,1] -- Gill Legs

                [12360 ,1] -- Gill Gugel

                [12360 ,1] -- Glow Wine

                [12360 ,1] -- Ironload stone

...... Que eu possa adicionar mas itens...REP+ para quem mim ajudar.

Link para o post
Compartilhar em outros sites

tem esse aki.

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

local items = {
          item1 = {2346, 2349}, -- item1 item que será pedido e que será dado na primeira troca
          item2 = {2033, 15515} -- item2 item que será pedido e que será dado na segunda troca
}
local counts = {
          count1 = {1, 1}, -- count1 quantidade que será pedido e que será dado na primeira troca
          count2 = {10, 1} -- count2 quantidade que será pedido e que será dado na segunda troca
}

function creatureSayCallback(cid, type, msg)
          if(not npcHandler:isFocused(cid)) then
                    return false
          end
          local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
          if msgcontains(msg, 'blue note') then
                    selfSay('You want to swap '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' for '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.',cid)
                    talkState[talkUser] = 1
          elseif talkState[talkUser] == 1 then
                    if msgcontains(msg, 'yes') then
                              if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then
                                        doPlayerRemoveItem(cid, items.item1[1], counts.count1[1])
                                        doPlayerAddItem(cid, items.item1[2], counts.count1[2])
                                        selfSay('You just swap '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' for '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.', cid)
          talkState[talkUser] = 0
                              else
                                        selfSay('You need '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid)
                              end
                    else
                              selSay('Ok then!', cid)
         talkState[talkUser] = 0
                    end
          elseif msgcontains(msg, 'bar of gold') then
                    selfSay('You want to swap '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' for '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid)
     talkState[talkUser] = 2
          elseif talkSate[talkUser] == 2
                    if msgcontains(msg, 'yes') then
                              if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then
                                        doPlayerRemoveItem(cid, items.item2[1], counts.count2[1])
                                        doPlayerAddItem(cid, items.item2[2], counts.count2[2])
                                        selfSay('You just swap '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' for '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid)
          talkState[talkUser] = 0
                              else
                                        selfSay('You need '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..'.', cid)
                              end
                    else
                              selfSay('Ok then!', cid)
                              talkState[talkUser] = 0
                    end
          end
          return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Link para o post
Compartilhar em outros sites

Esse não serve infelizmente.

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

Link para o post
Compartilhar em outros sites

@Macalo

 

Cara obrigado por tentar ajuda mas essa script ja testei e não posso adicionar mas itens...ela não funciona pelo menos no meu servidor não funcionou (Baiak Vills)

Link para o post
Compartilhar em outros sites

e esse aki. ja testou ?

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


-- Config --

local configs = {
    
    FirstItemId = 2455,
    FirstItemCount = 5,
    SecondItemId = 2321,
    SecondItemCount = 1,

    isQuest = "false",    
    questStorage = 17890,

    msgMeet = 'Você deseja trocar '..FirstItemCount .. ' '.. getItemName(FirstItemId) ..' por '.. SecondItemCount ..' '.. getItemName(SecondItemId) ..'?',
    msgQuestCompleted = "Você já fez essa quest.",
    msgQuestNotItem = "Voce não tem o item necessario.",

    }


function npcTroca(cid, message, keywords, parameters, node)

    if(not npcHandler:isFocused(cid)) then
        return false
    end

    if (configs.isQuest == "true") then
    if (getPlayerStorageValue(configs.questStorage) <= 0) then
        if (getItemCount(cid, configs.FirstItemId) == configs.FirstItemCount) then
            doRemoveItem(configs.FirstItemId, config.FirstItemCount)
            doPlayerAddItem(cid, configs.SecondItemId, configs.SecondItemCount)
        else
            return     doPlayerSendTextMessage(cid, 27, configs.msgQuestNotItem)
        end
    else
        return doPlayerSendTextMessage(cid, 27, configs.msgQuestCompleted)
    end
else
    if (getItemCount(cid, configs.FirstItemId) == configs.FirstItemCount) then
        doRemoveItem(configs.FirstItemId, config.FirstItemCount)
        doPlayerAddItem(cid, configs.SecondItemId, configs.SecondItemCount)
    else
        return     doPlayerSendTextMessage(cid, 27, configs.msgQuestNotItem)
    end    
end
end

itemTrade = keywordHandler:addKeyword({'offer'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = configs.msgMeet})
itemTrade:addChildKeyword({'yes'}, npcTroca, {})
itemTrade:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then.', reset = true})
        
npcHandler:addModule(FocusModule:new())

Link para o post
Compartilhar em outros sites

Também não :(, tem que ser vários items.

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

Link para o post
Compartilhar em outros sites

eu não sou script mais tenta assim 

  FirstItemId = 2455,id do item,
    FirstItemCount = 5,quantidade do item,
    ------- NO SECOND FAZ A MESMA COISA PRA VER.
   SecondItemId = 2321,
    SecondItemCount = 1,

Link para o post
Compartilhar em outros sites

Não deu certo :(

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

Link para o post
Compartilhar em outros sites

Nenhum... :(

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

Link para o post
Compartilhar em outros sites

Sim estou

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

Link para o post
Compartilhar em outros sites

se esse não der eu n posso ajuda mais .

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 playerHaveItems(cid, itemid)
local items = type(itemid) == "table" and itemid or {itemid}
for i = 1, #items do
if getPlayerItemCount(cid, items) <= 0 then
return false
end
end
return true
end

function doPlayerRemoveItems(cid, itemid, count)
local items = type(itemid) == "table" and itemid or {itemid}
for i = 1, #items do
doPlayerRemoveItem(cid, items, count ~= nil and count or 1)
end
return nil
end

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then
return false
end

if msgcontains(msg, "trocar") then
if playerHaveItems(cid, {5896, 6569, 2674, 5894, 5888, 5881, 5901}) then
doPlayerRemoveItems(cid, {5896, 6569, 2674, 5894, 5888, 5881, 5901}, 700)
doPlayerAddItem(cid, 2521, 1)
else
selfSay("Voce precisa de 700 Future orb, 700 water pendant, 700 Stone orb, 700 Essenses of fire, 700 Feathers, 700 bottles of poison e 700 Ice Orb, Para Conseguir Uma Master Ball.")
end
end
return true

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

 

Azul: ID dos itens
Vermelho: quantidade
Verde: ID que o Npc irá te dar
Amarelo: Mensagem se não tiver os itens
Preto: Nome do Npc
Rosa: Mensagem para trocar os iten

Link para o post
Compartilhar em outros sites

Olha cara, esse script não vai adiantar mas agradeço a sua ajuda pelo menos você tentou :( (pelo menos você ainda tem interesse), eu preciso que a moeda de troca do npc não seja gold e sim a minha escolha basicamente é isso, esse ultimo script troca um monte de item por 1 item, precisa ter vários itens disponíveis para troca....

 

é algo como...

 

 

ItempriceID = [18423 ,1]
Itens ID = [12360 ,1] 
           [12360 ,1] 
           [12360 ,1] 
           [12360 ,1] 
           [12360 ,1] 
           [12360 ,1] 
           [12360 ,1] 
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
selfSay("Eu posso te vender {prismatic armor}, {prismatic helmet}, {prismatic legs} e {prismatic boots} mas irá te custar alguns tokens, deseja algo?.", cid)
talkState[cid] = 0
if doPlayerRemoveItem(cid, itemid, 1) then
selfSay("Obrigado..", cid)
doTeleportThing(cid, pos)
else
selfSay("Voce não tem os tokens necessarios....", cid)
end
end
return TRUE 
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
Isso ai encima não funciona só fiz como exemplo.. 
Editado por Vills (veja o histórico de edições)

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

Link para o post
Compartilhar em outros sites

@UP

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

Link para o post
Compartilhar em outros sites

Ola, eu tbm já estive precisando de um npc como esse, porem optei por outro opção,

é um script em que você clica no bau e ele te vende o item por um gold alternativo.

 

Dá uma olhada nele, vê se pode te ajudar

http://www.tibiaking.com/forum/topic/13768-action-comprando-item-por-chest-bau/

Editado por Bloodwalker (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Olha amigo, este ai não serve eu garanto que já procuramos em tudo que é lugar e tentamos até fazer nós mesmos más saiu "muuuito" errado

cê você der uma olhada no tópico na página anterior um amigo nosso já enviou esse script para nós e não serviu.  -.-

 

 

Ola, eu tbm já estive precisando de um npc como esse, porem optei por outro opção,

é um script em que você clica no bau e ele te vende o item por um gold alternativo.

 

Dá uma olhada nele, vê se pode te ajudar

http://www.tibiaking.com/forum/topic/13768-action-comprando-item-por-chest-bau/

:thinking: Cara, muito bom eu usarei este script no servidor e te darei um REP+ por tentar me ajudar mas eu necessito muito de um NPC para isso o vodkart tinha feito porem o script cê perdeu no tempo quando o tibiaking morreu, já ainda tinha muito conteúdo :(, novamente obrigado e continuaremos a procura.

"Lendas jamais voltam pois são apenas lendas. eu, eu sou real."

 

Attr:// [GM] Eddy

2013 ~ 2014 R.I.P

Kjc5D10.png

O retorno da lenda....

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