• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Exercise Weapons (Tfs 1.x)

    Compartir:

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

    1default [Sistema] Exercise Weapons (Tfs 1.x) el Mar Sep 11, 2018 11:36 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Hola Tibiaface, esa es la primera versión del "Ejercicio Weapons",


    Siéntase libre de sugerir modificaciones y ayudar a mejorarlo!
    Si no tiene los sprites, puede utilizar otros, como el "Training Dummy" y otros items correspondientes.



    nos vamos a data/actions/scripts

    copiamos cualquier archivo y renombramos por exercise_training.lua y pegamos esto dentro

    Código:
    local skills = {
       [26397] = {id=SKILL_SWORD,voc=4},
       [26398] = {id=SKILL_AXE,voc=4},
       [26399] = {id=SKILL_CLUB,voc=4},
       [26400] = {id=SKILL_DISTANCE,voc=3,range=CONST_ANI_SIMPLEARROW},
       [26401] = {id=SKILL_MAGLEVEL,voc=2,range=CONST_ANI_ENERGY},
       [26402] = {id=SKILL_MAGLEVEL,voc=1,range=CONST_ANI_FIRE},
    }

    ------- CONFIG -----//
    local dummies = {26403,26404}
    local skill_gain = 1 -- per hit
    local gain_stamina = 60

    local function start_train(pid,start_pos,itemid,fpos)
       local player = Player(pid)
       if player ~= nil then
          local pos_n = player:getPosition()

          if start_pos:getDistance(pos_n) == 0 and getTilePzInfo(pos_n) then
             if player:getItemCount(itemid) >= 1 then
                local exercise = player:getItemById(itemid,true)

                if exercise:isItem() then
                   if exercise:hasAttribute(ITEM_ATTRIBUTE_CHARGES) then
                      local charges_n = exercise:getAttribute(ITEM_ATTRIBUTE_CHARGES)

                      if charges_n >= 1 then
                         exercise:setAttribute(ITEM_ATTRIBUTE_CHARGES, (charges_n-1))

                         local required = 0
                         local currently = 0
                         local voc = player:getVocation()

                         if skills[itemid].id == SKILL_MAGLEVEL then
                            required = voc:getRequiredManaSpent(player:getBaseMagicLevel() + 1)/skill_gain
                            currently = player:getManaSpent()
                            player:addManaSpent(required - currently)
                         else
                            required = voc:getRequiredSkillTries(skills[itemid].id, player:getSkillLevel(skills[itemid].id)+1)/skill_gain
                            currently = player:getSkillTries(skills[itemid].id)

                            player:addSkillTries(skills[itemid].id, (required - currently))
                         end

                         fpos:sendMagicEffect(CONST_ME_HITAREA)
                         if skills[itemid].range then
                            pos_n:sendDistanceEffect(fpos, skills[itemid].range)
                         end
                          player:setStamina(player:getStamina() + 60)

                          if charges_n == 1 then
                            exercise:remove(1)
                            return true
                          end
                         local training = addEvent(start_train, voc:getAttackSpeed(), pid,start_pos,itemid,fpos)
                      else
                         exercise:remove(1)
                         stopEvent(training)
                      end
                   end
                end
             end
          else
             stopEvent(training)
          end
       else
          stopEvent(training)
       end
       return true
    end

    function onUse(player, item, fromPosition, target, toPosition, isHotkey)
       local start_pos = player:getPosition()

       if target:isItem() then
          if isInArray(dummies,target:getId()) then
             if not skills[item.itemid].range and (start_pos:getDistance(target:getPosition()) > 1) then
                stopEvent(training)
                return false
             end
             if not player:getVocation():getId() == skills[item.itemid].voc or not player:getVocation():getId() == (skills[item.itemid].voc+4) then
                stopEvent(training)
                return false
             end
              player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You started training.")
             start_train(player:getId(),start_pos,item.itemid,target:getPosition())
          end
       end

       return true
    end

    luego a nos vamos a data/actions/actions.xml

    Código:
    <action fromid="26397" toid="26402" script="exercise_training.lua" allowfaruse="1"/>

    ahora nos vamos a la carpeta data/events/events.xml

    y modificamos esta parte (enable="0" para "1")

    y que quede asi

    Código:
    <event class="Player" method="onTradeRequest" enabled="1" />

    ahora en data/events/scripts/player.lua

    agregamos esta linea al inicio del archivo

    Código:
    local exercise_ids = {26397,26398,26399,26400,26401,26402}

    despues de esta funcion function Player:OnMoveItem agregamos

    Código:
    -- Exercise Weapons
        if isInArray(exercise_ids,item.itemid) then
            self:sendCancelMessage('You cannot move this item outside this container.')
            return false
        end

    abajo de esta funcion agregue function Player:OnTradeRequest

    Código:
    if isInArray(exercise_ids,item.itemid) then
            return false
        end

    creditos:  rod_doidim



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

    2default Re: [Sistema] Exercise Weapons (Tfs 1.x) el Dom Nov 11, 2018 4:58 pm

    Erickguzma

    avatar
    Miembro
    Miembro
    como podria modificarse para ganar menos skils? ahi dice 1 por hit no?

    Ver perfil de usuario

    3default Re: [Sistema] Exercise Weapons (Tfs 1.x) el Dom Nov 11, 2018 6:07 pm

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    [Tienes que estar registrado y conectado para ver este vínculo] escribió:como podria modificarse para ganar menos skils? ahi dice 1 por hit no?

    si dice
    local skill_gain = 1 -- per hit



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

    4default Re: [Sistema] Exercise Weapons (Tfs 1.x) el Lun Nov 12, 2018 2:31 pm

    Erickguzma

    avatar
    Miembro
    Miembro
    pero si quisiera que ganara poco, como si estuviera en training con monk

    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.

     

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