Jump to content


Photo

Вопросы по скриптингу

Arma3 как плотформа для созда Скритпы

  • Please log in to reply
1486 replies to this topic

#481 OFFLINE   vlad333000

vlad333000

    Полковник

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

Posted 17 December 2016 - 23:31

Ilias, сначала расшифруйте текст:
  • Это как: эргономичнее для содержания?
  • Это как: технически гарантировано? (А есть еще не технически гарантировано?)
  • Так и не нашел глагола в предложении
По делу, попробую догадаться что вы имели ввиду: у вас есть БД, есть к ней запросы, БД синхронизируются между N клиентами, нужно ответить на вопрос "Есть ли другие способы организации запросов и синхронизации БД, кроме централизованного управления на сервере?" - ответ "К одному набору данных - нет". Клиент: отправил запрос на сервер >> ждет ответа от сервера. Сервер: "слушает" канал для запросов >> выполняет зарос >> отправляет ответ - все, ни как иначе

PS Хз кто картинку рисовал, но у него точно ничего не получилось ей объяснить

Edited by vlad333000, 17 December 2016 - 23:32.

  • 0

#482 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 18 December 2016 - 02:38

Ilias, сначала расшифруйте текст:

  • Это как: эргономичнее для содержания?
  • Это как: технически гарантировано? (А есть еще не технически гарантировано?)
  • Так и не нашел глагола в предложении
По делу, попробую догадаться что вы имели ввиду: у вас есть БД, есть к ней запросы, БД синхронизируются между N клиентами, нужно ответить на вопрос "Есть ли другие способы организации запросов и синхронизации БД, кроме централизованного управления на сервере?" - ответ "К одному набору данных - нет". Клиент: отправил запрос на сервер >> ждет ответа от сервера. Сервер: "слушает" канал для запросов >> выполняет зарос >> отправляет ответ - все, ни как иначе

PS Хз кто картинку рисовал, но у него точно ничего не получилось ей объяснить

 

читаете мысли ) , спасибо , печалька (не хочется чтобы всю работы выполнял сервер)


  • 0

#483 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 posts
  • Откуда:mscw

Posted 19 December 2016 - 23:39

Здров пацанчики научите пжлст как этот код применить для всех маркеров и чтобы после активации срабатывал только в том маркере в котором он активируется 

       
_respawnVehicleOn = true;

while {_respawnVehicleOn } do { 
           if (_respawnVehicleOn ) then {

                 _respawnVehicleOn = false;
                    _pos = getMarkerPos "pavlovo";
        waitUntil {({isPlayer _x && _x distance _pos < 100} count playableUnits) > 0};

               

                     _CheckPlayer = true;


	


["Respawn Vhicle in Pavlovo","hint",true,true] call BIS_fnc_MP;



   






       _cars = [];

 

             for "_i" from 0 to 1 step 1 do  {

             _car =  createVehicle ["CUP_B_HMMWV_Unarmed_USMC",[ _pos select 0,(_pos select 1) + 5], [], 5, "None"];

_car addEventHandler ["Engine", {(_this select 0) setVariable ["_cars_player", true, true];
 (_this select 0) removeEventHandler ["Engine", _thisEventHandler]}];

_cars pushBack _car;

};









           if (_CheckPlayer) then {

                      
_CheckPlayer = false ;
waitUntil {({isPlayer _x && _x distance _pos < 100}count playableUnits) == 0 };

             ["Player leave Pavlovo","hint",true,true] call BIS_fnc_MP;

                     _respawnVehicleOn = true;
};
{if !(_x getVariable ["_cars_player", false]) then {deleteVehicle _x;}}forEach _cars;
              
         };
 };


Edited by lopster102, 19 December 2016 - 23:44.

  • 0

#484 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 posts
  • Откуда:mscw

Posted 21 December 2016 - 12:54

Пцаны помогайте пожалуйста  кто как может на кону топовый проект!!все вместе поиграем !!вам понравится!!!


Edited by lopster102, 21 December 2016 - 13:39.

  • 0

#485 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 24 December 2016 - 14:25

Подскажите пожалуйста.
config.cpp

class CfgPatches {
     class Iilas {
          units = {};
          weapons = {};
          requiredVersion = 0.100000;
          requiredAddons = {};
     };
};

class d_t{
idd=999;
enablesimulation=1;
onload=d_t=_this select 0;c_t=_this select 0 displayctrl 0;
class controlsbackground{
     class tr: CT_TREE
          {
               idc = 0;
               x = 0.15;
               y = 0.08;
               w = 0.25;
               h = 0.78;
          };
     };
};

Error: Some input after end of file.
И кажется с последнего обновления при добавлении в дерево (даже чисто взятое от сюда:

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

) текста добавляются только строчки (без текста):

Attached Files


Edited by Ilias, 24 December 2016 - 15:35.

  • 0

#486 OFFLINE   Schatten

Schatten

    Капитан

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

Posted 24 December 2016 - 17:39

Ilias, не вижу здесь

onload=d_t=_this select 0;c_t=_this select 0 displayctrl 0;

кавычек.


  • 0

#487 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 25 December 2016 - 07:52

Ilias, не вижу здесь

onload=d_t=_this select 0;c_t=_this select 0 displayctrl 0;

кавычек.

) и правда ), но я пробовал и без этой строчки

class CfgPatches {
	class Iilas {
		units = {};
		weapons = {};
		requiredVersion = 0.100000;
		requiredAddons = {};
	};
};

class d_t{
	idd=999;
	class controlsbackground{
		class tr: CT_TREE
		{
			idc = 0;
			x = 0.15;
			y = 0.08;
			w = 0.25;
			h = 0.78;
		};
	};
};

Edited by Ilias, 25 December 2016 - 07:57.

  • 0

#488 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 25 December 2016 - 10:55

Для работающего дерева в стандарт с wiki нужно внести несколько правок, с обновления добавилась необходимость ещё одной,

работающий вариант:

class CT_TREE
{
	access = 0; // Control access (0 - ReadAndWrite, 1 - ReadAndCreate, 2 - ReadOnly, 3 - ReadOnlyVerified)
	idc = CT_TREE; // Control identification (without it, the control won't be displayed)
	type = CT_TREE; // Type is 12
	style = ST_LEFT; // Style
	default = 0; // Control selected by default (only one within a display can be used)
	blinkingPeriod = 0; // Time in which control will fade out and back in. Use 0 to disable the effect.

	x = 12 * GUI_GRID_CENTER_W + GUI_GRID_CENTER_X; // Horizontal coordinates
	y = 3 * GUI_GRID_CENTER_H + GUI_GRID_CENTER_Y; // Vertical coordinates
	w = 10 * GUI_GRID_CENTER_W; // Width
	h = 3 * GUI_GRID_CENTER_H; // Height

	colorBorder[] = {0,0,0,1}; // Frame color

	colorBackground[] = {0.2,0.2,0.2,1}; // Fill color
	colorSelect[] = {1,0.5,0,1}; // Selected item fill color (when multiselectEnabled is 0)
	colorMarked[] = {1,0.5,0,0.5}; // Marked item fill color (when multiselectEnabled is 1)
	colorMarkedSelected[] = {1,0.5,0,1}; // Selected item fill color (when multiselectEnabled is 1)

	sizeEx = 0.04; // Text size
	font = "PuristaMedium"; // Font from CfgFontFamilies
	shadow = 1; // Shadow (0 - none, 1 - N/A, 2 - black outline)
	colorText[] = {1,1,1,1}; // Text color
	colorSelectText[] = {1,1,1,1}; // Selected text color (when multiselectEnabled is 0)
	colorMarkedText[] = {1,1,1,1}; // Selected text color (when multiselectEnabled is 1)

	tooltip = "CT_TREE"; // Tooltip text
	tooltipColorShade[] = {0,0,0,1}; // Tooltip background color
	tooltipColorText[] = {1,1,1,1}; // Tooltip text color
	tooltipColorBox[] = {1,1,1,1}; // Tooltip frame color

	multiselectEnabled = 1; // Allow selecting multiple items while holding Ctrl or Shift
	expandOnDoubleclick = 1; // Expand/collapse item upon double-click
	hiddenTexture = "A3\ui_f\data\gui\rsccommon\rsctree\hiddenTexture_ca.paa"; // Expand icon
	expandedTexture = "A3\ui_f\data\gui\rsccommon\rsctree\expandedTexture_ca.paa"; // Collapse icon
	maxHistoryDelay = 1; // Time since last keyboard type search to reset it

	// Scrollbar configuration
	class ScrollBar
	{
		width = 0; // width of ScrollBar
		height = 0; // height of ScrollBar
		scrollSpeed = 0.1;
		//0.01; // scroll speed of ScrollBar

		arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; // Arrow
		arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; // Arrow when clicked on
		border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; // Slider background (stretched vertically)
		thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; // Dragging element (stretched vertically)

		color[] = {1,1,1,1}; // Scrollbar color
	};

	colorDisabled[] = {0,0,0,0}; // Does nothing, but must be present, otherwise an error is shown
	colorArrow[] = {0,0,0,0}; // Does nothing, but must be present, otherwise an error is shown
	colorpicture[] = {0,0,0,0}; // must present, otherwise an error is shown
	colorpictureselected[] = {0,0,0,0}; // must present, otherwise an error is shown
	colorpicturedisabled[] = {0,0,0,0}; // must present, otherwise an error is shown
	colorpictureright[] = {0,0,0,0}; // must present, otherwise an error is shown
	colorpicturerightselected[] = {0,0,0,0}; // must present, otherwise an error is shown
	colorpicturerightdisabled[] = {0,0,0,0}; // must present, otherwise an error is shown
};

рад если кому пригодиться


Edited by Ilias, 25 December 2016 - 10:57.

  • 2

#489 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 01 January 2017 - 14:17

кто нибудь может помочь:

 

0.верно ли:

     0.1.все execvm ed, spawn ed, написанные в автовыполняемые файлы (init..),object's init fields,

     строки выполняются кидая по очереди свои команды в vm sheduler (который 1 на arma|_|.exe (выполняющий эти команды по очереди поступления)),

     0.2.event handlers сработавшие в frame задерживают рендеринг следующей пока все полностью не выполняться выполнясь своими процессами

?

 

1.+сы -сы fsm в сравнении с sqf

(

     1.1.разница скорости соединений fsm с элементами sqf (if..),

     1.2.скорость выполнения зацикленной на себе проверки,

     1.3.выполняются ли fsm своими процессами

          2.если нет то как  если да то как ещё ) можно так сделать

               если можно то ~сколько shedulers (процессов) нужно на -1fps (лишь загрузкой процессора) и ~сколько их на 1 ai

     ?

)

3.Как технически игра ищет переменные в missionnamespace(на всякий случай, во всех конечно)

    (влияние на производительность увеличения их количества)

?

 

?


Edited by Ilias, 01 January 2017 - 18:16.

  • 0

#490 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 10 January 2017 - 18:09

Кто нибудь может объяснить как это \|/ вообще возможно

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


Edited by Ilias, 10 January 2017 - 18:10.

  • 0

#491 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 10 January 2017 - 20:33

Ещё интересный момент, может кто нибудь объяснить?


  • 0

#492 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 posts
  • Откуда:mscw

Posted 10 January 2017 - 21:49

ПАЦАНЫ ЗДРОВ ВСЕМ!КТО ШАРИТ РАссКАЖИТЕ ПЖЛСТ как выбрать рандомный маркер из массива для функции АДДРЕСПАВН

 

_markers = ["citymarker25","citymarker26","citymarker27"]
_random = _markers select (floor (random (count _markers)));
 
 
 

[player, _random ] call BIS_fnc_addRespawnPosition;

НЕ РАБОТАЕТ ТАКОЙ КОД ПОДСКАЖИТЕ КАК ПРАВИЛЬНО СДЕЛАТЬ....


  • 0

#493 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 10 January 2017 - 22:29

 

*

ПАЦАНЫ ЗДРОВ ВСЕМ!КТО ШАРИТ РАссКАЖИТЕ ПЖЛСТ как выбрать рандомный маркер из массива для функции АДДРЕСПАВН

НЕ РАБОТАЕТ ТАКОЙ КОД ПОДСКАЖИТЕ КАК ПРАВИЛЬНО СДЕЛАТЬ.

подскажите как сделать

 

*_ma=_markers select floor random count _markers;

 

ошибка не здесь


  • 0

#494 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 10 January 2017 - 22:35

https://arma3.ru/for...ptingu/?p=71818

_ls=[]spawn{..};
waituntil{isnull _ls};

и всё работает, но выдаёт

{#is generic error

 

почему?


Edited by Ilias, 10 January 2017 - 22:40.

  • 0

#495 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 posts
  • Откуда:mscw

Posted 10 January 2017 - 23:26

 

 

*

ПАЦАНЫ ЗДРОВ ВСЕМ!КТО ШАРИТ РАссКАЖИТЕ ПЖЛСТ как выбрать рандомный маркер из массива для функции АДДРЕСПАВН

НЕ РАБОТАЕТ ТАКОЙ КОД ПОДСКАЖИТЕ КАК ПРАВИЛЬНО СДЕЛАТЬ.

подскажите как сделать

 

*_ma=_markers select floor random count _markers;

 

ошибка не здесь

 

а где ошибка тогда?)))


  • 0

#496 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 11 January 2017 - 11:11

а где ошибка тогда?)))

В других строках


  • 0

#497 OFFLINE   Schatten

Schatten

    Капитан

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

Posted 11 January 2017 - 17:02

_ls=[]spawn{..};
waituntil{isnull _ls};
и всё работает, но выдаёт
{#is generic error
 
почему?

 

Возможно потому, что waitUntil используется в "non scheduled"-окружении, а это не допускается.
 

 

 

_ma=_markers select floor random count _markers;

ошибка не здесь

 

а где ошибка тогда?)))

 

Нужно смотреть RPT-файл.


Edited by Schatten, 11 January 2017 - 17:14.

  • 0

#498 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 11 January 2017 - 20:08

 

_ls=[]spawn{..};
waituntil{isnull _ls};
и всё работает, но выдаёт
{#is generic error
 
почему?

 

Возможно потому, что waitUntil используется в "non scheduled"-окружении, а это не допускается.
 

 

 

_ma=_markers select floor random count _markers;

ошибка не здесь

 

а где ошибка тогда?)))

 

Нужно смотреть RPT-файл.

 

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


  • 0

#499 OFFLINE   Ilias

Ilias

    Прапорщик

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

Posted 12 January 2017 - 04:20

верно ли я понимаю назначение array как содержимого переменной это создание ссылки к нему (a=[0,1];at=a (at=shortcut), предположение основанно на наличии set,pushback..), если да то есть вопрос:при удалении всех путей не остаётся ли array ?

a=[1];at=a;systemchat str at;missionNamespace setVariable['a',nil];systemchat str at
/*
chat:
[1]
[1]
*/

можно

at deleterange[0,count at];missionnamespace setvariable['at',nil]

но не останется ли тогда в памяти [] просто без возможности до него добраться?


Edited by Ilias, 12 January 2017 - 04:26.

  • 0

#500 OFFLINE   vlad333000

vlad333000

    Полковник

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

Posted 12 January 2017 - 11:08

Ilias, во-первых, нет
Во-вторых, этого вам знать при использованию sqf не нужно
В-третьих, array это массив, который предназначен для хранения набора элементов, расположен в памяти последовательно, а вовсе не доя ссылания на переменную или что-либо другое. Да массив передается по ссылке, но лишь потому что значение этого массива может занимать много места и для удобства операций с массивами, что бы не плодить сотни копий массива

Edited by vlad333000, 12 January 2017 - 11:08.

  • 0




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