[SCRIPT] - Créature utilise furtivité comme son maître

Répondre
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne

RESOLU [SCRIPT] - Créature utilise furtivité comme son maître

.

Message par Faust »

Bonsoir,

Je voudrai que la créature invoquée par mon personnage utilise furtivité lorsque mon héro l'utilise, et ce tout en suivant mon héro.

J'ai essayé le script suivant:


This action instructs the active creature to attempt to Hide in Shadows. This action can be used for any creature (not just thieves) though success in hiding is dependent on points in the Stealth skill. A hidden creature is treated as STATE_INVISIBLE.

IF
!See([EVILCUTOFF])
OR(2)
!StateCheck(Myself,STATE_INVISIBLE)
!StateCheck(Myself,STATE_IMPROVEDINVISIBLITY)
THEN
RESPONSE #100
Hide()
END

en modifiant:

IF
See(LastSummonerOf(Myself))
StateCheck(LastSummonerOf(Myself),STATE_INVISIBLE)
THEN
RESPONSE #100
Hide()
MoveToObjectFollow(LastSummonerOf(Myself))
END

Le problème est qu'après avoir utilisé la furtivité correctement une fois, la créature ne réutilise pas malgré que mon héro le fasse mais continue à le suivre, et ce tout le temps de l'invocation de la créature.
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

Jamais testé ce genre de scripts, mais mon petit doigt me dit que ça provient de l'action MoveToObjectFollow(LastSummonerOf(Myself)).

Pour le confirmer. Teste ton script en laissant ton perso immobile (puis en commentant cette ligne). Si j'ai vu juste, la créature convoquée agira comme prévu. Il faudra alors trouver une parade à cette action.

De mémoire, je dispose d'un script (écrit il y a longtemps) permettant à un PNJ de suivre le groupe dans un donjon. Je pourrai te le rechercher ce soir.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Pélagie
Adepte de Grondemarteau
Ogre
Messages : 209
Enregistré le : dim. 18 juil. 2004, 15:55
Localisation : In my wonderland
Contact :
Statut : Hors ligne
.

Message par Pélagie »

Faust a écrit :Bonsoir,

Je voudrai que la créature invoquée par mon personnage utilise furtivité lorsque mon héro l'utilise, et ce tout en suivant mon héro.

J'ai essayé le script suivant:


This action instructs the active creature to attempt to Hide in Shadows. This action can be used for any creature (not just thieves) though success in hiding is dependent on points in the Stealth skill. A hidden creature is treated as STATE_INVISIBLE.

IF
!See([EVILCUTOFF])
OR(2)
!StateCheck(Myself,STATE_INVISIBLE)
!StateCheck(Myself,STATE_IMPROVEDINVISIBLITY)
THEN
RESPONSE #100
Hide()
END

en modifiant:

IF
See(LastSummonerOf(Myself))
StateCheck(LastSummonerOf(Myself),STATE_INVISIBLE)
THEN
RESPONSE #100
Hide()
MoveToObjectFollow(LastSummonerOf(Myself))
END

Le problème est qu'après avoir utilisé la furtivité correctement une fois, la créature ne réutilise pas malgré que mon héro le fasse mais continue à le suivre, et ce tout le temps de l'invocation de la créature.
Oui, comme le souligne Freddy, je pense que le problème vient du fait que le MoveObject annule le state (Hide).
Essaye de séparer ton script en deux parties:

IF
See(LastSummonerOf(Myself))
StateCheck(LastSummonerOf(Myself),STATE_INVISIBLE)
THEN
RESPONSE #100
Hide()
Continue()
END

IF
StateCheck(myself,INVISIBLE)
THEN
RESPONSE #100
MoveToObject(LastSummonerOf(Myself))
MoveToOffset([2.3]) //là tu mets la valeur que tu veux, cela permet à la créature de ne pas coller aux fesses du perso mais de rester un peu éloignée
END

Si ça ne marche pas, tu peux toujours créer un sort permanent d'invisibilité, que tu déclencheras via script sur la créature lorsque le perso sera furtif, et que tu annuleras de la même manière lorsque le perso retournera en state normal.
Demi-elfe aquatique

Groupie de Bioware
:girl_in_love:
Avatar du membre
Freddy_Gwendo
Adepte de Grondemarteau
Orbe ancien
Messages : 5877
Enregistré le : sam. 23 avr. 2011, 00:26
Localisation : Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
Statut : Hors ligne
.

Message par Freddy_Gwendo »

J'ai un doute sur l'utilisation de la condition

Code : Tout sélectionner

IF
    See(LastSummonerOf(Myself))
    StateCheck(LastSummonerOf(Myself),STATE_INVISIBLE)
THEN
La logique voudrait qu'elle ne soit jamais remplie : on ne voit pas l'invisible !

Mais je peux me tromper, les lois de l'IE étant ce qu'elles sont...
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Avatar du membre
Faust
Adepte de Grondemarteau
Loup noir
Messages : 291
Enregistré le : mer. 15 avr. 2009, 12:04
Localisation : Wherever I may roam
Statut : Hors ligne
.

Message par Faust »

Freddy_Gwendo a écrit :Jamais testé ce genre de scripts, mais mon petit doigt me dit que ça provient de l'action MoveToObjectFollow(LastSummonerOf(Myself)).

Pour le confirmer. Teste ton script en laissant ton perso immobile (puis en commentant cette ligne). Si j'ai vu juste, la créature convoquée agira comme prévu. Il faudra alors trouver une parade à cette action.

De mémoire, je dispose d'un script (écrit il y a longtemps) permettant à un PNJ de suivre le groupe dans un donjon. Je pourrai te le rechercher ce soir.
Tu as raisons! Mais du coup la créature ne suis plus le personnage et reste indéfiniment invisible (furtive). Si ça ne te dérange pas avec plaisir, ça me servira surement, mais puisque j'ai trouvé une solution, je ne veux pas te faire fouiller pour rien, à l'occasion tu peux me l'envoyer et je le garde en mémoire? ^^

Pélagie a écrit :Oui, comme le souligne Freddy, je pense que le problème vient du fait que le MoveObject annule le state (Hide).
Essaye de séparer ton script en deux parties:

IF
See(LastSummonerOf(Myself))
StateCheck(LastSummonerOf(Myself),STATE_INVISIBLE)
THEN
RESPONSE #100
Hide()
Continue()
END

IF
StateCheck(myself,INVISIBLE)
THEN
RESPONSE #100
MoveToObject(LastSummonerOf(Myself))
MoveToOffset([2.3]) //là tu mets la valeur que tu veux, cela permet à la créature de ne pas coller aux fesses du perso mais de rester un peu éloignée
END

Si ça ne marche pas, tu peux toujours créer un sort permanent d'invisibilité, que tu déclencheras via script sur la créature lorsque le perso sera furtif, et que tu annuleras de la même manière lorsque le perso retournera en state normal.
Super en adaptant ton script j'ai réussi à tout garder:

IF
See(LastSummonerOf(Myself))
StateCheck(LastSummonerOf(Myself),STATE_INVISIBLE)
THEN
RESPONSE #100
Hide()
Continue()
END

IF
StateCheck(Myself,STATE_INVISIBLE)
THEN
RESPONSE #100
MoveToObjectFollow(LastSummonerOf(Myself))
END

-> La créature se met invisible comme son invocateur, puis le suit tout le temps de son invisibilité. MovetoObjectFollow permet de garder une distance entre la créature et l'objet suivit contrairement à MoveToObject qui fait que la créature percute l'objet.




IF
ActionListEmpty()
See(LastSummonerOf(Myself))
THEN
RESPONSE #100
MoveToObjectFollow(LastSummonerOf(Myself))
END


-> ensuite j'ai mis ce script pour que la créature continue à suivre l'invocateur même si celui-ci n'est pas invisible.

Freddy_Gwendo a écrit :J'ai un doute sur l'utilisation de la condition

Code : Tout sélectionner

IF
    See(LastSummonerOf(Myself))
    StateCheck(LastSummonerOf(Myself),STATE_INVISIBLE)
THEN
La logique voudrait qu'elle ne soit jamais remplie : on ne voit pas l'invisible !

Mais je peux me tromper, les lois de l'IE étant ce qu'elles sont...
Je suis d'accord sur ce point, c'est pour ça que ma créature à la capacité de voir ce qui est invisible (comme les dragons, vu que c'est plus ou moins un dragon :D ).

Un grand merci pour votre précieuse aide!
[h=6]"Wrath is the burden of those who haven't faith in humanity but there's no mean to avoid it. I guess it's my choice, just try to stand it."[/h]Wherever I May Roam.
Répondre

Retourner vers « Scripts »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité