Vous utilisez un navigateur non à jour ou ancien. Il ne peut pas afficher ce site ou d'autres sites correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Je trouve que la nuit sur mon serveur est beaucoup trop longue. Est-il possible de changer ce paramètre sans changer la durée du jour ? J'ai vu dans l’éditeur qu'il y avait un truc du style Accél temporelle de base la valeur 1 y est affiché mais si je met 2 c'est un x2 qui sera réalisé ?
Salut, un truc tout bete que tu peux faire deja c'est dans l'éditeur tu te mets à la période de l'année où les jours sont les plus longs vers fin juin je crois après aucune idée si c'est faisable ce que tu demandes
J'ai pas tester si setTimeMultiplier correspond vraiment à définir la vitesse du défilement de l'heure, mais de ce que j'ai compris, ca doit bien être ca.
Pour apprendre à dev il faut faire je te donne le principe du script et après à toi d'apprendre à comment l'utiliser dans ta mission il faudra probablement que tu créer une boucle
Code:
if (daytime > 20 || daytime < 5) then {
setTimeMultiplier 120;
hint "Il fait nuit";
} else {
setTimeMultiplier 1;
hint "Il fait jour";
};
if est une condition donc if = si
si l'heure est supérieur à 20 h et inférieur à 5 h donc en gros de 20h à 5h
alors le temps est 120 fois plus rapide et on affiche un message il fait nuit
sinon le temps est x1 donc à la vitesse normal et on affiche un message il fait jour
Essaye ça dans ton éditeur pour commencer et bidouille pour apprendre c'est que comme ça que tu y arriveras par contre j'ai mis le multipilier à 120 c'est beaucoup et arma déconseille de mettre au dessus de 120
Barette_ De même, il faut que ton if soit vérifier, donc pour ca il y a différent moyen, comme des triggers, while, etc...
Le plus simple c'est un while, mais c'est pas le plus optimisé car il est appelé toutes les frames de ton serveur. Ce qui fait beaucoup. Après tu peux toujours mettre un sleep dedans qui permettra de l'executer tout les temps de secondes, comme ca il sera moins de fois appelé.
Et de même, le setTimeMultiplier doit être appelé côté serveur pour fonctionner (@life_server).
En gros tu prend l'exemple du script de florian, et tu le met dans un while pour le faire vérifier (exemple : )
Code:
while (true) {
if ((daytime > 20 || daytime < 5) && timeMultiplier != 120) then { // Le timeMultiplier que j'ai ajouté dans le if sert à récupérer la vitesse actuelle du défilement du cycle J/N. Ca evitera de le réexecuter si il est déjà actuellement fixer au bon nombre.
setTimeMultiplier 120;
hint "Il fait nuit"; // Le hint que Florian a mis sert à envoyer un message en haut à droite, pour vérifier si ce que tu fait fonctionne correctement. Sur ton serveur je te conseille de l'enlever).
};
if ((daytime <= 20 || daytime >= 5) && timeMultiplier != 1) { // J'ai refait un if différent afin d'éviter de le répéter pour rien si il as déjà était executer.
setTimeMultiplier 1;
hint "Il fait jour";
};
sleep 60; // Cette ligne sert à faire attendre 60 secondes avant de finir la boucle. (Ca permet d'éviter d'appeler le while toutes les frames.)
};
Tu peux même faire un truc plus facile à utiliser en juste mettant dans ton script des variables locales. Comme ca tu n'as même pas à fouiller dans le script, ta juste à rester en haut et config comme tu veux. (Après tu peux même créer un fichier de config, mais bon, pour le peu que c'est, c'est pas utile).
(Exemple : )
Code:
// Ici ta ta config, ta juste à modif ici directement.
_nightHour = 20;
_dayHour = 5;
_speedTimeDay = 1;
_speedTimeNight = 120;
// =======================
while (true) {
if ((daytime > _nightHour || daytime < _dayHour) && timeMultiplier != _speedTimeNight) then {
setTimeMultiplier (_speedTimeNight);
};
if ((daytime <= _nightHour || daytime >= _dayHour) && timeMultiplier != _speedTimeDay) {
setTimeMultiplier _speedTimeDay;
};
sleep 60;
};
Mais n'oublie pas de le placer dans un nouveau script DANS LE @life_server et que tu execute dans son Init. Le setTimeMultiplier peut être modifié que côté serveur. Le mpmission c'est côté client. Il est exécuté localement pour chaque joueur.