La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 23/11/2024 08:04:09


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 06/07/2006 23:22:55 Sujet du message : [probleme] script de persistance et meteo

Voilà, j'ai un script qui est censé gérer la persistance de la date, et ajouter une randomisation dans la météo... SAUF que... Ni l'un ni l'autre ne marche Confused

DAns le OnModuleLoad :
NWScript :
/**************************Met eo persistante******************* *****************/
// par Ea/rook
//
void Meteo()
{
  int FREQUENCE_PLUIE = 30;
  int FREQUENCE_NEIGE = 60;
  int FREQUENCE_ORAGE = 10;
  int i = Random(100);
  int iWeather = WEATHER_CLEAR;
  if (i <= FREQUENCE_PLUIE)
    iWeather = WEATHER_RAIN;
  if ((i > FREQUENCE_PLUIE) && (i <= FREQUENCE_PLUIE + FREQUENCE_NEIGE))
    iWeather = WEATHER_SNOW;
  if ((i > FREQUENCE_PLUIE + FREQUENCE_NEIGE) && (i <= FREQUENCE_PLUIE + FREQUENCE_NEIGE + FREQUENCE_ORAGE))
    iWeather = WEATHER_USE_AREA_SETTINGS;
  SetWeather(GetModule(), iWeather);
  DelayCommand(4000.0 + Random(4000), Meteo());

//Persistance de la date

string sCampaign = GetName(GetModule());
int nDay = GetCampaignInt(sCampaign, "DAY");
int nMonth = GetCampaignInt(sCampaign, "MONTH");
int nYear = GetCampaignInt(sCampaign, "YEAR");
SetCalendar (nYear,nMonth,nDay);


}

/***************************** ****************************** ********************/
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


pourriez vous m'aider svp ? ^^
+++
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 07/07/2006 08:26:55 Sujet du message :

essaie ça^^:

NWScript :
void Meteo()
{
  int FREQUENCE_PLUIE = 30;
  int FREQUENCE_NEIGE = 60;
  int FREQUENCE_ORAGE = 10;
  int i = Random(100);
  int iWeather = WEATHER_CLEAR;
  if (i <= FREQUENCE_PLUIE)
    iWeather = WEATHER_RAIN;
  if ((i > FREQUENCE_PLUIE) && (i <= (FREQUENCE_PLUIE + FREQUENCE_NEIGE)))
    iWeather = WEATHER_SNOW;
  if ((i > (FREQUENCE_PLUIE + FREQUENCE_NEIGE)) && (i <= (FREQUENCE_PLUIE + FREQUENCE_NEIGE + FREQUENCE_ORAGE)))
    iWeather = WEATHER_USE_AREA_SETTINGS;
  SetWeather(GetModule(), iWeather);
  DelayCommand(4000.0 + Random(4000), Meteo());

//Persistance de la date

string sCampaign = GetName(GetModule());
int nDay = GetCampaignInt(sCampaign, "DAY");
int nMonth = GetCampaignInt(sCampaign, "MONTH");
int nYear = GetCampaignInt(sCampaign, "YEAR");
SetCalendar (nYear,nMonth,nDay);


}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 07/07/2006 13:28:53 Sujet du message :

Merci à toi, mais je n'ai pas bien compris l'erreur du script que j'ai, il manque juste une parenthèse ? d'où vient elle ?

merci ^^
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 08/07/2006 12:30:16 Sujet du message :

Je m'en aperçois, mais ça se compile pas parce qu'il manque un void main (), c'est normal ?



est ce que comme ça ça marche ? en tout cas ça se compile
NWScript :
/**************************Met eo persistante******************* *****************/
void Meteo()
{
  int FREQUENCE_PLUIE = 30;
  int FREQUENCE_NEIGE = 60;
  int FREQUENCE_ORAGE = 10;
  int i = Random(100);
  int iWeather = WEATHER_CLEAR;
  if (i <= FREQUENCE_PLUIE)
    iWeather = WEATHER_RAIN;
  if ((i > FREQUENCE_PLUIE) && (i <= (FREQUENCE_PLUIE + FREQUENCE_NEIGE)))
    iWeather = WEATHER_SNOW;
  if ((i > (FREQUENCE_PLUIE + FREQUENCE_NEIGE)) && (i <= (FREQUENCE_PLUIE + FREQUENCE_NEIGE + FREQUENCE_ORAGE)))
    iWeather = WEATHER_USE_AREA_SETTINGS;
  SetWeather(GetModule(), iWeather);
}

void main()
{
//Persistance de la date
string sCampaign = GetName(GetModule());
int nDay = GetCampaignInt(sCampaign, "DAY");
int nMonth = GetCampaignInt(sCampaign, "MONTH");
int nYear = GetCampaignInt(sCampaign, "YEAR");
SetCalendar (nYear,nMonth,nDay);

  DelayCommand(4000.0 + Random(4000), Meteo());
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.

_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 10/07/2006 18:38:44 Sujet du message :

juste comme ça et à première vue je pense que ça vient du fait que ton void main n'appel pas ta première fonction...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 11/07/2006 09:18:53 Sujet du message :

ok... alors comment faire ? ^^

merci de ton aide Smile ++
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 11/07/2006 09:46:05 Sujet du message :

Bah en faite à y regarder de plus près je vois pas trop ce que tu souhaites optenir...^^

par ex ton void main là (enfin pour ce que j'y connais de ces fonctions...), appel la date du module (avec les get...), puis tu créés ces mêmes variables (sans dire où...). donc je vois pas à quoi ça sert... j'imagine en faite que tu dois avoir une base de donnée sur ton mod non? sinon la ça sert à rien je pense, car systématiquement tu reviendras toujours à la date de départ en cas de reboot si tu ne peux stocker ces dites variables quelque part.... après perso les bases de données je maitrise pas (enfin pas encore..^^).. donc dis nous un peu plus quelle est l'idée derrière ton script pour que l'on puisse voir ça...

Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 12/07/2006 09:02:51 Sujet du message :

Je n'ai que la bdd d'origine de bioware... mais il a l'air de manquer quelque chose dans le script.

Sinon ben, le script est sencé faire un random sur le temps qu'il fait : beau temps, pleuvoir, neiger, orage, et sauvegarder la date, je vois pas vraiment quoi expliquer... Il définit ce qu'il peut faire comme temps, définit un random, puis devrait jouer ce sur quoi ça tombe... je me demande s'il ne faudrait pas ajouter un truc dans le OHB.

Mais je ne sais pas ce qui cloche dans le script, sauf que je ne vois pas de SetCampaign.
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Viduc de Papironda
Grand Chevalier
Inscrit le: 22 Mar 2006
Messages: 119
Répondre en citant
Posté le : 12/07/2006 09:56:33 Sujet du message :

Oui je vois en gros ce que tu veux... mais là perso je vais pas pouvoir t'aider... en faite je ne maîtrise pas dutout les bases de données.... ceci dit je pense que pour ton idée il te faut au moins deux scripts... logiquement tu vas en avoir un qui va sauvegarder ds la base la date et la météo (peut être ds le ohb du module mais j'ai peur que ça fasse grave ramer ton mod...) et un autre qui se lancerait au redemmarage de ton mod qui retourne les valeurs stockées et modifie ce que tu voulais... voilà désolé de pas pouvoir t'aider plus, et je suis comme toi preneur d'une solution aussi (je compte bien m'atteler prochainement à la gestion des ces fameuses base de données^^..)
Viduc
_________________
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 12/07/2006 12:00:32 Sujet du message :

Ben c'est sur que si tu l'enregistre jamais, tu va avoir du mal à la retrouver la date...

NWScript :
/**************************Met eo persistante******************* *****************/
void Meteo()
{
int FREQUENCE_PLUIE = 30;
int FREQUENCE_NEIGE = 60;
int FREQUENCE_ORAGE = 10;
int i = Random(100);
int iWeather = WEATHER_CLEAR;
if (i <= FREQUENCE_PLUIE)
iWeather = WEATHER_RAIN;
else if (i <= (FREQUENCE_PLUIE + FREQUENCE_NEIGE))
iWeather = WEATHER_SNOW;
else if (i <= (FREQUENCE_PLUIE + FREQUENCE_NEIGE + FREQUENCE_ORAGE))
iWeather = WEATHER_USE_AREA_SETTINGS;
SetWeather(GetModule(), iWeather);
DelayCommand(4000.0+Random(4000),Meteo());
string sDB = GetName(GetModule());
SetCampaignInt(sDB,"DAY",GetCalendarDay());
SetCampaignInt(sDB,"MONTH",GetCalendarMonth());
SetCampaignInt(sDB,"YEAR",GetCalendarYear());
}

void main()
{
//Persistance de la date
string sCampaign = GetName(GetModule());
int nDay = GetCampaignInt(sCampaign, "DAY");
int nMonth = GetCampaignInt(sCampaign, "MONTH");
int nYear = GetCampaignInt(sCampaign, "YEAR");
SetCalendar(nYear,nMonth,nDay);

Meteo();
}
Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.


Là ça devrait déjà marcher un peu mieux.

(et les else c'est pas fait pour les worgs Very Happy)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 14/07/2006 09:28:01 Sujet du message :

Merci à toi !! Very Happy
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 57.307ms