Aller au contenu


Problème Avec Un Script Lié à Un Sort...


  • Veuillez vous connecter pour répondre
20 réponses à ce sujet

#1 Grilvhor

Grilvhor

Posté 11 avril 2009 - 18:30

Salutations amis fort aux moeurs,

Voila, dans le cadre de la création de mon mod "Le Dojo de Ra", je peine à créer un sort.

Voici son fonctionnement;

Le PJ lance un sort donné. (->GR_appel_aux_force_du_feu)
Un script global detecte si celui-ci subit les effets de ce sort.
Si oui,(après et en fonction des messagebox pas encore écris ), le sujet se voit subir les effets du second sort souhaité.(->eye of  night: sort test)

Le script de "second lancement de sort ce trouve sur une arme equipé lorsque le premier sort est lancé".

Or a chaque fois le jeu crash to desktop lorsque ce second sort est lancé.
Info->>Le sort "GR_appel_aux_force_du_feu" dure 10 secondes.

Voici les script, d'abord le global, puis le local.

Citation

begin  GR_scr_sort_appel_aux_force_du_feu

  
  

  Short CastOnce

  Short DoOnce

  
  

  If ( MenuMode == 1 )

   Return

   endif

  
  

  if ( Player ->  GetSpellEffects, "GR_appel_aux_force_du_feu" == 1 )

   Set CastOnce to 1

   endif

  
  

  if ( CastOnce == 1 )

  if ( DoOnce == 0 )

   Messagebox "Poyé  Polomi!!!"

   Player -> AddItem,  "GR_katana_de_feu" 1

   Player -> Equip,  "GR_katana_de_feu" 1

     Set DoOnce to 1

   endif

   endif

  
  

  if ( DoOnce == 1 )

  if ( Player ->  GetSpellEffects, "GR_appel_aux_force_du_feu" == 0 )

   Player ->  RemoveItem "GR_katana_de_feu" 1

   Set DoOnce to 0

   Set CastOnce to 0

   endif

   endif

  
  

  end  GR_scr_sort_appel_aux_force_du_feu

Citation

begin  GR_scr_katana_de_feu

  
  

  Short DoOnce

  float timer

  
  

  if ( doonce != 1 )

   Set timer to ( timer +  GetSecondsPassed )

   endif

  
  

  if ( timer >= 2 )

  if ( DoOnce != 1 )

   Cast "eye of  night" Player

   Set DoOnce to 1

   endif

   endif

  
  

  end  GR_scr_katana_de_feu

Alors, je voudrais savoir d'ou viens le probleme, pourquoi le jeu crash lorsque "eye of night" se lance...

Ou peut être que je pourrai faire comme dans nova magicka, après avoir prononcé la formule le sort souhaité apparait puis disparait apres utilisation->> Comment faire cela??

Bien à vous,

Grilvhor

Modifié par Grilvhor, 11 avril 2009 - 18:33.

Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#2 abg

abg

    L'ABG pour les civilisés


Posté 11 avril 2009 - 19:07

Voir le messageGrilvhor, le 11.04.2009 à 19:29, dit :

Alors, je voudrais savoir d'ou viens le probleme, pourquoi le jeu crash lorsque "eye of night" se lance...

C'est un bug très curieux... Eye of night étant un attribut des khajiits, mon premier réflexe était de te dire que c'est parce que c'est un pouvoir mais je viens de vérifier et c'est un sort...
Durant mes recherches pour obtenir des pnjs qu'ils utilisent leurs pouvoirs raciaux j'avais en effet enduré des crashs en tentant d'utiliser la commande cast avec ce type de pouvoir. J'avais conclu (peut-être un peu vite) que c'était à cause de l'interdit d'utiliser un pouvoir plus d'une fois par 24H  :umnik: .Le crash serait lié au fait que le sort est attribué à une race ? C'est à vérifier car, si c'est le cas, voilà un vilain bug qui guette les modeurs concevant ou customisant les races (mettre un sort dans les "specials" d'une race reviendrait à interdire de s'en servir avec la commande cast... J'espère que non  :paladin: )

Citation

Ou peut être que je pourrai faire comme dans nova magicka, après avoir prononcé la formule le sort souhaité apparait puis disparait apres utilisation->> Comment faire cela??

Si Nerwal ou Alliop viennent à passer par là, peut-être pourront-ils t'expliquer le mécanisme de la magie spontanée. Je crois que ça repose sur une astuce mettant en œuvre :
player->cast, "ID du sort"
(un pnj va lancer immédiatement le sort mais pour le pj, ça le force en quelque sorte à équiper le sort et le lancer d'office à la prochaine occasion où il essaye de lancer un sort quelconque...)

Edit : Malgré le nom du script je n'avais pas réalisé que tout ça été sensé se passer dans l'inventaire  :green: Dans ces conditions l'explication d'Elendell est plus crédible que mes élucubrations.
Si tu retiens la solution AddSpell, utilise plutôt une malédiction qu'une maladie (pas de risque de guérison intempestive, pas de risque de conflit avec le mod Ascension...)

Modifié par abg, 11 avril 2009 - 19:35.

Antoninus Bibulus Glaber
Coaching de PNJs chez Morrowind Renaissance

#3 elendell

elendell

    Mécano Dell'Arte


Posté 11 avril 2009 - 19:19

Bonjour Grilvhor,

Il me semble que le problème vient de l'utilisation de "Cast" alors que l'arme est dans l'inventaire du PJ. Remarque que ne l'ai jamais essayé de cette manière mais essaye à la place d'utiliser "AddSpell". Ce qui impliquera sans doute d'en faire une maladie et de faire un "RemoveSpell" par la suite.

Ou bien de faire subir les effets du sorts mais sans utiliser le sort (par exemple "ModCurrentHealth" pour diminuer sa santé). Mais dans ce cas, tu n'aurais pas les effets sonores et visuels du sort.

Autre possibilité (si "Cast" est bien impossible dans ces conditions) : Faire un "PlaceAtPC" d'un activateur quand l'arme est équipée qui, lui-même étant hors de l'inventaire, lancera le "Cast" avec son script. La suite de son script faisant un "Disable", suivi d'un "SetDelete" après quelques frames.

#4 Grilvhor

Grilvhor

Posté 11 avril 2009 - 21:21

Merci pour vos réponses.

Donc selon toi elendell il se pourrait que cela soit a cause du fait que l'arme soit dans mon inventaire...
Sa m'étonne, je ne vois pas en quoi sa gène l'execution du script, enfin bon...

Sinon abg, sache que j'ai essayé avec un sort de respiration aquatique, qui n'est pas un "pouvoir" mais un sort.
Sa ne doit pas etre lié a la nature de ces sorts.

Vous me proposez donc de faire apparaitre un activator qui lui executerai le script, c'est une idée qui mérite d'etre essayé.

Citation

elendell: Ou bien de faire subir les effets du sorts mais  sans utiliser le sort (par exemple "ModCurrentHealth" pour diminuer sa  santé). Mais dans ce cas, tu n'aurais pas les effets sonores et visuels  du sort.

C'est trop galère, mon sort contient 4 ou 5 effet, chiant à scripter :paladin:

Citation

Abg : Malgré le nom du script je n'avais pas réalisé que tout ça été sensé se passer dans l'inventaire

abg, je crois que le nom du script t'a induit en erreur.
Sa ne se passe pas dans l'inventaire :green:

Que pensez vous de ce script?? ( selon la methode novamagicka de abg )

Citation

begin  GR_scr_katana_de_feu

  
  

  Short DoOnce

  float timer

  
  

  if ( doonce != 1 )

   Set timer to ( timer +  GetSecondsPassed )

   endif

  
  

  if ( timer >= 2 )

  if ( DoOnce != 1 )

   player-> Cast "eye of  night"
   Set DoOnce to 1

   endif

   endif

  
  

  end  GR_scr_katana_de_feu

Comme sa le sort apparait en sort jetable par defaut ( a priori).
Mais disparait il apres utilisation???
Ou il se pourrait que sa plante pareil mais dans ce cas je peut le mettre sur un activator...

Si quelqu'un a le courage de me faire un exemple ( la methode novamagicka m'interesse :umnik: )
et bien merci ;)


Bon vent,

Grilvhor


Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#5 elendell

elendell

    Mécano Dell'Arte


Posté 11 avril 2009 - 22:50

Voir le messageGrilvhor, le 11.04.2009 à 22:20, dit :

Donc selon toi elendell il se pourrait que cela soit a cause du fait que l'arme soit dans mon inventaire...
Sa m'étonne, je ne vois pas en quoi sa gène l'execution du script, enfin bon...
Je n'ai pas dit que ça gêne l'exécution du script mais celle de "Cast" de l'objet vers le PJ et ce, parce que l'objet est dans l'inventaire du PJ (à vérifier quand même).

Voir le messageGrilvhor, le 11.04.2009 à 22:20, dit :

Vous me proposez donc de faire apparaitre un activator qui lui executerai le script, c'est une idée qui mérite d'etre essayé.
Vérifier ma supposition et du même coup ma proposition serait vite fait.

Spoiler


Voir le messageGrilvhor, le 11.04.2009 à 22:20, dit :

abg, je crois que le nom du script t'a induit en erreur.
Sa ne se passe pas dans l'inventaire :paladin:
Ben, si ! L'inventaire ne représente pas ce que le PJ a dans ses poches mais tout ce qu'il a en sa possession, sur lui. Si l'épée est équipée, c'est qu'elle est sur lui.


Voir le messageGrilvhor, le 11.04.2009 à 22:20, dit :

Que pensez vous de ce script?? ( selon la methode novamagicka de abg )
"Cast" doit obligatoirement indiquer une cible, donc il faudrait faire : player->Cast "eye of  night" player

Voir le messageGrilvhor, le 11.04.2009 à 22:20, dit :

Comme sa le sort apparait en sort jetable par defaut ( a priori).
Mais disparait il apres utilisation???
Ou il se pourrait que sa plante pareil mais dans ce cas je peut le mettre sur un activator...
Si quelqu'un a le courage de me faire un exemple ( la methode novamagicka m'interesse :green: )
Tu n'as pas besoin d'autre chose pour cette méthode. Sauf que je ne vois pas vraiment en quoi cela servirait ton but. Essaye avec la console dans le jeu. Tu charges un sort, n'importe lequel, puis tu écris et valides player->Cast "eye of  night" player

Tu ne verras pas de changement dans l'icône du sort chargé mais si tu essayes de le lancer, ça lancera "eye of  night" au lieu de celui que tu avais chargé auparavant. Le hic pour que ça te soit utile, c'est qu'il faudrait après avoir donné l'instruction avec le script, pouvoir forcer le PJ à lancer un sort. Ce qui à ma connaissance n'est pas possible.

#6 Grilvhor

Grilvhor

Posté 11 avril 2009 - 23:06

J'ai bien lu ta proposition de script elendell.

Mais si la lame se trouve a terre il faut la ramasser puis l'equiper.
Sa coupe le dynamisme que je cherche à atteindre en combat.

Je pourrai mettre ce script sur un activator qui apparaitrai derriere le pc et qui disparaitrai ensuite non?
Mais puis je faire disparaitre cet activator et pour autant faire que le script s'execute normalement? je pense que oui...
Il faut avouer qu'un objet derriere le pc après le lancement de sort ferai peut crédible, esthétique.

Vu que le script s'executera rapidement, je pense pouvoir effacer l'activator de suite.
je crois que c'est la commande setdelete, isn't it?

Citation

Elendell:
Tu ne verras pas de changement dans l'icône du sort chargé mais si tu essayes de le lancer, ça lancera "eye of night" au lieu de celui que tu avais chargé auparavant. Le hic pour que ça te soit utile, c'est qu'il faudrait après avoir donné l'instruction avec le script, pouvoir forcer le PJ à lancer un sort. Ce qui à ma connaissance n'est pas possible.

Imagine, si le joueur lance le sort1(test les condition), c'est qu'il veut lancer le sort2(effets), donc il parait logique que le joueur lancera le sort immediatement.
Mais apres le lancement le sort disparaitra n'est ce pas?

peace

Modifié par Grilvhor, 11 avril 2009 - 23:10.

Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#7 elendell

elendell

    Mécano Dell'Arte


Posté 11 avril 2009 - 23:36

Voir le messageGrilvhor, le 12.04.2009 à 00:05, dit :

J'ai bien lu ta proposition de script elendell.

Mais si la lame se trouve a terre il faut la ramasser puis l'equiper.
Sa coupe le dynamisme que je cherche à atteindre en combat.
:green:  Ce n'était pas une proposition de script pour ton "mod" ! Ça c'est juste pour essayer rapidemment si le problème vient de l'inventaire et voir comment ça réagit, pour ensuite faire ma proposition. Ma proposition pour le "mod" était celle-ci :

elendell dit :

Autre possibilité (si "Cast" est bien impossible dans ces conditions) : Faire un "PlaceAtPC" d'un activateur quand l'arme est équipée qui, lui-même étant hors de l'inventaire, lancera le "Cast" avec son script. La suite de son script faisant un "Disable", suivi d'un "SetDelete" après quelques frames.


Voir le messageGrilvhor, le 12.04.2009 à 00:05, dit :

Je pourrai mettre ce script sur un activator qui apparaitrai derriere le pc et qui disparaitrai ensuite non?
Mais puis je faire disparaitre cet activator et pour autant faire que le script s'execute normalement? je pense que oui...
Il faut avouer qu'un objet derriere le pc après le lancement de sort ferai peut crédible, esthétique.
Vu que le script s'executera rapidement, je pense pouvoir effacer l'activator de suite.
je crois que c'est la commande setdelete, isn't it?
Ce que tu dis là est exactement ma proposition !  :paladin:

Sauf que tu n'as pas besoin de cacher l'activateur derrière le PJ. Il suffit que tu lui donnes un nif invisible (EditorMarker.nif, je crois). Tu peux copier un activateur "Sound...." pour le faire et il ne se verra pas, même s'il restait présent. Mais comme, tu ne vas pas laisser trainer des objets inutiles, même invisibles, dans son script tu fais suivre la ligne qui lance le sort par une ligne avec "Disable".
Et en début de son script, tu ajoutes ça pour le faire complètement disparaitre :

short frame

if ( GetDisabled == 1 )
	if ( frame >= 4 )
		SetDelete 1
	else
		set frame to ( frame + 1 )
	endIf
	return
endIf

Il disparaitra au bout de 4 frames puisqu'il est "disabled" et en attendant, le "return" l'empêche d'aller plus loin dans le script. Du coup, tu n'as même pas besoin de "doonce" pour empêcher le script de lancer le sort plusieurs fois.


EDIT :

Voir le messageGrilvhor, le 12.04.2009 à 00:05, dit :

Imagine, si le joueur lance le sort1(test les condition), c'est qu'il veut lancer le sort2(effets), donc il parait logique que le joueur lancera le sort immediatement.
Je ne suis pas sûr de te suivre car je ne sais pas exactement le reste de la situation. Si le joueur veut volontairement lancer un sort, à quoi sert de l'équiper avec une épée ?

Voir le messageGrilvhor, le 12.04.2009 à 00:05, dit :

Mais apres le lancement le sort disparaitra n'est ce pas?
Non, il restera comme sort "chargé" tant que le PJ ne cliquera pas sur un autre sort ou que tu ne lui en donneras pas un autre par le même système.

#8 Grilvhor

Grilvhor

Posté 11 avril 2009 - 23:51

Citation

Elendell:Il disparaitra au bout de 4 frames puisqu'il est "disabled" et en attendant, le "return" l'empêche d'aller plus loin dans le script. Du coup, tu n'as même pas besoin de "doonce" pour empêcher le script de lancer le sort plusieurs fois.

Je vois, merci. :paladin:
Je verrai si y'a moyen de trouver un son simpa :green:
tout est clair désormais, j'essairai ça :umnik:

Citation

Imagine, si le joueur  lance le sort1(test les condition), c'est qu'il veut lancer le  sort2(effets), donc il parait logique que le joueur lancera le sort  immediatement.
Je ne suis pas  sûr de te suivre car je ne sais pas exactement le reste de la  situation. Si le joueur veut volontairement lancer un sort, à quoi sert  de l'équiper avec une épée ?

C'est simplement parceque le lancement du sort est en deux étapes:

etape un: le joueur lance le sort1; Differentes conditions sont verifié(possession d'objet precis). ( je pensais peut etre equiper un parchemin pour s'occuper de sa plutot qu'un sort, sa fonctionne a peu près pareil.)
Etape deux: si les conditions sont validé alors le joueur benéfici du sort 2 via un activateur  sinon nada.

Citation

Citation (Grilvhor @ 12.04.2009 à 00:05) Image IPBMais apres le lancement le sort disparaitra n'est ce pas?
Non,  il restera comme sort "chargé" tant que le PJ ne cliquera pas sur un  autre sort ou que tu ne lui en donneras pas un autre par le même  système.

ça ca me gene parcontre, il ne faut pas que le joueur puisse le lancer sans que les conditions soit verifier...

Modifié par Grilvhor, 11 avril 2009 - 23:58.

Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#9 elendell

elendell

    Mécano Dell'Arte


Posté 12 avril 2009 - 04:16

Voir le messageGrilvhor, le 12.04.2009 à 00:50, dit :

Citation

Citation (Grilvhor @ 12.04.2009 à 00:05) Image IPBMais apres le lancement le sort disparaitra n'est ce pas?
Non,  il restera comme sort "chargé" tant que le PJ ne cliquera pas sur un  autre sort ou que tu ne lui en donneras pas un autre par le même  système.
ça ca me gene parcontre, il ne faut pas que le joueur puisse le lancer sans que les conditions soit verifier...
Cette réponse correspondait à la solution façon NovaMagica mais avec celle de l'activateur, le sort n'est jamais chargé par le PJ. Donc, pas de problème.

Par contre, j'ai fait plusieurs essais qui m'ont appris des choses :

- Je confirme que "Cast" ne fonctionne pas s'il est lancé par un objet qui est dans l'inventaire.

- Je t'ai dit une bêtise à propos de faire "Disable" dans la même frame que le "Cast". Contrairement à d'autres fonctions, "Cast" semble ne pas fonctionner si l'objet qui le lance est "disabled". L'opération effectuée par "Cast" dure plusieurs frames et si on fait "Disable" avant qu'elle ne soit totalement terminée, elle s'interrompt.

On pourrait tester si le PJ est sous l'effet du sort pour savoir si elle est finie mais les sorts peuvent très bien être encore actifs, suite à un autre  lancement 30s plus tôt. Comme je ne sais pas combien de frames (ou de temps) dure exactement le déroulement du "Cast", il vaut mieux se donner un temps confortable (3s par exemple). Comme l'activateur est invisible, ce n'est pas un problème.

- Pour le nif, celui que je t'ai indiqué est bien invisible mais renvoie un message d'erreur. Le mieux serait d'en faire un qui n'a aucune collision mais tu peux aussi utiliser "EditorMarker_box_01.nif" qui est utilisé entre autres par l'activateur "CharGenCollision - extra".
Il a des données de collision mais ça ne gêne pas le "PlaceAtPC". Le seul inconvénient de ses données de collision serait si le PJ se déplace puis revient au même emplacement avant qu'il ne soit "disabled". Mais comme c'est une affaire de secondes, c'est peu probable.

- Voici un script qui fonctionne, à placer sur l'activateur :

begin GR_scr_katana_Activ

float timer

if ( timer >= 1 )

	set timer to ( timer + GetSecondsPassed )

	if ( timer >= 4 )
		SetDelete 1
	elseif ( timer >= 3 )
		disable
	endif

elseif ( timer == 0 )
	Cast "eye of night DIST" Player
	set timer to 1
endif

end

Le "PlaceAtPC IDActivateur 1 0 0" doit être fait par le script global et doit être lancé en même temps que tu équipes l'épée. Tu peux aussi ajouter en conditions que le PJ doit être en position de combat si ça te semble utile (en plus du fait qu'il doit avoir lancé le premier sort).

Dernier point important : Le sort que lance l'activateur doit être un sort à distance. "eye of night" est un sort "perso" ; pour utiliser celui-ci par exemple, il faut donc le copier et mettre en "range" dans le nouveau, "distance" à la place de "perso".

#10 Grilvhor

Grilvhor

Posté 12 avril 2009 - 04:28

Merci de toutes ces infos.

Je ne pensais pas que tu repondrai a cette heure tardive ;)

je saisi pas trop pour le nif.
C'est quoi les données de collision?
Quel est le probleme lié a ça?

Confirme ça: je dois mettre la portée des effet sur "distance" c'est bien ça?

Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#11 elendell

elendell

    Mécano Dell'Arte


Posté 12 avril 2009 - 07:26

Voir le messageGrilvhor, le 12.04.2009 à 05:27, dit :

C'est quoi les données de collision?
Quel est le probleme lié a ça?
Si un activateur a une boite de collision, le PJ se cogne dessus, sinon il passe à travers. Cet activateur est petit mais si le PJ essaye de passer là où il se trouve (pendant les 3s avant qu'il ne soit "disabled"), il sera dévié comme s'il y avait un petit rocher. Quand tu fais le "PlaceAtPC", ce n'est pas un problème car le jeu le place quand même à la même position que le PJ mais si le PJ s'écarte et revient, il butera dessus.
Donc, soit tu te dis que 3s, ce n'est pas grave, soit tu demandes à quelqu'un qui sait le faire de supprimer sa boite de collision, soit encore tu utilises un activateur avec un nif sans collision mais qu'il faut rendre invisible (avec Nifscope). A moins qu'il y en ait des tout faits dans ce cas mais je n'en sais rien. C'était le cas du premier que je t'avais indiqué mais il génère un message d'erreur que je ne connais pas, au moment du "Cast". Je crois que c'est lié à sa taille mais il faudrait donc aussi le transformer.

Va dans le jeu et fais le code TCB. Tu verras les boites de collision. (Même code pour arrêter de les voir). Dans le Tescs aussi il y a une option pour les voir mais elles ne s'affichent pas toutes. Ça dépend de quelle manière elles sont faites.

Voir le messageGrilvhor, le 12.04.2009 à 05:27, dit :

Confirme ça: je dois mettre la portée des effet sur "distance" c'est bien ça?
Oui.

#12 Grilvhor

Grilvhor

Posté 12 avril 2009 - 15:32

Sinon ce que je peux faire c'est placer l'activateur loin du PJ et le tour est joué, non?
Par exemple je le met en dessous du PJ.
De toute façon peut importe ou il se trouve dans la cell,  le script s'executera.

Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#13 elendell

elendell

    Mécano Dell'Arte


Posté 12 avril 2009 - 16:35

Voir le messageGrilvhor, le 12.04.2009 à 16:31, dit :

Sinon ce que je peux faire c'est placer l'activateur loin du PJ et le tour est joué, non?
Par exemple je le met en dessous du PJ.
De toute façon peut importe ou il se trouve dans la cell,  le script s'executera.
Le script s'exécutera mais tu ne dois pas faire ça. Essaye et tu comprendras pourquoi.

#14 Grilvhor

Grilvhor

Posté 12 avril 2009 - 18:46

Pourquoi tu ne me le dirais pas??
Sa m'evitera une mauvaise surprise.

Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#15 elendell

elendell

    Mécano Dell'Arte


Posté 12 avril 2009 - 20:04

Voir le messageGrilvhor, le 12.04.2009 à 19:45, dit :

Pourquoi tu ne me le dirais pas??
Sa m'evitera une mauvaise surprise.
Ton ordinateur ne va pas exploser.  ;)
J'ai pris le temps de t'expliquer plein de choses. J'ai pris le temps de faire plein d'essais de scripts et de les tester en jeu, pour chercher quelle pouvait être la meilleur solution. J'ai pris le temps de te faire un script. Il te suffit de le copier/coller, de le placer sur un activateur, de faire un sort "eye of night DIST" comme je te l'ai expliqué et de faire des "placeatpc" à différentes distances avec la console (dans le jeu) pour voir comment ça réagit.

J'ai fait tout ça avec plaisir et je le referai encore mais à condition que tu ais toi aussi envie d'essayer. Sinon, c'est une énergie déployée à sens unique. De plus, c'est avec la pratique qu'on apprend le mieux. Donc, commence à mettre en pratique tous ces éléments, puis à donner un retour sur les résultats. Ensuite, si tes résultats suscitent d'autres interrogations que tu ne peux pas résoudre ou que tu veux mieux comprendre certains détails, tu reposes une question. Mais là, je sentirai un partage. J'ai besoin de retours pour garder du plaisir à essayer d'aider quelqu'un ; sinon, ça devient un travail. Et je ne travaille pas gratuitement.  :cry:

#16 Grilvhor

Grilvhor

Posté 13 avril 2009 - 15:27

Je comprend ce que tu veux dire Elendell.

Je t'ai demandé de me le dire car je suis actuellement incapable de le faire.
(J'ai internet chez l'un de mes parents et morrowind chez l'autre).
Etant donné que je suis pas un yo-yo entre chez eux, tu peux sans doute comprendre pourquoi j'ai préférée que tu me le dise, afin de gagner du temps.

Toutefois j'approuve ta pensée, et ferai un essai par moi même.
Je ne pourrais pas en parler avant deux semaines par contre...

Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#17 elendell

elendell

    Mécano Dell'Arte


Posté 13 avril 2009 - 21:47

Si tu n'as pas la possibilité matérielle d'essayer, ce n'est pas la même chose.

L'activateur projette le sort, comme un PNJ. S'il est placé à 0, 0, la matérialisation visuelle du sort semblera venir du sol, sous le PJ. Mais si tu places l'activateur à distance du PJ, on verra la projection du sort. Hors, celui-ci n'est pas sensé être jeté par un élément extérieur.

Dans tes essais, il faudra que tu testes l'effet visuel produit dans les deux types de vue car tu ne sais si le joueur jouera en 1ère ou en 3ème personne.

Note que tu peux aussi placer l'activateur dans le dos du PJ mais celui-ci a le temps de se tourner entre le moment où l'activateur est placé et celui où le sort est vraiment lancé. Il faut donc que tu essayes pour trouver l'endroit qui convient le mieux.

#18 Grilvhor

Grilvhor

Posté 14 avril 2009 - 01:04

Ok, merci pour les infos.

L'option que le sort vienne de sous le joueur me parait sympatique.
Je testerai tout ça, merci encore pour ton aide Elendell:mrgreen:

Grilvhor

Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#19 alliop

alliop

    Renaissance de l'art magique.


Posté 21 avril 2009 - 20:31

Bonsoir :P

L'activateur invisible EditorMarker_box_01.nif que signale Elendell n'a pas de collision box, il est donc très pratique pour caster des sorts (c'est celui qui est utilisé par le jeu pour jouer des sons et autres effets en fonction de la présence du joueur) .

Il faut se méfier d'une chose : si on le place aux coordonnées exactes du perso il sera au sol par défaut ; il y a alors des chances pour qu'il soit pris dans la collisionbox de celui-ci et que l'effet n'en "sorte" pas (et donc que ça ne fonctionne pas ou produise des erreurs ; je viens justement d'essuyer un échec particulièrement spectaculaire à cause de ça^^- ).

Une façon d'éviter ça est de faire caster le sort au dessus du perso.
Pour celà il faut commencer le script par :
float Position_Z

<conditions return>

set Position_Z to ( Player -> GetPos Z )
set Position_Z to ( Position_Z + <taille du perso+5> )

setPos Z Position_Z

<commandes du cast>

*******

D'autre part : la "méthode Nova Magica"( pas de "k" à "Magica" s'il vous plait!  :)  ) est simple :

Pour que le sort apparaisse directement "équipé" sur le PJ, pas dans l'inventaire de sorts et donc jetable une seule fois, il suffit que la fonction "Cast <spellID>, Player" soit lancée par un script global (sans référence d'acteur donc).

Un effet secondaire marrant est que si l'on utilise cette fonction deux fois de suite dans la même frame avec deux sorts différents, l'icône et le nom du premier sort ne sont pas remplacés par le second. C'est ce qui permet aux effets d'échec des formules de spontanée d'être indétectables : le joueur est informé qu'il formule par ex "Primea Thirneun Ibrascar Aeth" et voit l'icône et le nom dans sa barre, mais s'il a loupé son coup cet effet est en fait remplacé par un effet d'échec sans qu'il en soit renseigné.

Modifié par alliop, 21 avril 2009 - 20:33.

"Bienvenue à toi, lent homme lié, poussif tresseur des vitesses."
Alain Damasio


#20 Grilvhor

Grilvhor

Posté 26 avril 2009 - 17:51

Salut à tous, Grilvhor is back!

J'ai éssayé avec le "markoreditor.nif" ou truc du genre et ça n'a pas fonctionné.

Sans doute parceque je l'ai fait apparaitre à la place du PJ comme le dit Alliop, meme s'il me semble l'avoir aussi fait apparaitre plus loin.

J'ai donc utilisé la fonction AddSpell avec des malediction, sa fonctionne bien.

Sinon Alliop je comprend bien ce que tu explique sur Le fonctionnement des formules de Nova Magica ( et pas magika!).
Mais ce que je me demandais était comment faire pour que le sort ne soit lançable qu'une fois.
Dans nova magica lorsque le sort est lancé il disparait de l'emplacement sort jetable.
Ceci est mon interrogation. :wizard:

Venez voir mon projet de mod!!!

----->>>Le dojo de Ra<<<---Préparez vous à vivre une experience unique.<<<---


#21 alliop

alliop

    Renaissance de l'art magique.


Posté 27 avril 2009 - 16:40

Salut salut :(

Voir le messageGrilvhor, le 26.04.2009 à 18:50, dit :

J'ai éssayé avec le "markoreditor.nif" ou truc du genre et ça n'a pas fonctionné.

Sans doute parceque je l'ai fait apparaitre à la place du PJ comme le dit Alliop, meme s'il me semble l'avoir aussi fait apparaitre plus loin.
... mmm.... c'est sans doute un autre problème. Normalement ça fonctionne. Je m'en sers précisément en ce moment pour des effets sur les créatures invoquées, voilà le script porté par l' editormarker.nif :
Spoiler


Citation

je comprend bien ce que tu explique sur Le fonctionnement des formules de Nova Magica ( et pas magika!).
Mais ce que je me demandais était comment faire pour que le sort ne soit lançable qu'une fois.
Si tu demandes ça c'est justement que tu n'as pas bien compris :)

'Alliop' dit :

Pour que le sort apparaisse directement "équipé" sur le PJ, pas dans l'inventaire de sorts et donc jetable une seule fois, il suffit que la fonction "Cast <spellID>, Player" soit lancée par un script global (sans référence d'acteur donc).
... et tant mieux si tu n'as pas bien compris parce que j'avais fait une bourde : la commande ne doit pas être lancée par le global "sans référence d'acteur" mais avec "Player" en référence de casteur :

Par ex le script d'attribution de sorts en "Omelya" :
Spoiler
Voilà tu sais tout :P

Modifié par alliop, 27 avril 2009 - 23:49.

"Bienvenue à toi, lent homme lié, poussif tresseur des vitesses."
Alain Damasio





0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)