Jump to content

He-Man

Developer
  • Posts

    808
  • Joined

  • Last visited

  • Days Won

    63

Posts posted by He-Man

  1. in our last EPOCH_load_storage.sqf was "_vehicle enablesimulationGlobal false" already integrated and it worked.

    Now, after update to 0.3.6, the EPOCH_load_storage.sqf is exacly the same then before, but we have also the Problems, that Safes / Lockboxes have sometime no cursortarget.

    So it can't be only a problem with enablesimulationglobal.

    Any Idea, why there is sometimes no cursortarget for safes / lockboxes?

  2. Upgrate your Server to the last built!

    Safes have enablesimulationglobal false (for Lockboxes I'm not sure), when locked.

    Then it should not be possible to take something out!

    There is already another fix to prevent completely looking in locked Safes / Lockboxes by blocking the inventory 5m around them, when locked.

    Search the forum for this.

  3. I changed some codes for Basebuilding, because the following Problems:

    - A Group can build as much Shelfes, Lockboxes, Safes... as they want. I wanted a config for this

    - I wanted a more detailed config for building elements.

    - When building the last building element (300/300 for example), the element stucks, jammer overloaded comes up an the building element can't be remooved until restart

    - When building a 2nd lockbox outside the jammer range, same as above. The second lockbox stucks instant after creating.

     

    Now I made these changes:

    - override the first "if !(_objType call EPOCH_isBuildAllowed) exitWith{};" in EPOCH_simulSwap and EPOCH_staticMove. This is necessary, because the Check comes up, before the Element has changed from finished element to simulated element. So it will be count as a finished Element at this point.

    - added "if !(_objType call EPOCH_isBuildAllowed) exitWith{true};" in EPOCH_fnc_SelectTargetBuild (because I override it in EPOCH_simulSwap.

    - added a config ARRAY!!! for buildingCountArray and storagecountArray in CfgEpochClient

    - buildingCountArray[] = {x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x}; buildingcountlimit: - 1st number: group consists 1 player / 2nd number group consists 2 player...

    - storagecountArray[] = {x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x}; same as above, but for storages

    - inserted a building limit for storages (Tipi, Shelfes, Lockboxes, Safes, Workbenches)

    - inserted foundations in _objectCount

    - added building limit to Frequency overloaded message

    known issues:

    - When creating second lockbox outside jammer od 300/300 element inside jammer, after a few seconds (10s counter!) the element falls down. But it is useable / removeable now.

     

    my cfgepochclient.hpp entry as an example:

    buildingCountArray[] = {80,80,140,140,140,200,200,200,200,300,300,300,300,300,300,300};

    storagecountArray[] = {10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160};

     

    Is it possible to include this in the next  build?

    In standard settings, you can set the variables to a high level, so without changing them, they have no effect. 

    Here you can find the files:

    EPOCH_isBuildAllowed.sqf: http://pastebin.com/sQdVUKyx

    EPOCH_fnc_SelectTargetBuild.sqf: http://pastebin.com/VZbF3L24

    EPOCH_simulSwap.sqf: http://pastebin.com/KUkMGvS1

    EPOCH_staticMove.sqf: http://pastebin.com/4M71u0B6

  4. 6-9 FPS should be to low for his Hardware!

    Check for:

    - Graphic Driver update

    - Ingame Resolution (both 1920x1080???)

    - Ingame Video Settings (Disable VSync!)

    - Check the Real CPU Core with for example CPU-Z. Could be, that the CPU will not boost up and run with 800 Mhz ;)

  5. Hi,

    I spent some time for the Client side scripts for Trading:

    - eliminated a bug, that after trying to sell a temp Vehicle (not listed in DB) you can not trade anymore

    - Making Primary Weapons sellable out of your hand (ATM it is impossible to sell big weapons, because they are to heavy for all Backpacks)

    - Making Backpacks purchaseable / sellable (only if they are empty and on your back).

     

    It is already working on our Server and it would be nice, if this will come within the next Client patch!

     

    EPOCH_NPCTraderMenuFilter.sqf: http://pastebin.com/23345uhA

    EPOCH_startNpcTrade.sqf: http://pastebin.com/qxJcb2ps

     

    Edit: Changed EPOCH_startNpcTrade.sqf

  6. It's really enough, to change it only in the security_checks.h?

    Or must it also be added into the Client Start script like:

            player removealleventhandlers "InventoryOpened";
            player addeventhandler ["InventoryOpened",{ _this spawn EPOCH_initUI;_container = _this select 1; _lockedNear = false;if (_container isKindOf 'GroundWeaponHolder') then {{if (locked _x in [2, 3] || _x getVariable['EPOCH_Locked', false]) exitWith {_lockedNear = true}} forEach (player nearSupplies 5);};(locked _container in [2, 3] || _container getVariable['EPOCH_Locked', false] || _lockedNear) }];

  7. 13 hours ago, infiSTAR.de said:

    You could add an eventhandler for "ContainerOpened" to the safe/lockbox and have that check if it is really unlocked or not.

    Maybe it is enough to add someting like
    player action ['Gear', player];

    to the inventoryOpened evenhandler, as players will be forced into the "ground" tab

    Checked it also, but unfortunately this doesn't work because the eventhandler only triggers, when the Safe is in cursortarget.

    The only solution I found is changing the inventoryopened trigger from Epoch. But then, you can't open your inventory in a range of 2,5m around a locked Safe / Lockbox.

    But this should be better than accessable Safes :)

    NOTE: For Infistar Users, this will NOT work! It's, because Infistar overrides the InventoryOpened trigger (since 0220???)

     

    Change in a3_epoch_server_settings\configs\security\security_checks.h

            InventoryOpened = "_this spawn EPOCH_initUI; (locked (_this select 1) in [2, 3] || (_this select 1) getVariable['EPOCH_Locked', false])";
    to

            InventoryOpened = "_this spawn EPOCH_initUI; (locked (_this select 1) in [2, 3] || (nearestobjects [player, ['Safe_EPOCH','Lockbox_EPOCH'],2.5] select 0) getvariable ['EPOCH_Locked', false])";

     

    Add in Init.sqf (or other files, the client is loading)

    if (hasinterface) then {
            player removealleventhandlers "InventoryOpened";
            player addeventhandler ["InventoryOpened",{_this spawn EPOCH_initUI; (locked (_this select 1) in [2, 3] || (nearestobjects [player, ['Safe_EPOCH','Lockbox_EPOCH'],2.5] select 0) getvariable ['EPOCH_Locked', false])}];
    };

  8. Hi,

    by trying to sell a temp vehicle (not listes in DB) I have the problem, that no more trading is possible until relog.

    Found out the following:

    - Client sets the Variable EPOCH_TRADE_STARTED = true

    - When selling a temp vehicle, " if (!(_arrayIn isEqualTo[]) || !(_arrayOut isEqualTo[])) then { ..." will not be true

    - "EPOCH_TRADE_STARTED = nil;" will only be set, if the above is true

     

     

    I think the following lines have to be before the LAST };

        EPOCH_TRADE_COMPLETE = nil;
        EPOCH_TRADE_STARTED = nil;

     

    So the End must shown like this:

                    else {
                        _errorMsg = 'Failed To Purchase Items';
                        _dt = [format["<t size='0.8' shadow='0' color='#99ffffff'>%1</t>", _errorMsg], 0, 0.4, 5, 2, 0, 2] spawn bis_fnc_dynamictext;
                    };
                };

            };
        };
        EPOCH_TRADE_COMPLETE = nil;
        EPOCH_TRADE_STARTED = nil;
    };

     

  9. Ah, thanks for this Information!

     

    Edit:

    Doublechecked and found, that _vehSlot is already used in 0.3.4!

    0.3.4:

    _vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"];

     

     

    Because that I wrote, that for me the code seems ok.

    I have no idea, where the codes becomes the wrong _slot from.

    But again: _slot renaming into _traderslot seems to work.

  10. Hi,

    there is a Bug when buying Vehicles from Trader.

    When buying a Vehicle, the following code will push back the AI-Items to the DB:

    _objHiveKey = format["%1:%2", (call EPOCH_fn_InstanceID), _slot];
    ["AI_ITEMS", _objHiveKey, EPOCH_expiresAIdata, [_itemClasses, _itemQtys]] call EPOCH_fnc_server_hiveSETEX;

    Now it happens, that NOT the slot from the Trader will be pushed back. Instead, the Vehicle Slot will be pushed back. So the Trader becomes a duplicate with the vehicles slot in the DB.

    When no other trade was made after this, after a restart the Vehicle will stay on the Map and also in the trader inventory (because the Vehicle was only deleted in the duplicate).

    I can't retrace, why this happen. The code seems okay.

    To fix it, you only have to change all _slot in the EPOCH_server_makeNPCTrade.sqf into _traderslot.

    That's all :)

  11. Do you have a HC or something else, that has init enablesimulation false in the mission.sqm?

    I had this and after the update, sometimes all players have executes this comand (I don't know why). So I have deleted this and now no more freeze.

    Execute "player enablesimulation true" in the adminconsole, when freezed. If you are unfreezed, you must search for "player enablesimulation false" in your scripts!

  12. Hi, found a little Bug in the Epoch Masterloop:

     0:47:44 Error in expression <
    EPOCH_chargeRate = ceil(_totalCapacity / (count _players));
    EPOCH_nearPower = t>
     0:47:44   Error position: </ (count _players));
    EPOCH_nearPower = t>
     0:47:44   Error Zero divisor
     0:47:44 File x\addons\a3_epoch_code\compile\setup\EPOCH_masterLoop.sqf, line 518

     

    The lines shows:

    _players = player nearEntities[["Epoch_Male_F", "Epoch_Female_F"], _energyRange];

    EPOCH_chargeRate = ceil(_totalCapacity / (count _players));

     

    Now, when I'm alone on a Server:

    "_players = player nearEntities[["Epoch_Male_F", "Epoch_Female_F"], _energyRange];" will be 0

    ->  ceil(_totalCapacity / 0; -> Error

     

    Better should be:

    _players = player nearEntities[["Epoch_Male_F", "Epoch_Female_F"], _energyRange];

    if (count _players == 0) then {EPOCH_chargeRate = ceil _totalCapacity;} else { EPOCH_chargeRate = ceil (_totalCapacity / (count _players));};

     

  13. uisleep 30;
    if (isserver) then {
    "UnGodVeh" addPublicVariableEventHandler {	
    	private["_veh"];
    	_veh = _this select 1;
    	_veh allowdamage true;
    };
    {
    	_x allowDamage false;
    } foreach allvehicles;
    };
    
    if (hasinterface) then {
    	while {true} do{
    		waituntil {vehicle player != player};
    		uisleep 1;
    		UnGodVeh = vehicle player;
    		uisleep 1;
    		publicvariableserver "UnGodVeh";	
    		waituntil {vehicle player == player};
    	};
    };

     

×
×
  • Create New...