Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > pour un script
pour un script
Par Cradle_of_Borgir le 2/8/2002 à 22:39:58 (#1902934)
Je crée un script pour transformer un PNJ en Balor( demons :p).
le probleme c ke mm en mettant correctement ce ki est demander au moment de sauvegarder jai une erreur. je donne le script
effect eEffect = EffectPolymorph(POLYMORPH_TYPE_BALOR);
object Diablo = GetObjectByTag("ct_balor");
void main()
{
ApplyEffectToObject(GetEffectDurationType(DURATION_TYPE_TEMPORARY), eEffect, "ct_balor", 10.0f);
}
J'essaye kelk script pour un module donc avant de le mettre je fais des teste mais la j'arrive a rien.
Le probleme c'est qu'aparement l'editeur n'accepte pas "DURATION_TYPE_*" quel qu'il soit, alors ke lon doit integrer une "DURATION_TYPE_*".
Alors a moins ke jai oublier de mettre une kelkonque fonctions ou variable ....... je suis un peu perdu.
HELPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP ! me plz :)
Merci d'avance
Re: pour un script
Par Azharial del'Amrhyn le 2/8/2002 à 23:33:50 (#1903410)
Provient du message de Cradle_of_Borgir
void main()
{
ApplyEffectToObject(GetEffectDurationType(DURATION_TYPE_TEMPORARY), eEffect, "ct_balor", 10.0f);
}
Essaie plutot ca :
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPolymorph(POLYMORPH_TYPE_BALOR), OBJECT_SELF, 10.0f);
Ca devrait polymorpher l'initiateur de l'évenement ;).
Par Kray le 2/8/2002 à 23:50:16 (#1903588)
void main()
Déclaration des variables hors fonction :rolleyes::p
{
effect eEffect = EffectPolymorph(POLYMORPH_TYPE_BALOR);
object Diablo = GetObjectByTag("ct_balor");
ApplyEffectToObject(GetEffectDurationType(DURATION_TYPE_TEMPORARY), eEffect, "ct_balor", 10.0f);
}
Par Azharial del'Amrhyn le 3/8/2002 à 0:01:41 (#1903681)
Provient du message de Kray
Déclaration des variables hors fonction
Sauf s'il a déclaré sa propre créature qui est taggée par "ct_balor", mais même dans ce cas, de toute facon dans ApplyEffectToObject il faut un objet et non pas un tag, ce qui devient ca si son tag est bien déclaré :
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectPolymorph(POLYMORPH_TYPE_BALOR), GetObjectByTag("ct_balor"), 10.0f);
ou encore
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, Diablo, 10.0f);
en reprenant ses déclarations préalables.
Par Kemay le 3/8/2002 à 9:43:22 (#1905410)
1. L'utilisation de GetEffectDurationType() qui prend pour paramètre un effect et non pas un integer(DURATION_TYPE_TEMPORARY). Ici en l'occurence l'utilisation de GetEffectDurationType() est inutile puisque l'on sait que l'on veut un effet temporaire.
2. La fonction ApplyEffectToObject nécessite comme l'a fait remarquer Azharial un object (Diablo) et non pas une string ("ct_blaor")void main()
{
effect eEffect = EffectPolymorph(POLYMORPH_TYPE_BALOR);
object Diablo = GetObjectByTag("ct_balor");
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEffect, Diablo,10.0f);
}
Par Cradle_of_Borgir le 3/8/2002 à 12:19:17 (#1905931)
JOL Archives 1.0.1
@ JOL / JeuxOnLine