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 17:33:12


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 08/02/2006 12:36:22 Sujet du message : Script de l'Ankou

Salut salut

Je suis en train de faire un script de rezpawn qui change de celui de NwN pour mon module sur les légendes de Bretagne.
C'est celui pour que l'Ankou vienne chercher ses morts...

Je voudrais juste savoir comment on fait pour prendre (par exemple) un point ( location lLocal par exemple) au sud et a 1 metttre du pj mort (c'est un exemple car apres il y en aura plusieur).

Voila j'espere avoir été clair et que vous saurez me dire comment le faire car moi je n'y arrive pas ...

Merci d'avance, Mork
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 08/02/2006 13:00:01 Sujet du message :

NWScript :

object oDead; //C'est le mort
location lLocal;
Vector vPos = GetPosition(oDead);
vPos.y-=1.0; //1metre au sud
lLocal = Location(GetArea(oDead),vPos,DIRECTION_NORTH);
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.


Par exemple.
l'axe x c'est l'axe ouest-est, l'axe y sud-nord. Sinon pour manipuler les positions y a une biblio x0_i0_position (de mémoire) y a pas mal de trucs dedans tu peux jeter un oeil.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 08/02/2006 13:22:25 Sujet du message :

Ca marche ! Merci.
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 08/02/2006 17:56:19 Sujet du message :

Arf j'ai toujours un problème ... j'arrive pas a faire venir l'Ankou

Voila le script :

NWScript :
#include "nw_i0_plot"

void ApplyPenalty(object oDead)
{
    int nXP = GetXP(oDead);
    int nPenalty = 50 * GetHitDice(oDead);
    int nHD = GetHitDice(oDead);

    int nMin = ((nHD * (nHD - 1)) / 2) * 1000;

    int nNewXP = nXP - nPenalty;
    if (nNewXP < nMin)
      nNewXP = nMin;
    SetXP(oDead, nNewXP);
    int nGoldToTake = FloatToInt(0.10 * GetGold(oDead));

    if (nGoldToTake > 10000)
    {
        nGoldToTake = 10000;
    }
    AssignCommand(oDead, TakeGoldFromCreature(nGoldToTake, oDead, TRUE));

}


    void main()
{


    object oRespawner = GetLastRespawnButtonPresser();


    location lLocation = GetLocalLocation(oRespawner,"lLocal4");

    CreateObject(OBJECT_TYPE_CREATURE, "ankou", lLocation, TRUE);

    location lLocal = GetLocation (oRespawner);

    vector vPos = GetPosition (oRespawner);
    vPos.y-=9.0;
    lLocal = Location(GetArea(oRespawner),vPos,DIRECTION_NORTH);

    location lLocal2 = GetLocation (oRespawner);

    vector vPos2 = GetPosition (oRespawner);
    vPos2.y-=8.0;
    lLocal2 = Location(GetArea(oRespawner),vPos,DIRECTION_NORTH);

    location lLocal3 = GetLocation (oRespawner);

    vector vPos3 = GetPosition (oRespawner);
    vPos3.y-=7.0;
    lLocal3 = Location(GetArea(oRespawner),vPos3,DIRECTION_NORTH);

    location lLocal4 = GetLocation (oRespawner);

    vector vPos4 = GetPosition (oRespawner);
    vPos4.y-=6.0;
    lLocal4 = Location(GetArea(oRespawner),vPos4,DIRECTION_NORTH);

    location lLocal5 = GetLocation (oRespawner);

    vector vPos5 = GetPosition (oRespawner);
    vPos5.y-=5.0;
    lLocal5 = Location(GetArea(oRespawner),vPos5,DIRECTION_NORTH);

    location lLocal6 = GetLocation (oRespawner);

    vector vPos6 = GetPosition (oRespawner);
    vPos6.y-=4.0;
    lLocal6 = Location(GetArea(oRespawner),vPos6,DIRECTION_NORTH);

    location lLocal7 = GetLocation (oRespawner);

    vector vPos7 = GetPosition (oRespawner);
    vPos7.y-=3.0;
    lLocal7 = Location(GetArea(oRespawner),vPos7,DIRECTION_NORTH);


    RemoveEffects(oRespawner);

    effect eEvis1 = EffectVisualEffect (VFX_IMP_REDUCE_ABILITY_SCORE);
    effect eEvis2 = EffectVisualEffect (VFX_DUR_PROTECTION_EVIL_MAJOR);
    effect eEvis3 = EffectVisualEffect (VFX_IMP_HARM);

    DelayCommand(1.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis1,lLocal));
    DelayCommand(1.2,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis2,lLocal));
    DelayCommand(1.5,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis3,lLocal));

    DelayCommand(2.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis1,lLocal3));
    DelayCommand(2.2,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis2,lLocal3));
    DelayCommand(2.5,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis3,lLocal3));

    DelayCommand(3.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis1,lLocal5));
    DelayCommand(3.2,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis2,lLocal5));
    DelayCommand(3.5,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis3,lLocal5));

    DelayCommand(4.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis1,lLocal7));
    DelayCommand(4.2,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis2,lLocal7));
    DelayCommand(4.5,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis3,lLocal7));

    effect eEvis4 = EffectVisualEffect (VFX_IMP_DIVINE_STRIKE_FIRE);
    effect eEvis5 = EffectVisualEffect (VFX_IMP_FLAME_M);

    DelayCommand(5.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis4,lLocal2));
    DelayCommand(6.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis5,lLocal2));

    DelayCommand(5.5,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis4,lLocal4));
    DelayCommand(6.5,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis5,lLocal4));

    DelayCommand(6.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis4,lLocal6));
    DelayCommand(7.0,ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eEvis5,lLocal6));


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


Pourtant tout compile et tout, donc je sais pas d'où ca vient...
_________________
Aléthéia | Ceux qui cherchent la vie trouveront la mort, ceux qui cherchent la mort trouveront la mort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger 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 66.294ms