KotH-Killsystem Hilfe

29. März 2016
10
5
3
25
Südbrandenburg
Hey Leute,

ich denke, ich spreche hier vielen Codern und Scriptern aus der Seele, wenn ich sage, das ich an einem gewissen Problem hänge. Meistens ist es ja so, wenn ein anderer drauf schaut, ist es sofort gelöst, weil man selbst einfach einen Tunnelblick bekommt.

Also, bei mir geht es darum, dass ich einen KotH (King of the Hill) - Server habe aber derzeit noch keine Fahrzeugkills angerechnet werden. Kein Problem, kann man ja beheben, allerdings hänge ich an einer Stelle und habe mir jetzt folgendes Konstrukt ausgedacht.

Also zunächst habe ich mir folgende private Variablen genommen:
private["_unit","_killer","_killCounter","_veh"];

Diese habe ich dann folgendermaßen definiert:
_unit = _this select 0;
_killer = _this select 1;
isDead = true;
_veh = (vehicle player);

Diese Datei wird aufgerufen, wenn ein Spieler getötet wird, deswegen "isDead = true;". Ist für mich einfach eine Vereinfachung, dass dem Spieler ein Tod angerechnet wird.
Zu den anderen: Die "_unit" ist der getötete Spieler, der "_killer" ist, wie der Name schon sagt, der Killer und das "_veh" ist das Fahrzeug in dem sich der Spieler befindet.


Nun, wie dem auch sei, das hier ist der Code, dass der Spieler XP und den Kill bekommt.
Zu beachten ist dabei, dass ALLE Leute im Fahrzeug den Kill bekommen sollen. Kann man das mit den forEach-Schleifen so machen?

if (isPlayer _killer && isPlayer _unit) then {


if (_killer isEqualTo _unit) exitWith {};
if (_unit isEqualTo _killer) exitWith {};
if ((faction _killer) isEqualTo (faction _unit)) exitWith {};
if ((faction _unit) isEqualTo (faction _killer)) exitWith {};


if (_killer isKindOf "Man") then {
TmE_statsAddKillServer = [100,1,_killer];
publicVariableServer "TmE_statsAddKillServer";
} else {
if (_killer in (crew _veh)) || (_killer in (gunner _veh)) || (_killer in (driver _veh)) || (_killer in (commander _veh)) then {
{TmE_statsAddKillServer = [100,1,(getPlayerUID _x)];
publicVariableServer "TmE_statsAddKillServer";} forEach (crew _veh);
{TmE_statsAddKillServer = [100,1,(getPlayerUID _x)];
publicVariableServer "TmE_statsAddKillServer";} forEach (gunner _veh);
{TmE_statsAddKillServer = [100,1,(getPlayerUID _x)];
publicVariableServer "TmE_statsAddKillServer";} forEach (driver _veh);
{TmE_statsAddKillServer = [100,1,(getPlayerUID _x)];
publicVariableServer "TmE_statsAddKillServer";} forEach (commander _veh);
};
};
};


Ich hoffe, ihr konntet mir soweit folgen und könnt mir helfen. Danke im Voraus!
MfG Relentless.
 
Falls du das Problem immernoch hast, frag mal hier nach: forums.bistudio.com
Ich weiß nicht ob ich für ein anderes Forum "Werbung" machen darf, immerhin ist es das Offizielle BI Forum, also sorry wenn nicht;)