Перейти к содержимому


Фотография

Нужна помощь с проверкой в скрипте+ошибка и неколько вопросов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 OFFLINE   Москит

Москит

    Рядовой

  • Пользователи
  • 15 сообщений

Отправлено 21 May 2017 - 11:31

Доброго времени суток! При создании миссии столкнулся с несколькими проблемамами :

 

Для начала краткое описание миссии (на прямую сязано с проблемой)

 

Игрок играет за снайпера которому надо выйти на позицию и убить двух высокопоставленых личностей. Когда игрок приходит на позицию ему выдаётся 2 задания : 1) уничтожить снайперов и 2) уничтожить ПВО.  Эти задания выдаются на время : от прибытия игрока на позицию и до прилёта вертолётов т.е. если вертолёты прилетают то задание отменяется и вот здесь первая проблема : даже если я выполню задание (убью ПВОошников) то задание всё равно отменется потому что в триггер отменяющий задание попадёт вертолёт. Как это исправить?

 

Идём далее

 

Второе задание влияет на эвакуацию, задание на которую будет назначено после уничтожения целей : если ПВО уничтожено, то эвакуация происходит неподалёку (как запланировано) если ПВО не уничтожено то задание на запланированную эвакуацию отменется и назначится новое, в другом месте. Попытавшись написать проверку в sqs ни чего не вышло. И всё же с неохотой решил написать в sqf (Я c sqf на вы да еще и как огня боюсь что либо делать в них :)  :) )  Почитав про sqf на всевозможных форумах (и на этом тоже) я взялся писать и вот что вышло :

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

if (i=true)
then {wp = true; as = [hind] execVM "dialog_exit.sqf"}
else {m3_m=true; as = [hind] execV "dialog_exit_alternal.sqf"; alt=true};

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

поясняю где что : m_dop2 - имя триггера который отвечает за выполнение задания с ПВО

в триггере написано

 

 

условие

!Alive pvo1 && !Alive pvo2 (На and у меня игра постоянно ругается) pvo1 и pvo2 - имена ПВОшников

 

при активации

trigger_dop2_otmena=true по идее должен отменять триггер отмены куда попадают вертолёты

i=true - это то что по идее должно проверятся.

 

 

hind - имя игрока

wp - это триггер для активации точки вертолёта (если пво уничтожено)

m3_m=true - это  триггер который отменяет задание на эвакуацию (запланированную)

alt=true - Это триггер который по идее должен назначать задание на прибытие в альтернативную точку эвакуации

---------------------------------------------------------

 

В итоге когда я захожу в триггер у меня вылазит вот это : Прикрепленный файл  ошибка.jpg   23.86К   0 Количество загрузок:

 

ругается как я понял на скобки во второй строчке. Я пробовал ставить  ;  - ни чего не поменялось всё так же ошибка.

Боги скриптописания и просто понимающие в скриптах прошу вашей помощи.

 

И еще парочка вопросов :

 

1. Имеет ли значение как названа переменная в редакторе и в скрипте? Например в редакторе я написал х=true а в sqf  _x=true? я что то ни где не нашел ответа на этот вопрос.

2. Если я пишу например так

 

if

(условие=true)

then

{

что то происходит

}

 

то где надо ставить точку запятую? Где то написано что в каждой строчке где то вообще только у последней я немного не понимаю.

Просьба помидорами не кидаться я только учусь )))


  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 21 May 2017 - 13:13

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


1. Имеет,

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


2. ; (Пустой оператор) - разделяет выражения языка, его нужно ставить там где они и разделяются, и для

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

+

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


Сообщение отредактировал vlad333000: 21 May 2017 - 13:19

  • 0

#3 OFFLINE   Москит

Москит

    Рядовой

  • Пользователи
  • 15 сообщений

Отправлено 21 May 2017 - 16:15

vlad333000,

 

Изменил код и решил что пусть проверяет триггер.

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

if (m_dop2 == true)
then {wp = true; as = [hind] execVM "dialog_exit.sqf"}
else {m3_m=true; as = [hind] execV "dialog_exit_alternal.sqf"; alt=true};

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

вылезает ошибка

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

(путь)

 

if (m_dop2 |#|== true)
then {wp = true; as = [hind] ex...'

File C:\Users\....

Error ==: ,           ,           ,        ,         ,          ,        , text, config entry, Display (dialog), Control, Network Object, Team member, Task, Location

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

То что мне перечисляют text, config entry, Display (dialog), Control, Network Object, Team member это то что может проверять что ли? И еще вопрос где rtp файл хранится?


  • 0

#4 OFFLINE   Telore

Telore

    Сержант

  • Пользователи
  • 201 сообщений
  • Откуда:Kazakhstan, West Kazakhstan, Urlask
  • Отряд:[DFR]

Отправлено 22 May 2017 - 00:05

RPT файл тут: ...\AppData\Local\Arma 3


  • 0

#5 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 22 May 2017 - 01:29

Москит, m_dop2 - как вы сказали выше, триггер = тип object
true - логическое значение истины = тип boolean
Оператором == можно сравнивать только аперанды с одинаковым типом данных, для различных можно использовать value1 isEqualTo value2, но все равно бессмысленно т к типы будут разные и эта команда вернет ложь
  • 0

#6 OFFLINE   Москит

Москит

    Рядовой

  • Пользователи
  • 15 сообщений

Отправлено 22 May 2017 - 10:15

То есть я правильно понял что у меня ни чего не выйдет?
  • 0




Яндекс.Метрика