Einzelnen Beitrag anzeigen
Alt 17.02.2009, 20:31   #1 (permalink)
Langer
Newbie
 
Benutzerbild von Langer
 
Registriert seit: 23.05.2008
Ort: Hamburg / Norderstedt
Alter: 43
Beiträge: 44
Standard Arrayübergabe

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
Langer ist offline   Mit Zitat antworten