Neler yeni
Metin2 Support

Metin2 Dünyasına Hoş Geldiniz! Yeni bir maceraya adım atın ve topluluğumuza katılın. Sorularınızı sormak, deneyimlerinizi paylaşmak ve diğer oyuncularla iletişim kurmak için hemen kaydolun. Kayıt olun, etkileşimde bulunun ve Metin2 dünyasındaki serüveninizi daha da özel hale getirin. Birlikte oynamak için sabırsızlanıyoruz!

BLACKJACK

keremx

New member
Katılım
4 May 2024
Mesajlar
7
Tepkime puanı
0
Puanları
1
cmd_general.cpp:3706:2: error: stray '#' in program
+#ifdef ENABLE_BLACKJACK_GAME
^
cmd_general.cpp:3914:2: error: #endif without #if
#endif
^
cmd_general.cpp:3706:1: error: expected unqualified-id before '+' token
+#ifdef ENABLE_BLACKJACK_GAME

ARKADAŞLAR BÖYLE Bİ HATA ALIYORUM GAMESRC DE
 
+#ifdef ENABLE_BLACKJACK_GAME Bunu

#ifdef ENABLE_BLACKJACK_GAME Böyle degistir
 
+#ifdef ENABLE_BLACKJACK_GAME Bunu

#ifdef ENABLE_BLACKJACK_GAME Böyle degistir
cmd_general.cpp: In function 'void BlackJackWinner(LPCHARACTER, bool)':
cmd_general.cpp:3702:6: error: 'class CHARACTER' has no member named 'SetProtectTime'
ch->SetProtectTime("blackjack_key", 0);
^
cmd_general.cpp:3704:41: error: 'class CHARACTER' has no member named 'GetProtectTime'
ch->AutoGiveItem(m_RewardItemList[ch->GetProtectTime("blackjack_reward")][1], m_RewardItemList[ch->GetProtectTime("blackjack_reward")][2], true);
^
cmd_general.cpp:3704:102: error: 'class CHARACTER' has no member named 'GetProtectTime'
ch->AutoGiveItem(m_RewardItemList[ch->GetProtectTime("blackjack_reward")][1], m_RewardItemList[ch->GetProtectTime("blackjack_reward")][2], true);
^
cmd_general.cpp:3705:6: error: 'class CHARACTER' has no member named 'SetProtectTime'
ch->SetProtectTime("blackjack_reward", 0);
^
cmd_general.cpp: In function 'void do_blackjack(LPCHARACTER, const char*, int, int)':
cmd_general.cpp:3712:34: error: 'split_argument' was not declared in this scope
split_argument(argument, vecArgs);
^
cmd_general.cpp:3716:11: error: 'class CHARACTER' has no member named 'GetProtectTime'
if (ch->GetProtectTime("blackjack_key") != 0)
^
cmd_general.cpp:3732:7: error: 'class CHARACTER' has no member named 'SetProtectTime'
ch->SetProtectTime("blackjack_key", createGameKey);
^
cmd_general.cpp:3733:7: error: 'class CHARACTER' has no member named 'SetProtectTime'
ch->SetProtectTime("blackjack_reward", rewardType);
^
cmd_general.cpp:3763:11: error: 'class CHARACTER' has no member named 'GetProtectTime'
if (ch->GetProtectTime("blackjack_key") != gameKey)


bu hatayı verdi bu kez
 
49 gcc sürümüm

Böyle dene bide olucakmı

C++:
#if __cplusplus < 201103L
const DWORD m_RewardItemList[4][3] = {
#else
constexpr DWORD m_RewardItemList[4][3] = {
#endif
    {100, 80015, 1},
    {200, 80016, 2},
    {300, 80017, 3},
    {400, 80018, 4},
};
BYTE GetCardIndexToValue(const std::map<BYTE, std::vector<BYTE>>& cardList) {
    BYTE value = 0;
#if __cplusplus < 201103L
    for (std::map<BYTE, std::vector<BYTE>>::const_iterator it = cardList.begin(); it != cardList.end(); ++it)
#else
    for (auto it = cardList.begin(); it != cardList.end(); ++it)
#endif
    {
        std::vector<std::pair<BYTE, BYTE>> m_AceCards;
#if __cplusplus < 201103L
        for (std::vector<BYTE>::const_iterator itEx = it->second.begin(); itEx != it->second.end(); ++itEx)
        {
            const BYTE& cardIndex = *itEx;
#else
        for (const auto& cardIndex : it->second)
        {
#endif
            if (cardIndex >= 11 && cardIndex <= 13) {
                value += 10;
                continue;
            } else if (cardIndex == 1) {
                m_AceCards.emplace_back(it->first, cardIndex);
                continue;
            }
            value += cardIndex;
        }
        for (BYTE j = 0; j < m_AceCards.size(); ++j)
            value +=  j == 0 ? 11 : 1;
    }
    return value;
}
void FindNewCard(LPCHARACTER ch, bool isForBot, BYTE& cartType, BYTE& cartIndex) {
    const BYTE playerLucky = 25;
    while (true) {
        const BYTE cardType = number(0, 3);
        const BYTE cardIndex = number(1, 13);

        if (ch->IsHasBJCard(true, cardType, cardIndex) || ch->IsHasBJCard(false, cardType, cardIndex))
            continue;

        if (isForBot) {
            std::map<BYTE, std::vector<BYTE>> tmpBotCards(ch->GetBJBotCards());
#if __cplusplus < 201103L
            tempBotCards.insert(std::make_pair(cardType, cardIndex));
#else
            tmpBotCards.emplace(cardType, cardIndex);
#endif
            const BYTE newBotCardsValue = GetCardIndexToValue(tmpBotCards);
            if (playerLucky > number(0, 100)) {
                if (newBotCardsValue <= 21)
                    continue;
            } else {
                if (newBotCardsValue > 21)
                    continue;
            }
        } else {
            std::map<BYTE, std::vector<BYTE>> tmpPlayerCards(ch->GetBJMyCards());
#if __cplusplus < 201103L
            tempBotCards.insert(std::make_pair(cardType, cardIndex));
#else
            tmpPlayerCards.emplace(cardType, cardIndex);
#endif
            const BYTE newPlayerCardsValue = GetCardIndexToValue(tmpPlayerCards);
            if (playerLucky > number(0, 100)) {
                if (newPlayerCardsValue > 21)
                    continue;
            } else {
                if (newPlayerCardsValue <= 21)
                    continue;
            }
        }
        cartType = cardType;
        cartIndex = cardIndex;
        return;
    }
    cartType = 0;
    cartIndex = 1;
}
void BlackJackWinner(LPCHARACTER ch, bool isBotWinner) {
    ch->ChatPacket(CHAT_TYPE_COMMAND, "BJShowGameStatus %d", isBotWinner);
    ch->ChatPacket(CHAT_TYPE_COMMAND, "BJSetGameMode -1");
    ch->SetProtectTime("blackjack_key", 0);
    if (!isBotWinner)
        ch->AutoGiveItem(m_RewardItemList[ch->GetProtectTime("blackjack_reward")][1], m_RewardItemList[ch->GetProtectTime("blackjack_reward")][2], true);
    ch->SetProtectTime("blackjack_reward", 0);
    ch->GetBJBotCards().clear();
    ch->GetBJMyCards().clear();
}
ACMD(do_blackjack) {
    std::vector<std::string> vecArgs;
    split_argument(argument, vecArgs);
    if (vecArgs.size() < 2) { return; }
    else if (vecArgs[1] == "start") {
        if (ch->GetProtectTime("blackjack_key") != 0)
            return;
        if (vecArgs.size() < 3) { return; }
        BYTE rewardType;
        if (!str_to_number(rewardType, vecArgs[2].c_str()))
            return;
        else if (rewardType >= _countof(m_RewardItemList))
            return;

        if (ch->CountSpecifyItem(25185) < m_RewardItemList[rewardType][0]) {
            ch->ChatPacket(CHAT_TYPE_INFO, "|cff00ff00Yeterli Chip Yok !");
            return;
        }
        ch->RemoveSpecifyItem(25185, m_RewardItemList[rewardType][0]);

        const int createGameKey = number(1, 10000000);
        ch->SetProtectTime("blackjack_key", createGameKey);
        ch->SetProtectTime("blackjack_reward", rewardType);
        ch->ChatPacket(CHAT_TYPE_COMMAND, "BJSetGameMode %d", createGameKey);

        ch->GetBJBotCards().clear();
        ch->GetBJMyCards().clear();

        BYTE cardType = 0, cardIndex = 0;

        //Bot-Card
        FindNewCard(ch, true, cardType, cardIndex);
        ch->AddBJCard(true, cardType, cardIndex);
        ch->ChatPacket(CHAT_TYPE_COMMAND, "BJAddNewCard %d %d %d -1", true, cardType, cardIndex);

        //Player-Cards
        FindNewCard(ch, false, cardType, cardIndex);
        ch->AddBJCard(false, cardType, cardIndex);
        ch->ChatPacket(CHAT_TYPE_COMMAND, "BJAddNewCard %d %d %d -1", false, cardType, cardIndex);

        FindNewCard(ch, false, cardType, cardIndex);
        ch->AddBJCard(false, cardType, cardIndex);
        ch->ChatPacket(CHAT_TYPE_COMMAND, "BJAddNewCard %d %d %d 97", false, cardType, cardIndex);
    } else if (vecArgs[1] == "check" || vecArgs[1] == "stand" || vecArgs[1] == "newcard") {
        if (vecArgs.size() < 3) { return; }
        int gameKey;
        if (!str_to_number(gameKey, vecArgs[2].c_str()))
            return;
        if (!gameKey)
            return;
        if (ch->GetProtectTime("blackjack_key") != gameKey)
            return;
        if (vecArgs[1] == "check") {
            const BYTE playerValue = GetCardIndexToValue(ch->GetBJMyCards());
            if (playerValue == 21)//playerWin
                BlackJackWinner(ch, false);
            else if (playerValue > 21)
                BlackJackWinner(ch, true);
        } else if (vecArgs[1] == "stand") {
            const BYTE playerValue = GetCardIndexToValue(ch->GetBJMyCards());
            const BYTE botValue = GetCardIndexToValue(ch->GetBJBotCards());
            if (botValue > playerValue && botValue <= 21)
                BlackJackWinner(ch, true);
            else if (ch->GetBJBotCards().size() == 4 || botValue > 21)
                BlackJackWinner(ch, false);
            else {
                BYTE cardType = 0, cardIndex = 0;
                FindNewCard(ch, true, cardType, cardIndex);
                ch->AddBJCard(true, cardType, cardIndex);
                ch->ChatPacket(CHAT_TYPE_COMMAND, "BJAddNewCard %d %d %d 98", true, cardType, cardIndex);
            }
        } else if (vecArgs[1] == "newcard") {
            if (ch->GetBJMyCards().size() == 4)
                return;
            BYTE cardType = 0, cardIndex = 0;
            FindNewCard(ch, false, cardType, cardIndex);
            ch->AddBJCard(false, cardType, cardIndex);
            ch->ChatPacket(CHAT_TYPE_COMMAND, "BJAddNewCard %d %d %d 97", false, cardType, cardIndex);
        }
    }
}
 

Konuyu görüntüleyenler

  • Üst