Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Need help?

    Create a topic in the appropriate section
    Don't write everything in the chat!
  • Take a look at the marketplace

    There you can buy
    everything related to game servers
  • Don't want a ban?

    Please read our rules
    Don't disturb the order!
  • Sell or buy?

    Use services of the guarantor
    We will make your deal safe
vitacite

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

Recommended Posts

Вы наверное встречались с 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 эта миссия для теста. Думаю убрать комментарии вы догадаетесь сами.

Share this post


Link to post
Share on other sites



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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

@JurassicArma;@Epoch;

Share this post


Link to post
Share on other sites

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

Edited by ATOM89 (see edit history)

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Nice вещица  :laugh: 

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

 

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. На сервере есть трейдер зоны и базы игроков. 
      Если в течение определённого времени, на пример 1 - 2 часа с машиной не кто не взаимодействует и машина не находится в зоне трейдера или на теретории базы, то машина отлетает в гараж или на штраф стоянку.
      На сервере используется TraderPlus.
       
      Есть такие решения у кого?
      За ранние благодарю.
    • By Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. Нужно сделать так, что бы на всей карте был запрет на строительство. 
      Если нужно построить например базу с палатками, то нужно установить верстак или флаг, который установит зону для строительства с радиусом примерно 20-25 метров от центра и желательно что бы зона была квадратной.
      Есть такие решения у кого?
      За ранние благодарю.
    • By BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • By CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
    • By 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
       
      Возможно имеются и другие методы и наработки в получении данных идентификаторов более простыми методами, на других языках, либо автоматически. Я описал лишь известные мне.
      Все желающие могут добавить в комментариях свои способы конвертаций, возможно это поможет кому-либо.
  • Our picks

×
×
  • Create New...

Important Information

By using this site, you automaticly agree to our Guidelines and Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.