Sav
Posts: 2180
|
В начале его хода сделать клетку красной, а в конце обратно поменять.
Ещё можно вроде закрыть объект для игрока.
|
|
16.11.2010 10:31 |
|
GhostManSD
Posts: 1054
|
Через триггер на движение любого героя и проверку активного героя?
Κακῆς ἀπ' ἀρχῆς γίγνεται τέλος κακόν.
(This post was last modified: 16.11.2010 14:26 by GhostManSD.)
|
|
16.11.2010 14:24 |
|
Efrit
Posts: 6183
|
GhostManSD, есть команда "проклятие бога" (!!HE:Y вроде) - она позволяет запретить посещение определённого объекта для определённого героя...
Welcome to the soldier side,
Where there is no one here but me.
People all grow up to die,
There is no one here but me...
|
|
16.11.2010 14:51 |
|
Sav
Posts: 2180
|
GhostManSD, через таймер на начало хода игрока и следующего игрока. А для объекта проще - в !!OB вроде можно. Или, действительно, через проклятье.
|
|
16.11.2010 15:52 |
|
Chaomen
Posts: 59
|
Как сделать, чтобы можно было ставить собственные скрипты в "Настройки WOG"?
|
|
04.12.2010 00:11 |
|
Sav
Posts: 2180
|
Создать ers-файл (как - написано в хелпе), который создаст опцию. А в скрипте поставить на все триггеры условие их выполнения - только если опция включена (т. е. в начале триггеров поставить проверку через !!UN:P, если не включено - выходить. Или проверить и записать результат в начале игры, тогда можно будет вставлять условия в сами триггеры).
(This post was last modified: 04.12.2010 00:59 by Sav.)
|
|
04.12.2010 00:24 |
|
Chaomen
Posts: 59
|
Хотя я сделал этот файл, скрипт всё равно не хочет появляться в настройках. Можешь посмотреть что делать?
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 |
|
Sav
Posts: 2180
|
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 |
|
Berserker
Posts: 16657
|
|
04.12.2010 20:30 |
|
Chaomen
Posts: 59
|
(04.12.2010 20:30)Berserker Wrote: Sav, тебе нужно памятник ставить.
Это точно, скольким людям ты помог, кто бы знал...
На счёт таблицы ers я понял, просто думал что в ней проблема, и скинул вместе с кодом.
|
|
05.12.2010 00:18 |
|
Sav
Posts: 2180
|
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 |
|
Sav
Posts: 2180
|
После того, как герой сходил, клетка, на которой он стоит в этот ход больше не считается жёлтой. Как можно определить стоит ли на клетке какой-нибудь герой (не проходя циклом по всем героям)?
UPD: уже разобрался: надо проверить тип объекта на клетке с помощью !!OB.
(This post was last modified: 05.12.2010 23:06 by Sav.)
|
|
05.12.2010 22:47 |
|
Barin
Posts: 804
|
Помогите правильно отредактировать вот это скрипт:
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 |
|
Sav
Posts: 2180
|
Diman Master, поправил скрипт, кроме того убрал некоторые правильные, но ненужные действия (типа проверки на 0 перед обнулением и вызова лишних функций).
ZVSE
!#TM29:S1/999/7/1;
!?TM29;
!!UN:U63/19/?y-1; для объхекта типа х подтипа у
!!VRv2:S-1;
!!DO185/1/y-1/1:P;
!?FU185;
!!UN:U63/19/-1/2;
!!POv2/v3/v4:N0; - каждую неделю обнуление
!?OB63/19&1000; [посещение объекта]
!!POv998/v999/v1000:N?y-1; (получить посещение)
!!IF&y-1>0:M^Объект в этой точке на карте нельзя посетить.^;
!!FU&y-1>0:E;
!!IF:Q43^{Да или Нет?}^;
!!POv998/v999/v1000&43:N1; (запретить посещение этого объекта, в этой клетке на карте)
Изменения понятны, или стоит пояснить?
(This post was last modified: 11.01.2011 00:37 by Sav.)
|
|
11.01.2011 00:06 |
|
Barin
Posts: 804
|
Sav, спасибо! Кое-что уже стало лучше, по крайней мере за 1 неделю не вылазиет 1 и тот же скрипт, но только что тестил его - там заметен сбой какой-то, 1 посетил и он больше никогда не включается, другой бывает включается через неделю, ещё другой опять непонятно как работает, вроде должно каждую неделю, а там то появляется, то нет. Может ещё чего-то нехватает в командах erm? Посмотри внимательней или протести его сам, если не получится, всё равно спасибо, тогда этот скрипт поясни.
Моя страница в ВК
Моя разработка мода
|
|
11.01.2011 00:20 |
|