Ir para conteúdo

Featured Replies

Postado

Boa noite amigos, venho me deparando com um problema bem chatinho sobre a VIP system de meu servidor, já tentei mesclar vários scripts que encontrei aqui no TibiaKing, porém não obtive sucesso com nenhum deles, o problema é mais ou menos assim:

Eu só consigo passar para a área VIP após usar o item que me dá 1 ou 15 dias de VIP, até ai tudo certo, porém na teoria quando algum player fosse VIP, ele ganharia 20% a mais de XP, mas está dando 20% a mais para todos, até pra quem não é VIP, caso queiram saber qual script eu uso para a VIP ou para a porcentagem de xp bônus podem me pedir que eu mando.

 

Outro problema que venho enfrentando relacionado a VIP system é no site, mesmo após usar o item e já ser VIP, continua informando que não é, segue a imagem abaixo:

 

image.png.c7682463c393f5a69470316c44e2ace6.png

 

De qualquer forma já agradeço a atenção de todos!

Postado
  • Autor
51 minutos atrás, daviscript disse:

Poste seu sistema de VIP, de Exp para VIP e a página do site para verificarmos.

VIP do site: 
 

Spoiler
/*Vip Status*/
            if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++;  
            $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Vip Status:</TD><TD>';  
            $main_content .= ($account->getPlayerVip_Time()) ? '<b><font color="green">VIP</font></b>' : '<b><font color="red">NOT VIP</font></b>';  

 

Adicionar dias de VIP:
 

Spoiler
function onAdvance(cid, oldlevel, newlevel)
 
days = 2
daysvalue = days*3600*24
storageplayer = getPlayerStorageValue(player,13540)
timenow = os.time()
if storageplayer == -1 or storageplayer == 0 then
time = timenow+daysvalue
else
time = storageplayer+daysvalue
end
 
if getPlayerLevel(cid) == 180 and getPlayerStorageValue(cid,9090) == -1 then
setPlayerStorageValue(cid,13540,time)
setPlayerStorageValue(cid,9090,1)
doPlayerSendTextMessage(cid,22, "Voc� recebeu dois dias de Vip.")
end
return TRUE
end

 

Bônus de XP para vips:

 

Spoiler
function onLogin(cid)
 
    local rate = 1.2 -- 20% 1.5 = 50% 2.0 = 100%
    local config = {
    welvip = "Voce tem "..((rate - 1)*100).."% de exp! Aproveite as vantagens dos dias premio!",
    not_vip = "Ola jogador Aproveite as vantagens de ter dias premios na sua conta, voce ganhara 50% mais de xp e 5% de catch, tera acesso a cidades premio, la encontra-se ilhas dos mais fortes pokemons, varias quests e muito mais...",
    s = 33339,
    }
   
    if getPlayerPremiumDays(cid) >= 1 then
    doPlayerSetExperienceRate(cid, rate)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.welvip)
    else
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_vip)
    end
    return TRUE
    end

 

Tem uma parte do config.php que diz o seguinte:
 

Spoiler
$config['site']['show_vip_status'] = 1;// show vip status, 1 = yes, 0 = no
$config['site']['show_vip_storage'] = 88888;// the storage of vip

 

Não sei se isso muda algo...

Editado por yuriowns (veja o histórico de edições)

Postado
10 horas atrás, yuriowns disse:

$config['site']['show_vip_storage'] = 88888;// the storage of vip

storage que mostra no site = 88888

 

10 horas atrás, yuriowns disse:

getPlayerStorageValue(player,13540)

storage que teu item adiciona = 13540

 

 

10 horas atrás, yuriowns disse:

getPlayerPremiumDays(cid

isso é uma função da source/DB que pega a coluna "premdays
 

 

10 horas atrás, yuriowns disse:

($account->getPlayerVip_Time())

isso é outra coluna da DB chamada "vip_time"


mano, pra te ajudar nisso teria que colocar tudo ser apenas uma coisa só kkkkkkkkk, como vc usa item, provavelmente vc não usa o premium days da source (esse eh o sistema que o global usa), e nem o viptime que aparece no site

troque isso:

10 horas atrás, yuriowns disse:

$main_content .= ($account->getPlayerVip_Time()) ? '<b><font color="green">VIP</font></b>' : '<b><font color="red">NOT VIP</font>

 por isso:

$main_content .= ($player->getStorage(13450) > 0) ? '<font color="#00CD00" style="text-shadow: 1px 1px #014b01;"><b>VIP Account</b></font>' : '<font color="#FF0000" style="text-shadow: 1px 1px #580208;"><b>Not Vip</b></font>';



troque isso: 

10 horas atrás, yuriowns disse:

getPlayerPremiumDays(cid)

 por isso:

getPlayerStorageValue(cid, 13450)


ja vai funcionar no site e no ot, porém usar varios arquivos que contenham dentro "function onLogin()" eu não recomendo, principalmente esse de alterar a rate
imagina que vc tem 5 arquivos que alteram a rate do player, todos vão atualizar quando o player logar, porem todos vão pegar a rate fixa "1.2" por exemplo, o mais facil era colocar essa rate pra atualizar diretamente no arquivo login.lua, qualquer coisa chama no PV que te dou umas ajudas mano.

Postado
  • Autor
4 horas atrás, FeeTads disse:

storage que mostra no site = 88888

 

storage que teu item adiciona = 13540

 

 

isso é uma função da source/DB que pega a coluna "premdays
 

 

isso é outra coluna da DB chamada "vip_time"


mano, pra te ajudar nisso teria que colocar tudo ser apenas uma coisa só kkkkkkkkk, como vc usa item, provavelmente vc não usa o premium days da source (esse eh o sistema que o global usa), e nem o viptime que aparece no site

troque isso:

 por isso:


$main_content .= ($player->getStorage(13450) > 0) ? '<font color="#00CD00" style="text-shadow: 1px 1px #014b01;"><b>VIP Account</b></font>' : '<font color="#FF0000" style="text-shadow: 1px 1px #580208;"><b>Not Vip</b></font>';



troque isso: 

 por isso:


getPlayerStorageValue(cid, 13450)


ja vai funcionar no site e no ot, porém usar varios arquivos que contenham dentro "function onLogin()" eu não recomendo, principalmente esse de alterar a rate
imagina que vc tem 5 arquivos que alteram a rate do player, todos vão atualizar quando o player logar, porem todos vão pegar a rate fixa "1.2" por exemplo, o mais facil era colocar essa rate pra atualizar diretamente no arquivo login.lua, qualquer coisa chama no PV que te dou umas ajudas mano.

na verdade o item que utilizo para dar as vips é este:

obs: ainda não está dando certo :(
 

Spoiler
function onUse(cid, item, fromPosition, itemEx, toPosition)
 
local config={
removeOnUse = "yes" -- remover quando usar ("yes" or "no")
}
 
local days = 1 -- coloque os dias que ser�o a VIP!
local daysvalue = days * 24 * 60 * 60
local storageplayer = getPlayerStorageValue(cid, 13450)
local timenow = os.time()
 
if getPlayerStorageValue(cid, 13450) - os.time() <= 0 then
time = timenow + daysvalue
else
time = storageplayer + daysvalue
end
 
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dia(s) de VIP no seu character.")
setPlayerStorageValue(cid, 13500, time)
local quantity = math.floor((getPlayerStorageValue(cid, 13450) - timenow)/(24 * 60 * 60))
doSendMagicEffect(getPlayerPosition(cid), math.random(28,30))
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Dia(s) de VIP restantes: ".. quantity .." dia(s).")
if (config.removeOnUse == "yes") then
doRemoveItem(item.uid, 1)
end
 
return TRUE
end

 

Peço desculpas pelo erro.

Editado por yuriowns (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo