NIKr0m@nceR
Posts: 203
|
(04.02.2012 15:35)gamecreator Wrote: chm - родной виндовый формат. может ты битый файл скачал?
емнип, chm - это сокращение от compiled html и "родная винда" открывает его с помощью IE который может отсутствовать/глючить/устареть/расплакаться и убежать
|
|
05.02.2012 17:21 |
|
etoprostoya
Posts: 1809
|
CHM открывается с помощью HH.EXE (Microsoft® HTML Help Executable). IE тут особо не причём.
|
|
05.02.2012 18:15 |
|
NIKr0m@nceR
Posts: 203
|
окей, я туплю. просто я себе на свежепрокатанной винде удаляю все что мне не требуется и chm-ы у меня открываются только лисой (что для меня, впрочем, удобнее). потому и подумал так
|
|
05.02.2012 19:48 |
|
Tafari
Posts: 5
|
Подскажите, пожалуйста, только начала осваивать erm, мой гуманитарный мозг взрывается... Есть ли какие-то шаблоны для придания пустым артефактам новых свойств? Я очень плохо все это понимаю... Хотелось бы всем пустым артам новые свойства прописать, а как, не знаю..
|
|
11.02.2012 21:39 |
|
Efrit
Posts: 6183
|
Tafari, это не самый простой вопрос, и каких-то общих шаблонов здесь нет. В большинстве случаев, свойства каждого арта придётся реализовывать индивидуально.
Лучше напиши список самих свойств - так будет проще помогать. Заодно и можно будет объяснить на конкретных примерах
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...
|
|
11.02.2012 22:31 |
|
Tafari
Posts: 5
|
Как-то заморочено получилось, кажется, даже нереально.... (
161 - Шлем: +25 к Знаниям
162 - Меч: +25 к Атаке
163 - Щит: дается(при наличии свободного слота) навык Сопротивления уровня "эксперт", в начале каждого боя на всех юнитов действует заклинание "Щит"
164 - Кольцо: дается навык Волшебство уровня "эксперт"
165 - Кольцо 3х камней: даются навыки Магии Земли, Огня и Воды уровня "эксперт"
166 - Широкое ожерелье: дается навык Дипломатии уровня "эксперт"
167 - Броня: +25 к Защите
168 - Мантия: +25 к Колдовской силе
169 - Ботинки: ускоряют передвижение героя по карте в 2 раза, дается навык Магии Воздуха уровня "эксперт"
170 - Рог: дается по 10 единиц каждого ресурса и 5000 золота каждую неделю (если предмет не в рюкзаке)
|
|
11.02.2012 23:40 |
|
Efrit
Posts: 6183
|
Ну, сразу же попробую написать скрипт для самых простых свойств, а именно - там, где идёт обычное прибавление какого-то навыка.
Скрипт не проверял, так что может и не работать. Но должен
P.S. Остальное будет чуть позже.
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...
|
|
12.02.2012 20:09 |
|
igrik
Posts: 2819
|
Tafari, сам когда-то ломал голову над подобным. Вот просмотри, может что для себя и найдешь...
ZVSE
_WARNING_#1=IMPORTANT! This file is not in a plain text format. NEVER use any editor except ERM_S for making any kind of changes!
ERMS_PoweredBy=ERM Scripter v. 2004.10.5.945
ERMS_ScriptDate=26.1(January).2012
-------------------------------------------------------------------------------- артефакт МОЩЬ СТИХИЙ Номер 166
Дает: 1. Эксперт магий земля+вода+воздух+огонь только в бою
--------------------------------------------------------------------------------
!?OB5/166;
!!HE-1:A166;
!!UN:Ov998/v999/v1000/1;
!!IF&1000:M^Вы наткнулись на Мощь Стихий, стряхнули с неё пыль и положили в свой ранец.^;
!#VRz891:S^Мощь Стихий^; (Запомним в переменную z891 название артефакта)
!#VRz892:S^{Мощь Стихий}
Позволяет в бою творить заклинания всех школ магии с максимальной эффективностью.^; (Запомним в переменную z892 описние плаща)
!#UN:A166/2/9; (позиция на теле - разное)
!#UN:A166/4/25; (Номер нашего комбо-артефакта)
!#UN:A166/1/35000; (Даём нашему артефакту цену 35000 золотых)
!#UN:A166/3/16; (Ценность нашего арта. Он у нас реликт. Это 16)
!#UN:A166/9/z891; (Присвоим нашему плащу название, запомненное в z891)
!#UN:A166/10/z892; (Присвоим нашему плащу описание, запомненное в z892)
!?AE1&v998=166;
!!HE-1:Fd/d/d3/d; (При одевании артефакта дает +3 колдовской)
!?AE0&v998=166;
!!HE-1:Fd/d/d-3/d; (при снятии артефакта забирает 3 колдовской)
!?AE1&v998=166; устанавливаем личную переменную героя при одевании артефакта (переменная говорит (я приверяю ее в бою) что артефакт одет.)
!!IF:W-1;
!!VRw93:S1;
!?AE0&v998=166; устанавливаем личную переменную героя при снятии артефакта
!!IF:W-1;
!!VRw93:S0;
!#UN:A79/5/25; (делает Сферу Небесного Свода составной частью артефакта)
!#UN:A80/5/25; (делает Сферу Илистого Озера составной частью артефакта)
!#UN:A81/5/25; (делает Сфера Бушующего Огня составной частью артефакта)
!#UN:A82/5/25; (делает Сфера Проливного Дождя составной частью артефакта)
!#UN:A25/166/79/80/81/82; (Собирает Мощь Стихий из вышеуказаных артефактов)
*/--- Настраиваем эксперт всех магий в бою -------------------
!?BA0;
!!BA:H0/?v375; запоминаем номер атакующего героя в переменную v375
!!IF:Wv375;
!!HEv375&w93=1:S14/?v377; узнаем навыки земли, воды, огня и воздуха
!!HEv375&w93=1:S15/?v378;
!!HEv375&w93=1:S16/?v379;
!!HEv375&w93=1:S17/?v380;
!!HEv375&w93=1:S14/3; устанавливаем навыки земли, воды, огня и воздуха в эксперт
!!HEv375&w93=1:S15/3;
!!HEv375&w93=1:S16/3;
!!HEv375&w93=1:S17/3;
!!BA:H1/?v376; тоже для защищающегося героя
!!FU&v376=-2:E; если героя нет (т.е.битва с нейтралом) выход
!!IF:Wv376;
!!HEv376&w93=1:S14/?v381;
!!HEv376&w93=1:S15/?v382;
!!HEv376&w93=1:S16/?v383;
!!HEv376&w93=1:S17/?v384;
!!HEv376&w93=1:S14/3;
!!HEv376&w93=1:S15/3;
!!HEv376&w93=1:S16/3;
!!HEv376&w93=1:S17/3;
!?BA1; тригер после битвы- возвращаем вторичные навыки обратно
!!HEv375&w93=1:S14/v377; для атакующего героя
!!HEv375&w93=1:S15/v378;
!!HEv375&w93=1:S16/v379;
!!HEv375&w93=1:S17/v380;
!!FU&v376=-2:E;
!!HEv376&w93=1:S14/v381; для защищающегося героя
!!HEv376&w93=1:S15/v382;
!!HEv376&w93=1:S16/v383;
!!HEv376&w93=1:S17/v384;
*/--- конец функции------------------ -------------------
--------------------------------------------------------------------------------
конец функции артефакта мощь стихий
--------------------------------------------------------------------------------
-------------------------------------------------------------------------------- Шлем Императора Номер 161
Дает: 1. Объединяет несколько сильнейших артефактов 2. +25 ко всем парамертам
--------------------------------------------------------------------------------
!?OB5/161;
!!HE-1:A161;
!!UN:Ov998/v999/v1000/1;
!!IF&1000:M^Какой странный шлем!
Ничего подобного я ещё не видел...^;
!#VRz897:S^Шлем Завоевателя^; (Запомним в переменную z897 название артефакта)
!#VRz898:S^{Шлем Завоевателя}
Повышает все первичные навыки героя
на 25 баллов. Имеет скрытые свойства^; (Запомним в переменную z898 описние плаща)
!#UN:A161/1/100000; (Даём нашему артефакту цену 100000 золотых)
!#UN:A161/3/16; (Ценность нашего шлему. Он у нас реликт. Это 16)
!#UN:A161/1/25; (Даём нашему артефакту цену 25 золотых)
!#UN:A161/3/16; (Ценность нашего арта. Он у нас реликт. Это 16)
!#UN:A161/9/z897; (Присвоим нашему шлему название, запомненное в z897)
!#UN:A161/10/z898; (Присвоим нашему шлему описание, запомненное в z898)
!?AE1&v998=161;
!!HE-1:Fd25/d25/d25/d25; (При одевании артефакта дает +25 ко всем параметрам.)
!!IF:V372/1 V373/0; устанавливаем флаги 382 в 1 и 373 в 0, зечем я это делал уже не помню))) да и вообще эта строка вроде не нужна
!?AE0&v998=161;
!!HE-1:Fd-25/d-25/d-25/d-25; (при снятии артефакта отнимает по 25 от всех параметров)
!!IF:V372/0 V373/1;
* задаем "халявные" вторичные навыки...
!?AE1&v998=161; (При одевании артефакта Дает Эксперт нападение)
!!IF:W-1; обращение к личной переменной текущего героя
!!HE-1:S22/?w110; запоминаем уровень вторичного навыка героя в w110 для того, чтобы потом вернуть его обратно при снятии арта.
!!HE-1:S22/3; устанавливаем эксперт
!?AE0&v998=161; (При снятии артефакта возвращает уровень навыка нападения)
!!IF:W-1;
!!HE-1:S22/w110;
!?AE1&v998=161; (При одевании артефакта Дает Эксперт Защиту)
!!IF:W-1;
!!HE-1:S23/?w111;
!!HE-1:S23/3;
!?AE0&v998=161; (При снятии артефакта возвращает уровень навыка защиты)
!!IF:W-1;
!!HE-1:S23/w111;
!?AE1&v998=161; (При одевании артефакта Дает Эксперт меткость)
!!IF:W-1;
!!HE-1:S1/?w112;
!!HE-1:S1/3;
!?AE0&v998=161; (При снятии артефакта возвращает уровень навыка меткость)
!!IF:W-1;
!!HE-1:S1/w112;
!#UN:A83/5/26; (делает Плащь отречения составной частью артефакта при правом клике можно собрать)
!#UN:A108/5/26; (делает Брелок Смелости составной частью артефакта при правом клике можно собрать)
!#UN:A125/5/26; (делает Оковы Войны составной частью артефакта при правом клике можно собрать)
* также частями артефакта являются:
* топор свирепости лорда варваров, элексир жизни и лук снайпера
!#UN:A26/161/83/108/125/131/137/158; (Собирает Шлем Завоевателя из указаных артефактов) -------------------------------------------------------------------------------
* Артефакт нельзя разобрать
* вот код, делающий запрет на его разборку
* 1. В окне героя
!?CM2;
!!UN:R3/-1; обновляем экран текущего героя
!!CM:F?v1 I?v2;
!!VRv1:&512;
!!FU&v1=0:E;
!!FU&v2<>2:E; вторая двойка означает (= позицию на теле +2) (= голова 0 + 2)
!!HE-1:A2/161/d/?v1;
!!FU&v1=0:E;
!!CM:R0; обновляем окно героя
!!IF:Q648/-1/-1/4^{Шлем Завоевателя}
Повышает все первичные навыки героя
на 25 баллов. Имеет скрытые свойства.
* * * *
Невозможно разобрать на части.^; описание при правом клике мышью без кнопки "ок"
!!FU:E; выход
* 2. При Обмене между героями
!?CM3;
!!CM:F?v1 I?v2 H?v3/?v4;
!!VRv1:&512;
!!FU&v1=0:E;
!!FU&v2<>27:E; голова позиция на первом герое 27
!!HEv3:A2/161/d/?v1;
!!FU&v1=0:E;
!!CM:R0;
!!IF:Q648/-1/-1/4^{Шлем Завоевателя}
Повышает все первичные навыки героя
на 25 баллов. Имеет скрытые свойства.
* * * *
Невозможно разобрать на части.^;
!!FU:E; выход
!?CM3;
!!CM:F?v1 I?v2 H?v3/?v4;
!!VRv1:&512;
!!FU&v1=0:E;
!!FU&v2<>46:E; голова позиция на втором герое 46
!!HEv4:A2/161/d/?v1;
!!FU&v1=0:E;
!!CM:R0;
!!IF:Q648/-1/-1/4^{Шлем Завоевателя}
Повышает все первичные навыки героя
на 25 баллов. Имеет скрытые свойства.
* * * *
Невозможно разобрать на части.^;
!!FU:E; выход
--------------------------------------------------------------------------------
конец скрипта
--------------------------------------------------------------------------------
Данный код можно тупо скопировать в скрипт. Но лучше сама разберись с каждой строчкой...
И вот ссылка по данной теме http://forum.df2.ru/index.php?showtopic=2457
game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 14.02.2012 17:33 by igrik.)
|
|
14.02.2012 16:56 |
|
Tafari
Posts: 5
|
Спасибо огромное! Потестим все...
igrik, спасибо, конечно буду разбираться, мне обидно просто тупо копипастить, хочу все понимать..
|
|
16.02.2012 14:51 |
|
igrik
Posts: 2819
|
Tafari, вот скрипт на щит - 163 арт. Как по мне - он самый сложный из всех предложенных. Я постарался объянить его как можно доступнее.
ZVSE
!?OB5/163; при посещении объекта тип 5 (артефакты) подтипа 163 (номер нашего арта)
!!HE-1:A163; дать текущему героя артефакт №163
!!UN:Ov998/v999/v1000/1; удалить посещенный объект с карты, а также удалить его описание
!!IF&1000:M^Вы наткнулись на бла-бла-бла Щит, стряхнули с него пыль и положили в свой ранец.^;
!#VRz883:S^Щит бла-бла-бла^; (Запомним в переменную z883 название артефакта) При настройке следующих артов или т.п, данная переменная (z883) не должна нигде использоваться, иначе собъётся описание
!#VRz884:S^{Щит бла-бла-бла}
Надетый на левую руку Щит бла-бла-бла увеличивает сопротивление магии героя. В начале боя все войска героя защищены заклинанием "Щит".^; (Запомним в переменную z884 описние щита) При настройке следующих артов или т.п, данная переменная (z892) больше нигде не должна использоваться
!#UN:A163/1/25000; (Даём нашему щиту цену 25000 золотых)
!#UN:A163/3/8; (Ценность нашего арта. Он у нас важный - это 8)
!#UN:A163/9/z883; (Присвоим название, запомненное в z891)
!#UN:A163/10/z884; (Присвоим описание, запомненное в z892)
!?AE1&v998=163; тригер при одевании артефакта №163
!!HE-1:Fd/d2/d/d; (При одевании артефакта дает +2 защиты)
!!IF:W-1; обращение к личной переменной текущего героя (у каждого героя их от w1 до w200)
!!HE-1:S26/?w120; узнаем текущий уровень втор.навыка сопротивление и запоминаем его в w120 чтобы при снятии арта вернуть навык сопротивления таким, какой он бвл у героя до одевания артефакта/ При настройке следующих артов или т.п, данная переменная (w120) больше нигде не должна использоваться
!!HE-1:S26/3; устанавливаем сопротивление в эксперт
*/ в данном коде я не проверял заняты ли все слоты втор.навыков героя или нет. Т.е. навык сопротивления установится в эксперт даже если все слоты будут заняты (он станет скрытым навыком)
!?AE0&v998=163; тригер при снятии артефакта №163
!!HE-1:Fd/d-2/d/d; (при снятии артефакта -2 защиты)
!!IF:W-1; обращение к личной переменной текущего героя
!!HE-1:S26/w120; возвращаем уровень сопротивления (какой был до одевания артефакта)
*/ настраиваем щит на существ в бою
*/ 1) для атакующего героя
!?BR0; боевой тригер
!!BA:H0/?v375; узнаем номер атакующего героя и запоминаем его (номер героя) в переменную v375
!!HEv375:A1/?y1/4; проверяем номер артефакта, одетого на левую руку атакующего героя и запоминаем его (номер артефакта) в переменную y1. Если никакой артефакт не одет, то переменная y1 будет равна -1.
!!FU&y1<>163:E; выход, если у1 не равна 163 (означает, что щит на руке не одет)
!!DO3553/0/20/1:P; старт циклической функции (под любым неиспользованным номером, я взял №3553) от 0 до 20 с шагом 1. От 0 до 20 потому что у каждого из героев (и атакующего и защищающегося имеется по 21 стеков для существ во время боя - 7 оновных и 11 для вызова, например вызова элементалей)
!?FU3553; старт функции №3553. Она стартует 21 раз
!!BMx1:M27/99/2; переменная х1 - это переменная в циклической функции. Здесь она содержит номер стека и изначально равна 0. 27 -номер заклинания щита. 99 - продолжительность. 2 - щит продвинутого уровня
!!VRx1:+1; выполняем переход к следующиму по порядку стеку при следующем старте функции
*/ 2) для защищающегося героя
!?BR0; боевой тригер
!!BA:H1/?v376; тоже, но для защищающегося героя
!!HEv376&v376<>-2:A1/?y2/4; тоже для защищающегося героя (сработает только если защищающийся герой существует (не равен -2), чтобы не выбивало ошибок, т.е. битва не с нейтралами)
!!FU&y2<>163:E; выход, если у2 не равна 163 (если щит на руке не одет)
!!DO3554/0/20/1:P; то же, что и в первом случае
!?FU3554; то же, что и в первом случае
!!VRx1&x1=0:S21; номера стеков защищающегося героя начинаются с 21-го
!!BMx1:M27/99/2; то же, что и в первом случае
!!VRx1:+1; то же, что и в первом случае
--------------------------------------------------------------------------------
конец скрипта
--------------------------------------------------------------------------------
Всё остальное просто.
Для 169 и 170 используй ещё и таймеры ( !!TM... и !?TM...)
game bug fixes extended.dll || My Plugins || My GitHub
(This post was last modified: 17.02.2012 23:19 by igrik.)
|
|
17.02.2012 14:42 |
|
Sav
Posts: 2180
|
Tafari Wrote:в начале каждого боя на всех юнитов действует заклинание "Щит"
Кошерная, насколько это возможно для скрипта, реализация для Эры:
ZVSE
ERMS_ScriptName=Art_spell
ERMS_ScriptAuthor=Sav
ERMS_ScriptVersion=1.0.0
ERMS_ScriptDate=12.11(November).2010
ERMS_ScriptERMVersion=3.00
ERMS_ScriptLanguage=Русский or русский (native)
ERMS_ScriptUsedVariables=v9303;z181;z182
ERMS_ScriptUsedFunctions=10051
_WARNING_#1=IMPORTANT! This file is not in a plain text format. NEVER use any editor except ERM_S for making any kind of changes!
ERMS_PoweredBy=ERM Scripter v. 2004.10.5.945
!#UN:A163/1/30000;Устанавливаем стоимость артефакта.
!#UN:A163/2/4;Устанавливаем позицию для артефакта.
!#UN:A163/3/16;Устанавливаем класс артефакта.
!#UN:A163/4/-1;Устанавливаем номер комбо-артефакта.
!#UN:A163/5/-1;Сбрасываем принадлежность артефакту.
!#UN:A163/8/0;Сбрасываем получение заклинаний от артефакта.
!#VRz181:S^Непробиваемый щит.^;Подготавливаем переменную с именем артефакта.
!#UN:A163/9/181;Сбрасываем имя артефакта на стандартное.
!#VRz182:S^В начале боя накладывает Щит на все войска героя на 20 раундов.^;Подготавливаем переменную с описанием артефакта.
!#UN:A163/10/182;Устанавливаем описание артефакта.
!?BA0;В начале битвы... !!VRv9303:S0;Сбрасываем контрольную переменную.
!?BR&v997=0;В начале первого раунда (после тактической фазы)... !!VRv9303:S3;Устанавливаем контрольную переменную в 3 (т. е. 1-й и 2-й биты в 1).
!?FU77007;(Триггер Эры) перед действием существа... !!SN:X?v2;Считываем номер ходящего стека. !!VRy7:Sv2:21;Вычисляем номер ходящей стороны. !!VRy7:+1;Вычисляем номер бита контрольной переменной для ходящей стороны. !!VRy1:Sv9303&y7;Проверяем соответствующий ходящей стороне бит контрольной переменной на 0. !!FU&y1=0:E;Если это не первое действие атакующей стороны нетактической фазы боя (т. е. соответствующий ходящей стороне бит контрольной переменной равен 0), выходим из триггера. !!VRv9303:-y7;Обнуляем соответствующий ходящей стороне бит контрольной переменной. !!VRy7:-1;Возвращаем номер ходящей стороны. !!BA:Hy7/?y1;Считываем номер героя ходящей стороны. !!FU&y1<=-2:E;Если у ходящей стороны нет героя, выходим из триггера. !!HEy1:A2/163/d/?y2;Проверяем, сколько на героя надето артефактов №163. !!FU&y2<=0:E;Если ни одного, выходим из триггера. !!VRy8:Sy7*21;Вычисляем номер первого стека ходящей стороны. !!VRy9:Sy7*21+20;Вычисляем номер последнего стека ходящей стороны. !!HEy1:A2/0/d/?y4;Проверяем, сколько на героя надето книг заклинаний. !!HEy1&y4=0:A4/0;Если ни одной, даём книгу заклинаний герою. !!BHy7:M?y5;Считываем возможность героя колдовать. !!HEy1:I?y6/1;Считываем количество маны у героя (без обновления экрана - иначе будет видна строка ресурсов). !!BHy7:C27/0/3/0;Колдуем щит героем. !!BHy7:My5;Восстанавливаем возможность героя колдовать. !!HEy1:Iy6/1;Восстанавливаем ману героя (без обновления). !!HEy1&y4=0:A3/0/1/1;Если у героя не было книг заклинаний, отнимаем ту, которую дали. !!DO10051/y8/y9/1:P27;Запускаем цикл, проходящийся по всем стекам стороны и устанавливающий длительность заклинания (номер - параметр).
;Функции контроля длительности заклинаний на стеках.
!?FU10051;Функция установки длительности заклинания на стеке. !!BMx16:N?y1;Считываем количество существ в стеке. !!FU&y1<=0:E;Если в стеке нет существ, завершаем функцию. !!VRy1:S20;Длительность заклинания. !!BMx16:Gx1/y1/d;Продлеваем заклинание.
(This post was last modified: 17.02.2012 21:34 by Sav.)
|
|
17.02.2012 16:34 |
|
Berserker
Posts: 16657
|
|
17.02.2012 19:13 |
|
Sav
Posts: 2180
|
Berserker Wrote:zer good
sehr gut Das ist Deutsch.
Berserker Wrote:Сав, отрицательные y-переменные не есть zer good, имхо.
А в чём с ними проблема? У меня они никогда не глючили. Хотя, сейчас я отучился их ставить, просто этот скрипт я писал давно и, поскольку он работает, не обратил внимания на эту мелочь. А вот SN:X передачей убрал.
|
|
17.02.2012 20:44 |
|
Berserker
Posts: 16657
|
|
17.02.2012 21:02 |
|
Sav
Posts: 2180
|
|
17.02.2012 21:34 |
|