Vip System By Kekox

Natanael Beckman
em Actions e Talkactions
  • 1
  • 2

Natanael Beckman

Administrador
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 06/08/06Posts: 554Char no Tibia: Balacky

Bom, eu vou explicar o sistema... A maior parte do sistema vip usar o globalevent para remover um dia de vip a cada 24 horas, mas, e se o seu serv tem 23 horas de uptime é um problema. O dia não poderia ser removido, até eu fixar ele, agora o dia de vip será removido em uma hora específica, se você configurá-lo para duas horas, o dia vip será removido em duas horas por isso, se o serv cair para ele como 3 minutos ainda irá remover os dias vip em duas horas.

 

Ele funciona para toda a conta, assim como uma conta premium.

Testado em TheForgottenServer 0.3.6 / 0.4

Este sistema VIP contém:

 

  • Próprias funções Lua
  • Automática removedor dia.
  • OnLogin script para verificar vip.
  • Remover Comando Dias Vip.
  • Adicionar comando Dias Vip.
  • Auto teleporter templo quando vipdays mais!.

 

Agora vamos da incio ao nosso Tutorial.

 

Execute isso no seu phpmyadmin.

 

ALTER TABLE `accounts` ADD
`vipdays` int(11) NOT NULL DEFAULT 0;

 

Vai até data/lib/function.lua e adicione isto na primeira linha:

 

--- Vip functions by Kekox
function getPlayerVipDays(cid)
   local Info = db.getResult("SELECT `vipdays` FROM `accounts` WHERE `id` = " .. getPlayerAccountId(cid) .. " LIMIT 1")
       if Info:getID() ~= LUA_ERROR then
       local days= Info:getDataInt("vipdays")
       Info:free()
       return days
   end
    return LUA_ERROR
end

function doAddVipDays(cid, days)
   db.executeQuery("UPDATE `accounts` SET `vipdays` = `vipdays` + " .. days .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end

function doRemoveVipDays(cid, days)
   db.executeQuery("UPDATE `accounts` SET `vipdays` = `vipdays` - " .. days .. " WHERE `id` = " .. getPlayerAccountId(cid) .. ";")
end

 

Vai até data/creaturescript/scripts/login.lua e registrar esse coder:

 

registerCreatureEvent(cid, "VipCheck")

 

E logo após crie um arquivo com o nome vipcheck.lua dentro de data/creaturescript/scripts/ e adicione dentro do arquivo criado este coder:

 

--- Script by Kekox
function onLogin(cid)
        if getPlayerVipDays(cid) >= 1 then
           doPlayerSendTextMessage(cid, 19, "You have ".. getPlayerVipDays(cid) .." vip days left.")
        end
        return true
end

 

E em data/creaturescript/creaturescripts.xml:

 

	<event type="login" name="VipCheck" event="script" value="vipcheck.lua"/>

 

Agora vei até data/globalevents/scripts/ crie um arquivo.lua com o nome daysremover.lua e adicione este coder ao arquivo criado:

 

--- Script by Kekox
function onTimer()
                db.executeQuery("UPDATE accounts SET vipdays = vipdays - 1 WHERE vipdays > 0;")
       return true
end

 

E logo após em data/globalevents/globalevents.xml adicione:

 

	<globalevent name="VipDaysRemover" time="00:01" event="script" value="daysremover.lua"/>

 

Você pode alterar o tempo quando: (hora = "00:01").

 

Se você tem um dia a mais ou a menos de vip, quando você fizer login vai receber uma mensagem:



2yyuyq0.png

 

VIP Tile

 

Agora vamos até data/movements/scripts/viptile.lua Adicione este coder:

 

--- Script by Kekox
function onStepIn(cid, item, position, fromPosition)
        if getPlayerVipDays(cid) == 0 then
            doTeleportThing(cid, fromPosition, FALSE)
        end
return true
end

 

E logo após em data/movements/movements.xml

 

	<movevent type="StepIn" actionid="13500" event="script" value="viptile.lua"/>

 

VIP days command

 

Vai até data/talkactions/scripts/adddays.lua Adicone este coder:

 

--- Script by Kekox.
function onSay(cid, words, param, channel)
       if(param == '') then
               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
               return true
       end

       local t = string.explode(param, ",")
       t[1] = tonumber(t[1])
       if(not t[1]) then
               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")
               return true
       end

       local pid = cid
       if(t[2]) then
               pid = getPlayerByNameWildcard(t[2])
               if(not pid) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[2] .. " not found.")
                       return true
               end
       end

       if(t[1] > 365) then
               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You can only add max 365 vip days.")
               return true
       end

       sender = getPlayerByNameWildcard(cid)

   doAddVipDays(pid, t[1])
   doPlayerSendTextMessage(cid, "You have added ".. t[1] .." vip days to ".. t[2])
   doPlayerSendTextMessage(pid, sender .." just added you ".. t[1] .." vip days.")    
       return true
end

 

Em data/talkactions/talkactions.xml/ adicione:

 

	<talkaction log="yes" words="/adddays" access="5" event="script" value="adddays.lua"/>

 

Remove VIP days command

 

Em data/talkactions/scripts/removedays.lua adicione:

 

--- Script by Kekox fixed by Shawak.
function onSay(cid, words, param, channel)
       if(param == '') then
               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.")
               return true
       end

       local t = string.explode(param, ",")
       t[1] = tonumber(t[1])
       if(not t[1]) then
               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.")
               return true
       end

       local pid = cid
       if(t[2]) then
               pid = getPlayerByNameWildcard(t[2])
               if(not pid) then
                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player " .. t[2] .. " not found.")
                       return true
               end
       end

       if(t[1] > 365) then
               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You can only add max 365 vip days.")
               return true
       end

       sender = getPlayerByNameWildcard(cid)

   doRemoveVipDays(pid, t[1])
   doPlayerSendTextMessage(cid, "You have removed ".. t[1] .." vip days to ".. t[2])
   doPlayerSendTextMessage(pid, sender .." just removed you ".. t[1] .." vip days.")    
       return true
end

 

E em data/talkactions/scripts/talkactions.xml/ adicione:

 

	<talkaction log="yes" words="/removedays" access="5" event="script" value="removedays.lua"/>

 

VIP Door

 

Em data/actions/scripts/vipdoor.lua adicione:

 

function onUse(cid, item, frompos, item2, topos)
        if getPlayerVipDays(cid) >= 1 then
           pos = getPlayerPosition(cid)
           if pos.x == topos.x then
              if pos.y < topos.y then
                 pos.y = topos.y + 1
              else
                 pos.y = topos.y - 1
              end
           elseif pos.y == topos.y then
                  if pos.x < topos.x then
                     pos.x = topos.x + 1
                  else
                     pos.x = topos.x - 1
                  end
           else
               doPlayerSendTextMessage(cid,22,"Stand in front of the door.")
           return true
           end
           doTeleportThing(cid,pos)
           doSendMagicEffect(topos,12)
        else
           doPlayerSendTextMessage(cid,22,'Only VIP Account can go there.')
        end
        return true
end

 

Em data/actions/actions.xml adicione:

 

	<action actionid="2112" event="script" value="vipdoor.lua"/>

 

Effect only for VIP players

 

Em globalevents/scripts/vipEffect.lua adicione:

 

function onThink(interval, lastExecution)
        for _, name in ipairs(getOnlinePlayers()) do
        local cid = getPlayerByName(name)
              if getPlayerVipDays(cid) >= 1 then
                 doSendMagicEffect(getPlayerPosition(cid), 27)
                 doSendAnimatedText(getPlayerPosition(cid), "VIP!", TEXTCOLOR_RED)
              end
        end
        return true
end

 

Em data/globalevents/globalevents.xml adicione:

 

	<globalevent name="vipEffect" interval="2" script="vipEffect.lua"/>

 

Auto temple teleporter quando VIP days acabar!

 

10° Em data/creaturescripts/scripts/templeteleport.lua adicione:

 

function onLogin(cid)
if getPlayerVipDays(cid) > 0 then
	setPlayerStorageValue(cid, 20500, 1)
elseif getPlayerVipDays(cid) == 0 and getPlayerStorageValue(cid, 20500) == 1 then
	doTeleportThing(cid, getPlayerMasterPos(cid))		
	setPlayerStorageValue(cid, 20500, -1)
end
return true
end

 

Em data/creaturescripts/scripts/login.lua register:

 

registerCreatureEvent(cid, "TempleTeleporter")

 

E em data/creaturescripts/creaturescripts.xml adicione:

 

 <event type="login" name="TempleTeleporter" event="script" value="templeteleport.lua"/>

 

Functions usadas:

 

  • getPlayerVipDays(cid) --- Usá-lo para verificar quantos dias vip o jogador tem.
  • doAddVipDays(cid, days) --- Use-o para adicionar dias vip para alguém.
  • doRemoveVipDays(cid, days) --- Use-a para remover dias vip para alguém.

 

Creditos:

Kekox

znExesyD.png

servercore.png

exlash

LogicaServers
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 13/04/08Posts: 35Char no Tibia: Exlash

Beckman, esta vip é para toda a acc e pode ser vendida pelo Gesior?

5zgl89.jpg

 

Laurë RPG, Em breve !!

Natanael Beckman

Administrador
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 06/08/06Posts: 554Char no Tibia: Balacky

Sim, apenas tem que saber como configurar.

znExesyD.png

servercore.png

blinkjf

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/02/08Posts: 1

no meu deu erro, na parte do templeteleport.lua

 

;/

ajuda ae

ta dando no such file diretory no globalevents e no creaturescripts

RafaelMan

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/06/06Posts: 5Char no Tibia: Ises Ajah

Opa..

 

Eu estou utilizando aqui e está tudo certo. Só não testei a parte do teleport.

 

Estou procurando como faz pra integrar esse script com a compra de casas.

Apenas players VIP podem comprar casas e quando a vip acabar perde a casa. Já existe alguma coisa assim?

 

Obrigado.

 

Rafael :D

eliasjunior157

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/03/11Posts: 21

Sim, apenas tem que saber como configurar.

 

Este sistema vip tem fly e surf so para vips?

Hospedagem, Streaming, Dominio, Semi- Dedicados e muito mais é aqui UWH.

xat2.jpg

hique86

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/09/08Posts: 62

1° Execute isso no seu phpmyadmin.

 

ALTER TABLE `accounts` ADD

`vipdays` int(11) NOT NULL DEFAULT 0;

 

Eu não entendi essa parte, e por isso não esta dando certo aqui, alguém por favor, pode me ajudar?!?

 

Obrigado!

Meus trabalhos:

Minha Galeria

Fazendo Suas Próprias Looktype

Teleportes, Saindo Do Basico!

 

 

Te ajudei?!? dá REP+ não custa nada =D

daaniel13

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/08/10Posts: 14

OLá.

 

Teria como esse Script Mudar para Item.

 

Da um clique no Item recebe 30 Dias de vip..???

 

e Como Tile nao sei se estaa..

 

o Tile Seria 15000

Se alguem souber porfavorr Tranforma pra mim..

Gostei do Script e o eu estou procurandoo... mais sem comando.. mais me dou muitoo bem pra ficar fazendo comando para dar vip

hehehe

 

Dou Rep..

pra quem me ajudar.

osbrot

Acesse www.osbrot.com.br e conheça um bom OTserver
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/05/11Posts: 34Char no Tibia: ADM Fernando

Ótimo script, vlw por compartilhar!

Conheça um bom OTserver OSBR-OT 24hrs on-line com você!

Acesse www.osbrot.com.br e conheça!

Denuvo

Etheriongames - Designing Your Entertainment.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 01/05/11Posts: 658Gênero: MasculinoChar no Tibia: ExTibiano

algen poderia mim dizer como fasso pra diminuir a qantidade de vip days

qando o kra cria uma nova acc ja ganha 30 dias vip .. qeria saber onde posso mudar isso obg!

❝Eu prefiro confiar e me arrepender do que duvidar e me arrepender.❞ Kirito

 

 

Lukasmap

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 26/11/11Posts: 145
Execute isso no seu phpmyadmin.

 

ALTER TABLE `accounts` ADD

`vipdays` int(11) NOT NULL DEFAULT 0;

 

 

 

nao entendi essa parte ae!

PzUBY.png

Em Breve SERVER ON!

------------------------------------------------------------------------------------------------------------

Msn: lucasasiqueira@hotmail.com

Group: group259294@groupsim.com

------------------------------------------------------------------------------------------------------------

Meus Trabalhos:

 

 

danielluissilva

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 29/01/12Posts: 3

mano aonde fica esse phpmyadimin ? lol

lelesho

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/09/12Posts: 73Char no Tibia: palasho

Como funciona esse phpmyadimin?

Projeto

 

Venha fazer parte desta equipe.

 

Precisamos de scripter urgente.

 

http://www.xtibia.co...ma-nova-equipe/

XviniX

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 10/01/13Posts: 8

Mano me ajuda...onde fica a area vip? eu ja tinha que ter uma no meu map?..

Alguem pode me passar uma area vip e me explicar como eu do vip pra um player?

  • 1
  • 2