Çözüldü yanında gezen binek hakkında

  • Konuyu açan Konuyu açan hasanmacit
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 16
  • Gösterim Gösterim 407
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

hasanmacit

discord: hasanmacit
Süper Moderatör
Geliştirici
Yardımsever Üye
Mesaj
4.377
Çözümler
183
Beğeni
3.942
Puan
1.850
Ticaret Puanı
3
görüldüğü gibi item slotta değilken bile binek yanımda duruyor. bunun fixi neredeydi ya bir türlü bulamadım.

1718222678947.png
 
bineğin üstündeyken çıkardığımda herşey normal binek kayboluyor. binek gezerken çıkarınca gitmiyor. unmountu ve horse_back kısmını biraz kurcalayıp uyarlamaya çalıştım fakat işe yaramadı.

kullanılan sistem
Yanında Gezen Binek Sistemi
 
C++:
Genişlet Daralt Kopyala
cmd_genaral.cpp

açılır

ACMD(do_user_horse_ride)

aratılır

        if (ch->GetMountVnum())
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ¹Ì Å»°ÍÀ» ÀÌ¿ëÁßÀÔ´Ï´Ù."));
            return;
        }

tekrar aratılır altına eklenir


#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        if (ch->GetQuestFlag("HORSE.CHECKER") && get_global_time() < ch->GetQuestFlag("HORSE.CHECKER"))
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapabilmek için %d saniye bekleyin.", (ch->GetQuestFlag("HORSE.CHECKER") - get_global_time()) % 180);
            return;
        }
#endif


        if (ch->GetHorse() == NULL)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» ¸ÕÀú ¼ÒȯÇØÁÖ¼¼¿ä."));
            return;
        }

aratılır cmd_genaral.cpp de gine

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        ch->SetQuestFlag("HORSE.CHECKER", get_global_time() + 3);
#endif

altına eklenir.

ACMD(do_user_horse_back)

aratılır

değiştir

ACMD(do_user_horse_back)
{
    if (ch->GetHorse() != NULL)
    {
#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        if (ch->GetQuestFlag("HORSE.CHECKER") && get_global_time() < ch->GetQuestFlag("HORSE.CHECKER"))
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapabilmek için %d saniye bekleyin.", (ch->GetQuestFlag("HORSE.CHECKER") - get_global_time()) % 180);
            return;
        }
#endif
#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        ch->SetQuestFlag("HORSE.CHECKER", get_global_time() + 3);
#endif
        ch->HorseSummon(false);
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» µ¹·Áº¸³Â½À´Ï´Ù."));
    }

    else if (ch->IsHorseRiding() == true)
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»¿¡¼ ¸ÕÀú ³»·Á¾ß ÇÕ´Ï´Ù."));
    }
    else
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» ¸ÕÀú ¼ÒȯÇØÁÖ¼¼¿ä."));
    }
}

ACMD(do_ride)

aratılır

    if (ch->IsDead() || ch->IsStun())
        return;

aratılır

altına

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
    if (ch->IsPolymorphed() == true){
        ch->ChatPacket(CHAT_TYPE_INFO, "Dönüşmüş haldeyken bineğe binemezsin.");
        return;
    }

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        if (ch->GetQuestFlag("HORSE.CHECKER") && get_global_time() < ch->GetQuestFlag("HORSE.CHECKER"))
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapabilmek için %d saniye bekleyin.", (ch->GetQuestFlag("HORSE.CHECKER") - get_global_time()) % 180);
            return;
        }
#endif

        if (ch->GetMountVnum())
        {

aratılır

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
            ch->SetQuestFlag("HORSE.CHECKER", get_global_time() + 3);
#endif

altına eklenir

    if (ch->IsHorseRiding())
    {
        ch->StopRiding();
        return;
    }

aratılır

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
    if (ch->GetQuestFlag("HORSE.CHECKER") && get_global_time() < ch->GetQuestFlag("HORSE.CHECKER"))
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapabilmek için %d saniye bekleyin.", (ch->GetQuestFlag("HORSE.CHECKER") - get_global_time()) % 180);
        return;
    }
#endif

altına eklenir


    if (ch->GetHorse() != NULL)
    {

aratılır

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        ch->SetQuestFlag("HORSE.CHECKER", get_global_time() + 3);
#endif

altına eklenir

    if (ch->GetMountVnum())
    {
        dev_log(LOG_DEB0, "[DO_RIDE] unmount");
        do_unmount(ch, NULL, 0, 0);
        return;
    }
    }

aratılır

    {
#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        if (ch->GetQuestFlag("HORSE.CHECKER") && get_global_time() < ch->GetQuestFlag("HORSE.CHECKER"))
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapabilmek için %d saniye bekleyin.", (ch->GetQuestFlag("HORSE.CHECKER") - get_global_time()) % 180);
            return;
        }
#endif

eklenir


if (ch->GetHorse() != NULL)

değiştirilir

        if (ch->GetHorse() != NULL)
        {
            dev_log(LOG_DEB0, "[DO_RIDE] start riding");
#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
            ch->SetQuestFlag("HORSE.CHECKER", get_global_time() + 3);
#endif
            ch->StartRiding();
            return;
        }


#define ENABLE_YANINDA_GEZEN_BINEK_FIX

service.h eklenir finsh.

C++:
Genişlet Daralt Kopyala
cmd_genaral.cpp

açılır

ACMD(do_user_horse_ride)

aratılır

        if (ch->GetMountVnum())
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ¹Ì Å»°ÍÀ» ÀÌ¿ëÁßÀÔ´Ï´Ù."));
            return;
        }

tekrar aratılır altına eklenir


#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        if (ch->GetQuestFlag("HORSE.CHECKER") && get_global_time() < ch->GetQuestFlag("HORSE.CHECKER"))
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapabilmek için %d saniye bekleyin.", (ch->GetQuestFlag("HORSE.CHECKER") - get_global_time()) % 180);
            return;
        }
#endif


        if (ch->GetHorse() == NULL)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» ¸ÕÀú ¼ÒȯÇØÁÖ¼¼¿ä."));
            return;
        }

aratılır cmd_genaral.cpp de gine

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        ch->SetQuestFlag("HORSE.CHECKER", get_global_time() + 3);
#endif

altına eklenir.

ACMD(do_user_horse_back)

aratılır

değiştir

ACMD(do_user_horse_back)
{
    if (ch->GetHorse() != NULL)
    {
#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        if (ch->GetQuestFlag("HORSE.CHECKER") && get_global_time() < ch->GetQuestFlag("HORSE.CHECKER"))
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapabilmek için %d saniye bekleyin.", (ch->GetQuestFlag("HORSE.CHECKER") - get_global_time()) % 180);
            return;
        }
#endif
#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        ch->SetQuestFlag("HORSE.CHECKER", get_global_time() + 3);
#endif
        ch->HorseSummon(false);
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» µ¹·Áº¸³Â½À´Ï´Ù."));
    }

    else if (ch->IsHorseRiding() == true)
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»¿¡¼ ¸ÕÀú ³»·Á¾ß ÇÕ´Ï´Ù."));
    }
    else
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» ¸ÕÀú ¼ÒȯÇØÁÖ¼¼¿ä."));
    }
}

ACMD(do_ride)

aratılır

    if (ch->IsDead() || ch->IsStun())
        return;

aratılır

altına

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
    if (ch->IsPolymorphed() == true){
        ch->ChatPacket(CHAT_TYPE_INFO, "Dönüşmüş haldeyken bineğe binemezsin.");
        return;
    }

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        if (ch->GetQuestFlag("HORSE.CHECKER") && get_global_time() < ch->GetQuestFlag("HORSE.CHECKER"))
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapabilmek için %d saniye bekleyin.", (ch->GetQuestFlag("HORSE.CHECKER") - get_global_time()) % 180);
            return;
        }
#endif

        if (ch->GetMountVnum())
        {

aratılır

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
            ch->SetQuestFlag("HORSE.CHECKER", get_global_time() + 3);
#endif

altına eklenir

    if (ch->IsHorseRiding())
    {
        ch->StopRiding();
        return;
    }

aratılır

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
    if (ch->GetQuestFlag("HORSE.CHECKER") && get_global_time() < ch->GetQuestFlag("HORSE.CHECKER"))
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapabilmek için %d saniye bekleyin.", (ch->GetQuestFlag("HORSE.CHECKER") - get_global_time()) % 180);
        return;
    }
#endif

altına eklenir


    if (ch->GetHorse() != NULL)
    {

aratılır

#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        ch->SetQuestFlag("HORSE.CHECKER", get_global_time() + 3);
#endif

altına eklenir

    if (ch->GetMountVnum())
    {
        dev_log(LOG_DEB0, "[DO_RIDE] unmount");
        do_unmount(ch, NULL, 0, 0);
        return;
    }
    }

aratılır

    {
#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
        if (ch->GetQuestFlag("HORSE.CHECKER") && get_global_time() < ch->GetQuestFlag("HORSE.CHECKER"))
        {
            ch->ChatPacket(CHAT_TYPE_INFO, "Bunu yapabilmek için %d saniye bekleyin.", (ch->GetQuestFlag("HORSE.CHECKER") - get_global_time()) % 180);
            return;
        }
#endif

eklenir


if (ch->GetHorse() != NULL)

değiştirilir

        if (ch->GetHorse() != NULL)
        {
            dev_log(LOG_DEB0, "[DO_RIDE] start riding");
#ifdef ENABLE_YANINDA_GEZEN_BINEK_FIX
            ch->SetQuestFlag("HORSE.CHECKER", get_global_time() + 3);
#endif
            ch->StartRiding();
            return;
        }


#define ENABLE_YANINDA_GEZEN_BINEK_FIX

service.h eklenir finsh.

bunada bi göz atabilirsin
 
Son düzenleme:
bu sadece bineğe binmek için süre koyuyor gibi
Evet şimdi baktımda bende ayrıntılı binme ve inme süresi birde dönüşümdeyken binememesi olayı varmış bunda

ACMD(do_user_horse_ride)
bunun içerisinde şöyle bir kontrol kodu var mı

C++:
Genişlet Daralt Kopyala
        if (ch->GetHorse() == NULL)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» ¸ÕÀú ¼ÒȯÇØÁÖ¼¼¿ä."));
            return;
        }


örnek kodlar

C++:
Genişlet Daralt Kopyala
ACMD(do_user_horse_ride)
{
    if (ch->IsObserverMode())
        return;

    if (ch->IsDead() || ch->IsStun())
        return;

    if (ch->IsHorseRiding() == false)
    {

        if (ch->GetMountVnum())
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ¹Ì Å»°ÍÀ» ÀÌ¿ëÁßÀÔ´Ï´Ù."));
            return;
        }

        if (ch->GetHorse() == NULL)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» ¸ÕÀú ¼ÒȯÇØÁÖ¼¼¿ä."));
            return;
        }

        ch->StartRiding();
    }
    else
    {
        ch->StopRiding();
    }
}

ACMD(do_user_horse_back)
{
    if (ch->GetHorse() != NULL)
    {
        ch->HorseSummon(false);
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» µ¹·Áº¸³Â½À´Ï´Ù."));
    }
    else if (ch->IsHorseRiding() == true)
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»¿¡¼ ¸ÕÀú ³»·Á¾ß ÇÕ´Ï´Ù."));
    }
    else
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» ¸ÕÀú ¼ÒȯÇØÁÖ¼¼¿ä."));
    }
}
 
Evet şimdi baktımda bende ayrıntılı binme ve inme süresi birde dönüşümdeyken binememesi olayı varmış bunda

ACMD(do_user_horse_ride)
bunun içerisinde şöyle bir kontrol kodu var mı

C++:
Genişlet Daralt Kopyala
        if (ch->GetHorse() == NULL)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» ¸ÕÀú ¼ÒȯÇØÁÖ¼¼¿ä."));
            return;
        }


örnek kodlar

C++:
Genişlet Daralt Kopyala
ACMD(do_user_horse_ride)
{
    if (ch->IsObserverMode())
        return;

    if (ch->IsDead() || ch->IsStun())
        return;

    if (ch->IsHorseRiding() == false)
    {

        if (ch->GetMountVnum())
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("ÀÌ¹Ì Å»°ÍÀ» ÀÌ¿ëÁßÀÔ´Ï´Ù."));
            return;
        }

        if (ch->GetHorse() == NULL)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» ¸ÕÀú ¼ÒȯÇØÁÖ¼¼¿ä."));
            return;
        }

        ch->StartRiding();
    }
    else
    {
        ch->StopRiding();
    }
}

ACMD(do_user_horse_back)
{
    if (ch->GetHorse() != NULL)
    {
        ch->HorseSummon(false);
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» µ¹·Áº¸³Â½À´Ï´Ù."));
    }
    else if (ch->IsHorseRiding() == true)
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»¿¡¼ ¸ÕÀú ³»·Á¾ß ÇÕ´Ï´Ù."));
    }
    else
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¸»À» ¸ÕÀú ¼ÒȯÇØÁÖ¼¼¿ä."));
    }
}
var ama yanında gezeni etkilemiyor o horse statüsünde olmadığı için. ama 20201 kodlu mobu horseye çevirip neler olcağını deneyebilirim. iyi bir fikir verdin.
 
@nyami ye sor istersen. O binek sistemiyle baya bi uğraşmıştı diye hatırlıyorum belki biliyordur.
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst