Ir para conteúdo
  • Cadastre-se

(Resolvido)[AJUDA] npc entrega storage varias vezes


Ir para solução Resolvido por Wakon,

Posts Recomendados

Diga em poucas palavras a base utilizada (Nome do servidor ou nome do website).

Ex. TFS 1.3;

Base: 0.4

 

 

Qual erro está surgindo/O que você procura?

Eu gostaria de por para só comprar 1 vez a storage, após a compra falar que o individuo já comprou

Também gostaria de por para aumentar 10 de Ml e 10 de First

 

Você tem o código disponível? Se tiver publique-o aqui:

Spoiler

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 itemID = 5943 -- id do anel
local quantRemove = 15 -- quantidade do item acima que sera removido
local storageGain = 32100 -- storage que o player vai ganhar quando o item for removido
local bonushp = 1000 -- quanto de bonus de life vai ganha

if (msgcontains(msg, 'yes') and doPlayerRemoveItem(cid, itemID, quantRemove)) then
selfSay('Parabéns agora você faz parte da Akatsuki, Utilize o comando !akatsuki.', cid)
setPlayerStorageValue(cid, storageGain, 1)
setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+bonushp)
doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
else
selfSay('Não adianta me enganar, você não tem 15 {Morgaroths Heart}, vai atrás, e só volte com eles.', cid)
end

return true
end

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

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.

Não tenho.

Link para o post
Compartilhar em outros sites
  • Solução
local cfg = {
    item = {5943, 15},
    storage = 32100,
    hp_bonus = 1000,
    skills_bonus = {
        [SKILL__MAGLEVEL] = 10,
        [SKILL_FIST] = 10,
    }
}

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, 'yes')) then
        if (getPlayerStorageValue(cid, cfg.storage) < 1) then
            if (doPlayerRemoveItem(cid, cfg.item[1], cfg.item[2])) then
                for v, k in pairs (cfg.skills_bonus) do
                    doPlayerAddSkill(cid, v, k)
                end
                setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + cfg.hp_bonus)
                doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
                setPlayerStorageValue(cid, cfg.storage, 1)
                selfSay('Parabéns agora você faz parte da Akatsuki, utilize o comando !akatsuki.', cid)
            else
                selfSay('Não adianta me enganar, você não tem '.. cfg.item[2] ..' {'.. (cfg.item[2] == 1 and getItemNameById(cfg.item[1]) or getItemPluralNameById(cfg.item[1])) ..'}, vai atrás, e só volte com eles.', cid)
            end
        else
            selfSay('Você já faz parte da Akatsuki.', cid)
        end
    end
   return true
end

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

@OinomedRellik

Link para o post
Compartilhar em outros sites
2 minutos atrás, Wakon disse:

local cfg = {
    item = {5943, 15},
    storage = 32100,
    hp_bonus = 1000,
    skills_bonus = {
        [SKILL__MAGLEVEL] = 10,
        {SKILL_FIST] = 10,
    }
}

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, 'yes')) then
        if (getPlayerStorageValue(cid, cfg.storage) < 1) then
            if (doPlayerRemoveItem(cid, cfg.item[1], cfg.item[2])) then
                for v, k in pairs (cfg.skills_bonus) do
                    doPlayerAddSkill(cid, v, k)
                end
                setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + cfg.hp_bonus)
                doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
                setPlayerStorageValue(cid, cfg.storage, 1)
                selfSay('Parabéns agora você faz parte da Akatsuki, utilize o comando !akatsuki.', cid)
            else
                selfSay('Não adianta me enganar, você não tem '.. cfg.item[2] ..' {'.. (cfg.item[2] == 1 and getItemNameById(cfg.item[1]) or getItemPluralNameById(cfg.item[1])) ..'}, vai atrás, e só volte com eles.', cid)
            end
        else
            selfSay('Você já faz parte da Akatsuki.', cid)
        end
    end
   return true
end

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

 

Irei testar e já volto com a reputação.

Error : 

1686346417_Semttulo.png.719b769559eae6fd37911b41c4ef4aa2.png

Link para o post
Compartilhar em outros sites

@Wakon

Tem como por para o npc mandar uma mensagem se um player tentar falar com ele? mas tipo assim o jogador não poderá falar com o npc só que quando ele tentar vai enviar uma mensagem dizendo : você já é de uma organização não poderá entrar na nossa, saia daqui seu merda.  mas só se o player estiver com essa storage : 32101? 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo