Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > script OnActivedItem
script OnActivedItem
Par Prophet le 26/9/2002 à 18:40:04 (#2238038)
jai encore un probleme avec un script...
void main()
{
object oPc = GetItemActivator();
object oItem = GetItemActivated();
effect eArocean2 = EffectVisualEffect(VFX_DUR_GLOBE_MINOR);
effect eArocean = EffectACIncrease(4, AC_ARMOUR_ENCHANTMENT_BONUS, AC_VS_DAMAGE_TYPE_ALL);
//Coeur de l'ocean (pour l'armure)//
if (GetTag(oItem) && (GetItemPossessedBy(oPc, "armureocean")))
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eArocean2, oPc);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eArocean, oPc);
//Fait attendre 2 minute et remove leffect du coeur ocean//
DelayCommand(120.0, RemoveEffect(oPc, eArocean));
}
}
J'ai toujours l'erreur 'Logical operation has invalid operands'.
je crois que ca vien de l'utilisation du &&. alors comment faire pour tester 2 chose en meme temps?
Merci
Par Tyn' le 26/9/2002 à 19:15:32 (#2238337)
Une armure Océane dans NWN ? Tu fais une copie de T4C ?
Pasque si oui... => Althea :ange:
Sinon pour ton script :void main()
L'erreur vient du fait que GetTag retourne une valeur string, qui n'a pas de valeur booléenne. Il ne faut donc pas oublier de la comparer :)
{
object oPc = GetItemActivator();
object oItem = GetItemActivated();
effect eArocean2 = EffectVisualEffect(VFX_DUR_GLOBE_MINOR);
effect eArocean = EffectACIncrease(4, AC_ARMOUR_ENCHANTMENT_BONUS, AC_VS_DAMAGE_TYPE_ALL);
//Coeur de l'ocean (pour l'armure)//
if (GetTag(oItem) == "Tag_de_ton_coeur" && GetItemPossessedBy(oPc, "armureocean"))
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eArocean2, oPc);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eArocean, oPc);
//Fait attendre 2 minute et remove leffect du coeur ocean//
DelayCommand(120.0, RemoveEffect(oPc, eArocean));
}
}
Par Prophet le 26/9/2002 à 19:37:20 (#2238499)
Et oui je fait un module 't4c'. Je sais que deja un projet est commencer, mais se serveur va etre fermer au Roliste(doit poster un bg pour avoir un compte et tout) et personnellement j'aime pas le fait qu'un serveur soit fermer pour tel ou tel genre de personne. Je fait se module surtout pour passer le temps et me familiariser avec aurora et les script. Surtout que mon module sera *normalement* jamais jouer puisque je possede pas un Pc asser fort pour ouvrir un serveur (surtout ma connection 26k lol).
encore merci Tyn' :)
Par Prophet le 27/9/2002 à 3:00:00 (#2240733)
Lorsque je suprime la partit && GetItemPossessedBy();, le script se compile parfaitement et des que je le remet jai la meme erreur qu'au debut 'Logical operation has invalid operand'......
Par Tyn' le 27/9/2002 à 12:30:40 (#2242378)
void main()
Désolé, je m'étais arreté à la première erreur.. Voilà, là ça se compile :)
{
object oPc = GetItemActivator();
object oItem = GetItemActivated();
effect eArocean2 = EffectVisualEffect(VFX_DUR_GLOBE_MINOR);
effect eArocean = EffectACIncrease(4, AC_ARMOUR_ENCHANTMENT_BONUS, AC_VS_DAMAGE_TYPE_ALL);
//Coeur de l'ocean (pour l'armure)//
if (GetTag(oItem) == "Tag_de_ton_coeur" && GetItemPossessedBy(oPc, "armureocean") == oPc)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eArocean2, oPc);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eArocean, oPc);
//Fait attendre 2 minute et remove leffect du coeur ocean//
DelayCommand(120.0, RemoveEffect(oPc, eArocean));
}
}
JOL Archives 1.0.1
@ JOL / JeuxOnLine