Kod:
quest gmservis begin state start begin when letter with pc.is_gm() begin send_letter("GM: Servis") end when info or button with pc.is_gm() begin local s = select("Becerilerimi Perfect yap","İtem ver","Saç Stili ver","Güneş Özütü ve Ay Özütü ver","Giriş eşyası al","NPC çağır","Event başlat veya bitir","Vazgeç ") if s == 1 then if pc.get_job() == 0 then pc.set_skill_level(1,40) pc.set_skill_level(2,40) pc.set_skill_level(3,40) pc.set_skill_level(4,40) pc.set_skill_level(5,40) pc.set_skill_level(137,20) pc.set_skill_level(138,20) pc.set_skill_level(139,20) pc.set_skill_level(131,10) pc.set_skill_level(129,40) pc.set_skill_level(128,20) pc.set_skill_level(130,21) pc.set_skill_level(127,20) pc.set_skill_level(126,20) pc.set_skill_level(124,40) pc.set_skill_level(121,40) pc.set_skill_level(122,2) pc.set_skill_level(17,40) pc.set_skill_level(18,40) pc.set_skill_level(19,40) pc.set_skill_level(20,40) pc.set_skill_level(16,40) send_letter("GM: Servis") end if pc.get_job() == 1 then pc.set_skill_level(46,40) pc.set_skill_level(47,40) pc.set_skill_level(48,40) pc.set_skill_level(49,40) pc.set_skill_level(50,40) pc.set_skill_level(137,20) pc.set_skill_level(138,20) pc.set_skill_level(139,20) pc.set_skill_level(140,20) pc.set_skill_level(131,10) pc.set_skill_level(130,21) pc.set_skill_level(129,40) pc.set_skill_level(128,20) pc.set_skill_level(127,20) pc.set_skill_level(126,20) pc.set_skill_level(124,40) pc.set_skill_level(121,40) pc.set_skill_level(122,2) pc.set_skill_level(49,40) pc.set_skill_level(50,40) pc.set_skill_level(48,40) pc.set_skill_level(47,40) pc.set_skill_level(46,40) send_letter("GM: Servis") end if pc.get_job() == 2 then pc.set_skill_level(61,40) pc.set_skill_level(62,40) pc.set_skill_level(63,40) pc.set_skill_level(64,40) pc.set_skill_level(65,40) pc.set_skill_level(66,40) pc.set_skill_level(137,20) pc.set_skill_level(138,20) pc.set_skill_level(139,20) pc.set_skill_level(130,21) pc.set_skill_level(131,10) pc.set_skill_level(129,40) pc.set_skill_level(128,20) pc.set_skill_level(127,20) pc.set_skill_level(126,20) pc.set_skill_level(124,40) pc.set_skill_level(121,40) pc.set_skill_level(122,2) pc.set_skill_level(76,40) pc.set_skill_level(77,40) pc.set_skill_level(78,40) pc.set_skill_level(79,40) pc.set_skill_level(80,40) pc.set_skill_level(81,40) send_letter("GM: Servis") end if pc.get_job() == 3 then pc.set_skill_level(91,40) pc.set_skill_level(92,40) pc.set_skill_level(93,40) pc.set_skill_level(94,40) pc.set_skill_level(95,40) pc.set_skill_level(96,40) pc.set_skill_level(137,20) pc.set_skill_level(138,20) pc.set_skill_level(139,20) pc.set_skill_level(131,10) pc.set_skill_level(130,21) pc.set_skill_level(129,40) pc.set_skill_level(128,20) pc.set_skill_level(127,20) pc.set_skill_level(126,20) pc.set_skill_level(124,40) pc.set_skill_level(121,40) pc.set_skill_level(122,2) pc.set_skill_level(106,40) pc.set_skill_level(107,40) pc.set_skill_level(108,40) pc.set_skill_level(109,40) pc.set_skill_level(110,40) pc.set_skill_level(111,40) end elseif s == 2 then if pc.get_job() == 0 then pc . give_item2("40002" , 1) pc . give_item2("40003" , 1) pc . give_item2("189" , 1) pc . give_item2("279" , 1) pc . give_item2("11299" , 1) pc . give_item2("12019" , 1) pc . give_item2("14229" , 1) pc . give_item2("16229" , 1) pc . give_item2("15419" , 1) pc . give_item2("17229" , 1) pc . give_item2("12289" , 1) pc . give_item2("13149" , 1) send_letter("GM: Servis") end if pc.get_job() == 1 then pc . give_item2("40002" , 1) pc . give_item2("40003" , 1) pc . give_item2("1139" , 1) pc . give_item2("4049" , 1) pc . give_item2("2179" , 1) pc . give_item2("2169" , 1) pc . give_item2("12029" , 1) pc . give_item2("11499" , 1) pc . give_item2("14229" , 1) pc . give_item2("16229" , 1) pc . give_item2("15419" , 1) pc . give_item2("17229" , 1) pc . give_item2("12409" , 1) pc . give_item2("13149" , 1) send_letter("GM: Servis") end if pc.get_job() == 2 then pc . give_item2("40002" , 1) pc . give_item2("40003" , 1) pc . give_item2("12039" , 1) pc . give_item2("11699" , 1) pc . give_item2("14229" , 1) pc . give_item2("16229" , 1) pc . give_item2("15419" , 1) pc . give_item2("17229" , 1) pc . give_item2("12549" , 1) pc . give_item2("13149" , 1) pc . give_item2("289" , 1) pc . give_item2("3129" , 1) pc . give_item2("279" , 1) send_letter("GM: Servis") end if pc.get_job() == 3 then pc . give_item2("40002" , 1) pc . give_item2("40003" , 1) pc . give_item2("12049" , 1) pc . give_item2("11899" , 1) pc . give_item2("14229" , 1) pc . give_item2("16229" , 1) pc . give_item2("15419" , 1) pc . give_item2("17229" , 1) pc . give_item2("12689" , 1) pc . give_item2("13149" , 1) pc . give_item2("5129" , 1) pc . give_item2("7199" , 1) send_letter("GM: Servis") end elseif s == 3 then if pc.get_job() == 0 then if pc.get_sex() == 1 then pc . give_item2("75013" , 1) pc . give_item2("75014" , 1) pc . give_item2("75015" , 1) pc . give_item2("75016" , 1) pc . give_item2("75017" , 1) pc . give_item2("75018" , 1) pc . give_item2("75019" , 1) pc . give_item2("75020" , 1) send_letter("GM: Servis") else pc . give_item2("74013" , 1) pc . give_item2("74014" , 1) pc . give_item2("74015" , 1) pc . give_item2("74016" , 1) pc . give_item2("74017" , 1) pc . give_item2("74018" , 1) pc . give_item2("74019" , 1) pc . give_item2("74020" , 1) send_letter("GM: Servis") end end if pc.get_job() == 1 then if pc.get_sex() == 1 then pc . give_item2("74263" , 1) pc . give_item2("74264" , 1) pc . give_item2("74265" , 1) pc . give_item2("74266" , 1) pc . give_item2("74267" , 1) pc . give_item2("74268" , 1) pc . give_item2("74269" , 1) pc . give_item2("74270" , 1) send_letter("GM: Servis") else pc . give_item2("75213" , 1) pc . give_item2("75214" , 1) pc . give_item2("75215" , 1) pc . give_item2("75216" , 1) pc . give_item2("75217" , 1) pc . give_item2("75218" , 1) pc . give_item2("75219" , 1) pc . give_item2("75220" , 1) send_letter("GM: Servis") end end if pc.get_job() == 2 then if pc.get_sex() == 1 then pc . give_item2("75413" , 1) pc . give_item2("75414" , 1) pc . give_item2("75415" , 1) pc . give_item2("75416" , 1) pc . give_item2("75417" , 1) pc . give_item2("75418" , 1) pc . give_item2("75419" , 1) pc . give_item2("75420" , 1) send_letter("GM: Servis") else pc . give_item2("74513" , 1) pc . give_item2("74514" , 1) pc . give_item2("74515" , 1) pc . give_item2("74516" , 1) pc . give_item2("74517" , 1) pc . give_item2("74518" , 1) pc . give_item2("74519" , 1) pc . give_item2("74520" , 1) send_letter("GM: Servis") end end if pc.get_job() == 3 then if pc.get_sex() == 1 then pc . give_item2("74763" , 1) pc . give_item2("74764" , 1) pc . give_item2("74765" , 1) pc . give_item2("74766" , 1) pc . give_item2("74767" , 1) pc . give_item2("74768" , 1) pc . give_item2("74769" , 1) pc . give_item2("74770" , 1) send_letter("GM: Servis") else pc . give_item2("75613" , 1) pc . give_item2("75614" , 1) pc . give_item2("75615" , 1) pc . give_item2("75616" , 1) pc . give_item2("75617" , 1) pc . give_item2("75618" , 1) pc . give_item2("75619" , 1) pc . give_item2("75620" , 1) send_letter("GM: Servis") end end elseif s == 4 then pc . give_item2("72726" , 1) pc . give_item2("72730" , 1) send_letter("GM: Servis") elseif s == 5 then local ss = select("Kilit Açma Taşı(5 adet)","Zin-Sa-Gui Kale Haritası ","Zin-Bong-In Anahtar","Kan Taşı, Geçiş Bileti, Kıvrık Anahtar","Ruh Kristali Anahtarı ","Küçülen Kafa","Surat Totemi","Vazgeç ") if ss == 1 then pc . give_item2("50084" , 1) pc . give_item2("50084" , 1) pc . give_item2("50084" , 1) pc . give_item2("50084" , 1) pc . give_item2("50084" , 1) send_letter("GM: Servis") elseif ss == 2 then pc . give_item2("30302" , 1) send_letter("GM: Servis") elseif ss == 3 then pc . give_item2("30304" , 1) send_letter("GM: Servis") elseif ss == 4 then pc . give_item2("30190" , 1) pc . give_item2("71095" , 1) pc . give_item2("30179" , 3) send_letter("GM: Servis") elseif ss == 5 then pc . give_item2("30311" , 1) send_letter("GM: Servis") elseif ss == 6 then pc . give_item2("30319" , 1) send_letter("GM: Servis") elseif ss == 7 then pc . give_item2("30312" , 1) send_letter("GM: Servis") elseif ss == 8 then return send_letter("GM: Servis") end elseif s == 6 then local sss = select("Satıcı, Silahçı, Zırhçı ","Genel Depocu Helen, Olay Yardımcısı ","Malzemeci Glocken, Madenci","Kud Heykeli","Kaplumbağa Kayalığı ","Runik Direği","Bazalt Dikili Taş ","Vazgeç ") if sss == 1 then command("mob 9001") command("mob 9002") command("mob 9003") send_letter("GM: Servis") elseif sss == 2 then command("mob 9010") command("mob 9004") send_letter("GM: Servis") elseif sss == 3 then command("mob 9007") command("mob 9008") send_letter("GM: Servis") elseif sss == 4 then command("mob 30101") send_letter("GM: Servis") elseif sss == 5 then command("mob 30103") send_letter("GM: Servis") elseif sss == 6 then command("mob 30104") send_letter("GM: Servis") elseif sss == 7 then command("mob 30102") send_letter("GM: Servis") elseif sss == 8 then return send_letter("GM: Servis") end elseif s == 7 then local event = select("Ramazan Etkinliği","Lonca Savaşları Turnuvası ","VS Turnuvası ","Parşömen dropları ","Ayışığı Etkinliği","Mistik Sandık Etkinliği","Futbol Topu Etkinliği","Kapat") if event == 1 then local event2 = select("Ramazan Etkinliği başlat","Bereket Meyvesi ödülleri","Ramazan etkinliği bitir","Hiçbir şey") if event2 == 1 then notice_all("Ramazan ayı etkinliği başladı!") notice_all("Tarihçi'yi ziyaret et, Niyetli Vatandaş'a bir iyilik yap ya da") notice_all("yaratıkları öldürüp simitleri al!") game.set_event_flag("ramazan",1) send_letter("GM: Servis") elseif event2 == 2 then notice_all("Bereket meyvelerini Tarihçi'ye götür!") notice_all("Ödülünü al!") game.set_event_flag("ramazan",2) send_letter("GM: Servis") elseif event2 == 3 then notice_all("Ramazan ayı etkinliği sona erdi.") game.set_event_flag("ramazan",0) send_letter("GM: Servis") elseif event2 == 4 then return send_letter("GM: Servis") end elseif event == 2 then local event3 = select("Turnuva kayıtlarını aç ","Turnuva kayıtlarını kapat","Hiçbir şey") if event3 == 1 then notice_all("Lonca Savaşları Turnuvası kayıtları açıldı!") notice_all("Turnuvaya katılmak için Savaş Sorumlusu ile konuş.") game.set_event_flag("turnuva",1) send_letter("GM: Servis") elseif event3 == 2 then notice_all("Lonca Savaşları Turnuvası kayıtları kapandı.") notice_all("Turnuva zamanı ve lonca eşleşmeleri forumdan duyurulacaktır.") game.set_event_flag("turnuva",0) send_letter("GM: Servis") elseif event3 == 3 then return send_letter("GM: Servis") end elseif event == 3 then local event4 = select("Turnuva kayıtlarını aç ","Turnuva kayıtlarını kapat","Hiçbir şey") if event4 == 1 then notice_all("Vs Turnuvası kayıtları açıldı!") notice_all("Katılmak için Yu-Hwan ile konuş.") send_letter("GM: Servis") game.set_event_flag("vs_turnuva",1) elseif event4 == 2 then notice_all("Vs Turnuvası kayıtları kapandı.") notice_all("Eşleşmeler ve turnuva zamanını forumdan öğrenebilirsin.") game.set_event_flag("vs_turnuva",0) send_letter("GM: Servis") elseif event4 == 3 then return send_letter("GM: Servis") end elseif event == 4 then local event5 = select("Parşömen drop aç ","Hiçbir şey") if event5 == 1 then clear_server_timer("parsomen_kapat") clear_server_timer("parsomen_ac") notice_all("Mutasyon veya Evrim Parşömeni'ne mi ihtiyacın var?") notice_all("Devler Diyarı'na git ve yaratıkları yen!") game.set_event_flag("parsomen",1) server_timer("parsomen_kapat",7200) send_letter("GM: Servis") elseif event5 == 2 then return send_letter("GM: Servis") end elseif event == 5 then local panpa = select("Ayışığı etkinliği başlat","Ayışığı etkinliği bitir","Vazgeç ") if panpa == 1 then game.set_event_flag("ayisigi",1) notice_all("Ayışığı Define Sandığı etkinliği başladı!") notice_all("Kalan Süre: 6 saat") server_timer("ayisik",21600) send_letter("GM: Servis") elseif panpa == 2 then game.set_event_flag("ayisigi",0) notice_all("Ayışığı Define Sandığı etkinliği sona erdi.") send_letter("GM: Servis") elseif panpa == 3 then return send_letter("GM: Servis") end elseif event == 6 then local panpa2 = select("Mistik Sandık droplarını aç ","Anahtar droplarını aç ","Etkinliği bitir","Vazgeç ") if panpa2 == 1 then game.set_event_flag("esrarengiz_sandik",1) notice_all("Mistik Sandık etkinliği başladı! Ayrıntılı bilgi: board.metintwo.org") notice_all("Kalan Süre: 6 saat") server_timer("mistik1",21600) send_letter("GM: Servis") elseif panpa2 == 2 then game.set_event_flag("esrarengiz_sandik",2) notice_all("Mistik Sandıklarını açmak için gerekli olan anahtarları ") notice_all("elde etmek için düşman krallıkların oyuncularını yen!") send_letter("GM: Servis") elseif panpa2 == 3 then notice_all("Mistik Sandık etkinlği sona erdi.") send_letter("GM: Servis") elseif panpa2 == 4 then return send_letter("GM: Servis") end elseif event == 7 then local panpa5 = select("Futbol Topu etkinliği başlat","Futbol Topu etkinliği bitir","Hiçbir şey") if panpa5 == 1 then game.set_event_flag("futboltopu",1) notice_all("Futbol Topu etkinliği başladı!") notice_all("Kalan Süre: 6 saat") server_timer("futboltopu",21600) send_letter("GM: Servis") elseif panpa5 == 2 then game.set_event_flag("futboltopu",0) notice_all("Futbol Topu etkinliği sona erdi.") clear_server_timer("futboltopu") send_letter("GM: Servis") elseif panpa5 == 3 then send_letter("GM: Servis") return end elseif event == 8 then send_letter("GM: Servis") return end elseif s == 8 then send_letter("GM: Servis") return end end
when parsomen_kapat.server_timer begin
notice_all("Parşömen bulabilmek için yarını bekle!")
game.set_event_flag("parsomen",0)
clear_server_timer("parsomen_kapat")
server_timer("parsomen_ac",79200)
end
when parsomen_ac.server_timer begin
notice_all("Mutasyon veya Evrim Parşömeni'ne mi ihtiyacın var?")
notice_all("Devler Diyarı'na git ve yaratıkları yen!")
game.set_event_flag("parsomen",1)
clear_server_timer("parsomen_ac")
server_timer("parsomen_kapat",7200)
end
when ayisik.server_timer begin
game.set_event_flag("ayisigi",0)
notice_all("Ayışığı Define Sandığı etkinliği sona erdi.")
clear_server_timer("ayisik")
end
when mistik1.server_timer begin
game.set_event_flag("esrarengiz_sandik",2)
notice_all("Mistik Sandıklarını açmak için gerekli olan anahtarları ")
notice_all("elde etmek için düşman krallıkların oyuncularını yen!")
notice_all("Kalan Süre: 3 saat")
server_timer("mistik2",10800)
clear_server_timer("mistik1")
end
when mistik2.server_timer begin
game.set_event_flag("esrarengiz_sandik",0)
notice_all("Mistik Sandık etkinliği sona erdi.")
clear_server_timer("mistik2")
end
when futboltopu.server_timer begin
game.set_event_flag("futboltopu",0)
notice_all("Futbol Topu etkinliği sona erdi.")
clear_server_timer("futboltopu")
end
end
end
Kurulum Diger Questler Gibi
Gm Çoklu Quest Sistemi Nedir? Metin2'de Etkinlik NPC Çağırma, Item Verme ve Perfect Yapma
Metin2 sunucularında oyun içi etkinliklerin daha eğlenceli ve organize bir şekilde yönetilmesi için GM Çoklu Quest sistemi oldukça yaygın olarak kullanılmaktadır. Bu sistem, özellikle özel sunucularda GM'lerin veya oyun yöneticilerinin belirli zamanlarda otomatik olarak NPC'leri çağırması, oyunculara özel ödüller vermesi ve görevleri yönetmesi için idealdir. Bu yazıda, quest sisteminin nasıl kurulacağı, NPC çağırma, item verme ve perfect quest yapılandırması gibi konulara değineceğiz.
Metin2 Quest Sistemi Nedir?
Metin2 quest sistemi, oyuncuların belirli görevleri yaparak ödüller kazandığı bir mekanizmadır. Quest'ler, Lua dili ile yazılmaktadır ve server-side çalışır. Oyuncu, quest'i başlatıp görevleri tamamladığında, belirlenen ödülleri alabilir. Quest sistemleri, hem oyunun akışını yönlendirmek hem de oyuncuların sunucuda aktif kalmasını sağlamak için kritik öneme sahiptir.
GM Çoklu Quest ile Etkinlik Yönetimi
GM Çoklu Quest sistemi, birden fazla görevin aynı anda çalışabilmesini sağlar. Örneğin, bir daily quest, bir weekly quest ve bir special event quest aynı anda aktif olabilir. Bu sistem sayesinde sunucu yöneticileri, farklı etkinlikleri zamanlamalı olarak başlatabilir ve NPC'leri otomatik olarak çağırabilirler.
NPC Çağırma Mekanizması
Quest içinde NPC spawn komutları kullanılarak belirtilen koordinatlarda özel NPC'ler çağrılabilir. Bu NPC'ler, etkinlik sırasında oyuncular tarafından etkileşime girilerek görev tamamlanabilir veya ödül alınabilir. Bu işlem genellikle timer ile yönetilir. Belirli bir süre sonra NPC otomatik olarak silinir.
Item ve Ödül Dağıtımı
Quest sistemi içinde item verme işlemleri yapılabilir. Oyuncu görevi tamamladığında, belirlenen ödüller doğrudan envanterine eklenir. Bu işlemler flag ve state yönetimiyle daha da güvenli hale getirilir. Aynı oyuncunun aynı görevden birden fazla ödül alması engellenir.
Perfect Quest Nasıl Yapılır?
Perfect quest, hata içermeyen, sorunsuz çalışan, kullanıcı dostu bir quest yapısıdır. Bu tür quest'lerde debug işlemleri önemlidir. Hatalar erken aşamada yakalanmalı ve düzeltilmelidir. Ayrıca, quest chain yapıları ile bir görevin bitiminden sonra diğer görevin otomatik olarak başlaması sağlanabilir. Metin2dev veya Martysama gibi platformlardan örnek quest dosyaları incelenebilir.
Sonuç
GM Çoklu Quest sistemi, Metin2 sunucularında etkinliklerin daha profesyonel ve eğlenceli yönetilmesini sağlar. Doğru yapılandırıldığında, NPC çağırma, item verme ve perfect quest deneyimi sunabilir. Sunucu sahipleri, bu sistemi kullanarak oyuncu katılımını artırabilir ve daha verimli etkinlikler düzenleyebilirler.
What is GM Multi Quest System? Calling Event NPCs, Giving Items, and Making Perfect Quests in Metin2
In Metin2 servers, the GM Multi Quest system is widely used for managing in-game events in a more fun and organized way. This system is ideal for calling NPCs automatically at certain times, rewarding players with special rewards, and managing quests by GMs or game administrators, especially on private servers. In this article, we will cover how to set up the quest system, calling NPCs, giving items, and configuring perfect quests.
What is the Metin2 Quest System?
The Metin2 quest system is a mechanism where players complete specific tasks to earn rewards. Quests are written in Lua language and run server-side. Once a player starts and completes the quest, they receive predetermined rewards. Quest systems are crucial for both directing the flow of the game and keeping players active on the server.
Event Management with GM Multi Quest
The GM Multi Quest system allows multiple quests to run simultaneously. For example, a daily quest, a weekly quest, and a special event quest can all be active at the same time. With this system, server administrators can schedule different events and call NPCs automatically at specified times.
NPC Spawning Mechanism
Using NPC spawn commands within the quest, special NPCs can be called at designated coordinates. These NPCs can be interacted with by players during the event to complete quests or claim rewards. This process is usually managed by a timer. After a certain period, the NPC is automatically removed.
Item and Reward Distribution
Within the quest system, item giving processes can be implemented. When a player completes a quest, predetermined rewards are directly added to their inventory. These operations are made more secure through flag and state management, preventing the same player from receiving multiple rewards from the same quest.
How to Make a Perfect Quest?
A perfect quest is one that runs without errors, smoothly, and user-friendly. Debugging processes are important in such quests. Errors must be detected and corrected early. Additionally, quest chain structures can ensure that once one quest ends, another begins automatically. Sample quest files can be examined from platforms like Metin2dev or Martysama.
Conclusion
The GM Multi Quest system enables more professional and entertaining event management on Metin2 servers. When properly configured, it can provide experiences such as NPC spawning, giving items, and perfect quests. Server owners can use this system to increase player engagement and organize more efficient events.
