Ir para conteúdo

Erro - Ajuda :(


fabianobn

Posts Recomendados

Fala ae Galera beleza?

 

Tipo ta dando um erro no EXE chato pakas, que não deixa o player entra com seu char.

 

Imagem do erro:

 

errobbn.png

 

Login.lua:

 

function onLogin(cid)
local loss = getConfigValue('deathLostPercent')
if(loss ~= nil) then
	for i = PLAYERLOSS_EXPERIENCE, PLAYERLOSS_ITEMS do
		doPlayerSetLossPercent(cid, i, loss)
	end
end

if vipTime(cid) >= 1 then
	if vipTime(cid) >= os.time() then
db.executeQuery("UPDATE `accounts` SET `vip_days` = ".. (vipTime(cid) - os.time()) / 86400 .." WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
	else
		db.executeQuery("UPDATE `accounts` SET `vip_time` = 0 WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
		db.executeQuery("UPDATE `accounts` SET `vip_days` = 0 WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
	end
end
if haveVipDays(cid) == FALSE then
	if isVip(cid) == TRUE then
		db.executeQuery("UPDATE `players` SET `town_id` = 1, `posx` = X, `posy` = Y, `posz` = Z WHERE `players`.`account_id` = ".. getPlayerAccountId(cid) ..";")
		db.executeQuery("UPDATE `accounts` SET `vip` = '0' WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
		local Position = getTownTemplePosition(1)
		doTeleportThing(cid, Position)
		doSendMagicEffect(Position, 10)
		doPlayerSetTown(cid, 1)
	end
end

registerCreatureEvent(cid, "Mail")
registerCreatureEvent(cid, "GuildMotd")
registerCreatureEvent(cid, "PlayerDeath")
registerCreatureEvent(cid, "#####Event")
registerCreatureEvent(cid, "MercenarySystem")
return TRUE
end

 

Vip_Fuctions.Lua:

 

function vipDays(cid)
local Query = db.getResult("SELECT `vip_days` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
local vip_days = Query:getDataInt("vip_days")
return vip_days
end

function vipDaysByName(cid)
local Query = db.getResult("SELECT `vip_days` FROM `accounts` WHERE `accounts`.`id` = ".. getAccountIdByName(cid) ..";")
local vip_days = Query:getDataInt("vip_days")
return vip_days
end

function haveVipDays(cid)
local Query = db.getResult("SELECT `vip_days` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
local vip_days = Query:getDataInt("vip_days")
return (isPlayer(cid) == TRUE and (vip_days > 0)) and TRUE or FALSE
end

function haveVipDaysByName(cid)
local Query = db.getResult("SELECT `vip_days` FROM `accounts` WHERE `accounts`.`id` = ".. getAccountIdByName(cid) ..";")
local vip_days = Query:getDataInt("vip_days")
return (isPlayer(cid) == TRUE and (vip_days > 0)) and TRUE or FALSE
end

function isVip(cid)
local Query = db.getResult("SELECT `vip` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
local vip = Query:getDataInt("vip")
return (isPlayer(cid) == TRUE and (vip == 1)) and TRUE or FALSE
end

function haveVipTime(cid)
local Query = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
local vip_time = Query:getDataInt("vip_time")
return (isPlayer(cid) == TRUE and (vip_time >= 1)) and TRUE or FALSE
end

function vipTimeByName(cid)
local Query = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `accounts`.`id` = ".. getAccountIdByName(cid) ..";")
local vip_time = Query:getDataInt("vip_time")
return vip_time
end

function vipTime(cid)
local Query = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
local vip_time = Query:getDataInt("vip_time")
return vip_time
end

 

Meu Sistema VIP:

 

Aqui!!!

 

Espero que alguem ajude :p.

 

Obrigado!!

Editado por Bian0
Link para o comentário
Compartilhar em outros sites

Tenta isso (modifique a função vipTime):

 

function vipTime(cid)
if (db.getResult("SELECT `vip_time` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";") <> 0) then
local Query = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
local vip_time = Query:getDataInt("vip_time")
return vip_time
else
return -1
end
end

Link para o comentário
Compartilhar em outros sites

lucas, em lua diferente é ~= que eu saiba...

 

e com essa modificação, há 2 ocasiões:

1 - detectar que existe a classe db, e sempre retornar -1

2 - continuar dando erro na classe db.

 

caso aconteça a primeira:

verificar se o campo 'vip_time' existe na tabela accounts

Link para o comentário
Compartilhar em outros sites

Sim existe cara :/

 

Tem todas as tabelas la de boa!

 

E tipo isso ae ocorre, quando eu abro o server os players entra de boa, depois de uns minutos começa a dar isso ae e os players so entra ate onde fica os char, eles seleciona o char e num vai pro server, volta dinovo pros char e da esse erro ae.

Editado por Bian0
Link para o comentário
Compartilhar em outros sites

Tenta com ~= então, se não der não sei como te ajudar.

 

function vipTime(cid)
if (db.getResult("SELECT `vip_time` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";") ~= 0) then
local Query = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
local vip_time = Query:getDataInt("vip_time")
return vip_time
else
return -1
end
end

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...