• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Mam problem TFS 0.3.6

Kamikaz

New Member
Joined
Nov 4, 2010
Messages
112
Reaction score
0
Location
Poland
Kiedy właczam serwer all dobrze jest(Pokemon Server)
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:
Back
Top