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 11:04:29


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Soros
Acolyte
Inscrit le: 31 Oct 2005
Messages: 28
Répondre en citant
Posté le : 05/11/2005 20:55:49 Sujet du message : Lvl up

Bonsoir, j'ai trouvé ce script sur le forum en cherchant:

NWScript :
////////////////////////////// ////////////////////////////// ////////////
void main()

{

  object oPC = GetPCLevellingUp();

  int nXP;

  int nLv = GetHitDice(oPC);

  object oPass = GetItemPossessedBy(oPC, "PasseNiveau");//tag du pass dans le blue print



// pour autre passage remplacer ou ajouter des nLv



if(nLv == 10 || nLv == 15 || nLv == 18 || nLv == 20 || nLv == 23 || nLv == 25 || nLv == 27 || nLv == 30 || nLv == 33 || nLv == 35 || nLv == 37)

{

  if(GetIsObjectValid(oPass))

  {

      SendMessageToPC(oPC, "Vous avez eu l'accord de {MD} pour monter de niveau." );

      DestroyObject(oPass);

  }

  else

  {

      SendMessageToPC(oPC, "Vous ne pouvez passer au niveau " + IntToString(nLv) + " sans l'autorisation d'un MJ." );

      nXP = (( nLv * ( nLv - 1 )) / 2 * 1000 ) - 1;

      SetXP(oPC, nXP);

  }




{

}
}
}
////////////////////////////// ////////////////////////////// ////////////
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.


donc voila, je voudrais savoir comment il fonctionne.Comment je dois proceder pour faire les bon lvl.. etc..
Je vous en remercie d'avance.
Amicalement,Soros.Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Seth de Sombrelune
Seigneur
Inscrit le: 10 Jan 2005
Messages: 156
Répondre en citant
Posté le : 06/11/2005 00:07:26 Sujet du message :

J'ai mis ton script en balise NWN, c'est plus lisible.
Ensuite à chaque étape, j'ai commenter les actions de la programation
Pour choisir les lv, ben tu change la valeur des nLv dans la condition "if"

NWScript :
////////////////////////////// ////////////////////////////// ////////////
void main()
{
    object oPC = GetPCLevellingUp();
    int nXP; // recupration de son nombre d'xp
    int nLv = GetHitDice(oPC); // recuperation de son level
    object oPass = GetItemPossessedBy(oPC, "PasseNiveau");//tag de l'item qui permet de valider les levels
                                                          //on recherche dans l'inventaire du PJ un objet ayant le tag definit, cet objet est donner par un md


// pour autre passage remplacer ou ajouter des nLv
    if(nLv == 10 || nLv == 15 || nLv == 18 || nLv == 20 || nLv == 23 || nLv == 25 || nLv == 27 || nLv == 30 || nLv == 33 || nLv == 35 || nLv == 37)// pour chaque valeur de lv, on verifie que le PJ a recus l'item de passage de niveau
    {
        if(GetIsObjectValid(oPass))//le pj a bien dans son inventaire l'item rechercher
        {
            SendMessageToPC(oPC, "Vous avez eu l'accord de {MD} pour monter de niveau." );//on envois un message au joueur pour lui confirmer le passage de level
            DestroyObject(oPass);// on detruit l'item de passage de level
        }
        else // donc ici le pj n'a pas son item de passage des levels
        {
            SendMessageToPC(oPC, "Vous ne pouvez passer au niveau " + IntToString(nLv) + " sans l'autorisation d'un MJ." );// on invite subtilement le joueur a contacter un md pour valider son level
            nXP = (( nLv * ( nLv - 1 )) / 2 * 1000 ) - 1; // calcule du nombre de xp pour le level non valide moins 1
            SetXP(oPC, nXP);// on ramene le pj au level infrieur
        }
    }
}
////////////////////////////// ////////////////////////////// ////////////
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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Soros
Acolyte
Inscrit le: 31 Oct 2005
Messages: 28
Répondre en citant
Posté le : 06/11/2005 08:32:02 Sujet du message :

Merci beaucoup j'ai tout capté d'un coup! Very Happy
 
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 : 06/11/2005 09:14:17 Sujet du message :

A propos de cette phrase :
NWScript :
nXP = (( nLv * ( nLv - 1 )) / 2 * 1000 ) - 1;
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.


Je n'ai jamais compris comme sa marche :
Par exemple le joueur est level 10 donc on doit faire ce calcule :
= ((10*(10-1))/2*1000)-1
= ((10*(9))/2*1000)-1
= (90 / 2*1000)-1
= (90/2000)-1
= "je ne vais pas m'embete Razz" -1

Bon c'est gentil sa mais je comprend pas du tout ce systeme... Pourquoi ne pas directement faire Level-1 ??
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Ailesnoires
Grand Chevalier
Inscrit le: 21 Oct 2004
Messages: 110
Localisation: Vendée
Répondre en citant
Posté le : 06/11/2005 09:19:01 Sujet du message :

il me semble que tu te trompe sur la fin
= ((10*(10-1))/2*1000)-1
= ((10*(9))/2*1000)-1
= (90 / 2*1000)-1 ======> (45*1000)-1=44999 pour les divisions et multiplications c'est dans l'ordre

= (90/2000)-1=pas beaucoup
 
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 : 06/11/2005 10:45:33 Sujet du message :

ah ! Razz
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Paiste
Ecuyer
Inscrit le: 25 Mai 2007
Messages: 65
Localisation: Montréal
Répondre en citant
Posté le : 01/07/2007 09:25:14 Sujet du message :

Salut je voudrais savoir si se script la permet de garder tes exp que tu as gagner si tu monte de lvl ou s'il va te mettre au exp de ton prochaine lvl example!

Bob était bloquer au lvl 10 mais il a continuer a combattre puis a eu bcp d'exp! La il a eu sa pass de niveau car il a enfin fait du santa barbara Smile ! Alors il monte lvl 11. C'est exp sont tu remis fix pour le lvl 11 ou il garde encore ses exp qu'il a gagner et aura seulement besoin d'un autre pass de niveau pour monté ?!?!?!

Car j'aimerais qu'il garde ses EXP

Ensuite se script la on le met ou ?!?!

Voila merci!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 : 01/07/2007 09:53:23 Sujet du message :

Heu il garde pas ses XPs, la ça donne pile assez pour avoir un level.

Si tu veux que il regagne ces XP, avant de faire le code, tu fais une tite fonction qui regarde ses XPs :

int iXP = GetXP(oPC);

Cette fonction est a mettre avant d'enlever. Ensuite tu utilise iXP pour donner l'xp qu'il avait AVANT.

BK
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Paiste
Ecuyer
Inscrit le: 25 Mai 2007
Messages: 65
Localisation: Montréal
Répondre en citant
Posté le : 01/07/2007 10:29:45 Sujet du message :

Oki Merci!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Paiste
Ecuyer
Inscrit le: 25 Mai 2007
Messages: 65
Localisation: Montréal
Répondre en citant
Posté le : 01/07/2007 18:32:16 Sujet du message :

Étant plutot débutant en script et ne désirant ne pas tout brisé!!Laughing J'aimerais savoir ou que je dois mettre le script des palliers a lvl dans le OnPlayerLvlUp du module du script suivant Merci grandement!

NWScript :
/*
    Put into: OnLevelup Event
*/

//:Confused///////////////////////// ////////////////////
//:: Created By: Stratovarius and DarkGod
//:: Created On: 2003-07-16
//:Confused///////////////////////// ////////////////////

//Added hook into EvalPRCFeats event
//  Aaon Graywolf - Jan 6, 2004
//Added delay to EvalPRCFeats event to allow module setup to take priority
//  Aaon Graywolf - Jan 6, 2004

#include "prc_alterations"
#include "prc_inc_domain"
#include "inc_utility"

void PrcFeats(object oPC)
{
    EvalPRCFeats(oPC);
    if (GetLevelByClass(CLASS_TYPE_WEREWOLF, oPC) > 0)
    {
        ExecuteScript("prc_wwunpoly", oPC);
    }
}

void main()
{
    object oPC = GetPCLevellingUp();
//if(DEBUG) DoDebug("prc_levelup running for '" + GetName(oPC) + "'");

    object oSkin = GetPCSkin(oPC);
    ScrubPCSkin(oPC, oSkin);
    DeletePRCLocalInts(oSkin);

    // Gives people the proper spells from their bonus domains
    // This should run before EvalPRCFeats, because it sets a variable
    CheckBonusDomains(oPC);

    //All of the PRC feats have been hooked into EvalPRCFeats
    //The code is pretty similar, but much more modular, concise
    //And easy to maintain.
    //  - Aaon Graywolf
    DelayCommand(0.1, PrcFeats(oPC));

    // Check to see which special prc requirements (i.e. those that can't be done)
    // through the .2da's, the newly leveled up player meets.
    DelayCommand(0.5, ExecuteScript("prc_prereq", oPC)); // Delayed so that deleveling gets to happen before it.
    ExecuteScript("prc_enforce_feat", oPC);
    ExecuteScript("prc_enforce_psi", oPC);
    //Restore Power Points for Psionics
    ExecuteScript("prc_psi_ppoints", oPC);

    DelayCommand(1.0, FeatSpecialUsePerDay(oPC));

    // These scripts fire events that should only happen on levelup
    ExecuteScript("prc_vassal_treas", oPC);

    // Execute scripts hooked to this event for the player triggering it
    ExecuteAllScriptsHookedToEvent(oPC, EVENT_ONPLAYERLEVELUP);
}
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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Flumby
Chevalier
Inscrit le: 01 Juin 2006
Messages: 71
Répondre en citant
Posté le : 01/07/2007 22:02:56 Sujet du message :


Citation :
Put into: OnLevelup Event
Oui tu le mets dans l'evénement onLevelUp
_________________
Premier DM a avoir inauguré la chute d'auberge sur Joueur rebel

Preuve Smile => http:
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Paiste
Ecuyer
Inscrit le: 25 Mai 2007
Messages: 65
Localisation: Montréal
Répondre en citant
Posté le : 02/07/2007 07:38:35 Sujet du message :

Mais je voulais surtout savoir si j'instaure se script intégral a la suite ? ou je dois modifier pour l'ajouter ?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Flumby
Chevalier
Inscrit le: 01 Juin 2006
Messages: 71
Répondre en citant
Posté le : 02/07/2007 09:00:56 Sujet du message :

je pense que tu peux le mettre a la suite, mise a part la ligne object oPC = GetPCLevellingUp();
je ne pense pas que tu es des variables avec le meme nom ou une fonction void PrcFeats(object oPC) déja existante.

Par contre il te faut les 3 bibliotheques et tous les script qui sont demandé a etre éxécuté pour que ca fasse ce que c'est prevu pour faire.
_________________
Premier DM a avoir inauguré la chute d'auberge sur Joueur rebel

Preuve Smile => http:
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Paiste
Ecuyer
Inscrit le: 25 Mai 2007
Messages: 65
Localisation: Montréal
Répondre en citant
Posté le : 02/07/2007 15:01:59 Sujet du message :


Citation :
Par contre il te faut les 3 bibliotheques et tous les script qui sont demandé a etre éxécuté pour que ca fasse ce que c'est prevu pour faire.
La ma t'avouer que je suis completement perdu!! Laughing
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Flumby
Chevalier
Inscrit le: 01 Juin 2006
Messages: 71
Répondre en citant
Posté le : 04/07/2007 16:23:36 Sujet du message :

Il te faut les fichiers bibliotheque (les 3 includes) :

prc_alterations
prc_inc_domain
inc_utility

Et les fichiers scripts suivant (toutes les lignes executescript)

prc_wwunpoly
prc_enforce_feat
prc_enforce_psi
prc_psi_ppoints
prc_vassal_treas

Tu dois les avoir la ou tu as récupérer ce script.
_________________
Premier DM a avoir inauguré la chute d'auberge sur Joueur rebel

Preuve Smile => http:
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Paiste
Ecuyer
Inscrit le: 25 Mai 2007
Messages: 65
Localisation: Montréal
Répondre en citant
Posté le : 05/07/2007 02:37:24 Sujet du message :

oki tnx!
 
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 63.005ms