Olá, venho compartilhar um sistema de VIP, para dar aquele upgrade no seu servidor.
Lembrando que o sistema não é de minha autoria, porem eu adicionei algumas funções extras e converti pra atual versão RevScript.
Baseado e compatível com o OTSERVER OTBR.
Para começar vamos executar um comando MySQL na sua database.
ALTER TABLE `accounts`
ADD COLUMN `viplastday` int(10) NOT NULL DEFAULT 0 AFTER `lastday`,
ADD COLUMN `vipdays` int(11) NOT NULL DEFAULT 0 AFTER `lastday`;
Agora, vá até a pasta data/lib e crie um arquivo chamado vip_system.lua e adicione o script dentro.
Após fazer isso, abra o arquivo lib.lua e adicione na ultima linha.
dofile('data/lib/vip_system.lua')
Pronto, agora vamos até a pasta data/scripts/custom. Essa pasta vamos usar para adicionar o restante dos arquivos, e caso você tenha que restaurar seu repositório, ficara mais fácil transferir os arquivo.
Primeiramente vamos ao item que será usado para adicionar o vip ao player. Dentro da pasta custom crie um arquivo chamado vip_scroll.lua e adicione o script dentro.
Agora vamos criar os comandos para os player e para o administrador, crie outro arquivo chamado vip_godTalkaction.lua e adicione o script dentro.
Agora crie outro arquivo chamado vip_playerTalkaction.lua e adicione:
Agora vamos para a parte final do sistema, vá até a pasta data/scripts/creaturescripts/others e abra o arquivo login.lua, procure pela linha function playerLogin.onLogin(player) e logo abaixo adicione.
player:loadVipData()
player:updateVipTime()
player:addAddonMount()
Pronto, o sistema esta finalizado.
Agora algumas funções extras.
Adicionar 20% de EXP para o player VIP.
Vá até a pasta data/events/scripts e abra o arquivo player.lua, procure pela linha function Player:onGainExperience(source, exp, rawExp), vá até o final dessa function e ANTES do return exp adicione:
if self:isVip() then
exp = exp * 1.2 -- 20% exp
end
Adicionar 20% de LOOT para o player VIP.
Vá até a pasta data/events/scripts e abra o arquivo monster.lua, dentro da function Monster:onDropLoot(corpse).
Procure por local item = corpse:createLootItem(monsterLoot, boolCharm) e ANTES adicione:
local vipPercentLoot = 0
if player and player:isVip() then
local percent = 20 -- 20% mais loot
if percent then
vipPercentLoot = (percent / 100)
end
end
monsterLoot[i].chance = monsterLoot[i].chance + (monsterLoot[i].chance * vipPercentLoot)
Pronto! Logo adicionarei mais eventos e sistemas que fiz a conversão.
Creditos: Printer e Numm / Otland
Olá, venho compartilhar um sistema de VIP, para dar aquele upgrade no seu servidor.
Lembrando que o sistema não é de minha autoria, porem eu adicionei algumas funções extras e converti pra atual versão RevScript.
Baseado e compatível com o OTSERVER OTBR.
Para começar vamos executar um comando MySQL na sua database.
ALTER TABLE `accounts`
ADD COLUMN `viplastday` int(10) NOT NULL DEFAULT 0 AFTER `lastday`,
ADD COLUMN `vipdays` int(11) NOT NULL DEFAULT 0 AFTER `lastday`;
Agora, vá até a pasta data/lib e crie um arquivo chamado vip_system.lua e adicione o script dentro.
Após fazer isso, abra o arquivo lib.lua e adicione na ultima linha.
dofile('data/lib/vip_system.lua')
Pronto, agora vamos até a pasta data/scripts/custom. Essa pasta vamos usar para adicionar o restante dos arquivos, e caso você tenha que restaurar seu repositório, ficara mais fácil transferir os arquivo.
Primeiramente vamos ao item que será usado para adicionar o vip ao player. Dentro da pasta custom crie um arquivo chamado vip_scroll.lua e adicione o script dentro.
Agora vamos criar os comandos para os player e para o administrador, crie outro arquivo chamado vip_godTalkaction.lua e adicione o script dentro.
Agora crie outro arquivo chamado vip_playerTalkaction.lua e adicione:
Agora vamos para a parte final do sistema, vá até a pasta data/scripts/creaturescripts/others e abra o arquivo login.lua, procure pela linha function playerLogin.onLogin(player) e logo abaixo adicione.
player:loadVipData()
player:updateVipTime()
player:addAddonMount()
Pronto, o sistema esta finalizado.
Agora algumas funções extras.
Adicionar 20% de EXP para o player VIP.
Vá até a pasta data/events/scripts e abra o arquivo player.lua, procure pela linha function Player:onGainExperience(source, exp, rawExp), vá até o final dessa function e ANTES do return exp adicione:
if self:isVip() then
exp = exp * 1.2 -- 20% exp
end
Adicionar 20% de LOOT para o player VIP.
Vá até a pasta data/events/scripts e abra o arquivo monster.lua, dentro da function Monster:onDropLoot(corpse).
Procure por local item = corpse:createLootItem(monsterLoot, boolCharm) e ANTES adicione:
local vipPercentLoot = 0
if player and player:isVip() then
local percent = 20 -- 20% mais loot
if percent then
vipPercentLoot = (percent / 100)
end
end
monsterLoot[i].chance = monsterLoot[i].chance + (monsterLoot[i].chance * vipPercentLoot)
Pronto! Logo adicionarei mais eventos e sistemas que fiz a conversão.
Creditos: Printer e Numm / Otland