Topic: Подделка версии игры
Здравствуйте.
Можно ли подделывать у игр версию варика так, чтобы люди с разных патчах на сервере видели одни и те же игры?
В какую сторону копать?
PvPGN Community Forums |
forums.pvpgn.pro → [RU] Research & Development → Подделка версии игры
Здравствуйте.
Можно ли подделывать у игр версию варика так, чтобы люди с разных патчах на сервере видели одни и те же игры?
В какую сторону копать?
Разве по-умолчанию это не так работает?
И для чего это нужно, если версии несовместимы между собой, и войти в такую игру все-равно не получится?
Здравствуйте.
Можно ли подделывать у игр версию варика так, чтобы люди с разных патчах на сервере видели одни и те же игры?
В какую сторону копать?
Вы имеете ввиду сделать так чтобы только с вашего клиента (ну точнее лаунчера или что там заходили) а сторонние боты и т.д не могли так имели ввиду?
Можно копать надо в updatecheck.conf
Разве по-умолчанию это не так работает?
И для чего это нужно, если версии несовместимы между собой, и войти в такую игру все-равно не получится?
Боты ведь без проблем могут хостить сразу на нескольких патчей, допустим на айкапе с 1.26, на рубатле с 1.27 и на евробатле с 1.28. Не совместим полностью 1.29, но на нем только оф сервера да и его поддержки у pvpgn отсутствует.
Проблема в том, что даже если на сервер могут зайти игроки с разных патчей, варик при листинге игр фильтрует их по версии клиента. Например: есть 2 игрока на 1.26 и 1 на 1.27, один из игроков с 1.26 создал игру и второй с этим же патчем видит его игру и может зайти, но игрок с 1.27 просто не видит эту игру, и даже по названию не войти, её для него нет.
Поэтому интересует вопрос, можно ли для каждого игрока менять версию варика в инфе о игре, чтобы если игрок с 1.26 захостил, то игрок с 1.27 тоже мог бы зайти, а для этого нужно чтобы сервер сообщил не верную информацию и версии игры.
Понятно что никто не даст рабочий вариант, но очень надеюсь что скажите где копаться, потому что я пока слабо представляю где в каком файле искать.
Вы имеете ввиду сделать так чтобы только с вашего клиента (ну точнее лаунчера или что там заходили) а сторонние боты и т.д не могли так имели ввиду?
не, я считаю что для этого лаунчер и не нужен, а все действия можно произвести только в исходниках pvpgn, и наоборот я хочу привлечь как можно больше людей, но т.к. народ ленивый, а в связи с тем что сервера имеют разные патчи, еще и раздроблен, хотелось бы объединить.
Можно сделать через Lua, но для этого нужно добавить замену version игр в lua_handle_game_list:
if (columns[j] == "id")
game->id = atoi(data[i+j-1].c_str());
else if (columns[j] == "name")
game->name = xstrdup(data[i + j - 1].c_str());
else if (columns[j] == "version")
game->version = verstr_to_vernum(data[i + j - 1].c_str());
И заменить содержимое функции handle_game_list в lua/handle_game.lua, по аналогии с существующим там примером чтобы заменять версию на определенную:
function handle_game_list(account)
local glist = server_get_games()
for i,game,version in pairs(glist) do
glist[i].version = "1.2.26"
end
return {"id", "name", "version"}, glist
end
Видимо, если клиент игры Warcraft 3 видит, что игра создана другой версии, то не отображает её в списке. Потому что в коде pvpgn нет таких условий.
Код не тестировал, без корректировки может не заработать.
о, почти то что нужно, только подменяемая версия должна быть динамическая, для каждого игрока своя, в зависимости от его версии варика.
Спасибо за наводку и даже набросок кода, дальше уже поди сам разберусь.
о, почти то что нужно, только подменяемая версия должна быть динамическая, для каждого игрока своя, в зависимости от его версии варика.
Спасибо за наводку и даже набросок кода, дальше уже поди сам разберусь.
Вечером реализую эту функцию но только при входе сервер будет записывать в базу данных версию клиента и при входе проверять
Если вам нужно то что вы ищете то выложу вечером но не точно.
в общем не смог придумать ничего умнее, кроме как сломать проверку версии, теперь каждый клиент заходит с версией 0 и все игры видно.
conn_set_gameversion(c, bn_int_get(packet->u.client_authreq1.gameversion)
заменил на
conn_set_gameversion(c, 0)
проверка версий конечно сломалась, теперь входить можно только если allow_unknown_version = true но желаемый эффект достигнут.
Не знаю чем это может грозить, народа все равно не будет, уже не то время для поднятия сервера, просто было интересно.
forums.pvpgn.pro → [RU] Research & Development → Подделка версии игры