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


Фотография

можно ли из брифинга запустить выполнение скрипта?


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

#1 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 24 October 2015 - 16:19

можно ли из брифинга запустить выполнение скрипта?


  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 24 October 2015 - 17:11

Dimon UA, брифинг = init.sqf без каких либо sleep, waitUntil... а запускать, только вешая события на интерфейс карты
  • 0

#3 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 24 October 2015 - 17:36

можно ли в стадии брифинга вручную запустить выполнение нужного мне скрипта - кликом мыши на нужный из списка?


  • 0

#4 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 24 October 2015 - 17:54

Dimon UA, если у тебя получится создать контролы поверх карты - да, и скрипты должны быть без задержек, основанных на внутреигровом времени

Сообщение отредактировал vlad333000: 24 October 2015 - 17:54

  • 0

#5 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 24 October 2015 - 18:01

поподробней плиз насчет "контролов поверх карты"

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


Сообщение отредактировал Dimon UA: 24 October 2015 - 18:03

  • 0

#6 OFFLINE   PIONEER

PIONEER

    Мл.сержант

  • Пользователи
  • 129 сообщений
  • Откуда:Симферополь
  • Отряд:[IMB]

Отправлено 24 October 2015 - 20:18

Лично я думаю, что не особо получится именно до старта миссии, все скрипты основные загружаются после и как сделать поверх карты диалоговое окно не знаю, возможно можно.

Можно после старта действия на колесико выбор сделать или по рации 0-0-0, или написать скрипт, открываешь карту и в зависимости куда тыкнул - какое-то действие. 


Сообщение отредактировал PIONEER: 24 October 2015 - 20:19

  • 0

#7 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 24 October 2015 - 20:28

все скрипты основные загружаются после

Нихрена! Init.sqf и все с ним связанное: после исчезновения экрана загрузки перед брифингом, если вставить sleep или waitUntil, то данный скрипт дойдет до этого sleep'а и продолжит после старта в игру
  • 0

#8 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1799 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 24 October 2015 - 20:33

все скрипты основные загружаются после

Не зря же пишут

waitUntil {
	sleep 0.1;

	!(isNull player)
};

или

waitUntil {
	sleep 0.1;

	time > 0
};

или и то, и другое вместе.


  • 1

#9 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 24 October 2015 - 20:38

Schatten, иногда waitUntil {!isNull (findDisplay 46)}; :)
  • 0

#10 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 24 October 2015 - 20:44

БЕСы придумали круче всех)

enableSaving [false, false];

if (!isDedicated) then {
	onPreloadFinished {PTm_IsPreloadFinished = true; onPreloadFinished {};};
	waitUntil {!isNil "PTm_IsPreloadFinished"};
	["PTm_loadingScreen"] call BIS_fnc_startLoadingScreen;
};

  • 0

#11 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 24 October 2015 - 23:48

в description.ext

class Extended_PreInit_EventHandlers {
	class "имя класса" {
		Init = "call compile preProcessFileLineNumbers 'preInit.sqf'";
	};
};

позволяет запускать код до срабатывания init.sqf

 

в preInit.sqf:

if (hasInterface) then {
    0 = [] spawn {
        waitUntil {
            if (getClientState == "BRIEFING READ") then {

позволяет уловить момент когда клиент читает брифинг


Сообщение отредактировал Dimon UA: 24 October 2015 - 23:49

  • 0

#12 OFFLINE   PIONEER

PIONEER

    Мл.сержант

  • Пользователи
  • 129 сообщений
  • Откуда:Симферополь
  • Отряд:[IMB]

Отправлено 25 October 2015 - 00:24

 

все скрипты основные загружаются после

Нихрена! Init.sqf и все с ним связанное: после исчезновения экрана загрузки перед брифингом, если вставить sleep или waitUntil, то данный скрипт дойдет до этого sleep'а и продолжит после старта в игру

 

 

Это всё фигня, sqf грузит, но годится на брифинги и на некоторые команды, всё остальное уже после загрузки нормально работать будет. Попробуйте сделать поверх брифинга что-то до старта миссии.


  • 0

#13 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 25 October 2015 - 00:50

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

execute
expression: String - executed code
 
player createDiaryRecord ["-----", ["------","------: [<execute expression='call fnc_-------'>------</execute>] <br />"]];

  • 0

#14 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 25 October 2015 - 02:58


Сообщение отредактировал Dimon UA: 25 October 2015 - 02:59

  • 0

#15 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 25 October 2015 - 12:49

Dimon UA, + еще один вариант (Поверх брифинга до старта): Прикрепленный файл  User_script_on_briefing.VR.pbo   2.96К   9 Количество загрузок:
Скрытый текст


PS Над красотой не работал!

Сообщение отредактировал vlad333000: 25 October 2015 - 13:02

  • 1

#16 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 28 October 2015 - 01:23

Сл.проблема:

так работает запуск скрипта "call fnc_dim_respawn"

player createDiaryRecord ["TU_actions", [format["Управляемый респ группы %1",group z1],
			"Действие: [<execute expression='z1 call fnc_dim_respawn'>Выбрать место респа</execute>] <br />
		"]];
player createDiaryRecord ["TU_actions", [format["Управляемый респ группы %1",group z11],
			"Действие: [<execute expression='z11 call fnc_dim_respawn'>Выбрать место респа</execute>] <br />
		"]];
	player createDiaryRecord ["TU_actions", [format["Управляемый респ группы %1",group z111],
			"Действие: [<execute expression='z111 call fnc_dim_respawn'>Выбрать место респа</execute>] <br />
		"]];

а так нет

{
		player createDiaryRecord ["TU_actions", [format["Управляемый респ группы %1",group _x],
			"Действие: [<execute expression='_x call fnc_dim_respawn'>Выбрать место респа</execute>] <br />
		"]]; 
	} foreach [z1,z11,z111];

Сообщение отредактировал Dimon UA: 28 October 2015 - 09:47

  • 0

#17 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 28 October 2015 - 09:41

""Действие: [<execute expression='_x call fnc_dim_respawn'>Выбрать место респа</execute>]"

_x в данном случае не существует и поэтому у вас не работает
Можно попробовать через формат включить переменную в текст
  • 1

#18 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 28 October 2015 - 09:51

 

""Действие: [<execute expression='_x call fnc_dim_respawn'>Выбрать место респа</execute>]"

_x в данном случае не существует и поэтому у вас не работает
Можно попробовать через формат включить переменную в текст

 

просто когда

[format["Управляемый респ группы %1",group _x],

то _х читается и название группы пишется, а вот в сл. ситуации _х не не видит...

Просто как-то нужно в функцию отправить указание какая именно группа...


  • 0

#19 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1799 сообщений
  • Откуда:Тбилиси, Грузия

Отправлено 28 October 2015 - 10:07

Dimon UA,

{
	player createDiaryRecord [
		"TU_actions",
		[
			format ["Управляемый респ группы %1", call (compile ("group " + _x))],
			format ["Действие: [<execute expression='%1 call fnc_dim_respawn'>Выбрать место респа</execute>]<br/>", _x]
		]
	];
}
foreach ["z1", "z11", "z111"];

  • 1

#20 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 28 October 2015 - 10:25

 

Dimon UA,

{
	player createDiaryRecord [
		"TU_actions",
		[
			format ["Управляемый респ группы %1", call (compile ("group " + _x))],
			format ["Действие: [<execute expression='%1 call fnc_dim_respawn'>Выбрать место респа</execute>]<br/>", _x]
		]
	];
}
foreach ["z1", "z11", "z111"];

спс, ща заценим.

 

Спасибо!


Сообщение отредактировал Dimon UA: 28 October 2015 - 10:38

  • 0




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