Autor |
|
|
|
|
Timer in Maps bauen |
|
|
18 Beiträge - Grünschnabel
|
|
|
Hallo an alle mapping profis
Ich hab da mal wieder eine frage.
Ich arbeite gerade an einer map und ich möchte einen timer einbauen.
kurze beschreibung:
sobald mein Bot tot ist möchte ich den spielern 90 sekunden zeit geben sich am heliport einzufinden, danach hebt der Heli ab und fliegt in die landezone und das spiel ist gewonnen.
meine frage ist nun:
wie muss ich das machen, das ein Timer, am besten oben links in der ecke, von 90 sekunden runterzählt und am besten noch alle 10 secunden einen warnton abspielt?
ich bedanke mich mal jetzt schon bei euch und bin ganz gespannt auf eure antworten.
bunte grüße,
Casi
|
Beitrag vom 12.05.2007 - 12:15 |
|
|
|
|
Also damit du JO Text in der Linken oberen Ecke anzeigen lässt nimmst in der WAC den Befehl consol("Text") bzw. consol#("Text",Variable).
So nun zum Code:
if not ssnalive(BotID) and never then
v210=90 //Timer wird gesetzt
endif
if v210>0 then //Wenn Restzeit größer 0 ist
consol("-----------------")
consol#("Heli startet in",v210)
consol("-----------------")
dec(v210)
if elapse(10) then //Alle 10 Sekunden Ton ausgeben
wave("alarm1.wav")
endif
if v210==0 and never then //Wenn Timer abgelaufen
//ABSCHLUSSEVENTS
endif
endif
Hier in dem Fall wird in der Variable v210 der aktuelle Timerstand gespeichert und nachdem der Bot gekillt wurde runtergezählt.
Die consol("-----------------") sind nur wegen dem Aussehen drinnen, denn die linke obere Anzeige ist 3 zeilig und durch die 3 Schreibbefehle siehts so aus als ob sich nur die Zeit ändert. Das kannst aber machen wiest willst, nur der consol#-Befehl muss drinnen sein.
Cu Dragon
Dieser Beitrag wurde 5 mal editiert, zuletzt von Dragonheart am 12.05.2007 - 19:22.
|
Beitrag vom 12.05.2007 - 14:10 |
|
|
|
110 Beiträge - Gelegenheitsposter
|
|
|
was soll past(0) bewirken ? und was sollte wave("xxxxx",100) die 100 bewirken ?
Außerdem wird der Code nicht funktionieren !! nach ~ 30 sek. wird alles enden. Falscher Ansatzpunkt ssndead() so wie es benutzt wird.
Tip: wäre gut wenn man es vorher mal ausprobiert.
if ssndead(BotID) and never then
v210=90
endif
if v210 then
consol("-----------------")
consol#("Heli startet in Sec. ",v210)
consol("-----------------")
dec(v210)
if elapse(10) then
wave("alarm1.wav")
endif
if !v210 then
//ABSCHLUSSEVENTS
endif
endif
Zitat Also damit du JO Text in der Linken oberen Ecke anzeigen lässt nimmst in der WAC den Befehl consol("Text") bzw. consol#("Text",Variable).
So nun zum Code:
if never then
v210=90 //Timer wird gesetzt
endif
if ssndead(BotID) then
if v210>0 then //Wenn Restzeit größer 0 ist
consol("-----------------")
consol#("Heli startet in",v210)
consol("-----------------")
dec(v210)
if elapse(10) then //Alle 10 Sekunden Ton ausgeben
wave("alarm1.wav")
endif
if v210==0 and never then //Wenn Timer abgelaufen
//ABSCHLUSSEVENTS
endif
endif
Hier in dem Fall wird in der Variable v210 der aktuelle Timerstand gespeichert und nachdem der Bot gekillt wurde runtergezählt.
Die consol("-----------------") sind nur wegen dem Aussehen drinnen, denn die linke obere Anzeige ist 3 zeilig und durch die 3 Schreibbefehle siehts so aus als ob sich nur die Zeit ändert. Das kannst aber machen wiest willst, nur der consol#-Befehl muss drinnen sein.
Cu Dragon
|
|
OldMan |
Dieser Beitrag wurde 5 mal editiert, zuletzt von OldMan am 12.05.2007 - 19:39.
|
Beitrag vom 12.05.2007 - 17:30 |
|
|
|
18 Beiträge - Grünschnabel
|
|
|
Hi an Alle ,
vielen vielen Dank, das werde ich dann gleich mal ausprobieren und hoffe dass ich mich nicht zu glatt anstelle und gleich alles funktioniert.
Ihr seid spitze,das geht ja hier immer superschnell mit den guten Tips,...
Casi
|
Beitrag vom 12.05.2007 - 18:24 |
|
|
|
|
@OM: Was heißt hier nach 30 Sekunden wirds nichtmehr gehen? Wenn der Bot das finale Ziel ist, dann sollte er doch nicht spawnen oder?! Das wär nicht wirklich Sinn der Sache!
Und das past(0) ist nur drinnen, weil ich mal eine Map hatte in der das elapse allein nicht gehen wollt...
Äh und zum wave-Zeugs: Das geht ohne Probleme, aber ok, ist wohl nicht nötig, auf die Lautstärke hats keine Auswirkungen. Steht auch mit wave("",dist) in der Kyle.wac falsch drinnen seh ich grad.
Mein Code würd 100%ig laufen, weil ich einen fast gleichen auf meiner Map verwende, also schreib nicht so nen Krampf!
Dieser Beitrag wurde 1 mal editiert, zuletzt von Dragonheart am 12.05.2007 - 18:59.
|
Beitrag vom 12.05.2007 - 18:54 |
|
|
|
110 Beiträge - Gelegenheitsposter
|
|
|
probier es doch mal aus !!! es kann nicht funktioniert !!
einfach probieren. Ich könnte jetzt schreiben warum es nicht geht, dann fehlt Dir aber der AHA Effekt.
Abgesehen davon ist es egal ob der BOT respawnt oder nicht, es wird nach ~ 30 sek. stoppen und das KRAMPF kannst Du dir sparen, wer hier KRAMPF geschrieben hat ist ja wohl klar, bzw. wird klar wenn einer es probiert. KRAMPF ist wenn man falschen bzw. nicht funktionierenden Code veröffentlicht.
|
OldMan |
Dieser Beitrag wurde 5 mal editiert, zuletzt von OldMan am 12.05.2007 - 19:04.
|
Beitrag vom 12.05.2007 - 18:58 |
|
|
|
|
Ich habs getestet und geht einwandfrei, ich hatte nach deinen Post vermutet, dass der Bot nach einiger Zeit entfernt wird und ssndead nichtmehr anschlägt, war aber nicht der Fall.
@OM: Also warum sollte mein Code nicht gehn?
EDIT: Hm ich seh schon wieder so ne Eigenart von JO, lässt die Bots ab und zu verschwinden dann wieder nicht, naja hab meinen Code geändert...
Dieser Beitrag wurde 2 mal editiert, zuletzt von Dragonheart am 12.05.2007 - 19:15.
|
Beitrag vom 12.05.2007 - 19:09 |
|
|
|
110 Beiträge - Gelegenheitsposter
|
|
|
Zitat Original geschrieben von Dragonhearttrotzdem hab ich oben das ssndead durch not ssnalive ersetzt, nur zur Sicherheit.
@OM: Also warum sollte mein Code nicht gehn? |
lol. ganz einfach und dewegen kann es nicht funktioniert haben. nach 30 sek. wird entweder der Bot entfernt (bei nicht respawn) oder der Bot ist wieder am Leben, in beiden Fällen ist ssndead nicht mehr wahr !! nur gur daß es bei Dir funktioniert
ein Bot, der nicht mehr im Spiel ist, kann man keine Abfrage machen ob er am Leben ist, er ist nicht mehr da !
Außerdem habe ich wirklich keinen Bock mich wegen so banalen, feststehenden Dingen zu streiten.
|
OldMan |
Dieser Beitrag wurde 4 mal editiert, zuletzt von OldMan am 12.05.2007 - 19:21.
|
Beitrag vom 12.05.2007 - 19:14 |
|
|
|
|
Naja ich werd NovaUnlogic nie verstehn, irgendwie haben die da für alles nen Zufallsgenerator drinnen, einmal machts sichs der Bot gemütlich, dann verzieht er sich.^^
Aber ich würd statt if v210 then lieber if v210>0 then verwenden, das machts für Anfänger die den Thread lesen leichter den Code zu verstehn.
Dieser Beitrag wurde 1 mal editiert, zuletzt von Dragonheart am 12.05.2007 - 19:20.
|
Beitrag vom 12.05.2007 - 19:19 |
|
|
|
|
Ich habe den WAC-Code von Dreagonheart ohne Veränderungen getestet und dieser funktioniert.
Es gab keine Probleme.
Oldmans WAC_Code ist kürzer und übersichtlicher
Zitat ein Bot, der nicht mehr im Spiel ist, kann man keine Abfrage machen ob er am Leben ist, er ist nicht mehr da ! |
das funktioniert aber mit: not SSNalive(SSN)
ich glaube, das steht sogar so im Godfathers Forum.
|
Beitrag vom 12.05.2007 - 19:21 |
|
|
|
110 Beiträge - Gelegenheitsposter
|
|
|
Zitat Original geschrieben von Eraser-EMC2-
das funktioniert aber mit: not SSNalive(SSN)
ich glaube, das steht sogar so im Godfathers Forum. |
so stand es aber nicht dort !! Der Post ist geändert worden !!!
Bei aller manchmal Unlogik von Nova, das ist ja nun wieder logisch ! Ich kann nicht abfragen ob jemand nicht mehr lebt, wenn er nicht existiert ! so werde ich immer false bekommen. Sollten zufällig (was hier nicht der Fall WAR) das trotzdem false ergeben, wie z.B. 'not alive' so funktioniert das zwar, aber ist dennoch falsch, da egal was man da schreibt false herauskommen würde, aber wie gesagt, es stand anders da. wenn ich als Ergebnis false haben möcht kann ich so was benutzen, aber nicht true. Sollte man aber nicht, gerade weil es ja dann Leute andersherum auch benutzen und sich dann wundern. (siehe Beispiel hier)
|
OldMan |
Dieser Beitrag wurde 2 mal editiert, zuletzt von OldMan am 12.05.2007 - 19:31.
|
Beitrag vom 12.05.2007 - 19:23 |
|
|
|
|
Das ganze liese sich auch mit if ssndead(Bot) or !ssnexists(Bot) then beheben, aber jetzt haben wir bzw. OM ja ne brauchbare Lösung gefunden.
Dieser Beitrag wurde 2 mal editiert, zuletzt von Dragonheart am 12.05.2007 - 19:31.
|
Beitrag vom 12.05.2007 - 19:27 |
|
|
|
|
Ok, mit SSNdead(SSN) endet es wirklich nach genau 30 Sekunden.
@Dragonheart:
Wenn du solche Änderungen vornimmst, bitte mit "EDIT:" und einem entsprechend Kommentar kennzeichnen, damit man es später noch nachvollziehen kann.
Da eine Lösung gefunden wurde, schließe ich hiermit den Thread.
|
Beitrag vom 12.05.2007 - 19:34 |
|