Цель урока , перед нами ящик , который заколочен гвоздями, с помощью гвоздодера извлекаем гвозди, открываем крышку и берем из ящика книгу (или любой другой предмет).
И так приступим. Создаем новую сцену назовем ее Box, Меняем background на нашу картинку с открытым ящиком.
Теперь добавим крышку top
и заколачиваем её гвоздями nail1_1, nail2_1, nail3_1 и nail4_1
В принципе начальная сцена готова, приступим
в scene_init.script убираем актера
Code
actor.Active = false;
Теперь нам необходим гвоздодер, назовем его lom
Заходим в папку items и в items.items добавляем наш lom
Code
ITEM
{
CURSOR_COMBINED = TRUE
CAPTION = "Гвоздодер"
NAME = "lom"
IMAGE = "items\lom_item.png"
CURSOR = "items\lom.png"
CURSOR_HOVER = "items\lom.png"
SPRITE_HOVER = "items\lom.png"
SCRIPT = "items\lom.script"
}
тек же пишем скрипт lom.script
Code
#include "scripts\base.inc"
///////////////////
on "LookAt"
{
actor.Talk("udjpljlth");
}
////////////////
on "Take"
{
Game.SelectedItem = "lom";
}
Чтобы наш lom появился сразу в инвентаре, добавляем строку в scene_init.script
Code
Game.TakeItem("lom");
Теперь можно проверить результат
все работает, идем дальше.
Так как наши гвозди не сразу будут вытащены, а постепенно, по чуть-чуть, добавляем в нашу сцену остальные гвозди, nail2 и nail3
должно получится примерно так
наводим порядок прячем наши гвозди с окончанием _2 и _3, убираем галочки
Продолжаем работу со скриптами , для nail1_1 пишем
Code
#include "scripts\base.inc"
on "lom"
{
var tmp1 = Scene.GetNode("nail1_1");
var tmp2 = Scene.GetNode("nail1_2");
tmp1.Active = false;
tmp2.Active = true;
}
далее для nail1_2 пишем
Code
#include "scripts\base.inc"
on "lom"
{
var tmp1 = Scene.GetNode("nail1_2");
var tmp2 = Scene.GetNode("nail1_3");
tmp1.Active = false;
tmp2.Active = true;
}
и для nail1_3 пишем
Code
#include "scripts\base.inc"
on "lom"
{
var tmp1 = Scene.GetNode("nail1_3");
var tmp2 = Scene.GetNode("nail1");
tmp1.Active = false;
tmp2.Active = true;
}
Теперь добавим в сцену nail1, целый гвоздь и положим его возле ящика
и прячем его убираем галочку
проверим, работает, движемся дальше.
Пишем все то же самое для оставшихся гвоздей.
Осталось снять крышку, выбираем наш top и пишем
Code
#include "scripts\base.inc"
var tmp1 = Scene.GetNode("nail1");
var tmp2 = Scene.GetNode("nail2");
var tmp3 = Scene.GetNode("nail3");
var tmp4 = Scene.GetNode("nail4");
on "LeftClick"
{
if(tmp1.Active == true)
if(tmp2.Active == true)
if(tmp3.Active == true)
if(tmp4.Active == true)
{
var tmp5 = Scene.GetNode("top");
tmp5.Active = false;
}
}
Осталось положить книгу в ящик, в PhotoShop подгоняем книгу под нашу сцену и размещаем в ящике и делаем невидимой
в top добавляем
Code
var tmp6 = Scene.GetNode("book");
tmp6.Active = true;
Пишем для book скрипт
Code
#include "scripts\base.inc"
on "LeftClick"
{
Game.TakeItem("book");
this.Active = false;
}
не забывает про items.items добавляем
Code
ITEM
{
CURSOR_COMBINED = TRUE
CAPTION = "Старая книга"
NAME = "book"
IMAGE = "items\book_item.png"
CURSOR = "items\book_item.png"
CURSOR_HOVER = "items\book_item.png"
SPRITE_HOVER = "items\book_item.png"
SCRIPT = "items\book.script"
}
Ну, вот наверное и все
Отдельное спасибо AmneziA, за помощь в создании урока.