Current time: 26.02.2018, 06:21 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Ваши вопросы по ERM-скриптам
Author Message
Algor Offline
Forum Moderators

Posts: 2361
Post: #5101

Э-эх.... Ладно сам не пишешь комментарии, но чужие-то стирать зачем?

Вот тут, например, с комментарием понятно, что v11 тебе не нужно. v10 скорее всего тоже, это ведь и так хук на "после атаки", зачем еще раз это проверять, да еще и в каждой строке.

Но возвращаясь к коду: для начала выведи значения v11 и v14:

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

Еще: не используй без нужды v-переменные (и обнулять их тоже не надо). Используй y-переменные, они локальные и никому мешать не будут.


20.02.2018 20:43
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Moderators

Posts: 1241
Post: #5102

(20.02.2018 19:13)VandaLM Wrote:  При "добивании" вражеского существа заклинанием, всё работает на ура, но вот если моему существу хватает урона на то чтобы убить вражеского монстра и оно атакует, то возникает ошибка, вот на этой строчке:
Ты делаешь много ненужных проверок. Всё проще: нужно проверить атакуемый стек на кол-во, и если их больше нуля - кастовать заклинание. Для этого:
1. Проверяем тип атакующего существа BMy10:T
2. Проверяем кол-во атакуемого и его позицию BMy20:N P
3. После проверки (кол-во атакуемых > 0 *И* атакует наш монстр) разрешить колдовство в позицию *P*


Скачать HoMM3 ERA 2.4.6 + (мелочи)
Скачать HoMM3 ERA 2.7.3 (Repack: Rus & HD)
20.02.2018 21:59
Visit this user's website Find all posts by this user Quote this message in a reply
VandaLM Offline

Posts: 13
Post: #5103

(20.02.2018 20:43)Algor Wrote:  Э-эх.... Ладно сам не пишешь комментарии, но чужие-то стирать зачем?

Вот тут, например, с комментарием понятно, что v11 тебе не нужно. v10 скорее всего тоже, это ведь и так хук на "после атаки", зачем еще раз это проверять, да еще и в каждой строке.

Но возвращаясь к коду: для начала выведи значения v11 и v14:

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

Еще: не используй без нужды v-переменные (и обнулять их тоже не надо). Используй y-переменные, они локальные и никому мешать не будут.

Пардон...постараюсь так больше не делать. Спасибо за помощьAb

(20.02.2018 21:59)igrik Wrote:  
(20.02.2018 19:13)VandaLM Wrote:  При "добивании" вражеского существа заклинанием, всё работает на ура, но вот если моему существу хватает урона на то чтобы убить вражеского монстра и оно атакует, то возникает ошибка, вот на этой строчке:
Ты делаешь много ненужных проверок. Всё проще: нужно проверить атакуемый стек на кол-во, и если их больше нуля - кастовать заклинание. Для этого:
1. Проверяем тип атакующего существа BMy10:T
2. Проверяем кол-во атакуемого и его позицию BMy20:N P
3. После проверки (кол-во атакуемых > 0 *И* атакует наш монстр) разрешить колдовство в позицию *P*

Дааа! Сделал как ты сказал, всё работает, не знаю как и благодарить!145145145
Правда проверку на тип я не стал делать - решил что она ни к чему, а также ещё допилил проверку на принадлежность игроку, чтобы моих воинов не бахало заклинаниемAb
Code:
!!BG:A?y23;
!!BMy20&y23=6:N?y21 P?y22;
!!BMy20&y23=6:I?y24;
!!BMy10&y23=6/v40=49/y21>0/y24=1:C18/y22/0/0/1;


Мой репак музыки
22.02.2018 13:39
Find all posts by this user Quote this message in a reply
Algor Offline
Forum Moderators

Posts: 2361
Post: #5104

Quote:... это ведь и так хук на "после атаки", зачем еще раз это проверять, да еще и в каждой строке...


22.02.2018 14:28
Visit this user's website Find all posts by this user Quote this message in a reply
VandaLM Offline

Posts: 13
Post: #5105

(22.02.2018 14:28)Algor Wrote:  
Quote:... это ведь и так хук на "после атаки", зачем еще раз это проверять, да еще и в каждой строке...

ээм...не знаю...


Мой репак музыки
22.02.2018 16:48
Find all posts by this user Quote this message in a reply
igrik Offline
Moderators

Posts: 1241
Post: #5106

(22.02.2018 16:48)VandaLM Wrote:  
(22.02.2018 14:28)Algor Wrote:  
Quote:... это ведь и так хук на "после атаки", зачем еще раз это проверять, да еще и в каждой строке...
ээм...не знаю...
Проверку эту не нужно. Я дал 2 хука - один на выстрел, другой на ближнюю атаку. Значит один хук используешь, другой нет.
Также зачем проверяешь сторону? У тебя есть атакующий стек и стек защитник. И ситуации могут быть всего 2: либо ты атакующий, либо ты защитник (о май Кэп!). А скрипт у тебя сейчас работает только для атакующего. При обратной ситуации скрипт покажет тебе кто тут папа. Вот для решения этого - проверяй уж либо номер героя, либо номер цвета игрока...


Скачать HoMM3 ERA 2.4.6 + (мелочи)
Скачать HoMM3 ERA 2.7.3 (Repack: Rus & HD)
22.02.2018 21:51
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Offline
Forum Moderators

Posts: 2361
Post: #5107

igrik, а для ответки хук не работает?


23.02.2018 00:02
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Moderators

Posts: 1241
Post: #5108

Работает.

1. Хук после атаки стоит внутри функции прямой атаки (перед проверкой на ответку огненного щита). Не важно атака это или ответный удар, или же двойной удар. В каждом из этих случаев хук сработает / 0x441996 /
2. Хук после выстрела стоит внутри функции стрельбы сразу после функции нанесения урона. И он будет работать например при ответном выстреле (если делать через Тифон) / 0x43FAD9 /


Скачать HoMM3 ERA 2.4.6 + (мелочи)
Скачать HoMM3 ERA 2.7.3 (Repack: Rus & HD)
23.02.2018 12:20
Visit this user's website Find all posts by this user Quote this message in a reply
VandaLM Offline

Posts: 13
Post: #5109

(22.02.2018 21:51)igrik Wrote:  
(22.02.2018 16:48)VandaLM Wrote:  
(22.02.2018 14:28)Algor Wrote:  
Quote:... это ведь и так хук на "после атаки", зачем еще раз это проверять, да еще и в каждой строке...
ээм...не знаю...
Проверку эту не нужно. Я дал 2 хука - один на выстрел, другой на ближнюю атаку. Значит один хук используешь, другой нет.
Также зачем проверяешь сторону? У тебя есть атакующий стек и стек защитник. И ситуации могут быть всего 2: либо ты атакующий, либо ты защитник (о май Кэп!). А скрипт у тебя сейчас работает только для атакующего. При обратной ситуации скрипт покажет тебе кто тут папа. Вот для решения этого - проверяй уж либо номер героя, либо номер цвета игрока...
Понял, спасибо Ab


Мой репак музыки
24.02.2018 14:50
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2018 MyBB Group