Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > zone de non magie
zone de non magie
Par Simbule le 23/1/2003 à 17:44:53 (#3085514)
Par Azrael07 le 23/1/2003 à 18:14:15 (#3085815)
scripts editor > open > allressource > filtre : sorts
au pire tu peux mettre de nouvelles lignes dans chaques sorts.
Par Zandramas le 23/1/2003 à 18:32:24 (#3085990)
On peut pas bloquer les Pv pour ne pas descendre au dessous de 1 ? :) Ou rendre invulnérable le Pj ?
(Question subsidiaire mais qui vas ensemble : comment on peut enlever tous les effets sur un joueur par script ? (pour la sortie de la zone ;))
Ps : je parle de la même chose que Simbule :)
[Edit : en fait je voulait faire un trigger ou une fois arriver a 1Pv rendait le joueur invulnérable a tout domages puis a la sortie annuler cet effet ! Mais bon chuis pas tres bon :(]
Par Azrael07 le 23/1/2003 à 18:51:15 (#3086152)
void ClearAllEffects(object oTarget)
{
effect eEffect = GetFirstEffect(oTarget);
do
{
RemoveEffect(oTarget, eEffect);
eEffect = GetNextEffect(oTarget);
} while(GetIsEffectValid(eEffect));
}
pour l'autre question je chercherais si j'ai pas trop la flemme ^_^
Par Simbule le 23/1/2003 à 18:54:54 (#3086178)
Par Zandramas le 23/1/2003 à 18:59:42 (#3086210)
Par Zandramas le 23/1/2003 à 19:18:43 (#3086404)
void main()
{
object oPC = GetEnteringObject();
if ()
{
effect eReduction = EffectDamageReduction(int nAmount=100, int nDamagePower=100, int nLimit=0)
float fDurationTime = 0
ApplyEffectToObject (DURATION_TYPE_TEMPORARY, eReduction , oPc, fDurationTime)
}
}
Mais je sais pas quoi dans mettre dans le if ! Pour la vie ... :(
J'ai pas trouver une fonction qui rendait le Pj invulnérable :(
Donc je met une grosse réduction de damage !
Vous en penssez quoi ?
Soyez indulgent c'est mon premier script :p ...;)
[Edit : arf g virer le If .... et il ne veut pas compiler :p doit y avoir des grosses erreures :(]
Par RAT le 23/1/2003 à 20:02:21 (#3086738)
pour rendre un PJ invulnérable, essaye d'utiliser la fonction
SetPotFlag(oPC,TRUE);
voilà, en mettant à true, normalement tu le rends invul.
vous avez qu'à mettre si c'est pour toute la zone dans le onenter de la zone ce code et vous chopez le PC avec GetEnteringObject();
et après vous mettez un autre script dans le onexit,
et vous remettez le PC vulnérable avec SetPotFlag(oPC,FALSE);
pour choper un PC c'est GetExitingObject();
Bon je n'ai pas mon editeur devant moi, donc j'ai pu me gourrer vaguement dans les noms mais en gros ... :D
Par Zandramas le 23/1/2003 à 20:28:48 (#3086915)
*note le SetPotFlag*
:))
*fonce sur Aurora*
Par Zandramas le 23/1/2003 à 21:11:31 (#3087284)
Mais :p *est chiant :p* Si je veut tester la vie d'un personnage (pour que sa se déclenche quand le perso arrive a par exemple 5 pvs) je sais pas quoi mettre pour faire sa :(
Par Azrael07 le 23/1/2003 à 21:40:32 (#3087507)
void main()
{
object oPC = GetEnteringObject();
effect eReduction = EffectDamageReduction(int nAmount=100, int nDamagePower=100, int nLimit=0);
float fDurationTime = 0;
ApplyEffectToObject (DURATION_TYPE_TEMPORARY, eReduction , oPc, fDurationTime);
}
un script marche bcp mieux avec les ; derrières chaques instructions ;)
Par Simbule le 23/1/2003 à 22:46:19 (#3087891)
[HS]
Par Azrael07 le 23/1/2003 à 23:42:07 (#3088188)
c la rancon du succet, etpis au moins quand je joue pas je scripte et mon module avance ^^
Par Zandramas le 24/1/2003 à 15:08:17 (#3091647)
Merci en tout cas ! :)
*vas se rappeler pour les ;*Si je veut tester la vie d'un personnage (pour que sa se déclenche quand le perso arrive a par exemple 5 pvs) je sais pas quoi mettre pour faire sa :(
:D
Par Zandramas le 24/1/2003 à 17:53:14 (#3092775)
void main()
{
object oTarget=GetEnteringObject();
int nHP = GetCurrentHitPoints(oTarget);
if (nHP<=5)
{
SetPlotFlag(oTarget,TRUE);
}
if (nHP<=0)
{
SpeakString ("L'energie magique contenue dans la salle vous soigne !");
ApplyEffectToObject (DURATION_TYPE_INSTANT,EffectHeal (GetMaxHitPoints(oTarget)),oTarget);
}
}
Par Azrael07 le 24/1/2003 à 18:10:58 (#3092899)
sinon tu peux faire un truc toi meme, genre un script qui s'autoexecute toutes les secondes si quelqu'un est dans la zone
genre :
void main()
{
object oArea = OBJECT_SELF;
object oPlayer = GetFirstPC();
do
{
if(GetArea(oPlayer) == oArea && /*fonction qui donne de la vie je m'en souviens plus ^_^*/ )
{
//Ton script
}
oPlayer = GetNextPC();
} while(GetIsObjectValid(oPlayer));
DelayCommand(1.0f, ExecuteScript("NOM_DU_SCRIPT", oArea));
}
voila, y'a peut etre une solution plus simple, mais ca devrais marcher comme ca, enfin le problème est toujours que c'est teste que tout les 1s (la valeur peut encore etre baissée mais gare aux resources ;) )
Par Megilindir le 24/1/2003 à 18:45:24 (#3093109)
Si le perso meurt, les conditions peuvent s'appliquer à lui ?
Pour la deuxième condition, ça donnerait quoi si on mettait résurrection au lieu de guérison ?
Par Zandramas le 24/1/2003 à 18:49:22 (#3093128)
@Meg : Ouais faire renaitre une fois mort sa peut se faire :) J'utiliserais sa en dernier recours :p Parceque le but noralement c'est que le Pj ne meurt pas !
(au cas ou je met le Pj invincible des qu'il rentre et puis voila !)
Par Florin le 24/1/2003 à 18:53:49 (#3093158)
Par Zandramas le 24/1/2003 à 20:55:15 (#3093930)
JOL Archives 1.0.1
@ JOL / JeuxOnLine