• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Sistema] Sqm Trainner funciona a la perfeccion.

    Compartir:

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

    [Admin] God Maya

    avatar
    Administrador
    Administrador
    Hola usuarios de tibiaface

    Vamos a la carpeta de tu Ot


    data/movement/script


    Creamos un archivo .lua le ponemos como nombre. sqtrainer.lua y le pegamos esto adentro:

    Código:
    -- Config --
    local skillTries = 10 -- Number of tries per skill
    local t = 3 * 1000 -- Set the time before try is added to skills
    local lock = 15 -- Time to wait before start again in seconds

    -- Weapon Types --
    local weaponTypes = {
     { 1, 2 }, -- Sword
     { 2, 1 }, -- Club
     { 3, 3 }, -- Axe
     { 4, 5 }, -- Shield
     { 5, 4 } -- Distance
    }
     
    function onStepIn(cid, item, pos, fromPos)
     local p = {cid = cid, item = item, pos = pos}
     if getPlayerStorageValue(p.cid, 18010) == 2 then
     doTeleportThing(p.cid, fromPos, TRUE)
     doPlayerSendTextMessage(p.cid,22,"You must wait "..lock.." seconds before you start again")
     return false
     end
     setPlayerStorageValue(p.cid, 18010, 1)
     if isPlayer(p.cid) and p.item.actionid == 900 then
     doPlayerSendTextMessage(p.cid,22,"La sesion de entrenamiento comenzara ahora")
     addEvent(trainMe, t, p)
     end
     return true
    end
    function onStepOut(cid, item)
     if getPlayerStorageValue(cid, 18010) == 50000 then
     return false
     end
     setPlayerStorageValue(cid, 18010, 2)
     addEvent(trainLock, lock * 1000, cid)
     doPlayerSendTextMessage(cid,22,"La sesion de entrenamiento ha terminado")
     return true
    end
    function trainLock (cid)
     if isPlayer(cid) then
     setPlayerStorageValue(cid, 18010, 0)
     end
    end
    function trainMe(p)
     if isPlayer(p.cid) and getPlayerStorageValue(p.cid, 18010) == 1 and p.item.actionid == 900 then
     local weaponLeft = getPlayerSlotItem(p.cid, CONST_SLOT_LEFT)
     local weaponRight = getPlayerSlotItem(p.cid, CONST_SLOT_RIGHT)
     if weaponLeft.itemid ~= 0 then
     weaponLeft = getItemWeaponType(weaponLeft.uid)
     end
     if weaponRight.itemid ~= 0 then
     weaponRight = getItemWeaponType(weaponRight.uid)
     end
     for _, t in pairs(weaponTypes) do
     if t[1] == weaponLeft or t[1] == weaponRight then
    doPlayerAddSkillTry(p.cid, t[2], skillTries)
     end
     end
     manaspent = getPlayerMana(p.cid)
     doPlayerAddSpentMana(p.cid, manaspent)
     doTargetCombatMana(0, p.cid, -manaspent, -manaspent, CONST_ME_NONE)
     
    doSendMagicEffect(getPlayerPosition(p.cid),34)
     
    addEvent(trainMe, t, p)
     end
     return true
    end

    Y vamos a a Movement.xml: Pegamos lo siguiente en cualquier parte:

    Código:
    <!-- Trainer Square -->
           <movevent type="StepIn" actionid="900" script="sqtrainer.lua"/>
         <movevent type="StepOut" actionid="900" script="sqtrainer.lua"/>

    Ok ahora para hacerlo completo, nos vamos a la carpeta:


    data/createscript/script/Login.lua

    y pegamos lo siguiente y cualquier parte:

    Código:
    setPlayerStorageValue(cid, 18010, 0)

    Ok, vi un post que la gente pedia para editar la rapides de lo que va, tonces vamos a las primeras lineas en la que es:

    Código:
    local t = 3 * 1000 -- Set the time before try is added to skills

    ok en esta parte, lo que pondremos para que valla por segundo, en el numero 3, es los segundos que cuando quitara tu mana, si quieren cambiarle ponganle los segundos que quieran.

    Ahora elegimos cualquier piso y le ponemos como ActionID: 900

    Bueno esto es todo, el training no deveria de salirle ningun error.

    Unas imagenes:



    El magic level esta agregado, y el ID del piso es : 472 y el ActionID: 900[/color]
    Los cambios que le hice:
    • Le quite los 15 segundos para entrar ahora entraras cuantas veces quieras.
    • Le quite los limited por player ahora son por 100000 veces.
    • Ahora funciona sin ningun error.


    creditos: GODDemulador




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

    [Hacker]

    avatar
    Nuevo Miembro
    Nuevo Miembro
    queen me ayuda a pasar este script a tfs 1.3

    Ver perfil de usuario

    3default Trainer Sqm el Vie Oct 26, 2018 10:20 pm

    Aqui esta el mismo script
    * la unica diferencia es que este esta modificado para que el jugador pueda entrar y salir del trainer en cualquier momento sin delay y sin embargo no produce el bug del skill fast, ya que el evento se guarda en una variable global inmodificable incluso si haces reload!

    Codigo:
    Código:
    -- Config --
    local skillTries = 10 -- Number of tries per skill
    local t = 3 * 1000 -- Set the time before try is added to skills

    -- Weapon Types --
    local weaponTypes = {
     { 1, 2 }, -- Sword
     { 2, 1 }, -- Club
     { 3, 3 }, -- Axe
     { 4, 5 }, -- Shield
     { 5, 4 } -- Distance
    }
     
    if _G["_TrainEvents"] == nil then
       _G["_TrainEvents"] = {}
    end

    function onStepIn(cid, item, pos, fromPos)
        local p = {cid = cid, item = item, pos = pos}
       if isPlayer(p.cid) and p.item.actionid == 900 then
          doPlayerSendTextMessage(p.cid,22,"La sesion de entrenamiento comenzara ahora")
          _TrainEvents[p.cid] = addEvent(trainMe, t, p)
       end
       return true
    end

    function onStepOut(cid, item)
       stopEvent(_TrainEvents[cid])
       doPlayerSendTextMessage(cid,22,"La sesion de entrenamiento ha terminado")
       return true
    end

    function trainMe(p)
       if isPlayer(p.cid) then
          local weaponLeft = getPlayerSlotItem(p.cid, CONST_SLOT_LEFT)
          local weaponRight = getPlayerSlotItem(p.cid, CONST_SLOT_RIGHT)
          if weaponLeft.itemid ~= 0 then
             weaponLeft = getItemWeaponType(weaponLeft.uid)
          end
          if weaponRight.itemid ~= 0 then
             weaponRight = getItemWeaponType(weaponRight.uid)
          end
          for _, t in pairs(weaponTypes) do
             if t[1] == weaponLeft or t[1] == weaponRight then
                doPlayerAddSkillTry(p.cid, t[2], skillTries)
             end
          end
           local manaspent = getPlayerMana(p.cid)
           doPlayerAddSpentMana(p.cid, manaspent)
           doTargetCombatMana(0, p.cid, -manaspent, -manaspent, CONST_ME_NONE)
          doSendMagicEffect(getPlayerPosition(p.cid), 34)
           _TrainEvents[p.cid] = addEvent(trainMe, t, p)
        end
       return true
    end



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    Ver perfil de usuario

    [Hacker]

    avatar
    Nuevo Miembro
    Nuevo Miembro
    me tira este error

    Lua Script Error: [MoveEvents Interface]
    data/movements/scripts/sqtrainer.lua:onStepOut
    LuaScriptInterface::luaAddEvent(). Argument #3 is unsafe
    stack traceback:
    [C]: in function 'addEvent'
    data/movements/scripts/sqtrainer.lua:34: in function <data/movements/scr
    ipts/sqtrainer.lua:29>
    [C]: in function 'doTeleportThing'
    data/movements/scripts/sqtrainer.lua:18: in function <data/movements/scr
    ipts/sqtrainer.lua:15>

    Ver perfil de usuario
    Debes recordar que este script es para versiones menores como por ejemplo: TFS 0.4

    Nota
    la funcion addEvent no guarda valores inseguros en sus argumentos o parametros. por ello se ejecuta el siguiente error, si usas versiones altas, este script te dara error 100% seguro, a menos de que le hagas pequeñas modificaciones.



    Si necesitas hospedaje para tu servidor usa este enlace y mira las buenos planes de Windows y Linux:

    SevuOT Online, Version:10 and Custom.

    Ver perfil de usuario

    [Hacker]

    avatar
    Nuevo Miembro
    Nuevo Miembro
    que modificacion tengo que hacer??

    Ver perfil de usuario

    [Admin] God Maya

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

    recontruir el scripts desde cero



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

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