Jump to content

MatthewK

Member
  • Posts

    794
  • Joined

  • Last visited

  • Days Won

    8

Posts posted by MatthewK

  1. Not sure if my issue is related to this.  But I've noticed that players get the option to "take x-item" on locked vehicles, even if the vehicle has multiple items.  I know about the single item in gear issue, but this happens with vehicles that have full gear. It only shows the option to take one item and you still can't choose "GEAR" .. 

     

    any ideas? 

  2. CHERNARUS 

     

    Just something I made for an event on my server, thought it might be useful to someone else in the community. I've included the 3d mission file so you can tidy it up, add stuff etc..

     

    It's East of Bandit Trader (about 700m)

     

    .2014-12-11_00006_m.jpg

     

    Follow the usual instructions for adding map editions: http://pastebin.com/7hKn7dxE

     

    3D mission file: http://pastebin.com/e45cq6FG

  3. i didnt apply anything just using the original script but no GUN Image showing up, just the like picture above.

    Try this dood, the changes i've made get rid of the errors and it works fine so far. Other than the killboard at traders now says "Players was killed with (blank) by player.." or something to that effect. But anyway, the custom kill message comes up and you don't get the Nil image error....

    my server_playerDied.sqf:

     

    Marked my changes with:   <<<<<<< --- MY CHANGE

     

    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];
    
    _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 (isNil "_distance") then {_distance = 0}; //  <<<<<<< --- MY CHANGE
    	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 (_pic == "nil") then {   //   <<<<<<< --- MY CHANGE
    		  } else {
                    if ((gettext (configFile >> 'cfgWeapons' >> (currentWeapon _killer) >> 'displayName')) != "Throw") then {
    				if (!isNil "_pic") then {
    				_kill_txt = format ["<t align='left' size='0.8'>%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.8'> %3 </t>",_killerName,_pic,_victimName,(ceil _distance)];
    				_kill_txt = _kill_txt + format ["<t align='left' size='0.8'>[%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;
    };
    
  4. Anyone getting this error:

    15:20:09 "Checking vaults..."
    15:20:09 Error in expression <= _allvaults select _i;
    _curvaultcode = _curvault getVariable "CharacterID";
    if >
    15:20:09 Error position: <_curvault getVariable "CharacterID";
    if >
    15:20:09 Error Undefined variable in expression: _curvault
    15:20:09 File z\addons\dayz_server\modules\vaults.sqf, line 16
  5. Edit: Think i solved it.. noticed a missing closing bracket.. which somehow escaped me several times lol :P

    I use a combination of Hint and systemChat with my missions.  A hint tells the user that the mission has started and a system chat message tells the user the mission has ended.. Before I add the systemChat code into the remote_massages.sqf , the hint works fine.. but after I add the systemChat code, neither the hint messages nor the systemchat messages show up.. 

    fnc_remote_message = {
    	private ["_type", "_message", "_player"];
    	_type = _this select 0;
    	_message = _this select 1;
    	if (count _this > 2) then {
    		_player = _this select 2;
    		if (_player == player) then {
    			switch (_type) do {
    				case "globalChat": {
    					player globalChat _message;
    				};
    				case "hint": {
    					hint _message;
    				};
    				case "titleCut": {
    					titleCut [_message, "PLAIN DOWN", 3];
    				};
    				case "titleText": {
    					titleText [_message, "PLAIN DOWN"]; titleFadeOut 10;
    				};
    				case "systemchat": {
    				systemChat (_message);
    			};
    		};
    }; // <-- Fixed it.. :p
    	} else {
    		switch (_type) do {
    			case "hint": {
    				hint _message;
    			};
    			case "titleCut": {
    				titleCut [_message,"Plain Down",3];
    			};
    			case "titleText": {
    				titleText [_message, "PLAIN DOWN"]; titleFadeOut 10;
    			};
    			case "systemchat": {
    				systemChat (_message);
    			};
    		};
    	};
    };
    
    "customRemoteMessage" addPublicVariableEventHandler {(_this select 1) call fnc_remote_message;};
    
  6. I've used everything you instruct on the first post to cut and paste . Everything! 

     

    <shakes head> :P

     

    This is what i'm using (from your first post, as instructed):

    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]; 
    
  7. Found this old screenshot from 4 years ago when I ran my first dayz server. I basically split the entire map in half, top was PVP and the bottom half was PVE.  There was a large area in the middle that allowed players to cross over with plenty of warning, through title text and system chat. It also meant that snipers couldn't snipe in from the Red zone at pve'rs who were just on the edge of the green zone.  Worked fine for about a week, then everyone got bored because nobody wanted to hit the redzone in fear of dying and nobody wanted to hit the green zone because it was too boring.. lol.. you can't win! they'll ask for PVE one minute, then moan there isnt much action the next and demand PVP.. 

     

    2013_01_27_00001.jpg

  8. Can confirm that this script is causing the issues with the plane dealer. Sometimes, you'll get weapons, other times you'll get armed land vehicles (that the hero would sell).. I turned the script off and everything is working again.

     

     

    Edit: Turning off the ability to sell from vehicle has fixed this issue for me.  Maybe that will help you narrow down the actual cause? I'm assuming this is no longer a database latency issue ?

  9. Still getting players spawn at dead bodies. I've used the very latest steps on the first post, checked them several times and I still get this in my error logs:

    6:13:41 Error in expression <>%1 </t>",_killerName,_pic,_victimName,(ceil _distance)];
    _kill_txt = _kill_txt >
     6:13:41   Error position: <ceil _distance)];
    _kill_txt = _kill_txt >
     6:13:41   Error ceil: Type String, expected Number
     6:13:41 File z\addons\dayz_server\compile\server_playerDied.sqf, line 41
    

    EDIT:

    Fixed this error by adding:
    if (_distance == "nil") then {_distance = 0};
    Just underneath:
    _distance = _victim getVariable["AttackedFromDistance", "nil"];

    Now when a player dies by falling or hit by a zed, a message saying "image NIL" does not exist.. I really like this script, hope the error checking gets fixed in the updates!

×
×
  • Create New...