Aller au contenu


Creation Invocation


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

#1 mcab

mcab

Posté 29 mai 2006 - 21:55

Bonjour

J'aimerais créer un sort d'invocation d'une créature perso. Comment cela est-il possible ? parce que dans la liste des créations de sorts toutes les invocations sont prédéfinies et qu'on ne peut pas faire "new" dans la liste Gameplay\Magic effects...

Merci d'avance pour vos réponses

#2 ptitlol

ptitlol

Posté 30 mai 2006 - 08:47

Salut. Tu peux appeler une créature à toi par script :

player.placeatme (numéro de référence ID)

Et ensuite tu crées ton sort pour appeler le script


Cela marche pour tout, c'est comme ça que je fait mon appel de porte d'Oblivion et mes invocations de créatures. :)

#3 mcab

mcab

Posté 30 mai 2006 - 12:44

Ok merci beaucoup. Je n'avais pas pensé au script

#4 Angora

Angora

    Danse avec les bugs


Posté 30 mai 2006 - 13:49

C'est pas contre dommage que l'on ne puisse pas définir d'icône personnalisée pour les sorts scriptés, parce que l'icône de Fardeau, je ne peux plus la voir en peinture !

Bon, on peut se débrouiller en ajoutant un autre effet normal en plus de l'effet scripté.
Le saviez-vous ?

En français, il n'y a jamais, jamais, JAMAIS, J-A-M-A-I-S, de cédille à un 'c' devant un 'e', un 'i' ou un 'y'. Jamais. Sans aucune exception. Pas la moindre. Zéro. Cédille devant e, i ou y = faute. Un point, c'est tout, c'est comme ça, ça a toujours été comme ça, et ça le sera toujours.

#5 mcab

mcab

Posté 31 mai 2006 - 17:01

En effet c'est dommage...
Mais j'ai un autre problème avec cette méthode : que je coche ou non la case 'effect is hostile', la créature invoquée m'attaque. Est-ce qu'il faut mettre quelque chose en plus dans le script pour empêcher ça ?

#6 Angora

Angora

    Danse avec les bugs


Posté 31 mai 2006 - 20:10

:rolleyes:

"Effect is hostile" sert juste à l'IA du jeu pour déterminer si le lancement du sort doit être considéré comme une aggression ou non.

Cette case n'est utile que pour les sorts que l'on lance sur des acteurs (PNJs ou créatures).



Dans ton cas, ce que tu dois faire est tout simplement modifier l'IA de la créature invoquée. C'est pour ça qu'il faut utiliser une créature unique, non utilisée ailleurs dans le jeu...

Tu lui donne la faction "Player" et ça devrait marcher, elle devrait être l'alliée du joueur et attaquer ses ennemis.
Le saviez-vous ?

En français, il n'y a jamais, jamais, JAMAIS, J-A-M-A-I-S, de cédille à un 'c' devant un 'e', un 'i' ou un 'y'. Jamais. Sans aucune exception. Pas la moindre. Zéro. Cédille devant e, i ou y = faute. Un point, c'est tout, c'est comme ça, ça a toujours été comme ça, et ça le sera toujours.

#7 mcab

mcab

Posté 01 juin 2006 - 08:57

Ok je comprends maintenant !! Merci :grin:

#8 Haafling

Haafling

Posté 01 juin 2006 - 16:42

Tu pourrais détailler un peu ton script pour les portes d'oblivion stp ca m'intéresse ?

#9 Twinsen

Twinsen

Posté 02 juin 2006 - 20:03

Je tiens à souligner l'existence du sort "Invocation extra 04" qui est vierge. Il n'invoque rien du tout. Je me sers souvent des ce sort là pour mes mods perso (notamment l'invocation de licorne (ou autre canasson) car c'est la classe le cheval dans la ville :) )

Modifié par Twinsen, 09 juin 2006 - 09:47.


#10 _Kalas_

_Kalas_

Posté 08 juillet 2006 - 23:23

Salut,

Je suis désolé d'uper un vieux topic comme ca mais c'est pour dire que pour moi ca marche pas.  :green:

Mon script c'est ca (c'est un sort):

scriptname xxx

begin onactivate

player.placeatme l'Editor ID de mon monstre 1, 1, 1

end

J'ai essayé le débuger mais il dit que ca marche et pourtant quand j'invoque ca marche pas...

Est-ce que quelqu'un sait pourquoi?

#11 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 09 juillet 2006 - 00:15

C'est un script d'effet magique, c'est ça ? Dans ce cas, il est normal que le bloc OnActivate ne soit jamais executé, car on n'active pas un effet ! :green:
Utilise un bloc "ScriptEffectStart" à la place, ça devrait se passer un peu mieux... :lol:

Pour l'instant, le débugueur n'affiche en effet pas d'erreur sur l'usage des blocs "classiques" dans les scripts d'effet magique, mais je changerai ça sous peu ! :huhu: Merci pour l'info. :?
Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#12 _Kalas_

_Kalas_

Posté 09 juillet 2006 - 13:45

Merci beaucoup! :)

j'essaie tout de suite!

Super ca marche  :beat: merci encore

par contre j'ai 2 nouveaux problème  :)

1) j'aimerais faire en sorte que le monstre que j'appelle me  suive mais je sais pas quel AI mettre... (j'ai regardé les monstres invoqués mais je suis pas sur qu'ils aient la bonne AI)

2) j'aimerais aussi que le monstre invoqué disparraisse au bour d'un certain temps mais là aussi je sais pas comment faire

Est que quelqu'un sait comment faire?

#13 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 09 juillet 2006 - 14:31

Coucou ! :beat:

1) Une Ai de type escort (ou follow) sera la plus adaptée, je pense ! :) N'oublie pas de cocher la case "Defensive combat".

2) Tu peux créer un timer dessus et le disable/le déplacer vers une cell poubelle au bout d'un certain temps. :)
Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#14 _Kalas_

_Kalas_

Posté 09 juillet 2006 - 15:57

salut et merci pour l'info

par contre :beat:  j'ai pas tout compris

L'AI je l'as met en follow mais pour la location je met rien? et pour la référence?

Sinon tu pourrais pas me donner un exemple de script utilisant le timer s'il te plait parce que je sais pas comment faire  :)  (je vais quand même regarder sur wiki).

Et enfin c'est quel commande pour déplacer placeatquelquechose (là aussi je vais regarder sur wiki  :) )?

ah et pour le "defensive combat" il n'y a pas moyen de mettre un offensive combat ( mettre l'agressivité à 100 peut être)?

#15 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 09 juillet 2006 - 16:27

Hello ! :beat: De rien ! :(

Alors dans l'ordre :

1) La référence que doit suivre ta bêbête est "player" ! :)

2) Pour utiliser un timer, tu dois déclarer une variable de type float et la mettre à jour avec la fonction GetSecondsPassed :
float monTimer

Begin GameMode
Set monTimer to ( monTimer + GetSecondsPassed )
; La valeur du timer indique maintenant la durée en seconde depuis la première execution du script
End

3) La fonction pour placer ta bestiole est PlaceAtMe.

4) Par "combat défensif", il faut comprendre que ton monstre va défendre le joueur s'il est attaqué uniquement et n'attaquera pas de son propre chef, sauf si elle est attaquée en premier (cf le Wiki ElderScrolls pour plus de détails ! :)).
Si tu mets l'aggressivité à 100 sans activer le combat défensif, ta bête va attaquer tout le monde autour d'elle, pas glop ! :( (à moins que ce ne soit ton objectif, bien sur ! :))
Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#16 _Kalas_

_Kalas_

Posté 09 juillet 2006 - 22:05

Ok merci  :)

je programmé mais pas encore testé mais ca devrait marcher.

Par contre (et oui encore un problème  :beat:  ) je sais pas comment le faire disparaitre ou le déplacer car il n'a pas une Ref unique....

Ya un problème pour le timer. Il ne marche que sur begin gamemode.

mon script marche pas:

Scriptname ZCE2

begin scriptEffectStart

player.placeatme ZCdH, 1, 5, 1

end

begin gamemode

Float Timer

Set Timer to 25
if timer > 0
set timer to timer - getSecondsPassed
endif

if timer == 0
player.placeatme ZCdH, 10, 5, 1
endif

end


non c'est bon en fait j'ai changé un peu mon script:

Scriptname ZCE2

Float Timer
short init

begin scriptEffectStart

player.placeatme ZCdH, 1, 5, 1

end

begin GameMode
if init == 0
set timer to 25
set init to 1
else
if timer > 0
set timer to timer - getSecondsPassed
       else
player.placeatme ZCdH 10, 1, 1
endif
endif
end

#17 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 09 juillet 2006 - 22:12

Une référence doit être unique, je pense que tu confonds avec l'ID ! :? Tu peux placer deux créatures ayant l'ID "Poisson", et les différencier en leur donnant respectivement les références "PoissonRef1" et "PoissonRef2". :evil:

Quand à ton script, normal que le timer ne fonctionne pas : un script d'effet magique n'est executé que quand l'effet magique est actif (c'est à dire sur la durée du sort, qui est quasi-instantanée dans le cas d'une invocation). Il faut que tu mettes ton timer sur un script d'objet attaché à ta créature invoquée ! :huhu:
Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#18 _Kalas_

_Kalas_

Posté 09 juillet 2006 - 22:18

Justement, si je fait une commande disable il me faut une référence précise or placeatme place des objets sans ref...

Il faudrait donc que je mette un script sur la créature mais c'est le même problème s'il n'a pas de ref je ne peut pas faire de disable... a moins qu'il y a une commande de teleport....

#19 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 09 juillet 2006 - 22:20

Pas besoin de référence précise, si le script est attaché à la créature et qu'aucune autre référence n'est précisée, il prendra par défaut la référence de la créature sur laquelle il se trouve ! :?
Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#20 _Kalas_

_Kalas_

Posté 09 juillet 2006 - 22:24

Ah ok super!  :huhu:

J'essairai demain car ca me gonfle de rouvrir l'éditeur et oblivion maintenant  :?

Donc un truc comme ca lier à la créture devrait la faire disparaitre en 25 sec:

Scriptname ZCE3

Float Timer
short init

begin GameMode
if init == 0
           set timer to 25
           set init to 1
else
           if timer > 0
                     set timer to timer - getSecondsPassed
          else
                     disable
           endif
endif

end

je ferai ca demain.... mais normallement elle disparait même dans la nature avec ca....

#21 Nenfëa

Nenfëa

    Le poisson bavard de Kalendaar


Posté 09 juillet 2006 - 22:39

C'est tout à fait ça ! :? Je te conseille tout de même de téléporter ta créature dans une cellule poubelle, car même si elle est disabled, son script continuera de tourner et de consommer de la mémoire vive... :huhu: De plus, tu peux mettre un Return pour éviter que le timer ne continue de tourner. :evil:

Ca donnerait quelque chose comme :
Scriptname ZCE3

Float Timer
short init

begin GameMode
	if ( init == 2 )
		Return
	endif
	if init == 0 
		set timer to 25 
		set init to 1 
	else 
		if timer > 0
			set timer to timer - getSecondsPassed 
		else 
			MoveTo Reference_d_un_XMarker_dans_ta_cell_poubelle
			disable
			Set init to 2
		endif 
	endif 
end

Nenfëa

- Les yeux, Bouh, vise les yeux!
- Pouiiiiiic!!!

Le monde de Gilbertus devenu réalité : Kalendaar!
Il était une fois un site vachement bien avec plein de nistoires dessus... ah, vous la connaissez déjà ?!

Wiwi d'or 2006 du plus serviable ! Tadaaaaaaaa !

#22 _Kalas_

_Kalas_

Posté 10 juillet 2006 - 08:53

Super tout marche!!!!!  :green: (enfin)

Merci beaucoup Nenfëa  :green:

(donc normalement le script s'est arrêter, le timer aussi et il ne devrait pas y avoir de ralentissement)




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

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