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 18:03:50


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
ansquer
Héros
Inscrit le: 11 Déc 2005
Messages: 264
Localisation: MorBihan
Répondre en citant
Posté le : 05/02/2007 18:26:30 Sujet du message : Suffocation dans une zone précise

Voilà, j'ai réussi à faire une mer ou les pj peuvent nager et ils subissent des degats ca ril n'y pas pas d'oxigene...

Mais voilà, je voudrai trouver un moyen d'dapter ce script à une zone "déclencheur générique"
il ya des émanations de gaz toxiques, quand le PJ passe dans cet endroit de la map il subit des dégats d'acide tous les rounds jusqu'à qu'il en sorte.
Je suppose qu'il ya un truc à mettre sur on enter et un autre sur on exit du déclencheur...

merci de votre aide

voici le script que j'ai sur le Onhearth beat de mon ocean et qu'il faudrait adapter.

NWScript :
void main()

{
  //int iCk = GetLocalInt(GetModule()," Rounds");

  // SetLocalInt(GetModule()," Rounds",++iCk);
// else
  //{
        SetLocalInt(GetModule(),"Rounds",0);
    // Cherche le PJ.
    object oPC=GetFirstPC();


    while(GetIsObjectValid(oPC))
    {
        if(GetArea(oPC) == OBJECT_SELF)
        {

   
   
    if (GetTag(GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC)) == "capedesmers")
    return;
    effect eDam = EffectDamage(d4(1), DAMAGE_TYPE_BLUDGEONING);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oPC);

        }
        oPC = GetNextPC();
    }
  // }
}
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
_________________
L'année de l'île Tome 1 Un roman ecxeptionnel !
Urban Rivals ! Mettez " ansker " en pseudo de votre parrain svp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Doshin
Novice
Inscrit le: 04 Fév 2007
Messages: 14
Localisation: Finistère
Répondre en citant
Posté le : 05/02/2007 18:34:26 Sujet du message :

Bonsoir.

J'avais crée une fonction qui infligeai nDamage à oPC tous les rounds.

Je te mets ici la fonction pour que tu puisses t'en servir pour ton script :

NWScript :
//::Applique nDamage tous les rounds a oPCToDamage
void DamageBySecX6(object oPCToDamage, int nDamage);

void DamageBySecX6(object oPCToDamage, int nDamage)
{
    effect eDamage = EffectDamage(nDamage, DAMAGE_TYPE_MAGICAL);

    if ( GetIsPC(oPCToDamage) )
    {

        ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oPCToDamage);

        DelayCommand(6.0,DamageBySecX6(oPCToDamage, nDamage));
    }

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


A mettre dans un include lié à ton script par un # include"nom_du_script"

A bientôt.
Doshin
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
ansquer
Héros
Inscrit le: 11 Déc 2005
Messages: 264
Localisation: MorBihan
Répondre en citant
Posté le : 05/02/2007 19:02:21 Sujet du message :

Merci Very Happy

Mais je n'ai jamais utilisé les fonctions encore (faut bien commencer un jour)Razz

Donc si je comprends bien je fais un truc comme ca ...

NWScript :
# include"nom_de_TON_script"
void main()
{
object oPCtoDamage = GetEnteringObject();


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


comment un script "include" intervient sur un autre script Confused

merci
_________________
L'année de l'île Tome 1 Un roman ecxeptionnel !
Urban Rivals ! Mettez " ansker " en pseudo de votre parrain svp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Doshin
Novice
Inscrit le: 04 Fév 2007
Messages: 14
Localisation: Finistère
Répondre en citant
Posté le : 05/02/2007 19:41:39 Sujet du message :

Alors, il faut créer un script avec pour nom, par exemple : "damsec6"

Ce script correspondra à l'include :

NWScript :
//::Applique nDamage tous les rounds a oPCToDamage
void DamageBySecX6(object oPCToDamage, int nDamage);

void DamageBySecX6(object oPCToDamage, int nDamage)
{
    effect eDamage = EffectDamage(nDamage, DAMAGE_TYPE_MAGICAL);

    if ( GetIsPC(oPCToDamage) )
    {

        ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oPCToDamage);

        DelayCommand(6.0,DamageBySecX6(oPCToDamage, nDamage));
    }

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



Ensuite il te suffit de mettre un script commencant comme cela :

NWScript :

#include "damsec6"
void main ()
{
//Script
}
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 #include "nom_du_script" rajoute les fonctions que tu as mise dans le script correspondant au resref mis entre " ".

Voici un exemple pour toi et ta zone d'asphixie

NWScript :

#include "damsec6"
void main ()
{
    object oPC = GetEnteringObject();//le joueur
    int nDegat = ;

    DamageBySecX6(oPC, int nDegat);
}
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.



Voila, c'est un exemple de ce que l'on peut faire avec cette fonction. A mettre dans le OnEnter de ta zone.

bye.
Doshin
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
ansquer
Héros
Inscrit le: 11 Déc 2005
Messages: 264
Localisation: MorBihan
Répondre en citant
Posté le : 05/02/2007 20:55:37 Sujet du message :

rhooo Very Happy MERCI BEAUCOUP

J'essaye ca tout de suite !!!
_________________
L'année de l'île Tome 1 Un roman ecxeptionnel !
Urban Rivals ! Mettez " ansker " en pseudo de votre parrain svp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
ansquer
Héros
Inscrit le: 11 Déc 2005
Messages: 264
Localisation: MorBihan
Répondre en citant
Posté le : 05/02/2007 21:08:09 Sujet du message :

J'ai un suffocation.nss(Cool: ERREUR : UNKNOWN STATE IN COMPILER

sur cette ligne

NWScript :

DamageBySecX6(oPC, int nDegat);
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.

_________________
L'année de l'île Tome 1 Un roman ecxeptionnel !
Urban Rivals ! Mettez " ansker " en pseudo de votre parrain svp
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Doshin
Novice
Inscrit le: 04 Fév 2007
Messages: 14
Localisation: Finistère
Répondre en citant
Posté le : 06/02/2007 11:02:57 Sujet du message :

En effet, j'ai fait une erreur, excuse moi.

NWScript :
DamageBySecX6(oPC, int nDegat);
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 "int" n'a pas lieu d'être, il avait seulement son utilitée dans la fonction crée.

Remplace donc cette ligne par celle ci :

NWScript :
DamageBySecX6(oPC, nDegat);
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.



DoshinSmile
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
ansquer
Héros
Inscrit le: 11 Déc 2005
Messages: 264
Localisation: MorBihan
Répondre en citant
Posté le : 07/02/2007 09:16:16 Sujet du message :

Merci beaucoup ^^
_________________
L'année de l'île Tome 1 Un roman ecxeptionnel !
Urban Rivals ! Mettez " ansker " en pseudo de votre parrain svp
 
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 117.375ms