Полная версия этой страницы:
Вопросник
gamecreator
09 Sep 2007, 20:08
y и -
Добавлено ([mergetime]1189357687[/mergetime]):
и х
Добавлено ([mergetime]1189357719[/mergetime]):
а еще не сохраняются временные переменные и флаги
Berserker
09 Sep 2007, 20:18
Вообще-то это всё детально расписано в справочнике в разделе переменных.
Локальные: y1..100, y-1 .. y-100, e1..e100, e-1..e-100, z-1..z-10,x1..x16 и прочие.
Кто-нибудь пробовал в действии
!!HE#:R7/$Я пробовал через это съэмулировать посещение гробницы, да только ничего не вышло... Толи я что-то не так сделал, то ли эта команда работает не стабильно. В общем, выводилось совсем другое, да ещё и в удачу что-то добалялось

Короче, я так и не смог добиться нормальной реакции на задаваемый мною код.
Скажите...
- что за команда такая !#CD:B2

(ERM 3.0 only)
В справочнике есть только В0, В1 и В3.
- Можно ли, к примеру для !!IF, писать параметры ресивера без отступа... !!IF:V1/0V2/1;

- что за синтаксис такой, когда для ресивера пишут не !!, а ! !
Ведь это не одно и тоже, ведь так?
Demiurg
11 Sep 2007, 19:40
Цитата(Bes @ 11 Sep 2007, 19:52)
- Можно ли, к примеру для !!IF, писать параметры ресивера без отступа... !!IF:V1/0V2/1;

Не пробовал. Думаю, что можно. Кажется, где-то видел.
Цитата
- что за синтаксис такой, когда для ресивера пишут не !!, а ! !
Ведь это не одно и тоже, ведь так?
Это не синтаксис)
Это простейший способ закомментировать(выключить) ресивер.
И ещё...
- Меня смущает вот это !!VRy1:S10 R5 S10 R5;
Разве здесь не идёт повторение действия?
- Если делать прерывание в ф-ции через FU:E, что меняется когда эту оперцию писать с номером этой ф-ции? Т.е. !!FU25&y1=4:E;
Разве не проще просто !!FU&y1=4:E;
Demiurg
11 Sep 2007, 22:57
Цитата(Bes @ 11 Sep 2007, 23:32)
И ещё...
- Если делать прерывание в ф-ции через FU:E, что меняется когда эту оперцию писать с номером этой ф-ции? Т.е. !!FU25&y1=4:E;
Разве не проще просто !!FU&y1=4:E;
Этот параметр скорее всего не используется, то есть можно поставить вместо 25 что угодно. Однако, в будущих версиях возможно будет иметь смысл
Код
!?FUv1&v1>0;
...
!!FU23:E;// выход, только для функции 23
...
Сейчас же синтаксис !?FU<variable>; не поддерживается.
Скажите, пожалуйста, что это такое:
""Apply"-wrong indexing var type in "?$$$" (1...[10000])."
-----Context-----
A101/4/v6101; !!VRy2:Sv6101-2; !!UN:N3/?z1/y2/1; !!DL3:A111/3/z1;
!!DL3:A201/4/v6201; !!VRy2:Sv6201-2; !!UN:N3/?z2/y2/1; !!DL3:A211/3/z2;
!!DL3:A102/4/v6102; !!VRy2:Sv6102-2; !!UN:N3/?z3/y2/1; !!DL3:A.....
Я так и не понял, что за ошибке и где она там
Demiurg
12 Sep 2007, 14:38
Цитата(Bes @ 12 Sep 2007, 14:05)
A101/4/v6101;
ошибка в этой команде. Только вот начало у нее ERM уже прожевал, а дальше встретил нечто несъедобное и выплюнул в wogcrashlog (wogermlog). Говорит, что неверен идекс v-переменной.
gamecreator
12 Sep 2007, 20:37
Цитата(Demiurg @ 11 Sep 2007, 22:57)
Можно несколько упростить это выражение:
!!VRy1:S20 R5 R5;
не получится.
в оригинале: у1=10, у1=у1+[0..5], у1=10, у1=у1+[0..5].
у тебя: у1=20, у1=у1+[0..5]+[0..5].
что, согласись, не одно и то же
Demiurg
12 Sep 2007, 20:57
Цитата(gamecreator @ 12 Sep 2007, 21:37)
что, согласись, не одно и то же
Действительно. Тогда замысел автора воистину непонятен.
вот я я про тоже...
что-то Deo намудрил с генерацией... не проще было просто !!VRy1:S10 R5;
Хотел увеличить фактор случайности.
>A101/4/v6101;
С инструкцией DL:A коряво работает TE.
gamecreator
13 Sep 2007, 16:08
Цитата(Deo @ 13 Sep 2007, 14:28)
Хотел увеличить фактор случайности.
используй Т
Что за синсаксис такой:

!!HE-1:M=65/598;
Смысл я его понял...Т.е. если Клон есть в книге, то флаг 598 установить в истину.
Но вот такой способ я первый раз вижу.
gamecreator
17 Sep 2007, 22:13
это работает?
нет, но интересно, что имел ввиду автор, прописывая это (вдруг он знает что-то, чего не знаю я)
Demiurg
17 Sep 2007, 22:53
Автор хотел узнать в флаг #598, выучен спелл #65 у героя или он имеет этот спелл от артефакта.
так всё же, есть такой синтаксис???
(где про это в справке почитать???)
Demiurg
17 Sep 2007, 23:00
Однако, автор не учел, содержащуюся в хелпе ошибку. Правильным является синтаксис:
!!HE:M=#/?$;
# - номер заклинания
$ - переменная, куда получить результат
Например:
!!HEy-7:M=y-6/?v1;
Подскажите пожалуйста, каким способом (конкретно триггер и его параметры) лучше в битве считывать опытность того или иного отряда (в частности атакующего и атакуемого)???

Под опытностью я подразумеваю уровень опыта отряда (10 уровней которые)
Очень надо, а я никак не могу сообразить как это мне делать

Спасибо!!!!!!!
Demiurg
19 Sep 2007, 23:10
Имхо, простого способа не существует.
Блин, ну хоть какой, я такого не разу не делал и не знаю как

Если можно, маленький пример

Пожалуйста!!! Кто-нибудь!!!
Demiurg
20 Sep 2007, 13:29
По идее нужно делать так:
1) Получаем количество опыта у стека с помощью !!EA:E
2) Получаем максимальный опыт существа с помощью !!EA:L
3) Исходя из значения максимального опыта устанавливаем какому количеству опыта соответствует какой ранг
4) Смотрим, в какой диапазон попадает текущее количество опыта и, таким образом, определяем ранг.
Только есть подозрение, что !!EA:E не работает в получающем синтаксисе (под TE)
Ну и геморно все это.
Цитата(Druin)
MA:L
К сожалению, это не завяжешь к конкретному отрыду

Блин, что же мне делать (абилки существ тогда "горят"

)
Че значит не привяжешь?... Проверяешь по BM:T тип монстра в стеке, а после получаешь уровень...
sergroj
20 Sep 2007, 20:06
Цитата(Demiurg @ 18 Sep 2007, 03:00)
Однако, автор не учел, содержащуюся в хелпе ошибку. Правильным является синтаксис:
!!HE:M=#/?$;
# - номер заклинания
$ - переменная, куда получить результат
Например:
!!HEy-7:M=y-6/?v1;
Ты уверен?? А то твой снтаксис противоречит общим принцыпам снтаксиса ЕРМ, в отличие от описанного в erm_help.
Demiurg
20 Sep 2007, 20:27
Цитата(sergroj @ 20 Sep 2007, 21:06)
Цитата(Demiurg @ 18 Sep 2007, 03:00)
Однако, автор не учел, содержащуюся в хелпе ошибку. Правильным является синтаксис:
!!HE:M=#/?$;
# - номер заклинания
$ - переменная, куда получить результат
Например:
!!HEy-7:M=y-6/?v1;
Ты уверен?? А то твой снтаксис противоречит общим принцыпам снтаксиса ЕРМ, в отличие от описанного в erm_help.
Святая правда. Меня это тоже удивило. Но это оказался единственный рабочий синтаксис.
Цитата(Druin)
Че значит не привяжешь?... Проверяешь по BM:T тип монстра в стеке, а после получаешь уровень...
Но ведь MA:X работает для всех сразу! ...вдруг я буду атаковать тем же существом, как атакованный (атакер и жертва одинакового типа). Тут такой вариант не годится...

имхо (может я ошибаюсь

)
Berserker
20 Sep 2007, 20:54
Всё просто.
1) EX:E
E$1/$2/$3/$4;
$1 - experience points
$2 - modifier (as for HE:C modifier - parameter 6)
$3 - creature type
$4 - creature number
Comment:
You may use this command ONLY for a stack on a battlefield.
So it should be !!EA-1:... !!EA-42:...
Итак, номер нужного стёка *-1, затем получаем его опыт.
Далее, скорее всего монстры качаются равномерно. Вывод: EX:L
Получили опыт для 10-го ранга
Делим на 10 - получаем кол-во опыта на 1 ранг.
Делим текущий опыт на ранговый_опыт и получаем ранг нужного стёка.
gamecreator
20 Sep 2007, 21:28
Цитата(Bes @ 20 Sep 2007, 20:44)
Но ведь MA:X работает для всех сразу!
все намного проще. BM:F
Demiurg
20 Sep 2007, 21:57
Цитата(Berserker @ 20 Sep 2007, 21:54)
Всё просто.
1) EX:E
E$1/$2/$3/$4;
$1 - experience points
$2 - modifier (as for HE:C modifier - parameter 6)
$3 - creature type
$4 - creature number
Comment:
You may use this command ONLY for a stack on a battlefield.
So it should be !!EA-1:... !!EA-42:...
Зачем народ путать. Не EX:E, а EA:E. Кроме того, я сомневаюсь в работоспособности читающего синтаксиса данной команды под TE.
Цитата
Итак, номер нужного стёка *-1, затем получаем его опыт.
И здесь ты не прав. Нужно применить операцию инверсии всех битов.
!!VR:X-1;
Цитата
Далее, скорее всего монстры качаются равномерно.
Плюнь в лицо тому, кто тебе это сказал!!!
Цитата
Вывод: EX:L
Получили опыт для 10-го ранга
И здесь похоже ты перепутал с !!EA:L И кстати не для десятого, а для 11ого.
Berserker
20 Sep 2007, 22:20
//Зачем народ путать. Не EX:E, а EA:E. Кроме того, я сомневаюсь в работоспособности читающего синтаксиса данной команды под TE.
Спутал случайно. Но всё работает, это раз
//И здесь ты не прав. Нужно применить операцию инверсии всех битов.
!!VR:X-1;
Пожалуйста +1*-1
//Плюнь в лицо тому, кто тебе это сказал!!!
Я ещё в животное не превратился и даже не произошёл от них

А что, не так?
//И здесь похоже ты перепутал с !!EA:L И кстати не для десятого, а для 11ого.
Да я назвал ресиверы наоборот, но уровень 10! 1-10.Ведь ранг 0 - нет ранга
Demiurg
20 Sep 2007, 22:27
Монстры качаются очень неравномерно. Между 9м и 10м рангом разница примерно 14% от опыта 10ого ранга существа. А между 0м и 1м разница примерно 5% от опыта 10ого ранга. А 11ый ранг - максимальное количество опыта. Ибо опыт продолжает расти после достижения 10ого ранга вплоть до 11ого. На 11ом ранге никаких дополнительных бонусов не дают, но опыт дальше перестает расти.
Berserker
20 Sep 2007, 22:30
Посмотрел я опыт монстров, разница между рангами - не константаная величена, а арифм прогрессия, вроде для глаз:
2000, 2400, 2800, 3200...с d=400
В среднем даёт 3500, что В СРЕДНЕМ отражает суть. То есть на 5 ранге будет норма, а отклонения незначительны для скрипта.
Добавлено ([mergetime]1190316536[/mergetime]):
10 ранг - последний значящий. 11 - бессмысленный
Добавлено ([mergetime]1190316654[/mergetime]):
посмотрел драконов, уже другой подход. Вывод: всё делалось от балды.
Посему берём среднее.
Demiurg
20 Sep 2007, 22:35
С помощью !!EA:L действительно устанавливается 10ый уровень. Но 11ый ранг все равно есть.
Berserker
20 Sep 2007, 22:51
Итак,
с = const для каждого уровня
d = уровень_моснтра+1*100
1 ранг - c, второй c+c, третий c+c+d, четвёртый c+c+c+d+d...
Добавлено ([mergetime]1190317916[/mergetime]):
c=уровень*500+500
Всё это хорошо, спасибо за напутсвия...
Но есть одна маленькая проблема

Для боевых нужд у !!EA поддерживается только 4 параметра: E, D, O, R (согласно англ. html-help)
Так что все мои попытки заполучить макс. опыт через EA-#:L?$; оказались тщетны, там всё время 0!
Ладно, попробую выкрутиться, хотя надежд мало

ЗЫ:4 gamecreator
Цитата(gamecreator)
Цитата(Bes @ 20 Sep 2007, 20:44)
Но ведь MA:X работает для всех сразу!
все намного проще. BM:F
я тут описался, я говорил про MA:L
Demiurg
21 Sep 2007, 14:02
Цитата(Bes @ 21 Sep 2007, 14:23)
Для боевых нужд у !!EA поддерживается только 4 параметра: E, D, O, R (согласно англ. html-help)
Так что все мои попытки заполучить макс. опыт через EA-#:L?$; оказались тщетны, там всё время 0!
Ты не много не понял.
В ресивер EA:L нужно подставлять тип существа, который, зная номер стека ты можешь легко определить.
gamecreator
21 Sep 2007, 18:16
Цитата(Bes @ 21 Sep 2007, 13:23)
я говорил про MA:L

эээ.. а зачем менять уровень конкретному стеку?
менять не требуется, требуется считывать его!
Но я решил это проблему!

Теперь всё работает, ура!
Добавлено ([mergetime]1190394435[/mergetime]):
Цитата(Demiurg)
Ты не много не понял.
В ресивер EA:L нужно подставлять тип существа, который, зная номер стека ты можешь легко определить.
Всё равно не понял, что вы мне пытались разъяснить

В справке говориться, что используя EA:L можно задать/получить макс. уровень (т.е. предел по опыту), на сколько я это понял...
Я для этого использую !!ЕА$тип монстра$:L?y1;
а когда пытался !!ЕА$-стэк монстра$:L?y1;, то ничего не получал...
Вот.
Demiurg
21 Sep 2007, 20:23
Цитата(Bes @ 21 Sep 2007, 21:07)
В справке говориться, что используя EA:L можно задать/получить макс. уровень (т.е. предел по опыту), на сколько я это понял...
Я для этого использую !!ЕА$тип монстра$:L?y1;
а когда пытался !!ЕА$-стэк монстра$:L?y1;, то ничего не получал...
Вот.
Ну дык.
!!BM<номер стек монстра>:T?<тип монстра>;
!!EA<тип монстра>:L?<максимальный опыт монстра>;
Конечно возможны накладки в случае, если в процессе битвы скриптом менялся тип монстра. Но этим случаем можно и пренебречь. Или обрабатывать его отдельно.
А команда
!!EA<отрицательный номер стека>:L?<максимальный опыт монстра>;
как ты верно заметил, не поддерживается.
Скажите, а как можно следить за определённым стэком, когда колдуется либо проладное заклинание, либо какое-то заклинание на эксперт.уровне (типа, медлительность)...
Чтоб после проверки, накладывается ли на этот стэк закл, давать ему, к примеру, невосприимчевость к этой щколе магии...
у меня только при непосредственном наложении на стэк срабатывает код, а так выдаёт ошибку типа "немогу знать кто щас подвергается магии
Demiurg
25 Sep 2007, 20:57
Можно следить. Но там очень сложный код. Это связано с двумя моментами.
1) Не работает команда MR:N? - должна возвращать номер стека, на который кастуется магия (под TE)
2) Триггер MR2 срабатывает очень хитро
Возможно, тебе поможет команда MR:T - она корректно возвращает тип стека, на который кастуется магия в данный момент.
а MR:T надо в !?MR# юзать? В 0-вом, 1-ом или 2-ом?

(извините ,если покажусь "тугим"

)
PS: а есть ли где такое, чтоб посмотреть в реализации (в скриптах ТЕ илиWоG)?
Demiurg
26 Sep 2007, 09:41
Не видел скриптов, которые это использовали. Использовать можно в любом из этих триггеров. MR0 и MR1 происходят только для ударных заклов. MR2 происходит для всех.
DracoLich
26 Sep 2007, 09:42
Без разницы. А вот реализацию не помню...
ShadowTheAge
27 Sep 2007, 02:00
Вопрос. Реально ли привязать ERT-файл к карте? (не к скрипту).
Сабж: Мне нужно развесить комментарии к уже 160 объектам диалога. Тратить для этого 160 z переменных будет транжирством. Но в хелпе написано, что хинт может быть также и статичной переменной, но для этого нужно создать ert файл, как его прицепить к скрпту понятно, а что насчет карты?
gamecreator
27 Sep 2007, 19:32
также, как ты прикрепил скрипт
ShadowTheAge
27 Sep 2007, 20:22
скрипт находится в global event'ах. Даже если его вынести в папку с картой, ert файл не цепляется
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.