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: 6185
|
Tafari, это не самый простой вопрос, и каких-то общих шаблонов здесь нет. В большинстве случаев, свойства каждого арта придётся реализовывать индивидуально.
Лучше напиши список самих свойств - так будет проще помогать. Заодно и можно будет объяснить на конкретных примерах
Welcome!
|
|
11.02.2012 22:31 |
|
Tafari
Posts: 5
|
Как-то заморочено получилось, кажется, даже нереально.... ![Bad Bad](http://wforum.heroes35.net/images/smilies/bad.gif) (
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: 6185
|
Ну, сразу же попробую написать скрипт для самых простых свойств, а именно - там, где идёт обычное прибавление какого-то навыка.
Скрипт не проверял, так что может и не работать. Но должен
P.S. Остальное будет чуть позже.
Welcome!
|
|
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: 16720
|
|
17.02.2012 19:13 |
|
Sav
Posts: 2180
|
Berserker Wrote:zer good
sehr gut ![Sm Sm](http://wforum.heroes35.net/images/smilies/sm.gif) Das ist Deutsch.
Berserker Wrote:Сав, отрицательные y-переменные не есть zer good, имхо.
А в чём с ними проблема? У меня они никогда не глючили. Хотя, сейчас я отучился их ставить, просто этот скрипт я писал давно и, поскольку он работает, не обратил внимания на эту мелочь. А вот SN:X передачей убрал.
|
|
17.02.2012 20:44 |
|
Berserker
Posts: 16720
|
|
17.02.2012 21:02 |
|
Sav
Posts: 2180
|
|
17.02.2012 21:34 |
|