AEE, demonbholder.
OPAKSDOKAOKDHUAUHDAUHD (:
Voce merece milhões de rep XD :button_ok:
Por Demonbholder, 07 de mai. de 2011 em Mods, funções e outros
AEE, demonbholder.
OPAKSDOKAOKDHUAUHDAUHD (:
Voce merece milhões de rep XD :button_ok:
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

UHAUHAUH tava atras de uma function assim semana passada -pro sistema de food '-'-.. e como nao achei tive q criar ela eu ms uU muito bem feita a sua function.. a minha ta bem mais simples e um pouco diferente mas acaba dando no ms '-' Good Job ![]()
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Hmm valeu, se alguém precisar de alguma função me comunique por mensagem privada e se eu conseguir, a farei.
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder
Faaala pessoal, tudo bem? Fiz uma função hoje a tarde a pedido de um amigo, e também vi que muita gente pedia algo assim, logo eu resolvi faze-la.
Como funciona: A função faz um storage aumentar de tanto em tanto até um certo valor de tantos em tantos segundos.
Você deve usar a função de seguinte maneira: doStorageCount(storage, guid, amount, max, time)
Azul: Escolha um storage. Exemplo: 40000
Vermelho: Guid do jogador, ou seja, o número dele na database. Caso o jogador esteja online, o guid pode ser descoberto a partir da função getPlayerGUID(cid)
Verde: Escolha de quanto em quanto o storage vai aumentar/diminuir.
Laranja: Escolha o máximo que o storage vai chegar.
Cinza: Escolha de quanto em quanto tempo vai aumentar/diminuir o storage.
*Sim, você pode usar número negativos!
OBS: O storage vai partir do número 0.
Função:
function doStorageCount(storage, guid, count, max, time, twi) cid = nil if (type(storage) or type(guid) or type(count) or type(max) or type(time)) ~= "number" or time <= 0 then return error("Wrong param.") end if isOnline(guid) then for _, pid in pairs(getPlayersOnline()) do if getPlayerGUID(pid) == guid then cid = pid break end end alfa = twi == 1 and getPlayerStorageValue(cid, storage) or 0 setPlayerStorageValue(cid, storage, alfa + count) else beta = twi == 1 and tonumber(db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = ".. guid .." AND `key` = ".. storage ..";"):getDataString("value")) or 0 db.executeQuery("UPDATE `player_storage` SET `value` = ".. beta + count .." WHERE `player_id` = ".. guid .." AND `key` = ".. storage ..";") end local data = isOnline(guid) and alfa or beta if math.abs(data) + math.abs(count) < math.abs(max) then addEvent(doStorageCount, time*1000, storage, guid, count, max, time, 1) end return TRUE endOBS: twi não é usado ao usar a função, apenas no addEvent da própria função.
Exemplo de uso:
Vai ser executada assim:
*Cuidado para não usá-la duas vezes antes dela finalizar o máximo, pois pode causar bugs.
Bom, então é isso galera, espero que usem. Até mais.
Editado Maio 20 por Demonbholder