Jump to content


Photo

маленький бизнес на большом острове)


Best Answer vlad333000 , 17 June 2014 - 16:36



Со вторым пунктом все ясно, а вот как создать глобальную переменную к которой можно обратиться скриптом, как от нее отнимать и как прибавлять? Извиняюсь за нубасовские вопросы, но при обсуждении информация воспринимается и впитывается гораздо легче, чем при изучении справочников и учебников по скриптописанию.

Извиняюсь за вопрос: Уроки по скриптописанию - дочитали до главы "Переменные. 2 часть" ? Называется "публичная переменная"

Как прибавлять и вычитать? Это то что должен знать каждый скриптер (Обязательно к просмотру)

sum1 = a + b; sum2 = a - b;
Go to the full post


  • Please log in to reply
52 replies to this topic

#41 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 21 June 2014 - 19:23

 

 

А то бегают пацаны красные и пацаны синие, метелятся там между собой а мне баблишко капает, даже не удобно как то перед ними)))))

Кошерно устроился)


  • 0

#42 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 21 June 2014 - 19:39

 

Работает! 

unit_1 addEventHandler ["Killed", {
if ((_this select 1)== player) then {
_bablo = player getVariable ["Bablo", 0];
player setVariable ["Bablo", (_bablo + 100), true];};
}];

Сразу скажу что код коректный, но !

Объясню почему возникла сама проблема, по сути проверка здесь не нужна, и вот по чему, всего лишь нужно правильно пользоваться командой addEvantHandler, а если ещё точнее, правильно пользоваться переменной _this, которую сам обработчик события передаёт в код, и так

/*
     _this - переменная типа ARRAY, то есть массив, содержит в себе 2 переменных, это

     _this select 0 - объект к которому привязан обработчик события, в данном случае это бот
     _this select 1 - объект КИЛЛЕР, то есть тот кто грохнул

     И по этому, если бы вы оформили код сразу так, ошибок бы не было
*/

unit_1 addEventHandler ["Killed", {
	_bablo = (_this select 1) getVariable ["Bablo", 0];
	(_this select 1) setVariable ["Bablo", (_bablo + 100), true];};
}];

Edited by SteelRat, 21 June 2014 - 19:45.

  • 0

#43 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 21 June 2014 - 19:44

Ну и разумеется, если киллером будет бот, бабла срубит бот), которого потом можно и пощупать)


  • 0

#44 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 21 June 2014 - 20:24

Я так то понимаю команду select, но пока в строке скрипта додумаюсь куда именно ее поставить, голова пухнет))) Спасибо за помощь)


Edited by Djon, 21 June 2014 - 20:24.

  • 0

#45 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 21 June 2014 - 20:34

На счет изображения миссии при выборе в сценариях не подскажите? А то все оформление сделал кроме этого и че то на такой мелочи застрял(
  • 0

#46 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 22 June 2014 - 02:26

На счет изображения миссии при выборе в сценариях не подскажите? А то все оформление сделал кроме этого и че то на такой мелочи застрял(

Я не знаю, но можно тупо расковырять БИСовскую миссию, и попытаться в ней найти ответ.


  • 0

#47 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 22 June 2014 - 13:00

Вот это в армовском дискрипшене:
 
overviewPicture = "\a3\Missions_F_Curator\data\img\MP_COOP_m04_overview_ca.paa";
 
Вроде бы как речь идет о том, что мне нужно, но применяя этот способ у себя, ни чего не происходит. Даже картинку у них стырил. 
Образуется такой вопрос, дискрипшен лежащий в миссии может передавать информацию о прописанных в нем командах до запуска миссии?

  • 0

#48 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 22 June 2014 - 23:31

Сегодня обнаружил такую проблему, если я застрелю бота с автомата то арма определяет что убийца я, а если выстрелил в него с танка то убийца не я. Либо хитрость есть какая то, либо реально недоработка((( 
 
Вот это мы уже тут обсуждали, пишется в addEventHandler и туق бабло должно поступить убившему бота, но приходит только если убить не с техники 
_bablo = (_this select 1) getVariable ["Bablo", 0];
(_this select 1) setVariable ["Bablo", (_bablo + 100), true];
 
Тоже самое
if ((_this select 1)== player) then { _bablo = player getVariable ["Bablo", 0];
player setVariable ["Bablo", (_bablo + 100), true];};
 
Ну а это как вариант проверки, что арма не определила, кто именно убил бота, в этом случае деньги на счет капнули
_bablo = player getVariable ["Bablo", 0];
player setVariable ["Bablo", (_bablo + 100), true];
 
Действительно ли это косяк армы? или команда просто рассчитана на пешие убийства? И есть этому какое то решение?
 
 
 
 

  • 0

#49 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 23 June 2014 - 11:06

Альтернативное решение вопросу нашел (может кому то интересно). при помощи addAction после смерти боту прикручиваем пункт меню "искать деньги", у бота есть заданное количество денег о чем выводится сообщение hint "найдено 70 рублей". Проблемы не решенные тоже есть, еще не разобрался с рандомным количеством денег у бота от 0 до 100 и радиус пункта меню. Как то не нормально выглядит если на расстоянии 10-15 метров уже появляется пункт "искать деньги", длинноруким получается игрок)  addAction предусматривает установку радиуса и скрытие пункта меню после разового его использования, но первая возможность не получается из-за моего "глубокого" познания синтаксиса а вторая по той же причине заменена  на unit removeAction menu. 

 

В целом это выглядит так то, что у меня работает со всеми недочетами: 

unit addEventHandler["Killed",{     
menu = unit addAction ["Искать деньги", {hint "40 рублей найдено"; _bablo = player getVariable ["Bablo", 0];
player setVariable ["Bablo", (_bablo + 40), true];unit removeAction menu}];}];

  • 0

#50 OFFLINE   vlad333000

vlad333000

    Полковник

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

Posted 23 June 2014 - 21:57

Альтернативное решение вопросу нашел (может кому то интересно). при помощи addAction после смерти боту прикручиваем пункт меню "искать деньги", у бота есть заданное количество денег о чем выводится сообщение hint "найдено 70 рублей". Проблемы не решенные тоже есть, еще не разобрался с рандомным количеством денег у бота от 0 до 100 и радиус пункта меню. Как то не нормально выглядит если на расстоянии 10-15 метров уже появляется пункт "искать деньги", длинноруким получается игрок)  addAction предусматривает установку радиуса и скрытие пункта меню после разового его использования, но первая возможность не получается из-за моего "глубокого" познания синтаксиса а вторая по той же причине заменена  на unit removeAction menu. 
 
В целом это выглядит так то, что у меня работает со всеми недочетами: 
unit addEventHandler["Killed",{     
menu = unit addAction ["Искать деньги", {hint "40 рублей найдено"; _bablo = player getVariable ["Bablo", 0];
player setVariable ["Bablo", (_bablo + 40), true];unit removeAction menu}];}];

Никаких проблем нет просто заполни все поля до дистанции и все:

_heli addAction [
"Проверить бабло", /название
"Поиск бобла.sqf", /код или скрипт
"", /аргементы (хз какие)
1, /приориет (чем больше циферка тем больше шансов что команда будет в списке в начале
true, /рисовать ли название акшина в середине экрана
true, /закрыть ли окно акшинов после использования
"", /пока не понял, но можно пропустить
"true", /как я понял условия для показа акшина
"", /какаято позиция на экране можно пропустить
2, /радиус
0.25, /еще какойто радиус но чето там с курсором и его положением
1, /особености для акшина (типо только для пилота, если сидишь в технике и т д)
0, /какоето еще условие
"", /картинка при выборе
"<br />My test tooltip" /название под картинкой
]

Пс могут быть косяки с расшифровкой, сам половину бисовского текста непонимаю

На сссылку может сам до чего то допрешь 

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


Edited by vlad333000, 23 June 2014 - 22:01.

  • 1

#51 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 24 June 2014 - 18:28

 

 

а если выстрелил в него с танка то убийца не я. 

Всё правильно, в этом случае киллер, объект танк. ссылку я давал, но мало кто внимает!

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

 

И вообще, с танка, да по людям! Звери!)


 

 

еще не разобрался с рандомным количеством денег у бота от 0 до 100
_rnd = round (random 100);

Edited by SteelRat, 24 June 2014 - 18:26.

  • 1

#52 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 24 June 2014 - 18:34

 

Как то не нормально выглядит если на расстоянии 10-15 метров уже появляется пункт "искать деньги", длинноруким получается игрок) 

"true", //как я понял условия для показа акшина
"(_this distance _target) < 3",  // показать экшен если дистанция меньше 3 метров

Edited by SteelRat, 24 June 2014 - 18:36.

  • 1

#53 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 posts

Posted 24 June 2014 - 23:45

Вопросы решены, вопросов больше нет)))) Спасибо!!!


  • 0




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