La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 03/05/2025 16:06:03


  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 : 24/12/2005 17:48:10 Sujet du message : Quelques gros scripts

Bon, comme le dit le titre : Je cherche quelques gros script, ainsi que quelques petits ...

1er script : faire de "vrai" forgeron ; je m'explique, lorsqu'on fait un dialogue pour un forgeron, qu'il propose de regarder son inventaire (avec ouverture par script, mais ca je sais le faire)
ou il propose de faire une arme, armure ... et qu'on choisit toutes les caracs de l'arme, le nom, ect ... (si c'est pas assez clair dites moi)

2eme script : lorsque l'on meur, on ne peut pas tomber plus bas que -10 pvs, mais on est pas tout a fait mort, on tombe dans un coma profond. Toutes les 5 secondes il y a un test de vigeur a faire pour revenir en vie (avec une assez grosse DD de 55 environ). On perd 1 pv toutes les 5 secondes, arrive a -60 pvs, on meur. lorsque l'on est pas encore arrive a -60 pvs, quand qq vient pour rez, il n'y a pas besoin d'utiliser de parchemin de rez ou de sort, seulement des soins ... a -60, c'est des rez. (meme si l'on est pas arrive a -60 pvs, possibilite de rez tout de meme, c'est embetant si l'on est tout seul ^^).

3eme script (assez simple pour certain ^^) : comment faire un mercenaire ...

4eme script : avec le hak.nic, quel est le script pour pouvoir chevaucher un cheval ?

5eme script : potion pour transformer un pnj en nain.

Je mettrais d'autres scripts a faire apres ... si c'est pas possible a faire un des scripts que je demande, dites moi Smile

@+, Mork

(p.s. : joyeux noel a tous !)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Léviathan
Grand Sage du Conseil
Inscrit le: 11 Mar 2003
Messages: 671
Localisation: Sigil
Répondre en citant
Posté le : 25/12/2005 19:49:04 Sujet du message :

Moi je voudrai une grande assiette de crudité, une peperoni pizza, une salade normande, du roquefort et une mousse au chocolat.

(ouais je sais, je l'ai déjà faite...)
_________________
Forum Planescape NWN
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger Ignorer l'utilisateur
 
Ivellios
Légende vivante
Inscrit le: 25 Jan 2005
Messages: 447
Localisation: Poitiers
Répondre en citant
Posté le : 25/12/2005 21:14:56 Sujet du message :

Ce sera la même chose pour moi (t'es trop sympa de payer l'addition)
_________________
Scripts, systèmes, fonctions,... c'est par ici...
Pyjama pour castor, une vocation, un avenir sûr
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 : 26/12/2005 11:00:51 Sujet du message :

Pareil sauf qu'il faudrait enlever le roquefort et remplacer la mousse au chocolat par une damme blanche ..................
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 26/12/2005 12:09:38 Sujet du message :

pour faire un mercenaire, tu peux suivre les indications ici Wink

http://www.system-tek.com/nwinter/nwn/editeur/mercenaire.php

voilou.


pour transofmer un pnj en nain, euh... je sais pas si on peut changer l'apparence d'un pnj en cours de jeu. sinon, il faudrait donner un tag precis à la potion, et faire un script qui fasse en sorte qu'au moment ou la potion est utilisé, le pnj soit détruit, et qu'un pnj du même nom avec les même fringues soit placé à la place de l'autre (ce qui signifie que tu les a tous les deux préparés sous aurora.

je peux pas faire mieux, désolé
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
mork
Seigneur
Inscrit le: 12 Aoû 2005
Messages: 205
Localisation: A landeda, pres de brest
Répondre en citant
Posté le : 26/12/2005 17:52:12 Sujet du message :

Ok, merci.
Pour les memes fringues pour le pnj nain (ou demi-orque, je sais pas trop encore ^^)... ca risque d'etre dur, car le premier pnj est un nain (ou un demi-orque) ensorceleur pas doue qui s'est transforme en poule ... Very Happy
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 26/12/2005 22:54:21 Sujet du message :


mork a écrit :
Ok, merci.
Pour les memes fringues pour le pnj nain (ou demi-orque, je sais pas trop encore ^^)... ca risque d'etre dur, car le premier pnj est un nain (ou un demi-orque) ensorceleur pas doue qui s'est transforme en poule ... Very Happy
logiquement, il devrait se retrouver à ôil donc ^^ mais ça n'empeche pas, le nain peut avoir des vetements sur lui, et la poule non (qui ira fouiller les poches d'une poule pour savoir si elle a des vetements ? Laughing)
_________________
Asphia
Module RP Médiéval Fantastique pour Neverwiner Nights
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Léviathan
Grand Sage du Conseil
Inscrit le: 11 Mar 2003
Messages: 671
Localisation: Sigil
Répondre en citant
Posté le : 27/12/2005 01:53:31 Sujet du message :


Citation :
(t'es trop sympa de payer l'addition)
De rien, c'est normal. J'offre une tournée générale !
_________________
Forum Planescape NWN
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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 : 27/12/2005 12:55:02 Sujet du message :


warpShadow a écrit :

mork a écrit :
Ok, merci.
Pour les memes fringues pour le pnj nain (ou demi-orque, je sais pas trop encore ^^)... ca risque d'etre dur, car le premier pnj est un nain (ou un demi-orque) ensorceleur pas doue qui s'est transforme en poule ... Very Happy
logiquement, il devrait se retrouver à ôil donc ^^ mais ça n'empeche pas, le nain peut avoir des vetements sur lui, et la poule non (qui ira fouiller les poches d'une poule pour savoir si elle a des vetements ? Laughing)
Lol, non c'est vrai que personne ne penserer fouiller une poule ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 27/12/2005 14:48:33 Sujet du message :

pour le forgeron : tu peux aller voir dans le module 3 de la campagne et exporter la créature avec ce ResRef : m3q1a08silv
ainsi que tout son environnement.
Il s'agit de Cromwell/Barun le forgeron du puit de Béoruna.

Tu peux également venir voir sur le TN Bouchon 2 pour voir si notre adaptation t'intéresse.
Je veux bien exporter tout le fourbi (la zone) mais faudrait être sûr que c'est ça que tu veux car il y a pas mal de scripts malgrés tout (une heure de taf pour tout vérifier)
 
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 : 27/12/2005 20:13:54 Sujet du message :

Ok, merci, je vais voir si je trouve le module trois de la campagne car je l'ai jamais faite, si tu pouvais me dire ou se trouve le module ce serait sympas, merci.
Je verais pour la zone de TN (je suis jamais alle sur ce serveur Confused)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 28/12/2005 12:18:17 Sujet du message : Mais où est donc ornicar ?

Bonjour Mork, Le module que u cherches est dans le repertoire suivant :
\NeverwinterNights\NWN\nwm : il s'appelle "Chapter3.nwm". Tu en fais une copie, que tu place dans le répertoire \NeverwinterNights\NWN\modules, tu le renomes en Chapter3.mod, et voilà !

Pour transformer un PJ en nain par une potion, tu créés d'abord une potion que tu appelles Nanisme (ou ce que tu veux), avec comme propriété :pouvoir unique > sur soi uniquement, mais dont le tag doit impérativement être "nanisme",(tout en minuscules) puis tu places ce script dans le OnActivateItem du module :
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.


Enfin, tu compiles un script que tu dois impérativement appeler "nanisme" également, que voici :
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.

Le nain a alors toutes les caractéristiques ainsi que les armes et armures de ton PJ précédent.
IL y a cependant 2 problèmes, le premier, c'est que selon la tête de ton PJ, le nain se retrouve sans tête, cela semble être un bug du jeu, (si tu utilises le CEP, ce Bug disparaitra peut-être), le deuxième c'est que le PJ reste un nain pour toujours. On peut le retransformer (j'ai la solution) mais comme tu ne précisais pas de durée ou l'utilisation d'une autre potion ou d'un sort je n'ai rien rajouté.
En outre, (je viens de relire ton post), si c'est un PNJ et pas un PJ que tu veux transformer, va voir mon post "Script pour qu'un PNJ utilise un pouvoir unique."
Voilà, j'espère que ça t'a aidé.
 
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 : 28/12/2005 20:15:14 Sujet du message :

D'accord, merci (pour eviter qu'il n'ai pas de tete, je mettrais totu simplement un casque ^^)
Oui, ca va m'aider, merci ^^
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 29/12/2005 01:04:48 Sujet du message : Agoniser :

Bonsoir Mork,
Pour ton deuxième script, je ne sais pas si c'est possible, en revanche, il me semble possible de faire tomber dans le coma un perso qui a par exemple + 20 points de vie, et de lui faire perdre progressivement 1 point de vie s'il ne réussi pas son jet de vigueur toute les 5 secondes. Le perso pourrait alors être soigné jusqu'à - 10 points de vie, et après il faudra le ressusciter.
Si cela te convient, je peux essayer de voir.
 
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 : 29/12/2005 11:37:34 Sujet du message :

Salut Enki,

tout d'abord merci pour tes reponses, pour le script n°2 j'avais vu il y a quelques jours ce script, mais il compile pas et j'y comprends rien .... (je suis nul en script ^^) :

NWScript :
void dying(object oDying, effect eSaigner)
{
    int nPv = GetCurrentHitPoints(oDying);
    if(nPv <= -10)
    {
    effect eMort = EffectDeath(FALSE, FALSE);
    SpeakString("Vous etes mort.");
    PlayVoiceChat(VOICE_CHAT_DEATH, oDying);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eMort, oDying);
    return;
    }
    if (oDying != OBJECT_INVALID && nPv < 0 && nPv > -10)
    {
    effect eAntiDmg = EffectDamageImmunityDecrease(DAMAGE_TYPE_MAGICAL, 100);
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAntiDmg, oDying, 1.0);
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eSaigner, oDying);
    SendMessageToPC(oDying, "Vous sombrez dans l'inconscience.");
    PlayVoiceChat(VOICE_CHAT_NEARDEATH, oDying);
    int nStvig = FortitudeSave(oDying, 15);
    int nChanceStab;
    switch(nStvig)
    {
      case 0:
          nChanceStab = d10(1);
          break;
      case 1:
          nChanceStab = d6(1);
          break;
      default:
          nChanceStab = d10(1);
          break;
    }
    if(nChanceStab <= 1)
    {
      int nBonusCon = GetAbilityModifier(ABILITY_CONSTITUTION, oDying);
      int nStabilise = (nBonusCon + 1);
      SendMessageToPC(oDying, "Vous etes stabilise.");
      effect eStabilise = EffectHeal(nStabilise);
    }
    else
    {
      DelayCommand(6.0, dying(oDying, eSaigner));
    }
    }
}

void main()
{
    object oDying = GetLastPlayerDying();
    effect eSaigner = EffectDamage(1);
    PlayVoiceChat(VOICE_CHAT_HEALME, oDying);
    DelayCommand(6.0, dying(oDying, eSaigner));
}


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.


Ou celui la mais je le trouve pas rp a cause du "I am at x pvs" ou un truc du genre.

NWScript :

void bleed(object oPC, effect eDamage)
{
    //checks to be sure the PC is between -1 and -9 hit points
    if (oPC != OBJECT_INVALID &&
        GetCurrentHitPoints(oPC) < 0 &&
        GetCurrentHitPoints(oPC) > -10){

        //actually applies the damage
        ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oPC);
        int hp = GetCurrentHitPoints(oPC);
        int nResult = d100(1);

        //words that are spoken when character stabilizes
        string sStabilized = "The bleeding has stopped!!";

        //creates words over the PC's head that tells those around
        //him/her what current HP levels are
        string sDying = GetName(oPC) +
                ": Help me! I'm at " +
                IntToString(hp)+ " hit points!";
        AssignCommand(oPC,FloatingTextStringOnCreature(sDying, oPC));

        //checks for self recovery
        if (nResult <= 10){

            //if successful, tells the PC they've recovered and exits
            //out of the function
            AssignCommand(oPC,FloatingTextStringOnCreature(sStabilized, oPC));
        }
        else {

            //recursive statement to continue the loop until -10 hit
            //points or recovery is attained
            DelayCommand(6.0, bleed(oPC, eDamage));
        }
    }
}

void main()
{
    //grabs the player character that is dying
    object oPC = GetLastPlayerDying();
    effect eDamage = EffectDamage(1, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_PLUS_FIVE);

    //initiates the recursive function "bleed()"
    DelayCommand(6.0, bleed(oPC, eDamage));
}

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.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 29/12/2005 11:46:04 Sujet du message : A mort !

Bonjour,
Je ne connaissais pas ces scripts, je vais les regarder et voir ce que l'on peut en faire.
Par contre, est-ce que la solution que je proposais dans mon précédent message te convient ?
 
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 : 29/12/2005 12:38:29 Sujet du message :

Oui, ca reviendra au meme si tu peux mettre avec -1 pv toutes les 6 secondes Very Happy (source des deux autres scripts : http://forums.jeuxonline.info/showthread.php?threadid=127079) il y a pas mal de scripts interresant, mais certains marchent pas ^^.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 31/12/2005 16:16:50 Sujet du message : Ca marche presque !

Bonjour Mork,
J'ai essayer de faire un script pour ton deuxième problème, et j'y suis presque arrivé.
Le problème c'est que je ne connais pas le script de Bioware où il est dit qu'un PJ meurt à 0 Point de vie. Alors je te propose une solution alternative, c'est de faire tomber tes PJ dans le coma à partir de + 60 PV. Là, ils font toutes les 6 secondes un test de vigueur ( DD 55, ce qui est énorme à mon avis, mais c'est toi qui l'a voulu !), s'il rate, il perd un point de vie, jusqu'à ce qu'il meurre. J'ai rajouté un effet de saignement (c'est plus réaliste) à chaque fois qu'un PJ perd un point de vie. Le problème, c'est qu'il faudrait créer une fonction à mettre sur le OnClientEnter de ton module pour augmenter de 60 PV tous les joueurs qui se connectent ( Un genre de : SetMaxHitPoint) . Et ça, je n'ai pas réussi à le faire.
Dans tous les cas, voici le script en question, à mettre sur le OnHeartBeat du module et à tester en multi. Il marche très bien avec un seul PJ. Mais comme le HeartBeat est gourmand en ressource (selon la puissance de ton PC tu verras bien), il faut voir si cela ne ralenti pas trop le jeu à plusieurs. Je ne crois pas, mais il faut vérifier.

Voici le script :

NWScript :
void PlayDead()
{
    int nResult = FortitudeSave(OBJECT_SELF, 55, SAVING_THROW_TYPE_NONE, OBJECT_SELF);
    int iPV=GetCurrentHitPoints();
    string sPV=IntToString(iPV);

    ClearAllActions(TRUE);
    ActionDoCommand(PlayVoiceChat(VOICE_CHAT_HELP));
    ActionPlayAnimation(ANIMATION_LOOPING_DEAD_BACK,1.0,250.0);
    //ApplyEffectToObject(DURATION _TYPE_INSTANT, eDam, OBJECT_SELF);
    SetCommandable(FALSE);

    if (nResult !=FALSE)
        {
        SpeakString("" );
        SetLocalInt(OBJECT_SELF,"mourrant",1);
        }
}

/*void BleedAllPC(object oPC);

void BleedAllPC(object oPC)
{
  object oPC = GetFirstPC();

  while(GetIsObjectValid(oPC))
            {
            PlayDead();
            oPC = GetNextPC();
            }

}

*/

#include "NW_I0_GENERIC"
void main()
{

    object oPC = GetFirstPC();
    effect eDam = EffectDamage(1, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_NORMAL);
    effect eVis = EffectVisualEffect( VFX_COM_BLOOD_CRT_RED);
    effect eSaigne = EffectLinkEffects(eDam,eVis);
    int iPV=GetCurrentHitPoints(oPC);
    string sPV=IntToString(iPV);






      while(GetIsObjectValid(oPC))
            {

          if (GetCurrentHitPoints(oPC)<=60 &&
            GetLocalInt(oPC,"mourrant")==1)
            {
            SetCommandable(FALSE,oPC);

                }

      else if (GetCurrentHitPoints(oPC)<=60 &&
            GetLocalInt(oPC,"mourrant")!=1)
            {
          AssignCommand(oPC, PlayDead());

            ApplyEffectToObject(DURATION_TYPE_INSTANT, eSaigne, oPC);
            AssignCommand(oPC,SpeakString("il me reste " + sPV + " points de vie" ));
            SetLocalInt(oPC,"NW_DO_ONCE",1);
                }

        else if (GetCurrentHitPoints(oPC)>=60)
        {
            if (GetLocalInt(oPC,"NW_DO_ONCE") != 1)
                {
                  return;
                  // SetLocalInt(OBJECT_SELF," NW_DO_ONCE",0);
                }

              SetLocalInt(oPC,"NW_DO_ONCE",0);
              SetLocalInt(oPC,"mourrant",0);
              SetCommandable(TRUE,oPC);
              AssignCommand(oPC, ClearAllActions(FALSE));
              AssignCommand(oPC,ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD,1.0));
              AssignCommand(oPC,DetermineCombatRound());
                  }
                  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.



Si tu veux que les PNJ réagissent également ainsi, Il faut mettre le script suivant dans le OnUserDefined de chaque PNJ.

NWScript :
#include "NW_I0_GENERIC"
void PlayDead()
{
    int nResult = FortitudeSave(OBJECT_SELF, 55, SAVING_THROW_TYPE_NONE, OBJECT_SELF);
    int iPV=GetCurrentHitPoints();
    string sPV=IntToString(iPV);

    ClearAllActions(TRUE);
    ActionDoCommand(PlayVoiceChat(VOICE_CHAT_HELP));
    ActionPlayAnimation(ANIMATION_LOOPING_DEAD_BACK,1.0,250.0);
    //ApplyEffectToObject(DURATION _TYPE_INSTANT, eDam, OBJECT_SELF);
    SetCommandable(FALSE);

    if (nResult !=FALSE)
        {
        SpeakString("" );
        SetLocalInt(OBJECT_SELF,"mourrant",1);
        }
}

void main()
{
    int nUser = GetUserDefinedEventNumber();
    object oPC = OBJECT_SELF;
    effect eDam = EffectDamage(1, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_NORMAL);
    effect eVis = EffectVisualEffect( VFX_COM_BLOOD_CRT_RED);
    effect eSaigne = EffectLinkEffects(eDam,eVis);

    int iPV=GetCurrentHitPoints();
    string sPV=IntToString(iPV);



  if(nUser == 1001) //HEARTBEAT
    {
        if (GetCurrentHitPoints()<=60 &&
            GetLocalInt(OBJECT_SELF,"mourrant")==1)
            {
            SetCommandable(FALSE);

                }

      else if (GetCurrentHitPoints()<=60 &&
            GetLocalInt(OBJECT_SELF,"mourrant")!=1)
            {
            PlayDead();

            ApplyEffectToObject(DURATION_TYPE_INSTANT, eSaigne, OBJECT_SELF);
            SpeakString("il me reste " + sPV + " points de vie" );
            SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
                }

        else if (GetCurrentHitPoints()>=60)
        {
            if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 1)
                {
                  return;
                  // SetLocalInt(OBJECT_SELF," NW_DO_ONCE",0);
                }

              SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",0);
              SetLocalInt(OBJECT_SELF,"mourrant",0);
              SetCommandable(TRUE);
              ClearAllActions(FALSE);

              ActionPlayAnimation(ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD,1.0);
              DetermineCombatRound();
        }



    }


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



Cela peut te permettre de le tester tout seul chez toi si tu n'as qu'un PC.

N'oublie pas de rajouter cette ligne dans le script OnSpawn de chaque PNJ également :




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.


Voilà, et si tu trouves (toi ou quelqu'un d'autre voyant ce post) la fonction SetMaxHitPoint, fais-le moi savoir,
A bientôt !
 
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 : 31/12/2005 22:43:33 Sujet du message :

Bonsoir Enki.
Merci pour ton script,
Le seul probleme c'est que de tomber dans le comma a +60 pvs je trouve ca asser "baleze".
Je crois que sur les deux autres scripts on s'arrete a 0 pv, je suis pas sur. Il faudrait que je teste.
Je te tiens au courant.

Mork (bonne nannée)
 
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 : 31/12/2005 22:55:36 Sujet du message : Marche mal ...

Ca marche mal ...
1ere chose : lorsque le pj dit "il me reste x pvs", je trouve que ca fait pas trop rp (et puis il y a un petit probleme : il y a 1 point de vie de decalage, lorsque je suis a 13 pvs, ils me mettre que je suis a 14 pvs ...)
Ensuite arrive a 0 pv, je tombe de suite a -11 pvs et apres j'en perds plus ...
Crying or Very sad
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 02/01/2006 03:22:35 Sujet du message : Ce n'est qu'une pré-version

Bonne année Mork,
Effectivement, le "il me reste x points de vie" n'est pas beau et en plus décalé, mais sa fonction était de vérifier que le script marchait bien, je l'ai d'abord testé sur un PNJ, et donc je ne savais pas s'il perdait vraiment 1 points de vie par round. Le décalage vient du Heartbeat, on n'y peut rien, mais cela importe peu, je pense.

Je me permets de te citer, car je trouve tes remarques intéressantes :


Citation :
Pour le coma à +60 pvs, je trouve que ça peu apporter certains problemes, je m'explique :
Un prêtre lance mise à mal : le pj se retrouve à 1d4 pvs, donc il lui reste plus beaucoup de temps à vivre...
Je vais essayer de chercher un script ou demander si quelqu'un en a pas un qui arrete les pvs à 0 pvs et ensuite fait tomber dans le coma avec -1 pv si le jet de volonté est raté (je baisse à 18 en DD, car 55 je viens de me rendre compte que personne n'y arrivera ^^, et que si l'on reussi son jet avec moins de 20 (sur le jet) on gagne 1 pv, et si l'on reussi son jet avec plus de 20, on gagne 2 pvs jusqu'a ce que l'on arrive a 0 pv, si le test est loupé ben on perd un pv, normal, et si il est reussi, le pj regagne 10% de ses pvs ...
Le problème que tu soulèves concernant le sort de mise à mal est très juste, je ne connaissais pas les détails de ce sort.

Donc la solution que je te proposais me semble devoir être définitivement abandonnée ...

Par contre, si tu aimes bien le principe du sang qui coule à chaque jet raté (comme une blessure ouverte), et du coma pre-mortem, on peut faire une sorte de compromis. Pour récupérer un pt de vie ou deux en fonction du résultat du jet de vigueur, (ou de volonté, peut importe) c'est trés simple à faire.
Il y a cependant un petit problème.
Si j'ai bien compris comment marche le jeu sur les quetions de mort (en fait je ne m'étais jamais posé la question), lorsqu'un joueur atteint 0 pt de vie, il est "mort" mais peut être ressuscité, lorsqu'il atteint - 10, il doit respawner ou charger la partie.

Or, dans ton premier post, tu semblais vouloir que l'on puisse soigner entre 0 et - 60 Pts de vie, et ressusciter le joueur en dessous de -60. Cela semble impossible, à moins de trouver le fichier (s'il existe) qui fixe cette règle et de pouvoir le modifier (rien n'est moins sûr). C'est pour cela que j'avais pensé à un coma à +60, mais on a vue que cela soulevait trop de problèmes. Par contre, dans le message que tu m'as envoyé et que je cite, il ne semble plus être question de soins avant une mort définitive. Donc ce que tu veux faire est peut-être possible, mais plus simple par certains cotés (on peut faire avec des valeurs négatives), et plus compliquer par d'autres (il y a davantage de conditions, mais bon ce n'est pas l'horreur). En fait ce qui m'ennuie le plus c'est deux choses :
- D'une part il faut que les dégats portés sur les joueurs soient faibles, ex : Un joueur a + 5 pt de vie, il reçoit un coup un peu fort ou disons deux coup s'il se bat contre deux adversaires, il tombe à - 15 directement, le jeu s'arrête pour lui, sans passer par la case "coma".
- D'autre part, une fois qu'il est à terre, s'il se bat contre un PNJ, le PNJ l'achèvera sans état d'âme, d'autant que les fonctions du genre SurrenderToEnnemy ne marchent pas avec les joueurs, et s'il se bat contre un autre joueur, celui-ci devra posseder de très bons reflexes et un grand sens de l'observation (même s'il possède la meilleure volonté du monde) pour empêcher son avatar pixelisé de continuer la sale besogne...
Donc au final, je me demande si cela vaut vraiment le coup "que Ducros il se décarcasse".
A toi de voir, dis moi ce que tu en penses. Mais sâche que ce que tu demandes dans ton dernier message reste possible.
Voilà, à bientôt.
 
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 : 02/01/2006 18:03:39 Sujet du message :

Salut,
En fait ce que je pensais c'ete toujours que l'on puisse soigner le pj avant qu'il arrive a -10 pvs, et qu'ensuite il puisse rezpawm, j'avais deja vu ca dans un serveur, l'Herberie je crois qui fonctionnait comme ca ... et les pnjs attaquaient pas le pj
Si ce n'est pas possible a faire tant pis, moi j'y connais rien en script donc je n'ai aucune idée Confused .
@ +
Mork
 
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 97.331ms