Quest Templul-Dragonului New

Deconectat
Avatar utilizator
Zerant :3
Membru Club
Membru Club
Mesaje: 659
Membru din: 17 Oct 2015
Reputație: ► --Helper
► --Nume anterior: deejaypantera
Membru Club ( 20 ian - 20 martie)
Status: Detinator Zentoria2
Server Metin2: Zentoria2
Regat: Jinno
Mulțumiri acordate: 4
Mulțumiri primite: 14
Contact:

Quest Templul-Dragonului New

Mesajde Zerant :3 » 14 Iun 2016, 19:33

Salut, deoarece eu am luat un timp pauza vreau sa postez si eu un quest new
Acest quest este Templul-Dragonului modificat.
Daca esti in grupa toti membri vor fi teleportati cand liderul vrea sa intre in camera si la toti le vor fi luate 3 chei rasucite.
Cand intri in camera dragonului o sa primesti informatii despre ce trebuie sa faci sunt 3 misiuni.
Defapt este un RUN.
Daca distrugi metinele Dragonul va slabii, nu trebuie sa le lasati intrun anumit mod, doar sparte toate.

1 - La intrare in camera dragonului va trebui sa omori Vrajitoarea de Gheata
2 - Dupa uciderea Vrajitoarei de Gheata va aparea Dragonul Albastru
3 - Dupa uciderea dragonului va aparea Stafia care te poate teleporta in SD3 cu 3 chei rasucite

Download Complect Map/Dungeon+Quest+Lua - Trebuie să fii logat sau înregistrat pentru a vedea acest link.
Parola

Cod: Selectaţi tot

ageofwushu



Quest:

Cod: Selectaţi tot

-----------------------------------
-- Age Of Wushu -
-- Author: UltimatoS
-- Contact: alinutz_2010
-----------------------------------
quest Templul_Dragonului begin
   state start begin

      function setting()
         return {
            ["mapIndex"] = 354,                                                   -- Index del Mapa
            ["base_coord"] = {7924,9134},                                          -- Coordenadas Base
            ["outdoor_coord"] = {65,5536,1436},                                       -- Coordenadas de la Entrada. Ej: {indexDelMapa, coordx, coordy}
            ["second_floor_coord"] = {8046,9246},                                    -- Coordenadas de la sala de la Araña
            ["minLevel"] = 75,                                                   -- Nivel minimo
            ["dEnterItemVnum"] = 30179,                                             -- Item necesario para entrar
            ["dEnterItemCount"] = 3,                                             -- Cantidad de item necesario para entrar en la dungeon
            ["dsEnterItemCount"] = 1,                                             -- Cantidad de item necesario para entrar en la sala Araña
            ["enterNpc"] = {30121, 183, 173},                                       -- NPC de entrada a la segunda planta (araña)
            ["firstTaskBoss"] = {1192, 166, 212},                                    -- Jefe de la primera planta + coordenadas de spawn
            ["secondTaskBoss"] = {2493, 166, 157},                                    -- Jefe (beran) de la 2ª planta + coordenadas de spawn
            ["thirdTaskBoss"] = {2092, 372, 361},                                    -- Jefe (araña) de la 3ª planta + coordenadas de spawn
            ["thirdTaskStones"] = {2095, 355, 333, 385, 333, 385, 359, 345, 356, 365, 373},      -- Metines (huevos de araña) + coordenadas de spawn. Ej: {idHuevo, x1, y1, x2, y2, x3, y3, etc}
         }
      end

      function is_in()
         local mapIndex = dr_sd3_dungeon.setting().mapIndex
         return pc.get_map_index() >= mapIndex*10e3 and pc.get_map_index() < (mapIndex+1)*10e3
      end

      function can_enter(checksecondfase)
         local setting = dr_sd3_dungeon.setting()
         if pc.get_level() < setting.minLevel then
            return -2
         elseif pc.count_item(setting.dEnterItemVnum) < (checksecondfase and setting.dsEnterItemCount or setting.dEnterItemCount) then
            return -1
         end
         return true
      end

      function can_party_members_enter(checksecondfase)
         local setting = dr_sd3_dungeon.setting()
         local itemCount = (checksecondfase and setting.dsEnterItemCount or setting.dEnterItemCount)
         if not party.is_party() then
            local canEnter = dr_sd3_dungeon.can_enter(checksecondfase)
            if canEnter == -2 then
               say(string.format(locale.dr_sd3_dungeon._16say, setting.minLevel))
               return false
            elseif canEnter == -1 then
               say(string.format(locale.dr_sd3_dungeon._15say, itemCount, item_name(setting.dEnterItemVnum)))
               return false
            end
            return true
         end
         
         local pids = {party.get_member_pids()}
         local cantEnter = {{},{}}
         for _, pid in ipairs(pids) do
            q.begin_other_pc_block(pid)
            local canEnter = dr_sd3_dungeon.can_enter(checksecondfase)
            if canEnter == -2 then table.insert(cantEnter[1], pc.get_name())
            elseif canEnter == -1 then table.insert(cantEnter[2], pc.get_name()) end
            q.end_other_pc_block()
         end

         if table.getn(cantEnter[1]) > 0 then
            say(string.format(locale.dr_sd3_dungeon._05say, setting.minLevel))
            for i = 1, table.getn(cantEnter[1]) do
               say(color(1,1,0), "   "..cantEnter[1][i])
            end
            return false
         elseif table.getn(cantEnter[2]) > 0 then
            say(string.format(locale.dr_sd3_dungeon._06say, itemCount, item_name(setting.dEnterItemVnum)))
            for i = 1, table.getn(cantEnter[2]) do
               say(color(1,1,0), "   "..cantEnter[2][i])
            end
            return false
         end
         return true
      end

      function clear_level()
         local base = dr_sd3_dungeon.setting().base_coord
         d.clear_regen()
         d.purge_area(base[1], base[2], (base[1]+511)*100, (base[2]+511)*100)
      end

      function go_to_next_floor()
         dr_sd3_dungeon.clear_level()
         d.notice(locale.dr_sd3_dungeon._09say)
         server_timer("dr_sd3_dungeon_next_floor", 60, d.get_map_index())
      end

      when login with dr_sd3_dungeon.is_in() begin
         local setting = dr_sd3_dungeon.setting()
         if dr_sd3_dungeon.can_enter() == -1 then
            d.notice(string.format(locale.dr_sd3_dungeon._01say, pc.get_name(), setting.dEnterItemCount, item_name(setting.dEnterItemVnum)))
            d.exit()
            return
         elseif dr_sd3_dungeon.can_enter() == -2 then
            d.exit()
            return
         end
         pc.remove_item(setting.dEnterItemVnum, setting.dEnterItemCount)
         pc.set_warp_location(setting.outdoor_coord[1], setting.outdoor_coord[2], setting.outdoor_coord[3])
         if d.getf("level") == 0 then
            d.setf("level", d.getf("level")+1)
            d.regen_file("data/dungeon/dr_sd3_dungeon/dr_sd3_1.txt")
            d.spawn_mob(setting.firstTaskBoss[1], setting.firstTaskBoss[2], setting.firstTaskBoss[3])
            d.notice(string.format(locale.dr_sd3_dungeon._07say, mob_name(setting.firstTaskBoss[1])))
         end
      end

      when 30121.chat.locale.dr_sd3_dungeon._02say begin
         local setting = dr_sd3_dungeon.setting()

         say_title(mob_name(npc.get_race()))
         if dr_sd3_dungeon.is_in() then
            if party.is_party() and not party.is_leader() then
               say(locale.dr_sd3_dungeon._04say)
               return
            end
            say(locale.dr_sd3_dungeon._11say)
            local decision = select(locale.dr_sd3_dungeon._12say, locale.dr_sd3_dungeon._13say, locale.dr_sd3_dungeon._14say)
            if decision == 3 then
               server_timer("dr_sd3_dungeon_exit", 10, d.get_map_index())
               npc.purge()
            elseif decision == 1 then
               if not dr_sd3_dungeon.can_party_members_enter(true) then return end
               local pids = {party.get_member_pids()}
               local continue = true
               for _, pid in ipairs(pids) do
                  q.begin_other_pc_block(pid)
                  if pc.count_item(setting.dEnterItemVnum) >= setting.dsEnterItemCount then
                     pc.remove_item(setting.dEnterItemVnum, setting.dsEnterItemCount)
                  else
                     continue = false
                  end
                  q.end_other_pc_block()
               end

               if continue then
                  dr_sd3_dungeon.go_to_next_floor()
                  npc.purge()
               end
            end
            return
         --elseif not party.is_party() then
         --   say(locale.dr_sd3_dungeon._03say)
         --   return
         elseif party.is_party() and not party.is_leader() then
            say(locale.dr_sd3_dungeon._04say)
            return
         end

         if not dr_sd3_dungeon.can_party_members_enter() then return end
         if party.is_party() then
            d.new_jump_party(setting.mapIndex, setting.base_coord[1], setting.base_coord[2])
         else
            d.join(setting.mapIndex)
         end
      end

      when kill with not npc.is_pc() and dr_sd3_dungeon.is_in() begin
         local setting = dr_sd3_dungeon.setting()
         local mobVnum = npc.get_race()

         if mobVnum == setting.firstTaskBoss[1] then
            dr_sd3_dungeon.go_to_next_floor()
         elseif mobVnum == setting.secondTaskBoss[1] then
            dr_sd3_dungeon.clear_level()
            d.spawn_mob(setting.enterNpc[1], setting.enterNpc[2], setting.enterNpc[3])
         elseif mobVnum == setting.thirdTaskStones[1] then
            local count = d.getf("killedStones")+1
            d.setf("killedStones", count)
            if count >= (table.getn(setting.thirdTaskStones)-1)/2 then
               d.spawn_mob(setting.thirdTaskBoss[1], setting.thirdTaskBoss[2], setting.thirdTaskBoss[3])
               d.notice(string.format(locale.dr_sd3_dungeon._07say, mob_name(setting.thirdTaskBoss[1])))
            end
         elseif mobVnum == setting.thirdTaskBoss[1] then
            dr_sd3_dungeon.clear_level()
            d.notice(string.format(locale.dr_sd3_dungeon._10say, pc.get_name(), mob_name(mobVnum)))
            server_timer("dr_sd3_dungeon_exit", 60, d.get_map_index())
         end
      end

      when dr_sd3_dungeon_next_floor.server_timer begin
         if d.select(get_server_timer_arg()) then
            local setting = dr_sd3_dungeon.setting()
            local level = d.getf("level")+1
            d.setf("level", level)
            if level == 2 then
               d.jump_all(setting.base_coord[2], setting.base_coord[3])
               d.notice(string.format(locale.dr_sd3_dungeon._07say, mob_name(setting.secondTaskBoss[1])))
               d.spawn_mob(setting.secondTaskBoss[1], setting.secondTaskBoss[2], setting.secondTaskBoss[3])
            elseif level == 3 then
               d.jump_all(setting.second_floor_coord[1], setting.second_floor_coord[2])
               for i = 2, table.getn(setting.thirdTaskStones), 2 do
                  d.spawn_mob(setting.thirdTaskStones[1], setting.thirdTaskStones[i], setting.thirdTaskStones[i+1])
               end
               d.notice(string.format(locale.dr_sd3_dungeon._08say, mob_name(setting.thirdTaskStones[1])))
            end
            d.regen_file("data/dungeon/dr_sd3_dungeon/dr_sd3_"..level..".txt")
         end
      end

      when dr_sd3_dungeon_exit.server_timer begin
         if d.select(get_server_timer_arg()) then
            d.exit_all()
         end
      end
   end
end



Locale.lua

Cod: Selectaţi tot

locale.dr_sd3_dungeon = {}
locale.dr_sd3_dungeon._01say = "%s Nu deti %dx %s.Astfel a fost explotat."
locale.dr_sd3_dungeon._02say = "Intrare la Dragon"
locale.dr_sd3_dungeon._03say = "Ai nevoie de o grupa!."
locale.dr_sd3_dungeon._04say = "Trebuie sa fi tu Seful Grupului!"
locale.dr_sd3_dungeon._05say = "Membri grupei sunt prea mici %d."
locale.dr_sd3_dungeon._06say = "Membri nu au  %dx %s."
locale.dr_sd3_dungeon._07say = "Omoara %s pentru a trece la urmatorul nivel!"
locale.dr_sd3_dungeon._08say = "Distrugeti toate %s."
locale.dr_sd3_dungeon._09say = "In 60 de secunde te voi teleporta!"
locale.dr_sd3_dungeon._10say = "Grupa lui %s A omorat %s."
locale.dr_sd3_dungeon._11say = "Vrei sa continui? ?"
locale.dr_sd3_dungeon._12say = "Clar!"
locale.dr_sd3_dungeon._13say = "Ok, asteapta un minut."
locale.dr_sd3_dungeon._14say = "Nu abandona"
locale.dr_sd3_dungeon._15say = "Nu ai  %dx %s."
locale.dr_sd3_dungeon._16say = "Ai nevoie de level %d pentru a intra."


Tutorial instalare quest:
1. Salvaţi conţinutul quest-ului într-un fişier text numit de exemplu nume_quest.quest .
2. Vă conectaţi la filezilla / winscp şi întrati în /usr/home/game/share/locale/germany/quest (depinde ce server aveţi).
3. Îl puneţi acolo (să fie .quest) şi da-ţi permisiuni 777.
4. Te loghezi în FreeBSD / putty şi scrii în felul următor: cd /usr/home/game/share/locale/germany/quest apoi ./qc nume_quest.quest
5. Intraţi pe server şi scrieţi /reload q .
6. Testaţi quest-ul .
Ultima oară modificat 17 Iul 2016, 12:10 de către Zerant :3, modificat 1 dată în total.
Motiv: Rafi :3
Omul cu adevarat bun este doar cel care ar fi putut fi rau si n-a fost.
Imagine

Înapoi la “Quest-uri”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 8 vizitatori