• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Actions] Exercise Weapons And Dummies

    Compartir:

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

    1default [Actions] Exercise Weapons And Dummies el Jue Feb 21, 2019 8:37 pm

    [Adm] SevuOT

    [Adm] SevuOT
    Miembro
    Miembro
    Hola amigos, aquí les traigo el sistema: maniquíes y armas de entrenamiento, comúnmente conocido como exercise weapons!

    bueno esta es mi versión personalizada y se que les gustara!

    REQUISITOS:
    >> TFS 1.X+

    Aqui el codigo de action:
    Código:

    --[[ Creditos: [Adm] SevuOT from Tibiaface.com ]]--
    --[[ Lista de ID para los maniquies disponibles ]]--
    --# skillSpeed ref: 1 = 100%, 0.5 = 50%, 0.25 = 25%
    local dummies = {
       [26403] = { skillRate = 1, skillSpeed = 1 },
       [26404] = { skillRate = 1, skillSpeed = 1 }
    }

    --[[ Parametros para el entrenamiento ]]--
    local staminaTries = 60 --[[ valor por defecto 60 ]] -- este valor equivale a 60 segundos
    local skillTries = 7 --[[ valor por defecto 7 ]] -- este valor se modifica segun el skillRate del maniquie asi que ten cuidado.
    local skillSpent = function() return math.random(425, 575) end --[[ valores por defecto 425, 575 ]] -- este valor se modifica segun el skillRate del maniquie asi que ten cuidado.

    --[[ Lista de ID, Effect, DistEffect para las vocations ]]--
    local weapons = {
       --[[ magiclevel druid ]] [26401] = { shootEffect = CONST_ME_HITAREA, shootDistEffect = CONST_ANI_CAKE, skillType = SKILL_MAGLEVEL },
       --[[ magiclevel sorcerer ]] [26402] = { shootEffect = CONST_ME_HITAREA, shootDistEffect = CONST_ANI_ENERGY, skillType = SKILL_MAGLEVEL },
       --[[ distance ]] [26400] = { shootEffect = CONST_ME_HITAREA, shootDistEffect = CONST_ANI_SIMPLEARROW, skillType = SKILL_DISTANCE },
       --[[ sword ]] [26397] = { shootEffect = CONST_ME_HITAREA, skillType = SKILL_SWORD },
       --[[ axe ]] [26398] = { shootEffect = CONST_ME_HITAREA, skillType = SKILL_AXE },
       --[[ club ]] [26399] = { shootEffect = CONST_ME_HITAREA, skillType = SKILL_CLUB }
    }

    --[[ tabla de eventos "esta variable no debe ser modificada en ninguna parte del script a menos que quieras bugs" ]]
    if not e_traingEvents then e_traingEvents = {} end

    local function exerciseDummyTrainEvent(params, weapon)
       local player = Player(params.cid)
       if player then
          if player:getPosition():getDistance(params.currentPos) == 0 then
             if weapon.shootDistEffect then player:getPosition():sendDistanceEffect(params.dummyPos, weapon.shootDistEffect) end
             if weapon.shootEffect then params.dummyPos:sendMagicEffect(weapon.shootEffect) end
             if weapon.skillType == SKILL_MAGLEVEL then
                player:addManaSpent((skillSpent() * params.dummy.skillRate) * configManager.getNumber(configKeys.RATE_MAGIC))
             else
                player:addSkillTries(weapon.skillType, (skillTries * params.dummy.skillRate) * configManager.getNumber(configKeys.RATE_SKILL))
             end
             local currentStamina = player:getStamina()
             if currentStamina <
             player:setStamina(player:getStamina() + staminaTries)
             local weaponCharges = params.item:getCharges()
             if weaponCharges > 1 then
                params.item:transform(params.item:getId(), weaponCharges - 1)
                e_traingEvents[params.cid] = addEvent(exerciseDummyTrainEvent, player:getVocation():getAttackSpeed() * params.dummy.skillSpeed, params, weapon)
                return true
             else
                params.item:remove()
                player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Your exercise weapon has expired, therefore your training too.")
             end
          else
             player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have finished your training.")
          end
       end
       e_traingEvents[params.cid] = nil
    end

    function onUse(player, item, fromPos, target, toPos, isHotkey)
       if not target then
          return player:sendCancelMessage(Game.getReturnMessage(RETURNVALUE_NOTPOSSIBLE))
       end
       if not player:getPosition():getTile():hasFlag(TILESTATE_PROTECTIONZONE) then
          return player:sendCancelMessage("You can only train in protection zone.")
       end
       local dummy = dummies[target:getId()]
       local weapon = weapons[item:getId()]
       if not weapon or not dummy then
          return player:sendCancelMessage(Game.getReturnMessage(RETURNVALUE_CANNOTUSETHISOBJECT))
       end
       if player:getPosition():getDistance(target:getPosition()) > 1 then
          return player:sendCancelMessage(Game.getReturnMessage(RETURNVALUE_THEREISNOWAY))
       end
       local params = {}
       params.cid = player:getId()
       if not e_traingEvents[params.cid] then
          params.currentPos = player:getPosition()
          params.dummyPos = target:getPosition()
          params.item = item
          params.dummy = dummy
          exerciseDummyTrainEvent(params, weapon)
          player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You have started training with dummy.")
       else
          player:sendCancelMessage("You can not train with 2 weapons at the same time.")
       end
       return true
    end

    Este es un action-script, sigue los pasos del tutorial de maya para configurar algunas cosas importantes, si desea que los jugadores incrementen 1 skill level completo por cada hit, entonces ignore este post y siga el de maya!

    Aquí el link: [Tienes que estar registrado y conectado para ver este vínculo]

    Si este script te genera algún error en consola, por favor publique el mensaje de error o en su defecto el capture de la consola!

    Si el script no te funciona, pero no tienes mensajes de error en la consola, no publiques nada aquí, es mas que obvio que el error es suyo y deberá seguir los pasos correctamente una ves mas!



    Última edición por [Adm] SevuOT el Jue Jun 06, 2019 8:43 pm, editado 1 vez



    Si necesitas hospedaje para tu servidor usa este enlace y mira los buenos planes de Windows y Linux:
    Si tu cuenta de PayPal no esta verificada no importara, igual aceptan pagos con cuentas no verificadas.


    [Actions] Exercise Weapons And Dummies TRJEB8aSRYK5IulEU6ilJw

    2default Re: [Actions] Exercise Weapons And Dummies el Mar Mar 05, 2019 10:59 am

    vine96

    vine96
    Nuevo Miembro
    Nuevo Miembro
    no funcional =/ tfs 1.3 otx 3.10

    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.

     

    BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).