16.10.2010, 06:36 | #1 (permalink) |
Registriert seit: 07.11.2009
Beiträge: 37
|
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 |
16.10.2010, 08:32 | #2 (permalink) |
Registriert seit: 20.05.2009
Beiträge: 605
|
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."; }; }; }; }; Evtl. musst du die Classnamen noch anpassen..... Code:
["Helicopter", "US_Soldier_Pilot_EP1"] execVM "pilotCheck.sqf"; ["Tank", "US_Soldier_Crew_EP1"] execVM "pilotCheck.sqf"; |
16.10.2010, 10:15 | #4 (permalink) |
Registriert seit: 20.05.2009
Beiträge: 605
|
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..... 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. |
16.10.2010, 18:58 | #6 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
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. Geändert von Vienna (16.10.2010 um 19:04 Uhr). |
17.10.2010, 08:15 | #7 (permalink) |
Registriert seit: 07.11.2009
Beiträge: 37
|
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 ? |
17.10.2010, 10:38 | #8 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
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. |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|