Çözüldü Hızlı Bk Okuma Sistemi Game Source Derleme Hatası

  • Konuyu açan Konuyu açan sharap
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 504
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ı.

sharap

MT Üye
MT Üye
Mesaj
301
Çözümler
15
Beğeni
142
Puan
529
Ticaret Puanı
0
Arkadaşlar merhaba Hızlı Bk okuma sistemini ekliyorum da game source cmd_general.cpp dosyamdaki kodda bir sıkıntı var çözmeye çalıştım ama çözemedim yardımcı olabilirmissiniz.

Eklediğim Kod Satırı::
Genişlet Daralt Kopyala
#ifdef ENABLE_FAST_SKILLBOOK_READ_SYSTEM
LPEVENT bktimer = NULL;

EVENTINFO(TMainEventInfo2)
{
    LPCHARACTER    kim;
    long skillindexx;

    TMainEventInfo2()
        : kim(NULL)
        , skillindexx(0)
    {
    }
};

EVENTFUNC(bk_event)
{
    TMainEventInfo2* info = dynamic_cast<TMainEventInfo2*>(event->info);

    if (info == NULL)
    {
        sys_err("ruh_event> <Factor> NULL pointer");
        return 0;
    }

    LPCHARACTER    ch = info->kim;
    long skillindex = info->skillindexx;

    if (NULL == ch || skillindex == 0)
        return 0;

    if (!ch->GetDesc())
        return 0;

    if (!ch)
        return 0;

    if (ch)
    {
        if (ch->CountSpecifyItem(50300) < 1)
            return 0;

        int skilllevel = ch->GetSkillLevel(skillindex);
        if (skilllevel >= 30)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Grand Master"));
            return 0;
        }

        int dwVnum = ch->BKBul(skillindex);
        if (dwVnum == 999)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BK_SYSTEM_NOT_SKILL"));
            return 0;
        }

        LPITEM item = ch->GetInventoryItem(dwVnum);

        if (!item)
            return 0;

        if (item->GetVnum() != 50300 || item->GetSocket(0) != skillindex)
            return 0;

        if (ch->CountSpecifyItem(71001) > 0)
        {
            if (!ch->IsAffectFlag(513))
            {
                ch->AddAffect(513, aApplyInfo[0].bPointType, 0, 0, 536870911, 0, false);
                ch->RemoveSpecifyItem(71001, 1);
            }
        }

        if (ch->CountSpecifyItem(71001) < 1)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BK_SYSTEM_NOT_KR_ITEM"));
            return 0;
        }

        if (ch->CountSpecifyItem(71094) >= 1)
        {
            if (!ch->IsAffectFlag(512))
            {
                ch->AddAffect(512, aApplyInfo[0].bPointType, 0, 0, 536870911, 0, false);
                ch->RemoveSpecifyItem(71094, 1);
            }
        }
        if (item->GetVnum() == 50300)
        {
            if (true == ch->LearnSkillByBook(skillindex))
            {
                if (item->GetVnum() == 50300 && item->GetSocket(0) == skillindex)
                {
                    item->SetCount(item->GetCount() - 1);
                    int iReadDelay;
                    iReadDelay = number(SKILLBOOK_DELAY_MIN, SKILLBOOK_DELAY_MAX);
                    ch->SetSkillNextReadTime(skillindex, get_global_time() + iReadDelay);
                }
            }
            else
            {
                if (item->GetVnum() == 50300 && item->GetSocket(0) == skillindex)
                {
                    item->SetCount(item->GetCount() - 1);
                    int iReadDelay;
                    iReadDelay = number(SKILLBOOK_DELAY_MIN, SKILLBOOK_DELAY_MAX);
                    ch->SetSkillNextReadTime(skillindex, get_global_time() + iReadDelay);
                }
            }
        }
        return 1;
    }
    return 0;
}
ACMD(do_bkoku)
{

    char arg1[256], arg2[256];
    two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
    if (!*arg1 || !*arg2)
        return;

    int gelen = 0;
    long skillindex = 0;

    str_to_number(gelen, arg1);
    str_to_number(skillindex, arg2);

    if (gelen < 0 || skillindex < 0)
        return;

    if (!ch)
        return;

    if (!ch->IsPC())
        return;

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

    if (ch->IsHack())
        return;

#ifdef ENABLE_OFFLINE_SHOP_SYSTEM
    if (ch->GetExchange() || ch->GetViewingShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen())
#else
    if (ch->GetExchange() || ch->GetMyShop() || ch->GetShopOwner() || ch->IsOpenSafebox() || ch->IsCubeOpen())
#endif
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("PLEASE_BEFORE_CLOSE_WINDOW_AND_USE_THIS_FUNCTION"));
        return;
    }

#ifdef ENABLE_ACCE_SYSTEM
    if (ch->isAcceOpened(true) || ch->isAcceOpened(false))
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("PLEASE_BEFORE_CLOSE_WINDOW_AND_USE_THIS_FUNCTION"));
        return;
    }
#endif

#ifdef ENABLE_AURA_SYSTEM
    if (ch->isAuraOpened(true) || ch->isAuraOpened(false))
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("PLEASE_BEFORE_CLOSE_WINDOW_AND_USE_THIS_FUNCTION"));
        return;
    }
#endif

#ifdef ENABLE_PLAYER_SECURITY_SYSTEM
    if (ch->IsActivateSecurity())
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("GUVENLIK_KILIDI_ACIKKEN_BUNU_YAPAMASSIN"));
        return;
    }
#endif

#ifdef ENABLE_CHANGELOOK_SYSTEM
    if (ch->isChangeLookOpened() == true)
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("PLEASE_BEFORE_CLOSE_WINDOW_AND_USE_THIS_FUNCTION"));
        return;
    }
#endif

#ifdef ENABLE_ITEM_COMBINATION_SYSTEM
    if (ch->IsCombOpen() == true)
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("PLEASE_BEFORE_CLOSE_WINDOW_AND_USE_THIS_FUNCTION"));
        return;
    }
#endif

    int skillgrup = ch->GetSkillGroup();
    if (skillgrup == 0)
    {
        ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BK_SYSTEM_SKILL_NOT_N"));
        return;
    }

    if (ch->CountSpecifyItem(50300) < 1)
        return;

    if (ch->GetMapIndex() == 246)
        return;

    if (gelen == 1)
    {
        int skilllevel = ch->GetSkillLevel(skillindex);

        if (skilllevel >= 30)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BK_SYSTEM_SKILL_MAXLEVEL"));
            return;
        }

        if (ch->GetQuestFlag("bk.yenisure") > get_global_time())
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BK_SYSTEM_TIME_OUT_ONE_SECOND"));
            return;
        }

        int dwVnum = ch->BKBul(skillindex);
        if (dwVnum == 999)
        {
            ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("BK_SYSTEM_NOT_SKILL"));
            return;
        }

        LPITEM item = ch->GetInventoryItem(dwVnum);

        if (!item)
            return;

        if (item->GetVnum() != 50300 || item->GetSocket(0) != skillindex)
            return;

        if (ch->CountSpecifyItem(71001) > 0)
        {
            if (!ch->IsAffectFlag(513))
            {
                ch->AddAffect(513, aApplyInfo[0].bPointType, 0, 0, 536870911, 0, false);
                ch->RemoveSpecifyItem(71001, 1);
            }
        }

        if (ch->CountSpecifyItem(71094) >= 1)
        {
            if (!ch->IsAffectFlag(512))
            {
                ch->AddAffect(512, aApplyInfo[0].bPointType, 0, 0, 536870911, 0, false);
                ch->RemoveSpecifyItem(71094, 1);
            }
        }

        if (item->GetVnum() == 50300)
        {
            if (ch->FindAffect(AFFECT_SKILL_NO_BOOK_DELAY) == false && ch->CountSpecifyItem(71001) < 1)
            {
                ch->SkillLearnWaitMoreTimeMessage(ch->GetSkillNextReadTime(skillindex) - get_global_time());
                return;
            }

            if (true == ch->LearnSkillByBook(skillindex))
            {
                if (item->GetVnum() == 50300 && item->GetSocket(0) == skillindex)
                {
                    item->SetCount(item->GetCount() - 1);
                    int iReadDelay;
                    iReadDelay = number(SKILLBOOK_DELAY_MIN, SKILLBOOK_DELAY_MAX);
                    ch->SetSkillNextReadTime(skillindex, get_global_time() + iReadDelay);
                }
            }
            else
            {
                if (item->GetVnum() == 50300 && item->GetSocket(0) == skillindex)
                {
                    item->SetCount(item->GetCount() - 1);
                    int iReadDelay;
                    iReadDelay = number(SKILLBOOK_DELAY_MIN, SKILLBOOK_DELAY_MAX);
                    ch->SetSkillNextReadTime(skillindex, get_global_time() + iReadDelay);
                }
            }
            ch->SetQuestFlag("bk.yenisure", get_global_time() + 1);
        }
    }
    else if (gelen == 0) ///hepsi
    {
        if (bktimer)
            event_cancel(&bktimer);

        TMainEventInfo2* info = AllocEventInfo<TMainEventInfo2>();
        info->kim = ch;
        info->skillindexx = skillindex;
        bktimer = event_create(bk_event, info, PASSES_PER_SEC(1));
    }

    return;
}
#endif


Hata Aldığım Bölüm::
Genişlet Daralt Kopyala
        if (item->GetVnum() == 50300)
        {
            if (ch->FindAffect(AFFECT_SKILL_NO_BOOK_DELAY) == false && ch->CountSpecifyItem(71001) < 1)
            {
                ch->SkillLearnWaitMoreTimeMessage(ch->GetSkillNextReadTime(skillindex) - get_global_time());
                return;
            }

Gelen Seysr:

Adsız.png
 
Son düzenleme:
if (ch->!FindAffect(AFFECT_SKILL_NO_BOOK_DELAY)&& ch->CountSpecifyItem(71001) < 1)
 
if (ch->!FindAffect(AFFECT_SKILL_NO_BOOK_DELAY)&& ch->CountSpecifyItem(71001) < 1)

Mesajın için teşekkür ederim.

Kodu deneyince hata aldım @Trashy İle dc den konuşurken sordum

Kod::
Genişlet Daralt Kopyala
if (!ch->FindAffect(AFFECT_SKILL_NO_BOOK_DELAY) && ch->CountSpecifyItem(71001) < 1)

Şu Şekilde Değiştirdik Oldu.
<3
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst