• 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!

VIP System Mock (New Player WIN 3 days vip_time)

TibiaGameHost

Hello!
Joined
Feb 25, 2009
Messages
255
Reaction score
0
Location
Canadá
VIP System Mock, I would like that when the new player just log in the first time, he gets 3 days vip.
My system is the vip mock, containing table vip_time.
 
LUA:
function onLogin(cid)
	if getPlayerStorageValue(cid, 20500) == -1 then
		setPlayerStorageValue(cid, 20500, 1)
                vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,3)
		 doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You received 3 days of free vip.")	
	end
	return true
end

- - - Updated - - -

Enjoy
 
Last edited:
Sorry about that
LUA:
function onLogin(cid)
	if isPlayer(cid) and getPlayerStorageValue(cid, 20500) == -1 then
		setPlayerStorageValue(cid, 20500, 1)
                vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,3)
		 doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You received 3 days of free vip.")	
	end
	return true
end
 
Last edited:
Try now
LUA:
function onLogin(cid)
	if isPlayer(cid) and getPlayerStorageValue(cid, 20500) == -1 then
		setPlayerStorageValue(cid, 20500, 1)
                vip.addVipByAccount(getPlayerAccount(getPlayerByName(name)) ,3)
		 doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You received 3 days of free vip.")	
	end
	return true
end
 
Of course, my system work properly. lol

vip = {
name = "Vip system";
author = "Mock";
version = "1.0.0.0";
query="ALTER TABLE `accounts` ADD `vip_time` INTEGER";
query2="ALTER TABLE `accounts` ADD `vip_time` INT(15) NOT NULL"
}

function vip.setTable()
dofile('config.lua')
if sqlType == "sqlite" then
db.executeQuery(vip.query)
else
db.executeQuery(vip.query2)
end
end

function vip.getVip(cid)
assert(tonumber(cid),'Parameter must be a number')
if isPlayer(cid) == FALSE then error('Player don\'t find') end;
ae = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';")
if ae:getID() == -1 then
return 0
end

local retee = ae:getDataInt("vip_time") or 0
ae:free()
return retee
end

function vip.getVipByAcc(acc)
assert(acc,'Account is nil')
local a = db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';")
if a:getID() ~= -1 then
return a:getDataInt("vip_time") or 0, a:free()
else
error('Account don\'t find.')
end
end

function vip.setVip(cid,time)
dofile("config.lua")
assert(tonumber(cid),'Parameter must be a number')
assert(tonumber(time),'Parameter must be a number')
if isPlayer(cid) == FALSE then error('Player don\'t find') end;
db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';")
end

function vip.getVipByAccount(acc)
assert(acc,'Account is nil')
return db.getResult("SELECT `vip_time` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0
end

function vip.hasVip(cid)
assert(tonumber(cid),'Parameter must be a number')
if isPlayer(cid) == FALSE then return end;
local t = vip.getVip(cid) or 0
if os.time(day) < t then
return TRUE
else
return FALSE
end
end

function vip.hasVips(cid)
assert(tonumber(cid),'Parameter must be a number')
if isPlayer(cid) == FALSE then return end;
local t = vip.getVip(cid)
if os.time(day) < t then
return TRUE
else
return FALSE
end
end

function vip.accountHasVip(acc)
assert(acc,'Account is nil')
if os.time() < vip.getVipByAccount(acc) then
return TRUE
else
return FALSE
end
end
function vip.getDays(days)
return (3600 * 24 * days)
end

function vip.addVipByAccount(acc,time)
assert(acc,'Account is nil')
assert(tonumber(time),'Parameter must be a number')
local a = vip.getVipByAcc(acc)
a = os.difftime(a,os.time())
if a < 0 then a = 0 end;
a = a+time
return vip.setVipByAccount(acc,a)
end

function vip.setVipByAccount(acc,time)
dofile("config.lua")
assert(acc,'Account is nil')
assert(tonumber(time),'Parameter must be a number')
db.executeQuery("UPDATE `accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';")
return TRUE
end

function vip.returnVipString(cid)
assert(tonumber(cid),'Parameter must be a number')
if isPlayer(cid) == TRUE then
return os.date("%d %B %Y %X ", vip.getVip(cid))
end
end

- - - Updated - - -

@help-me? x.x
 
LUA:
local config = {
days = 3,
storageId = 15558,
msg = "You received 3 VIP days as a tasting.",
msgtype = MESSAGE_EVENT_ADVANCE
}

function onAdvance(cid, oldLevel, newLevel)
	if getPlayerStorageValue(cid, 20500) == -1 then
		setPlayerStorageValue(cid, 20500, 1)
		vip.addVipByAccount(getPlayerAccount(cid), vip.getDays(config.days))
		doPlayerSendTextMessage(cid, config.msgtype, config.msg)
	end
return TRUE
end
 
LUA:
local config = {
days = 3,
storageId = 15558,
msg = "You received 3 VIP days as a tasting.",
msgtype = MESSAGE_EVENT_ADVANCE
}

function onAdvance(cid, oldLevel, newLevel)
	if getPlayerStorageValue(cid, 20500) == -1 then
		setPlayerStorageValue(cid, 20500, 1)
		vip.addVipByAccount(getPlayerAccount(cid), vip.getDays(config.days))
		doPlayerSendTextMessage(cid, config.msgtype, config.msg)
	end
return TRUE
end

OMG!
Not works :@ :@
placing only works with level
grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
 
Mine
LUA:
local viptasteconfig = {
level = 20,
days = 1,
storage = 20503,
msg = "You received 3 VIP days as a tasting.",
msgtype = MESSAGE_EVENT_ADVANCE
}

function onAdvance(cid, oldLevel, newLevel)
	if (getPlayerStorageValue(cid, viptasteconfig.storage) == -1) and (getPlayerLevel(cid) >= viptasteconfig.level) then
		setPlayerStorageValue(cid, viptasteconfig.storage, 1)
		vip.addVipByAccount(getPlayerAccount(cid), vip.getDays(viptasteconfig.days))
		doPlayerSendTextMessage(cid, viptasteconfig.msgtype, viptasteconfig.msg)
	end

	doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
	doCreatureAddMana(cid, getCreatureMaxMana(cid))
	doSavePlayerAndHouse(cid)
return TRUE
end
 
Back
Top