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


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Tzar
Voyageur
Inscrit le: 14 Sep 2005
Messages: 3
Répondre en citant
Posté le : 14/09/2005 16:44:14 Sujet du message : Script de PJ Mourrant, pour ceux qui veulent

En lisant certain post j'ais vu qu'il y avait des personnes qui rencontaient des problèmes pour avoir un script de PJ mourant. Donc voila celui que j'utilise pour ceux qui veulent.

Dans le cadre de mon module il convient bien : Les Pjs n'ont qu'une seule vie. Ce script fait :

- Pj est mourrant règle façon D&D à la différence que j'ai augmenté les chance de stabilisation à 20% et que le Pj perd 1Pv toutes les 15 secondes (vu qu'il n'y a qu'une seule vie il faut laisser plus de chance aux joueurs).

- Dès que le PJ est mourant il perd 50 xp par niveau.

- Dès que le Pj est mourrant toutes les créatures arrêtent de l'attaquer.

Tous ces paramètres sont modifiables.
Voilà le script à mettre dans le Onplayerdying du module :
...........................................................................................

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 = "Etat stable";

        //creates words over the PC's head that tells those around
        //him/her what current HP levels are
        string sDying = GetName(oPC) +
                " succombe " +
                IntToString(hp)+ " points de vie";
        AssignCommand(oPC,FloatingTextStringOnCreature(sDying, oPC));

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

            //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(15.0, bleed(oPC, eDamage));
        }
    }
}
void main()
{
    object oPlayerDying = GetLastPlayerDying();
    int nXP = GetXP(oPlayerDying);
    int nPenalty = 50 * GetHitDice(oPlayerDying);
    int nHD = GetHitDice(oPlayerDying);
    // * You can not lose a level with this respawning
    int nMin = ((nHD * (nHD - 1)) / 2) * 1000;

    int nNewXP = nXP - nPenalty;
    if (nNewXP < nMin)
      nNewXP = nMin;
    SetXP(oPlayerDying, nNewXP);

    object oAttacker = GetLastAttacker(oPlayerDying);
    int iHPs = GetCurrentHitPoints(oPlayerDying);
    effect eSanctuary = EffectSanctuary(99);
  //grabs the player character that is dying
    object oPC = GetLastPlayerDying();
    effect eDamage = EffectDamage(1, DAMAGE_TYPE_MAGICAL, DAMAGE_POWER_PLUS_FIVE);
DelayCommand(15.0, bleed(oPC, eDamage));
    if (iHPs >= -9)
    {
    SetPCLike(oPlayerDying, oAttacker);
        ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eSanctuary, oPlayerDying, 10.0);
            }
}
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é Ignorer l'utilisateur
 
finipe
Grand Sage du Conseil
Inscrit le: 11 Fév 2003
Messages: 519
Localisation: Nantes
Répondre en citant
Posté le : 14/09/2005 21:59:24 Sujet du message :

Même chose que pour PinMaster l'autre fois, n'hésite pas à mettre ce topic à la suite du post-it Vos scripts, sinon ton post va descendre dans les limbes du forum et il sera impossible de retrouver l'info ensuite.
_________________
» Le Tref & l'Aucube : Histoire, misanthropie & zoologie léonine
» 1626, le Gant & l'Epée : intrigues & duels sous le règne de Louis XIII
 
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 67.961ms