Opened 17 years ago
Last modified 17 years ago
#26 new Предложение
Генерация скриптов по параметру — at Initial Version
Reported by: | SnAIper | Owned by: | |
---|---|---|---|
Priority: | Маловажно | Milestone: | Предложения |
Component: | Редактор скрипта | Version: | 0.3.7.16 |
Keywords: | Cc: | ||
Blocking: | Баг подтвержден (для бага): | no | |
Способ воспроизведения (для бага): |
Description
Суть такова: по кнопке должен генерироваться скрипт для всех юнитов, обладающих данными свойствами (координаты и прототип).
Как это должно выглядеть: добавляется 2 TMemo для условий генерации. Первое содержит простые условия объекта, связанные логическим And, например:
X>0 X<10 Y>40 Y<63 Name=Human Hadagan Fighter T10
Думаю, ничего кроме прототипа и координат не нужно. Если условие отсутствует - оно не проверяется. Для координат можно использовать также и "=", но имхо смысла немного. Для Name - только равенство. Код для обработки таких простых условий у меня есть, могу поделиться, но тут вряд-ли пригодится даже он.
Второе поле будет содержать опции генерируемого скрипта, например:
AddObject(MyGroup?,GetObjectById?(#ID#)) SetDiplomacy(0,#PLAYER#,0)
И все эти константы (я думаю, что кроме прототипа #NAME#, ID #ID#, номера игрока #PLAYER#, X #X#, Y #Y# - больше ничего не надо) будут простым AnsiReplaceStr заменяться на соответствующие свойства каждого найденного объекта, то есть при нахождении каждого объекта, удовлетворяющего данным свойствам, к строке-результату должен добавляться изменённый текст исходного скрипта, например так:
AddObject(MyGroup?,GetObjectById?(988725)) SetDiplomacy(0,9,0)
AddObject(MyGroup?,GetObjectById?(988731)) SetDiplomacy(0,9,0)
AddObject(MyGroup?,GetObjectById?(988736)) SetDiplomacy(0,9,0)
В результате можно будет реализовывать такие задания как, например, "убить всех волков в округе" практически без геммороя :)