Difference between revisions of "User:AVS/Scripting"

From VCMI Project Wiki
Jump to: navigation, search
(WoG)
(Features)
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
= Configuration =
 +
 +
<syntaxhighlight lang="javascript">
 +
{
 +
//general purpose script, Lua or ERM, runs on server
 +
"myScript":
 +
{
 +
"source":"path/to/script/with/ext",
 +
"implements":"ANYTHING"
 +
},
 +
 +
 +
//custom battle spell effect, Lua only, runs on both client and server
 +
//script ID will be used as effect 'type' (with mod prefix)
 +
"mySpellEffect":
 +
{
 +
"source":"path/to/script/with/ext",
 +
"implements":"BATTLE_EFFECT"
 +
},
 +
 +
//TODO: object|building type
 +
//custom map object or building, Lua only, runs on both client and server
 +
//script ID will be used as 'handler' (with mod prefix)
 +
"myObjectType":
 +
{
 +
"source":"path/to/script/with/ext",
 +
"implements":"MAP_OBJECT"
 +
},
 +
//TODO: server query
 +
//TODO: client query
 +
 +
}
 +
</syntaxhighlight>
 +
 +
= Lua =
 +
= ERM =
 +
== Features ==
 +
* {{todo}} semi compare
 +
* {{todo}} macros
 +
== Bugs ==
 +
* {{todo}} Broken XOR support (clashes with `X` option)
 +
 
== Triggers ==
 
== Triggers ==
* {{todo}} !?AE при одевании и снятии артефактов  
+
* {{todo}} '''!?AE''' при одевании и снятии артефактов  
* {{wip}}!?BA в начале и конце битвы   
+
* {{wip}} '''!?BA''' в начале и конце битвы   
* {{wip}}!?BF при проработке поля боя (препятствия и т.п.)   
+
* {{wip}} '''!?BF''' при проработке поля боя (препятствия и т.п.)   
* {{todo}}!?BG при любом действии стека или героя в битве   
+
* {{todo}} '''!?BG''' при любом действии стека или героя в битве   
* {{todo}}!?BR в начале каждого раунда битвы   
+
* {{todo}} '''!?BR''' в начале каждого раунда битвы   
* {{todo}}!?CM при клике мышкой   
+
* {{todo}} '''!?CM''' при клике мышкой   
* {{todo}}!?CO при действиях с командиром   
+
* {{todo}} '''!?CO''' при действиях с командиром   
* {{todo}}!?DL при действиях с диалогом пользователя (только TE или выше)  
+
* {{todo}} '''!?DL''' при действиях с диалогом пользователя (только TE или выше)  
* {{wip}}!?FU Содержит код функции   
+
* {{done}} '''!?FU''' Содержит код функции   
* {{todo}}!?GE при появлении определенного глобального события   
+
* {{todo}} '''!?GE''' при появлении определенного глобального события   
* {{todo}}!?GM при загрузке и сохранении игры   
+
* {{todo}} '''!?GM''' при загрузке и сохранении игры   
* {{todo}}!?HE при атаке или обмене (союз.) с определенным героем   
+
* {{todo}} '''!?HE''' при атаке или обмене (союз.) с определенным героем   
* {{todo}}!?HL при получении героем уровня   
+
* {{todo}} '''!?HL''' при получении героем уровня   
* {{todo}}!?HM при каждом шаге героя   
+
* {{todo}} '''!?HM''' при каждом шаге героя   
* {{todo}}!?IP поддерживает мультиплеер   
+
* {{todo}} '''!?IP''' поддерживает мультиплеер   
* {{todo}}!?LE (!$LE) при (после) посещения локального события   
+
* {{todo}} '''!?LE''' (!$LE) при (после) посещения локального события   
* {{todo}}!?MF при каждом нанесении физ. урона в битве   
+
* {{wip}} '''!?MF''' при каждом нанесении физ. урона в битве   
* {{todo}}!?MG при наложении заклинаний на карте   
+
* {{todo}} '''!?MG''' при наложении заклинаний на карте   
* {{todo}}!?MM при появлении подсказок (в битве, окне города, т.п.)   
+
* ''!?MM при появлении подсказок (в битве, окне города, т.п.)''  
* {{todo}}!?MR при сопротивляемости существа заклинанию в битве   
+
* {{todo}} '''!?MR''' при сопротивляемости существа заклинанию в битве   
* {{todo}}!?MW для Бродячих монстров   
+
* {{todo}} '''!?MW''' для Бродячих монстров   
* {{wip}}!?OB (!$OB) при или после посещения объекта(ов)   
+
* {{wip}} '''!?OB''' (!$OB) при или после посещения объекта(ов)   
* {{wip}}!?PI пост-инструкция   
+
* {{done}} '''!?PI''' пост-инструкция   
* {{todo}}!?SN при попытке игры воспроизвести любой звук   
+
* {{todo}} '''!?SN''' при попытке игры воспроизвести любой звук   
* {{todo}}!?TH при входе и выходе в городской холл   
+
* ''!?TH при входе и выходе в городской холл''  
* {{todo}}!?TL таймер реального времени (только ТЕ или выше)  
+
* {{todo}} '''!?TL''' таймер реального времени (только ТЕ или выше)  
* {{todo}}!?TM Содержит код таймера
+
* {{todo}} '''!?TM''' Содержит код таймера
  
 
== Receivers ==
 
== Receivers ==
Line 71: Line 113:
 
* {{todo}} !!PM Пирамиды или новые объекты  
 
* {{todo}} !!PM Пирамиды или новые объекты  
 
* {{todo}} !!PO Информация квадрата карты  
 
* {{todo}} !!PO Информация квадрата карты  
* {{todo}} !!QW Журнала  
+
* {{todo}} (???) !!QW Журнала  
 
* {{todo}} !!SN Проигрываемые звуков  
 
* {{todo}} !!SN Проигрываемые звуков  
 
* {{todo}} !!SS Настройка заклинаний (только ТЕ или выше)  
 
* {{todo}} !!SS Настройка заклинаний (только ТЕ или выше)  
Line 78: Line 120:
 
* {{todo}} !!TR Квадрата карты (почва, проходимость, т.п.)  
 
* {{todo}} !!TR Квадрата карты (почва, проходимость, т.п.)  
 
* {{todo}} !!UN Универсальная команда  
 
* {{todo}} !!UN Универсальная команда  
* {{todo}} !#VC Контроль переменных  
+
* ''!#VC Контроль переменных''
 
* {{wip}} !!VR Установка переменных
 
* {{wip}} !!VR Установка переменных
  
 
== Persistence ==
 
== Persistence ==

Latest revision as of 17:41, 11 July 2019

Configuration

{
 	//general purpose script, Lua or ERM, runs on server
 	"myScript":
	{
		"source":"path/to/script/with/ext",
		"implements":"ANYTHING"
	},


 	//custom battle spell effect, Lua only, runs on both client and server
 	//script ID will be used as effect 'type' (with mod prefix)
 	"mySpellEffect":
	{
		"source":"path/to/script/with/ext",
		"implements":"BATTLE_EFFECT"
	},

	//TODO: object|building type
 	//custom map object or building, Lua only, runs on both client and server
 	//script ID will be used as 'handler' (with mod prefix)
 	"myObjectType":
	{
		"source":"path/to/script/with/ext",
		"implements":"MAP_OBJECT"
	},
	//TODO: server query
	//TODO: client query

}

Lua

ERM

Features

  • [Todo] semi compare
  • [Todo] macros

Bugs

  • [Todo] Broken XOR support (clashes with `X` option)

Triggers

  • [Todo] !?AE при одевании и снятии артефактов
  • [WiP] !?BA в начале и конце битвы
  • [WiP] !?BF при проработке поля боя (препятствия и т.п.)
  • [Todo] !?BG при любом действии стека или героя в битве
  • [Todo] !?BR в начале каждого раунда битвы
  • [Todo] !?CM при клике мышкой
  • [Todo] !?CO при действиях с командиром
  • [Todo] !?DL при действиях с диалогом пользователя (только TE или выше)
  • [Done] !?FU Содержит код функции
  • [Todo] !?GE при появлении определенного глобального события
  • [Todo] !?GM при загрузке и сохранении игры
  • [Todo] !?HE при атаке или обмене (союз.) с определенным героем
  • [Todo] !?HL при получении героем уровня
  • [Todo] !?HM при каждом шаге героя
  • [Todo] !?IP поддерживает мультиплеер
  • [Todo] !?LE (!$LE) при (после) посещения локального события
  • [WiP] !?MF при каждом нанесении физ. урона в битве
  • [Todo] !?MG при наложении заклинаний на карте
  • !?MM при появлении подсказок (в битве, окне города, т.п.)
  • [Todo] !?MR при сопротивляемости существа заклинанию в битве
  • [Todo] !?MW для Бродячих монстров
  • [WiP] !?OB (!$OB) при или после посещения объекта(ов)
  • [Done] !?PI пост-инструкция
  • [Todo] !?SN при попытке игры воспроизвести любой звук
  • !?TH при входе и выходе в городской холл
  • [Todo] !?TL таймер реального времени (только ТЕ или выше)
  • [Todo] !?TM Содержит код таймера

Receivers

VCMI

  • [Todo] Identifier resolver
  • [Todo] Bonus system

WoG

  • [Todo] !!AR Артефакт (ресурс) в определенной позиции
  • [Todo] !!BA Битва
    •  !!BA:A$ return 1 for battle evaluation
  • [Todo] !!BF Препятствия на поле боя
  • [Todo] !!BG Действий монстров в бою
  • [Todo] !!BH Действия героя в бою
  • [Todo] !!BM Монстр в битве
  • [Todo] !!BU Универсальные параметры битвы
  • [Todo] !!CA Замок
  • [Todo] !!CD Разрушения замков
  • [Todo] !!CE События в замке
  • [Todo] !!CM Клика мышью
  • [Todo] !!DL Нестандартный диалог (только ТЕ или выше)
  • [Todo] !!CO Командиры
  • [WiP] !!DO Многократный вызов функции
  • [Todo] !!EA Бонусы опыта существ
  • [Todo] !!EX Опыт стека
  • [Todo] !!FU Однократный вызов функции
  • [Todo] !!GE Глобальное событие
  • [WiP] !!HE Герой
  • [Todo] !!HL Новый уровень героя
  • [Todo] !!HO Взаимодействия героев
  • [Todo] !!HT Подсказки по правому клику
  • [WiP] !!IF Диалоги и флагов
  • [Todo] !!IP Сетевой сервис битвы
  • [Todo] !!LE Локальное события
  • [WiP] !!MA Общие параметры монстров
  • [Todo] !!MC Макросы
  • [Todo] !!MF Получение физ. урона в бою
  • [Todo] !!MM Текст в битве
  • [WiP] !!MO Монстр в определенной позиции
  • [Todo] !!MP Контроль MP3
  • [Todo] !!MR Сопротивления магии
  • [Todo] !!MW Бродячих монстров
  • [WiP] !!OB Объект в определенной позиции
  • [Todo] !!OW Параметры игрока
  • [Todo] !!PM Пирамиды или новые объекты
  • [Todo] !!PO Информация квадрата карты
  • [Todo] (???) !!QW Журнала
  • [Todo] !!SN Проигрываемые звуков
  • [Todo] !!SS Настройка заклинаний (только ТЕ или выше)
  • [Todo] !!TL Контроль времени хода (только ТЕ или выше)
  • [Todo] !!TM Временный таймер
  • [Todo] !!TR Квадрата карты (почва, проходимость, т.п.)
  • [Todo] !!UN Универсальная команда
  • !#VC Контроль переменных
  • [WiP] !!VR Установка переменных

Persistence