Online Bonus

139
Por 139
em CreatureScripts e Movements

139

Leonardo
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/12/09Posts: 76Char no Tibia: Zoralurk

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 ;):

Josegvb

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/09/12Posts: 1041Gênero: Masculino

adorei, obrigado!

sayamen

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/07/16Posts: 6Gênero: Masculino

mulke zika esse =):

Mudrock

Eternal Liers
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 24/12/09Posts: 1002Gênero: MasculinoChar no Tibia: Necromanser

Curti pra caramba, muito obrigado por compartilhar ;):

Antenciosamente, Mudrock

Mensagens privadas somente sobre outros assuntos!

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

 
 

tumblr_ntxzlfQp3v1uyo57xo8_500.gif (500×225)

 

MudrockAprova#

- EkzGuard

 

Babiloko

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/11/16Posts: 4

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.

139

Leonardo
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/12/09Posts: 76Char no Tibia: Zoralurk

@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".

Gabrielkss

lxl Gabrielks lxl
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 06/01/08Posts: 137Char no Tibia: LarissaxD

teria como modificar para contar esses pontos e dps ser utilizado em um npc para comprar items com esses pontos online ?

Se der certo ou não, não importa

O que importa é que eu tentei e fui

O mais longe que pude.

Babiloko

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 19/11/16Posts: 4
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

omega26

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/08/18Posts: 7

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>
 

feipedorp

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 16/09/20Posts: 2

tem como usar usando os online pontos  com um npc para cmprar itens?