HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-187/)
-   -   Lager Drehen (https://hx3.de/editing-scripting-187/lager-drehen-24394/)

Nokman 13.11.2014 19:56

Lager Drehen
 
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.

Code:

_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:
PHP-Code:

{
    
_obj = (_x select 0createvehicle [0,0,0];
    
_obj setPos player modelToWorld [(_x select 1select 0,(_x select 1select 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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:44 Uhr.

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 117 118 119