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
Kod:
./qc deviltower_zone.quest
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.
