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 02:57:18


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
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 : 03/12/2005 10:24:58 Sujet du message : Equilibrage de Classe

Salut salut.
Bon voila, la plus par des joueurs font defois, meme presque tout le temps, des personnages GB (gros bill)... Alors je voulais savoir comment donne des penalites si par exemple le joueur est Maitre Pale... ou DDR. Aussi je voudrais savoir si le joueur possede 2 classe qu'il ai une penalite.

Mes penalite sera soit la baisse de CA, BA, ou alors avec les sorts, enfin vous voyez quoi lol.

Donc si vous pouviez m'aidé sa serait cool (je pense que le script doit ce mettre dans le OnLevel, sauf que j'avais deja teste un truc comme sa, mais des que le joueur refesait un level et qu'il n'avait plus la classe, bein il perdait pas la penalite...)

Merci
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 03/12/2005 14:02:32 Sujet du message :

j'avais un peu de temps , alors je t'ai fait le script , et en même temps ça me permet de ne pas rouiller ! Laughing

C'est a mettre dans le " onplayerlevelup " , ça te permet d'infliger -2 points de pénalité permanents sur la force du joueur si il se biclasse.
Et si il se tri classe , ça lui inflige - 4 points suplémentaires , soit -6 points en tout ! Very Happy

Aussi , le script est fait pour toutes les classes de : nwn + SoU + HotU

NWScript :

void main()
{
object oPC = GetPCLevellingUp();
int niveau = GetHitDice(oPC);
int comptage_classes;

int lv_classe_01 = GetLevelByClass(CLASS_TYPE_BARBARIAN,oPC);
int lv_classe_02 = GetLevelByClass(CLASS_TYPE_BARD,oPC);
int lv_classe_03 = GetLevelByClass(CLASS_TYPE_CLERIC,oPC);
int lv_classe_04 = GetLevelByClass(CLASS_TYPE_DRUID,oPC);
int lv_classe_05 = GetLevelByClass(CLASS_TYPE_FIGHTER,oPC);
int lv_classe_06 = GetLevelByClass(CLASS_TYPE_MONK,oPC);
int lv_classe_07 = GetLevelByClass(CLASS_TYPE_PALADIN,oPC);
int lv_classe_08 = GetLevelByClass(CLASS_TYPE_RANGER,oPC);
int lv_classe_09 = GetLevelByClass(CLASS_TYPE_ROGUE,oPC);
int lv_classe_10 = GetLevelByClass(CLASS_TYPE_SORCERER,oPC);
int lv_classe_11 = GetLevelByClass(CLASS_TYPE_WIZARD,oPC);

int lv_classe_12 = GetLevelByClass(CLASS_TYPE_ARCANE_ARCHER,oPC);
int lv_classe_13 = GetLevelByClass(CLASS_TYPE_ASSASSIN,oPC);
int lv_classe_14 = GetLevelByClass(CLASS_TYPE_BLACKGUARD,oPC);
int lv_classe_15 = GetLevelByClass(CLASS_TYPE_SHADOWDANCER,oPC);
int lv_classe_16 = GetLevelByClass(CLASS_TYPE_HARPER,oPC);

int lv_classe_17 = GetLevelByClass(CLASS_TYPE_DRAGON_DISCIPLE,oPC);
int lv_classe_18 = GetLevelByClass(CLASS_TYPE_DRAGONDISCIPLE,oPC);
int lv_classe_19 = GetLevelByClass(CLASS_TYPE_DWARVEN_DEFENDER,oPC);
int lv_classe_20 = GetLevelByClass(CLASS_TYPE_DWARVENDEFENDER,oPC);
int lv_classe_21 = GetLevelByClass(CLASS_TYPE_PALE_MASTER,oPC);
int lv_classe_22 = GetLevelByClass(CLASS_TYPE_PALEMASTER,oPC);
int lv_classe_23 = GetLevelByClass(CLASS_TYPE_DIVINE_CHAMPION,oPC);
int lv_classe_24 = GetLevelByClass(CLASS_TYPE_DIVINECHAMPION,oPC);
int lv_classe_25 = GetLevelByClass(CLASS_TYPE_WEAPON_MASTER,oPC);
int lv_classe_26 = GetLevelByClass(CLASS_TYPE_SHIFTER,oPC);

    if(lv_classe_01 > 0)
    { comptage_classes++; }
    if(lv_classe_02 > 0)
    { comptage_classes++; }
    if(lv_classe_03 > 0)
    { comptage_classes++; }
    if(lv_classe_04 > 0)
    { comptage_classes++; }
    if(lv_classe_05 > 0)
    { comptage_classes++; }
    if(lv_classe_06 > 0)
    { comptage_classes++; }
    if(lv_classe_07 > 0)
    { comptage_classes++; }
    if(lv_classe_08 > 0)
    { comptage_classes++; }
    if(lv_classe_09 > 0)
    { comptage_classes++; }
    if(lv_classe_10 > 0)
    { comptage_classes++; }
    if(lv_classe_11 > 0)
    { comptage_classes++; }
    if(lv_classe_12 > 0)
    { comptage_classes++; }
    if(lv_classe_13 > 0)
    { comptage_classes++; }
    if(lv_classe_14 > 0)
    { comptage_classes++; }
    if(lv_classe_15 > 0)
    { comptage_classes++; }
    if(lv_classe_16 > 0)
    { comptage_classes++; }
    if(lv_classe_17 > 0)
    { comptage_classes++; }
    if(lv_classe_18 > 0)
    { comptage_classes++; }
    if(lv_classe_19 > 0)
    { comptage_classes++; }
    if(lv_classe_20 > 0)
    { comptage_classes++; }
    if(lv_classe_21 > 0)
    { comptage_classes++; }
    if(lv_classe_22 > 0)
    { comptage_classes++; }
    if(lv_classe_23 > 0)
    { comptage_classes++; }
    if(lv_classe_24 > 0)
    { comptage_classes++; }
    if(lv_classe_25 > 0)
    { comptage_classes++; }
    if(lv_classe_26 > 0)
    { comptage_classes++; }



    int balise_bi_classe = GetCampaignInt("nom_de_ton_mod","balise_perso_bi_classe",oPC);
    int balise_tri_classe = GetCampaignInt("nom_de_ton_mod","balise_perso_tri_classe",oPC);

    if ( comptage_classes == 2 )
      if ( balise_bi_classe == FALSE )
    {

    // Penalite permanente de -2 points en force si le perso se bi-classe
    ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectAbilityDecrease(ABILITY_STRENGTH,2),oPC);

    SetCampaignInt("nom_de_ton_mod","balise_perso_bi_classe",TRUE,oPC);
    }

    if ( comptage_classes == 3 )
    if ( balise_tri_classe == FALSE )
    {

    // Penalite permanente de -4 points suplementaires en force si le perso se tri-classe
    ApplyEffectToObject(DURATION_TYPE_PERMANENT,EffectAbilityDecrease(ABILITY_STRENGTH,4),oPC);

    SetCampaignInt("nom_de_ton_mod","balise_perso_tri_classe",TRUE,oPC);
    }

}
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 ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
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 : 03/12/2005 14:12:29 Sujet du message :

Et si il refait un level, tu crois que sa vas aps lui laissé les penalite ? ...
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 03/12/2005 14:18:48 Sujet du message :

Avec ce script , si il bi classe il perds 2 points de force de maniére permanente , qu'il soit " barde lv1 , roub lv1 " ou bien " barde lv20 , roub lv 20 ".

Si il tri classe il perds 6 points de maniére permanente , qu'il soit " barde lv1 , roub lv1 " ou bien " barde lv20 , roub lv 20 ".

La seule chose prise en compte sur ce script est le " bi classage " et le " tri classage ".

Par contre je viens de pense qu'il faudra aussi mettre ce script dans le " onplayerrest " , et a l'entrée du mod pour garantir que les pénalités restent permanentes , car sinon , elles disparaissent aprés le repos ou en revenant sur le mod.

Ne pas oublier de l'adapter en remplacant la ligne

object oPC = GetPCLevellingUp();

par

object oPC = GetLastPlayerRest();

et

object oPC = GetEnteringObject();
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
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 : 03/12/2005 16:22:22 Sujet du message :

Le problème de ce genre de pénalités c'est qu'elles restent soumises aux sorts de restauration, et que je suis pas sur qu'elles partent pas avec un poison par exemple.
Il y a le coup du
NWScript :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.


Ca t'évite déjà qu'elles partent lors du repos. (Mais restent sensibles à restauration suprême).
En passant par un objet de créature ça peut pas marcher sinon ?
 
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 : 03/12/2005 17:04:38 Sujet du message :

Bas voila si vous pouviez me fere cette exemple :

.BK est niveau 15 de Barde... Bon pour l'instant tou vas bien, mais la il part faire un level de Maitre Pale, donc des qu'il a finit, le OnPLayerLevelUp s'active et je voudrais qu'il se passe sa : Il recoit une peau, ou quelque chose que les creature on, et qu'il s'equipe, sans qu'il puissent l'enleve. Mais BK c'est trompe alors il enleve un level et sa lui donne 15 de Barde et donc la peau s'enleve et tac il n'a plus de penalite.
Par contre faut pas oublié qu'il suprime l'ancienne peau et remette une nouvelle pour evite qu'il est 10mille peau dans son inventaire et, je pense que la il n'y aura pas besoin de mettre quelque chose dans le OnPLayerRest et Enter.

Voila ma petite aide Razz
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Yoyo
Seigneur
Inscrit le: 31 Aoû 2003
Messages: 223
Répondre en citant
Posté le : 03/12/2005 18:03:44 Sujet du message :

Et comment il va faire pour s'enlever le lvl ?? Surprised
_________________
BOUH! (je vous ai fait peur ??) désolé

Vive moi
Pas vive Securom
 
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 : 03/12/2005 18:06:35 Sujet du message :

Bein il demende a refaire son level a un PNJ lol
_________________
[http]
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Semcatala
Grand Sage du Conseil
Inscrit le: 20 Jan 2004
Messages: 951
Répondre en citant
Posté le : 03/12/2005 19:51:31 Sujet du message :

ben en sachant ça les choses sont différentes , car j'étais resté dans la vieille optique du :
" une fois que tu as fait ton perso tu te le garde , et si tu te plante tant pis , t'avais qu'a faire des essais avant sur module XP ! ".

Je vais regarder a modifier un peu le script pour l'adapter.
_________________
" La ruse doit être employée pour faire croire que l'on est où l'on est pas, que l'on veut ce qu'on ne veut pas. " CdG
" La véritable école du Commandement est la culture générale. " CdG
" Une société prête à sacrifier un peu de liberté contre un peu de sécurité ne mérite ni l'une ni l'autre et finit par perdre les deux. " B.F
" La gloire se donne seulement à ceux qui l'ont toujours rêvée. " CdG
" La fin de l'espoir est le commencement de la mort. " CdG
 
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 : 03/12/2005 20:28:24 Sujet du message :

En passant y a un autre truc à verifier c'est si sur ton module un PJ peut perdre un niveau en perdant de l'XP, il faudra verifier qu'il perd pas son multiclassage à chaque fois aussi. Donc verifier le OnDeath, les baguettes de DM et j'en passe.
 
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 : 03/12/2005 20:34:04 Sujet du message :

Si il peut perdre des XP, si il tue quelqu'un ou attack un PNJ...
_________________
[http]
 
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 53.506ms