IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Reply to this topicStart new topic
> Воскрешение убитого отряда, теперь возможно!
hippocamus
сообщение 13 Dec 2007, 14:02 (Сообщение отредактировал hippocamus - 29 Jan 2008, 02:08)
Сообщение #1

допустим, мяў
Сообщений: 24 102
Спасибо сказали: 13409 раз




Проблема вот в чём:
Возможно ли ПО НАСТОЯЩЕМУ воскресить полностью убитый отряд (лежит труп) с помощью скриптов?
Или хотя бы имитировать воскешение: убрать труп, и вызвать существ в этот же слот?

Если убрать флаг смерти (22) - отряд поднимется. Можно изменить его числе5нность. Компьютер им даже ходить будет. Но атаковать его невозможно (если враг), ходить им невозможно (если свой), магия на него не кастуется (может, кроме воскрешения?), курсор не наводится.

Если попытаться воскресить магией "Воскрешение" или "Поднятие мертвецов", поставив предварительно флаг нежити, полностью убитый отряд - игра вылетает в чёрный экран.

(Это я написал, чтобы не было лишних предложений).


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)
Go to the top of the pageAdd Nick
 
+Quote Post
Bes
сообщение 13 Dec 2007, 16:28
Сообщение #2

замолкаю.
Сообщений: 2 340
Спасибо сказали: 1010 раз




Довольно проблемный вопрос... не спорю, сам как-то пытался его раскусить (по ерм-молодости)

тут меня интересует вот что - а какие флаги у поднятого стэка имеются?

Может у него всё время присутствует некий флаг, по типу №27, а может и №7, и поэтому ему ход не передаётся... Но вот что он не реагиует на курсор эту версию откидывает, имхо.


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 13 Dec 2007, 17:41
Сообщение #3

допустим, мяў
Сообщений: 24 102
Спасибо сказали: 13409 раз




Флаги 1,2,5,23 (грифон с флагом нечисти). Без 23 тоже самое.


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_Д'якон_*
сообщение 13 Dec 2007, 18:48
Сообщение #4







Можно через UN:C. Я когда-то сталкивался с этим тоже и находил нужные адреса, но к сожелению переустанавливал артмани и потер их (будет время поищу опять, хотя можешь и сам - там ничего сложного нет). Там около 5-6 значений которые нужно изменить, что бы полностью оживить отряд (если не установить их все, возможны различные нежелательные эффекты, отряд оставляет двойников или еще чего-нибудь вплоть до краха).
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 13 Dec 2007, 20:09
Сообщение #5

допустим, мяў
Сообщений: 24 102
Спасибо сказали: 13409 раз




C памятью работать не пробовал (только переделывал чужие скрипты). Если не трудно - давай найдём и попросим Драколича занести в хелп. Это ведь важная вещь.


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)
Go to the top of the pageAdd Nick
 
+Quote Post
gamecreator
сообщение 13 Dec 2007, 23:10
Сообщение #6

Яблочный произвол!
Сообщений: 11 080
Спасибо сказали: 3988 раз




а еще неплохо бы сделать библиотеку функций
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 29 Jan 2008, 01:06 (Сообщение отредактировал hippocamus - 29 Jan 2008, 01:45)
Сообщение #7

допустим, мяў
Сообщений: 24 102
Спасибо сказали: 13409 раз




Функция для воскрешения стека
Кто может - пожалуйста, протестируйте:
Код
!!FU1:Px1; - где х1 - номер стека воскрешаемого

!?FU1;
!!VRy1:S6919200;
!!UN:Cy1/4/?y12;
!!BMx1:P?y2;
!!VRy3:Sy2  -1 *112 +y12 +586;  1
!!VRy4:Sy3 +6;  2
!!VRy5:Sx1 *1352 +y12 +21840; 3
!!VRy6:Sy5 -56; 4
!!VRy7:Sy5 -72; 5
!!VRy8:Sx1 *16777216 +65535;
!!BMx1:B?y9;
!!BMx1:T?y10;
!!MAy10:Xy10/?y11;
!!UN:Cy3/4/y8;
!!UN:Cy4/4/0;
!!UN:Cy5/4/y11;
!!UN:Cy6/4/y9;
!!UN:Cy7/4/2;


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)
Go to the top of the pageAdd Nick
 
+Quote Post
Night Hunter
сообщение 29 Jan 2008, 06:26
Сообщение #8

----_----
Сообщений: 2 032
Спасибо сказали: 643 раза




Эх блин... Не вовремя инет на компе пропал... Я бы потестил... А переписывать все ручками не охота... Вдруг ошибку где-нибудь сделаю...
Go to the top of the pageAdd Nick
 
+Quote Post
izrukvruki
сообщение 30 Jan 2008, 17:18
Сообщение #9

Князь Бореи
Сообщений: 5 171
Спасибо сказали: 1349 раз




Вы такие все умные... а как это потестить - нужно ведь еще кусок кода накрапать, где отследишь номер убитого стека??? и под какую версию героев работает?
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 30 Jan 2008, 18:02
Сообщение #10

допустим, мяў
Сообщений: 24 102
Спасибо сказали: 13409 раз




Работает под любую. Можно сделать, чтобы воскресал всегда 0-й стек, например.


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)
Go to the top of the pageAdd Nick
 
+Quote Post
Bes
сообщение 30 Jan 2008, 22:53
Сообщение #11

замолкаю.
Сообщений: 2 340
Спасибо сказали: 1010 раз




Код
!?FU1;
!!VRy1:S6919480;
!!UN:Cy1/4/?y12;
!!BMx1:P?y2;
!!VRy3:Sy2 -1 *112 +y12 +322082;  1
!!VRy4:Sy3 +6;  2
!!VRy5:Sx1 *1352 +y12 +343336; 3
!!VRy6:Sy5 -56; 4
!!VRy7:Sy5 -72; 5
!!VRy8:Sx1 *16777216 +65535;
!!BMx1:B?y9;
!!BMx1:T?y10;
!!MA:Xy10/?y11;
!!UN:Cy3/4/y8;
!!UN:Cy4/4/0;
!!UN:Cy5/4/y11;
!!UN:Cy6/4/y9;
!!UN:Cy7/4/2;
© Д'якон

После предварительного теста могу сказать, что это работает... good.gif , Владимир
Но есть пара ньансов с использованием этой ф-ции:
1 - когда стэк восстановлен, он получает возможность ходить... даже если он уже "в прошлой жизни" ходил
2 - без окончательной обвязки, эта ф-ция может быть "опасной", так что устите это

Если что, пишите отзывы по тестам своим...


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
Bes
сообщение 31 Jan 2008, 17:04 (Сообщение отредактировал Bes - 31 Jan 2008, 21:59)
Сообщение #12

замолкаю.
Сообщений: 2 340
Спасибо сказали: 1010 раз




Вот примерная демонстрация работы приведенной выше ф-ции с одним из вариантов использования её в действии...

Код
ZVSE

!?BR-1;
!!IF:V888/0;

!?CM4&-888;
!!FU&v997<0:E;
!!FU24081&587:P; activation
!!BG:Q?s;
!!BHs:M?k;
!!FU&k=1:E;
!!CM:D?y1 F?y2;
!!VRy3&s=0:S252; !!VRy3&s=1:S253;
!!FU24082&y1=y3/y2=512/-587:P;

!?FU24082;
!!BG:H?n;
!!HEn:S7/?y3 S17/?y4; мудрость/магия земли?
!!FU&y3=0:E;
!!CM:R0;
!!VRy5:S20;
!!VRy5&y4=3:S10; !!VRy5&y4=2:S15; !!VRy5&y4=1:S17;
!!IF:Q1/35/y5/2^Вы хотите эмулировать {Восстановление}?^;
!!FU&-1:E;
!!HEn:I?v5/1;   !!VRv5:Sv5-y5;
!!IF&v5<0:M^У вас не достаточно маны!^;
!!IF&v5>=0:V587/1;

!?FU24081;
!!CM:R0;
!!CM:I?y1 F?y2;  !!FU&y1>1:E; стоп если нажато не ЛКМ
!!IF&y2=512/587:V587/0;
!!FU&y2=512/-587:E;
!!CM:D?y1;
!!FU|y1<1/y1>=252:E; запрет "мёртвых зон"
!!FU|y1=17/y1=34/y1=51/y1=68/y1=85/y1=102/y1=119/y1=136/y1=153/y1=170:E;
!!FU|y1=16/y1=33/y1=50/y1=67/y1=84/y1=101/y1=118/y1=135/y1=152/y1=169/y1=186:E;
!!BU:Dy1/?m; stack was killed?
!!FU&m<0:E;
!!BMm:I?y1; !!BG:Q?s; узнать сторону монстра и героя
!!FU&y1<>s:E;
!!BMm:F?i; get all stack's flags
!!VRi:&67108864; действовал ли стек в текущем раунде?
!!FU25000:Pm; ф-ция Востановления
!!FU24080:Pm/i; "всякие красивости"

!?FU24080;
*x1 - stack
*x2 - control flag
!!VRz1:S^RESURECT.WAV^;
!!SN:Pz1;
!!BMx1:F?i;
!!VRi:|67108864;
!!BMx1&x2>0:Fi; restore busy-flag if exist before
!!BMx1:V50 T?t;
!!BG:H?n;
!!HEn:B0/?z-1 R2/?y3 Iv5/1;
!!UN:N3/z-3/t/1; имя отряда во мн.ч.
!!VRz-5:S^ю^; !!VRz-5&x2=1:S^е^;
!!VRz1:S^%Z-1 эмулирует {Восстановление}, оживляя отряд %Z-3 погибает.^;
!!BU:Mz1; вывод в лог
!!IF:V587/0 V888/1;
!!BHs:M1;
!!UN:R5/2/0; сменить курсор
!!BU:R;

!?MM0&587; смена курсора для закла
!!MM:D?y1;
!!UN&y1>0/y1<186:R5/3/0;
!!UN|y1<1/y1>185:R5/2/0;
!!VRz-1:S^Выберите мёртвый отряд!^;
!!MM:Mz-1;

!?FU25000; (c) Д'якон
*x1 - stack
!!VRy1:S6919480;
!!UN:Cy1/4/?y12;
!!BMx1:P?y2;
!!VRy3:Sy2 -1 *112 +y12 +322082; 1
!!VRy4:Sy3 +6; 2
!!VRy5:Sx1 *1352 +y12 +343336; 3
!!VRy6:Sy5 -56; 4
!!VRy7:Sy5 -72; 5
!!VRy8:Sx1 *16777216 +65535;
!!BMx1:B?y9;
!!BMx1:T?y10;
!!MA:Xy10/?y11;
!!UN:Cy3/4/y8;
!!UN:Cy4/4/0;
!!UN:Cy5/4/y11;
!!UN:Cy6/4/y9;
!!UN:Cy7/4/2;


[подправлен]

*не тестировалось, так что извиняйте если что... приду домой, то в оочую гляну, что я тут накарябала*

Примечание: запустить действие нужно путём ПКМ на модельке героя в бою
Если у героя нету Мудрости вообще ,то ничего не запуститься tongue.gif
При наличии Магии Земли будет уменьшаться и стоимость "каста" (по умолчанию выставлена цена в 20 маны)

тестируйте, жалуйтесь, и всего хорошего...

Добавлено ([mergetime]1201788272[/mergetime]):
восстанавливает ТОЛЬКО мёртвый отряд!!!


--------------------
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 31 Jan 2008, 20:59
Сообщение #13

допустим, мяў
Сообщений: 24 102
Спасибо сказали: 13409 раз




А если он жив, просто не работает?

Кстати, проблему с тем, что отряд получает способность ходить можно решить в 4 действия.
1. Перед воскрешением считываем флаги отряда
2. Воскрешаем
3. Вычитаем флаг смерти
4. Устанавливаем отряду флаги которые он имел перед смертью.


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)
Go to the top of the pageAdd Nick
 
+Quote Post
Мурсинушка
сообщение 20 Feb 2008, 17:26
Сообщение #14

могу укусить!
Сообщений: 450
Спасибо сказали: 116 раз




А нельзя просто заставить стек скастовать воскрешение?
Или превратить кого-то в архангела, воскресить, а потом обратно вернуть в прежний вид?


--------------------
И ты можешь лгать, и можешь блудить, и друзей предавать гуртом.
А то, что придется потом платить - так ведь это ж, пойми, - потом!
(А.Галич)
Go to the top of the pageAdd Nick
 
+Quote Post
<Fenix>
сообщение 20 Feb 2008, 18:04 (Сообщение отредактировал <Fenix> - 20 Feb 2008, 18:50)
Сообщение #15

Рожденный Пламенем Жизни
Сообщений: 1 481
Спасибо сказали: 183 раза




Цитата(Мурсинушка @ 20 Feb 2008, 17:26)
А нельзя просто заставить стек скастовать воскрешение?
Или превратить кого-то в архангела, воскресить, а потом обратно вернуть в прежний вид?

Кого-то это кого? Копейщика или монаха в архангела?Абилку можно дать по воскрешению критчу, только, зачем именно в бою дать(а потом отобрать) абилку,не совсем понятно.


--------------------
Древние тайны в руках
И огонь правды в глазах.
Аскет и отшельник, но не злодей,
Луч света вдали лазури морей.
Он заклинает силой своей,
Искусный кудесник и чародей.
Go to the top of the pageAdd Nick
 
+Quote Post
hippocamus
сообщение 20 Feb 2008, 18:37
Сообщение #16

допустим, мяў
Сообщений: 24 102
Спасибо сказали: 13409 раз




Если стек скастует воскрешение будет то же, что и герой скастует воскрешение, т.е. смотри 1-й пост sad.gif
Превратить существо? Не пробовал. Скрипт с Метаморфами вообще-то есть, но это же видно будет. А нужно чтобы без особых потрясений воскрешение произошло smile.gif


--------------------
Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская)
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 01 Jul 2008, 15:21
Сообщение #17

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




У меня работает случайное воскрешение полностью убитого отряда как живых, так и андедов. Проверка идет для каждой клетки поля битвы. Вот функция проверки и воскрешения

Код
!?BG1&-998;  
!!DO7178/0/186/1:P;

!?FU7178;
!!VRy-2:S0 R99; вероятность воскрешения
!!VRy-7:S0;
!!BG:N?v7009; номер текущего стека
!!BMv7009:T?y5 I?y6 N?y7; тип, сторона и кол-во текущего стека
!!BU:Ex16/?v7270 Dx16/?v7271; в клетке x16 живой или трупик?

!!BMv7271&v7270=-1/v7271>-1:F?y-6 T?v7278;
!!VRy-6&v7270=-1/v7271>-1:&1; доп. проверка для двуклеточных монстров
!!VRx16&v7270=-1/v7271>-1/y-6=1:+1; (не помню зачем)
!!BU&v7270=-1/v7271>-1/y-6=1:Dx16/?v7272;
!!FU&v7270=-1/v7271>-1/y-6=1/v7272<>v7271:E;

!!BMv7270&v7270>-1/v7271=-2:F?y-6;
!!VRy-6&v7270>-1/v7271=-2:&1; доп. проверка для двуклеточных монстров
!!VRx16&v7270>-1/v7271=-2/y-6=1:+1; с левой стороны
!!BU&v7270>-1/v7271=-2/y-6=1:Ex16/?v7272;
!!VRx16&v7270>-1/v7271=-2/y-6=1:-1; с правой стороны
!!BU&v7270>-1/v7271=-2/y-6=1:Ex16/?v7272;
!!FU&v7270>-1/v7271=-2/y-6=1/v7270=v7272:E;

!!BMv7271&v7270=-1/v7271>-1:I?y-5 F?y-6 P?v7003 T?v7008 H?y-8;
!!BMv7270&v7270>-1/v7271=-2:I?y-5 P?v7003 T?v7008;
!!VRy-6&v7270=-1/v7271>-1:&16; для живчиков
!!VRy-7&v7270=-1/v7271>-1/y-6<>16:S1;
!!BMv7271&v7270=-1/v7271>-1/y-6<>16:I?y-5 F?y-6 P?v7003 H?y-8;
!!VRy-6&v7270=-1/v7271>-1/y-7=1:&262144; для андедов
!!VRy-9&v7270=-1/v7271>-1/y-6=16:Sy7 *50 +80; сила воскрешения андедов
!!VRy-9&v7270=-1/v7271>-1/y-6=262144:Sy7 *50 +60; сила воскрешения живых

15% шанс воскресить для ангелов + проверка условий
!!VRz1&y-2<15/y5=12/y6=y-5/v7270=-1/v7271>-1/y-6=16/y-9>=y-8/v7008<>27/v7008<>83/v7008<>121/v7008<>151/v7008<>155:S^Ангелы используют воскрешение.^;
!!VRz1&y-2<15/y5=12/y6=y-5/v7270=-1/v7271>-1/y-6=16/y-9<y-8/v7008<>27/v7008<>83/v7008<>121/v7008<>151/v7008<>155:S^Ангелы попытались использовать воскрешение, но им не хватило силы.^;
!!MM&y-2<15/y5=12/y6=y-5/v7270=-1/v7271>-1/y-6=16/v7008<>27/v7008<>83/v7008<>121/v7008<>151/v7008<>155:Sz1; вывести сообщение

!!BMv7009&y-2<15/y5=12/y6=y-5/v7270=-1/v7271>-1/y-6=16/y-9>=y-8/v7008<>27/v7008<>83/v7008<>121/v7008<>151/v7008<>155:C38/v7003/2/y7/0; скастовать воскрешение

!!VRz1&y-2<15/y5=12/y6=y-5/v7270=-1/v7271>-1/y-6=262144/y-9>=y-8:S^Ангелы используют оживление мертвецов.^;
!!VRz1&y-2<15/y5=12/y6=y-5/v7270=-1/v7271>-1/y-6=262144/y-9<y-8:S^Ангелы попытались использовать оживление мертвецов, но им не хватило силы.^;
!!MM&y-2<15/y5=12/y6=y-5/v7270=-1/v7271>-1/y-6=262144:Sz1; вывести сообщение

!!BMv7009&y-2<15/y5=12/y6=y-5/v7270=-1/v7271>-1/y-6=262144/y-9>=y-8:C39/v7003/2/y7/0; скастовать оживление мертвецов

Может код можно сократить, не пробовал. В принципе можно воскрешать наверно и не полностью убитых.
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_FakerNeo_*
сообщение 02 Jul 2008, 14:07
Сообщение #18







Так это ангелы воскрешают?

Добавлено ([mergetime]1214996832[/mergetime]):
или просто воскрешение?
Go to the top of the pageAdd Nick
 
+Quote Post
major
сообщение 02 Jul 2008, 19:12
Сообщение #19

Immortal
Сообщений: 668
Спасибо сказали: 58 раз




В данном примере воскрешают ангелы, вместо них можно поставить кого угодно.
Go to the top of the pageAdd Nick
 
+Quote Post
Гость_FakerNeo_*
сообщение 08 Jul 2008, 12:43
Сообщение #20







А если нужно просто воскрешение? без ангелов
Go to the top of the pageAdd Nick
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 1 October 2025 - 00:58
Copyright by Алексей Крючков
Strategy Gamez by GrayMage
Programming by Degtyarev Dmitry
  Яндекс.Метрика