Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

[SCRIPT] Créature qui suit automatiquement un personnage

Verrouillé
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

[SCRIPT] Créature qui suit automatiquement un personnage

.

Message par Faust »

Bonsoir,

Le Script "Control" permet à une créature de suivre automatiquement CHARNAME lorsque le bouton "S" est pressé.
► Afficher le texte
J'ai essayer d'ajouter un effet à une créature afin que celle-ci suive automatiquement le personnage après invocation, sans avoir à presser une quelconque touche:

Script: Set Global Variable [265]

Cependant je n'arrive pas à obtenir quoi que ce soit, est ce qu'il est effectivement possible d'utiliser ce script pour faire en sorte que la créature invoquée suive automatiquement son maitre ? (Si possible le Casteur original, pas CHARNAME).


Faust
[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 »

C'est normal que ton script ne fonctionne pas : il se contente d'attribuer une valeur à une variable et d'afficher un texte.
De plus, l'effet #265 modifie une variable GLOBALE, et ton script utilise une variable LOCALE.

Que souhaites-tu-faire exactement ? Convoquer une créature pendant un temps limité (combien) qui suive toujours son invocateur ou bien convoquer une créature de manière permanente ?
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 :C'est normal que ton script ne fonctionne pas : il se contente d'attribuer une valeur à une variable et d'afficher un texte.
De plus, l'effet #265 modifie une variable GLOBALE, et ton script utilise une variable LOCALE.

Que souhaites-tu-faire exactement ? Convoquer une créature pendant un temps limité (combien) qui suive toujours son invocateur ou bien convoquer une créature de manière permanente ?
Salut Freddy,

Merci pour ton attention.

Je souhaite invoquer une créature qui automatiquement suive toujours son invocateur jusqu'à la fin de sa convocation. En revanche que la créature commence à suivre son invocateur qu'à partir d'une certaine distance pour ne pas entrer en conflit avec son script de combat. La distance paramétrée avec le script "Control" est légèrement trop courte (vraiment légèrement).

J'ai mis comme Defaut script "Mage2" et comme General script "Control" pour la forme initiale, et ai mis comme Defaut script "FIGMAG10" et comme General script "Control" pour la transformation.

La créature ne revient pas vers le personnage désiré mais "CHARNAME" lorsqu'elle s'éloigne trop de celui-ci, mais uniquement si j'ai pressé "S" au préalable pour activer le mode accompagnement.

La créature avant transformation à un temps de convocation de 360 secondes

La transformation dure 60 secondes (en fait le sort de transformation désinvoque la première créature pour en invoquer une autre pendant 60 secondes)

La période de 60 secondes passée la créature est automatiquement désinvoquée et la créature avec sa forme initiale est de nouveau invoquée pendant 60 secondes après quoi elle disparaît complètement.
[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
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 :C'est normal que ton script ne fonctionne pas : il se contente d'attribuer une valeur à une variable et d'afficher un texte.
De plus, l'effet #265 modifie une variable GLOBALE, et ton script utilise une variable LOCALE.

Que souhaites-tu-faire exactement ? Convoquer une créature pendant un temps limité (combien) qui suive toujours son invocateur ou bien convoquer une créature de manière permanente ?
J'ai aussi essayé le script FOLLOW et FOLLOW2, l'un ne fonctionne pas, le second fonctionne à moitié (la créature suis CHARNAME, mais après l'avoir atteint une fois, il ne l'accompagne plus du tout).

Existe il des scripts afin de scripter exactement ce que je souhaite ou mieux vaut que je me contente du script CONTROL qui se rapproche un peu de ce que je veux?
[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 »

Dans ce cas, je te conseille d'abandonner les scripts du jeu et d'en créer d'autres que tu appliqueras à tes créatures. Rassure-toi, pour faire ce que tu souhaites, ces scripts sont très courts.
Comme toujours, en matière de modding, rien ne sert d'essayer de réinventer la roue : tu trouveras ton bonheur dans des mods qui font déjà la même chose. ;)

Tu as l'embarras du choix, mais jette un œil au hasard à Animal Companions, Golem Construction for Spellcasters et W_PackMule, tous trois traduits. Ils concernent des créatures qui deviennent familiers, mais tu peux te passer de la partie "je deviens familier" et conserver les blocs de scripts qui leur permettent de suivre automatiquement leur maître.
Tu trouveras leur liens de téléchargement ici.
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 :Dans ce cas, je te conseille d'abandonner les scripts du jeu et d'en créer d'autres que tu appliqueras à tes créatures. Rassure-toi, pour faire ce que tu souhaites, ces scripts sont très courts.
Comme toujours, en matière de modding, rien ne sert d'essayer de réinventer la roue : tu trouveras ton bonheur dans des mods qui font déjà la même chose. ;)

Tu as l'embarras du choix, mais jette un œil au hasard à Animal Companions, Golem Construction for Spellcasters et W_PackMule, tous trois traduits. Ils concernent des créatures qui deviennent familiers, mais tu peux te passer de la partie "je deviens familier" et conserver les blocs de scripts qui leur permettent de suivre automatiquement leur maître.
Tu trouveras leur liens de téléchargement ici.
Super, merci Monsieur!

Est-ce que ces mods fonctionnent avec BGT?
Edit: -> Animal Companions oui/ Golem Contruction For Spellcasters non.

Je test les différents scripts dès que j'ai du temps et te fais un retour.

Edit: La créature suit bien un personnage sans aucune intervention de celui-ci avec Animal Companions, en revanche peut importe qui l'invoque, il suit toujours CHARNAME. Est-ce normal qu'il ne suive pas le rodeur/ druide?
[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 »

Normal, seul CHARNAME peut appeler un animal.

Si ce n'est déjà fait, je te conseille de télécharger IESDP, la "Bible" des moddeurs, qui recense tous les fichiers des jeux (BG, BG2, IWD, PsT, EE), leur contenu et leur structure. Tu peux soit le consulter en ligne, soit le désarchiver sur ton DD (conseillé pour l'avoir sous la main en permanence).

Parmi ces derniers, dans l'onglet "Identifiers" (fichiers IDS), tu trouveras la liste des "Objets", c'est-à-dire la liste des objets auxquels les commandes de scripts s'appliquent.

Dans ton cas, il suffit de remplacer Player1 par LastSummonerOf(Myself) pour que ça fonctionne comme tu le souhaites. ^^
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 :Normal, seul CHARNAME peut appeler un animal.

Si ce n'est déjà fait, je te conseille de télécharger IESDP, la "Bible" des moddeurs, qui recense tous les fichiers des jeux (BG, BG2, IWD, PsT, EE), leur contenu et leur structure. Tu peux soit le consulter en ligne, soit le désarchiver sur ton DD (conseillé pour l'avoir sous la main en permanence).

Parmi ces derniers, dans l'onglet "Identifiers" (fichiers IDS), tu trouveras la liste des "Objets", c'est-à-dire la liste des objets auxquels les commandes de scripts s'appliquent.

Dans ton cas, il suffit de remplacer Player1 par LastSummonerOf(Myself) pour que ça fonctionne comme tu le souhaites. ^^
Je vais regarder ça.

Par rapport à ce que tu m'as dit:"seul CHARNAME peut appeler un animal", ca veut dire que peu importe le script, la créature ne suivra jamais que CHARNAME, personne d'autre?
[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 »

Ça signifie :

1. Que seul CHARNAME peut appeler un animal (à condition d'être druide ou rôdeur).
2. L'animal n'obéit qu'à CHARNAME, donc ne suit que lui (ou elle). ;)
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Cocrane
Adepte de Grondemarteau
Ogre mage
Messages : 1328
Enregistré le : dim. 21 mars 2010, 12:03
Localisation : Paris
Contact :
Statut : Hors ligne
.

Message par Cocrane »

Salut Faust,
je n'ai pas lu en détail tous les échanges mais voici le code que j'ai pour qu'un Golem me suive gentillement. Chaque action est liée à un ordre (via un clic bouton capacité spéciale)

Il suit toujours le CHARNAME, à voir si ça peut t'aider. Pour la distance, à tester avec le mot RANGE(PERSONNAGE,DISTANCE).

IF
GLOBAL("suis","GLOBAL",1)
THEN
RESPONSE #100
MoveToObjectFollow(PLAYER1)
continue()
END

Tu peux faire tourner un TIMER pour lancer un test régulier sur la distance et tester si la créature reste sur place ou si elle avance car pas à bonne distance.

Il y a p.e plus simple mais MoveToObjectFollow, pour ma part, avait tendance à tourner en boucle et le Golem collait le CHARNAME.

Cocrane
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 :Normal, seul CHARNAME peut appeler un animal.

Si ce n'est déjà fait, je te conseille de télécharger IESDP, la "Bible" des moddeurs, qui recense tous les fichiers des jeux (BG, BG2, IWD, PsT, EE), leur contenu et leur structure. Tu peux soit le consulter en ligne, soit le désarchiver sur ton DD (conseillé pour l'avoir sous la main en permanence).

Parmi ces derniers, dans l'onglet "Identifiers" (fichiers IDS), tu trouveras la liste des "Objets", c'est-à-dire la liste des objets auxquels les commandes de scripts s'appliquent.

Dans ton cas, il suffit de remplacer Player1 par LastSummonerOf(Myself) pour que ça fonctionne comme tu le souhaites. ^^
J'ai essayé de changer Player1 par LastSummonerOf(Myself) mais une fois sauvegardé et que je recharge mon script, celui-ci est changé en ([PC.GENERAL_ITEM.HUMAN])
Cocrane a écrit :Salut Faust,
je n'ai pas lu en détail tous les échanges mais voici le code que j'ai pour qu'un Golem me suive gentillement. Chaque action est liée à un ordre (via un clic bouton capacité spéciale)

Il suit toujours le CHARNAME, à voir si ça peut t'aider. Pour la distance, à tester avec le mot RANGE(PERSONNAGE,DISTANCE).

Tu peux faire tourner un TIMER pour lancer un test régulier sur la distance et tester si la créature reste sur place ou si elle avance car pas à bonne distance.

Il y a p.e plus simple mais MoveToObjectFollow, pour ma part, avait tendance à tourner en boucle et le Golem collait le CHARNAME.

Cocrane
Merci pour ton aide Cocrane.

J'essaye de faire en sorte que mon invocation suive le personnage qui l'a invoquée et non pas CHARNAME (dans le background de mon personnage la créature est liée à lui et non pas à CHARNAME).

Lorsque j'utilise ton script ma créature reste immobile :$
[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 »

Petite question en passant : comment modifies-tu et sauvegardes-tu ton script ? Quel utilitaire utilises-tu ?
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 :Petite question en passant : comment modifies-tu et sauvegardes-tu ton script ? Quel utilitaire utilises-tu ?
J'ai essayé avec DLCTEP et Near Infinity. Infinity Script Editor me donne une erreur lorsque je le lance.
[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 »

Il faut que tu décompresses le fichier bcs (script compilé et lu par le jeu) en fichier baf (script "brut" non compilé, qui n'est pas reconnu par le jeu), que tu effectues tes modifs dans le fichier baf, que tu sauvegardes tes modifications dans le fichier baf, et enfin que tu compiles le fichier baf en fichier bcs.
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 :Il faut que tu décompresses le fichier bcs (script compilé et lu par le jeu) en fichier baf (script "brut" non compilé, qui n'est pas reconnu par le jeu), que tu effectues tes modifs dans le fichier baf, que tu sauvegardes tes modifications dans le fichier baf, et enfin que tu compiles le fichier baf en fichier bcs.
Malheureusement ça ne change rien, le Script source se sauvegarde bien, il reste le même après l'avoir réouvert, mais après conversion je me retrouve avec le même problème, voici le résultat après conversion:

IF
!TimerExpired(1)
See([PC])
!Range([PC],4)
THEN
RESPONSE #100
MoveToObject([PC])
END


au lieu de:

IF
See(LastSummonerof(Myself))
!Range(LastSummonerof(Myself),4)
THEN
RESPONSE #100
MoveToObject(LastSummonerof(Myself))
END
[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 »

Et avec LastSummonerOf ? Le respect de la casse est primordial. ;)
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 :Et avec LastSummonerOf ? Le respect de la casse est primordial. ;)
Malheureusement j'ai le même résultat:

IF
See([PC.GENERAL_ITEM.HUMAN])
!Range([PC.GENERAL_ITEM.HUMAN],4)
THEN
RESPONSE #100
MoveToObject([PC.GENERAL_ITEM.HUMAN])
END

au lieu de:

IF
See(LastSummonerOf(Myself))
!Range(LastSummonerOf(Myself),4)
THEN
RESPONSE #100
MoveToObject(LastSummonerOf(Myself))
END



C'est entièrement ma faute, je faisais à moitié les choses avec Near Infinity et le reste avec DLTCEP, du coup ça ne marchait pas. Vraiment tout faire avec Near Infinity et ça marche parfaitement.

DLTCEP ne retranscrit pas correctement les modifications de scripts. Avec DLTCEP ma créature venait même à m'attaquer au lieu de l'ennemi si je venais à changer son comportement fasse aux ennemis.

Merci Messieurs 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.
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 »

Avant de résoudre ton problème de création de fichiers *, essaie ceci : GWEssai a été créé avec WeiDU, GWEssai2 avec NI.

* : je subodore soit un mauvais paramétrage de DLTCEP, soit une mauvaise utilisation de NI, soit une installation olé olé... ;)

Édit : tant pis, je viens de voir que tu as modifié ton message précédent. :$
Fichiers joints
GWEssai.7z
(274 Octets) Téléchargé 62 fois
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 :Avant de résoudre ton problème de création de fichiers *, essaie ceci : GWEssai a été créé avec WeiDU, GWEssai2 avec NI.

* : je subodore soit un mauvais paramétrage de DLTCEP, soit une mauvaise utilisation de NI, soit une installation olé olé... ;)

Édit : tant pis, je viens de voir que tu as modifié ton message précédent. :$
Un grand merci Freddy pour ta patience et ta 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.
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 :Avant de résoudre ton problème de création de fichiers *, essaie ceci : GWEssai a été créé avec WeiDU, GWEssai2 avec NI.

* : je subodore soit un mauvais paramétrage de DLTCEP, soit une mauvaise utilisation de NI, soit une installation olé olé... ;)

Édit : tant pis, je viens de voir que tu as modifié ton message précédent. :$
Par curiosité, est-il possible d'adapter la commande MoveToObject à un personnage qui a un nom spécifique? Par exemple si je veux qu'une personne invoque une créature qui suive uniquement une autre personne qui n'est pas CHARNAME? Y à t'il un moyen que la créature suive le personnage parce qu'il s'appelle Imoen ou Minsc? Ou parce qu'il y a un objet qu'un personnage possède dans son inventaire? Ou encore parce qu'il a une classe spécifique?


MoveToObject fait entrer la créature en colission avec le personnage qu'elle suit.

MoveToObjectFollow permet de garder une distance entre la créature et le personnage qu'elle suit, ce qui empêche la collision.


IF
Die()
THEN
RESPONSE #100
ReallyForceSpellDead(Myself,ILLUSION_DEATH)
DestroySelf()
END

Permet de faire disparaître la créature comme une invocation lorsqu'elle meurt.
[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.
Verrouillé

Retourner vers « Scripts »

Qui est en ligne

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