ну я еще до конца не определился что перехватывать в этой функции (я использую ERM Hooker), и вот для этого мне и нужно получать номер арта. Как установить флаг в ложь или истину я разобрался.
Мне нужно: получить номер арта. Когда я смогу узнавать номер проверяемого арта, то я смогу (уже могу) установить истину во внутренеигровой функции. Т.е. я смогу эмулировать одетость любого мне нужного артефакта, даже если он не одет.
За пределы этой функции я не выхожу
Номер этот находится по адресу ebp+8. Ну и так во всех функциях: первый аргумент из стека - [ebp+8], второй - [ebp+12] и т.д. Ну и в thiscall объект её вызывающий - это ecx.
Да, и результат функции всегда в eax возвращается.
спасибо, получилось. Только в данном случае оказалось не ebp, а esp (походу поэтому - mov ebp, esp)
feanor, ну почему же, любого. Только не всегда

.
(29.10.2014 00:44)igrik Wrote: [ -> ]спасибо, получилось. Только в данном случае оказалось не ebp, а esp (походу поэтому - mov ebp, esp)
Если перехватывать функцию целиком, то да.
Здравствуйте. Очень нужен такой скрипт. Чтобы брелок ясновидения (защита от слепоты) по умолчанию устанавливался сразу в слот на ноги, а не на шею как обычно. Так как на шее у меня брелок смелости (+3 к лидерству и +3 к удаче).
А чем не подошёл предыдущий скрипт на эту тему?
(31.10.2014 00:19)gamecreator Wrote: [ -> ]А чем не подошёл предыдущий скрипт на эту тему?
Он ставил брелок в ноги, но не менял слот, т.е. вручную на ноги поставить его было нельзя. Вот дополнение:
Ну если не ошибаюсь, скрипт тот давал воговским ботинкам свойство брелка. Вот и использовал бы его.
(31.10.2014 12:40)gamecreator Wrote: [ -> ]Ну если не ошибаюсь, скрипт тот давал воговским ботинкам свойство брелка. Вот и использовал бы его.
А зачем 2 одинаковых арта? Ботинки еще для чего-нить сгодятся.
(31.10.2014 11:29)Algor Wrote: [ -> ] (31.10.2014 00:19)gamecreator Wrote: [ -> ]А чем не подошёл предыдущий скрипт на эту тему?
Он ставил брелок в ноги, но не менял слот, т.е. вручную на ноги поставить его было нельзя. Вот дополнение:
Спасибо большое проверил скрипт работает. Он более практичный чем предыдущий. Можете пожалуйста написать скрипт, «двойная магия за один ход» буду очень благодарен…
Здравствуйте... Извините, что опять надоедаю... Пожалуйста подскажите кто может: каким ресейвером можно определить всех монстров на поле боя, которые я вызвал при битве, а затем абсолютно всех вызванных уничтожить, не затронув истинных, которые были у меня уже до самой битвы.. Я просто не знаю как это сделать..
Проблема такая получается, что в битвах я столько много навызывал, а без этого никак, что после битвы они все (вызванные и истинные) суммируются и у меня получается легионы - как-то не хорошо выходит.. Я искал в помощнике, но нигде не нашёл подобного.. Есть через универсальные параметры монстров вызов и там же указан на бесслотный -1 - не помогает, так как уже пробовал.. Может вариант другой существует..
P.S. Дело ещё в том, что я вызываю таких же монстров, которые у меня уже есть в ячейках, а по окончанию они просто добавляются уже к имеющимся.. Если я буду вызывать других (тех, что нет у меня в ячейках), то получается как надо.. Вызванные исчезают.. Я вызов использую через тригер !?MF1..
За помощь спасибо..
fatsawhorse Wrote:Проблема такая получается, что в битвах я столько много навызывал, а без этого никак, что после битвы они все (вызванные и истинные) суммируются и у меня получается легионы - как-то не хорошо выходит..
Вариантов решения проблемы несколько, но скорее всего причина в том, что Вы просто неправильно призываете существ. Можно код вызова?
Shiva Wrote:Можете пожалуйста написать скрипт, «двойная магия за один ход» буду очень благодарен…
Лениво... можете глянуть стандартный WoG'овский скрипт на пещеру приключений, там вроде за какие-то действия герою давали способность даблкаста.
Здравствуйте.. "Algor" код сам я не составлял, а взял готовый, поскольку я бы никогда не смог бы подобное составить... Сам код, вернее его кусочек
!?FU6079;
!!BG:Q?y43; сторону проверяем
!!FU&y43<>0:E; [выход, если сторона не атакующая]
!!DO6081/0/20/1 : P156/179; Вызываем цикл, вызывающий стражу всех стеков (вокруг кого и каких страж).
!!BU : R;Обновляем.
!?FU6081;Функция поиска гексов для стражи.
!!BMx16 : T?y7;Проверяем тип монстра.
!!FU&y7<>x1 : E;Если монстр не подходит, выходим из функции.
!!BMx16 : P?y7;Считываем позицию монстра.
!!VRy8 : Sy7:17;Вычисляем ряд позиции монстра.
!!VRy9 : Sy8%2;Вычисляем чётность ряда позиции монстра.
!!VRy1 : Sy7-1;Вычисляем позицию 1 стражи.
!!VRy2&y9=0 : Sy7-17;Вычисляем позицию 2 стражи, в зависимости от чётности ряда позиции монстра.
!!VRy2&y9=1 : Sy7-18;Вычисляем позицию 2 стражи, в зависимости от чётности ряда позиции монстра.
!!VRy3 : Sy2+1;Вычисляем позицию 3 стражи.
!!VRy4 : Sy7+1;Вычисляем позицию 4 стражи.
!!VRy5 : Sy2+35;Вычисляем позицию 5 стражи.
!!VRy6 : Sy5-1;Вычисляем позицию 6 стражи.
!!BMx16 : B?y10;Считываем количество монстров.
!!BMx16 : I?y11;Считываем сторону монстра.
!!DO6082/1/6/1 : Py1/y2/y3/y4/y5/y6/y10/x2/y11;Вызываем цикл, вызывающий стражу на каждую клетку.
!?FU6082;Функция постановки стражи на гекс.
!!VRy1 : Sxx16%17;Считываем столбец позиции монстра.
!!FU&y1=0|y1=16/xx16<1/xx16>185 : E;Если гекс вне поля боя, завершаем функцию.
!!BU : Oxx16/?y1;Проверяем, нет ли препятствий на гексе.
!!FU&y1>0 : E;Если на гексе есть препятствия, завершаем функцию.
!!BU : Exx16/?y1;Проверяем, нет ли стека на гексе.
!!BMy1&y1>-1 : T?y2;Если на гексе есть стек, проверяем тип монстра стека.
!!BMy1&y1>-1/y2=x8 : Ndx7;Если на гексе есть стек, его тип монстра - нужный, добавляем туда нужное количество монстров.
!!FU&y1>-1 : E;Если на гексе есть стек, завершаем функцию.
!!BU : Sx8/x7/xx16/x9/-1/0; Вызываем стражу на гекс.
активируется он (этот код) перед нанесения удара чудовищем.. Все звери, которые возрождаются вокруг чудовища затем добавляются в слот к моему зверю (не командиру, а другому с номером 179) и как сумма того, что было и то, что сверху добавилось, в итоге ошеломительный результат выходит... Может этот код нельзя так использовать, как я эксплуатирую? Я в самой последней строчке выделил жирным шрифтом самоисключение тех монстров после битвы, которые появились, но они не исчезают, а наоборот, добавляются к тем, что уже были... Ужас..
fatsawhorse Wrote:
Странно, не должны оставаться.
Попробуйте после этой строки добавить: