Yardım At skili 1 seviye iken aslan üzerinden vurabilmek

  • Konuyu açan Konuyu açan Levelsiz
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 104
Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

Levelsiz

Üye
Üye
Mesaj
29
Çözümler
1
Beğeni
0
Puan
66
Ticaret Puanı
0
At skili 1 seviye iken normal at üzerinden vurabilmeyi açtım ancak cesur aslan için açamıyorum. Vurma animasyonu dahi yapmıyor.
20212 için yapmaya çalışıyorum.
Client tarafında her şeye return 3 dönmesini de denedim ama sonuç alamıyorum.

Yardımınızı rica ederim.


InstanceBase.cpp:
Genişlet Daralt Kopyala
UINT CInstanceBase::SHORSE::GetLevel()
{
    if (m_pkActor)
    {
        DWORD mount = m_pkActor->GetRace();
        switch (mount)
        {
            case 0:
                return 1;
            case 20101:
            case 20102:
            case 20103:
            case 20104:
            case 20105:
            case 20106:
            case 20205:
            case 20206:
            case 20208:
            case 20210:
            case 20207:
            case 20215:
            case 20217:
                return 2;
            case 20107:
            case 20108:
            case 20109:
            case 20110: // #0000673: [M2EU] »õ·Î¿î Å»°Í Ÿ°í °ø°İ ¾ÈµÊ
            case 20111: // #0000673: [M2EU] »õ·Î¿î Å»°Í Ÿ°í °ø°İ ¾ÈµÊ
            case 20112: // #0000673: [M2EU] »õ·Î¿î Å»°Í Ÿ°í °ø°İ ¾ÈµÊ
            case 20113: // #0000673: [M2EU] »õ·Î¿î Å»°Í Ÿ°í °ø°İ ¾ÈµÊ
            case 20114:
            case 20115:
            case 20116:
            case 20117:
            case 20118:
            case 20120:
            case 20121:
            case 20122:
            case 20123:
            case 20124:
            case 20125:
                return 3;
            case 20119: // ¶ó¸¶´Ü À̺¥Æ®¿ë Èæ¸¶´Â ½ºÅ³ºÒ°¡, °ø°İ°¡´ÉÇÑ ·¹º§2·Î ¼³Á¤
            case 20219: // ÇÒ·ÎÀ© À̺¥Æ®¿ë Èæ¸¶´Â ½ºÅ³ºÒ°¡, °ø°İ°¡´ÉÇÑ ·¹º§2·Î ¼³Á¤ (=¶ó¸¶´Ü Èæ¸¶ Ŭ·Ğ)
            case 20220:
            case 20221:
            case 20222:
                return 2;
        }

        // ¸¶¿îÆ® È®Àå ½Ã½ºÅÛ¿ë Æ¯¼ö ó¸® (20201 ~ 20212 ´ë¿ªÀ» »ç¿ëÇÏ°í ¼ø¼´ë·Î 4°³¾¿ ³ª´²¼ ÃʱŞ, Áß±Ş, °í±ŞÀÓ)
        //    -- Å»°Í ·¹º§À» Ŭ¶ó¿¡¼ ÃøÁ¤ÇÏ°í °ø°İ/½ºÅ³ »ç¿ë°¡´É ¿©ºÎµµ Ŭ¶ó¿¡¼ ó¸®ÇÏ´Â °Í ÀÚü¿¡ ¹®Á¦°¡ ÀÖ´Â µí.. [hyo]
        {
            // Áß±Ş Å»°ÍÀº ·¹º§2 (°ø°İ °¡´É, ½ºÅ³ ºÒ°¡)
            if ((20205 <= mount &&  20208 >= mount) ||
                (20214 == mount) || (20217 == mount)            // ³ÆøÇÑ Àü°©¼ø¼ø·Ï, ³ÆøÇÑ Àü°©¾Ï¼ø·Ï
                )
                return 2;

            // °í±Ş Å»°ÍÀº ·¹º§3 (°ø°İ °¡´É, ½ºÅ³ °¡´É)
            if ((20209 <= mount &&  20212 >= mount) ||
                (20215 == mount) || (20218 == mount) ||            // ¿ë¸ÍÇÑ Àü°©¼ø¼ø·Ï, ¿ë¸ÍÇÑ Àü°©¾Ï¼ø·Ï
                (20220 == mount)
                )
                return 3;
        }
    }
    return 3;
}

pvp.cpp:
Genişlet Daralt Kopyala
bool CPVPManager::CanAttack(LPCHARACTER pkChr, LPCHARACTER pkVictim)
{
    switch (pkVictim->GetCharType())
    {
        case CHAR_TYPE_NPC:
        case CHAR_TYPE_WARP:
        case CHAR_TYPE_GOTO:
            return false;
    }

    if (pkChr == pkVictim)  // 내가 날 칠라고 하네 -_-
        return false;

    if (pkVictim->IsNPC() && pkChr->IsNPC() && !pkChr->IsGuardNPC())
        return false;

    if( true == pkChr->IsHorseRiding() )
    {
        if( pkChr->GetHorseLevel() == 0 )
            return false;
    }
    else
    {
        switch( pkChr->GetMountVnum() )
        {
            case 0:
            case 20101:
            case 20102:
            case 20103:
            case 20030:
            case 20110:
            case 20111:
            case 20112:
            case 20113:
            case 20114:
            case 20115:
            case 20116:
            case 20117:
            case 20118:
                //신규 탈것 고급
            case 20205:
            case 20206:
            case 20207:
            case 20208:
            case 20209:
            case 20210:
            case 20211:
            case 20212:
            case 20119:        // 라마단 흑마
            case 20219:        // 라마단 흑마 클론 (할로윈용)
            case 20220:        // 크리스마스 탈것
            case 20221:        // 전갑 백웅
            case 20222:        // 전갑 팬더
            case 20120:
            case 20121:
            case 20122:
            case 20123:
            case 20124:
            case 20125:
            case 20214:        // 난폭한 전갑순순록   
            case 20215:        // 용맹한 전갑순순록   
            case 20217:        // 난폭한 전갑암순록   
            case 20218:        // 용맹한 전갑암순록   
                break;

            default:
                return false;
        }
    }
 
GetLevel() methoduna şu satırı ekle:
Kod:
Genişlet Daralt Kopyala
case 20212:
    return 3;

Eklemek için en doğru yer:
if ((20209 <= mount && 20212 >= mount) ||

Kod:
Genişlet Daralt Kopyala
Server tarafında  aşağıdaki blok var ya

case 20211:
case 20212:
case 20119:
case 20219:
case 20220:
case 20221:
case 20222:
...

# ekle
case 20211:
case 20212: // Cesur Aslan
    break;
Kod:
Genişlet Daralt Kopyala
Clientte arat

if (!IsNormalAttackableMount(mountVnum)) return;

#içinede ekle


case 20212:
return true;
 
 
Geri
Üst