29.10.2014, 15:12 | #1 (permalink) |
Registriert seit: 09.12.2006
Beiträge: 84
|
Fahrername oder Uid auslesen.
Hallo,
kann mir jemand sagen wie ich es bewerkstellige den Namen oder die Uid eines Fahres auszulesen ? Ich möchte ein Script schreiben das nur bestimmte Personen als Fahrer oder Piloten zulässt, einsteigen als Beifahrer usw. soll möglich bleiben… Gruß Togo |
29.10.2014, 19:38 | #2 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.109
|
Ich würde die figuren die es dürfen mal als p1 p2 p3 benennen und in einen Array stecken
. Danach eine Abfrage ob die Person im Array ist Code:
private ["_pilotenarray", "_dv", "_abfrage"]; _abfrage = false; _pilotenarray = [p1,p2,p3]; _dv = driver fahrzeugnahme; //testzeile hint format ["%1", _dv]; //sollte dann eigentlich p1 etc pp ausgeben _abfrage = _dv in _pilotenarray; if (! _abfrage) then {_dv leaveVehicle fahrzeugname}; Ich habe es über den Type des Spielers gelöst. Also nur gewissen Eineiten (z.B. B_Pilot_F) kann fliegen. Denke daran, in ArmA 3 kann man als Co-Pilot die Stuerung übernehmen.
__________________
Bewegende Momente bei ArmA 3 Geändert von Drunken Officer (29.10.2014 um 19:43 Uhr). |
30.10.2014, 10:54 | #4 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.109
|
So ich habe es jetzt einmal getestet.
Es funktioniert wenn du die Figuren die einsteigen können mit P1 P2 P3 P4 usw. benennst. Dann muß der Array so aussehen _pilotenarray = [p1,p2,p3,p4] Du kannst aber auch die Spielernamen nehmen. Dann muss der Array so aussehen _pilotenarray = ["Drunken Officer", "Broda", "Bosch"]; Wenn du mit Namen arbeitest, musst du das rot markierte nutzen. Jetzt ist es an dir, wie das Script starten soll. Es macht wenig Sinn, es permanent in einer Schleife laufen zulassen, oder es mit waitunitl zu stoppen. Das ganze sollte ja eigentlich nur auslösen, wenn man einsteigt. Ich habe es über einen Eventhandler gemacht. Folgenden Code habe ich an einem Hunter genutzt. Code:
this addEventHandler ["getin", { if (!local player) exitWith {}; hint format ["%1", (_this select 2)]; private ["_pilotenarray", "_dv", "_abfrage"]; _abfrage = false; _pilotenarray = ["Drunken Officer", "Broda", "Bosch"]; _dv = driver (_this select 0); _abfrage = (name _dv) in _pilotenarray; if (!_abfrage) then { player action ["getout", (vehicle player)]; player sidechat format ["%1, du gehörst nicht zum auserwählten Kreis Derer, die das dürfen.", (name _dv)]; }; }]
__________________
Bewegende Momente bei ArmA 3 |
30.10.2014, 13:05 | #6 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Vielleicht hilft das hier: Einzelne Player als Driver ausschließen
Beispiel-Aufruf des Skripts für Helikopter und Panzer (Arma2): [ ["Helicopter",["USMC_Soldier_Officer", "USMC_Soldier_Pilot"]], ["Tank", ["USMC_Soldier_Officer", "USMC_Soldier_Crew" ]] ] execVM "Driver_Verbot.sqf"; Beim Aufrufen des Skripts sind die Klassen-Namen von Arma3 zu nehmen! |
31.10.2014, 00:07 | #7 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.109
|
Das ist richtig. Deswegen gab ich den Hinweis, dass man Sitzplätze wechseln kann. Handelt es sich um Luftfahrzeuge, so kann man auch den Co-Piloten blocken. Ich kenne kein LFZ, wo man vom Passagier zum (Co)Piloten wechseln kann.
__________________
Bewegende Momente bei ArmA 3 |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Land_ATM auslesen | Nokman | Editing & Scripting | 6 | 27.06.2014 00:09 |
Foreach _x auslesen | Nokman | Editing & Scripting | 4 | 31.05.2014 12:52 |
Einheit "name" auslesen | PriestleyMS | Editing | 1 | 07.02.2013 19:44 |
Map Coordinaten auslesen | Skywalker077 | Editing & Scripting | 3 | 18.01.2011 00:27 |
buildingpos auslesen | hypercop | Editing & Scripting | 17 | 19.07.2010 21:00 |