Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Respawn en fonction de l'alignement
Respawn en fonction de l'alignement
Par Blam le 10/8/2002 à 18:39:29 (#1944186)
J'ai besoin d'un coup de main.
on m'a aidé plus bas mais cela ne fonctionne pas
void main()
{
object oRespawner = GetLastRespawnButtonPresser();
int nAlignementLawChaos = GetAlignmentLawChaos(oRespawner);
int nAlignementGoodEvil = GetAlignmentGoodEvil(oRespawner);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectResurrection(),oRespawner);
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectHeal(GetMaxHitPoints(oRespawner)), oRespawner);
RemoveEffects(oRespawner);
// Return PC to respawn point based on alignement.
string sDestTag = "WP_";
switch (nAlignementLawChaos)
{
case ALIGNMENT_CHAOTIC:
sDestTag = sDestTag + "CHAOTIC_";
break;
case ALIGNMENT_NEUTRAL:
sDestTag = sDestTag + "NEUTRAL_";
break;
case ALIGNMENT_LAWFUL:
sDestTag = sDestTag + "LAWFUL_";
break;
}
switch (nAlignementGoodEvil)
{
case ALIGNMENT_GOOD:
sDestTag = sDestTag + "GOOD";
break;
case ALIGNMENT_NEUTRAL:
sDestTag = sDestTag + "NEUTRAL";
break;
case ALIGNMENT_EVIL:
sDestTag = sDestTag + "EVIL";
break;
}
// Apply any penalties.
ApplyPenalty(oRespawner);
object oDest = GetWaypointByTag(sDestTag);
// si le waypoint de destination n'existe pas
if (!GetIsObjectValid(oDest))
{
// utilise le waypoint par defaut
oDest = GetWaypointByTag("WP_DEFAULT_RESPAWN");
}
if (GetIsObjectValid(oDest))
{
SetLocalLocation(oRespawner, "NW_L_I_DIED_HERE", GetLocation(oRespawner));
SetLocalInt(oRespawner, "NW_L_I_DIED", 1);
AssignCommand(oRespawner,JumpToLocation(GetLocation(oDest)));
}
}
mis le script dans le
edit/scenarioproperties/events/onrespown
je l'ai appelé nw_03_respawn
Mis les waypoints suivants
WP_LAWFUL_NEUTRAL
WP_LAWFUL_GOOD
WP_LAWFUL_EVIL
WP_CHAOTIC_NEUTRAL
ect.... (tous mis) et...........rien
meme avec le WP_DEFAULT_RESPAWN
Si qqn pouvais y jetter un oeil et me dire ce qui ne vas pas...
merci
bonjour a mon mj préféré
Par Lys le 10/8/2002 à 20:04:08 (#1944385)
j'ai beaucoup aimé ta gobeline a l'entrée des grottes, elle m'a fait mourir de rire.
Le coup des deux vieux dans le module suivant est enorme.
mais il y a un probleme, dans ton temple loyal neutre les joueurs non LN se retrouvent avec les characteristiques a 3, c'est un peu lourd, non ? A part ca, toujours radin en xp :)
j'attends le 4eme scénario avec impatience
bizoux
Mouais
Par Blam le 10/8/2002 à 20:10:11 (#1944401)
Tss tss les chaotics n'ont rien a faire dans un temple principal d'une divinitée loyale neutre, non mais....
A part ca fait gaffe tu es hors sujet !!!!! et toc !
Quant au "radin" les xp poussent pas par terre (sauf chez mic....soft) Ca ne sert a rien de jouer avec des persos enormes, c'est juste bon pour les grosbills. puis un gob a 3ou 5 xp c'est bien payé !!! et toc !
Par Kemay le 10/8/2002 à 22:09:46 (#1944677)
#include "nw_i0_plot"
// * Applies an XP and GP penalty
// * to the player respawning
void ApplyPenalty(object oDead)
{
int nXP = GetXP(oDead);
int nPenalty = 50 * GetHitDice(oDead);
int nHD = GetHitDice(oDead);
// * You can not lose a level with this respawning
int nMin = ((nHD * (nHD - 1)) / 2) * 1000;
int nNewXP = nXP - nPenalty;
if (nNewXP 10000)
{
nGoldToTake = 10000;
}
AssignCommand(oDead, TakeGoldFromCreature(nGoldToTake, oDead, TRUE));
DelayCommand(4.0, FloatingTextStrRefOnCreature(58299, oDead, FALSE));
DelayCommand(4.8, FloatingTextStrRefOnCreature(58300, oDead, FALSE));
}
Genial excellent
Par Blam le 10/8/2002 à 22:27:03 (#1944694)
Je suis totalement nul en script
Mes remerciements a:
KEMAY
et
FRED
:)
Par Fed le 11/8/2002 à 19:43:20 (#1947285)
Si j'avais su qu'il s'agissait simplement de cela ... ca me paraissait tellement evident sur le coup que je n'y ai même pas penser. Chez moi, j'avais remplacé la fonction main du script nw_i0_respawn par le script que je t'avais donné, d'où la confusion...
JOL Archives 1.0.1
@ JOL / JeuxOnLine