SHOW:
|
|
- or go back to the newest paste.
1 | saveMonitor = [] spawn | |
2 | { | |
3 | //spawn a loop that runs every 120 seconds | |
4 | while {true} do | |
5 | { | |
6 | diag_log format["Processing %1 saves for players...",count players]; | |
7 | //run this for every player on the server alive or dead | |
8 | { | |
9 | _x call dbSavePlayerPrep; | |
10 | //for every living player on the server | |
11 | if (alive _x) then { | |
12 | _result = dbServerSaveCharacter _x; | |
13 | //get last saved player position | |
14 | _pos = _x getVariable ["p1",[0,0,0]]; | |
15 | //if last save is 1000m away from current position | |
16 | if (_pos distance _x > 1000) then | |
17 | { | |
18 | //set position back to last save | |
19 | _x setPosATL _pos; | |
20 | //disable all controls and force game restart | |
21 | [owner _x] spawnForClient {disableUserInput true}; | |
22 | }; | |
23 | }; | |
24 | //save current position | |
25 | _x setVariable ["p1",getPosATL _x]; | |
26 | } forEach players; //every player on the server alive or dead | |
27 | sleep 120; //wait 120seconds | |
28 | }; | |
29 | }; |