Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Альтернатива скриптам WoG
DF2 :: ФОРУМЫ > Игровые форумы > Heroes of Might & Magic III > Моды
monster
Никто не задумывался об этом? Предлагаю заменить устаревшие, неудобные для понимания и использования, да и просто не красивые wog'овские скрипты.

Например на такой вид (смесь макросов fasm'а для бэйсикоподобного вида и обычного кода):

Выглядит просто и логично, и никаких ограничений для полета фантазии. И каждый может добавлять функционал.
После компиляции (в формат bin) этот код будет выглядеть так: Link, который и надо подключать в Редакторе Карт к нужной карте.

В конечном итоге можно даже сделать конвертор типа erm->bin, дабы перевести готовые скрипты к новому виду.
Berserker
Удачи. Все начинания либо не принимаются народом, либо не доходят до конца.
monster
Главное чтобы mapmaker'ы и modmaker'ы были заитересованы - ведь им пользоваться.
Допустим основу я сделаю, и часть необходимых макросов и функций (всё в текстовом виде) + справку по их использованию. Но дальнейшее наполнение будет зависеть не от меня, а от всех.
Например Кто-то напишет код, по смене портретов героев - сразу добавляем этот код 'macros.inc' и потом в будущем каждый cможет использовать это всего одной строчкой. Или добавить 'замену удачи' из Этой темы.
tolich
Когда в WoG 3.59 появится полноценная поддержка lua, писать код на ассемблере будут только самые прожженные ненавистники ЯВУ.
Etoprostoya
Объектно-ориентированные языки рулят! Асм - для нигилистов.
Дьяк
Я когда-то думал, и сейчас думаю, чтобы не прописывать св-ва Бастионовских монстров ЕРМ, сделать под каждого монстра длл. Длл перебирались бы в событии, например при нанесении урона, из длл вызывалась бы определенная проца, например, Attack. И после длл выгружается. Для модмейкеров я думаю более полезна была бы справка по структурам в игре. При чем полная. Если кто-то бы взялся - я бы поделился инфой. Можно начать с первых команд ЕРМ и смотреть какие структуры они меняют. Потом сделать chm справку где все упорядочить. Это было бы действительно полезная штука для всех.
monster
Не рубите энтузиазм на корню :)
На то и альтернатива, чтобы каждому своё. А пока нет ни того что я предлагаю, ни lua 3.59.

Надо верить, и счастливое светлое будущее обязательно настанет:
Etoprostoya
ERM: !!MA:A7/10
NEW: Monster.SetAttribute(MONSTER_TYPE, ID_MON_ATTR, value);
Monster.SetAttribute(7, ID_MON_ATTR_ATTACK, 10);

Выходит громоздко по сравнению с ЭРМ, но понятнее. Имхо.
Astaroth
Код
ID_MON_ATTR_ATTACK

Кстати если не ошибаюсь, то это числовая константа имеюющая опр имя. Можно поэтому просто вместо этой строчки вставлять число.
Т.е. например, если допустим, что ID_MON_ATTR_ATTACK=4, то код будет выглядеть так:
Monster.SetAttribute(7, 4, 10);
Имена функций можно тоже сделать короткими, от этого код не пострадает.
Еще кое что этот код будет выглядеть проще, если Monster - будет массивом, а огромным классом содержащий всех монстров, т.е.

Код
Monster[MONSTER_TYPE].SetAttribute(ID_MON_ATTR, VALUE);


P.S. Я всеми руками и ногами за эту идею! Так огромные строчки кода можно будет укладывать в простые функции и для разработчиков карт это будет куда проще, правда тогда функций будет очень много.... хотя их и сейчас немало... biggrin.gif
Etoprostoya
Цитата(Astaroth @ 24 Jan 2010, 11:45)
Код
ID_MON_ATTR_ATTACK

Кстати если не ошибаюсь, то это числовая константа имеюющая опр имя. Можно поэтому просто вместо этой строчки вставлять число.
Т.е. например, если допустим, что ID_MON_ATTR_ATTACK=4, то код будет выглядеть так:
Monster.SetAttribute(7, 4, 10);
Имена функций можно тоже сделать короткими, от этого код не пострадает.
Еще кое что этот код будет выглядеть проще, если Monster - будет массивом, а огромным классом содержащий всех монстров, т.е.

Код
Monster[MONSTER_TYPE].SetAttribute(ID_MON_ATTR, VALUE);


P.S. Я всеми руками и ногами за эту идею! Так огромные строчки кода можно будет укладывать в простые функции и для разработчиков карт это будет куда проще, правда тогда функций будет очень много.... хотя их и сейчас немало...  biggrin.gif

ID_MON_ATTR_ATTACK можно заменять на число, но не кажды сможет запомнить значения всех атрибутов, а с "attack" легче.
Да, с массивом монстров, неверное, лучше было бы.
И, кстати, реализовать перевод такого типа программы в ЭРМ и наоборот будет несложно, только долго, так как для каждого триггера, ресивера нужно будет писать отдельно. Но это не сложнее чем изобрести ЭРМ. smile.gif
Astaroth
Может я плохо понял, но в каком языке будете писать этот скриптовый язык? Просто я знаю как С++ так и Delphi себя неплохо чувствую, так что могу подсобить.

Добавлено ([mergetime]1264325628[/mergetime]):
Кстати еще можно будет в задаваемые параметры ввести возможность изменения Дефа, озвучки и анимации стрельбы, плюс возможность давать некоторые спец абилки существ (Типа окаменяющего взгляда медузы и возвращение после атаки гарпии) думаю это будет очень хорошо для создателей карт, да и для модостроителей )) Но это уже потом, как основной класс будет корректно реализован
tolich
Цитата(Astaroth @ 24 Jan 2010, 10:45)
Код
ID_MON_ATTR_ATTACK

Кстати если не ошибаюсь, то это числовая константа имеюющая опр имя. Можно поэтому просто вместо этой строчки вставлять число.
Т.е. например, если допустим, что ID_MON_ATTR_ATTACK=4, то код будет выглядеть так:
Monster.SetAttribute(7, 4, 10);

Все есть числовые константы. ©Пифагор
Т.е., если Monster=10231, а SetAttribute - 23124, то код будет (10231).23124(7,4,10).
Цитата(Astaroth @ 24 Jan 2010, 10:45)
Имена функций можно тоже сделать короткими, от этого код не пострадает.
Пострадает - станет менее читабельным. Программы для компьютеров вообще лучше всего писать сразу в машинном коде. Но программы прежде всего пишут не для компьютеров, а для людей, которые эту программу будут сопровождать, т.е., улучшать и исправлять ошибки.
Kastore
Цитата(cерый @ 24 Jan 2010, 12:08)
Цитата
счастливое светлое будущее
так точно дорогой товарищ ! (не будите во мне Ленина)

Только мумий нам и не хватало! crazy.gif
Etoprostoya
Цитата(Astaroth @ 24 Jan 2010, 12:33)
Может я плохо понял, но в каком языке будете писать этот скриптовый язык?

Ни в каком (да и задумывался только транслятор в и из ЭРМ). Полагаю, что это не будет востребовано - все уже привыкли к ЭРМу. А вообще, можно было бы на Си (с Паскалем давно не работал).

Толич, ППКС про читабельность.
Berserker
Реверс инженеринг ЕРМ в ЯВУ крайне сложен. А перевод в одном направлении делается не через макросы, а на php с использованием нормальных функций и высокоуровневых конструкций. Потому как основная задача: типы данных, константы и автовыделение индексов, а также взаимосовместимость скриптов.
feanor
Цитата
Объектно-ориентированные языки рулят! Асм - для нигилистов.
в конкретно данном случае ООП идет нафиг из-за избыточности. И рулит нечто с хорошей моделью структур и указателей (Слава С!)

Цитата
Для модмейкеров я думаю более полезна была бы справка по структурам в игре. При чем полная. Если кто-то бы взялся - я бы поделился инфой. Можно начать с первых команд ЕРМ и смотреть какие структуры они меняют. Потом сделать chm справку где все упорядочить. Это было бы действительно полезная штука для всех.

Действительно. Можешь выложить информацию?
Berserker
Информация основная в сорцах (большинство народу приходится переоткрывать). Владельцы против распространения оной. И понятно почему.
Etoprostoya
Цитата(feanor @ 24 Jan 2010, 18:42)
Цитата
Объектно-ориентированные языки рулят! Асм - для нигилистов.
в конкретно данном случае ООП идет нафиг из-за избыточности.
Тут любой язык будет избыточным по сравнению с ЭРМом.
Цитата(feanor @ 24 Jan 2010, 18:42)
И рулит нечто с хорошей моделью структур и указателей (Слава С!)
Так это во многом и есть ООП. Как раз Си-подобный язык, о котором я и говорил.
Дьяк
Цитата(feanor @ 24 Jan 2010, 18:42)
Цитата
Объектно-ориентированные языки рулят! Асм - для нигилистов.
в конкретно данном случае ООП идет нафиг из-за избыточности. И рулит нечто с хорошей моделью структур и указателей (Слава С!)

Цитата
Для модмейкеров я думаю более полезна была бы справка по структурам в игре. При чем полная. Если кто-то бы взялся - я бы поделился инфой. Можно начать с первых команд ЕРМ и смотреть какие структуры они меняют. Потом сделать chm справку где все упорядочить. Это было бы действительно полезная штука для всех.

Действительно. Можешь выложить информацию?

Решил взяться? Или просто интересуешься? Если просто, то что конкретно интересует?
sergroj
Цитата(Дьяк @ 24 Jan 2010, 13:26)
Я когда-то думал, и сейчас думаю, чтобы не прописывать св-ва Бастионовских монстров ЕРМ,  сделать под каждого монстра длл. Длл перебирались бы в событии, например при нанесении урона, из длл вызывалась бы определенная проца, например, Attack. И после длл выгружается.

shok.gif ужас какой! Зачем каждому отдельную, зачем выгружать?! Все св-ва можно сделать на Луа, вообще без dll.

Цитата(etoprostoya @ 24 Jan 2010, 14:05)
ERM:  !!MA:A7/10
NEW:  Monster.SetAttribute(MONSTER_TYPE, ID_MON_ATTR, value);
Monster.SetAttribute(7, ID_MON_ATTR_ATTACK, 10);

Выходит громоздко по сравнению с ЭРМ, но понятнее. Имхо.

Лучше Monsters[MONSTER_TYPE].Attack = 10. И еще для полной настройки монстра хорошо бы Monsters[MONSTER_TYPE].Setup{Attack = 10, Defense = 20, DamageMin = 25}. Все это можно будет сделать, как надстройки над ЕРМовскими командами.
Berserker
Ужас, это как в 3.59 на лету для Луа генерится ЕРМ-команда ужасающей по размерам функцией. Нужно определённо кэширование и более быстрая ручная генерация.
Etoprostoya
Цитата(sergroj @ 24 Jan 2010, 20:38)
Лучше Monsters[MONSTER_TYPE].Attack = 10. И еще для полной настройки монстра хорошо бы Monsters[MONSTER_TYPE].Setup{Attack = 10, Defense = 20, DamageMin = 25}. Все это можно будет сделать, как надстройки над ЕРМовскими командами.

Можно и так. Но в функциональном виде можно задавать сразу несколько параметров за раз, а в таком виде только в нескольких строках. Например стоимость монстра в ресурсах.

Главное чтобы было более понятно, чем обычные команды ERM.
feanor
Цитата
Так это во многом и есть ООП. Как раз Си-подобный язык, о котором я и говорил.

ООП предполагает пресловутые три принципа: "полиморфизм-инкапсуляция-наследование". Ни один из них нафиг не нужен в ERM.

С, между прочим, ни разу не ООП.

Впрочем, всё это бесцельные разговоры. В лучшем случае можно написать транслятор из какого-нить псевдокода типа

Код
OnDamage
{
local[1]=OnDamage.GetBattleStack();
local[2]=GetBattleStackType(local[1]);
if(local[2]==CRID_ANGEL) AllowDamage(false);
}

в
Код
!?MF;
!!MF:N?y1;
!!BMy1:T?y2;
!!MF&y2=12:E0;

и то, его никто не напишет.
Etoprostoya
Не буду спорить, потому что feanor меня не понял. Я не хотел создать новый язык, я хотел привести его к более читаемому виду, так как это было бы написано на языке высокого уровня, например как на языках ООП. Си - это не ООП, но он очень хорошо подходит для описания в таком виде в котором я привёл пример с атрибутами монстров.
Berserker
Код
<?
function Monster_Cost ($ID, $NewCost){fwrite($f, "!!MA:C{$ID}/{$NewCost}")}
?>

Макросы не нужны. Проверено. Переписать объёмную процу в таком стиле можно, у меня за всё время концептов 8 было, но в итоге всё тоже самое, как если писать на ЕРМ + SCVS. Да и другие разрабы не поймут кода. Для большего удобства и стабильности нужно писать именно высокоуровневый компилятор. У меня есть заготовка на 700 строк php-кода, вернее две, но смысла в оном не вижу. Если что-то и делать, то как стандарт, а многие кроме ЕРМ ничего не приемлют. Часть, что приемлит, либо паскалефилы, либо сифилы, а сейчас ещё и асмофилы. Наконец, упускаем возможность написания бинарного кода с генерацией ЕРМ на лету. Одна проблема - "скрипты" абсолютно друг с другом дружить не будут. Нюансов много. Попытку реализовать транслятор СИ-Ерм уже делал один человек в виде компилятора Exterm, если не ошибаюсь.

Для борьбы "за умы" вог-тиме стоило выложить последний ехе с Луа и всячески продвигать его, так как потом слезть с той же Эры 2.хх или там Diak_Erm_Ext или AsmWogAddon и т.д. и перенести код под 3.59 будет нереально. Хотите двигать Луа - дайте его людям.
monster
Вы меня не так поняли. Я предлагаю сделать не генератор Ерм'а, а совершенно новую вещь, которая будет работать и без Wog'а, но иметь все его возможности (расширенные и доработанные). Стремится надо к отсутсвию ошибок, скорости и удобству. В случае с вашим Си, строителям карт придется иметь на компе громоздкий пакет VS или delphi... А также знания по их использованию. Много таких мапмейкеров? Почти все что здесь даст ооп - 'никчемное извращение' над кодом и разумом. Извиняйте что так грубо, но сколько людей - столько и мнений, а я тоже человек.

Код
Monsters[MONSTER_TYPE].Attack = 10
Можно сделать и такой вид, обычные структуры - многие заблуждаются что на такое способен только Си и ему подобные.

То что получится легко перенесется на любой другой язык программинга с поддержкой asma. если вам так больше нравится.
Дьяк
Цитата(sergroj @ 24 Jan 2010, 20:38)
Цитата(Дьяк @ 24 Jan 2010, 13:26)
Я когда-то думал, и сейчас думаю, чтобы не прописывать св-ва Бастионовских монстров ЕРМ,  сделать под каждого монстра длл. Длл перебирались бы в событии, например при нанесении урона, из длл вызывалась бы определенная проца, например, Attack. И после длл выгружается.

shok.gif ужас какой! Зачем каждому отдельную, зачем выгружать?! Все св-ва можно сделать на Луа, вообще без dll.



Я не спорю, что все можно сделать на луа или, что св-ва монстров можно прописать в одной длл. Приследовалась другая мысль - совместимость. Например 10 разных авторов сделали 10 разных монстров. Описали их ЕРМ и захотели объеденить. Оказалось скрипты не совместимы да и номера монстров совпадают у некоторых. Сиди переписывай, если есть желание. А так кинулв папку два файла, название которых и есть номер монстра и все, например, файлы 197 (в котором структура монстра) и 197.dll - его св-ва. Конечно можно пересмотреть принцип работы. Например подгружать все длл в начале игры а выгружать в самом конце. Да и вообще это пока только идея с длл она еще не реализована ни на 1% даже.
tolich
Ну, тут ИМХО достаточно маленького файлика с параметрами монстра (и расширением, например .monster smile.gif). Зачем dll-ки лепить, непонятно...
feanor
Для того, чтоб ставить хуки типа "перед атакой накладывает на себя случайный бафф", "при получении урона - взрывется" etc
tolich
это делается небольшим скриптиком
Berserker
monster, как напишешь - позвони.
Astaroth
Цитата
Вы меня не так поняли. Я предлагаю сделать не генератор Ерм'а, а совершенно новую вещь, которая будет работать и без Wog'а, но иметь все его возможности (расширенные и доработанные). Стремится надо к отсутсвию ошибок, скорости и удобству. В случае с вашим Си, строителям карт придется иметь на компе громоздкий пакет VS или delphi... А также знания по их использованию. Много таких мапмейкеров? Почти все что здесь даст ооп - 'никчемное извращение' над кодом и разумом. Извиняйте что так грубо, но сколько людей - столько и мнений, а я тоже человек.

Да... придется повторить подвиг ZVS...
Хотя действительно, мне кажется было бы куда приятнее написать просто такой упрощенный ERM редактор... Если мне не изменяет память уже не раз появлялись такие идеи...
monster
Цитата
Да... придется повторить подвиг ZVS...
Теперь не с нуля начинать и нерешимых проблем возникнуть не должно, а значит не подвиг.
Обычно, когда подобные идеи высказываются, всегда найдется кто-то, кто скажет: 'не не, это слишком сложно, мы не справимся, никто не справится'. И все соглашаются, ведь проще ничего не делать, и ждать пока все будет сделано кем то другим.

Первый примитивный пример с какой нибудь картой вы сможете увидеть уже в эти выходные (очень на это надеюсь).
Astaroth
Цитата
Обычно, когда подобные идеи высказываются, всегда найдется кто-то, кто скажет: 'не не, это слишком сложно, мы не справимся, никто не справится'. И все соглашаются, ведь проще ничего не делать, и ждать пока все будет сделано кем то другим.

А я разве говорил что-то наподобии? Я вообще то "За" был с самого начала
sergroj
Цитата(Berserker @ 24 Jan 2010, 23:40)
Ужас, это как в 3.59 на лету для Луа генерится ЕРМ-команда ужасающей по размерам функцией. Нужно определённо кэширование и более быстрая ручная генерация.

Я проверял - эта функция мало влияет на скорость. Вообще, из постановки поста получается, что идея Дьяка с кучей постоянно выгружаемых dll либо не ужас, либо меньший ужас. Ты серьезно так считаешь?

Цитата(etoprostoya @ 24 Jan 2010, 23:50)
Можно и так. Но в функциональном виде можно задавать сразу несколько параметров за раз, а в таком виде только в нескольких строках. Например стоимость монстра в ресурсах.

Ну, для этого я и написал про функцию Setup. smile.gif

Цитата(monster @ 25 Jan 2010, 08:42)
Код
Monsters[MONSTER_TYPE].Attack = 10
Можно сделать и такой вид, обычные структуры - многие заблуждаются что на такое способен только Си и ему подобные.

Собственно, я уже сделал полноценную поддержку структур на Луа - гибкое объявление структур, массивы, указатели... В MMExtension отлично работает. (MMExtension - это мой миниВоГ для Might & Magic)

Цитата(Дьяк @ 25 Jan 2010, 11:20)
Я не спорю, что все можно сделать на луа или, что св-ва монстров можно прописать в одной длл. Приследовалась другая мысль - совместимость. Например 10 разных авторов сделали 10 разных монстров. Описали их ЕРМ и захотели объеденить. Оказалось скрипты не совместимы да и номера монстров совпадают у некоторых. Сиди переписывай, если есть желание. А так кинулв папку два файла, название которых и есть номер монстра и все, например, файлы 197 (в котором структура монстра) и 197.dll - его св-ва. Конечно можно пересмотреть принцип работы. Например подгружать все длл в начале игры а выгружать в самом конце. Да и вообще это пока только идея с длл она еще не реализована ни на 1% даже.

dll в любом случае должна знать свой номер. Это должен предоставить ВоГ. Поэтому, лучше сделать процедуру резервирования номеров монстров. Причем, с установкой монстров на карту в редакторе все еще интереснее... Почему Луа - потому, что взаимодействие с ним проще, чем с dll, экспортировать для него функции в любом случае стоит, а с пересечением переменных, в отличии от ЕРМ, проблем нет, фактически.
SAG19330184
monster, ты бы помог там где твоя помощь реально требуется. Если есть возможность помочь - спроси меня, что нужно широким массам которые будут помнить твое имя в веках если им поможешь.

Карты пишут по одной штуке в год, причем если используется ERM то карта в 95% случаев совершенно неинтересная и неиграбельная.

Модостроителей всего пара человек и им имхо украшательства не нужны, большинство из них шарят в ассемблере.
monster
Как говорил, вот примитивный пример: LINK
Карта рандомная, кидать её в maps, остальное просто в папку с игрой.

В общем, чем больше герои бегают, тем больше у них Move Points (примерно +3% в день). У всех героев, в том числе и вражеских. Все бонусы MP должны записываются в файл, и при следующем запуске игры начинать уже не с нуля (если герои теже).

К самой карте пока не прикрепил, чтоб видеть разницу.
Berserker
А исходник? Что демонстрируется? Вновь открываем ЕРМ? В чём преимущество? Зачем извращения с bin-файлом, если тогда можно писать голый высокоуровневый код на CИ++/Паскаль.
monster
Это 'каркас', код ещё только предстоит написать.
Цитата
Зачем извращения с bin-файлом, если тогда можно писать голый высокоуровневый код на CИ++/Паскаль.
Я же сказал, тогда каждому мапмейкепу придется иметь на компе этот Си и Паскать и компилить в dll.... А для bin нужен только один файл. При правильном подходе и fasm высокоуровневый. За красоту кода не сомневайся - всё будет на макросах, как в первом посте.
Berserker
За надёжность я тоже "не сомневаюсь". Тут вам и проверка типов, и защищённая память, и автоматическое сохранение глобальных переменных в сейве, и лёгкость изменения кода прямо в сохранёнке, и лёгкость отладки, и лёгкость чтения другими людьми, и понятность ошибок компилятора для скриптописцев - в общем рай.
Простейшие команды вы на fasm-е перепишите. Не более. И в ЕРМ тонны кода. Его переписывать глупо. А дублировать, копируя оттуда хуки и разбираясь в машинном коде в действии ЕРМ-команд бесперспективно.
feanor
Цитата
Я же сказал, тогда каждому мапмейкепу придется иметь на компе этот Си и Паскать и компилить в dll.... А для bin нужен только один файл. При правильном подходе и fasm высокоуровневый.

А тут придется иметь <нечто> для компилирования в эти бинарники.
VP весит копейки. Для С/С++ тоже можно найти что-то, что умещается в 10 Мб и умеет делать dll-ки.

Теоретически можно сделать .h файл с описанием структур и функциями с указателями на них и жить станет лучше, жить станет веселей.
monster
Цитата
Тут вам и проверка типов, и защищённая память, и автоматическое сохранение глобальных переменных в сейве, и лёгкость изменения кода прямо в сохранёнке, и лёгкость отладки, и лёгкость чтения другими людьми, и понятность ошибок компилятора для скриптописцев
Бред полнейший. Erm этого не дает. Где же легкость, когда каждую строку и каждую цифру приходится разбирать со Справкой. Когда при каждой глупой ошибке надо смотреть код с самого начала и опять же со справкой... Легкость отладки, и снова Erm этого не дает, тебя просто тыкают на строку с ошибкой 'говоря': "далше разбирайся сам". Остальное должно волновать только создателя Этого проекта - авторы карт не обязаны разбираться во внутренностях игры, как и обычные игроки многие из которых даже школу не закончили. Всё что им нужно - инструмент, способный легко и непринужденно реализовать что они задумали.
Цитата
Простейшие команды вы на fasm-е перепишите. Не более. И в ЕРМ тонны кода. Его переписывать глупо.
Что значит 'не более'? Никогда таких проблем не было и не будет.
От erm нужны таблички, номера объектов, артефактов и тд., что хорошо описано и легко скопировать. Оставшееся ну никак не тянет на 'тонну'.
Цитата
копируя оттуда хуки и разбираясь в машинном коде в действии ЕРМ-команд
Мдаа.. Какой нахрен машинный код? Это есть лишь адреса, а действия, изначально заложенные игрой, выбирает скриптописатель. В любом случае это даже не трудность. Сам код трансляции текста erm не нужен.

Цитата
А тут придется иметь <нечто> для компилирования в эти бинарники.
Всего один файл (к примеру отсюда link), ну и что то для подсветки синтаксиса.
Цитата
VP весит копейки. Для С/С++ тоже можно найти что-то, что умещается в 10 Мб и умеет делать dll-ки. Теоретически можно сделать .h файл с описанием структур и функциями с указателями на них и жить станет лучше, жить станет веселей.
Да не важно на чём, лишь бы желающие 'делать' были, а не только "теоретики'.
Дьяк
Да чего спорить - делай!. Я первый, кто будет пользоваться, если это будет более удобно во всех смыслах, чем то что сейчас имеется.
SAG19330184
жаль, что умный человек, который мог бы принести всем большую пользу - так бездарно тратит свое время и силы sad.gif
Algor
Цитата(MasterOfPuppets @ 21 May 2013, 04:30) *
...но есть сомнения, что это вообще кому-то нужно...

И не сомневайся даже. Пока оно не будет работать на более-менее открытой платформе, потребность в нем вряд-ли появится.
Твои бы руки, Мастер, вынуть из МоРы и прикрутить к Эре или VCMI...
feanor
Исходники нужны всегда.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.