BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

(Resuelto) [Pedido-Script] ¡Varios scripts que forman una quest!

(Resuelto) [Pedido-Script] ¡Varios scripts que forman una quest!

Ozuna


Miembro
Se trata de una quest en la que tienes que entrar por 4 teleports distintos, tienes que entrar a los 4 y terminarlos, al terminar cada uno, hay una puerta antes del teleport, esa puerta te va a permitir pasar por un piso del puente, que mostrare al final.

Aqui es donde estan los tps
Spoiler:
[Tienes que estar registrado y conectado para ver esa imagen]

al entrar por ejemplo al primer teleport que mostrare en la proxima imagen, al entrar al teleport estara un moustro y para poder caminar el puente tienes que matarlo, al pasar por el puente se crea otro moustro, y asi sucesivamente con las demas, y estara la puerta al final que es la que te dejara caminar el primer piso del puente, y ya entras al teleport. y entonces haces lo mismo con las otras tres zonas, aqui la imagen de lo que explique.

Spoiler:
[Tienes que estar registrado y conectado para ver esa imagen]

al terminar las 4 ya te vas a donde esta el puente. y solo podran pasar los que le dieron click a la puerta osea las terminaron las 4, o no podran caminar por el piso del puente porque le falta terminar dicha parte de los 4.

Spoiler:
[Tienes que estar registrado y conectado para ver esa imagen]

al abrir la puerta entraran en un teleport que los movera a la parte final de la quest, que se muestra en la proxima imagen, aqui tienen que jalar una palanca que creara un moustro y la otra la podran jalar hasta que maten al moustro, y al jalar la palanca los teletransportara a donde estara el cofre, y para poder entrar de nuevo las mismas personas tendran que volver a jalar las otras puertas.

aqui la imagen final

Spoiler:
[Tienes que estar registrado y conectado para ver esa imagen]


en los otros 3 teleports, 2 son igual que el que enseñe solo 5 islas, pero uno tiene 6 islas

Belerofonte


Administrador
Servidor\Data\Monster\... Monsters.xml
Código:
<monster name="QIpoison" file="QIpoison.xml"/>
 <monster name="QIonFire" file="QIonFire.xml"/>
 <monster name="QIenergy" file="QIenergy.xml"/>

Servidor\Data\Monster\... QIpoison.xml
Código:
<?xml version="1.0" encoding="UTF-8"?>
<monster name="QIpoison" nameDescription="a pilar" speed="0">
    <health now="2" max="2"/>
    <look typeex="1551"/>
    <targetchange interval="5000" chance="8"/>
    <strategy attack="100" defense="0"/>
    <flags>
        <flag summonable="0"/>
        <flag attackable="0"/>
        <flag hostile="1"/>
        <flag illusionable="0"/>
        <flag convinceable="0"/>
        <flag pushable="0"/>
        <flag canpushitems="0"/>
        <flag canpushcreatures="0"/>
        <flag targetdistance="1"/>
        <flag staticattack="90"/>
        <flag runonhealth="0"/>
        <flag hidename="1"/>
        <flag hidehealth="1"/>
    </flags>
    <attacks>
        <attack name="physical" interval="1000" chance="105" range="9" min="-1" max="-1">
            <attribute key="shootEffect" value="poison"/>
        </attack>
    </attacks>
</monster>

Servidor\Data\Monster\... QIonFire.xml
Código:
<?xml version="1.0" encoding="UTF-8"?>
<monster name="QIpoison" nameDescription="a pilar" speed="0">
    <health now="2" max="2"/>
    <look typeex="7823"/>
    <targetchange interval="5000" chance="8"/>
    <strategy attack="100" defense="0"/>
    <flags>
        <flag summonable="0"/>
        <flag attackable="0"/>
        <flag hostile="1"/>
        <flag illusionable="0"/>
        <flag convinceable="0"/>
        <flag pushable="0"/>
        <flag canpushitems="0"/>
        <flag canpushcreatures="0"/>
        <flag targetdistance="1"/>
        <flag staticattack="90"/>
        <flag runonhealth="0"/>
        <flag hidename="1"/>
        <flag hidehealth="1"/>
    </flags>
    <attacks>
        <attack name="physical" interval="1000" chance="105" range="9" min="-1" max="-1">
            <attribute key="shootEffect" value="fire"/>
        </attack>
    </attacks>
</monster>

Servidor\Data\Monster\... QIenergy.xml
Código:
<?xml version="1.0" encoding="UTF-8"?>
<monster name="QIpoison" nameDescription="a pilar" speed="0">
    <health now="2" max="2"/>
    <look typeex="9751"/>
    <targetchange interval="5000" chance="8"/>
    <strategy attack="100" defense="0"/>
    <flags>
        <flag summonable="0"/>
        <flag attackable="0"/>
        <flag hostile="1"/>
        <flag illusionable="0"/>
        <flag convinceable="0"/>
        <flag pushable="0"/>
        <flag canpushitems="0"/>
        <flag canpushcreatures="0"/>
        <flag targetdistance="1"/>
        <flag staticattack="90"/>
        <flag runonhealth="0"/>
        <flag hidename="1"/>
        <flag hidehealth="1"/>
    </flags>
    <attacks>
        <attack name="physical" interval="1000" chance="105" range="9" min="-1" max="-1">
            <attribute key="shootEffect" value="energy"/>
        </attack>
    </attacks>
</monster>



Servidor\Data\Mods\... QuestOzunaIslands.xml
Código:
<?xml version="1.0" encoding="UTF-8"?>
<mod name="QuestOzunaIslands" version="OTX (2.40 SVN), Codename:(Deumion)" author="Belerofonte" contact="www.blacktibia.org/u3171" enabled="yes">
    <globalevent name="PilarsGenerate" type="startup" event="script" value="QuestOzunaIslands.lua"/>
    <movevent type="StepIn" uniqueid="5650;5651; 5660;5661; 5670;5671; 5680;5681; 5686-5689" actionid="5652-5655; 5662-5665; 5672-5675; 5682-5686" event="script" value="QuestOzunaIslands.lua"/>
    <action uniqueid="5690;5691" actionid="5687" event="script" value="QuestOzunaIslands.lua"/>
    <event type="login" name="QuestIslandsReg" event="script" value="QuestOzunaIslands.lua"/>
    <event type="kill" name="KillForOpenDoor" event="script" value="QuestOzunaIslands.lua"/>
    <event type="attack" name="AttackForGetExit" event="script" value="QuestOzunaIslands.lua"/>
</mod>

Servidor/Data/Mods/Scripts/... QuestOzunaIslands.lua
Código:
  ConfigA = {

      TotalArea = { -- Área de toda la quest. (Por ello es recomendable que la tengas toda juntita en el remeres)
        left = {x = 634, y = 1032, z = 7}, -- {Coordenada} de la esquina superior izquierda de toda la quest.
        right = {x = 723, y = 1082, z = 7}, -- {Coordenada} de la esquina inferior derecha de toda la quest.
      },

      Monsters = {
        Boss = "Wolf", -- "Nombre" del boss final, que será invocado tras accionar la palanca.

        Islands = { -- Todos los monstruos procedentes de las cuatro zonas (salvo estatuas). Cada uno por el orden de islas a recorrer.
        -- "Monstruos" procedentes de la zona venenosa.
          "Cockroach",
          "Poison Spider",
          "Bug",
          "Defiler",
          "Larva",

        -- "Monstruos" procedentes de la zona ardiente.
          "Diabolic Imp",
          "Demodras",
          "Fire Elemental",
          "Fire Devil",
          "Spirit of Fire",

        -- "Monstruos" procedentes de la zona eléctrica.
          "Wyrm",
          "Energy Elemental",
          "Worker Golem",
          "Wisp",
          "Massive Energy Elemental",

        -- "Monstruos" procedentes de la zona contaminada.
          "Braindeath",
          "Nightstalker",
          "Nightmare",
          "Hellspawn",
          "Dark Torturer",
          "Mutated Bat",
        },
      },

      Statues = { -- Configuración acerca de los monstruos inmortales con formas de estatua.
     -- [ItemId de la estatua] = {"Nombre del Monstruo"},
        [1551] = {"QIpoison"},
        [7823] = {"QIonFire"},
        [9751] = {"QIenergy"},
      },

      Doors = { -- Configuración acerca de las puertas procedentes de las últimas islas de las cuatro zonas.
        lockedDoor = 5687, -- Un mismo ActionId para las cuatro puertas.

                  -- {Id de la puerta Cerrada, {Coordenada de su ubicación}},
        poisonDoor = {6198, {x = 693, y = 1075, z = 7}}, -- Puerta de la última isla en la zona venenosa.
        onFireDoor = {1221, {x = 703, y = 1043, z = 7}}, -- Puerta de la última isla en la zona ardiente.
        energyDoor = {9275, {x = 713, y = 1047, z = 7}}, -- Puerta de la última isla en la zona eléctrica.
        smokedDoor = {7056, {x = 703, y = 1077, z = 7}}, -- Puerta de la última isla en la zona contaminada.
      },

      ZoneAccess = { -- Storage Key para que se detecte en el portal de entrada si la zona está o no completada.
        AccessPoison = 409831, -- Zona venenosa.
        AccessOnFire = 409832, -- Zona ardiente.
        AccessEnergy = 409833, -- Zona eléctrica.
        AccessSmoked = 409834, -- Zona contaminada.
      },

    }

    ConfigB = {

      Portals = { -- Configuración acerca de los portales de entrada & salida de las zonas.

        [{5650, 5651}] = { -- [{UniqueId del portal de salida, UniqueId del portal de entrada}] ... a la zona venenosa.
          Arrival = {x = 656, y = 1040, z = 7}, -- {Coordenada} de la primera isla venenosa hacia donde llevará la entrada.
          FirstMonster = {ConfigA.Monsters.Islands[1], {x = 655, y = 1044, z = 7}}, -- {Coordenada} del spawn del primer monstruo.

          Departure = {x = 674, y = 1050, z = 7}, -- {Coordenada} hacia donde llevará el portal de salida.
          AccessKEY = ConfigA.ZoneAccess.AccessPoison, -- No tocar.
        },

        [{5660, 5661}] = { -- [{UniqueId del portal de salida, UniqueId del portal de entrada}] ... a la zona ardiente.
          Arrival = {x = 720, y = 1036, z = 7}, -- {Coordenada} de la primera isla ardiente hacia donde llevará la entrada.
          FirstMonster = {ConfigA.Monsters.Islands[6], {x = 719, y = 1037, z = 7}}, -- {Coordenada} del spawn del primer monstruo.

          Departure = {x = 674, y = 1045, z = 7}, -- {Coordenada} hacia donde llevará el portal de salida.
          AccessKEY = ConfigA.ZoneAccess.AccessOnFire, -- No tocar.
        },

        [{5670, 5671}] = { -- [{UniqueId del portal de salida, UniqueId del portal de entrada}] ... a la zona eléctrica.
          Arrival = {x = 703, y = 1048, z = 7}, -- {Coordenada} de la primera isla eléctrica hacia donde llevará la entrada.
          FirstMonster = {ConfigA.Monsters.Islands[11], {x = 704, y = 1050, z = 7}}, -- {Coordenada} del spawn del primer monstruo.

          Departure = {x = 678, y = 1041, z = 7}, -- {Coordenada} hacia donde llevará el portal de salida.
          AccessKEY = ConfigA.ZoneAccess.AccessEnergy, -- No tocar.
        },

        [{5680, 5681}] = { -- [{UniqueId del portal de salida, UniqueId del portal de entrada}] ... a la zona contaminada.
          Arrival = {x = 714, y = 1059, z = 7}, -- {Coordenada} de la primera isla contaminada hacia donde llevará la entrada.
          FirstMonster = {ConfigA.Monsters.Islands[16], {x = 712, y = 1062, z = 7}}, -- {Coordenada} del spawn del primer monstruo.

          Departure = {x = 684, y = 1041, z = 7}, -- {Coordenada} hacia donde llevará el portal de salida.
          AccessKEY = ConfigA.ZoneAccess.AccessSmoked, -- No tocar.
        },
      },

      Bridges = { -- Configuración acerca de todos los puentes anexos de todas las islas.

        Radius = 6, -- Cantidad de sqm's alejados del jugador en el que se creará el monstruo de cada isla.

        -- Puentes procedentes de la zona venenosa.
        [5652] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = SOUTH, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[1], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[2], -- No tocar.
        },
        [5653] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = SOUTH, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[2], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[3], -- No tocar.
        },
        [5654] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = EAST, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[3], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[4], -- No tocar.
        },
        [5655] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = EAST, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[4], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[5], -- No tocar.
          ToCloseDoor = {ConfigA.Doors.poisonDoor[1], ConfigA.Doors.poisonDoor[2]}, -- No tocar.
        },
        -------------------------------------------

        -- Puentes procedentes de la zona ardiente.
        [5662] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = WEST, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[6], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[7], -- No tocar.
        },
        [5663] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = WEST, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[7], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[8], -- No tocar.
        },
        [5664] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = WEST, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[8], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[9], -- No tocar.
        },
        [5665] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = SOUTH, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[9], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[10], -- No tocar.
          ToCloseDoor = {ConfigA.Doors.onFireDoor[1], ConfigA.Doors.onFireDoor[2]}, -- No tocar.
        },
        -------------------------------------------

        -- Puentes procedentes de la zona eléctrica.
        [5672] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = SOUTH, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[11], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[12], -- No tocar.
        },
        [5673] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = EAST, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[12], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[13], -- No tocar.
        },
        [5674] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = EAST, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[13], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[14], -- No tocar.
        },
        [5675] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = NORTH, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[14], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[15], -- No tocar.
          ToCloseDoor = {ConfigA.Doors.energyDoor[1], ConfigA.Doors.energyDoor[2]}, -- No tocar.
        },
        -------------------------------------------

        -- Puentes procedentes de la zona contaminada.
        [5682] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = SOUTH, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[16], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[17], -- No tocar.
        },
        [5683] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = SOUTH, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[17], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[18], -- No tocar.
        },
        [5684] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = WEST, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[18], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[19], -- No tocar.
        },
        [5685] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = SOUTH, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[19], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[20], -- No tocar.
        },
        [5686] = { -- [ActionID] del par de tiles del medio del puente.
          SummonToDir = WEST, -- "Dirección" a hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
          PrevMonster = ConfigA.Monsters.Islands[20], -- No tocar.
          NextMonster = ConfigA.Monsters.Islands[21], -- No tocar.
          ToCloseDoor = {ConfigA.Doors.smokedDoor[1], ConfigA.Doors.smokedDoor[2]}, -- No tocar.
        },
      },

      AccessWay = { -- Configuración acerca del último puente colgante.
        FinalAccess = 409830, -- Storage Key en el que se sumará +1 value al salir del portal de cada una de las cuatro zonas.

      -- [UniqueID de cada tile del puente colgante] = {No tocar}
        [5686] = {0},
        [5687] = {1},
        [5688] = {2},
        [5689] = {3},
      },

      FinalBoss = { -- Configuración acerca de las palancas de la última zona del Boss.

        [{5690, 5691}] = { -- [{UniqueId de la palanca invocadora, UniqueId de la palanca de salida}]
          leverId = {1945, 1946}, -- {ItemId de la palanca mirando hacia un lado, y hacia el otro}
          name = ConfigA.Monsters.Boss, -- No tocar.
          spawn = {x = 639, y = 1039, z = 7}, -- {Coordenada} donde aparecerá el boss.
          place = {x = 680, y = 1050, z = 7}, -- {Coordenada} de la sala del premio.
        },
      },

      DoorsAgain = { -- No tocar.
        [ConfigA.Monsters.Islands[5]] = {ConfigA.Doors.poisonDoor[1], ConfigA.Doors.poisonDoor[2]},
        [ConfigA.Monsters.Islands[10]] = {ConfigA.Doors.onFireDoor[1], ConfigA.Doors.onFireDoor[2]},
        [ConfigA.Monsters.Islands[15]] = {ConfigA.Doors.energyDoor[1], ConfigA.Doors.energyDoor[2]},
        [ConfigA.Monsters.Islands[21]] = {ConfigA.Doors.smokedDoor[1], ConfigA.Doors.smokedDoor[2]},
      },

    }

--------------------------------------------------------------------------

local function isntMonsterInArea(name, fromPos, toPos) -- Detecta si no hay un monstruo en concreto en todo el área.
    for xx = fromPos.x, toPos.x, 1 do
        for yy = fromPos.y, toPos.y, 1 do
          local creatures = getTopCreature({x = xx, y = yy, z = fromPos.z}).uid
            if isMonster(creatures) and getCreatureName(creatures):lower() == name:lower() then
              local master = getCreatureMaster(creatures)
                if not master or master == creatures then
                    return
                end
            end
        end
    end
    return true
end

local function getTopItem(p) -- Darkhaos's arena. Adquiere el objeto superior procedente de un montón. Solo usado en "onStartup()"
    p.stackpos = 1
  local v = getThingFromPos(p)
    repeat
        p.stackpos = p.stackpos + 1
        v = getThingFromPos(p)
    until v.itemid == 0
    p.stackpos = p.stackpos - 1

    return getThingFromPos(p)
end

--------------------------------------------------------------------------

function onStartup() -- Al iniciar el servidor: Sustituye las columnas de la tabla [Statues] procedentes de las zonas a cambio de monstruos con sus aspectos físicos.
    for xx = ConfigA.TotalArea.left.x, ConfigA.TotalArea.right.x, 1 do
        for yy = ConfigA.TotalArea.left.y, ConfigA.TotalArea.right.y, 1 do
          local getPilar = getTopItem({x = xx, y = yy, z = ConfigA.TotalArea.left.z})
          local isPilar = ConfigA.Statues[getPilar.itemid]
            if isPilar then
              local getMonsterPilar = doCreateMonster(isPilar[1], getThingPos(getPilar.uid), false, true)
                if isMonster(getMonsterPilar) then
                    doTeleportThing(getMonsterPilar, getThingPos(getPilar.uid), false)
                end
                doRemoveItem(getPilar.uid, 1)
            end
        end
    end
    return true
 end

function onStepIn(cid, item, position, fromPosition, itemEx, toPosition) -- Al pisar através de: Portales de las zonas, puentes anexos entre islas, y puente colgante.
    if isPlayer(cid) then
        for Portales, Var in pairs(ConfigB.Portals) do -- Portales de entrada/salida.
            if item.uid == Portales[2] then -- Portal de entrada.
                if getPlayerStorageValue(cid, Var.AccessKEY) ~= 1 then
                    doSendMagicEffect(position, CONST_ME_TELEPORT)
                    doTeleportThing(cid, Var.Arrival)
                    doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
                    if isntMonsterInArea(Var.FirstMonster[1], ConfigA.TotalArea.left, ConfigA.TotalArea.right) then
                      local getMonster = doCreateMonster(Var.FirstMonster[1], Var.FirstMonster[2], false, true)
                        if isCreature(getMonster) then
                            doSendMagicEffect(getThingPos(getMonster), CONST_ME_MORTAREA)
                        end
                    end
                 else
                    doTeleportThing(cid, fromPosition, false)
                    doPlayerSendCancel(cid, 'Ya completaste esta zona.')
                end
                break
            end
            --------------------------------------------------------
            if item.uid == Portales[1] then -- Portal de salida.
                doSendMagicEffect(position, CONST_ME_TELEPORT)
                doTeleportThing(cid, Var.Departure)
                doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
                setPlayerStorageValue(cid, Var.AccessKEY, 1)
                setPlayerStorageValue(cid, ConfigB.AccessWay.FinalAccess, (getPlayerStorageValue(cid, ConfigB.AccessWay.FinalAccess) + 1))
                break
            end
        end
        --------------------------------------------------------
      local Puentes = ConfigB.Bridges[item.actionid]
        if Puentes then -- Puentes de la zona.
            if isntMonsterInArea(Puentes.PrevMonster, ConfigA.TotalArea.left, ConfigA.TotalArea.right) then
                if isntMonsterInArea(Puentes.NextMonster, ConfigA.TotalArea.left, ConfigA.TotalArea.right) then
                  local getMonster = doCreateMonster(Puentes.NextMonster, getPositionByDirection(fromPosition, Puentes.SummonToDir, ConfigB.Bridges.Radius), false, true)
                    if isCreature(getMonster) then
                        doSendMagicEffect(getThingPos(getMonster), CONST_ME_MORTAREA)
                        if Puentes.ToCloseDoor then
                          local getDoor = getTileItemById(Puentes.ToCloseDoor[2], Puentes.ToCloseDoor[1] + 1)
                            if getDoor.itemid == Puentes.ToCloseDoor[1] + 1 then
                                doTransformItem(getDoor.uid, Puentes.ToCloseDoor[1])
                                doSendMagicEffect(Puentes.ToCloseDoor[2], CONST_ME_BLOCKHIT)
                            end
                        end
                    end
                end
             else
                doTeleportThing(cid, fromPosition, false)
                doPlayerSendCancel(cid, 'Para continuar, acabar antes con ese ' .. string.lower(Puentes.PrevMonster) .. ' has de lograr.') -- Mensaje que saldrá si se intenta cruzar el siguiente puente sin antes haber matado al monstruo de la anteiror isla.
                return true
            end
        end
        --------------------------------------------------------
      local Colgante = ConfigB.AccessWay[item.uid]
        if Colgante then -- Puente colgante final.
            if getPlayerStorageValue(cid, ConfigB.AccessWay.FinalAccess) < Colgante[1] or getPlayerStorageValue(cid, ConfigB.AccessWay.FinalAccess) == nil then
              local restantes = 4 - (getPlayerStorageValue(cid, ConfigB.AccessWay.FinalAccess) < 0 and 0 or Colgante[1])
                doTeleportThing(cid, fromPosition, false)
                doPlayerSendCancel(cid, 'Te queda' .. (restantes > 1 and 'n' or (restantes == - 1 and 'n' or '')) .. ' ' .. restantes .. ' ' .. (restantes > 1 and 'zonas' or (restantes == - 1 and 'zonas' or 'zona')) .. ' por completar.') -- Mensaje que aparecerá en el último puente colgante, si al jugador aún le quedan zonas por completar.
            end
        end
        --------------------------------------------------------
     else
        doTeleportThing(cid, fromPosition, false)
    end
    return true
end

function onLogin(cid) -- Al conectarse el jugador: Le registra "onKill" & "onAttack".
    registerCreatureEvent(cid, "KillForOpenDoor")
    registerCreatureEvent(cid, "AttackForGetExit")
    return true
end

function onKill(cid, target) -- Tras matar al monstruo procedente de la última isla de cada zona: Abre su respectiva puerta.
    if isMonster(target) and isInRange(getThingPos(target), ConfigA.TotalArea.left, ConfigA.TotalArea.right) then
      local master = getCreatureMaster(target)
        if master or master == target then
            return
        end
      local door = ConfigB.DoorsAgain[getCreatureName(target)]
        if door then
          local getDoor = getTileItemById(door[2], door[1])
            if getDoor.itemid == door[1] then
                doTransformItem(getDoor.uid, getDoor.itemid + 1)
                doSendMagicEffect(door[2], CONST_ME_SMOKE)
            end
        end
    end
    return true
end

function onAttack(cid, target) -- Tras atacar al boss: Adquiere acceso para salir y acabar la quest.
    if isMonster(target) and isInRange(getThingPos(target), ConfigA.TotalArea.left, ConfigA.TotalArea.right) and getCreatureName(target):lower() == ConfigA.Monsters.Boss:lower() then
      local master = getCreatureMaster(target)
        if master or master == target then
            return
        end
        if isPlayer(cid) then
            setPlayerStorageValue(cid, ConfigB.AccessWay.FinalAccess, 5)
        end
    end
    return true
end

function onUse (cid, item, position, fromPosition, itemEx, toPosition) -- Al usar palancas: invocaca al Boss y teletransporta afuera. / Prohíbe abrir puertas de las últimas islas de cada zona al usarlas.
    if item.actionid == ConfigA.Doors.lockedDoor then
        return false
    end
    for lever, var in pairs(ConfigB.FinalBoss) do
        if item.uid == lever[1] then -- Palanca que invoca.
            if isntMonsterInArea(var.name, ConfigA.TotalArea.left, ConfigA.TotalArea.right) then
              local getMonster = doCreateMonster(var.name, var.spawn, false, true)
                if isCreature(getMonster) then
                    doSendMagicEffect(getThingPos(getMonster), CONST_ME_MORTAREA)
                end
            end
            break
        end
        if item.uid == lever[2] then -- Palanca de salida.
            if getPlayerStorageValue(cid, ConfigB.AccessWay.FinalAccess) > 4 then
                if isntMonsterInArea(var.name, ConfigA.TotalArea.left, ConfigA.TotalArea.right) then
                    doSendMagicEffect(fromPosition, CONST_ME_TELEPORT)
                    doTeleportThing(cid, var.place)
                    doSendMagicEffect(getThingPos(cid), CONST_ME_TELEPORT)
                    setPlayerStorageValue(cid, ConfigA.ZoneAccess.AccessPoison, - 1)
                    setPlayerStorageValue(cid, ConfigA.ZoneAccess.AccessOnFire, - 1)
                    setPlayerStorageValue(cid, ConfigA.ZoneAccess.AccessEnergy, - 1)
                    setPlayerStorageValue(cid, ConfigA.ZoneAccess.AccessSmoked, - 1)
                    setPlayerStorageValue(cid, ConfigB.AccessWay.FinalAccess, - 1)
                 else
                    doPlayerSendCancel(cid, 'Para salir, el corazon de ' .. var.name .. ' debe dejar de latir.') -- Si acciona la palanca de salida sin haber matado al boss.
                end
             else
                doPlayerSendCancel(cid, 'Para salir y tu premio conseguir, al boss ' .. var.name .. ' debes combatir.') -- Si acciona la palanca de salida sin haber accionado antes la palanca que invoca al boss.
            end
            break
        end
        doTransformItem(item.uid, item.itemid == var.LeverId[1] and var.LeverId[2] or var.LeverId[1])
    end
    return true
end

Las explicaciones continuan abajo... (porque no se me permitía realizar un comentario tan largo de +800 líneas )



Última edición por Belerofonte el Dom Abr 24, 2016 11:46 am, editado 2 veces



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

Belerofonte


Administrador
... sigue desde arriba.



Zona (básica) a editar:

Documento.xml:

<movevent type="StepIn" uniqueid="5650;5651; 5660;5661; 5670;5671; 5680;5681; 5686-5689" actionid="5652-5655; 5662-5665; 5672-5675; 5682-5686" event="script" value="QuestOzunaIslands.lua"/>

Esos ActionID del Movements.xml son para los 2 sqm's procedentes del medio de los puentes que unen las islas, de las cuatro zonas.
Explicación gráfica:
[Tienes que estar registrado y conectado para ver esa imagen]
Un mismo ActionID para cada 2 sqm's de cada puente.



Esos UniqueID del Movements.xml son para los portales de entrada y portales de salida hacia/de las cuatro zonas. Y esos otros, los de cada uno de los primeros cuatro sqm's del puente colgante final que solo permitirán su acceso una vez se haya completado cada zona.
Explicación gráfica:
[Tienes que estar registrado y conectado para ver esa imagen]



   <action uniqueid="5690;5691" actionid="5687" event="script" value="QuestOzunaIslands.lua"/>

Esos UniqueID son para la palanca que invoca al boss final y la palanca de salida que envía a la sala del premio.

Y ese ActionID es para cada una de las cuatro puertas procedentes de las últimas islas, de las cuatro zonas, que se abrirán al matar a cada monstruo normal.

Script.lua:

 ConfigA = {

     TotalArea = { -- Área de toda la quest. (Por ello es recomendable que la tengas toda juntita en el remeres)
       left = {x = 634, y = 1032, z = 7}, -- {Coordenada} de la esquina superior izquierda de toda la quest.
       right = {x = 723, y = 1082, z = 7}, -- {Coordenada} de la esquina inferior derecha de toda la quest.
     },

     Monsters = {
       Boss = "Wolf", -- "Nombre" del boss final, que será invocado tras accionar la palanca.

       Islands = { -- Todos los monstruos procedentes de las cuatro zonas (salvo estatuas). Cada uno por el orden de islas a recorrer.
       -- "Monstruos" procedentes de la zona venenosa.
         "Cockroach",
         "Poison Spider",
         "Bug",
         "Defiler",
         "Larva",

       -- "Monstruos" procedentes de la zona ardiente.
         "Diabolic Imp",
         "Demodras",
         "Fire Elemental",
         "Fire Devil",
         "Spirit of Fire",

       -- "Monstruos" procedentes de la zona eléctrica.
         "Wyrm",
         "Energy Elemental",
         "Worker Golem",
         "Wisp",
         "Massive Energy Elemental",

       -- "Monstruos" procedentes de la zona contaminada.
         "Braindeath",
         "Nightstalker",
         "Nightmare",
         "Hellspawn",
         "Dark Torturer",
         "Mutated Bat",
       },
     },

     Statues = { -- Configuración acerca de los monstruos inmortales con formas de estatua.
    -- [ItemId de la estatua] = {"Nombre del Monstruo"},
       [1551] = {"QIpoison"},
       [7823] = {"QIonFire"},
       [9751] = {"QIenergy"},
     },

     Doors = { -- Configuración acerca de las puertas procedentes de las últimas islas de las cuatro zonas.
       lockedDoor = 5687, -- Un mismo ActionId para las cuatro puertas.

                 -- {Id de la puerta Cerrada, {Coordenada de su ubicación}},
       poisonDoor = {6198, {x = 693, y = 1075, z = 7}}, -- Puerta de la última isla en la zona venenosa.
       onFireDoor = {1221, {x = 703, y = 1043, z = 7}}, -- Puerta de la última isla en la zona ardiente.
       energyDoor = {9275, {x = 713, y = 1047, z = 7}}, -- Puerta de la última isla en la zona eléctrica.
       smokedDoor = {7056, {x = 703, y = 1077, z = 7}}, -- Puerta de la última isla en la zona contaminada.
     },

     ZoneAccess = { -- Storage Key para que se detecte en el portal de entrada si la zona está o no completada.
       AccessPoison = 409831, -- Zona venenosa.
       AccessOnFire = 409832, -- Zona ardiente.
       AccessEnergy = 409833, -- Zona eléctrica.
       AccessSmoked = 409834, -- Zona contaminada.
     },

   }

   ConfigB = {

     Portals = { -- Configuración acerca de los portales de entrada & salida de las zonas.

       [{5650, 5651}] = { -- [{UniqueId del portal de salida, UniqueId del portal de entrada}] ... a la zona venenosa.
         Arrival = {x = 656, y = 1040, z = 7}, -- {Coordenada} de la primera isla venenosa hacia donde llevará la entrada.
         FirstMonster = {ConfigA.Monsters.Islands[1], {x = 655, y = 1044, z = 7}}, -- {Coordenada} del spawn del primer monstruo.

         Departure = {x = 674, y = 1050, z = 7}, -- {Coordenada} hacia donde llevará el portal de salida.
         AccessKEY = ConfigA.ZoneAccess.AccessPoison, -- No tocar.
       },

       [{5660, 5661}] = { -- [{UniqueId del portal de salida, UniqueId del portal de entrada}] ... a la zona ardiente.
         Arrival = {x = 720, y = 1036, z = 7}, -- {Coordenada} de la primera isla ardiente hacia donde llevará la entrada.
         FirstMonster = {ConfigA.Monsters.Islands[6], {x = 719, y = 1037, z = 7}}, -- {Coordenada} del spawn del primer monstruo.

         Departure = {x = 674, y = 1045, z = 7}, -- {Coordenada} hacia donde llevará el portal de salida.
         AccessKEY = ConfigA.ZoneAccess.AccessOnFire, -- No tocar.
       },

       [{5670, 5671}] = { -- [{UniqueId del portal de salida, UniqueId del portal de entrada}] ... a la zona eléctrica.
         Arrival = {x = 703, y = 1048, z = 7}, --{Coordenada} de la primera isla eléctrica hacia donde llevará la entrada.
         FirstMonster = {ConfigA.Monsters.Islands[11], {x = 704, y = 1050, z = 7}}, -- {Coordenada} del spawn del primer monstruo.

         Departure = {x = 678, y = 1041, z = 7}, -- {Coordenada} hacia donde llevará el portal de salida.
         AccessKEY = ConfigA.ZoneAccess.AccessEnergy, -- No tocar.
       },

       [{5680, 5681}] = { -- [{UniqueId del portal de salida, UniqueId del portal de entrada}] ... a la zona contaminada.
         Arrival = {x = 714, y = 1059, z = 7}, -- {Coordenada} de la primera isla contaminada hacia donde llevará la entrada.
         FirstMonster = {ConfigA.Monsters.Islands[16], {x = 712, y = 1062, z = 7}}, -- {Coordenada} del spawn del primer monstruo.

         Departure = {x = 684, y = 1041, z = 7}, -- {Coordenada} hacia donde llevará el portal de salida.
         AccessKEY = ConfigA.ZoneAccess.AccessSmoked, -- No tocar.
       },
     },

     Bridges = { -- Configuración acerca de todos los puentes anexos de todas las islas.

       Radius = 6, -- Cantidad de sqm's alejados del jugador en el que se creará el monstruo de cada isla.

       -- Puentes procedentes de la zona venenosa.
       [5652] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = SOUTH, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[1], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[2], -- No tocar.
       },
       [5653] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = SOUTH, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[2], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[3], -- No tocar.
       },
       [5654] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = EAST, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[3], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[4], -- No tocar.
       },
       [5655] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = EAST, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[4], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[5], -- No tocar.
         ToCloseDoor = {ConfigA.Doors.poisonDoor[1], ConfigA.Doors.poisonDoor[2]}, -- No tocar.
       },
       -------------------------------------------

       -- Puentes procedentes de la zona ardiente.
       [5662] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = WEST, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[6], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[7], -- No tocar.
       },
       [5663] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = WEST, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[7], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[8], -- No tocar.
       },
       [5664] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = WEST, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[8], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[9], -- No tocar.
       },
       [5665] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = SOUTH, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[9], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[10], -- No tocar.
         ToCloseDoor = {ConfigA.Doors.onFireDoor[1], ConfigA.Doors.onFireDoor[2]}, -- No tocar.
       },
       -------------------------------------------

       -- Puentes procedentes de la zona eléctrica.
       [5672] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = SOUTH, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[11], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[12], -- No tocar.
       },
       [5673] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = EAST, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[12], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[13], -- No tocar.
       },
       [5674] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = EAST, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[13], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[14], -- No tocar.
       },
       [5675] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = NORTH, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[14], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[15], -- No tocar.
         ToCloseDoor = {ConfigA.Doors.energyDoor[1], ConfigA.Doors.energyDoor[2]}, -- No tocar.
       },
       -------------------------------------------

       -- Puentes procedentes de la zona contaminada.
       [5682] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = SOUTH, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[16], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[17], -- No tocar.
       },
       [5683] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = SOUTH, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[17], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[18], -- No tocar.
       },
       [5684] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = WEST, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[18], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[19], -- No tocar.
       },
       [5685] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = SOUTH, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[19], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[20], -- No tocar.
       },
       [5686] = { -- [ActionID] del par de tiles del medio del puente.
         SummonToDir = WEST, -- DIRECCIÓN hacia donde se creará el monstruo. (Puede ser: NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)
         PrevMonster = ConfigA.Monsters.Islands[20], -- No tocar.
         NextMonster = ConfigA.Monsters.Islands[21], -- No tocar.
         ToCloseDoor = {ConfigA.Doors.smokedDoor[1], ConfigA.Doors.smokedDoor[2]}, -- No tocar.
       },
     },

     AccessWay = { -- Configuración acerca del último puente colgante.
       FinalAccess = 409830, -- Storage Key en el que se sumará +1 value al salir del portal de cada una de las cuatro zonas.

     -- [UniqueID de cada tile del puente colgante] = {No tocar}
       [5686] = {0},
       [5687] = {1},
       [5688] = {2},
       [5689] = {3},
     },

     FinalBoss = { -- Configuración acerca de las palancas de la última zona del Boss.

       [{5690, 5691}] = { -- [{UniqueId de la palanca invocadora, UniqueId de la palanca de salida}]
         leverId = {1945, 1946}, -- {ItemId de la palanca mirando hacia un lado, y hacia el otro}
         name = ConfigA.Monsters.Boss, -- No tocar.
         spawn = {x = 639, y = 1039, z = 7}, -- {Coordenada} donde aparecerá el boss.
         place = {x = 680, y = 1050, z = 7}, -- {Coordenada} de la sala del premio.
       },
     },

     DoorsAgain = { -- No tocar.
       [ConfigA.Monsters.Islands[5]] = {ConfigA.Doors.poisonDoor[1], ConfigA.Doors.poisonDoor[2]},
       [ConfigA.Monsters.Islands[10]] = {ConfigA.Doors.onFireDoor[1], ConfigA.Doors.onFireDoor[2]},
       [ConfigA.Monsters.Islands[15]] = {ConfigA.Doors.energyDoor[1], ConfigA.Doors.energyDoor[2]},
       [ConfigA.Monsters.Islands[21]] = {ConfigA.Doors.smokedDoor[1], ConfigA.Doors.smokedDoor[2]},
     },

   }



Respecto a la variable:
     TotalArea = { -- Área de toda la quest. (Por ello es recomendable que la tengas toda juntita en el remeres)
       left = {x = 634, y = 1032, z = 7}, -- {Coordenada} de la esquina superior izquierda de toda la quest.
       right = {x = 723, y = 1082, z = 7}, -- {Coordenada} de la esquina inferior derecha de toda la quest.
     },
Como te dije en el chat, se refiere a estos 2 puntos del ejemplo:
TotalArea:
[Tienes que estar registrado y conectado para ver esa imagen]
Y rellena los sqm's vacíos del mapa entre zona y zona oscura de toda la quest, con algún sqm que quieras. Así, como yo puse en el ejemplo anterior con la zona roja. Creando como una especie de cuadrado/rectángulo de todo el área.
... Es para que no dé error una parte del script al iniciarse el servidor.



También, respecto a la variable de:
     Statues = { -- Configuración acerca de los monstruos inmortales con formas de estatua.
    -- [ItemId de la estatua] = {"Nombre del Monstruo"},
       [1551] = {"QIpoison"},
       [7823] = {"QIonFire"},
       [9751] = {"QIenergy"},
     },

En el remeres, ya, no es necesario que pongas esos monstruos con formas de estatua por las zonas de la quest. Como te comenté en el chatbox. Simplemente con que pongas los objetos 1551, 7823 y 9751; en cada una de las zonas que gustes: al iniciarse el servidor serán sustituidos por sus respectivos monstruos.

Lo hice así porque si a un monstruo le pones aspecto físico de objeto e importas a las criaturas del remeres, luego, aparecerán transparentes en el RME. Eso, sumado a que no se puede colocar monstruos en zonas por las que no se puede pasar, es decir, encima de objetos que bloquean el espacio, sino que primero habría que ponerlos en una zona walkeable y luego arrastrarlos hasta esas zonas no walkeables. Por lo que, resumiendo: solamente coloca dichas columnas.



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

Ozuna


Miembro
eres un amor ty

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.

 

¿Quién está en línea?

En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .