Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 09.04.2014, 16:23   #1 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Registriert seit: 10.10.2006
Beiträge: 263
Standard Fahrzeug Explodiert beim Bauen

Guten Abend Forumgemeinde,

Ich habe bei denn Script von mir ein kleines Problem.
Es passiert beim Erstellen von Fahrzeugen das diese sofort Explodieren, meine Vermutung ist da er mit denn createVehiclelocal in Konflikt gerät. Aber das Locale Objekt lösche ich ja schon vor der Erstellung? Das Objekt erhalte ich aus einen anderen Script durch übergabe der Vraiable u.

Im Test habe ich das Locale Fahrzeug einfach Ausgelassen wodurch es zu keiner Explosion kommt.

Code:
Private ["_p","_x","_y","_z","_schrank","_i","_d","_u","_f"];
_f = false;
_u = u;
_p = player;
_schrank = _u createVehiclelocal [0,0,0];
_i = 0;
ende=false;
bau=false;
_a1 = _p addAction ["<t color='#11FF00'>Bauen</t>",{bau=true}];
_a2 = _p addAction ["<t color='#FF0000'>Abbrechen</t>",{ende=true}];
while{_i < 1000} do { 
	if (bau) then {
		_u2 = [((getPos _p)select 0) + sin(getDir _p) * 6, ((getPos _p)select 1) + cos(getdir _p) * 6];
		deleteVehicle _schrank;
		_schrank2 = createVehicle [_u,_u2, [], 0, "CAN_COLLIDE"];
		_schrank2 setDir _d;
		_schrank2 setPosASL [((getPos _p)select 0) + sin(getDir _p) * 6, ((getPos _p)select 1) + cos(getdir _p) * 6];
		ende = true;
	};	
	_x = getPos _p select 0;
	_x = _x + 10;
	_y = getPos _p select 1;
	_y = _y + 10;
	_z = getPos _p select 2;
	_d = getDir _p;
	_schrank setDir _d;
	_schrank setPos [((getPos _p)select 0) + sin(getDir _p) * 6, ((getPos _p)select 1) + cos(getdir _p) * 6];
	sleep 0.1;
	_i = _i + 1;
	if(ende) exitWith{
		deleteVehicle _schrank;
		_p removeaction _a1;
		_p removeaction _a2;
	};
};
Nokman ist offline   Mit Zitat antworten
Alt 09.04.2014, 20:55   #2 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Ursache könnte sein, wenn mit setPos ein Objekt mit einem anderen überschneidet.

Wird mit createVehicle ein Objekt an einer Position erstellt, dann wird ein solches Überschneiden vermieden.
Vienna ist offline   Mit Zitat antworten
Alt 10.04.2014, 00:39   #3 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.107
Standard

So richtig werde ich aus deinem Code nicht schlau.
Du erstellst 2 Einträge und ein lokales Objekt.

Deine Schleife zieht an. Deine IF Bedingung wird erstmal ignoriert, da diese eine BAU=TRUE fordert. Bau wurde aber auf FALSE gesetzt.

Jetzt überschreibst du die Variablen _x und _y jedesmal. Dein +10 hat keine Wirkung, da du vorher _x % _y wieder der Pos des Spielers zuweist.
Ist das gewollt?

Wenn die 1000 erreicht wurde, hört dein Script auf und es befindet sich ein lokales Objekt auf dem Server und der Spieler hat dann 2 Actioneinträge.

Startet das Script neu, gibt es schonmal ein Problem, da du wieder ein Objekt an diese Stelle bringst.

Okay, wir sind bei _i = 500
Bau wird jetzt true

Du ermittelst mit _u2 exakt die Position, wo sich _schrank befindet. Du löschst _Schrank, wartest aber nicht, bis es 100% weg ist und erstellst sofort ein neues Objekt an der Pos von _schrank.

Jetzt definierst du _x und _y neu.

Nun versucht das Script _schrank eine Richtung zuzuweisen. _schrank gibt es aber nicht mehr. Dürfte ein Fehler in der RPT werden.
Ende ist jetzt TRUE, damit greift die letzt Bedingung.
Da versuchst du wieder _schrank zu löschen.
Drunken Officer ist offline   Mit Zitat antworten
Alt 10.04.2014, 20:55   #4 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Registriert seit: 10.10.2006
Beiträge: 263
Standard

Du hatest natürlich Recht, ich habe das oft sehr oft umgebaut und dran änderungen gemacht das ich es Nie richtig aufgeräumt habe.
Im Grunde Erstelle ich mit denn Script ein Objekt was ich Positionieren kann in demm ich mich Bewege

Und dank der Aussage das das Objekt nicht ganz gelöscht ist habe ich denn sleep eingefügt und nun geht es auch Danke
Code:
Private ["_p","_schrank","_schrank2","_i","_d","_u","_u2"];
_u = u; // Bauobjekt wird übergeben
_p = player;
_schrank = _u createVehiclelocal [0,0,0]; //locales Objekt wird Erstellt
_i = 0; //Schleifen Zähler
ende=false; 
bau=false;
_a1 = _p addAction ["<t color='#11FF00'>Bauen</t>",{bau=true}];
_a2 = _p addAction ["<t color='#FF0000'>Abbrechen</t>",{ende=true}];
while{_i < 1000} do { 
	_d = getDir _p; //Sichtrichtung des Spielers wird Ermittelt
	_schrank setDir _d; //das Locale Objekt wird gedreht wie der Spieler steht
	_schrank setPos [((getPos _p)select 0) + sin(getDir _p) * 6, ((getPos _p)select 1) + cos(getdir _p) * 6]; //das Locale Objekt wird zum Spieler gestellt
	sleep 0.1;
	_i = _i + 1; //schleife Variable bekommt 1 dazugezählt 
	if (bau) exitWith{
		_u2 = [((getPos _p)select 0) + sin(getDir _p) * 6, ((getPos _p)select 1) + cos(getdir _p) * 6]; //Position wird in Variable _u2 geschrieben
		deleteVehicle _schrank; //Locales Objekt wird gelöscht
                sleep 0.1;
		_schrank2 = createVehicle [_u,_u2, [], 0, "CAN_COLLIDE"]; //Globales Objekt wird erstellt
		_schrank2 setDir _d; //Gobales Objekt wird richtig gedreht
		_p removeaction _a1; //bau Aktion wird aus der Aktionsleiste gelöscht
		_p removeaction _a2; //abbrechen Aktion wird gelöscht
	};
	if(ende) exitWith{
		deleteVehicle _schrank;
		_p removeaction _a1;
		_p removeaction _a2;
	};
};
deleteVehicle _schrank;
_p removeaction _a1;
_p removeaction _a2;
Nokman ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
BTC Revive/Respawn - Fahrzeug verliert den Namen nach Respawn Jekko Editing & Scripting 6 27.10.2013 16:13
Fahrzeug respawn (kleine hilfe) JeeperCreeper Editing & Scripting 0 22.10.2013 11:59
Fahrzeug an Fallschirm hängen xXHappyXx Editing & Scripting 9 19.11.2012 17:35
Fahrzeug Namen ändern/mehrmals einfügen XxStevenxX Editing & Scripting 11 09.09.2012 02:56
Respawn In Fahrzeug Steirer Editing & Scripting 11 18.10.2011 19:06


Kontakt - HX3.de - Archiv - Nach oben

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