Jump to content


Photo

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

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

  • Please log in to reply
1486 replies to this topic

#1261 OFFLINE   Ego_Brain

Ego_Brain

    Ефрейтор

  • Пользователи
  • 49 posts
  • Откуда:Холмск

Posted 20 June 2018 - 03:51

По сути, вам просто пытались донести, что бы научиться или понять, как решается или реализуется нечто, совсем не обязательно для этого рестартить по 100 раз вашу Убер модификацию.

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

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

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


  • 0

#1262 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Posted 20 June 2018 - 04:07


Убер админки с перекомпиляцией любого скрипта тоже не существует

Админок всего 3(из тех что я знаю)

самая распостраненная - инфистар. В котором такая возможность есть(уже давненько).

Остальные две - переехали еще из А2. - Да в них нет по стандарту - дописать не проблема.

Собственные админки почти всегда имеют такой функционал.

И да - любой скрипт можно перекомпилить на лету, даже цикличный, если необходимо отлаживать и перезапускать  цикл, то вместо условия while {true} do, можно использовать while {debug_0} do, а при перекомпиляции добавлять - debug_0 = false; sleep xxx(небольшое ожидание завершения цикла); debug_0 = true; ..... и далее перекомпилированный код.

 

P.S. нажаимал цитату из сообщения выше, а в имя почему то попал Стил))))))


Edited by NoNameUltima, 20 June 2018 - 04:09.

  • 0

#1263 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 20 June 2018 - 04:11

Я не особо вглядывался в куски кода выше. да его особо и не было.

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


 

 а в имя почему то попал Стил))))))

Потому что я Стил)


  • 0

#1264 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 20 June 2018 - 04:17

 

Логика выполняемая до вызова drawIcon что-то такое делает, в результате чего drawIcon выводит маркер не только на карте.

Не совсем конечно ясно, имеется ввиду, при сворачивании карты отрисовка остаётся?

Если да, так и должно быть, если продолжает исполнятся вызванная для отрисовки логика.

Просто нужно отслеживать события когда карта сворачивается, то и отрисовку прекращать.

 

Суть любого Draw, это наложить некое изображение по верх другого, и не важно в карту вы смотрите или в бинокль. Вся эта херня замешивается в один выходной кадр при рендере.


  • 0

#1265 OFFLINE   Ego_Brain

Ego_Brain

    Ефрейтор

  • Пользователи
  • 49 posts
  • Откуда:Холмск

Posted 20 June 2018 - 04:40

 

 

Логика выполняемая до вызова drawIcon что-то такое делает, в результате чего drawIcon выводит маркер не только на карте.

Не совсем конечно ясно, имеется ввиду, при сворачивании карты отрисовка остаётся?

Если да, так и должно быть, если продолжает исполнятся вызванная для отрисовки логика.

Просто нужно отслеживать события когда карта сворачивается, то и отрисовку прекращать.

 

Суть любого Draw, это наложить некое изображение по верх другого, и не важно в карту вы смотрите или в бинокль. Вся эта херня замешивается в один выходной кадр при рендере.

 

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


  • 0

#1266 OFFLINE   lopster102

lopster102

    Ст.сержант

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

Posted 20 June 2018 - 05:50

 

 

 

Логика выполняемая до вызова drawIcon что-то такое делает, в результате чего drawIcon выводит маркер не только на карте.


Edited by lopster102, 20 June 2018 - 13:44.

  • 0

#1267 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Posted 20 June 2018 - 06:08


карта была закрыта

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


Edited by NoNameUltima, 20 June 2018 - 06:08.

  • 0

#1268 OFFLINE   Ego_Brain

Ego_Brain

    Ефрейтор

  • Пользователи
  • 49 posts
  • Откуда:Холмск

Posted 20 June 2018 - 07:47

Если совсем туго с добавлением в админку пунктов рекомпиляции скриптов "на лету" - прикрепил ниже мод - дарю.

UltimateDebugger.

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

Нужно выявить какие лишние, какие работают в то время когда это уже не требуется и т.д.


  • 0

#1269 OFFLINE   lopster102

lopster102

    Ст.сержант

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

Posted 20 June 2018 - 08:47

 

Если совсем туго с добавлением в админку пунктов рекомпиляции скриптов "на лету" - прикрепил ниже мод - дарю.


Edited by lopster102, 20 June 2018 - 13:44.

  • 0

#1270 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Posted 20 June 2018 - 10:46


Было бы очень полезным,

Так флаг в руки.

То что я скинул это кусок который в целях эксперимента был написал 100 лет назад для участка админки.(Админка в видео показана). Затем на всякий случай подправлен и сохранен в виде мода.

Подключил, нажал F4, и отлаживай.

 


Так как спаунится блоков кода там очень много.

Если ты про спавн потоков содержащих бесконечные циклы, тогда - херово, что их много! Их от силы на пальцах должно быть, как в миссии, так и на сервере. Многое можно и в 1 поток запихать, пример я тут приводил

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

А если про обычный запуск чего то там, - ну так это нормально...


  • 0

#1271 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 20 June 2018 - 12:23

 

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

кстати эта тема реализована в арме по ванили.

в смысле запуск по таймеру


  • 0

#1272 OFFLINE   vlad333000

vlad333000

    Полковник

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

Posted 20 June 2018 - 12:28

 

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


кстати эта тема реализована в арме по ванили.
в смысле запуск по таймеру
Можно по подробнее? Я вкурсе только про sleep
  • 0

#1273 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 20 June 2018 - 12:54

Я видел функции в ванильном аддоне функций, это было давно, и мне не надо, поэтому точно путь уже не укажу)


А по теме последнего вопроса, вообще не пойму какие с этой банальщиной проблемы могут быть.

У меня это работает, и работает так как написано.

 

Attached File  _Test_DrawIcon.VR.7z   1.29KB   2 downloads


  • 0

#1274 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 20 June 2018 - 13:11

ГЫ)

Я всегда говорил, что аддоны армы это самый хороший по ней туториал.

На заметку.

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

 

Для понимания происходящих процессов.

На выходе вы получаете текстовый файл, формат которого описывает 3D модель, и который можно загнать в Обжект билдер. Понимайте это как тот же файл fbx, или object. Файл описывает сетку модели. Талантливым, я думаю не будет проблемой распарсить эти данные для изготовления натурально карты высот любого желаемого формата.

a3\functions_f\Map\fn_exportMapToBiTXT.sqf
Author: Karel Moricky

	Description:
	Export terrain height map to BiTXT (Universal Bistudio TXT) file, which can be imported to Object Builder.
	Output is copied to clipboard.

	Parameter(s):
		0 (Optional): NUMBER - object resolution, i.e, number of points per side (default: 64)
		1 (Optional): NUMBER - object size in metres (default: 10)
		2 (Optional): NUMBER - vertical coefficient. All Z coordinates will be multiplied by this number to highlight hills and mountains (default: 2)

	Returns:
	STRING - file output

Edited by SteelRat, 20 June 2018 - 13:27.

  • 0

#1275 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 20 June 2018 - 13:44

 

 

 

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

кстати эта тема реализована в арме по ванили.
в смысле запуск по таймеру
Можно по подробнее? Я вкурсе только про sleep

 

a3\functions_f\Misc\fn_runLater.sqf
a3\functions_f\Misc\fn_loop.sqf
/*
	Author: Nelson Duarte
	
	Description:
	Run some code later
	Delay can be in seconds, frames and/or custom condition
	Code and conditions are executed in non-schedule environment
	
	Parameters:
	_this select 0: Unique id
	_this select 1: Code/function that is executed later
	_this select 2: The timer value (can be in seconds or frames)
	_this select 3: The timer type, can be "seconds" or "frames"
	_this select 4: The custom condition, code is only executed if timer is validated and condition is met
	
	Returns:
	NOTHING
	
	Examples:
	["uniqueId", { hint str time; }, 5] call BIS_fnc_runLater; 						//Hints current game time in the next frame after 5 seconds have passed
	["uniqueId", { hint str time; }, 120, "frames"] call BIS_fnc_runLater; 					//Hints current game time in the next frame after 120 frames have passed
	["uniqueId", { hint str time; }, nil, nil, { !isNil { BIS_variable } }] call BIS_fnc_runLater; 		//Hints current game time in the next frame after BIS_variable is assigned
	["uniqueId", { hint str time; }, 5, "seconds", { !isNil { BIS_variable } }] call BIS_fnc_runLater; 	//Hints current game time in the next frame after 5 seconds have passed and BIS_variable is assigned
	["uniqueId", { hint str time; }] call BIS_fnc_runLater; 						//Hints current game time in the next frame
*/
/*
	Author: Nelson Duarte

	Description:
	Loop stacked code/function with timing and conditional control
	Code and conditions are executed in non-scheduled environment

	Parameters:
	_this select 0: Action
	_this select 1: Parameters

	Returns:
	NOTHING

	Examples:
	["initialize"] call BIS_fnc_loop; 										//Initializes game loop (not required if AUTO_INITIALIZE is set to true)
	["terminate"] call BIS_fnc_loop; 										//Terminates game loop
	["itemAdd", ["uniqueId", { hint str time; }, 5]] call BIS_fnc_loop; 						//Hints time every five seconds
	["itemAdd", ["uniqueId", { hint str time; }, 120, "frames"]] call BIS_fnc_loop; 				//Hints time every 120 frames
	["itemAdd", ["uniqueId", { hint str time; }, nil, nil, { !isNil { BIS_variable } }]] call BIS_fnc_loop; 	//Hints time every frame after BIS_variable is assigned
	["itemAdd", ["uniqueId", { hint str time; }, 5, "seconds", { !isNil { BIS_variable } }]] call BIS_fnc_loop; 	//Hints time every five seconds after BIS_variable is assigned
	["itemAdd", ["uniqueId", { hint str time; }]] call BIS_fnc_loop; 						//Hints time every frame
	["itemRemove", ["uniqueId"]] call BIS_fnc_loop; 								//Remove item from loop with id "uniqueId"
*/

  • 0

#1276 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Posted 20 June 2018 - 14:09


кстати эта тема реализована в арме по ванили.

Ага, но только для А3, для А2 нема_) не кроссплатформенно_))))

Вообще богемия 3.14здец как делает патчи, могли бы команды и в А2 добавлять. Ну чеж - вечная альфа-бета....)))

Добавляют все что не попадя, а то, что просят игнорируют. Уже вроде и в скайпе даже просили добавить в publicVariableClient константой первый аргумент - IP+Port, или UID того кто отправил, - все как об стену.


  • 0

#1277 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 20 June 2018 - 14:46

В таких случаях стоит поступать креативно), брать то что нужно в арме3, и нет в арме2, и переносить, ну то что можно перенести предоставленными возможностями.

Просто я хочу сказать, что не стоит лениться искать ответы и решения в первую очередь в самой арме, говна в ней накидано всякого за глаза).


Edited by SteelRat, 20 June 2018 - 14:47.

  • 0

#1278 OFFLINE   vlad333000

vlad333000

    Полковник

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

Posted 20 June 2018 - 15:30

IP+Port

Никогда не добавят, хз даже где вам это может пригодиться в SQF

UID того кто отправил

Не благодарите:
myVar = [getPlayerUID player, <value>];
publicVariable "myVar";
"myVar" addPublicVariableEventHandler {
    params ["_name", "_value"];
    _value params ["_from", "_value"];
};
А вообще лучше используйте remoteExec куда более гибкая штука, и имеет то что вам нужно

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


но только для А3, для А2 нема_) не кроссплатформенно

Потому что это не две разные платформы, а одна и та же просто в разных версиях. Считайте так: при переходе с Arma 2 на Arma 3 платформа поменяла версию с 2.0 на 3.0, а как всем известно мажорные версии не обязательно должны быть совместимы и уж тем более иметь forward совместимость
У вас же не возникает вопросов когда игра например работает на PS4, а на PS3 - нет, или приложение под Win10 не работает в WinXP

Edited by vlad333000, 20 June 2018 - 15:53.

  • 0

#1279 OFFLINE   NoNameUltima

NoNameUltima

    Сержант

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

Posted 20 June 2018 - 15:59


Не благодарите:

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

Так надеюсь понятно?)



У вас же не возникает вопросов

Возникает и много много.

Особенно интересные вопросы и возникают когда требуют DirectX и обновить видеокарту_)

Однако если посмотреть в сторону OpenGL то почему то обновлений видеокарты не требуется.

Да и тут вопрос то не в совместимости, а в том что один продукт не выйдя с беты, ушел в аут, и вышел другой. Однако имея одинаковую структуру и => возможность параллельно обновлять продукты, этого не происходит. А жаль.

P.S. Приставки сравнивать не совсем корректно)))


  • 0

#1280 OFFLINE   SteelRat

SteelRat

    Полковник

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

Posted 20 June 2018 - 16:56

Сам подумай, какая бесам маржа серьёзно обновлять арму 2, если они хотят серьёзно продавать арма3, это только бизнес, ни чего личного.

А вот то что на новом DirectX не поедешь на старой карте, это уже подвох то по серьёзней), но и тут всё ясно как божий день, все хотят кушать, 3 раза в день, а лучше весь день, так что и здесь, только бизнес.


  • 0




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