Идеи для HotA.
Точнее...одна идея, но стоящая десяти других идей.
Цитата(IQUARE @ 26 Sep 2016, 22:11)

Объясняю. То, что принято называть "скриптами" в четверке, ничем не отличается от картостроительных возможностей, скажем, первого Старкрафта (приблизительно такого же уровня возможностей, но где-то побольше, где-то поменьше*), то есть просто инструментарий для создания событий карты. Ничего подобного скриптам ERM там нет, т.е. игрок не пишет вообще никакого скриптового текста, только выбирает нужные ему опции.
Большая часть этого настраивается в "Событиях карты" (разделенных на События по времени, События на карте*, События вызываемые по триггеру, Постоянные события (активирующиеся не по событиям на карте и не по времени, но по особому игровому событию, смерти какого-то героя или получению какого-то числа ресурсов например), но некоторые события настраиваются в городах и у существ/героев (у них есть уникальные опции-действия, вроде "сменить игрока" или "сразиться с кем-то".), или же в хижинах провидцев/стражах прохода.
* - Скажем, в четверке нельзя перемещать героев с места на место, или создавать героев на пустом месте, а вот в старкрафте подобное вполне реально
** - Да, там они настраиваются не в самой карте
Насчет непосредственно скриптовых возможностей - был бы рад поделиться таковым, но могу лишь сослаться на официальный хелп по редактору карт:
В принципе, там более-менее исчерпывающе, все возможности описаны.
SCRIPTING
The map editor's scripting system allows you to write events that will improve game play for the selected map. With scripted events, you can set special victory and loss conditions, change the ownership of adventure objects, give or take resources from the player, display story text, and much more. Below are some short definitions for the various actions and conditions available in the scripting system, as well as a 'how-to' section giving several examples of how to script an event.
Event Types
Timed Event: Allows you to create events that activate on certain days.
Triggerable Event: Allows you to create events that are activated by other scripted events.
Continuous Event: Allows you to create events that are activated by some game action or event (such as taking a town, solving a quest, etc.).
Placed Event: Allows you to create events that are activated when a player's army moves over an 'Event' adventure object placed on a certain spot on the map.
ограни
Event Scripts
Construct Building: Builds a structure in this town.
Change Owner: Changes the owner of this object to another designated player.
Clear Loss Condition Text: Erases the text displayed in the Loss Condition section of the Scenario Information.
Clear Loss Message: Erases the text displayed to the player when they lose the game.
Clear Victory Condition Text: Erases the text displayed in the Victory Condition section of the Scenario Information.
Clear Victory Message: Erases the text displayed to the player when they win the game.
Combat: Creates an army who enters into combat with a designated player army.
Conditional Statement: Creates a conditional script. An example of a conditional statement would be, "If the player owns this town, then give the player 10,000 gold."
Decrease Current Spell Points: Reduces a designated hero's current spell points by a certain amount.
Decrease Damage: Reduces a designated hero's damage statistic by a certain amount.
Decrease Luck: Reduces a designated army's luck by a certain amount.
Decrease Maximum Hit Points: Reduces a designated hero's hit points by a certain amount.
Decrease Maximum Spell Points: Reduces a designated hero's total spell points by a certain amount.
Decrease Morale: Reduces a designated army's morale by a certain amount.
Decrease Dwelling Population: Reduces the current population of a designated creature dwelling by a certain amount.
Decrease Speed: Reduces a designated hero's speed statistic by a certain amount.
Delete Adventure Object: Removes a certain adventure object from the map. The 'Bomb' marker adventure object indicates which object will be removed.
Disable Standard Victory Condition: Turns off the normal victory condition for a certain player.
Display Text: Reveals a piece of text to the player.
Enable Standard Victory Condition: Allows a certain player to fulfill the normal victory condition and win.
Give Artifacts: Gives a certain artifact or artifacts to an indicated army.
Give Creatures: Gives a certain number of a creature type to an indicated army.
Give Materials: Gives a quantity of resources to a certain player.
Give Skill: Gives a skill of your choice to an indicated hero.
Give Spell: Gives a certain spell to an indicated hero.
Increase Current Movement: Increases the current movement points of an indicated army.
Increase Current Spell Points: Increases the current spell points of an indicated hero.
Increase Damage: Increases the damage statistic of an indicated hero.
Increase Experience: Increases the experience of an indicated hero by a certain amount.
Increase Experience Level: Increases the level of an indicated hero.
Increase Luck: Increases the luck of an indicated army.
Increase Maximum Hit Points: Increases the maximum hit points of an indicated hero.
Increase Maximum Spell Points: Increases the maximum spell points of an indicated hero.
Increase Morale: Increases the morale of an indicated army.
Increase Dwelling Population: Increases the number of creatures in an indicated creature dwelling.
Increase Skill: Increases the level of an existing skill for an indicated hero.
Increase Speed: Increases the speed statistic for an indicated hero.
Do Nothing: Causes no action to take place.
Lose: Causes a certain player to lose the game.
Ask Question: Allows you to ask a yes/no question and attach scripts to each answer.
Remove Script: Removes the indicated scripted event.
Remove This Object: Allows you to remove an object from the Adventure Map.
Sequence: Allows you to create a list of related scripts that will activate in order.
Set Boolean Variable: Allows you to set up a true/false variable.
Set Loss Condition Text: Allows you to enter the text for the Loss Condition for a map.
Set Loss Message: Allows you to enter the Loss Condition message that will be displayed to the player.
Set Numeric Variable: Allows you to create a variable that can keep track of, or count, a certain action (like when an army passes a specific point).
Set Victory Condition Text: Allows you to enter the text for the Victory Condition for a map.
Set Victory Message: Allows you to enter the Victory Condition message that will be displayed to the player.
Take Artifacts: Removes a specific artifact or artifacts from an army.
Take Creatures: Removes a specific number of a creature type from an army.
Take Materials: Removes a specific amount of a resource or resources from a player.
Trigger Custom Event: Allows you to activate a previously created event.
Win: Causes a certain player to win the game.
Boolean expression (Condition) Types
And: Allows you to create multiple conditions for a single event.
Has Alignment: Checks if a certain army is of a specific alignment.
Has Certain Hero: Checks if a specific hero is part of a certain army.
Can Give Skill: Checks to see if the hero(es) in an army can accept a certain skill into their skill slots.
Equals: Checks if two expressions are equal to each other.
False: Checks if a condition is false.
Greater Than: Checks if one expression is greater than another.
Greater Than or Equals: Checks if one expression is greater than or equal to another.
Has Artifact: Checks if an army possesses a certain artifact.
Certain Hero is Dead: Checks if a specific named hero is dead.
Certain Hero is in Prison: Checks if a specific named hero is imprisoned.
Less Than: Checks if an expression is less than another.
Less Than or Equals: Checks if an expression is less than or equal to another.
Not: Allows you to negate a specific variable so you can check on all conditions but a specific one.
Or: Allows you to create an optional condition where one of two things can be true but not both.
Player is Certain Alignment: Checks if a certain player is of a specific alignment.
Player is Certain Color: Checks if the current player is a certain color.
Player is Computer: Checks if a certain player is a computer player.
Player is Eliminated: Checks if a certain player has been defeated completely.
Player is Human: Checks if a certain player is a human player.
Player Owns Certain Hero: Checks if a certain player possesses a specific named hero.
Player Owns Certain Town: Checks if a certain player possesses a specific named town.
True: Checks if a condition is true.
Variable: Allows you to set the name of a variable.
Numeric expression Types
Number of Creatures in Army: Indicates the amount of a specific creature type in an army.
Current Day: Indicates a current day counting from the day the game began.
Current Day of Week: Indicates the current day of the week counting from the first day and ending on day seven.
Divided By: Allows you to divide one expression by another.
Experience Level: Indicates the level of a certain hero(es) in an army.
Skill Mastery: Indicates a hero's level of mastery of a specific skill in an army.
Number: Indicates a specific number.
Material Quantity: Indicates an amount of a specific resource.
Minus: Allows you to subtract one expression from another.
Month: Indicates the current month counting from the first month of the game.
Negate: Allows you to make an expression negative.
Player ID: Indicates a specific player.
Plus: Allows you to add one expression to another.
Random Number: Generates a random number and allows you to set the minimum and maximum range.
Remainder: Indicates that number that is left over after dividing one expression by another.
Times: Allows you to multiply one expression by another.
Total Number of Creatures in Army: Indicates only the total number of creatures in a specific army, including all creature types.
Total Number of Heroes in Army: Indicates only the total number of heroes in a specific army.
Variable: Allows you to set the name of a variable.
Week: Indicates the current week counting from the first week of the game.
Week of Month: Indicates the current week counting from the first week of the current month.
То есть да, я таки предлагаю четверочные "скрипты" (которые хотя называются скриптами, едва ли их следует так называть) как усовершенствование для редактора карт. Впрочем, одним только списком операций и условий из четверки здесь не ограничится. Есть очень полезные и напрашивающиеся скрипты, которых не было в четверке, например.
I. Объекты на карте приключений для скриптов.
1.
Событие-триггер. Внешне в редакторе отличается от обычного разве что цветом. Отличие от обычного события следующее: оно настраивается не непосредственно после открытия в редакторе, но настраивается отдельно в Параметрах карты. Картоделу нужно лишь выставить название события из списка существующих (настроенных в Параметрах).
Зачем тогда нужны старые события, куда более менее проработанные и с ограниченным функционалом?
Они нужны, если нужно быстро настроить какую-то засаду или бонус, а на отдельную настройку уйдет больше времени. Ну и по старинке многие привыкли к старым событиям.
И второе: старые карты должны быть совместимыми с новыми и старый функционал должен остаться. Не совсем ясно, впрочем, как тут быть со Стражами прохода и Хижинами провидца.
2.
"Бомба".
При активации скрипта "Удалить объект" все бомбы с указанным именем удаляют находящийся под ними объект на карте приключений. Города, монстры, герои и (возможно) шахты/жилища удалению не подлежат.
II. Расширенный функционал некоторых объектов.
У героев, монстров, городов, шахт, жилищ и гарнизонов появляется возможность настраивать события типа Триггер и Постоянные, а также события, активирующиеся при атаке/поражении (только у Героя, а также у Монстров).
Стражи Прохода и Хижины провидца также, фактически, действуют иначе.
III. Условия победы/поражения.
Поскольку победа и поражение при таком раскладе выдаются непосредственно скриптами, картодел в разделах "Условия победы/поражения" только прописывает текст и выставляет используемую иконку условия.
IV. Основной функционал: Создание "скриптов" в Параметрах карты (раздел События)
Помимо стандартных событий, срабатывающих по времени, появляется три дополнительных вида событий, настраиваемых там же аналогично обычным "временным" событиям:
Постоянные события. События, которые постоянно "держат контроль" над игрой, но срабатывают лишь при соблюдении определенных условий.
События-триггеры. События, которые срабатывают после активации действия "Запустить триггер" (выбирается событие из списка).
События на карте. Настраиваются События-триггеры на карте.
Полагаю, нет смысла расписывать все четверочные скрипты (я и так тут, фактически, описал четверку), могу лишь добавить полезные триггеры/действия, отсутствующие в четверке.
Условие: Герою известно определенное заклинание.
Действие: Удалить монстра/героя. В HMM4 такой опции не было, и приходилось вместо нее использовать действие "Сразить отряд с огромным количеством черных драконов".
Действие: Убрать всех существ/все артефакты из армии героя. Вместо этого приходилось набирать огромный список всех существ/артефактов в игре.
Действие: Убрать n существ из каждого стека. (Аналогичная проблема).
Действие (только при событиях типа Монстр/герой разгромлен): Применить скрипт к атакующему герою.
Действие (только в событиях Города): Разрешить/запретить строение.
Действие (только в событиях Монстра): Изменить уровень враждебности монстра.
Естественно, в четверке есть скрипты, для тройки не подходящие, но это и так должно быть очевидно.