Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

pour un script

Par Cradle_of_Borgir le 2/8/2002 à 22:39:58 (#1902934)

Bonjour,
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()
{
effect eEffect = EffectPolymorph(POLYMORPH_TYPE_BALOR);
object Diablo = GetObjectByTag("ct_balor");
ApplyEffectToObject(GetEffectDurationType(DURATION_TYPE_TEMPORARY), eEffect, "ct_balor", 10.0f);
}
Déclaration des variables hors fonction :rolleyes::p

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)

Le problème n'est pas de déclarer des fonction en dehors de main() (même si ici cela n'a pas particulièrement d'intérêt). En fait il y a 2 erreurs dans le script de Cradle.

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)

Merci pour vos reponses, d'ailleurs ca marche, mais je me suis apercu en lisant vos script ke j'avias fait une erreur, comme koi :p, en tt cas merci jai plus ka rajouter des effect et le tour est jouer :D

JOL Archives 1.0.1
@ JOL / JeuxOnLine