Вопрос Проверка PVP-PVE eVictoryCondition

Начинающий
Статус
Оффлайн
Регистрация
19 Окт 2017
Сообщения
119
Реакции[?]
2
Поинты[?]
1K
C++:
enum class eVictoryCondition : int
{
    eVC_Lobby = 0,
    eVC_Deathmatch,
    eVC_Occupation,
    eVC_PVE,
    eVC_Undermining,
    eVC_Storm,
    eVC_Chopper,
    eVC_Destruction,
    eVC_Domination,
    eVC_Survival
};
Здравствуйте подскажите как реализовать проверку пвп-пве
На пве проверку сделал eVictoryCondition::eVC_PVE
А как реализовать проверку пвп что бы функции работали только там аналогично пве !
 
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2019
Сообщения
348
Реакции[?]
48
Поинты[?]
15K
C++:
struct SGameRoomInfo {

    enum EGameRoomType {

        eGRT_None = 0x0,
        eGRT_PvE_Private = 0x1,
        eGRT_PvP_Public = 0x2,
        eGRT_PvP_ClanWar = 0x4,
        eGRT_PvP_Autostart = 0x8,
        eGRT_PvE_Autostart = 0x10,
        eGRT_PvP_Rating = 0x20,
        eGRT_PvP = 0x6E,
        eGRT_PvE = 0x91,
    };

    bool IsPvE()
    {
        return (eRoomType & EGameRoomType::eGRT_PvE) != 0;
    }
    bool IsPvP()
    {
        return (eRoomType & EGameRoomType::eGRT_PvP) != 0;
    }

    char pad_0x0000[0x18]; //0x0000
    int eRoomType; //0x0018
};

class CGameRoom {
public:

    char pad_0x0000[0xF0];
    SGameRoomInfo m_openedRoom;
};


class IGame {
public:

    char pad_0x0000[0x288];
    CGameRoom* m_pGameRoom; // 48 8D 8F ? ? ? ? E8 ? ? ? ? 33 F6 C7 87 ? ? ? ? ? ? ? ?
};
 
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2019
Сообщения
348
Реакции[?]
48
Поинты[?]
15K
C++:
    auto* pGlobal = SSystemGlobalEnvironment::gEnv();                  if (!pGlobal) return;
    auto* pIGame = pGlobal->pGame();                                   if (!pIGame) return;
    auto* pGameRoom = pIGame->m_pGameRoom();                           if (!pGameRoom) return;


    auto openedRoom = pGameRoom->m_openedRoom;

    if (openedRoom.IsPvE()) {

        //code
    }
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
152
Реакции[?]
26
Поинты[?]
26K
Проверь через Idteam или класс персонажа.
Если через idteam, моя тима ==1, тима врага==0 - это пве

Вариантов проверить очень много.
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
19 Окт 2017
Сообщения
119
Реакции[?]
2
Поинты[?]
1K
C++:
    auto* pGlobal = SSystemGlobalEnvironment::gEnv();                  if (!pGlobal) return;
    auto* pIGame = pGlobal->pGame();                                   if (!pIGame) return;
    auto* pGameRoom = pIGame->m_pGameRoom();                           if (!pGameRoom) return;


    auto openedRoom = pGameRoom->m_openedRoom;

    if (openedRoom.IsPvE()) {

        //code
    }
Спасибо тебе большое, тема закрыта !
 
Начинающий
Статус
Оффлайн
Регистрация
27 Фев 2020
Сообщения
414
Реакции[?]
19
Поинты[?]
14K
Проверь через Idteam или класс персонажа.
Если через idteam, моя тима ==1, тима врага==0 - это пве

Вариантов проверить очень много.
Вроде не совсем рабочий способ решения проблемы. А если человек на мясорубке, где нету тимейтов? Конечно, можно было бы еще проверять на режим, т.е если присутствуем ptb, tdm и прочие режимы, которые встречаются на pvp, то ПВП. Но я думаю более легкое решение, которое предоставили в теме
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
152
Реакции[?]
26
Поинты[?]
26K
Вроде не совсем рабочий способ решения проблемы. А если человек на мясорубке, где нету тимейтов? Конечно, можно было бы еще проверять на режим, т.е если присутствуем ptb, tdm и прочие режимы, которые встречаются на pvp, то ПВП. Но я думаю более легкое решение, которое предоставили в теме
Мысорубка - моя тима ==0, тима врага==0
Другое ПВП - моя тима ==1, тима врага==2
ПВЕ - моя тима ==1, тима врага==0
 
Начинающий
Статус
Оффлайн
Регистрация
27 Фев 2020
Сообщения
414
Реакции[?]
19
Поинты[?]
14K
Мысорубка - моя тима ==0, тима врага==0
Другое ПВП - моя тима ==1, тима врага==2
ПВЕ - моя тима ==1, тима врага==0
Так если человек зайдет на мясорубку у него будет тима ==0, на пве так же будет. Так, получается тут будет сложно срабатывать на мясорубке
 
Пользователь
Статус
Оффлайн
Регистрация
31 Дек 2018
Сообщения
477
Реакции[?]
140
Поинты[?]
3K
Так если человек зайдет на мясорубку у него будет тима ==0, на пве так же будет. Так, получается тут будет сложно срабатывать на мясорубке
У тебя стояк на ап старых тем?
 
Начинающий
Статус
Оффлайн
Регистрация
13 Май 2023
Сообщения
152
Реакции[?]
26
Поинты[?]
26K
Так если человек зайдет на мясорубку у него будет тима ==0, на пве так же будет. Так, получается тут будет сложно срабатывать на мясорубке
Не прикалывайся. Перечитай еще раз, что я написал.
 
Сверху Снизу