- Katılım
- 3 Haz 2025
- Konular
- 28
- Mesajlar
- 158
- Çözüm
- 2
- Online süresi
- 6d 3h
- Reaksiyon Skoru
- 85
- Altın Konu
- 0
- TM Yaşı
- 1 Yıl
- Başarım Puanı
- 52
- Yaş
- 29
- MmoLira
- 836
- DevLira
- 39
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ 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
[CODE title="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;
[/CODE]
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
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
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
[CODE title="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;
[/CODE]
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 12
- Görüntüleme
- 1K
- Cevaplar
- 1
- Görüntüleme
- 36
- Cevaplar
- 4
- Görüntüleme
- 347
- Cevaplar
- 10
- Görüntüleme
- 936
- Cevaplar
- 0
- Görüntüleme
- 264








