La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
FAQ
Rechercher
Liste des Membres
Groupes d'utilisateurs
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
S'enregistrer Se connecter pour vérifier ses messages privés Connexion
La date/heure actuelle est 23/11/2024 20:22:12
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
Voir le sujet précédent ¤ Voir le sujet suivant | |
---|---|
Auteur | Message |
mum's Novice Messages: 15 |
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 | |
Enki Légende vivante Messages: 432 |
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 | |
mum's Novice Messages: 15 |
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 | |
lylver Héros Messages: 274 |
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)); } } } |
Revenir en haut | |
mum's Novice Messages: 15 |
rooo lala ^^
Non! en fait je voudrais pas respawn automatiquement partout mais QUE dans l'arene!!! |
Revenir en haut | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
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 } qulquechose comme ça à rajouter dans le OnPlayerDeath. EDIT : je viens de rajouter le return qui me semble opportun... |
Revenir en haut | |
mum's Novice Messages: 15 |
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 | |
Sith Vicious Grand Sage du Conseil Messages: 693 |
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 } voili voilou |
Revenir en haut | |
mum's Novice Messages: 15 |
Ah ben là je dis chapeau^^ et un grand MERCI !!
|
Revenir en haut | |
metallick Chevalier Messages: 88 |
Et sa donne quoi tout ces petits bouts ajoutés les uns aux autres?
|
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
ç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)); } } } _________________ Asphia Module RP Médiéval Fantastique pour Neverwiner Nights |
Revenir en haut | |
metallick Chevalier Messages: 88 |
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 | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
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; } } 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 | |
metallick Chevalier Messages: 88 |
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 , et en général je comprends vite mais il faut m'expliquer lontemps ^^) |
Revenir en haut | |
warpShadow Légende vivante Messages: 363 Localisation: Perpignan |
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 | |
La Bibliothèque de Neverwinter Nights Index du Forum »
La Bibliothèque Binaire du NWScript - Neverwinter Nights
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