La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 27/11/2024 05:01:22


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 09/05/2006 18:32:14 Sujet du message : [ Résolu ] Conflit sur le onDamage et ActionAttack

Salut à tous,

J'ai un souci entre deux scripts.

Si je mets le script ci-dessous dans le OnDamage et que j'enlève tous les autres scripts, il fonctionne. Seulement la créature reste "passive" et n'attaque pas le joueur.
Maintenant, si je mets le second script (en dessous) dans le OnPerception ça annule les effets du premier script. Il en va de même si je rajoute "ActionAttack(oPC);" à la fin du premier script.

Quel est donc le souci ?
Comment faire pour que ma créature se défende quand même un peu ?


Voici le script du OnDamge (pour prendre l'arme du PJ quand il attaque la créature).

NWScript :
void main()
{
//ExecuteScript("nw_c2_de fault6", OBJECT_SELF);
AssignCommand(OBJECT_SELF, ActionSpeakString("Aie !"));

object oPC = GetLastDamager();
object oMainD = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
object oMainG = GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oPC);
object oBras = GetItemInSlot(INVENTORY_SLOT_ARMS, oPC);
int nForce = GetAbilityScore(oPC, ABILITY_STRENGTH);

if (GetIsObjectValid(oMainD))
    {
    if (nForce + d10() < 21)
        {
        ActionTakeItem(oMainD, oPC);
        }
    }

if (GetIsObjectValid(oMainG) == TRUE)
    {
    if (nForce + d10() < 21)
        {
        ActionTakeItem(oMainG, oPC);
        }
    }

else //if (GetIsObjectValid(oBras) == TRUE)
    {
    if (nForce + d10() < 17)
        {
        ActionTakeItem(oBras, 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.



Le script du OnPerception :

NWScript :
void main()
{
object oPC = GetLastPerceived();

if (GetIsPC(oPC) == TRUE )
    {
    ActionAttack(oPC); // Si c'est un joueur, attaque-le.
    }
}
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 de vos lumières.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Djezebel
Héros
Inscrit le: 29 Sep 2005
Messages: 252
Répondre en citant
Posté le : 11/05/2006 09:33:04 Sujet du message :

Comme me l'a si bien fait remarqué Enki, les actions sont difficilement faisables.

Il vaut mieux utiliser autre chose qu'une action, ce qui a été fait en utilisant un CopyItem () et DestroyObject() .

Ca marche à présent impécablement bien.
 
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 30.491ms