Jump to content

anthony

Member
  • Posts

    121
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by anthony

  1. My update process is normally something like this:

    1) Download the server update file via whatever distribution method is offered

    2) Download the Epoch client files via DayZ Commander

    3) Extract the server update file

    4) Rename @DayZ_Epoch_Server directory from my ArmA2 directory to @DayZ_Epoch_Server_old

    5) Copy the new @DayZ_Epoch_Server directory over

    6) Replace and merge the old server files with any changes I may have made

    7) Copy the new/updated @DayZ_Epoch_Server directory to my ArmA2

    8) Rename the old DayZ_Epoch_11.Chernarus directory to DayZ_Epoch_11.Chernarus_old

    9) Copy the new DayZ_Epoch_11.Chernarus directory over

    10) Replace and merge the old mission directory with the new one

    11) Put in place the new SQL database

    12) Run some custom SQL stuff that adds items to various traders

    13) Compare the new and old HiveExt.ini for any changes

    14) Update config.cfg hostname with the Epoch version number

    15) Password lock the server

    16) Test the server for a bit, review logs, make any fixes for stuff I missed

    17) Once everything seems good, shut her down, remove the password, start her back up

     

    Usually takes me between 20 and 60 minutes, depending on whether or not I am having a derpy day.

  2. There is an update for this that I am currently testing, that removes zombies, stops temporarily for nearby survivors, experimenting with AI load offset for busy servers, more messaging, working on removal / avoidance of debris. The current debris is supposed to be server-side so the driver should see it, he seems to just think he can drive over it anyway.

    I can't remember if it was the bus script you had developed or another one, but it seemed like the bus was most likely to get stuck on debris when a player was within a several hundred meters of the debris pile when the bus came to it. I remember one day I was at camp for a while doing chores and the bus drove past several times in the span of a couple hours. Then once I left camp to scavenge and whatnot I saw him get stuck on some debris pile for about 30 minutes before I left the area. Eventually I saw him again and he would do his lap without getting stuck, until I was around a debris pile that he decided to just try to plow through instead of go around. I eventually went back to camp and monitored him via the Admin Tools map and he never got stuck so long as a player was not around a debris pile.

  3. If you are running on a dedicated server it is pretty easy, just follow the directions provided on the Wiki (http://dayzepoch.com/wiki/index.php?title=Server_Installation_Instructions) and then use the appropriate .bat file (DayZ_Epoch_instance_15_namalsk.bat) once you have it all configured. If you are using a hosting provider you should contact their technical support in order to get assistance with changing maps using their particular control panel.

  4. "Read from bank" messages are normally related to something regarding mission pbo files, a syntax error from it, the startup command line, or files and directories not being where they are suppose to be, if I recall correctly. Since I am not looking directly at your files the best suggestion I have would be to triple check to make sure all files and directories are where they should be. Have you made any changes to your startup command line? Shut down the server, recompile the mission.pbo and start it back up.

  5. Awesome. I highly suggest using a program called Notepad++ for editing files. Set the sqf and sqm files to default to C++. It is great for editing, and you can really easily check if you have some syntax errors, or are missing a bracket as it will show you where it starts/stops when you put the cursor there. Very handy.

  6. The edited map file is not an SQM, but an SQF. I have it inside a folder in the pbo file. (C:\DayZ Server [E]\MPMissions\DayZ_Epoch_11.Chernarus\Buildings)

    Then

    [] execVM "Newstuff.sqf";
    

    needs to be

    [] execVM "Buildings\Newstuff.sqf";
    
  7. It should be, use the same basic method for adding in custom loadouts, which is found here: http://dayzepoch.com/forum/index.php?/topic/1855-multi-custom-load-outs/

     

    But instead of making it ID based, edit server_playerLogin.sqf with something like:

    switch (random 5) do {
     case 0: loadout 1;
     case 1: loadout 2;
     case 2: loadout 3;
     case 3: loadout 4;
     case 4: loadout 5;
    };

    Haven't actually tried it, but I don't see a reason it shouldn't work.

  8. Depends on how you are hosting, but look for something like:

    Arma 2 Operation Arrowhead\instance_11_Chernarus\Arma2OAserver.RPT is what you are looking for.

    Is the file "newstuff.sqm" within the root of the pbo file? I have the REsec.sqf line commented out, have you tried putting the line for the .sqm before the REsec line?

  9. Not having to use PBO manager to create a .pbo file depends entirely on your hosting setup. If your hosting provider compiles your mission directory on every server restart than you should be able to just edit the files within it and restart the server. Since I use a dedicated hosting setup, I use scripts which recompile the pbo on each restart.

  10. That was the other thing that I did not like about Vilayer, they do not give pro-rated refunds after the trial period; which I knew was policy when I signed up, but I still tried to get one anyway. Dayz.st had no problem giving me a pro-rated refund on for both of my servers when I cancelled.

  11. Not sure that would be a good idea, if you think about it. Someone can come along and pick up any storage sheds. And there wouldn't be a way to stop them from stealing it.

    They are already able to be destroyed with a single satchel charge or vehicles with mounted weapons, so the "anyone can steal the shed" argument is really moot, in my opinion. And since the contents of a shed aren't lockable players already have some expectation that their shed could be empty should it be raided, which isn't much worse than someone taking the time and tools to dismantle it in the first place.

     

    maybe make the storage shed indestrucible with plot pole but owner can remove?

     I wouldn't say to make them indestructible, otherwise a well hidden structure may not be be much worse than a safe/lock box or two. In fact, it can be argued that a shed, especially the metal ones, can be almost on par with a safe/lock box already since you can stick them inside a rock and they are hardly noticeable. But putting a plotpole as part of the break down mechanic along with crowbars/toolboxs breaking is definitely something a good way to go.

  12. Use this instead, the TP stuff is just commented out. Compare the two and you will see where yours is wrong at the end there.

    private ["_refObj","_size","_vel","_speed","_hunger","_thirst","_timeOut","_result","_factor","_randomSpot","_mylastPos","_distance","_lastTemp","_rnd","_listTalk","_bloodChanged","_id","_messTimer","_display","_control","_combatdisplay","_combatcontrol","_timeleft","_inVehicle","_tempPos","_lastUpdate","_foodVal","_thirstVal","_lowBlood","_startcombattimer","_combattimeout","_myPos","_lastPos","_debug","_saveTime","_maxDistanceTravel","_maxDistanceDebug","_maxDistanceZeroPos","_maxDistancePlayer","_maxDistanceVehicle"];
    disableSerialization;
    _timeOut = 	0;
    _messTimer = 0;
    _lastTemp = dayz_temperatur;
    _debug = getMarkerpos "respawn_west";
    
    // override vars
    _maxDistanceTravel = DZE_teleport select 0;
    _maxDistanceDebug = DZE_teleport select 1;
    _maxDistanceZeroPos = DZE_teleport select 2;
    _maxDistancePlayer = DZE_teleport select 3;
    _maxDistanceVehicle = DZE_teleport select 4;
    
    player setVariable ["temperature",dayz_temperatur,true];
    
    dayz_myLoad = (((count dayz_myBackpackMags) * 0.2) + (count dayz_myBackpackWpns)) +  (((count dayz_myMagazines) * 0.1) + (count dayz_myWeapons * 0.5));
    
    while {true} do {
    
    	//Initialize
    	_refObj = 	vehicle player;
    	_factor = 0.6;
    	_inVehicle = (_refObj != player);
    
    	if(_inVehicle) then {
    		_factor = 1;
    	};
    	
    	_bloodChanged = false;
    
    	_size = 	(sizeOf typeOf _refObj) * _factor;
    	_vel = 		velocity player;
    	_speed = 	round((_vel distance [0,0,0]) * 3.5);
    	
    	_saveTime = (playersNumber west * 2) + 10;
    		
    	//reset position
    	_randomSpot = true;
    	_tempPos = getPosATL _refObj;
    	_distance = _debug distance _tempPos;
    	
    	if (_distance < _maxDistanceDebug) then {
    		_randomSpot = false;
    	};
    	
    	_distance = [0,0,0] distance _tempPos;
    	if (_distance < _maxDistanceZeroPos) then {
    		_randomSpot = false;
    	};
    
    	if (!isNil "_mylastPos") then {
    		_distance = _mylastPos distance _tempPos;
    		if (_distance > _maxDistanceTravel) then {
    			_randomSpot = false;
    		};
    	};
    
    	if (_randomSpot) then {
    		_mylastPos = _tempPos;
    	};
    	
    	/* not used
    	if (!isNil "_mylastPos") then {
    		dayz_mylastPos = _mylastPos;
    	};
    	*/
    
    	dayz_areaAffect = _size;
    	
    	/* not used
    	if (_speed > 0.1) then {
    		_timeOut = _timeOut + 1;
    	};
    	*/
    	
    	//Record Check
    	_lastUpdate = 	time - dayZ_lastPlayerUpdate;
    	if (_lastUpdate > 8) then {
    		//POSITION?
    		_distance = dayz_myPosition distance _refObj;
    		if (_distance > 10) then {
    			//Player has moved
    			dayz_myPosition = getPosATL _refObj;
    			player setVariable["posForceUpdate",true,true];
    			dayz_unsaved = true;
    			dayZ_lastPlayerUpdate = time;
    		};
    	};
    
    	//Hunger
    	_hunger = +((((r_player_bloodTotal - r_player_blood) / r_player_bloodTotal) * 5) + _speed + dayz_myLoad) * 3;
    	if (time - dayz_panicCooldown < 120) then {
    		_hunger = _hunger * 2;
    	};
    	dayz_hunger = dayz_hunger + (_hunger / 60);
    
    	//Thirst
    	_thirst = 2;
    	if (!_inVehicle) then {
    		_thirst = (_speed + 4) * 3;
    	};
    	dayz_thirst = dayz_thirst + (_thirst / 60) * (dayz_temperatur / dayz_temperaturnormal);	//TeeChange Temperatur effects added Max Effects: -25% and + 16.6% waterloss
    
    	//Temperatur
    	2 call player_temp_calculation; //2 = sleep time of this loop		//TeeChange
    	if ((_lastTemp - dayz_temperatur) > 0.75 or (_lastTemp - dayz_temperatur) < -0.75 ) then {
    		player setVariable ["temperature",dayz_temperatur,true];
    		_lastTemp = dayz_temperatur;
    	};
    	
    	//can get nearby infection
    	if (!r_player_infected) then {
    		//Infectionriskstart
    		if (dayz_temperatur < ((80 / 100) * (dayz_temperaturnormal - dayz_temperaturmin) + dayz_temperaturmin)) then {	//TeeChange
    			_listTalk = _mylastPos nearEntities ["CAManBase",8];
    			{
    				if (_x getVariable["USEC_infected",false]) then {
    					_rnd = (random 1) * (((dayz_temperaturnormal - dayz_temperatur) * (100 /(dayz_temperaturnormal - dayz_temperaturmin)))/ 50);	//TeeChange
    					if (_rnd < 0.1) then {
    						_rnd = random 1;
    						if (_rnd > 0.7) then {
    							r_player_infected = true;
    							//player setVariable["USEC_infected",true];
    						};
    					};
    				};
    			} forEach _listTalk;
    			if (dayz_temperatur < ((50 / 100) * (dayz_temperaturnormal - dayz_temperaturmin) + dayz_temperaturmin)) then {	//TeeChange
    				_rnd = (random 1) * (((dayz_temperaturnormal - dayz_temperatur) * (100 /(dayz_temperaturnormal - dayz_temperaturmin)))/ 25);	//TeeChange
    				if (_rnd < 0.05) then {
    					_rnd = random 1;
    					if (_rnd > 0.95) then {
    						r_player_infected = true;
    						//player setVariable["USEC_infected",true];
    					};
    				};
    			};
    		};
    	};
    	
    	//If has infection reduce blood cough and add shake
    	if (r_player_infected) then {
    		if !(player getVariable["USEC_infected",false]) then { 
    			player setVariable["USEC_infected",true,true];  
    		};
    		
    		_rnd = ceil (random 8);
    		[player,"cough",_rnd,false,9] call dayz_zombieSpeak;
    		
    		if (_rnd < 3) then {
    			addCamShake [2, 1, 25];
    		};
    		if (r_player_blood > 3000) then {
    			r_player_blood = r_player_blood - 3;
    			_bloodChanged = true;
    		};
    	};
    	
    	//Pain Shake Effects
    	if (r_player_inpain and !r_player_unconscious) then {
    		playSound "breath_1";
    		addCamShake [2, 1, 25];
    	};
    	
    	//Hunger Effect
    	_foodVal = 		dayz_statusArray select 0;
    	_thirstVal = 	dayz_statusArray select 1;
    	if (_thirstVal <= 0) then {
    		_result = r_player_blood - 10;
    		if (_result < 0) then {
    			_id = [player,"dehyd"] spawn player_death;
    		} else {
    			r_player_blood = _result;
    			_bloodChanged = true;
    		};
    	};
    	if (_foodVal <= 0) then {
    		_result = r_player_blood - 10;
    		if (_result < 0) then {
    			_id = [player,"starve"] spawn player_death;
    		} else {
    			r_player_blood = _result;
    			_bloodChanged = true;
    		};
    	};
    
    	if (_foodVal >= 0.9 and _thirstVal >= 0.9) then {
    		if (!r_player_infected and !r_player_inpain and !r_player_injured) then {
    			_result = r_player_blood + 10;
    			if (_result >= r_player_bloodTotal) then {
    				r_player_blood = r_player_bloodTotal;
    			} else {
    				r_player_blood = _result;
    			};
    			_bloodChanged = true;
    		};
    	};
    	
    	//Record low blood
    	_lowBlood = player getVariable ["USEC_lowBlood", false];
    	if ((r_player_blood < r_player_bloodTotal) and !_lowBlood) then {
    		player setVariable["USEC_lowBlood",true,true];
    	};
    	
    	//Broadcast Hunger/Thirst
    	_messTimer = _messTimer + 1;
    	if (_messTimer > 15) then {
    		_messTimer = 0;
    		player setVariable ["messing",[dayz_hunger,dayz_thirst],true];
    	};
    	
    	//check if can disconnect
    	if (!dayz_canDisconnect) then {
    		if ((time - dayz_damageCounter) > 180) then {
    			if (!r_player_unconscious) then {
    				dayz_canDisconnect = true;
    				//["dayzDiscoRem",getPlayerUID player] call callRpcProcedure;
    				dayzDiscoRem = getPlayerUID player;
    				publicVariableServer "dayzDiscoRem";
    				
    				//Ensure Control is hidden
    				_display = uiNamespace getVariable 'DAYZ_GUI_display';
    				_control = 	_display displayCtrl 1204;
    				_control ctrlShow false;
    			};
    		};
    	};
    
    	if(_bloodChanged) then {
    		player setVariable["USEC_BloodQty",r_player_blood];
    	};
    
    	//Save Checker
    	if (dayz_unsaved) then {
    		if ((time - dayz_lastSave) > _saveTime) then {
    			dayzPlayerSave = [player,dayz_Magazines,false,false];
    			publicVariableServer "dayzPlayerSave";
    		
    			dayz_unsaved = false;
    		
    			//diag_log format["Save Checker: %1", dayzPlayerSave];
    		
    			if (isServer) then {
    				dayzPlayerSave call server_playerSync;
    			};
    
    			dayz_lastSave = time;
    			dayz_Magazines = [];
    		};
    
    
    	};
    
    	//Attach Trigger Current Object
    	//dayz_playerTrigger attachTo [_refObj,[0,0,0]];
    	//dayz_playerTrigger setTriggerArea [_size,_size,0,false];
    
    	// If in combat, display counter and restrict logout
    	_startcombattimer      = player getVariable["startcombattimer",0];
    	if (_startcombattimer == 1) then {
    		player setVariable["combattimeout", time + 30, true];
    		player setVariable["startcombattimer", 0, true];
    		dayz_combat = 1;
    	};
    
    	_combattimeout = player getVariable["combattimeout",0];
    	if (_combattimeout > 0) then {
    		_timeleft = _combattimeout - time;
    		if (_timeleft > 0) then {
    			//hintSilent format["In Combat: %1",round(_timeleft)];
    		} else {
    			//hintSilent "Not in Combat";
    			player setVariable["combattimeout", 0, true];
    			dayz_combat = 0;
    			_combatdisplay = uiNamespace getVariable 'DAYZ_GUI_display';
    			_combatcontrol = 	_combatdisplay displayCtrl 1307;
    			_combatcontrol ctrlShow true;
    		};
    	} else {
    		//hintSilent "Not in Combat";
    		dayz_combat = 0;
    		_combatdisplay = uiNamespace getVariable 'DAYZ_GUI_display';
    		_combatcontrol = 	_combatdisplay displayCtrl 1307;
    		_combatcontrol ctrlShow true;
    	};
    	
    	/*
    	setGroupIconsVisible [false,false];
    	clearGroupIcons group player;
    	*/
    	"colorCorrections" ppEffectAdjust [1, 1, 0, [1, 1, 1, 0.0], [1, 1, 1, (r_player_blood/r_player_bloodTotal)],  [1, 1, 1, 0.0]];
    	"colorCorrections" ppEffectCommit 0;
    	sleep 2;
    	
    	_myPos = player getVariable["lastPos",[]];
    	if (count _myPos > 0) then {
    		player setVariable["lastPos",_mylastPos, true];
    		player setVariable["lastPos",[]];
    	};
    	
    	/*
    	if (!isNil "_mylastPos") then {
    		_lastPos = getPosATL _refObj;	
    		if (!_inVehicle) then {
    			if (_mylastPos distance _lastPos > _maxDistancePlayer) then {
    				if (alive player) then {
    					player setPosATL _mylastPos;
    					diag_log ("Player Teleport Revert : "+ str(_mylastPos distance _lastPos));
    				};
    			};
    		} else {
    			if (_mylastPos distance _lastPos > _maxDistanceVehicle) then {
    				if (alive player) then {
    					player setPosATL _mylastPos;
    					diag_log ("Vehicle Teleport Revert : "+ str(_mylastPos distance _lastPos));
    				};
    			};
    		};
    	};
    	*/
    
    };
    
×
×
  • Create New...