Связи (скрипты)

Автор Zmey, 29 июня 2011 21:05:55

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Zmey

Люди, кто знает какие скрипты или связи пишите сюда. Может туториал на русском где есть?
Сделал в игре запертый сундук на отмычки, и ужаснулся на тот обьём действий который я делал, незнаю может и проще есть способ зделать запертый сундук. Вот пример:

Как зделать запертый на отмычки сундук.

Запертый сундук -(Ставим модель сундука)

Свойства (Entity inspector) Должны соответствовать этим

Classname atdm:froblock
name FootLockerBody_1
immune_to_target_setfrobable 1 ставим галку
lock_picktype s
lock_pins 2
locked 1 ставим галку
target FootlockerLid
used_by FootLockerKey_1
model models/darkmod/containers/openable/footlocker_wood.ase  Модель сундука

Свойcтва крышки от сундука-( Ставим модель двери )

Свойства (Entity inspector) Должны соответствовать этим

Classname atdm:mover_door
name FootlockerLid
frob_master FootLockerBody_1   Эту строку вбить в ручную правда не знаю зачем
immune_to_target_setfrobable 1 ставим галку
lock_picktype -
lock_pins 0
locked 0 галки нет
move_time 1
rotate 0 0 -80         (Подразумевается открывание по оси X Y Z)
target ChestFrobControl_1
trigger_on_close 1 ставим галку
used_by -
model models/darkmod/containers/openable/footlocker_wood_lid.ase   Модель крышки

Добавляем третий объект к сундуку. Для начала ставим кисть обычный куб, затем не снимая выделения жмём правую клавишу мыши, далее по адресу: Create Entity/Darkmod/Targets/ atdm:target_set_frobable
Затем натяните на неё текстуру: по адресу textures/common/clip

Свойства (Entity inspector) Должны соответствовать этим

Classname atdm:target_set_frobable
Name ChestFrobControl_1
Model ChestFrobControl_1

Shadowhide

заставляем мувер летать по кривым траекториям

Цитироватьvoid ghostlight()
{
$НазваниеМувера.startSpline($ИмяКривой);
sys.wait(49);
}

void main()
{
$НазваниеМувера.time(49); \\\\время за которое мувер будет облетать траекторию
$НазваниеМувера.decelTime(1);
$НазваниеМувера.accelTime(1);

while(1)
{
ghostlight();
}
}

Shadowhide

Цитировать$ИмяДвери.Open(); открывает дверь
$ИмяДвери.Close(); закрывает дверь


Zmey

Патрулирующий стражник.

Нам понадобиться три вида обьектов, 1. Стражник. 2. Одна точка path_wait.  И нужное нам количество точек path_corner.
Точки можно найти щёлкнув на правую клавишу мыши, далее Create Entity... далее Darkmod/Path  в этой папке находятся эти точки.
Ставим стражника и рядом с ним точку path_wait. Заходим в свойства стражника и добавляем функцию Target в этой функции пишем имя (Name) точки path_wait. Далее подтвердить. У нас образовалась первая связь между стражником и точкой, таким же методом точку path_wait привязываем к точке path_corner, затем точку path_corner привязываем к последующей точке path_corner и тогдалее.... Смотря на сколько длинный путь патруля вы собрались делать. И наконец чтобы патруль работал нужно эту цепь точек замкнуть! Привязать последний path_corner к первому path_corner. Смотрите не перепутайте не к первой точке path_wait а именно первой точке path_corner. Желательно чтобы последняя точка была близка от первой, можно сделать кольцом патруль!


Shadowhide

кстати есть ещё path_anim,path_use,path_sleep
так что можно сделать так чтоб стражник во время патруля присаживался,ложился спать,использовал что-нибудь и тд

Zmey

А есть список с анимациями для точки path_cycleanim. Я так понял эта точка анимацию должна проигрывать?

Shadowhide

скрипт,добавляющий предмет в инвентарь
Цитировать$player1.addInvItem($НазваниеПредмета); add item to players inventory

Zmey

Цитата: Shadowhide от 02 июля 2011 01:17:18
скрипт,добавляющий предмет в инвентарь
Цитировать$player1.addInvItem($НазваниеПредмета); add item to players inventory

А в каком окне прописывать этот скрипт нужно?

Shadowhide

в скриптовом файле миссии

Zmey

В этом самом окне?


Zmey

Попробовал прописать в файле mine.script   строчку с привязкой предмета выдало ошибку! Потом в редакторе скриптов попробовал вбить тоже самое, нажал Run Script  и тоже выдало ошибку   File "<string>", line 1
    $player1.addInvItem($atdm_playertools_lockpick_snake_1);
    ^
SyntaxError: invalid syntax

Вбивал строку: $player1.addInvItem($atdm_playertools_lockpick_snake_1);

Shadowhide

объясни пожалуйста,что ты пытаешся сделать ?
может опять повторить процедуру с обменом карты :)

Zmey

Я пытаюсь присвоить две отмычки в инвентарь )) неполучается. Если у тебя есть время то можно повторить процедуру с картой  :biggrin:

Shadowhide

для этого не надо писать скрипт
достаточно добавить им свойство :
iv_map_start
1

вот если бы нужно было что АИ давал отмычку  или что-то перемещалось в инвентарь волшебным образом,вот тогда,да,нужен скрипт