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

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

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

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

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

[Single Currency v3.0 DEFAULT HIVE] - Единая валюта на сервере

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

та же проблема. в сейфе и лукбоксе не сохраняются монетки. открываю,перевожу монетки,закрываю,потом опять открываю и пусто

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


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

 

private ["_obj"];

_obj = _this select 3;
_obj spawn player_lockVault/player_unlockVault;

 

 

У меня только эти 3 строки в lock_valut и unlock_valut

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

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


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

1. Прочитатйте гайд на офф. сайте! Основной ваш косяк в неправильной установке. Я итак тут правил гайд, чтобы сохранялось все и все равно за старое.
2. Основные файлы где может быть косяк. player_lockVault/player_unlock_vault и server_monitor.sqf
3. Уже 100500 раз был ответ в этой теме + существует поиск на форуме...

Приложу свое. ZSC 3.0 и Snap. СРАВНИТЕ ФАЙЛЫ, А НЕ СКОПИРУЙТЕ ТО, ЧТО У МЕНЯ (Как любят некоторые...)

player_unlockVault

private ["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_holder","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty","_countr","_alreadyPacking","_playerNear","_playerID","_claimedBy","_unlockedClass","_text","_nul","_objType"];
if (DZE_ActionInProgress) exitWith {cutText [(localize "str_epoch_player_21") , "PLAIN DOWN"];};
DZE_ActionInProgress = true;

{player removeAction _x} count s_player_combi;
s_player_combi 			= 	[];
s_player_unlockvault 	= 	1;

_obj 		= 	_this;
_objType 	= 	typeOf _obj;

if (!(_objType in DZE_LockedStorage)) exitWith 
{
	s_player_unlockvault = -1;
	DZE_ActionInProgress = false;
};

_playerNear = _obj call dze_isnearest_player;

if (_playerNear) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_20") , "PLAIN DOWN"]; };

if (isNull _obj || !(alive _obj)) exitWith {DZE_ActionInProgress = false;};

_unlockedClass 		= 	getText (configFile >> "CfgVehicles" >> _objType >> "unlockedClass");
_text 				= 	getText (configFile >> "CfgVehicles" >> _objType >> "displayName");
_alreadyPacking 	= 	_obj getVariable["packing",0];
_claimedBy 			= 	_obj getVariable["claimed","0"];
_ownerID 			= 	_obj getVariable["CharacterID","0"];

if (_alreadyPacking == 1) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_epoch_player_124"),_text], "PLAIN DOWN"]};

if ((_ownerID == dayz_combination) || (_ownerID == dayz_playerUID)) then 
{
	_playerNear 	= 	{isPlayer _x} count (player nearEntities ["CAManBase", 6]) > 1;
	_playerID 		= 	getPlayerUID player;
	
	if (_claimedBy == "0" || !_playerNear) then 
	{
		_obj setVariable ["claimed",_playerID,true];
	};
	
	_dir 		= 	direction _obj;
	_vector 	= 	[(vectorDir _obj), (vectorUp _obj)];
	_pos 		= 	_obj getVariable["OEMPos",(getposATL _obj)];
	_objectID 	= 	_obj getVariable["ObjectID","0"];
	_objectUID 	= 	_obj getVariable["ObjectUID","0"];
	_objMoney	= 	_obj getVariable["bankMoney",0];
	_claimedBy 	= 	_obj getVariable["claimed","0"];
	
	if (_claimedBy == _playerID) then 
	{
		if(!isNull _obj && alive _obj) then 
		{

			PVDZE_log_lockUnlock = [player, _obj, false];
			publicVariableServer "PVDZE_log_lockUnlock";

			_obj setVariable["packing",1];
			[1,1] call dayz_HungerThirst;
			_weapons 	= 	_obj getVariable["WeaponCargo",[]];
			_magazines 	= 	_obj getVariable["MagazineCargo",[]];
			_backpacks 	= 	_obj getVariable["BackpackCargo",[]];
			player playActionNow "Medic";
			sleep 1;
			
			[player,"tentpack",0,false] call dayz_zombieSpeak;
			sleep 5;

			_holder = createVehicle [_unlockedClass,_pos,[], 0, "CAN_COLLIDE"];
			deleteVehicle _obj;
			_holder setdir _dir;
			_holder setVectorDirAndUp _vector;
			_holder setPosATL _pos;
			
			player reveal _holder;
	
			_holder setVariable ["CharacterID",_ownerID,true];
			_holder setVariable ["ObjectID",_objectID,true];
			_holder setVariable ["ObjectUID",_objectUID,true];
			_holder setVariable ["OEMPos", _pos, true];
			_holder setVariable ["bankMoney", _objMoney, true];

			if (count _weapons > 0) then 
			{
				_objWpnTypes 	= 	_weapons select 0;
				_objWpnQty 		= 	_weapons select 1;
				_countr 		= 	0;
				{
					_holder addweaponcargoGlobal [_x,(_objWpnQty select _countr)];
					_countr = _countr + 1;
				} count _objWpnTypes;
			};
	
			if (count _magazines > 0) then 
			{
				_objWpnTypes 	= 	_magazines select 0;
				_objWpnQty 		= 	_magazines select 1;
				_countr 		= 	0;
				{
					if ( _x != "CSGAS" ) then
					{
						_holder addmagazinecargoGlobal [_x,(_objWpnQty select _countr)];
						_countr = _countr + 1;
					};
				} count _objWpnTypes;
			};

			if (count _backpacks > 0) then 
			{
				_objWpnTypes 	= 	_backpacks select 0;
				_objWpnQty 		= 	_backpacks select 1;
				_countr 		= 	0;
				{
					_holder addbackpackcargoGlobal [_x,(_objWpnQty select _countr)];
					_countr = _countr + 1;
				} count _objWpnTypes;
			};
			cutText [format[(localize "str_epoch_player_125"),_text], "PLAIN DOWN"];
		};
	} 
	else 
	{
		DZE_ActionInProgress = false; 
		cutText [format[(localize "str_player_beinglooted"),_text] , "PLAIN DOWN"];
	};
} 
else 
{
	[10,10] call dayz_HungerThirst;
	player playActionNow "Medic";
	sleep 1;
	
	[player,"repair",0,false] call dayz_zombieSpeak;
	[player,100,true,(getPosATL player)] spawn player_alertZombies;
	sleep 5;
	
	cutText [format[(localize "str_epoch_player_126"),_text], "PLAIN DOWN"];
};
s_player_unlockvault = -1;
DZE_ActionInProgress = false;

player_lockVault

private ["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_holder","_weapons","_magazines","_backpacks","_alreadyPacking","_lockedClass","_text","_playerNear"];
if (DZE_ActionInProgress) exitWith {cutText [(localize "str_epoch_player_10") , "PLAIN DOWN"];};
DZE_ActionInProgress = true;

player removeAction s_player_lockvault;
s_player_lockvault = 1;

_obj 			= 	_this;
_objType 		= 	typeOf _obj;
_lockedClass 	= 	getText (configFile >> "CfgVehicles" >> _objType >> "lockedClass");
_text 			= 	getText (configFile >> "CfgVehicles" >> _objType >> "displayName");

if (isNull _obj) exitWith {DZE_ActionInProgress = false;};
[1,1] call dayz_HungerThirst;
player playActionNow "Medic";
sleep 1;

[player,"tentpack",0,false] call dayz_zombieSpeak;
sleep 5;

_playerNear = _obj call dze_isnearest_player;

if (_playerNear) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_11") , "PLAIN DOWN"];};

_ownerID 	= 	_obj getVariable["CharacterID","0"];
_objectID 	= 	_obj getVariable["ObjectID","0"];
_objectUID 	= 	_obj getVariable["ObjectUID","0"];
_objMoney	= 	_obj getVariable["bankMoney",0];

if ((_ownerID != dayz_combination) && (_ownerID != dayz_playerUID)) exitWith {DZE_ActionInProgress = false; s_player_lockvault = -1; cutText [format[(localize "str_epoch_player_115"),_text], "PLAIN DOWN"];};

_alreadyPacking 	= 	_obj getVariable["packing",0];

if (_alreadyPacking == 1) exitWith {DZE_ActionInProgress = false; s_player_lockvault = -1; cutText [format[(localize "str_epoch_player_116"),_text], "PLAIN DOWN"]};
_obj setVariable["packing",1];

if (s_bank_dialog >= 0) then 
{
	player removeAction s_bank_dialog;
	s_bank_dialog = -1;
};

_dir 		= 	direction _obj;
_vector 	= 	[(vectorDir _obj),(vectorUp _obj)];
_pos 		= 	_obj getVariable["OEMPos",(getposATL _obj)];

if (!isNull _obj) then 
{
	PVDZE_log_lockUnlock = [player, _obj,true];
	publicVariableServer "PVDZE_log_lockUnlock";

	_holder = createVehicle [_lockedClass,_pos,[], 0, "CAN_COLLIDE"];
	_holder setdir _dir;
	_holder setVectorDirAndUp _vector;
	_holder setPosATL _pos;
	player reveal _holder;
	
	_holder setVariable ["CharacterID",_ownerID,true];
	_holder setVariable ["ObjectID",_objectID,true];
	_holder setVariable ["ObjectUID",_objectUID,true];
	_holder setVariable ["OEMPos", _pos, true];
	_holder setVariable ["bankMoney", _objMoney, true];

	_weapons 	= 	getWeaponCargo _obj;
	_magazines 	= 	getMagazineCargo _obj;
	_backpacks 	= 	getBackpackCargo _obj;

	deleteVehicle _obj;

	_holder setVariable ["WeaponCargo", _weapons, true];
	_holder setVariable ["MagazineCargo", _magazines, true];
	_holder setVariable ["BackpackCargo", _backpacks, true];

	cutText [format[(localize "str_epoch_player_117"),_text], "PLAIN DOWN"];
};
s_player_lockvault = -1;
DZE_ActionInProgress = false;

server_monitor.sqf

private ["_nul","_result","_pos","_wsDone","_dir","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_intentory","_hitPoints","_fuel","_damage","_key","_vehLimit","_hiveResponse","_objectCount","_codeCount","_data","_status","_val","_traderid","_retrader","_traderData","_id","_lockable","_debugMarkerPosition","_vehicle_0","_bQty","_vQty","_BuildingQueue","_objectQueue","_superkey","_shutdown","_res","_hiveLoaded"];
dayz_versionNo 		= 	getText(configFile >> "CfgMods" >> "DayZ" >> "version");
dayz_hiveVersionNo 	= 	getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion");
_hiveLoaded 		= 	false;

waitUntil {initialized};

diag_log "[База Данных]: ЗАПУСК!";

waituntil {isNil "sm_done"};
	
if (isnil "MaxVehicleLimit") then {MaxVehicleLimit = 50;};

if (isServer && isNil "sm_done") then 
{
	serverVehicleCounter 	= 	[];
	_hiveResponse 			= 	[];

	for "_i" from 1 to 5 do 
	{
		diag_log "[База Данных]: Попытка получить объекты";
		
		_key 			= 	format["CHILD:302: %1:", dayZ_instance];
		_hiveResponse 	= 	_key call server_hiveReadWrite;  
		
		if ((((isnil "_hiveResponse") || {(typeName _hiveResponse != "ARRAY")}) || {((typeName (_hiveResponse select 1)) != "SCALAR")})) then 
		{
			if ((_hiveResponse select 1) == "Инстанция уже инициализирована!") then 
			{
				_superkey 	= 	profileNamespace getVariable "SUPERKEY";
				_shutdown 	= 	format["CHILD:400: %1:", _superkey];
				_res 		= 	_shutdown call server_hiveReadWrite;
				
				diag_log ("[База Данных]: Попытка завершения работы... HiveExt ответ:"+str(_res));
			} 
			else 
			{
				diag_log ("[База Данных]: Возникла проблема соединения... HiveExt ответ:"+str(_hiveResponse));
			};
			_hiveResponse 	= 	["",0];
		} 
		else 
		{
			diag_log ("[База Данных]: найдено "+str(_hiveResponse select 1)+" объектов" );
			_i 	 = 	99;
		};
	};
	
	_BuildingQueue 	= 	[];
	_objectQueue 	= 	[];
	
	if ((_hiveResponse select 0) == "ObjectStreamStart") then 
	{
		profileNamespace setVariable ["SUPERKEY",(_hiveResponse select 2)];
		
		_hiveLoaded 	= 	true;
	
		diag_log ("[База Данных]: Начало потока Объектов...");
		
		_key 			= 	format["CHILD:302: %1:", dayZ_instance];
		_objectCount 	= 	_hiveResponse select 1;
		_bQty 			= 	0;
		_vQty 			= 	0;
		
		for "_i" from 1 to _objectCount do 
		{
			_hiveResponse = _key call server_hiveReadWriteLarge;
			
			if ((_hiveResponse select 2) isKindOf "ModularItems") then 
			{
				_BuildingQueue set [_bQty,_hiveResponse];
				_bQty 	= 	_bQty + 1;
			} 
			else 
			{
				_objectQueue set [_vQty,_hiveResponse];
				_vQty 	= 	_vQty + 1;
			};
		};
		
		diag_log ("[База Данных]: Получено " + str(_bQty) + " объектов Эпохи и " + str(_vQty) + " Техники");
	};
	
	_totalvehicles 	= 	0;
	{
		_idKey 		= 	_x select 1;
		_type 		=	_x select 2;
		_ownerID 	= 	_x select 3;
		_worldspace = 	_x select 4;
		_intentory 	=	_x select 5;
		_hitPoints 	=	_x select 6;
		_fuel 		=	_x select 7;
		_damage 	= 	_x select 8;
		_dir 		= 	0;
		_pos 		= 	[0,0,0];
		_wsDone 	= 	false;
		
		if (count _worldspace >= 2) then
		{
			_dir 	= 	_worldspace select 0;
			
			if (count (_worldspace select 1) == 3) then 
			{
				_pos 		= 	_worldspace select 1;
				_wsDone 	= 	true;
			}
		};			
		
		if (!_wsDone) then 
		{
			if (count _worldspace >= 1) then {_dir = _worldspace select 0;};
			_pos 	= 	[getMarkerPos "center",0,4000,10,0,2000,0] call BIS_fnc_findSafePos;
			
			if (count _pos < 3) then {_pos = [_pos select 0,_pos select 1,0];};
			diag_log ("[База Данных]: Перемещение объекта: " + str(_idKey) + " Класс: " + _type + " Позиция: " + str(_pos));
		};
		
		_vector 	= 	[[0,0,0],[0,0,0]];
		_vecExists 	= 	false;
		_ownerPUID 	= 	"0";   
		
		if (count _worldspace >= 3) then
		{
			if (count _worldspace == 3) then
			{
				if (typename (_worldspace select 2) == "STRING") then
				{
					_ownerPUID = _worldspace select 2;
				} 
				else
				{
					if (typename (_worldspace select 2) == "ARRAY") then
					{
						_vector = _worldspace select 2;
						if (count _vector == 2) then
						{
							if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3)) then
							{
								_vecExists = true;
							};
						};
					};                  
				};
			}
			else
			{
				if (count _worldspace == 4) then
				{
					if (typename (_worldspace select 3) == "STRING") then
					{
						_ownerPUID = _worldspace select 3;
					}
					else
					{
						if (typename (_worldspace select 2) == "STRING") then
						{
							_ownerPUID = _worldspace select 2;
						};
					};


					if (typename (_worldspace select 2) == "ARRAY") then
					{
						_vector = _worldspace select 2;
						
						if (count _vector == 2) then
						{
							if (((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3)) then
							{
								_vecExists = true;
							};
						};
					}
					else
					{
						if (typename (_worldspace select 3) == "ARRAY") then
						{
							_vector = _worldspace select 3;
							
							if (count _vector == 2) then
							{
								if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then
								{
									_vecExists = true;
								};
							};
						};
					};
				}
				else
				{
				};
			};
		}; 
		

		if (_damage < 1) then
		{
			_object 	= 	createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"];
			_object setVariable ["lastUpdate",time];
			_object setVariable ["ObjectID", _idKey, true];

			_lockable 	= 	0;
			
			if (isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then 
			{
				_lockable 	= 	getNumber(configFile >> "CfgVehicles" >> _type >> "lockable");
			};

			if (_lockable == 4) then 
			{
				_codeCount 	 = 	(count (toArray _ownerID));
				
				if (_codeCount == 3) then {_ownerID = format["0%1", _ownerID];};
				if (_codeCount == 2) then {_ownerID = format["00%1", _ownerID];};
				if (_codeCount == 1) then {_ownerID = format["000%1", _ownerID];};
			};

			if (_lockable == 3) then 
			{
				_codeCount 	 = 	(count (toArray _ownerID));
				
				if (_codeCount == 2) then {_ownerID = format["0%1", _ownerID];};
				if (_codeCount == 1) then {_ownerID = format["00%1", _ownerID];};
			};

			_object setVariable ["CharacterID", _ownerID, true];
			
			clearWeaponCargoGlobal _object;
			clearMagazineCargoGlobal _object;
			
			_object setdir _dir;
			
			if (_vecExists) then
			{
				_object setVectorDirAndUp _vector;
			}; 
			
			_object setposATL _pos;
			_object setDamage _damage;
			
			if ((typeOf _object) in dayz_allowedObjects) then 
			{
				_object setVariable["memDir",_dir,true];
				
				if (DZE_GodModeBase) then 
				{
					_object addEventHandler ["HandleDamage", {false}];
				} 
				else 
				{
					_object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
				};
				_object enableSimulation false;
				_object setVariable ["OEMPos", _pos, true];
			};

			if (count _intentory > 0) then 
			{
				if (count (_intentory) > 3) then
				{
					_object setVariable ["bankMoney", _intentory select 3, true];
				}
				else
				{
					_object setVariable ["bankMoney", 0, true];
				};
				
				if (_type in DZE_LockedStorage) then 
				{
					_object setVariable ["WeaponCargo", (_intentory select 0),true];
					_object setVariable ["MagazineCargo", (_intentory select 1),true];
					_object setVariable ["BackpackCargo", (_intentory select 2),true];
				} 
				else 
				{
					_objWpnTypes 	= 	(_intentory select 0) select 0;
					_objWpnQty 		= 	(_intentory select 0) select 1;
					_countr 		= 	0;					
					{
						if (_x in (DZE_REPLACE_WEAPONS select 0)) then 
						{
							_x 	= 	(DZE_REPLACE_WEAPONS select 1) select ((DZE_REPLACE_WEAPONS select 0) find _x);
						};
						
						_isOK 	= 	isClass(configFile >> "CfgWeapons" >> _x);
						
						if (_isOK) then 
						{
							_object addWeaponCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr 	= 	_countr + 1;
					} count _objWpnTypes; 

					_objWpnTypes 	= 	(_intentory select 1) select 0;
					_objWpnQty 		= 	(_intentory select 1) select 1;
					_countr 		= 	0;
					{
						if (_x == "BoltSteel") then {_x = "WoodenArrow"};
						if (_x == "ItemTent") then {_x = "ItemTentOld"};
						
						_isOK 	= 	isClass(configFile >> "CfgMagazines" >> _x);
						
						if (_isOK) then 
						{
							_object addMagazineCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr 	= 	_countr + 1;
					} count _objWpnTypes;

					_objWpnTypes 	= 	(_intentory select 2) select 0;
					_objWpnQty 		= 	(_intentory select 2) select 1;
					_countr 		= 	0;
					{
						_isOK 	= 	isClass(configFile >> "CfgVehicles" >> _x);
						
						if (_isOK) then 
						{
							_object addBackpackCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr 	= 	_countr + 1;
					} count _objWpnTypes;
				};
			};	
			
			if (_object isKindOf "AllVehicles") then 
			{
				{
					_selection 	= 	_x select 0;
					_dam 		= 	_x select 1;
					if (_selection in dayZ_explosiveParts && _dam > 0.8) then {_dam = 0.8};
					[_object,_selection,_dam] call object_setFixServer;
				} count _hitpoints;

				_object setFuel _fuel;

				if (!((typeOf _object) in dayz_allowedObjects)) then 
				{
					_object call fnc_veh_ResetEH;		
					
					if(_ownerID != "0" && !(_object isKindOf "Bicycle")) then {_object setvehiclelock "locked";};
					
					_totalvehicles = _totalvehicles + 1;

					serverVehicleCounter set [count serverVehicleCounter,_type];
				};
			};
			PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];
		};
	} count (_BuildingQueue + _objectQueue);

	if !(DZE_ConfigTrader) then 
	{
		{
			_traderData 	= 	call compile format["menu_%1;",_x];
			
			if (!isNil "_traderData") then 
			{
				{
					_traderid 	= 	_x select 1;
					_retrader 	= 	[];

					_key 		= 	format["CHILD:399: %1:",_traderid];
					_data		= 	"HiveEXT" callExtension _key;
					_result 	= 	call compile format ["%1",_data];
					_status 	= 	_result select 0;
			
					if (_status == "ObjectStreamStart") then 
					{
						_val 	= 	_result select 1;

						call compile format["ServerTcache_%1 = [];",_traderid];
						
						for "_i" from 1 to _val do 
						{
							_data 		= 	"HiveEXT" callExtension _key;
							_result 	= 	call compile format ["%1",_data];
							call compile format["ServerTcache_%1 set [count ServerTcache_%1,%2]",_traderid,_result];
							_retrader set [count _retrader,_result];
						};
					};
				} forEach (_traderData select 0);
			};
		} forEach serverTraders;
	};

	if (_hiveLoaded) then 
	{
		_vehLimit 	= 	MaxVehicleLimit - _totalvehicles;
		if (_vehLimit > 0) then 
		{
			diag_log ("[База Данных]: Заспавнено Техники: " + str(_vehLimit));
			
			for "_x" from 1 to _vehLimit do 
			{
				[] spawn spawn_vehicles;
			};
		} 
		else 
		{
			diag_log "[База Данных]: Достингут лимит Спавна Техники!";
		};
	};

	if (isnil "dayz_MapArea") then {dayz_MapArea = 10000;};
	
	if (isnil "HeliCrashArea") then {HeliCrashArea = dayz_MapArea / 2;};

	if (isDedicated) then 
	{
		_id 	= 	[] spawn server_spawnEvents;

		[] spawn 
		{
			private ["_id"];
			sleep 200;
			waitUntil {!isNil "server_spawnCleanAnimals"};
			_id 	= 	[] execFSM "\z\addons\dayz_server\system\server_cleanup.fsm";
		};

		_debugMarkerPosition 	= 	getMarkerPos "respawn_west";
		_debugMarkerPosition 	= 	[(_debugMarkerPosition select 0),(_debugMarkerPosition select 1),1];
		_vehicle_0 				= 	createVehicle ["DebugBox_DZ", _debugMarkerPosition, [], 0, "CAN_COLLIDE"];
		_vehicle_0 setPos _debugMarkerPosition;
		_vehicle_0 setVariable ["ObjectID","1",true];

		if (isnil "spawnMarkerCount") then {spawnMarkerCount = 10;};
		actualSpawnMarkerCount 	 = 	0;
		
		for "_i" from 0 to spawnMarkerCount do 
		{
			if (!([(getMarkerPos format["spawn%1", _i]), [0,0,0]] call BIS_fnc_areEqual)) then 
			{
				actualSpawnMarkerCount 	= 	actualSpawnMarkerCount + 1;
			} 
			else 
			{
				_i 	 = 	spawnMarkerCount + 99;
			};
			
		};
		diag_log format["[База Данных]: Общее количество Мест Спавна %1", actualSpawnMarkerCount];
		endLoadingScreen;
	};

	allowConnection 	= 	true;	
	sm_done 			= 	true;
	publicVariable "sm_done";
};

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


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

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


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

Сделал все как выше описано все работало кроме сохранения денег , решил ошибку добавив скобки в одной строке

 

if( count (_inventory) > 3)then{

        _object setVariable ["bankMoney", _inventory select 3, true];

    }else{

     _object setVariable ["bankMoney", 0, true];

    };

 

изменил на 

 

if( count (_inventory) > 3)then{

        _object setVariable ["bankMoney", (_inventory select 3), true];

    }else{

     _object setVariable ["bankMoney", 0, true];

    };

 

Авось кому да поможет

Мне не помогло, ПЕЧАЛЬ(((

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


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

Проверьте, что объявлены локальные переменные "_objMoney" в кастомных файлах player_lockVault.sqf и  player_unlockVault.sqf- изначально в скрипте не хватало их, потому не сохранялись деньги в сейфах после рестарта. Файлы эти или в SC3.0, или ваши кастомные.

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


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

Проверьте, что объявлены локальные переменные "_objMoney" в кастомных файлах player_lockVault.sqf и  player_unlockVault.sqf- изначально в скрипте не хватало их, потому не сохранялись деньги в сейфах после рестарта. Файлы эти или в SC3.0, или ваши кастомные.

Разобрался, у меня была ошибка, видать по старому гайду было  

                if( count (_intentory) > 3)then{
                _object setVariable ["bankMoney", _intentory select 3, true];
                }else{
                _object setVariable ["bankMoney", 0, true];
                };    
а надо
                if( count (_inventory) > 3)then{
                _object setVariable ["bankMoney", _inventory select 3, true];
                }else{
                _object setVariable ["bankMoney", 0, true];
                };    

 

 

  

И все заработало))

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

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


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

Ребят подскажите не могу разобраться с пятым пунктом:

не могу найти variables.sqf  и добавлять код после или перед

 

5) В файле VARIABLES.SQF:



Добавляем:


s_givemoney_dialog = -1;
s_bank_dialog = -1;
s_bank_dialog2 = -1;

В:


dayz_resetSelfActions = {

 

 

спс!

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


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

1. Вытащить из dayz_code нужно.

2. Сказано же в dayz_resetSelfActions = {

Нашел спс. Только появилась следующая проблема:

Как только добавляю строки в VARIABLES.SQF начинает кикать.

s_givemoney_dialog = -1;

 

s_bank_dialog = -1;

 

s_bank_dialog2 = -1;

 

в консоли следующее:

 

Неверная подпись для файла D:\SteamLibrary\steamapps\common\Arma 2 Operation Arrowhead\@DayZ_Epoch\addons\dayz_code.pbo

в логе :

13:31:30 "get: STRING (76561198155192086), sent: STRING (76561198155192086)"

13:31:30 "DISCONNECT: Chaser (76561198155192086) Object: B 1-1-A:1 (Chaser) REMOTE, _characterID: 0 at loc [10153.7,-4593.89,91.601]"

13:31:30 "ERROR: Cannot Sync Character Chaser as no characterID"

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

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


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

Чего? Нафига вы в ПБО изменения сделали? Файл нужно было скопировать из PBO и подключить в миссию, а после в миссионном файле сделать изменения.

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


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

Чего? Нафига вы в ПБО изменения сделали? Файл нужно было скопировать из PBO и подключить в миссию, а после в миссионном файле сделать изменения.

Дурная голова...

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

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


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

установил все хорошо, только когда передаю деньги напарнику кикает baettley restriction #3. Помогите

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


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

 

установил все хорошо, только когда передаю деньги напарнику кикает baettley restriction #3. Помогите

Берешь вот этот лог, и добавяешь его в исключения. В таком формате !="ну, тут типа лог", и больше не кикает!

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


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

 

1. Прочитатйте гайд на офф. сайте! Основной ваш косяк в неправильной установке. Я итак тут правил гайд, чтобы сохранялось все и все равно за старое.

2. Основные файлы где может быть косяк. player_lockVault/player_unlock_vault и server_monitor.sqf

3. Уже 100500 раз был ответ в этой теме + существует поиск на форуме...

 

Приложу свое. ZSC 3.0 и Snap. СРАВНИТЕ ФАЙЛЫ, А НЕ СКОПИРУЙТЕ ТО, ЧТО У МЕНЯ (Как любят некоторые...)

 

player_unlockVault

private ["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_holder","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty","_countr","_alreadyPacking","_playerNear","_playerID","_claimedBy","_unlockedClass","_text","_nul","_objType"];
if (DZE_ActionInProgress) exitWith {cutText [(localize "str_epoch_player_21") , "PLAIN DOWN"];};
DZE_ActionInProgress = true;

{player removeAction _x} count s_player_combi;
s_player_combi 			= 	[];
s_player_unlockvault 	= 	1;

_obj 		= 	_this;
_objType 	= 	typeOf _obj;

if (!(_objType in DZE_LockedStorage)) exitWith 
{
	s_player_unlockvault = -1;
	DZE_ActionInProgress = false;
};

_playerNear = _obj call dze_isnearest_player;

if (_playerNear) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_20") , "PLAIN DOWN"]; };

if (isNull _obj || !(alive _obj)) exitWith {DZE_ActionInProgress = false;};

_unlockedClass 		= 	getText (configFile >> "CfgVehicles" >> _objType >> "unlockedClass");
_text 				= 	getText (configFile >> "CfgVehicles" >> _objType >> "displayName");
_alreadyPacking 	= 	_obj getVariable["packing",0];
_claimedBy 			= 	_obj getVariable["claimed","0"];
_ownerID 			= 	_obj getVariable["CharacterID","0"];

if (_alreadyPacking == 1) exitWith {DZE_ActionInProgress = false; cutText [format[(localize "str_epoch_player_124"),_text], "PLAIN DOWN"]};

if ((_ownerID == dayz_combination) || (_ownerID == dayz_playerUID)) then 
{
	_playerNear 	= 	{isPlayer _x} count (player nearEntities ["CAManBase", 6]) > 1;
	_playerID 		= 	getPlayerUID player;
	
	if (_claimedBy == "0" || !_playerNear) then 
	{
		_obj setVariable ["claimed",_playerID,true];
	};
	
	_dir 		= 	direction _obj;
	_vector 	= 	[(vectorDir _obj), (vectorUp _obj)];
	_pos 		= 	_obj getVariable["OEMPos",(getposATL _obj)];
	_objectID 	= 	_obj getVariable["ObjectID","0"];
	_objectUID 	= 	_obj getVariable["ObjectUID","0"];
	_objMoney	= 	_obj getVariable["bankMoney",0];
	_claimedBy 	= 	_obj getVariable["claimed","0"];
	
	if (_claimedBy == _playerID) then 
	{
		if(!isNull _obj && alive _obj) then 
		{

			PVDZE_log_lockUnlock = [player, _obj, false];
			publicVariableServer "PVDZE_log_lockUnlock";

			_obj setVariable["packing",1];
			[1,1] call dayz_HungerThirst;
			_weapons 	= 	_obj getVariable["WeaponCargo",[]];
			_magazines 	= 	_obj getVariable["MagazineCargo",[]];
			_backpacks 	= 	_obj getVariable["BackpackCargo",[]];
			player playActionNow "Medic";
			sleep 1;
			
			[player,"tentpack",0,false] call dayz_zombieSpeak;
			sleep 5;

			_holder = createVehicle [_unlockedClass,_pos,[], 0, "CAN_COLLIDE"];
			deleteVehicle _obj;
			_holder setdir _dir;
			_holder setVectorDirAndUp _vector;
			_holder setPosATL _pos;
			
			player reveal _holder;
	
			_holder setVariable ["CharacterID",_ownerID,true];
			_holder setVariable ["ObjectID",_objectID,true];
			_holder setVariable ["ObjectUID",_objectUID,true];
			_holder setVariable ["OEMPos", _pos, true];
			_holder setVariable ["bankMoney", _objMoney, true];

			if (count _weapons > 0) then 
			{
				_objWpnTypes 	= 	_weapons select 0;
				_objWpnQty 		= 	_weapons select 1;
				_countr 		= 	0;
				{
					_holder addweaponcargoGlobal [_x,(_objWpnQty select _countr)];
					_countr = _countr + 1;
				} count _objWpnTypes;
			};
	
			if (count _magazines > 0) then 
			{
				_objWpnTypes 	= 	_magazines select 0;
				_objWpnQty 		= 	_magazines select 1;
				_countr 		= 	0;
				{
					if ( _x != "CSGAS" ) then
					{
						_holder addmagazinecargoGlobal [_x,(_objWpnQty select _countr)];
						_countr = _countr + 1;
					};
				} count _objWpnTypes;
			};

			if (count _backpacks > 0) then 
			{
				_objWpnTypes 	= 	_backpacks select 0;
				_objWpnQty 		= 	_backpacks select 1;
				_countr 		= 	0;
				{
					_holder addbackpackcargoGlobal [_x,(_objWpnQty select _countr)];
					_countr = _countr + 1;
				} count _objWpnTypes;
			};
			cutText [format[(localize "str_epoch_player_125"),_text], "PLAIN DOWN"];
		};
	} 
	else 
	{
		DZE_ActionInProgress = false; 
		cutText [format[(localize "str_player_beinglooted"),_text] , "PLAIN DOWN"];
	};
} 
else 
{
	[10,10] call dayz_HungerThirst;
	player playActionNow "Medic";
	sleep 1;
	
	[player,"repair",0,false] call dayz_zombieSpeak;
	[player,100,true,(getPosATL player)] spawn player_alertZombies;
	sleep 5;
	
	cutText [format[(localize "str_epoch_player_126"),_text], "PLAIN DOWN"];
};
s_player_unlockvault = -1;
DZE_ActionInProgress = false;

player_lockVault

private ["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_holder","_weapons","_magazines","_backpacks","_alreadyPacking","_lockedClass","_text","_playerNear"];
if (DZE_ActionInProgress) exitWith {cutText [(localize "str_epoch_player_10") , "PLAIN DOWN"];};
DZE_ActionInProgress = true;

player removeAction s_player_lockvault;
s_player_lockvault = 1;

_obj 			= 	_this;
_objType 		= 	typeOf _obj;
_lockedClass 	= 	getText (configFile >> "CfgVehicles" >> _objType >> "lockedClass");
_text 			= 	getText (configFile >> "CfgVehicles" >> _objType >> "displayName");

if (isNull _obj) exitWith {DZE_ActionInProgress = false;};
[1,1] call dayz_HungerThirst;
player playActionNow "Medic";
sleep 1;

[player,"tentpack",0,false] call dayz_zombieSpeak;
sleep 5;

_playerNear = _obj call dze_isnearest_player;

if (_playerNear) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_epoch_player_11") , "PLAIN DOWN"];};

_ownerID 	= 	_obj getVariable["CharacterID","0"];
_objectID 	= 	_obj getVariable["ObjectID","0"];
_objectUID 	= 	_obj getVariable["ObjectUID","0"];
_objMoney	= 	_obj getVariable["bankMoney",0];

if ((_ownerID != dayz_combination) && (_ownerID != dayz_playerUID)) exitWith {DZE_ActionInProgress = false; s_player_lockvault = -1; cutText [format[(localize "str_epoch_player_115"),_text], "PLAIN DOWN"];};

_alreadyPacking 	= 	_obj getVariable["packing",0];

if (_alreadyPacking == 1) exitWith {DZE_ActionInProgress = false; s_player_lockvault = -1; cutText [format[(localize "str_epoch_player_116"),_text], "PLAIN DOWN"]};
_obj setVariable["packing",1];

if (s_bank_dialog >= 0) then 
{
	player removeAction s_bank_dialog;
	s_bank_dialog = -1;
};

_dir 		= 	direction _obj;
_vector 	= 	[(vectorDir _obj),(vectorUp _obj)];
_pos 		= 	_obj getVariable["OEMPos",(getposATL _obj)];

if (!isNull _obj) then 
{
	PVDZE_log_lockUnlock = [player, _obj,true];
	publicVariableServer "PVDZE_log_lockUnlock";

	_holder = createVehicle [_lockedClass,_pos,[], 0, "CAN_COLLIDE"];
	_holder setdir _dir;
	_holder setVectorDirAndUp _vector;
	_holder setPosATL _pos;
	player reveal _holder;
	
	_holder setVariable ["CharacterID",_ownerID,true];
	_holder setVariable ["ObjectID",_objectID,true];
	_holder setVariable ["ObjectUID",_objectUID,true];
	_holder setVariable ["OEMPos", _pos, true];
	_holder setVariable ["bankMoney", _objMoney, true];

	_weapons 	= 	getWeaponCargo _obj;
	_magazines 	= 	getMagazineCargo _obj;
	_backpacks 	= 	getBackpackCargo _obj;

	deleteVehicle _obj;

	_holder setVariable ["WeaponCargo", _weapons, true];
	_holder setVariable ["MagazineCargo", _magazines, true];
	_holder setVariable ["BackpackCargo", _backpacks, true];

	cutText [format[(localize "str_epoch_player_117"),_text], "PLAIN DOWN"];
};
s_player_lockvault = -1;
DZE_ActionInProgress = false;

server_monitor.sqf

private ["_nul","_result","_pos","_wsDone","_dir","_isOK","_countr","_objWpnTypes","_objWpnQty","_dam","_selection","_totalvehicles","_object","_idKey","_type","_ownerID","_worldspace","_intentory","_hitPoints","_fuel","_damage","_key","_vehLimit","_hiveResponse","_objectCount","_codeCount","_data","_status","_val","_traderid","_retrader","_traderData","_id","_lockable","_debugMarkerPosition","_vehicle_0","_bQty","_vQty","_BuildingQueue","_objectQueue","_superkey","_shutdown","_res","_hiveLoaded"];
dayz_versionNo 		= 	getText(configFile >> "CfgMods" >> "DayZ" >> "version");
dayz_hiveVersionNo 	= 	getNumber(configFile >> "CfgMods" >> "DayZ" >> "hiveVersion");
_hiveLoaded 		= 	false;

waitUntil {initialized};

diag_log "[База Данных]: ЗАПУСК!";

waituntil {isNil "sm_done"};
	
if (isnil "MaxVehicleLimit") then {MaxVehicleLimit = 50;};

if (isServer && isNil "sm_done") then 
{
	serverVehicleCounter 	= 	[];
	_hiveResponse 			= 	[];

	for "_i" from 1 to 5 do 
	{
		diag_log "[База Данных]: Попытка получить объекты";
		
		_key 			= 	format["CHILD:302: %1:", dayZ_instance];
		_hiveResponse 	= 	_key call server_hiveReadWrite;  
		
		if ((((isnil "_hiveResponse") || {(typeName _hiveResponse != "ARRAY")}) || {((typeName (_hiveResponse select 1)) != "SCALAR")})) then 
		{
			if ((_hiveResponse select 1) == "Инстанция уже инициализирована!") then 
			{
				_superkey 	= 	profileNamespace getVariable "SUPERKEY";
				_shutdown 	= 	format["CHILD:400: %1:", _superkey];
				_res 		= 	_shutdown call server_hiveReadWrite;
				
				diag_log ("[База Данных]: Попытка завершения работы... HiveExt ответ:"+str(_res));
			} 
			else 
			{
				diag_log ("[База Данных]: Возникла проблема соединения... HiveExt ответ:"+str(_hiveResponse));
			};
			_hiveResponse 	= 	["",0];
		} 
		else 
		{
			diag_log ("[База Данных]: найдено "+str(_hiveResponse select 1)+" объектов" );
			_i 	 = 	99;
		};
	};
	
	_BuildingQueue 	= 	[];
	_objectQueue 	= 	[];
	
	if ((_hiveResponse select 0) == "ObjectStreamStart") then 
	{
		profileNamespace setVariable ["SUPERKEY",(_hiveResponse select 2)];
		
		_hiveLoaded 	= 	true;
	
		diag_log ("[База Данных]: Начало потока Объектов...");
		
		_key 			= 	format["CHILD:302: %1:", dayZ_instance];
		_objectCount 	= 	_hiveResponse select 1;
		_bQty 			= 	0;
		_vQty 			= 	0;
		
		for "_i" from 1 to _objectCount do 
		{
			_hiveResponse = _key call server_hiveReadWriteLarge;
			
			if ((_hiveResponse select 2) isKindOf "ModularItems") then 
			{
				_BuildingQueue set [_bQty,_hiveResponse];
				_bQty 	= 	_bQty + 1;
			} 
			else 
			{
				_objectQueue set [_vQty,_hiveResponse];
				_vQty 	= 	_vQty + 1;
			};
		};
		
		diag_log ("[База Данных]: Получено " + str(_bQty) + " объектов Эпохи и " + str(_vQty) + " Техники");
	};
	
	_totalvehicles 	= 	0;
	{
		_idKey 		= 	_x select 1;
		_type 		=	_x select 2;
		_ownerID 	= 	_x select 3;
		_worldspace = 	_x select 4;
		_intentory 	=	_x select 5;
		_hitPoints 	=	_x select 6;
		_fuel 		=	_x select 7;
		_damage 	= 	_x select 8;
		_dir 		= 	0;
		_pos 		= 	[0,0,0];
		_wsDone 	= 	false;
		
		if (count _worldspace >= 2) then
		{
			_dir 	= 	_worldspace select 0;
			
			if (count (_worldspace select 1) == 3) then 
			{
				_pos 		= 	_worldspace select 1;
				_wsDone 	= 	true;
			}
		};			
		
		if (!_wsDone) then 
		{
			if (count _worldspace >= 1) then {_dir = _worldspace select 0;};
			_pos 	= 	[getMarkerPos "center",0,4000,10,0,2000,0] call BIS_fnc_findSafePos;
			
			if (count _pos < 3) then {_pos = [_pos select 0,_pos select 1,0];};
			diag_log ("[База Данных]: Перемещение объекта: " + str(_idKey) + " Класс: " + _type + " Позиция: " + str(_pos));
		};
		
		_vector 	= 	[[0,0,0],[0,0,0]];
		_vecExists 	= 	false;
		_ownerPUID 	= 	"0";   
		
		if (count _worldspace >= 3) then
		{
			if (count _worldspace == 3) then
			{
				if (typename (_worldspace select 2) == "STRING") then
				{
					_ownerPUID = _worldspace select 2;
				} 
				else
				{
					if (typename (_worldspace select 2) == "ARRAY") then
					{
						_vector = _worldspace select 2;
						if (count _vector == 2) then
						{
							if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3)) then
							{
								_vecExists = true;
							};
						};
					};                  
				};
			}
			else
			{
				if (count _worldspace == 4) then
				{
					if (typename (_worldspace select 3) == "STRING") then
					{
						_ownerPUID = _worldspace select 3;
					}
					else
					{
						if (typename (_worldspace select 2) == "STRING") then
						{
							_ownerPUID = _worldspace select 2;
						};
					};


					if (typename (_worldspace select 2) == "ARRAY") then
					{
						_vector = _worldspace select 2;
						
						if (count _vector == 2) then
						{
							if (((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3)) then
							{
								_vecExists = true;
							};
						};
					}
					else
					{
						if (typename (_worldspace select 3) == "ARRAY") then
						{
							_vector = _worldspace select 3;
							
							if (count _vector == 2) then
							{
								if(((count (_vector select 0)) == 3) && ((count (_vector select 1)) == 3))then
								{
									_vecExists = true;
								};
							};
						};
					};
				}
				else
				{
				};
			};
		}; 
		

		if (_damage < 1) then
		{
			_object 	= 	createVehicle [_type, _pos, [], 0, "CAN_COLLIDE"];
			_object setVariable ["lastUpdate",time];
			_object setVariable ["ObjectID", _idKey, true];

			_lockable 	= 	0;
			
			if (isNumber (configFile >> "CfgVehicles" >> _type >> "lockable")) then 
			{
				_lockable 	= 	getNumber(configFile >> "CfgVehicles" >> _type >> "lockable");
			};

			if (_lockable == 4) then 
			{
				_codeCount 	 = 	(count (toArray _ownerID));
				
				if (_codeCount == 3) then {_ownerID = format["0%1", _ownerID];};
				if (_codeCount == 2) then {_ownerID = format["00%1", _ownerID];};
				if (_codeCount == 1) then {_ownerID = format["000%1", _ownerID];};
			};

			if (_lockable == 3) then 
			{
				_codeCount 	 = 	(count (toArray _ownerID));
				
				if (_codeCount == 2) then {_ownerID = format["0%1", _ownerID];};
				if (_codeCount == 1) then {_ownerID = format["00%1", _ownerID];};
			};

			_object setVariable ["CharacterID", _ownerID, true];
			
			clearWeaponCargoGlobal _object;
			clearMagazineCargoGlobal _object;
			
			_object setdir _dir;
			
			if (_vecExists) then
			{
				_object setVectorDirAndUp _vector;
			}; 
			
			_object setposATL _pos;
			_object setDamage _damage;
			
			if ((typeOf _object) in dayz_allowedObjects) then 
			{
				_object setVariable["memDir",_dir,true];
				
				if (DZE_GodModeBase) then 
				{
					_object addEventHandler ["HandleDamage", {false}];
				} 
				else 
				{
					_object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
				};
				_object enableSimulation false;
				_object setVariable ["OEMPos", _pos, true];
			};

			if (count _intentory > 0) then 
			{
				if (count (_intentory) > 3) then
				{
					_object setVariable ["bankMoney", _intentory select 3, true];
				}
				else
				{
					_object setVariable ["bankMoney", 0, true];
				};
				
				if (_type in DZE_LockedStorage) then 
				{
					_object setVariable ["WeaponCargo", (_intentory select 0),true];
					_object setVariable ["MagazineCargo", (_intentory select 1),true];
					_object setVariable ["BackpackCargo", (_intentory select 2),true];
				} 
				else 
				{
					_objWpnTypes 	= 	(_intentory select 0) select 0;
					_objWpnQty 		= 	(_intentory select 0) select 1;
					_countr 		= 	0;					
					{
						if (_x in (DZE_REPLACE_WEAPONS select 0)) then 
						{
							_x 	= 	(DZE_REPLACE_WEAPONS select 1) select ((DZE_REPLACE_WEAPONS select 0) find _x);
						};
						
						_isOK 	= 	isClass(configFile >> "CfgWeapons" >> _x);
						
						if (_isOK) then 
						{
							_object addWeaponCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr 	= 	_countr + 1;
					} count _objWpnTypes; 

					_objWpnTypes 	= 	(_intentory select 1) select 0;
					_objWpnQty 		= 	(_intentory select 1) select 1;
					_countr 		= 	0;
					{
						if (_x == "BoltSteel") then {_x = "WoodenArrow"};
						if (_x == "ItemTent") then {_x = "ItemTentOld"};
						
						_isOK 	= 	isClass(configFile >> "CfgMagazines" >> _x);
						
						if (_isOK) then 
						{
							_object addMagazineCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr 	= 	_countr + 1;
					} count _objWpnTypes;

					_objWpnTypes 	= 	(_intentory select 2) select 0;
					_objWpnQty 		= 	(_intentory select 2) select 1;
					_countr 		= 	0;
					{
						_isOK 	= 	isClass(configFile >> "CfgVehicles" >> _x);
						
						if (_isOK) then 
						{
							_object addBackpackCargoGlobal [_x,(_objWpnQty select _countr)];
						};
						_countr 	= 	_countr + 1;
					} count _objWpnTypes;
				};
			};	
			
			if (_object isKindOf "AllVehicles") then 
			{
				{
					_selection 	= 	_x select 0;
					_dam 		= 	_x select 1;
					if (_selection in dayZ_explosiveParts && _dam > 0.8) then {_dam = 0.8};
					[_object,_selection,_dam] call object_setFixServer;
				} count _hitpoints;

				_object setFuel _fuel;

				if (!((typeOf _object) in dayz_allowedObjects)) then 
				{
					_object call fnc_veh_ResetEH;		
					
					if(_ownerID != "0" && !(_object isKindOf "Bicycle")) then {_object setvehiclelock "locked";};
					
					_totalvehicles = _totalvehicles + 1;

					serverVehicleCounter set [count serverVehicleCounter,_type];
				};
			};
			PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];
		};
	} count (_BuildingQueue + _objectQueue);

	if !(DZE_ConfigTrader) then 
	{
		{
			_traderData 	= 	call compile format["menu_%1;",_x];
			
			if (!isNil "_traderData") then 
			{
				{
					_traderid 	= 	_x select 1;
					_retrader 	= 	[];

					_key 		= 	format["CHILD:399: %1:",_traderid];
					_data		= 	"HiveEXT" callExtension _key;
					_result 	= 	call compile format ["%1",_data];
					_status 	= 	_result select 0;
			
					if (_status == "ObjectStreamStart") then 
					{
						_val 	= 	_result select 1;

						call compile format["ServerTcache_%1 = [];",_traderid];
						
						for "_i" from 1 to _val do 
						{
							_data 		= 	"HiveEXT" callExtension _key;
							_result 	= 	call compile format ["%1",_data];
							call compile format["ServerTcache_%1 set [count ServerTcache_%1,%2]",_traderid,_result];
							_retrader set [count _retrader,_result];
						};
					};
				} forEach (_traderData select 0);
			};
		} forEach serverTraders;
	};

	if (_hiveLoaded) then 
	{
		_vehLimit 	= 	MaxVehicleLimit - _totalvehicles;
		if (_vehLimit > 0) then 
		{
			diag_log ("[База Данных]: Заспавнено Техники: " + str(_vehLimit));
			
			for "_x" from 1 to _vehLimit do 
			{
				[] spawn spawn_vehicles;
			};
		} 
		else 
		{
			diag_log "[База Данных]: Достингут лимит Спавна Техники!";
		};
	};

	if (isnil "dayz_MapArea") then {dayz_MapArea = 10000;};
	
	if (isnil "HeliCrashArea") then {HeliCrashArea = dayz_MapArea / 2;};

	if (isDedicated) then 
	{
		_id 	= 	[] spawn server_spawnEvents;

		[] spawn 
		{
			private ["_id"];
			sleep 200;
			waitUntil {!isNil "server_spawnCleanAnimals"};
			_id 	= 	[] execFSM "\z\addons\dayz_server\system\server_cleanup.fsm";
		};

		_debugMarkerPosition 	= 	getMarkerPos "respawn_west";
		_debugMarkerPosition 	= 	[(_debugMarkerPosition select 0),(_debugMarkerPosition select 1),1];
		_vehicle_0 				= 	createVehicle ["DebugBox_DZ", _debugMarkerPosition, [], 0, "CAN_COLLIDE"];
		_vehicle_0 setPos _debugMarkerPosition;
		_vehicle_0 setVariable ["ObjectID","1",true];

		if (isnil "spawnMarkerCount") then {spawnMarkerCount = 10;};
		actualSpawnMarkerCount 	 = 	0;
		
		for "_i" from 0 to spawnMarkerCount do 
		{
			if (!([(getMarkerPos format["spawn%1", _i]), [0,0,0]] call BIS_fnc_areEqual)) then 
			{
				actualSpawnMarkerCount 	= 	actualSpawnMarkerCount + 1;
			} 
			else 
			{
				_i 	 = 	spawnMarkerCount + 99;
			};
			
		};
		diag_log format["[База Данных]: Общее количество Мест Спавна %1", actualSpawnMarkerCount];
		endLoadingScreen;
	};

	allowConnection 	= 	true;	
	sm_done 			= 	true;
	publicVariable "sm_done";
};

Я заметил,что в 7 пункте гайда не написано куда идти и где брать этот unclockVault  и  LockVault.sqf  на вопрос  Desusa в  #17 сообщений где находится  unclockVault  ?  Linux в #18 сообщении послал его в  dayz_code\actions\vaultunlock.sqf  Desusa  видимо долго,долго искал и нашел vault_unlock.sqf в dayz_code\actions,позже  Desusa   написал,что там всего 3 строки  :D Хотя как пишешь  ты,файлы называются player_lockVault и player_unlock_vault  Вот откуда путаница пошла. Новичкам то трудно понять,что происходит ,они то ищут четко по названию :)

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

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


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

Нашол ошибку которая повторяется в оригинале (но нет ее в файлах только в гайде) и здесь

 

  1.  

    if( count (_intentory) > 3)then{        _object setVariable ["bankMoney", _intentory select 3, true];    }else{     _object setVariable ["bankMoney", 0, true];    };
     

    Переменная _intentory неправельно написана! надо _inventory

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

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


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

 

Нашол ошибку которая повторяется в оригинале (но нет ее в файлах только в гайде) и здесь

 

  1.  

    if( count (_intentory) > 3)then{        _object setVariable ["bankMoney", _intentory select 3, true];    }else{     _object setVariable ["bankMoney", 0, true];    };
     

    Переменная _intentory неправельно написана! надо _inventory

в файлах сервера epoch указана именно "_intentory" - как я понимаю косяк разрабов epoch. Вот и пошло с тех пор, кто то пишет скрипты "подстраиваясь" под эту ошибку, а кто изменяет на "_inventory", но в таком случае нужно во всех файлах сервера менять данную переменную.

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


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

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

Error in expression <LAIN DOWN"];

};
 
_item = TraderItemList select _index;
_data = [_item select 0, >
  Error position: <select _index;
_data = [_item select 0, >
  Error Zero divisor

File mpmissions\__CUR_MP.Chernarus\ZSC\gold\player_traderMenu.sqf, line 201

 

 

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


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

 

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

Error in expression <LAIN DOWN"];

};
 
_item = TraderItemList select _index;
_data = [_item select 0, >
  Error position: <select _index;
_data = [_item select 0, >
  Error Zero divisor

File mpmissions\__CUR_MP.Chernarus\ZSC\gold\player_traderMenu.sqf, line 201

 

 

Ошибка в файле player_traderMenu.sqf, в строке 201 (или около нее) попробуйте заменить файл на стандартный

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


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

Ошибка в файле player_traderMenu.sqf, в строке 201 (или около нее) попробуйте заменить файл на стандартный

Файл стандартный:

 

TraderDialogCatList = 12000;

TraderDialogItemList = 12001;

TraderDialogBuyPrice = 12002;

TraderDialogSellPrice = 12003;

TraderDialogBuyBtn = 12004;

TraderDialogSellBtn = 12005;

TraderDialogCurrency = 12006;

TraderCurrentCatIndex = -1;

TraderCatList = [];

TraderItemList = [];

 

TraderDialogLoadItemList = {

private ["_index","_trader_id","_activatingPlayer","_distance","_objclass","_item_list"];

 

TraderItemList = [];

 

_index = _this select 0;

 

if (_index < 0 or TraderCurrentCatIndex == _index) exitWith {};

 

TraderCurrentCatIndex = _index;

 

_trader_id = TraderCatList select _index;

_activatingPlayer = player;

 

lbClear TraderDialogItemList;

ctrlSetText [TraderDialogBuyPrice, ""];

ctrlSetText [TraderDialogSellPrice, ""];

 

_cfgTraderCategory = missionConfigFile >> "CfgTraderCategory" >> (format["Category_%1",_trader_id]);

 

PVDZE_plr_TradeMenuResult = [];

 

for "_i" from 0 to ((count _cfgTraderCategory) - 1) do {

 

_class = configName (_cfgTraderCategory select _i);

_type = getText ((_cfgTraderCategory select _i) >> "type");

_buy = getArray ((_cfgTraderCategory select _i) >> "buy");

_sell = getArray ((_cfgTraderCategory select _i) >> "sell");

_buy set [2,1];

_sell set [2,1];

_typeNum = 1;

 

if (_type == "trade_weapons") then {

_typeNum = 3;

} else {

if (_type in ["trade_backpacks", "trade_any_vehicle", "trade_any_vehicle_free", "trade_any_boat", "trade_any_bicycle"]) then {

_typeNum = 2;

};

};

 

_data = [9999,[_class,_typeNum],99999,_buy,_sell,0,_trader_id,_type];

 

PVDZE_plr_TradeMenuResult set [count PVDZE_plr_TradeMenuResult, _data];

};

 

lbClear TraderDialogItemList;

_item_list = [];

 

{

private ["_header", "_item", "_name", "_type", "_textPart", "_qty", "_buy", "_bqty", "_bname", "_btype", "_btextCurrency", "_sell", "_sqty", "_sname", "_stype", "_stextCurrency", "_order", "_order", "_afile", "_File", "_count", "_bag", "_bagclass", "_index", "_image"];

_header = _x select 0;

_item = _x select 1;

_name = _item select 0;

_type = _item select 1;

 

switch (true) do {

case (_type == 1): {

_type = "CfgMagazines";

};

case (_type == 2): {

_type = "CfgVehicles";

};

case (_type == 3): {

_type = "CfgWeapons";

};

};

 

_textPart = getText(configFile >> _type >> _name >> "displayName");

_qty = _x select 2;

_buy = _x select 3;

_bqty = _buy select 0;

_bname = _buy select 1;

_btype = _buy select 2;

 

switch(true)do{

case (_btype == 1): {

_btype = "CfgMagazines";

};

case (_btype == 2): {

_btype = "CfgVehicles";

};

case (_btype == 3): {

_btype = "CfgWeapons";

};

};

 

_btextCurrency = CurrencyName;

_sell = _x select 4;

_sqty = _sell select 0;

_sname = _sell select 1;

_stype = _sell select 2;

 

switch(true)do{

case (_stype == 1): {

_stype = "CfgMagazines";

};

case (_stype == 2): {

_stype = "CfgVehicles";

};

case (_stype == 3): {

_stype = "CfgWeapons";

};

};

 

_stextCurrency = CurrencyName;

_order = _x select 5;

_afile = _x select 7;

_File = "ZSC\actions\" + _afile + ".sqf";

_count = 0;

 

if(_type == "CfgVehicles") then {

if (_afile == "trade_backpacks") then {

_bag = unitBackpack player;

_bagclass = typeOf _bag;

if(_name == _bagclass) then {

_count = 1;

};

} else {

if (isClass(configFile >> "CfgVehicles" >> _name)) then {

_distance = dayz_sellDistance_vehicle;

if (_name isKindOf "Air") then {

_distance = dayz_sellDistance_air;

};

if (_name isKindOf "Ship") then {

_distance = dayz_sellDistance_boat;

};

_count = {(typeOf _x) == _name} count (nearestObjects [player, [_name], _distance]);

};

};

};

 

if(_type == "CfgMagazines") then {

_count = {_x == _name} count magazines player;

};

 

if(_type == "CfgWeapons") then {

_count = {_x == _name} count weapons player;

};

 

_index = lbAdd [TraderDialogItemList, format["%1 (%2)", _textPart, _name]];

 

if (_count > 0) then {

lbSetColor [TraderDialogItemList, _index, [0, 1, 0, 1]];

};

 

_image = getText(configFile >> _type >> _name >> "picture");

 

lbSetPicture [TraderDialogItemList, _index, _image];

 

_item_list set [count _item_list, [

_name,

_textPart,

_bqty,

_bname,

_btextCurrency,

_sqty,

_sname,

_stextCurrency,

_header,

_File

]];

} forEach PVDZE_plr_TradeMenuResult;

TraderItemList = _item_list;

};

 

TraderDialogShowPrices = {

private ["_index", "_item"];

 

_index = _this select 0;

 

if (_index < 0) exitWith {};

 

while {count TraderItemList < 1} do { sleep 1; };

 

_item = TraderItemList select _index;

_qty = {_x == (_item select 3)} count magazines player;

 

ctrlSetText [TraderDialogBuyPrice, format["%1 %2", [_item select 2] call BIS_fnc_numberText, CurrencyName]];

ctrlEnable [TraderDialogBuyBtn, true];

ctrlSetText [TraderDialogSellPrice, format["%1 %2", [_item select 5] call BIS_fnc_numberText, CurrencyName]];

};

 

TraderDialogBuy = {

private ["_index", "_item", "_data"];

_index = _this select 0;

if (_index < 0) exitWith {

cutText [(localize "str_epoch_player_6"), "PLAIN DOWN"];

};

 

_item = TraderItemList select _index;

_data = [_item select 0, _item select 3, 1, _item select 2, "buy", _item select 4, _item select 1, _item select 8];

[0, player, '', _data] execVM (_item select 9);

TraderItemList = [];

};

 

TraderDialogSell = {

private ["_index", "_item", "_data"];

_index = _this select 0;

if (_index < 0) exitWith {

cutText [(localize "str_epoch_player_6"), "PLAIN DOWN"];

};

 

_item = TraderItemList select _index;

_data = [_item select 6, _item select 0, _item select 5, 1, "sell", _item select 1, _item select 7, _item select 8];

[0, player, '', _data] execVM (_item select 9);

 

TraderItemList = [];

};

 

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


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

Если вдруг кто то решил убрать анимацию торговли (InstantTrading = true;) но при торговле пишет "Торговля отменена", делаем следующее:

Ищем строку:

if (player distance _oldPosition <= 1) then {

И меняем её на эту:

if ((position player) distance _oldPosition <= 1) then {

В следующих файлах:

-----------------------------------------------

     ZSC\actions\trade_any_bicycle.sqf

     ZSC\actions\trade_any_boat.sqf
     ZSC\actions\trade_any_vehicle.sqf
     ZSC\actions\trade_backpacks.sqf
     ZSC\actions\trade_items.sqf       (в двух местах! )
     ZSC\actions\trade_weapons.sqf
-----------------------------------------------
 
На этом всё. Надеюсь кому то помог:)

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


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

 

Если вдруг кто то решил убрать анимацию торговли (InstantTrading = true;) но при торговле пишет "Торговля отменена", делаем следующее:

Ищем строку:

if (player distance _oldPosition <= 1) then {

И меняем её на эту:

if ((position player) distance _oldPosition <= 1) then {

В следующих файлах:

-----------------------------------------------

     ZSC\actions\trade_any_bicycle.sqf

     ZSC\actions\trade_any_boat.sqf
     ZSC\actions\trade_any_vehicle.sqf
     ZSC\actions\trade_backpacks.sqf
     ZSC\actions\trade_items.sqf       (в двух местах! )
     ZSC\actions\trade_weapons.sqf
-----------------------------------------------
 
На этом всё. Надеюсь кому то помог:)

Блин ты немного опоздал( я просто убрал эту бабку на пристани в солнечном помойму,а я думаю какого хрена она мне пишет?! ошибок нет ни в одном рпт,я попробовал сменить координаты потом скин торгоша,нечего не выходило,ну я ее и делетнул)

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


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

Блин ты немного опоздал( я просто убрал эту бабку на пристани в солнечном помойму,а я думаю какого хрена она мне пишет?! ошибок нет ни в одном рпт,я попробовал сменить координаты потом скин торгоша,нечего не выходило,ну я ее и делетнул)

так не долго ведь и на место её вернуть)

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


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

так не долго ведь и на место её вернуть)

А оно мне теперь не надо,я потом уже подумал,что и правда нафига на карте  2 торговца лодками и одного у брал,а потом подумал нафига на карте 2 торговца оптовика которые просто так стоят торгуют ерундой и некому не нужны и удалил их обоих :D

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


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

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

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

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

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

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

Войти

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

Войти сейчас

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

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

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

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

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

Поддержка