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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Probleme d'effet visuel sur PJ

Par Zatournavus le 19/1/2003 à 21:45:38 (#3056077)

Ce probleme et étrange, dans mon module je souhaite appliquer EffectVisualEffect(39) a mon PJ dès qu'il entre dans le module. Sauf que l'effet est considéré comme invalide, que ce soit sur le OnModuleLoad, OnClientEnter, ou meme le OnEnter d'un zone. (avec ou sans délai d'attente)
Pourtant, EffectKnockDown() fonctionne sur le OnClientEnter, alors pourquoi les effets visuels non ?

Par RAT le 19/1/2003 à 22:59:28 (#3056527)

Hmmm tu es sur de ton 39 ??? car là, on dirait qu'il dit que cet effet n'existe pas en fait.

Par Darkmore le 20/1/2003 à 0:36:28 (#3057116)

Ben pourtant d'après nwscript :

int VFX_FNF_WAIL_O_BANSHEES = 39 ;

:doute:
ça fait une jolie anime si je me souviesn bien d'une forme/banshee montant au ciel avant de hurler (eh oui)
Peut être un erreur dans le script mais difficile de juger sans plus d'infos
:merci:

Par RAT le 20/1/2003 à 2:58:18 (#3057663)

Ba c'est space pourtant car si on suit ce que dit le résultat du script c'est que l'effet n'existe pas :).

C'est étrange mais je suis à 100% d'accord qu'il nous faudrait plus d'info.

Par eMRaistlin le 20/1/2003 à 9:48:18 (#3058394)

Et si tu essayait avec un delaycommand ?


(PS : comment vous obtenez le "Sauf que l'effet est considéré comme invalide" ??? Pour moi, l'effet se declenche... c'est juste qu'il attends pas que tu ai le visuel...)

Au pire, merci de poster ton scipt pour que l'on consulte et que l'on t'aide... ;)

Par Zatournavus le 20/1/2003 à 17:43:11 (#3061710)

Voci le script que je met dans OnClientEnter :

void main()
{
object oPC = GetEnteringObject();
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectKnockdown(),oPC,30.0f); //l'effet knockdown marche nickel
effect ef39 = EffectVisualEffect(39); //effet qui existe, j'en suis sur
if(GetIsEffectValid(ef39))
{
ApplyEffectToObject(1,ef39,oPC,2.0f);
SendMessageToPC(oPC,"debug perso : ok");
}
else
SendMessageToPC(oPC,"debug perso : raté");

}


Sauf que ca marche pas, et je vois systématiquement "debug perso : raté", donc l'effet n'es pas arrivé valide
J'ai beau rajouter un ActionWait au début, ca ne change rien :/

Par eMRaistlin le 20/1/2003 à 17:59:00 (#3061850)

ActionWait ne sert a rien si c'est pour decaler une commande...


void main()
{
object oPC = GetEnteringObject();
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectKnockdown(),oPC,30.0f); //l'effet knockdown marche nickel
effect ef39 = EffectVisualEffect(39); //effet qui existe, j'en suis sur
if (GetIsEffectValid(ef39))
{
DelayCommand(10.0,ApplyEffectToObject(1,ef39,oPC,2.0));
DelayCommand(10.0,SendMessageToPC(oPC,"debug perso : ok"));
}
else (!GetIsEffectValid(ef39))
DelayCommand(10.0,SendMessageToPC(oPC,"debug perso : raté"));

}


Essaye ca...

PS : si ca marche pas, essaye ca, mais je prefererait que tu teste le script du dessus, et que tu me dise ce que ca donne...


void main()
{
object oPC = GetEnteringObject();
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectKnockdown(),oPC,30.0f); //l'effet knockdown marche nickel
effect ef39 = EffectVisualEffect(39); //effet qui existe, j'en suis sur
if (GetIsEffectValid(ef39))
{
DelayCommand(10.0,ApplyEffectAtLocation(1,ef39,GetLocation(oPC),2.0));
DelayCommand(10.0,SendMessageToPC(oPC,"debug perso : ok"));
}
else (!GetIsEffectValid(ef39))
DelayCommand(10.0,SendMessageToPC(oPC,"debug perso : raté"));

}


PPS : A noter que ca ne sert a rien de modifier le temps de "duration" d'un impact (VFX_IMP...)

Par Zatournavus le 20/1/2003 à 18:29:28 (#3062123)

Il semble que le probleme n'était pas bien ciblé, c'est la commande "effect ef39 = EffectVisualEffect(39);" qui pose probleme, pas le reste. Quand je teste ef39 avec le if(GetIsEffectValid(ef39)), ca ne marche pas car l'affectation "effect ef39 = EffectVisualEffect(39);" rate, c'est la qu'es le probleme. Donc si quelqu'un a moyen un moyen de permettre le fonctionnement de cette commande dans le OnClientEnter, c'est le moment

Par Jedaï le 20/1/2003 à 19:44:13 (#3062785)

Comment obtient tu que l'affectation rate ? Tu as fait une string de test ? Tu es sûr qu'elle n'a pas été prononcé pendant que tu étais encore dans le schwartz ? :confus:

Par eMRaistlin le 20/1/2003 à 20:02:50 (#3062914)

Tu es sûr qu'elle n'a pas été prononcé pendant que tu étais encore dans le schwartz ?


CQFD...


Merci de bien vouloir accepter les reponses...

sinon, c'est pas la peine de poser des questions... :p

(no offense, mais bon...:monstre: )

Par Zatournavus le 20/1/2003 à 20:48:09 (#3063271)

Provient du message de Jedaï
Comment obtient tu que l'affectation rate ? Tu as fait une string de test ? Tu es sûr qu'elle n'a pas été prononcé pendant que tu étais encore dans le schwartz ? :confus:


rien compris..
affection rate ? c'est pas de l'anglais hein, c'est "rate" pour ratage (du verbe rater)
schwartz ??? kezakokipete ?

Provient du message de eMRaistlin
CQFD...
Merci de bien vouloir accepter les reponses...
sinon, c'est pas la peine de poser des questions...
(no offense, mais bon... )


Mais si j'accepte les réponses, je ne les critiques pas, simplement je me suis aperçu que j'avais moi meme mal ciblé mon probleme, c'est tout, je ne te critique pas eMRaistlin. Donc ma question (et j'aurai du le préciser) et de savoir si on peut effetivement utiliser un EffectVisualEffect dans le OnClientEnter, puiske j'en suis arrivé a la conclusion que effect ef39 = EffectVisualEffect(39); ne fonctionnait donc pas, et si quelqu'un sais si il existe un moyen de faire marcher cela, je veux bien savoir.

Par eMRaistlin le 20/1/2003 à 21:08:39 (#3063441)

Bein, vi, normalement, pas de pb : sur le OnClientEnter, tu peut mettre un VisualEffect... Faut juste t'arranger pour que celui-ci se declenche hors du scwhatz (en Allemand = noir, donc, en dehoprs du chargement).

D'ou l'utilisté de faire le test avec des DelayCommand comme je te l'ai mis sur le post plus haut ^^

c'est tout, je ne te critique pas eMRaistlin.


Je te rassure, je l'ai pas pris comme ca... c'est juste que avant de dire que c'est faux, fais un test :)

Par Jedaï le 20/1/2003 à 21:19:57 (#3063530)

Bon alors relis bien les réponses :

effect ef39 = EffectVisualEffect(39); doit marcher, il n'y a aucune raison qu'il ne marche pas, donc c'est le reste du script qui doit merder, c'est ce que nous t'avons tous dit, avec diverses suggestions (as-tu essayé le script de eMRaistlin au fait, non ?).

affectation c'est du français, prend un dictionnaire (adolescent, aérobic, affecter, affecter à...).
Schwartz, c'est de l'allemand même si c'est suffisament utilisé en France pour que tu le trouve dans un bon dictionnaire, ça veut dire noir...
tu étais encore dans le schwartz ? == tu étais encore en train de charger ?


Désolé si je m'énerve un peu mais je trouve que tu es un peu obsessionnel et si tu lis vraiment les réponses, c'est en diagonale...

Tiens une autre idée, est-on bien sûr que GetIsEffectValid() marche avec les effets visuels, il faudrait essayer sans et avec un DelayCommand().

Par eMRaistlin le 20/1/2003 à 21:59:55 (#3063733)

Tiens une autre idée, est-on bien sûr que GetIsEffectValid() marche avec les effets visuels, il faudrait essayer sans et avec un DelayCommand().


Normalement, oui ^^

Par Jedaï le 20/1/2003 à 22:42:58 (#3064094)

Bon et bien pourquoi pas... NWN ne cesse de m'étonner, après test, voici un script qui fonctionne parfaitement :


void main()
{
object oPC = GetEnteringObject();

effect efwail = EffectVisualEffect(VFX_FNF_WAIL_O_BANSHEES);
DelayCommand(15.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, efwail, oPC));
}

Testé aussi bien sur le module que sur l'area

Par contre, avec 39, ça n'as pas semblé marcher.... Je vais pousser mes test plus loin....:p

Par Jedaï le 20/1/2003 à 22:59:59 (#3064236)

Vérification faite ce script marche parfaitement (c'était juste mon délai qui était un peu court...) :


void main()
{
object oPC = GetEnteringObject();

effect ef39 = EffectVisualEffect(39);
DelayCommand(15.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, ef39, oPC));
}



Et par ailleurs j'avais parfaitement raison : GetIsEffectValid() n'est pas prévu pour les effets visuels : il m'a affirmé avec aplomb que l'effet n'était pas valide alors qu'une banshee s'élevait au-dessus de moi !:mdr:

Donc on sait pourquoi ton script ne marchait pas et la ligne effect ef39 = EffectVisualEffect(39); n'y était pour absolument rien, pauvrette que tu accusais de tous les maux...:rolleyes:

Par eMRaistlin le 20/1/2003 à 23:18:26 (#3064399)

Interessant a savoir... :)





*C'est beau... un homme qui teste... T_T*

Par Zatournavus le 21/1/2003 à 8:51:27 (#3065711)

Provient du message de Jedaï

Désolé si je m'énerve un peu mais je trouve que tu es un peu obsessionnel et si tu lis vraiment les réponses, c'est en diagonale...

Tiens une autre idée, est-on bien sûr que GetIsEffectValid() marche avec les effets visuels, il faudrait essayer sans et avec un DelayCommand().

LOL :blabla:
Oui pardon de mon obsession, en fait je lit lmes réponses par une exponentielle très courbée :)

plus sérieusement, a ce moment la je ne pense pas que GetIsEffectValid ne prenait pas les effets visuels, apres tout, ca prend en parametre un effet, donc la logique a été dupée. (pourquoi d'ailleur)
Jedaï, la force est avec toi, et le EffectVisualEffect(39) marche chez moi :merci:

bye bye :)

JOL Archives 1.0.1
@ JOL / JeuxOnLine