Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base?  OTX GLobal Server 1.3

 

Qual o motivo deste tópico? 

 

Esto na duvida qual e o melhor jeito de colocar exp extra para quem for vip. Alguém tem sugestão e o código que eu possa utilizar?

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

A Experiencia nao esta aumentando, pelo contrario diminuindo.

 

Você tem o código disponível? Se tiver publique-o aqui: 

 local config = {
-- true = player will be teleported to this position if Vip runs out
-- false = player will not be teleported
useTeleport = true,
expirationPosition = Position(95, 114, 7),

-- true = player will received the message you set
-- false = player will not receive a message
useMessage = true,
expirationMessage = 'Your vip days ran out.',
expirationMessageType = MESSAGE_STATUS_WARNING
}

if not VipData then
	VipData = { }
end

function Player.onRemoveVip(self)
	if config.useTeleport then
		self:teleportTo(config.expirationPosition)
		config.expirationPosition:sendMagicEffect(CONST_ME_TELEPORT)
	end

	if config.useMessage then
		self:sendTextMessage(config.expirationMessageType, config.expirationMessage)
	end
end

function Player.getVipDays(self)
	return VipData[self:getId()].days
end

function Player.getLastVipDay(self)
	return VipData[self:getId()].lastDay
end

function Player.isVip(self)
	return self:getVipDays() > 0
end

function Player.addInfiniteVip(self)
	local data = VipData[self:getId()]
	data.days = 0xFFFF
	data.lastDay = 0
	
	db.query(string.format('UPDATE `accounts` SET `vipdays` = %i, `viplastday` = %i WHERE `id` = %i;', 0xFFFF, 0, self:getAccountId()))
end

function Player.addVipDays(self, amount)
	local data = VipData[self:getId()]
	local amount = math.min(0xFFFE - data.days, amount)
	
	if amount > 0 then
		if data.days == 0 then
			local time = os.time()
			db.query(string.format('UPDATE `accounts` SET `vipdays` = `vipdays` + %i, `viplastday` = %i WHERE `id` = %i;', amount, time, self:getAccountId()))
			data.lastDay = time
		else
			db.query(string.format('UPDATE `accounts` SET `vipdays` = `vipdays` + %i WHERE `id` = %i;', amount, self:getAccountId()))
		end
		data.days = data.days + amount
	end
	
	return true
	
end

function Player.removeVipDays(self, amount)
	local data = VipData[self:getId()]
	if data.days == 0xFFFF then
		return false
	end

	local amount = math.min(data.days, amount)
	if amount > 0 then
		db.query(string.format('UPDATE `accounts` SET `vipdays` = `vipdays` - %i WHERE `id` = %i;', amount, self:getAccountId()))
		data.days = data.days - amount
	end
	
	if data.days == 0 then
		self:onRemoveVip()
	
	end
	
	return true
	
end

function Player.removeVip(self)
local data = VipData[self:getId()]
if data.days == 0 then
return 
end

data.days = 0
data.lastDay = 0

self:onRemoveVip()

db.query(string.format('UPDATE `accounts` SET `vipdays` = 0, `viplastday` = 0 WHERE `id` = %i;', self:getAccountId()))
end

function Player.loadVipData(self)
local resultId = db.storeQuery(string.format('SELECT `vipdays`, `viplastday` FROM `accounts` WHERE `id` = %i;', self:getAccountId()))
if resultId then
VipData[self:getId()] = {
days = result.getDataInt(resultId, 'vipdays'),
lastDay = result.getDataInt(resultId, 'viplastday')
}

result.free(resultId)
return true
end

VipData[self:getId()] = { days = 0, lastDay = 0 }
return false
end

function Player.updateVipTime(self)
local save = false

local data = VipData[self:getId()]
local days, lastDay = data.days, data.lastDay
local daysBefore = days
if days == 0 or days == 0xFFFF then
if lastDay ~= 0 then
lastDay = 0
save = true
end
elseif lastDay == 0 then
lastDay = os.time()
save = true
else
local time = os.time()
local elapsedDays = math.floor((time - lastDay) / 86400)
if elapsedDays > 0 then
if elapsedDays >= days then
days = 0
lastDay = 0
else
days = days - elapsedDays
lastDay = time - ((time - lastDay) % 86400)
end
save = true
end
end

if save then
if daysBefore > 0 and days == 0 then
self:onRemoveVip()
end

db.query(string.format('UPDATE `accounts` SET `vipdays` = %i, `viplastday` = %i WHERE `id` = %i;', days, lastDay, self:getAccountId()))
data.days = days
data.lastDay = lastDay
end
end

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

 http://baiakuza.com/
IP: baiakuza.com
TIBIA: 10.96
Baiak Custom [ High Exp Rate ]

 

 

 

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo