Current time: 17.02.2025, 08:58 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 2180
Post: #1366

В начале его хода сделать клетку красной, а в конце обратно поменять.
Ещё можно вроде закрыть объект для игрока.
16.11.2010 10:31
Find all posts by this user Quote this message in a reply
GhostManSD Offline

Posts: 1054
Post: #1367

Через триггер на движение любого героя и проверку активного героя?


Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
(This post was last modified: 16.11.2010 14:26 by GhostManSD.)
16.11.2010 14:24
Visit this user's website Find all posts by this user Quote this message in a reply
Efrit Offline
Administrators

Posts: 6185
Post: #1368

GhostManSD, есть команда "проклятие бога" (!!HE:Y вроде) - она позволяет запретить посещение определённого объекта для определённого героя...


Welcome!
16.11.2010 14:51
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #1369

GhostManSD, через таймер на начало хода игрока и следующего игрока. А для объекта проще - в !!OB вроде можно. Или, действительно, через проклятье.
16.11.2010 15:52
Find all posts by this user Quote this message in a reply
Chaomen Offline

Posts: 59
Post: #1370

Как сделать, чтобы можно было ставить собственные скрипты в "Настройки WOG"?
04.12.2010 00:11
Visit this user's website Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #1371

Создать ers-файл (как - написано в хелпе), который создаст опцию. А в скрипте поставить на все триггеры условие их выполнения - только если опция включена (т. е. в начале триггеров поставить проверку через !!UN:P, если не включено - выходить. Или проверить и записать результат в начале игры, тогда можно будет вставлять условия в сами триггеры).
(This post was last modified: 04.12.2010 00:59 by Sav.)
04.12.2010 00:24
Find all posts by this user Quote this message in a reply
Chaomen Offline

Posts: 59
Post: #1372

Хотя я сделал этот файл, скрипт всё равно не хочет появляться в настройках. Можешь посмотреть что делать?
Code:
ZVSE

** script to prevent creature experience reduction due to overflow. JHV,
2/3/2009

** uses v7090-v7103 to store troop ranks @ start of battle
** uses FU459-FU462

!?BA0&1000; start of (human) battle
!!BA:H0/?v1; get attacker hero #
!!BA:H1/?v2; get defender hero # (if any)
!!DO459/0/6/1&v1>-1/v1<156:Pv1; check stacks 0-6 for attacker
!!DO460/0/6/1&v2>-1/v2<156:Pv2; check stacks 0-6 for defender


!?FU459; get exp. rank of troop in slot x16 of hero x1, store in v[7090+x16]
!!HEx1:C0/x16/?y1/?y2/?y3/2; y1=type, y2=no., y3=experience
!!VRv5:S7090+x16;
!!VRvv5:Sy3;

!?FU460; get exp. rank of troop in slot x16 of hero x1, store in v[7097+x16]
!!HEx1:C0/x16/?y1/?y2/?y3/2; y1=type, y2=no., y3=experience
!!VRv5:S7097+x16;
!!VRv5:Sy3;

!?BA1&1000; end of (human) battle
!!BA:H0/?v1; get attacker hero #
!!BA:H1/?v2; get defender hero # (if any)
!!VRv3:C-1/-1; set v3 & v4 to -1
!!HEv1&v1>-1/v1<156:O?v3; get attacker's Owner - will be 0-7 if attacker won
!!HEv2&v2>-1/v2<156:O?v4; get defender's Owner - will be 0-7 if defender won
!!DO461/0/6/1&v3>-1/v3<8:Pv1; check stacks 0-6 for attacker
!!DO462/0/6/1&v4>-1/v4<8:Pv2; check stacks 0-6 for defender

!?FU461; get exp. rank of troop in slot x16 of hero x1, vs. v[7090+x16]
!!HEx1:C0/x16/?y1/?y2/?y3/2; y1=type, y2=no., y3=experience
!!FU&y2<1:E; quit if no troops left in slot
!!VRv5:S7090+x16;
!!VRy4:Svv5;
!!HEx1&y4>y3:C0/x16/d/d/11/12; set rank to 11 if negative experience was
gained (overflow occurred)

!?FU462; get exp. rank of troop in slot x16 of hero x1, vs. v[7097+x16]
!!HEx1:C0/x16/?y1/?y2/?y3/2; y1=type, y2=no., y3=experience
!!FU&y2<1:E; quit if no troops left in slot
!!VRv5:S7097+x16;
!!VRy4:Svv5;
!!HEx1&y4>y3:C0/x16/d/d/11/12; set rank to 11 if negative experience was
gained (overflow occurred)
!!IF&610:V616/1;
negative     92      7      0      5       1       0      90      Отключение отрицательного опыта монстров       Данный скрипт позволяет отключать появление отрицательного опыта монстров
04.12.2010 18:42
Visit this user's website Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #1373

Code:
negative 92      7      0      5       1       0      90      Отключение отрицательного опыта монстров       Данный скрипт позволяет отключать появление отрицательного опыта монстров
Это нужно поместить в отдельный файл с названием script**.ers (** - номер скрипта).

В начале скрипта нужно вставить такой код: !#UN:P**/?v***; (** - номер скрипта, v*** - любая свободная v-переменнная).

В каждый триггер надо вписать условие (&v***=1), где v*** - та же v-переменная, которая использовалась выше.


Так примерно будет выглядеть твой код:
Code:
ZVSE
!#UN:P92/?v9001; Считываем включённость опции.

** script to prevent creature experience reduction due to overflow. JHV,
2/3/2009

** uses v7090-v7103 to store troop ranks @ start of battle
** uses FU459-FU462

!?BA0&v9001=1/1000; start of (human) battle
!!BA:H0/?v1; get attacker hero #
!!BA:H1/?v2; get defender hero # (if any)
!!DO459/0/6/1&v1>-1/v1<156:Pv1; check stacks 0-6 for attacker
!!DO460/0/6/1&v2>-1/v2<156:Pv2; check stacks 0-6 for defender


!?FU459&v9001=1; get exp. rank of troop in slot x16 of hero x1, store in v[7090+x16]
!!HEx1:C0/x16/?y1/?y2/?y3/2; y1=type, y2=no., y3=experience
!!VRv5:S7090+x16;
!!VRvv5:Sy3;

!?FU460&v9001=1; get exp. rank of troop in slot x16 of hero x1, store in v[7097+x16]
!!HEx1:C0/x16/?y1/?y2/?y3/2; y1=type, y2=no., y3=experience
!!VRv5:S7097+x16;
!!VRv5:Sy3;

!?BA1&v9001=1/1000; end of (human) battle
!!BA:H0/?v1; get attacker hero #
!!BA:H1/?v2; get defender hero # (if any)
!!VRv3:C-1/-1; set v3 & v4 to -1
!!HEv1&v1>-1/v1<156:O?v3; get attacker's Owner - will be 0-7 if attacker won
!!HEv2&v2>-1/v2<156:O?v4; get defender's Owner - will be 0-7 if defender won
!!DO461/0/6/1&v3>-1/v3<8:Pv1; check stacks 0-6 for attacker
!!DO462/0/6/1&v4>-1/v4<8:Pv2; check stacks 0-6 for defender

!?FU461&v9001=1; get exp. rank of troop in slot x16 of hero x1, vs. v[7090+x16]
!!HEx1:C0/x16/?y1/?y2/?y3/2; y1=type, y2=no., y3=experience
!!FU&y2<1:E; quit if no troops left in slot
!!VRv5:S7090+x16;
!!VRy4:Svv5;
!!HEx1&y4>y3:C0/x16/d/d/11/12; set rank to 11 if negative experience was
gained (overflow occurred)

!?FU462&v9001=1; get exp. rank of troop in slot x16 of hero x1, vs. v[7097+x16]
!!HEx1:C0/x16/?y1/?y2/?y3/2; y1=type, y2=no., y3=experience
!!FU&y2<1:E; quit if no troops left in slot
!!VRv5:S7097+x16;
!!VRy4:Svv5;
!!HEx1&y4>y3:C0/x16/d/d/11/12; set rank to 11 if negative experience was
gained (overflow occurred)
!!IF&610:V616/1;
(This post was last modified: 04.12.2010 20:36 by Sav.)
04.12.2010 20:09
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16720
Post: #1374

Sav, тебе нужно памятник ставить.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
04.12.2010 20:30
Find all posts by this user Quote this message in a reply
Chaomen Offline

Posts: 59
Post: #1375

(04.12.2010 20:30)Berserker Wrote:  Sav, тебе нужно памятник ставить.

   Это точно, скольким людям ты помог, кто бы знал...

   На счёт таблицы ers я понял, просто думал что в ней проблема, и скинул вместе с кодом.
05.12.2010 00:18
Visit this user's website Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #1376

Chaomen, в ers-файле ты пропустил одно из полей.

Вместо:
Code:
negative     92      7      0      5       1       0      90      Отключение отрицательного опыта монстров       Данный скрипт позволяет отключать появление отрицательного опыта монстров

напиши:
Code:
negative 92      7      0      5       1       0      90      Отключение отрицательного опыта монстров       отключение появления отрицательного опыта монстров      Данный скрипт позволяет отключить появление отрицательного опыта монстров.
(This post was last modified: 05.12.2010 21:12 by Sav.)
05.12.2010 21:12
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #1377

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

UPD: уже разобрался: надо проверить тип объекта на клетке с помощью !!OB.
(This post was last modified: 05.12.2010 23:06 by Sav.)
05.12.2010 22:47
Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 804
Post: #1378

Помогите правильно отредактировать вот это скрипт:

ZVSE
!#TM29:S1/999/7/255;
!?TM29;
!!UN:U63/19/?y1; для объхекта типа х подтипа у
!!DO278/1/y1/1&y1>0:P;

!?FU278;
!!UN:U63/19/x16/1;
!!PO1:N?y1;
!!FU&y1=0:E; если уже нуль, выход
!!PO1:N0; - каждую неделю обнуление

!?OB63/19&1000; [посещение объекта]
!!IF:V43/0; флаг сообщения
!!PO998:N?y1; (получить посещение)
!!IF&y1>0:M^объект в этой точке на карте нельзя посетить^;
!!FU273&y1=0:P; объект можно посетить, далее функция

!?FU273;
!!IF:Q43^{Да или Нет?}^;
!!PO998&43:N1; (запретить посещение этого объекта, в этой клетке на карте)

Скрипт должен работать так: на карте много объектов (тип 63/19 пепел). Каждый из них должен быть независимым друг от друга, т.е. посещаю 1 пепел, появляется скрипт, этот объект блокируется до следующей недели и его можно посетить только через неделю, или хотя бы в любой день на следующей недели. Посещаю 2-й пепел - там такой же сценарий и т.д. Объекты одного типа и подтипа должны работать каждый сам за себя, не влияя на другие.


Моя страница в ВК
Моя разработка мода
10.01.2011 22:48
Find all posts by this user Quote this message in a reply
Sav Offline

Posts: 2180
Post: #1379

Diman Master, поправил скрипт, кроме того убрал некоторые правильные, но ненужные действия (типа проверки на 0 перед обнулением и вызова лишних функций).


Изменения понятны, или стоит пояснить?
(This post was last modified: 11.01.2011 00:37 by Sav.)
11.01.2011 00:06
Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 804
Post: #1380

Sav, спасибо! Кое-что уже стало лучше, по крайней мере за 1 неделю не вылазиет 1 и тот же скрипт, но только что тестил его - там заметен сбой какой-то, 1 посетил и он больше никогда не включается, другой бывает включается через неделю, ещё другой опять непонятно как работает, вроде должно каждую неделю, а там то появляется, то нет. Может ещё чего-то нехватает в командах erm? Посмотри внимательней или протести его сам, если не получится, всё равно спасибо, тогда этот скрипт поясни.Rolleyes


Моя страница в ВК
Моя разработка мода
11.01.2011 00:20
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-2025 MyBB Group