Merhabalar,
Bu kez diğer sistemlerden biraz farklı bir sistem paylaşacağım. Bir eşyanın sürekli kullanılmasını istemiyor olabilirsiniz. Yani 200 adet bir sandık var ve bu sandığı açmaya sınır koymak istiyorsunuz. Yani oyuncu belirlediğim süre boyunca 100 tane sandık açabilsin. Şöyle ki: bir sandık düşünün tıklayıp açıyorsunuz eşya kazanıyorsunuz 100 tıklamadan sonra sistem aktif olacak ve 5 dakika boyunca o sandığı açamayacaksınız. Yani bir nevi sürekli kullanılacak bir eşyaya belirli bir süre sınır koymaya yarıyor bu sistem. Aşağıdaki tanıtım videosundan da az-çok anlayacaksınız olayı zaten.
KURULUM:
1-) usr/game/share/locale/turkey/quest bölümüne "esya_kullanim_kontrol.lua" adında bir lua dosyası açalım. Daha sonra dosyasının içine aşağıdaki kodları yazalım:
Bunu kaydedip çıkıyoruz.
2-)Putty'e geliyoruz.
cd /usr/game/share/locale/turkey/quest yazıp enterliyoruz. Daha sonra şu komutu yazıyoruz.
./qc esya_kullanim_kontrol.lua
Putty ile de işimiz bitti.
3-) Oyuna dönüyoruz ve bir GM karakter ile "/reload q" çekiyoruz.
4-) Daha sonra 40004 kodlu yüzükten sistemi deneyebilirsiniz.
BİLGİLENDİRME:
Bu kısım genel ayar. Buraya kaç tıklamadan sonra sistemin devreye gireceğini ve ne kadar süre sonra tekrardan aktif olacağını yazacaksınız.
Aynı zamanda buraya yazdığınız "kapanmaSuresi" nin aynısını burayada yazacaksınız:
Daha sonra oyuncu eşyaya 1 kere tıkladıktan kaç saniye sonra o tıklama sayısı sıfırlansın istiyorsanız onu buraya yazacaksınız:
Aynı şekilde "logout" kısmındaki yere de bu değeri yazacaksınız.
Ve son olarak tıklanılan eşyadan kazanılacak eşyalar da bu kısımdan değiştirilecek. Yada artık kendiniz bu kısmı nasıl değiştirirseniz:
Metin2'de Eşya Kullanım Kontrolü
Metin2, MMORPG türünde oynanabilen popüler bir oyundur ve bu oyunda sunucu tarafında birçok özelleştirme yapılabilir. Özellikle Metin2 sunucularında oyun içi deneyimi artırmak amacıyla Quest sistemleri büyük rol oynar. Bu sistemlerin en önemli parçalarından birisi de Eşya Kullanım Kontrolüdür. Bu kontrol mekanizması sayesinde oyuncuların belirli eşyaları sadece belli durumlarda veya belli koşullar altında kullanmaları sağlanabilir. Bu yazıda, Metin2 Quest sistemine entegre edilen Lua tabanlı Eşya Kullanım Kontrol mekanizmasını detaylı olarak inceleyeceğiz.
Eşya Kullanımı ve Kontrol Mekanizması Nedir?
Metin2 oyununda eşyalar, karakter gelişiminde kritik öneme sahiptir. Ancak bazı eşyaların rastgele veya kontrolden uzak kullanılması oyun dengesini bozabilir. Bu sebeple, geliştiriciler tarafından geliştirilen Quest sistemleri sayesinde eşya kullanımına özel kontroller getirilebilir. Örneğin, bir eşyanın sadece belirli bir Quest aktifken kullanılabilmesi gibi. Bu kontrol, genellikle Lua scriptleri ile sağlanır.
Lua Script Kullanımı ve Quest Entegrasyonu
Metin2 sunucu tarafında Lua dilini desteklemektedir. Quest sistemleri Lua ile yazılmaktadır. Bu sayede geliştiriciler, oyuna özel davranışlar tanımlayabilir. Eşya kullanım kontrolü de bu davranışlardan biridir. Örneğin, bir oyuncu belirli bir itemi kullanmaya çalıştığında, önce bir kontrol yapılır. Eğer Quest durumu uygunsa eşya kullanılabilir; aksi takdirde işlem engellenir. Bu işlem genellikle quest_start veya quest_end gibi komutlarla yönetilir.
Kontrolün Teknik Yapısı
Eşya kullanım kontrol mekanizması genellikle bir trigger üzerinden çalışır. Oyuncu eşyayı kullanmaya çalıştığında, bir trigger devreye girer ve Lua scripti içinde tanımlanan fonksiyon çalıştırılır. Bu fonksiyon, kullanıcının Quest durumunu, Flag değerlerini ve diğer değişkenleri kontrol eder. Eğer tüm koşullar sağlanıyorsa eşya kullanılır, aksi takdirde oyuncuya bir mesaj gönderilir veya işlem iptal edilir.
Örnek Senaryo
Farz edelim ki, oyuncu 'Gizemli Anahtar' adında bir eşyayı sadece 'Zindanın Sırları' Quest'i aktifken kullanabilsin. Bu durumda Lua scripti içinde bir kontrol yazılır. Bu kontrol, quest'in durumunu kontrol eder. Eğer_quest_aktifse anahtar kullanılabilir, değilse kullanılamaz. Böylece hem oyun dengesi korunmuş olur hem de oyuncular doğru yolda yönlendirilir.
Hata Ayıklama ve Debug İşlemleri
Quest geliştirirken hatalarla karşılaşmak kaçınılmazdır. Özellikle eşya kullanım kontrolünde yanlış tanımlanmış bir Flag ya da Quest durumu, istenmeyen sonuçlara yol açabilir. Bu nedenle geliştiricilerin, Quest debug süreçlerini iyi bilmesi gerekir. Hata ayıklama sırasında log kayıtlarından faydalanmak önemlidir. Quest hataları genellikle bu kayıtlardan tespit edilir ve düzeltilir.
Sonuç
Metin2 üzerinde eşya kullanım kontrolü, oyun içi deneyimi daha güvenli ve dengeli hale getirmek için önemli bir özelliktir. Lua tabanlı Quest sistemleri sayesinde bu kontrol oldukça esnek ve güçlü hale gelir. Doğru yapılandırılmış bir kontrol sistemi, hem sunucu yöneticilerine hem de oyunculara büyük kolaylık sağlar.
Item Usage Control in Metin2
Metin2 is a popular MMORPG game where many customizations can be made on the server side. Particularly, Quest systems play a crucial role in enhancing the in-game experience on Metin2 servers. One of the most important components of these systems is Item Usage Control. Thanks to this control mechanism, players can only use certain items under specific conditions or situations. In this article, we will examine in detail how this Lua-based Item Usage Control mechanism integrated into the Metin2 Quest system works.
What Is Item Usage and Control Mechanism?
In the Metin2 game, items are critical for character development. However, random or uncontrolled usage of certain items may disrupt the game balance. Therefore, special controls can be added to item usage through Quest systems developed by creators. For instance, an item might be usable only when a specific Quest is active. This control is typically implemented using Lua scripts.
Usage of Lua Scripts and Quest Integration
The Metin2 server side supports the Lua language. Quest systems are written in Lua. Thus, developers can define custom behaviors within the game. Item usage control is one of these behaviors. For example, when a player attempts to use a specific item, a check is first performed. If the Quest status is appropriate, the item can be used; otherwise, the action is blocked. This process is generally managed with commands like quest_start or quest_end.
Technical Structure of Control
The item usage control mechanism usually operates via a trigger. When the player attempts to use an item, a trigger activates and runs the function defined in the Lua script. This function checks the user's Quest status, Flag values, and other variables. If all conditions are met, the item is used; otherwise, a message is sent to the player or the action is canceled.
Example Scenario
Let's assume that the player can only use an item named 'Mysterious Key' when the 'Secrets of the Dungeon' Quest is active. In this case, a check is written inside the Lua script. This check verifies the status of the quest. If the quest is active, the key can be used; otherwise, it cannot. Thus, the game balance is preserved, and players are guided correctly.
Debugging and Error Handling
Encountering errors while developing quests is inevitable. Especially incorrect Flag or Quest states defined in item usage control can lead to unwanted outcomes. Therefore, developers must be well-acquainted with Quest debugging processes. During debugging, utilizing log records is essential. Quest errors are often detected and corrected from these logs.
Conclusion
Item usage control on Metin2 is a vital feature to make the in-game experience more secure and balanced. Thanks to Lua-based Quest systems, this control becomes highly flexible and powerful. A properly configured control system provides great convenience for both server administrators and players.
Bu kez diğer sistemlerden biraz farklı bir sistem paylaşacağım. Bir eşyanın sürekli kullanılmasını istemiyor olabilirsiniz. Yani 200 adet bir sandık var ve bu sandığı açmaya sınır koymak istiyorsunuz. Yani oyuncu belirlediğim süre boyunca 100 tane sandık açabilsin. Şöyle ki: bir sandık düşünün tıklayıp açıyorsunuz eşya kazanıyorsunuz 100 tıklamadan sonra sistem aktif olacak ve 5 dakika boyunca o sandığı açamayacaksınız. Yani bir nevi sürekli kullanılacak bir eşyaya belirli bir süre sınır koymaya yarıyor bu sistem. Aşağıdaki tanıtım videosundan da az-çok anlayacaksınız olayı zaten.
Tanıtım videosu
KURULUM:
1-) usr/game/share/locale/turkey/quest bölümüne "esya_kullanim_kontrol.lua" adında bir lua dosyası açalım. Daha sonra dosyasının içine aşağıdaki kodları yazalım:
Kod:
quest esya_kullanim_kontrol begin state start begin when login with pc.getqf("uyariyiAldim") == 1 begin pc.setqf("sureYenidenKontrol",1) kalanSure = pc.getqf("kalanSure") syschat("Sistem: Çok fazla kullanılmış eşyanız var. Aktif olmasına kalan süre: "..kalanSure.." saniye.") timer("islemleriSifirla",kalanSure) loop_timer("sureyiSay",1) end when login with pc.getqf("ilkKullanim") == 1 begin ilkKalanSure = pc.getqf("ilkKalanSure") timer("kullanimSifirla",ilkKalanSure) end when logout with pc.getqf("uyariyiAldim") == 1 begin if pc.getqf("sureYenidenKontrol") == 1 then kapanmaSuresi = pc.getqf("kalanSure") pc.setqf("kalanSure",(kapanmaSuresi-pc.getqf("tplSure"))) return end ---- BURASI AYARLANACAK kapanmaSuresi = 300 -- BU KISIM ---- BURASI AYARLANACAK pc.setqf("kalanSure",(kapanmaSuresi-pc.getqf("tplSure"))) end when logout with pc.getqf("ilkKullanim") == 1 begin ---- BURASI AYARLANACAK sifirlanmaSuresi = 120 -- BU KISIM -- 120 saniye = 2 dakika ---- BURASI AYARLANACAK pc.setqf("ilkKalanSure",(sifirlanmaSuresi-pc.getqf("ilkTplSure"))) end when 40004.use begin ---- BURASI AYARLANACAK tiklanmaSayisiSinir = 11 kapanmaSuresi = 300 ---- BURASI AYARLANACAK pc.setqf("kullanimSayisi",pc.getqf("kullanimSayisi")+1) if pc.getqf("kullanimSayisi") >= tiklanmaSayisiSinir and pc.getqf("uyariyiAldim") == 0 then syschat("Sistem: Bu eşya çok fazla kullanıldı. 1 dakika sonra tekrar deneyin.") pc.setqf("uyariyiAldim",1) timer("esyayiKullanimaAc",kapanmaSuresi) loop_timer("sureyiSay",1) cleartimer("kullanimSifirla") elseif pc.getqf("kullanimSayisi") >= tiklanmaSayisiSinir then syschat("Sistem: Bu eşya çok fazla kullanıldığı için kapatılmış. 1 dakikanız henüz dolmadı.") else if pc.getqf("ilkKullanim") == 0 then timer("kullanimSifirla",25) loop_timer("ilkSureyiSay",1) pc.setqf("ilkKullanim",1) end --- YÜZÜĞE TIKLAYINCA AKTİFKEN GERÇEKLEŞECEK OLANLAR BU KISMA YAZILACAK esyaListesi = { 30319, 50300, 25040, 25041, 27992, 27993, 27994, 30019, 76022, 70102, } esyaListesiSay = tonumber(table.getn(esyaListesi)) rndEsya = math.random(1,esyaListesiSay) rndVerilenEsya = esyaListesi[rndEsya] pc.give_item2(rndVerilenEsya) end end when sureyiSay.timer with pc.getqf("uyariyiAldim") == 1 begin pc.setqf("tplSure",pc.getqf("tplSure")+1) end when ilkSureyiSay.timer with pc.getqf("ilkKullanim") == 1 begin pc.setqf("ilkTplSure",pc.getqf("ilkTplSure")+1) end when esyayiKullanimaAc.timer with pc.getqf("uyariyiAldim") == 1 begin pc.setqf("kullanimSayisi",0) pc.setqf("uyariyiAldim",0) pc.setqf("tplSure",0) end when islemleriSifirla.timer with pc.getqf("uyariyiAldim") == 1 begin pc.setqf("kullanimSayisi",0) pc.setqf("tplSure",0) pc.setqf("kalanSure",0) pc.setqf("sureYenidenKontrol",0) pc.setqf("ilkKullanim",0) pc.setqf("uyariyiAldim",0) end when kullanimSifirla.timer with pc.getqf("ilkKullanim") == 1 begin pc.setqf("kullanimSayisi",0) pc.setqf("ilkTplSure",0) pc.setqf("ilkKullanim",0) end end end
Bunu kaydedip çıkıyoruz.
2-)Putty'e geliyoruz.
cd /usr/game/share/locale/turkey/quest yazıp enterliyoruz. Daha sonra şu komutu yazıyoruz.
./qc esya_kullanim_kontrol.lua
Putty ile de işimiz bitti.
3-) Oyuna dönüyoruz ve bir GM karakter ile "/reload q" çekiyoruz.
4-) Daha sonra 40004 kodlu yüzükten sistemi deneyebilirsiniz.
BİLGİLENDİRME:
Kod:
---- BURASI AYARLANACAK tiklanmaSayisiSinir = 11 kapanmaSuresi = 300 ---- BURASI AYARLANACAK
Bu kısım genel ayar. Buraya kaç tıklamadan sonra sistemin devreye gireceğini ve ne kadar süre sonra tekrardan aktif olacağını yazacaksınız.
Aynı zamanda buraya yazdığınız "kapanmaSuresi" nin aynısını burayada yazacaksınız:
Kod:
---- BURASI AYARLANACAK kapanmaSuresi = 300 -- BU KISIM ---- BURASI AYARLANACAK
Daha sonra oyuncu eşyaya 1 kere tıkladıktan kaç saniye sonra o tıklama sayısı sıfırlansın istiyorsanız onu buraya yazacaksınız:
Kod:
---- BURASI AYARLANACAK sifirlanmaSuresi = 120 ---- BURASI AYARLANACAK
Aynı şekilde "logout" kısmındaki yere de bu değeri yazacaksınız.
Kod:
---- BURASI AYARLANACAK sifirlanmaSuresi = 120 -- BU KISIM -- 120 saniye = 2 dakika ---- BURASI AYARLANACAK
Ve son olarak tıklanılan eşyadan kazanılacak eşyalar da bu kısımdan değiştirilecek. Yada artık kendiniz bu kısmı nasıl değiştirirseniz:
Kod:
--- YÜZÜĞE TIKLAYINCA AKTİFKEN GERÇEKLEŞECEK OLANLAR BU KISMA YAZILACAK esyaListesi = { 30319, 50300, 25040, 25041, 27992, 27993, 27994, 30019, 76022, 70102, } esyaListesiSay = tonumber(table.getn(esyaListesi)) rndEsya = math.random(1,esyaListesiSay) rndVerilenEsya = esyaListesi[rndEsya] pc.give_item2(rndVerilenEsya)
Metin2'de Eşya Kullanım Kontrolü
Metin2, MMORPG türünde oynanabilen popüler bir oyundur ve bu oyunda sunucu tarafında birçok özelleştirme yapılabilir. Özellikle Metin2 sunucularında oyun içi deneyimi artırmak amacıyla Quest sistemleri büyük rol oynar. Bu sistemlerin en önemli parçalarından birisi de Eşya Kullanım Kontrolüdür. Bu kontrol mekanizması sayesinde oyuncuların belirli eşyaları sadece belli durumlarda veya belli koşullar altında kullanmaları sağlanabilir. Bu yazıda, Metin2 Quest sistemine entegre edilen Lua tabanlı Eşya Kullanım Kontrol mekanizmasını detaylı olarak inceleyeceğiz.
Eşya Kullanımı ve Kontrol Mekanizması Nedir?
Metin2 oyununda eşyalar, karakter gelişiminde kritik öneme sahiptir. Ancak bazı eşyaların rastgele veya kontrolden uzak kullanılması oyun dengesini bozabilir. Bu sebeple, geliştiriciler tarafından geliştirilen Quest sistemleri sayesinde eşya kullanımına özel kontroller getirilebilir. Örneğin, bir eşyanın sadece belirli bir Quest aktifken kullanılabilmesi gibi. Bu kontrol, genellikle Lua scriptleri ile sağlanır.
Lua Script Kullanımı ve Quest Entegrasyonu
Metin2 sunucu tarafında Lua dilini desteklemektedir. Quest sistemleri Lua ile yazılmaktadır. Bu sayede geliştiriciler, oyuna özel davranışlar tanımlayabilir. Eşya kullanım kontrolü de bu davranışlardan biridir. Örneğin, bir oyuncu belirli bir itemi kullanmaya çalıştığında, önce bir kontrol yapılır. Eğer Quest durumu uygunsa eşya kullanılabilir; aksi takdirde işlem engellenir. Bu işlem genellikle quest_start veya quest_end gibi komutlarla yönetilir.
Kontrolün Teknik Yapısı
Eşya kullanım kontrol mekanizması genellikle bir trigger üzerinden çalışır. Oyuncu eşyayı kullanmaya çalıştığında, bir trigger devreye girer ve Lua scripti içinde tanımlanan fonksiyon çalıştırılır. Bu fonksiyon, kullanıcının Quest durumunu, Flag değerlerini ve diğer değişkenleri kontrol eder. Eğer tüm koşullar sağlanıyorsa eşya kullanılır, aksi takdirde oyuncuya bir mesaj gönderilir veya işlem iptal edilir.
Örnek Senaryo
Farz edelim ki, oyuncu 'Gizemli Anahtar' adında bir eşyayı sadece 'Zindanın Sırları' Quest'i aktifken kullanabilsin. Bu durumda Lua scripti içinde bir kontrol yazılır. Bu kontrol, quest'in durumunu kontrol eder. Eğer_quest_aktifse anahtar kullanılabilir, değilse kullanılamaz. Böylece hem oyun dengesi korunmuş olur hem de oyuncular doğru yolda yönlendirilir.
Hata Ayıklama ve Debug İşlemleri
Quest geliştirirken hatalarla karşılaşmak kaçınılmazdır. Özellikle eşya kullanım kontrolünde yanlış tanımlanmış bir Flag ya da Quest durumu, istenmeyen sonuçlara yol açabilir. Bu nedenle geliştiricilerin, Quest debug süreçlerini iyi bilmesi gerekir. Hata ayıklama sırasında log kayıtlarından faydalanmak önemlidir. Quest hataları genellikle bu kayıtlardan tespit edilir ve düzeltilir.
Sonuç
Metin2 üzerinde eşya kullanım kontrolü, oyun içi deneyimi daha güvenli ve dengeli hale getirmek için önemli bir özelliktir. Lua tabanlı Quest sistemleri sayesinde bu kontrol oldukça esnek ve güçlü hale gelir. Doğru yapılandırılmış bir kontrol sistemi, hem sunucu yöneticilerine hem de oyunculara büyük kolaylık sağlar.
Item Usage Control in Metin2
Metin2 is a popular MMORPG game where many customizations can be made on the server side. Particularly, Quest systems play a crucial role in enhancing the in-game experience on Metin2 servers. One of the most important components of these systems is Item Usage Control. Thanks to this control mechanism, players can only use certain items under specific conditions or situations. In this article, we will examine in detail how this Lua-based Item Usage Control mechanism integrated into the Metin2 Quest system works.
What Is Item Usage and Control Mechanism?
In the Metin2 game, items are critical for character development. However, random or uncontrolled usage of certain items may disrupt the game balance. Therefore, special controls can be added to item usage through Quest systems developed by creators. For instance, an item might be usable only when a specific Quest is active. This control is typically implemented using Lua scripts.
Usage of Lua Scripts and Quest Integration
The Metin2 server side supports the Lua language. Quest systems are written in Lua. Thus, developers can define custom behaviors within the game. Item usage control is one of these behaviors. For example, when a player attempts to use a specific item, a check is first performed. If the Quest status is appropriate, the item can be used; otherwise, the action is blocked. This process is generally managed with commands like quest_start or quest_end.
Technical Structure of Control
The item usage control mechanism usually operates via a trigger. When the player attempts to use an item, a trigger activates and runs the function defined in the Lua script. This function checks the user's Quest status, Flag values, and other variables. If all conditions are met, the item is used; otherwise, a message is sent to the player or the action is canceled.
Example Scenario
Let's assume that the player can only use an item named 'Mysterious Key' when the 'Secrets of the Dungeon' Quest is active. In this case, a check is written inside the Lua script. This check verifies the status of the quest. If the quest is active, the key can be used; otherwise, it cannot. Thus, the game balance is preserved, and players are guided correctly.
Debugging and Error Handling
Encountering errors while developing quests is inevitable. Especially incorrect Flag or Quest states defined in item usage control can lead to unwanted outcomes. Therefore, developers must be well-acquainted with Quest debugging processes. During debugging, utilizing log records is essential. Quest errors are often detected and corrected from these logs.
Conclusion
Item usage control on Metin2 is a vital feature to make the in-game experience more secure and balanced. Thanks to Lua-based Quest systems, this control becomes highly flexible and powerful. A properly configured control system provides great convenience for both server administrators and players.
