Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
ВопросКак получить account id игроков во время катки
вторая часть. читаем http://praydog.com/index.php/2015/06/24/an-analysis-of-the-source-2-engine-part-1-the-schema-system/ для IDA качаем плагины class informer и function string associate заходим в IDA берем...
yougame.biz
если ничего особо не изменилось(доту не обновлял давно) то в PlayerResourcePlayerData_t поищи, там было(и щас наверно тоже есть) поле m_iPlayerSteamID
стимайди32 это (m_iPlayerSteamID & 0xFFFFFFFF)
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Какой-то ты странненький. Инфа же на поверхности лежит. Сдампи C_DOTAPlayerController и посмотри.
C++:
class CDOTAPlayerController : public VClass {
public:
GETTER(uint64_t, GetSteamID, Netvars::Offsets.m_steamID);
};
Чтобы его (их) найти, можно просто по энтити листу пробежаться после загрузки карты (ну или хукнуть OnAddEntity и себе куда-то в map сохранять плееров).
Внимание, экстремальный говнокод (Либералист, не стукай). Добавляешь его в CBaseEntity, ну и в хуке OnAddEntity чекаешь.
C++:
bool IsPlayer() {
const char* typeName = SchemaDynamicBinding()->bindingName;
if (!typeName)
return false;
if (!strcmp(typeName, "C_DOTAPlayerController"))
return true;
return false;
}
Какой-то ты странненький. Инфа же на поверхности лежит. Сдампи C_DOTAPlayerController и посмотри.
C++:
class CDOTAPlayerController : public VClass {
public:
GETTER(uint64_t, GetSteamID, Netvars::Offsets.m_steamID);
};
Чтобы его (их) найти, можно просто по энтити листу пробежаться после загрузки карты (ну или хукнуть OnAddEntity и себе куда-то в map сохранять плееров).
Внимание, экстремальный говнокод (Либералист, не стукай). Добавляешь его в CBaseEntity, ну и в хуке OnAddEntity чекаешь.
C++:
bool IsPlayer() {
const char* typeName = SchemaDynamicBinding()->bindingName;
if (!typeName)
return false;
if (!strcmp(typeName, "C_DOTAPlayerController"))
return true;
return false;
}
я предпочитаю IsInstanceOfClass, который чекает сам класс, и всех его родителей и проверяет есть ли там нужный
(разумеется ниже == это std::string_view::operator== а не pointer::operator==, мало ли у кого GetName возвращает конст чар*)
я предпочитаю IsInstanceOfClass, который чекает сам класс, и всех его родителей и проверяет есть ли там нужный
(разумеется ниже == это std::string_view::operator== а не pointer::operator==, мало ли у кого GetName возвращает конст чар*)