Ir para conteúdo
  • Cadastre-se

(Resolvido)Trocando blueberry por potions


Ir para solução Resolvido por nookia,

Posts Recomendados

Galera Eu fiz script para adicionar em meu otserver, mais esta ocorrendo o seguinte problema.

 

gostaria que comunicaçao na hora da troca fosse assim

 

eu: hi

Npc:Ola, diga trocar para trocar blueberrys por mana potion.

Eu: Trocar

Npc: Deseja trocar 100 BluBerryes por 20 Potions?

Eu: Yes

 

Apos eu dizer Yes o npc fazer as trocas....

estou com seguinte 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 playerHaveItems(cid, itemid) -- by MatheusMkalo
    local items = type(itemid) == "table" and itemid or {itemid}
    for i = 1, #items do
        if getPlayerItemCount(cid, items) <= 15 then
            return false
        end
    end
    return true
end
 
function doPlayerRemoveItems(cid, itemid, count) -- by MatheusMkalo
    local items = type(itemid) == "table" and itemid or {itemid}
    for i = 1, #items do
        doPlayerRemoveItem(cid, items, count ~= nil and count or 15)
    end
return nil
end
 
function creatureSayCallback(cid, type, msg)
 
    if(not npcHandler:isFocused(cid)) then
        return false
    end
    
    if msgcontains(msg, "trocar") then
selfSay('Deseja trocar {100 BluBerryes} por 20 Potions?', cid)
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
        if playerHaveItems(cid, {2677}, 100) then
            doPlayerRemoveItems(cid, {2677}, 100)
            doPlayerAddItem(cid, 7620, 10)
        else
            selfSay("Voce nao tem as blueberrys para trocar por Mana Potion.")
        end
    end 
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
 
 
 
Mais quando eu falo "Yes" o Npc nao conclue a troca...

post-96542-0-82666400-1433976026_thumb.p

Link para o post
Compartilhar em outros sites
  • Solução
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 = {
          item = {2677, 7620} -- item que será pedido e item que será dado na troca
}

local counts = {
          count = {100, 20} -- quantidade que será pedido e quantidade que será dado na 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, 'trocar') then
                    if getPlayerItemCount(cid, items.item[1]) >= counts.count[1] then
                              doPlayerRemoveItem(cid, items.item[1], counts.count[1])
                              doPlayerAddItem(cid, items.item[2], counts.count[2])
                              selfSay('Você trocou '.. counts.count[1] ..' '.. getItemNameById(items.item[1]) ..' for '.. counts.count[2] ..' '.. getItemNameById(items.item[2]) ..'.', cid)
                    else
                              selfSay('Você não possui '.. counts.count[1] ..' '.. getItemNameById(items.item[1]) ..'.', cid)
                    end
          end
          return TRUE
end

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

Testei e funcionando 100%, abraço.

The medieval RpG Server

espada-barbara.jpg

[RpG] OLDWORLD OPEN TIBIA

Link para o post
Compartilhar em outros sites

 

 

Galera Eu fiz script para adicionar em meu otserver, mais esta ocorrendo o seguinte problema.

 

gostaria que comunicaçao na hora da troca fosse assim

 

eu: hi

Npc:Ola, diga trocar para trocar blueberrys por mana potion.

Eu: Trocar

Npc: Deseja trocar 100 BluBerryes por 20 Potions?

Eu: Yes

 

Apos eu dizer Yes o npc fazer as trocas....

estou com seguinte 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 playerHaveItems(cid, itemid) -- by MatheusMkalo
    local items = type(itemid) == "table" and itemid or {itemid}
    for i = 1, #items do
        if getPlayerItemCount(cid, items) <= 15 then
            return false
        end
    end
    return true
end
 
function doPlayerRemoveItems(cid, itemid, count) -- by MatheusMkalo
    local items = type(itemid) == "table" and itemid or {itemid}
    for i = 1, #items do
        doPlayerRemoveItem(cid, items, count ~= nil and count or 15)
    end
return nil
end
 
function creatureSayCallback(cid, type, msg)
 
    if(not npcHandler:isFocused(cid)) then
        return false
    end
    
    if msgcontains(msg, "trocar") then
selfSay('Deseja trocar {100 BluBerryes} por 20 Potions?', cid)
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
        if playerHaveItems(cid, {2677}, 100) then
            doPlayerRemoveItems(cid, {2677}, 100)
            doPlayerAddItem(cid, 7620, 10)
        else
            selfSay("Voce nao tem as blueberrys para trocar por Mana Potion.")
        end
    end 
    return true
end
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
 
 
 
 
Mais quando eu falo "Yes" o Npc nao conclue a troca...

 

 

 if playerHaveItems(cid, {2677}, 100) then ??

 doPlayerRemoveItems(cid, {2677}, 100) ??
oq seria isso pode me explicar? 

547657261_assinaturatibiaking.jpg.c1cc2728d9b7e7142cd10bf237f3370d.jpg

'' Uma ideia é apenas uma ideia, até ser desenvolvida, mastigada, retratada, analisada e por fim se tornar uma boa ideia. ''

Link para o post
Compartilhar em outros sites

nookia Muito Obrigado, Reputado Agradecimentos equipe Overest...

Desde já em nome de toda equipe, queriamos dizer que estamos de portas abertas esperando voce em nossa equipe :D

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