• 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.)

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

    [Admin] God Maya

    [Admin] God Maya
    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.

    [Sistema] Exercise Weapons (Tfs 1.x) JkujujA

    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



    [Sistema] Exercise Weapons (Tfs 1.x) YNU5B25
    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes
    http://www.tibiaface.com

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

    Erickguzma

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

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

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

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    Erickguzma escribió:como podria modificarse para ganar menos skils? ahi dice 1 por hit no?

    si dice
    local skill_gain = 1 -- per hit



    [Sistema] Exercise Weapons (Tfs 1.x) YNU5B25
    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes
    http://www.tibiaface.com

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

    Erickguzma

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

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    5[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Mar Dic 18, 2018 11:09 pm

    [Adm] SevuOT

    [Adm] SevuOT
    Miembro
    Miembro
    Aqui esta una pequeña modificacion del mismo script creado por Maya:
    Los cambios fueron los siguientes: ya no sube 1 skill por hit, ahora sube normalmente como si estubieses pegandole a un monster y con el mana pasa lo mismo es como si gastases 100 de mana con una spell por ejemplo.

    existe una variable que se llama debug_on, cuando esta en true, genera mensajes en la consola que te muestran cuantos hit esta ganando cada jugdor que este usando este skill dummy, solo ponlo en false para evitar esos mensajes.

    bueno sin mas aqui esta el codigo:


    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_tries = 1
    local spent_mana_tries = 100
    local gain_stamina = 60
    local trainingEvents = {}
    local debug_on = true

    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 currently = 0
                                local voc = player:getVocation()
                                if skills[itemid].id == SKILL_MAGLEVEL then
                                    player:addManaSpent(spent_mana_tries)
                                    if debug_on then
                                        print(string.format([[El jugador: %s esta adquiriendo %u puntos de consumo de mana.]], player:getName(), spent_mana_tries))
                                    end
                                else
                                    player:addSkillTries(skills[itemid].id, skill_gain_tries)
                                    if debug_on then
                                        print(string.format([[El jugador: %s esta adquiriendo %u puntos de skill.]], player:getName(), skill_gain_tries))
                                    end
                                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
                                trainingEvents[pid] = addEvent(start_train, voc:getAttackSpeed(), pid, start_pos, itemid, fpos)
                            else
                                exercise:remove(1)
                                stopEvent(trainingEvents[pid])
                            end
                        end
                    end
                end
            else
                stopEvent(trainingEvents[pid])
            end
        else
            stopEvent(trainingEvents[pid])
        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(trainingEvents[player:getId()])
                    return false
                end
                if not player:getVocation():getId() == skills[item.itemid].voc or not player:getVocation():getId() == (skills[item.itemid].voc+4) then
                    stopEvent(trainingEvents[player:getId()])
                    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



    Última edición por [Adm] SevuOT el Lun Dic 31, 2018 9:42 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.


    [Sistema] Exercise Weapons (Tfs 1.x) TRJEB8aSRYK5IulEU6ilJw
    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    6[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Mar Dic 18, 2018 11:35 pm

    azteca

    azteca
    Nuevo Miembro
    Nuevo Miembro
    [Tienes que estar registrado y conectado para ver este vínculo]
    use solo una y me subio el skill completo y copie todo como dice tu script

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    7[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Mar Dic 18, 2018 11:58 pm

    azteca

    azteca
    Nuevo Miembro
    Nuevo Miembro
    Me podrias ayudar a que no suba todo el skill, no se como explicarme pero que sirva como esto [Tienes que estar registrado y conectado para ver este vínculo] que dependa de varias varitas para subir un skill

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    8[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Miér Dic 19, 2018 12:13 am

    azteca

    azteca
    Nuevo Miembro
    Nuevo Miembro
    invoco a @[Adm] SevuOT en modo de ayuda Sad

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    9[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Lun Dic 31, 2018 9:48 pm

    [Adm] SevuOT

    [Adm] SevuOT
    Miembro
    Miembro
    azteca escribió:invoco a @[Adm] SevuOT en modo de ayuda Sad
    verifica nuevamente mi respuesta, la he actualizado nuevamente.
    [Tienes que estar registrado y conectado para ver este vínculo]



    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.


    [Sistema] Exercise Weapons (Tfs 1.x) TRJEB8aSRYK5IulEU6ilJw
    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    10[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Miér Oct 16, 2019 8:36 pm

    admbaiakme

    admbaiakme
    Miembro
    Miembro
    trabaja a 8.6 tfs 0.4?

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    11[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Miér Oct 16, 2019 8:39 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    admbaiakme escribió:trabaja a 8.6 tfs 0.4?

    no solamente para tfs 1.3



    [Sistema] Exercise Weapons (Tfs 1.x) YNU5B25
    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes
    http://www.tibiaface.com

    12[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Dom Nov 29, 2020 3:35 pm

    wizinx

    wizinx
    Miembro
    Miembro
    tfs 1.2 ?

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    13[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Mar Dic 01, 2020 8:04 am

    [Adm] SevuOT

    [Adm] SevuOT
    Miembro
    Miembro
    [Tienes que estar registrado y conectado para ver este vínculo] intenta probarlo, es para versiones 1.x+ eso significa que puede ser compatible con 1.1, 1.2, 1.3 ...



    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.


    [Sistema] Exercise Weapons (Tfs 1.x) TRJEB8aSRYK5IulEU6ilJw
    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    14[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Lun Ene 24, 2022 6:27 pm

    ioke

    ioke
    Miembro
    Miembro
    seria genial para tfs 0.4

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes
    http://baiakciteron.sytes.net

    15[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Mar Ene 25, 2022 8:58 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    ioke escribió:seria genial para tfs 0.4

    ya existe para 8.60



    [Sistema] Exercise Weapons (Tfs 1.x) YNU5B25
    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes
    http://www.tibiaface.com

    16[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Miér Ene 26, 2022 11:17 am

    ioke

    ioke
    Miembro
    Miembro
    Y donde lo encuentro porque lo he buscado y no :s

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes
    http://baiakciteron.sytes.net

    17[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Miér Ene 26, 2022 6:47 pm

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    ioke escribió:Y donde lo encuentro porque lo he buscado y no :s

    pues solamente yo lo tengo



    [Sistema] Exercise Weapons (Tfs 1.x) YNU5B25
    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes
    http://www.tibiaface.com

    18[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Sáb Ene 29, 2022 9:17 am

    ioke

    ioke
    Miembro
    Miembro
    Jaja no solo tú ya lo tengo yo tmb en mi ot gracias igualmente



    [Sistema] Exercise Weapons (Tfs 1.x) Screen15

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes
    http://baiakciteron.sytes.net

    19[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Sáb Ene 29, 2022 10:55 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    ioke escribió:Jaja no solo tú ya lo tengo yo tmb en mi ot gracias igualmente



    [Sistema] Exercise Weapons (Tfs 1.x) Screen15

    que bien (y)



    [Sistema] Exercise Weapons (Tfs 1.x) YNU5B25
    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes
    http://www.tibiaface.com

    20[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Vie Mar 25, 2022 1:33 am

    reaves17

    reaves17
    Miembro
    Miembro
    Hola me arroja este error, utilizo 1.3, serias tan amable de ayudarme porfavor, me urge. Gracias

    Lua Script Error: [Event Interface]
    data/events/scripts/player.lua
    data/events/scripts/player.lua:355: attempt to index global 'item' (a nil value)
    stack traceback:
    [C]: in function '__index'
    data/events/scripts/player.lua:355: in main chunk
    [Warning - Events::load] Can not load script: player.lua

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    21[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Vie Mar 25, 2022 10:29 am

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    reaves17 escribió:Hola me arroja este error, utilizo 1.3, serias tan amable de ayudarme porfavor, me urge. Gracias

    Lua Script Error: [Event Interface]
    data/events/scripts/player.lua
    data/events/scripts/player.lua:355: attempt to index global 'item' (a nil value)
    stack traceback:
    [C]: in function '__index'
    data/events/scripts/player.lua:355: in main chunk
    [Warning - Events] Can not load script: player.lua

    que colocaste en esa linea player.lua:355: attempt to index global 'item' (a nil value)



    [Sistema] Exercise Weapons (Tfs 1.x) YNU5B25
    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes
    http://www.tibiaface.com

    22[Sistema] Exercise Weapons (Tfs 1.x) Empty Re: [Sistema] Exercise Weapons (Tfs 1.x) Vie Mar 25, 2022 2:42 pm

    reaves17

    reaves17
    Miembro
    Miembro
    En esta parte es el error que arroja: abajo de esta funcion agregue function Player:OnTradeRequest

    if isInArray(exercise_ids,item.itemid) then
    return false
    end

    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    Contenido patrocinado


    +4
    azteca
    [Adm] SevuOT
    Erickguzma
    [Admin] God Maya
    8 participantes

    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).