Status- Besucher
- Heute:
- 0
- Gestern:
- 0
- Gesamt:
- 0
-
Benutzer & Gäste
335 Benutzer registriert, davon online: 16 Gäste
|
|
2525 Beiträge & 393 Themen in 15 Foren |
Keine neuen Beiträge, seit Ihrem letzten Besuch am 23.12.2024 - 21:23.
|
|
|
|
|
Autor |
|
|
Player-Teleportieren beim SG-Mod-One way ticket |
|
|
18 Beiträge - Grünschnabel
|
|
|
Hallo liebe Mapper.
Verwendet habe ich dafür den Stargate Little
Helper(SGLH.exe) der mir ein vergleichbaren
Listing mit IPs erzeugt hat. Hier nun das
ganze mal mit Beschriftung, damit man es besser
nachvollziehen kann.
/////////// GATE STUFF ////////////////////////////
if ssnride(DHD1) or ssnride(Wormhole teleport object) or ssnride(Destination teleport object) then
PLOOP
if ssnonssn(player,DHD1) or ssnonssn(player,Wormhole teleport object) or ssnonssn(player,Destination teleport object) then
ssnrelease(player)
endif
END
endif
if v50 == 2 and ssnride(DHD1) then
v50 = 3
endif
if v50 == 3 then
DOSEQ
ssnwave(Spacegate plume1,"dhd.wav",100)
unhidessn(Chevron1a)
NEXT
unhidessn(Chevron1b)
unhidessn(Chevron2a)
NEXT
unhidessn(Chevron1c)
unhidessn(Chevron2b)
NEXT
unhidessn(Chevron1d)
unhidessn(Chevron2c)
NEXT
unhidessn(Chevron1e)
unhidessn(Chevron2d)
NEXT
unhidessn(Chevron1f)
unhidessn(Chevron2e)
NEXT
unhidessn(Chevron1g)
unhidessn(Chevron2f)
ssnwave(Spacegate plume1,"plume.wav",100)
NEXT
unhidessn(Spacegate plume1)
NEXT
hidessn(Spacegate plume1)
unhidessn(Spacegate horizon1)
unhidessn(Spacegate horizon 'bucket'1)
unhidessn(Chevron2g)
v51 = 30
v50 = 0
ENDDO
endif
if chain(3) then
ssnwave(Spacegate plume2,"plume.wav",100)
unhidessn(Spacegate plume2)
endif
if chain(2) then
hidessn(Spacegate plume2)
unhidessn(Spacegate horizon2)
unhidessn(Spacegate plume2)
endif
if v51 then
dec(v51)
v52 = 0
PLOOP
if ssnnearssn(player,Travel detection1,3) then
inc(v52)
if v52 < 6 then
ssn2ssn(player,Warmhole Teleport object)
ssnuse(player)
endif
endif
END
consol#(" Gate closes in ",v51)
if v51 < 6 then
ssnwave(Spacegate plume1,"consol.wav",100)
endif
endif
if !v51 and !v50 then
DOSEQ
ssnwave(Spacegate plume1,"wormend.wav",100)
NEXT
consol("Gate closed!")
consol(".")
consol(".")
NEXT
hidessn(Spacegate plume1)
hidessn(Spacegate horizon1)
hidessn(Spacegate horizon 'bucket'1)
hidessn(Chevron1a)
hidessn(Chevron1b)
hidessn(Chevron1c)
hidessn(Chevron1d)
hidessn(Chevron1e)
hidessn(Chevron1f)
hidessn(Chevron1g)
v50 = 1
ENDDO
endif
if chain(12) then
ssnwave(Spacegate plume2,"wormend.wav",100)
endif
if chain(2) then
hidessn(Chevron2a)
hidessn(Chevron2b)
hidessn(Chevron2c)
hidessn(Chevron2d)
hidessn(Chevron2e)
hidessn(Chevron2f)
hidessn(Chevron2g)
hidessn(Spacegate plume2)
hidessn(Spacegate horizon2)
hidessn(Spacegate horizon 'bucket'2)
v50 = 2
endif
if v50 < 2 then
PLOOP
if ssnnearssn(player,Wormhole detection waypoint,20) then
ssn2ssn(player,Destination Teleport object1)
ssnuse(player)
endif
END
endif
//////////// END GATE STUFF////////////////
Dirk
Dieser Beitrag wurde 1 mal editiert, zuletzt von freecrac am 24.09.2009 - 10:47.
|
Beitrag vom 23.09.2009 - 19:50 |
|
|
Player-Teleportieren erklären! |
|
|
Administrator 202 Beiträge - Mitglied
|
|
|
@freecrac
Offensichtlich hast du sehr viel Freizeit.
Wenn du aber schon Stargate Little Helper(SGLH.exe) verwendest und dann ein fertiges Script welches eigentlich von OLDMAN stammt hier bei den MaP-MaKeRs veröffentlichens, erwarte ich, dass DU das auch für Anfänger erklärst!---uhi langer Satz geworden---
Nimm also jeden Block des fertigen Script und erkläre das!
Ist ja kein Hexenwerk für uns hier, da ich zumindest damals mit Lothar Bulldog-SG1- daran herum gebastelt habe im einer Vorabversion vom SG-Mod für die Öffentlichkeit.
Nun bin ich ja mal gespannt was ein Mapper der angeblich den WAC-Befehl hide (unsichtbar) nicht kennt hinbekommt.
IKARUS~RSU~ Admin; Mentalamöbe
Dieser Beitrag wurde 2 mal editiert, zuletzt von IKARUS~RSU~ am 23.09.2009 - 20:48.
|
Beitrag vom 23.09.2009 - 20:41 |
|
|
RE: Player-Teleportieren erklären! |
|
|
18 Beiträge - Grünschnabel
|
|
|
Zitat Original geschrieben von IKARUS~RSU~
@freecrac
Offensichtlich hast du sehr viel Freizeit.
|
Nein das ist anders, Rentner haben immer zu wenig Zeit.
Zitat
Wenn du aber schon Stargate Little Helper(SGLH.exe) verwendest und dann ein fertiges Script welches eigentlich von OLDMAN stammt hier bei den MaP-MaKeRs veröffentlichens, erwarte ich, dass DU das auch für Anfänger erklärst!---uhi langer Satz geworden---
|
Da ich es hier so noch nicht gefunden habe, dachte ich
mir es statt der IDs mal mit Namen zu beschriften und
so schon mal eine erste Hilfe zu geben.
Zitat
Nimm also jeden Block des fertigen Script und erkläre das!
|
Das kann ich gerne Versuchen.
Zitat
Ist ja kein Hexenwerk für uns hier, da ich zumindest damals mit Lothar Bulldog-SG1- daran herum gebastelt habe im einer Vorabversion vom SG-Mod für die Öffentlichkeit.
|
Aha. Habt ihr es denn noch gar nicht selber veröffentlicht und genauer erklärt?
Zitat
Nun bin ich ja mal gespannt was ein Mapper der angeblich den WAC-Befehl hide (unsichtbar) nicht kennt hinbekommt.
|
Ich glaube hier liegt ein Mißverständnis vor, den
Hide-Befehl an sich kenne ich schon etwas länger.
Mir war nur noch nicht bekannt das man damit auch Bots
unsichtbar machen kann. Anlass für meinen diesbezüglichen
Irrtum war der Umstand das man gewöhnliche Bots mit
"Change Typ of selected Objects" mit einem unsichtbaren
Bot vertauschen kann.
Mein Erklärungsversuch für den obigen Script folgst in
Kürze.
Dirk
|
Beitrag vom 23.09.2009 - 21:58 |
|
|
Erklärung des Gate-Stuffs |
|
|
18 Beiträge - Grünschnabel
|
|
|
Zitat
if ssnride(DHD1) or ssnride(Wormhole teleport object) or ssnride(Destination teleport object) then
PLOOP
if ssnonssn(player,DHD1) or ssnonssn(player,Wormhole teleport object) or ssnonssn(player,Destination teleport object) then
ssnrelease(player)
endif
END
endif
|
Bei diesem Teil wird überprüft ob das DHD, oder das
Wormhole teleport object,oder das Destination
teleport object bereits benutz wird. Wenn ja, wird
überprüft ob ein Player diese Dinge benutzt und
falls das der Fall ist, werden alle Player die
diese Sachen benutzen von der jeweiligen Benutzung
dazu gebracht diese Dinge nicht mehr zu benutzen.
Zitat
if v50 == 2 and ssnride(DHD1) then
v50 = 3
endif
|
Hier wird geschaut ob das DHD gerade benutzt wird.
Wenn ja wird die Variable v50 auf 3 gesetzt.
Variablen sind Container die beliebige Werte bis zu
einer bestimmten Werthöhe (ich glaube bis 255)
aufnehmen können und dann zur Ablaufsteuerung eine
Verwendung finden. Hat eine Variable ein Wert
bekommen, kann man diese Variable abfragen und/oder
zur weiteren Verechnung verwenden. Zum Start sind
alle bereits vorhandenen Variablen auf Null
gesetzt, bis sie einen Wert zugewiesen bekommen.
Zitat
if v50 == 3 then
DOSEQ
ssnwave(Spacegate plume1,"dhd.wav",100)
unhidessn(Chevron1a)
NEXT
unhidessn(Chevron1b)
unhidessn(Chevron2a)
NEXT
unhidessn(Chevron1c)
unhidessn(Chevron2b)
NEXT
unhidessn(Chevron1d)
unhidessn(Chevron2c)
NEXT
unhidessn(Chevron1e)
unhidessn(Chevron2d)
NEXT
unhidessn(Chevron1f)
unhidessn(Chevron2e)
NEXT
unhidessn(Chevron1g)
unhidessn(Chevron2f)
ssnwave(Spacegate plume1,"plume.wav",100)
NEXT
unhidessn(Spacegate plume1)
NEXT
hidessn(Spacegate plume1)
unhidessn(Spacegate horizon1)
unhidessn(Spacegate horizon 'bucket'1)
unhidessn(Chevron2g)
v51 = 30
v50 = 0
ENDDO
endif
|
Dieser Part überprüft nun die Variable v50, ob sie
den Wert 3 beinhaltet. Wenn ja, wird eine Sequenz
eingeleitet die zum Anfang ein Sound-File("dhd.wav")
unmittelbar am Spacegate plume1 abspielt, das
sich an unserem ersten Spacegate1 befindet. Dann
wird Stück für Stück mit einem kleinen zeitlichen
Versatz (fast) alle Chevrons beider Spacegates
sichtbar gemacht. Danach wird wieder ein Soundfile
abgespielt ("plume.wav") und das wieder an unserem
Spacegate plume1 zu höhren ist, welches im Anschluß
ebenfalls sichtbar gemacht wird. Kurze Zeit später
wird dieses Spacegate plume1 wieder unsichtbar
gemacht und dafür das Spacegate-horizon1 und das
Spacegate horizon 'bucket'1 sichbar gemacht. Nun
wird das letzte Chevron2g(vom zweiten Spacegate)
sichtbar gemacht. Im Anschluss wird die Variable
v50 auf 0 gesetzt und die Variable v51 bekommt
den Wert 30 zugewiesen. Die Variable v51 wird dazu
benutzt den zeitlichen Ablauf zu steuern wie lange
unsere beiden Spacegates zum Reisen offen und
benutzbar sind. Die 30 entsprechen dann ca. 30
Sekunden.
Zitat
if chain(3) then
ssnwave(Spacegate plume2,"plume.wav",100)
unhidessn(Spacegate plume2)
endif
|
Nachdem dieser dort darüber sich befindende Part
der die Chevrons sichtbar macht ausgeführt wurde
und 3 Sekunden verstrichen sind, wird am zweiten
Spacegate ebenfalls das "plume.wav am dortigen
Spacegate plume2 abgespielt und dieses Spacegate
plume2 ebenfalls sichtbar gemacht.
Zitat
if chain(2) then
hidessn(Spacegate plume2)
unhidessn(Spacegate horizon2)
unhidessn(Spacegate plume2)
endif
|
Wenn dieser Part mit dem Sichtbarmachen des
Spacegate-plume2 erfolgte und zwei Sekunden
verstrichen sind, wird das Spacegate plume2 wieder
unsichtbar gemacht und im Anschluß das Spacegate
horizon2 und das Spacegate plume2 am zweiten
Spacegate sichtbar gemacht.
Zitat
if v51 then
dec(v51)
v52 = 0
PLOOP
if ssnnearssn(player,Travel detection1,3) then
inc(v52)
if v52 < 6 then
ssn2ssn(player,Warmhole Teleport object)
ssnuse(player)
endif
endif
END
consol#(" Gate closes in ",v51)
if v51 < 6 then
ssnwave(Spacegate plume1,"consol.wav",100)
endif
endif
|
Dieser Part überprüft ob die Variable v51 einen Wert
besitzt bzw. der größer als 0 ist. Wenn das der Fall
ist, wird die Variable v51 um eins verringert und
die Variable v52 wird auf null gesetzt. Die
Variable v52 wird dazu verwendet zu zählen wie
viele Player sich Teleportieren möchten und sich am
Spacegate-Trigger (Travel detection1) an unserem
ersten Spacegate sich befinden.
Wenn dieser Part ausgeführt wurde beginnt eine
PLOOP- Schleife die überprüft ob und welcher Player
sich innerhalb von 3 Metern an diesem Travel-
Detection1-Marker befinden. Wenn sich dort ein
Player oder mehr befindet wird die Variable v52 um
eins erhöht und anschliessend wird diese Variable
v52 darauf überprüft, ob weniger als 6 Player
gleichzeitig sich teleportieren möchten. Sind es
weniger als 6 Player, dann werden diese Player in
das Wormhole zum dortigen Warmhole-Teleport-
object mit ssn2ssn und ssnuse teleportiert. Im
Anschluß wird eine Textnachricht am oberen linken
Bildschirmrand ausgegeben der die Zeit bis zum
Schliessen der beiden Spacegates angibt.
Unmittelbar danach wird geschaut ob der Timer zum
Offenhalten des Spacegates schon kleiner als 6
Sekunden geworden ist, wenn ja wird am ersten
Spacegate plume ein Soundfile("consol.wav")
abgespielt, der das baldige Schliesen der beiden
Spacegates akustisch signalisiert.
Zitat
if !v51 and !v50 then
DOSEQ
ssnwave(Spacegate plume1,"wormend.wav",100)
NEXT
consol("Gate closed!")
consol(".")
consol(".")
NEXT
hidessn(Spacegate plume1)
hidessn(Spacegate horizon1)
hidessn(Spacegate horizon 'bucket'1)
hidessn(Chevron1a)
hidessn(Chevron1b)
hidessn(Chevron1c)
hidessn(Chevron1d)
hidessn(Chevron1e)
hidessn(Chevron1f)
hidessn(Chevron1g)
v50 = 1
ENDDO
endif
|
Nach dem Starten unserer Map beginnt hier das erste
Mal die Ausführung unserer Torsequenz, da die
Variablen V51 und v50 immer noch keinen Wert haben
bzw. auf Null stehen. Damit werden alle Cevrons von
unserem ersten Spacegate und auch das dortige
Spacegate plume1, das Spacegate horizon1 und das
Spacegate horizon 'bucket'1 unsichtbar gemacht.
Ebenfalls dient dieser Teil dafür nach Ablauf der
Spacegate-Öffnungszeit diese Dinge unsichbar zu
schalten damit nach Ablauf der Öffnungszeit nur das
nackte Gate zu sehen ist. Dazwischen erfolgt auch
die Meldung das sich die Spacegates bald
schliessen. Am Ende wird die Variable v50 auf eins
gesetzt um damit zu steuern, ob und welcher Part
von unseren verschiedenen Ablaufsequenzen
ausgeführt werden soll.
Zitat
if chain(12) then
ssnwave(Spacegate plume2,"wormend.wav",100)
endif
|
Nachdem dieser davor liegende Part ausgeführt wurde
und 12 Sekunden verstrichen sind, wird am Spacegate
plume2 ein Soundfile("wormend.wav") abgespielt.
Zitat
if chain(2) then
hidessn(Chevron2a)
hidessn(Chevron2b)
hidessn(Chevron2c)
hidessn(Chevron2d)
hidessn(Chevron2e)
hidessn(Chevron2f)
hidessn(Chevron2g)
hidessn(Spacegate plume2)
hidessn(Spacegate horizon2)
hidessn(Spacegate horizon 'bucket'2)
v50 = 2
endif
|
Nachdem dieser davor liegende Part ausgeführt wurde
und 2 Sekunden verstrichen sind, werden die
Chevrons vom zweiten Spacegate und das dortigen
Spacegate plume2, das Spacegate horizon2 und das
Spacegate horizon 'bucket'2 dort ebenfalls
unsichbar geschaltet. Im Anschluss wird die
Variable v50 auf 2 gesetzt.
Zitat
if v50 < 2 then
PLOOP
if ssnnearssn(player,Wormhole detection waypoint,20) then
ssn2ssn(player,Destination Teleport object1)
ssnuse(player)
endif
END
endif
|
Hier wird überprüft ob die Variable v50 kleiner als
2 ist, wenn ja dann beginnt eine PLOOP-Schleife
innerhalb der überprüft wird, ob und welcher Player
sich bereits am unteren Ende des Wormholes befindet
und diese Player werden dann zum Destination
Teleport object1, das sich am zweiten Spacegate
befindet, mit ssn und ssnuse teleportiert.
Dirk
Dieser Beitrag wurde 5 mal editiert, zuletzt von freecrac am 24.09.2009 - 12:36.
|
Beitrag vom 24.09.2009 - 10:46 |
|
|
|