Jump to content

RimBlock

Member
  • Posts

    1140
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by RimBlock

  1. litl confused: why moved server_monitor.sqf to mission directory???

     

    and if that's true?

     

    server_funtions.sqf

     

    under

    server_updateObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_updateObject.sqf";

     

    add line

     

    server_publishFullObject = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_publishFullObject.sqf"

     

    and more line in  Server_monitor.sqf

     

    repack pbo not done? work method?

     

    1. To enable install without needing to touch the server pbo file.

     

    2. Yes there is a new script for the server called server_publishFullObject.sqf

     

    3. Yes you need to add the new script to the server_functions.sqf

     

    4.  You can add the files to the server pbo file and change the links to point to them.  Whichever you prefer.

  2. Yeah had seen that one too. 

     

    Most likely will be tied to the HDD speed where are DB servers will tend to be cached, tables can be indexed etc. 

     

    May be good for holding server configs and items that just need loading every now and then.  Could put the variables in an ini and load it with that extension rather than in a variables.sqf.  Create the variable name dynamically based on the name from the .ini and then populate its default value (server side).  Could even do that on the server and then push client relelvent variable defaults to the clients in a JIP compatible way so they are not hard coded in the sqf files at all.  May add a bit more security and allows the client variable config to be controlled / changed server side without any client file modifications. 

     

    We are doing the same sort of thing with our A3 mod for various items and controls the client requres rather than hard coding it in the client PBO files.

  3. This is the problem with multiple mods using the same wouldspace field for different things.  You now need to account for all combinations.

     

    If you want to be a pioneer then have a read through

     

    If A Plot for Life is mandatory then you can leave the code as it is.

     

    If you want to leave a Plot for Life as being a selectable option (you can turn it on or off) then wherever you see

    _ownerPUID = _worldspace select [a number, i.e. 2];

    change to

    if (DZE_APlotforLife) then {
    	_ownerPUID = _worldspace select [same number as the line it replaces, i.e. 2];
    else {
    	_ownerPUID = _ownerID;
    };
    

     Do the same for all instances.  All you are doing is setting ownership based on if the A Plot for life variable to either SteamID or CharacterID rather than just setting it as the SteamID.

     

    It can probably be done a bit more efficently but that is the best that comes to mind sitting at work ;) .

  4. My test server is currently down (Adding a water cooling loop) but I can take a look once I get the hand of this acrylic tube bending :) .

     

    For the new A3 mod I am working on I have gone with storing the worldspace as seperate integer columns in the DB so no conversion to store, just split and combine depending on direction (DB or A3).  You could do the same with A2Net but, as you say, how much of the wheel do you want to re-invent in order to get the A2 Epoch game to the state you want it....

     

    WIll have a play if my server boots without blowing up before you find a solution.

  5. I see you are chatting on KillZoneKids site concerning the stuff Mikeeeyy has leveraged for his mod .

     

    Cant read the chat from work though :) .

     

    That is probably the best way to go with A2 and seems to take care ofthe worldspace position shift issues quite nicely.

  6. In most cases, the actual changes are pretty small, it is just that they happen all over the place.  A Plot for Life v2.34 is also already merged with SBP and modular building (both in the Epoch 1.0.6 possible release).

     

    @Everyone.

     

    There are two possible ways for the plot boundary to be displayed.

     

    1. Local

    Each person who wants to see the boundary must turn on the option from the plot pole.

    Advantage - It is less resource hungry as the effect is only local to the players who turned the plot boundary on.

    Disadvantage - Anyone who wants to see the boundary needs to turn it on - Less like real life.

     

    2. Global

    One person turns on the plot boundary and all can see it.

    Advantage - One person turns the boundary on and all can see it (more like real life).

    Disadvantage - Everyone elses world is made aware of it, even if they cannot see it - Bit more resource hungry.

     

    Number 2 is already implemented.  F3cuk has raised a pull request for option 1 which I am also fine with but want to get other peoples views on whether to default to option 1 or 2.

     

    Post your preference here and you all can decided which way is best for the mod  :) .

  7. I was being polite :P

     

    To be honest, only if extDB proves to be a noticable better performer I'll consider switching. Right now I'm quite happy with the custom Hiveext that we use (changing it to suit your needs is not rocket science).

     

    Well if you are not used to programming in C++ and dont have a background in object orientated languages and no experience of creating a build environment and working with various IDEs (Visual Studio) then it has a pretty steep learning curve. 

     

    I personally don't think the process of 'patching' the hiveext is the best way to go.  If I want to add a new table or query for a new mod then I dont want to have to reprogram the extension, recompile it and then distribute it to anyone who wants to use the mod.  Having multiple versions of the hive extension also creates confusion as to which version have what features enabled for what mods.  Having something that is open but then can be locked down by the server owners seems a better to control and administer system.

     

    Porting the A2 Epoch calls to extDB will be interesting but Epoch really needs a rewrite to make much better use of the extDB calls you can create.  That would, of course, be a massive task though.

  8.  

     Just in case anyone is still interested in this, a few quick updates from tonight's experiments.

     

    Now got CHILD:201 calls converted along with 101/102, including support for single currency. I've also discovered something interesting about DayZ's backend.

     

    You know those "LastAte" and "LastDrank" columns in the database?

     

    They do nothing. Absolutely fuck all.

     

    They'll ALWAYS be equal to Datestamp (the time your character was created), because they're only set once - at character creation, specifically with an Insert Into command. Which means that EVERY time you log in, it calculates "time since you last ate/drank" using a TIMESTAMPDIFF; as shown below:

     

    [getCharacter]
    SQL1_1 = SELECT CharacterID, PlayerUID, Inventory, Backpack,
    SQL1_2 = TIMESTAMPDIFF(MINUTE,Datestamp,LastLogin) as SurvivalTime,
    SQL1_3 = TIMESTAMPDIFF(MINUTE,LastAte,NOW()) as MinsLastAte,
    SQL1_4 = TIMESTAMPDIFF(MINUTE,LastDrank,NOW()) as MinsLastDrank,
    SQL1_5 = Model, Infected FROM character_data WHERE PlayerUID = '$INPUT_1' AND Alive = 1 ORDER BY CharacterID DESC LIMIT 1;
    Number of Inputs = 1
    

    There's code to update this in 201 calls, but DayZ ALWAYS sends [false,false] for those values; it's hard-coded to do so. I have NO idea why.

     

    Instead, food/drink levels are stored as part of the medical array as numerical values; "time" isn't involved anymore. I assume this is to prevent you from logging in after a week of not playing and discovering that your character is dead lol. However, this should've been removed from HiveExt and the Epoch codebase a LONG time ago. There are various other bits and bobs like this; at the moment I'm working on a straight conversion and just getting everything working, but once that's complete I'll look into optimization.

     

     

    Not surprised.  The last ate / drank mechanics should be more like the vehicle fuel remaining.  Full = 1, take away bits for different activities (inc running / building etc) and save it.  0 = empty.  Very easy to convert to affect the GUI in different ways.

     

    Update:

     

    Ok, looking throught hte HiveExt code, it works out the minutes between last ate / drank and saves those (as you have shown in the code you posted above ) :) .

     

    The code is availble in the Hiveext to sync the last ate / drank times (hive 201 call) but that part of the 201 call is never used in the EPoch code.  In server_playersync it ignores the ate & drank variables passed to it and hard codes false for them.

     

    Would be easy to 'activate' though.

     

    Looking through the change history, it has always been like that which indicates it was an addition that just never got finished.

     

     

    Ehm welcome to the world of DayZ (and Epoch) code which atleast contains 10% of code that is deprecated. Imho the devs did a really poor job on keeping code organised, clean and well-structured.

     

    Only 10% ?. :)

     

    On a slightly different note.  AFAIK there is no problems running multiple extentions at the same time so you could leave the HiveExt as it is and use extDB to add new calls for new features / tables etc.

  9. I was able to fix the ui bug by adding Dayz_Dark_UI = false; to my init.sqf. Not sure why it fixed it. the author put code in place to set it to false if not in the init but it worked for me.

     

    I am also having a problem with the game not connecting players to objects. After installing the addon, anything I had built no longer had a remove option and my plot pole no longer knew me. I can replace a pole, and any new objects also knows who i am. but once the server is restarted the association is lost.

     

    Also safes do not get a scroll option to unlock, unless placed before a restart. epoch lockable objects open fine.  any fixes for this? I know its got to be something small. seems like something to do with the function to get the puid.

     

     

    I think I may need to put a FAQ up on the first page as this thread is so big now it is not so easy to find answered questions.

     

    For the unlocking of safes.  As standard, Epoch is designed so the owner does not need to put in the safe code.  This, however, did'nt work as the safe could not be attached to an owner because the safes lock code was stored in the safes owner filed (characterid).  Now this mod stores the ownership info somewhere else the original mechanisum is working correctly.  Owners should be able to unlock safes without having to put the safes code in.  This can be reverted so everyone has to supply a code to unlock safes and how to do it was posted in this thread... somewhere.  This should be the same pre or post server reboot though. 

     

    For the UI issues, grab the newest version of player_updateGUI.sqf from my GitHub or extract it from the dropbox zip file.  I updated it recently to use the correct Epoch 1.0.5.1 base file (it was using the Epoch 1.0.6 version). 

     

    Initially when you use the mod with legacy (originally built) bases, you will have to take ownership (an option on the plot pole if enabled).  This option aligns the all the plots buildables (apart from locked doors, safes, tents etc) to the plot pole owners SteamID.  After you do that, old bases should be correctly linked to the owner.  If you are using the Infinistar Antihack then you will probably need to tweek it as it thinks the take ownership is someone nuking a base (it sorta is as it deletes the object and recreates them as it is not possible just to update those fields with the Epoch hive calls available).

     

    If you are loosing ownership after reboot then check your DB to make sure the objects are being created with the owners SteamID in the worldspace field of the objects record in the object_data table.  Double check the server side scripts to make sure you have linked them in correctly. 

  10.  

    Hi RimBlock,
     
    As I can do to put the pole plot only the owner can remove it? not anyone?

     

     

    Hi Troppite,

     

    As standard, anyone can remove a plot pole.  A Plot for Life does not change that.

     

    There are other mods and options for indestructable bases etc that may change it so only the owner can remove the plot pole but that is not part of this mod.

     

    Do a search on the forums for indestructable bases and you should find something that can help.  It should not be hard to setup with A Plot for Life.

  11. Mission init.sqf

    /*

    For DayZ Epoch

    Addons Credits: Jetski Yanahui by Kol9yN, Zakat, Gerasimow9, YuraPetrov, zGuba, A.Karagod, IceBreakr, Sahbazz

    */

    startLoadingScreen ["","RscDisplayLoadCustom"];

    cutText ["","BLACK OUT"];

    enableSaving [false, false];

    //REALLY IMPORTANT VALUES

    dayZ_instance = 11; //The instance

    dayzHiveRequest = [];

    initialized = false;

    dayz_previousID = 0;

    DZE_APlotforLife = true;

    DZE_modularBuild = true;

    //disable greeting menu

    player setVariable ["BIS_noCoreConversations", true];

    //disable radio messages to be heard and shown in the left lower corner of the screen

    enableRadio false;

    // May prevent "how are you civillian?" messages from NPC

    enableSentences false;

    // DayZ Epoch config

    spawnShoremode = 1; // Default = 1 (on shore)

    spawnArea= 1500; // Default = 1500

    MaxVehicleLimit = 400; // Default = 50

    MaxDynamicDebris = 300; // Default = 100

    dayz_MapArea = 16000; // Default = 10000

    dayz_maxLocalZombies = 30; // Default = 30

    dayz_paraSpawn = false;

    dayz_minpos = -1;

    dayz_maxpos = 16000;

    dayz_sellDistance_vehicle = 20;

    dayz_sellDistance_boat = 30;

    dayz_sellDistance_air = 50;

    dayz_maxAnimals = 2; // Default: 8

    dayz_tameDogs = true;

    DynamicVehicleDamageLow = 0; // Default: 0

    DynamicVehicleDamageHigh = 100; // Default: 100

    DZE_BuildOnRoads = false; // Default: False

    EpochEvents = [["any","any","any","any",30,"crash_spawner"],["any","any","any","any",0,"crash_spawner"],["any","any","any","any",15,"supply_drop"]];

    dayz_fullMoonNights = true;

    //Load in compiled functions

    call compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\init\variables.sqf"; //Initilize the Variables (IMPORTANT: Must happen very early)

    progressLoadingScreen 0.1;

    call compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\init\publicEH.sqf"; //Initilize the publicVariable event handlers

    progressLoadingScreen 0.2;

    call compile preprocessFileLineNumbers "\z\addons\dayz_code\medical\setup_functions_med.sqf"; //Functions used by CLIENT for medical

    progressLoadingScreen 0.4;

    call compile preprocessFileLineNumbers "Custom\A_Plot_for_Life\init\compiles.sqf"; //Compile regular functions

    progressLoadingScreen 0.5;

    call compile preprocessFileLineNumbers "server_traders.sqf"; //Compile trader configs

    progressLoadingScreen 1.0;

    "filmic" setToneMappingParams [0.153, 0.357, 0.231, 0.1573, 0.011, 3.750, 6, 4]; setToneMapping "Filmic";

    if (isServer) then {

    call compile preprocessFileLineNumbers "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\dynamic_vehicle.sqf";

    //Compile vehicle configs

    // Add trader citys

    _nil = [] execVM "\z\addons\dayz_server\missions\DayZ_Epoch_11.Chernarus\mission.sqf";

    _serverMonitor = [] execVM "custom\system\server_monitor.sqf";

    };

    if (!isDedicated) then {

    //Conduct map operations

    0 fadeSound 0;

    waitUntil {!isNil "dayz_loadScreenMsg"};

    dayz_loadScreenMsg = (localize "STR_AUTHENTICATING");

    //Run the player monitor

    _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}];

    _playerMonitor = [] execVM "\z\addons\dayz_code\system\player_monitor.sqf";

    //anti Hack

    //Lights

    //[false,12] execVM "\z\addons\dayz_code\compile\local_lights_init.sqf";

    };

    //Start Dynamic Weather

    execVM "\z\addons\dayz_code\external\DynamicWeatherEffects.sqf";

    #include "\z\addons\dayz_code\system\BIS_Effects\init.sqf"

     

    description.ext

    respawn = "BASE";

    respawndelay = 5;

    onLoadMission= "DayZ Epoch Chernarus";

    OnLoadIntro = "Welcome to DayZ Epoch Chernarus";

    OnLoadIntroTime = False;

    OnLoadMissionTime = False;

    disabledAI = true;

    disableChannels[]={0,2,6};

    enableItemsDropping = 0;

    briefing = 0;

    debriefing = 0;

    onPauseScript = "";

    loadScreen = "\z\addons\dayz_code\gui\dayz_logo_ca.paa";

    class Header

    {

    gameType = COOP; //DM, Team, Coop, ...

    minPlayers = 1; //min # of players the mission supports

    maxPlayers = 100; //Max # of players the mission supports

    };

    aiKills = 1;

    diagRadio = 1;

    diagHit = 1;

    class RscText

    {

    type = 0;

    idc = -1;

    x = 0;

    y = 0;

    h = 0.037;

    w = 0.3;

    style = 0x100;

    font = Zeppelin32;

    SizeEx = 0.03921;

    colorText[] = {1,1,1,1};

    colorBackground[] = {0, 0, 0, 0};

    linespacing = 1;

    };

    class RscPicture

    {

    access=0;

    type=0;

    idc=-1;

    style=48;

    colorBackground[]={0,0,0,0};

    colorText[]={1,1,1,1};

    font="TahomaB";

    sizeEx=0;

    lineSpacing=0;

    text="";

    };

    class RscLoadingText : RscText

    {

    style = 2;

    x = 0.323532;

    y = 0.666672;

    w = 0.352944;

    h = 0.039216;

    sizeEx = 0.03921;

    colorText[] = {0.543,0.5742,0.4102,1.0};

    };

    class RscProgress

    {

    x = 0.344;

    y = 0.619;

    w = 0.313726;

    h = 0.0261438;

    texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";

    colorFrame[] = {0,0,0,0};

    colorBar[] = {1,1,1,1};

    };

    class RscProgressNotFreeze

    {

    idc = -1;

    type = 45;

    style = 0;

    x = 0.022059;

    y = 0.911772;

    w = 0.029412;

    h = 0.039216;

    texture = "#(argb,8,8,3)color(0,0,0,0)";

    };

    //

    // the loading screen itself

    //

    class DayZ_loadingScreen

    {

    idd = -1;

    duration = 10e10;

    fadein = 0;

    fadeout = 0;

    name = "loading screen";

    class controlsBackground

    {

    class blackBG : RscText

    {

    x = safezoneX;

    y = safezoneY;

    w = safezoneW;

    h = safezoneH;

    text = "";

    colorText[] = {0,0,0,0};

    colorBackground[] = {0,0,0,1};

    };

    /*

    class nicePic : RscPicture

    {

    style = 48 + 0x800; // ST_PICTURE + ST_KEEP_ASPECT_RATIO

    x = safezoneX + safezoneW/2 - 0.25;

    y = safezoneY + safezoneH/2 - 0.2;

    w = 0.5;

    h = 0.4;

    text = "img\nicePic.paa";

    };

    */

    };

    class controls

    {

    class Title1 : RscLoadingText

    {

    text = "$STR_LOADING"; // "Loading" text in the middle of the screen

    };

    class CA_Progress : RscProgress // progress bar, has to have idc 104

    {

    idc = 104;

    type = 8; // CT_PROGRESS

    style = 0; // ST_SINGLE

    texture = "\ca\ui\data\loadscreen_progressbar_ca.paa";

    };

    class CA_Progress2 : RscProgressNotFreeze // progress bar that will go reverse

    {

    idc = 103;

    };

    class Name2: RscText // the text on the top-left

    {

    idc = 101;

    x = 0.05;

    y = 0.029412;

    w = 0.9;

    h = 0.04902;

    text = "";

    sizeEx = 0.05;

    colorText[] = {0.543,0.5742,0.4102,1.0};

    };

    };

    };

    class RscTitles {

    }

    #include "custom\snap_pro\snappoints.hpp"

     

    is that what you meen ?  :unsure:

     

    is there away i can give you your pass and username for you to look in server iv made an subadmin account for you.

    like on steam or xfire

     

    Nope, I mean your server and client .RPT files.

     

    The Server file will be in the directory where your Hive.ini file is kept

    The client on is on your PC unser c:\user\[login name]\appdata\local\Arma2OA (from memory, someone please correct me if wrong please).

  12. Do you mean that you would like a price in coins ?

     

    Could be, thanks Ghostrider.

     

    @DimitriPokki

     

    Sorry, this mod is designed for Vanilla Epoch.  If you have one of the mods that change the trading then maybe ask in their thread how to add.  If you are willing to post back then I will also add the information for others as well on the first post.

  13. Putting the code inside the extension is just going to put us back in the same position we are currently in where we are locked in to an extension with very little ability to change what has been hard coded.

     

    The extension should facilitate the passing of information between Arma (2/3) and the MySQL DB.  If it allows us to lock down the code that can be fired and blacklist stuff passed to the sql (like extDB currently does).

     

    Everything else should be handled server side in ArmA where it can be easily managed and more importantly changed if needed.

     

    Give or take bug fixes (if any pop up), the only thing I would like to have seen in extDB is the ability to fire stored procedures and get a return as this would allow manipulation of the data DB side without having to fire long and complex SQL statements or overburden the ArmA server process with its limited resources.

  14. Really need help about my problem

    Here is my full RPT log

    http://pastebin.com/HDeV27Dc

     

    What i have do :

    1- Copy the custom folder to mpmission and change the dictory

    2- Unpack dayz_server.pbo

    3- copy system,init folder to dayz_server.pbo & replace

    4- Copy compile folder to mpmission.

    5- Pack the pbo & upload the pbo & mission file to dayz epoch server.

     

    1. 13:44:26 Warning Message: Script custom\init\server_functions.sqf not found

     

    That looks like your first problem.  You are putting the server_finctions in the dayz_server.pbo file but not changing the reference to it in the compiles.sqf (bottom of the file).

  15.  

    I  had to do a fresh install today and had the icons not updating. Tried github and dropbox files. I did go into dayz code and just copied and pasted the entire file and switched out the lines and it worked fine afterwards.

     

    Edit: This is the error I got with a fresh server install:

    Error in expression <ontrol = _this;
    if (ctrlShown (_control select 0)) then {
    {_x ctrlShow false} fo>
      Error position: <select 0)) then {
    {_x ctrlShow false} fo>
      Error select: Type Control, expected Array,Config entry
    File mpmissions\__CUR_MP.chernarus\Custom\A_Plot_for_Life\init\compiles.sqf, line 304
    

     

    Sorry, not sure what the issue you are seeing is.

     

    Have compared the dropbox file with the same file from v2.2 and with the 1.0.5.1 Epoch file and the block I pasted above is the only difference.  I also checked for invisibles.  The error you are showing seems to be from the chunk of code before the if statement where my new code is.  This is untouched.  I can think of no reason why you should be seeing a problem with regards to that file.  It is very strange.

  16. Just a follow up. I replaced the player_updateGui.sqf with the stock epoch file just to test it and it is still happening, which leads me to believe that it is not an error in code in that specific file. Which other files in the P4L files reference the player_updateGui.sqf which could be causing this issue?

     

    A plot for Life does not reference this file at all.  The standard Epoch files update it.  A Plot for Life just tells it to look in a slightly different way for friendly identification.

     

    As I suggested previously, re-activate the debug lines in that file to find out if those variables are getting correctly set before the code calls that SQF file.

     

    Can you help me for the Instructions?

     

    I Already have a custom file if i use your file copy & Replace it's mean i have to install everything again!

    That's to hard for me it's took me a day to install single curreny from zupa i don't want to do that again!!!!

    PLEASE !!!!

     

    Sorry, please use something like diffmerge.  it is simple and fairly quick.  Raymix provided a video guide on how to use it here.  I have linked it a couple of times already in this thread.  Last time was a page or two back.

     

    Locked vehicles - Having an issue with vehicles not saving TO HIVE and on restart unlocks.

     

    A plot for life does not do anything with vehicles.

     

    Check your server .RPT file and your hive.log for clues on where the problem may reside.

×
×
  • Create New...