139 27 Postado Junho 14, 2017 Share Postado Junho 14, 2017 (editado) 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 Junho 14, 2017 por 139 Atualização ITALOx reagiu a isso 1 Link para o comentário Compartilhar em outros sites More sharing options...
Josegvb 87 Postado Junho 14, 2017 Share Postado Junho 14, 2017 adorei, obrigado! Link para o comentário Compartilhar em outros sites More sharing options...
sayamen 0 Postado Junho 14, 2017 Share Postado Junho 14, 2017 mulke zika esse Link para o comentário Compartilhar em outros sites More sharing options...
Mudrock 326 Postado Junho 14, 2017 Share Postado Junho 14, 2017 Curti pra caramba, muito obrigado por compartilhar Link para o comentário Compartilhar em outros sites More sharing options...
Babiloko 0 Postado Julho 1, 2017 Share Postado Julho 1, 2017 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 More sharing options...
139 27 Postado Julho 14, 2017 Autor Share Postado Julho 14, 2017 (editado) @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 Julho 14, 2017 por 139 Complementar Link para o comentário Compartilhar em outros sites More sharing options...
Gabrielkss 10 Postado Julho 17, 2017 Share Postado Julho 17, 2017 teria como modificar para contar esses pontos e dps ser utilizado em um npc para comprar items com esses pontos online ? Link para o comentário Compartilhar em outros sites More sharing options...
Babiloko 0 Postado Agosto 4, 2017 Share Postado Agosto 4, 2017 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 obrigado pela atençao Link para o comentário Compartilhar em outros sites More sharing options...
omega26 0 Postado Março 15, 2019 Share Postado Março 15, 2019 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 More sharing options...
feipedorp 0 Postado Outubro 18, 2020 Share Postado Outubro 18, 2020 tem como usar usando os online pontos com um npc para cmprar itens? Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados