Postado Abril 2, 2017 8 anos 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 Abril 6, 2017 8 anos 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: Spoiler [CREATURESCRIPT] Auto TP depois de matar boss [ACTION] Clean Area [TALKACTION] !FelizAnoNovo [ACTION + MOVEMENT] Cartas ao GOD [CREATURESCRIPT] Always Emblem System [ACTION] Anihi simples [TALKACTIONS] Urinar / fazer xixi 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.