------------------------------------------------------------------------------------
Code: Select all
function BPCount : Word;
function BMCount : Word;
function GACount : Word;
function GSCount : Word;
function MRCount : Word;
function NSCount : Word;
function SACount : Word;
function SSCount : Word;
---------
Code: Select all
function FloatToStrF(Value: Extended; Format: TFloatFormat; Precision, Digits: Integer): string;
----------------
в результате работы функций WaitJournalLine, InJournal, и им подобных функций при удачном нахождении заполняются поля типа LineID, LineType, LineTime и прочие.
к ним добавил FoundedParamID.
например в поиск дается строка типа 'create|make|destroy|already'
обнаружена строка со словом destroy.
тогда в FoundedParamID будет число 2 (счет от нуля).
нашлось бы create - было бы ноль.
----------WladL wrote:нужно для случаев когда на вход подается конструкция типа 'success|fizzle|ccc|ddd' и хочется знать что именно поймалось.
добавил обработчик для новомодной консольного ввода текста (зачем было добавлять новый пакет, когда есть старый почти такой же? незнаю).
обзывается Код:
procedure ConsoleEntryUnicodeReply(Text : String);
это уже ловушка полноценная - можно ставить как до прихода запроса, так и после.
заодно исправил ConsoleEntryReply - теперь это тоже полноценная ловушка.
----------
готово.WladL wrote:Есть ли возможность из скрипта повесить чекбокс "Pause scripts on disconnect" ? Если нет то неплохо было бы таковую иметь, а еще лучше перевести остановку скриптов во встроенную "Фичу" с возможностью исполнять их при дисконнекте типа RunScriptsOnDiconnect(true);
Code: Select all
procedure SetPauseScriptOnDisconnectStatus(Value : Boolean);
function GetPauseScriptOnDisconnectStatus : Boolean;
---------
драг-дроп откатился на времена RC3 (т.е. без проверок, как есть)
что ж поделать, если подтверждение перемещения не предусморено протоколом
---------
добавил фильтр пакетов, достаточно мощный.
при стандартном фильтре
лог уменьшается втроеsDC, D6, сBF 00 09 00 10, 73, 54
после меня фильтр полностью переделан CFA, теперь включенный фильтр совершенно не сказывается на скорости работы
---------
1) добавлен асевый модуль.
2) переделаны и оптимизированы все мулочиталки (by CFA)
3) переделана кардинально карта (by CFA)
4) переделано ведение логов, больше не будет тормозов и ошибок (by CFA)
5) перепахан почти весь код в поисках и устранении багов (by CFA)
6) много переделок в ходилке и новый поиск пути (by Grundick)
7 ) поигрался со стилями, теперь на XP красивее
-------------
переделал конфиги, теперь есть и автоподключение и автозапуск скриптов
журнал теперь цветной, с отлючением цветности в настройках. писать кстати теперь тоже можно в цвете (выбирается). фон чата выбирается кнопкой в той же вкладке, рядом с полем журнала.
------------
впрочем, немного изменил декларацию.
теперь CancelTrade не процедура, а функция, которая возвращает True, если запрос на закрытие трейд-окна ушел, и False, если:
1) трейдов нет вообще
2) TradeNum => GetTradeCount.
Code: Select all
function CancelTrade(TradeNum : Byte) : Boolean;
Code: Select all
procedure AddGumpIgnoreBySerial(Serial : Cardinal);
procedure AddGumpIgnoreByID(ID : Cardinal);
procedure ClearGumpsIgnore;
----------
Zeppelin wrote:Возможно ли сделать открывание свитков из пэйпердолов чаров/нпс?
Code: Select all
procedure UseSelfPaperdollScroll;
procedure UseOtherPaperdollScroll(ID : Cardinal);
--------
кто работал с апи знает, кто не работал - вот типы:function MessageBoxTimeOut(Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; TimeOutInterval : Cardinal) : Integer;
Code: Select all
TMsgDlgType = (mtWarning, mtError, mtInformation, mtConfirmation, mtCustom);
TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,
mbAll, mbNoToAll, mbYesToAll, mbHelp);
TMsgDlgButtons = set of TMsgDlgBtn;
Code: Select all
ID_OK = 1;
ID_CANCEL = 2;
ID_ABORT = 3;
ID_RETRY = 4;
ID_IGNORE = 5;
ID_YES = 6;
ID_NO = 7;
ID_CLOSE = 8;
ID_HELP = 9;
ID_TRYAGAIN = 10;
ID_CONTINUE = 11;
MB_TIMEOUT = 32000;
Code: Select all
AddToSystemJournal(IntToStr(MessageBoxTimeOut('Message Box with timeout!', mtInformation, [mbYes,mbNo],3000 )));
Код самописный, и потому работает на вайне и т.д., в отличие от недокументированных виндовых функций
-------------
сделана возможность прятать стелс.
Из трея, из списка программ невидим, в процессах по-прежнему виден. Если скрывать и оттуда - антивирь начинает гавкать.
Показывается по комбинации Ctrl+Alt+Shift+S
Добавил возможность смены иконы стелса (той, что в трее) из настроек, сохраняется в .ini файле.
-----------------
сделал. при клике по последней колонке - выскакивает окошко смены состояния скилла.Хреник wrote:2. добавить возможность менять в ручную "поднятие/опускание" выбранного скилла
то же самое для статов, кликать по картинке состояния стата на вкладке Main (работает начиная с SE - 5++ клиент)
-------
полная поддержка SE+KR+SA. Полная - это полная - все пакеты, карты, расы с их возможностями и особенностями(для горгулий - procedure ToggleFly;), новая магия, абилки и все такое прочее.
--------
полностью переработано окно настроек шардов - теперь никакого списка со строками из encryption.cfg, мутного и местами сильно непонятного, а просто ввод версии и галочки наличия шифрования.
Поубирал все галки, оставил только одну необходимую.
--------
поиск пути заметно разогнан.
вообще стелс сильно оптимизирован в плане скорости и в плане отжирания памяти - правки по всему коду.
--------
сделал перехват окна об ошибке, теперь выводится вместе со стеком.
в файл stealth.log эти ошибки по-прежнему пишутся!
--------
стелс определяет сам язык винды, на которой работает (ну или вайна ) и его вставляет.
Если же кто-то сильно хочет принудительно выставить другой язык, в
Stealth.ini надо вставить радел General строку LangFilesExt=ENU, где вместо ENU вставить язык, подробнее тут - http://stealth.od.ua/forum/viewtopic.php?p=8050#8050
-------
теперь из стелсовых скриптов доступен класс TIniFile со всеми сопутствующими.
пример
Code: Select all
var ConfIni : TIniFile;
...
ConfIni := TIniFile.Create('D:\Stealth\my\Stealth.ini');
LastUsedProfile := ConfIni.ReadString('General', 'Last profile', '');
ShowNonZeroSkills := ConfIni.ReadBool('General', 'Show nonzero skills', False);
DefaultReconnectTime := ConfIni.ReadInteger('General','DefaultReconnectTime',120);
ConfIni.Free;
------------
добавил параметр запуска из командной строки config=
грузит конфиг с именем 11. Регистр учитывается.stealth.exe config=11
И вообще, пока не забыл, по параметрам:
+log убрал, толку с него нет.
chars= грузит список чаров из файла (читать соотв. топик)
config= вверху написал
icon= иконка для трея
--------------
стелс сел на диету - похудел с почти 14 мб до 3,7 мб.
показ стека и прочее сохранилось.
пока худели - потеряли пару багов
------------------
добавил возможность Drop на скриптовый редактор файлов.
Проверки на содержимое нет, что кинете - то и покажет
Поддерживается дроп нескольких файлов сразу.
Добавил нормальное pop-up меню ( по правому клику).
---------------
добавил прокси в настройки шарда. работает. наконец-то
Из проксей поддерживается только socks5, с авторизацией и без нее, полностью согласно rfc1928
------------
Diff-файлы теперь применяются.
-----------
исправлены баги работы стелса в Вин7, вроде больше жучков нет
Список шардов теперь сохраняется в Ini-файл
------------
добавил переменную DropDelay : Cardinal - задержка после выполнения функции dropItem (напомню, что любой grab,drop или moveitem есть а) dragitem б) dropitem).
Значение не опустится меньше 50, и не поднимется выше 10000
еще добавил установку и вычитывание переменных задержек движения
Code: Select all
procedure SetRunUnmountTimer(Value: Word);
procedure SetWalkMountTimer(Value: Word);
SetRunMountTimer(Value: Word);
procedure SetWalkUnmountTimer(Value: Word);
function GetRunUnMountTimer : Word;
GetWalkMountTimer : Word;
GetRunMountTimer : Word;
function GetWalkUnmountTimer : Word;
WalkMountTimer - Идти на лошади
RunUnmountTimer - Бежать пешком
WalkUnmountTimer - Идти пешком
значения по умолчанию
RunMountTimer : Word = 95;
WalkMountTimer : Word = 185;
RunUnmountTimer : Word = 185;
WalkUnmountTimer : Word = 370;
ниже их вы не опустите
максимальное значение - 2000.
-------------
добавил функцию
Code: Select all
function ShardName : String;
Code: Select all
procedure AddToJournal(Text : String);'
Code: Select all
function GetCharTitle : String;
Code: Select all
function CharTitle : String;
убрано
Get/SetAuto/SellBuyMode
за ненадобностью и некоторыми конструктивными изменениями стелса.
---------------
добавлены возможности рисования на карте в стелсе.
Подбробнее тут:
http://stealth.od.ua/wiki/doku.php?id=% ... 1%82%D0%B5
-------
по работе с клиентом - добавлен запуск клиента с закладки Main (настраивается из шардов), запускается только при хотя бы одном подключенном клиенте. В процессе запуска патчится на разрешение, подмену названия login.cfg на steal.cfg, удаляется шифрование с клиента, если оно есть. Еще раз - патчится в памяти, файл остается неизменным. В будущем будет активен патч нагрузки на CPU.
Новый клиент пока поддерживает мало команд, типа ",info", ",infotile" и все такое. времени нехватило
P.S. У связки стелс-клиент большое будущее
------
по редактору - добавлен отладчик - почти полноценный(Breakpoint'ы, пошаговка - Step Over и StepInto, просмотр значений переменных на паузе, при ошибке - курсор становится на место ошибки).
по Ctrl+ Space вылазит список функций\процедур с параметрами (клик на нужную функцию мышкой). Слева вверху есть кнопка - открывает список всех функций (без параметров), для быстрого доступа, может кому удобно будет
нормальная менюшка для управления этим всем
---------------
полностью переделал кешер, теперь он работает ОЧЕНЬ быстро, и может обрабатывать многие десятки, если не сотни тысяч айтемов без ущерба по скорости
---------
наверняка кучу всего позабывал, если что - потом допишу
-----------
Планы:
- ивенты
- добавление большого кол-ва команд
- работа с клиентом (хоткеи, списки обьектов и прочее)
- попытаюсь сделать порт под Linux