|
Een stopwatch in je map.
|
|
Geplaatst op 05-06-2012 22:08
|

Junior

|
Posts: 46
Joined: 07.02.08
|
Hallo allemaal,
Na een lange tijd te zijn weg geweest ben ik terug, en weer begonnen met mappen
Mijn map krijgt al snel vorm en ik heb verschillende scripts weten te implementeren. Nou vroeg ik me nog af of ik een soort van stopwatch kon creeren die zou starten wanneer je door een trigger loopt en zou eindigen wanneer je door de trigger loopt. Dit concept bestaat al in 1 van de tutorials, maar inplaats van dat hij laat zien of je de 1e of 2e bent die het parcour heeft afgelegd zou ik graag hebben dat hij een tijd weergeeft of het aantal tellen zeg maar 83seconden. Als iemand me hier mee zou willen helpen zou dit zeer mooi zijn, misschien kan ik je op financieel gebied wat te gemoet komen.
Ik hoor graag van jullie..
Met vriendelijke groet,
Maarten
|
| |
| |
|
Geplaatst op 05-06-2012 22:32
|

Moderator
.gif)
Donator
|
Posts: 5538
Joined: 24.08.06
|
De stopwatch in CoDUO heeft spijtig genoeg geen minuten teller, dus je zal maximaal 60 seconden kunnen weergeven. Ik heb de scripts spijtig genoeg niet naast me, maar je kan eens kijken in een singleplayer-level (van cod1 of coduo, maakt niet uit) waarvan je weet dat er een timer is. Ik kan me niet zo snel even iets bedenken.. mp_hurtgen in SP misschien? In ieder geval sowieso iets dat met explosieven te maken heeft.
|
| |
| |
|
Geplaatst op 05-06-2012 23:11
|

Junior

|
Posts: 46
Joined: 07.02.08
|
HuRRaCaNe schreef:
De stopwatch in CoDUO heeft spijtig genoeg geen minuten teller, dus je zal maximaal 60 seconden kunnen weergeven. Ik heb de scripts spijtig genoeg niet naast me, maar je kan eens kijken in een singleplayer-level (van cod1 of coduo, maakt niet uit) waarvan je weet dat er een timer is. Ik kan me niet zo snel even iets bedenken.. mp_hurtgen in SP misschien? In ieder geval sowieso iets dat met explosieven te maken heeft.
Ik snap wat je bedoeld, is het wel mogelijk de normale stopwatch te implementeren? In mijn map draait het namelijk om een trainingskamp. Hierin bevindt zich een hindernis baan die binnen bepaalde tijd moet worden afgelegd. Is het mogelijk dat er een bericht in beeld komt met het aantal seconden ? Of dat er op een bepaal de plek een stopwatch verschijnt die je stil kunt zetten?
Met vriendelijke groet,
Maarten
|
| |
| |
|
Geplaatst op 05-06-2012 23:35
|

Moderator
.gif)
Donator
|
Posts: 5538
Joined: 24.08.06
|
Er zit een stopwatch in het spel die maximaal 60 seconden duurt, die je misschien stop kan zetten. Ik zou het niet weten want ik heb die code nog nooit gebruikt, zou ook niet weten waar ze staat, maar logischerwijs denk ik dat je die wel kan stopzetten.
Je kan uiteraard altijd zelf een hud maken (textueel, of grafisch als je wat ervaring hebt)
Voor zo'n klok kan dit volgens mij al een goed begin zijn voor een script:
Codeself._stopwatch = newHudElem();
self._stopwatch.x = 36;
self._stopwatch.y = 240;
self._stopwatch.alignX = "center";
self._stopwatch.alignY = "middle";
self._stopwatch setClock(countdowntime, 60, "hudStopwatch", 48, 48);
|
| |
| |
Geplaatst op 05-06-2012 23:39 | Gewijzigd door maartenw op 05-06-2012 23:49
|

Junior

|
Posts: 46
Joined: 07.02.08
|
HuRRaCaNe schreef:
Er zit een stopwatch in het spel die maximaal 60 seconden duurt, die je misschien stop kan zetten. Ik zou het niet weten want ik heb die code nog nooit gebruikt, zou ook niet weten waar ze staat, maar logischerwijs denk ik dat je die wel kan stopzetten.
Je kan uiteraard altijd zelf een hud maken (textueel, of grafisch als je wat ervaring hebt)
Voor zo'n klok kan dit volgens mij al een goed begin zijn voor een script:
Codeself._stopwatch = newHudElem();
self._stopwatch.x = 36;
self._stopwatch.y = 240;
self._stopwatch.alignX = "center";
self._stopwatch.alignY = "middle";
self._stopwatch setClock(countdowntime, 60, "hudStopwatch", 48, 48);
Bedankt voor je hulp, maar een eigen hud maken is me teveel gevraagt, ik dacht dat het makkelijker in elkaar zat. Toch bedankt, als iemand een goed alternatief weet, laat het me weten.
Met vriendelijke groet,
Maarten
EDIT: Tevens ken ik een map waarin je binnen een bepaald gebied komt er een stopwatch verschijnt en begint te lopen, ik zal morgen eens een kijkje nemen in dat script. Alleen verdwijnt hij in deze mP niet wanneer je uit het gebied loopt waar hij begon of je hem kunt stoppen.
|
| |
| |
Geplaatst op 05-06-2012 23:52 | Gewijzigd door HuRRaCaNe op 05-06-2012 23:54
|

Moderator
.gif)
Donator
|
Posts: 5538
Joined: 24.08.06
|
... Maar het zit makkelijk in elkaar?
Je roept wat functies op met wat parameters en daar is je hud. Ik denk zelfs dat je letterlijk die 7 regels kan kopiëren om een aftellende klok te voorschijn te toveren (mits je "countdowntime" vervangt door een getal)
Wat is daar moeilijk aan?
Eerste regel maakt nieuw hud element aan
Tweede regel definieert de X positie ervan
Derde regel definieert de Y positie ervan
Vierde regel definieert hoe de hud zich gedraagt tegenover de X-coördinaat, bv zichzelf er rond centreren of volledig links houden (in het geval van 'left')
Vijfde regel doet hetzelfde maar voor de Y-as
Zesde regel maakt een klok die countdowntime seconden aftelt, een klok met 60 seconden (geen idee welk effect dit heeft als je het veranderd) met de hud "hudStopwatch" (die standaard is) en de klok is 48x48 groot.
Moeilijk?
Alsook, om de hud te verwijderen doe je
<hudnaam> destroy();
Om de klok te laten stoppen ga je iets meer moeten sleutelen wil je die hud gebruiken.
|
| |
| |
Geplaatst op 06-06-2012 08:51 | Gewijzigd door HuRRaCaNe op 06-06-2012 12:51
|

Junior

|
Posts: 46
Joined: 07.02.08
|
Codestopwatch()
{
begin = getent ("begin","targetname");
begin waittill ("trigger");
wait 0.1;
stopwatch = newHudElem();
stopwatch.x = 34;
stopwatch.y = 340;
stopwatch.alignX = "center";
stopwatch.alignY = "middle";
stopwatch setClock(3600,60, "hudstopwatch", 80, 80);
wait 0.1;
level thread stopwatch();
}
Met dit script verschijnt de stopwatch wanneer ik door de trigger multiple "begin" loop, alleen hoe ik het verder moet schrijven ik heb geen idee. Heeft iemand hier misschien meer verstand van?
Met vriendelijke groet,
Maarten
Bericht van Moderator:Code tags toegevoegd
~HuRRaCaNe
|
| |
| |
|
Geplaatst op 06-06-2012 09:15
|

Master

|
Posts: 2580
Joined: 01.07.08
|
countdowntime in een variabele stoppen en met een lust de waarde elke seconde naar beneden halen.
Ik weet niet of je dan simpelweg
stopwatch setClock(countdowntime ,60, "hudstopwatch", 80, 80);
Kan laten staan of dat je hem telkens moet destroy'en en terugzetten (is ook maar kleine moeite met een lust)
Bij het raken van de 2de trigger destroy je de timer en toon je de waarde van countdowntime
"The thing about quotes from the internet is that it's hard to verify their authenticity." - Abraham Lincoln
"The top gets higher the more that you climb" - Ezio Auditore Da Firenze |
| |
| |
|
Geplaatst op 06-06-2012 09:37
|

Junior

|
Posts: 46
Joined: 07.02.08
|
ground zero schreef:
countdowntime in een variabele stoppen en met een lust de waarde elke seconde naar beneden halen.
Ik weet niet of je dan simpelweg
stopwatch setClock(countdowntime ,60, "hudstopwatch", 80, 80);
Kan laten staan of dat je hem telkens moet destroy'en en terugzetten (is ook maar kleine moeite met een lust)
Bij het raken van de 2de trigger destroy je de timer en toon je de waarde van countdowntime
Oei, hier heb ik even iets gemist. Wat bedoel je precies? Waar moet ik de tweede trigger implementeren en hoe het script aanpassen?
Met vriendelijke groet,
Maarten
|
| |
| |
|
Geplaatst op 06-06-2012 12:53
|

Moderator
.gif)
Donator
|
Posts: 5538
Joined: 24.08.06
|
Neem een tweede trigger die de stopwatch stopt wanneer je er door loopt. De stopwatch verwijder je met stopwatch destroy();
|
| |
| |
Geplaatst op 06-06-2012 17:03 | Gewijzigd door ground zero op 06-06-2012 17:07
|

Master

|
Posts: 2580
Joined: 01.07.08
|
Of wil je met 1 trigger werken?
Dan zet je een bv. de bool isRunning op false.
Als je ventje dan de trigger raakt, zet je de bool op true en maak je de stopwatch
Als het ventje dan nogmaals dezelfde trigger raakt en de bool staat op true (normaal wel), destroy je de stopwatch.
om de teller dan aan te passen doe je iets in deze aard:
Ik heb al lang niet meer voor CoD gecodeerd, dus ik weet de correcte syntax niet meer. Dit is een simpele pseudocode
Codewhile(isRunning) {
countdownTimer--;
wait(1);
}
countdownKlokje.destroy();
inprintbold("je hebt nog countdownTimer / 60 seconden over");
Dan maak je nog een andere thread met de waittill("trigger");
"The thing about quotes from the internet is that it's hard to verify their authenticity." - Abraham Lincoln
"The top gets higher the more that you climb" - Ezio Auditore Da Firenze |
| |