Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 11.09.2009, 00:07   #1 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Icon7 LHD per Skript fahrbar

Das o.g. hab ich schon erreicht
Ich hab auch schon erreicht, dass alle Fahrzeuge / Infanterie am Träger festgeklebt werden, wenn sich dieser in Bewegung setzt.
Außerdem haben Spieler die Möglichkeit auf dem Träger zu laufen, wenn er fährt.

Aber das jetzige Problem ist folgendes:
Alle 8 LHD Teile sind an einem RHIB festgemacht. Da sich aber das Boot mit den Wellen bewegt, bewegt sich natürlich auch der ganze Träger.
Ist im Prinzip nicht schlimm, aber durch das ständige Auf und Ab des Trägers kann ich nie die richtige Höhe zum Attachen der Einheiten finden. Entweder die stecken dann im Träger drinnen oder schweben in der Luft.

Hätte jemand eine Idee, wie ich die richtige Höhe für jeden Standpunkt auf dem Träger abfragen kann?

Wie ihr dem Screen entnehmen könnt könnte ich das auch mit modelToWorld von dem jeweiligen Träger Teil festlegen. Wie ihr dort auch erkennen könnt, ist getPosASL von jeder Person aufm Träger der selbe Wert wie der modelToWorld auf ein Teil.
Aber ich attache den Soldaten ja nicht an das jeweilige Trägerteil, sondern ich attache ihn an das RHIB.


Deswegen schaut meine Formel zum Berechnen der richtigen Höhe so aus:
Code:
_z1 = ((getPosASL _x) select 2) - (_bootpos select 2);
Nur leider führt das nicht zum gewünschten Ergebnis. Es mag zwar an manchen Stellen einwandfrei funktionieren, aber im hinteren Teil des Trägers steckt man dann im Träger fest.


Ich poste mal die jeweiligen Skripte und die Mission.
Aufgerufen wird das LHD Spawnskript so:
Code:
lhd = [this] execVM "CreateLHD.sqf";
CreateLHD.sqf
Code:
_LHDspawn = _this select 0;
_LHDdir = getdir _LHDspawn;
_LHDspawnpoint = getposasl _LHDspawn;

_land_lhd_house1 = "Land_LHD_house_1" createvehicle _LHDspawnpoint;
_land_lhd_house2 = "Land_LHD_house_2" createvehicle _LHDspawnpoint;
_land_lhd_elev = "Land_LHD_elev_R" createvehicle _LHDspawnpoint;
_land_lhd1 = "Land_LHD_1" createvehicle _LHDspawnpoint;
_land_lhd2 = "Land_LHD_2" createvehicle _LHDspawnpoint;
_land_lhd3 = "Land_LHD_3" createvehicle _LHDspawnpoint;
_land_lhd4 = "Land_LHD_4" createvehicle _LHDspawnpoint;
_land_lhd5 = "Land_LHD_5" createvehicle _LHDspawnpoint;
_land_lhd6 = "Land_LHD_6" createvehicle _LHDspawnpoint;
_land_lhd_house1 setdir _LHDdir;
_land_lhd_house2 setdir _LHDdir;
_land_lhd_elev setdir _LHDdir;
_land_lhd1 setdir _LHDdir;
_land_lhd2 setdir _LHDdir;
_land_lhd3 setdir _LHDdir;
_land_lhd4 setdir _LHDdir;
_land_lhd5 setdir _LHDdir;
_land_lhd6 setdir _LHDdir;
_land_lhd_house1 setpos _LHDspawnpoint;
_land_lhd_house2 setpos _LHDspawnpoint;
_land_lhd_elev setpos _LHDspawnpoint;
_land_lhd1 setpos _LHDspawnpoint;
_land_lhd2 setpos _LHDspawnpoint;
_land_lhd3 setpos _LHDspawnpoint;
_land_lhd4 setpos _LHDspawnpoint;
_land_lhd5 setpos _LHDspawnpoint;
_land_lhd6 setpos _LHDspawnpoint;

_land_lhd_house1 attachTo [_LHDspawn,[-3.3,-6.15,17],"hatch1"];
_land_lhd_house2 attachTo [_LHDspawn,[-6.49,-46.8,19.07],"hatch1"];
_land_lhd_elev attachTo [_LHDspawn,[2.4,-115.9,0.23],"hatch1"];
_land_lhd1 attachTo [_LHDspawn,[-0.61,84.1,-0.65],"hatch1"];
_land_lhd2 attachTo [_LHDspawn,[-1.23,22.8,-0.65],"hatch1"];
_land_lhd3 attachTo [_LHDspawn,[0,0,0],"hatch1"];
_land_lhd4 attachTo [_LHDspawn,[-2.065,-44.9,1],"hatch1"];
_land_lhd5 attachTo [_LHDspawn,[-2.45,-89.8,0.35],"hatch1"];
_land_lhd6 attachTo [_LHDspawn,[-2.05,-130.8,0.35],"hatch1"];

player addaction ["Bewegung!","bewegung.sqf",[_LHDspawn,_land_lhd1]];
bewegung.sqf
Code:
_array = _this select 3;
_boot = _array select 0;
_lhd1 = _array select 1;
_enemyside = east;

hold = false;
_boot setVelocity [0,5,0];

_objects = nearestObjects [_boot, ["LAND","AIR"], 100];
_max = (count _objects) - 1;
_i = 0;

for [{_i = 0},{_i <= _max},{_i = _i + 1}] do {
	_penemy = _objects select _i;
	_engine = IsEngineOn _penemy;
	If ((side _penemy) == east || !(alive _penemy)) then {
		_objects = _objects - [_penemy];
	};
};

{
	_bootpos = _boot modelToWorld [0,0,0];
	_xpos = _x modelToWorld [0,0,0];
	_x1 = (_xpos select 0) - (_bootpos select 0);
	_y1 = (_xpos select 1) - (_bootpos select 1);
	_z1 = ((getPosASL _x) select 2) - (_bootpos select 2);
	_dir = direction _x;
		hint format ["Name: %5\n\n_X Z (Model): %3\n_X Z (getPos): %4\n_X Z (...ASL): %8\n\nBoot Z (Model): %2\nBoot Z (getPos): %6\nBoot Z (...ASL): %7\n\nLHD1 Z (Model): %8\nLHD1 Z (getPos): %9\nLHD1 Z (...ASL): %10\n\nZ1: %1",_z1,_bootpos select 2,_xpos select 2,((getpos _x) select 2),name _x,(getpos _boot) select 2,(getPosASL _boot) select 2, (getPosASL _x) select 2,(_lhd1 modelToWorld [0,0,0]),((getPos _lhd1) select 2), (getposASL _lhd1) select 2];
 	_x attachTo [_boot,[_x1,_y1,_z1]];
	attached = true;
	KEY_pressed = compile preprocessfile "onTop_KEY_pressed.sqf";
	(findDisplay 46) displaySetEventHandler ["KeyDown", "_this call KEY_pressed"];
	If (_x isKindOf "AIR") then {_x addaction ["Detach + Get In","detach.sqf"]};
	_x setdir _dir;
	sleep 1;
} foreach _objects;

player groupChat "You can detach yourself by pressing the Insert (Einfuegen) key.";

While {!hold} do {
	_boot setVelocity [0,5,0];
	sleep 5;
};
Und im Anhang findet ihr die Beispielmission Da fehlen übrigens noch mehrere Sachen, die ich noch einbauen möchte. Aber zuerst muss das mit der richtigen Höhe funktionieren
Angehängte Dateien
Dateityp: zip LHD_Spawn.chernarus.zip (3,6 KB, 43x aufgerufen)
Cyborg11 ist offline   Mit Zitat antworten
Alt 12.09.2009, 00:27   #2 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Ui doch so viele, die sich gemeldet haben. Bin beeindruckt

Hat eigentlich irgendjemand Interesse an so einem Feature?
Cyborg11 ist offline   Mit Zitat antworten
Alt 12.09.2009, 14:10   #3 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Hemingway
 
Registriert seit: 31.05.2009
Beiträge: 321
Standard

ich denk mal dieses elefanten-projekt hat die meisten erstmal erschreckt xD


hm... an sich keine dumme idee, aber ich denke das die wasserfläche auf chenaurus zu klein ist, um irgendwelche sinnvollen trägerbewegungen durchzuführen...

interessant wäre es, wenn es später mal verschiedene kriegsschiffe als addon geben wird/würde, sodass es wirklich zu seeschlachten kommen kann^^
__________________
Kickstart fighter launch
Throttle set to full
Speed king race to win
Afterburners roaring
Ghostlike counterstrike
Takes them by surprise
Hemingway ist offline   Mit Zitat antworten
Alt 12.09.2009, 14:19   #4 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Es gibt ja schon einen fahrbaren Träger als Addon
Nur dort wird keiner am Träger festgemacht, sobald der losfährt
Und ich wollte den als Skriptversion fahrbar machen (was ja auch klappt), damit keiner unbedingt das Addon braucht, wenn der Träger beweglich sein soll.

Nur wie gesagt, hab ich hier ein "kleines" Problem mit der Höhe. Kannst du ja gerne mal die Beispielmission testen.
Und ein "Elefanten"projekt ist es auch nicht, da es eigentlich leicht zu skripten geht, wenn man weiß wie. Nur diese blöde Höhe krieg ich einfach nicht raus
Cyborg11 ist offline   Mit Zitat antworten
Alt 12.09.2009, 14:38   #5 (permalink)
Newbie
 
Registriert seit: 02.09.2009
Beiträge: 23
Standard

Ich kann zwar nicht unbedingt helfen, aber echt ein feines Projekt
Werds auch gleich mal antesten.
Banjo ist offline   Mit Zitat antworten
Alt 12.09.2009, 14:41   #6 (permalink)
50 Beiträge
 
Registriert seit: 26.07.2009
Ort: Baden-Württemberg
Alter: 25
Beiträge: 71
TERMISOLDATOR eine Nachricht über ICQ schicken TERMISOLDATOR eine Nachricht über Skype™ schicken
Standard

Zitat von Cyborg11 Beitrag anzeigen

Hat eigentlich irgendjemand Interesse an so einem Feature?

Interesse schon aber helfen kann ich leider auch nicht =( so sehr ich auch will...
mfg
termi
TERMISOLDATOR ist offline   Mit Zitat antworten
Alt 27.09.2009, 02:38   #7 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Kann ich irgendwie die Physik im Wasser vom Boot entfernen?
Code:
this enableSimulation false;
lässt das Boot überhaupt nicht mehr bewegen => LHD bewegt sich natürlich dadurch auch nicht mehr.

Hab immer noch nicht rausgefunden, wie ich den blöden unterschiedlichen Höhenunterschied rausbekomme -.- Entweder ich attach mich IN den Träger oder ich attach mich in die Luft
Cyborg11 ist offline   Mit Zitat antworten
Antwort

Stichworte
fahrbar, höhe variabel, lhd, sqf


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
Skript beenden Rasor Editing & Scripting 0 14.08.2009 22:35
Airstrike Skript =[LB]= Meazza Offizielle Missionen & Kampagnen 6 09.12.2006 23:04
Skript suche FireFighter14 Editing 2 19.09.2005 20:08
Schnee Skript 1337Jin Editing 8 12.09.2004 15:32
Schlaf Skript Rudi Mod und Addon Ecke 42 08.08.2004 13:49


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