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 20:53:07


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
mum's
Novice
Inscrit le: 07 Fév 2006
Messages: 15
Répondre en citant
Posté le : 14/02/2006 00:48:19 Sujet du message : Respawn auto arene

Bon voila j'ai cherché dans les forums mais j'ai pas trouvé de script pour respawn automatiquement à l'endroit ou le pj est mort genre arene. Quelqu'un a une idée?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Enki
Légende vivante
Inscrit le: 06 Déc 2005
Messages: 432
Répondre en citant
Posté le : 14/02/2006 09:30:28 Sujet du message :

C'est le script de base qui fait ça, pas besoin d'en faire un autre. Par contre il ne faut pas que tu ais placé un waypoint avec le tag "NW_DEATH_TEMPLE" (ou un truc du genre, je ne suis pas sûr du nom exact) qui correspond au lieu où le PJ va respawner.
voilà.
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mum's
Novice
Inscrit le: 07 Fév 2006
Messages: 15
Répondre en citant
Posté le : 14/02/2006 11:09:12 Sujet du message :

Merci mais en fait j'ai deja un lieu de respawn quand un PJ meurt moi je voudrais que le pj respawn automatiquement sans avoir l'ecran de mort qui s'affiche!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
Répondre en citant
Posté le : 14/02/2006 11:57:16 Sujet du message :

Essaye ça sur le script OnPlayerDeath du module

NWScript :
//:: Death Script
//:: NW_O0_DEATH.NSS

void main()
{
  object oDead = GetLastPlayerDied();
  object oKiller = GetLastKiller();
  // * make quite friendly to Each of the 3 common factions
  if( GetStandardFactionReputation(STANDARD_FACTION_COMMONER, oDead) < 50 ){
      SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 80, oDead);
  }
  if( GetStandardFactionReputation(STANDARD_FACTION_MERCHANT, oDead) < 50 ){
      SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, 80, oDead);
  }
  if( GetStandardFactionReputation(STANDARD_FACTION_DEFENDER, oDead) < 50 ){
      SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 80, oDead);
  }
  ClearPersonalReputation(oDead,oKiller) ; // stop PvP
  ClearPersonalReputation(oKiller,oDead) ;
  DelayCommand(4.0, ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oDead));
  DelayCommand(4.8, ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oDead)), oDead));
  if( GetHitDice(oDead)!= 1 ){
      int nXP = GetXP(oDead);
      int nLvl ;
      int nPenalty = 50 * GetHitDice(oDead);
      int nHD = GetHitDice(oDead);
      // total level
      // * 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 ; }
      nLvl=GetHitDice(oDead);
      if( nLvl > 1 ){
        SetXP(oDead, nNewXP);
        int nGoldToTake = FloatToInt(0.10 * GetGold(oDead));
        // * a cap of 10 000gp taken from you
        if( nGoldToTake > 10000 ){ nGoldToTake = 10000 ; }
        AssignCommand(oDead, TakeGoldFromCreature(nGoldToTake, oDead, TRUE));
        DelayCommand(4.0, FloatingTextStrRefOnCreature(58299, oDead, FALSE));
        DelayCommand(4.8, FloatingTextStrRefOnCreature(58300, oDead, FALSE));
      }
  }
}
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
 
mum's
Novice
Inscrit le: 07 Fév 2006
Messages: 15
Répondre en citant
Posté le : 14/02/2006 12:23:17 Sujet du message :

rooo lala ^^

Non! en fait je voudrais pas respawn automatiquement partout mais QUE dans l'arene!!!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 14/02/2006 14:41:21 Sujet du message :

NWScript :
void main()
{
object oDead = GetLastPlayerDied();

if (GetTag(GetArea(oDead)) == "TAG_DE_LARENE") //remplace par le tag de la zone de l'arene
{
    ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oDead);
    ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oDead)), oDead);
    return;
}
//suite du 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.


qulquechose comme ça à rajouter dans le OnPlayerDeath.

EDIT : je viens de rajouter le return qui me semble opportun...
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mum's
Novice
Inscrit le: 07 Fév 2006
Messages: 15
Répondre en citant
Posté le : 14/02/2006 23:16:25 Sujet du message :

Ce script me paraît bon il y a juste un défaut, il faudrait rajouter un delaycommand avant de respawn mais je ne connais pas la commande...
Tu peux le rajouter?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
Sith Vicious
Grand Sage du Conseil
Inscrit le: 19 Oct 2005
Messages: 693
Répondre en citant
Posté le : 14/02/2006 23:19:05 Sujet du message :

Ben si tu la connais la commande ^^
enfin :
NWScript :

void main()
{
object oDead = GetLastPlayerDied();
float fDelay = 5.0;
if (GetTag(GetArea(oDead)) == "TAG_DE_LARENE") //remplace par le tag de la zone de l'arene
{
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oDead));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oDead)), oDead));
return;
}
//suite du 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.


voili voilou
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
mum's
Novice
Inscrit le: 07 Fév 2006
Messages: 15
Répondre en citant
Posté le : 15/02/2006 02:48:34 Sujet du message :

Ah ben là je dis chapeau^^ et un grand MERCI !!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
metallick
Chevalier
Inscrit le: 26 Aoû 2006
Messages: 88
Répondre en citant
Posté le : 26/08/2006 19:14:40 Sujet du message :

Et sa donne quoi tout ces petits bouts ajoutés les uns aux autres?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 26/08/2006 19:28:05 Sujet du message :

ça

NWScript :
//:: Death Script
//:: NW_O0_DEATH.NSS

void main()
{
  object oDead = GetLastPlayerDied();
  float fDelay = 5.0;
  object oDead = GetLastPlayerDied();
    object oKiller = GetLastKiller();

  if (GetTag(GetArea(oDead)) == "TAG_DE_LARENE") //remplace par le tag de la zone de l'arene
    {
    DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oDead));
    DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oDead)), oDead));
    return;
    }

  // * make quite friendly to Each of the 3 common factions
  if( GetStandardFactionReputation(STANDARD_FACTION_COMMONER, oDead) < 50 )
  {
        SetStandardFactionReputation(STANDARD_FACTION_COMMONER, 80, oDead);
    }
  if( GetStandardFactionReputation(STANDARD_FACTION_MERCHANT, oDead) < 50 )
  {
        SetStandardFactionReputation(STANDARD_FACTION_MERCHANT, 80, oDead);
    }
  if( GetStandardFactionReputation(STANDARD_FACTION_DEFENDER, oDead) < 50 )
  {
        SetStandardFactionReputation(STANDARD_FACTION_DEFENDER, 80, oDead);
    }
  ClearPersonalReputation(oDead,oKiller) ; // stop PvP
  ClearPersonalReputation(oKiller,oDead) ;
  DelayCommand(4.0, ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oDead));
  DelayCommand(4.8, ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oDead)), oDead));
  if( GetHitDice(oDead)!= 1 )
  {
       int nXP = GetXP(oDead);
       int nLvl ;
       int nPenalty = 50 * GetHitDice(oDead);
       int nHD = GetHitDice(oDead);
       // total level
       // * 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 ;
       }
        nLvl=GetHitDice(oDead);
        if( nLvl > 1 )
         {
          SetXP(oDead, nNewXP);
          int nGoldToTake = FloatToInt(0.10 * GetGold(oDead));
          // * a cap of 10 000gp taken from you
               if( nGoldToTake > 10000 )
                    {
                    nGoldToTake = 10000 ;
               }
                AssignCommand(oDead, TakeGoldFromCreature(nGoldToTake, oDead, TRUE));
                DelayCommand(4.0, FloatingTextStrRefOnCreature(58299, oDead, FALSE));
                DelayCommand(4.8, FloatingTextStrRefOnCreature(58300, oDead, FALSE));
                }
        }
}
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.

_________________
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
 
metallick
Chevalier
Inscrit le: 26 Aoû 2006
Messages: 88
Répondre en citant
Posté le : 26/08/2006 19:30:36 Sujet du message :

Et pour moi, lorsque le pj est en dehors de l'arène, il respawn dans un autre endroit... et je le met ou cet autre endroit?
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 26/08/2006 19:39:51 Sujet du message :

NWScript :
void main()
{
object oDead = GetLastPlayerDied();
float fDelay = 5.0;
if (GetTag(GetArea(oDead)) == "TAG_DE_LARENE") //remplace par le tag de la zone de l'arene
{
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oDead));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oDead)), oDead));
return;
}

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


tout simplement, si tu as déjà quelque chose, met le dans l'endroit indiqué.
_________________
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
 
metallick
Chevalier
Inscrit le: 26 Aoû 2006
Messages: 88
Répondre en citant
Posté le : 26/08/2006 19:44:35 Sujet du message :

Oui, mais en fait quand le pj sera mort dans l'arène il respawnera dans l'arene et si il meurt ailleur dans le jeu... il va respawner ou???
Moi je voudrais en gros que dans l'arene il respawn dans l'arene et que n'importe ou ailleur dans le jeu, il respawn dans l'endroit prévu...
(je suis désolé j'essaye de comprendre Confused, et en général je comprends vite mais il faut m'expliquer lontemps ^^)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Ignorer l'utilisateur
 
warpShadow
Légende vivante
Inscrit le: 01 Fév 2005
Messages: 363
Localisation: Perpignan
Répondre en citant
Posté le : 26/08/2006 19:52:12 Sujet du message :

est ce que t'as déjà un script qui gère la mort et l'endroit où respawne le mort ? si oui, met le à l'endroit prévu tout simplement. sinon bha ça utilisera le truc normal de nwn.
_________________
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
 
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 63.929ms