Aller au contenu


[Non Résolu] Récupérer Le Lanceur D'Une Invocation


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

#1 beeratwork

beeratwork

Posté 03 août 2010 - 08:18

Est-il possible de récupérer la référence du mage qui à lancé un sort d'invocation via son invocation ?

J'explique :
1. Le méchant sorcier invoque un squelette
2. Mon arme est enchantée pour faire plus de dégâts sur les invocations vanilla
3. Je tue l'invocation et à ce moment j'aimerais bien que le sorcier subisse des dégâts

Mais apparement, faire "set Parent to Target.GetParentRef" ne fonctionne pas (Target est la cible, l'invocation donc). Je ne sais pas trop comment faire.

Pourtant, lorsqu'un personnage invoque un squelette, on a bien un texte du genre "Squelette's NomProprio"

Modifié par beeratwork, 05 août 2010 - 06:21.


#2 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 03 août 2010 - 09:35

Bonjour,


Comme ça se vérifie en deux secondes dans le jeu avec la console, une créature invoquée n'a ni parent, ni propriétaire.

Mais il y a des gens qui se sont déjà occupés de cela, et on créé leur propre fonction à l'aide d'OBSE, ici.

#3 beeratwork

beeratwork

Posté 03 août 2010 - 10:07

Merci Shadow', mais j'ai pensé après avoir posté qu'il devait peut-être exister "IsSummoned" comme pour "IsCreature" et j'ai donc trouvé "IsSummon" et "GetSummoner"

Je dois juste tester ceci maintenant :
scn AARMarket00ENUniqueSharper00KillSummonScript

; Script MagicEffect // MagicEffect script
;
; Script pour tuer une invocation et infliger des dégâts à l'invocant.
; Script to kill a summon and inflicts damages to the summoner.

ref  Target
ref  Summoner
short Shoot
short random
short HealthDamage

Begin ScriptEffectStart
 set Target to GetSelf
 set Summoner to Target.GetSummoner
 set random to GetRandomPercent
 set HealthDamage to ((-1) * Target.GetActorValue Health * (random/200))
; Invocation : Tuer la cible ou infliger des dégâts // Summon : Kill the target or inflict damages
 if (Target.IsSummon == 1)
  if (random < 25)
   Target.Kill
  else
   Target.ModActorValue Health HealthDamage
  endif
; Pas d'invocation : Infliger des dégâts ou rien // No summon : Inflict damages or nothing
 else
  if (random <= 25)
   Target.ModActorValue Health HealthDamage
  endif
 endif
 set Shoot to 0 
End

Begin GameMode
; Cible morte, dégats sur l'invoquant // Target dead, damages on the summoner
 if (Shoot == 0 && Target.GetDead == 1)
  set Shoot to 1
  if (random <= 50)
   set HealthDamage to (HealthDamage/2)
   Summoner.ModActorValue Health HealthDamage
  endif
 endif
End



#4 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 03 août 2010 - 10:13

Le bloc GameMode ne fonctionne pas dans un effet de script.

#5 beeratwork

beeratwork

Posté 03 août 2010 - 10:41

Heu ? As-tu déjà essayé ou bien tu as cru les tutos ? En fait , si je me souviens bien dans mes souvenirs lointains, c'est en voulant faire un compteur de créature tuée que je me suis rendu compte de ça : je crois que l'enchantement de croc du matin utilise game mode.

D'ailleur tu peux essayer ce mod-ci (toujours en test seulement) : la vue trouble fonctionne bien et j'utilise un bon gros bloc game mode !

Atention : J'ai oublié de dire que si tu tiens à tester le module il te faut au moin le farmerslife (v6) et qu'il y a une boîte au quartier du marché avec le nécessaire dedans et le readme est aussi dans la boîte. Je n'ai pas encore testé l'évolution des maladies au fur et à mesure des jours qui passent par contre.

Modifié par beeratwork, 03 août 2010 - 10:54.


#6 Shadow she-wolf

Shadow she-wolf

    Le katana de la GBT


Posté 03 août 2010 - 11:37

 beeratwork, le 03 août 2010 - 10:41, dit :

Heu ? As-tu déjà essayé
Non.

Car il n'y a pas d'intérêt particulier à tester cela: le bloc ScriptEffectUpdate est éxécuté à chaque frame pendant la durée du sort. Il est fait spécialement pour cela.

 beeratwork, le 03 août 2010 - 10:41, dit :

ou bien tu as cru les tutos ?
J'ai surtout lu trop vite.
C'est effectivement expliqué en note de bas de page.

 beeratwork, le 03 août 2010 - 10:41, dit :

je crois que l'enchantement de croc du matin utilise game mode.
Non.



 beeratwork, le 03 août 2010 - 10:41, dit :

Atention : J'ai oublié de dire que si tu tiens à tester le module il te faut au moin le farmerslife (v6) et qu'il y a une boîte au quartier du marché avec le nécessaire dedans et le readme est aussi dans la boîte. Je n'ai pas encore testé l'évolution des maladies au fur et à mesure des jours qui passent par contre.
Effectivement, ça semble fonctionner.
Par contre, tu peux te passer de ta plétore de GetSelf qui ne servent strictement à rien dans les effets scriptés. Les fonctions, sauf précision du contraire, sont automatiquement appliquées à l'objet sous l'effet du sort.

#7 beeratwork

beeratwork

Posté 05 août 2010 - 06:19

Ok je vais nettoyer un peu mes scripts alors.
Sinon, l'intérêt d'utiliser GameMode, c'est quand tu veux utiliser ScriptEffectFinish. J'ai déjà eu plusieurs fois des problèmes en voulant utiliser ScriptEffectFinish et ScriptEffectUpdate.

C'est marrant ça ! Lorsque j'ai voulu compiler mon script "GetSummoner" et "IsSummon" n'ont pas été reconnue ! Un tour sur le tescwiki, et là surprise : article suprimé ! Je vais voir dans l'OBSE command doc de la version 18 (actuelle) et pas de IsSummon ni de GetSummoner ! Au lieu d'utiliser IsSummon, il faut utiliser IsSummonable. Problème : Existe t'il une autre fonction permettant de récupérer l'invocateur ?

Modifié par beeratwork, 05 août 2010 - 06:20.





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

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