Hikayeler

Reklam vermek için turkmmo@gmail.com

Official Zodyak Tapınağı Denemesi

Kronikmorgan

Level 3
TM Üye
Üye
Katılım
3 Haz 2025
Konular
17
Mesajlar
104
Online süresi
3g 64634s
Reaksiyon Skoru
55
Altın Konu
0
Başarım Puanı
36
TM Yaşı
10 Ay 20 Gün
MmoLira
344
DevLira
27

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Zodyak sistemi için sıfırdan yazmak istedim fakat çok uğraş gerektiriyormuş 40 kat tek tek görevlerini bonus katlarını çok detaylı bir şekilde
valla bu sistem benim enerjimi sömürdü bu sistemde eksiklerim illaki olacak map regen bu işlerden pek anlamam o yüzden hali hazırda var ise yardımcı olursanız çok işime gelir bir de 40 katında görevlerini verirseniz hata yaptıysam düzeltme fırsatım olur. Şimdiden teşekkür ederim


wiki bir yere kadar ilerletiyor araştırdım ama bu işi iyi bilen birisi varsa 40 katıda ezbere biliyorsa yardımcı olursa sevinirim

40 katın kodu:
    switch (m_iCurrentFloor)
    {
        case 1:
            if (remainingMobs <= 0) MissionCompleted(1);
            break;

        case 2:
            if (remainingMobs <= 0)
            {
                if (elapsedSeconds <= 60) {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Mukemmel hiz! 6. Kata sicriyorsunuz."));
                    MissionCompleted(4);
                } else if (elapsedSeconds <= 240) {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Iyi is cikardiniz. 5. Kata sicriyorsunuz."));
                    MissionCompleted(3);
                } else if (elapsedSeconds <= 360) {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Yeterince hizli degilsiniz. 4. Kata geciyorsunuz."));
                    MissionCompleted(2);
                } else {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Cok yavas kaldiniz, tapinaktan atiliyorsunuz."));
                    KickAll();
                }
            }
            break;

        case 3: case 4: case 5:
            if (remainingMobs <= 0) MissionCompleted(1);
            break;

        case 6:
            if (pVictim->GetMobRank() >= MOB_RANK_BOSS && remainingMobs <= 0)
            {
                ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Zodyak Patronu alt edildi! Olum Kapani asildi."));
                MissionCompleted(1);
            }
            break;

        case 7:
        case 21:
            if (pVictim->GetRaceNum() >= 2900 && pVictim->GetRaceNum() <= 2908)
            {
                bool bIsCorrect = (remainingMobs <= 0) ? true : (number(1, 2) == 1);
                
                if (bIsCorrect) {
                    GiveRandomZodiacBuff();
                    MissionCompleted(1);
                } else {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Yanlis metin tasi! Zodyak Kurdu uyandi."));
                    CHARACTER_MANAGER::instance().SpawnMob(2600, m_dwMapIndex, pVictim->GetX(), pVictim->GetY(), 0, false, -1);
                }
            }
            break;

        case 8:
            if (remainingMobs <= 0)
            {
                if (elapsedSeconds <= 60) {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Hizli temizlik! 13. Kata sicriyorsunuz."));
                    MissionCompleted(5);
                } else {
                    MissionCompleted(1);
                }
            }
            break;

        case 9: case 10: case 11: case 12: case 13:
            if (remainingMobs <= 0) MissionCompleted(1);
            break;

        case 14:
            if (pVictim->IsStone() && remainingMobs <= 1)
            {
                GiveRandomZodiacBuff();
                MissionCompleted(1);
            }
            break;

        case 15:
            if (remainingMobs <= 0)
            {
                if (elapsedSeconds <= 60) {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Simsek gibisin! 20. Kata sicriyorsunuz."));
                    MissionCompleted(5);
                } else {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Sure asildi. 19. Kata mahkum edildiniz."));
                    MissionCompleted(4);
                }
            }
            break;

        case 16: case 17: case 18: case 19:
            if (remainingMobs <= 0) MissionCompleted(1);
            break;

        case 20:
            if (pVictim->GetMobRank() >= MOB_RANK_BOSS && remainingMobs <= 0)
                MissionCompleted(1);
            break;

        case 22:
            if (pVictim->GetMobRank() >= MOB_RANK_BOSS && remainingMobs <= 0)
            {
                if (elapsedSeconds <= 60) {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Zalimleri ezdiniz! 27. Kata sicriyorsunuz."));
                    MissionCompleted(5);
                } else {
                    MissionCompleted(1);
                }
            }
            break;

        case 23: case 24: case 25: case 26: case 27:
            if (remainingMobs <= 0) MissionCompleted(1);
            break;

        case 28:
            if (pVictim->IsStone() && remainingMobs <= 1)
            {
                GiveRandomZodiacBuff();
                MissionCompleted(1);
            }
            break;

        case 29: case 30: case 31: case 32: case 33:
            if (remainingMobs <= 0)
            {
                if (m_iCurrentFloor == 30 && elapsedSeconds <= 60) {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Yolunuz acildi! 34. Kata sicriyorsunuz."));
                    MissionCompleted(4);
                } else {
                    MissionCompleted(1);
                }
            }
            break;

        case 34:
            if (pVictim->GetMobRank() >= MOB_RANK_BOSS)
            {
                for (auto it = m_setPlayers.begin(); it != m_setPlayers.end(); ++it)
                {
                    LPCHARACTER pMember = CHARACTER_MANAGER::instance().FindByPID(*it);
                    if (pMember && pMember->GetMapIndex() == m_dwMapIndex)
                    {
                        pMember->AutoGiveItem(33033, 1);
                        pMember->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Zodyak Patronu dustu! Altin Sandik kazandin."));
                    }
                }
                MissionCompleted(1);
            }
            break;

        case 35: case 36: case 37: case 38: case 39:
            if (pVictim->GetRaceNum() >= 2900 && pVictim->GetRaceNum() <= 2908)
            {
                bool bIsCorrect = (remainingMobs <= 0) ? true : (number(1, 2) == 1);
                
                if (bIsCorrect)
                {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Dogru kapi! Zodyak Tuccari seni bekliyor."));
                    int jumpTo40 = 40 - m_iCurrentFloor;
                    m_bSpawnMerchantAt40 = true;
                    MissionCompleted(jumpTo40);
                }
                else
                {
                    ch->ChatPacket(CHAT_TYPE_INFO, LC_STRING("Yanlis secim! Yola devam etmelisin. Zodyak Kurdu uyandi."));
                    CHARACTER_MANAGER::instance().SpawnMob(2600, m_dwMapIndex, pVictim->GetX(), pVictim->GetY(), 0, false, -1);

                    if (m_iCurrentFloor == 39)
                    {
                        m_bSpawnMerchantAt40 = false;
                        MissionCompleted(1);
                    }
                    else
                    {
                        MissionCompleted(1);
                    }
                }
            }
            break;

        case 40:
            break;
 
Konu uygun alana taşınmıştır.
Aşağıda hazır dosyalar paylaştım üstünden devam et
 

Ekli dosyalar

  • Zodiak GF.rar
    43.3 MB · Görüntüleme: 0
teşekkürler
 

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst