Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > [Script] Avoir l'heure avec les cadrans solaires
[Script] Avoir l'heure avec les cadrans solaires
Par Daynos le 12/10/2002 à 17:13:15 (#2323293)
Créez un Sundial, rendez le Usable, et mettez ce script dans OnUsed.
Le but, est de savoir l'heure grâce au soleil, évidemment, le cadran ne marche que le jour.
void main()
{
int nHeure = GetTimeHour();
if (GetIsNight())
{
SpeakString("Vous ne pouvez pas utiliser ceci la nuit.");
}
else if (nHour 12)
{
SpeakString("Il est " + (IntToString(nHeure)) + "h00");
}
else
{
SpeakString("Il est midi");
}
}
Script inspiré d'un script existant chez Bioware.
Shelzard
Posté par Skanzo Sylan
Par Daynos le 14/10/2002 à 14:32:47 (#2333341)
Hum? Sisi c'est très RP comme explication :p
Enfin bon, ça affiche les heures et les minutes exactement comme vous l'avez configuré dans vot'module, pô besoin de préciser n'importe quelle variable, ça marche tout seul ou presque :)
Heu... ha oui, je l'avoue je suis une quiche donc si vous trouvez le script un peu bordélique... c'est normaaaal (voix de l'ange au paradis des nains pour ceux qui connaissent :p).void main()
{
string sMinute;
int nMinByeHour = FloatToInt(HoursToSeconds(1)) / 60;
int nHeure = GetTimeHour();
int nMinute = (60 / nMinByeHour) * GetTimeMinute();
int nSecond = GetTimeSecond();
nMinute = nMinute + nSecond / nMinByeHour;
if (nMinute < 10) {
sMinute = "0" + IntToString(nMinute);
}
else {
sMinute = IntToString(nMinute);
}
ActionSpeakString("Il est " + IntToString(nHeure) + "h" + sMinute);
}
Posté par Einkil
Par Daynos le 14/10/2002 à 14:34:15 (#2333348)
Posté par Skanzo Sylan
Par Daynos le 14/10/2002 à 15:02:31 (#2333518)
GetTimeHour reprend l'heure du modules, ok la-dessus. C'est la même heure que l'on peut voir en suvolant le compas avec la souris.
Par contre GetTimeMinute est plus vicieux :)
Si je configure le module pour qu'une heure dans le jeu corresponde à trois minutes IRL, le temps va défiler ainsi:
13h00, 13h01, 13h02, 14h00, 14h01, 14h02, 15h00, et ainsi de suite à chaque minutes réelles qui passent.
D'où l'intéret de mon script qui corrige ce petit problème et affiche toutes les minutes de 00 à 59.
Si vous voyez les minutes passer trop vite, c'est que vous avez configuré le temps du module avec une courte durée pour les heures (1 minute pour 1 heure par exemple).
Pour configurer le quota de minutes réelles pour une heure de jeu, c'est Edit, Module Properties, onglet Advanced mais vous devez tous le savoir, c'est juste au cas où ;)
Hum... par contre, si quelqu'un a trouvé le moyen de récupérer la date et heure du serveur pour l'utiliser dans un script, ben je suis preneur, merci :merci:
Posté par [xkill]sniper!
Par Daynos le 14/10/2002 à 15:04:01 (#2333525)
Provient du message de Skanzo Sylan
À quoi sert que ducros il se décarcasse? :mdr:
GetTimeHour reprend l'heure du modules, ok la-dessus. C'est la même heure que l'on peut voir en suvolant le compas avec la souris.
Par contre GetTimeMinute est plus vicieux :)
Si je configure le module pour qu'une heure dans le jeu corresponde à trois minutes IRL, le temps va défiler ainsi:
13h00, 13h01, 13h02, 14h00, 14h01, 14h02, 15h00, et ainsi de suite à chaque minutes réelles qui passent.
D'où l'intéret de mon script qui corrige ce petit problème et affiche toutes les minutes de 00 à 59.
Si vous voyez les minutes passer trop vite, c'est que vous avez configuré le temps du module avec une courte durée pour les heures (1 minute pour 1 heure par exemple).
Pour configurer le quota de minutes réelles pour une heure de jeu, c'est Edit, Module Properties, onglet Advanced mais vous devez tous le savoir, c'est juste au cas où ;)
Hum... par contre, si quelqu'un a trouvé le moyen de récupérer la date et heure du serveur pour l'utiliser dans un script, ben je suis preneur, merci :merci:
Ok, si ta remarque était liée à mon POST, je ne vois pas corrélation ! Merci de dire ou ça cloche ? ;)
Posté par Skanzo Sylan
Par Daynos le 14/10/2002 à 15:11:20 (#2333557)
Si tu configure ton module pour qu'une heure dans le module corresponde à un quart d'heure réel, ben GetTimeMinute n'affichera jamais 30 minutes.
Disons qu'il est environ 13h45 sur le module, tu te dit que la porte est ouverte... :confus:
et ben non paske GetTimeMinute va fournir une informations fausse, environ 12 minutes (réelles) si tu as configuré le module comme si dessus.
Bien sûr, si tu as mis que 60 minutes correspond à une heure dans ton monde, ça marchera mais pô sur les autres.
GetTimeMinute avance avec les minutes réelles :)
JOL Archives 1.0.1
@ JOL / JeuxOnLine