Ir para conteúdo
  • 0

Markowiicz

Pergunta

Olá XTibia_smile.gif , Venho Aqui Pela 3° Vez mellow.png Em Busca Do NPC Outfit, Desta Vez Eu, Finalmente Consegui positivo.gif , Mas Ele Só Vende Por Dinheiro. Será Que Alguém Poderia Adaptá-lo Para Vender Por Diamond? (ID 2145).


Script:

 

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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid

if(msgcontains(msg, 'itens')) then
selfSay('Me traga 5k que lhe fa\ço a {outfit}.', cid)
elseif(msgcontains(msg, 'outfit')) then
selfSay('Voc\ê me trouxe 5k para o assassin outfi=?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getPlayerStorageValue(cid, 158790) == -1 then
if(doPlayerRemoveMoney(cid, 5000) == true) then
selfSay('Sua roupa esta pronta, pode vestir!', cid)
setPlayerStorageValue(cid, 158790,1)
talkState[talkUser] = 0
else
selfSay('Voc\ê n\ão tem dinheiro.', cid)
talkState[talkUser] = 0
end
else
selfSay('Voc\ê ja tem essa roupa.', cid)
talkState[talkUser] = 0
end
end
end

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

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Nem vi se funciona... Mas testa ai! xD

 

 

 

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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
-- Conversa Jogador/NPC
if(msgcontains(msg, 'offer') or msgcontains(msg, 'Offer')) then
selfSay('Eu posso lhe fazer a outfit por 1 diammond.', cid)
elseif(msgcontains(msg, 'outfit') or msgcontains(msg, 'Outfit')) then
selfSay('A outfit custar\á 1 diammond, voc\ê realmente quer comprar?', cid)
talkState[talkUser] = 1
-- Confirmação da Compra
elseif(msgcontains(msg, 'itens')) then
selfSay('Me traga 5k que lhe fa\ço a {outfit}.', cid)
elseif(msgcontains(msg, 'outfit')) then
selfSay('Voc\ê me trouxe 5k para o assassin outfi=?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if getPlayerStorageValue(cid, 158790) == -1 then
if(doPlayerRemoveMoney(cid, 5000) == true) then
selfSay('Sua roupa esta pronta, pode vestir!', cid)
setPlayerStorageValue(cid, 158790,1)
talkState[talkUser] = 0
else
selfSay('Voc\ê n\ão tem dinheiro.', cid)
talkState[talkUser] = 0
end
else
selfSay('Voc\ê ja tem essa roupa.', cid)
talkState[talkUser] = 0
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

Link para o comentário
Compartilhar em outros sites

  • 0

Se o script do GuhPk não funcionar, tente esse:

 

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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
 
local cfg = {
    qnt = xxx,    --Quantidade de diamonds necessários.
    diamond_id = 2145,
}
 
 
    if(msgcontains(msg, 'diamond')) then
        selfSay("Olá, eu vendo outfits por diamonds. Você gostaria de comprar uma Assasin outfit? Custo:"..cfg.qnt.." "..getItemNameById(cfg.diamond_id)..".", cid)
        talkState[talkUser] = 1
        return true
    elseif(msgcontains(msg, 'yes')) and talkState[talkUser] == 1 then  
        if getPlayerStorageValue(cid, 158790) < 1 then
            if getPlayerItemCount(cid, cfg.diamond_id) >= cfg.qnt then
                selfSay('Sua roupa esta pronta, pode vestir!', cid)
                setPlayerStorageValue(cid, 158790,1)
                doPlayerRemoveItem(cid, cfg.diamond_id, cfg.qnt)
                talkState[talkUser] = 0
                return true
            else
                selfSay("Você não tem "..cfg.qnt.." "..getItemNameById(cfg.diamond_id).."...", cid)
                talkState[talkUser] = 0
                return true
            end
        else 
            selfSay("Você já tem essa roupa.", cid))
            talkState[talkUser] = 0
            return true
        end
    end
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Link para o comentário
Compartilhar em outros sites

  • 0

A Do GuhPK, Funciona, Mas Ainda Pede Cash.

 

A Do Zipter98 Da Esse Erro:

[Error - Npc interface]
data/npc/scripts/Outfit.lua:onCreatureSay
Description:
data/npc/scripts/Outfit.lua:25: attempt to concatenate field 'qnt' (a nil value)
stack traceback:
data/npc/scripts/Outfit.lua:25: in function 'callback'
data/npc/lib/npcsystem/npchandler.lua:391: in function 'onCreatureSay'
data/npc/scripts/Outfit.lua:8: in function

Link para o comentário
Compartilhar em outros sites

  • 0

Você simplesmente copiou o script e colou? Testei aqui, e tá funcionando perfeitamente.

 

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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
 
local cfg = {
    qnt = 5,    --Quantidade de diamonds necessários.
    diamond_id = 2145,
}
 
 
    if(msgcontains(msg, 'diamond')) then
        selfSay("Olá, eu vendo outfits por diamonds. Você gostaria de comprar uma Assasin outfit, por uma quantia de "..cfg.qnt.." "..getItemNameById(cfg.diamond_id)..".", cid)
        talkState[talkUser] = 1
        return true
    elseif(msgcontains(msg, 'yes')) and talkState[talkUser] == 1 then  
        if getPlayerStorageValue(cid, 158790) < 1 then
            if getPlayerItemCount(cid, cfg.diamond_id) >= cfg.qnt then
                selfSay('Sua roupa esta pronta, pode vestir!', cid)
                setPlayerStorageValue(cid, 158790,1)
                doPlayerRemoveItem(cid, cfg.diamond_id, cfg.qnt)
                talkState[talkUser] = 0
                return true
            else
                selfSay("Você não tem "..cfg.qnt.." "..getItemNameById(cfg.diamond_id).."...", cid)
                talkState[talkUser] = 0
                return true
            end
        else 
            selfSay("Você já tem essa roupa.", cid)
            talkState[talkUser] = 0
            return true
        end
    end
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Link para o comentário
Compartilhar em outros sites

  • 0

 

Você simplesmente copiou o script e colou? Testei aqui, e tá funcionando perfeitamente.

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 talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
 
local cfg = {
    qnt = 5,    --Quantidade de diamonds necessários.
    diamond_id = 2145,
}
 
 
    if(msgcontains(msg, 'diamond')) then
        selfSay("Olá, eu vendo outfits por diamonds. Você gostaria de comprar uma Assasin outfit, por uma quantia de "..cfg.qnt.." "..getItemNameById(cfg.diamond_id)..".", cid)
        talkState[talkUser] = 1
        return true
    elseif(msgcontains(msg, 'yes')) and talkState[talkUser] == 1 then  
        if getPlayerStorageValue(cid, 158790) < 1 then
            if getPlayerItemCount(cid, cfg.diamond_id) >= cfg.qnt then
                selfSay('Sua roupa esta pronta, pode vestir!', cid)
                setPlayerStorageValue(cid, 158790,1)
                doPlayerRemoveItem(cid, cfg.diamond_id, cfg.qnt)
                talkState[talkUser] = 0
                return true
            else
                selfSay("Você não tem "..cfg.qnt.." "..getItemNameById(cfg.diamond_id).."...", cid)
                talkState[talkUser] = 0
                return true
            end
        else 
            selfSay("Você já tem essa roupa.", cid)
            talkState[talkUser] = 0
            return true
        end
    end
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Funcionou Agora tongue2.png

Duvida Sanada

Podem Mover!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...