NoX World - форум об игре NoX

Привет фанатам NoX !!! => Картостроение, скриптинг и моддинг => Картостроение => Тема начата: Dio от 01/11/2009 14:07:26

Название: Скрипты, описание функций, команд и т. д.
Отправлено: Dio от 01/11/2009 14:07:26
Эта тема была создана по совету Снежка, здесь как видно по названию будут описываться скрипты.
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Dio от 12/11/2009 20:05:14
Переменные
Переменные бывают двух типов локальные и глобальные, разница в том что глобальные применяются в любых функциях и вообще отвечают за глобальные параметры, а локальные переменные переменные могут быть использованы только в данном случае.
Глобальные переменные могут быть объявлены где угодно и они могут содержать свойство, объект, значение, вайпоинт и остальное.
Вот пример глобальной переменной (в ней заключен объект "ядовитая капуста (полип)")
Gvar5 = object("polyp")Внимание крайне не рекомендую использовать переменные от Gvar1 до Gvar3, скрипт может не работать...
Локальные переменные применяются в какой либо функции, и только в ней. Они задаются непосредственно в скрипте, а так же должны быть заданы в окошке variables.
вот пример локальной переменой в окошке variables
var0[1]Число в квадратных скобках обозначает количество значений и фрагментов которое может вместить переменная.(если значение больше одного то это массив)
Вот пример переменной в скрипте. (в ней заключено значение 1)
var1 = 1
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Dio от 01/12/2009 19:01:02
В этой главе за основу скриптов я буду брать кнопки рычаги и т. д.
что бы при нажатие рычага(кнопки) активировался какойто скрипт надо: залезть на эту страничку (http://www.noxhub.net/templar/index.php?page=Script_Callers&mod=t) выбрать тип, например buttons и ввести в строку Script name имя вашего скрипта, потом нажать кнопку Sumbit и появятся заветные хексы, которые надо будет вставить у вашей кнопки в мод бокс...
Простейший скрипт перемещения объекта когда он нажимает кнопку или входите в какую то зону(триггер)
var0 = GetCaller()
var1 = Waypoint("A")
MoveObject(var0,GetWaypointX(var1),GetWaypointY(var1))
в переменной var0 в данном случае хранится информация о том кто нажал кнопку (или вошел в зону - короче запустил скрипт),  в переменной var1 хранится информация о вейпоинте A (на который и будет перемещаться объект) его кстати надо создать. Следующая строка с функцией Moveobject говорит нам что объект (var0) переместиться в икс-координаты и игрек-координаты вейпоинта A.
Добавления на игрока каких нибудь эффектов(заклиннаний)
Прежде всего надо сказать что список всех эффектов и спеллов лежит в папкe ...NoxToolsscripts unctiondescs файл соответствующий (effect)
Сделаем например так что бы когда вы нажимали кнопку на вас ложился шок
var0 = GetCaller()
Enchant(var0,"ENCHANT_SHOCK",f0)
return
Все вам здесь должно быть все знакома кроме функции Enchant(var0,"ENCHANT_SHOCK",f0) var0 это тот на кого ложиться шок, дальше строка ENCHANT_SHOCK это как раз тот самый шок, последние значение F0 обозначает длительность заклинания, я предполагаю что F это секунды, а 0 это время длительности (0 бесконечность) так если Шок длиться 100 секунд то это будет выглядеть так f100.
Вы можете так же добавить перемещение объекта вместе с наложением Шока, вообще на кнопке вроде может быть сколько угодно функций...
                                        Добавление спеллов (изучение)
команда Adwardspell
Пример(для кнопки):
var0 = GetCaller()
AwardSpell(var0,"SPELL_SHOCK")
return
Помня материял изученного вы легко все поймете, на первом месте переменная кому дается спелл, а на втором сам спелл. Все спеллы вы можете найти ...NoxToolsscripts unctiondescs файл соответствующий (Adwardspell)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Ужасающий от 09/12/2009 01:31:31
Здесь я опишу принцип работы некторых непонятных функций:

SetProperty

Эта фунция позволяет присваивать юнитам (монстрам и неписям) способность вызывать скрипт по проишествии определённого события (например юнит увидел врага или убит)

SetProperty( Arg, Arg, Arg )
SetProperty( юнит, тип события, номер вызывемого скрипта на карте)
образец правильного написания: SetProperty(var1,5,5)

Типы событий:

3: See Enemy
4: Looking for Enemy
5: On Death
6: On Change of Course(Not so sure)
7: When Hurt
9: On Collision
10: Hear Enemy
13: Lost Enemy

Таким образом, SetProperty(var1,5,5) означает: вызвать скрипт номер 5, если юнит var1 умрёт

SetDialog

Эта функция даёт способность юниту говорить - т.е если навести на неё курсор появится иконка разговора, а если - шёлкнуть вызовется скрипт

SetDialog(Arg,Arg,Arg,Arg)
SetDialog(юнит с которым можно будет говорить, тип диалога, вызываемый в начале диалога номер скрипта, вызываемый в конце диалога номер скрипта)
образец правильного написания:SetDialog(var2,"NORMAL",24,15)

SetDialog(var2,"NORMAL",24,15)-  это значит что с юнитом var2 теперь можно разговаривать, тип диалога обычный, в начале разговора будет вызываться скрипт номер 24 на карте, а в конце номер 15
Название: Скрипты, описание функций, команд и т. д.
Отправлено: TheSim от 15/12/2009 01:46:05
По этому поводу предлагаю переименовать SetProperty в SetUnitScript - понятней будет

Также:

в параметрах функций f10 - это значит что число не целое, а дробное (10.0)

Еще для справки -в стандартном ноксе может быть всего 1024 переменные одновременно (т.е. глобальные + все скрипты которые выполняются в данный момент !setFrameTimer - скрипты считаются выполняющимися!)

Кстати, господа - редактор - чтука динамическая - если что-либо поправить в ScriptFunctionList.cs или  добавить новые .rtf в functiondesc - все применится при перезапуске редактора
еще можно в scripts можно создать папку objects в ней defaultmods, а в ней класть файлики <имя объекта>.txt - то при добавлении новых объектов в их mod-байтах сразу будут хексы из этих файликов
Название: Скрипты, описание функций, команд и т. д.
Отправлено: TheSim от 28/12/2009 01:15:10
Зделать безкрэшевый патч для нокса довольно геморно, т.к. надо полностью понять каждый байт модбокса, а если его понять - то проще будет дополнить редактор.

О внутреннем устройстве мод-боксов:
Для каждого объекта в ноксе есть XFer-функция. Какая для кагого объекта - написано в Things.bin
Cписок этих функций лежит начиная с адреса 005C8B48 в формате {указатель на название, указатель на функцию}
Каждая из них получает два аргумента - указатель на вновь создаваемый юнит и некий странный, который очень редко используется.
Затем эта функция начинает читать подряд данные предполагая что они в нужном порядке. Причем никаких границ в файле нету, т.е. она сначала четает похоже поле M40, затем в зависимости от размера читает основные свойства юнита (координаты, цвет, кликабельность и т.п) а затем уже читает каждая свое.


P.S. в ближайшее время почитаю NPC XFer как самую интересную
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Dio от 20/03/2010 00:25:26
Ох, ох, ох. Сегодня я вам расскажу про создания карты в, который можно будет управлять точкой спамна(создания) предмета.
Прежде всего скажу вам вот что (говорили уже не раз)
1. НЕ пользуйтесь эти редактором.
2. Да же если вы осмелились нарушить пункт один то, никогда НЕ открывайте вкладку scripts в редакторе.
3. НЕ объявляйте лишние переменные.
НУ а теперь приступим к созданию карты (я расскажу основные вещи и выложу саму карту)

Для начало необходимо наделать кнопок всего их будет 6
1. Создания предмета
2. Сброс координат
3. Сложение по оси x
4. Вычитание по оси x
5. Сложение по оси y
6. Вычитание по оси y
Скажу правда только то что эти оси я взял относительно стен.

Ну что же объявим переменные...

Я сделал так:Gvar4 = f2728
Gvar5 = f3163
Gvar6 = Waypoint("x1")
return
Скажу что "f" нужно нам будет для того что бы выполнять арифметические действия.Так же не забывайте объявить переменные в окне Variables.

Далее сделаем например сложение по оси x
Gvar4 = Gvar4 f+ f46
Gvar5 = Gvar5 f+ f46
return
Вот тут то вы можете удивиться что я прибавляю и к икс и к игрек, но я взял оси x и e относительно стен и что бы движение точек было как бы относительно стен надо прибавлять к двух координатам...
Так же заметьте что все операции так же идут с "f'

Вот вам еще для сложение по оси y
Gvar4 = Gvar4 f+ f46
Gvar5 = Gvar5 f- f46

Остальные операции вы можете додумать сами.

Теперь само движение вайпоинта и создание предмета.
Вот скрипт: MoveWaypoint(Gvar6,Gvar4,Gvar5)
Create("Deathball",Gvar6)
return

MoveWaypoint эта функция передвигает вайпоинт. Ее синтаксис таков MoveWaypoint(что, куда по икс, куда по игрек)

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

Сама карта лежит в вложениях.
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Dio от 28/03/2010 15:00:18
Теперь что бы генерировать хексы для кнопок и т. д. можно скачать специальную прогу здесь (http://forum.noxworld.ru/katotoee-kt-mo/oamma-eea-eko-k-kokam-aam-t/msg11167/#new). А не лазить все время сюда (http://www.noxhub.net/templar/index.php?page=Script_Callers&mod=t)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Dio от 03/06/2010 09:25:07
Новый взгляд на моверы.

Помните как в компании за война (war02a или war07g) SpikeBlock такие колючие блоки, которые носились туда сюда. С помощью команды Move это делать муторно, однако имеется другой способ.

Создаем на карте SpikeBlock(да и в принципе любой предмет) и Mover, а так же 2 вайпоинта.

Вновь разберем хекс для мовера (картинку нагло взял с ноксики)
(http://i11.photobucket.com/albums/a151/RogueTeddyBear/tut_Mover.jpg)
 
Зеленый это скорость мовера (не может быть > FF)
Красный это номер вайпоинта на, который мы указываем что бы мовер ехал на него(для команды Move он не нужен)
Синий это Экстент мовера.
Все в хекс.

Так вот забиваем нужный хекс именно с номером вайпоинта (скоро обновлю хекс генератор, и в нем можно будет генерировать хекс и для моверов)
Связываем этот вайпоинт с другим вайпоинтом, а тот вайпоинт с этим.
И пишем скрипт например в инициализацию
ObjectOn(Object("nameMover"))
return

"nameMover" - это имя мовера

и вуаля.

Карта с примеров во вложениях
Название: Скрипты, описание функций, команд и т. д.
Отправлено: mildtroll от 07/07/2010 00:04:02
Дио, синим на скрине помечен экстент не вайпоинта, а объекта, к которому привязывается мовер.


з.ы.
спасибо за инфу!
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Dio от 05/09/2010 09:19:15
                                                       Синтаксис скриптов редактора


Эх эта тема меня не сильно бесит да же) ибо вроде как на все синтаксические ошибки он ноет еще во вкладке скриптс.
Вообще скрипты становятся предельно понятны после изучения какого нибудь C++.

                                                           return
Вообще команда ставится самой последней и обозначает конец функции или если взять аналогию то возвращение какого то параметра. Вроде бы как в редакторе можно ставить 2 и более ретурна.

                                                            if
Конструкция бее.. Вообщем сам оператор выглядит так
if УСЛОВИЕ jump #Вместо # ессно номер метки. Так же насчет условия оно должно выглядеть так.
if var0 < 1 jump 2то есть обратите на пробелы.
Так же есть конструкция if not то есть отрицание условия.
                                                           
                                                             Метка и jump
Пишется так
:#Вместо # номер.
Jump в чистом виде выглядит так
jump #Вместо # номер метки.
Вообщем оператор оператор делает прыжок по номеру к метке.
и еще, метка не может находится по коду выше jump.

                                                             Строки
Ну строки как и всегда пишутся в "".

                                                             Общие советы
Всегда делайте пробелы в сложении, присвоение переменным значения и так далее.
Что бы врубить подсветку синтаксиса в новой функции, а так не удаления всего кода "случайно". Залезаете в новую функцию, пишете в нее return и нажимаете "Ok". Все)
Координаты объектов идут как Float. В редакторе что бы обазначить что это float надо писать
var1 = f100
varF1=100 (точно не уверен но такая F вроде бы служит что бы обозначить эту переменную как флоат)
var1= f100 f+ f100

                                                              Пример
Цель: создать 5 мобов, и каждого создавать через 60 кадров после создания предыдущего.
Объявить Gvar4(инициализируем его в манИнициализ) и сделать Вайпоинт A

Create("urchin",Waypoint("A"))
Gvar4 = Gvar4 + 1
if not Gvar4 > 5 jump 1
return
:1
FrameTimer(60,3)
return
Название: Скрипты, описание функций, команд и т. д.
Отправлено: TheSim от 17/09/2010 02:11:50
и еще, метка не может находится по коду выше jump.
Вообще это косяк редактора, на самом деле может. Потому некоторые скрипты из оригинальных карт и не сохраняются корректно.
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Perfect от 23/03/2011 02:21:48
Когда используете условный оператор, помните, что условие равенства и неравенства пишутся так:
if * == * если равны
if * != * если не равны (по сути, это <> )

Несколько функций и их описание...
<hr>
Frozen(Arg1,Arg2) Замораживает объект. В это время объект не может двигаться и совершать какие-либо действия. Также не может быть сдвинут ничем иным. Работает так - Заморожен(Кто,Да/Нет).
WideScreen(Arg) Убирает верх и низ экрана, создавая эффект кинематографии. Работает ШирокийЭкран(Да/Нет)
Effect(Arg1,Arg2,Arg3,Arg4,Arg5) Создаёт эффект арг1 (строка) начиная с координат арг2,арг3 до арг4,арг5. Координаты брать как флоат. Для точечных эффектов писать вместо арг4,арг5 - f0,f0. Для эффекта землетрясения изменять арг4.
Music(Arg1,Arg2) Запускает музыкальный файл арг1 (число) с громкостью арг2 (0..100)
ObjectOn(Arg) Включает объект.
ObjectOff(Arg) Выключает объект.
ObjectToggle(Arg) Меняет состояние объекта вкл/выкл.
SecondTimer(Arg1,Arg2) По прошествии Арг1 секунд запускает скрипт номер Арг2.
Название: Скрипты, описание функций, команд и т. д.
Отправлено: KirConjurer от 23/03/2011 08:10:23
Attack(object,object) - заставляет arg1 атаковать arg1.
CancelTimer(timer) - останавливает таймер arg1.
CastSpellFrom(string,float,float,float,float) - кастует спелл arg1 из точки arg2,arg3 в точку arg4,arg5.
ChangeGold(object,int) - изменяет количество золота arg1 на arg2.
Unknownd1(object,int) - добавляет/удаляет (NEG) к числу очков arg1 arg2.
WallToggle(wall) - переключает состояние стены arg1
string FloatToString(float) - конвертирует и возвращает в виде строки arg1.
string IntToString(int) - конвертирует и возвращает в виде строки arg1.
bool HasEnchant(object,string) - возвращает есть ли енчант arg2 на обьекте arg1.
LookAtObject(object,object) - заставляет arg1 смотреть на arg2.
int Random(int,int) - возвращает случайное число в диапазоне между arg1 и arg2.
float RandomFloat(float,float) - возвращает случайное число с плавающей точкой в диапазоне между arg1 и arg2.
SetProperty(object,int,int) - заставляет arg1 при ситуации обозначенной arg2 вызывать скрипт arg3.
SetGuardSpot(object,float,float,float,float,float) - заставляет arg1 двигаться к точке arg2 и arg3 и охранять позицию обозначенную arg4 и arg5 и атаковать всех кто перейдет границу arg6.
А вообще, не вижу смысла перечислять описания всех функций...
Допустимые значения arg2 функции Music:
1 - Chapter 1
2 - Chapter 2 Wizard
3 - Chapter 2 Conjurer
4 - Chapter 2 Warrior
5 - Chapter 3
6 - Chapter 4
7 - Chapter 5
8 - Chapter 6
9 - Chapter 7
10 - Chapter 8
11 - Chapter 9
12 - Chapter A
13 - Chapter B
14 - Title
15 - Town 1
16 - Town 2
17 - Town 3
18 - Sub 1
19 - Sub 2
20 - Sub 3
21 - Wander1
22 - Wander 2
23 - Wander 3
24 - Credits
25 - Shell
26 - Action 1
27 - Action 2
28 - Action 3
29 - Wander
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Evengard от 24/03/2011 00:55:40
а arg1 у music это что?
Название: Скрипты, описание функций, команд и т. д.
Отправлено: TheSim от 24/03/2011 01:05:02
Евен! Удивлен весьма - ты же в базе посмотреть можешь на script###
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Perfect от 24/03/2011 01:35:52
Эвен, смотри мой пост. Кирилл опечатался. :hi:
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Evengard от 24/03/2011 07:19:15
Вопрос больше из принципа (для других) и любопытства)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: horrendous1 от 24/03/2011 22:38:25
It's volume.
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Garett от 29/03/2011 19:42:05
Плачу!
Горько плачу! Разочарован в жизни!
Моя жизненная теория, что все люди иди.. жесточайшим образом подтвердилась.

Вот сколько будет - "2 + 2 * 2" ?... да, и я думал, что "6"...

Achtung!: 2 + 2 * 2 = 8

var0 = f2
var1 = f2
var2 = f2
var3 = var0 f+ var1 f* var2

Результат: var3 == f8 - true
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Evengard от 29/03/2011 21:07:31
Ого... Хм. Интересно, кто неправ - разработчики редактора карт или разработчики Нокса?)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Perfect от 29/03/2011 21:59:29
Виноваты разработчики редактора карт. Там у действий нет приоритета, всё делается строго по порядку.
Название: Скрипты, описание функций, команд и т. д.
Отправлено: TheSim от 29/03/2011 23:22:03
Нефакт. Возможно в их редакторе был подходящий компилятор, который генерировал байткоды уже в правильном порядке, а константы мог и вовсе выбрасывать и писать сразу 6
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Perfect от 29/03/2011 23:49:12
Я имею в виду разработчиков редактора, который мы сейчас имеем. (или наоборот - он нас?) :biggrin:
Название: Скрипты, описание функций, команд и т. д.
Отправлено: TheSim от 30/03/2011 09:27:23
Редактор конечно уг. В принципе могу обьяснить как сделать нормальный компилир скриптов и дать-кое какие наработки чтобы не тратить время с парсингом - если хотите сделать подобное общественно-полезное дело
Название: Скрипты, описание функций, команд и т. д.
Отправлено: horrendous1 от 30/03/2011 17:15:22
as far as I know, 2 + 2 = 4 and 4 x 2 is 8
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Dio от 30/03/2011 17:22:22
"*" have bigest priority then "+"
2+2*2=6 - this is knew all students)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: horrendous1 от 30/03/2011 19:22:23
ah, well it's good news that the editor ignores this
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Perfect от 23/04/2011 09:06:36
SetOwner(Arg1,Arg2)
Делает Arg1 хозяином Arg2.
Пример:
SetOwner(Gvar1,Object("TrapLaser"))
Вызвавший функцию становится хозяином лазера.

ClearOwner(Arg)
Лишает Arg хозяина.
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Lаrboss от 16/08/2011 11:36:34
Если кто знает поделитесь адресом и описанием функции нокса, которая перемещает объект или заставляет двигаться к цели.
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Perfect от 16/08/2011 15:47:15
Move(Object,Waypoint)

RETURNS: VOID

Moves $arg1 to $arg2 (and keeps moving if the waypoint is linked to another)

NOTE: ONLY OBJECTS THAT CAN  MOVE OR ARE ATTACHED TO A MOVER CAN BE MOVED

EXAMPLE:
Move(Object("TheBear"),Gvar4)

MoveObject(Object,Float,Float)

RETURNS: VOID

Instantaneously moves $arg1 to the coordinates indicated by $arg2 and $arg3.

EXAMPLE:
MoveObject(Object("SuspiciousBlock"),f2345,f2720)
MoveObject(Gvar7,var2,var3)
MoveObject(Gvar7,GetWaypointX(var0),GetWaypointY(var1))

GroupMove(ObjectGroup,Waypoint)

RETURNS: VOID

Moves $arg1 to $arg2 (and keeps moving if the waypoint is linked to another)

NOTE: ONLY OBJECTS THAT CAN MOVE OR ARE ATTACHED TO A MOVER CAN BE MOVED

EXAMPLE:
GroupMove(ObjectGroup("TheBears"),Gvar4)

MoveWaypoint(Waypoint,Float,Float)

RETURNS: VOID

Instantaneously moves $arg1 to the coordinates indicated by $arg2 and $arg3.

EXAMPLE:
MoveWaypoint(Waypoint("FirePoint1"),f1308,f3821)
MoveWaypoint(Gvar5,var2,var3)
MoveWaypoint(Gvar5,GetObjectX(Gvar4),GetObjectY(Gvar4))

Move = 0xb
GroupMove = 0xc
MoveObject = 0x43
MoveWaypoint = 0x44
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Salvo от 16/08/2011 17:45:47
Если кто знает поделитесь адресом и описанием функции нокса, которая перемещает объект или заставляет двигаться к цели.

Inanimate objects can be made to move by connecting them to objects called movers. Movers are used in the following format:

Object: Mover

[AA AA AA AA] [BB BB BB BB] [CC CC CC CC] 00 00 00 00 00 00 00 00 00 00 00 f0 3f 00 00 f0 3f

AA = INTEGER; The speed of the object
BB = INTEGER; The waypoint that the reference object starts at
CC = INTEGER; The extent of the object it will move (the reference object)

Once you attach the mover to the object, you can then give the object a script name and move it using the Move() command.
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Lаrboss от 16/08/2011 19:55:51
Видать я не там что-ли вопрос задал или не так. Меня интересует адрес функции в экзещнике =)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Dio от 16/08/2011 21:08:49
0x004E7010
unitMove в юнимоде.
создаешь структуру типа
struct point
{
   float x
   float y
};
заполняешь ее координатами
в итоге как то так
unitMove(userdata,*point)
то есть тебе останется просто передать указатель на структуру

можешь кстати смотреть файл ScriptFunctionList.cs
Там в енуме "methods" стоят имена функций и их номера.
Найти фн по номеру можно юзай скриптФнЛист 0x005C308C

В следующий раз пиши в тему по юнику ибо этим занимаемся мы)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: horrendous1 от 22/08/2011 15:43:52
http://nox.wikia.com/wiki/Map_Editor_Scripting (http://nox.wikia.com/wiki/Map_Editor_Scripting)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Garett от 06/11/2011 08:27:26
Наконец-то я сделал великое Закрытие - теперь любой игрок может быть закрыт Отражающим щитом:
Enchant(GetHost(),"ENCHANT_REFLECTIVE_SHIELD",f10) - работает
Enchant(GetHost(),"ENCHANT_REFLECTIVE_SHIELD",f8) - не работает

Справка:
Enchant(<на кого>,<какой эффект>,<как долго>)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Perfect от 06/11/2011 23:46:41
Вот он, список моей мечты! Здаравенный, здаравенный список всех энчантов! ЙЕАААААХХ!! ЙЙЕЕААААААХХХ!!!
ENCHANT_AFRAID
ENCHANT_ANCHORED
ENCHANT_ANTI_MAGIC
ENCHANT_BLINDED
ENCHANT_BURNING
ENCHANT_CHARMING
ENCHANT_CONFUSED
ENCHANT_CROWN
ENCHANT_DEATH
ENCHANT_DETECTING
ENCHANT_ETHEREAL
ENCHANT_FREEZE
ENCHANT_HASTED
ENCHANT_HELD
ENCHANT_INFRAVISION
ENCHANT_INVISIBLE
ENCHANT_INVULNERABLE
ENCHANT_LIGHT
ENCHANT_MOONGLOW
ENCHANT_PROTECT_FROM_ELECTRICITY
ENCHANT_PROTECT_FROM_FIRE
ENCHANT_PROTECT_FROM_MAGIC
ENCHANT_PROTECT_FROM_POISON
ENCHANT_REFLECTIVE_SHIELD
ENCHANT_RUN
ENCHANT_SHIELD
ENCHANT_SHOCK
ENCHANT_SLOWED
ENCHANT_SNEAK
ENCHANT_TELEKINESIS
ENCHANT_VAMPIRISM
ENCHANT_VILLAIN
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Norten от 07/11/2011 00:29:27
Звучит так, как будто раньше он неизвестен был  :)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Evengard от 07/11/2011 01:21:02
Попросил б давно б дали)
Название: Скрипты, описание
Отправлено: Perfect от 07/11/2011 12:40:57
У меня он был с момента установки редактора на пк. Не у всех он есть, обещал запостить.

P.S. И, кстати, вам двоим предупреждение за оффтоп. LOL
Название: Скрипты, описание функций, команд и т. д.
Отправлено: FreemanZA` от 04/05/2012 16:33:08
Не знал куда написать, так что не кидайте в меня кирпичами.

Сам вопрос: можно ли научить Мертвого Рыцаря-вампира (летучая мышь) или NPC'овского война (встречается "На поле бесстрашия" - стену бошкой выламывает) использовать гарпун, таран, крик? Если можно, то как это осуществить?

И можно ли из Нокс-квеста вытащить магов и обучить их некоторым спеллам?
Название: Скрипты, описание функций, команд и т. д.
Отправлено: Katarsis от 04/05/2012 17:24:47
Сам вопрос: можно ли научить NPC использовать гарпун, таран, крик? Если можно, то как это осуществить?
Силами редактора карт - практически нереально. Даже если удастся имитировать внешние эффекты, что тоже под большим вопросом, качественное ИИ для использования этих приемов ты вряд ли напишешь...
Хотя с появлением юнимода все стало возможным, может там это делается просто...

И можно ли из Нокс-квеста вытащить магов и обучить их некоторым спеллам?
А можно ли формулировать вопрос четче? Ты хочешь изменить параметры своего персонажа-мага? Если да, то каким именно заклинаниям ты хочешь его научить?
Название: Скрипты, описание функций, команд и т. д.
Отправлено: 2530 от 04/05/2012 17:25:11
Магов это кого? Мистиков? Если да, то они и так владеют спеллами и легко вытаскиваются (объект - Wizard)
Название: Скрипты, описание функций, команд и т. д.
Отправлено: FreemanZA` от 04/05/2012 17:31:13
Неправильно выразился. Да, мистиков (спс 2530). Хочу попробывать научить их юзать Смертельный луч и некоторые другие спеллы.
Родилась у меня одна идейка, подробности напишу позже. Сначала надо все обдумать.