PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Seite nicht erkannt?


TheRhisd
18.02.2013, 19:35
Guten Tag zusammen.
Ich habe neulich eine PvP Mission erstellt, habe nun aber das Problem, das Einheiten nicht mehr richtig erkannt werden, sobald sie ein bestimtes Script benutzt haben o.O
Das besagte Script ist ein selbst geschriebenen FallschirmTelportationsAbsprung Script, das Einheiten schnell über die Map bringt (recht nützlich).
Wenn man also auf diesem Weg reist, kann man keine Basis mehr erobern (darum geht es in der Mission...).
Hab nichts zu diesem Thema gefunden und frag deshalb hier mal nach:
Kennt das jemand? Weiß jemand ne Lösung?

Falls das Hilft ist hier das Skript:

/*
====================
FallschirmSprung Script v0.1
by Rhisd
====================
*/
_caller = _this select 1;
_height = _this select 3;

if !(local Player) exitWith {};
if (jumpactive) exitWith {_caller groupChat "Script in use... Try later."};
jumpactive = true;

titleText ["Durch Klick auf die Karte den Absprungort waehlen!", "plain down"];
onMapSingleClick "'jumppoint' setMarkerPos _pos; 'jumppoint' SetMarkerType 'Destroy'; jumpactive = false";

while {jumpactive} do {sleep 0.2};
_chute = "ParachuteWest" createVehicle getMarkerPos "jumppoint";
_chute setPos [(getpos _chute select 0), (getpos _chute select 1), _height];
sleep 0.5;
_caller moveInDriver _chute;
titleText ["", "plain down"];
onMapSingleClick "";
"jumppoint" setMarkerPos [0,0];
"jumppoint" setMarkerType "Empty";

while {(getPos _caller select 2) > 2 } do {sleep 1};
sleep 10;
deleteVehicle _chute;


EDIT: Die Einheit wird nach dem Benutzen des Scriptes nicht mehr als OPFOR Einheit von einem Trigger erkannt.

burns
18.02.2013, 19:49
Tja, wie wärs mit ParachuteEast?

k.A. obs hilft, aber klingt Arma-logisch :D

TheRhisd
18.02.2013, 19:56
Hatte ich auch gedacht und getestet aber mit ParachuteEast klappt es auch nicht :/

Vienna
18.02.2013, 21:30
Füge folgenden Code anstelle von _chute = "ParachuteWest" createVehicle getMarkerPos "jumppoint"; ein.


_chute = format ["%1",side _caller];
_chute = switch (_chute) do
{
case "WEST": {"ParachuteWest"};
case "EAST": {"ParachuteEast"};
case "GUER": {"ParachuteG"};
default {"ParachuteC"}
};
_chute = _chute createVehicle getMarkerPos "jumppoint";

Die Seite des Callers wird auf Text umgewandelt, weil case GUER nicht erkennt.

Edit:

Lösche auch die folgenden Zeilen am Ende des Skripts. Das Löschen sollte automatisch erfolgen.
while {(getPos _caller select 2) > 2 } do {sleep 1};
sleep 10;
deleteVehicle _chute;

Es gibt auch noch eine Seite "ENEMY". z.B. nach Teamkills. Keine Ahnung wie darauf das Skript reagiert.

TheRhisd
19.02.2013, 13:46
Vielen Dank Vienna, du hast mal wieder meine Mission geretten ;)
Der von dir beschriebene Weg klappt wunderbar :)
Warum auch immer man für jede Seite einen eigenen Fallschirm braucht versteh ich zwar nicht aber ist eigentlich ja auch egal o.O

Danke

Xeno
19.02.2013, 14:35
*deleted*

Xeno

Vienna
19.02.2013, 16:02
Schon erstaunlich, dass es diese alten "Verwirrungen" noch immer gibt. Bei Zivilisten ist es genauso.


Laut Wiki
Syntax : Side = side unitName
Parameters : unitName: Object or Group
Return Value: Side

side Unit bei West Return: WEST | Intern: WEST
side Unit bei Ost Return: EAST | Intern: EAST
side Unit bei Widerstand Return: GUER | Intern: RESISTANCE
side Unit bei Zivilist Return: CIV | Intern: CIVILIAN

Vienna
20.02.2013, 13:15
Ein Absprung-Skript unter Berücksichtigung von Xenos Hinweisen. Es kommt jetzt zu keinen Problemen mehr wenn der Spieler auf "Feind" oder "Gefangen" gestellt ist.

Skript FallschirmAbsprung.sqf

//Fallschirmabsprung des Spielers über Kartenklick
// Parameter: Absprunghöhe in Meter
//Aufruf z.B. über Auslöser: temp = 100 execVM "FallschirmAbsprung.sqf";

AbsprungHoehe = _this;

//"Kartenklick" für den Fallschirmabsprung erstellen
onMapSingleClick
"
player moveInDriver
(
(
['ParachuteWest','ParachuteEast','ParachuteG','Para chuteC']
select ([west,east,resistance,civilian] find (side group player))
)
createVehicle [0,0]
);
vehicle player setPos [_pos select 0, _pos select 1, AbsprungHoehe];
openMap [false, false]
";

TitleText ["\nMit Klick auf die Karte Absprungstelle festlegen.\n Abbrechen [M] oder [ESC]","plain down",6];
openMap [true, false]; //Karte anzeigen
waitUntil {!visibleMap}; //warten bis Karte geschlossen
TitleText ["","plain"]; //Titel-Text löschen
onMapSingleClick ""; //"Kartenklick" entfernen