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

Парсинг меняющегося байпасса

SARCAZM

Это что за покемон?
Команда форума
Рег
5 Июн 2015
Сообщения
1,446
Реакции
1
Trovo
SARCAZM
Поскольку я теперь не играю на серверах где пашет крякнутый адреналин, буду снова выкладывать свои скрипты и наработки.​
Начнем с парсинга меняющихся байпассов.
Писал для себя, возможны костыли и кровоизлияние из глаз у "труЪ кодеров"
(Спешл фо глеб с форума топхоуп)​
C57D5e6E.jpg
Чтобы найти байпасс в открытом диалоге (который изменится если открыть диалог заново), я написал метод:


var ResultBypass,tmp_bypass:string;
var i_bypass,k:integer;
procedure FindBypass();
begin
ResultBypass:='';
tmp_bypass := Engine.DlgText;
i_bypass:=pos('bypass -h',tmp_bypass);
i_bypass:=i_bypass + 10;
while not (tmp_bypass[i_bypass] = ' ')
and not (tmp_bypass[i_bypass] = '"') do
begin
ResultBypass:= ResultBypass + tmp_bypass[i_bypass];
i_bypass:= i_bypass+1;
end;
Engine.BypassToServer(ResultBypass, True);
print (ResultBypass);

end;
Может, будет что-то непонятно, т.к. я использовал нестандартные имена счетчиков.
 
Можно было бы использовать:

Copy(str: string, start, count: integer);
Выглядело бы это как-то так:

var
bypass: string;
p1, p2: pointer;
action: TL2Action;
begin
engine.MoveToTarget;
engine.DlgOpen;
bypass := engine.DlgText;
bypass := Copy(bypass, Pos('bypass -h', bypass) + 10, MaxInt);
bypass := Copy(bypass, 1, Pos('"', bypass) - 1);
engine.BypassToServer(bypass);
end.
PS: Не понял зачем останавливать парсинг при встрече пробела.
 
x-user написал(а):
Не понял зачем останавливать парсинг при встрече пробела.
bypass := Copy(bypass, Pos('bypass -h', bypass) + 10, MaxInt);
длина байпассов также менялась. вроде встречались байпассы по 10 и 12 символов. Уже не помню, да и недавно этим.
 
SARCAZM написал(а):
bypass := Copy(bypass, Pos('bypass -h', bypass) + 10, MaxInt);
длина байпассов также менялась. вроде встречались байпассы по 10 и 12 символов. Уже не помню, да и недавно этим.
Обычно длина байпаса меняется из-за смены objectId (он бывает разной длины) у нпц и предложенный мной вариант решает эту проблему.
Код:
<button value="Button1" action="bypass -h npc_%objectId% do_something">
 
Да вообще как можн описать 2 раза подряд

var
это тоже самое что 2 раза Begin писать и отступы ужасные)
Все эе можно намного проще делать, не понимаю Вас
По поводу второго примера - в чем проблема зациклить? и офформить как функцию?
 
<html><body><a action="bypass -h 0-471959564">[Лучшие rнгредиенты – ч. 2]</a><br><a action="bypass -h 0-1928765662">[Доrтавка ликера]</a><br><a action="bypass -h 0670878932">[Лучgее блюдо]</a><br><a action="bypass -h 0-1433588245">[Лучшие ингредиенdы – ч. 1]</a><br><a action="bypass -h 0350673825">[nоставка яиц]</a><br></body></html>
помогите оформить этот байпас , примером плз
 
Назад
Сверху