BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

Script para Quest.

Script para Quest.

#1 Script para Quest. el Lun Dic 29, 2014 5:07 pm

Healersitito


Novato
quisiera me ayudaran con esto, que al yo apretar una palanca se den tp  4 players que esten parados en  determianda coordenada, y que a donde se den tp esten por asi decir 4 monster cualquiera, y que al ir muriendo los 4 monster, empiezen a aparecer monster 1 por uno y que el monster final al morir le de tp a esos 4 players  a otra zona  y al clikear un armor rack creo que asi se llamaba , les de el outfit de warmaster o cualquier otro outfit, si no entendieron aqui les dejo un video de lo que digo

#2 Script Para Quest Warmaster. el Miér Ene 07, 2015 11:32 pm

Healersitito


Novato
quisiera me ayudaran con esto, que al yo apretar una palanca se den tp  4 players que esten parados en  determianda coordenada, y que a donde se den tp esten por asi decir 4 monster cualquiera, y que al ir muriendo los 4 monster, empiezen a aparecer monster 1 por uno y que el monster final al morir le de tp a esos 4 players  a otra zona  y al clikear un armor rack creo que asi se llamaba , les de el outfit de warmaster o cualquier otro outfit, si no entendieron aqui les dejo un video de lo que digo

#3 Re: Script para Quest. el Jue Ene 08, 2015 5:38 am

Belerofonte


Administrador
Respecto a la entrada, es como la anihi... ¿que sea como la anihi también en los requisitos?
1 - Requerimiento de nivel.
2 - Que solamente la puedan hacer una vez.
3 - Que no deje entrar si ya hay gente dentro.
¿O alguna/ninguna de ellas?

Y entre que va a cámara rápida y parece que en el vídeo salen más de cuatro monsters... ¿podrías explicar mejor eso de la aparición de monstruos? O sea...
- Entran los jugadores y aparecen 4 monstruos a la vez.
- Se cargan a 1 de los 4 monstruos y aparece otro en su lugar...
- ...lo mismo hasta acabar con los 3 monstruos primeros.
- Al haber matado a esos 4 primeros y a los 4 siguientes, aparece un único monstruo final.
¿No?

Por la explicación lo entendí así. Pero al ver el vídeo parece que salen 2 monstruos si se cargan a 1 y no salen al instante sino que se espera unos segundos... Y cuando salieron los Vampire Bride, lo hicieron sin haber matado a ninguno aún. Lo que da que pensar que tal vez salgan pasado X tiempo sin que dependa del monstruo que hayan matado sino del tiempo transcurrido.

No sé, algo confuso lo veo. Explicaciones detalladas, please.



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]

#4 Re: Script para Quest. el Jue Ene 08, 2015 10:17 am

Healersitito


Novato
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Respecto a la entrada, es como la anihi... ¿que sea como la anihi también en los requisitos?
1 - Requerimiento de nivel.
2 - Que solamente la puedan hacer una vez.
3 - Que no deje entrar si ya hay gente dentro.
¿O alguna/ninguna de ellas?

Y entre que va a cámara rápida y parece que en el vídeo salen más de cuatro monsters... ¿podrías explicar mejor eso de la aparición de monstruos? O sea...
- Entran los jugadores y aparecen 4 monstruos a la vez.
- Se cargan a 1 de los 4 monstruos y aparece otro en su lugar...
- ...lo mismo hasta acabar con los 3 monstruos primeros.
- Al haber matado a esos 4 primeros y a los 4 siguientes, aparece un único monstruo final.
¿No?

Por la explicación lo entendí así. Pero al ver el vídeo parece que salen 2 monstruos si se cargan a 1 y no salen al instante sino que se espera unos segundos... Y cuando salieron los Vampire Bride, lo hicieron sin haber matado a ninguno aún. Lo que da que pensar que tal vez salgan pasado X tiempo sin que dependa del monstruo que hayan matado sino del tiempo transcurrido.

No sé, algo confuso lo veo. Explicaciones detalladas, please.

Código:
1 - Requerimiento de nivel.
2 - Que solamente la puedan hacer una vez.
3 - Que no deje entrar si ya hay gente dentro.
¿O alguna/ninguna de ellas?

Que no tenga requerimiento de nivel.
Que se puedan hacer las Veces que sea
Que no deje entrar si hay alguien dentro

Código:
Y entre que va a cámara rápida y parece que en el vídeo salen más de cuatro monsters... ¿podrías explicar mejor eso de la aparición de monstruos? O sea...
- Entran los jugadores y aparecen 4 monstruos a la vez.
- Se cargan a 1 de los 4 monstruos y aparece otro en su lugar...
- ...lo mismo hasta acabar con los 3 monstruos primeros.
- Al haber matado a esos 4 primeros y a los 4 siguientes, aparece un único monstruo final.
¿No?

Que al matar una tanda, (o ronda como le quieras llamar xd) de monsters aparezca otra, y al matar la ultima ronda de monsters aparezca un boss final que al matarlo les de tp a los player a determinada zona

Código:
Por la explicación lo entendí así. Pero al ver el vídeo parece que salen 2 monstruos si se cargan a 1 y no salen al instante sino que se espera unos segundos... Y cuando salieron los Vampire Bride, lo hicieron sin haber matado a ninguno aún. Lo que da que pensar que tal vez salgan pasado X tiempo sin que dependa del monstruo que hayan matado sino del tiempo transcurrido.

No sé, algo confuso lo veo. Explicaciones detalladas, please.

Lo de los vampire es porque son summon del boss final

<<< lo grabe hace un tiempo ya, se ve un poco mas sobre la quest.la quest en si comienza desde el min 0:30

#5 Re: Script para Quest. el Sáb Ene 10, 2015 2:00 am

Healersitito


Novato
@Beleforonte man que paso pudiste hacerlos?

#6 Re: Script para Quest. el Mar Ene 13, 2015 12:01 am

Healersitito


Novato
¿¿¿¿¿¿¿¿¿

#7 Re: Script para Quest. el Mar Ene 13, 2015 1:12 am

Blod


Estudiante
Eso se llama Mortal Kombat Quest, y yo tengo ese script, pero belerofonte te lo hara mucho mejor

http://oldland.sytes.net/

#8 Re: Script para Quest. el Mar Ene 13, 2015 1:22 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Eso se llama Mortal Kombat Quest, y yo tengo ese script, pero belerofonte te lo hara mucho mejor
Nop, mejor ponselo tú, que yo ando estos días ocupado...



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]

#9 Re: Script para Quest. el Jue Ene 15, 2015 1:25 am

Blod


Estudiante
data/actions/scripts/mortalKombat.lua
Código:

local t, player = {
   pedestals = {
      {x=33060, y=30950, z=2}, -- Posicion del player 1 antes de jalar la palanca
      {x=33061, y=30950, z=2}  --Posicion del player 2 antes de jalar la palanca
   },
   newPos = {
      {x=33038, y=30970, z=3}, -- Donde seran teletransportados
      {x=33038, y=30971, z=3}  -- Donde seran teletransportados
   },
   area = {
      fromX = 33036, toX = 33050,  -- Esquina superior izquierda de la arena
      fromY = 30966, toY = 30979,  --Esquina inferior derecha de la arena
      z = 3  -- En que piso esta la arena
   },
   storageDone = 4767,
   level = 80 -- Nivel Requerido
}, {0, 0}

function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers, showSummons)
   local creaturesList = {}
   for x = -radiusx, radiusx do
      for y = -radiusy, radiusy do
         if not (x == 0 and y == 0) then
            creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = 253})
            if (creature.type == 1 and showPlayers == TRUE) or (creature.type == 2 and showMonsters == TRUE and (showSummons == FALSE or (showSummons == TRUE and getCreatureMaster(creature.uid) == (creature.uid)))) then
               table.insert(creaturesList, creature.uid)
            end
         end
      end
   end

   local creature = getTopCreature(position)
   if (creature.type == 1 and showPlayers == TRUE) or (creature.type == 2 and showMonsters == TRUE and (showSummons == FALSE or (showSummons == TRUE and getCreatureMaster(creature.uid) == (creature.uid)))) then
      if not(table.find(creaturesList, creature.uid)) then
         table.insert(creaturesList, creature.uid)
      end
   end
    return creaturesList
end

function Wave1()
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Baron Brute', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT) --Nombre del monster y posicion donde se sumoneara automaticamente (esta es la primera oleada)
   doSendMagicEffect(getCreaturePosition(doCreateMonster('The Axeorcist', {x=33047, y=30971, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave2, 30 * 1000)
end

function Wave2() --oleada dos
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Menace', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
   doSendMagicEffect(getCreaturePosition(doCreateMonster('Fatality', {x=33047, y=30971, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave3, 35 * 1000)
end

function Wave3() --oleada tres
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Incineron', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
   doSendMagicEffect(getCreaturePosition(doCreateMonster('Coldheart', {x=33047, y=30971, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave4, 40 * 1000)
end

function Wave4() --oleada cuatro
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Dreadwing', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
   doSendMagicEffect(getCreaturePosition(doCreateMonster('Doomhowl', {x=33047, y=30971, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave5, 40 * 1000)
end

function Wave5() --oleada cinco
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Haunter', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave6, 40 * 1000)
end

function Wave6() --oleada seis
      doSendMagicEffect(getCreaturePosition(doCreateMonster('The Dreadorian', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
   doSendMagicEffect(getCreaturePosition(doCreateMonster('Rocko', {x=33047, y=30971, z=3})), CONST_ME_TELEPORT)
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Tremorak', {x=33047, y=30972, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave7, 40 * 1000)
end

function Wave7() -- ultima oleada, el boss y el que te llevara al reward room
   doSendMagicEffect(getCreaturePosition(doCreateMonster('Tirecz', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
   local failed = false
   for i = 1, #t.pedestals do
      player[i] = getTopCreature(t.pedestals[i]).uid
      if(not(player[i] > 0 and isPlayer(player[i]) == TRUE and getPlayerStorageValue(player[i], t.storageDone) < 1 and getPlayerLevel(player[i]) >= t.level)) then
         failed = true
         break
      end
   end
   if not failed then
      if #getCreaturesInRange({x=33063, y=31035,z=3}, 10, 9, FALSE, TRUE) > 0 then --Centro de la arena
         doPlayerSendTextMessage(cid,25, "Some people are already in the arena.")
         return true
      end
      for i = 1, #player do
         doTeleportThing(player[i], t.newPos[i])
      end
      Wave1()
      doTransformItem(item.uid, 1946)
   else
      doPlayerSendDefaultCancel(cid, RETURNVALUE_CANNOTUSETHISOBJECT)
   end
   return true
end

y en actions.xml
Código:

<action uniqueid="32145" event="script" value="mortalkombat.lua"/>
El unique id que pondras en la palanca

ahora en creaturescripts/scripts/mortalKombatBoss.lua
Código:

local t = {
   bosses   = { -- Monster Name,   Teleport To Position,       Teleport Position
      ["Tirecz"] = {ttp={x=33033, y=30957,   z=7},   tp={x=33060,   y=30950,   z=3,   stackpos=1}}
   }
}
 
function onKill(cid, target, lastHit)
   local k = t.bosses[getCreatureName(target)]
   if(not isPlayer(target)) and isPlayer(cid) and k and not(getCreatureMaster(target)) then      
      doPlayerSendTextMessage(cid,22,"Take you prizez and outfit then you can may leave the reward room now!")
for x = 33036, 33050 do
         for y = 30966, 30979 do
            pos = {x = x, y = y, z = getCreaturePosition(cid).z}
            if(isPlayer(getTopCreature(pos).uid)) then
               doTeleportThing(getTopCreature(pos).uid, {x=33033, y=30957, z=7}) --Efecto al transportal al reward room
               doSendMagicEffect({x=33033, y=30957, z=7}, CONST_ME_TELEPORT) --Efecto al transportal al reward room
            end
         end   
end      
end
   return true
end

Login.lua agregas lo siguiente
Código:

registerCreatureEvent(cid, "MKBoss")

Y en creaturescripts.xml
Código:

<event type="kill" name="MKBoss" script="mortalKombatBoss.lua"/>

y si quieres el reward del outfit
data/actions/scripts/MkReward.lua
Código:

function onUse(cid, item, fromPosition, itemEx, toPosition)
   if (getPlayerStorageValue(cid, 4767) == EMPTY_STORAGE) then
      doCreatureSay(cid, "You have gained your new outfit and may leave the reward room now!", TALKTYPE_ORANGE_1)
      doPlayerAddOutfit(cid, 336, 0)
      doPlayerAddOutfit(cid, 335, 0)
      setPlayerStorageValue(cid, 4767, 1)
      doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYDAMAGE)
   else
      doPlayerSendTextMessage(cid,22,"You have already gained your new outfit. You may leave the room now.")
   end
   return true
end

actions.xml
Código:

<action uniqueid="39471" event="script" value="MKReward.lua"/>

Puedes agregarle mas players al scripts
de la siguiente manera
Código:

pedestals = {
      {x=33060, y=30950, z=2},
      {x=33061, y=30950, z=2},
                {x=33063, y=30950, z=2}
   },
   newPos = {
      {x=33038, y=30970, z=3},
      {x=33038, y=30971, z=3},
                {x=33038, y=30972, z=3}
   },

No olvides agregar la coma para que no te saque error

http://oldland.sytes.net/

#10 Re: Script para Quest. el Jue Ene 15, 2015 11:57 pm

Healersitito


Novato
[Tienes que estar registrado y conectado para ver este vínculo] escribió:data/actions/scripts/mortalKombat.lua
Código:

local t, player = {
   pedestals = {
      {x=33060, y=30950, z=2}, -- Posicion del player 1 antes de jalar la palanca
      {x=33061, y=30950, z=2}  --Posicion del player 2 antes de jalar la palanca
   },
   newPos = {
      {x=33038, y=30970, z=3}, -- Donde seran teletransportados
      {x=33038, y=30971, z=3}  -- Donde seran teletransportados
   },
   area = {
      fromX = 33036, toX = 33050,  -- Esquina superior izquierda de la arena
      fromY = 30966, toY = 30979,  --Esquina inferior derecha de la arena
      z = 3  -- En que piso esta la arena
   },
   storageDone = 4767,
   level = 80 -- Nivel Requerido
}, {0, 0}

function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers, showSummons)
   local creaturesList = {}
   for x = -radiusx, radiusx do
      for y = -radiusy, radiusy do
         if not (x == 0 and y == 0) then
            creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = 253})
            if (creature.type == 1 and showPlayers == TRUE) or (creature.type == 2 and showMonsters == TRUE and (showSummons == FALSE or (showSummons == TRUE and getCreatureMaster(creature.uid) == (creature.uid)))) then
               table.insert(creaturesList, creature.uid)
            end
         end
      end
   end

   local creature = getTopCreature(position)
   if (creature.type == 1 and showPlayers == TRUE) or (creature.type == 2 and showMonsters == TRUE and (showSummons == FALSE or (showSummons == TRUE and getCreatureMaster(creature.uid) == (creature.uid)))) then
      if not(table.find(creaturesList, creature.uid)) then
         table.insert(creaturesList, creature.uid)
      end
   end
    return creaturesList
end

function Wave1()
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Baron Brute', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT) --Nombre del monster y posicion donde se sumoneara automaticamente (esta es la primera oleada)
   doSendMagicEffect(getCreaturePosition(doCreateMonster('The Axeorcist', {x=33047, y=30971, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave2, 30 * 1000)
end

function Wave2() --oleada dos
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Menace', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
   doSendMagicEffect(getCreaturePosition(doCreateMonster('Fatality', {x=33047, y=30971, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave3, 35 * 1000)
end

function Wave3() --oleada tres
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Incineron', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
   doSendMagicEffect(getCreaturePosition(doCreateMonster('Coldheart', {x=33047, y=30971, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave4, 40 * 1000)
end

function Wave4() --oleada cuatro
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Dreadwing', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
   doSendMagicEffect(getCreaturePosition(doCreateMonster('Doomhowl', {x=33047, y=30971, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave5, 40 * 1000)
end

function Wave5() --oleada cinco
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Haunter', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave6, 40 * 1000)
end

function Wave6() --oleada seis
      doSendMagicEffect(getCreaturePosition(doCreateMonster('The Dreadorian', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
   doSendMagicEffect(getCreaturePosition(doCreateMonster('Rocko', {x=33047, y=30971, z=3})), CONST_ME_TELEPORT)
      doSendMagicEffect(getCreaturePosition(doCreateMonster('Tremorak', {x=33047, y=30972, z=3})), CONST_ME_TELEPORT)
   addEvent(Wave7, 40 * 1000)
end

function Wave7() -- ultima oleada, el boss y el que te llevara al reward room
   doSendMagicEffect(getCreaturePosition(doCreateMonster('Tirecz', {x=33047, y=30970, z=3})), CONST_ME_TELEPORT)
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
   local failed = false
   for i = 1, #t.pedestals do
      player[i] = getTopCreature(t.pedestals[i]).uid
      if(not(player[i] > 0 and isPlayer(player[i]) == TRUE and getPlayerStorageValue(player[i], t.storageDone) < 1 and getPlayerLevel(player[i]) >= t.level)) then
         failed = true
         break
      end
   end
   if not failed then
      if #getCreaturesInRange({x=33063, y=31035,z=3}, 10, 9, FALSE, TRUE) > 0 then --Centro de la arena
         doPlayerSendTextMessage(cid,25, "Some people are already in the arena.")
         return true
      end
      for i = 1, #player do
         doTeleportThing(player[i], t.newPos[i])
      end
      Wave1()
      doTransformItem(item.uid, 1946)
   else
      doPlayerSendDefaultCancel(cid, RETURNVALUE_CANNOTUSETHISOBJECT)
   end
   return true
end

y en actions.xml
Código:

<action uniqueid="32145" event="script" value="mortalkombat.lua"/>
El unique id que pondras en la palanca

ahora en creaturescripts/scripts/mortalKombatBoss.lua
Código:

local t = {
   bosses   = { -- Monster Name,   Teleport To Position,       Teleport Position
      ["Tirecz"] = {ttp={x=33033, y=30957,   z=7},   tp={x=33060,   y=30950,   z=3,   stackpos=1}}
   }
}
 
function onKill(cid, target, lastHit)
   local k = t.bosses[getCreatureName(target)]
   if(not isPlayer(target)) and isPlayer(cid) and k and not(getCreatureMaster(target)) then      
      doPlayerSendTextMessage(cid,22,"Take you prizez and outfit then you can may leave the reward room now!")
for x = 33036, 33050 do
         for y = 30966, 30979 do
            pos = {x = x, y = y, z = getCreaturePosition(cid).z}
            if(isPlayer(getTopCreature(pos).uid)) then
               doTeleportThing(getTopCreature(pos).uid, {x=33033, y=30957, z=7}) --Efecto al transportal al reward room
               doSendMagicEffect({x=33033, y=30957, z=7}, CONST_ME_TELEPORT) --Efecto al transportal al reward room
            end
         end   
end      
end
   return true
end

Login.lua agregas lo siguiente
Código:

registerCreatureEvent(cid, "MKBoss")

Y en creaturescripts.xml
Código:

<event type="kill" name="MKBoss" script="mortalKombatBoss.lua"/>

y si quieres el reward del outfit
data/actions/scripts/MkReward.lua
Código:

function onUse(cid, item, fromPosition, itemEx, toPosition)
   if (getPlayerStorageValue(cid, 4767) == EMPTY_STORAGE) then
      doCreatureSay(cid, "You have gained your new outfit and may leave the reward room now!", TALKTYPE_ORANGE_1)
      doPlayerAddOutfit(cid, 336, 0)
      doPlayerAddOutfit(cid, 335, 0)
      setPlayerStorageValue(cid, 4767, 1)
      doSendMagicEffect(getCreaturePosition(cid), CONST_ME_HOLYDAMAGE)
   else
      doPlayerSendTextMessage(cid,22,"You have already gained your new outfit. You may leave the room now.")
   end
   return true
end

actions.xml
Código:

<action uniqueid="39471" event="script" value="MKReward.lua"/>

Puedes agregarle mas players al scripts
de la siguiente manera
Código:

pedestals = {
      {x=33060, y=30950, z=2},
      {x=33061, y=30950, z=2},
                {x=33063, y=30950, z=2}
   },
   newPos = {
      {x=33038, y=30970, z=3},
      {x=33038, y=30971, z=3},
                {x=33038, y=30972, z=3}
   },

No olvides agregar la coma para que no te saque error

Muchas gracias, disculpa de que coma hablas?, sq no se mucho de scripts xD

#11 Re: Script para Quest. el Jue Ene 15, 2015 11:59 pm

Healersitito


Novato
gracias

#12 Re: Script para Quest. Hoy a las 4:30 am

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 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 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 .