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


Фотография

Рассинхрон скрипта в мультиплеере


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

#1 OFFLINE   Targon

Targon

    Ефрейтор

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

Отправлено 17 June 2015 - 22:40

Доброго времени суток. Уважаемые товарищи. Наклепал скрипт эффектов (типо выброса). Выполняется скрипт при помощи триггера - активация (_bleh = [] exeVM "blowout\script\blowoutscript.sqf") (если есть другие варианты, то предлагайте). Проблема состоит в том, что на сервере данный триггер задевает не всех игроков а только одного и при его выполнении наблюдается рассинхрон. У кого-то он раньше срабатывает, у кого-то позже (по идее должно быть у всех одновременно). Как это можно исправить. Заранее спасибо!

// VARIABLES
fnc_isInsideBuilding = compile preprocessFileLineNumbers "blowout\scripts\fn_isInsideBuilding.sqf";
_SURFERS_CHOSENCOLOR = [];

// COLORS
_SURFERS_CLEARCOLOR = [1.0, 1.0, 0.0, [0,0,0,0], [0,0,0,1],  [0,0,0,0]];
_SURFERS_GREEN = [1.0, 1.6, 0.0, [1.1, 0.9, 0.8, 0.05], [1.2, 1.0, 0.2, 0.4],  [0.199, 0.587, 0.114, 0.0]];
_SURFERS_BLUE = [1.0, 1.0, 0.0, [0.0, 0.0, 0.0, 0.0], [0.0, 0.5, 0.7, 0.7],  [0.199, 0.587, 0.114, 0.0]];
_SURFERS_BROWN = [1.0, 1.0, 0.0, [0.9, 0.2, 0.0, 0.2], [0.98, 0.3, 0.0, 0.6],  [0.8, 0.1, 0.1, 0.0]];
_SURFERS_SAND = [1.0, 1.0, 0.0, [0.99, 0.3, 0.1, 0.15], [0.99, 0.3, 0.1, 0.9],  [0.8, 0.1, 0.1, 0.0]];
_SURFERS_PINK = [0.9, 2, 0.0, [0.99, 0.3, 0.0, 0.2], [0.9, 0.3, 0.0, 0.8],  [0.5, 0.5, 0.5, 0.5]];
_SURFERS_BRIGHT = [0.9, 2, 0.3, [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1],  [0.5, 0.5, 0.5, 0.5]];
_SURFERS_DARK = [0.4, 1, 0.0, [0.0, 0.0, 0.0, 0.0], [0.0, 0.0, 0.0, 1],  [0.5, 0.5, 0.5, 0.5]];

_SURFERS_CHOSENCOLOR = _SURFERS_CLEARCOLOR;

//START BLOWOUT
	playSound "ns_fx_drone2";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;

	sleep 4;
	
	playSound "ns_fx_drone1";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;
	
	//-------------------------------------------------
	sleep 54.7;
	//-------------------------------------------------
	
	playSound "ns_fx_misc4";
	
	//-------------------------------------------------
	sleep 13.5;
	//-------------------------------------------------
	
	playSound "ns_fx_drone2";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;
	
	sleep 10;
	
	playSound "ns_fx_drone1";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;
	
	//-------------------------------------------------
	sleep 77;
	//-------------------------------------------------
	
	playSound "ns_fx_drone2";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;
	
	sleep 10;
	
	playSound "ns_fx_drone1";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;
	
	//-------------------------------------------------
	sleep 50;
	//-------------------------------------------------
	
	playSound "ns_fx_drone2";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;
	
	sleep 7;
	
	playSound "ns_fx_drone1";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;
	
	//-------------------------------------------------
	sleep 33;
	//-------------------------------------------------
	
	playSound "ns_fx_drone2";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;
	
	sleep 5;
	
	playSound "ns_fx_drone1";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;
	
	//-------------------------------------------------
	sleep 25;
	//-------------------------------------------------
	
	playSound "ns_fx_misc4";
	playSound "ns_fx_drone2";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;
	
	sleep 3;
	
	playSound "ns_fx_drone1";
	"chromAberration" ppEffectAdjust [0.25,0,true];
	"chromAberration" ppEffectEnable true;
	"chromAberration" ppEffectCommit 0.5;
	sleep 0.2; 
	"chromAberration" ppEffectAdjust [-0.15,0,true];
	"chromAberration" ppEffectCommit 0.35;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [-0.05,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.1;
	"chromAberration" ppEffectAdjust [0,0,true];
	"chromAberration" ppEffectCommit 0.20;
	sleep 0.25; 
	"chromAberration" ppEffectEnable false;

sleep 5;
_ppBlowoutColor = ppEffectCreate ["ColorCorrections", 2008];
_ppBlowoutColor ppEffectEnable true;
_ppBlowoutColor ppEffectAdjust _SURFERS_BROWN;
_ppBlowoutColor ppEffectCommit 15;
sleep 10;

sleep 2;
addCamShake [3, 3, 20];
setWind [6,6,true];
enableEnvironment false;
addCamShake [20, 180, 0.5];
setWind [10,10,true];
playsound "blowout";

sleep 5;
//CHROMATIC ABBERATION
_ppColorChrome = ppEffectCreate ["ChromAberration", 501];
_ppColorChrome ppEffectEnable true;
_ppColorChrome ppEffectAdjust [0.05, 0, 0.05];
_ppColorChrome ppEffectCommit 10;


titleCut ["", "BLACK OUT", 40];
SurfersOldFog = fog;
25 setfog 1;

sleep 6;
   playSound "bl_begin";
   "dynamicBlur" ppEffectAdjust [8];
   "dynamicBlur" ppEffectEnable true;
   "dynamicBlur" ppEffectCommit 0;
   "dynamicBlur" ppEffectAdjust [0.1];
   "dynamicBlur" ppEffectCommit 0.75;
   "chromAberration" ppEffectAdjust [0.25,0,true];
   "chromAberration" ppEffectEnable true;
   "chromAberration" ppEffectCommit 0.5;
   sleep 0.5; 
   "chromAberration" ppEffectAdjust [-0.15,0,true];
   "chromAberration" ppEffectCommit 0.35;
   sleep 0.5;
   "chromAberration" ppEffectAdjust [-0.05,0,true];
   "chromAberration" ppEffectCommit 0.20;
   sleep 0.20;
   "chromAberration" ppEffectAdjust [0,0,true];
   "chromAberration" ppEffectCommit 0.20;
   sleep 1; 
   "chromAberration" ppEffectEnable false;
   "dynamicBlur" ppEffectAdjust [3];
   "dynamicBlur" ppEffectCommit 2.75;
   sleep 5;

setWind [0,0,true];
	titleText["","WHITE OUT",1];  
	titleText["","WHITE IN",1]; 
	sleep 0.25;
	_s = round (random 3); 
	switch (_s) do 
	{
		case 0: {playSound "bl_hit1";};
		case 1: {playSound "bl_hit2";};
		case 2: {playSound "bl_hit3";};
		case 3: {playSound "bl_hit1";};
	};
sleep 5;
	titleText["","WHITE OUT",1];  
	titleText["","WHITE IN",1]; 
	sleep 0.25;
	_s = round (random 3); 
	switch (_s) do 
	{
		case 0: {playSound "bl_hit1";};
		case 1: {playSound "bl_hit2";};
		case 2: {playSound "bl_hit3";};
		case 3: {playSound "bl_hit1";};
	};
sleep 3;
	titleText["","WHITE OUT",1];  
	titleText["","WHITE IN",1]; 
	sleep 0.25;
	_s = round (random 3); 
	switch (_s) do 
	{
		case 0: {playSound "bl_hit1";};
		case 1: {playSound "bl_hit2";};
		case 2: {playSound "bl_hit3";};
		case 3: {playSound "bl_hit1";};
	};
sleep 1;
	titleText["","WHITE OUT",1];  
	titleText["","WHITE IN",1]; 
	sleep 0.25;
	_s = round (random 3); 
	switch (_s) do 
	{
		case 0: {playSound "bl_hit1";};
		case 1: {playSound "bl_hit2";};
		case 2: {playSound "bl_hit3";};
		case 3: {playSound "bl_hit1";};
	};
sleep 0.5;
	titleText["","WHITE OUT",1];  
	titleText["","WHITE IN",1]; 
	sleep 0.25;
	_s = round (random 3); 
	switch (_s) do 
	{
		case 0: {playSound "bl_hit1";};
		case 1: {playSound "bl_hit2";};
		case 2: {playSound "bl_hit3";};
		case 3: {playSound "bl_hit1";};
	};
sleep 1;
	titleText["","WHITE OUT",1];  
	titleText["","WHITE IN",1]; 
	sleep 0.25;
	_s = round (random 3); 
	switch (_s) do 
	{
		case 0: {playSound "bl_hit1";};
		case 1: {playSound "bl_hit2";};
		case 2: {playSound "bl_hit3";};
		case 3: {playSound "bl_hit1";};
	};
sleep 2;
	playSound "bl_full";
	titleText["","BLACK OUT",1];
{
	if (count(lineIntersectsObjs [(getposASL _x), [(getposASL _x select 0),(getposASL _x select 1),((getposASL _x select 2) + 20)]]) == 0) then
	{
		_x switchMove "AinjPfalMstpSnonWnonDnon_AmovPpneMstpSnonWnonDnon_injured";
    };
} forEach allUnits;
	player switchMove "AinjPfalMstpSnonWnonDnon_AmovPpneMstpSnonWnonDnon_injured";
	disableUserInput true;	
	sleep 0.1;
	sleep 10;


/// MIDDLE OF BLOWOUT!!!
/// DAMAGES BY BLOWOUT

private["_isinbuilding"];
_isinbuilding = false;	

if([player] call fnc_isInsideBuilding) then {
	_isinbuilding = true; player allowdamage false;
};

if (!_isinbuilding) then {
	player setdamage 0.30;
};

setWind [0,0,true];

sleep 2;
enableEnvironment true;
sleep 6;

//END OF BLOWOUT
setWind [0,0,true];
titleCut ["", "BLACK IN", 30];
titleText["","BLACK IN",10];
30 setfog SurfersOldFog;
sleep 5;
_ppColorChrome ppEffectAdjust [0, 0, 0];
_ppColorChrome ppEffectCommit 20;
sleep 20;
_ppBlowoutColor ppEffectAdjust _SURFERS_CHOSENCOLOR;
_ppBlowoutColor ppEffectCommit 30;
sleep 10;
disableUserInput false;
player allowdamage true;
{
	if (count(lineIntersectsObjs [(getposASL _x), [(getposASL _x select 0),(getposASL _x select 1),((getposASL _x select 2) + 20)]]) == 0) then
	{
		_x switchMove "";
    };
} forEach allUnits;






Сообщение отредактировал Targon: 17 June 2015 - 22:40

  • 0

#2 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

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

Отправлено 17 June 2015 - 23:46

как ты понимаешь работу команды sleep?


  • 0

#3 OFFLINE   Targon

Targon

    Ефрейтор

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

Отправлено 18 June 2015 - 07:16

как ты понимаешь работу команды sleep?

 

Приостановить выполнение скрипта в секундах. 


  • 0

#4 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

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

Отправлено 18 June 2015 - 09:17

 

как ты понимаешь работу команды sleep?

 

Приостановить выполнение скрипта в секундах. 

 

знаешь чем отличается 

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

 от 

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

?


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

  • 0

#5 OFFLINE   Targon

Targon

    Ефрейтор

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

Отправлено 18 June 2015 - 15:59

 

 

как ты понимаешь работу команды sleep?

 

Приостановить выполнение скрипта в секундах. 

 

знаешь чем отличается 

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

 от 

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

?

 

с этими параметрами я еще не сталкивался!


  • 0

#6 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

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

Отправлено 18 June 2015 - 16:05

грубо говоря diag_tickTime точнее считает время, чем time

 

примерно так отличается работа sleep от uisleep

//sleep 5;
t = time + 5;
waitUntil {time >= t};
//uiSleep 5;
t = diag_tickTime + 5;
waitUntil {diag_tickTime >= t};

 

 

For server scripts, if you are creating "while true" timers, it is best to use 

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

 instead, as the sleep from that command is not slowed down by simulation / server lag, so the timers will execute at intervals that are much closer to real time, even under heavy lag.

Сообщение отредактировал Dimon UA: 18 June 2015 - 16:13

  • 0

#7 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 18 June 2015 - 16:55

Димон, можете дать не машинный перевод?

Этого

 

For server scripts, if you are creating "while true" timers, it is best to use 

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

 instead, as the sleep from that command is not slowed down by simulation / server lag, so the timers will execute at intervals that are much closer to real time, even under heavy lag.


 

У кого-то он раньше срабатывает, у кого-то позже (по идее должно быть у всех одновременно).

Видимо сам триггер так и настроен.


  • 0

#8 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 18 June 2015 - 16:56

Dimon UA, я бы не сказал, что оно считает время более точно. Diag_tickTime всего лишь не зависит от симуляции мира и не тормозится если идут какие-то фризы. Да, она вернет реальное время прошедшее со старта, но не реальное время прошедшее в игровом мире (со всеми ускорениями и тормозами). Поэтому исходя из требуемого нужно использовать нужное, иначе будет не тот результат. Да и использовать для циклов лучше sleep или uiSleep

Сообщение отредактировал vlad333000: 18 June 2015 - 16:57

  • 0

#9 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 18 June 2015 - 16:58

player switchMove "AinjPfalMstpSnonWnonDnon_AmovPpneMstpSnonWnonDnon_injured";

Эффект команды локален, для мультика придётся делать, так, что то исполняет сервер, что то на клиентах, эффекты тоже локальны, и должны отыгрываться на всех клиентах.


Dimon UA, я бы не сказал, что оно считает время более точно. Diag_tickTime всего лишь не зависит от симуляции мира и не тормозится если идут какие-то фризы. Да, она вернет реальное время прошедшее со старта, но не реальное время прошедшее в игровом мире (со всеми ускорениями и тормозами). Поэтому исходя из требуемого нужно использовать нужное, иначе будет не тот результат. Да и использовать для циклов лучше sleep или uiSleep

Точнее, коллега, поверьте. в смысле много цифер после запятой.

Командой time вы не отследите тайминг 0.5, как пример.


Сообщение отредактировал SteelRat: 18 June 2015 - 17:00

  • 0

#10 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 18 June 2015 - 17:03

SteelRat, а топикмейкеру вообще нужна такая точность?
  • 0

#11 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 18 June 2015 - 17:08

if([player] call fnc_isInsideBuilding) then {
	_isinbuilding = true; player allowdamage false;
};

Если во время выброса игрок забежит в здание, а там окажется конкурент и затеется перестрелка, то эта часть кода в некий момент сработает как чит на бессмертие. Нужно по другому сделать выборку кому наносить дамаж а кому нет.


SteelRat, а топикмейкеру вообще нужна такая точность?

Если честно понятия не имею). Ему скорее всего тайминг срабатывания активации нужно обнулить.


  • 0

#12 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 14 July 2015 - 01:35

Вставлю свои пять копеек...

Советую сделать так:

bleh = compileFinal (preprocessFileLineNumbers "blowout\script\blowoutscript.sqf);

и вызывать его с помощью call:

call bleh;

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

Кстати, если так поступать, то в blowoutscript.sqf в конце нужно добавить формальное true.


  • 0

#13 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 14 July 2015 - 01:52

 

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

В мультиплеере, мгновенно, бывает только локально.

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


  • 0

#14 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 14 July 2015 - 01:58

 

 

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

В мультиплеере, мгновенно, бывает только локально.

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

 

Это всё равно будет намного быстрее, чем при использовании execVM.


  • 0

#15 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 14 July 2015 - 18:49

 

 

 

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

В мультиплеере, мгновенно, бывает только локально.

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

 

Это всё равно будет намного быстрее, чем при использовании execVM.

 

 

Я знаю разницу.

 

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

Я прокручивал этот скрипт, идея хорошая. Но нужен грамотный подход. Нужно выдавать команды на эффекты пакетами, так сказать, и централизовано.

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


  • 0

#16 OFFLINE   Schatten

Schatten

    Капитан

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

Отправлено 14 July 2015 - 20:48

 

 

 

 

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

В мультиплеере, мгновенно, бывает только локально.

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

 

Это всё равно будет намного быстрее, чем при использовании execVM.

 

 

Я знаю разницу.

 

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

Я прокручивал этот скрипт, идея хорошая. Но нужен грамотный подход. Нужно выдавать команды на эффекты пакетами, так сказать, и централизовано.

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

 

Сомневаюсь в правильности деления этого сценария на составные части и их запуска с сервера. Думаю, достаточно будет в нём заменить sleep на uiSleep, на клиентских компах его запомнить, как я написал

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

.

В общем, тут достаточно было опубликовано идей, осталось дождаться решения автора темы.


Сообщение отредактировал Schatten: 14 July 2015 - 20:50

  • 0

#17 OFFLINE   SteelRat

SteelRat

    Полковник

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

Отправлено 15 July 2015 - 02:29

Вы не поверите!

Мне вообще ровно, делить это или не делить, это пусть автор решает.

Сценарий эффекта, придуманный автором, сам собой напрашивается на распил.


  • 0




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