Jump to content

DangerRuss

Member
  • Posts

    963
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by DangerRuss

  1. added sleep 4; to try and still not working if player died is sniper1_dz, with player Survivor2_DZ or Bandit2_DZ i dont have problems.

    EJXgR9r.jpg

    fnc_plyrHit.sqf

    private ["_victim", "_attacker","_weapon","_weapon_dmg","_distance","_damage","_weapon_img"];
    _victim = _this select 0;
    _attacker = _this select 1;
    _damage = _this select 2;
    
    if (!isPlayer _victim || !isPlayer _attacker) exitWith {};
    if ((owner _victim) == (owner _attacker)) exitWith {
        _victim setVariable["AttackedBy", _victim, true];
    };
    
    _weapon = (weaponState _attacker);
    
    _vehicle = typeOf (vehicle _attacker);
    
    if ((getText (configFile >> "CfgVehicles" >> _vehicle >> "vehicleClass")) in ["CarW","Car","CarD","Armored","Ship","Support","Air","ArmouredW","ArmouredD","SupportWoodland_ACR"]) then {
        _weapon_dmg = getText (configFile >> 'CfgVehicles' >> _vehicle >> 'displayName');
        _weapon_img = gettext(configFile >> 'CfgVehicles' >> _vehicle >> 'picture');
    } else {
        _weapon_dmg = gettext (configFile >> 'cfgWeapons' >> (currentWeapon _attacker) >> 'displayName');
        _weapon_img = gettext(configFile >> 'cfgWeapons' >> (currentWeapon _attacker) >> 'picture');
    };
    
    _distance = _victim distance _attacker;
    
    diag_log format["PLAYERHIT: %1 was hit by %2 with %3 from %4m with %5 dmg", _victim, _attacker, _weapon_dmg, _distance, _damage];
    
    _victim setVariable["AttackedBy", _attacker, true];
    _victim setVariable["AttackedByName", (name _attacker), true];
    _victim setVariable["AttackedByWeapon", _weapon_dmg, true];
    _victim setVariable["AttackedFromDistance", _distance, true];
    _victim setVariable["AttackedByWeaponImg", _weapon_img, true];

     

    server_playerDied.sqf

    private ["_characterID","_minutes","_newObject","_playerID","_infected","_victim","_victimName","_killer","_killerName","_weapon","_distance","_message","_loc_message","_key","_death_record"];
    //[unit, weapon, muzzle, mode, ammo, magazine, projectile]
    _characterID =     _this select 0;
    _minutes =        _this select 1;
    _newObject =     _this select 2;
    _playerID =     _this select 3;
    _infected =        _this select 4;
    if (((count _this) >= 6) && {(typeName (_this select 5)) == "STRING"} && {(_this select 5) != ""}) then {
        _victimName =    _this select 5;
    } else {
        _victimName =  if (alive _newObject) then {name _newObject;} else {"";};
    };
    _victim = _newObject;
    _newObject setVariable ["bodyName", _victimName, true];
    
    sleep 3;
    
    _killer = _victim getVariable["AttackedBy", "nil"];
    _killerName = _victim getVariable["AttackedByName", "nil"];
    
    // when a zombie kills a player _killer, _killerName && _weapon will be "nil"
    // we can use this to determine a zombie kill && send a customized message for that. right now no killmsg means it was a zombie.
    if ((typeName _killer) != "STRING") then
    {
        _weapon = _victim getVariable["AttackedByWeapon", "nil"];
        _distance = _victim getVariable["AttackedFromDistance", "nil"];
    
        if ((owner _victim) == (owner _killer)) then
        {
            _message = format["%1 killed himself",_victimName];
            _loc_message = format["PKILL: %1 killed himself", _victimName];
        }
        else
        {
            _message = format["%1 was killed by %2 with weapon %3 from %4m",_victimName, _killerName, _weapon, _distance];
            _loc_message = format["PKILL: %1 was killed by %2 with weapon %3 from %4m", _victimName, _killerName, _weapon, _distance];
        
        
            _pic = _victim getVariable["AttackedByWeaponImg", "nil"];
            
                    if ((gettext (configFile >> 'cfgWeapons' >> (currentWeapon _killer) >> 'displayName')) != "Throw") then {
                if (!isNil "_pic") then {
                    _kill_txt = format ["<t align='left' size='0.7'>%1 </t>",_killerName,_pic,_victimName,(ceil _distance)];
                    _kill_txt = _kill_txt + format ["<img size='0.9' align='left' image='%2'/>",_killerName,_pic,_victimName,(ceil _distance)];
                    _kill_txt = _kill_txt + format ["<t align='left' size='0.7'> %3 </t>",_killerName,_pic,_victimName,(ceil _distance)];
                    _kill_txt = _kill_txt + format ["<t align='left' size='0.7'>[%4m]</t>",_killerName,_pic,_victimName,(ceil _distance)];
    
                    customkillMessage = [_kill_txt];
                    publicVariable "customkillMessage";
                };
            };
        
        
        };
    
        diag_log _loc_message;
    
        if(DZE_DeathMsgGlobal) then {
            [nil, nil, rspawn, [_killer, _message], { (_this select 0) globalChat (_this select 1) }] call RE;
        };
        /* needs customRemoteMessage
        if(DZE_DeathMsgGlobal) then {
            customRemoteMessage = ['globalChat', _message, _killer];
            publicVariable "customRemoteMessage";
        };
        */
        if(DZE_DeathMsgSide) then {
            [nil, nil, rspawn, [_killer, _message], { (_this select 0) sideChat (_this select 1) }] call RE;
        };
        if(DZE_DeathMsgTitleText) then {
            [nil,nil,"per",rTITLETEXT,_message,"PLAIN DOWN"] call RE;
        };
    
        // build array to store death messages to allow viewing at message board in trader citys.
        _death_record = [
            _victimName,
            _killerName,
            _weapon,
            _distance,
            ServerCurrentTime
        ];
        PlayerDeaths set [count PlayerDeaths,_death_record];
    
        // Cleanup
        _victim setVariable["AttackedBy", "nil", true];
        _victim setVariable["AttackedByName", "nil", true];
        _victim setVariable["AttackedByWeapon", "nil", true];
        _victim setVariable["AttackedFromDistance", "nil", true];
    };
    
    // Might not be the best way...
    /*
    if (isnil "dayz_disco") then {
        dayz_disco = [];
    };
    */
    
    // dayz_disco = dayz_disco - [_playerID];
    _newObject setVariable["processedDeath",diag_tickTime];
    
    if (typeName _minutes == "STRING") then
    {
        _minutes = parseNumber _minutes;
    };
    
    diag_log ("PDEATH: Player Died " + _playerID);
    
    if (_characterID != "0") then
    {
        _key = format["CHILD:202:%1:%2:%3:",_characterID,_minutes,_infected];
        #ifdef DZE_SERVER_DEBUG_HIVE
        diag_log ("HIVE: WRITE: "+ str(_key));
        #endif
        _key call server_hiveWrite;
    }
    else
    {
        deleteVehicle _newObject;
    };

     

    kill_msg.sqf

    /*** Written by 0verHeaT ***/
    fnc_kill_message = {
        private ["_finaltxt"];
        _finaltxt = _this select 0;
        [_finaltxt,[safezoneX + 0.01 * safezoneW,2.0],[safezoneY + 0.01 * safezoneH,0.3],30,0.5] spawn BIS_fnc_dynamicText;
    };
    "customkillMessage" addPublicVariableEventHandler {(_this select 1) call fnc_kill_message;};

    These are 100% working, if they dont work for you there is an issue somewhere else causing a conflict.

  2. Possible Deathboard Fix

     

    player_murderMenu.sqf

    EpochDeathBoardLoad = {
    	createdialog "EpochDeathBoardDialog";
    	{
    		private ["_index"];
    		_index = lbAdd [21000,_x select 0];
    	} count PV_DeathBoard;
    };
    
    EpochDeathBoardClick = {
    	disableSerialization;
    	private ["_index","_record","_output","_record_stxt","_name","_image","_h","_m","_format","_victim","_attacker","_time","_distance"];
    		_quotes = [
    			"Death is God's way of telling you not to be such a wise guy.",
    			"What happens if you get scared half to death, twice?",
    			"Don't upset me.. I'm running out of places to hide the bodies.",
    			"Don't run, you'll just die tired.",
    			"Give me immortality || give me death.",
    			"I can't live with death; he's always leaving the toilet seat up.",
    			"Why won't you die?!?!",
    			"Guns don't kill people; death kills people. It's a proven medical fact."
    		];
    	_index = _this select 0;
    	if (_index < 0) exitWith {};
    	_output = _this select 1;
    	_record = PV_DeathBoard select _index;
    
    	_victim = _record select 0;
    	_attacker = _record select 1;
    	_name = _record select 2;
    	_image = _record select 3;
    	_distance = _record select 4;
    	_time = _record select 5;
    
    	if (isNil "_victim" || isNil "_attacker" || isNil "_name" || isNil "_distance" || isNil "_time") exitWith {_output ctrlSetStructuredText parseText "<br/><br/><br/><br/><t size='1.6' align='center'>There are some information missing for this entry</t>";};
    
    	_format = {
    		private ["_codeCount","_str"];
    		_str = format["%1", _this];
    		_codeCount = (count (toArray _str));
    		if (_codeCount == 1) then {_str = format["0%1", _str];	};
    		_str;
    	};
    	_h = (_time select 0) + timezoneswitch;
    	_m = _time select 1;
    
    	_record_stxt = format["<t size='1.6' align='left'>%1</t><br/><br/>",_victim];
    	_record_stxt = _record_stxt + format["<t size='1' align='left'>Died at %1:%2</t><br/><br/>",(_h call _format),(_m call _format)];
    	_record_stxt = _record_stxt + format["<t size='1' align='left'>Was killed by %1</t><br/><br/>",_attacker];
    	_record_stxt = _record_stxt + format["<t size='1' align='left'>With a %1<br/><img size='3' image='%2' /></t><br/><br/>",_name,_image];
    	_record_stxt = _record_stxt + format["<t size='1' align='left'>At a distance of %1m</t><br/><br/>",_distance];
    	_record_stxt = _record_stxt + format["<t font='Bitstream'>%1</t>",(_quotes call BIS_fnc_selectRandom)];
    
    	_output ctrlSetStructuredText parseText _record_stxt;
    }; 

    server_playerDied.sqf

    _death_record = [
    	_victimName,
    	_killerName,
    	_weapon,
    	_pic,
    	_distance,
    	ServerCurrentTime
    ];
    PlayerDeaths set [count PlayerDeaths,_death_record];
    PV_DeathBoard = PlayerDeaths;
    publicVariable "PV_DeathBoard"; 
    

    Still a bit confused, does this completely replace the murdermenu.sqf or only a section? For example do I need to get rid of the dialogs at the top?

     

    EpochDeathBoardDialogList = 21000;
    EpochDeathBoardDialogSText = 21001;
    EpochDeathBoardDeaths = [];
    

    and isnt' the whole thing missing a

     

    };
    

    at the end?

     

    I tried adding this in, and it didnt work. So either Im doing this wrong or it doesn't work.

  3. this only appears for me if player who died is using skin Survivor2_DZ or Bandit2_DZ, i tested with a friend and when player who died is using sniper1_dz for exemple...

    "custom kill msg" will not show.

     

    *already using "steamROLLER" fix:

    Add a 3 second delay sleep 3; above the following
    _killer = _victim getVariable["AttackedBy", "nil"];
    _killerName = _victim getVariable["AttackedByName", "nil"];
    

    *already using  player_murderMenu.sqf  Possible Deathboard Fix by 0verHeat (idk what is this, but i'm using)

     

    someone can give me a hand?

    did you really put

    "add a 3 second delay sleep 3; above the following"

    in the code?

    Cause if you did that would be your problem right there lol.

     

    The bold word is what you're supposed to add, he's just explaining it in text. Immediately below the explanation is the entire file, you can literally just copy paste that file over your existing one, or use it as a reference.

  4. So I follow everything and I cant error when using the menu it says cannot find Complies/trade_metals.sqf. This is in the mission pbo under dayz_1.chernarus\EpochMods\Compiles not sure what I am doing incorrectly.

     

    Okay correct script error now when clicking the Gems Menu nothing happens? 

    Are you just trying to add them to the database or are you editing the trader configs?  If you're adding them to the database, you dont need to edit any server files besides the server_traders.sqf, the rest is done in the database. Read the whole thread, the beginning of this thread is from 2 versions or so ago and isn't applicable to 1.0.5.1

  5. Not for me. I have yet to be able to play it without it freezing up on me about 2 minutes into the game.

    Well yea Im not speaking from personal experience, but Ive watched a lot of stream play of it. For those that it runs for, it runs very smooth with a lot of consistency.  The fact that its even comparable to dayz stand alone, after stand alone has been out for an entire year and this just launched and both are prealphas, speaks volumes about the terrible state of dayz stand alone.

  6. I think so yes. This review is really an extreme opinion. Everyone I saw playing this, was having a blast. I watched a bunch of twitch streamers enjoying the shit out of it.

    Some points.

    DayZ Standalone also costs money for a half-assed prealpha and doesn't offer anything in return. All the complaints about pay to win are retarded, its a free to play to game, of course there are going to be micro-transactions. Not to mention these reviews are all made on release night. It's constantly being patched its already a different game. And almost every other point he makes in this video you could also make about stand alone. Terrible AI, terrible pathfinding, retarded zombies.  Except this game runs a lot smoother, much better frame rate and more consistent frames as well. It has mutliple game types, battle royale is good fun. The graphics dont bother me much because it makes the game run smoother.  Dayz Standalone is still fundamentally broken and it's been out for a year. They're too busy playing dress up barbie and releasing new colored hats or backpacks instead of fixing the zombies in a zombie survival game.

    That said, I have higher hopes for the Arma 3 Mods like breaking point and epoch/overpoch than I do for either H1Z1 and Stand Alone, and I still think Arma 2 mods are better than all 3.

  7. If I am not mistaken, the above fix can generate a slight level of server lag. The original fix included a non-lag inducing script for the DupingFix.sqf as follows:

    private ["_escMenu","_typf","_mxBckpcks"];
     
    disableSerialization;
    waitUntil {!isNull findDisplay 49};
    _escMenu = findDisplay 49;
    {
       _typf = typeOf cursortarget;
       _mxBckpcks = getNumber (configFile >> "CfgVehicles" >> _typf >> "transportmaxbackpacks");
       if (!(isNull _x) && (canbuild) && !(_x == player || typeOf _x in ["WeaponHolder","DebugBoxPlayer_DZ"]) && (_mxBckpcks > 0)) exitWith
       {
          titleText ["You cannot log out near a storage unit!", "PLAIN DOWN", 3];
          systemchat "You cannot log out near a storage unit!";
          _escMenu closedisplay 0;
       };
    } foreach (nearestObjects [player, ["All"], 7.5]);
    

    This is a very simplified fix in that it prevents people from logging out near any container, be it a tent, safe, vehicle, crate or whatever. It doesn't cause any lag.

     

    The link you provided is for a completely different duplication issue involving safes. The one I posted is still a problem but fixable as per the instructions.

    Can you elaborate on this?

  8. I am just working on a solution,

     

    i am thought about replace the abort button function, new function would kick you directly in the main menu instead of the lobby, but i cant add the function because the player_onpuase script replace the function everytime.

     

    So i am thought about add a key eventhandler which close the current dialog if you press Escape and create a new main menu, that is actually working but i need to know the function that opens the options menu.

     

    //edit ok i found the dialog name its "RscDisplayOptions" however, i cant find the code where it adds the functions to the menu.... maybe someone else can help me with it ? i do not like displays and dialogs....

    I think you're old way IS working I was just being stupid. Do you not like your old way?

  9. Possible Deathboard Fix

     

    player_murderMenu.sqf

    EpochDeathBoardLoad = {
    	createdialog "EpochDeathBoardDialog";
    	{
    		private ["_index"];
    		_index = lbAdd [21000,_x select 0];
    	} count PV_DeathBoard;
    };
    
    EpochDeathBoardClick = {
    	disableSerialization;
    	private ["_index","_record","_output","_record_stxt","_name","_image","_h","_m","_format","_victim","_attacker","_time","_distance"];
    		_quotes = [
    			"Death is God's way of telling you not to be such a wise guy.",
    			"What happens if you get scared half to death, twice?",
    			"Don't upset me.. I'm running out of places to hide the bodies.",
    			"Don't run, you'll just die tired.",
    			"Give me immortality || give me death.",
    			"I can't live with death; he's always leaving the toilet seat up.",
    			"Why won't you die?!?!",
    			"Guns don't kill people; death kills people. It's a proven medical fact."
    		];
    	_index = _this select 0;
    	if (_index < 0) exitWith {};
    	_output = _this select 1;
    	_record = PV_DeathBoard select _index;
    
    	_victim = _record select 0;
    	_attacker = _record select 1;
    	_name = _record select 2;
    	_image = _record select 3;
    	_distance = _record select 4;
    	_time = _record select 5;
    
    	if (isNil "_victim" || isNil "_attacker" || isNil "_name" || isNil "_distance" || isNil "_time") exitWith {_output ctrlSetStructuredText parseText "<br/><br/><br/><br/><t size='1.6' align='center'>There are some information missing for this entry</t>";};
    
    	_format = {
    		private ["_codeCount","_str"];
    		_str = format["%1", _this];
    		_codeCount = (count (toArray _str));
    		if (_codeCount == 1) then {_str = format["0%1", _str];	};
    		_str;
    	};
    	_h = (_time select 0) + timezoneswitch;
    	_m = _time select 1;
    
    	_record_stxt = format["<t size='1.6' align='left'>%1</t><br/><br/>",_victim];
    	_record_stxt = _record_stxt + format["<t size='1' align='left'>Died at %1:%2</t><br/><br/>",(_h call _format),(_m call _format)];
    	_record_stxt = _record_stxt + format["<t size='1' align='left'>Was killed by %1</t><br/><br/>",_attacker];
    	_record_stxt = _record_stxt + format["<t size='1' align='left'>With a %1<br/><img size='3' image='%2' /></t><br/><br/>",_name,_image];
    	_record_stxt = _record_stxt + format["<t size='1' align='left'>At a distance of %1m</t><br/><br/>",_distance];
    	_record_stxt = _record_stxt + format["<t font='Bitstream'>%1</t>",(_quotes call BIS_fnc_selectRandom)];
    
    	_output ctrlSetStructuredText parseText _record_stxt;
    }; 

    server_playerDied.sqf

    _death_record = [
    	_victimName,
    	_killerName,
    	_weapon,
    	_pic,
    	_distance,
    	ServerCurrentTime
    ];
    PlayerDeaths set [count PlayerDeaths,_death_record];
    PV_DeathBoard = PlayerDeaths;
    publicVariable "PV_DeathBoard"; 
    

    can I just slap that on the end of the playerdied.sqf or is placement important?

  10. wish that was true but i SEE my mistakes and i know there are mistakes.

    For example propably the custom\laser\mark.sqf is more like fcked up for real. 

    While laser_init.sqf can be good actually because i dont see mistakes in there.

     

    @DangerRuss: Ok, but nope, still need what im doing ;D

    And i believe that would be useful for some other players as well.

    Imagine group of players (5-6) where 1 is sniper with laser designator and there are for example some rocketmans so sniper can mark positions of the marked targets to others.

    Obviously that would be nice if there will be mark like "shift clicking" is making mark.

    That sounds pretty cool, my only concern would be a conflict with the antihacks. Good luck!

  11. using Zabns' take clothes. works fine. No errors in server RPT. However, massive spamming of client RPT 1500 + lines per hour.

    the error

    _clothesTaken = _cursorTarget getVariable["clothesTaken">
      Error position: <_cursorTarget getVariable["clothesTaken">
      Error Undefined variable in expression: _cursortarget
    File mpmissions\__CUR_MP.chernarus\Scripts\Fn_SelfActions\fn_selfActions.sqf, line 936
    Error in expression <yer_calldog = 		-1;
    };
    

    fn_selfactions.sqf line 936

    _clothesTaken = cursorTarget getVariable["clothesTaken",false];
    

    player_takeclothes.sqf

    _clothesTaken = _body getVariable["clothesTaken",false];
    

    Im guessing this is just an issue I'll have to live with. Unless someone can recommend a fix or a better take clothes option.

  12. CHECK LAST POST IF YOU WANT TO HELP ME :)

     

    Hi there.

    Not sure if this is good place to post ideas, but...

     

    There is actually Laser Designator which is useless, because it works only like range finder ...

     

     

    Is this possible to add new option to 'scroll menu' when u use laser designator, and when u press something like "Mark Target" all players in same group will see on map MARK with for example name of the spotted vehicle.

     

    And something like chat to group i.e. "M1A1 spotted in 123123"

     

     

     

    Classname: Laserdesignator

     

    Is this possible? :)

    not to take away from what you're trying to do but the laser designator isn't useless on a militarized server. You use it to designate targets for laser guided bombs, such as the F35 has.

  13. Did not work, can't figure out why when I unlock the safe I get the option to lock it and pack it, but the action to unlock it doesnt work......wtf

     

    have you modified your player_unlockvault.sqf at all?

     

    what mods do you have installed? It might be the order in which you're calling fn_selfactions.sqf in your compiles.sqf

  14. and which ones are the necessary ones? i'm looking to get this fixed asap. does anyone have a finished one to compare by any chance?

    Follow original instructions but use the server_playerdied.sqf that is posted here

     

    The only difference is he added a sleep to make the script work more often. I doubt you need a full 3 seconds though. A half second works on my overwatch server. My overpoch is still too new yet to have much pvp but I'll let you know.

×
×
  • Create New...