Metin2 cinsiyet değiştirme quest sistemi, private server geliştiren kişilerin sık ihtiyaç duyduğu pratik özelliklerden biridir. Oyuncuların NPC üzerinden karakter cinsiyetini değiştirebilmesi, özellikle PvP ve orta emek sunucularda kullanıcı konforunu artırır. Ancak birçok geliştirici bu sistemi eklerken quest penceresinin hiç açılmaması veya NPC’ye tıklanınca hiçbir işlem gerçekleşmemesi gibi sorunlarla karşılaşır.

Bu sorunun en yaygın sebebi, fonksiyonun yanlış çağrılmasıdır. Quest içinde fonksiyon global olarak tanımlı olmasına rağmen, bazı örneklerde sanki npc_hong_hae yapısına bağlıymış gibi çağrılır. Bu durumda oyun fonksiyonu bulamaz ve işlem başlamaz. Aşağıdaki rehberde hem bu hatanın nedenini hem de sorunsuz çalışan güncel quest kodunu bulabilirsiniz.
Metin2 Cinsiyet Değiştirme Quest Sistemi Neden Çalışmaz?
Metin2 cinsiyet değiştirme quest sistemi eklenirken en çok yapılan hata, fonksiyonun yanlış isim alanıyla çağrılmasıdır. Bazı örneklerde quest içinde şu kullanım görülür:
when 20094.chat."Cinsiyetimi Değiştir" begin if (npc_hong_hae.cinsiyet_degisim()) then end endBu kullanım hatalıdır. Çünkü fonksiyon npc_hong_hae içinde tanımlı değildir. Paylaşılan sistemde fonksiyon şu şekilde doğrudan tanımlanır:
function cinsiyet_degisim()Bu nedenle fonksiyon çağrılırken de doğrudan cinsiyet_degisim() şeklinde kullanılmalıdır. Aksi halde NPC’ye tıklayınca quest çalışmayabilir, pencere açılmayabilir veya sistem tamamen tepkisiz kalabilir.
Hatanın Ana Sebebi
Fonksiyon global tanımlandığı halde farklı bir tabloya bağlıymış gibi çağrılırsa quest çalışmaz. Doğru kullanım doğrudan cinsiyet_degisim() şeklindedir.
Doğru Fonksiyon Çağırma Kullanımı
NPC üzerinden menüyü açarken doğru kullanım şu şekilde olmalıdır:
when 20094.chat."Cinsiyetimi Değiştir" begin if cinsiyet_degisim() then end endBurada sistem, oyuncu NPC ile konuştuğunda cinsiyet_degisim() fonksiyonunu çağırır. Fonksiyon içinde kontroller yapılır. Oyuncunun üzerinde kostüm, saç kostümü, smokin, gelinlik, nişan, evlilik veya dönüşüm durumu varsa işlem durdurulur. Her şey uygunsa oyuncuya onay menüsü gösterilir.
Bu yapı, oyuncunun cinsiyetini değiştirirken oluşabilecek görsel ve sistemsel sorunların önüne geçmek için önemlidir. Özellikle kostüm, evlilik ve dönüşüm kontrolleri olmadan yapılan cinsiyet değişimleri bazı files yapılarında karakter görünümü, item kullanımı veya sosyal sistemlerle ilgili hatalara yol açabilir.
Doğru Çağrı
cinsiyet_degisim() fonksiyonu doğrudan çağrılmalıdır.
Hatalı Çağrı
npc_hong_hae.cinsiyet_degisim() kullanımı bu yapı için uygun değildir.
Sorunsuz Çalışan Güncel Quest Kodu
Aşağıdaki kod, Metin2 cinsiyet değiştirme quest sistemi için temel kontrolleri içeren çalışan bir Lua quest örneğidir. Sunucunuza eklemeden önce kendi files yapınızdaki item vnum, NPC vnum ve fonksiyon desteklerini kontrol etmeniz önerilir.
quest cinsiyet_degisim begin state start begin when 20094.chat."Cinsiyetimi Değiştir" begin if cinsiyet_degisim() then end end function cinsiyet_degisim() if ((pc.get_costume_body() > 1) or (pc.get_costume_hair() > 1)) then say_title("Cinsiyet Değişimi -> Hata") say("") say("Karakterinizde kostüm veya saç bulunmaktadır.") say("Lütfen tüm kostümleri çıkarınız.") return false elseif ((pc.get_armor() >= 11901 and pc.get_armor() <= 11904)) then say_title("Cinsiyet Değişimi -> Hata") say("") say("Üzerinizde Smokin veya Gelinlik bulunuyor.") say("Lütfen çıkardıktan sonra tekrar deneyiniz.") return false elseif (pc.is_engaged()) then say_title("Cinsiyet Değişimi -> Hata") say("") say("Nişanlı karakterlerde işlem yapılamaz.") return false elseif (pc.is_married()) then say_title("Cinsiyet Değişimi -> Hata") say("") say("Evli karakterlerde işlem yapılamaz.") return false elseif (pc.is_polymorphed()) then say_title("Cinsiyet Değişimi -> Hata") say("") say("Dönüşüm halinde işlem yapılamaz.") return false end say_title("Cinsiyet Değişimi") say("") say("Karakterinizin cinsiyeti değiştirilecektir.") say("Devam etmek istiyor musunuz?") local secim = select("Evet", "Hayır") if secim == 1 then say_title("Başarılı") say("") say("Cinsiyet değiştirme işlemi tamamlandı.") pc.change_sex() return true end return false end end endQuest İçindeki Güvenlik Kontrolleri
Bu quest yalnızca pc.change_sex() fonksiyonunu çağırıp işlemi bitirmiyor. Öncesinde oyuncunun durumunu kontrol ediyor. Bu sayede cinsiyet değişimi sırasında ortaya çıkabilecek bazı klasik sorunlar engelleniyor.
Kostüm ve saç kostümü kontrolü, karakter görünümünün cinsiyet değişimi sırasında bozulmasını önlemek için önemlidir. Smokin ve gelinlik kontrolü de aynı mantıkla çalışır. Evlilik ve nişan kontrolleri sosyal sistemlerde oluşabilecek uyumsuzlukları engeller. Dönüşüm kontrolü ise polymorph durumunda karakter model değişimiyle çakışma yaşanmaması için kullanılır.
| Kontrol | Amacı |
|---|---|
| Kostüm kontrolü | Üzerindeki kostüm nedeniyle model sorunlarını önler. |
| Saç kostümü kontrolü | Cinsiyet sonrası saç/kostüm uyumsuzluğunu engeller. |
| Smokin / Gelinlik kontrolü | Özel evlilik kıyafetlerinde işlem yapılmasını engeller. |
| Nişan kontrolü | Nişanlı karakterlerde sosyal sistem sorunlarını önler. |
| Evlilik kontrolü | Evli karakterlerde işlem yapılmasını engeller. |
| Dönüşüm kontrolü | Polymorph durumunda model çakışmasını engeller. |
Quest Nasıl Eklenir?
Bu quest dosyasını eklemek için önce yeni bir quest dosyası oluşturmanız gerekir. Dosya adı örnek olarak cinsiyet_degisim.quest olabilir. Ardından dosyayı sunucunuzun quest dizinine atmalısınız.
cinsiyet_degisim.questQuest dosyasını aşağıdaki dizine yükleyebilirsiniz:
/usr/game/share/locale/turkey/questDaha sonra quest listesine dosya adını ekleyin:
cinsiyet_degisim.questSon olarak quest dizinine girip derleme işlemini yapın:
cd /usr/game/share/locale/turkey/quest ./qc cinsiyet_degisim.questKurulum Sonrası Test
Derleme sonrası oyuna girip 20094 NPC üzerinden menünün açılıp açılmadığını test edin. Eğer menü açılmıyorsa önce fonksiyon çağırma satırını ve quest derleme çıktısını kontrol edin.
pc.change_sex() Çalışmıyorsa Ne Yapılmalı?
Metin2 cinsiyet değiştirme quest sistemi doğru yazılmış olsa bile bazı eski source yapılarında pc.change_sex() fonksiyonu beklendiği gibi çalışmayabilir. Bu durumda source tarafında ilgili komutun aktif olup olmadığı kontrol edilmelidir.
Özellikle aşağıdaki fonksiyonun source içinde tanımlı ve aktif olması gerekir:
ACMD(do_change_sex)Bazı files yapılarında cinsiyet değişimi yapıldıktan sonra karakter görünümünün tamamen yenilenmesi için yeniden giriş gerekebilir. Bu durumda pc.change_sex() sonrasında oyuncuyu çıkışa yönlendirmek tercih edilebilir.
pc.change_sex() command("logout")Bu yöntemi kullanırsanız oyuncuya işlem sonrası yeniden giriş yapması gerektiğini açık şekilde bildirmeniz iyi olur. Aksi halde oyuncu karakter görünümünün hemen güncellenmediğini hata sanabilir.
Sorun Giderme Kontrol Listesi
- Quest doğru dizine atıldı mı?
- Quest listesine eklendi mi?
- ./qc ile hatasız derlendi mi?
- NPC vnum 20094 doğru mu?
- Fonksiyon doğrudan cinsiyet_degisim() olarak çağrılıyor mu?
- pc.change_sex() source tarafında aktif mi?
- Görünüm yenilenmiyorsa command(“logout”) gerekli mi?
Sistem Nasıl Geliştirilebilir?
Bu haliyle quest temel ve stabil bir cinsiyet değiştirme sistemi sunar. Ancak server yapınıza göre ek özelliklerle daha kontrollü veya premium bir hale getirilebilir. Örneğin işlem için belirli bir item isteyebilir, yang ücreti ekleyebilir veya EP sistemiyle bağlantı kurabilirsiniz.
Ayrıca işlem log sistemiyle kayıt altına alınabilir. Bu sayede hangi oyuncunun ne zaman cinsiyet değiştirdiği takip edilebilir. Cooldown eklemek de kötüye kullanımı önlemek için faydalı olabilir. Görsel efekt veya duyuru sistemiyle işlem daha özel hissettirilebilir.
Ekonomi
Yang, item veya EP ücreti eklenebilir.
Güvenlik
Cooldown ve log sistemiyle takip sağlanabilir.
Görsellik
Efekt, duyuru veya özel NPC diyaloğu eklenebilir.
Metin2 quest sistemleri ve PvP server geliştirme rehberleri için MMOoyun rehber kategorisini takip edebilirsiniz. Metin2 ve MMO içerikleri için oyun kategorisine de göz atabilirsiniz.
Genel Değerlendirme
Metin2 cinsiyet değiştirme quest sistemi, doğru fonksiyon çağrısı yapıldığında sorunsuz çalışabilen basit ama kullanışlı bir sistemdir. Questin hiç açılmaması sorunu çoğunlukla npc_hong_hae.cinsiyet_degisim() gibi hatalı çağrılardan kaynaklanır. Fonksiyon doğrudan cinsiyet_degisim() olarak çağrıldığında sistem düzgün şekilde çalışır.
Kostüm, saç, smokin, gelinlik, nişan, evlilik ve dönüşüm kontrolleri sayesinde güvenli bir kullanım sunar. Source tarafında pc.change_sex() fonksiyonu aktifse, bu quest Metin2 PvP serverinizde stabil bir cinsiyet değiştirme özelliği sağlamak için iyi bir temel oluşturur.
Daha Fazla Oyun Icerigi
Rehber, haber, onizleme ve oyun dunyasina dair daha fazla icerige mmooyun.com sitemizden ulasabilirsiniz. Ek icerikler ve oyun odakli guncel paylasimlar icin dev.mmooyun.com adresini de ziyaret edebilirsiniz.
Paylaş :









