Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
vitacite

Рапторизация эпоча на основе миссий @SEM + @JurasicArma

Рекомендованные сообщения

Вы наверное встречались с Jurasic Park на Армаголике....

http://www.armaholic.com/page.php?id=27163

И наверное многим не хватает антагонистов (всякого вида зомби) в эпоче. А существующие миссии приехать убить ботов очень однообразны...

Нет проблем.




1) Подцепляем сборку Jurasik Park к нашем серверу эпоча. Я думаю вы знаете как это делать.
Скопировать в папку с Arma3 папку из архива @JurassicArma, а затем вашем батнике прописать
-mod = @JurassicArma;@Epoch;@Epochive;
Теперь сервер будет загружаться уже с рапторами на борту.. Учтите, что все ваши игроки так же должны прописать у себя этот мод в клиенте и скопировать его к себе.

2) Ставим себе SEM мисии...
https://github.com/KiloSwiss/Simple-Epoch-Missions

Как их устанавливать я думаю вы догадаетесь прочитав прилагаемый к миссиям readme.

3) Начинаем препарацию миссий. С помощью pbo-managera распаковываем sem.pbo
в папке sem\scripts\ai

добавляем файл
 

fn_spawnRAI.sqf

со следующим содержимым

private["_pos","_cnt","_group","_unit","_wpn","_opt","_Umale","_Ufemale","_Uciv","_Ukart","_rifles","_riflesGL","_LMGs","_SMGs","_rifleOptics","_smgOptics","_Sniper","_loadoutsAssigned"];/*	File: ai.sqf	Author: drsubo	usage : [_uLoc] execVM		Update 25.04.2015	Re-written by olke aka vitacite*/_pos = _this select 0;_cnt = (if(count _this > 1)then[{(_this select 1) max 5},{7}]); //Unit Count (min 5 - default 7)_group = createGroup RESISTANCE;while{count (units _group) < _cnt}do{	_group createUnit ['RaptorAIF2_E', _pos, [], 10, 'NO_COLLIDE'];	sleep 0.1;};{_x call SEM_fnc_AIkilledEH;// _x call SEM_fnc_AIfiredEH;// _x call SEM_fnc_stripUnit;_x setVariable["LASTLOGOUT_EPOCH",99999999];}count units _group;if(SEM_AIdisableSniperDamage)then{	units _group call SEM_fnc_broadcastAI;};diag_log format["#SEM: Spawned %1 units at position %2", count units _group, _pos];//Special Hunter (leader)_unit = units _group select 0;_unit setSkill 0.7;//Sniper_unit = units _group select 1;_unit setSkill 0.8;//Rifleman_unit = units _group select 2;_unit setSkill 0.6;{_x setskill ["courage",1]}count (units _group);_group allowFleeing 0;_group selectLeader (units _group select 0);_group

Это AI для рапторов.
Теперь создаем миссию...

SEM/missionsStatic/bRaptor.sqf
private["_pos","_timeout","_cleanup","_missionID","_missionType","_missionObjects","_group","_composition","_compositions","_compositionObjects","_hintString","_start","_units","_endCondition"];/*	Based Of drsubo Mission Scripts	File: bRapter.sqf	Author: Cammygames, drsubo	Edited by Olke*/_pos = _this select 0;_name = _this select 1 select 1;_timeout = _this select 1 select 2; //Mission timeout_missionID = _this select 2;_missionType = _this select 3;_missionObjects = [];//--_group = [_pos,(12+(random 3))] call SEM_fnc_spawnRAI;{_missionObjects pushBack _x}forEach units _group;//[_group, _pos] call SEM_fnc_AIdefend;[_group, _pos] call SEM_fnc_AImove;//[_group, _pos] spawn SEM_fnc_AIsetOwner;_hintString = "<t align='center' size='2.0' color='#f29420'>ЗАДАНИЕ:<br/>Аномальная биология</t><br/><t size='1.25' color='#ffff00'>______________<br/><br/>Пространственно временной континум пробит!<br/>В наш мир проникли твари из прошлого, необходимо уничтожить их, до того, как они натворят что-нибудь.";SEM_globalHint = [0,_hintString]; publicVariable "SEM_globalHint";	/* Mission End Conditions */_start = time;_units = units _group;waitUntil{	sleep 5;	_endCondition = [_pos,_units,_start,_timeout,_missionID]call SEM_fnc_endCondition;	(_endCondition > 0)};SEM_globalMissionMarker = [false,_endCondition,_missionID,_missionType];publicVariable "SEM_globalMissionMarker";	/* Let clients delete the Marker *//*localhost*/if(!isDedicated)then{SEM_globalMissionMarker call SEM_client_createMissionMarker};if(_endCondition == 3)then[{ //Win!	if(SEM_MissionCleanup > 0)then{[_pos, _missionObjects] call SEM_fnc_missionCleanup};	_hintString = "<t align='center' size='2.0' color='#6bab3a'>ЗАДАНИЕ ВЫПОЛНЕНО:<br/>	<t size='1.25' color='#ffff00'>______________<br/><br/>Все твари из прошлого уничтожены";	SEM_globalHint = [_endCondition,_hintString]; publicVariable "SEM_globalHint";},{	// 1 or 2 = Fail	{deleteVehicle _x; sleep .1}forEach _missionObjects;	_hintString = "<t align='center' size='2.0' color='#ab2121'>ЗАДАНИЕ ПРОВАЛЕНО:</t>";	SEM_globalHint = [_endCondition,_hintString]; publicVariable "SEM_globalHint";}];deleteGroup _group;

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

["bRaptor",	"Аномальная активность",		45,	100,	1,	false],

sem_config.sqf
/*	SEM - "Simple Epoch Missions" configuration file	Update 18.02.2015	By KiloSwiss*/	/* Mission start/timer settings */SEM_MinPlayerStatic = 1;	// Minimum number of online players for basic missions to spawn.SEM_MinPlayerDynamic = 1; 	// Minimum number of online players for additional/parallel running missions.SEM_MissionTimerMin = 10;	// Minimum minutes between missions.SEM_MissionTimerMax = 15;	// Maximum minutes between missions.	/* Reward/punish settings */SEM_reward_AIkill = true;	// Defines if players get some Krypto as reward for each AI they kill.SEM_punish_AIroadkill = true;	// Defines if players should be punished for killing AI units by driving them over with cars.SEM_damage_AIroadkill = true;	// Defines if the players car should be damaged when driving over an AI unit.SEM_Krypto_AIroadkill = 150;	// How much Krypto will be removed by punishing players for AI roadkills.	/* Advanced mission settings */// Minutes after a finished mission where all mission objects (including AI) will be deleted.SEM_MissionCleanup = -1;	// 0 or -1 equals never.	// Allow captured Vehicles do be permanent (saved to Database).SEM_permanentVehicles = true;	// true or false// Chance of AI dropping their guns and keeping their gear (vests, backpacks and magazines) when killed.SEM_AIdropGearChance = 40;		//	Values: 0-100%	Where 0 means all gear gets removed from dead AI units.// Disable Damage over a specific distance so players can't snipe the mission AI from safe distance.SEM_AIdisableSniperDamage = true;	// Set to false to allow sniper damage from any distance.SEM_AIsniperDamageDistance = 600;	// Max. distance (in meters) where AI takes damage (min. 300 -  max. 1000).	/* ################# */			/* ################# */			/* ################# */	/* Advanced settings */			/* Advanced settings */			/* Advanced settings */	/* ################# */			/* ################# */			/* ################# */SEM_removeWeaponsFromDeadAI = [];	// Weapons that should be removed from killed AISEM_removeMagazinesFromDeadAI = [];	// Magazines that should be removed from killed AI//Marker Names where mission spawning is blocked.SEM_blockMarker = ["respawn_west"];	/* Static Missions */SEM_staticMissionsPath = "sem\missionsStatic\";SEM_staticMissions = [	["bRaptor",	"Аномальная активность",		45,	100,	1,	false],//	["bPlaneCrash",		"Plane Crashsite",	45,	90,		2,	false],//	["bHeliCrash",		"Heli Crashsite",	45,	85,		2,	false],//	["bCamp",			"Bandit Camp",		90,	80,		3,	false],//	["bDevice",			"Strange Device",	45,	75,		0,	false],	/* example */	["file name",		"marker name",		-1,	-1,		5,	false]	//NO COMMA AT THE LAST LINE!/*	 1.					2.					3.	4.		5.	6.	1. "file name"  	MUST be equal to the sqf file name!	2. "marker name" 	Name of the mission marker.	3. time out,		(Number) Minutes until running mission times out (0 or -1 equals no mission time out).	4. probability		(Number) Percentage of probability how often a mission will spawn: 1 - 100 (0 and -1 equals OFF).	5. danger level		(Number) Color for the mission marker (0=white, 1=yellow, 2=orange, 3=red, 4=violet, 5=black)	6. static/dynamic	Use dynamic (true) for convoys and static (false) for stationary missions.*/];	/* Dynamic Missions */SEM_dynamicMissionsPath = "sem\missionsDynamic\";SEM_dynamicMissions = [	["convoySupply",	"Supply Convoy",	90,	100,	0,	true],	["convoyRepair",	"Repair Convoy",	90,	80,		1,	true],	["convoyStrider",	"Strider Convoy",	90,	80,		2,	true],	["convoyWeapon",	"Weapon Convoy",	90,	100,	3,	true]	//NO COMMA AT THE LAST LINE!/*	 1.					2.					3.	4.		5.	6.	1. "file name"  	MUST be equal to the sqf file name!	2. "marker name" 	Name of the mission marker.	3. time out,		(Number) Minutes until running mission times out (0 or -1 equals no mission time out).	4. probability		(Number) Percentage of probability how often a mission will spawn: 1 - 100 (0 and -1 equals OFF).	5. danger level		(Number) Colour for the mission marker (0=white, 1=yellow, 2=orange, 3=red, 4=violet, 5=black)	6. static/dynamic	Use dynamic (true) for convoys and static (false) for stationary missions.*/];SEM_debug = "log"; // Valid values: "off", "log" and "full" or 0, 1 and 2./*Debug settings explained:	0 or "off"	= Debug is off		- This is the default setting.		1 or "log"	= Only additional logging is active.		- For debugging and proper error reports, please activate this!		- Any RPT submitted for bug reports with debug off will be ignored!	2 or "full"	= Many settings are changed + additional logging is active.		- Missions time out after 10min.		- Minimum players is set to 0 (for both static and dynamic missions).		- Time between missions is 30sec.		- Mission clean up happens after 2min.		- AI only takes damage from below 100m.		- More events and additional data is logged to the .rpt.*//* DO NOT EDIT BELOW THIS LINE *//**/SEM_config_loaded = true;/**/

Собственно все.. В конфиге запускается только 1 эта миссия для теста. Думаю убрать комментарии вы догадаетесь сами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах



Ха, вот это улыбнул, нехилая замена зомби, но бегают шустро, +

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Они и дамаджат шустро. Если в плотную подбежали - кранты. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как подцеплять мод игрокам. Скачивают мод по ссылке выше с армаголика (всео 30+ мб) копируют в папку  с Arma3. Затем указывают мод стандартном лаунчере арма 3 вместе с @Epoch результатом должно быть что-то вроде...

 

@JurassicArma;@Epoch;

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

VITACITE Будь другом,подскажи в чем может быть проблема все сделал как написано тобой выше,миссия работает динозавров нет.@JurassicArma добавил и в серверную часть и в клиентскую,динозавров нет.SEM версия 0.8.3

Изменено пользователем ATOM89 (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проверь все я выложил листинг свои файлов от сервера. У меня все пашет. Однако с динозаврами есть одна непонятка. При одинаковом названии архива.  Я нашел два разных названия модели в разных архивах. 

Сделай так. Запусти редактор с подцепленным модом. Поставь туда юнит и выбери ему из мода про динозавров (там будет такой желтый глаз в списке за любую фракцию) Only AI use модель. Сохрани как mp миссию. Открой ее нотепадом и увидишь название  AI для миссии.  Его то и надо вставить в SEM RAI. После этого должно все появится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Nice вещица  :laugh: 
Это уже нечто похуже конца света. Это уже не зомби-апокалипсис, а зомбо-динозавро-калипсис  :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Nice вещица  :laugh: 

Это уже нечто похуже конца света. Это уже не зомби-апокалипсис, а зомбо-динозавро-калипсис  :biggrin:

Я поставил зомбей на арму 3 эпоч черно, и народ завыл, я даже не представляю что будет если это поставить  :surprised:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я поставил зомбей на арму 3 эпоч черно, и народ завыл, я даже не представляю что будет если это поставить  :surprised:

Стоп. То есть Эпоха на А3 без зомби? А в чём прикол?  :wacko:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Стоп. То есть Эпоха на А3 без зомби? А в чём прикол?  :wacko:

Таковых зомбей нет, то что мы привыкли в арме 2, тут только два вида зомби, безрукий шахид и черт в балаховке, появляется только ночью

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прикол в том, что эпоч ушел от темы зомби. Теперь это остров на котором выживают клоны. После смерти, ты можешь вновь клонироваться в клонилке (большой белый куб) стоимость стандартно 100 крипто, которые снимаются за смерть. Что есть безрукие подрывники (их теперь два типа) и чуваки в балахоне - вообще непонятно.  Но это не зомби в обычном понимании. Т.е. эпоч - это эпоч, а не дейз. Почему они так решили ? Видимо желание участвовать в конкурсе на 500к зелени Make Arma not War. 

Мод должен был быть оригинальным :)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все за баблом гонятся же  :smile: Хотя если цена вопроса 500к зелёных, то я их понимаю. У них есть все шансы  :geek:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну насколько я помню там все поделили:) http://makearmanotwar.com/winners Больше всех получил RHS = 200000, хорошо дали за Борнхолм 30к... 50к получил Саматра за King of heal и тд и тп... 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет Всем!!! А как сделать чтобы это работало как с ботами, то есть в лесах в городах они были, а не как миссии.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет Всем!!! А как сделать чтобы это работало как с ботами, то есть в лесах в городах они были, а не как миссии.

 

Как вариант через mission.sqm в папке с миссией, дописать дополнительные объекты - рапторы. (в паке есть рапторы с AI и без AI) так вот надо будет брать именно с AI. 

Если хочешь чтобы всплывало сообщение или например на карте стояли маркеры можно в том же файле создать дополнительные сенсоры и маркеры. Лично я так сначала и делал :) 

 

Я поставил зомбей на арму 3 эпоч черно, и народ завыл, я даже не представляю что будет если это поставить  :surprised:

 

У меня на обычных ботов ноют.  Мол как же так их убивают на миссии, вот раньше давили техникой - вот это была тема... Вообщем угодить всем не получится.

Касательно рапторов. Чтобы завалить 5-6 рапторов которые тебя окружили, надо быть чертовски ловким парнем. На них показана групповая охота на технике. При этом надо что-то бронированное обычный джип разбирают :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Похожие публикации

    • Автор: BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • Автор: CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
    • Автор: 123new
      Вижу крайне много любопытных вопросов по поводу идентификаторов игрока в игре. Что же, разжую для не знающих немного.
       
      В игре есть следующие типы идентификаторов:
      1. Steam64ID идентификатор профиля игрока (на пиратках его UID называют), примерно такой: 765475....65 (17 цифр).
      2. Так называемый мною, BIS ID - uid из окна (консоли) сервера игры и ADM-файлов логов сервера, который пишется самой игрой
      3. Battleye GUID игрока.
       
      Первый идентификатор (Steam64ID) на ПК является прямым идентификатором стим-профиля игрока, уникальным у каждого игрока. Т.е. публичным идентификатором вашего профиля для большинства стим-игр (например, Counter-Strike).
      Второй идентификатор (BIS ID) является определенной хеш-суммой, полученной из Steam64ID посредством конвертации сначала в sha256, а затем в base64. Спасибо за это разъяснение и пример кода-конвертации авторам игры на своем официальном форуме.
      Третий идентификатор (Battleye GUID) является публичным идентификатором Battleye античита, получаемый также из Steam64ID поcредством получения его хеш-суммы MD5. Этот же идентификатор есть в логах сервера от Battleye, в любых RCON-приложениях (DART, BEC и т.п.), также его можно конвертировать самим.
       
      Так вот, как же получить Steam64ID:
      1. Зайти на любой ресурс, предназначенный для сбора таких данных. например на: https://steamid.io/
      2. Ввести ссылку на ваш стим-профиль
      3. Получить результат из кучи данных, одно поле из которых и будет содержать ваш Steam64ID
       
      Как получить BIS ID:
      1. Открыть любой Phyton v2.7 -конвертер в интернете, например: https://onecompiler.com/python2/3ycz55xew
      2. Ввести в него следующий код:
      # Hello World program in Python from hashlib import sha256 from base64 import b64encode def construct_bi_uid(steam_id): hashed = sha256() hashed.update(str(steam_id)) return b64encode(hashed.digest()) print construct_bi_uid(76514925976798981) 3. заменить 76514925976798981 на ваш Steam64ID
      4. Отправить код в исполнение, нажав Execute.
      5. Получить результат
       

      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
      [Альтернатива] Метод на основе PHP:
      <?php /** * This is how you get user id (bohemia id) like you see in .ADM files from steam id. */ $steam_id = "76514925976798981"; $user_id = base64url_encode(hash('sha256', $steam_id, true)); function base64url_encode($data) { $b64 = base64_encode($data); if ($b64 === false) { return false; } $url = strtr($b64, '+/', '-_'); return $url; } echo $user_id; [Альтернатива] Метод для javascript - node.js:
      var crypto = require('crypto'); var body = "76514925976798981"; var hash = crypto.createHash("sha256"); var hash_result = hash.update(body, 'utf8').digest('base64'); console.log(hash_result);  
      Как получить Battleye GUID:
      1. Открыть любой ресурс с готовой формой конвертирования, например:
      https://armstalker.com/guid/
      https://dayzrussia.com/f/index.php?pages/dayzguid/
      либо написать свою, на основе данных, предложенных на странице Github
      https://gist.github.com/chris579/53053b6d6438df9a9718c23c0d6bbd69
      Оставлю ниже код для Phyton:
      # Thanks to gunlinux import md5 steamid=76514925976798981 temp = "" for i in range(8): temp += chr((steamid & 0xFF)) steamid >>= 8 m = md5.new("BE"+temp) print m.hexdigest() Код для PHP:
      var crypto = require('crypto'); var body = "76514925976798981"; var hash = crypto.createHash("sha256"); var hash_result = hash.update(body, 'utf8').digest('base64'); console.log(hash_result); '2. Вставить в поле ввода UID(Steam64ID) ваш Steam64ID
      3. Нажать кнопку конвертирования или исполнить код, и получить в готовом виде Battleye GUID
       
      Возможно имеются и другие методы и наработки в получении данных идентификаторов более простыми методами, на других языках, либо автоматически. Я описал лишь известные мне.
      Все желающие могут добавить в комментариях свои способы конвертаций, возможно это поможет кому-либо.
    • Автор: 6agu
      Поставил
      Пожалуйста, Войдите или Зарегистрируйтесь, чтобы увидеть это: Вложение.
  • Наш выбор

×
×
  • Создать...

Важная информация

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