HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   setVehicleVarName sinnvoll? (https://hx3.de/editing-scripting-167/setvehiclevarname-sinnvoll-22877/)

Rockhount 31.08.2013 03:16

setVehicleVarName sinnvoll?
 
Ich bearbeite gerade ein paar alte Skripte und bin dabei auf etwas gestoßen, das sich mir nicht ganz erschließt. Es geht dabei um das Zusammenspiel von publicvariable und setVehicleVarName. Hier ein Beispiel:
Code:

convoytruck = "jailbus" createVehicle getPos _pos;
convoytruck setVehicleInit
"
    convoytruck = this;
    this setVehicleVarName ""convoytruck"";
";   
processinitcommands;
publicvariable "convoytruck";

Wozu sollte der Bus und die globale Variable gleich genannt werden? Wenn der Name des Objekts und die Variable(die auf das Objekt verweist) gleich heißen, dann ist doch die Durchführung beider Methoden unnötig? publicvariable sollte hier doch schon reichen und folgendes auch ersetzen können:
Code:

convoytruck = this;
oder?

Rockhount 31.08.2013 20:55

Kann keiner etwas dazu sagen?

Moerderhoschi 31.08.2013 21:49

Zitat:

Zitat von BIWiki
Sets the name of the variable which contains a reference to this object. It is necessary in MP to change the variable content after a respawn. When you only use 'myVar = <vehicle>', you'll just have a normal variable, when you use this command as well, 'myVar' will be the name for the vehicle, i.e. if you have other variables containing the vehicle, they'll now return 'myVar' and not WEST ...
Note: This command does not set 'myVar' to contain the vehicle, this has to be done separately.

Also ich interpretiere das so dass trotzdem weiterhin eine Variable definiert werden muss, also zusatzlich zum SetVehicleVarName. Steht auch so im Example im BIWiki

Zitat:

Zitat von BIWiki
_Object="M1A1" CreateVehicle (GetPos Player);
_VarName="MYTANK";
_Object SetVehicleVarName _VarName;
_Object Call Compile Format ["%1=_This ; PublicVariable ""%1""",_VarName];

Habe mit dem Befehl bis dato sehr wenig gearbeitet deswegen kann ich Dir leider nicht mehr als meine Interpretation des Wikieintrags bieten.

gruß
hoschi

Vienna 01.09.2013 01:59

Ohne setVehicleVarName enthält convoytruck die ID des Fahrzeuges.

Mit setVehicleVarName enthält convoytruck den Vehicle-Namen convoytruck. Entspricht dem Namen, den man einem Objekt im Editor geben kann.

Rockhount 01.09.2013 02:51

Ja, das hatte ich mir schon gedacht. Dann ist in diesen Fall also das hier:
Code:

convoytruck setVehicleInit
"
    convoytruck = this;
    this setVehicleVarName ""convoytruck"";
";
processinitcommands;

komplett unnötig.

Vienna 01.09.2013 08:39

Das Vorhandensein des Befehls wird ja einen Grund haben.

Wenn es z.B. notwendig ist ein Objekt mit dem Namen und nicht mit der ID anzusprechen? Wie z.B. bei Moerderhoschis Post mit call compile?

Vielleicht kann man damit einen bereits vergebenen Namen einem neuen Objekt zuweisen? Keine Ahnung ob man zuvor objNull anwenden muss.

Rockhount 01.09.2013 12:51

Es geht mir nur um den Befehl publicvariable und ob es alles andere ersetzen könnte. Ich denke, es macht kein Unterschied, ob man nun die Variable oder das Objekt direkt anspricht. Ich bin nur kein Freund von processinitcommands. Und das Verbreiten von nur einer Variable, anstelle von ganzen Codezeilen, sollte auch der Performance gut tun.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:31 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119