At yarışı Etkinliği için ufak bir eklenti

harunkocer

Üye
Üye
Mesaj
115
Çözümler
4
Beğeni
109
Puan
765
Ticaret Puanı
1
Sistem, sadece map’e ışınlanan karakterleri at üstünde başlatır.
Bir müşterim istemişti, ben de paylaşmak istedim.


Not: Sistemin tamamı değildir.

Kod:
Genişlet Daralt Kopyala
#define ENABLE_HORSE_RACING                    // At yarışı
#ifdef ENABLE_HORSE_RACING
    #define HORSE_RACING_MAP_INDEX 233        //Harita index / Set the map index
#endif



Kod:
Genişlet Daralt Kopyala
    if (false == CHorseRider::StartRiding())
    {
        if (GetHorseLevel() <= 0)
            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말을 소유하고 있지 않습니다."));
        else if (GetHorseHealth() <= 0)
            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말이 죽어있는 상태 입니다."));
        else if (GetHorseStamina() <= 0)
            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("말의 스테미너가 부족하여 말을 탈 수 없습니다."));

        return false;
    }


// arat üstüne ekle// before add

    #ifdef ENABLE_HORSE_RACING
    if (GetMapIndex() == HORSE_RACING_MAP_INDEX)
    {
        dwMountVnum = 20108;
    }
    #endif



Kod:
Genişlet Daralt Kopyala
    if (ch->GetHorseLevel() > 0)
    {
        DWORD pid = ch->GetPlayerID();

        if (pid != 0 && CHorseNameManager::instance().GetHorseName(pid) == NULL)
            db_clientdesc->DBPacket(HEADER_GD_REQ_HORSE_NAME, 0, &pid, sizeof(DWORD));

        // @fixme182 BEGIN
        ch->SetHorseLevel(ch->GetHorseLevel());
        ch->SkillLevelPacket();
        // @fixme182 END
    }


// arat altına ekle// after add/

    #ifdef ENABLE_HORSE_RACING
    if (ch->GetMapIndex() == HORSE_RACING_MAP_INDEX)
    {
        if (!ch->IsRiding() && !ch->GetHorse())
        {
            ch->StartRiding();
        }
    }
    #endif


[HASH=3]#endif[/HASH]
 
Geri
Üst