на главную
об игре

Вопросы по редактору SandBox

 

Комментарии:  99
Ваш комментарий

1)Как сделать так, чтобы(где этот скрипт) в оригинале мой уровень был стартовым?(вместо Training) 2) ИИ могут ориентироваться перемещаясь меж TagPoints, пока не заметят игрока. Но как сделать так, чтоб заметив меня они начали бегать куда им вздумается стреляя по мне?(трайгены так и делают, а вот наёмники нет)

ИИ не хотят патрулировать на катере. Что делать?

Неа, нажимал Reload Script однако водитель катера всё равно не хочет ехать меж Tag Points. И якоря тоже не действуют. Оба (водитель и пулемётчик) сели в катер, но ездить не хотят.

Все мои Скрытые Комменты на этой Странице Джеку Карверу Сюда в скрытый текст, там подробно описано создание сцены Мёртвый Кроу.
ПРЕДУПРЕЖДАЮ, что скрытый текст слишком большой.

Спойлер

Я создал 6 триггеров САМ и они работают
1. Триггер задач игрока.
2. Материальный триггер.
3. Триггер перемещения объектов и Игрока (телепорт).
4. Триггер перезагрузки транспорта в игре.
5. Ведущий триггер. Даёт стать ведущим для ИИ и ходить по тегточкам ****_LEAD
где **** это имя ИИ объекта.
6. Триггер для игрока. Даёт игроку указанную экипировку и оружие для игрока, отмеченное галочкой True и без галочки False.

Кому нужны эти Триггеры Пишите.

Как телепорт делать? ЩАС
Если для Тегточки тогда... пиши в скрипт миссии

function Mission:Event_Название функции Например: Teleport()
local move = _localplayer
local entity = Game:GetTagPoint("Название тегточки например: Player_MOVE");
if((move)and(entity))then
move:SetPos(entity:GetPos());
move:SetAngles(entity:GetAngles());
end
end

Потом в редактор создаёшь ТегТочку, куда тебе надо появиться Игроку и пишешь название, которое у тебя написано в скрипте миссии, у меня "Player_MOVE". Потом создаёшь ProximityTrigger и в событии Enter по исполнителю миссии (Mission Handler) выбираешь свою функцию, у меня Teleport. И ты подходишь к этому Триггеру и сразу появляешься в другом месте, где была установлена ТегТочка.

И так зайдите в редактор и на верхней строке редактора найдите слово Mission, нажмите на него,и снизу от этого слова появится ещё четыре Функции, Нажмите функцию Properties
Появится окно. На правой стороне этого Окна есть четыре слова это: Browse, Create, Reload и Edit. Нажмите на слово Create и появится другое окно. Теперь выберите папку, куда Скрипт Сохранять ,это Папки - Default/Entities/Triggers и внизу назовите её так ObjectiveTrigger нажмите Сохранить и это окно исчезнет теперь нажмите слово Edit в первом окне и появится документ в виде Блокнота, там написаны Миссионные Параметры Стерите ВСЁ и вставьте вот это......

ObjectiveTrigger = {
type = "Trigger",

Properties = {
ScriptCommand = "",
PlaySequence = "",
DeleteObjectives = {
Objective1="",
Objective2="",
Objective3="",
Objective4="",
Objective5="",
},
FinishMission = {
NextLevel="",
bComleteLevelFade=1,
bSavePlayerElements=1,
},
Objective0 = {
Message="NewObjective",
Objective="",
Radar="",

},
Objective1 = {
Message="NewObjective",
Objective="",
CompleteObjective="",
Radar="",

},
Objective2 = {
Message="NewObjective",
Objective="",
CompleteObjective="",
Radar="",

},
Objective3 = {
Message="NewObjective",
Objective="",
CompleteObjective="",
Radar="",

},
Objective4 = {
Message="NewObjective",
Objective="",
CompleteObjective="",
Radar="",

},
Objective5 = {
Message="NewObjective",
Objective="",
CompleteObjective="",
Radar="",

},
Objective6 = {
Message="NewObjective",
Objective="",
CompleteObjective="",
Radar="",

},
Objective7 = {
Message="NewObjective",
Objective="",
CompleteObjective="",
Radar="",

},
Objective8 = {
Message="NewObjective",
Objective="",
CompleteObjective="",
Radar="",

},
Objective9 = {
Message="NewObjective",
Objective="",
CompleteObjective="",
Radar="",

},
OutsideMap = {
WarningMessage="",

},
},

Editor={
Model="Objects/Editor/T.cgf",
},
}

function ObjectiveTrigger:OnPropertyChange()
self:OnReset();
end

function ObjectiveTrigger:OnInit()
self:EnableUpdate(0);
self:SetUpdateType( eUT_Physics );
self:TrackColliders(1);

self.Who = nil;
self.Entered = 0;
self.bLocked = 0;
self.bTriggered = 0;

self:RegisterState("Inactive");
self:RegisterState("Empty");
self:RegisterState("Occupied");
self:OnReset();
end

function ObjectiveTrigger:OnShutDown()
end

function ObjectiveTrigger:OnSave(stm)
--WriteToStream(stm,self.Properties);
stm:WriteInt(self.bTriggered);
end


function ObjectiveTrigger:OnLoad(stm)
--self.Properties=ReadFromStream(stm);
--self:OnReset();
self.bTriggered=stm:ReadInt();
end

function ObjectiveTrigger:OnReset()
self:KillTimer();
self.bTriggered = 0;

local Min = { x=-self.Properties.DimX/2, y=-self.Properties.DimY/2, z=-self.Properties.DimZ/2 };
local Max = { x=self.Properties.DimX/2, y=self.Properties.DimY/2, z=self.Properties.DimZ/2 };
self:SetBBox( Min, Max );
--self:Log( "BBox:"..Min.x..","..Min.y..","..Min.z.." "..Max.x..","..Max.y..","..Max.z );
self.Who = nil;
self.UpdateCounter = 0;
self.Entered = 0;
if(self.Properties.bEnabled==1)then
self:GotoState( "Empty" );
else
self:GotoState( "Inactive" );
end


end



---------------------------------------------------------------------
function ObjectiveTrigger:Event_Delete_ALL_Objectives( sender )
Hud:FlashObjectives();
end

---------------------------------------------------------------------
function ObjectiveTrigger:Event_Delete_Objective_1( sender )
Hud:FlashObjectives((self.Properties.DeleteObjectives.Objective1));
end

---------------------------------------------------------------------
function ObjectiveTrigger:Event_Delete_Objective_2( sender )
Hud:FlashObjectives((self.Properties.DeleteObjectives.Objective2));
end

---------------------------------------------------------------------
function ObjectiveTrigger:Event_Delete_Objective_3( sender )
Hud:FlashObjectives((self.Properties.DeleteObjectives.Objective3));
end

---------------------------------------------------------------------
function ObjectiveTrigger:Event_Delete_Objective_4( sender )
Hud:FlashObjectives((self.Properties.DeleteObjectives.Objective4));
end

---------------------------------------------------------------------
function ObjectiveTrigger:Event_Delete_Objective_5( sender )
Hud:FlashObjectives((self.Properties.DeleteObjectives.Objective5));
end

---------------------------------------------------------------------
function ObjectiveTrigger:Event_Objective_0( sender )
Hud:AddMessage(Localize((self.Properties.Objective0.Message)),17);
Hud:PushObjective({},Localize((self.Properties.Objective0.Objective)));
Hud:SetRadarObjective((self.Properties.Objective0.Radar));

end


---------------------------------------------------------------------
function ObjectiveTrigger:Event_Objective_1( sender )
Hud:AddMessage(Localize((self.Properties.Objective1.Message)),17);
Hud:PushObjective({},Localize((self.Properties.Objective1.Objective)));
Hud:CompleteObjective(Localize((self.Properties.Objective1.CompletObjective)));
Hud:SetRadarObjective((self.Properties.Objective1.Radar));

end


---------------------------------------------------------------------
function ObjectiveTrigger:Event_Objective_2( sender )
Hud:AddMessage(Localize((self.Properties.Objective2.Message)),17);
Hud:PushObjective({},Localize((self.Properties.Objective2.Objective)));
Hud:CompleteObjective(Localize((self.Properties.Objective2.CompletObjective)));
Hud:SetRadarObjective((self.Properties.Objective2.Radar));

end


---------------------------------------------------------------------
function ObjectiveTrigger:Event_Objective_3( sender )
Hud:AddMessage(Localize((self.Properties.Objective3.Message)),17);
Hud:PushObjective({},Localize((self.Properties.Objective3.Objective)));
Hud:CompleteObjective(Localize((self.Properties.Objective3.CompletObjective)));
Hud:SetRadarObjective((self.Properties.Objective3.Radar));

end


---------------------------------------------------------------------
function ObjectiveTrigger:Event_Objective_4( sender )
Hud:AddMessage(Localize((self.Properties.Objective4.Message)),17);
Hud:PushObjective({},Localize((self.Properties.Objective4.Objective)));
Hud:CompleteObjective(Localize((self.Properties.Objective4.CompletObjective)));
Hud:SetRadarObjective((self.Properties.Objective4.Radar));

end

---------------------------------------------------------------------
function ObjectiveTrigger:Event_Objective_5( sender )
Hud:AddMessage(Localize((self.Properties.Objective5.Message)),17);
Hud:PushObjective({},Localize((self.Properties.Objective5.Objective)));
Hud:CompleteObjective(Localize((self.Properties.Objective5.CompletObjective)));
Hud:SetRadarObjective((self.Properties.Objective5.Radar));
end


---------------------------------------------------------------------
function ObjectiveTrigger:Event_Objective_6( sender )
Hud:AddMessage(Localize((self.Properties.Objective6.Message)),17);
Hud:PushObjective({},Localize((self.Properties.Objective6.Objective)));
Hud:CompleteObjective(Localize((self.Properties.Objective6.CompletObjective)));
Hud:SetRadarObjective((self.Properties.Objective6.Radar));
end


---------------------------------------------------------------------
function ObjectiveTrigger:Event_Objective_7( sender )
Hud:AddMessage(Localize((self.Properties.Objective7.Message)),17);
Hud:PushObjective({},Localize((self.Properties.Objective7.Objective)));
Hud:CompleteObjective(Localize((self.Properties.Objective7.CompletObjective)));
Hud:SetRadarObjective((self.Properties.Objective7.Radar));
end


---------------------------------------------------------------------
function ObjectiveTrigger:Event_Objective_8( sender )
Hud:AddMessage(Localize((self.Properties.Objective8.Message)),17);
Hud:PushObjective({},Localize((self.Properties.Objective8.Objective)));
Hud:CompleteObjective(Localize((self.Properties.Objective8.CompletObjective)));
Hud:SetRadarObjective((self.Properties.Objective8.Radar));
end


---------------------------------------------------------------------
function ObjectiveTrigger:Event_Objective_9( sender )
Hud:AddMessage(Localize((self.Properties.Objective9.Message)),17);
Hud:PushObjective({},Localize((self.Properties.Objective9.Objective)));
Hud:CompleteObjective(Localize((self.Properties.Objective9.CompletObjective)));
Hud:SetRadarObjective((self.Properties.Objective9.Radar));
end


---------------------------------------------------------------------
function ObjectiveTrigger:Event_Outside_Map( sender )
Hud:AddMessage(Localize((self.Properties.OutsideMap.Message)),17);
end



---------------------------------------------------------------------
function ObjectiveTrigger:Event_Play_Sequence_and_Script_Command( sender )
if(self.Properties.ScriptCommand and self.Properties.ScriptCommand~="")then
dostring(self.Properties.ScriptCommand);
end
if(self.Properties.PlaySequence~="")then
Movie:PlaySequence( self.Properties.PlaySequence );
end
end

---------------------------------------------------------------------
function ObjectiveTrigger:Event_Death_Player( sender )
if (god) then
god=nil;
end
_localplayer.timetodie=0.01;
local player=_localplayer
player:SetPos(self:GetPos());
player:SetAngles(self:GetAngles());

end

Сохраните этот документ и попробуйте его перезагрузить, нажав на слово в первом окне Reload Будут ошибки Пишите..
Теперь нажмите слово Browse и найдите Скрипт ClassRegistry.lua В нём вставьте следующее..

XХХ { "", "AISpeed", 204, "AI/AISpeed.lua" },
Вставить { "", "ObjectiveTrigger", 205, "Triggers/ObjectiveTrigger.lua" },
ХХХ };

Иксами показаны параметры, которые не вставлять, они уже давно были вставлены в 2008 г. Внимание!!! у каждого параметра должен быть свой ID номер, если будут одинаковые ID номера в каких-то параметрах, то выйдя из редактора и снова запустив его Появится Критическая Ошибка о том, что Редактор увидел в скрипте ClassRegistry.lua одинаковые ID номера, нажатием ОК редактор сразу закроется.
Теперь Сохраните этот Документ и перезагрузите Скрипт выйдите из окна. Сохраните редактор и выйдите из него, теперь снова запустите Редактор CryEngine Sandbox 1, откройте свой любимый уровень, подождите пока загрузится ваш любимый уровень. После загрузки Нажмите на окне PollupBar слово Entity и папку Triggers, то вы сразу увидите Новый Триггер называется он ObjectiveTrigger разместите его куда хотите и вставляйте что-то в Свойствах, слова и по другому триггеру отправляйте ему Событие, которые находятся внизу и сразу всё должно работать и возле радара появляться сообщение должно написанное вами, Список Задач Для игрока и точка на Радаре, если вы её назвали в Свойствах.

_________________________________________________________
СОЗДАНИЕ ЗАСТАВКИ "МЁРТВЫЙ КРОУ" В САМОМ КОНЦЕ УРОВНЯ. |
_________________________________________________________|

Ну чтож Джек Карвер Эпизод Первый Читай... или скопируй этот коммент в Word или WordPad (Блокнот).
И в процессе чтения создавай Заставку Сдохший Кроу.


Создай Новый Уровень . Назови как его хочешь, я назвал его Scene Died Crowe.

ДАЛЬШЕ

Создай объект в SimpleEntity
Измени Модель - Objects\characters\story_characters\mertz\mertz_ingame_dead.cgf
Размести его X=1041.35,Y=818.98,Z=19.53
Поверни его на 0 XYZ.
Поставь галочку HiddenInGame на True.
Переименуй на Died_Crowe

Создай объект в Entity Others\AnimObject.
Размести его на X=1042.27, Y=819.58, Z=19.47
Поверни его на X=0, Y=0, Z=-85
Измени Модель - Objects\characters\pmodels\hero\hero.cgf.
Стери всё в attachmet1 Object and boneName.
Поставь галочку HiddenInGame на True.
Переименуй на Jack_Without_Mobile

Выбери Сдохшего Кроу и с копируй его Ctrl+C
Размести его на X=1040.84,Y=820.05,Z=19.53
Поверни его на 0 XYZ
Измени Модель - Objects\characters\story_characters\mertz\mertz_hat.cgf
Поставь галочку HiddenInGame на True.
Переименуй на Hat

Выбери Шляпу Кроу и с копируй его Ctrl+C
Размести его на X=1041.56,Y=819.58,Z=19.53
Поверни его на X=90,Y=0,Z=80
Измени Модель - Objects\characters\mercenaries\accessories\river_cs1_radio_krieger_rhand.cgf
Поставь галочку HiddenInGame на True.
Переименуй на Mobile

Создай объект в Entity Others\AnimObject.
Размести его на X=1042.24, Y=819.45, Z=19.47
Поверни его на X=0, Y=0, Z=-85 Такое же вращеие и та же позиция, как у тебя :D :) без мобилочки.
Измени Модель - Objects\characters\pmodels\hero\hero.cgf.
Измени в attachmet1 Объект - Objects\characters\mercenaries\accessories\river_cs2_radio_data_lhand.cgf
В boneName напиши вот это - Bip01 R Hand. Перезагрузи скрипт и мобильник окажется возле его ладони.
Поставь галочку HiddenInGame на True.
Переименуй на Jack_With_Mobile

Теперь создаём Кровь
Создай частицу в Entity\Particle\ParticleEffect.
Размести его на X=1041.26,Y=819.67,Z=19.53
Поверни его на 0 XYZ
Теперь зайди в DataBaseView.Нажми на вкладку Particles. Наверху нажми Library и выбери Load Library.
Выбери Bllod (Кровь). У тебя должна быть выбрана эта частица ParticleEffect1. Если выбрана тогда
Нажимаем на плюс возле папки cutscenes и выбираем частицу crowe_blood левой кнопкой мыши и выбираем
Assign To Selected Objects. После этого должна появится частица Кровь Кроу,
теперь в свойствах частицы сними галку Active on False и перезагрузи скрипт.
Переименуй на Blood_Crowe

Теперь Создаём Камеры.
Выбери Camera и
Размести её на X=1041.57,Y=819.64,Z=20.12
Поверни её на X=85.6,y=0,Z=138.8
её имя Camera1 оставь это имя.

Скопируй новую камеру Camera2
Размести её на X=1039.33,Y=817.21,Z=20.78
Поверни её на X=2.8,Y=0,Z=129.4

И скопируй последнюю камеру Camera3
Размести её на X=1041.93, Y=819.26, Z=19.26
Поверни её на X=-80.36, Y=1.4, Z=104.01


Всё!!! Мы всё создали, теперь создаём заставку.
Зайди в TrackView и нажимай на человечка с плюсом. Называй заставку как хочешь, я назову её Died_Crowe.

Выбери частицу Blood_Crowe и нажми на панели ТрэкаВиа квадратик с плюсом. Появится объект в ТрэкВиа
Выбери слева серый кубик Blood_Crowe и левой кнопой мыши выбери Add Track и выбери Events.
Нам не нужны позиция и вращение этой частицы удали их нажав клавишу Delete. Нужен нам только узел Events.

Выбери мобилу (Mobile) и создай его в ТрэкВиа, также стери позицию и вращение и добавь один трэк Visibility

Выбери Шляпу (Hat) добавь в ТрэкВиа Стери одно Вращение и добавь 2 трэка Visibility и Scale.

Выбери Себя :))) т.е. Джека без Мобилы (Jack_Without_Mobile) созд. в Тр.Виа Добавь 5 трэков Animation1,
Visibility, Expression1, Expression2 и Expression3
Поз. и Вращ. Не Нужны Удаляй их.

Джека с Мобилой (Jack_With_Mobile) тоже добавь в Тр.Виа и такие же 5 трэков, как у тебя :))) без мобилы.

Выбери Сдохшего Кроу и создай его в ТрэкВиа, также стери позицию и вращение и добавь один трэк Visibility.

И выбери все 3 камеры и добавь их в ТрэкВиа, поз. и вращ. нужны, не удаляй их, Но в 3 камере удали позицию.

Теперь Ты Всё Добавил в ТрэкВиа.

Выбери 3-го человечка со строчками.
Поставь галочки на Cut Scene, Disable HUD, DisablePlayer, Disable Physics, Disable AI и на Disable Sounds.
Поставь число в окошке EndTime: на 13.5 Нажми ОК.

Ты изменил свойства последовательности. Ну теперь мы создаём Сцену Заставку.

Найди на панели ТрэкВиа таймер 0.000 и слева от него на 1 значок с красным крестом, есть значок где курсор
с плюсом и овал, нажми на этот значок (Add Key).

Теперь открой плюсом узел (серый кубик) Blood_Crowe и где строка времени Events нажми на 0 секунд в неё,
где розовый ползунок (Индикатор времени). И ты увидишь созданный тобой овал это ключ.
Нажми на него прав. кноп. мыши и выбери в окошко Fire Event: Событие Pulse. Закрой это окно.

Теперь открой узел Mobile. На строке времени Visibility нажми на 0 секунд. Синяя полоска на Visibility это
Показывание объекта на Заставке, нет синей полоске в этой строке это Скрывание объекта.

Сделай узлы на: Hat and on Died_Crowe Visibility тоже на 0 секунд, как в Мобилке.

Выбери Камеру первую (Camera1). На панели ТрэкВиа нажми на Красный Кружок (Запись). Ползунок (Индикатор времени)
поменяет цвет с Розового на Красный это значит что производится запись. По перемещай Камеру 1 и поверни её,
потом отмени Ctrl+Z. Перемести Красный ползунок на 3 секунды, и ты увидишь, что появились овалы (ключи) на
строках времени Position and Rotation на 0 секунд. Оставь их, теперь как ты переместил красный ползунок на 3 секунды,
то 1-ую Камеру перемести на X=1041.52, Y=819.56, Z=21.46 и поверни её на X=85.59, Y=0, Z=117.49

Нажми ещё раз на красный кружок, останови Запись. Нажми на Стоп и дальше на Воспроизведение, И смотри как камера
движется и поворачивается, а ещё начала кровь Течь и потом Исчезать. Ну что посмотрел как начало создаётся Сцены?

Ну давай дальше работать и стараться :) :D

Создай Ключ на узле Jack_Without_Mobile и на строке Animation1 на 1.5 секунд Выбери Анимацию river_cs_p1
У узла Jack_With_Mobile такое же.

Создай ключ на узле Mobile - Visibility на 5,5 секунды. Синяя полоска видна от 0 секунд до 5,5 секунды.

Создай Ключи на узле Jack_Without_Mobile - Visibility на 5,5 секунды, на 9,8 секунды и на 12,5 секунд. Синяя полоска
должна быть видна от 0 секунд до 5,5 секунды и от 9,8 секунды до 12,5 секунд.

Создай Ключи на узле Jack_With_Mobile- Visibility на 0 секунд, 4 секунды и 9,8 секунды. Синяя полоска
видна от 4 секунды до 9,8 секунды.

Создай Ключ на узле Died_Crowe на 10 секунд. Синяя полоска: от 0 до 10 секунд.

Нажми на запись (Красный Кружок). Перемести Красный Ползунок на 12,4 секунд. Подвигай Шляпу Трупа Кроу и отмени и поменяй размер, отмени.
Ctrl+Z. Дальше двигай Красный ползунок на 12,5 секунд и в этот раз перемести шляпу на X=1041.82, Y=819.25, Z=19.53
и Измени размер на 5 в строке Времени Scale.

Теперь двигаем Оставшиеся Камеры.

Красный ползунок на 3 секунды, двигай камеру 2 и отмени Ctrl+Z.
Дальше двигай ползунок на 10 секунд и в это время
Перемести камеру 2 на X=1040.46, Y=816.54, Z=20.78
Поверни камеру 2 на X=12.6, Y=0, Z=160.8

Красный ползунок двигай на 12,4 секунды. по вращай камеру 3 и отмени Ctrl+Z.
Ползунок Двигай на 12,5 секунд и в это время
Поверни Камеру 3 на X=-105.76, Y=1.4, Z=90.61

Всё Анимация создана и исчезнование объектов тоже, НО ты Не создал же Главный УЗЕЛ для Заставки и звуков ряд
показываний на Камерах. И для тебя :))) Джека нет морганий, мимики, надо же это всё тебе Создать, чтобы Завершить
Полностью Всю Заставку, Да? Ну конечно Же :))), Ну Чтож Приступай Дальше.

На панели ТрэкаВиа справа от квадрата с плюсом, есть значок маленькая камера, нажми на этот Значок.

Появится Узел Scene и Трэк Camera создай на этой строке ключ на 0 секунд и прав. кн. мыши выбери Camera1
2-ой ключ на 3 секунды выбери Camera2, и 3-ий ключ на 10 секунд Camera3. Добавь в Этом Главном Узле 2 Трэка Sound1
и Sound2.

Создай Ключ в строке Времени Sound1 на 0 секунд прав. кн. мыши выбери
вот этот звуковой файл - Languages\missiontalk\river\templeruins_specific_e_1.wav Закрой это окошко.

И создай ключ в строке времени Sound2 на 12,5 секунд. Выбери вот этот звуковой файл - Sounds\Weapons\shocker\fire3.wav
Закрой это окошко.

Всё Звук Ты Создал Наш Создатель Первой Заставки :)))

Теперь осталась Мимика и моргание Джека Твоего :D :) Наш Создатель :))

Создай Ключ на узле Jack_With_Mobile строка времени Expression1 на 6,3 секунды. Открой окошко этого узла прав. кн. мыши
Ты видешь, что там 5 окошек это: MorphTgt, BlendIn, Hold, BlendOut и Amp. Поставь в MorghtTgt: анимацию рта
#phoneme_a. В окошке BlendIn: число 0,1 в окошке Hold: 0,1 в BlendOut: 0,1 а в Amp: оставь такое же число 1.

Создай ключ в этой же строке на 6,6 секунд. Измени этот Ключ. MorphTgt: #phoneme_e, BlendIn: 0.1, Hold: 0.1,
BlendOut 0.1 и Amp: 1.

Создай Следующий ключ на 6,6 секунд. MorphTgt: #phoneme_i, BlendIn: 0.1, Hold: 0.1, BlendOut 0.1, Amp: 1.

Следующий на 7,2 секунды. MorphTgt: #phoneme_a, BlendIn: 0.1, Hold: 0.1, BlendOut 0.1, Amp: 1.

И последний на этой строке ключ создай на 7,5 секунд. MorphTgt: #phoneme_i, BlendIn: 0.1, Hold: 0.1, BlendOut 0.1,
Amp: 1.

Подвигай ползунок и посмотри как рот у Тебя))) начал открываться, закрываться, т.е Говорить.

Дальше на этом же узле в строке времени Expression2 создай ключ на 6,7 секунд. Свойства этого ключа вот такие:
MorphTgt: #rndexpr_closed_eyes, BlendIn: 0.1, Hold: 0.2, BlendOut 0.1, Amp: 1.

Создай ключ на этом Узле и на этой строке создай на 8,5 секунд. MorphTgt: #rndexpr_closed_eyes, BlendIn: 0.1, Hold: 0.2,
BlendOut 0.1, Amp: 1.

Дальше создай ключ на этом же узле в строке времени Expression3 на 6,5 секунд. Свойства: MorphTgt: #full_angry_noteeth и оставь такие же числа на окошке.

Теперь Глаза у Тебя:))) т.е. у Джека Моргают и рот Говорит.

Теперь осталось сделать тебя:)) говорящим и моргающим Без Мобилы.

В узле Jack_Without_Mobile в строке Expression1 создай Ключ на 11,3 секунды. Свойства: MorphTgt: #phoneme_i,
BlendIn: 0.1, Hold: 0.1, BlendOut 0.1, Amp: 1.

Следующий на 11,6 секунде. MorphTgt: #phoneme_a, BlendIn: 0.1, Hold: 0.1, BlendOut 0.1, Amp: 1.

Следующий на 11,9 секунде. MorphTgt: #phoneme_o, BlendIn: 0.1, Hold: 0.1, BlendOut 0.1, Amp: 1.

И последний на этой строке ключ на 12,2 секунде. MorphTgt: #phoneme_e, BlendIn: 0.1, Hold: 0.1, BlendOut 0.1, Amp: 1.

Теперь осталось Моргание.

Этот же узел строка времени Expression2 создай Последний ключ на 11,7 секунде. Свойства вот такие:
MorphTgt: #rndexpr_closed_eyes, BlendIn: 0.1, Hold: 0.2, BlendOut 0.1, Amp: 1.

Дальше создай ключ на этом же узле в строке времени Expression3 на 11,6 секунд. Свойства: MorphTgt: #full_angry_teeth и оставь такие же числа на окошке.

Всё Ты Полностью завершил Заставку Сдохший Кроу :))) :D :D :D :)) МОЛОДЕЦ!!! )))

Теперь Тестируй Её нажми два раза на Стоп и потом на Воспроизведение и смотри что происходит в Заставке.

Теперь Создай ProximityTrigger Размести его куда тебе хочется. и В Свойствах найди вот это PlaySequence напиши
свою созданную Заставку у меня Died_Crowe. Нажми на Ctrl+G, чтобы тестировать уровень подойди к Триггеру
и вот тебе Заставка.:)))) УМНИЦА))) ТЫ СОЗДАЛ ПЕРВУЮ ЗАСТАВКУ с помощью МЕНЯ))) :) :) :) :D :D: D

Если не работает Заставка, то Пиши в Комментариях. КОНЕЦ!
_____________________________________________________________________

Следующий Триггер Триггер перемещения Объектов

MoveEntityTrigger = {
type = "Trigger",

Properties = {
Object1 = {
MoveObject="",
EntityObject="",
},
Object2 = {
MoveObject="",
EntityObject="",
},
Object3 = {
MoveObject="",
EntityObject="",
},
Object4 = {
MoveObject="",
EntityObject="",
},
Object5 = {
MoveObject="",
EntityObject="",
},
Player = {
EntityObject="",
},
PlayerObject = {
EntityObject="",
},


},


Editor={
Model="Objects/Editor/T.cgf",
},
}

function MoveEntityTrigger:OnPropertyChange()
self:OnReset();
end

function MoveEntityTrigger:OnInit()
self:EnableUpdate(0);
self:SetUpdateType( eUT_Physics );
self:TrackColliders(1);

self.Who = nil;
self.Entered = 0;
self.bLocked = 0;
self.bTriggered = 0;

self:RegisterState("Inactive");
self:RegisterState("Empty");
self:RegisterState("Occupied");
self:OnReset();
end

function MoveEntityTrigger:OnShutDown()
end

function MoveEntityTrigger:OnSave(stm)
--WriteToStream(stm,self.Properties);
stm:WriteInt(self.bTriggered);
end


function MoveEntityTrigger:OnLoad(stm)
--self.Properties=ReadFromStream(stm);
--self:OnReset();
self.bTriggered=stm:ReadInt();
end

function MoveEntityTrigger:OnReset()
self:KillTimer();
self.bTriggered = 0;

local Min = { x=-self.Properties.DimX/2, y=-self.Properties.DimY/2, z=-self.Properties.DimZ/2 };
local Max = { x=self.Properties.DimX/2, y=self.Properties.DimY/2, z=self.Properties.DimZ/2 };
self:SetBBox( Min, Max );
--self:Log( "BBox:"..Min.x..","..Min.y..","..Min.z.." "..Max.x..","..Max.y..","..Max.z );
self.Who = nil;
self.UpdateCounter = 0;
self.Entered = 0;
if(self.Properties.bEnabled==1)then
self:GotoState( "Empty" );
else
self:GotoState( "Inactive" );
end


end

function MoveEntityTrigger:Event_Move_Object_1( sender )
local move = System:GetEntityByName((self.Properties.Object1.MoveObject));
local entity = System:GetEntityByName((self.Properties.Object1.EntityObject));
if((move)and(entity))then
move:SetPos(entity:GetPos());
move:SetAngles(entity:GetAngles());
end
end

function MoveEntityTrigger:Event_Move_Object_2( sender )
local move = System:GetEntityByName((self.Properties.Object2.MoveObject));
local entity = System:GetEntityByName((self.Properties.Object2.EntityObject));
if((move)and(entity))then
move:SetPos(entity:GetPos());
move:SetAngles(entity:GetAngles());
end
end

function MoveEntityTrigger:Event_Move_Object_3( sender )
local move = System:GetEntityByName((self.Properties.Object3.MoveObject));
local entity = System:GetEntityByName((self.Properties.Object3.EntityObject));
if((move)and(entity))then
move:SetPos(entity:GetPos());
move:SetAngles(entity:GetAngles());
end
end

function MoveEntityTrigger:Event_Move_Object_4( sender )
local move = System:GetEntityByName((self.Properties.Object4.MoveObject));
local entity = System:GetEntityByName((self.Properties.Object4.EntityObject));
if((move)and(entity))then
move:SetPos(entity:GetPos());
move:SetAngles(entity:GetAngles());
end
end

function MoveEntityTrigger:Event_Move_Object_5( sender )
local move = System:GetEntityByName((self.Properties.Object5.MoveObject));
local entity = System:GetEntityByName((self.Properties.Object5.EntityObject));
if((move)and(entity))then
move:SetPos(entity:GetPos());
move:SetAngles(entity:GetAngles());
end
end

function MoveEntityTrigger:Event_Move_Player( sender )
local move = _localplayer
local entity = System:GetEntityByName((self.Properties.Player.EntityObject));
if((move)and(entity))then
move:SetPos(entity:GetPos());
move:SetAngles(entity:GetAngles());
end
end

function MoveEntityTrigger:Event_Move_Object_Player( sender )
local move = _localplayer
local entity = System:GetEntityByName((self.Properties.PlayerObject.EntityObject));
if((move)and(entity))then
entity:SetPos(move:GetPos());
entity:SetAngles(move:GetAngles());
end
end

В свойствах MoveObject Это Перемещаемый Объект, EntityObject это точка Куда перемещаемый объект (MoveObject) переместится.

Свойство Триггера Задач
Objectives - Задачи
DeleteObjective1 - Первое задание предназначеное к очистке окна Tab
DeleteObjective2 - Второе задание предназначеное к очистке окна Tab
DeleteObjective3 - Третье задание предназначеное к очистке окна Tab
DeleteObjective4 - Четвёртое задание предназначеное к очистке окна Tab
DeleteObjective5 - Пятое задание предназначеное к очистке окна Tab

Objective1 - Первое задание, передаёт игроку по событию Objective_1
Message - Текст Сообщение возле радара справа
Objective - Текст Задачи, которая отображается в списке Задач Игрока нажатием Tab.
Radar - Название Тэг Точки, на котором Мигалка на Радаре Будет показывать ёё местоположение.
CompleteObjective - Завершённое задание, должно повторится, как в Objective текст.

FinishMission - Завершение Миссии (Уровня)
NextLevel - Название Следующего Уровня
SavePlayerElements - Сохранить элементы Игрока? True - Да , False - Нет
CompleteLevelFade - завершить уровень с затемнением? True - Да, False - Нет

События

Objective_1 - показывает текст сообщения , Задачу и точку на радаре Всё что написано в Свойствах Objective1

DeathPlayer - Смерть игрока, даже с режимом Бога ты Сдыхаешь.

Delete_ALL_Objectives - Очистить все задания в списке задач игрока

Delete_Objective_1 - Очищает задание в списке задач написанное в Свойствах, должно совпадать с названием задания в свойстве Objective0-9

Play_Sequence_and_Script_Command - Проигрывает Сцену написанную в Свойствах и отправляет Скриптовую команду.

C HUD-ом я разобрался вот я радар изменил.

Ты такое видел, чтоб меня хаммер под водой не выгонял и сам не взрывался, вот я 5 минут ездил на дне моря и Сдох из-за нехватки кислорода. Если хочешь сам покататься под водой пиши в комментах.

трайген
На уровне Дамба есть лава. Я хочу поставить такую же лаву на свой уровень. Как это сделать и где её (лаву) взять? 2)Насчёт закрытых помещений: Где мне взять полы, стены потолки, можно ли "прорубить" в стенах дверные проёмы?

Туториал так и не скачал (не получилось), но с лавой уже сам разобрался. Спасибо.

Написал свой скрипт, но есть одна проблема. Задания (даже те, которые присутствовали в оригинале) заносяться в список также как были написаны в скрипте т.е на английском языке, а мне надо на русском (в оригинале же было на русском!) Когда я пытаюсь написать в скрипте на русском, то в списке заданий пишется белиберда. Точно также с триггером-переключателем: Вместо: "Нажмите действие, чтобы вставить карточку" он пишет мне: @insert_keycard. Что делать?

ЗАГРУЗИТЬ ВСЕ КОММЕНТАРИИ
Новое на форуме Far Cry