Просто не создавать главного персонажа а все диалоги и подбор предметов делать через скрипты, кстати сейчас закину руководство по скриптам=)))Добавлено (17.07.2009, 19:50)
---------------------------------------------
Руководство по языку скриптов
ON команды
on (your command)
Часть скрипта, которая обрабатывает команду, которую вы задали инструкцией command()
on (mouse)
Событие перемещения мыши вокруг объекта или персонажа
on (mouseout)
Это событие происходит, когда курсор мыши покидает объект или персонажа.
on (click)
Событие щелчка мышью.
on (release)
Событие отпускания клавиши мыши.
on (rightclick)
Событие щелчка правой кнопкой мыши.
on (doubleclick)
Событие двойного щелчка мышью.
on (enter)
Событие входа в комнату
on (exit)
Событие выхода из комнаты
on (loop1)
Это событие происходит снова и снова
on (loop2)
Это событие останавливается в текстовых сценах и наминается снова в следующий раз. Это событие аналогично событию loop1
on (link)
Событие комбинирования предметов
on (givelink)
Это событие происходит, когда вы даете вещь другому персонажу.
on (cant+your command)
Это событие определяет реакцию на невозможную команду.
on (cantall)
Это событие определяет реакцию на команду, которая не может обрабатываться.
IF команды
Команды этой группы имеют близнецов, которые получают негативной результат. Пример: ifnot_focus (john)
if_obj (instance; state)
Проверяет состояние объекта.
if_xobj (instance; x)
Проверяет x координату объекта. X – число или переменная объявленная в квадратных скобках.
if_yobj (instance;y)
Проверяет y координату объекта. Y – Число или переменная объявленная в квадратных скобках.
if_focus (characterinstance)
Проверяет фокус персонажа
if_charin (characterinstance; room)
Проверяет, находиться ли персонаж в комнате.
if_ischar (characterinstance)
Проверяет, шагает ли персонаж к точке
if_hasitem (characterinstance; item)
Проверяет, есть ли у персонажа предмет.
if_num (name; num)
Проверяет значения числовых переменных.
Пример:if_num (num1; <[num2])
Вы можете использовать переменные [mousex] и [mousey], чтобы получить текущую позицию мыши.
if_string (name; text)
Проверяет значения строковых переменных.
if_bool (name; true/false)
Проверяет значения булевых переменных.
if_keydown (key)
Проверяет нажатую клавишу. Вы можете использовать следующие клавиши: a-z, 0-9, up, down, right, left, ctrl, alt, space, enter, backspace и F1-F10.
if_mousewheel (up /down)
Проверяет состояние колесика мыши
if_command (command)
Проверяет команду
if_link (linkname)
Проверяет, комбинируются ли предметы.
if_givelink (item)
Проверяет, дает ли один персонаж другому вещь
if_textscene (textscenename; level; row; true/false)
Проверяет состояние колонки
if_room (roomname)
Проверяет, загружена ли текущая комната.
Set команды
command (commandname)
Устанавливает текущую команду, которую Вы используете в вашей игре. Если вы создали игру, которая управляется мышью, команды, меняются правой кнопкой мыши.
instmouse (Icon Number)
Изменяет курсор мыши.
setfocus (characterinstance)
Устанавливает фокус персонажа.
setbool (boolean; true/false)
Устанавливает значение булевой переменной.
setnum (name; num)
Устанавливает значение численной переменной.
setstring (name; text)
Устанавливает значение строковой переменной.
randomnum (name; highest number)
Записывает в переменную случайное число в диапазоне от 1 до наивысшего значения.
savenum (name)
Сохраняет значение численной переменной на жесткий диск.
loadnum (name)
Загружает значение численной переменной с жесткого диска.
savestring (name)
Сохраняет значение строковой переменной на жесткий диск.
loadstring (name)
Загружает значение строковой переменной с жесткого диска.
offtextcolor (Red; Green; Blue)
Устанавливает цвет текста речи.
infotextcolor (Red; Green; Blue)
Устанавливает цвет информационного текста.
settransparency (1-100)
Устанавливает прозрачность панели задач и всего в комнате.
setfont (1-99)
Устанавливает текущий шрифт.
setscreenchange (style)
Устанавливает стиль изменения комнаты. Допустимые значения: DIRECT, FADEBLACK, RECTANGLE, CIRCLE, SHUTTERS, CLOCK, BLEND and BLENDSLOW
setwalkmap (room ; x ; y ; true/false)
Устанавливает значение точки на карте.
set_rect_walkmap (room ; x1 ; y1 ; x2 ; y2; true/false)
Устанавливает область на карте.
Звуки и видео
playsound (name; volume)
Проигрывает звук. Параметр volume задает громкость. Она задается числом от 0-100.
playmusic (name; position)
Проигрывает музыку.
musicvolume (0-100)
Изменяет громкость музыки.
speechvolume (0100)
Изменяет громкость речи.
stopmusic ()
Останавливает музыку.
fadespeed (1-15)
Устанавливает скорость эффекта пересечения.
seteax (Effect)
Активирует EAX эффекты. Параметр Effect может принимать следующие значения:
paddedcell
livingroom
cave
carpetedhallway
alley
mountainse
parkinglot
drugged
concerthall room
stoneroom
arena
hallway
forest
quarry
sewerpipe
dizzy
none = turn EAX off bathroom
auditorium
hangar
stonecorridor
city
plain
underwater
psychotic
off = turn EAX off
playavi (avi; true/false)
Проигрывает AVI файл. Нельзя одновременно проигрывать одновременно несколько AVI файлов. AVI файлы всегда находятся наверху. Вы можете задать область вывода файла. Например: playavi (avi ; true ; 100 ; 100 ; 200 ; 200) Если этого не сделать будет использоваться весь экран.
stopavi ()
Останавливает проигрывание AVI файлов.
playswf (Flashmovie)
Проигрывает Flash файл. Нельзя одновременно проигрывать одновременно несколько Flash файлов. Flash файлы всегда находятся наверху. Вы можете задать область вывода файла. Например: playswf (swf; 100 ; 100 ; 200 ; 200) Если этого не сделать будет использоваться весь экран.
stopswf ()
Останавливает проигрывание Flash файлов.
loopsound (name ; volume 1100)
Проигрывает бесконечный звуковой эффект.
loopstop (name)
Останавливает бесконечный звуковой эффект.
Объекты
setobj (instance; state1 ; state2...)
Устанавливает состояние объекта
instobj (instance; state)
Устанавливает состояние объекта при наведении на него курсора мыши
moveobj (instance ; x ; y ; speed; wait)
Перемещает объект в заданную точку с заданной скоростью. Последний параметр определяет, останавливать ли текстовую сцену пока объект перемещается.
group (groupname ; object; object2 ... object20)
Определяет группу объектов
Room команды
loadroom (roomname ; screenchange)
Загружает комнату. Последний параметр определяет эффект используемый при загрузке.
unloadroom ()
Выгружает комнату
subroom (roomname; fadetime)
Показывает под-комнату поверх текущей. Последний параметр определяет время исчезновения комнаты.
return ()
Выходит из под-комнаты.
setlight (room; red; green; blue)
Устанавливает цвет свет в комнате.
setpos (room ; x ; y ; true/false)
Устанавливает позицию камеры в комнате. Последний параметр разрешает или запрещает прокрутку фона.
scrollspeed (1-20)
Устанавливает скорость прокрутки фона. Значение по умолчанию – 4.
jiggle (seconds)
Трясет экран, указанное количество секунд.
Character команды
walkto (character ; x ; y; viewdirection; dontwait)
Перемещает объект в заданную точку с заданной скоростью. Вы можете использовать ключевое слово self, чтобы перемещать текущего персонажа. Значение параметра viewdirection: Down, Up, Right, Left. Последний параметр определяет, останавливать ли текстовую сцену пока персонаж перемещается.
Вы также можете использовать переменные X и Y.
setwalksound (character; Soundname)
Устанавливает звук движения персонажа.
stepto (character ; direction)
Перемещает персонажа на один шаг. Параметр Direction может иметь параметры: RIGHT, LEFT, UP, DOWN.
follow (character1; character2; dontwait)
Перемещает одного персонажа к другому. Последний параметр определяет, останавливать ли текстовую сцену пока персонаж перемещается.
beamto (character; room; x; y; viewdirection)
Устанавливает персонажа в указанную точку.
lookto (character;character2)
Заставляет одного персонажа смотреть на другого
speech (character ; text ; sample ; dontwait)
Позволяет персонажу говорить. Персонажу говорить. Параметр sample является необязательным и определяет звуковой файл речи. Последний параметр определяет, останавливать ли текстовую сцену пока персонаж говорит.
offspeech (x ; y ; text ; sample ; dontwait)
Создает текст речи независимо от персонажа.
pickup (character)
Поигрывает анимацию поднятия изображения.
setchar (characterinstance ; action1 ; action2...)
Устанавливает состояние персонажа.
switchchar (character1 ; character2)
Переключает персонажей
setcharlight (character; R; G; B; fade)
Эта команда изменяет цвет персонажа.
charzoom (character ; size in %; fade)
Эта команда изменяет размер персонажа.
stopzooming (character; true/false)
Эта команда разрешает или запрещает изменять размер персонажа.
Item команды
additem (character; item; 1-5)
Добавляет предмет в инвентарь. Каждый персонаж может иметь 5 различных инвентарей. Используйте слово “off” чтобы добавить вещь в глобальный инвентарь. В качестве значения параметра item используйте значение команды givelink().
delitem (character; item; 1-5)
Удаляет вещь из инвентаря.
showinventory (1-5)
Показывает окно инвентаря.
exchange (character1; character2)
Обменивает инвентарь между персонажами.
inv_up (amount)
Прокручивает окно инвентаря вверх. Параметр Amount – ширина поля инвентаря.
inv_down (amount)
Прокручивает окно инвентаря вниз.
link (linkname)
Разрешает комбинацию двух предметов.
givelink ()
Автоматически сохраняет текущий предмет.
Специальные эффекты
enablefxshape (true / false)
Включает или выключает специальные эффекты в игре.
stopeffect (effect / all)
Останавливает конкретный эффект или останавливает все эффекты в игре.
starteffect (mirror)
Включает зеркальный эффект.
starteffect (flip)
Включает эффект перебрасывания.
starteffect (slowmotion ; 50 99 ; fade)
Включает эффект замедления.
starteffect (scanlines ; 1-99 ; fade)
Включает имитацию TV экрана.
starteffect (fog ; 1-99 ; fade)
Включает туман.
starteffect (noise ; 1-99 ; fade)
Включает эффект шума на экране.
starteffect (colornoise; 1-99 ; fade)
Включает эффект шума на экране.
starteffect (monitor ; 1-99 ; fade)
Включает имитацию CRT монитора.
starteffect (super8)
Позволяет экрану выглядеть как старая камера.
starteffect (blur)
Включает эффект смазывания на экране.
starteffect (pixelate ; 1-3)
Выключает эффект смазывания на экране.
starteffect (motionblur ; 1-50)
Включает эффект движения экрана.
starteffect (bloom ; 1-50 ; fade)
Включает эффект осветления экрана.
starteffect (darkbloom ; 1-50 ; fade)
Включает эффект затемнения экрана.
starteffect (art)
Экран выглядит как холст для живописи.
starteffect (hell)
Экран выглядит как кусочек ада.
starteffect (heat ; fade)
Включает эффект жары на экране.
starteffect (classicdark)
Окрашивает все в темные тона.
Текстовые команды
textout (1-100 ; Text ; x ; y)
Выводит одну из 100 текстовых строк.
texthide (1-100)
Скрывает текстовую строку.
showalltext ()
Показывает все текстовые строки.
hidealltext ()
Скрывает все текстовые строки.
entertext ([string] ; x ; y ; font ; maxletters ; red ; green ; blue)
Запрашивает у пользователя текстовую строку.
Scenes & Game команды
cutscene (name)
Запускает текстовую сцену.
minicut ()
Приостанавливает выполнения сценария, пока персонаж говорит.
wait (seconds)
Приостанавливает выполнения сценария на указанное число секунд.
stopskip ()
Может быть использовано для разделения текстовой сцены.
showinfo (text ; true/false)
Показывает текст на панели действий.
showmouse (true/false)
Показывает или отключает курсор мыши.
enablemouse (true/false)
Включает или отключает мышь.
taskbar (true/false)
Включает или отключает панель задач.
enablemenu (true/false)
Включает или отключает главное меню в игре.
realtime (true/false)
Включает или отключает режим реального времени в игре.
popupcoin ()
Включает coin интерфейс.
setlanguage (language)
Устанавливает текущий язык в игре.
textscene (name)
Выполняет текстовую сцену.
endscene ()
Заканчивает выполнение текстовой сцены.
activate (textscene; level; row)
Активирует колонку в текстовой сцене.
deactivate (textscene; level; row)
Деактивирует колонку в текстовой сцене.
gotolevel (level)
Переключает уровень в текстовой сцене.
timer (seconds)
Устанавливает значение таймера.
break ()
Прерывает выполнение текущего события.
Меню сохранения и загрузки
restart ()
Перезапускает игру
quit ()
Закачивает игру без подтверждения
savegame (slot)
Сохраняет игру в конкретный слот(1-10)
loadgame (slot)
Загружает игру
textenabled (true/false)
Разрешает или запрещает текст в диалогах
textspeed (fast / normal / slow)
Определяет скорость текста
Частицы
setparticles (objeсt ; speed ; amount ; direction ; rotation ; variation)
Определяет эффект частиц.
startparticles ()
Запускает эффект частиц.
stopparticles ()
Останавливает эффект частиц.
Добавлено (17.07.2009, 19:52)
---------------------------------------------
А вот простейшие примеры использования скриптов:
Создание объекта, который можно щелкнуть мышью
Для этой цели в скрипте используйте следующий код:
on (mouse)
showinfo (text ; true)
on (click)
walkto (self ; 12 ; 21 ; 3)
Создание кнопки на панели задач
Для этой цели в скрипте используйте следующий код:
on (mouse)
instobj (button1 ; 2)
on (click)
{
setobj (button1 ; 3) "Optional"
command (look)
}
Взгляд на объект
Для этой цели в скрипте используйте следующий код:
on (look)
speech (self ; Add here the "look"-description of the object ; speechsample)
Подбирание предметов
Для этой цели в скрипте используйте следующий код:
on (pickup)
if_obj (key ; 1)
{
setobj (key ; 0)
pickup (self)
playsound (pickupeffect)
additem (self ; key)
}
Задание реакции персонажа на действия, которые он не может выполнить
Невозможно говорить
Для этой цели в скрипте используйте следующий код:
on (cantpickup)
speech (self ; I cannot pick that up. ; speech_cantpickup)
Невозможно поднять предмет
Для этой цели в скрипте используйте следующий код:
on (cantall)
speech (self ; That doesn't work. ; speech_cant)
Создание двери
Создайте скрипт и поместите туда следующий код:
on (mouse)
showinfo (door ; false)
on (click)
{
walkto (self; 8; 16; 4)
if_obj (door ; 2)
if_command ()
walkto(self; 5 ; 15)
}
Чтобы позволить двери открываться и закрываться добавьте к вашему скрипту следующий код:
on (open)
if_obj (door ; 1)
{
playsound (opendoor)
setobj (door ; 2)
}
on (close)
if_obj (door ; 2)
{
setobj (door ; 1)
playsound (closedoor)
}
Как дать другому персонажу вещь?
Для этой цели в скрипте используйте следующий код:
on (givelink)
{
delitem (self ; givelink)
additem (char2 ; givelink)
lookto (char2 ; self)
playsound (pickup)
pickup (self)
pickup (char2)
}
Думаю это вам поможет=)))