Bugsuz karakter değiştirme yüzüğü

  • Konuyu açan Konuyu açan flusya23
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 0
  • Gösterim Gösterim 2K

flusya23

MT Üye
MT Üye
Mesaj
203
Çözümler
22
Beğeni
84
Puan
479
Ticaret Puanı
0
Questi :
Linkleri görebilmek için giriş yap veya kayıt ol.

Lua (Quest):
Genişlet Daralt Kopyala
quest karakter_yuzugu begin
    state start begin
        when 40002.use begin
            if pc . count_item ( 40002 ) < 1 then
                        say_title ( " Bug Kontrol " )
                        say_title( " Envanterindeki nesne kaybolmuş. " )
                        return
                        end
            say_title("Karakter Değiştirme Yüzüğü ")
            say_title("Lütfen karakter değişimi yapmadan önce")
            say_title("tüm itemlerinizi çıkarınız.")
            say_title("NOT: Yüzük kullanıldıktan sonra silinir.")
            local s = select("Savaşçı ","Ninja ","Sura ","Şaman ","Kapat ")

            if pc . count_item ( 40002 ) < 1 then
            say_title ( "Bug Kontrol" )
            say_title( "Bug denediniz." )
            return
            end

            if pc.is_engaged() then
                say_title("Değişim Tılsımı ")
                say_reward("Sadece bekar karakterler karakter")
                say_reward("değiştirebilirler.")

                ----"12345678901234567890123456789012345678901234567890"|
                say("Eğer evliysen, karakter değiştirmeden önce")
                say("boşanmak zorundasın.")
                say("")
                return;
            end

            if pc.is_married() then
                say_title("Değişim Tılsımı ")
                say_reward("Sadece bekar karakterler karakter")
                say_reward("değiştirebilirler.")

                ----"12345678901234567890123456789012345678901234567890"|
                say("Eğer evliysen, karakter değiştirmeden önce")
                say("boşanmak zorundasın.")
                return;
            end

            if pc.is_polymorphed() then
                say_title("Değişim Tılsımı ")
                say_reward("Dönüşmüş haldeyken tılsımı kullanamazsın.")
                say("")

                say("Dönüşmüş karakterler karakter değiştiremezler.")
                say("")
                return
            end
            
            local WEAR_BODY_INDEX = 0
            local WEAR_HEAD_INDEX = 1
            local WEAR_WEAPON_INDEX = 4
            local WEAR_COSTUME_BODY_INDEX = 19
            local WEAR_COSTUME_HAIR_INDEX = 20
            local WEAR_COSTUME_WEAPON_INDEX = 21
            local WEAR_COSTUME_MOUNT_INDEX = 22
            if pc.get_wear(WEAR_BODY_INDEX) != nil then
                say_title("Değişim Tılsımı ")
                say_reward("Zırh giyili iken tılsımı kullanamazsın.")
                say("")
                
                say("Zırh giyen karakterler karakter değiştiremezler.")
                say("")
                return
            end
            
            if pc.get_wear(WEAR_HEAD_INDEX) != nil then
                say_title("Değişim Tılsımı ")
                say_reward("Kask giyili iken tılsımı kullanamazsın.")
                say("")
                
                say("Kask giyen karakterler karakter değiştiremezler.")
                say("")
                return
            end
            
            if pc.get_wear(WEAR_WEAPON_INDEX) != nil then
                say_title("Değişim Tılsımı ")
                say_reward("Silah giyili iken tılsımı kullanamazsın.")
                say("")
                
                say("Silah giyen karakterler karakter değiştiremezler.")
                say("")
                return
            end
            
            if pc.get_wear(WEAR_COSTUME_BODY_INDEX) != nil then
                say_title("Değişim Tılsımı ")
                say_reward("Kostüm giyili iken tılsımı kullanamazsın.")
                say("")
                
                say("Kostüm giyen karakterler karakter değiştiremezler.")
                say("")
                return
            end
            
            if pc.get_wear(WEAR_COSTUME_HAIR_INDEX) != nil then
                say_title("Değişim Tılsımı ")
                say_reward("Saç stili giyili iken tılsımı kullanamazsın.")
                say("")
                
                say("Saç stili giyen karakterler karakter değiştiremezler.")
                say("")
                return
            end

            if pc.get_wear(WEAR_COSTUME_WEAPON_INDEX) != nil then
                say_title("Değişim Tılsımı ")
                say_reward("Silah kostümü giyili iken tılsımı kullanamazsın.")
                say("")
                
                say("Silah kostümü giyen karakterler karakter değiştiremezler.")
                say("")
                return
            end

            if pc.get_wear(WEAR_COSTUME_MOUNT_INDEX) != nil then
                say_title("Değişim Tılsımı ")
                say_reward("Binek giyili iken tılsımı kullanamazsın.")
                say("")
                
                say("Binek giyen karakterler karakter değiştiremezler.")
                say("")
                return
            end

            if s == 1 then ---------------- Savasci karakter
            say_title("Karakter Değiştirme Yüzüğü ")
            say_reward ( "Savaşçı karakterini mi tercih ediyorsun? ")
            say_title("Seçim senin elinde sadece bir kez seçebilirsin...")
            local b = select("Evet","Hayır ")
            if b == 1 then
            pc.polymorph (4 , 36000000000)
            setskin ( NOWINDOW )
            pc . change_sex ( )
            pc . polymorph ( "20032" )
            pc.remove_item ( 40002 )
            pc.clear_skill()
            pc.set_skill_group(0)
            set_quest_state("skill_group","run")
            warp_to_village()
            syschat("|cff00ff00[SİSTEM] |cffffffffLütfen karakter atmayı unutmayınız..")
            end
            end

            if s == 2 then ---------------- Ninja karakter
            say_title("Karakter Değiştirme Yüzüğü ")
            say_reward ( "Ninja karakterimi tercih ediyorsun? ")
            say_title("Seçim senin elinde sadece bir kez seçebilirsin...")
            local b = select("Evet","Hayır ")
            if b == 1 then
            pc.polymorph (5 , 36000000000)
            setskin ( NOWINDOW )
            pc . change_sex ( )
            pc . polymorph ( "20032" )
            pc.remove_item ( 40002 )
            pc.clear_skill()
            pc.set_skill_group(0)
            set_quest_state("skill_group","run")
            warp_to_village()
            end
            end

            if s == 3 then ---------------- Sura karakter
            say_title("Karakter Değiştirme Yüzüğü ")
            say_reward ( "Sura karakterimi tercih ediyorsun? ")
            say_title("Seçim senin elinde sadece bir kez seçebilirsin...")
            local b = select("Evet","Hayır ")
            if b == 1 then
            pc.polymorph (6 , 36000000000)
            setskin ( NOWINDOW )
            pc . change_sex ( )
            pc . polymorph ( "20032" )
            pc.remove_item ( 40002 )
            pc.clear_skill()
            pc.set_skill_group(0)
            set_quest_state("skill_group","run")
            warp_to_village()
            end
            end

            if s == 4 then ---------------- Saman karakter
            say_title("Karakter Değiştirme Yüzüğü ")
            say_reward ( "Şaman karakterimi tercih ediyorsun? ")
            say_title("Seçim senin elinde sadece bir kez seçebilirsin...")
            local b = select("Evet","Hayır ")
            if b == 1 then
            pc.polymorph (7 , 36000000000)
            setskin ( NOWINDOW )
            pc . change_sex ( )
            pc . polymorph ( "20032" )
            pc.remove_item ( 40002 )
            pc.clear_skill()
            pc.set_skill_group(0)
            set_quest_state("skill_group","run")
            warp_to_village()
            end
        end
    end
end
end


Bakınız :

OUVAO8.jpg


Buradaki sayılar sizin length.h nizdeki sayılar :

OUVdUj.jpg


Hangisi takılı iken değiştirmesini istemiyorsanız onları ekleyin. Ancak benim eklediğim türde yeterlidir. Değiştirme yaptıktan sonra her karakteri bayrağına ışınlama ekledim karakter değiştirme yerine.

Onuda : warp_to_village() bu kısmı silerek iptal edebilirsiniz.

Peki neden c++ bölümüne açtım konuyu?
Quest aşılırsa falan diye gerçi bu quest aşılsa ne olur ne gibi bir bugu olur bilmiyorum ama :
Srcdende engelini atalım :
Linkleri görebilmek için giriş yap veya kayıt ol.

C++:
Genişlet Daralt Kopyala
    int pc_change_sex(lua_State* L)
    {
//@fixme246 BEGIN
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        if (CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_COSTUME_BODY) || (CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_COSTUME_HAIR)) || (CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_COSTUME_MOUNT)) || (CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_COSTUME_WEAPON)))
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Cinsiyet değiştirebilmek için kostümlerini çıkartmalısın.");
            lua_pushboolean(L, false);
            return 1;
        }
//@fixme246 END
        lua_pushnumber(L, CQuestManager::instance().GetCurrentCharacterPtr()->ChangeSex());
        return 1;
    }

YONETİCİLER İSTERSE QUEST BÖLÜMÜNEDE TAŞIYABİLİR.

Şöylede bir kanıt bırakayım:
OUn91Q.jpg
 
Son düzenleme:
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst