Moin,
ich komm bei dem Versuch ein Array zu übergeben nicht so recht weiter,
wäre klasse wenn mir da jmd helfen könnte.
(testen tu ich aufn dedi-server)
Hab auf der Map:
1. Spiellogik namens server
2. Auslöser names serverinit
Bedingung: local server
Aktivierungszeile :
Code:
sinit = [] execVM "scripts\serverinit.sqf";
3. Auslöser namens playerinit
Bedingung: local player
Aktivierungszeile :
Code:
pinit = [] execVM "scripts\playerinit.sqf";punkte = [] execVM "scripts\punktefang.sqf";
einige Fahrzeuge (autos/panzer) mit initzeile:
Code:
this addEventHandler ["killed", {handle = [(_this select 0),(_this select 1)] execVM "scripts\enemykilled.sqf"}];
inhalt sqf's
init.sqf :
Code:
LANGER_punkte = compile (preprocessFileLineNumbers "scripts\punktefang.sqf");
playerinit.sqf :
Code:
if !(local player) exitwith {};
_Langermenu1 = player addAction ["Status-Menu", "Dialogs\langer_1.sqf",0,1, false, true,"test2"];
infscore = 0;
infscoreB = format ["%1", infscore];
carscore = 0;
carscoreB = format ["%1", carscore];
tankscore = 0;
tankscoreB = format ["%1", tankscore];
airscore = 0;
airscoreB = format ["%1", airscore];
sonstscore = 0;
sonstscoreB = format ["%1", sonstscore];
gesamtscore = 0;
gesamtscoreB = format ["%1", gesamtscore];
scripts\enemykilled.sqf :
Code:
if !(local server) exitwith {};
_toter = _this select 0;
_killer = _this select 1;
uebergabe = [_killer,_toter];
publicVariable = "uebergabe";
scripts\punktefang.sqf :
Code:
if !(local player) exitwith {};
Player sidechat "punktefang initialisiert";
sleep 0.5;
LANGER_punkte =
{
sleep 0.5;
player groupchat "LANGER_punkte Start";
_killer = uebergabe select 0;
_toter = uebergabe select 1;
_typtoter = typeof _toter;
if (player == _killer) then {
switch (_typtoter) do {
case "Man": {
Player sidechat format["Mann umgelegt von %1",_killer];
infscore = infscore + 1;
infscoreB = format ["%1", infscore];
gesamtscore = gesamtscore + 1;
gesamtscoreB = format ["%1", gesamtscore];
_toter removeEventHandler ["Killed", 0];
};
case "Car": {
Player sidechat format["Auto zerstoert von %1",_killer];
carscore = carscore + 1;
carscoreB = format ["%1", carscore];
gesamtscore = gesamtscore + 1;
gesamtscoreB = format ["%1", gesamtscore];
_toter removeEventHandler ["Killed", 0];
};
default {hint"default"};
};
} else { player sidechat "bist nicht der Killer";
};
};
for [{_loop=0}, {_loop<1}, {_loop=_loop}] do
{
sleep 0.2;
[] call LANGER_punkte;
};
die switch-do-abfrage hab ich gekürzt...
die Funktion läuft, sehe ich an der groupchat-mitteilung
aber irgendwie scheint das mit der Array-übergabe nicht zu funzen..
ich frickel da jetzt seid fast 2Tagen rum und komme nicht weiter
sinn dieser ganzen aktion ist, jedem spieler für eliminierte/zerstörte Soldaten/Fahrzeuge Pkt zuzuweisen und danach Orden/Auszeichnungen zu verteilen..
wenn jmd eine Idee hat, was ich falsch mache oder einen anderen Lösungsweg weiss ...
einen ratlosen Gruss,
Langer