(C++) Harita'ya Girişte Binek ve At Kontrolü (Bineği Slottan Çıkarma)

  • Konuyu açan Konuyu açan okan4141
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 186

okan4141

D E L I
MT Üye
Mesaj
179
Çözümler
8
Beğeni
199
Puan
759
Ticaret Puanı
0
Char.cpp Aç ve Ekle:

C++:
Genişlet Daralt Kopyala
#if defined(__ENABLE_CHECK_MOUNT__)
#    include "unmount_map.h"
#endif

En Alta Ekle:

C++:
Genişlet Daralt Kopyala
#if defined(__ENABLE_CHECK_MOUNT__)
void CHARACTER::UnMount(LPCHARACTER ch)
{
    if (!ch)
        return;

    const uint32_t mapIndex = ch->GetMapIndex();
    if (IsUnMountMap(mapIndex))
    {
        if (ch->IsHorseRiding())
        {
            ch->StopRiding();
            ch->HorseSummon(false);
        }

        ch->RemoveAffect(AFFECT_MOUNT);
        ch->RemoveAffect(AFFECT_MOUNT_BONUS);

        if (ch->IsRiding())
        {
            ch->StopRiding();
        }

#ifdef ENABLE_MOUNT_COSTUME_SYSTEM
        auto* cMount = ch->GetWear(WEAR_COSTUME_MOUNT);
        if (cMount && cMount->IsEquipped())
        {
            ch->UnequipItem(cMount);
        }
#endif
    }
}
#endif

Include İsminde Dosya Oluşturun ve İçine Ekleyin:

C++:
Genişlet Daralt Kopyala
#pragma once

#include "../../common/CommonDefines.h"

#if defined(__ENABLE_CHECK_MOUNT__)
#include "../../common/length.h"

bool IsUnMountMap(uint32_t mapIndex)
{
    switch (mapIndex)
    {
        case MapTypes::MAP_OX_EVENT:
        case MapTypes::MAP_PVP_ARENA:
            return true;

        default:
            return false;
    }
}
#endif

Input_Login.cpp Açın ve Arat:

C++:
Genişlet Daralt Kopyala
    ch->Show(ch->GetMapIndex(), pos.x, pos.y, pos.z);

Altına Ekle:

C++:
Genişlet Daralt Kopyala
#if defined(__ENABLE_CHECK_MOUNT__)
    ch->UnMount(ch);
#endif

Char.h Aç ve Arat:

C++:
Genişlet Daralt Kopyala
};

ESex GET_SEX(LPCHARACTER ch);

#endif

Üstüne Ekle:

C++:
Genişlet Daralt Kopyala
#if defined(__ENABLE_CHECK_MOUNT__)
    public:
        void                UnMount(LPCHARACTER ch);
#endif

Common/length.h Aç ve Ekle:

C++:
Genişlet Daralt Kopyala
enum MapTypes
{
    MAP_A1                         = 1,    //                                 metin2_map_a1
    MAP_A3                         = 3,    //                                 metin2_map_a3
    MAP_B1                         = 21,    //                                 metin2_map_b1
    MAP_B3                         = 23,    //                                 metin2_map_b3
    MAP_C1                         = 41,    //                                 metin2_map_c1
    MAP_C3                         = 43,    //                                 metin2_map_c3
    MAP_OX_EVENT                 = 113,    //                                 map_ox_event
    MAP_PVP_ARENA                 = 90,    //                                 metin2_map_pvp_arena
};

CommonDefines.h veya Service.h Ekle:

C++:
Genişlet Daralt Kopyala
#define __ENABLE_CHECK_MOUNT__


Kanıt:

 
ch->RemoveAffect(AFFECT_MOUNT);
ch->RemoveAffect(AFFECT_MOUNT_BONUS);

Kullanmıyorsanız Silin Onu Extra Olarak Ekledim Burada Paylaşmak İçin Bazılarında Bu Affectler Veriliyor.

Eksik birşey olursa yazın 15;00 de servise binmem gerek işe gidiyorum acele acele açtım konuyu :)

Zindan içinde ayar yapacağım güncellerim işten çıkınca.
 
Son düzenleme:
Herkese merhaba :)

evet malum biraz geç uyandım ve hayırlıysa bu sistemi de finishledim. Güncelleme veremedim çünkü şu an yine servisteyim. :) :)

Yapılan Güncellemeler;

1: Kendisine ait cpp ve header dosyası oluşturuldu. (Modülerlik Sebebiyle)

2: StartRiding içine kontrol eklendi. (At kitabı questim olmadığı için test edemedim.)

3: EquipTo içine kontrol eklendi. (Binek itemini slota sürüklediğinizde giyemezsiniz.)

4: UseItemEx içindeki ITEM_COSTUME içinde ve itemin alt türü altında kontrol eklendi ve böylelikle iteme tıkladığınızda giyemezsiniz.

5: Zindan indexleri hesaplaması yapıldı.
 
Son düzenleme:
Üst