Fiz este script inspirado no sistema de Online Bônus do antigo servidor FoxWorld.
Consiste em dar dias de Premium Account esporadicamente para aqueles jogadores que são ativos no servidor, estimulando todos a permanecerem o máximo de tempo conectados, especialmente os jogadores Free Account, que não podem contribuir com o servidor através de doações.
Explicação:
A cada uma hora initerrupta que o personagem ficar online, o mesmo irá ganhar 1 Online Bônus.
Acumulando 30 Online Bônus, o personagem ganha 1 dia de Premium Account, e a sua quantidade de Online Bônus recomeçará a ser contada a partir do zero.
Para deixar bem claro, se dentro dessa uma hora o personagem deslogar por qualquer motivo, o contador da tal uma hora para.
Exemplo:
Zezinho entrou no servidor 15:00, então às 16:00 ele ganharia 1 Online Bônus. Mas Zezinho precisou ir na padaria, portanto deslogou às 15:20 (antes de 16:00).
Digamos que ele tenha voltado às 15:30, sendo assim ele precisaria ficar online até 16:30, e de fato fica, ganhando o seu primeiro Online Bônus.
Conforme os dias se passam, Zezinho vai ganhando alguns Online Bônus todos os dias, e finalmente consegue acumular 30 Online Bônus, ganhando então 1 dia de Premium Account, e zerando os seus 30 Online Bônus para que possa ganhar outro dia de Premium Account, quando acumular 30 novamente.
Agora vamos ao código:
Em data\creaturescripts\scripts crie um arquivo LUA com o nome de de "onlinebonus" e cole dentro:
function addOnlineBonus(cid, horas, bonus_contador, bonus_max)
if not isPlayer(cid) then
return false
end
setPlayerStorageValue(cid, bonus_contador, getPlayerStorageValue(cid, bonus_contador) + 1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Por completar uma hora online sem deslogar, você ganhou 1 Online Bônus. Total: ".. getPlayerStorageValue(cid,bonus_contador) .. ".")
if getPlayerStorageValue(cid, bonus_contador) >= bonus_max then
doPlayerSendTextMessage(cid, 19, "Seus ".. bonus_max .." Online Bônus foram convertidos em 1 dia de Premium Account!")
doPlayerAddPremiumDays(cid, 1)
setPlayerStorageValue(cid, bonus_contador, 0)
end
addEvent(addOnlineBonus, horas * 3600 * 1000, cid, horas, bonus_contador, bonus_max)
end
function onLogin(cid)
local bonus_contador = 72702 -- Storage que vai guardar quantos online bonus o char possui.
local horas = 1 -- Quantidade de horas o char precisa ficar logado pra receber cada online bonus.
local bonus_max = 30 -- Quantidade de bonus que o char precisa atingir para ganhar 1 dia de premium account, zerando o contador.
if getPlayerStorageValue(cid, bonus_contador) > 0 then
doPlayerSendTextMessage(cid,22,"Você está com: " .. getPlayerStorageValue(cid,bonus_contador) .. " Online Bônus.")
else
setPlayerStorageValue(cid, bonus_contador, 0)
doPlayerSendTextMessage(cid,22,"Você está com: 0 Online Bônus.")
end
addEvent(addOnlineBonus, horas * 3600 * 1000, cid, horas, bonus_contador, bonus_max)
return true
end
Agora em data\creaturescripts\creaturescripts.xml adicione a tag:
<event type="login" name="onlinebonus" event="script" value="onlinebonus.lua"/>
E por último vá em data\creaturescripts\scripts\login.lua e adicione esta linha:
registerCreatureEvent(cid, "onlinebonus")
Pronto