Jump to content

jahangir13

Member
  • Posts

    518
  • Joined

  • Last visited

  • Days Won

    1

Posts posted by jahangir13

  1. You did not execute epoch.sh from the server directory. If you enter your servers directory and execute it via ./epoch.sh it should not throw this error.

    You could enter a cd /<your_server_dir> at the beginning of epoch.sh, so your working directory is always your server directory (if you for whatever reason want to execute the script from whatever other dir).

  2. I tend to call these people 'lonesome script kiddies' and not hackers ,) There's a big difference.

    But of course that does not make it better for you hehe. Just not to put too much attention to these very poor piece of shit people.

    He again did not get any friends last year from the Christ Child laying the goods under the Christmas tree...the poor soul.

     

    Maybe you can put something like this into your init.sqf:

    if (isServer) then {
    onPlayerConnected 'diag_log format ["CONNECT LOG: Name: %1 connected, -- UID: %2 -- ID:%3",_name, _uid,_id];';
    };

     

    If the name or uid is empty you could kick the player back to lobby or kick him via battleye like storm or hambeast showed here:

     

    I have no idea of that helps or not...but maybe it makes it a bit more difficult for kids with less powerful scripts.

  3. All player controlled playable units (the example at the end):

    https://community.bistudio.com/wiki/playableUnits

     

    To randomize (select a random one from the array of all):

    _unit = Array_with_all_players call BIS_fnc_selectRandom;

     

    In dayz_server/compile/server_player_died.sqf you see how that works to identify the killer who then should get the bounty.

     

    Have a look how other events work to start this...you also need to check in the loop of the event if the target player logs out or already died before (on his own) I guess.

  4. I've solved it like this as disableUserInput does not allow the user to look around anymore. I hope that this solves it ,))

     

    /*
        DayZ Lock Safe
        Usage: [_obj] spawn player_unlockVault;
        Made for DayZ Epoch please ask permission to use/edit/distrubute email [email protected].
    */
    private ["_gearkey","_gearkeylist","_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_holder","_weapons","_magazines","_backpacks","_alreadyPacking","_lockedClass","_text","_playerNear"];

    if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_10") , "PLAIN DOWN"]; };
    DZE_ActionInProgress = true;

    //_gearkeylist = actionKeysNamesArray ["Gear", 1];
    //##_gearkeylist = actionKeys "Gear";
    //##_gearkey = _gearkeylist select 0;
    //##systemChat(format ["Gear Key: %1", _gearkey]);
    //noGkey = (findDisplay 46) displayAddEventHandler ["KeyDown", "if ((_this select 1) == (parseNumber _gearkey)) then { true }"];

    noGkey = (findDisplay 46) displayAddEventHandler ["KeyDown", "true"];
    noGothers = (findDisplay  46) displayAddEventHandler ["test", "closeDisplay 1; waitUntil { isNull (FindDisplay 106) };"];

    player removeAction s_player_lockvault;
    s_player_lockvault = 1;

    _obj = _this;
    _objType = typeOf _obj;

    _lockedClass = getText (configFile >> "CfgVehicles" >> _objType >> "lockedClass");
    _text =         getText (configFile >> "CfgVehicles" >> _objType >> "displayName");

    // Silently exit if object no longer exists
    if(isNull _obj) exitWith { DZE_ActionInProgress = false; };
    [1,1] call dayz_HungerThirst;
    player playActionNow "Medic";
    sleep 1;
    [player,"tentpack",0,false] call dayz_zombieSpeak;
    sleep 5;
                            
    _playerNear = _obj call dze_isnearest_player;
    if(_playerNear) exitWith
        {
        DZE_ActionInProgress = false;
        cutText [(localize "str_epoch_player_11") , "PLAIN DOWN"];
        (findDisplay 46) displayRemoveEventHandler ["KeyDown", noGkey];
        (findDisplay 46) displayRemoveEventHandler ["test", noGothers];
        };

    _ownerID = _obj getVariable["CharacterID","0"];
    _objectID     = _obj getVariable["ObjectID","0"];
    _objectUID    = _obj getVariable["ObjectUID","0"];

    if((_ownerID != dayz_combination) and (_ownerID != dayz_playerUID)) exitWith {DZE_ActionInProgress = false; s_player_lockvault = -1; cutText [format[(localize "str_epoch_player_115"),_text], "PLAIN DOWN"]; };

    _alreadyPacking = _obj getVariable["packing",0];
    if (_alreadyPacking == 1) exitWith {DZE_ActionInProgress = false; s_player_lockvault = -1; cutText [format[(localize "str_epoch_player_116"),_text], "PLAIN DOWN"]};
    _obj setVariable["packing",1];

    _dir = direction _obj;
    _pos = _obj getVariable["OEMPos",(getposATL _obj)];

    if(!isNull _obj) then {

        //force vault save just before locking
        PVDZE_veh_Update = [_obj,"gear"];
        publicVariableServer "PVDZE_veh_Update";

        //place vault
        _holder = createVehicle [_lockedClass,_pos,[], 0, "CAN_COLLIDE"];
        _holder setdir _dir;
        _holder setPosATL _pos;
        player reveal _holder;
        
        _holder setVariable["CharacterID",_ownerID,true];
        _holder setVariable["ObjectID",_objectID,true];
        _holder setVariable["ObjectUID",_objectUID,true];
        _holder setVariable ["OEMPos", _pos, true];

        PVDZE_obj_setlocalVars = [_obj,_holder,player];
        publicVariableServer "PVDZE_obj_setlocalVars";

    (findDisplay 46) displayRemoveEventHandler ["KeyDown", noGkey];
    (findDisplay 106) displayRemoveEventHandler ["test", noGothers];

        cutText [format[(localize "str_epoch_player_117"),_text], "PLAIN DOWN"];
    };
    s_player_lockvault = -1;
    DZE_ActionInProgress = false;

    //disableUserInput true;
    //disableUserInput false;

     

    Maybe someone can test it again to let me know (I am not sure if I did understand the dupe correctly) ;)

    Maybe both approaches should be combined...but I thought this issue had been fixed with the newest epoch?

  5. You login with your mysql root user and execute that statement:

    SET GLOBAL event_scheduler = ON;

     

    See here for more info:

    http://dev.mysql.com/doc/refman/5.1/en/events-configuration.html

     

    That should keep it enabled. I am not sure but I thought it has been deactivated once...but it seems that it's now enabled forever. You can only activate it with an mysql admin user (may be root for you).

     

    In phpMyAdmin if you login with your user for your server database and press the home button. There you can see a db information_schema. In there is a table EVENTS where you can see the events for this database (epoch or what your name is). information_schema is existent in any db.

    There you can also see when your events have been executed for the last time.

  6. "I am running short on time as I need to get this finished ASAP."

     

    Then I would say you should start immediately ;)

     

    Maintenance happens here: maintain_area.sqf (dayz_code)

    There is this loop:

     

    _objects = nearestObjects [_target, _objectClasses, _range];

    //filter to only those that have 10% damage
    _objects_filtered = [];
    {
        if (damage _x >= DZE_DamageBeforeMaint) then {
            _objects_filtered set [count _objects_filtered, _x];
       };
    } count _objects;

     

    You would need to check each object for the damage and calculate a price for it as not all objects for this plotpole may have the same damage. There can be objects created yesterday and objects created today which in these cases have different damage values.

    How do you pay 1/3 gold or 2/3 gold or whatever % values you get for your damage or is this for Single Currency which would make more sense then?

    If not you need to think about what requirements you need to be fullfilled the player has in his inventory.

     

    Hm, would be a bit too much to think about for me...for something like that ;) I just use maintenance so that I know which objects are still needed and which can be deleted and so I do not take any costs for it.

  7. The filename where the pid is stored is the same as your port. In the file (e.g. 2302.pid) there should be the real process number you see as with ps aux.

     

    In restarter.pl you have a line like this:

    my $cmdrestart = '/usr/bin/screen -h 20000 -fa -d -m -S epochtest '.PATH.'epoch.sh';

     

    epochtest is the name of the screen session for me. You have another name there. If you do a 'ps aux | grep epochtest' (with your screen name) you should see your server running:

     

    epochtest@Debian-60-squeeze-64-LAMP:~/server$ ps aux | grep epochtest
    root       728  0.0  0.0  77160  3444 ?        Ss   16:52   0:00 sshd: epochtest [priv]
    1000      1828  0.0  0.0  77160  1820 ?        S    16:52   0:00 sshd: epochtest@pts/3
    1000     18895  0.0  0.0   7924   884 pts/3    S+   16:54   0:00 grep epochtest
    1000     29949  0.0  0.0  29356  3000 ?        Ss   05:20   0:00 /usr/bin/SCREEN -h 20000 -fa -d -m -S epochtest /home/epochtest/server/epoch.sh
    1000     29951  0.0  0.0   4248   516 pts/1    Ss+  05:20   0:00 /bin/sh /home/epochtest/server/epoch.sh
    epochtest@Debian-60-squeeze-64-LAMP:~/server$

     

    The process id 29949 is the number you should see in your port.pid file (e.g. 2302.pid).

     

     

    Edit: just saw that the process number in the pid file is another one. It's the one the server binary is running, not the screen session I showed above. But nevertheless you then do a 'ps aux | grep your_port_number_from_the_file' and you see something like:

     

    epochtest@Debian-60-squeeze-64-LAMP:~/server$ ps aux | grep 16054
    1000     16054 16.1  2.3 435708 377668 pts/1   Sl+  16:57   0:11 ./server -server -mod=@napf;@dayz_epoch;@dayz_epoch_server; -config=../cfgserverax2413xc3571280.cfg -cfg=cfgdayz/basic.cfg -port=2314 -bepath=../battleye_a3chzx35 -beta=expansion;expansion/beta;expansion/beta/expansion; -noSound -noPause -world=Napf -profiles=cfgdayz -name=cfgdayz -cpucount=2 -exThreads=3 -showscripterrors -nologs -pid=2314.pid

     

     

    If you open your Arma2OA and you open the multiplayer menu...you click on button 'remote' and enter your ip and port there. After ok you should see the running server in the list. A double click connects you to the server.

     

    But ps aux commands should show you that there is something running.

  8. ?

    If you press a key, that happens by default.

     

    But what if I want a selfAction command what does this if you execute the selfAction command.

    I guess selfAction command is a good example if what I wrote above was not clear: scroll the mouse wheel, select the selfAction command 'change channel' from the list and this changes the channel you are talking in :)

    That's what I meant by 'via script'.

     

    But I think after everything I've read so far that this is not possible. But who knows...maybe someone already managed something similar with whatever way.

    I do not know how BIS does this if a user presses a key. I also don't know how they recognize a double-tap key action by a user. There are so many things which are so unclear and I guess full of bugs too, hehe.

  9. Does anybody know if it is possible to execute a key action via script command?

    I mean like pressing a key for e.g. changing the channel user talks in (like side channel,or direct chat...). Key action name for this here is 'NextChannel'. That's just an example.

     

    List of actions:

    https://community.bistudio.com/wiki/ArmA_2:_CfgDefaultKeysMapping

     

    I mean it is possible to execute a users move action, like crouch or run or something but is it also possible to do this with a non-move action?

    What I like to achieve is what happens if a user presses ',' or '.' to change a channel. The name of the channel is then shown in the left lower corner of the screen which will fade out again after 1 or 2 seconds.

    I want this to happen within a script.

×
×
  • Create New...