Bienvenido a Open Games Community

Únete ahora para acceder a todas nuestras funciones. Una vez que te registres e inicies sesión, podrás crear temas, responder a hilos existentes, valorar la reputación de otros miembros y muchísimo más. Además, es rápido y totalmente gratuito; ¿a qué esperas?

RevScript Vip Time por Storage Funcionando

jackye

Miembro
Registrado
5 Nov 2021
Mensajes
62
Puntuación de reacción
23
Puntos
163
Ubicación
Mexico
Hola a todos les traigo un post mio para que puedan utilizarlo ustedes es un sistema vip totalmente original en revScript

Este script fue testeado en un otserverbr.

Empecemos

primero que nada te vas a a player.lua y buscas estas lineas

-- Stamina Bonus
if configManager.getBoolean(configKeys.STAMINA_SYSTEM) then
useStamina(self)
local staminaMinutes = self:getStamina()
if staminaMinutes > 2340 and self:isPremium() then
exp = exp * 1.5
self:setStaminaXpBoost(150)
elseif staminaMinutes <= 840 then
exp = exp * 0.5 --TODO destroy loot of people with 840- stamina
self:setStaminaXpBoost(50)
else
self:setStaminaXpBoost(100)
end
end
Click to expand...

debajo de esta linea agregas lo siguiente:

esta es una condicion para que cuando el player sea vip pueda tener mas exp
if self:getStorageValue(3000) - os.time() > 0 then ---- el storage a dar al jugador
exp = exp * 1.5 -- exp extra que te gustaria que gane el player vip
end


Despues nos iremos a data/script/actions/vipaction.lua --- el nombre que deseen agregarle

y agregas este codigo

local vip = Action()

function vip.onUse(player, item, fromPosition, target, toPosition, isHotkey)

local days = 30 -- dias que seran adicionados

local daysvalue = days * 24 * 60 * 60

local storageplayer = player:getStorageValue(3000)

local timenow = os.time()


doPlayerRemoveItem(cid, 7634, 100)

if player:getStorageValue(3000) - os.time() <= 0 then --- storage lo puedes modificar si ya lo tienes en uso

time = timenow + daysvalue

else

time = storageplayer + daysvalue

end


player:sendTextMessage(TALKTYPE_ORANGE_1, "Fueron adicionados ".. days .." dias de VIP en su character.")

player:setStorageValue(3000, time)

local quantity = math.floor((player:getStorageValue(3000) - timenow)/(24 * 60 * 60))



player:sendTextMessage(TALKTYPE_ORANGE_1, "Usted Tiene ".. quantity .." dias de VIP restantes.") --- mensaje

item:remove(1) --- le removera el item

addEvent(function(cid)
local player = Player(cid)
if player then
player:remove()
end
end, 2000, player.uid)

return TRUE

end

vip:id(16101) --- itemq que deseas que te haga vip es por 30 dias
vip:register()
Click to expand...

Después te vas a data/script/movement y agregas otro archivo con el nombre que gustes

local vipp = MoveEvent()

function vipp.onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
if player == nil then return false end


if player:getStorageValue(3000) - os.time() <= 0 then
player:sendTextMessage(MESSAGE_INFO_DESCR, "solo player vips - Only Vip Players")
player:teleportTo(fromPosition)
else

local back = {x = 1112, y = 651, z = 7} --- posicion de la zona vip o teleport es un pisol.
player:teleportTo(back)
player:sendTextMessage(MESSAGE_INFO_DESCR, "Bienvenido Al Area Vip. - Welcome Vip Are")
end



return true
end
vipp:type("stepin")
vipp:aid(16101)
vipp:register()
Click to expand...

Despues el talktion este es para que los usuarios puedan ver su vip time

local vip = TalkAction("!vip")

function vip.onSay(player, words, param)
local left, d, h, m, s = (player:getStorageValue(3000) - os.time()), 0, 0, 0, 0
while left >= 86400 do
left = left - 86400
d = d+1
end
while left >= 3600 do
left = left - 3600
h = h + 1
end
while left >= 60 do
left = left - 60
m = m + 1
end
while left >= 1 do
left = left - 1
s = s+1
end
player:sendTextMessage(22, "VIP Player Informations:\n\nYour VIP time left:\nDays: "..d.."\nHours: "..h.."\nMinutes: "..m.."\nSeconds: "..s.."")
end

vip:separator(" ")
vip:register()



Att: God Mazatlan - Marcuz :)
 

Alex

Administrador
Dev
Registrado
1 Sep 2021
Mensajes
2.362
Puntuación de reacción
28.641
Puntos
707
¡Felicitaciones, su Tema ha sido aprobado!
Muchas gracias por tu contribución, nosotros en Open Games Community te agradecemos.
Tu contenido seguramente ayudará a muchos otros, has ganado +1 Like.
 

Jona Vega

Mordragor Chronicles
Miembro
Registrado
8 Abr 2022
Mensajes
11
Puntuación de reacción
2
Puntos
128
Ubicación
mexico
olle y no tiene para piso vip? no ayo la id esa
 

Jona Vega

Mordragor Chronicles
Miembro
Registrado
8 Abr 2022
Mensajes
11
Puntuación de reacción
2
Puntos
128
Ubicación
mexico
o puertas o piso algun action que tenga no e podido agregarlo
 

jackye

Miembro
Registrado
5 Nov 2021
Mensajes
62
Puntuación de reacción
23
Puntos
163
Ubicación
Mexico
este el id que necesitas tu lo pudes modificar aqui tienes este es el piso mira


local vipp = MoveEvent()

function vipp.onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
if player == nil then return false end


if player:getStorageValue(3000) - os.time() <= 0 then
player:sendTextMessage(MESSAGE_INFO_DESCR, "solo player vips - Only Vip Players")
player:teleportTo(fromPosition)
else

local back = {x = 1112, y = 651, z = 7} --- posicion de la zona vip o teleport es un piso.
player:teleportTo(back)
player:sendTextMessage(MESSAGE_INFO_DESCR, "Bienvenido Al Area Vip. - Welcome Vip Are")
end



return true
end
vipp:type("stepin")
vipp:aid(16101)
vipp:register()
 

Jona Vega

Mordragor Chronicles
Miembro
Registrado
8 Abr 2022
Mensajes
11
Puntuación de reacción
2
Puntos
128
Ubicación
mexico
como le puedo agregar a la base de datos que me aparesca la vip ejemplo como esta
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`;

pero aqui nose como seria pues hasme el favor de decirme
 
shape1
shape2
shape3
shape4
shape5
shape6
Arriba