PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lager Drehen


Nokman
13.11.2014, 19:56
Guten Abend,

Seit ein paar tagen komme ich an einen Punkt nicht weite oder der Ansatz fehlt mir dazu. Wie schaffe ich es per Script ein Lager aus 60 Objekten zu drehen.

Im moment habe ich es so das ich die Positionen der Objekte von der Mitte des Lagers aus habe und Somit um denn (Im Test Player) das Lager erstelle.

_lager = [["Land_HBarrierBig_F",[3.5,-25.7998,0],0],
["Land_HBarrierBig_F",[-5.09961,-26,0],0],
["Land_HBarrierBig_F",[-13.5996,-26.2002,0],0],
["Land_HBarrierBig_F",[-22,-26.2002,0],0],
["Land_HBarrierBig_F",[-30.5,-26.2002,0],0],
["Land_HBarrierBig_F",[-36,-23,0],272.431],
["Land_HBarrierBig_F",[-35.7998,-14.3994,0],272.431],
["Land_HBarrierBig_F",[-35.7002,-5.7002,0],272.432],
["Land_HBarrierBig_F",[-35.5996,3.10059,0],272.431],
["Land_HBarrierBig_F",[-35.5996,11.9004,0],272.431],
["Land_HBarrierBig_F",[-35.3994,20.5,0],272.431],
["Land_HBarrierBig_F",[-35.0996,29.2002,0],272.431],
["Land_HBarrierBig_F",[-29.5996,32.5,0],0.856752],
["Land_HBarrierBig_F",[-21,32.5,0],0.856752],
["Land_HBarrierBig_F",[-12.3994,32.7002,0],0.856752],
["Land_HBarrierBig_F",[-3.7998,32.7998,0],0.856746],
["Land_HBarrierBig_F",[4.90039,33,0],0.858156],
["Land_HBarrierBig_F",[13.5,33,0],0.857136],
["Land_HBarrierBig_F",[22.1006,33.1006,0],0.856853],
["Land_HBarrierBig_F",[30.7002,33.2002,0],0.85665],
["Land_HBarrierBig_F",[39.4004,33.2002,0],0.856543],
["Land_HBarrierBig_F",[44.2998,29.9004,0],96.6352],
["Land_HBarrierBig_F",[43.5,21.4004,0],96.6352],
["Land_HBarrierBig_F",[42.6006,12.7002,0],96.6351],
["Land_HBarrierBig_F",[41.9004,4.2002,0],96.6348],
["Land_HBarrierBig_F",[41.1006,-4.39941,0],96.6348],
["Land_HBarrierBig_F",[40.2998,-12.7998,0],96.6358],
["Land_HBarrierBig_F",[39.6006,-21.5,0],96.636],
["Land_HBarrierBig_F",[12.2002,-25.7002,0],0],
["Land_Bunker_F",[-24.2998,-16.2002,0],225],
["Land_BagBunker_Tower_F",[20.7002,-24.0996,0],270],
["Land_Medevac_house_V1_F",[-27.3994,2.10059,0],270],
["Land_TTowerSmall_1_F",[-34.2998,-24.8994,0],0],
["Land_PowerGenerator_F",[-16.3994,-23.7002,0],359.999],
["Land_PowerGenerator_F",[-15.0996,-23.5996,0],359.999],
["Land_PowerGenerator_F",[-13.7002,-23.3994,0],359.999],
["WaterPump_01_forest_F",[-0.5,-22.7002,0],0],
["Land_Sacks_heap_F",[12.9004,-20.3994,0],0],
["Land_Sacks_heap_F",[11.1006,-20.3994,0],0],
["Land_Sacks_heap_F",[9.2998,-20.5,0],0],
["Land_Sacks_heap_F",[13.5,-22.7002,0],0],
["Land_Sacks_heap_F",[11.7002,-22.5996,0],0],
["Land_Sacks_heap_F",[9.90039,-22.5996,0],0],
["Land_LampSolar_F",[-32.8994,30.1006,0],230],
["Land_LampSolar_F",[43.2998,32.1006,0],305],
["Land_LampSolar_F",[-33.8994,-25.0996,0],120],
["Land_LampSolar_F",[4.7998,31.4004,0],-100],
["Land_LampHalogen_F",[16.7002,-22.7002,0],180],
["Land_LampHalogen_F",[38.7002,-26.5996,0],45],
["Land_Cargo_House_V3_F",[-24.5996,26.7998,0],0],
["Land_Wreck_Heli_Attack_02_F",[24.5,26.2002,0],89],
["Land_TentHangar_V1_F",[-7.2002,22,0],180],
["Land_Pallet_MilBoxes_F",[-32.0996,25.6006,0],0.000814866],
["Land_Pallet_MilBoxes_F",[-32.0996,24,0],0.000814866],
["Land_Pallet_MilBoxes_F",[-32.2002,22.2998,0],0.000814866],
["B_CargoNet_01_ammo_F",[-30,12.2998,0],359.997],
["B_CargoNet_01_ammo_F",[-30.0996,14,0],359.999],
["B_CargoNet_01_ammo_F",[-30.0996,16,0],0.00221238],
["B_CargoNet_01_ammo_F",[-30.2002,17.7002,0],0.00148541],
["B_CargoNet_01_ammo_F",[-30.2002,25.2998,0],359.996],
["B_CargoNet_01_ammo_F",[-30.2998,23.2998,0],356.609],
["B_CargoNet_01_ammo_F",[-30.2998,21.4004,0],0.0167407],
["B_CargoNet_01_ammo_F",[-30.2002,19.5,0],0.000523247]];
_mitte = getpos player;
{_obj = (_x select 0) createvehicle [0,0,0]; _obj setdir (_x select 2); _obj setpos [((_mitte select 0)+((_x select 1) select 0)),((_mitte select 1)+((_x select 1) select 1)),0]}foreach _lager;

Nun würde ich es so Anpassen das er Zb die Sichtrichtung des Players nimmt und es so herum hinstellt das der Player bei der Erstellung immer zum Hanger schaut.

Vielleicht hat von euch jemand eine Idee.

Gruß

Nokman

Tajin
14.11.2014, 08:18
Da gibt es den wunderbar praktischen Befehl "modelToWorld".


Ersetz einfach deine letzten beiden Zeilen mit dem hier:
{
_obj = (_x select 0) createvehicle [0,0,0];
_obj setPos ( player modelToWorld [(_x select 1) select 0,(_x select 1) select 1,0] );
_obj setDir ( (getDir player) - (_x select 2) );
} forEach _lager;

Kann sein das du den Part bei "setDir" noch umdrehen musst, einfach ausprobieren.

Nokman
14.11.2014, 16:32
Natürlich geht es so :D Danke

Einzelne Objekten (nicht alle) komischerweise muss ich umdrehen da die um 180° falsch stehen.

Ein anderen merkwürdigen Bug der dabei aufgetaucht ist wenn ich in einen Fahrzeug sitze sind die Objekte vor mir im Boden und hinter mir um ca 5 meter in der Luft.

Tajin
14.11.2014, 16:57
Komisch. Mach aus dem setPos mal ein setPosATL, vielleicht hilft das. Allerdings ist nen Fahrzeug dafür eh nicht so optimal, weil das ja schief stehen kann und sich dadurch dann die Entfernungen verändern.

Nokman
14.11.2014, 18:49
Jup also ein Spieler in einen Fahrzeug sitzt Schräg daher kommt die Lage. ModeltoWorld Beachtet den vectorup richtig Funktiert es auf das Fahrzeug angewendet als Fahrzeug als Modelpunkt genommen.

Tajin
17.11.2014, 10:51
Änder im code einfach "player" überall auf "vehicle player", dann geht es sowohl zu Fuß, alsauch im Fahrzeug.