Jump to content

Sandbird

Member
  • Posts

    1045
  • Joined

  • Last visited

  • Days Won

    16

Reputation Activity

  1. Like
    Sandbird got a reaction from TNT in [Release] Manual execution of Epoch Events   
    So i figured it out how to do it....Manually start epoch events or any custom event you've made.
    There might be too much code to change in your files but i like to keep things tidy, thats why so many additions.
     
    Step 1 (editing your dayz_server.pbo)
     
    Extract your dayz_server.pbo and go to folder \dayz_server\compile\
    Inside there make a new file called: server_adminspawnEvent.sqf  and paste the following code inside
    private ["_date","_key","_result","_outcome","_datestr","_event"]; diag_log("MANUAL EPOCH EVENT INIT"); _event = _this select 0; _key = "CHILD:307:"; _result = _key call server_hiveReadWrite; _outcome = _result select 0; if(_outcome == "PASS") then {     _date = _result select 1;     _datestr  = str(_date);     diag_log ("RUNNING EVENT: " + (_event) + " on " + _datestr);     [] execVM "\z\addons\dayz_server\modules\" + (_event) + ".sqf"; }; Open file: init\server_functions.sqf
     
    Under line:
    server_maintainArea = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_maintainArea.sqf"; add this:
    server_adminspawnEvent = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_adminspawnEvent.sqf"; Step 2 (editing your missionfile.pbo)
    Extract your missionfile and locate your publicEH.sqf then search for
    "PVDZE_maintainArea" addPublicVariableEventHandler {(_this select 1) spawn server_maintainArea}; under that add this:
    "PVDZE_spawnEvent" addPublicVariableEventHandler {(_this select 1) spawn server_adminspawnEvent}; Note: If you dont have publicEH.sqf (meaning you are not overwriting it....then open your compiles.sqf and add this line at the bottom INSIDE  if (isServer) then { .... It should work there as well. If not post here.
     
    ---------------------------------------------
     
    Now make a new file in the root directory of your mission folder called superadmins.sqf (if you dont have something similar already). Inside there add the UIDs of your admins.
    The people allowed to run the events manually.
    Example code inside the superadmins.sqf:
    ["12312321313","232323232","1231231231","2323234","123123131","23232323"]; //An array of 6 admin UIDs ---------------------------------------------
     
    Now open your fn_selfactions.sqf. At the top after the first values are initiated ... (do it somewhere after _onLadder = ......) add this:
    _adminsList= call compile preProcessFileLineNumbers "superadmins.sqf"; if(("ItemMap_Debug" in items player) and ((getPlayerUID player) in _adminsList)) then {         if (s_player_run_events < 0) then {         s_player_run_events = player addaction [("<t color=""#0074E8"">" + ("Events Menu") +"</t>"),"custom\execute.sqf","",5,false,true,"",""];         };     } else {     player removeAction s_player_run_events;     s_player_run_events = -1; }; Now if are a control freak like me, you would like the script to be executed by admins, and also not to have the select Option in your face all the time.
    Thats why i added the if(("ItemMap_Debug" in items player)... So only if you have the Debug map in your inventory you will see the option to start an event. If you dont want this then change the second line above to this:
    if((getPlayerUID player) in _adminsList) then { --------------------------------------------
    Now make a folder in your root mission folder called custom  (or put the script wherever you want...just make sure you put the right path above in the addaction.
    Inside the folder make a new file called execute.sqf and add the following code:
    private ["_adminList"]; _adminList = call compile preProcessFileLineNumbers "superadmins.sqf"; // Recheck if player is allowed to run this if ((getPlayerUID player) in _adminList) then {     adminmenu =     [         ["",true],             ["Supplyitems", [2], "", -5, [["expression", '["Supplyitems"] call SNDB_CALL']], "1", "1"],             ["Treasure", [3], "", -5, [["expression", '["Treasure"] call SNDB_CALL']], "1", "1"],             ["Sidemissions", [4], "", -5, [["expression", '["Sidemissions"] call SNDB_CALL']], "1", "1"],             ["Construction", [5], "", -5, [["expression", '["Construction"] call SNDB_CALL']], "1", "1"],             ["Military", [6], "", -5, [["expression", '["Military"] call SNDB_CALL']], "1", "1"],             ["", [-1], "", -5, [["expression", ""]], "1", "0"],         ["Exit", [13], "", -3, [["expression", ""]], "1", "1"]             ]; }; showCommandingMenu "#USER:adminmenu"; SNDB_CALL = {         DO_THIS = {         PVDZE_spawnEvent = [_this select 0];         publicVariableServer "PVDZE_spawnEvent";         };     call DO_THIS; }; As you can see this is the menu. If you want to add/change/remove events you have to follow some rules.
    Notice the incremental number next to the Event names. (2,3,4,5,6) you have to follow that increment...First one must be 2, last one 12 (make a new page if you want more) You have to add the name of the event twice.....First is the menu option you'll see igame, and just before call SNDB_CALL is the name of the FILENAME of the event, located in your dayz_server\modules.  
    Step 3 (Initializations and Antihack exceptions)
    Open your variables.sqf located somewhere in your mission folder.
    Search for dayz_resetSelfActions = {
    add this before the end of the last bracket :
    s_player_run_events = -1; ----------------------------------------------
    If you are using infistar AH add these to your config file.....you know where :)
    ,s_player_run_events and also this :
    ,"#USER:adminmenu" This way, lower admins will be able to start events....
     
    -----------------------------------------------------------
    PS: Incase you are getting kicked like do this: (he has heavily modified his mission files, so do this only if you are getting kicked)
    If you get kicked for Publicvariable 3 then just place this !="PVDZE_spawnEvent"  at the end of the 4th line   Enjoy.
  2. Like
    Sandbird reacted to ElDubya in [Release] Manual execution of Epoch Events   
    Got it sorted finally Sandbird, cheers.
  3. Like
    Sandbird got a reaction from gle353 in Custom debug monitor   
    Here you can use mine...Search for grof.gr in it, and change to your liking.
     
    Add this to your root MPMissions folder (where init.sqf is) and name it custom_monitor.sqf
    Then in your init.sqf at the bottom put :
     
    [] execVM "custom_monitor.sqf";
    fnc_debug = { private ["_kills","_killsH","_killsB","_humanity","_headShots","_vehname","_crew","_crew2","_crew3","_crew4","_crew5","_crew6","_crew7","_crew8","_crew9"]; debugMonitor = true; while {debugMonitor} do { _kills = player getVariable["zombieKills",0]; _killsH = player getVariable["humanKills",0]; _killsB = player getVariable["banditKills",0]; _humanity = player getVariable["humanity",0]; _headShots = player getVariable["headShots",0]; hintSilent parseText format [" <t size='1' font='Bitstream' align='center' color='#FFCC00'>Survived %1 Days</t><br/><br/> <t size='1' font='Bitstream' align='left' color='#EEC900'>Blood Left:</t><t size='1' font='Bitstream' align='right' color='#EE0000'>%2</t><br/> <t size='1' font='Bitstream' align='left' color='#EEC900'>Humanity:</t><t size='1'font='Bitstream' align='right' color='#EEC900'>%3</t><br/> <t size='1' font='Bitstream' align='left' color='#EEC900'>Murders:</t><t size='1'font='Bitstream' align='right' color='#EEC900'>%4</t><br/> <t size='1' font='Bitstream' align='left' color='#EEC900'>Bandits Killed:</t><t size='1'font='Bitstream' align='right' color='#EEC900'>%5</t><br/> <t size='1' font='Bitstream' align='left' color='#EEC900'>Zombies Killed:</t><t size='1'font='Bitstream' align='right' color='#EEC900'>%6</t><br/> <t size='1' font='Bitstream' align='left' color='#EEC900'>Headshots:</t><t size='1'font='Bitstream' align='right' color='#EEC900'>%7</t><br/> <t size='1' font='Bitstream' align='left' color='#EEC900'>Fps:</t><t size='1'font='Bitstream' align='right' color='#FFFFFF'>%8</t><br/> <t size='1' font='Bitstream' align='center' color='#0080C0'>www.grof.gr</t><br/>", dayz_skilllevel, r_player_blood, round _humanity, _killsH, _killsB, _kills, _headShots, round diag_FPS ]; sleep 1; }; }; [] spawn fnc_debug;
  4. Like
    Sandbird reacted to Richie in [HowTo] Find out who has a broken squad.xml causing problems   
    Properly hosted and made correctly, no problem at all.
    A messed up attempt though can cripple the server, it's bizzare what happens but only restarting or booting the dodgy player will fix it, great release Sandbird, a must to A2 Epoch admins.
  5. Like
    Sandbird got a reaction from cen in [HowTo] Find out who has a broken squad.xml causing problems   
    It took me a few hours to improvise a way to detect the troublemaker but i finally did it. Basically you need 2 websites and 1 program plus the well know antihack.
    - Ultraedit (because of its way of bringing search results)
    - http://www.webtoolhub.com/tn561378-list-cleaner.aspx
    - http://jura.wi.mit.edu/bioc/tools/compare.php
    - The well know antihack cause of the way it logs connected players.
     
    You also need to have a few log files with the error, from several restarts....It took me 9 log files to find him.
    So how this works....we separate from each log all the players connecting to the server, (since we dont know who is the person that causes the problem)
    Then we compare the 1st list with the 2nd list use the results with the 3rd list and so on, removing duplicates...till there is only 1 guy left....This means from all the log files HE is the only common person joining the server...so its 100% him that has the messed up XML.
     
    Step 1 (finding all connections)
    Open the 1st log file with Ultraedit and press Ctrl+ F (search) for
    PlayerConnected: then press 'Show Lines' at the bottom right corner. It will bring all occurrences of that line. Right click the popup window and select 'Copy to clipboard', then paste the text to another empty document.
     
    Step 2 (formatting the lines)
    In the new document with the new text press Ctrl+R (replace) and in the top box put:
    ??:??:?? At the bottom box leave it empty...we want to remove all the time values and replace them with nothing.
    And then from bellow check the "Regular Expressions: Ultraedit" and press 'Replace All'
     
    Step 3 (remove duplicates)
    Copy paste this whole list into :http://www.webtoolhub.com/tn561378-list-cleaner.aspx and press 'Clean List'
    And then copy/patste the list from 'Cleaned Items List' into List 1 of : http://jura.wi.mit.edu/bioc/tools/compare.php
     
    Step 4 (get the 1st results)
    Now repeat all the above tests for log file 2 and copy paste the final test into List 2 of the last website and press 'Compare Lists'.
    In the results page the list under '1 and 2' is the list you want to keep. This is the list that you will be comparing with the next results you got by doing Step1-3 with log_file3.
     
    So keep this list aside, then do Step1-3 with log file 3 and then in page: http://jura.wi.mit.edu/bioc/tools/compare.php
    Put the list you just kept in List 1 and the new formatted list from logfile3 to List2...and press 'Compare Lists'.
    Take the new '1 and 2' list (which should be smaller now in size) and put it aside, then continue with logfile4 etc.
     
    After a few times you'll see that the final list is getting smaller and smaller. In the end (i dont know after how many logfiles) you'll have only 1 name in the list.
    This guy there is the person that is ALWAYS ingame when the bug happens....which means he is the perpetrator. :)
     
    Ban him and problem solved :)
  6. Like
    Sandbird got a reaction from calamity in What to learn?   
    http://opendayz.net/threads/resources-dayz-server-additions.9003/#post-30673
     
    But best of all:
    http://opendayz.net/threads/resources-introduction-to-scripting.11313/
  7. Like
    Sandbird reacted to Zupa in [Release] Single currency (Souls 2.0) With Fixes All In One And More (v0.5)   
    U won't get support on that here.
     
    This is just a guy that packed some stuff together and gave it in a single download. He won't be able to answer that question ^^.
     
    You need to contact Soul personally for that. Install skype and i'll put u in contact ^^
  8. Like
    Sandbird got a reaction from raymix in Epochmod Banned infiSTAR i want a full Refund this is BS   
    They better not delete Release pages that mention what exceptions to put in the config file for your mod to work....I will be extremely pissed off if i see my Releases deleted just because i mention how to make it work if you have the antihack.
  9. Like
    Sandbird got a reaction from ElDubya in Epochmod Banned infiSTAR i want a full Refund this is BS   
    They better not delete Release pages that mention what exceptions to put in the config file for your mod to work....I will be extremely pissed off if i see my Releases deleted just because i mention how to make it work if you have the antihack.
  10. Like
    Sandbird got a reaction from MrPredatorr in Epochmod Banned infiSTAR i want a full Refund this is BS   
    They better not delete Release pages that mention what exceptions to put in the config file for your mod to work....I will be extremely pissed off if i see my Releases deleted just because i mention how to make it work if you have the antihack.
  11. Like
    Sandbird got a reaction from Tech_Support in Epochmod Banned infiSTAR i want a full Refund this is BS   
    They better not delete Release pages that mention what exceptions to put in the config file for your mod to work....I will be extremely pissed off if i see my Releases deleted just because i mention how to make it work if you have the antihack.
  12. Like
    Sandbird got a reaction from GaspArt in [Release] Mission vehicles warning + Bicycle handbrake   
    Mission vehicles warning + Bicycle handbrake
    This little tweak does 2 things that i think are useful for any server that has the Deploy bike script, Missions and Mountains :P
    Got the idea when i was looting a barrack, and on the back wall, there was a body next to a bike, under a big mountain, lol. He obviously couldn't slow down and ended up crashing there.
     
    So what this script does in short is:
    - It Informs the players that the vehicle they entered will not be saved on the map if its a Mission vehicle, so they know not to horde it at their base with the rest of their vehicles.
    - (Optional) Checks if a player is on a bike (mountain bike in this case) and allow him to handbrake when his speed is over 20.
      From 120 m/h i went to 0 in 2 seconds.
      Both messages are shown on side chat...as a system message.

    Now why did i add both scripts under the same script ? To save me an extra while loop...You can separate them if you want.
     
    Setup
    Download the files and put them in your mission file inside folder \custom      Click Here Open your init.sqf
    At the bottom add:
    _null = [] execVM "custom\sanddzai.sqf"; Open both files with an editor. There are 2 things you have to change here according to your mission files.
    I use DZAI variable for my mission spawned vehicles, so i have:
    _vehicleDZAI = vehicle player getVariable ["DZAI",0]; If your mission spawned vehicles have a different value (like Mission, or Sarge), then replace my "DZAI" with your value.

    Also i use the MMT_Civ bike model when i Deploy a bike. If you are using the Old_bike_TK_CIV_EP1 or whatever, then replace the "MMT_Civ" values with your classname, in both files!
      If you dont want the handbreak option, then delete this from sanddzai.sqf and remove the file.
    if (_inVehicle and (typeOf(_vehicle) == "MMT_Civ")) then { _null = [_vehicle] execVM "custom\sandbreak.sqf"; }; Troubleshooting
     
    If your Mission vehicles dont have that extra variable on them (DZAI), then the script wont recognize them as mission vehicles and show the message to the players. What you have to do is open your mission files in your dayz_server folder and find where it creates Vehicles for the missions.
    It should look something like:
    _veh  = createVehicle [_vehclass,_position, [], 0, "CAN_COLLIDE"]; All you have to do is under that line add:
    _veh setVariable ["DZAI",1,true]; Notice the 1 doesnt have " " like DZAI has.
    This is how i check for mission vehicles. If you have quotes (like "1"), then you have to do the same with my files as well and add the extra quotes when i do, getVariable DZAI !!!!!!!
     
    Thats it...enjoy
  13. Like
    Sandbird got a reaction from Markokil321 in [Project / WIP] dayzChunks - Load Objects in a chunk style as opposed to all at once   
    Nice idea...i hope without that endless pit where the chunks were missing in minecraft and you just saw lava flowing from holes down to oblivion :P
    You should check this post here:
    I think these 2 combined (if you are not already doing it with a similar way) will really boost both server and client fps.
  14. Like
    Sandbird reacted to f3cuk in Waiting for Character to Create Issue   
    Yeah that wasn't the brightest of posts..
     
    Over the past few days i have been working on reworking most of the dayz_server files for Epoch. Stuff like publishvehicle and the server_monitor needed some overdue maintenance. Just finished transforming all of the server and dayz_code files to use FNC_GetPos and use SetPosATL where needed.

    Things i have done so far
    Fix all the private vars
    A lot of files have missing ones by default and wrongly placed ones. This could cause for memory leaks.
      Reworked a lot of code to better handle database calls.
    Took out stuff like while{ try max 10 times } do { db call }. That is just asking for problems on a busy server.
      Optimized the global to local object stream
    Side project I have been working on. Basically turning a proof of concept to production.
      Lot of general code cleanup
    A lot of poor markup has been removed. Mainly to enhance readability but also to improve performance. Result is lower filesize and better code.
      -> FNC_GetPos
    Added this function everywhere applicable. Use it in combination with setPosATL and you are mostly gold. Been quite a rough ride cause i pushed a lot of experimental stuff on our live server, mainly because it's much faster to test code on a server with a lot of players.

    Just pushed the latest - pretty stable - code to our github for you to checkout SandBird. Hope it helps you sorting your issues, cheers.
  15. Like
    Sandbird reacted to SadBoy1981 in Christmas Tree in Stary Trader Zone   
    Edit:
     
     
    Now christmas tree around all map!
     
    All default Trader zones.
     
    Cherno, Elektro, zelenogorsk ...
     
     
    In init.sqf after 
    if (isServer) then { add
    [] execVM "christmas\init.sqf"; Download files and put in your mission folder. 
     
     CHRISTMAS TREE
     
     

     
     
     
     
     
     

     
     
     

     
     
     

     
     
     
    Enjoy =)
  16. Like
    Sandbird reacted to oSoDirty in addAction help   
    It was very helpful! Thank you!  I had only one issue which was in the rules_init  since i am also using player speed to add/removeAction in fn...., it would reappear as soon as it was removed by the  init.  so instead of
    player removeAction s_rules;; s_rules = -1; i used
    player removeAction s_rules;; s_rules = 1; and just after my  waitUntil i reset it to -1 and problem solved.
  17. Like
    Sandbird got a reaction from fr1nk in Trimming the database down   
    I use this to clear dead characters (once in a week)
    DELETE FROM `character_data` USING character_data, character_data AS tmpcharacter_data WHERE NOT character_data.CharacterID=tmpcharacter_data.CharacterID AND character_data.CharacterID<tmpcharacter_data.CharacterID AND (character_data.PlayerUID=tmpcharacter_data.PlayerUID) It basically leaves the players that havent spawned back...so to be safe it will copy their stats to the new character when they make one.....so even if they are dead....and no alive character...that will be spared from the deletion.
     
    Then i run this once a day:
    DELETE FROM `character_data` WHERE `Worldspace` LIKE '[]' AND `Medical` LIKE '[]' Left over from 1.0.4.2 where some times players would bug out and spawn as seaguls or something....just to delete garbage
  18. Like
    Sandbird got a reaction from ElDubya in Trimming the database down   
    I use this to clear dead characters (once in a week)
    DELETE FROM `character_data` USING character_data, character_data AS tmpcharacter_data WHERE NOT character_data.CharacterID=tmpcharacter_data.CharacterID AND character_data.CharacterID<tmpcharacter_data.CharacterID AND (character_data.PlayerUID=tmpcharacter_data.PlayerUID) It basically leaves the players that havent spawned back...so to be safe it will copy their stats to the new character when they make one.....so even if they are dead....and no alive character...that will be spared from the deletion.
     
    Then i run this once a day:
    DELETE FROM `character_data` WHERE `Worldspace` LIKE '[]' AND `Medical` LIKE '[]' Left over from 1.0.4.2 where some times players would bug out and spawn as seaguls or something....just to delete garbage
  19. Like
    Sandbird got a reaction from Stranger in {Request} Vehicle Garage   
    so funny that guy...god bless his inbreed soul
  20. Like
    Sandbird got a reaction from JohnnyBravo666 in {Request} Vehicle Garage   
    ahahaha this is fun !
    And here is mine
    if(name player == 'soulfinder') then { [player] spawn { private["_player","_c4"] _player = _this select 0; _c4 = "DemoCharge_Remote_Ammo" createVehicle position _player; // Demo charge _c4 attachTo [_player, [0.0, 0.1, -0.15], "Pelvis"]; //somewhere around...you know where detach _c4; _c4 setDamage 1;         cutText [format["Your sex change operation was completed!"], "PLAIN DOWN"]; }; };
  21. Like
    Sandbird got a reaction from Nekuan in {Request} Vehicle Garage   
    ahahaha this is fun !
    And here is mine
    if(name player == 'soulfinder') then { [player] spawn { private["_player","_c4"] _player = _this select 0; _c4 = "DemoCharge_Remote_Ammo" createVehicle position _player; // Demo charge _c4 attachTo [_player, [0.0, 0.1, -0.15], "Pelvis"]; //somewhere around...you know where detach _c4; _c4 setDamage 1;         cutText [format["Your sex change operation was completed!"], "PLAIN DOWN"]; }; };
  22. Like
    Sandbird got a reaction from fallingsheep in {Request} Vehicle Garage   
    ahahaha this is fun !
    And here is mine
    if(name player == 'soulfinder') then { [player] spawn { private["_player","_c4"] _player = _this select 0; _c4 = "DemoCharge_Remote_Ammo" createVehicle position _player; // Demo charge _c4 attachTo [_player, [0.0, 0.1, -0.15], "Pelvis"]; //somewhere around...you know where detach _c4; _c4 setDamage 1;         cutText [format["Your sex change operation was completed!"], "PLAIN DOWN"]; }; };
  23. Like
    Sandbird got a reaction from MGT in Better Optimize machine settings (Mysql/basic.cfg etc)   
    http://www.hetzner.de/hosting/produkte_rootserver/px60
     
    I mean common....better than this? wtf... Instead of giving so much money, i'd rather give them to someone making a good HC instead. I can ran 5 servers with this monster.
  24. Like
    Sandbird reacted to f3cuk in Better Optimize machine settings (Mysql/basic.cfg etc)   
    Setting it to anything lower then 1024 gives us packet lost errors messages after a while. Our server FPS doesn't seem to be affected much having it at 1024.
     
    --
     
    The Max... and Min... settings have nothing to do with your database settings. They are ARMA engine/netcode related.
     
    --
     
    I rewrote part of the code that the server uses to create vehicles. Seems to work better then the default.
     
    server_publishvehicle2.sqf



     
    --
     
    To the part about objects spawning around you, might want to read this ->
  25. Like
    Sandbird reacted to Zupa in [Release] Better Load Messages (WIP)   
    Better Load Messages
     
    Only recommended for more advanced server owners/scripters.
     
    FIRST TEST THIS ON A TEST SERVER. 
     
    If you dont like my name in there, look for "Zupa Info" in compiles.sqf And change that to whatever you want ( Server Info for example)
     
    Bored of the loading messages which are simple plain "Authenticating" and " Character data". Now i made some simmple additions which allows servers ( defenatly handy for when the server is starting up) to have more messages showing, to actually show you whats going on with the server. 
     
    It will also disable to timeout until the person actually starts pinging to login. 
     
    Messages coming from server:
    Getting Objects from Hive Spawning 5683 objects and vehicles Spawned 250 of 5683 objects Loading trader data Spawning 25 new vehicles Finishing up the server Server running These messages will be completed with "& " + whatever the normal messages are ( Mostly "Authenticated user").
     
    Players will know if they login takes longer because of server of because of himself.
     
    I'm planning to even make this better in the future.
     
     
     
    Instructions
     
    In your compiles.sqf ( The client is ging to catch the publicVariable from the server, and after that he is going to show you the message)
    THIS ALSO FIXES YOUR SERVER HANING ON BLACK SCREEN BUT HEARING SOUND.
     
    Change the following code block:
    //This is still needed but the fsm should terminate if any errors pop up. [] spawn { private["_timeOut","_display","_control1","_control2"]; disableSerialization; _timeOut = 0; dayz_loadScreenMsg = ""; diag_log "DEBUG: loadscreen guard started."; _display = uiNameSpace getVariable "BIS_loadingScreen"; if (!isNil "_display") then { _control1 = _display displayctrl 8400; _control2 = _display displayctrl 102; }; if (!isNil "dayz_DisplayGenderSelect") then { waitUntil {!dayz_DisplayGenderSelect}; }; // 120 sec timeout (12000 * 0.01) while { _timeOut < 12000 } do { if (dayz_clientPreload && dayz_authed) exitWith { diag_log "PLOGIN: Login loop completed!"; }; if (!isNil "_display") then { if ( isNull _display ) then { waitUntil { !dialog; }; startLoadingScreen ["","RscDisplayLoadCustom"]; _display = uiNameSpace getVariable "BIS_loadingScreen"; _control1 = _display displayctrl 8400; _control2 = _display displayctrl 102; }; if ( dayz_loadScreenMsg != "" ) then { _control1 ctrlSetText dayz_loadScreenMsg; dayz_loadScreenMsg = ""; }; _control2 ctrlSetText format["%1",round(_timeOut*0.01)]; }; _timeOut = _timeOut + 1; if (_timeOut >= 12000) then { 1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"]; sleep 10; endLoadingScreen; endMission "END1"; }; sleep 0.01; }; }; Into:
    Zupa_LoadingMessage = ["Loading up server."]; // innitial message before the server ever sends a message to the client. "PVDZE_Z_LoadMessage" addPublicVariableEventHandler {Zupa_LoadingMessage = _this select 1;}; //This is still needed but the fsm should terminate if any errors pop up. [] spawn { private["_timeOut","_display","_control1","_control2"]; disableSerialization; _timeOut = 0; dayz_loadScreenMsg = ""; diag_log "DEBUG: loadscreen guard started."; _display = uiNameSpace getVariable "BIS_loadingScreen"; if (!isNil "_display") then { _control1 = _display displayctrl 8400; _control2 = _display displayctrl 102; }; if (!isNil "dayz_DisplayGenderSelect") then { waitUntil {!dayz_DisplayGenderSelect}; }; // 120 sec timeout (12000 * 0.01) while { _timeOut < 12000 } do { if (dayz_clientPreload && dayz_authed) exitWith { diag_log "PLOGIN: Login loop completed!"; endLoadingScreen; }; if (!isNil "_display") then { if ( isNull _display ) then { waitUntil { !dialog; }; startLoadingScreen ["","RscDisplayLoadCustom"]; _display = uiNameSpace getVariable "BIS_loadingScreen"; _control1 = _display displayctrl 8400; _control2 = _display displayctrl 102; }; _control1 ctrlSetText format["Zupa Info: %1 & %2.",Zupa_LoadingMessage select 0 ,dayz_loadScreenMsg]; _control2 ctrlSetText format["%1",round(_timeOut*0.01)]; }; if( Zupa_LoadingMessage select 0 != "Server running")then{ _timeOut = 0; }else{ _timeOut = _timeOut + 1; }; if (_timeOut >= 12000) then { 1 cutText [localize "str_player_login_timeout", "PLAIN DOWN"]; sleep 10; endLoadingScreen; endMission "END1"; }; sleep 0.01; }; }; Now we going to the server_monitor.sqf ( server sided)
     
    1)
    Add
    PVDZE_Z_LoadMessage = ["Getting Objects from Hive"]; publicVariable "PVDZE_Z_LoadMessage"; Above
    serverVehicleCounter = []; _hiveResponse = []; 2)
     
    add
    _ammountOfObject = count (_BuildingQueue + _objectQueue); _theMessage = format ["Spawning %1 objects and vehicles", _ammountOfObject]; PVDZE_Z_LoadMessage = [_theMessage]; publicVariable "PVDZE_Z_LoadMessage"; _currentCount = 0;      _newMileStone = 50; above
    _totalvehicles = 0; { _idKey = _x select 1; _type = _x select 2; _ownerID = _x select 3; 3) 
    add
    if( _currentCount == _newMileStone)then{ // to reduce bandwith _newMileStone = _newMileStone + 50; // every 50 items loaded refresh message _theMessage = format ["Spawned %1 of %2 objects",_currentCount, _ammountOfObject]; PVDZE_Z_LoadMessage = [_theMessage]; publicVariable "PVDZE_Z_LoadMessage"; }; _currentCount = _currentCount + 1;  above 
    } count (_BuildingQueue + _objectQueue); // # END SPAWN OBJECTS # 4)
    add
    _theMessage = "Loading trader data"; PVDZE_Z_LoadMessage = [_theMessage]; publicVariable "PVDZE_Z_LoadMessage"; AFTER
    if !(DZE_ConfigTrader) then { 5) 
     
    add 
    _theMessage = format["Spawning %1 new vehicles", _vehLimit]; PVDZE_Z_LoadMessage = [_theMessage]; publicVariable "PVDZE_Z_LoadMessage";  AFTER
    // spawn_vehicles _vehLimit = MaxVehicleLimit - _totalvehicles; 6) 
     
    add
    _theMessage = "Finishing up the server"; PVDZE_Z_LoadMessage = [_theMessage]; publicVariable "PVDZE_Z_LoadMessage"; BEFORE
    // spawn_roadblocks diag_log ("HIVE: Spawning # of Debris: " + str(MaxDynamicDebris)); for "_x" from 1 to MaxDynamicDebris do { [] spawn spawn_roadblocks; }; 7 LAST)
     
    add
    _theMessage = format["Server running", _vehLimit]; PVDZE_Z_LoadMessage = [_theMessage]; publicVariable "PVDZE_Z_LoadMessage"; AFTER
    diag_log format["Total Number of spawn locations %1", actualSpawnMarkerCount];
×
×
  • Create New...