Author | Subject | |
---|---|---|
Sir Sector![]()
HoMM IV: Landless |
У меня вопрос. Занимается ли гильдия написанием скриптов к четвертым героям. Идей полно, нужны скрипты.
|
![]() |
Sir Kirinyale![]() ![]() ![]() ![]()
HoMM V: Knight |
Сэр Sector, 27.06.2004 03:42 К сожалению, пока не занимается - не хватает специалистов. Однако, возможно, вам сможет помочь сэр ScorpionSP (если не ошибаюсь, он ранее упоминал, что что-то знает о скриптах для HoMM4). |
![]() |
Sir Lomis
HoMM IV: Landless |
Сэр Duke Kirinyale, у меня к Вам прозьба не могу написать скрипт, что бы когда герой поподал на событее, монстр стоящий в какой либо точке телепортировался в другую точку (предположим перед героем)! Поможешь?
|
![]() |
Sir Kirinyale![]() ![]() ![]() ![]()
HoMM V: Knight |
В принципе, можно.
![]() ![]() ![]() |
![]() |
Sir Lomis
HoMM IV: Landless |
Этого монстра нужно телепортировать 5 раз, это гарпия, она типо верный путь указавает герою, а потом улетает, то-есть мочить её ненадо! Ну а кординаты можно 1/1/0 и 2/2/0, предположим!
|
![]() |
Sir Kirinyale![]() ![]() ![]() ![]()
HoMM V: Knight |
Сэр Romich, 20.07.2004 14:24 А поточнее можно? ![]() ![]() 1) Координаты события? 2) Начальные координаты гарпии? 3) Координаты гарпии после телепортации? |
![]() |
Sir Lomis
HoMM IV: Landless |
Да, верно - предположим герой встал на событее в корденате 1/1/0, а гарпия в 5/5/1, телепортнулась в 2/2/0! Вот так.
|
![]() |
Sir Kirinyale![]() ![]() ![]() ![]()
HoMM V: Knight |
Если я правильно понимаю, что гарпия только одна, и сражаться с ней всё равно не придётся (то есть, ничего, кроме количества, можно при переносе не настраивать), то попробуйте так:
ZVSE !?LE1/1/0&1000; !!UN:O5/5/1/0/1 I2/2/0/54/72; !!MO2/2/0:G1; Скрипт я не испытывал, но, по идее, он должен работать. ![]() |
![]() |
Sir ShadeByte![]() |
Дорогие скриптописатели
![]() ![]() |
![]() |
Sir Gorbik![]() ![]() ![]() ![]()
HoMM V: Baron |
Сэр ShadeByte, 9.08.2004 17:06 А попробуйте связатся с Сэром ZVS ![]() Скажите магистр Gorbik послал ![]() |
![]() Special status: ![]() |
Sir ShadeByte![]() |
Пока это только идея. Для ее воплощения нужна ваша поддержка уважаемые скриптописцы. Если это вас заинтересовало, свяжитесь со мной. А с сэром ZVS говорить пока рано - нечего показать
![]() |
![]() |
Sir Werky![]() ![]() ![]() ![]() ![]() ![]() ![]()
HoMM IV: Landless |
Можноли где нибуть достать справочник на русском языке по написанию скриптов, потомучто у меня эсть английский и с мойм английским написание скриптов превращаеться в кошмар. Ещё вопрос, в Wog есть дополнительные здания можно ли одно из зданий превраитиь в жилище существа. Например мельницу в жилище троглодитов.
|
![]() |
Sir ShadeByte![]() |
![]() |
|
Sir Ennin![]()
HoMM IV: Landless |
Сэр ShadeByte, 9.08.2004 17:06то есть? прога, обрабатываюшая текст и преобразующая в скрипты ЕРМ? неплохая идея... только пока я ей не в состоянии заняться -времени нет. после лоаклизации ВоГа можно будет подумать |
Special status: ![]() ![]() |
Sir Ennin![]()
HoMM IV: Landless |
Сэр Gorbik, 9.08.2004 17:38Магистр, может, не будем по каждому поводу к нему посылать? |
Special status: ![]() ![]() |
Sir Ennin![]()
HoMM IV: Landless |
Сэр Werky, 21.08.2004 22:28пока толкового нет. Ещё вопрос, в Wog есть дополнительные здания можно ли одно из зданий превраитиь в жилище существа. Например мельницу в жилище троглодитов.из любого здания можно сделать любое другое |
Special status: ![]() ![]() |
Sir Ennin![]()
HoMM IV: Landless |
Сэр ShadeByte, 9.08.2004 17:53вот это правильно. как уже сказал, мне очень интересно, но потом. посмотрим, что скажет Кириньяль. |
Special status: ![]() ![]() |
Sir Kirinyale![]() ![]() ![]() ![]()
HoMM V: Knight |
Сэр Ennin, 22.08.2004 18:30Сэр ShadeByte, 9.08.2004 17:53вот это правильно. как уже сказал, мне очень интересно, но потом. посмотрим, что скажет Кириньяль. Идея интересная, можно подумать. ![]() ![]() |
![]() |
Sir ShadeByte![]() |
Сэр Ennin, 22.08.2004 18:26 Да именно так. Я предлагаю использовать синтаксис C (не С++!). Хотя Basic имеет свои преимущества C более популярен. Что она должна делать? В первую очередь я считаю необходимо улчшить слабые места ERM а именно: 1. Добавить возможность использования информативных идентификаторов (например не V10, а SomeVariavle). То же самое с функциями. 2. Толковые if ветвления. (отсюда же и Case - ветвление) 3. Возможно добавить while и for. Хотя с этим сложнее - слишком в ERM с этим мудрено. 4. Автоматическое распределение места для переменных с учетом ранее написанных скриптов. Я где-то видел пост в котором картостроитель, использующий скрипты, признается, что не включает стандартные из-за опасения конфликтов. ![]() 5. И наконец самое важное: замена тригеров и ресиверов на привычные функции. (например onHeroMove() {...}) Пожалуйста выскажитесь. Что вы думаете. P.S. Я отправил в магистрат герб и карту. Карту засчитали, а герба еще нет. Так и должно быть или атрибуты не дошли? ![]() |
![]() |
Sir Kirinyale![]() ![]() ![]() ![]()
HoMM V: Knight |
Сэр ShadeByte, 22.08.2004 20:19 Согласен. Естественно, это будет не совсем С, а, скорее, отдельный язык, но ориентироваться на основной его синтаксис лично мне будет и проще, и удобнее. ![]() 1. Добавить возможность использования информативных идентификаторов (например не V10, а SomeVariavle). То же самое с функциями. На самом деле, в ERM есть такая возможность. ![]() !#MCv10:S@SOMEVARIABLE@; ... !?... !!VR$SOMEVARIABLE$:S1; Но, конечно, это действительно можно и нужно сделать более удобным. 2. Толковые if ветвления. (отсюда же и Case - ветвление) Обязательно. ![]() 3. Возможно добавить while и for. Хотя с этим сложнее - слишком в ERM с этим мудрено. Не так уж и мудрено - команда !!DO вполне может заменить и for, и while, если ей правильно пользоваться. 4. Автоматическое распределение места для переменных с учетом ранее написанных скриптов. Я где-то видел пост в котором картостроитель, использующий скрипты, признается, что не включает стандартные из-за опасения конфликтов. Уж не мой ли это пост? ![]() ![]() Что касается собственно автораспределения - можно и попробовать, хотя я пока не уверен в необходимости и методах его реализации. Однако что нужно сделать обязательно - так это автоматическое построение логов используемых ресурсов (переменных, функций, таймеров и т.п.). ![]() 5. И наконец самое важное: замена тригеров и ресиверов на привычные функции. (например onHeroMove() {...}) Ну это и так очевидно, если уж использовать C-like style. ![]() Также, если идея выгорит, я лично предложил бы также дополнить этот "компилятор" небольшой библиотечкой часто используемых функций, которые будут преобразовываться в целые ERM-конструкции. ![]() ![]() P.S. Магистр Sombreus был в отпуске, поэтому обновления атрибутики вообще не было уже довольно давно. Возможно, скоро этим займутся. ![]() |
![]() |
Sir ShadeByte![]() |
Я очень рад что кого-то (
![]() Сэр Duke Kirinyale, 22.08.2004 22:15 Вообще я не планирую их особенно много. Не намного больше чем в C. Их по-моему вполне хватает. А особые возможности ERM можно релизовать через Inline ERM (типа Inline ASM ![]() inline string* GetHeroName (int HeroIndex) { _erm { !!HE HeroIndex:B1/?ReturnValue; //ReturnValue - это значение возвращаемое функцией. //К сожалению по другому нельзя в силу синтаксиса ERM. } } Подобные функции, как вы вполне разумно предложили, действиптельно можно группировать в некие библиотеки. команда !!DO вполне может заменить и for, и while, если ей правильно пользоваться. Наверное вы правы. Но не подскажите ли вы мне следующее: можно ли добиться вечного кай... цикла если насильственно изменять 16 параметр (текущая итерация) изнутри функции? Что касается логов. Ну тут проще. Использование синтаксиса C дает право требовать заранее объявлять все переменные и функции (таймер кажись тоже функция). Из подобного объявления следует и другая выгода: при объявлении переменной присваивается адрес (индекс ![]() ![]() И еще один важный аспект. Хотя ERM поддерживает использование указателей, мне кажется, что их использование следует запретить в целях безопасности. Оставить только массивы. P.S. Итоги на текущий момент: Съедено: пица - 10 кусков Выпито: пиво - 2 банки + 1 (один) пакет молока. Написано: Система преобразования потока символов в тэги и идентификаторы. Определены базовые классы. Продуманы основные аспекты работы. P.P.S Это ничего что я тут нафлудил? Или лучше за другой столик свалить? |
![]() |
Sir Ennin![]()
HoMM IV: Landless |
Я предлагаю использовать синтаксис C (не С++!).а какая разница? если есть возможность сделать так, что скрипт можно написать почти английским предложением? например, " when localevent at x/y/l this.hero.kill " легко трансформируется в !?LEx/y/l; !!HE-1:K; Добавить возможность использования информативных идентификаторов (например не V10, а SomeVariavle). То же самое с функциями.думаю, это можно... Толковые if ветвления. (отсюда же и Case - ветвление)мда... вот это посложнее будет Возможно добавить while и for. Хотя с этим сложнее - слишком в ERM с этим мудрено.это и в самом деле не сложнее чем 1 Автоматическое распределение места для переменных с учетом ранее написанных скриптов.импоссибл, если не вести общей системы логов...но их надо обнулять всякий раз когда пишешь новую серию скриптов. {зачем такие сложности? всё можно ![]() можно ли добиться вечного кай... цикла если насильственно изменять 16 параметр (текущая итерация) изнутри функции?да У меня почему-то такое чувство, что в WOGе используется массив V1 = V[1]можно считать, что все V переменные - это один большой массив с именем v и типа longint+1 Хотя ERM поддерживает использование указателей, мне кажется, что их использование следует запретить в целях безопасности.яких указателей? Съедено: пица - 10 кусковсъедено и выпито: намного больше *правда, втихаря ![]() как вообще по вашему это выглядеть-то хоть будет? под Финдовс/ДоС, графический или просто ехе движок который обрабатывает заданный текст (я бы пока на этом вырианте остановился...) |
Special status: ![]() ![]() |
Sir ShadeByte![]() |
Сэр Ennin, 23.08.2004 17:37Я предлагаю использовать синтаксис C (не С++!).а какая разница? если есть возможность сделать так, что скрипт можно написать почти английским предложением? Да вы правы. Толковые if ветвления. (отсюда же и Case - ветвление.мда... вот это посложнее будет Я бы сделал это так: if (condition) {...} 1. Считаем condition (кстати нужен интерпритатор выражений) 2. Если условие истинно, то включаем некий флаг. 3. Исполняем все команды, которые в кавычках, с учетом этого флага. Т.е. //здесь идет вычисление условия и сохранение результата в V1 !!IF &V1 < >0:V1/1; //если условие истинно включаем флаг1 !!HE-1&1:K; //дальше идут другие операции этого блока зачем такие сложности? всё можно Не так не пойдет. По-вашему, функция должна быть известна на момент компиляции, что не есть хорошо, т.к ERM может измениться. (вероятно появятся новые тригеры и ресиверы) Кроме того inline-ERM как мне кажется нужен в любом случае. А это одно из его удобных применений. яких указателей?} !!VR vy1:S1; Можно рассматривать как *(y1) = 1; ![]()
Да пока это просто exe движок, работающий в текстовом режиме. Написать красивый интерфейс всегда успеется. |
![]() |
Sir Ennin![]()
HoMM IV: Landless |
Не так не пойдет. По-вашему, функция должна быть известна на момент компиляции, что не есть хорошо, т.к ERM может измениться. (вероятно появятся новые тригеры и ресиверы)Конечн появятся ![]() ![]() ![]() Кроме того inline-ERM как мне кажется нужен в любом случае. А это одно из его удобных применений.поподробнее, це шо? !!VR vy1:S1;если рассматривать переменные как массив и указывать индекс в квадр.скобках,, всё ок будет. кстати нужен интерпритатор выражений)зачем? надо так и передавать в скрипт пока это просто exe движок, работающий в текстовом режиме. Написать красивый интерфейс всегда успеется.я думаю вообще так : в одной папке хранятся ехе и файл хранящий субскрипт. при запуске ехе из командной строки берётся имя файла и компилируется файл того же имени, но другого расширения содержащий уже просто ЕРМ сриктп. Это ничего что я тут нафлудил? Или лучше за другой столик свалить?по тому вопросу - да! ![]() |
Special status: ![]() ![]() |
Sir ShadeByte![]() |
Или лучше за другой столик свалить?Сэр Ennin, 23.08.2004 19:28 Это по какому? ![]() |
![]() |
Sir Kirinyale![]() ![]() ![]() ![]()
HoMM V: Knight |
Так, стоп... тарапыцца не нада...
![]() ![]() ![]() ![]() ![]() |
![]() |
Sir Ascaron![]()
HoMM IV: Landless |
Сэр Sector, 27.06.2004 03:42 ИМХО скрипты 4-х эт вам не еерем и там попоиму несложно разобратся. я человек к программированию не имеющий никакого отношения могу вааять коешто. конешно если вы хотите ятото аж аж аж ну тогда да хотя на одном извесном сайте помоему есть хелп по скриптам в 4-х поищите |
![]() |
Sir ShadeByte![]() |
Сэр Duke Kirinyale, 26.08.2004 00:58 Итак, теперь вы с нами, так что приступим. ![]() P.S. ...я бы предложил ничего не писать вот так вот сразу, "от балды", Ой! Извините. Я уже написал систему объявления переменных... ![]() |
![]() |
Sir Ennin![]()
HoMM IV: Landless |
может лучше захостить где-нить что-нить?
|
Special status: ![]() ![]() |
Sir ShadeByte![]() |
Я в этом вопросе не разбираюсь так что полностью полагаюсь на вас. Не могли бы вы пожалуйста объяснить подробнее?
|
![]() |