НОВЫЕ ИГРЫЛУЧШИЕ ИГРЫФОРУМ 647 Всего сообщений: 305037
+  Форум FlashPlayer.ru
|-+  Форум по flash играм
| |-+  Академия flash программирования (Модераторы: Lexei, Vetal1992)
| | |-+  ВоПрос по квесту

Автор Тема: ВоПрос по квесту  (Прочитано 5160 раз)

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

rpgeha1

  • Гость
ВоПрос по квесту
« : 21 Декабря 2009, 18:13:13 »
Я вот начал делать игру квест.Ну типа выбраца из комнаты.
Так вот мне нужен скрипт , вот типа сейф а чтоб открыть сейф нужно вести пароль а как зделать чтоб при указаном пароле он откырывался :help: ???


Re: ВоПрос по квесту
« Ответ #1 : 21 Декабря 2009, 18:17:31 »
© Веталь

Закодированная панель

То, что получится

Код: 253159765

<a href="http://flyflash.do.am/Lessons/code.swf" target="_blank" class="new_win">http://flyflash.do.am/Lessons/code.swf</a>

Реализация

За проверку введенного текста в ActionScript 2 отвечает функция onChanged();

text.onChanged=function() {//выполнение функции}
Эта функция вызывается сразу после ручного изменения Input Text

В нашем случае добавляем код на главную шкалу:

password_field.onChanged=function () {
if(password_field.text=="253159765") {
gotoAndStop(2);
}
}
stop();

где: password_field - это идентификатор текстового поля (instance name)

Если текст введен правильно - переходим на второй кадр.

Я добавил в программку панель управления. Так как при нажатии на кнопку функция onChanged не изменится - эта функция вызывается вручную.

В моем примере код записан в одну страницу, но можно код "вешать" на каждую кнопку.

on(press) {
    password_field.text+="0"            //Для кнопки 0. Для остальных 1-9)))
    password_field.onChanged();
}

on(press) {
    password_field.text=""                //Для кнопки clear
    password_field.onChanged();
}

on(press) {
    password_field.text=password_field.text.substr(0,password_field.text.length-1)  //Для кнопки backspace
    password_field.onChanged();
}

Всё, готово! Проверяй)

У меня в примере кнопки назначаются при помощи цикла, и всё пишется на главной шкале. Только в моем случае всем кнопкам надо присвоить имена button0-button9, button_clear, button_back

password_field.onChanged=function () {
if(password_field.text=="253159765") {
gotoAndStop(2);
}
}
for(var i=0; i<10; i++) {

this["button"+i].onPress=function () {

password_field.text+=this._name.substr(6,1)    //Цифра, которая стоит в имени
                                                               //Если у нас button5 - добавит 5
password_field.onChanged()
}
}
button_clear.onPress=function () {
password_field.text="";
}
button_back.onPress=function () {
password_field.text=password_field.text.substr(0,password_field.text.length-1)
}
stop();

Исходник тут

<Исправил Веталь :) >

Взято отсюда
« Последнее редактирование: 21 Декабря 2009, 19:41:24 от Vetal1992 »

Re: ВоПрос по квесту
« Ответ #2 : 21 Декабря 2009, 18:30:28 »
Яр, я конечно извиняюсь, но если копипастить, то по нормальному...

rpgeha1

  • Гость
Re: ВоПрос по квесту
« Ответ #3 : 21 Декабря 2009, 20:08:22 »
СПАИБО бльшое!)

Добавлено через: 43 мин. 38 сек.
О сори ище вопрос :shy2: вот в квестовой игре как зделать панель предметов вот например надо найти рубыль и ключ и принажатии предмет перетаскуется в инвертарь
а потом ключ к примеру перетаскуеш на дверь и она открываеца!
я пробувал делать как кнопки с помощью
stop();
on gotoAnd (stop play)();
не знаю как делать панель!? :help: :shy2:
« Последнее редактирование: 21 Декабря 2009, 20:52:45 от rpgeha1 »

rpgeha1

  • Гость
Re: ВоПрос по квесту
« Ответ #4 : 21 Декабря 2009, 23:23:37 »
help!(

Оффлайн Vetal1992 Мужской

Re: ВоПрос по квесту
« Ответ #5 : 21 Декабря 2009, 23:31:17 »
Тут нужно больше фантазии... Сейчас влом думать))

Оффлайн Хемуль Мужской

Re: ВоПрос по квесту
« Ответ #6 : 21 Декабря 2009, 23:51:06 »
rpgeha1 Я бы попробовал сделать через код столкновения. Веталь давал урок тут http://www.flashplayer.ru/forum/index.php/topic,620.150.html . Вроде при взаимодействии ключа с дверью ,проигрывается анимация двери в ходе которой она открывается. А за ней находится замаскированная кнопка перехода на другой кадр или еще чего-нибудь)

Re: ВоПрос по квесту
« Ответ #7 : 21 Декабря 2009, 23:58:24 »
Точно не скажу, хард полетел, негде проверить, но примерно так:
onClipEvent (load) {
     a=0
}
onClipEvent (enterFrame) {
      if (press) {      //Нажатие на клип
            if (a=0) {
                    this._x = X1;
                    this._y = Y1; // X1 и Y1 координаты предмета в инвентаре
                    a=1;
            }
            if (a=1) {   // клип уже в инвентаре
            this._x = _xmouse
            this._y = _ymouse   // клип двигается за мышкой
            }
      }
       if (release) {  //отпускаем клип
              if (this.hitTest(_root.Another)) { //Another - Клип с которым происходит взаимодействие
                        // Тут описываеш эффект взаимодействия, например дверь dver
                        _root.dver.play() //запускаем клип
                          this.removeMovieClip(); //Непомню код, в общем убираеш клип.
              } else {     //Если не пересекаются дверь и там ключ например
                    this._x = X1;
                    this._y = Y1; //Возвращаем в инвентарь.
              }
      }
}
       
Ну почти полное описание как сделать простенький квест...
« Последнее редактирование: 22 Декабря 2009, 00:02:09 от Elentarion »

rpgeha1

  • Гость
Re: ВоПрос по квесту
« Ответ #8 : 22 Декабря 2009, 00:08:18 »
Цитата: Elentarion от 21 Декабря 2009, 23:58:24
Точно не скажу, хард полетел, негде проверить, но примерно так:
onClipEvent (load) {
     a=0
}
onClipEvent (enterFrame) {
      if (press) {      //Нажатие на клип
            if (a=0) {
                    this._x = X1;
                    this._y = Y1; // X1 и Y1 координаты предмета в инвентаре
                    a=1;
            }
            if (a=1) {   // клип уже в инвентаре
            this._x = _xmouse
            this._y = _ymouse   // клип двигается за мышкой
            }
      }
       if (release) {  //отпускаем клип
              if (this.hitTest(_root.Another)) { //Another - Клип с которым происходит взаимодействие
                        // Тут описываеш эффект взаимодействия, например дверь dver
                        _root.dver.play() //запускаем клип
                          this.removeMovieClip(); //Непомню код, в общем убираеш клип.
              } else {     //Если не пересекаются дверь и там ключ например
                    this._x = X1;
                    this._y = Y1; //Возвращаем в инвентарь.
              }
      }
}
       
Ну почти полное описание как сделать простенький квест...


а исходника нет?(я так не очень понимаю(

+  Форум FlashPlayer.ru
|-+  Форум по flash играм
| |-+  Академия flash программирования (Модераторы: Lexei, Vetal1992)
| | |-+  ВоПрос по квесту