HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Fahrzeuge nur bestimmte Personen zuweisen (https://hx3.de/editing-scripting-167/fahrzeuge-nur-bestimmte-personen-zuweisen-19854/)

Bowi 16.10.2010 05:36

Fahrzeuge nur bestimmte Personen zuweisen
 
Hi Leute
Habe auf verschiedene Server schon gesehen das Fahrzeuge nur von bestimmte Personen(Clanmitglieder) benutzt werden koennen,meine Frage ist wie geht das ? um Unfug auf dem Server zu vermeiden
Mfg
Bowi

Anemia 16.10.2010 07:32

Zitat:

Zitat von Bowi (Beitrag 338270)
Hi Leute
Habe auf verschiedene Server schon gesehen das Fahrzeuge nur von bestimmte Personen(Clanmitglieder) benutzt werden koennen,meine Frage ist wie geht das ? um Unfug auf dem Server zu vermeiden
Mfg
Bowi

Wenn du ACE benutzen solltest für deine Mission, da lässt sich über F7 ein "Modul" einfügen, welches nur Piloten erlaubt Hubschrauber/Flugzeuge zu fliegen.

Ansonsten kannst du das auch über ein Skript steuern, um z.b. auch nur manchen spielern das steuern von Fahrzeugen zu erlauben.

Erstelle eine sqf mit dem Namen : pilotCheck.sqf
Das hier ist das skript was da rein muss :)

Code:

_vehicleType = _this select 0;  // "Helicopter" / "Tank"
_crewType = _this select 1;  // "US_Soldier_Pilot_EP1"

//hint format["%1 - %2",_crewType, _vehicleType];
  if (typeof player != _crewType) then {
    private "_v";
    while {alive player} do {
      waituntil {vehicle player != player};
      _v = vehicle player;
      if (_v iskindof _vehicleType && !(_v iskindof "ParachuteBase")) then {
        if (driver _v == player) then {
          player action ["eject",_v];
          waituntil {vehicle player == player};
          hint "We shall leave the piloting to those with the appropriate training.";
        };
      };
    };
  };

In deiner Init.sqf rufst du das skript dann über diese beiden zeilen auf.
Evtl. musst du die Classnamen noch anpassen.....

Code:

["Helicopter", "US_Soldier_Pilot_EP1"] execVM "pilotCheck.sqf";
["Tank", "US_Soldier_Crew_EP1"] execVM "pilotCheck.sqf";

Nun können nur die US Piloten fliegen ... und die Crew Panzer fahren....

Bowi 16.10.2010 08:37

Danke erstmal für die schnelle Antwort geht das nur mit Class Namen oder auch mit Namen oder Teile vom Namen (Clantag) von demjenigen ?
Meine also statt dem Classnamen einfach Bowi reinsetzen ?

Anemia 16.10.2010 09:15

Zitat:

Zitat von Bowi (Beitrag 338281)
Danke erstmal für die schnelle Antwort geht das nur mit Class Namen oder auch mit Namen oder Teile vom Namen (Clantag) von demjenigen ?
Meine also statt dem Classnamen einfach Bowi reinsetzen ?

würde sicherlich acuh gehen , dafür muss das skript dann aber umgeschrieben werden. Dafür muss dann zusätzlich überprüft werden ob Player == Spielername

Du kannst meines wissens aber keinen "teil-namen" benutzen. Wenn dann muss der name eindeutig sein. Ich halte es aber für sehr sehr unpraktisch komplette Slots zu sperren. Wenn jemand auf eurem server mist baut dann kickt ihn doch einfach ?! :)

Bzw. was ist wenn ihr einen Piloten braucht und der Spieler der das sonst immer macht kann einfach an dem tag nicht spielen. Damit ist die map dann gleich unbrauchbar..... :oh:

Glaube auch nicht das auf anderen server das so ist das nur gewisse Clanmitglieder ein bestimmtest fahrzeug nutzen können. Gehe mal ehr davon aus das sie das dort auch über die Slots geregelt haben.

Buliwyf 16.10.2010 10:41

getPlayerUID

;)

Vienna 16.10.2010 17:58

Liste der Anhänge anzeigen (Anzahl: 1)
Zwei Möglichkeiten: Für alle Piloten oder für eine bestimmte Spielfigur.

Wenn nur Piloten fliegen können sollen, dann geht es mit einer kleinen Routine in der Initialisierung der Flug-Unit, die nur eine Einheit vom Typ Pilot als solchen zulässt:

TempNul = [this, "USMC_Soldier_Pilot"] spawn { private ["_Unit", "_DrType"]; _Unit=_this select 0; _DrType = _this select 1; while {getDammage _Unit < 1} do {if (!isNull driver _Unit and typeOf driver _Unit != _DrType) then {driver _Unit setPos getPos _Unit}; sleep 5}}

Hier ist der Typenname "USMC_Soldier_Pilot". Für andere Seiten wäre der entsprechend abzuändern.

Ist eine Einheit kein Pilot und setzt sich als solcher auf dessen Platz, wird er spätesten nach 5 Sekunden von dort entfernt.


Für eine bestimmt Spielfigur, wo deren Name abgefragt wird, ist in die Initialisierung der Flug-Unit folgendes einzutragen:

TempNul = this spawn {while {getDammage _this < 1} do {if (!isNull driver _this and driver _this != S1) then {driver _this setPos getPos _this}; sleep 5}}

Hier ist der Name der Spielfigur S1. Er ist direkt in die Routine eingetragen, damit er auch noch nach einem Respawn gilt (hoffe ich wenigstens).


Das Beispiel im Anhang ist für alle "Piloten". Dort kann der Typenname des Spielers über Funk abgefragt werden. Damit ist es möglich auf einfache Art den Typennamen der jeweiligen Figur des Spielers zu erfahren.

Bowi 17.10.2010 07:15

Also ich habe folgendes in der Ini Zeile des Fahrzeugs eingetragen
TempNul = this spawn {while {getDammage _this < 1} do {if (!isNull driver _this and driver _this != Testspieler) then {driver _this setPos getPos _this}; sleep 5}}; veh = [this, 15, 0] execVM "vehicle.sqf";
Leider kann ich trotzdem in das Fahrzeug einsteigen,macht es einen Unterschied ob man als Admin aufn Server ist oder als normaler Spieler ?

Vienna 17.10.2010 09:38

Liste der Anhänge anzeigen (Anzahl: 1)
Deine Spielfigur darf nicht den Namen Testspieler haben. Rausgeworfen werden nur Spielfigurgen, welche nicht diesen Namen haben. Der Rauswurf kann 5 Sekunden dauern.

Im Anhang ein Beispiel. Die Spielfiguren haben die Namen S1 und S2. Nur S2 darf als Pilot im Heli bleiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:23 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