Auto mit Bewegungspath im mp [WIP]

jtms
Hi Leute,
falls es sowas hier schon gibt ist das dumm, macht aber nichts grosses Grinsen
ich wollte euch nur mein kleines Script vorstellen, das ich heute erdacht habe: Ein Auto, das eine Spur aus verlinkten script-origins entlangfährt.
Dies ist noch nicht die final-version. Ich werde das noch verbessern.

Also:

I - Im Radiant:

1. Ein Auto-Model nehmen
2. Markieren und Rechtsklick -> script -> model
3. N drücken und key / value verpassen: "targetname" "vehicle"
4. Beliebig viele Script-origins erstellen. Wenn man ein script-origin dreht, entsteht ein Pfeil. Dieser Pfeil muss dahin zeigen, wo beim Auto vorne sein soll, wenn es diesen Wegpunkt erreicht.
5. Wenn alle script-origins eingefügt wurden, esc Drücken zum demarkieren
6. Das Auto markieren, dann den ersten Wegpunkt und W drücken - eine Rote linie entsteht.
7. esc zum demarkieren. Dann den ersten und dann den zweiten wegpunkt markieren und W drücken.
8. esc, 3. WP, 4. WP, ... immer so weiter bis zwischen allen wegpunkten eine Linie entstanden ist.
Das sollte ca. so aussehen: KLICK MICH
9. Ihr klickt den ersten WP an, drückt n und gebt ihm als key "speed" und als value die zeit in sekunden, wie lange das Auto vom letzten WP bzw. von der Startposition bis zu diesem WP brauchen soll. Das macht ihr mit jedem WP
10. optional könnt ihr jedem WP noch die Werte "acc" und "dacc" geben. Das ist die zeit in sec, die der wagen zum beschleunigen (acc) und zum bremsen (dacc) braucht.
11. Wenn ihr wollt, dass das auto nach dem letzen WP wieder zum ersten fährt und die Runde nochmal macht, gebt dem letzten WP key "returntostart" und value "true"

II - Die GSC-Dateien:

In eure mp_mapname.gsc schreibt ihr nach
maps\mp\_load::main();
die zeile:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
maps\mp\_vehicles::main();



Dann legt ihr im Ordner "raw\maps\mp" eine neue Datei namens "_vehicles.gsc" an. In die schreibt ihr:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

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:
main()
{
	vehicle = getentarray ("vehicle", "targetname");

	if (isdefined (vehicle))
		for (i = 0; i < vehicle.size; i++)
			vehicle[i] thread think();
}

think()
{
	step[0] = getent (self.target, "targetname");

	for (i = 0;;i++)
	{
   	if (isdefined (step[i].target))
   		step[i + 1] = getent (step[i].target, "targetname");
   	else
   		break;
	}

	for (i = 0; i < step.size; i++)
	{
		dacc = 0;
		acc = 0;
		spd = 1; 

		if (isdefined (step[i].speed))
			spd = step[i].speed;

		if (isdefined (step[i].acc))
			acc = step[i].acc;

		if (isdefined (step[i].dacc))
			dacc = step[i].dacc;

   	self rotateto (step[i].angles, spd, acc, dacc);
   	self moveto (step[i].origin, spd, acc, dacc);
   	self waittill ("movedone");

   	if (i == step.size)
   		if (isdefined (step[i].returntostart))
   			if (step[i].returntostart == "true")
   			{
   				self rotateto (step[0].angles, step[0].speed, step[0].acc, step[0].dacc);
   				self moveto (step[0].origin, step[0].speed, step[0].acc, step[0].dacc);
   				self waittill ("movedone");
   				i = 0;
   			}
	}
} 



Zuguterletzt öffnet ihr noch die compiletools, wählt eure map aus und klickt auf "4. Update Zone File".
Auf der rechten seite schreibt ihr

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
rawfile,maps/mp/_vehicles.gsc



dann noch kompilieren et viola: Das Auto folgt dem Path smile

Hoffe ich habe alles gut erklärt, wenn nicht, fragen! smile

LG
JTMS