Sorunsuz Şeytan Kulesi Deviltower_zone.quest - ea143

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 46

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Kod:
quest deviltower_zone begin    state start begin     when login begin         if pc.get_map_index() == 66 then             if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then                 pc.warp((5376+532)*100, (512+596+4)*100, 65)             end         pc.set_warp_location(65, 5376+532, 512+596+4)         elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then             pc.set_warp_location(65, 5376+532, 512+596+4)         end     end       when logout begin         if pc.count_item(30300) >= 1 then             pc.remove_item(30300, pc.count_item(30300))         end         -- not used in the game         -- pc.remove_item(30301, pc.count_item(30301))         if pc.count_item(30302) >= 1 then             pc.remove_item(30302, pc.count_item(30302))         end     end              when deviltower_man.chat.gameforge.deviltower_zone._10_npcChat begin         if pc.get_level() < 40 then             say_title(gameforge.deviltower_zone._20_sayTitle)             say(gameforge.deviltower_zone._30_say)         else             say_title(gameforge.deviltower_zone._20_sayTitle)             say(gameforge.deviltower_zone._40_say)             local s =  select(gameforge.locale.monkey_dungeon.enter, gameforge.locale.monkey_dungeon.no_enter)             if s == 1 then                 pc.warp(216500,727000)             end         end     end     when kill with npc.get_race() == 8015 begin         timer("devil_stone1_1", 6)     end     when devil_stone1_1.timer begin         d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])         d.regen_file("data/dungeon/deviltower2_regen.txt")         d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")     end     when kill with npc.get_race() == 1091 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin         d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")         d.check_eliminated()     end       function get_4floor_stone_pos()         local positions =              {                 {368, 629}, {419, 630}, {428, 653}, {422, 679},                 {395, 689}, {369, 679}, {361, 658},         }         for i = 1, 6 do             local j = number(i, 7)             if i != j then                 local t = positions[i];                 positions[i] = positions[j];                 positions[j] = t;             end         end         return positions     end       when kill with npc.get_race() == 8016 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin         d.setf("level", 4)         local positions = deviltower_zone.get_4floor_stone_pos()           for i = 1, 6 do             test_chat(positions[i][1], positions[i][2])             d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))         end           test_chat(positions[7][1], positions[7][2])           local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])         test_chat(vid)         d.set_unique("real", vid)         server_loop_timer('devil_stone4_update', 10, pc.get_map_index())         server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())                  notice_multiline(gameforge.deviltower_zone._50_dNotice,d.notice)              end       when devil_stone4_fail1.server_timer begin         if d.select(get_server_timer_arg()) then             notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)             server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())         end     end       when devil_stone4_fail2.server_timer begin         if d.select(get_server_timer_arg()) then             notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)             server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())         end     end       when devil_stone4_fail.server_timer begin         if d.select(get_server_timer_arg()) then             notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)             d.clear_regen()             d.exit_all()             clear_server_timer('devil_stone4_update', get_server_timer_arg())         end     end       when devil_stone4_update.server_timer begin         if d.select(get_server_timer_arg()) then             if not d.is_unique_dead("real") then                 for i = 1, 6 do                     if d.getf("fakedead" .. i) == 0 then                         if d.unique_get_hp_perc("fake" .. i) < 50 then                             d.purge_unique("fake" .. i)                             d.setf("fakedead" .. i, 1)                             notice_multiline(gameforge.deviltower_zone._90_dNotice,d.notice)                         end                     end                 end             else                 server_timer("devil_stone4_end", 5, get_server_timer_arg())                 --d.kill_all()                 d.purge()                 notice_multiline(gameforge.deviltower_zone._100_dNotice,d.notice)                 clear_server_timer('devil_stone4_fail1', get_server_timer_arg())                 clear_server_timer('devil_stone4_fail2', get_server_timer_arg())                 clear_server_timer('devil_stone4_fail', get_server_timer_arg())             end         else             server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())         end     end       when devil_stone4_stop_timer.server_timer begin         clear_server_timer('devil_stone4_update', get_server_timer_arg())     end       when devil_stone4_end.server_timer begin         if d.select(get_server_timer_arg()) then             clear_server_timer('devil_stone4_update', get_server_timer_arg())             clear_server_timer('devil_stone4_fail1', get_server_timer_arg())             clear_server_timer('devil_stone4_fail2', get_server_timer_arg())             clear_server_timer('devil_stone4_fail', get_server_timer_arg())                          -- clear regen from memory when exit             d.clear_regen()                          d.setf("level", 5)             d.setf("stone_count", 5)             notice_multiline(gameforge.deviltower_zone._110_dNotice,d.notice)             d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])             server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())             clear_server_timer('devil_stone4_update', get_server_timer_arg())               d.set_regen_file("data/dungeon/deviltower5_regen.txt")               d.spawn_mob(20073, 421, 452)             d.spawn_mob(20073, 380, 460)             d.spawn_mob(20073, 428, 414)             d.spawn_mob(20073, 398, 392)             d.spawn_mob(20073, 359, 426)         end     end     when devil_stone5_fail1.server_timer begin         if d.select(get_server_timer_arg()) then             notice_multiline(gameforge.deviltower_zone._120_dNotice,d.notice)             server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())         end     end       when devil_stone5_fail2.server_timer begin         if d.select(get_server_timer_arg()) then             notice_multiline(gameforge.deviltower_zone._60_dNotice,d.notice)             server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())         end     end       when devil_stone5_fail3.server_timer begin         if d.select(get_server_timer_arg()) then             notice_multiline(gameforge.deviltower_zone._70_dNotice,d.notice)             server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())         end     end       when devil_stone5_fail.server_timer begin         if d.select(get_server_timer_arg()) then             notice_multiline(gameforge.deviltower_zone._80_dNotice,d.notice)             d.exit_all()         end     end         when kill with npc.get_race() == 1062 and d.getf("level") == 5 begin         local KILL_COUNT_FOR_DROP_KEY = 50         local n =d.getf("count") + 1         d.setf("count", n)          if n == KILL_COUNT_FOR_DROP_KEY then             game.drop_item(50084, 1)             d.setf("count", 0)         end     end       when devil_stone5.take with item.vnum == 50084 begin         npc.purge()         item.remove()         d.setf("stone_count", d.getf("stone_count") - 1)         if d.getf("stone_count") <= 0 then             d.setf("level", 6)             d.clear_regen()             d.regen_file("data/dungeon/deviltower6_regen.txt")               notice_multiline(gameforge.deviltower_zone._130_dNotice,d.notice)             d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])             local server_arg = d.get_map_index()             clear_server_timer('devil_stone5_fail1', server_arg)             clear_server_timer('devil_stone5_fail2', server_arg)             clear_server_timer('devil_stone5_fail3', server_arg)             clear_server_timer('devil_stone5_fail', server_arg)         else             d.notice(string.format(gameforge.deviltower_zone._140_dNotice, d.getf("stone_count")))         end     end       when kill with npc.get_race() == 1092 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin         d.kill_all()         notice_multiline(gameforge.deviltower_zone._150_dNotice,d.notice)         d.check_eliminated()         notice_multiline(gameforge.deviltower_zone._160_dNotice,d.notice)         local reward_alchemist = {20074, 20075, 20076}         d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);         d.setqf2("deviltower_zone","can_refine", 1)     end         when 20074.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin         say_title(mob_name(20074))         say(gameforge.deviltower_zone._190_say)         wait()         if pc.level >=75 then             say_title(mob_name(20074))               say(gameforge.deviltower_zone._200_say)             local s= select(gameforge.deviltower_zone._210_select, gameforge.locale.cancel, gameforge.deviltower_zone._220_select)             if s==3 then                 pc.warp(590500, 110900)                 return             end             if s==2 then                 return             end               timer("devil_jump_7", 6)             npc.unlock()             d.purge()             return         end         say_title(mob_name(20074))         say(gameforge.deviltower_zone._230_say)         wait()         pc.warp(590500, 110500)         return     end       when 20075.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000  and npc.lock() begin         say_title(mob_name(20075))         say(gameforge.deviltower_zone._190_say)         wait()         if pc.level >=75 then             say_title(mob_name(20075))               say(gameforge.deviltower_zone._200_say)             local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)             if s==3 then                 pc.warp(590500, 110900)                 return             end             if s==2 then                 return             end               timer("devil_jump_7", 6)             npc.unlock()             d.purge()             return         end         say_title(mob_name(20075))         say(gameforge.deviltower_zone._230_say)         wait()         pc.warp(590500, 110500)         return     end     when 20076.chat.gameforge.deviltower_zone._170_npcChat with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000  and npc.lock() begin         say_title(mob_name(20076))         say(gameforge.deviltower_zone._190_say)         wait()         if pc.level >=75 then             say_title(mob_name(20076))               say(gameforge.deviltower_zone._200_say)             local s= select(gameforge.deviltower_zone._210_select, gameforge.deviltower_zone._220_select)             if s==3 then                 pc.warp(590500, 110900)                 return             end             if s==2 then                 return             end               timer("devil_jump_7", 6)             npc.unlock()             d.purge()             return         end         say_title(mob_name(20076))         say(gameforge.deviltower_zone._230_say)         wait()         pc.warp(590500, 110500)         return     end     when devil_jump_7.timer begin         d.clear_regen()           d.spawn_mob(8018, 639, 658)         d.spawn_mob(8018, 611, 637)         d.spawn_mob(8018, 596, 674)         d.spawn_mob(8018, 629, 670)           d.setf("level", 7)             notice_multiline(gameforge.deviltower_zone._240_dNotice,d.notice)         d.jump_all(2048+590, 6656+638)     end       when kill with npc.get_race() == 8018 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin         local cont = d.getf("7_stone_kill") + 1         d.setf("7_stone_kill", cont)           if cont >= 4 then             d.setf("7_stone_kill", 0)             d.set_regen_file("data/dungeon/deviltower7_regen.txt")         end     end       when kill with npc.get_race() == 8019 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin         game.drop_item(30300, 1)     end       when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin         pc.remove_item("30300", 1)           local pct = number(1,10)           if pct == 1 then             -- å¥âââ¬îâââ¬â⬻çâââ¬â⬷îââ⬺ââ⬡çâââ¬ÅâÅââ¬Å             game.drop_item(30302, 1)             d.clear_regen()         else             -- å¥âââ¬îâââ¬â⬻å®ââ⬰îââ⬺ââ⬡çâââ¬ÅâÅââ¬Å             game.drop_item(30301, 1)                      end     end       when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin         if d.getf( "level" ) != 7 then             pc.remove_item( "30302", 1)             return         end                      say_title(gameforge.blacksmith._40_sayTitle)         say(gameforge.deviltower_zone._250_say)         pc.remove_item("30302", 1)         timer("devil_jump_8", 6)         d.clear_regen()     end       when devil_jump_8.timer begin         d.setf("level", 8)           notice_multiline(gameforge.deviltower_zone._260_dNotice,d.notice)         d.jump_all(2048+590, 6656+403)         d.set_regen_file("data/dungeon/deviltower8_regen.txt")         d.spawn_mob(20366, 640, 460)         local _count = pc.count_item(30302)         pc.remove_item(30302,_count)              end       when kill with npc.get_race() == 1040 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin         local pct1 = number(1, 5)         if pct1 == 1 then             local pct2 = number(1, 10)             if pct2 == 1 then                 game.drop_item(30304, 1)             else                 game.drop_item(30303, 1)             end         else             return         end     end       when 20366.take with item.vnum == 30304 begin         npc.purge()         item.remove()         timer("devil_jump_9", 6)     end       when devil_jump_9.timer begin         d.setf("level", 9)             notice_multiline(gameforge.deviltower_zone._270_dNotice,d.notice)         d.jump_all(2048+590, 6656+155)         d.regen_file("data/dungeon/deviltower9_regen.txt")     end       when kill with npc.get_race() == 1093 and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin         d.kill_all()         d.setqf2("deviltower_zone","9_done", 1)         notice_multiline(gameforge.deviltower_zone._280_dNotice,d.notice)         notice_multiline(gameforge.deviltower_zone._290_dNotice,d.notice)         server_timer("devil_end_jump", 60, d.get_map_index())     end           when devil_end_jump.server_timer begin             if d.select (get_server_timer_arg()) then                 d.clear_regen()                 d.exit_all()             end         end     end end



Kurulum: Yukarıdaki Kodu deviltower_zone.quest isimli Dosya Açıp İçine Atınız. notepad++ ile açın Sorun Olmasın Daha Sonra o Dosyayı Filezillada /usr/game/share/locale/turkey/quest dizisine atın ve İzinleri 777 Yapın ardından puttye login olup

Kod:
cd /usr/game/share/locale/turkey/quest
ENTER
Kod:
./qc deviltower_zone.quest
ENTER

Quest Kurulacaktır Ardından Oyuna Girip Gm Çarınıza /reload q Yazmanız Yeterli.

İyi Forumlar.
Sorunsuz Şeytan Kulesi Deviltower_zone.quest - ea143

Metin2 Lobby olarak, Metin2 sunucularında quest sistemleri konusunda uzmanlaştık ve oyuncuların en sık karşılaştığı sorunları çözüyoruz. Bu yazıda, Deviltower_zone.quest adlı quest dosyasının ea143 sürümüyle ilgili detaylara değinecek ve bu questin nasıl sorunsuz bir şekilde çalıştırılabileceğini anlatacağız. Quest geliştirme, debug işlemleri ve Lua tabanlı scriptler üzerindeki bilgi birikimimizle, bu konuyu kapsamlı şekilde ele alıyoruz.

Deviltower_zone.quest Nedir?
Deviltower ya da diğer adıyla Şeytan Kulesi, Metin2 oyunlarında popüler bir özel bölgedir. Oyuncular burada zorlu görevlerle karşılaşır ve ödüller kazanabilir. Deviltower_zone.quest dosyası ise bu bölgeyle etkileşimi sağlayan temel quest scriptidir. Bu quest, mob spawnlarını, NPC etkileşimlerini, item sistemlerini ve zamanlayıcıları yönetir.

Quest Dosyası Hataları ve Çözüm Yolları
Metin2 quest sistemlerinde karşılaşılan yaygın sorunlar arasında quest hataları ve script eksiklikleri yer alır. Deviltower_zone.quest dosyasında da zaman zaman timer hataları, flag eksiklikleri veya trigger sistemlerinde aksaklıklar görülebilir. Bu gibi durumlarda, quest debug işlemleri yaparak hatayı lokalize etmek gerekir. Hata mesajları dikkatlice incelenmeli ve Lua bilgisiyle düzeltilmelidir.

Quest Geliştirme ve Editör Kullanımı
Metin2 quest yazımı ve düzenleme işlemleri genellikle Lua diliyle yapılır. Quest edit araçları sayesinde mevcut scriptler kolayca değiştirilebilir. Deviltower_zone.quest dosyasının ea143 sürümünde, özellikle begin ve end komutları, state yönetimleri ve reward sistemleri optimize edilmiştir. Bu sürüm, daily quest entegrasyonuna da uygundur.

Özel Quest Sistemleri ve Görev Zincirleri
Metin2 sunucularında özel quest sistemleri, oyuncuların ilgisini çekecek etkileşimli görev zincirleri sunar. Deviltower_zone.quest de bu zincirlerin önemli bir parçasıdır. Chain quest yapıları sayesinde, oyuncular önceki görevleri tamamlamadan yeni görevlere geçemez. Bu, oyunun akışını düzenler ve görev sisteminin daha stratejik hale gelmesini sağlar.

Metin2Dev ve Martysama Quest Katkıları
Topluluk bazlı Metin2 geliştirme projelerinden olan Metin2Dev ve Martysama gibi platformlar, quest sistemlerinin gelişmesinde büyük rol oynar. Deviltower_zone.quest dosyası gibi scriptler, bu toplulukların katkılarıyla sürekli geliştirilmektedir. Custom quest örnekleri sayesinde, farklı sunucular kendi özel ihtiyaçlarına göre quest sistemlerini özelleştirebilir.

Sonuç
Deviltower_zone.quest - ea143 sürümü, Metin2 oyuncuları için zengin içerik sunan ve görev sistemlerinin merkezinde yer alan önemli bir örnektir. Hataların önlenmesi, quest dosyalarının doğru yapılandırılması ve Lua scriptlerinin optimize edilmesi ile bu sistemler daha verimli çalışabilir. Metin2Lobby.com olarak, quest sistemleri konusunda bilgi ve destek sağlamaya devam ediyoruz.


Seamless Devil Tower Quest Deviltower_zone.quest - ea143

Metin2 Lobby focuses on quest systems within Metin2 servers and resolves the most common issues players encounter. In this article, we will discuss the Deviltower_zone.quest file version ea143 and explain how to run this quest seamlessly. With our expertise in quest development, debugging processes, and Lua-based scripting, we address this topic comprehensively.

What is Deviltower_zone.quest?
Devil Tower, also known as Satan Tower, is a popular special zone in Metin2 games. Players face challenging tasks and can earn rewards. The Deviltower_zone.quest file is the core quest script that enables interaction with this zone. This quest manages mob spawns, NPC interactions, item systems, and timers.

Quest File Errors and Solutions
Common issues in Metin2 quest systems include quest errors and missing scripts. Within the Deviltower_zone.quest file, there may occasionally be timer errors, missing flags, or problems with trigger systems. In such cases, performing quest debug operations helps isolate the error. Error messages should be carefully reviewed and corrected using Lua knowledge.

Quest Development and Editor Usage
Metin2 quest writing and editing are typically done using the Lua language. With quest edit tools, existing scripts can easily be modified. In the ea143 version of Deviltower_zone.quest, especially begin and end commands, state management, and reward systems have been optimized. This version is also compatible with daily quests.

Custom Quest Systems and Chain Quests
Custom quest systems in Metin2 servers offer interactive task chains that engage players. Deviltower_zone.quest is a key part of these chains. Through chain quest structures, players cannot proceed to new quests without completing previous ones. This organizes the game flow and makes the quest system more strategic.

Contributions from Metin2Dev and Martysama Quest
Community-based Metin2 development projects like Metin2Dev and Martysama play significant roles in advancing quest systems. Scripts like Deviltower_zone.quest continuously improve thanks to community contributions. Through custom quest examples, different servers can customize their quest systems according to their specific needs.

Conclusion
The Deviltower_zone.quest - ea143 version is an important example that provides rich content for Metin2 players and lies at the heart of the quest system. By preventing errors, properly configuring quest files, and optimizing Lua scripts, these systems can operate more efficiently. At Metin2Lobby.com, we continue to provide information and support regarding quest systems.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Geri
Üst Alt