Ir para conteúdo

Featured Replies

Postado

Galera, to com um scripts onde e um evento que vou realizar no meu servidor

porém, quando o bau nasce, ele não da limite somente 1 player ganhar 1 recompença, 1 player pode pegar varias e varias recompenças

tem algo de errado?

 

Spoiler

function getIpFromRewardc(n)
    local ret = db.getResult("SELECT `id` FROM `reward_chest` WHERE `ip` = "..n)
    return ret:getID() ~= -1 and ret:getDataInt("id") or 0
end
local i = {
    [1] = {id = 9980, c = 3},
    [2] = {id = 9941, c = 5},
    [3] = {id = 11249, c = 2},
    [4] = {id = 8981, c = 2},
    [5] = {id = 9942, c = 5}
}
local st = 7021
function onUse(cid, item, frompos, item2, topos)
    local myip = getPlayerIp(cid)
    if getIpFromRewardc(myip) == 0 then
        local a = math.random(1, #i)
        doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
        doPlayerSendTextMessage(cid,22,"Você recebeu "..i[a].c.." " .. getItemNameById(i[a].id) .. ".")
        for x=1, i[a].c do
            doPlayerAddItem(cid, i[a].id, 1)
        end
        db.query("INSERT INTO `reward_chest` (`ip`) VALUES ('".. myip .."');")
    else
        doPlayerSendCancel(cid, "Desculpe, você pode obter as recompensas apenas uma vez.")
        doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
    end
    return true
end

 

 

Postado

Sim, pelo que entendi o script só deixa pegar uma recompensa por ip né?
e está faltando um if para verificar a storage, existe a variavel da storage mas não existe a checagem da mesma..

tenta usar esse

Spoiler

function getIpFromRewardc(n)
    local ret = db.getResult("SELECT `id` FROM `reward_chest` WHERE `ip` = "..n)
    return ret:getID() ~= -1 and ret:getDataInt("id") or 0
end
local i = {
    [1] = {id = 9980, c = 3},
    [2] = {id = 9941, c = 5},
    [3] = {id = 11249, c = 2},
    [4] = {id = 8981, c = 2},
    [5] = {id = 9942, c = 5}
}
local st = 702122
function onUse(cid, item, frompos, item2, topos)
    local myip = getPlayerIp(cid)
    
    if getPlayerStorageValue(cid, st) < 1 then
    if getIpFromRewardc(myip) == 0 then
        local a = math.random(1, #i)
        doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
        doPlayerSendTextMessage(cid,22,"Voce recebeu "..i[a].c.." " .. getItemNameById(i[a].id) .. ".")
        for x=1, i[a].c do
            doPlayerAddItem(cid, i[a].id, 1)
        end
        db.query("INSERT INTO `reward_chest` (`ip`) VALUES ('".. myip .."');")
    else
        doPlayerSendCancel(cid, "Desculpe, voce pode obter uma recompensa por ip.")
        doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
    end
    else
        doPlayerSendCancel(cid, "Desculpe, voce pode obter as recompensas apenas uma vez.")
        doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
        setPlayerStorageValue(cid, st, 1)
    end
    return true
end

 

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo