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

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

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

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

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

GREENZONE VER 0.3 + DONAT + обвязка

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

Это пунктирная линия.

  1. _title = "<t color='#ff0000' size='1.2' shadow='1' shadowColor='#000000' align='center'>ЦЕНТР ТЕХ.ОБСЛУЖИВАНИЯ:</t><br/><t color='#ffffff'>¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯<br/>";

Исправь ее кодировку в каждом файле: для авиации (devs_air.sqf) и для наземной техники (devs_land.sqf).

 

Спасибо братан лови +  :smile:

 

 

Обвязка для SAFEZONE с донатом. Конечный результат будет выглядеть так :

 

 

 

Что реализовано:

 

1) SAFEZONE без дамага.

2) Визуализация

3) Сообщение о вхождение - выхождении из SAFE ZONE

4) Для донаторов починка техники, заправка, перезарядка оружия в SAFEZONE.

5) Loadout на старте.

 

Итак:

Шаг №1:  модификация mission.sqf ищем следующий код:

		class Item99 {
			side = CIV;
			
			class Vehicles {
				items = 1;
				
				class Item0 {
					position[] = {23605.1, 3.19, 17998.1};
					azimut = 130.016;
					special = NONE;
					id = 99;
					side = CIV;
					vehicle = "VirtualMan_EPOCH";
					player = "PLAY CDG";
					leader = 1;
					skill = 0.6;
				};
			};
		};
	};

обратите внимание на последнюю 4-ю скобку закрывающую блок спавна!!! Если ее не поставить сервер работать не будет.

После этого блока вставляем следующее:

	//TODO Реализация возможностей для донаторов (начальный лут и станция тех обслуживания)
	class Vehicles
	{
		items=4;
		class Item0
		{
			position[]={23599.836,3.1900001,18000.484};
			azimut=153.62447;
			id=102;
			side="EMPTY";
			vehicle="O_supplyCrate_F";
			skill=0.60000002;
			init="clearMagazineCargoGlobal this;  clearWeaponCargoGlobal this;  clearItemCargoGlobal this; clearAllItemsFromBackpack this; clearBackpackCargoGlobal this; this addAction[""<t color='#D11313'>Экипировка</t>"", ""addons\loadoutfrombox.sqf""];";
		};
		class Item1
		{
			position[]={13279.555,2.4851172,14563.375};
			azimut=330;
			id=103;
			side="EMPTY";
			vehicle = "Land_CarService_F";
			skill = 0.6;
			init = "this addAction [""Тех.обслуживание"", ""addons\devs_land.sqf"", [5,1], 50, true, true, """", ""vehicle _this isKindOf 'LandVehicle'""];";
		};
		class Item2
		{
			position[]={13292.752,2.3035169,14549.961};
			azimut=140;
			id=104;
			side="EMPTY";
			vehicle="Land_MobileLandingPlatform_01_F";
			skill=0.60000002;
		};
		class Item3
		{
			position[]={13286.655,2.2886071,14545.61};
			azimut=140;
			id=105;
			side="EMPTY";
			vehicle="Land_JetEngineStarter_01_F";
			init = "this addAction [""Heli-Service"", ""addons\devs_air.sqf"", [5,1], 50, true, true, """", ""vehicle _this isKindOf 'Air'""];";
			skill=0.60000002;
		};
	};
	class Sensors
	{
		items=3;
		class Item0
		{
			position[]={13330.902,2.2880001,14528.784};
			a=75;
			b=75;
			angle=-88.355904;
			activationBy="ANY";
			repeating=1;
			interruptable=1;
			type="SWITCH";
			age="UNKNOWN";
			expCond="this && (local player) && (vehicle player in thisList)";
			expActiv="hint parseText format[""<t align='center' size='1.8' color='#d8bc00'> ТОРГОВАЯ ЗОНА::</t><br/><t size='1.2' color='#ffffff'>¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯<br/>Любое насилие запрещено! <br/> За убийство или воровство в пределах круга <br/> последует немедленное наказание <br/>""];player allowDamage false;";
			expDesactiv="hint parseText format[""<t align='center' size='1.8' color='#ff0000'> ВНИМАНИЕ !</t><br/><t size='1.2' color='#ffffff'>¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯<br/>Вы покинули торговую зону <br/> Ваша жизнь находится в потенциальной опасности.  <br/>""]; player allowDamage true;";
			class Effects
			{
				soundDet="BattlefieldFirefight"; // play ambient sound
			};
		};
		class Item1
		{
			position[]={6195.0264,88.872307,16855.523};
			a=75;
			b=75;
			angle=-88.355904;
			activationBy="ANY";
			repeating=1;
			interruptable=1;
			type="SWITCH";
			age="UNKNOWN";
			expCond="this && (local player) && (vehicle player in thisList)";
			expActiv="hint parseText format[""<t align='center' size='1.8' color='#d8bc00'>ТОРГОВАЯ ЗОНА::</t><br/><t size='1.2' color='#ffffff'>¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯<br/>Любое насилие запрещено! <br/> За убийство или воровство в пределах круга <br/> последует немедленное наказание <br/>""];player allowDamage false;";
			expDesactiv="hint parseText format[""<t align='center' size='1.8' color='#ff0000'> ВНИМАНИЕ !</t><br/><t size='1.2' color='#ffffff'>¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯<br/>Вы покинули торговую зону <br/> Ваша жизнь находится в потенциальной опасности.  <br/>""]; player allowDamage true;";
			class Effects
			{
				soundDet="BattlefieldFirefight"; // play ambient sound
			};
		};
		class Item2
		{
			position[]={18474.422,24.701738,14291.331};
			a=75;
			b=75;
			angle=-88.355904;
			activationBy="ANY";
			repeating=1;
			interruptable=1;
			type="SWITCH";
			age="UNKNOWN";
			expCond="this && (local player) && (vehicle player in thisList)";
			expActiv="hint parseText format[""<t align='center' size='1.8' color='#d8bc00'>ТОРГОВАЯ ЗОНА::</t><br/><t size='1.2' color='#ffffff'>¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯<br/>Любое насилие запрещено! <br/> За убийство или воровство в пределах круга <br/> последует немедленное наказание <br/>""];player allowDamage false;";
			expDesactiv="hint parseText format[""<t align='center' size='1.8' color='#ff0000'> ВНИМАНИЕ !</t><br/><t size='1.2' color='#ffffff'>¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯<br/>Вы покинули торговую зону <br/> Ваша жизнь находится в потенциальной опасности.  <br/>""]; player allowDamage true;";
			class Effects
			{
				soundDet="BattlefieldFirefight"; // play ambient sound
			};
		};
	};

Не забудьте, что текст отображается на русском только в случае кодировки UTF 8///

Что сделано в данном блоке? в новом разделе Vehiсle добавлен в фабрике по клонированию Алтис объект O_supplyCrate_F который будет выдавать начальный лут для обычных игроков и для донаторов.

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

В разделе сенсоров прописаны звуки боя при нахождении в SAFEZONE, граница локаций визуализирована яркими утопленными в землю оранжевыми шарами (может меняться). Damage убран.

 

PS: помните что mission.sqf чувствителен к пробелам!! не допускайте лишнее редактируйте в notepad++ либо FAR чтобы контролировать правильность открытия закрытия скобок и знаков препинания.

 

Шаг № 2: Скрипт конфигурации

создаем в папке с миссией папку cfg, в этой папке создаем файл olkecfg.sqf

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//TODO:Файл конфигураций для S-PLATOON
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//TODO:Настройка SAFE ZONE
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//TODO: Дополненная реальность для Epoch, скрипт обозначения SAFE ZONE Включить выключить: USE_GREENZONE = true / false
USE_GREENZONE = true;
//TODO: Использовать или нет маркеры на карте SET_MARKER = true / false
SET_MARKER = true;
//TODO: SET_ZONECOORD =  координаты GREENZONE для AltisEpoch для других карт используйте свои формат [[_center],_radius,_name,_string,_lSign],[[_center],_radius,_name,_string,_lSign]];
SET_ZONECOORD =
[
	[[13325,14515,0],75, 'Center', true],  // Center GreenZone
	[[6192.46,16834,0],75, 'West', true],  // West GreenZone
	[[18451.9,14278.1,0],75, 'East', true] // East GreenZone
];

SET_SIGNS = 'Sign_Sphere200cm_F';

//TODO: Рисуем круг заполняем круг моделью виртуального указателя. Можно и не виртуального, со своей текстурой (пока в разработке) варианты указателя:

//TODO: Sign_Sphere200cm_F - большая оранжевая сфера
//TODO: Sign_Arrow_Green_F - большая зеленая стрела острием направленная вниз
//TODO: Sign_Arrow_Direction_Green_F - зеленая стрела направленная на центральную точку GREENZONE

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//TODO: Настройки для донаторов
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
SET_DONATOR = [
	'ID641','ID642','ID643'
];
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//TODO: Настройки рапторов в случае использования мода
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
rup_raptor_dam = 0.5;
rup_raptor_dam_AI = 0.4;
rup_raptor_dam_maul = 0.2;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//TODO: Настройка цветовой гаммы на сервере
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
"ColorCorrections" ppEffectEnable true;
"ColorCorrections" ppEffectAdjust [0.9, 0.9, 0, [0, 0.1, 0.25, -0.14], [1, 1, 1, 1.26], [0.15, 0.09, 0.09, 0.0]];
"ColorCorrections" ppEffectCommit 0;

PS: В массив SET_DONATORS вносим через запятую 64 битный STEAM ID, после последнего запятая не ставится!

 

TODO подкрашивает в FAR комментарии желтым. 

 

Шаг № 3. Идем в ваш init.sqf в корне с миссией и подключаем в нем наш olkecfg.sqf (если нет Init.sqf - надо его создать)

В саааамом верху пишем 

#include "cfg\olkecfg.sqf"

(внимание строка не закрыта ; т.к. после include она не закрывается)

 

Шаг № 4. Ставим донаторские объекты в центральной safezone

Создаем папку Addons в ней создаем два файла.  

mpmission/epoch.Altis/addons/devs_air.sqf
mpmission/epoch.Altis/addons/devs_land.sqf

 

devs_air.sqf

/*
Скрипт для донаторов. Обслуживание вертолетов
*/


private ["_user", "_veh", "_title", "_htext"];
    
_user = (_this select 1);
_veh = vehicle _user;
_title  = "<t color='#ff0000' size='1.2' shadow='1' shadowColor='#000000' align='center'>ЦЕНТР ТЕХ.ОБСЛУЖИВАНИЯ:</t><br/><t color='#ffffff'>¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯<br/>";

// if (getPlayerUID player in SET_DONATOR) then {
		if (EPOCH_playerCrypto >= 500) then {

            //--> text: welcome-messages    

			_htext   = "Обнаружен премиум аккаунт. Вам доступно обслуживание коптера. Внимание до завершение обслуживания не двигайтесь с места и не покидайте транспорт иначе деньги спишутся без оказания услуги.";
			hint parseText ( _title + _htext);
                        uisleep 5;
            //--> action: remove crypto
                       EPOCH_playerCrypto = EPOCH_playerCrypto - 500 ;
			_htext   = "Списание 500 Crypto со счета.";
			hint parseText ( _title + _htext);
                        uisleep 3;        
			_htext   = "Оперативный ремонт техники.";
			hint parseText ( _title + _htext);
                        _veh setDamage 0;
                        uisleep 3;
			_htext   = "Заливаем керосин. Не двигайтесь";
			hint parseText ( _title + _htext);
                        _veh setFuel 1;
                        uisleep 3;
			_htext   = "Еще немного.....";
			hint parseText ( _title + _htext);
                        uisleep 5;
			_htext   = "Перезаряжаем турели";
			hint parseText ( _title + _htext);
                        _veh setVehicleAmmo 1;
                        uisleep 0.1;
                        _veh setAmmoCargo 1;
                        uisleep 7;
			_htext   = "Ваша птичка готова лететь дальше.";
			hint parseText ( _title + _htext);

} else {    
			_htext   = "Недостаточно CRYPTO на вашем счете";
			hint parseText ( _title + _htext);
};

/* } else {    
            //--> text: only driver can do this
			_htext   = "Услуга доступна только премиум аккаунту";
			hint parseText ( _title + _htext);
};*/

и devs_land.sqf

/*
Скрипт для донаторов. Обслуживание техники.
*/

private ["_user", "_veh", "_title", "_htext"];
    
_user = (_this select 1);
_veh = vehicle _user;
_title  = "<t color='#ff0000' size='1.2' shadow='1' shadowColor='#000000' align='center'>ЦЕНТР ТЕХ.ОБСЛУЖИВАНИЯ:</t><br/><t color='#ffffff'>¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯<br/>";


if (! isnull (driver _veh))    then {                            
//	if (getPlayerUID player in SET_DONATOR) then {
		if (EPOCH_playerCrypto >= 500) then {


            //--> text: welcome-messages    

			_htext   = "Обнаружен премиум аккаунт. Вам доступно обслуживание техники. Внимание до завершение обслуживания не двигайтесь с места и не покидайте транспорт иначе деньги спишутся без оказания услуги.";
			hint parseText ( _title + _htext);
                        uisleep 10;
                        
            //--> action: remove crypto
                        EPOCH_playerCrypto = EPOCH_playerCrypto - 500 ;            
			_htext   = "Удерживается оплата да тех.обслуживание.";
			hint parseText ( _title + _htext);
                        uisleep 3;
            //--> action: repair vehicle                
                        _veh setDamage 0;
			_htext   = "Ремонт произведен в полном объеме.";
			hint parseText ( _title + _htext);
                        uisleep 3;
			_htext   = "Заливаем первоклассный бензин.";
			hint parseText ( _title + _htext);
                        uisleep 3;
            //--> action: refuel Vehicle
                        _veh setFuel 1;
			_htext   = "До полного.....";
			hint parseText ( _title + _htext);
            //--> action: ReAmmo Guns
			_htext   = "Смазываем пушки.";
			hint parseText ( _title + _htext);
            //--> action: move player to gunnerposition to rearm ALL magazines, otherwise only the actual magazine will be reloaded
                        player action ["moveToGunner", _veh];
                        uisleep 5;
			_htext   = "Перезарядка...";
			hint parseText ( _title + _htext);
                        _veh setVehicleAmmo 1;
                        uisleep 0.1;
                        _veh setAmmoCargo 1;
                        uisleep 0.1;
            //--> action: bring player back to driverposition
                        uisleep 0.1;
                        player action ["moveToDriver", _veh];
                        uisleep 5;
			_htext   = "Ваша машина, как новенькая. Можно ехать!!!";
			hint parseText ( _title + _htext);
} else {
            //--> text: not enough crypto    
			_htext   = "Недостаточно средств на счете..";
			hint parseText ( _title + _htext);
};
/*} else {    
            //--> text: only driver can do this
			_htext   = "Услуга доступна только премиум аккаунту";
			hint parseText ( _title + _htext);
};*/
} else {    
			_htext   = "Вы должны находиться за рулем и без пассажиров...";
			hint parseText ( _title + _htext);
};

оба скрипта взяты на форуме dayzepoch, перевод и доработка для доната - мой.

 

Шаг № 5. Создаем файл greenzone.sqf (визуализация safezone и маркеры)

mpmission/epoch.Altis/greenzone/greenzone.sqf

greenzone.sqf

if (isServer) exitWith 
{
	if (USE_GREENZONE) then // проверка, что используется оформление GREENZONE
	{
		{
			_center = _x select 0;
			_radius = _x select 1;
			_name = _x select 2;	
			_lsign = _x select 3;

			if (_lSign) then // проверка, что оформляем конкретную SAFEZONE (true/false в координатах)
			{
				for '_i' from 0 to 360 step (270 / _radius)*2 do
				{
					_location = [(_center select 0) + ((cos _i) * _radius), (_center select 1) + ((sin _i) * _radius),0];
					_dir = ((_center select 0) - (_location select 0)) atan2 ((_center select 1) - (_location select 1));
					_object = createVehicle [ SET_SIGNS , _location, [], 0, 'CAN_COLLIDE'];  // Изменяем модель указателя тут....
					_object setDir _dir;
				};

			if (SET_MARKER) then { // проверка, что наносим метки с SAFEZONE на карту

				_marker = createMarker [format["GreenZone:%1", _name], _center];
				_marker setMarkerShapeLocal "Icon";
				_marker setMarkerType "mil_circle";
//				_marker setMarkerType "selector_selectedMission";
				_marker setMarkerText " Безопасная торговая зона";
				_marker setMarkerColor "ColorGUER";
				_marker = createMarker [format["GreenZone1:%1", _name], _center];
				_marker setMarkerShapeLocal "ELLIPSE";
				_marker setMarkerTypeLocal  "Empty";
				_marker setMarkerColorLocal "ColorGUER";
				_marker setMarkerBrushLocal "Solid";
				_marker setMarkerSize [_radius, _radius];
			};
		};
	 } forEach SET_ZONECOORD ; 
    };                                                                                       
};

Шаг № 6. В уже созданной нами папке addons - создаем loadout для донаторов. loadoutfrombox.sqf

 

mpmission/epoch.Altis/addons/loadoutfrombox.sqf
if (getPlayerUID player in SET_DONATOR) then {
						hint "Выдан премиум набор";
						RemoveAllItems player;
					      	RemoveAllWeapons player;
						Removeallcontainers player;
						player addItem "NVGoggles";
						player addBackpack "B_BergenG";
						player addItem "H_Shemag_khk";
						player assignitem "H_Shemag_khk";
//						player addItem "NVGoggles";
//						player addMagazine "handgrenade";
//						player addMagazine "handgrenade";
//						player addMagazine "handgrenade";
						player addVest "V_Chestrig_rgr";
						player addWeapon "hgun_Pistol_heavy_01_F";
						player addMagazine "11Rnd_45ACP_Mag";
						player addMagazine "11Rnd_45ACP_Mag";
						player addWeapon "SMG_02_ACO_F";
						player selectWeapon "SMG_02_ACO_F";
						player addMagazine "30Rnd_9x21_Mag";
						player addMagazine "30Rnd_9x21_Mag";
						player addMagazine "30Rnd_9x21_Mag";
						player addWeapon "EpochRadio0";
						player addWeapon "ItemMap";
//						EPOCH_playerCrypto = 100;

						_modelMale = (typeOF player == "Epoch_Male_F");
						_modelFemale = (typeOF player == "Epoch_Female_F");

					if (_modelFemale) then
								{
								player forceAddUniform "U_BasicBodyFemale";
								};
					if (_modelMale) then
								{
								player forceAddUniform "U_OG_Guerilla2_1";
								};
					newPlayer = false;
				} else {
					hint "Выдан стандартный набор";
					RemoveAllItems player;
				      	RemoveAllWeapons player;
					Removeallcontainers player;
					player addWeapon "EpochRadio0";
					player addWeapon "ItemMap";
					player addWeapon "hgun_Pistol_heavy_01_F";
					player addMagazine "11Rnd_45ACP_Mag";
//					EPOCH_playerCrypto = 100;
				};
	};
};

Шаг № 7:

 

Подцепляем визуализацию greenzone из init.sqf  в саамом низу вашего init.sqf пишем

 

[] execVM "greenzone\greenzone.sqf";

 

Шаг № 8. 

Убираем дамаг в Safezone. Идем в файл Arma3/@epochhive/addons/server_settings.pbo. С помощью pbo манагера вскрываем содержимое. Находим файл 

/configs/maps/altis.h  и в нем ищем раздел связанный с трейдзонами ...  добавляем туда следующий код сразу после 

 

 

propsPos[] = {
 

 

 

	
//phones olke path
			{ "Land_PhoneBooth_02_F", { 13351, 14515.4, 0.0014267 }, 38.3472 },
			{ "Land_PhoneBooth_02_F", { 18467.5, 14263.8, 0.0297527 }, 38.3472 },
			{ "Land_PhoneBooth_02_F", { 6196.38, 16849.9, 0.00205231 }, 63.7064 },
//protection zone by olke central 3x3 25m radius circle
			{ "ProtectionZone_Invisible_F", { 13351.1, 14540.1, 0.0110912 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 13351.1, 14515.1, 0.0110912 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 13351.1, 14490.1, 0.0110912 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 13326.1, 14540.1, 0.0110912 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 13326.1, 14515.1, 0.0110912 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 13326.1, 14490.1, 0.0110912 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 13301.1, 14540.1, 0.0110912 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 13301.1, 14515.1, 0.0110912 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 13301.1, 14490.1, 0.0110912 }, 359.768 },
//protection zone by olke east 3x3 25m radius circle
			{ "ProtectionZone_Invisible_F", { 18492.5, 14288.8, 0.0297527 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 18492.5, 14263.8, 0.0297527 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 18492.5, 14238.8, 0.0297527 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 18467.5, 14288.8, 0.0297527 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 18467.5, 14263.8, 0.0297527 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 18467.5, 14238.8, 0.0297527 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 18442.5, 14288.8, 0.0297527 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 18442.5, 14263.8, 0.0297527 }, 359.768 },
			{ "ProtectionZone_Invisible_F", { 18442.5, 14238.8, 0.0297527 }, 359.768 },
//protection zone by olke west 3x3 25m radius circle
			{ "ProtectionZone_Invisible_F", { 6221.38, 16874.9, 0.00205231 }, 63.7064  },
			{ "ProtectionZone_Invisible_F", { 6221.38, 16849.9, 0.00205231 }, 63.7064  },
			{ "ProtectionZone_Invisible_F", { 6221.38, 16824.9, 0.00205231 }, 63.7064  },
			{ "ProtectionZone_Invisible_F", { 6196.38, 16874.9, 0.00205231 }, 63.7064  },
			{ "ProtectionZone_Invisible_F", { 6196.38, 16849.9, 0.00205231 }, 63.7064  },
			{ "ProtectionZone_Invisible_F", { 6196.38, 16824.9, 0.00205231 }, 63.7064  },
			{ "ProtectionZone_Invisible_F", { 6171.38, 16874.9, 0.00205231 }, 63.7064  },
			{ "ProtectionZone_Invisible_F", { 6171.38, 16849.9, 0.00205231 }, 63.7064  },
			{ "ProtectionZone_Invisible_F", { 6171.38, 16824.9, 0.00205231 }, 63.7064  },
 

Дабы адекватно добавились телефонные будки, чтобы можно было снимать деньги в торговой зоне непосредственно, комментируем следующие строки.

//116:			{ "ProtectionZone_Invisible_F", { 13344.1, 14483.7, 0.00191855 }, 359.768 },
//180:			{ "Land_ToiletBox_F", { 13351, 14515.4, 0.0014267 }, 38.3472 },
//283:			{ "Oil_Spill_F", { 18467.5, 14263.8, 0.0297527 }, 0.257763 },

 

Взято с работающего сервера. Видео, как это все выглядит будет чуть позже.

 

PS: переменная SET_DONATOR - (как и остальные в olkecfg.sqf) являются глобальными. Т.е. вы можете вызывать их из других своих скриптов. 

 

 

Вопрос, как сделать так, что бы игроки на спавне не смогли 2ой рас взять снаряжение, только после смерти? Я проверил на себе когда появляешься в коробке, берешь снаряжение потом выкладываешь его и берешь еще и еще и так можно делать до опупения :(  типа  не предусматривал автор видать 

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

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


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

Спасибо братан лови +  :smile:

 

 

Вопрос, как сделать так, что бы игроки на спавне не смогли 2ой рас взять снаряжение, только после смерти? Я проверил на себе когда появляешься в коробке, берешь снаряжение потом выкладываешь его и берешь еще и еще и так можно делать до опупения :(  типа  не предусматривал автор видать 

у меня к этому скрипту прикручено player setPos [координаты куда игрок будет телепортирован]

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


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

пример:

 

if (getPlayerUID player in ["765612002332хххххх"]) then {
removeHeadgear player:
removeGoggles player;
removeVest player;
removeBackpack player;
removeUniform player;
removeAllWeapons player:
removeAllAssignedItems player;
player addWeapon "srifle_DMR_04_NS_LP_F";
player addWeapon "ItemMap";
player addWeapon "ItemGPS";
player addWeapon "ItemCompass";
player addWeapon "Rangefinder";
player addVest "V_24_EPOCH";
player addBackpack "B_Carryall_oli";
player addItemToBackpack "srifle_DMR_05_hex_F";
player addItemToBackpack "optic_AMS_khk";
player addItemToBackpack "H_69_EPOCH";
player addItemToBackpack "bipod_03_F_oli";
player addItemToBackpack "10Rnd_127x54_Mag";
player addItemToBackpack "10Rnd_127x54_Mag";
player addItemToBackpack "10Rnd_127x54_Mag";
player addItemToBackpack "10Rnd_127x54_Mag";
player addItemToBackpack "10Rnd_127x54_Mag";
player addItemToBackpack "10Rnd_93x64_DMR_05_Mag";
player addItemToBackpack "10Rnd_93x64_DMR_05_Mag";
player addItemToBackpack "10Rnd_93x64_DMR_05_Mag";
player addItemToBackpack "10Rnd_93x64_DMR_05_Mag";
player addItemToBackpack "10Rnd_93x64_DMR_05_Mag";
player addItemToBackpack "FAK";
player forceAddUniform "U_O_GhillieSuit";
hint "Loadout Supplied";
player setPos [13085.4,16132.4,5.2]
};

 

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


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

А как зоны без дамага через редактор поставить например на чернарусь карту? буду очень благодарен 

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


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

А как игрокам делать статус донатеров??? Как я понял где-то надо прописывать их UIDы... но где?

UPD: Всё вижу где их прописывать... 

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

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

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


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

все супер, спасибо!

но есть одно "но"! после добавления в мой init.sqf в самое начало строки #include "cfg\olkecfg.sqf" перестают выполнятся остальные строки.... как быть?   

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


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

пардоньте, нашел косяк, случайно в коде поставил лишний символ!

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


Ссылка на сообщение
Поделиться на других сайтах
22:54:11 : Script Log: #0 xxrazorxx (004cbffdacad29634b8b887545140fb1) - #38 "teMarker [format["Gree

nZone:%1", _name], _center];

_marker setMarkerShapeLocal "Icon";

_marker setMarkerType "mil_circle";

 

_mar"

22:54:11 : Player #0 xxrazorxx (004cbffdacad29634b8b887545140fb1) has been kicked by BattlEye: Scrip

t Restriction #38

 

добавь BE фильтры не все знают как исправить

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


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

 

22:54:11 : Script Log: #0 xxrazorxx (004cbffdacad29634b8b887545140fb1) - #38 "teMarker [format["Gree
nZone:%1", _name], _center];
_marker setMarkerShapeLocal "Icon";
_marker setMarkerType "mil_circle";
 
_mar"
22:54:11 : Player #0 xxrazorxx (004cbffdacad29634b8b887545140fb1) has been kicked by BattlEye: Scrip
t Restriction #38
 
добавь BE фильтры не все знают как исправить

Достаточно прочитать...

http://s-platoon.ru/index.php?/topic/2183-nastroika-filtrov-battleye-pod-sobstvennye-nuzhdy/

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


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

я так понял, в этих сейфзонах просто не летают пули, а урон от ударов все же есть! у меня установлен скрипт зомби и они мочат игроков, включая админов с год-модом в этих зонах, не подскажете, как убрать этот урон?

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


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

я так понял, в этих сейфзонах просто не летают пули, а урон от ударов все же есть! у меня установлен скрипт зомби и они мочат игроков, включая админов с год-модом в этих зонах, не подскажете, как убрать этот урон?

а почему бы не поставить сейф зоны от инфистара там зомби удаляются и стрелять в ней нельзя 

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


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

а почему бы не поставить сейф зоны от инфистара там зомби удаляются и стрелять в ней нельзя 

нет у меня инфистара)) но чувствуется, все идет к тому, что поставлю)) где взять хорошую бесплатную версию?

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


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

Почему работают только 3 сенсора сейфзоны? А если я допустим хочу сделать четыре? Добавляю новый сенсор, но работают только первые три((

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


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

Добрый день! 

Вопрос к автору, а для Exile Mod можно сделать такие зоны? 

А то мне например не очень нравятся оригинальные Ваши лучше!



нет у меня инфистара)) но чувствуется, все идет к тому, что поставлю)) где взять хорошую бесплатную версию?

Только купить на офф сайте не пожалеете 

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


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

Суппер. Все работает на ура. игроки довольны. Вот толькр подскажите как увеличить зону без домага и стрельбы? Ткните пальцем где и как изменить. Зарание спасибо.

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


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

На версии армы 1.50 зона работала на все 75м - пули не летали, взрывы не наносили урона.... А как перешли на версию 1.52 почему-то при выходи из зоны самих торговцев (около 8м радиус) дальше пули летают и взрывы задевают технику... но у игроков всё еще бессмертие от пуль есть... Как вернуть чтоб во всей зоне не проходил дамаг даже по технике???

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


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

а почему бы не поставить сейф зоны от инфистара там зомби удаляются и стрелять в ней нельзя 

Имееться инфистар последней версии. где мне можно настроить сейфзоны, ткните пальцем пожалйста)))

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


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

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

Все сделал по приложенной инструкции, но результат меня не удовлетворил: 

-зона маркеров и момент появления сообщения о входе/выходе не совпадали

- в безопасной зоне были места, где игрока убивали и боты, и другие игроки.

Про дамаг техники ничего не могу сказать.

Начал разбираться.

Сначала совместил границы зоны безопасности и момент вывода сообщений. Для этого прописал одинаковые координаты в файлах  mission.sqm и olkecfg.sqf. За основу взял координаты сенсоров, которые добавляем в файл mission.sqm. (Нужно отметить, что координаты по шкалам абсцисс (0х), ординат (0у) и высоты (0z) в файлах идут в разных последовательностях). После данной процедуры сообщения о входе/выходе стали работать как часы. 

Дальше стал разбираться с зонами без дамага. В предложенной версии вот что получалось:

2015113000_1838163_19696787.jpg - Центральный трейд
2015113000_6958501_19696790.jpg - Восточный трейд
2015113000_4074745_19696791.jpg - Западный трейд
Понятно, что при такой компоновке в зоне были "дыры". 
В предлагаемом мной варианте гарантированная зона без дамага составляет 90 метров. (Зону маркеров с 75 метров  до 90 изменять в файлах mission.sqm и olkecfg.sqf)
Вот что получилось у меня:
2015113000_6963927_19696792.jpg - Центральный трейд
2015113000_5883354_19696793.jpg - Восточный трейд
2015113000_3082086_19696794.jpg - Западный трейд
Понятно, что зона будет невидимой. Видимость я включил для наглядности примеров.
Предлагаю файл с расчетами в Exel. В данном файле есть схема расположения зон (ProtectionZone_Invisible_F). Зоны пронумерованы. Чтобы выполнить расчеты, необходимо ввести координаты центра зоны (то, что мы писАли в классе Sensors файла mission.sqm) в соответствующие поля и забрать координаты в таблице слева.
 

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


Ссылка на сообщение
Поделиться на других сайтах
Супер, всё работает как надо!  Но теперь возникла проблема - люди дюпают свои экипировки - умерают и опять берут набор в ящике.

Подскажите какое-нибудь решение - может удалять как-то трупы или запретить их лутать (именно с донатским лутом) или как-нибудь ввести таймаут на взятие экипировки из ящика? (хотя этот вариант не желателен)

Слышал, что уже существуют готовые решения по быстрому удалению или запрету лутания трупов донатеров... Не подскажете?

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

    • Автор: Makliion
      Всем добрый вечер..
      У меня такой вопрос где найти или заказать скрипт для обыска зомбей & игроков 
      что-бы каждую вещь снимать через действие а не тупо через таб
      Шлем отдельно
      Рюкзак отдельно
      ну и на все остальные слоты
      искал долго не нашёл ничего
      есть мод на обыск но он просто открывает  инвентарь и все 
       
    • Автор: Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. На сервере есть трейдер зоны и базы игроков. 
      Если в течение определённого времени, на пример 1 - 2 часа с машиной не кто не взаимодействует и машина не находится в зоне трейдера или на теретории базы, то машина отлетает в гараж или на штраф стоянку.
      На сервере используется TraderPlus.
       
      Есть такие решения у кого?
      За ранние благодарю.
    • Автор: Troy1
      Всем привет. Подскжите ну или помогите пожалуйста решить вопрос.
      Вопрос звучит так. Нужно сделать так, что бы на всей карте был запрет на строительство. 
      Если нужно построить например базу с палатками, то нужно установить верстак или флаг, который установит зону для строительства с радиусом примерно 20-25 метров от центра и желательно что бы зона была квадратной.
      Есть такие решения у кого?
      За ранние благодарю.
    • Автор: BR0wi
      Подскажите где найти людей, которые делаю моды на заказ. К кому вообще обращаться? Или что бы реализовать свои идеи нужно самому "год" сидеть и изучать все механики модинга?
    • Автор: CubeIn
      Приветствую господа, хочу создать новый проект, уникальный, но для этого нужен маппер.
      Я оставлю здесь свой дискрод, напишите в лс, кто готов взяться за крупный проект.
      4me#4542
  • Наш выбор

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

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

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

Поддержка