BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Palanca Auto Monster

Palanca Auto Monster

#1 Palanca Auto Monster el Miér Abr 16, 2014 7:56 pm

Cheito123


Novato
necesito un script de una palanca que al darle second click saken varios monster dispersados por varias partes de la ciudad y al darle cobre 1 item (X) y no se pueda volver a tokar la palanca despues de 1 hora.

#2 Re: Palanca Auto Monster el Miér Abr 16, 2014 10:12 pm

Belerofonte


Administrador
Te vas a tu Servidor/Data/Actions/Actions.xml y en una de las líneas pegas la siguiente:
Código:
<action uniqueid="7426" event="script" value="palanca invasion.lua"/>
Luego te vas a tu Servidor/Data/Actions/Scripts... copias un archivo.lua cualquiera de los que haya y lo pegas en esa misma carpeta, le cambias el nombre que tenga por el de palanca invasion, lo abres & sustitúyes todo lo que haya dentro a cambio de lo siguiente:
Código:
   local Belero = {
       [7426] = { -- [UniqueID de la palanca].
                Storage = 18711, -- Storage Value (ha de ser distinto en cada línea)
 Precio = 5091, -- ID del objeto requerido.
 Cantidad = 1, -- Cantidad del objeto requerido anteriormente.
 Seg = 3600, -- Tiempo (contado en segundos) necesario para que vuelva a poder funcionar. (1h = 3600s)
                monsters = {
 --{"Nombre del Monster", {Coordenada del lugar donde aparecerá},
                   {"Acid Blob", {x=935, y=1026, z=8}},
                   {"Death Blob", {x=936, y=1026, z=8}},
                   {"Mercury Blob", {x=937, y=1026, z=8}},
                   {"Chakoya Toolshaper", {x=935, y=1025, z=8}},
                   {"Chakoya Tribewarden", {x=936, y=1025, z=8}},
                   {"Chakoya Windcaller", {x=937, y=1025, z=8}},
                           }
                },

    }
function onUse(cid, item, pos)
  local v = Belero[item.uid]
    if v and os.time(t) > getGlobalStorageValue(v.Storage) then
    if doPlayerRemoveItem(cid, v.Precio, v.Cantidad) then
 setGlobalStorageValue(cid, v.Storage, (os.time(t) + v.Seg))
         doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have called a horde of evil forces in exchange for " .. v.Cantidad .. " " .. getItemNameById(v.Precio) .. ", satisfactorily!")
            for _, monster in ipairs(v.monsters) do
             doCreateMonster (monster[1], monster[2])
             doSendMagicEffect (monster[2], CONST_ME_TELEPORT)
            end
 else
         doPlayerSendCancel(cid, "Sorry, you need to have " .. v.Cantidad .. " " .. getItemNameById(v.Precio) .. ".") -- Mensaje que saldrá si no tiene el objeto requerido.
         doSendMagicEffect (getThingPos(item.uid), CONST_ME_POFF)
        end
    else
     doPlayerSendCancel(cid, "You must to wait, to call to the next invasion.") -- Mensaje que saldrá cuando no haya pasado el tiempo necesario.
     doSendMagicEffect (getThingPos(item.uid), CONST_ME_POFF)
    end
  return doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
end

Instrucción
Solamente has de editar esta parte de arriba dependiendo de la mini explicación que puse a su derecha de cada línea:
[7426] = { -- [UniqueID de la palanca]
               Storage = 18711, -- Storage Value (ha de ser distinto en cada línea)
Precio = 5091, -- ID del objeto requerido.
Cantidad = 1, -- Cantidad del objeto requerido anteriormente.
Seg = 3600, -- Tiempo (contado en segundos) necesario para que vuelva a poder funcionar. (1h = 3600s)
               monsters = {
--{"Nombre del Monster", {Coordenada del lugar donde aparecerá},
                  {"Acid Blob", {x=935, y=1026, z=8}},
                  {"Death Blob", {x=936, y=1026, z=8}},
                  {"Mercury Blob", {x=937, y=1026, z=8}},
                  {"Chakoya Toolshaper", {x=935, y=1025, z=8}},
                  {"Chakoya Tribewarden", {x=936, y=1025, z=8}},
                  {"Chakoya Windcaller", {x=937, y=1025, z=8}},
                          }
               },

Puedes poner todas las líneas de monstruos que quieras con sus respectivas coordenadas,
como también más palancas, por si querrías poner dicha opción en más ciudades para no tener que hacer otros archivos.lua, pues sería duplicando esa parte editable de arriba, es decir:
Código:
   local Belero = {
       [7426] = { -- [UniqueID de la palanca]
                Storage = 18711, -- Storage Value (ha de ser distinto en cada línea)
 Precio = 5091, -- ID del objeto requerido.
 Cantidad = 1, -- Cantidad del objeto requerido anteriormente.
 Seg = 3600, -- Tiempo (contado en segundos) necesario para que vuelva a poder funcionar. (1h = 3600s)
                monsters = {
 --{"Nombre del Monster", {Coordenada del lugar donde aparecerá},
                   {"Acid Blob", {x=935, y=1026, z=8}},
                   {"Death Blob", {x=936, y=1026, z=8}},
                   {"Mercury Blob", {x=937, y=1026, z=8}},
                   {"Chakoya Toolshaper", {x=935, y=1025, z=8}},
                   {"Chakoya Tribewarden", {x=936, y=1025, z=8}},
                   {"Chakoya Windcaller", {x=937, y=1025, z=8}},
                           }
                },
       [7427] = { -- [UniqueID de la palanca]
                Storage = 18712, -- Storage Value (ha de ser distinto en cada línea)
 Precio = 5091, -- ID del objeto requerido.
 Cantidad = 1, -- Cantidad del objeto requerido anteriormente.
 Seg = 3600, -- Tiempo (contado en segundos) necesario para que vuelva a poder funcionar. (1h = 3600s)
                monsters = {
 --{"Nombre del Monster", {Coordenada del lugar donde aparecerá},
                   {"Kongra", {x=934, y=1027, z=8}},
                   {"Merlkin", {x=934, y=1028, z=8}},
                   {"Sibang", {x=934, y=1029, z=8}},
                   {"Wolf", {x=933, y=1027, z=8}},
                   {"Winter Wolf", {x=933, y=1028, z=8}},
                   {"War Wolf", {x=933, y=1029, z=8}},
                           }
                },
   [7428] = { -- [UniqueID de la palanca]
                Storage = 18713, -- Storage Value (ha de ser distinto en cada línea)
 Precio = 5091, -- ID del objeto requerido.
 Cantidad = 1, -- Cantidad del objeto requerido anteriormente.
 Seg = 3600, -- Tiempo (contado en segundos) necesario para que vuelva a poder funcionar. (1h = 3600s)
                monsters = {
 --{"Nombre del Monster", {Coordenada del lugar donde aparecerá},
                   {"Bear", {x=935, y=1030, z=8}},
                   {"Panda", {x=936, y=1030, z=8}},
                   {"Polar Bear", {x=937, y=1030, z=8}},
                   {"Frost Dragon", {x=935, y=1031, z=8}},
                   {"Undead Dragon", {x=936, y=1031, z=8}},
                   {"Ghastly Dragon", {x=937, y=1031, z=8}},
                           }
                },
   [7429] = { -- [UniqueID de la palanca]
                Storage = 18714, -- Storage Value (ha de ser distinto en cada línea)
 Precio = 5091, -- ID del objeto requerido.
 Cantidad = 1, -- Cantidad del objeto requerido anteriormente.
 Seg = 3600, -- Tiempo (contado en segundos) necesario para que vuelva a poder funcionar. (1h = 3600s)
                monsters = {
 --{"Nombre del Monster", {Coordenada del lugar donde aparecerá},
                   {"Beholder", {x=938, y=1027, z=8}},
                   {"Bonelord", {x=938, y=1028, z=8}},
                   {"Braindeath", {x=938, y=1029, z=8}},
                   {"Dworc Fleshhunter", {x=939, y=1027, z=8}},
                   {"Dworc Venomsniper", {x=939, y=1028, z=8}},
                   {"Dworc Voodoomaster", {x=939, y=1029, z=8}},
                           },

                }
    }
function onUse(cid, item, pos)
  local v = Belero[item.uid]
    if v and os.time(t) > getGlobalStorageValue(v.Storage) then
    if doPlayerRemoveItem(cid, v.Precio, v.Cantidad) then
 setGlobalStorageValue(cid, v.Storage, (os.time(t) + v.Seg))
         doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You have called a horde of evil forces in exchange for " .. v.Cantidad .. " " .. getItemNameById(v.Precio) .. ", satisfactorily!")
            for _, monster in ipairs(v.monsters) do
             doCreateMonster (monster[1], monster[2])
             doSendMagicEffect (monster[2], CONST_ME_TELEPORT)
            end
 else
         doPlayerSendCancel(cid, "Sorry, you need to have " .. v.Cantidad .. " " .. getItemNameById(v.Precio) .. ".") -- Mensaje que saldrá si no tiene el objeto requerido.
         doSendMagicEffect (getThingPos(item.uid), CONST_ME_POFF)
        end
    else
     doPlayerSendCancel(cid, "You must to wait, to call to the next invasion.") -- Mensaje que saldrá cuando no haya pasado el tiempo necesario.
     doSendMagicEffect (getThingPos(item.uid), CONST_ME_POFF)
    end
  return doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
end

Y añadir los UniqueIDs de las demás palancas en su respectiva línea del Actions.xml:
Código:
<action uniqueid="7426;7427;7428;7429" event="script" value="palanca invasion.lua"/>

Cualquier duda respecto a este script no dudes en exponerla



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]

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 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado :: 1 Motor de búsqueda

Usuarios navegando en este foro: Ninguno
Motores de búsqueda : bing

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 .