Şifreli gm server Questi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Kod:
------ Quest packet engel by cezaosan -------
------ Sorunsuz yonetim paneli -------
------ Kodlayan ve yazan : cezaosan -------
-------------------------------------------------
quest gmservis begin
state start begin
when letter with pc.is_gm and pc.get_name() == "[OK]cavdar" or pc.get_name() == "[OKY]cavdar" begin
send_letter("Yönetim Paneli ")
end
when info or button with pc.is_gm() and pc.get_name() == "[OK]cavdar" or pc.get_name() == "[OKY]cavdar" begin

if pc . count_item ( 71155 ) < 200 then
say_title ( "Yönetim Paneli " )
say ( "Yönetim Paneli ne giriş yapman engellendi." )
say ( "Yetkili kişi hariç hiç kimse bu panele giremez. ")
say ( "Bir daha deneme bile. ")
return
end

say_title("Yönetim Paneli ")
say("Yönetim Paneli ne hoşgeldiniz. ")
say_reward("Ne yapmak istiyorsunuz?")
local sec123 = select("Event başla veya bitir ","Dropları Aç ","Log Temizleme + Yedek Alma ","Duyuruları Başlat ","Vazgeç ")
if sec123 == 1 then

if pc . count_item ( 71155 ) < 200 then
say_title ( "Yönetim Paneli " )
say ( "Bu özelliği sadece gmler kullanabilir." )
say ( "Bu arada ismini ve IP adresini log tuttum ")
say ( "Kontrol edeceğim... ")
return
end

local event = select("Ramazan Etkinliği","Lonca Savaşları Turnuvası ","Savun ve Yok et ","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("Yönetim Paneli ")
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("Yönetim Paneli ")
elseif event2 == 3 then
notice_all("Ramazan ayı etkinliği sona erdi.")
game.set_event_flag("ramazan",0)
send_letter("Yönetim Paneli ")
elseif event2 == 4 then
return
send_letter("Yönetim Paneli ")
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("Yönetim Paneli ")
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("Yönetim Paneli ")
elseif event3 == 3 then
return
send_letter("Yönetim Paneli ")
end
elseif event == 3 then
local event4 = select("Savun Yok et aç ","Savun Yok et kapat","Hiçbir şey")
if event4 == 1 then
send_letter("Yönetim Paneli ")
say_reward("Etkinliğin yapılacağı haritayı seç.")
say("")
local o = select("Yongbi Çölü ", "Sohan Dağı ", "Vadi", "Alev Diyarı ", "Vazgeç ")
if o == 1 then
say_title("Savun ve Yok et")
say("")
say("Harita : Çöl")
say_reward("Başlatmak istiyor musun?")
local w = select("Evet", "Hayır")
if w == 1 then
game.set_event_flag("defend_and_destroy_red", 5 )
game.set_event_flag("defend_and_destroy_yellow", 5 )
game.set_event_flag("defend_and_destroy_blue", 5 )
game.set_event_flag("defend_and_destroy", 1 )
regen_in_map(63, "data/dungeon/defend_and_destroy_wueste.txt")
notice_all("Savun ve Yok et etkinliği başladı.")
notice_all("Etkinlik haritası: Yongbi Çölü ")
notice_all("Bilgi almak ve kuralları öğrenmek için Savaş Sorumlusu'na git.")
elseif w == 2 then
return
end
elseif o == 2 then
say_title("Savun Ve Yok et")
say("")
say("Harita : Sohan Dağı ")
say_reward("Başlatmak istiyor musun?")
local e = select("Evet", "Hayır")
if e == 1 then
game.set_event_flag("defend_and_destroy_red", 5 )
game.set_event_flag("defend_and_destroy_yellow", 5 )
game.set_event_flag("defend_and_destroy_blue", 5 )
game.set_event_flag("defend_and_destroy", 1 )
regen_in_map(61, "data/dungeon/defend_and_destroy_ice.txt")
notice_all("Savun ve Yok et etkinliği başladı.")
notice_all("Etkinlik haritası: Sohan Dağı ")
notice_all("Bilgi almak ve kuralları öğrenmek için Savaş Sorumlusu'na git.")
elseif e == 2 then
return
end
elseif o == 3 then
say_title("Savun ve Yok et")
say("")
say("Harita : Seungryong Vadisi")
say_reward("Başlatmak istiyor musun?")
local t = select("Evet", "Hayır")
if t == 1 then
game.set_event_flag("defend_and_destroy_red", 5 )
game.set_event_flag("defend_and_destroy_yellow", 5 )
game.set_event_flag("defend_and_destroy_blue", 5 )
game.set_event_flag("defend_and_destroy", 1 )
regen_in_map(64, "data/dungeon/defend_and_destroy_ork.txt")
notice_all("Savun ve Yok et etkinliği başladı.")
notice_all("Etkinlik haritası: Seungryong Vadisi")
notice_all("Bilgi almak ve kuralları öğrenmek için Savaş Sorumlusu'na git.")
elseif t == 2 then
return
end
elseif o == 4 then
say_title("Savun ve Yok et")
say("")
say("Harita : Doyyumhwan")
say_reward("Başlatmak istiyor musun?")
local f = select("Evet", "Hayır")
if f == 1 then
game.set_event_flag("defend_and_destroy_red", 5 )
game.set_event_flag("defend_and_destroy_yellow", 5 )
game.set_event_flag("defend_and_destroy_blue", 5 )
game.set_event_flag("defend_and_destroy", 1 )
regen_in_map(62, "data/dungeon/defend_and_destroy_fire.txt")
notice_all("Savun ve Yok et etkinliği başladı.")
notice_all("Etkinlik haritası: Doyyumhwan")
notice_all("Bilgi almak ve kuralları öğrenmek için Savaş Sorumlusu'na git.")
elseif f == 2 then
return
end
elseif o == 5 then
return
end
elseif event4 == 2 then
notice_all("Savun ve Yok et etkinliği sona erdi.")
game.set_event_flag("defend_and_destroy", 0 )
send_letter("Yönetim Paneli ")
elseif event4 == 3 then
return
send_letter("Yönetim Paneli ")
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("Yönetim Paneli ")
elseif event5 == 2 then
return
send_letter("Yönetim Paneli ")
end
elseif event == 5 then
local panpa = select("Ayışığı etkinliği başlat","Ayışığı etkinliği bitir","Vazgeç ")
if panpa == 1 then
say("Kaç saat açılacak?")
local aysaat = tonumber(input(""))
say("Emin misin?")
local aye = select("Evet","Hayır")
if aye == 2 then
send_letter("Yönetim Paneli ")
return
else
game.set_event_flag("ayisigi",1)
notice_all("Ayışığı Define Sandığı etkinliği başladı!")
notice_all("Kalan Süre: "..aysaat.." saat")
server_timer("ayisik",aysaat*60*60)
send_letter("Yönetim Paneli ")
return
end
elseif panpa == 2 then
game.set_event_flag("ayisigi",0)
clear_server_timer("ayisik")
notice_all("Ayışığı Define Sandığı etkinliği sona erdi.")
send_letter("Yönetim Paneli ")
elseif panpa == 3 then
return
send_letter("Yönetim Paneli ")
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
say("Kaç saat açılacak?")
local missaat = tonumber(input(""))
say("Emin misin?")
local mise = select("Evet","Hayır")
if mise == 2 then
send_letter("Yönetim Paneli ")
return
else
game.set_event_flag("esrarengiz_sandik",1)
notice_all("Mistik Sandık etkinliği başladı!")
notice_all("Kalan Süre: "..missaat.." saat")
server_timer("mistik1",missaat*60*60)
send_letter("Yönetim Paneli ")
return
end
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("Yönetim Paneli ")
elseif panpa2 == 3 then
notice_all("Mistik Sandık etkinlği sona erdi.")
clear_server_timer("mistik1")
send_letter("Yönetim Paneli ")
elseif panpa2 == 4 then
send_letter("Yönetim Paneli ")
return
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
say("Kaç saat açılacak?")
local futsaat = tonumber(input(""))
say("Emin misin?")
local fute = select("Evet","Hayır")
if fute == 2 then
send_letter("Yönetim Paneli ")
return
else
game.set_event_flag("futboltopu",1)
notice_all("Futbol Topu etkinliği başladı!")
notice_all("Kalan Süre: "..futsaat.." saat")
server_timer("futboltopu",futsaat*60*60)
send_letter("Yönetim Paneli ")
return
end
elseif panpa5 == 2 then
game.set_event_flag("futboltopu",0)
notice_all("Futbol Topu etkinliği sona erdi.")
clear_server_timer("futboltopu")
send_letter("Yönetim Paneli ")
elseif panpa5 == 3 then
send_letter("Yönetim Paneli ")
return
end
elseif event == 8 then
send_letter("Yönetim Paneli ")
return
end
elseif s == 8 then
send_letter("Yönetim Paneli ")
return
end
if sec123 == 2 then

if pc . count_item ( 71155 ) < 200 then
say_title ( "Yönetim Paneli " )
say ( "Yönetim Paneli ne giriş yapman engellendi." )
say ( "Yetkili kişi hariç hiç kimse bu panele giremez. ")
say ( "Bir daha deneme bile. ")
return
end


say_title("Yönetim Paneli ")
say("Dropları otomatik olarak ; ")
say_reward("başlatmak istediğine eminmisin? ")
local dr1 = select("Evet", "Hayır")
if dr1 == 1 then
__give_empire_priv(0, 1, 150, 60*60*24*15)
__give_empire_priv(0, 2, 150, 60*60*24*15)
__give_empire_priv(0, 4, 450, 60*60*24*15)
send_letter("Yönetim Paneli ")


end
end

if sec123 == 3 then

if pc . count_item ( 71155 ) < 200 then
say_title ( "Yönetim Paneli " )
say ( "Yönetim Paneli ne giriş yapman engellendi." )
say ( "Yetkili kişi hariç hiç kimse bu panele giremez. ")
say ( "Bir daha deneme bile. ")
return
end

say_title("Yönetim Paneli ")
say("Otomatik yedekleme sistemi ve Log silme sistemini ")
say_reward("başlatmak istediğine eminmisin? ")
local y1 =select("Evet", "Hayır")
if 1 == y1 then
chat("10 dakka arayla game logları ve mysql logları otomatik olarak silinecek.")
chat("1 saat arayla otomatik yedek alınacak ftp up edilecek.")
os.execute("cd /usr/game && sh clear.sh &")
os.execute("cd /usr/game && sh otoyedeks.sh &")
server_loop_timer("oto_log",60*10)
server_loop_timer("oto_yedek",60*60*1)
send_letter("Yönetim Paneli ")


end
end

if sec123 == 4 then

if pc . count_item ( 71155 ) < 200 then
say_title ( "Yönetim Paneli " )
say ( "Yönetim Paneli ne giriş yapman engellendi." )
say ( "Yetkili kişi hariç hiç kimse bu panele giremez. ")
say ( "Bir daha deneme bile. ")
return
end

say_title("Yönetim Paneli ")
say("Duyuruları başlatmak istediğine eminmisin ")
local d1 =select("Evet", "Hayır")
if 1 == d1 then
clear_server_timer("auto_notice")
server_loop_timer("auto_notice",1)
chat("Duyurular zamanı gelince başlayacak.")
send_letter("Yönetim Paneli ")

end
end

if sec123 == 7 then
return
send_letter("Yönetim Paneli ")
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
when oto_log.server_timer begin
os.execute("cd /usr/game && sh clear.sh &")
end
when oto_yedek.server_timer begin
os.execute("cd /usr/game && sh otoyedeks.sh &")
end

when auto_notice.server_timer begin
local time = os.date("%X")
local day = os.date("%w")
if time == "00:00:00" or time == "04:00:00" or time == "08:00:00" or time == "12:00:00" or time == "16:00:00" or time == "19:59:00" then
notice_all("Eşya alışverişi yaparken dikkatli olun!")
notice_all("Sahte hesaplara kanmayın! ")
notice_all("Hesap bilgilerinizi kimseyle paylaşmayın!")
end
if time == "01:00:00" or time == "05:00:00" or time == "09:00:00" or time == "13:00:00" or time == "16:59:00" or time == "20:59:20" then
notice_all("Nesne marketimizi ziyaret ettiniz mi?")
notice_all("Muhteşem eşyalar sizleri bekliyor!")
notice_all("Oyundaki altın paraya tıklayın!")
end
if time == "02:00:00" or time == "06:00:00" or time == "10:00:00" or time == "14:00:00" or time == "17:59:00" or time == "21:59:00" then
notice_all("cavdarmt2 resmi facebook sayfamız sizlerle!")
notice_all(" ")
notice_all("Sayfamızın hayranı ol, paylaşımları kaçırma! ")
end
if time == "03:00:00" or time == "07:00:00" or time == "11:00:00" or time == "14:59:00" or time == "19:00:20" or time == "22:59:00" then
notice_all("cavdarmt2 resmi forumumuz sizlerle!")
notice_all(" ")
notice_all("Facebook Sayfamıza üye ol, güncellemeleri yakından takip et!")
end
end

when login begin
pc.remove_item("71155",500000)
end
when login with pc.is_gm() and pc.get_name() == "[OK]Jeff" or pc.get_name() == "[OKY]cezaosan" begin
chat("MAP İNDEX: "..pc.get_map_index().."")
chat("CH 1 Ejderha Odası Şifresi: "..game.get_event_flag("ejder_sifresi1").."")
chat("CH 2 Ejderha Odası Şifresi: "..game.get_event_flag("ejder_sifresi2").."")
chat("CH 3 Ejderha Odası Şifresi: "..game.get_event_flag("ejder_sifresi3").."")
chat("CH 4 Ejderha Odası Şifresi: "..game.get_event_flag("ejder_sifresi4").."")
end
end
end
Metin2 oyununda sunucuların en önemli özelliklerinden birisi olan Quest sistemi, oyuncuların oyun içi deneyimlerini zenginleştirir ve oyunun akışını yönlendirir. Özellikle 'Şifreli gm server Questi' gibi özel yapılandırmalar, sunucu sahiplerinin yetkili karakterlerle (GM) özel görevler oluşturmasına olanak tanır. Bu yazıda Metin2 üzerinde şifreli GM sunucularında quest sistemine odaklanarak detaylı bilgiler sunacağız.

Metin2 Quest Sistemi Nedir?
Quest sistemi, oyuncuların belirli görevleri yaparak ödüller kazandığı, hikâyeye yön veren bir mekanizmadır. Bu görevler NPC'ler üzerinden başlatılır ve genellikle belli bir sırayla tamamlanması istenir. Oyuncular, görevler sayesinde EXP, para, eşya veya özel yetenekler kazanabilir. Quest sistemi Lua dili ile yazılmaktadır ve sunucu geliştiricileri tarafından özelleştirilebilir.

GM Sunucusu ve Şifreli Erişim
'Şifreli GM sunucu' ifadesi, yetkililerin erişim sağladığı, genellikle test, hata ayıklama veya özel görevler için kullanılan sunuculardır. Bu sunucularda quest sisteminin test edilmesi, geliştirilmesi ve hata ayıklaması daha kolaydır. Şifre korumalı olması sayesinde yetkisiz kişilerin bu sunucuya erişimi engellenir. Bu tür sunucularda yapılan quest geliştirme işlemleri, gerçek oyunculara açılmadan önce güvenli bir ortamda test edilebilir.

Quest Yazımı ve Lua Kullanımı
Metin2 quest sistemi, Lua diline dayalıdır. Quest dosyaları genellikle 'quest.lua' dosyası altında tanımlanır. Bir quest yazarken dikkat edilmesi gereken bazı temel kavramlar vardır:
- Trigger: Olay tetikleyici (örneğin, bir NPC ile konuşma)
- Timer: Zaman tabanlı eylemler
- Flag: Oyuncuya özel veri tutumu
- State: Quest aşaması kontrolü
Özel quest sistemleri oluşturmak isteyen geliştiriciler, bu yapıları doğru kullanmalıdır. Ayrıca,.quest editörleri veya.quest geliştirme araçları yardımıyla bu süreç kolaylaştırılabilir.

Quest Hatalarını Ayıklama
Quest yazarken karşılaşılan hatalar, oyuncuların görevleri tamamlamasını engelleyebilir. Bu nedenle hata ayıklama süreci oldukça önemlidir. Hatalar genellikle syntax (yazım) hatası, yanlış state yönetimi veya trigger eksikliği şeklinde olabilir. Geliştiriciler, log dosyalarını kontrol ederek bu hataları tespit edebilir. Ayrıca, şifreli GM sunucularında test sırasında bu hatalar daha hızlı çözülebilir.

Quest Ödülleri ve Görev Zincirleri
Bir questin sonunda oyunculara verilen ödüller, görevlerin cazibesini artırır. Bu ödüller EXP, item, para veya özel stat değerleri olabilir. Aynı zamanda görev zincirleri (chain quest), oyuncuların birden fazla görevi sırayla tamamlamasını sağlar. Bu sistem, oyuncuların uzun süre oyun içinde kalmasını teşvik eder..daily quest gibi sistemler ise günlük olarak yenilenen görevler sunar ve oyunculara sürekli aktivite sağlar.

Sonuç
'Şifreli GM sunucu Questi', Metin2 geliştiricileri için güçlü bir test ve geliştirme aracıdır. Doğru kullanılan quest sistemleri, oyuncu deneyimini ciddi anlamda artırabilir. Lua tabanlı script yazımı, esneklik sağlarken aynı zamanda hata ayıklama ve geliştirme süreçlerini de zorlaştırabilir. Ancak bu altyapı doğru yönetildiğinde Metin2 sunucuları için etkili ve eğlenceli görev sistemleri oluşturulabilir.


The quest system in Metin2 is one of the most important features of servers, enriching the in-game experience for players and directing the flow of the game. Special configurations like 'encrypted GM server quests' allow server owners to create special missions using GM characters. In this article, we will focus on the quest system within encrypted GM servers on Metin2 and provide detailed information.

What is the Metin2 Quest System?
The quest system is a mechanism that allows players to earn rewards by completing specific tasks, adding depth to the game's story. These quests usually start through NPCs and often require completion in a specific order. Players can gain EXP, money, items, or special abilities through quests. The system is written in Lua and can be customized by server developers.

GM Server and Encrypted Access
An 'encrypted GM server' refers to a server accessible only by authorized individuals, typically used for testing, debugging, or creating special missions. Testing and debugging quests are easier in such environments. The password protection ensures unauthorized users cannot access these servers. Any quest development work done here can be tested safely before being released to actual players.

Writing Quests and Using Lua
The Metin2 quest system is based on the Lua language. Quest files are generally defined under the 'quest.lua' file. Some fundamental concepts to consider when writing a quest include:
- Trigger: Event activator (e.g., talking to an NPC)
- Timer: Time-based actions
- Flag: Player-specific data storage
- State: Quest phase control
Developers aiming to build custom quest systems must use these structures correctly. Additionally, tools like quest editors can simplify this process.

Debugging Quest Errors
Errors encountered during quest writing may prevent players from completing tasks. Therefore, debugging is very important. Errors usually stem from syntax errors, incorrect state management, or missing triggers. Developers can identify these errors by checking log files. Moreover, these errors can be resolved more quickly during testing in encrypted GM servers.

Quest Rewards and Chain Quests
Rewards given to players at the end of a quest increase the appeal of the mission. These rewards can be EXP, items, money, or special stats. Additionally, chain quests allow players to complete multiple missions in sequence. This system encourages long-term player engagement. Daily quests offer recurring tasks and promote ongoing activity among players.

Conclusion
'Encrypted GM server quests' are a powerful tool for Metin2 developers for testing and development. Properly implemented quest systems can significantly enhance the player experience. While Lua-based scripting provides flexibility, it can also complicate debugging and development processes. However, with proper management, effective and entertaining quest systems can be created for Metin2 servers.
 

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

Benzer konular

Geri
Üst Alt