PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : .hpp parameter übergabe an .sqf mit case (Switch) funktion


Sajiki
07.04.2017, 19:49
Hallo,

hoffentlich kann mir einer hier weiter helfen.

Folgendes:
Ich habe mir ein Loadout Script zusammen gebastelt, darin greife ich bei den Buttons auf eine Script Datei zu -->
action = "_handle = [1] execVM ""scripts\loadouts\skins.sqf"";";

In der skins.sqf erkennt er den Paramter 1 und gibt ihn mir korrekt aus.

Jedoch klappt das case nicht so richtig wie es soll:

switch (_skin) do
{
case "0":
{
if (_debug) then {hintsilent "Skin deaktiviert"; sleep 1;};
};
case "1":
{
if (_debug) then {hintsilent "Skin 1"; sleep 1;};
removeUniform player;
removeVest player;
removeBackpack player;
removeHeadgear player;
player forceAddUniform "U_B_CombatUniform_mcam";
player addVest "V_PlateCarrier1_rgr";
player addHeadgear "H_HelmetB_light";
};
if (_debug) then {hintsilent "Case ende"; sleep 1;};
};

if (_debug) then {hintsilent "Script ende."; sleep 1;};

Er gibt mir als alle _debug aus bis auf die inerhalb des case. Kann mir eventuell einer weiterhelfen?

Mfg
Sajiki

Pfandgiraffe
07.04.2017, 21:45
Du übergibst eine Zahl und suchst nach einem String.

1 vs "1"

Grüße

Sajiki
08.04.2017, 07:50
Ach du heilige .....! so simple und doch nicht gesehen bzw gecheckt :happy:

Danke!

Mfg
Sajiki

Sajiki
08.04.2017, 19:31
Ich muss noch einmal nerven ^^

Kann ich irgendwie überprüfen welche Variable der Charakter besitzt der den Button drückt?

Beispiel:
Soldat hat im Editor die Variable "Soldat_1" bekommen, nun möchte ich in meinem Script
if ((player == Soldat_1) || (player == Soldat_2)) then {MEIN CODE};
verwenden. Aber er erkennt Soldat_1 nicht über den Button. Führe ich das Script direkt aus ohne die .hpp klappt es.

Hoffe ich habs verständlich erklärt.

Drunken Officer
08.04.2017, 19:48
Dann übergebe doch den Wert mit. Der Dialog läuft lokal, also kannst du mit player arbeiten

action=" einlustigeID = [player] execvm '...' ";

Sajiki
09.04.2017, 10:29
Also um es richtig zu verstehen!

Wenn ich also:
action = "_handle = [Player,1,0] execVM ""scripts\loadouts\skins.sqf"";";

angebe, übernimmt er mir Variable vom Spieler im Player drin?
Dachte nämlich das er dann es als Player übernimmt aber schätze dafür müsste ich dann "Player" schreiben weil "" ja ein String setzt nicht?

Richtig soweit?

Mfg
Sajiki

Drunken Officer
10.04.2017, 19:33
Nein, nimm Player

Der Client kennt den Player und damit auch die damit verbundene Variable.

Sajiki
14.04.2017, 13:23
Ja hab ich so gemacht und das ganze nun verstanden wie es läuft danke für eure Hilfe ;)

Mfg
Sajiki