Rolltreppe |
|
|
Original von T.R.Graves
Ich wollte mich nur mal wieder melden wegen der Rolltreppe und gleich mal meine Lösung anbieten.
Als erstes das Script...
Ich hoffe, du hast nichts dagegen, wenn ich den Script mal ein wenig verkürze (wer tippt sich schon gern die Finger wund
)
Code 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:
|
rolltreppe_move()
{
rolltreppe = getent ("rolltreppe","targetname");
rolltreppe thread move();
}
move()
{
stufe = [];
speed = 1.3; // Geschwindigkeit der Rolltreppe (je niedriger der Wert, desto schneller)
anzahl = 30; // Anzahl aller Treppenstufen
stufe[0] = getent(self.target,"targetname");
for (i = 0; i < anzahl; i++)
stufe[i+1] = getent(stufe[i].target,"targetname");
while(1)
{
self moveto(stufe[0].origin,speed);
for (j = 0; j < anzahl; j++)
stufe[j] moveto(stufe[j+1].origin,speed);
stufe[anzahl-1] waittill ("movedone");
}
} |
|
__________________
Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.
|
|
|
|
|
|
|
So, hab noch ein paar Anpassungen gemacht.
Habe ein script_origin hinzugefügt um die Rolltreppe zu identifizieren. Dieser script_origin bekommt als targetname "rolltreppe" und zusätzlich noch folgenden key/value
key: script_noteworthy
value: 22
(22 = Anzahl der Stufen dieser Rolltreppe, entsprechend eurer Rolltreppe anpassen).
Die Treppenstufen bekommen keinen targetname (keine der Stufen). Einfach alle im Kreis mit "w" miteinander verbinden, sodass der Kreis vollständig geschlossen ist (wo man anfängt dürfte eigentlich egal sein).
Dann noch das script_origin mit einer der Stufen verbinden.
Hier mal ein Bild:

Und hier das Script:
Code 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:
|
rolltreppe_move()
{
rolltreppe = getentarray ("rolltreppe","targetname");
for(z = 0; z < rolltreppe.size; z++)
rolltreppe[z] thread move();
}
move()
{
stufe = [];
speed = 1.5; // Geschwindigkeit der Rolltreppe (je größer der Wert, desto langsamer)
anzahl = int(self.script_noteworthy); //Anzahl der Stufen vom script_origin holen
stufe[0] = getent(self.target,"targetname");
for (i = 0; i < anzahl; i++)
stufe[i+1] = getent(stufe[i].target,"targetname");
while(1)
{
for (j = 0; j < anzahl; j++)
stufe[j] moveto(stufe[j+1].origin,speed);
stufe[anzahl-1] waittill ("movedone");
}
} |
|
Mit den kleinen Rucklern zwischendurch muss man wohl leben. Habe mal versucht, die Wartezeit zu verkürzen (für weicheren Übergang). Dadurch verschieben sich aber während der Laufzeit die Zielpunkte der einzelnen Stufen immer mehr, sodass die Stufen immer weiter aus dem Ruder laufen, also unbrauchbar.
Der Script eignet sich jetzt auch für mehrere Rolltreppen.
Was den paternoster-script betrifft, da wird die Richtung wohl durch die Reihenfolge bestimmt, in der man die script_origins der Wegpunkte setzt. Kann nach dem editieren katastrophale Auswirkungen haben.
Hab auch mal mit dem paternoster-script eine Rolltreppe gebaust (diese lief von unten nach oben, also genau anders herum als bei Mapicted). Nur machte mein Player auf den Treppenstufen immer einen kleinen Satz nach hinten, wenn eine Stufe den nächsten Wegpunkt erreicht hatte. Bei meinem Script bleibt der Player ruhig auf der Stufe stehen.
__________________
Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von OLD MAN WITH GUN: 24.05.2008 19:00.
|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
@kl!nter
richtig das hat damit zu tun
hast du das file überhaupt auf was du verweissen willst?
|
|
|
|
|
klinter
Ha Ho He Hertha BSC

Dabei seit: 27.06.2008
Beiträge: 235

|
|
_paternoster.gsc
Diesen Script hab ich benutzt, und eigentlich bin ich mir ziemlich sicher das ich nichts falsch gemacht habe. Die Datei auf die ich verweisen will existiert auch.
mfg klinter
edit: habs jetzt geschafft indem ich den inhalt der _paternoster.gsc in meine map.gsc kopiert habe, doch nun habe ich das gleiche problem wie steinacker.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von klinter: 29.09.2008 18:09.
|
|
|
|
|
klinter
Ha Ho He Hertha BSC

Dabei seit: 27.06.2008
Beiträge: 235

|
|
nein nein, diesen fehler hab ich nicht mehr.
bei mir kreuzen die paternoster sich immer wie bei dir auf dem bild.
wie hast du das gelöst? könntest du deine lösung uploaden?
mfg klinter
|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|