Merhabalar turkmmo
Gözüme çarpan ve günümüz fileslerinin çoğunda(hepside diyebilirim)bu ekran takılma sorunu mevcut.
Yani yeni lonca kuran birisi yada bir lonca üyesi'ne Köy gardiyanında tekrar "Yeni lonca kur" yazısı çıkıyor ve tıklayınca ekran takılı kalıyor.Bunuda filesin son aşamalarını test ederken ve dün gördüm ve basitce fixini paylaşayım dedim.
Gözüme çarpan ve günümüz fileslerinin çoğunda(hepside diyebilirim)bu ekran takılma sorunu mevcut.
Yani yeni lonca kuran birisi yada bir lonca üyesi'ne Köy gardiyanında tekrar "Yeni lonca kur" yazısı çıkıyor ve tıklayınca ekran takılı kalıyor.Bunuda filesin son aşamalarını test ederken ve dün gördüm ve basitce fixini paylaşayım dedim.
- Lonca üyesi olan birine tekrar lonca kur butonu çıkmaz.
İlk hali
Fix hali
cd /usr/game/share/locale/turkey/quest > ten guild_manage.quest açılır.Aşağıda verdiğim kodlar eklenir kapatılıp.Putty'den ./qc çekilir.
Questi bulamayanlar içinde sorun değil aşağıda verdiğim kodları lua yada quest haline getirip putty'den ./qc letebilirsiniz.
Metin2 Serverlerinde Köy Gardiyanı Ekran Takılma Sorunu ve Fix Yöntemleri
Metin2 oyununda quest sistematiği oldukça geniş kapsamlıdır ve birçok sunucu sahibi, oyuncuların deneyimini artırmak adına özel quest scriptleri geliştirir. Ancak bu süreçte bazı hatalarla da karşılaşılabilir. Bunlardan birisi de Köy Gardiyanı ekranında takılma problemidir. Bu durum hem oyuncuların hem de sunucu yöneticilerinin dikkatini çeker çünkü doğrudan oyun içi deneyimi etkiler.
Sorun Nedir?
Köy Gardiyanı questleri, genellikle oyuncuların günlük görevleri olarak tanımlanır ve belirli zaman aralıklarında tekrarlanabilir. Ancak bazı quest yapılandırmalarında, oyuncu bu ekrana girdiğinde ekran donabilir veya cevap veremez hale gelebilir. Bu durum genellikle hatalı Lua kodları, eksik trigger tanımlamaları ya da timer konfigürasyonundan kaynaklanır.
Sorunun Nedenleri
- Hatalı quest akışı tanımlamaları
- Eksik state geçişleri
- Yanlış flag kullanımı
- NPC ile quest arasındaki bağlantı kopuklukları
- Timer değerlerinin aşırı düşük ya da yüksek olması
Fix Süreci
Öncelikle quest dosyasının içeriğini kontrol edin. Özellikle begin ve end bölümlerinde hatalar olabilir. Lua tarafında event fonksiyonlarının doğru tanımlandığından emin olun. Ayrıca quest akışında state geçişlerinin eksiksiz olduğundan emin olun. Örneğin:
state start begin
when 20099.click begin
say('Köy Gardiyanı görevine hoş geldin!')
set_state(10)
end
end
Yukarıdaki gibi bir yapıda state geçişi doğru olmalıdır. Ayrıca timer tanımlaması varsa, bu değerin çok küçük olmamasına dikkat edilmelidir. Aksi halde sunucu üzerinde fazladan yük oluşabilir ve takılma meydana gelebilir.
Ekstra Öneriler
- Quest dosyalarını test ederken debug modunu kullanmak, hatayı daha hızlı bulmanızı sağlar.
- Reward sistemlerinde item verme işlemlerinin doğru tanımlandığından emin olun.
- Mob ve NPC tanımlamalarının quest ile uyumlu olduğundan emin olun.
Sonuç
Metin2 özelinde quest geliştirme sürecinde karşılaşılan bu gibi sorunlar, doğru analiz ve debug yöntemiyle çözülebilir. Köy Gardiyanı takılma sorunu da, yukarıda belirtilen adımlar izlenerek kolayca çözülebilir. Oyuncu deneyimi açısından bu tür hataların erken fark edilip düzeltilmesi büyük önem taşır.
Daha fazlası için Metin2Lobby'i ziyaret edin.
Village Guardian Screen Freeze Issue Fix on Most Metin2 Servers
Metin2 game features a comprehensive quest system, and many server owners develop custom quest scripts to enhance player experience. However, certain errors can occur during this process. One of these issues is the screen freeze problem with the Village Guardian. This issue attracts attention from both players and server administrators, as it directly impacts the in-game experience.
What Is the Problem?
The Village Guardian quests are typically defined as daily player tasks and repeat at specific intervals. However, in some quest configurations, the screen may freeze or become unresponsive when the player enters this interface. This issue often stems from incorrect Lua codes, incomplete trigger definitions, or improper timer configurations.
Reasons Behind the Problem
- Incorrect quest flow definitions
- Missing state transitions
- Improper flag usage
- Connection gaps between NPC and quest
- Timer values set too low or too high
Fix Process
Firstly, check the content of the quest file. Especially look for errors in begin and end sections. Ensure that event functions on the Lua side are properly defined. Also, make sure that state transitions in the quest flow are complete. For example:
state start begin
when 20099.click begin
say('Welcome to the Village Guardian Quest!')
set_state(10)[/COORD]
end
end
In such a structure, the state transition must be correct. Additionally, if timer definitions exist, ensure their values are not too small; otherwise, additional load may occur on the server, leading to freezes.
Additional Suggestions
- Using debug mode while testing quest files can help locate errors faster.
- Ensure that item distribution within reward systems is correctly defined.
- Confirm that mob and NPC definitions are compatible with the quest.
Conclusion
Issues like this encountered during quest development in Metin2 can be resolved through proper analysis and debugging methods. The Village Guardian freeze issue can be easily fixed by following the steps outlined above. Detecting and resolving such errors early is crucial for enhancing player experience.
Visit Metin2Lobby for more information.
Fix hali
cd /usr/game/share/locale/turkey/quest > ten guild_manage.quest açılır.Aşağıda verdiğim kodlar eklenir kapatılıp.Putty'den ./qc çekilir.
Questi bulamayanlar içinde sorun değil aşağıda verdiğim kodları lua yada quest haline getirip putty'den ./qc letebilirsiniz.
Kod:
quest guild_building begin state start begin when guild_man1.chat."GM: Yeniden kaydolma.." or guild_man2.chat."GM: Yeniden kaydolma.." or guild_man3.chat."GM: Yeniden kaydolma.." with pc.is_gm() begin say_title("Köy Gardiyanı: ") say("") say("Bilgi istiyor isen, kayıtlı ") say("kişinin ismini yaz.") say("") local u_name = input() local u_vid=find_pc_by_name(u_name) if u_vid==0 then say_title("Bu isim kayıtlı değil.") say(u_name) return end local old_vid = pc.select(u_vid) u_withdrawTime=pc.getqf("new_withdraw_time") u_withdrawTime=pc.getqf("new_withdraw_time") pc.select(old_vid) withdrawDelay=game.get_event_flag("guild_withdraw_delay") disbandDelay=game.get_event_flag("guild_disband_delay") say_title("Köy Gardiyanı:") say("") say("En erken katılış tarihini") say("kontrol et.") if u_withdrawTime>0 then say("Geçen zaman: "..time_to_str(u_withdrawTime)) say("(Kalan zaman: ".. withdrawDelay.." Gün)") say("") end if u_disbandTime>0 then say("kayıp olmaya zaman: "..time_to_str(u_disbandTime)) say("(kalan zaman: ".. disbandDelay.." Gün)") say("") end local retryTime1 = u_withdrawTime + withdrawDelay*86400 local retryTime2 = u_withdrawTime + disbandDelay*86400 local retryTime = 0 if retryTime1 > retryTime2 then retryTime = retryTime1 else retryTime = retryTime2 end local curTime = get_time() if curTime < retryTime then say("Yeni denemeye, kalan zaman: "..time_to_str(retryTime)) say("(Kalan zaman: "..((retryTime-curTime)/3600).." saat)") say("") if is_test_server() then local s=select("Hemen intibak et", "Kapat") if s==1 then local old_vid = pc.select(u_vid) local curTime=get_time() pc.setqf("new_withdraw_time", curTime-withdrawDelay*86400) pc.setqf("new_withdraw_time", curTime-disbandDelay*86400) pc.select(old_vid) end end else say("Hemen kayıt mümkün."); say("") end end when guild_man1.chat."GM: Loncanın imkanlarına bak" or guild_man2.chat."GM: Loncanın imkanlarına bak" or guild_man3.chat."GM: Loncanın imkanlarına bak" with pc.is_gm() begin test_chat("pc.has_guild: "..bool_to_str(pc.has_guild())) test_chat("pc.is_guildmaster: "..bool_to_str(pc.isguildmaster())) test_chat("pc.empire: "..pc.empire) test_chat("npc.empire: "..npc.empire) end when guild_man1.chat."Loncadan çık " or guild_man2.chat."Loncadan çık " or guild_man3.chat."Loncadan çık " with pc.hasguild() and not pc.isguildmaster() and (pc.is_gm() or npc.empire == pc.empire) begin -- ?? say_title("Köy Gardiyanı:") say("") say("Olduğun loncadan çıkmak mı istiyorsun?") say("Herhalde orada arkadaş bulamadın. ") say("Nasıl istersen.") say("Loncadan çikmak istediğine emin misin?") say("") local s = select("Evet", "Hayır") if s==1 then say_title("Köy Gardiyanı:") say("") say("Tamam.") say("Artık loncada değilsin. ") say("") say("") pc.remove_from_guild() pc.setqf("new_withdraw_time",get_global_time()) end end when guild_man1.chat."Loncayı kapat" or guild_man2.chat."Loncayı kapat" or guild_man3.chat."Loncayı kapat" with pc.hasguild() and pc.isguildmaster() and (pc.is_gm() or npc.empire == pc.empire) begin -- ?? say_title("Köy Gardiyanı:") say("") say("Ne?") say("[DELAY value;150] [/DELAY]") say("O kadar zahmetle bu loncayı ") say("kurdum ve sen onu şimdi kapatmak mı istiyorsun?") say("Bütün hatıraların ve dostların ") say("sonsuza kadar kaybolacak!") say("") say("Loncayı kapatmak istediğine emin misin?") say("") local s = select("Evet", "Hayır") if s==1 then say_title("Köy Gardiyanı:") say("") say("Tamam.") say("Loncayı kapattım.") say("") say("") pc.destroy_guild() pc.setqf("new_disband_time", get_global_time()) pc.setqf("new_withdraw_time", get_global_time()) end end when guild_man1.chat."Yeni Lonca kur" or guild_man2.chat."Yeni Lonca kur" or guild_man3.chat."Yeni Lonca kur" with not pc.hasguild() begin ----with (pc.is_gm() or npc.empire == pc.empire) if game.get_event_flag("guild_withdraw_delay")*86400 > get_global_time() - pc.getqf("new_withdraw_time") then say_title("Köy Gardiyanı:") say("") say("Bir loncadan ayrıldıktan sonra, 1 gün beklemelisin.") return end if game.get_event_flag("guild_disband_delay")*86400 > get_global_time() - pc.getqf("new_withdraw_time") then say_title("Köy Gardiyanı: ") say("") say("Bir lonca kapattın! ") say("Bu yüzden 1 gün beklemelisin.") say_reward("Loncayı kapattığın tarih: ") say_reward(string.format("%s", time_to_str(pc.getqf("new_withdraw_time")))) return end say_title("Köy Gardiyanı:") say("") say("Yeni lonca kurmak istiyor musun?") say("") say("Yeni lonca kurmak için ") say("en az 40.seviyede olmalısın. Ayrıca") say(" 5000000 Yang gerekiyor.") say("") say("Lonca kurmak istiyor musun?") say("") local s = select("Evet", "Hayır") if s == 2 then return end if pc.level >= 40 then if pc.gold >= 5000000 then if not guild_create_item or pc.countitem(guild_create_item)>0 then game.request_make_guild() end else say_title("Köy Gardiyanı:") say("") say("Yeterli yang yok!") say("") return end else say_title("Köy Gardiyanı:") say("") say("Seviyen lonca kurmak için ") say("yeterli değil. ") end end end end
Metin2 Serverlerinde Köy Gardiyanı Ekran Takılma Sorunu ve Fix Yöntemleri
Metin2 oyununda quest sistematiği oldukça geniş kapsamlıdır ve birçok sunucu sahibi, oyuncuların deneyimini artırmak adına özel quest scriptleri geliştirir. Ancak bu süreçte bazı hatalarla da karşılaşılabilir. Bunlardan birisi de Köy Gardiyanı ekranında takılma problemidir. Bu durum hem oyuncuların hem de sunucu yöneticilerinin dikkatini çeker çünkü doğrudan oyun içi deneyimi etkiler.
Sorun Nedir?
Köy Gardiyanı questleri, genellikle oyuncuların günlük görevleri olarak tanımlanır ve belirli zaman aralıklarında tekrarlanabilir. Ancak bazı quest yapılandırmalarında, oyuncu bu ekrana girdiğinde ekran donabilir veya cevap veremez hale gelebilir. Bu durum genellikle hatalı Lua kodları, eksik trigger tanımlamaları ya da timer konfigürasyonundan kaynaklanır.
Sorunun Nedenleri
- Hatalı quest akışı tanımlamaları
- Eksik state geçişleri
- Yanlış flag kullanımı
- NPC ile quest arasındaki bağlantı kopuklukları
- Timer değerlerinin aşırı düşük ya da yüksek olması
Fix Süreci
Öncelikle quest dosyasının içeriğini kontrol edin. Özellikle begin ve end bölümlerinde hatalar olabilir. Lua tarafında event fonksiyonlarının doğru tanımlandığından emin olun. Ayrıca quest akışında state geçişlerinin eksiksiz olduğundan emin olun. Örneğin:
state start begin
when 20099.click begin
say('Köy Gardiyanı görevine hoş geldin!')
set_state(10)
end
end
Yukarıdaki gibi bir yapıda state geçişi doğru olmalıdır. Ayrıca timer tanımlaması varsa, bu değerin çok küçük olmamasına dikkat edilmelidir. Aksi halde sunucu üzerinde fazladan yük oluşabilir ve takılma meydana gelebilir.
Ekstra Öneriler
- Quest dosyalarını test ederken debug modunu kullanmak, hatayı daha hızlı bulmanızı sağlar.
- Reward sistemlerinde item verme işlemlerinin doğru tanımlandığından emin olun.
- Mob ve NPC tanımlamalarının quest ile uyumlu olduğundan emin olun.
Sonuç
Metin2 özelinde quest geliştirme sürecinde karşılaşılan bu gibi sorunlar, doğru analiz ve debug yöntemiyle çözülebilir. Köy Gardiyanı takılma sorunu da, yukarıda belirtilen adımlar izlenerek kolayca çözülebilir. Oyuncu deneyimi açısından bu tür hataların erken fark edilip düzeltilmesi büyük önem taşır.
Daha fazlası için Metin2Lobby'i ziyaret edin.
Village Guardian Screen Freeze Issue Fix on Most Metin2 Servers
Metin2 game features a comprehensive quest system, and many server owners develop custom quest scripts to enhance player experience. However, certain errors can occur during this process. One of these issues is the screen freeze problem with the Village Guardian. This issue attracts attention from both players and server administrators, as it directly impacts the in-game experience.
What Is the Problem?
The Village Guardian quests are typically defined as daily player tasks and repeat at specific intervals. However, in some quest configurations, the screen may freeze or become unresponsive when the player enters this interface. This issue often stems from incorrect Lua codes, incomplete trigger definitions, or improper timer configurations.
Reasons Behind the Problem
- Incorrect quest flow definitions
- Missing state transitions
- Improper flag usage
- Connection gaps between NPC and quest
- Timer values set too low or too high
Fix Process
Firstly, check the content of the quest file. Especially look for errors in begin and end sections. Ensure that event functions on the Lua side are properly defined. Also, make sure that state transitions in the quest flow are complete. For example:
state start begin
when 20099.click begin
say('Welcome to the Village Guardian Quest!')
set_state(10)[/COORD]
end
end
In such a structure, the state transition must be correct. Additionally, if timer definitions exist, ensure their values are not too small; otherwise, additional load may occur on the server, leading to freezes.
Additional Suggestions
- Using debug mode while testing quest files can help locate errors faster.
- Ensure that item distribution within reward systems is correctly defined.
- Confirm that mob and NPC definitions are compatible with the quest.
Conclusion
Issues like this encountered during quest development in Metin2 can be resolved through proper analysis and debugging methods. The Village Guardian freeze issue can be easily fixed by following the steps outlined above. Detecting and resolving such errors early is crucial for enhancing player experience.
Visit Metin2Lobby for more information.
