• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Vip system Para Tfs 1.0 y 1.1

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1default [Sistema] Vip system Para Tfs 1.0 y 1.1 el Mar Feb 17, 2015 12:43 am

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    hola usuario de tibiaface



    Buen hoy les traigo el famoso vip sytem para tfs 1.0 ya que muchos usuario me pedían aquel script bueno aquí le dejo el sistema.

    primeramente nos vamos a nuestro mysql y ejecutamos esta tabla en nuestra base de datos:

    Código:
    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`;


    luego nos vamos a:

    data/creaturescripts/scripts

    y buscamos el archivo login.lua y egregamos estas lineas debajo de esta
    local player = Player(cid)

    Código:
      player:loadVipData()
        player:updateVipTime()

    luego no vamos a la carpeta data copiamos cualquier archivo y renombramos por vipsystem.lua y pegamos esto dentro

    Código:


    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
    end

    luego añadimos esto en nuestro global.lua en las primeras lineas

    Código:
    dofile('data/vipsystem.lua')


    Talkaction (!checkvip for all players)

    nos vamos a la carpeta data/talkactions/scripts

    Código:
    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
    end

    y en data/talkactions/talkactions.xml

    Código:
    <talkaction words="!checkvip" script="checkvip.lua"/>


    Talkaction (/vip command for staff members)


    Código:
    - /vip adddays, PlayerName, 5
    --> Adds 5 vip days to PlayerName.
    - /vip removedays, PlayerName, 5
    --> Removes 5 vip days from PlayerName.
    - /vip remove, PlayerName
    --> Remove all vip days from PlayerName.
    - /vip check, PlayerName
    --> Check how many vip days PlayerName has.
    - /vip addinfinite, PlayerName
    --> Add infinite vip time to PlayerName.

    nos vamos a la carpeta data/talkactions/scripts

    Código:
    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
    end

    Código:
     <talkaction words="/vip" separator=" " script="vipcommand.lua" />

    VIP Tiles

    data/movements/movements.xml

    Código:
      <movevent event="StepIn" actionid="1500" script="viptiles.lua"/>
        <movevent event="StepIn" actionid="1501" script="viptiles.lua"/>

    y en data/movements/scripts/ copian cualquier archiv y pegan esto

    Código:
    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
    end


    VIP Doors / Actions


    en actions.xml agregan esto:

    Código:
     <action actionid="1502" script="vipdoors.lua"/>
        <action actionid="1503" script="vipdoors.lua"/>
        <action actionid="1504" script="vipdoors.lua"/>

    en la carpeta data/actions/scripts/ crean una nuevo archivo

    Código:
    local vipPosition = Position(101, 116, 7)

    function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey)
        local player = Player(cid)
        if item.actionid == 1502 then
            local position = player:getPosition()
            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)

        elseif item.actionid == 1503 then
            local position = player:getPosition()
            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)

        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
    end



    VIP Items


    VIP Items

    ItemId 10135 adds 10 vip days.
    ItemId 10134 adds 30 vip days.
    ItemId 10133 adds 90 vip days.



    en actions.xml agregan esta linea

    Código:
    <action fromid="10133" toid="10135" script="vipitems.lua"/>

    y en data/actions/scripts/ crean un nuevo archivo

    Código:
    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
    end


    sistema testeado en La globalTibiaface v5 funcional al 100%


    creditos: Summ 100%






    Ver perfil de usuario http://www.tibiaface.com

    2default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Mar Mayo 31, 2016 4:55 am

    Cheka

    avatar
    Miembro
    Miembro
    falto un globalevents para salir el vip

    Ver perfil de usuario

    3default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Mar Mayo 31, 2016 4:55 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:falto un globalevents para salir el vip

    no hace falta porque el sistema trabaja cn ostime



    Ver perfil de usuario http://www.tibiaface.com

    4default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Mar Mayo 31, 2016 6:50 pm

    Cheka

    avatar
    Miembro
    Miembro
    no me refiero que aparesca Vip en el player

    Ver perfil de usuario

    5default teste el Mar Jul 26, 2016 12:26 am

    leandronetx

    avatar
    Nuevo Miembro
    Nuevo Miembro
    Exp Bonus VIP system ?

    Pliss.. 20 %


    por favor, podría hacer


    Guardando su comentario...


    [Tienes que estar registrado y conectado para ver este vínculo] escribió:
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:falto un globalevents para salir el vip

    no hace falta porque el sistema trabaja cn ostime

    Exp Bonus VIP system ?

    Pliss.. 20 %


    por favor, podría hacer



    [Tienes que estar registrado y conectado para ver este vínculo] escribió:
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:falto un globalevents para salir el vip

    no hace falta porque el sistema trabaja cn ostime


    Exp Bonus VIP system ?

    Pliss.. 20 %


    por favor, podría hacer

    Ver perfil de usuario http://www.baixeonline.com.brwww.uptvonline.orgwww.filmesonline.

    6default Error el Sáb Abr 15, 2017 1:20 am

    Zero

    avatar
    Nuevo Miembro
    Nuevo Miembro
    [Tienes que estar registrado y conectado para ver este vínculo]

    Maya el sistema funciona perfectamente pero al logear el player tira ese error que podra ser? Sad

    Ver perfil de usuario

    7default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Sáb Abr 15, 2017 12:04 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:[Tienes que estar registrado y conectado para ver este vínculo]

    Maya el sistema funciona perfectamente pero al logear el player tira ese error que podra ser? Sad

    coloca la linea debajo de:

    Código:
    function onLogin(player)


    estas lineas:

    Código:
    player:loadVipData()
        player:updateVipTime()



    Ver perfil de usuario http://www.tibiaface.com

    8default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Dom Mayo 28, 2017 10:56 am

    estaba probando este sistema de vip
    y me sale el mismo error como a la personas de arriba
    lo intente colocar
    como dijiste y lo puse de varias formas pero el mismo error

    IMAGEN DEL ERROR:
    [Tienes que estar registrado y conectado para ver este vínculo]

    ESTA ES UNA DE LAS FORMAS COMO LO PUSE:
    [Tienes que estar registrado y conectado para ver este vínculo]

    Y DE ESTA FORMA TANBIEM:
    [Tienes que estar registrado y conectado para ver este vínculo]

    Quisiera saver si tiene solucion eso hay porfavor o puede ser que lo de
    DATA/CREATURESCRIPTS/SCRIPT
    tenga el error porque eso es lo que manda

    Ver perfil de usuario

    9default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Dom Mayo 28, 2017 11:16 am

    Invitado


    Invitado
    ♣Marre♣™ escribió:estaba probando este sistema de vip
    y me sale el mismo error como a la personas de arriba
    lo intente colocar
    como dijiste y lo puse de varias formas pero el mismo error

    IMAGEN DEL ERROR:


    ESTA ES UNA DE LAS FORMAS COMO LO PUSE:


    Y DE ESTA FORMA TANBIEM:


    Quisiera saver si tiene solucion eso hay porfavor o puede ser que lo de
    DATA/CREATURESCRIPTS/SCRIPT
    tenga el error porque eso es lo que manda

    Marre, pega tu login.lua y tu creaturescripts.xml



    Última edición por Pip Pup el Dom Mayo 28, 2017 11:54 am, editado 1 vez

    10default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Dom Mayo 28, 2017 11:46 am

    aqui tienes el login.lua:
    Código:
    local events = {
        'ElementalSpheresOverlords',
        'BigfootBurdenVersperoth',
        'Razzagorn',
        'Shatterer',
        'Zamulosh',   
       'The Hunger',
       'The Rage',
       'Eradicator',
       'Eradicator1',
       'Rupture',
       'World Devourer',   
        'Tarbaz',
        'Shulgrax',
        'Ragiaz',
        'Plagirath',
        'Mazoran',
        'Destabilized',
        'BigfootBurdenWiggler',
        'SvargrondArenaKill',
        'NewFrontierShardOfCorruption',
        'NewFrontierTirecz',
        'ServiceOfYalaharDiseasedTrio',
        'ServiceOfYalaharAzerus',
        'ServiceOfYalaharQuaraLeaders',
        'InquisitionBosses',
        'InquisitionUngreez',
        'KillingInTheNameOfKills',
       'KillingInTheNameOfKillss',
       'KillingInTheNameOfKillsss',
        'MastersVoiceServants',
        'SecretServiceBlackKnight',
        'ThievesGuildNomad',
        'WotELizardMagistratus',
        'WotELizardNoble',
        'WotEKeeper',
        'WotEBosses',
        'WotEZalamon',
        'WarzoneThree',
        'PlayerDeath',
        'AdvanceSave',
        'bossesWarzone',
        'AdvanceRookgaard',
        'PythiusTheRotten',
        'DropLoot',
        'Yielothax',
        'BossParticipation',
        'Energized Raging Mage',
        'Raging Mage',
        'modalMD1',
       'modalAD',
        'modalMD',
       'VibrantEgg',
        'DeathCounter',
        'KillCounter',
        'task_count',
        'bless1'
     
    }
     
    local function onMovementRemoveProtection(cid, oldPosition, time)
        local player = Player(cid)
        if not player then
            return true
        end
     
        local playerPosition = player:getPosition()
        if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then
            player:setStorageValue(Storage.combatProtectionStorage, 0)
            return true
        end
     
        addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1)
    end
     
    function onLogin(player)
        player:loadVipData()
        player:updateVipTime()
       local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!'
       if player:getLastLoginSaved() <= 0 then
          loginStr = loginStr .. ' Please choose your outfit.'
          player:sendTutorial(1)
       else
          if loginStr ~= '' then
             player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
          end

          loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved()))
       end
     
        player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
      
        local playerId = player:getId()
     
        -- Stamina
        nextUseStaminaTime[playerId] = 1
     
        -- STAMINA DEVIDO A QUEDAS START
      
        --local stamina_full = 42 * 60 -- config. 42 = horas
       -- if player:getStamina() >= stamina_full then
          --  player:sendCancelMessage("Your stamina is already full.")
       -- elseif player:getPremiumDays() < 1 then
         --   player:sendCancelMessage("You must have a premium account.")
       -- else
          --  player:setStamina(stamina_full)
         -- player:sendTextMessage(MESSAGE_INFO_DESCR, "Your stamina has been refilled.")      
       -- end
      
        -- STAMINA DEVIDO A QUEDAS END
      
        -- Promotion
       --[[ local vocation = player:getVocation()
        local promotion = vocation:getPromotion()
        if player:isPremium() then
            local value = player:getStorageValue(Storage.Promotion)
            if not promotion and value ~= 1 then
                player:setStorageValue(Storage.Promotion, 1)
            elseif value == 1 then
                player:setVocation(promotion)
            end
        elseif not promotion then
            player:setVocation(vocation:getDemotion())
        end--]]
      
         -- ABRIR CHANNELS
        if(not isInArray({1,2,3,5,6,7,8}, player:getVocation():getId()) or player:getLevel() < 6) then
       -- player:openChannel(7)   -- help channel
        player:openChannel(3)   -- world chat
        player:openChannel(6)   -- advertsing rook main
        else
      --  player:openChannel(7)   -- help channel
        player:openChannel(3)   -- world chat
        player:openChannel(5)   -- advertsing main
        end
      
        --
        -- Rewards
        local rewards = #player:getRewardList()
        if(rewards > 0) then
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("You have %d %s in your reward chest.", rewards, rewards > 1 and "rewards" or "reward"))
        end
     
        -- Update player id
        local stats = player:inBossFight()
        if stats then
            stats.playerId = player:getId()
        end
     
        -- fury gates
      
        if Game.getStorageValue(GlobalStorage.FuryGates, (9710)) == 1 then -- for venore
          player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Venore Today.')
    elseif Game.getStorageValue(GlobalStorage.FuryGates, (9711)) == 2 then -- for ab...
          player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Abdendriel Today.')
          elseif Game.getStorageValue(GlobalStorage.FuryGates, (9712)) == 3 then -- for ab...
          player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Thais Today.')
          elseif Game.getStorageValue(GlobalStorage.FuryGates, (9713)) == 4 then -- for ab...
          player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Carlin Today.')
          elseif Game.getStorageValue(GlobalStorage.FuryGates, (9714)) == 5 then -- for ab...
          player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Edron Today.')
          elseif Game.getStorageValue(GlobalStorage.FuryGates, (9716)) == 6 then -- for ab...
         player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Kazordoon Today.')
          end
        
      
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, '[CHECKVIP] Command for check !checkvip.')
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, '[TRAVEL] Command for check !go.')
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, '[EXPBONUS] Command for check !exp.')
            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, '[GUILD LEADER COMMAND] Will change all outfits from members !outfit.')
      
        -- Events
        for i = 1, #events do
            player:registerEvent(events[i])
          player:registerEvent("Destination")
          player:registerEvent("SlotLogin")
           player:loadVipData("vipsystem")
            player:updateVipTime("vipsystem")
            player:registerEvent("DodgeSystem")
        end
     
        if player:getStorageValue(Storage.combatProtectionStorage) <= os.time() then
            player:setStorageValue(Storage.combatProtectionStorage, os.time() + 10)
            onMovementRemoveProtection(playerId, player:getPosition(), 10)
        end
        return true
    end

    Aqui tienes el creaturescripts.xml:

    Código:
    <?xml version="1.0" encoding="UTF-8"?>
    <creaturescripts>

        <event type="healthchange" name="DodgeSystem" script="dodge system.lua" />
       <event type="logout" name="vipsystem" script="vipsystem.lua" />
        <event type="kill" name="task_count" script="taskcount.lua"/>
        <event type="login" name="SlotLogin" script="slot.lua"/>
        <event type="modalwindow" name="Destination" script="homeme.lua"/>
        <event type="preparedeath" name="BFPrepareDeath" script="battlefield.lua" />
       <event type="healthchange" name="BFHealthChange" script="battlefield.lua" />
       <event type="manachange" name="BFManaChange" script="battlefield.lua" />
       <event type="logout" name="BFLogout" script="battlefield.lua" />

    <event type="preparedeath" name="CTFDeath" script="ctf.lua" />
    <event type="healthchange" name="CTFHealthChange" script="ctf.lua" />

     <event type="death" name="DeathCounter" script="kdcounter.lua" />
    <event type="kill" name="KillCounter" script="kdcounter.lua" />

        <!-- WARZONE BOSS -->
      <event type="death" name="WarzoneBossDeath" script="warzone157.lua" />
      
      <!-- Reward Chest 19/01 -->   
        <event type="modalwindow" name="ModalWindowHelper" script="modalwindowhelper.lua" />  
       
       <event type="logout" name="CityWarLogout" script="citywar.lua" />
        <event type="preparedeath" name="CityWarDeath" script="citywar.lua" />
        <event type="textedit" name="CityWarInvite" script="citywar.lua" />
      
        <event type="death" name="BossDeath" script="rewardChest/boss.lua" />
        <event type="healthchange" name="BossParticipation" script="rewardChest/boss.lua" />
        <event type="think" name="BossThink" script="rewardChest/boss.lua" />

        <!-- Bigfoot Burden Quest -->
       <event type="kill" name="Razzagorn" script="Novos/Razzagorn.lua"/>   
       <event type="kill" name="Shatterer" script="Novos/The Shatterer.lua"/>   
       <event type="kill" name="Zamulosh" script="Novos/Zamulosh.lua"/>   
       <event type="kill" name="Tarbaz" script="Novos/Tarbaz.lua"/>
       <event type="kill" name="Shulgrax" script="Novos/Shulgrax.lua"/>
       
       <event type="kill" name="Ragiaz" script="Novos/Ragiaz.lua"/>
       <event type="kill" name="Plagirath" script="Novos/Plagirath.lua"/>
       <event type="kill" name="Mazoran" script="Novos/Mazoran.lua"/>
       
       <event type="kill" name="Destabilized" script="Novos/Destabilized Ferumbras.lua"/>
       
       <!-- 10.94 -->
       <event type="kill" name="The Hunger" script="Novos/The Hunger.lua"/>
       <event type="kill" name="The Rage" script="Novos/The Rage.lua"/>   
       <event type="kill" name="Rupture" script="Novos/Rupture.lua"/>
       <event type="kill" name="World Devourer" script="Novos/World Devourer.lua"/>
       
       <event type="kill" name="Eradicator" script="Novos/Eradicator.lua"/>
       <event type="kill" name="Eradicator1" script="Novos/Eradicator1.lua"/>
       
       <event type="kill" name="BigfootBurdenVersperoth" script="quests/bigfoot burden/VersperothKill.lua" />
       <event type="kill" name="WarzoneThree" script="gnomebase/warzone3.lua"/>
       <event type="kill" name="BigfootBurdenWiggler" script="quests/bigfoot burden/WigglerKill.lua" />
       <event type="kill" name="bossesWarzone" script="gnomebase/bossesWarzone.lua"/>


      <event type="preparedeath" name="ZumbiDeath" script="ZE_creaturescript.lua"/>
     <!--<event type="preparedeath" name="ZumbiDeath1" script="ZE_creaturescript1.lua"/>-->
        <!-- REWARD CHEST -->

       <event type="advance" name="Recompense" script="others/recompense.lua"/>
        <event type="modalwindow" name="modalAD" script="custom/modalAD.lua"/>
        <event type="modalwindow" name="modalMD" script="custom/modalMD.lua"/>
        <event type="modalwindow" name="modalMD1" script="custom/modalMD1.lua"/>
       <event type="modalwindow" name="VibrantEgg" script="custom/VibrantEgg.lua"/>
       
        <!-- ragingmagetower -->
       <event type="kill" name="Yielothax" script="ragingmagetower/yielothax.lua"/>
       <event type="kill" name="Energized Raging Mage" script="ragingmagetower/energized.lua"/>
       <event type="kill" name="Raging Mage" script="ragingmagetower/raging.lua"/>

       
       <event type="login" name="bless1" script="freeblesslowlevel.lua"/>
       <!-- BattleField Event -->
       <event type="login" name="battleflogin" script="others/battlefield.lua"/>
       <event type="preparedeath" name="battledeath" script="others/battlefield.lua"/>
       
       <event type="login" name="battleflogin1" script="others/battlefield1.lua"/>
       <event type="preparedeath" name="battledeath1" script="others/battlefield1.lua"/>
       
       

       <!-- Rookgaard Cockroach -->
       <event type="advance" name="AdvanceRookgaard" script="rookgaard/advance.lua" />

       <!-- Elemental Spheres Quest -->
       <event type="kill" name="ElementalSpheresOverlords" script="quests/elemental spheres/OverlordsKill.lua" />

       
       <!-- Svargrond Arena: Killing a boss -->
       <event type="kill" name="SvargrondArenaKill" script="quests/svargrond arena/arena_kill.lua" />

       <!-- The New Frontier Quest -->
       <event type="kill" name="NewFrontierShardOfCorruption" script="quests/the new frontier/ShardOfCorruption.lua" />
       <event type="kill" name="NewFrontierTirecz" script="quests/the new frontier/TireczKill.lua" />

       <!-- In Service Of Yalahar Quest -->
       <event type="kill" name="ServiceOfYalaharAzerus" script="quests/in service of yalahar/AzerusKill.lua" />
       <event type="kill" name="ServiceOfYalaharDiseasedTrio" script="quests/in service of yalahar/DiseasedTrioKill.lua" />
       <event type="kill" name="ServiceOfYalaharQuaraLeaders" script="quests/in service of yalahar/QuaraLeadersKill.lua" />

       <!-- Inquisition Quest -->
       <event type="kill" name="InquisitionBosses" script="quests/inquisition/inquisitionQuestBosses.lua" />
       <event type="kill" name="InquisitionUngreez" script="quests/inquisition/inquisitionQuestUngreez.lua" />

       <!-- Killing In The Name Of Quest -->
       <event type="kill" name="KillingInTheNameOfKills" script="quests/killing in the name of/kills.lua" />
       
       <event type="kill" name="KillingInTheNameOfKillss" script="necro.lua" />
       <event type="kill" name="KillingInTheNameOfKillsss" script="minos.lua" />

       <!-- The Masters Voice Quest -->
       <event type="kill" name="MastersVoiceServants" script="quests/their master's voice/ServantsKill.lua" />

       <!-- Thieves Guild Quest -->
       <event type="kill" name="ThievesGuildNomad" script="others/nomad.lua" />

       <!-- Secret Service Quest -->
       <event type="kill" name="SecretServiceBlackKnight" script="others/blackKnight.lua" />

       <!-- Wrath of the Emperor Quest -->
       <event type="kill" name="WotELizardMagistratus" script="quests/wrath of the emperor/lizardmagistratus.lua" />
       <event type="kill" name="WotELizardNoble" script="quests/wrath of the emperor/lizardnoble.lua" />
       <event type="kill" name="WotEKeeper" script="quests/wrath of the emperor/keeper.lua" />
       <event type="kill" name="WotEBosses" script="quests/wrath of the emperor/bosses.lua" />
       <event type="kill" name="WotEZalamon" script="quests/wrath of the emperor/zalamon.lua" />

       <!-- Pythius The Rotten (Firewalker Boots Quest) -->
       <event type="kill" name="PythiusTheRotten" script="others/PythiusTheRotten.lua" />

       <!-- Others -->
       <event type="login" name="PlayerLogin" script="others/login.lua" />
       <event type="login" name="FirstItems" script="others/firstitems.lua" />
       <event type="login" name="RegenerateStamina" script="others/regeneratestamina.lua" />
       <event type="login" name="OfflineTraining" script="others/offlinetraining.lua" />
        <event type="login" name="AddonsMounts" script="others/addons-montarias.lua"/>
       <event type="logout" name="PlayerLogout" script="others/logout.lua" />

       <event type="death" name="PlayerDeath" script="others/playerdeath.lua" />
       <event type="death" name="DropLoot" script="others/droploot.lua" />
       <event type="advance" name="AdvanceSave" script="others/advance_save.lua" />
       <event type="death" name="WhiteDeerDeath" script="others/whitedeer.lua" />
       <event type="death" name="WhiteDeerScoutsDeath" script="others/whitedeer_scouts.lua" />
    </creaturescripts>

    Ver perfil de usuario

    11default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Dom Mayo 28, 2017 12:17 pm

    Invitado


    Invitado
    @""♣Marre♣™"" fijate, en ningun lado dice que agregues una tag a creaturescripts.xml, y dice que no encuentra el evento onLogout por en vipsystem.lua no esta puesto -> function onLogout()

    Solución: Quita esa línea de creaturescripts.xml -> <event type="logout" name="vipsystem" script="vipsystem.lua" />

    12default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Dom Mayo 28, 2017 7:43 pm

    TENGO EL MISMO ERROR :
    CUANDO NO COLOCO
    Código:
    player:loadVipData()
        player:updateVipTime()
    TODO EL SCRIPT de vip me tira error
    ahora mieren todos me estan tirando error y si pongo el
    Código:
    player:loadVipData()
        player:updateVipTime()
    no deja lo player entrar al server y es peor da error todo los scripts que tiene el server

    aqui esta el error cuando lo quito de Login,lua
    [Tienes que estar registrado y conectado para ver este vínculo]

    ESTE ES MI LOGIN.LUA
    ALGUIEN QUE ME LO PUEDA PONER HAY
    Y YO LO PRUEVO PARA VER SI FUNCIONA:
    Login.lua:
    local events = {
    'ElementalSpheresOverlords',
    'BigfootBurdenVersperoth',
    'Razzagorn',
    'Shatterer',
    'Zamulosh',
    'The Hunger',
    'The Rage',
    'Eradicator',
    'Eradicator1',
    'Rupture',
    'World Devourer',
    'Tarbaz',
    'Shulgrax',
    'Ragiaz',
    'Plagirath',
    'Mazoran',
    'Destabilized',
    'BigfootBurdenWiggler',
    'SvargrondArenaKill',
    'NewFrontierShardOfCorruption',
    'NewFrontierTirecz',
    'ServiceOfYalaharDiseasedTrio',
    'ServiceOfYalaharAzerus',
    'ServiceOfYalaharQuaraLeaders',
    'InquisitionBosses',
    'InquisitionUngreez',
    'KillingInTheNameOfKills',
    'KillingInTheNameOfKillss',
    'KillingInTheNameOfKillsss',
    'MastersVoiceServants',
    'SecretServiceBlackKnight',
    'ThievesGuildNomad',
    'WotELizardMagistratus',
    'WotELizardNoble',
    'WotEKeeper',
    'WotEBosses',
    'WotEZalamon',
    'WarzoneThree',
    'PlayerDeath',
    'AdvanceSave',
    'bossesWarzone',
    'AdvanceRookgaard',
    'PythiusTheRotten',
    'DropLoot',
    'Yielothax',
    'BossParticipation',
    'Energized Raging Mage',
    'Raging Mage',
    'modalMD1',
    'modalAD',
    'modalMD',
    'VibrantEgg',
    'DeathCounter',
    'KillCounter',
    'task_count',
    'dodge',
    'bless1'

    }

    local function onMovementRemoveProtection(cid, oldPosition, time)
    local player = Player(cid)
    if not player then
    return true
    end

    local playerPosition = player:getPosition()
    if (playerPosition.x ~= oldPosition.x or playerPosition.y ~= oldPosition.y or playerPosition.z ~= oldPosition.z) or player:getTarget() then
    player:setStorageValue(Storage.combatProtectionStorage, 0)
    return true
    end

    addEvent(onMovementRemoveProtection, 1000, cid, oldPosition, time - 1)
    end

    function onLogin(player)
    local loginStr = 'Welcome to ' .. configManager.getString(configKeys.SERVER_NAME) .. '!'
    if player:getLastLoginSaved() <= 0 then
    loginStr = loginStr .. ' Please choose your outfit.'
    player:sendTutorial(1)
    else
    if loginStr ~= '' then
    player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)
    end

    loginStr = string.format('Your last visit was on %s.', os.date('%a %b %d %X %Y', player:getLastLoginSaved()))
    end

    player:sendTextMessage(MESSAGE_STATUS_DEFAULT, loginStr)

    local playerId = player:getId()

    -- Stamina
    nextUseStaminaTime[playerId] = 1

    -- STAMINA DEVIDO A QUEDAS START

    --local stamina_full = 42 * 60 -- config. 42 = horas
    -- if player:getStamina() >= stamina_full then
    -- player:sendCancelMessage("Your stamina is already full.")
    -- elseif player:getPremiumDays() < 1 then
    -- player:sendCancelMessage("You must have a premium account.")
    -- else
    -- player:setStamina(stamina_full)
    -- player:sendTextMessage(MESSAGE_INFO_DESCR, "Your stamina has been refilled.")
    -- end

    -- STAMINA DEVIDO A QUEDAS END

    -- Promotion
    --[[ local vocation = player:getVocation()
    local promotion = vocation:getPromotion()
    if player:isPremium() then
    local value = player:getStorageValue(Storage.Promotion)
    if not promotion and value ~= 1 then
    player:setStorageValue(Storage.Promotion, 1)
    elseif value == 1 then
    player:setVocation(promotion)
    end
    elseif not promotion then
    player:setVocation(vocation:getDemotion())
    end--]]

    -- ABRIR CHANNELS
    if(not isInArray({1,2,3,5,6,7,8}, player:getVocation():getId()) or player:getLevel() < 6) then
    -- player:openChannel(7) -- help channel
    player:openChannel(3) -- world chat
    player:openChannel(6) -- advertsing rook main
    else
    -- player:openChannel(7) -- help channel
    player:openChannel(3) -- world chat
    player:openChannel(5) -- advertsing main
    end

    --
    -- Rewards
    local rewards = #player:getRewardList()
    if(rewards > 0) then
    player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format("You have %d %s in your reward chest.", rewards, rewards > 1 and "rewards" or "reward"))
    end

    -- Update player id
    local stats = player:inBossFight()
    if stats then
    stats.playerId = player:getId()
    end

    -- fury gates

    if Game.getStorageValue(GlobalStorage.FuryGates, (9710)) == 1 then -- for venore
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Venore Today.')
    elseif Game.getStorageValue(GlobalStorage.FuryGates, (9711)) == 2 then -- for ab...
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Abdendriel Today.')
    elseif Game.getStorageValue(GlobalStorage.FuryGates, (9712)) == 3 then -- for ab...
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Thais Today.')
    elseif Game.getStorageValue(GlobalStorage.FuryGates, (9713)) == 4 then -- for ab...
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Carlin Today.')
    elseif Game.getStorageValue(GlobalStorage.FuryGates, (9714)) == 5 then -- for ab...
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Edron Today.')
    elseif Game.getStorageValue(GlobalStorage.FuryGates, (9716)) == 6 then -- for ab...
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Fury Gate is on Kazordoon Today.')
    end


    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, '[CHECKVIP] Command for check !checkvip.')
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, '[TRAVEL] Command for check !go.')
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, '[EXPBONUS] Command for check !exp.')
    player:sendTextMessage(MESSAGE_STATUS_CONSOLE_ORANGE, '[GUILD LEADER COMMAND] Will change all outfits from members !outfit.')

    -- Events
    for i = 1, #events do
    player:registerEvent(events[i])
    player:registerEvent("Destination")
    player:registerEvent("SlotLogin")
    end

    if player:getStorageValue(Storage.combatProtectionStorage) <= os.time() then
    player:setStorageValue(Storage.combatProtectionStorage, os.time() + 10)
    onMovementRemoveProtection(playerId, player:getPosition(), 10)
    end
    return true
    end

    Ver perfil de usuario

    13default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Dom Mayo 28, 2017 7:54 pm

    Invitado


    Invitado
    Marre dice que es un valor nulo, intenta crear un archivo en data/lib con cualquier nombre y alli dentro pega todo lo que tienes en vipsystem.lua


    Eso deberia solucionar tu problema y el de casi todos.

    14default Re: [Sistema] Vip system Para Tfs 1.0 y 1.1 el Dom Mayo 28, 2017 8:05 pm

    NADA IGUAL ME QUEDA TIRANDO EL MISMO ERROR

    Ver perfil de usuario

    Contenido patrocinado


    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.