La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 02/05/2024 02:26:12


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Audoucet
Voyageur
Inscrit le: 13 Juin 2007
Messages: 3
Répondre en citant
Posté le : 13/06/2007 16:55:34 Sujet du message : Script de salaire

bonjour. Alors voilà mon problème... je tente de créer un script qui donne un salaire dépendant du resref d'un objet, et de la date. Le voici.

NWScript :
#include "com_include"

void main()
{
string sCampaign = GetName(GetModule());
int iActualMonth = GetCalendarMonth();
int nMonth = GetCampaignInt(sCampaign, "MONTH");
object oPc = GetPCSpeaker();
object oFeuille = GetItemPossessedBy(oPc, feuillesalaire);
int nSalaire = RecupererElement(GetResRef (oFeuille),2);
if (iActualMonth!=nMonth)
{
GiveGoldToCreature(object oPc, int nSalaire);
}
}
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.


La commande RecupererElement, vient du include, normalement le problème vient pas de là. Elle permet de récupérer une partie du ResRef, pour s'en servir.

Mon script fonctionne pas au niveau de la commande pour donner de l'or : ERREUR : UNKNOWN STATE IN COMPILER. Alors j'ai essayé plusieurs versions, ça ne fonctionne pas, désespérément pas, j'ai toujours le même message d'erreur... je suppose que la solution est extrêmement simple, mais je suis pas très expérimenté, je fais surtout du bricolage.
Dernière édition par Audoucet le 13/06/2007 18:03:10; édité 1 fois
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Black Knight
Grand Maître Chanteur du Conseil
Inscrit le: 27 Oct 2005
Messages: 1031
Localisation: Fin fond du trou du cul du monde
Répondre en citant
Posté le : 13/06/2007 17:04:47 Sujet du message :

Bon je vois quelques trucs, mais on va poser les questions xD:

1) Je sais pas si tu as fait exprès, mais il faut jamais indiqué la fonction d'un "raccourci" : GiveGoldToCreature(object oPc, int nSalaire); Faut les enlever

2) Aussi, est ce que c'est normal qu'il y est pas de " " ici : GetItemPossessedBy(oPc, feuillesalaire);

3) RecupererElement, c'est bien un INT? (Donc, dans ton include il doit y avoir ça :

NWScript :
RecupererElement()
{
//Script
return x; //x = le nombre qui se trouve dans Script
}
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.


Voila j'pense que c'tout
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Audoucet
Voyageur
Inscrit le: 13 Juin 2007
Messages: 3
Répondre en citant
Posté le : 13/06/2007 18:02:11 Sujet du message :

alors effectivement ce n'était pas un int, mais un string. Voici la version corrigée, avec un ajout pour convertir le string, en int... cela compile, maintenant reste à savoir si ça fonctionne Smile

NWScript :
#include "com_include"

void main()
{
string sCampaign = GetName(GetModule());
int iActualMonth = GetCalendarMonth();
int nMonth = GetCampaignInt(sCampaign, "MONTH");
object oPc = GetPCSpeaker();
object oFeuille = GetItemPossessedBy(oPc, "feuillesalaire");
int nSalaire = StringToInt(RecupererElement(GetTag (oFeuille),2));
if (iActualMonth!=nMonth)
{
GiveGoldToCreature(oPc, nSalaire);
}
}
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.


peut-être que quelqu'un voudra réutiliser ce script, donc je donne ce qui est utilisé dans l'include :

NWScript :



string RecupererElement(string sChaine, int num)
{
    int iMarker = -1;
    int iIndex = 0;
    string sLeft = "";
    string sRight = "";
    string sSeperator= "_";
    string sString=sChaine;

    iMarker = FindSubString(sString, sSeperator);

    while (iMarker != -1)
    {
        sLeft = GetStringLeft(sString, iMarker);
        sString = GetStringRight(sString, GetStringLength(sString) - iMarker - 1);

        iIndex++;
        if (iIndex == num)
        {
            return sLeft;
        }
        iMarker = FindSubString(sString, sSeperator);
    }
    return sString;
}
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.


Merci bien pour les corrections.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé 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 27.688ms