Contando Tempo Online com procedures
Vou ensinar como contar tempo online de forma EXATA para poderem dar valores em gold por tempo online.
É relevante ressaltar que este procedimento ELIMINA a necessidade de JOB para a contagem de tempo on.
O tempo online será atualizado SEMPRE que o player DESLOGAR.
Inicialmente, vamos criar algumas colunas na tabela MEMB_STAT, onde ficarão armazenados alguns dados.
Código:
USE [MUOnline]
GO
ALTER TABLE MEMB_STAT
ADD [ConnectStartTime] [varchar](50) NOT NULL DEFAULT (getdate())
GO
ALTER TABLE MEMB_STAT
ADD [ConnectEndTime] [varchar](50) NOT NULL DEFAULT (getdate())
GO
ALTER TABLE MEMB_STAT
ADD [TimeON] [int] NOT NULL DEFAULT 0
GO
Feito isto, vamos modificar a Stored Procedure WZ_CONNECT_MEMB, para "salvar" o horário em que o usuário efetua o login. Faremos este salvamento em formato TIMESTAMP.
Código:
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'WZ_CONNECT_MEMB')
DROP PROCEDURE [dbo].[WZ_CONNECT_MEMB]
GO
CREATE PROCEDURE [dbo].[WZ_CONNECT_MEMB]
@memb___id VARCHAR(10),
@ServerName VARCHAR(20),
@IP VARCHAR(15)
AS
BEGIN
SET NOCOUNT ON
DECLARE @find_id VARCHAR(10);
DECLARE @ConnectStat TINYINT;
SET @find_id = 'NOT';
SET @ConnectStat = 1;
SELECT @find_id = S.memb___id FROM MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id WHERE I.memb___id = @memb___id
IF(@find_id = 'NOT')
BEGIN
INSERT INTO MEMB_STAT (memb___id,ConnectStat,ServerName,IP,ConnectTM) VALUES(@memb___id, @ConnectStat, @ServerName, @IP, getdate());
--=============================================================--
-- ATUALIZANDO HORÁRIO DE LOGIN NA MEMB_STAT APÓS INSERT DE DADOS --
--=============================================================--
UPDATE MEMB_STAT SET ConnectStartTime = DATEDIFF(s, '19700101', GETDATE()) WHERE memb___id = @memb___id;
END
ELSE
UPDATE MEMB_STAT SET ConnectStat = @ConnectStat, ServerName = @ServerName,IP = @IP, ConnectTM = getdate() WHERE memb___id = @memb___id
--=========================================--
-- ATUALIZANDO HORÁRIO DE LOGIN NA MEMB_STAT --
--=========================================--
UPDATE MEMB_STAT SET ConnectStartTime = DATEDIFF(s, '19700101', GETDATE()) WHERE memb___id = @memb___id;
END
Feito isto, modificamos a procedure WZ_DISCONNECT_MEMB para armazenar o horário de disconnect em formato timestamp, selecionar o horário de connect, e realizar a operação:
Tempo on = horário de disconnect - horário de connect.
E salvar o tempo online exato no formado: horas: minutos : segundos.
Código:
IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'WZ_DISCONNECT_MEMB')
DROP PROCEDURE [DBO].[WZ_DISCONNECT_MEMB]
GO
CREATE PROCEDURE [DBO].[WZ_DISCONNECT_MEMB]
@memb___id VARCHAR(10)
AS
BEGIN
SET NOCOUNT ON
DECLARE @FIND_ID VARCHAR(10);
DECLARE @CONNECTSTAT TINYINT;
DECLARE @LOGINTIME INT;
DECLARE @LOGOUTTIME INT;
DECLARE @TIMEON INT;
SET @CONNECTSTAT = 0
SET @FIND_ID = 'NOT'
SELECT @FIND_ID = S.memb___id FROM MEMB_STAT S INNER JOIN MEMB_INFO I ON S.memb___id = I.memb___id WHERE I.memb___id = @memb___id;
IF( @FIND_ID <> 'NOT' )
BEGIN
UPDATE MEMB_STAT SET CONNECTSTAT = @CONNECTSTAT, DISCONNECTTM = GETDATE() WHERE memb___id = @memb___id;
--======================================================--
-- ATUALIZANDO HORÁRIO DE LOGGOUT NA MEMB_STAT --
--======================================================--
UPDATE MEMB_STAT SET ConnectEndTime = DATEDIFF(s, '19700101', GETDATE()) WHERE memb___id = @memb___id;
--==============================================================--
-- SELECIONANDO HORÁRIO DE LOGIN E DE LOGGOUT NA MEMB_STAT --
--==============================================================--
SET @LOGINTIME = (SELECT DATEDIFF(s, GETDATE(), DATEADD(s, CAST(MEMB_STAT.ConnectStartTime as int), '19700101')) FROM MEMB_STAT WHERE memb___id = @memb___id);
SET @LOGOUTTIME = (SELECT DATEDIFF(s, GETDATE(), DATEADD(s, CAST(MEMB_STAT.ConnectEndTime as int), '19700101')) FROM MEMB_STAT WHERE memb___id = @memb___id);
--==============================--
-- EXECUTANDO OPERAÇÃO --
--==============================--
SET @TIMEON = @LOGOUTTIME - @LOGINTIME;
--==============================================--
-- ATUALIZANDO TEMPO ONLINE NA MEMB_STAT --
--==============================================--
UPDATE MEMB_STAT SET TimeON = TimeON + @TIMEON WHERE memb___id = @memb___id;
END
END
Pronto, a contagem de tempo online será automática, em formato timestamp.
Para exibir em seu site o tempo online exato, faça o seguinte:
Código PHP:
<?php
$findSTAT = mssql_query("SELECT * FROM MEMB_STAT WHERE memb___id='".$userName."'");
$fetchSTAT = mssql_fetch_object($findSTAT);
$seconds = $fetchSTAT->TimeON;
$hours = floor($seconds / 3600);
$seconds -= $hours * 3600;
$minutes = floor($seconds / 60);
$seconds -= $minutes * 60;
$timeON = (''.$hours.'h'.$minutes.'min'.$seconds.'sec');
echo $timeON;
?>
A exibição será assim (exemplo):
Tempo ON: 18h54min55sec
Lembrando pela ÚLTIMA VEZ que tudo é salvo em formato TIMESTAMP. Então, para usar na premiação em golds é necessário saber manipular os dados em timestamp.
__________________________________________________ ______________________________________________
UPDATE 1.
VOCÊ UTILIZA MUSITE? ENTÃO DÊ UMA OLHADA [Only registered and activated users can see links. Click Here To Register...].
__________________________________________________ ______________________________________________
Se você não utiliza MuSite ou utiliza e não se interessou pelo conteúdo do tópico acima, como forma de premiar, estou disponibilizando um sistema de trocas que eu fiz a muito tempo atrás para utilizar em meu servidor (que hoje não existe mais).
Os scripts são antigos (faz tempo pra caralho que eu fiz, não programo mais assim), portanto pode haver falhas (mas nunca tive problemas com ele).
[Only registered and activated users can see links. Click Here To Register...]
Prévia do sistema pela settings:
Código PHP:
<?php
/*
@ CONFIGURACÕES DE SESSÃO
*/
define('SESSION_NAME','q8453k44Dh455S4Qj453QzSA'); # HASH DE NOME DA SESSÃO
define('SESSION_PROTECT','RT5434YKr4s42ad5f64S'); # HASH DE PROTEÇÃO DA SESSÃO[
/*
@ CONFIGURAÇÕES GERAIS
*/
define('TITLE_SITE','MU NewAge - Sistema de Trocas Online - GXWeb - TOOL FOR EXCHANGE - V1'); # TÍTULO DA PÁGINA NO NAVEGADOR
define('SERVER_NAME','Mu NewAge Acturus'); # NOME DO SERVIDOR A SER EXIBIDO NO FOOTER
define('SERVER_URL','www.munewage.com.br/acturus'); # URL DA WEB DO SERVIDOR
/*
@ CONFIGURAÇÃO DE LINGUAGEM
*/
define('LANG_FILE','pt-br'); # DEFINE A LINGUAGEM DE TEXTOS DA WEB
/*
@ CONFIGURAÇÕES DE CONEXÃO
*/
define('MSSQL_HOST','127.0.0.1,8433'); # HOST DA CONEXÃO MSSQL => IP,PORT
define('MSSQL_DB','MuOnline'); # DATABASE A SER CONECTADA
define('MSSQL_USER','sa'); # USUÁRIO DO MSSQL
define('MSSQL_PASS','123'); # SENHA DO MSSQL
/*
@ CONFIGURAÇÃO DE COLUNAS
*/
$TABLES_CONFIGS['WEBVIPS'] = array("database" => "MuOnline", //webSite || MuOnline
"table" => "MEMB_INFO", //webVips || MEMB_INFO
"columnUsername" => "memb___id", //username || memb___id
"columnType" => "type", //type || vip
"columnDateBegin" => "datebegin",
"columnDateEnd" => "dateend",
"columnDateEndInteger" => "dateendinteger");
$TABLES_CONFIGS['WEBCASH'] = array("database" => "MuOnline", //webSite || MuOnline
"table" => "webCash", //webCash || MEMB_INFO
"columnUsername" => "username", //username || memb___id
"columnAmount" => "amount", //amount || gold
"columnAmount2" => "amount2", //amount2 || gold2
"columnPoints" => "points"); //points
/*
@ CONFIGURAÇÃO DE TEMPLATE
*/
define('TEMPLATE_DIR','refresh'); # DEFINE A PASTA DE TEMPLATE A SER USADA (public/templates/TEMPLATE_DIR)
/*
@ CONFIGURAÇÃO DE MD5
*/
define('USE_MD5',true); # SE SEU SERVIDOR USA MD5 => TRUE | SE SEU SERVIDOR NAO USA MD5 => FALSE.
/*
@ CONFIGURAÇÕES DE MOEDAS
*/
define('CASH_NAME', 'Nashs'); # NOME DA PRIMEIRA MOEDA
define('CASH_NAME2', 'Cashs'); # NOME DA SEGUNDA MOEDA
define('POINTS_NAME', 'Points'); # NOME DA "POINTS" A SER EXIBIDO
$VIP['ACTIVES'] = array("VIP_1" => true, "VIP_2" => true, "VIP_3" => true, "VIP_4" => true, "VIP_5" => true); # ATIVA OU DESATIVA O VIP
$MENU['ACTIVES'] = array("TIME_ON" => array("NASH" => true, "CASH" => true, "VIP"=> true), "RESETS" => false); # ATIVA / DESATIVA MENUS DE TROCA.
/*
@ CONFIGURAÇÕES DE NOME DE VIP
*/
define('VIP_0_NAME','FREE'); # NOME DO VIP PARA VALOR 0 NA COLUNA DE ARMAZENAMENTO DE VIPS
define('VIP_1_NAME','Vip NA'); # NOME DO VIP PARA VALOR 1 NA COLUNA DE ARMAZENAMENTO DE VIPS
define('VIP_2_NAME','Vip GOLD'); # NOME DO VIP PARA VALOR 2 NA COLUNA DE ARMAZENAMENTO DE VIPS
define('VIP_3_NAME','Vip MASTER'); # NOME DO VIP PARA VALOR 3 NA COLUNA DE ARMAZENAMENTO DE VIPS
define('VIP_4_NAME','Vip PLATINA'); # NOME DO VIP PARA VALOR 4 NA COLUNA DE ARMAZENAMENTO DE VIPS
define('VIP_5_NAME','Vip DIAMANTE'); # NOME DO VIP PARA VALOR 5 NA COLUNA DE ARMAZENAMENTO DE VIPS
/*
@ CONFIGURAÇÕES DE PREÇOS
*/
#################################################################
## AS CONFIGURAÇÕES ABAIXO SÃO PARA AS DEFINIÇÕES DE "PREÇOS" ##
## NAS TROCAS EFETUADAS. PRESTE MUITA ATENÇÃO NA CONFIGURAÇÃO ##
#################################################################
# CONFIGURAÇÕES DE PREÇOS NAS OPÇÕES DE TROCA POR HORAS
define('PACOTE_HORAS_POR_MOEDA_1_1',120); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 1 DA MOEDA 1
define('PACOTE_HORAS_POR_MOEDA_1_2',240); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 2 DA MOEDA 1
define('PACOTE_HORAS_POR_MOEDA_1_3',360); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 3 DA MOEDA 1
define('PACOTE_HORAS_POR_MOEDA_1_4',480); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 4 DA MOEDA 1
define('PACOTE_HORAS_POR_MOEDA_1_5',600); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 5 DA MOEDA 1
define('PACOTE_HORAS_POR_MOEDA_1_6',720); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 6 DA MOEDA 1
define('PACOTE_HORAS_POR_MOEDA_1_7',840); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 7 DA MOEDA 1
define('CASH_HORAS_PACOTE_1_1',10); # DEFINE A QUANTIDADE DE MOEDA 1 A SER DADA PELO PACOTE 1
define('CASH_HORAS_PACOTE_1_2',20); # DEFINE A QUANTIDADE DE MOEDA 1 A SER DADA PELO PACOTE 2
define('CASH_HORAS_PACOTE_1_3',30); # DEFINE A QUANTIDADE DE MOEDA 1 A SER DADA PELO PACOTE 3
define('CASH_HORAS_PACOTE_1_4',40); # DEFINE A QUANTIDADE DE MOEDA 1 A SER DADA PELO PACOTE 4
define('CASH_HORAS_PACOTE_1_5',50); # DEFINE A QUANTIDADE DE MOEDA 1 A SER DADA PELO PACOTE 5
define('CASH_HORAS_PACOTE_1_6',60); # DEFINE A QUANTIDADE DE MOEDA 1 A SER DADA PELO PACOTE 6
define('CASH_HORAS_PACOTE_1_7',70); # DEFINE A QUANTIDADE DE MOEDA 1 A SER DADA PELO PACOTE 7
define('PACOTE_HORAS_POR_MOEDA_2_1',20); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 1 DA MOEDA 2
define('PACOTE_HORAS_POR_MOEDA_2_2',30); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 2 DA MOEDA 2
define('PACOTE_HORAS_POR_MOEDA_2_3',40); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 3 DA MOEDA 2
define('PACOTE_HORAS_POR_MOEDA_2_4',50); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 4 DA MOEDA 2
define('PACOTE_HORAS_POR_MOEDA_2_5',60); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 5 DA MOEDA 2
define('PACOTE_HORAS_POR_MOEDA_2_6',70); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 6 DA MOEDA 2
define('PACOTE_HORAS_POR_MOEDA_2_7',80); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 7 DA MOEDA 2
define('CASH_HORAS_PACOTE_2_1',20); # DEFINE A QUANTIDADE DE MOEDA 2 A SER DADA PELO PACOTE 1
define('CASH_HORAS_PACOTE_2_2',35); # DEFINE A QUANTIDADE DE MOEDA 2 A SER DADA PELO PACOTE 2
define('CASH_HORAS_PACOTE_2_3',50); # DEFINE A QUANTIDADE DE MOEDA 2 A SER DADA PELO PACOTE 3
define('CASH_HORAS_PACOTE_2_4',70); # DEFINE A QUANTIDADE DE MOEDA 2 A SER DADA PELO PACOTE 4
define('CASH_HORAS_PACOTE_2_5',80); # DEFINE A QUANTIDADE DE MOEDA 2 A SER DADA PELO PACOTE 5
define('CASH_HORAS_PACOTE_2_6',90); # DEFINE A QUANTIDADE DE MOEDA 2 A SER DADA PELO PACOTE 6
define('CASH_HORAS_PACOTE_2_7',100); # DEFINE A QUANTIDADE DE MOEDA 2 A SER DADA PELO PACOTE 7
define('PACOTE_HORAS_POR_VIP_1_1',360); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 1 DO VIP 1
define('PACOTE_HORAS_POR_VIP_1_2',530); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 2 DO VIP 1
define('PACOTE_HORAS_POR_VIP_1_3',700); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 3 DO VIP 1
define('PACOTE_HORAS_POR_VIP_1_4',870); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 4 DO VIP 1
define('PACOTE_HORAS_POR_VIP_1_5',1040); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 5 DO VIP 1
define('PACOTE_HORAS_POR_VIP_1_6',1210); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 6 DO VIP 1
define('PACOTE_HORAS_POR_VIP_1_7',1380); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 7 DO VIP 1
define('DAYS_VIP_1_FOR_PACOTE_1',30); # DEFINE A QUANTIDADE DE DIAS DE VIP 1 A SER DADA NO PACOTE 1
define('DAYS_VIP_1_FOR_PACOTE_2',45); # DEFINE A QUANTIDADE DE DIAS DE VIP 1 A SER DADA NO PACOTE 2
define('DAYS_VIP_1_FOR_PACOTE_3',60); # DEFINE A QUANTIDADE DE DIAS DE VIP 1 A SER DADA NO PACOTE 3
define('DAYS_VIP_1_FOR_PACOTE_4',75); # DEFINE A QUANTIDADE DE DIAS DE VIP 1 A SER DADA NO PACOTE 4
define('DAYS_VIP_1_FOR_PACOTE_5',90); # DEFINE A QUANTIDADE DE DIAS DE VIP 1 A SER DADA NO PACOTE 5
define('DAYS_VIP_1_FOR_PACOTE_6',105); # DEFINE A QUANTIDADE DE DIAS DE VIP 1 A SER DADA NO PACOTE 6
define('DAYS_VIP_1_FOR_PACOTE_7',120); # DEFINE A QUANTIDADE DE DIAS DE VIP 1 A SER DADA NO PACOTE 7
###########################################################
###### DAQUI PARA BAIXO NÃO É UTILIZADO NO NEWAGE #########
###########################################################
define('PACOTE_HORAS_POR_VIP_2_1',10); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 1 DO VIP 2
define('PACOTE_HORAS_POR_VIP_2_2',20); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 2 DO VIP 2
define('PACOTE_HORAS_POR_VIP_2_3',30); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 3 DO VIP 2
define('PACOTE_HORAS_POR_VIP_2_4',40); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 4 DO VIP 2
define('PACOTE_HORAS_POR_VIP_2_5',50); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 5 DO VIP 2
define('PACOTE_HORAS_POR_VIP_2_6',60); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 6 DO VIP 2
define('PACOTE_HORAS_POR_VIP_2_7',70); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 7 DO VIP 2
define('DAYS_VIP_2_FOR_PACOTE_1',30); # DEFINE A QUANTIDADE DE DIAS DE VIP 2 A SER DADA NO PACOTE 1
define('DAYS_VIP_2_FOR_PACOTE_2',45); # DEFINE A QUANTIDADE DE DIAS DE VIP 2 A SER DADA NO PACOTE 2
define('DAYS_VIP_2_FOR_PACOTE_3',60); # DEFINE A QUANTIDADE DE DIAS DE VIP 2 A SER DADA NO PACOTE 3
define('DAYS_VIP_2_FOR_PACOTE_4',75); # DEFINE A QUANTIDADE DE DIAS DE VIP 2 A SER DADA NO PACOTE 4
define('DAYS_VIP_2_FOR_PACOTE_5',90); # DEFINE A QUANTIDADE DE DIAS DE VIP 2 A SER DADA NO PACOTE 5
define('DAYS_VIP_2_FOR_PACOTE_6',105); # DEFINE A QUANTIDADE DE DIAS DE VIP 2 A SER DADA NO PACOTE 6
define('DAYS_VIP_2_FOR_PACOTE_7',120); # DEFINE A QUANTIDADE DE DIAS DE VIP 2 A SER DADA NO PACOTE 7
define('PACOTE_HORAS_POR_VIP_3_1',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 1 DO VIP 3
define('PACOTE_HORAS_POR_VIP_3_2',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 2 DO VIP 3
define('PACOTE_HORAS_POR_VIP_3_3',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 3 DO VIP 3
define('PACOTE_HORAS_POR_VIP_3_4',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 4 DO VIP 3
define('PACOTE_HORAS_POR_VIP_3_5',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 5 DO VIP 3
define('PACOTE_HORAS_POR_VIP_3_6',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 6 DO VIP 3
define('PACOTE_HORAS_POR_VIP_3_7',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 7 DO VIP 3
define('DAYS_VIP_3_FOR_PACOTE_1',30); # DEFINE A QUANTIDADE DE DIAS DE VIP 3 A SER DADA NO PACOTE 1
define('DAYS_VIP_3_FOR_PACOTE_2',45); # DEFINE A QUANTIDADE DE DIAS DE VIP 3 A SER DADA NO PACOTE 2
define('DAYS_VIP_3_FOR_PACOTE_3',60); # DEFINE A QUANTIDADE DE DIAS DE VIP 3 A SER DADA NO PACOTE 3
define('DAYS_VIP_3_FOR_PACOTE_4',75); # DEFINE A QUANTIDADE DE DIAS DE VIP 3 A SER DADA NO PACOTE 4
define('DAYS_VIP_3_FOR_PACOTE_5',90); # DEFINE A QUANTIDADE DE DIAS DE VIP 3 A SER DADA NO PACOTE 5
define('DAYS_VIP_3_FOR_PACOTE_6',105); # DEFINE A QUANTIDADE DE DIAS DE VIP 3 A SER DADA NO PACOTE 6
define('DAYS_VIP_3_FOR_PACOTE_7',120); # DEFINE A QUANTIDADE DE DIAS DE VIP 3 A SER DADA NO PACOTE 7
define('PACOTE_HORAS_POR_VIP_4_1',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 1 DO VIP 4
define('PACOTE_HORAS_POR_VIP_4_2',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 2 DO VIP 4
define('PACOTE_HORAS_POR_VIP_4_3',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 3 DO VIP 4
define('PACOTE_HORAS_POR_VIP_4_4',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 4 DO VIP 4
define('PACOTE_HORAS_POR_VIP_4_5',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 5 DO VIP 4
define('PACOTE_HORAS_POR_VIP_4_6',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 6 DO VIP 4
define('PACOTE_HORAS_POR_VIP_4_7',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 7 DO VIP 4
define('DAYS_VIP_4_FOR_PACOTE_1',30); # DEFINE A QUANTIDADE DE DIAS DE VIP 4 A SER DADA NO PACOTE 1
define('DAYS_VIP_4_FOR_PACOTE_2',45); # DEFINE A QUANTIDADE DE DIAS DE VIP 4 A SER DADA NO PACOTE 2
define('DAYS_VIP_4_FOR_PACOTE_3',60); # DEFINE A QUANTIDADE DE DIAS DE VIP 4 A SER DADA NO PACOTE 3
define('DAYS_VIP_4_FOR_PACOTE_4',75); # DEFINE A QUANTIDADE DE DIAS DE VIP 4 A SER DADA NO PACOTE 4
define('DAYS_VIP_4_FOR_PACOTE_5',90); # DEFINE A QUANTIDADE DE DIAS DE VIP 4 A SER DADA NO PACOTE 5
define('DAYS_VIP_4_FOR_PACOTE_6',105); # DEFINE A QUANTIDADE DE DIAS DE VIP 4 A SER DADA NO PACOTE 6
define('DAYS_VIP_4_FOR_PACOTE_7',120); # DEFINE A QUANTIDADE DE DIAS DE VIP 4 A SER DADA NO PACOTE 7
define('PACOTE_HORAS_POR_VIP_5_1',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 1 DO VIP 5
define('PACOTE_HORAS_POR_VIP_5_2',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 2 DO VIP 5
define('PACOTE_HORAS_POR_VIP_5_3',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 3 DO VIP 5
define('PACOTE_HORAS_POR_VIP_5_4',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 4 DO VIP 5
define('PACOTE_HORAS_POR_VIP_5_5',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 5 DO VIP 5
define('PACOTE_HORAS_POR_VIP_5_6',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 6 DO VIP 5
define('PACOTE_HORAS_POR_VIP_5_7',1000); # DEFINE O PREÇO EM HORAS A SER COBRADO PELO PACOTE 7 DO VIP 5
define('DAYS_VIP_5_FOR_PACOTE_1',30); # DEFINE A QUANTIDADE DE DIAS DE VIP 5 A SER DADA NO PACOTE 1
define('DAYS_VIP_5_FOR_PACOTE_2',45); # DEFINE A QUANTIDADE DE DIAS DE VIP 5 A SER DADA NO PACOTE 2
define('DAYS_VIP_5_FOR_PACOTE_3',60); # DEFINE A QUANTIDADE DE DIAS DE VIP 5 A SER DADA NO PACOTE 3
define('DAYS_VIP_5_FOR_PACOTE_4',75); # DEFINE A QUANTIDADE DE DIAS DE VIP 5 A SER DADA NO PACOTE 4
define('DAYS_VIP_5_FOR_PACOTE_5',90); # DEFINE A QUANTIDADE DE DIAS DE VIP 5 A SER DADA NO PACOTE 5
define('DAYS_VIP_5_FOR_PACOTE_6',105); # DEFINE A QUANTIDADE DE DIAS DE VIP 5 A SER DADA NO PACOTE 6
define('DAYS_VIP_5_FOR_PACOTE_7',120); # DEFINE A QUANTIDADE DE DIAS DE VIP 5 A SER DADA NO PACOTE 7
?>
[]'s
Créditos do tutorial, modificação da procedure e programação do sistema de trocas: EU.