(Pedido)Npc Que Vende Mas Nao Por Dinhero Normal

laravita
em Lixeira Pública

laravita

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/07/11Posts: 17

Queria um npc que venda um item por outro, exemplo.O npc vende uma dsm por 5 red gem, ou um crusader por 10 diamonds.

kmmyrawr

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/11Posts: 16

Exemplo: Editando o NPC Oldrak:

 

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 creatureSayCallback(cid, type, msg)

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

 --------------------------------------------------------------------------------- ATÉ AQUI NÃO MODIFIQUE

       local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
       if msgcontains(msg, 'dragon scale mail') then        ---------------------- NOME DO ITEM QUE VOCE QUER VENDER
               selfSay('Do you want to buy a Dragon Scale Mail from me?', cid) --- PERGUNTA
               talkState[talkUser] = 1
       elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
               local qntd = XXX  ------------------------------------------------- QUANTIDADE DO DETERMINADO ITEM
               local itemid = XXXX  ---------------------------------------------- ID DO ITEM
                       if getPlayerItemCount(cid, itemid) > qnt then
                               selfSay('Voce comprou TAL item!', cid)  ----------- CONFIRMAÇAO DA COMPRA
                               doPlayerRemoveItem(cid, itemid, qntd) 
                               doPlayerAddItem(cid, YYYY, 1)  -------------------- ID DO ITEM QUE RECEBERA
                               talkState[talkUser] = 0
                       else
                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..qnt.." "..getItemNameById(itemid).." para comprar.")
                       end

return TRUE
end

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

 

Veja o que deseja modificar e pronto

 

(Anges et Démons Reloaded)



Coming Up.

laravita

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/07/11Posts: 17

Cara deu erro aki disse que tem um valor errado na linha 38, algo assim dis que ela tenque fechar a linha 10 com end.

Antharaz

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 05/01/08Posts: 153Char no Tibia: nenhum

seria melhor fazer um com tables fica mais fácil configurar, botei o end onde precisava:

 

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 creatureSayCallback(cid, type, msg)

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

 --------------------------------------------------------------------------------- ATÉ AQUI NÃO MODIFIQUE

       local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
       if msgcontains(msg, 'dragon scale mail') then        ---------------------- NOME DO ITEM QUE VOCE QUER VENDER
               selfSay('Do you want to buy a Dragon Scale Mail from me?', cid) --- PERGUNTA
               talkState[talkUser] = 1
       elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
               local qntd = XXX  ------------------------------------------------- QUANTIDADE DO DETERMINADO ITEM
               local itemid = XXXX  ---------------------------------------------- ID DO ITEM
                       if getPlayerItemCount(cid, itemid) >= qnt then
                               selfSay('Voce comprou TAL item!', cid)  ----------- CONFIRMAÇAO DA COMPRA
                               doPlayerRemoveItem(cid, itemid, qntd) 
                               doPlayerAddItem(cid, YYYY, 1)  -------------------- ID DO ITEM QUE RECEBERA
                               talkState[talkUser] = 0
                       else
                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..qnt.." "..getItemNameById(itemid).." para comprar.")
                       end
end

return TRUE
end

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

Atenciosamente,

Antharaz

HwmBLEb.jpg

kmmyrawr

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/07/11Posts: 16

Só esqueceu de arrumar a linha 38 .-.

 

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 creatureSayCallback(cid, type, msg)

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

 --------------------------------------------------------------------------------- ATÉ AQUI NÃO MODIFIQUE

       local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
       if msgcontains(msg, 'dragon scale mail') then        ---------------------- NOME DO ITEM QUE VOCE QUER VENDER
               selfSay('Do you want to buy a Dragon Scale Mail from me?', cid) --- PERGUNTA
               talkState[talkUser] = 1
       elseif msgcontains(msg, 'yes') and talkState[talkUser] == 1 then
               local qntd = XXX  ------------------------------------------------- QUANTIDADE DO DETERMINADO ITEM
               local itemid = XXXX  ---------------------------------------------- ID DO ITEM
                       if getPlayerItemCount(cid, itemid) >= qnt then
                               selfSay('Voce comprou TAL item!', cid)  ----------- CONFIRMAÇAO DA COMPRA
                               doPlayerRemoveItem(cid, itemid, qntd) 
                               doPlayerAddItem(cid, YYYY, 1)  -------------------- ID DO ITEM QUE RECEBERA
                               talkState[talkUser] = 0
                       else
                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de "..qnt.." "..getItemNameById(itemid).." para comprar.")
                       end
       end

return TRUE
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

 

(Anges et Démons Reloaded)



Coming Up.

laravita

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/07/11Posts: 17

nao deucerto aki, eu falo hi e ele nao fas nada só anda, mas vo da rep+ pra vcs , oq vale é a intençao.