Kiedy właczam serwer all dobrze jest(Pokemon Server)
ale kiedy chcem wbic na postac wyskakuje mi taki błąd !!
Zamieszczam wpomniane wyzej pliki:
1.viplogin.lua
2.vipAccount.lua
BARDZO PROSZE O SZYBKA POMOC !!
ale kiedy chcem wbic na postac wyskakuje mi taki błąd !!
Code:
[08/10/2011 11:55:00] [ADM]Kamikaz has logged in.
[08/10/2011 11:55:00] mysql_real_query(): SELECT `viptime` FROM `accounts` WHERE `id` = 1; - MYSQL ERROR: Unknown column 'viptime' in 'field list' (1054)
[08/10/2011 11:55:00] [Vip System] Account not found!
[08/10/2011 11:55:00] [Error - CreatureScript Interface]
[08/10/2011 11:55:00] data/creaturescripts/scripts/viplogin.lua:onLogin
[08/10/2011 11:55:01] Description:
[08/10/2011 11:55:01] data/lib/vipAccount.lua:69: attempt to perform arithmetic on local 'vipTime' (a boolean value)
[08/10/2011 11:55:01] stack traceback:
[08/10/2011 11:55:01] data/lib/vipAccount.lua:69: in function 'getVipDaysByAccount'
[08/10/2011 11:55:01] data/lib/vipAccount.lua:74: in function <data/lib/vipAccount.lua:73>
[08/10/2011 11:55:01] (tail call): ?
[08/10/2011 11:55:01] data/creaturescripts/scripts/viplogin.lua:2: in function <data/creaturescripts/scripts/viplogin.lua:1>
[08/10/2011 11:55:01] [ADM]Kamikaz has logged out.
Zamieszczam wpomniane wyzej pliki:
1.viplogin.lua
LUA:
function onLogin(cid)
local vip = isVip(cid)
if getVipTime(cid) > 0 and vip == FALSE then
local townid = 1
doPlayerSetTown(cid, townid)
local templePos = getTownTemplePosition(getPlayerTown(cid))
doTeleportThing(cid, templePos, false)
setVipTime(cid, 0)
doTeleportPlayers(cid, templePos)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua Vip acabou!")
elseif vip == TRUE then
local duration = getVipDate(cid)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Vocę possui "..getVipDays(cid).." dia(s) de vip."..(duration and (" Ela irá durar até "..duration..".") or ""))
end
return TRUE
end
2.vipAccount.lua
LUA:
--[[
Name: Vip System by Account
Version: 1.0
Author: Kydrai
Forum: [url=http://www.xtibia.com/forum/topic/136543-vip-system-by-account-v10/]Vip System By Account V1.0 - XTibia - A sua comunidade de Tibia e OTserv[/url]
[Functions]
installVip()
doTeleportPlayersByAccount(acc, topos)
getVipTimeByAccount(acc)
setVipTimeByAccount(acc, time)
getVipDaysByAccount(acc)
isVipAccount(acc)
addVipDaysByAccount(acc, days)
doRemoveVipDaysByAccount(acc, days)
getVipDateByAccount(acc)
doTeleportPlayers(cid, topos)
getVipTime(cid)
setVipTime(cid, time)
getVipDays(cid)
isVip(cid)
addVipDays(cid, days)
doRemoveVipDays(cid, days)
getVipDate(cid)
]]--
-- Install
function installVip()
if db.executeQuery("ALTER TABLE `accounts` ADD viptime INT(15) NOT NULL DEFAULT 0;") then
print("[Vip System] Vip System instalado com sucesso!")
return TRUE
end
print("[Vip System] Năo foi possível instalar o Vip System!")
return FALSE
end
-- By Account
function doTeleportPlayersByAccount(acc, topos)
if db.executeQuery("UPDATE `players` SET `posx` = "..topos.x..", `posy` = "..topos.y..", `posz` = "..topos.z.." WHERE `account_id` = "..acc..";") then
return TRUE
end
return FALSE
end
function getVipTimeByAccount(acc)
local vip = db.getResult("SELECT `viptime` FROM `accounts` WHERE `id` = "..acc..";")
if vip:getID() == -1 then
print("[Vip System] Account not found!")
return FALSE
end
return vip:getDataInt("viptime")
end
function setVipTimeByAccount(acc, time)
if db.executeQuery("UPDATE `accounts` SET `viptime` = "..time.." WHERE `id` = "..acc..";") then
return TRUE
end
return FALSE
end
function getVipDaysByAccount(acc)
local vipTime = getVipTimeByAccount(acc)
local timeNow = os.time()
local days = math.ceil((vipTime - timeNow)/(24 * 60 * 60))
return days <= 0 and 0 or days
end
function isVipAccount(acc)
return getVipDaysByAccount(acc) > FALSE and TRUE or FALSE
end
function addVipDaysByAccount(acc, days)
if days > 0 then
local daysValue = days * 24 * 60 * 60
local vipTime = getVipTimeByAccount(acc)
local timeNow = os.time()
local time = getVipDaysByAccount(acc) == 0 and (timeNow + daysValue) or (vipTime + daysValue)
setVipTimeByAccount(acc, time)
return TRUE
end
return FALSE
end
function doRemoveVipDaysByAccount(acc, days)
if days > 0 then
local daysValue = days * 24 * 60 * 60
local vipTime = getVipTimeByAccount(acc)
local time = vipTime - daysValue
setVipTimeByAccount(acc, (time <= 0 and 1 or time))
return TRUE
end
return FALSE
end
function getVipDateByAccount(acc)
if isVipAccount(acc) then
local vipTime = getVipTimeByAccount(acc)
return os.date("%d/%m/%y %X", vipTime)
end
return FALSE
end
-- By Player
function doTeleportPlayers(cid, topos)
doTeleportPlayersByAccount(getPlayerAccountId(cid), topos)
end
function getVipTime(cid)
return getVipTimeByAccount(getPlayerAccountId(cid))
end
function setVipTime(cid, time)
return setVipTimeByAccount(getPlayerAccountId(cid), time)
end
function getVipDays(cid)
return getVipDaysByAccount(getPlayerAccountId(cid))
end
function isVip(cid)
return isVipAccount(getPlayerAccountId(cid))
end
function addVipDays(cid, days)
return addVipDaysByAccount(getPlayerAccountId(cid), days)
end
function doRemoveVipDays(cid, days)
return doRemoveVipDaysByAccount(getPlayerAccountId(cid), days)
end
function getVipDate(cid)
return getVipDateByAccount(getPlayerAccountId(cid))
end
BARDZO PROSZE O SZYBKA POMOC !!
Last edited by a moderator: