Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

CharList - получить информацию об персонаже на олимпе

Рег
17 Мар 2016
Сообщения
51
Реакции
0
Появилась следующая задача:

Пишу простенький скрипт для олимпа (баф, автоюз сосок и инфа о сопернике), но появилась проблема с определением даже имени соперника.

Подсобите кто чем может, в документации нашел один интересный класс CharList и метод GetCharList. Как можно обратиться к ним за именем персонажа и ID профы (сомневаюсь, что бот знаком с названиями проф)?
 
function ClassName(id: cardinal): string;
begin
if id = 89 then Result:= 'Dreadnought';
if id = 88 then Result:= 'Duelist';
if id = 90 then Result:= 'Phoenix Knight';
if id = 91 then Result:= 'Hell Knight';
if id = 93 then Result:= 'Adventurer';
if id = 92 then Result:= 'Sagittarius';
if id = 94 then Result:= 'Archmage';
if id = 95 then Result:= 'Soultaker';
if id = 96 then Result:= 'Arcana Lord';
if id = 97 then Result:= 'Cardinal';
if id = 98 then Result:= 'Hierophant';
if id = 99 then Result:= 'Evas Templar';
if id = 100 then Result:= 'Sword Muse';
if id = 101 then Result:= 'Wind Rider';
if id = 102 then Result:= 'Moonlight Sentinel';
if id = 103 then Result:= 'Mystic Muse';
if id = 104 then Result:= 'Elemental Master';
if id = 105 then Result:= 'Evas Saint';
if id = 106 then Result:= 'Shillien Templar';
if id = 107 then Result:= 'Spectral Dancer';
if id = 108 then Result:= 'Ghost Hunter';
if id = 109 then Result:= 'Ghost Sentinel';
if id = 110 then Result:= 'Storm Screamer';
if id = 111 then Result:= 'Spectral Master';
if id = 112 then Result:= 'Shillien Saint';
if id = 113 then Result:= 'Titan';
if id = 114 then Result:= 'Grand Khavatari';
if id = 115 then Result:= 'Dominator';
if id = 116 then Result:= 'Doomcryer';
if id = 117 then Result:= 'Fortune Seeker';
if id = 118 then Result:= 'Maestro';
if id = 131 then Result:= 'Doombringer';
if id = 132 then Result:= 'Soul Hound';
if id = 133 then Result:= 'Soul Hound';
if id = 134 then Result:= 'Trickster';
end;

по остальному - соперник в чарлисте чаще всего (иногда бывают инвалид - фантомы) с нулевым индексом, если нет - то можно перебрать и выбрать по критерию range<3000
 
Для того, чтобы не плодить if-then-конструкции, придумали оператор case. Соответственно, код будет выглядеть так:

case id of
88: Result:= 'Duelist';
89: Result:= 'Dreadnought';
90: Result:= 'Phoenix Knight';
91: Result:= 'Hell Knight';
93: Result:= 'Adventurer';
...
end;

Работать должно бы быстрее. И компактнее.
 
Назад
Сверху