Ir para conteúdo

Online Bonus


139

Posts Recomendados

Script feito 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)      endfunction 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 ;):

Editado por 139
Atualização
Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

Seria possivel o player ganhar skill em vez desse online bonus?

por exemplo: caso o player tenha o valor 1 no storage 72702 ele ganha 10 em todos os  skills e caso o storage volte para 0 ele perde esse bonus.

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

@Babiloko O jogador após ficar uma hora online ganharia um buff de +10 em todas as skills até ele deslogar?

E toda vez que o personagem logar teria que ficar essa uma hora online pra ganhar o buff de novo?

Se for isso da pra fazer sim, só que tenha em mente: se o seu servidor possuir alguma outra fonte de buff nas skills (magia / runa / potion) não vai funcionar. Porque não da pra combar os buffs, o buff usado por último remove o efeito do anterior.

Ex: O Pedro ficou uma hora online e ganhou +10 em axe, sword, club e fist fighting, se ele der "utito tempo", ele vai perder esse buff anterior da hora online, e ganhar o buff da "utito tempo".

Editado por 139
Complementar
Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...
Em 14/07/2017 at 05:01, 139 disse:

@Babiloko O jogador após ficar uma hora online ganharia um buff de +10 em todas as skills até ele deslogar?

E toda vez que o personagem logar teria que ficar essa uma hora online pra ganhar o buff de novo?

Se for isso da pra fazer sim, só que tenha em mente: se o seu servidor possuir alguma outra fonte de buff nas skills (magia / runa / potion) não vai funcionar. Porque não da pra combar os buffs, o buff usado por último remove o efeito do anterior.

Ex: O Pedro ficou uma hora online e ganhou +10 em axe, sword, club e fist fighting, se ele der "utito tempo", ele vai perder esse buff anterior da hora online, e ganhar o buff da "utito tempo".

Entendi. Consegui fazer aqui usando SUBID no combat param. mesmo usando utito tempo ele nao perde na verdade ele soma :D obrigado pela atençao

Link para o comentário
Compartilhar em outros sites

  • 1 year later...

Estou problema usando no sistema do "mock vip system" alguem pode me ajudar??

 

[12:35:24.123] [Error - CreatureScript Interface] 
[12:35:24.123] In a timer event called from: 
[12:35:24.123] data/creaturescripts/scripts/onlinebonus.lua:onLogin
[12:35:24.123] Description: 
[12:35:24.123] data/creaturescripts/scripts/onlinebonus.lua:11: attempt to call global 'doPlayerAddvipDays' (a nil value)
[12:35:24.123] stack traceback:
[12:35:24.123]     data/creaturescripts/scripts/onlinebonus.lua:11: in function <data/creaturescripts/scripts/onlinebonus.lua:1>
 

Link para o comentário
Compartilhar em outros sites

  • 1 year later...
  • Quem Está Navegando   0 membros estão online

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