GTA: Berlin-Foren (http://www.forum.gtaberlin.de/index.php)
- Showroom (http://www.forum.gtaberlin.de/board.php?boardid=36)
-- Scripting (http://www.forum.gtaberlin.de/board.php?boardid=45)
--- Handling änderung via Script (http://www.forum.gtaberlin.de/thread.php?threadid=650)


Geschrieben von ATP am 13.12.2008 um 00:45:

  Handling änderung via Script

Dank der CLEO Library von Seeman kann man per Script Speicheradressen ändern, und somit auch das Handling eines Autos Ingame verändern. So ergeben sich eine menge Tunnigmöglichkeiten, denn man kann Höchsgeschwindigkeit, Beschleunigung, Grip usw. Ingame ändern. Man könnte zum Beispiel beim kauf eines bestimmten Reifens den Grip verändern und den reifen im Spiel als "Drift Reifen" oder so verkaufen. Man kann also eine Tunniggarage bauen die alles bietet was eine Tunnig Garage in NFS UG2 hat.
Die Sache hat nur Zwei Haken,
1. Man braucht für jedes Auto eine andere Speicheradresse und bei ~200 Autos dauert es ganz schön lange alle Adressen einzutragen... Man Müsste das ganze also auf ein paar Wagen beschränken.
2. Alle Autos nutzen das Selbe Handling, wenn du also etwas an CJs Auto änderst haben im Verkehr alle Autos der ID dieses Handling. Man könnte z.B. das Tieferlegen zwanghaft mit stossstangen verbinden, so würde es nicht so aufallen das die Autos im Verkehr auch ein geändertes Handling haben weil es noch optische unterschiede zu CJs Auto gibt.

Ich habe ein Script gemacht mit dem sich das Auto "richtig" höher- und tiefrerlegen läst.
Script:
code:
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:
:HTUN
03A4: name_thread "HTUN" 

:HTUN_13
0001: wait 0 ms 
00D6: if 
00DD:   actor $PLAYER_ACTOR driving_car_with_model #LANDSTAL 
004D: jump_if_false @HTUN_13 
00D6: if 
0103:   actor $PLAYER_ACTOR in_sphere -2027.031 178.6736 28.5495 radius 4.0 4.0 4.0 sphere 1 stopped_in_car 
004D: jump_if_false @HTUN_13 
01B4: set_player $PLAYER_CHAR can_move 0 
03C0: 0@ = actor $PLAYER_ACTOR car 
0247: load_model #LANDSTAL 
038B: load_requested_models 

:HTUN_106
0001: wait 0 ms 
00D6: if 
0248:   model #LANDSTAL available 
004D: jump_if_false @HTUN_106 
016A: fade 0 time 500 
0004: $4 = 12761564 
0008: $4 += 184 
0A8D: $5 = read_memory $4 size 4 virtual_protect 1 
0005: $6 = $5 
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at -2031.162 167.2687 28.8359 
0001: wait 1000 ms 
015F: set_camera_position -2034.22 169.9902 28.8359 rotation 0.0 0.0 0.0 
0160: set_camera_point_at -2020.255 188.5034 28.3725 mode 2 
016A: fade 1 time 500 

:HTUN_254
0001: wait 0 ms 
00D6: if 
0020:   $6 > 2.5 
004D: jump_if_false @HTUN_289 
0005: $6 = 2.5 

:HTUN_289
00D6: if 
0022:   -1.0 > $6 
004D: jump_if_false @HTUN_320 
0005: $6 = -1.0 

:HTUN_320
0A8C: write_memory $4 size 4 value $6 virtual_protect 1 
00A6: destroy_car 0@ 
00A5: 0@ = create_car #LANDSTAL at -2027.031 178.6736 28.5495 
0229: set_car 0@ primary_color_to 11 secondary_color_to 0 
00D6: if 
0AB0:   key_pressed 38 
004D: jump_if_false @HTUN_394 
0009: $6 += -0.1 

:HTUN_394
00D6: if 
0AB0:   key_pressed 40 
004D: jump_if_false @HTUN_419 
0009: $6 += 0.1 

:HTUN_419
00D6: if 
0AB0:   key_pressed 13 
004D: jump_if_false @HTUN_455 
0A8C: write_memory $4 size 4 value 0.28 virtual_protect 1 
0002: jump @HTUN_470 

:HTUN_455
00D6: if 
0AB0:   key_pressed 32 
004D: jump_if_false @HTUN_254 

:HTUN_470
016A: fade 0 time 500 
00A6: destroy_car 0@ 
00A5: 0@ = create_car #LANDSTAL at -2027.031 178.6736 28.5495 
0249: release_model #LANDSTAL 
072A: put_actor $PLAYER_ACTOR into_car 0@ driverseat 
01C3: remove_references_to_car 0@ // Like turning a car into any random car 
0001: wait 1000 ms 
02EB: restore_camera_with_jumpcut 
0373: set_camera_directly_behind_player 
016A: fade 1 time 500 
01B4: set_player $PLAYER_CHAR can_move 1 

:HTUN_546
0001: wait 0 ms 
00D6: if 
80FE:   not actor $PLAYER_ACTOR sphere 0 in_sphere -2027.031 178.6736 28.5495 radius 6.0 6.0 6.0 
004D: jump_if_false @HTUN_546 
0002: jump @HTUN_13


Video von dem Script

Wer selbst noch ein wenig herumprobieren will, der findet hier die Speicheradrssen.

Ich hätte gerne ein paar Meinungen dazu gehört großes Grinsen



Geschrieben von FunkMasterFLEXX am 13.12.2008 um 12:01:

 

Hi finde das ist echt eine coole Sache, nur das alle anderen autos das selbe handling haben müsste man noch verbessern. Eine erweiterte Tuninggarage wäre eine echt kultige sache und würde das Spiel sehr aufwerten. Klar müsste man sich auf ein paar autos beschränken, für diese müsste es dann aber auch Bodykits geben. großes Grinsen



Geschrieben von ATP am 14.12.2008 um 00:33:

 

Zitat:
Original von FunkMasterFLEXX
Hi finde das ist echt eine coole Sache, nur das alle anderen autos das selbe handling haben müsste man noch verbessern. Eine erweiterte Tuninggarage wäre eine echt kultige sache und würde das Spiel sehr aufwerten. Klar müsste man sich auf ein paar autos beschränken, für diese müsste es dann aber auch Bodykits geben. großes Grinsen
Es haben nicht alle anderen Autos das selbe Handling, sondern nur der Auto Typ den du geändert hast. Wenn du also das Taxi änderst, haben nur alle Taxis dieses Handling.

Allerdings weiss ich schon wie man das Problem umgehen kann.



Geschrieben von WardoQ am 14.12.2008 um 00:40:

 

ihr habts echt wa? fiese Lache
wat ihr so allet hinkriegtgrinsen
nich schlecht!grinsen
mfG



Geschrieben von FunkMasterFLEXX am 14.12.2008 um 01:14:

 

Passt zwar nicht hierher aber wäre es theoretisch auch möglich ähnlich wie in GTA4 ein Schadensmodell für die autos in berlin zu scripten?



Geschrieben von JKM am 14.12.2008 um 03:06:

 

selbst wenn es technisch machbar wäre, ist es nicht mit unseren autos umzusetzen.
Das auto braucht dementsprechend mehr polys, da die ja beim schaden verschoben werden. und darauf sind unsere autos nicht ausgelegt.



Geschrieben von FunkMasterFLEXX am 14.12.2008 um 10:36:

 

es häng ja nicht unbedingt davon ab wie viele Polys verschoben werden sondern wie stark sie je nach aufprall verschoben werden



Geschrieben von Trabbi 601s am 14.12.2008 um 10:58:

 

ja gut aber ich finde der e30 oder der t4 die hätten denke ich genug polys ich hab mir mal alle autos angekukt das sollte eigentlich gehen und wenn ihr eh alle ersetzen wollt...grinsen



Geschrieben von FunkMasterFLEXX am 14.12.2008 um 13:46:

 

man könnte be dem Script auch noch die Reifengröße verändern, sowie modifizierte scheinwerfer



Geschrieben von Lego am 14.12.2008 um 17:56:

 

mirstellt sich eine anderre frage. wen man ein auto tuned könnte man ja die id ändern. sprich bevor man reinfährt hat man das auto mit der id 400. dann hat nen tuningslot bei 400. wen man nun das auto tuned spawned am ende das auto mit der id 600 mit dem spezifischem handling..., als modelid wird aber die 400 verwendet.

zumindestens dachte ich das dies ging das man einfach das model in einer config definieren kann und da man ja das handling ändern kann, kann man auch diesen eintrag ändern.

Damit würde man das Problem umgehen das dann der gesamte verkehr dieses neue handling hat.

Edit: mir is wieder eingefallen welche config das war, die vehicles.ide.
dort sieht es ja so aus
code:
1:
400,    landstal,       landstal,       car,            LANDSTAL,       LANDSTK,        null,   normal,         10,     0,      0,              -1, 0.768, 0.768,       0


Nun würde man ne Reservierte tuningid nehmen eben z.b. 600 fals die frei ist. Dort kopiert man die gesamte zeile hin
->
code:
1:
600,    landstal,       landstal,       car,            LANDSTAL,       LANDSTK,        null,   normal,         10,     0,      0,              -1, 0.768, 0.768,       0


Und anschliesend um ein das tuninghandling zu haben, ändert man noch die HandlingId
->
code:
1:
600,    landstal,       landstal,       car,            TUNING,       LANDSTK,        null,   normal,         10,     0,      0,              -1, 0.768, 0.768,       0


Denke mal echt das müsste man via script hinbekommen.



Geschrieben von ATP am 14.12.2008 um 19:59:

 

Gut das hier mal jemand mitdenktAugenzwinkern

Allerdings habe ich das Problem schon anders gelöst. Wenn du das Handling änderst, muss das Auto neu gespawnt werden damit die änderungen wirksam werden, deshalb wird in meinem Beispielscript das Auto auch ständig zerstört und wieder neu erstellt. Das kann man sich auch zunutze machen indem man wenn man aus der Tunniggarge kommt das Handling wieder auf Standart setzt. So bleibt das eigene Auto "getunt" und der Verkehr der neu gespawnt wird hat wieder das original Handling.



Geschrieben von Lego am 14.12.2008 um 20:30:

 

Stimmt, wen es so funktioniert dann isses ne schlecht grinsen



Geschrieben von FunkMasterFLEXX am 14.12.2008 um 20:34:

 

muss dann halt noch in das Menü der tuningarage eingebaut werden



Geschrieben von ATP am 14.12.2008 um 20:50:

 

Zitat:
Original von FunkMasterFLEXX
muss dann halt noch in das Menü der tuningarage eingebaut werden
Na wenn schon ne komplett neue Garage bzw. ein komplett neues Script. Ich mache nächste Tage mal ein Garage fertig die ein Auto komplett Tunbar macht. Ich habe da auch schon was für Spinners da. Sache wie Turbo-Kits für bessere Beschleunigung oder so sind ja jetzt kein Problem mehr.

Kann mir jemand einen Spinner modelieren? Texturen+Konvertieren mache ich dann selber.



Geschrieben von Roehrich am 15.12.2008 um 16:16:

 

wie findest du den hier?



ich schick dir mal die .z3d



mfg roehrich



Geschrieben von FunkMasterFLEXX am 15.12.2008 um 18:30:

 

hört sich verdamt gut an großes Grinsen



Geschrieben von djyomen am 15.12.2008 um 18:36:

 

was ich mich dann frage ist, kann man denn noch mehrere autos tunen ??
Hab ja keinen schimmer vom scripten aber wenn eine id überschrieben wird kann das ja nich unendlich mal möglich sein..



Geschrieben von ATP am 15.12.2008 um 18:59:

 

Zitat:
Original von djyomen
was ich mich dann frage ist, kann man denn noch mehrere autos tunen ??
Hab ja keinen schimmer vom scripten aber wenn eine id überschrieben wird kann das ja nich unendlich mal möglich sein..
Man kann auf diese art im Prinzip alle Autos Tunen. Das Problem ist halt das man jedes Auto extra ins Script einarbeiten muss, andere Speicheradrssen, andere Maximal und Minimalwerte beim Handling, andere Coords für sachen wie Spinners, drehbare Spoiler usw.
Und wenn man das bei ca. 200 Fahrzeugen nicht nur alles eintragen sondern auch testen bzw. ermitteln muss, sollte man solche sachen auf ein paar Cars beschränken.



Geschrieben von djyomen am 15.12.2008 um 19:58:

 

natürlich, natürlich..so fahrzeuge wie nen manana oder so brauchen ja keine komischen tuningspecials...ich meine kann man fahrzeug XY mehrmals tunen, also ein und das selbe auto ?!



Geschrieben von ATP am 15.12.2008 um 20:54:

 

Zitat:
Original von djyomen
natürlich, natürlich..so fahrzeuge wie nen manana oder so brauchen ja keine komischen tuningspecials...ich meine kann man fahrzeug XY mehrmals tunen, also ein und das selbe auto ?!
Ja kann man... Mal kucken wie ich das machen werde.


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH