Ir para conteúdo

Bug Sistema De Vip Yursot 8.57


mihaf

Posts Recomendados

Fala galera,

eu estou com um probleminha aqui, em um VIP System que estou criando (na verdade, adaptando),

Eu utilizei como BASE este tutorial: Perfect Vip System

 

Bem, vamos la,

é o seguinte, eu segui o tutorial, más o script deu alguns erros, então fui adaptando até que deixei ele "QUASE 100% FUNCIONAL".

Como assim ?

Primeiro que o Script, checava o Vocation dentro do addvip.lua, eu fiz direto pelo talkactions.xml más até ai tudo bem,

adaptei também mais 2 novos comandos, que são eles:

/remvip - Remove TODOS os dias de VIP de um determinado player.

/checvip - Mostra a você, quantos dias de VIP, o player em questão possui.

 

Porém, estou tento um problema com o /addvip.

O comando é basiado nisto:

/addvip NOME, DIAS

 

Exemplo: /addvip João, 30

no caso eu adicionei 30 dias de VIP para o João, más estou tendo um erro, que é ele:

Quando eu adiciono VIP à um player pela PRIMEIRA VEZ, ou DEPOIS DE TER REMOVIDO A VIP DELE COM O /remvip, A VIP SIMPLISMENTE NÃO FUNCIONA.

Ou seja,

você acaba de criar um Character de nome "João", você nunca teve vip, digamos que vou lhe dar 30 dias de vip, eu escrevo:

/addvip João, 30

Ele dá a menssagem de que os dias foram adicionados com sucesso, tanto para o João, quando para o ADMIN que executou o comando, funciona tudo certinho, porém, quando você da /checvip João, ele fala que tem 0 VIP DAYS.

E caso eu execute o comando novamente, ai sim, desta vez funciona. Ou seja, se eu utilizar 2x o comando de adicionar, na segunda vez o João recebe os dias de VIP.

É como se fosse um BUG na variavel que armazena o tempo de VIP, como se ela tivesse que receber um valor para desbugar, e só então, valores depois do primeiro, fazem efeito.

 

Ja resolvi dar um /checvip antes de adicionar nenhuma vip no Player, e o player aparece com o numero -14784 na variavel de DIAS de VIP,

ou seja, como se todos characters criados, ja começacem com "-14784 dias de vip", fazendo com que isso, bugue o primeiro comando de /addvip, e não impota o quanto você coloque de vip, no primeiro comando, que não funciona, e o vip reseta pra zero, ai sim, depois ele funciona.

Estou utilizando isto, para Alterar e Pegar o valor da VIP:

getPlayerStorageValue(player, 14540)
setPlayerStorageValue(player, 14540, time)

 

Vou postar o script do /addvip, para vocês que conhecem melhor do assunto, possam localizar o possivel erro, que esta bugando a variavel em seu primeiro valor.

function onSay(cid, words, param)

-- explodindo parametros
local t = string.explode(param, ",")
-- final parametro

-- Você colocou os Parâmetros corretos ?
if t[1] == '' or t[2] == '' or param == '' then
--Não ? Então receba esta menssagem:
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Utilize: /addvip Nome, Dias")
return true
-- Sim ? Então execute o comando:
else
player = getPlayerByName(t[1])
if (not isPlayer(player)) then
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Vip GOLD: Player não encontrado!")
return true
else

daysvalue = tonumber(t[2])*24*60*60
storageplayer = getPlayerStorageValue(player, 14540)
timenow = os.time()
if storageplayer <= 0 then

time = timenow+daysvalue
else
time = storageplayer+daysvalue
end


doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adcionados ".. tonumber(t[2]) .." dia(s) de VIP GOLD no seu character.")
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Vip GOLD: Voce adicionou ".. tonumber(t[2]) .." dia(s) de VIP GOLD para ".. t[1])
setPlayerStorageValue(player, 14540, time)
local quantity = math.floor((getPlayerStorageValue(player,14540) - os.time())/(24*60*60))
doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Digite !vip para saber quanto tempo de VIP GOLD voce possui.")
doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dia(s) de VIP restantes.")
return true
end
end
return TRUE
end

 

E o erro não esta localizado no /checvip, nem no /remvip, porque ja retirei os 2 do servior, e testei só com o addvip, e sempre que adiciono pela primeira vez a vip para um jogador, ele buga, e só então na segunda vez, funciona.

 

Obrigado pela atenção de todos,

Esperando ancioso *.*

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...