JeuxOnLineForumsPlusCréer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [Script] Phase lunaire RSS
   
Répondre
Partager Outils Rechercher
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 

[Script] Phase lunaire

Il paraît que ce script ne marche pas, mais je ne vois pas pourquoi, avez vous une idée ?

Il est censé simuler l'influence des phases lunaires sur les mages et les sorciers dans le monde de Krynn je crois...

Dans le OnClientEnter :
Code PHP:
void main()
{
    
object oMagikMan GetEnteringObject();
    
int nMagikClass GetLevelByClassCLASS_TYPE_SORCERERoMagikMan ) +
    
GetLevelByClassCLASS_TYPE_WIZARDoMagikMan );
    if( 
nMagikClass && GetIsPCoMagikMan ) )
    {
        
ExecuteScript"sc_moon"oMagikMan );
    }

Et le script "sc_moon" :
Code PHP:
//script "sc_moon" by Jedaï
void main()
{
    
int nDay GetCalendarDay();
    
object oSelf OBJECT_SELF;
    
int nAbility GetLevelByClassCLASS_TYPE_SORCERER ) > GetLevelByClassCLASS_TYPE_WIZARD ) ?
    
ABILITY_CHARISMA ABILITY_INTELLIGENCE;
    
int nAlign GetAlignmentGoodEviloSelf );
    
effect eShift;
    
// New moon modifications: -1 Saves
    
if( ( nAlign == ALIGNMENT_GOOD && ( 15 <= nDay && nDay 22 ) )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 11 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 15 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 19 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 23 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 27 )
        || ( 
nAlign == ALIGNMENT_EVIL && ( <= nDay && nDay 13 ) )
        || ( 
nAlign == ALIGNMENT_EVIL && ( 22 <= nDay && nDay 25 ) ) )
        
eShift EffectSavingThrowDecreaseSAVING_THROW_ALL);
    
// Moon waxing modifications: +2 Int
    
else if( ( nAlign == ALIGNMENT_GOOD && ( <= nDay && nDay 15 ) )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 10 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 14 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 18 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 22 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 26 )
        || ( 
nAlign == ALIGNMENT_EVIL && ( <= nDay && nDay ) )
        || ( 
nAlign == ALIGNMENT_EVIL && ( 19 <= nDay && nDay 22 ) ) )
        
eShift EffectAbilityIncreasenAbility);
    
// Full moon modifications: +1 Saves, +4 Int
    
else if( ( nAlign == ALIGNMENT_GOOD && ( <= nDay && nDay ) )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 13 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 17 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 21 )
        || ( 
nAlign == ALIGNMENT_NEUTRAL && nDay == 25 )
        || ( 
nAlign == ALIGNMENT_EVIL && ( <= nDay && nDay ) )
        || ( 
nAlign == ALIGNMENT_EVIL && ( 16 <= nDay && nDay 19 ) ) )
        
eShift EffectAbilityIncreasenAbility);

    
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeShiftoSelf20.0 );
    
DelayCommand20.0ExecuteScript"sc_moon"oSelf ) );


Je ne comprend absolument pas pourquoi ça ne marche pas ??
Donc si quelqu'un voulait tester ??
Lien direct vers le message - Vieux
Avatar de grenwald
grenwald
Roi
 
Avatar de grenwald
 
heu... la je dois dire que bioware nous pond des trucs louches qd même........
J'm'explique : A première vu, ton script n'a aucune raison de ne pas marcher............ sauf qu'en faisant des tests, bah je me suis aperçu que le coup du
Code PHP:
if GetIsEffectValid (eShift
bah, il te retournais FALSE Du coup, si tu enlève ce p'tit test, bah y'a plus de problème.

Menfin me demande pas ce qu'attends la fonction "GetIsEffectValid" pour bien daigner retourner TRUE quand on lui met un effet en paramètre
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Aaaaahhh...Merci, vraiment

Humm, je crois que ce GetIsEffectValid() a un vrai problème, je m'y étais déjà heurté mais je croyais que c'était limité aux effets visuels... apparemment non...

Bon bah j'édite ce script et je le met dans le persistant, les phases de la lune, c'est périodique, peut-être que quelqu'un d'autre l'utilisera un jour..
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Evidemment...Je n'y avais pas pensé plus tôt mais GetIsEffectValid() n'accepte que les effets qui ont déjà été appliqués...

Impossible donc de vérifier que la "construction" d'un effet s'est bien passé, en espérant que ça ne plante pas la machine !
Lien direct vers le message - Vieux
Avatar de Jaha Effect
Jaha Effect
Alpha & Oméga
 
Avatar de Jaha Effect
 
C'est les loup garou qui vont être content pluton que de se transformer tout les soir ce qui est un peu idiot

Jaha Effect
Lien direct vers le message - Vieux
Avatar de Moratus
Moratus
Roi
 
Avatar de Moratus
 
Heu...juste comme ça quelqu'un pourrait m'expliquer ce que fait ce script parce que ça a l'air intéressant .
Lien direct vers le message - Vieux
Avatar de grenwald
grenwald
Roi
 
Avatar de grenwald
 
Je me disais bien qu'il existait des fonctions terribles pour les scripts... Et là, faut dire que c'en est une (enfin je trouve)
Quand tu vois pas un de tes super effets se produire, tu peux toujours mettre un script qui te dise : "Rien ne se passe" :mdr

Moratus => Ce script te permet d'affecter des effets aux mages/ensorceleur en fonction de la lune (plus simplement ici en fonction du jour)
En gros suivant la date, et ton alignement, tes abilités seront modifier (-1 en jet de sauvegarde, +2 en intelligence/charisme, ou +4 en intelligence/charisme)
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
En fait cette fonction sert pour quand on veut supprimer un effet en particulier sur un objet et qu'on boucle dans tous les effets présents sur cet objet.

@ Moratus > L'intérêt de ce script, c'est qu'il t'offre une structure facilement modifiable pour appliquer des effets sur tes joueurs en fonction de facteurs extérieurs (on pourrait même imaginer qu'il prennent en compte le temps qu'il fait....), le tout sans massacrer ton CPU.
Lien direct vers le message - Vieux
Avatar de Moratus
Moratus
Roi
 
Avatar de Moratus
 
Est-ce que ça peut prendre en compte les caractéristiques du PJ comme son alignement et son endurance, sa sagesse etc...?

Parce que si c'est le cas j'avais pensé à un sort/piège qui ressemblerait à peu près à ça:

le joueur traverse une zone définie ou prends un objet maudit et aussitôt est invoqué,créé un double maléfique du joueur, un PNJ qui reprend le nom du PJ, mais si le nom du PJ est "Bordrin Têtedefer" le nom du PNJ donnera" Bordrin Evil" ou quelque chose ressemblant. Le PNJ ainsi créé attaque automatiquement son double, après bien entendu avoir lancé une phrase type du style"Je suis ton double noir, tu vas périr de ta main!".

Si le PJ est Loyal Bon, le PNJ lui sera son opposé, probablement Mauvais Bon.

Je me demandais si s'était faisable sous NWN, donc si j'ai bien compris ce script pourrait être proche de ce que je recherche.
Lien direct vers le message - Vieux
Avatar de Gorion
Gorion
Empereur
 
Avatar de Gorion
 
L'opposé de Loyal c'est Chaotique et l'opposé de Bon, c'est mauvais. L'opposé de Loyal Bon est donc Chaotique mauvais. Je crois (pas sur...) que l'opposé de Neutre, c'est Neutre !
Lien direct vers le message - Vieux
Avatar de Jedaï
Jedaï
Alpha & Oméga
 
Avatar de Jedaï
 
Non, non, c'est pas du tout ce qu'il te faut, ce script est prévu pour avoir une influence tout au long du séjour du PJ sur le serveur, si tu veux il permet d'affiner le système de jeu, un peu comme mon script de fatigue.

Par contre je peux te dire que jusqu'ici, presque tous ceux qui ont eu l'idée "double maléfique" (et ils sont nombreux) ont renoncé, faute d'outils appropriés.
Cependant avec l'arrivée de la 1.28 et de la fonction CopyObject(), ça vaut le coup d'essayer... Certains ont-ils déjà essayé cette fonction sur un PJ (je crois pas que ça marche mais bon...). Même si ça marche pas, on pourra toujours copier l'équipement du PJ, à voir...hum..
Lien direct vers le message - Vieux
Avatar de Moratus
Moratus
Roi
 
Avatar de Moratus
 
Ok merci c'était juste pour savoir si c'était possible.
Lien direct vers le message - Vieux
eMaster
Prince / Princesse
 
Salut, moi je me demandai s'il était possible d'adapter ce script pour qu'en faite les PJs sous l'ethnie drow bénéficient de bonus ou malus selon le D&D (des bonus et malus que je ne connais pas d'ailleurs :P) mais seulement la nuit biensur.

Merci :-)
Lien direct vers le message - Vieux
Avatar de Mastokk
JOL Mastokk
Alpha & Oméga
 
Avatar de Mastokk
 
Lis donc ceci , ça devrait t'éclairer sur les modifications à apporter au script.
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [Script] Phase lunaire
   

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 03h20.
   

© 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