Ir para conteúdo

[AJUDA] Tile com Reset


Posts Recomendados

Eai galera do ### blz? Eu precisava urgente de uma script que o player soh pode pisar no Tile com X resets.

Exemplo: Quero fazer uma quest pra 10 resets, players com menos de 10 resets nao passam pelo Tile.

Vou colocar meu sistema de reset aqui V

Spoiler

--[[ SCRIPTING> MarcelloMkez <scriptING ]]

     --[[  [Advanced Reset System]
                   Autor: MarcelloMkez
                   Versão: 1.0
                   TFS: 0.3.6
                   Testado em: 8.50
                   Fórum: www.xtibia.com/forum/topic/138026-talk-action-advanced-reset-system/

     [Características]
            ~ Versão 1.0 ~
                
           - Resets no Look;  
           - Premium Account ou não;
           - Mudar Vocação;
           - Limite de Resets;
           - Opções para Abilitar e Desabilitar Condições;
           
         [Em Construção]

       - Stages Free e Premium; 
       - 'Talvez' um novo sistema de mudar Vocação;
           sem data para postagem.   ]]
        
         

    function onSay(cid, words, param)

 --[Configurações de Condição]__
  
    config = {                                                                             --[[verdadeiro / Falso]]
   
      needPa = false,                   -- Precisa de Premium Account?                          [true / false]
      needPz = false,                    -- Precisa estar em Protection Zone?                    [true / false]      
      battle = false,                   -- Precisa estar sem Batlle para Resetar?               [true / false]
      withe = false,                    -- Players PK Withe pode Resetar?                       [true / false]       
      red = true,                      -- Players PK Red pode Resetar?                         [true / false]
      tp = true,                        -- Teleportar para o Templo após o reset?               [true / false]
      look = true,                      -- Mostrar Resets no Look do Player?                    [true / false]
      addLimite = true,                -- Abilitar Limite de Resets?                           [true / false]
      setClasse = false,                 -- Mudar Vocação do player quando resetar?              [true / false]
      storage = 2310,                   -- Storage                                                 [valor]
           
   
 --[Configurações do Reset]__ 
                
              resetStatus = {    
 
              player = getPlayerGUID(cid),        -- Não Mude.
              lvl = 250000 ,                         -- Level Necessário para Resetar.                                 [valor]
              lvlreset = 5000,                       -- Level que retornará após o Reset.                              [valor]
              limite = 25,                       -- Máximo de resets que um player pode chegar.                    [valor]
              newClasse = 5,                      -- Id da Nova Vocação após o Reset.                               [valor]
              tempo= 1                            -- Tempo para o Player deslogar para Resetar. Em segundos.        [valor]
        },
    }   
               
 --[Funções]__
            
                   function Reseting(cid)
             resets = getResets(cid)
                  setPlayerStorageValue(cid,config.storage,resets+1)
                   doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
                     doPlayerSetVocation(cid, config.resetStatus.newClasse)
                     doRemoveCreature(cid)
                    db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)
                         db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
                          return TRUE
            end
                
                    function noAll(cid)
                   resets = getResets(cid)
                     setPlayerStorageValue(cid,config.storage,resets+1)
                     doRemoveCreature(cid)
                     db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
                         db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)
                 return TRUE
                end
                        
                        function noTeleporting(cid)
                       resets = getResets(cid)
                         setPlayerStorageValue(cid,config.storage,resets+1)
                          doPlayerSetVocation(cid, config.resetStatus.newClasse)
                         doRemoveCreature(cid)
                       db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
                         db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)
             return TRUE
            end
                        
                        function noLook(cid)
                       resets = getResets(cid)
                         setPlayerStorageValue(cid,config.storage,resets+1)
                         doPlayerSetVocation(cid, config.resetStatus.newClasse)
                         doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
                         doRemoveCreature(cid)
                     db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
                         db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)
             return TRUE
            end

                        function noClasse(cid)
                      resets = getResets(cid)
                         setPlayerStorageValue(cid,config.storage,resets+1)
                         doTeleportThing(cid,   getTownTemplePosition(getPlayerTown(cid)))
                         doRemoveCreature(cid)
                        db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)
                         db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
                          return TRUE
            end
                        
                        function setClasse(cid)
                         resets = getResets(cid)
                         setPlayerStorageValue(cid,config.storage,resets+1)
                         doPlayerSetVocation(cid, config.resetStatus.newClasse)                  
                         doRemoveCreature(cid)
                        db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)
                         db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
                          return TRUE
            end
                        
                        function look(cid)
             resets = getResets(cid)
                         setPlayerStorageValue(cid,config.storage,resets+1)
                         doRemoveCreature(cid)
                       db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)
                         db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
                          return TRUE
            end
                        
                        function teleporting(cid)
             resets = getResets(cid)
                         setPlayerStorageValue(cid,config.storage,resets+1)
                         doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
                         doRemoveCreature(cid)
             db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)
                         db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)
                          return TRUE
            end
                        
                  function getResets(cid)
            resets = getPlayerStorageValue(cid,config.storage)
      
               if resets < 0 then
             resets = 0
           end
            return resets
    
        end
   
 
    local resets = getResets(cid)
    local needLvl ="Você precisa de "..config.resetStatus.lvl-getPlayerLevel(cid).." level's para resetar."
    local msg ="~~[Reset: "..getResets(cid).."]~~ 'Sucesso ao Resetar!  Você será deslogado em "..config.resetStatus.tempo.." Segundos."
        
    
  --[Condiçoes]__       
 
  if(config.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then
   doPlayerSendTextMessage(cid,22,"Você Precisa estar em Protection Zone Para Resetar.")
    return TRUE
  
    elseif(config.addLimite == true) and (getResets(cid) == config.resetStatus.limite) then
        doPlayerSendTextMessage(cid, 22, "Você ja atingiu o Limite de Resets.")
    return TRUE
        
        elseif(config.withe == false) and (getCreatureSkullType(cid) == 3) then
     doPlayerSendTextMessage(cid,22,"Você ta PK White, por isso não pode resetar.")
    return TRUE
        
    elseif(config.red == false) and (getCreatureSkullType(cid) == 4) then
     doPlayerSendTextMessage(cid,22,"Você ta PK Red, por isso não pode resetar.")
     return TRUE
         
    elseif(config.needPa == true) and not isPremium(cid) then
     doPlayerSendTextMessage(cid,22,"Você Precisa ser Premium Account para Resetar.")
     return TRUE
         
    elseif(config.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then
     doPlayerSendTextMessage(cid,22,"Você Precisa estar sem Battle para Resetar.")      
    return TRUE 

        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == true) then
          addEvent(Reseting, config.resetStatus.tempo* 1000, cid)
          
        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == false) then 
         addEvent(noAll, config.resetStatus.tempo* 1000, cid)
          
        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == true) then
          addEvent(noTeleporting, config.resetStatus.tempo* 1000, cid)
           
        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == true) then
          addEvent(noLook, config.resetStatus.tempo* 1000, cid)
          
        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == false) then
           addEvent(noClasse, config.resetStatus.tempo* 1000, cid)
          
        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == true) then
           addEvent(setClasse, config.resetStatus.tempo* 1000, cid)
           
        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == false) then
           addEvent(look, config.resetStatus.tempo* 1000, cid)
        
        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == false) then
           addEvent(teleporting, config.resetStatus.tempo* 1000, cid)
           
    elseif doPlayerSendCancel(cid, needLvl) then
       doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
           return TRUE
    end
        if doPlayerPopupFYI(cid, msg) then
        
        end
        return TRUE
        
end

--[by: MarcelloMkez]__

 

Link para o comentário
Compartilhar em outros sites

5 horas atrás, fritsche2002 disse:

Eai galera do ### blz? Eu precisava urgente de uma script que o player soh pode pisar no Tile com X resets.

Exemplo: Quero fazer uma quest pra 10 resets, players com menos de 10 resets nao passam pelo Tile.

Vou colocar meu sistema de reset aqui V

  Ocultar conteúdo

--[[ SCRIPTING> MarcelloMkez <scriptING ]]

     --[[  [Advanced Reset System]

                   Autor: MarcelloMkez

                   Versão: 1.0

                   TFS: 0.3.6

                   Testado em: 8.50

                   Fórum: www.xtibia.com/forum/topic/138026-talk-action-advanced-reset-system/

     [Características]

            ~ Versão 1.0 ~

                

           - Resets no Look;  

           - Premium Account ou não;

           - Mudar Vocação;

           - Limite de Resets;

           - Opções para Abilitar e Desabilitar Condições;

           

         [Em Construção]

       - Stages Free e Premium; 

       - 'Talvez' um novo sistema de mudar Vocação;

           sem data para postagem.   ]]

        

         

    function onSay(cid, words, param)

 --[Configurações de Condição]__

  

    config = {                                                                             --[[verdadeiro / Falso]]

   

      needPa = false,                   -- Precisa de Premium Account?                          [true / false]

      needPz = false,                    -- Precisa estar em Protection Zone?                    [true / false]      

      battle = false,                   -- Precisa estar sem Batlle para Resetar?               [true / false]

      withe = false,                    -- Players PK Withe pode Resetar?                       [true / false]       

      red = true,                      -- Players PK Red pode Resetar?                         [true / false]

      tp = true,                        -- Teleportar para o Templo após o reset?               [true / false]

      look = true,                      -- Mostrar Resets no Look do Player?                    [true / false]

      addLimite = true,                -- Abilitar Limite de Resets?                           [true / false]

      setClasse = false,                 -- Mudar Vocação do player quando resetar?              [true / false]

      storage = 2310,                   -- Storage                                                 [valor]

           

   

 --[Configurações do Reset]__ 

                

              resetStatus = {    

 

              player = getPlayerGUID(cid),        -- Não Mude.

              lvl = 250000 ,                         -- Level Necessário para Resetar.                                 [valor]

              lvlreset = 5000,                       -- Level que retornará após o Reset.                              [valor]

              limite = 25,                       -- Máximo de resets que um player pode chegar.                    [valor]

              newClasse = 5,                      -- Id da Nova Vocação após o Reset.                               [valor]

              tempo= 1                            -- Tempo para o Player deslogar para Resetar. Em segundos.        [valor]

        },

    }   

               

 --[Funções]__

            

                   function Reseting(cid)

             resets = getResets(cid)

                  setPlayerStorageValue(cid,config.storage,resets+1)

                   doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))

                     doPlayerSetVocation(cid, config.resetStatus.newClasse)

                     doRemoveCreature(cid)

                    db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)

                         db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)

                          return TRUE

            end

                

                    function noAll(cid)

                   resets = getResets(cid)

                     setPlayerStorageValue(cid,config.storage,resets+1)

                     doRemoveCreature(cid)

                     db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)

                         db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)

                 return TRUE

                end

                        

                        function noTeleporting(cid)

                       resets = getResets(cid)

                         setPlayerStorageValue(cid,config.storage,resets+1)

                          doPlayerSetVocation(cid, config.resetStatus.newClasse)

                         doRemoveCreature(cid)

                       db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)

                         db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)

             return TRUE

            end

                        

                        function noLook(cid)

                       resets = getResets(cid)

                         setPlayerStorageValue(cid,config.storage,resets+1)

                         doPlayerSetVocation(cid, config.resetStatus.newClasse)

                         doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))

                         doRemoveCreature(cid)

                     db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)

                         db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)

             return TRUE

            end

                        function noClasse(cid)

                      resets = getResets(cid)

                         setPlayerStorageValue(cid,config.storage,resets+1)

                         doTeleportThing(cid,   getTownTemplePosition(getPlayerTown(cid)))

                         doRemoveCreature(cid)

                        db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)

                         db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)

                          return TRUE

            end

                        

                        function setClasse(cid)

                         resets = getResets(cid)

                         setPlayerStorageValue(cid,config.storage,resets+1)

                         doPlayerSetVocation(cid, config.resetStatus.newClasse)                  

                         doRemoveCreature(cid)

                        db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)

                         db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)

                          return TRUE

            end

                        

                        function look(cid)

             resets = getResets(cid)

                         setPlayerStorageValue(cid,config.storage,resets+1)

                         doRemoveCreature(cid)

                       db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player)

                         db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)

                          return TRUE

            end

                        

                        function teleporting(cid)

             resets = getResets(cid)

                         setPlayerStorageValue(cid,config.storage,resets+1)

                         doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))

                         doRemoveCreature(cid)

             db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player)

                         db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player)

                          return TRUE

            end

                        

                  function getResets(cid)

            resets = getPlayerStorageValue(cid,config.storage)

      

               if resets < 0 then

             resets = 0

           end

            return resets

    

        end

   

 

    local resets = getResets(cid)

    local needLvl ="Você precisa de "..config.resetStatus.lvl-getPlayerLevel(cid).." level's para resetar."

    local msg ="~~[Reset: "..getResets(cid).."]~~ 'Sucesso ao Resetar!  Você será deslogado em "..config.resetStatus.tempo.." Segundos."

        

    

  --[Condiçoes]__       

 

  if(config.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then

   doPlayerSendTextMessage(cid,22,"Você Precisa estar em Protection Zone Para Resetar.")

    return TRUE

  

    elseif(config.addLimite == true) and (getResets(cid) == config.resetStatus.limite) then

        doPlayerSendTextMessage(cid, 22, "Você ja atingiu o Limite de Resets.")

    return TRUE

        

        elseif(config.withe == false) and (getCreatureSkullType(cid) == 3) then

     doPlayerSendTextMessage(cid,22,"Você ta PK White, por isso não pode resetar.")

    return TRUE

        

    elseif(config.red == false) and (getCreatureSkullType(cid) == 4) then

     doPlayerSendTextMessage(cid,22,"Você ta PK Red, por isso não pode resetar.")

     return TRUE

         

    elseif(config.needPa == true) and not isPremium(cid) then

     doPlayerSendTextMessage(cid,22,"Você Precisa ser Premium Account para Resetar.")

     return TRUE

         

    elseif(config.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then

     doPlayerSendTextMessage(cid,22,"Você Precisa estar sem Battle para Resetar.")      

    return TRUE 

        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == true) then

          addEvent(Reseting, config.resetStatus.tempo* 1000, cid)

          

        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == false) then 

         addEvent(noAll, config.resetStatus.tempo* 1000, cid)

          

        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == true) then

          addEvent(noTeleporting, config.resetStatus.tempo* 1000, cid)

           

        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == true) then

          addEvent(noLook, config.resetStatus.tempo* 1000, cid)

          

        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == false) then

           addEvent(noClasse, config.resetStatus.tempo* 1000, cid)

          

        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == true) then

           addEvent(setClasse, config.resetStatus.tempo* 1000, cid)

           

        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == false) then

           addEvent(look, config.resetStatus.tempo* 1000, cid)

        

        elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == false) then

           addEvent(teleporting, config.resetStatus.tempo* 1000, cid)

           

    elseif doPlayerSendCancel(cid, needLvl) then

       doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)

           return TRUE

    end

        if doPlayerPopupFYI(cid, msg) then

        

        end

        return TRUE

        

end

--[by: MarcelloMkez]__

 

Quest_reset.lua

 

 

function onStepIn(cid, item, position, fromPosition)local TotReset = getPlayerStorageValue(cid,2310)if TotReset >= 10 thendoPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Boa sorte na quest!!!")elsedoTeleportThing(cid, fromPosition)doSendMagicEffect(getCreaturePos(cid), 1)doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Voce precisa ter 10 {Resets} para passar!!!")endreturn trueend

 

 

Movements.xml

 

<movevent type="StepIn" actionid="32000" event="script" value="Quest_reset.lua"/>

 

 

Adicione o Action Id no piso com o Editor de mapas ( RME ) e so quem tem 10 resets ira passar pelo piso. !

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...