Гость Merano Опубликовано 28 февраля, 2013 Поделиться Опубликовано 28 февраля, 2013 Всем привет.Решил добить Warcraft III: Frozen Throne... Все в принципе нахожу, если бы не одно НО: на каждой карте все ID игроков разные.Вопрос: как можно определить постоянный ID игрока (человека), который работал бы на всех картах? Ссылка на комментарий Поделиться на другие сайты Поделиться
Bromvol Опубликовано 28 февраля, 2013 Поделиться Опубликовано 28 февраля, 2013 У тебя есть несколько вариантов:1) найти другой ID;2) найти ID для каждого уровня;3) использовать поинтеры.Я ломал для одиночки Conter Strike на медали и искал для каждого уровня свой ID и сделал просто перебор по уровню. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 28 февраля, 2013 Поделиться Опубликовано 28 февраля, 2013 Искать ID для каждой карты - не вариант, карт много, и еще больше карт можно скачать и добавить... Что касается указателей, то в WC3 TFT их либо слишком много, либо я как-то неправильно ищу (хотя инструкции, которые вылезают при проверке адресов - правильные, и работают в скриптах исправно)... да и подозреваю, что при использовании указателей будет та же песня, с разными смещениями на разных картах.Поиск другого ID - дает тот же результат: в одной карте работает, в других - нет (точнее - бывает срабатывает, но на случайном игроке).И я делаю такой вывод: ID каким-то образом вычисляются, опираясь на количество игроков (а может на что-то еще), т.к. в разных картах - разные ID, но в некоторых случаях ID совпадают, и чаще всего тогда, когда карта рассчитана на 10 игроков, и играют в нее 10 игроков (игрок-человек и 9 игроков-компьютеров).Мистика... Может кто ломал уже эту игру? Что скажете? Я использую версию 1.26.0.6401 Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 Насколько я помню, это цифры от 1 до 16, в зависимости от слота. Т.е. если карта на 4 игрока, то самый верхний слот - 1, следующий - 2 и т.д. Но это я ломал графику (урок про создание мапхака). В принципе, значение может быть и зашифровано, как и почти всё в этой игре. Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Merano Опубликовано 1 марта, 2013 Поделиться Опубликовано 1 марта, 2013 keng, увы, не всегда так ID рассчитываются Например, в карте "Места боевой славы" (карта от Blizzard) - там смещения начинаются с 1 (до куда - не знаю, не проверял), в DotA 6.74c (AI) - ID "в разнобой". Почему в разнобой - потому как я стою на 6м слоте (1 слот команды The Scourge), и у меня ID = 42, у 1 слота за The Sentinel - 402. Фишка в DotA 6.74c в том, что каждый ID игрока/слота увеличен на 20, начиная с ID 1 слота 2 команды ИЛИ ID игрока-человека. Видимо это объясняется тем, что jass скрипт в этой карте выставляет привилегии, т.е. если в 1 слоте 1 команды играет не человек - скрипт проверяет все слоты на наличие игрока, а когда находит - выставляет себе таблицу таким образом, что игрок становится главным, т.е. - может вводить игровые команды, которые в дальнейшем будут приняты игрой, а остальным игрокам-компьютерам присваиваются ID: игрок 2 = ID игрока(человека)+20; игрок 3 = ID игрока 2+20; и т.д.Видимо так, ибо в обычных картах, где нет проверки и сортировки таблицы "привилегий" - обычно ID соответствуют номеру слота или около того. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения