Ir para conteúdo

Hasaccountstorage(Cid, Key, Value)


Vodkart

Posts Recomendados

Autor: Jetro

 

Explicação: É uma função que serve para saber se a conta possui ou não uma certa Key(Storage),muito usada para aquelas situações de jogadores quando alcançarem um determinado level ganharem dias de vip ou premium,não tem aquele bug de todos os jogadores da conta pegarem esses dias.

 

 

 

 

adicione em data/lib/050-function.lua

 

Version by Jetro:

 

 

function hasAccountStorage(cid, key, value)
if (not isPlayer(cid)) then
return print("CID MUST BE A PLAYER!") and false
end
if (not isNumber(key) or not isNumber(value) ) then
return print("KEY AND VALUE MUST BE NUMBERS!") and false
end
local id = db.getResult("select `account_id` from `players` where id = "..getPlayerGUID(cid)..";")
local players_list = db.getResult("select `id` from `players` where `account_id` = "..id:getDataInt("account_id")..";")
if players_list:getID() ~= -1 then
players = {}
repeat
table.insert (players, players_list:getDataInt("id"))
until not(players_list:next())
local select_stor = db.getResult ("select * from `player_storage` where `player_id` in ("..table.concat (players, ",")..") and (`key` = "..key.." and `value` = "..value..") ;")
res = select_stor:getID() > 0 and true or false
if (res) then
select_stor:free()
id:free()
players_list:free()
end
end
return res
end

 

 

 

Version by Cykotitan:

 

 

function hasAccountStorage(cid, key, value)
if isPlayer(cid) == false then
error("[hasAccountStorage] Player not found (cid=" .. tostring(cid) .. ")")
elseif tonumber(key) == nil then
error("[hasAccountStorage] Invalid key (key=" .. tostring(key) .. ")")
else
local q = db.getResult('SELECT player_id FROM player_storage LEFT JOIN players ON player_storage.player_id=players.id WHERE players.account_id=' .. getPlayerAccountId(cid) .. ' AND `key`=' .. key .. (value and ' AND value=' .. db.escapeString(value) or '') .. ' LIMIT 1')
if q:getID() ~= -1 then
q:free()
return true
end
end
end

 

 

 

Exemplo de como usar:

 

if (hasAccountStorageValue(cid, 3232, 4)) then
	doPlayerSendCancel(cid, "You have already done this quest")

else
doPlayerAddItem(cid, item, count)
end

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...