Conteúdo aprovado.
Obrigado por compartilhar.
Por DeCarvalho, 19 de jul. de 2015 em Mods, funções e outros
info
Grupo: Infante
Registrado: 22/12/12
Posts: 2k
Reputação: +736
Gênero: Masculino
Char no Tibia: Marley

Conteúdo aprovado.
Obrigado por compartilhar.
Você sabe como colocá-lo no site de personagens , aparece VIP ?
solo aparece NOT- VIP em letras vermelas
EDIT cual es el vip storage?
Editado Julho 21 por adoration
info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie

Editado Julho 21 por DkAngel
Obrigado ![]()
info
Grupo: Artesão
Registrado: 13/07/11
Posts: 104
Reputação: +4
Char no Tibia: Willliam Serravalle

DkAngel me diga uma coisa, onde ta o End vip? ja esta dentro do vipsystem.lua e?
info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie

DkAngel me diga uma coisa, onde ta o End vip? ja esta dentro do vipsystem.lua e?
Onde você viu isso End vip?
info
Grupo: Artesão
Registrado: 13/07/11
Posts: 104
Reputação: +4
Char no Tibia: Willliam Serravalle

e quando a vip do player acaba pow pra onde ele vai?
info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie

Como disse se você prestar atenção irá ver... dentro do vipsystem.lua linha 5 , o local para onde ele vai quando acabar a vip..
info
Grupo: Artesão
Registrado: 13/07/11
Posts: 104
Reputação: +4
Char no Tibia: Willliam Serravalle

boa noite mano eu tou tentando executar o comando dentro do sqlite e ta dando isso. o que eu Faço?
[22:52:52] Error while executing SQL query on database 'forgottenserver':
info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie

boa noite mano eu tou tentando executar o comando dentro do sqlite e ta dando isso. o que eu Faço?
[22:52:52] Error while executing SQL query on database 'forgottenserver':
Desculpe mas não sei como fazer com relação ao sqlite.. eu usp mysql assim como esse sistema tambem usa..
Desculpe mesmo, então cim relação a isso outra pessoa teria que dar uma ajuda..
info
Grupo: Cavaleiro
Registrado: 30/11/15
Posts: 174
Reputação: +52
Char no Tibia: Takeiflexa Saikoreno

Existe suporte sobre esse script ainda???
info
Grupo: Campones
Registrado: 16/02/09
Posts: 10
Reputação: +2
Gênero: Masculino

se tiver suporte para esse script
ele pegou aqui mais não pega os comandos
- /vip adddays, NomedoPlayer, 5
--> Adiciona 5 dias vip para o Player.
- /vip removedays, NomedoPlayer, 5
--> Remove 5 dias vip do Player.
- /vip remove, PlayerName
--> Remove todos os dias vip do Player.
- /vip check, NomedoPlayer
--> Checa quantos dias vip o Player tem.
- /vip addinfinite, NomedoPlayer
--> Adiciona tempo vip infinito para o Player.
info
Grupo: Campones
Registrado: 18/09/12
Posts: 12
Reputação: 0
Char no Tibia: Spettus

Em 19/07/2015 at 23:59, DeCarvalho disse:Bem procurei aqui na comunidade um VIP System mais informativo e nada, além de ter tido problema com os que estão aqui e acabei achando em outro lugar um que funcionou perfeitamente para mim.
Usando tfs 1.2 disponibilizado por Bruno Minervino
Só estou trazendo o conteúdo e por não conhecer bem não posso dar suporte mas do jeito que está é só 'instalar' e vai funcionar.
Creditos.: Summ por fazer e a mim por uma ou duas alterações que estavam fazendo as portas funcionarem de forma estranha..
Sistema Vip
1° execute dentro da sua db
ALTER TABLE `accounts`ADD COLUMN `viplastday` int(10) NOT NULL DEFAULT 0 AFTER `lastday`,ADD COLUMN `vipdays` int(11) NOT NULL DEFAULT 0 AFTER `lastday`;
2º na pasta data/creaturescripts/scripts procure pelo arquivo login.lua e adicione na segunda linha, logo após o function onLogin(player) isso
player:loadVipData()player:updateVipTime()
3° na pasta data\ crie um arquivo chamado vipsystem.lua e adicione o seguinte
local config = {-- true = player will be teleported to this position if Vip runs out-- false = player will not be teleporteduseTeleport = true,expirationPosition = Position(95, 114, 7),-- true = player will received the message you set-- false = player will not receive a messageuseMessage = true,expirationMessage = 'Your vip days ran out.',expirationMessageType = MESSAGE_STATUS_WARNING}if not VipData thenVipData = { }endfunction Player.onRemoveVip(self)if config.useTeleport thenself:teleportTo(config.expirationPosition)config.expirationPosition:sendMagicEffect(CONST_ME_TELEPORT)endif config.useMessage thenself:sendTextMessage(config.expirationMessageType, config.expirationMessage)endendfunction Player.getVipDays(self)return VipData[self:getId()].daysendfunction Player.getLastVipDay(self)return VipData[self:getId()].lastDayendfunction Player.isVip(self)return self:getVipDays() > 0endfunction Player.addInfiniteVip(self)local data = VipData[self:getId()]data.days = 0xFFFFdata.lastDay = 0db.query(string.format('UPDATE `accounts` SET `vipdays` = %i, `viplastday` = %i WHERE `id` = %i;', 0xFFFF, 0, self:getAccountId()))endfunction Player.addVipDays(self, amount)local data = VipData[self:getId()]local amount = math.min(0xFFFE - data.days, amount)if amount > 0 thenif data.days == 0 thenlocal time = os.time()db.query(string.format('UPDATE `accounts` SET `vipdays` = `vipdays` + %i, `viplastday` = %i WHERE `id` = %i;', amount, time, self:getAccountId()))data.lastDay = timeelsedb.query(string.format('UPDATE `accounts` SET `vipdays` = `vipdays` + %i WHERE `id` = %i;', amount, self:getAccountId()))enddata.days = data.days + amountendreturn trueendfunction Player.removeVipDays(self, amount)local data = VipData[self:getId()]if data.days == 0xFFFF thenreturn falseendlocal amount = math.min(data.days, amount)if amount > 0 thendb.query(string.format('UPDATE `accounts` SET `vipdays` = `vipdays` - %i WHERE `id` = %i;', amount, self:getAccountId()))data.days = data.days - amountif data.days == 0 thenself:onRemoveVip()endendreturn trueendfunction Player.removeVip(self)local data = VipData[self:getId()]if data.days == 0 thenreturnenddata.days = 0data.lastDay = 0self:onRemoveVip()db.query(string.format('UPDATE `accounts` SET `vipdays` = 0, `viplastday` = 0 WHERE `id` = %i;', self:getAccountId()))endfunction Player.loadVipData(self)local resultId = db.storeQuery(string.format('SELECT `vipdays`, `viplastday` FROM `accounts` WHERE `id` = %i;', self:getAccountId()))if resultId thenVipData[self:getId()] = {days = result.getDataInt(resultId, 'vipdays'),lastDay = result.getDataInt(resultId, 'viplastday')}result.free(resultId)return trueendVipData[self:getId()] = { days = 0, lastDay = 0 }return falseendfunction Player.updateVipTime(self)local save = falselocal data = VipData[self:getId()]local days, lastDay = data.days, data.lastDaylocal daysBefore = daysif days == 0 or days == 0xFFFF thenif lastDay ~= 0 thenlastDay = 0save = trueendelseif lastDay == 0 thenlastDay = os.time()save = trueelselocal time = os.time()local elapsedDays = math.floor((time - lastDay) / 86400)if elapsedDays > 0 thenif elapsedDays >= days thendays = 0lastDay = 0elsedays = days - elapsedDayslastDay = time - ((time - lastDay) % 86400)endsave = trueendendif save thenif daysBefore > 0 and days == 0 thenself:onRemoveVip()enddb.query(string.format('UPDATE `accounts` SET `vipdays` = %i, `viplastday` = %i WHERE `id` = %i;', days, lastDay, self:getAccountId()))data.days = daysdata.lastDay = lastDayendend
4° no arquivo global.lua adicione a seguinte linha
dofile('data/vipsystem.lua')
Talkaction !checkvip para todos os players
1° vá na pasta data/talkactions/scripts e crie um arquivo chamando checkvip.lua e adicione o seguinte
function onSay(cid, words, param)local player = Player(cid)local days = player:getVipDays()if days == 0 thenplayer:sendCancelMessage('You do not have any vip days.')elseplayer:sendCancelMessage(string.format('You have %s vip day%s left.', (days == 0xFFFF and 'infinite amount of' or days), (days == 1 and '' or 's')))endreturn falseend
2° e em data/talkactions/talkactions.xml adicione
<talkaction words="!checkvip" script="checkvip.lua"/>
Talkaction /vip para membros da staff
- /vip adddays, NomedoPlayer, 5--> Adiciona 5 dias vip para o Player.- /vip removedays, NomedoPlayer, 5--> Remove 5 dias vip do Player.- /vip remove, PlayerName--> Remove todos os dias vip do Player.- /vip check, NomedoPlayer--> Checa quantos dias vip o Player tem.- /vip addinfinite, NomedoPlayer--> Adiciona tempo vip infinito para o Player.
1° na pasta data/talkactions/scripts crie um arquivo chamado vipcommand.lua e adicione o seguinte
function onSay(cid, words, param)local player = Player(cid)if not player:getGroup():getAccess() thenreturn trueendlocal params = param:split(',')if not params[2] thenplayer:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Player is required.\nUsage:\n%s <action>, <name>, [, <value>]\n\nAvailable actions:\ncheck, adddays, addinfinite, removedays, remove', words))return falseendlocal targetName = params[2]:trim()local target = Player(targetName)if not target thenplayer:sendCancelMessage(string.format('Player (%s) is not online. Usage: %s <action>, <player> [, <value>]', targetName, words))return falseendlocal action = params[1]:trim():lower()if action == 'adddays' thenlocal amount = tonumber(params[3])if not amount thenplayer:sendCancelMessage('<value> has to be a numeric value.')return falseendtarget:addVipDays(amount)player:sendCancelMessage(string.format('%s received %s vip day(s) and now has %s vip day(s).', target:getName(), amount, target:getVipDays()))elseif action == 'removedays' thenlocal amount = tonumber(params[3])if not amount thenplayer:sendCancelMessage('<value> has to be a numeric value.')return falseendtarget:removeVipDays(amount)player:sendCancelMessage(string.format('%s lost %s vip day(s) and now has %s vip day(s).', target:getName(), amount, target:getVipDays()))elseif action == 'addinfinite' thentarget:addInfiniteVip()player:sendCancelMessage(string.format('%s now has infinite vip time.', target:getName()))elseif action == 'remove' thentarget:removeVip()player:sendCancelMessage(string.format('You removed all vip days from %s.', target:getName()))elseif action == 'check' thenlocal days = target:getVipDays()player:sendCancelMessage(string.format('%s has %s vip day(s).', target:getName(), (days == 0xFFFF and 'infinite' or days)))elseplayer:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Action is required.\nUsage:\n%s <action>, <name>, [, <value>]\n\nAvailable actions:\ncheck, adddays, addinfinite, removedays, remove', words))endreturn falseend
2° e em data/talkactions/talkactions.xml adicione
<talkaction words="/vip" separator=" " script="vipcommand.lua" />
Tiles VIP
Os ids agem de forma diferenteTiles que tiverem id 1500 só serão passáveis caso o player seja vipTiles que tiverem id 1501 são tiles tp, o player vip passa em cima e é transportado para a coord setana no começo do arquivo lua.
1° em data/movements/movements.xml e adicione
<movevent event="StepIn" actionid="1500" script="viptiles.lua"/><movevent event="StepIn" actionid="1501" script="viptiles.lua"/>
2° em data/movements/script crie o arquivo viptiles.lua e adicione o seguinte
local vipPosition = Position(101, 116, 7)function onStepIn(cid, item, position, fromPosition)local player = Player(cid)if not player thenreturn trueendif item.actionid == 1500 thenif not player:isVip() thenplayer:teleportTo(fromPosition)fromPosition:sendMagicEffect(CONST_ME_POFF)player:sendCancelMessage('You do not have any vip days.')endelseif item.actionid == 1501 thenif player:isVip() thenplayer:teleportTo(vipPosition)player:say('!* VIP *!', TALKTYPE_MONSTER_SAY)vipPosition:sendMagicEffect(CONST_ME_STUN)elseplayer:teleportTo(fromPosition)player:sendCancelMessage('You do not have any vip days.')fromPosition:sendMagicEffect(CONST_ME_POFF)endendreturn trueend
Portas VIP / Actions
1° em data/actions/actions.xml adicione isso
<action actionid="1502" script="vipdoors.lua"/><action actionid="1503" script="vipdoors.lua"/><action actionid="1504" script="vipdoors.lua"/>
Os ids são referentes as portas, 1502 é uma porta norte/sul1503 é uma porta leste/oeste1504 é uma porta que da tp para um local definido no começo do arquivo vipdoors.lua2° em data/actions/scripts crie um arquivo chamado vipdoors.lua e adicione o seguinte
local vipPosition = Position(1295, 1576, 7) function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey)local player = Player(cid) if item.actionid == 1502 then local position = player:getPosition() if player:isVip() then if position.y < fromPosition.y then fromPosition.y = fromPosition.y + 1 else fromPosition.y = fromPosition.y - 1 end player:teleportTo(fromPosition) player:say('!* VIP *!', TALKTYPE_MONSTER_SAY) fromPosition:sendMagicEffect(CONST_ME_STUN) else player:sendCancelMessage('You do not have any vip days.') end elseif item.actionid == 1503 then local position = player:getPosition() if player:isVip() then if position.x < fromPosition.x then fromPosition.x = fromPosition.x + 1 else fromPosition.x = fromPosition.x - 1 end player:teleportTo(fromPosition) player:say('!* VIP *!', TALKTYPE_MONSTER_SAY) fromPosition:sendMagicEffect(CONST_ME_STUN) else player:sendCancelMessage('You do not have any vip days.') end elseif item.actionid == 1504 then if player:isVip() then player:teleportTo(vipPosition) player:say('!* VIP *!', TALKTYPE_MONSTER_SAY) vipPosition:sendMagicEffect(CONST_ME_STUN) else player:sendCancelMessage('You do not have any vip days.') end endreturn trueend
Items que adicionam dias VIP
ItemId 10135 adiciona 10 dias vip.ItemId 10134 adiciona 30 dias vip.ItemId 10133 adiciona 90 dias vip.
1° em data/actions/actions.xml adicione
<action fromid="10133" toid="10135" script="vipitems.lua"/>
2° e em data/actions/scripts crie um arquivo chamado vipitems.lua e adicione o seguinte
local vipItems = {-- [itemid] = amount of vip days[10135] = 10,[10134] = 30,[10133] = 90}function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey)local player = Player(cid)local days = vipItems[item.itemid]player:addVipDays(days)player:say('!* YAY VIP! *!', TALKTYPE_MONSTER_SAY)player:getPosition():sendMagicEffect(CONST_ME_STUN)player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('You received %s vip days.', days))Item(item.uid):remove(1)return trueend
Imagens
Comando !checkvip mas sem ter vip
Comando /vip adddays, dracoknight, 5
Comando !checkvip após adicionar 5 dias
Comando /vip addinfinite, dracoknight
Comando !checkvip após usar infinite
Comando /vip remove, dracoknight
Estou com um pequeno problema no meu ! Nao sei se por estar errado o meu sistema...
Enfim, eu posso efetuar a compra do meu Vip Days no Shop e tambem pelo comando !buyvip, parece na account que eh VIP...
Mas quando o char quer entrar em uma area VIP, acusa dizendo que voce deve comprar.
Me ajude please... Nao sei como resolver.. Obrigado
info
Grupo: Campones
Registrado: 28/02/18
Posts: 1
Reputação: 0
Gênero: Masculino

alguem pode me ajuda? olha o tanto de erro que deu..
[Warning - Event::checkScript] Can not load script: scripts/vipitems.lua data/actions/scripts/vipitems.lua:1: syntax error near 'vipItems' [Warning - MoveEvents::addEvent] Duplicate move event found: 1500
info
Grupo: Barão
Registrado: 28/10/10
Posts: 206
Reputação: +65
Char no Tibia: Mage Junkie
Bem procurei aqui na comunidade um VIP System mais informativo e nada, além de ter tido problema com os que estão aqui e acabei achando em outro lugar um que funcionou perfeitamente para mim.
Usando tfs 1.2 disponibilizado por Bruno Minervino
Só estou trazendo o conteúdo e por não conhecer bem não posso dar suporte mas do jeito que está é só 'instalar' e vai funcionar.
Creditos.: Summ por fazer e a mim por uma ou duas alterações que estavam fazendo as portas funcionarem de forma estranha..
Sistema Vip
1° execute dentro da sua db
2º na pasta data/creaturescripts/scripts procure pelo arquivo login.lua e adicione na segunda linha, logo após o function onLogin(player) isso
3° na pasta data\ crie um arquivo chamado vipsystem.lua e adicione o seguinte
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 if data.days == 0 then self:onRemoveVip() end 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 end4° no arquivo global.lua adicione a seguinte linha
dofile('data/vipsystem.lua')Talkaction !checkvip para todos os players
1° vá na pasta data/talkactions/scripts e crie um arquivo chamando checkvip.lua e adicione o seguinte
function onSay(cid, words, param) local player = Player(cid) local days = player:getVipDays() if days == 0 then player:sendCancelMessage('You do not have any vip days.') else player:sendCancelMessage(string.format('You have %s vip day%s left.', (days == 0xFFFF and 'infinite amount of' or days), (days == 1 and '' or 's'))) end return false end2° e em data/talkactions/talkactions.xml adicione
Talkaction /vip para membros da staff
1° na pasta data/talkactions/scripts crie um arquivo chamado vipcommand.lua e adicione o seguinte
function onSay(cid, words, param) local player = Player(cid) if not player:getGroup():getAccess() then return true end local params = param:split(',') if not params[2] then player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Player is required.\nUsage:\n%s <action>, <name>, [, <value>]\n\nAvailable actions:\ncheck, adddays, addinfinite, removedays, remove', words)) return false end local targetName = params[2]:trim() local target = Player(targetName) if not target then player:sendCancelMessage(string.format('Player (%s) is not online. Usage: %s <action>, <player> [, <value>]', targetName, words)) return false end local action = params[1]:trim():lower() if action == 'adddays' then local amount = tonumber(params[3]) if not amount then player:sendCancelMessage('<value> has to be a numeric value.') return false end target:addVipDays(amount) player:sendCancelMessage(string.format('%s received %s vip day(s) and now has %s vip day(s).', target:getName(), amount, target:getVipDays())) elseif action == 'removedays' then local amount = tonumber(params[3]) if not amount then player:sendCancelMessage('<value> has to be a numeric value.') return false end target:removeVipDays(amount) player:sendCancelMessage(string.format('%s lost %s vip day(s) and now has %s vip day(s).', target:getName(), amount, target:getVipDays())) elseif action == 'addinfinite' then target:addInfiniteVip() player:sendCancelMessage(string.format('%s now has infinite vip time.', target:getName())) elseif action == 'remove' then target:removeVip() player:sendCancelMessage(string.format('You removed all vip days from %s.', target:getName())) elseif action == 'check' then local days = target:getVipDays() player:sendCancelMessage(string.format('%s has %s vip day(s).', target:getName(), (days == 0xFFFF and 'infinite' or days))) else player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('Action is required.\nUsage:\n%s <action>, <name>, [, <value>]\n\nAvailable actions:\ncheck, adddays, addinfinite, removedays, remove', words)) end return false end2° e em data/talkactions/talkactions.xml adicione
Tiles VIP
1° em data/movements/movements.xml e adicione
2° em data/movements/script crie o arquivo viptiles.lua e adicione o seguinte
local vipPosition = Position(101, 116, 7) function onStepIn(cid, item, position, fromPosition) local player = Player(cid) if not player then return true end if item.actionid == 1500 then if not player:isVip() then player:teleportTo(fromPosition) fromPosition:sendMagicEffect(CONST_ME_POFF) player:sendCancelMessage('You do not have any vip days.') end elseif item.actionid == 1501 then if player:isVip() then player:teleportTo(vipPosition) player:say('!* VIP *!', TALKTYPE_MONSTER_SAY) vipPosition:sendMagicEffect(CONST_ME_STUN) else player:teleportTo(fromPosition) player:sendCancelMessage('You do not have any vip days.') fromPosition:sendMagicEffect(CONST_ME_POFF) end end return true endPortas VIP / Actions
1° em data/actions/actions.xml adicione isso
2° em data/actions/scripts crie um arquivo chamado vipdoors.lua e adicione o seguinte
local vipPosition = Position(1295, 1576, 7) function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey) local player = Player(cid) if item.actionid == 1502 then local position = player:getPosition() if player:isVip() then if position.y < fromPosition.y then fromPosition.y = fromPosition.y + 1 else fromPosition.y = fromPosition.y - 1 end player:teleportTo(fromPosition) player:say('!* VIP *!', TALKTYPE_MONSTER_SAY) fromPosition:sendMagicEffect(CONST_ME_STUN) else player:sendCancelMessage('You do not have any vip days.') end elseif item.actionid == 1503 then local position = player:getPosition() if player:isVip() then if position.x < fromPosition.x then fromPosition.x = fromPosition.x + 1 else fromPosition.x = fromPosition.x - 1 end player:teleportTo(fromPosition) player:say('!* VIP *!', TALKTYPE_MONSTER_SAY) fromPosition:sendMagicEffect(CONST_ME_STUN) else player:sendCancelMessage('You do not have any vip days.') end elseif item.actionid == 1504 then if player:isVip() then player:teleportTo(vipPosition) player:say('!* VIP *!', TALKTYPE_MONSTER_SAY) vipPosition:sendMagicEffect(CONST_ME_STUN) else player:sendCancelMessage('You do not have any vip days.') end end return true endItems que adicionam dias VIP
1° em data/actions/actions.xml adicione
2° e em data/actions/scripts crie um arquivo chamado vipitems.lua e adicione o seguinte
local vipItems = { -- [itemid] = amount of vip days [10135] = 10, [10134] = 30, [10133] = 90 } function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey) local player = Player(cid) local days = vipItems[item.itemid] player:addVipDays(days) player:say('!* YAY VIP! *!', TALKTYPE_MONSTER_SAY) player:getPosition():sendMagicEffect(CONST_ME_STUN) player:sendTextMessage(MESSAGE_INFO_DESCR, string.format('You received %s vip days.', days)) Item(item.uid):remove(1) return true endImagens
Comando !checkvip mas sem ter vip
Comando /vip adddays, dracoknight, 5
Comando !checkvip após adicionar 5 dias
Comando /vip addinfinite, dracoknight
Comando !checkvip após usar infinite
Comando /vip remove, dracoknight
Editado Julho 20 por DkAngel