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 20:52:21


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Asuke
Novice
Inscrit le: 16 Avr 2003
Messages: 11
Répondre en citant
Posté le : 01/01/2004 22:57:51 Sujet du message : Degats supplementaires sur un pas-beau

Salut,

J'ai un leger problème ! J'ai beau chercher et je n'ai pas trouvé la reponse à mon problème sur ce forum mais aussi sur d'autres. Si ce sujet a deja été abordé veuiller m'excuser alors.

J'ai écrit un petit scripts ce situant dans le OnDamaged d'une creature pour que cette creature en question subissent des degats supplementaires selon certaines conditions que doit avoir l'attaquant.

Les conditions ne sont pas importantes.
Mon problème c'est que pour rajouter des degats à la creature je rajoute des degats divins dans le script du OnDamaged. Vous l'avez compris, ça met des degats en boucle ducoup Confused
Je n'ai pas reussit à contrer cela, j'ai tenter beaucoup de choses (y compris jouer avec les variables local).

En gros ce que j'ai ecrit ressemble à ceci :
NWScript :

void main()
{
  object oPC = GetLastAttacker();
  object oEnnemi = OBJECT_SELF;
  int DEGATS = d6();

  // On inflige les degats au pas-beau
    if(GetIsPC(oPC) != FALSE)
    {
    effect eDamage = EffectDamage(DEGATS, DAMAGE_TYPE_DIVINE);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oEnnemi);
    AssignCommand(oEnnemi, SpeakString(IntToString(DEGATS), TALKVOLUME_TALK));
    }
}
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.


Et ça ne marche pas ... enfin ça fait le script en boucle je pense ...

Un autre detail, si possible aussi j'aimerai bien que les degats supplementaires soient affiché au dessus de la tête de l'ennemi comme si c'était de vrai degats.

Merci d'avance et bonne soirée.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 01/01/2004 23:51:31 Sujet du message :

Hum... Hum...

Avant de me plonger dans ce script, pourquoi un

GetLastAttacker();qui doit être uniquement dans un "OnPhysicalAttacked" est utilisé ici ?

La logique voudrais que
GetLastDamager();
soit placé dans un OnDamaged...
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Longbow
Grand Sage du Conseil
Inscrit le: 10 Déc 2003
Messages: 638
Localisation: Orléans
Répondre en citant
Posté le : 02/01/2004 00:24:05 Sujet du message :

Voila la proposition

NWScript :
void main()
{
//  object oPC = GetLastAttacker();
  object oPC = GetLastDamager();
  object oEnnemi = OBJECT_SELF;
  int DEGATS = d6();

  // On inflige les degats au pas-beau
    if(GetIsPC(oPC) != FALSE)
    {
    effect eDamage = EffectDamage(DEGATS, DAMAGE_TYPE_DIVINE);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oEnnemi);

    //Un petit effet pour le plaisir des yeux
    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect( VFX_IMP_FLAME_S),oEnnemi);
    DelayCommand(0.3, SpeakString(IntToString(DEGATS)));
    }
}
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.


D'un point de vue purement didactique, je me permet deux remarques...
1. pourquoi mettre un "object supplémentaire alors qu'il s'agit de OBJECT_SELF qui peut être coller n'importe où sans problème...
2.
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.

Je ne suis pas sûr, mais il me semble que tu demandes à mettre une commande passive (SpeakString) dans la queue d'action alors que ce n'est pas une action.(différence entre ActionSpeakString et SpeakString)

Par contre, n'hésite pas à envoyer des scripts qui te posent problème, j'essairai de t'aider dans la mesure du possible...
LongBow
_________________
Rex illeteratus
Quasi Asinus Coronatus
Jean de Salisbury
 
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 46.976ms