JeuxOnLineForumsPlusConnectés : 556 (sites) | 1031 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [Script] Heures, dates et mondes persistants RSS
   
Répondre
Partager Outils Rechercher
Elvorfirimathrel
Dauphin
 
Post

[Script] Heures, dates et mondes persistants

Hello, pour ceux qui désirent que leur module se réinitialise à la date exacte à laquelle le serveur à effectué un redémarrage, ou un plantage , je mets à leur disposition les deux scripts que vous trouverez ci-dessous.


A mettre dans le OnHeartbeat de votre module :


Code PHP:
//::///////////////////////////////////////////////
//:: Name on module heartbeat
//:: FileName on_modulehb
//:://////////////////////////////////////////////
//:: Created By: Elvorfirimathrel
//:: Created On: 19 Juin 2003
//:://////////////////////////////////////////////


void main()
{
 
// declaration des variables
 
int nHournMinutenSecondnMillisecondnCalendarYearnCalendarMonthnCalendarDay;

 
// affectation de valeurs aux variable
 
nHour GetTimeHour();
 
nMinute GetTimeMinute();
 
nSecond GetTimeSecond();
 
nMillisecond GetTimeMillisecond();
 
nCalendarDay GetCalendarDay();
 
nCalendarYear GetCalendarYear();
 
nCalendarMonth GetCalendarMonth();

 
// stockage de la valeur de chaques variables dans la base de donnees "calendar"
 
SetCampaignInt("calendar""HOUR"nHour);
 
SetCampaignInt("calendar""MINUTE"nMinute);
 
SetCampaignInt("calendar""SECOND"nSecond);
 
SetCampaignInt("calendar""MILLISECOND"nMillisecond);
 
SetCampaignInt("calendar""CALENDARDAY"nCalendarDay);
 
SetCampaignInt("calendar""CALENDARYEAR"nCalendarYear);
 
SetCampaignInt("calendar""CALENDARMONTH"nCalendarMonth);

A mettre dans le OnModuleLoad de votre module :
Code PHP:
//::///////////////////////////////////////////////
//:: Name on module load
//:: FileName on_moduleload
//:://////////////////////////////////////////////
//:: Created By: Elvorfirimathrel
//:: Created On: 19 Juin 2003
//:://////////////////////////////////////////////

void main()
{
 
// declaration des variables
 
int nHournMinutenSecondnMillisecondnCalendarYearnCalendarMonthnCalendarDay;

 
// recuperation des valeurs stockees dans la base de donnees et affectation de ces valeurs aux variables
 
nHour GetCampaignInt("calendar""HOUR");
 
nMinute GetCampaignInt("calendar""MINUTE");
 
nSecond GetCampaignInt("calendar""SECOND");
 
nMillisecond GetCampaignInt("calendar""MILLISECOND");
 
nCalendarDay GetCampaignInt("calendar""CALENDARDAY");
 
nCalendarYear GetCampaignInt("calendar""CALENDARYEAR");
 
nCalendarMonthGetCampaignInt("calendar""CALENDARMONTH");

 
// reajustement de l'heure et de la date
 
SetTimenHournMinutenSecondnMillisecond);
 
SetCalendar(nCalendarYearnCalendarMonthnCalendarDay);

ATTENTION : pour fonctionner ce script nécessite que votre logiciel Neverwinter Nights soit mis à jour en version 1.30, de plus, je déconseille fortement l'implémentation du premier script dans l'événement OnHeartbeat, je ne l'ai mis ici qu'à titre d'exemple. Il serait plus judicieux de créer un "item" appelant ce script et de fournir cet "item" à vos DM.

PS: si les scripts comportent quelques défauts, n'hésitez pas à me le faire savoir, je l'ai fait avec une paupière fermée *baille*
Lien direct vers le message - Vieux
Avatar de Ange Musicien
JOL Ange Musicien
Alpha & Oméga
 
Avatar de Ange Musicien
 
Hum généralement les persistant effectuent des sauvegardes toutes les 30 minutes et souvent moins... Et le premier script, comme tu l'as dit, bouffe du CPU de manière extraordinaire... En gros, toutes les secondes, ton module effectue entre deux et trois opérations. Tout ça pour la date, ça me paraît un peu exagéré. En plus les heartbeat des modules sont déjà trop pleins, alors...
Cela dit, ça serait utile dans un pseudo bâton de sauvegarde de DM... *note*
Tiens je vais aller voir la 1.30.
Lien direct vers le message - Vieux
Elvorfirimathrel
Dauphin
 
Disons que dans un monde persistant il peut être utile de situer des DM Quest chronologiquement, et si en cas de plantage pendant l'une des ces animations qui se déroulerait la nuit le server plante et reboot en plein jour, et bien les joueurs devront attendre que la nuit retombe pour la continuer, pas tip top.

Citation:
Cela dit, ça serait utile dans un pseudo bâton de sauvegarde de DM... *note*
Effectivement, c'est pour cela que je suggère sa création dans le premier post.
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Personnellement, je conseille plutôt la mise en place d'un timestamp, mis à jour sur le OnHeartBeat (donc d'une résolution de 6 secondes) il est très léger puisqu'un seul local int, et avec une synchronisation de temps en temps (disons toutes les deux minutes) avec le calendrier du module.
L'avantage du timestamp, c'est qu'il est très pratique pour comparer deux dates.

Evidemment, on peut aussi l'utiliser pour remettre le module à l'heure lors d'un reboot.
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [Script] Heures, dates et mondes persistants
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 15h44.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite