• TibiaFace

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

    .
    demo menumenu

    Afiliados



    Votar:

    [Function] [Function] Nesesito ayuda con un script

    Compartir:

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

    Xanax

    Xanax
    Nuevo Miembro
    Nuevo Miembro
    Descripcion escribió:Hola buenas a todos me pregunto si alguien me podria ayudar con un script de Minacion Tengo uno pero me gustaria que al sacar pikar piedras distintas te arroje item distintos (materiales) y que por level qe subas puedas picar otras piedras distintas








    [Tienes que estar registrado y conectado para ver este vínculo]
    Imagen Explicativa escribió:Imagen Explicativa: [Function] [Function] Nesesito ayuda con un script Tibiaf10
    Version del Scripts: TFs 0.3.7

    2 participantes

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador

    Director
    Publicación popular
    al corriente 27 de abril de 2019
    image.png.3d2036a5d05fc578e7ef09ef30307d27.png





    Les traigo este sistema, producido originalmente para un servidor personalizado 8.60. (probado en 0.4 - elemento de fuego). Creo que será más útil para usted que para mí en este momento. Si alguien puede agregar información sobre el uso en diferentes tfs se lo agradecería. 💪







    INFORMACIÓN

    P = ¿Puedo extraer varios artículos en este sistema?

    R = Sí, hay cuatro elementos y cuatro categorías, lo que permite generar hasta 16 productos finales en las minas. Esta configuración se puede editar fácilmente. Si desea usarlo de la forma en que se hace el script, al minar podrá recolectar las siguientes piedras:

    [Function] [Function] Nesesito ayuda con un script Image_22

    P = ¿ Pero las piedras caen al azar?

    R= No, este minado tiene una HABILIDAD, a medida que vas minando aumenta la habilidad y tu NIVEL consecutivamente. Comience con piedras claras, luego puras, raras y masivas. Puedes editar fácilmente cómo sube la experiencia, los niveles necesarios para realizar cada acción y las piedras.


    P = ¿Cuál es el uso de las piedras elementales?

    R = En la idea original, diseñé el sistema para que las piedras se gasten al comprar artículos de cofres, pero depende de ti cómo usarlas. Por ejemplo, un collar de protección de tierra/hielo tendría que pagarse con piedras de tierra y hielo. Incluiré en el tema el script usado en el cofre y el script para cambiar las piedras al llegar a las 100 unidades cada una. Ver el ejemplo:

    [Function] [Function] Nesesito ayuda con un script Image_23

    INSTALACIÓN

    En data/actions/script crea un archivo .lua llamado elementalmining y pega el código dentro:

    Código:

    local config = {
    maxmininglevel = 100,
    storagemining = 10000,
    expperlevel = 1000,
    experiencemining = 10001
    }

    local stone = {
       blue = {8637, 8633, 9798, 1354},
       green = {8640, 8636, 9791, 1353},
       lightblue = {8638, 8634, 9790, 12344},
       red = {8639, 8635, 9788, 1355},
    }

    local stones = {
       crystal = {stone.blue[1], stone.green[1], stone.lightblue[1], stone.red[1]},
       lcrystal = {stone.blue[2], stone.green[2], stone.lightblue[2], stone.red[2]},
       pcrystal = {stone.blue[3], stone.green[3], stone.lightblue[3], stone.red[3]},
       scrystal = {stone.blue[4], stone.green[4], stone.lightblue[4], stone.red[4]},
    }

    local ore = {
       blue = {2146, 7759, 5905, 8302},
       green = {2149, 7761, 12396 ,8298},
       lightblue = {2150  8303},
       red = {2147, 7760, 5906, 8299},
    }

    local ores = { ore.blue[1], ore.blue[2], ore.blue[3], ore.blue[4], ore.green[1], ore.green[2], ore.green[3], ore.green[4], ore.lightblue[1], ore.lightblue[2], ore.lightblue[3], ore.lightblue[4], ore.red[1], ore.red[2], ore.red[3], ore.red[4]}

    local levels = {
       {
       level = {0,19},
       stone = {stones.crystal[1], stones.crystal[2], stones.crystal[3], stones.crystal[4]},
       items = {ores[1],ores[5], ores[9], ores[13]},
       iselect = 0,         
       
         crystal[1], stones.crystal[2], stones.crystal[3], stones.crystal[4], stones.lcrystal[1], stones.lcrystal[2], stones.lcrystal[3], stones.lcrystal[4]},
       items = {ores[1],ores[2], ores[5], ores[6], ores[9],ores[10], ores[13], ores[14]},
       iselect = 1,
       bstart = 1,
       gstart = 3,
       lbstart = 5,
       rstart = 7,
       chance = 10,
       qtdmax = 1,
       expgainmin = 1,
       expgainmax = 1
       },
       {
       level = {50,69},
       stone = {stones.crystal[1], stones.crystal[2], stones.crystal[3], stones.crystal[4], stones.lcrystal[1], stones.lcrystal[2], stones.lcrystal[3], stones.lcrystal[4], stones.pcrystal[1], stones.pcrystal[2], stones.pcrystal[3], stones.pcrystal[4]},
       items = {ores[1],ores[2], ores3], ores[5], ores[6], ores[7], ores[9],ores[10], ores[11], ores[13], ores[14], ores[15]},
       iselect = 2,
       bstart = 1,
       gstart = 4,
       lbstart = 7
       rstart = 10,
       chance = 10,
       qtdmax = 1,
       expgainmin = 1,
       expgainmax = 1
       },
       {
       level = {70,89},
       stone = {stones.crystal[1], stones.crystal[2], stones.crystal[3], stones.crystallcrystal[1], stones.lcrystal[2], stones.lcrystal[3], stones.lcrystal[4], stones.pcrystal[1], stones.pcrystal[2], stones.pcrystal[3], stones.pcrystal[4], stones.scrystal[1], stones.scrystal[2], stones.scrystal[3], stones.scrystal[4]},
       items = {ores[1],ores[2], ores[3], ores[4], ores[5], ores[6], ores[7],[8], ores[9],ores[10], ores[11], ores[12], ores[13], ores[14], ores[15], ores[16]},
       iselect = 3,
       bstart = 1,
       gstart = 5,
       lbstart = 9,
       rstart = 13,
       chance = 10,
       qtdmax = 1,
       expgainmin = 1,
       expgainmax = 1
       },
       {
       level = {90,100},
       stone = {stones.crystal[1], stones.crystal[2], stones.crystal[3], stones.crystal[4], stones.lcrystal[1], stones.lcrystal[2], stones.lcrystal[3], stones.lcrystal[4], stones.pcrystal[1], stones.pcrystal[2], stones.pcrystal[3], stones.pcrystal[4], stones.scrystal[1], stones.scrystal[2], stones.scrystal[3], stones.scrystal[4]},
       items = {ores[1],ores[2], ores[3], ores[4], ores[5], ores[6], ores[7], ores[8], ores[9],ores[10], ores[11], ores[12], ores[13], ores[14], ores[15], ores[16]},
       iselect = 3,
       bstart = 1,
       gstart = 5,
       lbstart = 9,
       rstart = 13,
       chance = 10,
       qtdmax = 1,
       expgainmin = 1,
       expgainmax = 1
       }
    }

    function onUse(cid, item, fromPosition, itemEx, toPosition)


    local getMiningLevel = getPlayerStorageValue(cid, config.storagemining)
    local getMiningExp = getPlayerStorageValue(cid, config.experiencemining)

       if getMiningLevel == -1 then
          setPlayerStorageValue(cid, config.storagemining, 0)
       end
       if getMiningExp < 0 then
          setPlayerStorageValue(cid, config.experiencemining, 0)
       end

       if (isInArray(stones.crystal, itemEx.itemid) or isInArray(stones.lcrystal, itemEx.itemid) or isInArray(stones.pcrystal, itemEx.itemid) or isInArray(stones.scrystal, itemEx.itemid))  then
          
          for a = 1, #levels do
             min = levels[a].level[1]; max = levels[a].level[2]

             if (getMiningLevel >= min and getMiningLevel <= max) then
                if isInArray(levels[a].stone, itemEx.itemid) then
                      if (math.random(1, 100) <= levels[a].chance) then
                         quantity = math.random(1, levels[a].qtdmax)
                         experience = math.random(levels[a].expgainmin, levels[a].expgainmax)
                            if isInArray(stone.blue, itemEx.itemid) then
                               iselection = math.random(levels[a].bstart, levels[bstart + levels[a].iselect)
                               collect = levels[a].items[iselection]
                            end
                            if isInArray(stone.green, itemEx.itemid) then
                               iselection = math.random(levels[a].gstart, levels[a].gstart  levels[
                            
                             ].iselect)
                               collect = levels[a].items[iselection]
                            end
                            if isInArray(stone.red, itemEx.itemid) then
                               iselection = math.random(levels[a].rstart, levels[a].rstart + levels[a].iselect
                               collect = levels[
                            
                         
                         if getMiningLevel == 100 then
                         doSendMagicEffect(toPosition, 9)
                         doPlayerSendTextMessage(cid, 22, text)
                         doPlayerAddItem(cid, collect, quantity)
                         
                         elseif getMiningLevel <= 99 then
                         
                            if getMiningExp >= config.expperlevel then
                               doSendMagicEffect(getCreaturePosition(cid), 49)
                               setPlayerStorageValue(cid, config.storagemining, getMiningLevel + 1)
                               setPlayerStorageValue(cid, config.experiencemining, getMiningExp - config.expperlevel)
                               text = "You collected " ..quantity.. " matter" ..(quantity > 1 and "s" or "").. ". \n You have gained " ..experience.. " experience points in Mining. \n You advanced from mining skill level " ..getMiningLevel.. " to mining skill level " ..(getMiningLevel + 1).. "."
                            else
                               setPlayerStorageValue(cid, config.experiencemining, getMiningExp + experience)
                               text = "You collected " ..quantity.. " matter" ..(quantity > 1 and "s" or "").. ". \n You have gained " ..experience.. " experience points in Mining. \n" ..(config.expperlevel - getMiningExp - experience).. " experience points left to next level. \nCurrent Mining Skill: " ..getMiningLevel.. "."
                            end
                            doSendMagicEffecttoPosition, 9)
                            doPlayerSendTextMessage(cid, 22, text)
                            doPlayerAddItem(cid, collect, quantity)
                         end
                         
                      else
                         doSendMagicEffect(toPosition, 3)
                         doSendAnimatedText(getCreaturePosition(cid), "Working!", COLOR_WHITE)
                      end
                else
                   doPlayerSendTextMessage(cid, 22, "You need to get better in Mining to mining this.")
                end
             end

          end

       else
          doSendMagicEffect(getCreaturePosition(cid), 2)
          doPlayerSendTextMessage(cid, 22, "You can't mining this.")
       end

       
    end

    Em data/actions/actions.xml use:

    Código:
    <!-- MINERÍA --> <action itemid = "2553" event = "script" value = "elementalmining.lua" />

    Si tiene dudas sobre cómo configurar, pregunte en el tema. Las partes editables son: config local , piedra de la zona , Ore locales , los niveles locales . Tenga en cuenta que los niveles locales indican que algunas piedras solo se pueden extraer cuando tienen un nivel de minería más alto.

    Ajustes de piedra:

    En data/items/items.xml cambia los nombres de cada piedra (los nombres quedan a tu criterio ;p)

    Código:

    <item id="2149" article="a" name="light earth substance" plural="light earth substance">
            <attribute key="weight" value="1000" />

    </item>

    <item id="2146" article="a" name="light ice substance" plural="light ice substance">
            <attribute key="weight" value="1000" />

    </item>

    <item id="2147" article="a" name="light fire substance" plural="light fire substance">
            <attribute key="weight" value="1000" />

    </item>

    <item id="2150" article="a" name="light energy substance" plural="light energy substance">
            <attribute key="weight" value="1000" />

    </item>



    <item id="7761" article="a" name="pure earth substance" plural="pure earth substance">
            <attribute key="weight" value="1000" />
    </item>

    <item id="7759" article="a" name="pure ice substance" plural="pure ice substance">
            <attribute key="weight" value="1000" />
    </item>

    <item id="7760" article="a" name="pure fire substance" plural="pure fire substance">
            <attribute key="weight" value="1000" />

    </item>

    <item id="7762" article="a" name="pure energy substance" plural="pure energy substance">
            <attribute key="weight" value="1000" />
    </item>



    <item id="12396" article="a" name="rare earth matter" plural="rare earth substance">
            <attribute key="weight" value="1000" />
    </item>

    <item id="6551" article="a" name="rare ice substance" plural="rare ice substance">
            <attribute key="weight" value="1000" />
    </item>

    <item id="6550" article="a" name="rare fire substance" plural="rare fire substance">
            <attribute key="weight" value="1000" />
    </item>

    <item id="12575" article="a" name="rare energy substance" plural="rare energy substance">
            <attribute key="weight" value="1000" />
    </item>



    <item id="8298" name="massive earth substance" plural="massive earth substance">
            <attribute key="weight" value="1000" />
    </item>

    item id="8302" name="massive ice substance" plural="massive ice substance">
            <attribute key="weight" value="1000" />
    </item>

    <item id="8303" name="massive energy substance" plural="massive energy substance">
            <attribute key="weight" value="1000" />
    </item>

    <item id="8299" name="massive fire substance" plural="massive fire substance">
            <attribute key="weight" value="1000" />
    </item>

    TRANSFORMA PIEDRAS EN MONEDAS

    En data/actions/scripts/tools crea un archivo .lua y asígnale el nombre changecoin:

    Código:

    local COINS = {
       LIGHT = {
             EARTH_SUBSTANCE = 2149,
             ICE_SUBSTANCE = 2146,
             ENERGY_SUBSTANCE = 2150,
             FIRE_SUBSTANCE = 2147
             },
       PURE = {
             EARTH_SUBSTANCE = 7761,
             ICE_SUBSTANCE = 7759,
             ENERGY_SUBSTANCE = 7762,
             FIRE_SUBSTANCE = 7760
             },
       RARE = {
             EARTH_SUBSTANCE = 12396,
             ICE_SUBSTANCE = 6551,
             ENERGY_SUBSTANCE = 12575,
             FIRE_SUBSTANCE = 6550
             },
       MASSIVE = {
             EARTH_SUBSTANCE = 8298,
             ICE_SUBSTANCE = 8302,
             ENERGY_SUBSTANCE = 8303,
             FIRE_SUBSTANCE = 8299
             }
    }

    local TRANSFORM = {
       [COINS.LIGHT.EARTH_SUBSTANCE] = {
          TO = COINS.PURE.EARTH_SUBSTANCE
          },
       [COINS.LIGHT.ICE_SUBSTANCE] = {
          TO = COINS.PURE.ICE_SUBSTANCE
          },
       [COINS.LIGHT.ENERGY_SUBSTANCE] = {
          TO = COINS.PURE.ENERGY_SUBSTANCE
          },
       [COINS.LIGHT.FIRE_SUBSTANCE] = {
          TO = COINS.PURE.FIRE_SUBSTANCE
          },
       [COINS.PURE.EARTH_SUBSTANCE] = {
          FROM = COINS.LIGHT.EARTH_SUBSTANCE, TO = COINS.RARE.EARTH_SUBSTANCE
          },
       [COINS.PURE.ICE_SUBSTANCE] = {
          FROM = COINS.LIGHT.ICE_SUBSTANCE, TO = COINS.RARE.ICE_SUBSTANCE
          },
       [COINS.PURE.ENERGY_SUBSTANCE] = {
          FROM = COINS.LIGHT.ENERGY_SUBSTANCE, TO = COINS.RARE.ENERGY_SUBSTANCE
          },
       [COINS.PURE.FIRE_SUBSTANCE] = {
          FROM = COINS.LIGHT.FIRE_SUBSTANCE, TO = COINS.RARE.FIRE_SUBSTANCE
          },
       [COINS.RARE.EARTH_SUBSTANCE] = {
          FROM = COINS.PURE.EARTH_SUBSTANCE, TO = COINS.MASSIVE.EARTH_SUBSTANCE
          },
       [COINS.RARE.ICE_SUBSTANCE] = {
          FROM = COINS.PURE.ICE_SUBSTANCE, TO = COINS.MASSIVE.ICE_SUBSTANCE
          },
       [COINS.RARE.ENERGY_SUBSTANCE] = {
          FROM = COINS.PURE.ENERGY_SUBSTANCE, TO = COINS.MASSIVE.ENERGY_SUBSTANCE
          },
       [COINS.RARE.FIRE_SUBSTANCE] = {
          FROM = COINS.PURE.FIRE_SUBSTANCE, TO = COINS.MASSIVE.FIRE_SUBSTANCE
          },
       [COINS.MASSIVE.EARTH_SUBSTANCE] = {
          FROM = COINS.RARE.EARTH_SUBSTANCE
          },
       [COINS.MASSIVE.ICE_SUBSTANCE] = {
          FROM = COINS.RARE.ICE_SUBSTANCE
          },
       [COINS.MASSIVE.ENERGY_SUBSTANCE] = {
          FROM = COINS.RARE.ENERGY_SUBSTANCE
          },
       [COINS.MASSIVE.FIRE_SUBSTANCE] = {
          FROM = COINS.RARE.FIRE_SUBSTANCE
          }
    }

    function onUse(cid, item, fromPosition, itemEx, toPosition)
       if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then
          return false
       end

       local COIN = TRANSFORM[item.itemid]
       if(not COIN) then
          return false
       end

       if(COIN.TO ~= nil and item.type == ITEMCOUNT_MAX) then
          doChangeTypeItem(item.uid, item.type - item.type)
          doPlayerAddItem(cid, COIN.TO, 1)
       elseif(COIN.FROM ~= nil) then
          doChangeTypeItem(item.uid, item.type - 1)
          doPlayerAddItem(cid, COIN.FROM, ITEMCOUNT_MAX)
       end

       return true
    end

    Em data/actions/actions.xml:

    Código:

    <action itemid="2149" event="script" value="tools/changecoin.lua"/>
       <action itemid="2146" event="script" value="tools/changecoin.lua"/>
       <action itemid="2150" event="script" value="tools/changecoin.lua"/>
       <action itemid="2147" event="script" value="tools/changecoin.lua"/>
       <action itemid="7761" event="script" value="tools/changecoin.lua"/>
       <action itemid="7759" event="script" value="tools/changecoin.lua"/>
       <action itemid="7762" event="script" value="tools/changecoin.lua"/>
       <action itemid="7760" event="script" value="tools/changecoin.lua"/>
       <action itemid="12396" event="script" value="tools/changecoin.lua"/>
       <action itemid="6551" event="script" value="tools/changecoin.lua"/>
       <action itemid="12575" event="script" value="tools/changecoin.lua"/>
       <action itemid="6550" event="script" value="tools/changecoin.lua"/>
       <action itemid="8298" event="script" value="tools/changecoin.lua"/>
       <action itemid="8302" event="script" value="tools/changecoin.lua"/>
       <action itemid="8303" event="script" value="tools/changecoin.lua"/>
       <action itemid="8299" event="script" value="tools/changecoin.lua"/>

    y eso es todo



    [Function] [Function] Nesesito ayuda con un script YNU5B25
    2 participantes
    http://www.tibiaface.com

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