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é...
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] Diverses questions pour gérer une créature supplémentaire dans le groupe
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
[SCRIPT] Diverses questions pour gérer une créature supplémentaire dans le groupe
.
Le Charname a une ou plusieurs créatures en plus de son groupe.
Exemple:
- achat d'un golem.
- chef d'une expédition avec un petit groupe de soldats à gérer.
Ces créatures:
- suivront le Charname sur la carte.
- participeront aux combats.
- recevront des consignes (rester ici, défendre/attaquer une position, une personne etc...)
Comment coder intelligemment:
- le changement de carte et être suivi par ces créatures?
- le changement de consigne?
Je note qu'une créature peut avoir le statut d'allié ou de familier.
On peut tester sur chaque carte si on a des alliés à faire apparaitre mais ça me semble très lourd de traiter toutes les cartes.
Huxa avait un mod Mercenaires en cours. Mais on a plus trop de nouvelles et j'ignore si il avait trouvé une solution stable.
Qui a des idées / infos sur le sujet?
Exemple:
- achat d'un golem.
- chef d'une expédition avec un petit groupe de soldats à gérer.
Ces créatures:
- suivront le Charname sur la carte.
- participeront aux combats.
- recevront des consignes (rester ici, défendre/attaquer une position, une personne etc...)
Comment coder intelligemment:
- le changement de carte et être suivi par ces créatures?
- le changement de consigne?
Je note qu'une créature peut avoir le statut d'allié ou de familier.
On peut tester sur chaque carte si on a des alliés à faire apparaitre mais ça me semble très lourd de traiter toutes les cartes.
Huxa avait un mod Mercenaires en cours. Mais on a plus trop de nouvelles et j'ignore si il avait trouvé une solution stable.
Qui a des idées / infos sur le sujet?
- 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
.
Je passe en coup de vent et n'ai pas le temps de répondre à toutes tes questions, mais je viens de retrouver un vieux script que j'utilisais pour que "Reine" suive le groupe dans un certain nombre de cartes (elles les suivait aussi lorsqu'ils changeaient de carte) :
Ça ne répond pas à toutes tes questions mais, appliqué à Reine, ce script fonctionnait parfaitement.
Code : Tout sélectionner
IF
OR(7)
AreaCheck("GW0151") //
AreaCheck("GW0152") //
AreaCheck("GW0153") //
AreaCheck("GW0154") //
AreaCheck("GW0155") //
AreaCheck("GW0156") //
AreaCheck("GW0157") //
Global("GWDemons","GLOBAL",6) // Variable à partir de laquelle elle ne suit plus le groupe
NumInPartyAlive(6)
THEN
RESPONSE #100
MoveToObjectFollow(Player6)
MoveToObjectNoInterrupt(Player6)
Continue()
END
IF
OR(7)
AreaCheck("GW0151")
AreaCheck("GW0152")
AreaCheck("GW0153")
AreaCheck("GW0154")
AreaCheck("GW0155")
AreaCheck("GW0156")
AreaCheck("GW0157")
Global("GWDemons","GLOBAL",6)
NumInPartyAlive(5)
THEN
RESPONSE #100
MoveToObjectFollow(Player5)
MoveToObjectNoInterrupt(Player5)
Continue()
END
IF
OR(7)
AreaCheck("GW0151")
AreaCheck("GW0152")
AreaCheck("GW0153")
AreaCheck("GW0154")
AreaCheck("GW0155")
AreaCheck("GW0156")
AreaCheck("GW0157")
Global("GWDemons","GLOBAL",6)
NumInPartyAlive(4)
THEN
RESPONSE #100
MoveToObjectFollow(Player4)
MoveToObjectNoInterrupt(Player4)
Continue()
END
...
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Merci Freddy.
J'ai jeté un œil sur les échanges d'Huxa sur le sujet:
- la créature doit avoir reçu le code ACTIONOVERRIDE("NOM DE LA CREATURE",MakeGlobal())
- la ou les cartes concernées doivent avoir le code suivant:
Il y a aussi un script TP2 pour l'affecter à toutes les cartes pour la créature "haiare":
A priori ça marche aussi.
Il faut que je le teste.
J'ai jeté un œil sur les échanges d'Huxa sur le sujet:
- la créature doit avoir reçu le code ACTIONOVERRIDE("NOM DE LA CREATURE",MakeGlobal())
- la ou les cartes concernées doivent avoir le code suivant:
Code : Tout sélectionner
IF
Global("NOM DE LA CREATURE","GLOBAL",1) // Test créature pour signaler que la créature accompagne le groupe
!InActiveArea("NOM DE LA CREATURE")
!See("NOM DE LA CREATURE")
!Dead("NOM DE LA CREATURE")
THEN
RESPONSE #100
MoveGlobalObject("NOM DE LA CREATURE",Player1)
END
Code : Tout sélectionner
COPY_EXISTING_REGEXP GLOB ~^\([^xX].*\|[xX][^rR].*\|[xX][rR][^2].*\|[xX][rR]2[^46].*\)\.are$~ ~override~
PATCH_IF SOURCE_SIZE > 0x11b BEGIN
READ_ASCII 0x94 ~rsc~ //Area script
TO_LOWER rsc
PATCH_IF (~%rsc%~ STRING_EQUAL ~none~ = 0) AND (~%rsc%~ STRING_EQUAL ~~ = 0) BEGIN //If not a null script
PATCH_IF NOT VARIABLE_IS_SET $df(EVALUATE_BUFFER ~%rsc%~) BEGIN //And hasn't been buffered already
SPRINT $df(EVALUATE_BUFFER ~%rsc%~) ~%rsc%~ //Add to buffer
END
END ELSE BEGIN
SPRINT ~rsc~ ~%SOURCE_RES%~ //Area script
PATCH_IF FILE_EXISTS_IN_GAME ~%rsc%.bcs~ BEGIN
WRITE_ASCIIE 0x94 ~%rsc%~ #8 //Write it to the area file
SPRINT $df(EVALUATE_BUFFER ~%rsc%~) ~%rsc%~ //Add to buffer
END ELSE BEGIN
INNER_ACTION BEGIN
COPY_EXISTING ~haiare.bcs~ ~override/%rsc%.bcs~
END
WRITE_ASCIIE 0x94 ~%rsc%~ #8 //Write it to the area file
END
END
END
BUT_ONLY_IF_IT_CHANGES
ACTION_PHP_EACH df AS i => xs BEGIN //Extend all scripts in buffer
EXTEND_BOTTOM ~%xs%.bcs~ ~override/haiare.bcs~
END
A priori ça marche aussi.
Il faut que je le teste.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Le déplacement de la créature d'une carte à l'autre fonctionne bien avec le code:
Dans le cas du golem, je désire que Charname puisse lui donner des ordres :
- Suis moi!
- Reste ici!
- Tue !
- Protège-moi!
(si vous avez d'autres d'idées sympas, je suis à l'écoute!)
Je suppose qu'il faut ajouter une compétence innate pour chaque ordre via le code ACTIONOVERRIDE(PROTAGONIST,AddSpecialAbility("Nom du sort"))
Du coup, j'ai un problème avec la création du sort. Je pensais trouver un effet permettant de lancer un script qui agirait sur le golem (changement de valeur d'une variable ou un de lancer un SHOUT etc...).
A priori, la solution serait d'utiliser l'opcode #82 (0x82) Set AI Script [82]
Qui a une meilleure idée ?
Code : Tout sélectionner
IF
Global("NOM DE LA CREATURE","GLOBAL",1) // Test créature pour signaler que la créature accompagne le groupe
!InActiveArea("NOM DE LA CREATURE")
!See("NOM DE LA CREATURE")
!Dead("NOM DE LA CREATURE")
THEN
RESPONSE #100
MoveGlobalObject("NOM DE LA CREATURE",Player1)
END
- Suis moi!
- Reste ici!
- Tue !
- Protège-moi!
(si vous avez d'autres d'idées sympas, je suis à l'écoute!)
Je suppose qu'il faut ajouter une compétence innate pour chaque ordre via le code ACTIONOVERRIDE(PROTAGONIST,AddSpecialAbility("Nom du sort"))
Du coup, j'ai un problème avec la création du sort. Je pensais trouver un effet permettant de lancer un script qui agirait sur le golem (changement de valeur d'une variable ou un de lancer un SHOUT etc...).
A priori, la solution serait d'utiliser l'opcode #82 (0x82) Set AI Script [82]
On associe un fichier script à une créature si le sort est lancé.Parameter #1: Irrelevant
Parameter #2: Type
Description:
Sets the script type specified by the 'Type' value to the contents of the resource key.
Known values for 'Type' are:
0 OVERRIDE
1 AREA
2 SPECIFICS
4 CLASS
5 RACE
6 GENERAL
7 DEFAULT
NB. This effect can unset scripts from a creature, which can break the game.
Qui a une meilleure idée ?
- Isaya
- Adepte de Grondemarteau
- Planaire
- Messages : 6990
- Enregistré le : mar. 22 juil. 2003, 21:03
- Localisation : Plaisir
- Contact :
- Statut : Hors ligne
.
Le mod W_Packmule utilise tout simplement un dialogue pour donner des ordres à la mule, dont une partie ressemble à certains des tiens. C'est sans doute bien plus simple à mettre en oeuvre.
Et comme les ordres que tu envisages n'excluent pas une proximité avec le golem, un dialogue ne présenterait pas de contrainte.
Et comme les ordres que tu envisages n'excluent pas une proximité avec le golem, un dialogue ne présenterait pas de contrainte.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Merci Isaya pour ton retour. Je prends en note cette possibilité de donner effectivement des ordres par le biais d'un dialogue.
Le dialogue me gène un peu car le Charname va devoir se déplacer vers son Golem pour lui parler.
Exemple: Dans le cadre d'un combat, Le charname est en retrait et il veut donner un nouvel ordre à son Golem qui est en première ligne. Il doit aller au front.
Pour le moment, je travaille sur le fait de donner une compétence innate par ordre. Chaque ordre étant un SHOUT à part qui est interprété par le script du Golem.
1ier problème: je ne vois pas comment affecter une compétence innate sans gestion de charge. Est ce possible? Sinon il faut que je prévois un rechargement auto.
Celà s'accompagne d'un AddSpecialAbility et d'un son automatique...
2nd problème: j'ai à priori des conflits dans mon script et l'ordre n'est pas toujours suivi d'effet alors que si le script gère un seul ordre à la fois, ça marche.
Voilà où j'en suis.
Je viens d'éclater mon script en deux fichiers:
Script avec les shouts et un changement de variable en conséquence dans la case Script GENERAL (ancienne partie haute de mon code initial)
Script avec actions liés à chacune des variables dans la case Script DEFAUT. (ancienne partie basse=
Et ça marche, j'ai mes 4 ordres (Suis moi, restes ici, tues et protèges moi). Et je peux changer d'ordre et y revenir.
Je pense que j'ai raté un truc dans la logique de programmation des scripts... Car pour moi si on met tout dans un même script ça devrait marcher.
Le dialogue me gène un peu car le Charname va devoir se déplacer vers son Golem pour lui parler.
Exemple: Dans le cadre d'un combat, Le charname est en retrait et il veut donner un nouvel ordre à son Golem qui est en première ligne. Il doit aller au front.
Pour le moment, je travaille sur le fait de donner une compétence innate par ordre. Chaque ordre étant un SHOUT à part qui est interprété par le script du Golem.
1ier problème: je ne vois pas comment affecter une compétence innate sans gestion de charge. Est ce possible? Sinon il faut que je prévois un rechargement auto.
Celà s'accompagne d'un AddSpecialAbility et d'un son automatique...
2nd problème: j'ai à priori des conflits dans mon script et l'ordre n'est pas toujours suivi d'effet alors que si le script gère un seul ordre à la fois, ça marche.
Voilà où j'en suis.
Je viens d'éclater mon script en deux fichiers:
Script avec les shouts et un changement de variable en conséquence dans la case Script GENERAL (ancienne partie haute de mon code initial)
Script avec actions liés à chacune des variables dans la case Script DEFAUT. (ancienne partie basse=
Et ça marche, j'ai mes 4 ordres (Suis moi, restes ici, tues et protèges moi). Et je peux changer d'ordre et y revenir.
Je pense que j'ai raté un truc dans la logique de programmation des scripts... Car pour moi si on met tout dans un même script ça devrait marcher.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Petit bilan:
- la créature te suit d'une AREA à l'autre: OK
- la créature obéit aux ordres: Ok
- ordres en mode illimité; nok
Je ne sais pas si c'est possible de ne pas avoir de "charge" capacité spéciale. Sinon il faut qu'à chaque fois que la capacité est utilisée, elle soit recréé. Dans ce cas, l'ajout d'une capacité spéciale génère un son automatique et je ne sais pas l'enlever.
- icônes ordres:
Suis moi!: OK
Restes ici!: NOK
Tues!: NOK
Défends moi!: NOK
Il me reste 3 icônes à trouver. Si vous avez des propositions, je suis preneur.
- la créature te suit d'une AREA à l'autre: OK
- la créature obéit aux ordres: Ok
- ordres en mode illimité; nok
Je ne sais pas si c'est possible de ne pas avoir de "charge" capacité spéciale. Sinon il faut qu'à chaque fois que la capacité est utilisée, elle soit recréé. Dans ce cas, l'ajout d'une capacité spéciale génère un son automatique et je ne sais pas l'enlever.
- icônes ordres:
Suis moi!: OK
Restes ici!: NOK
Tues!: NOK
Défends moi!: NOK
Il me reste 3 icônes à trouver. Si vous avez des propositions, je suis preneur.
- 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
.
Envois-moi tes fichiers (sorts + icônes) : je verrai ce que j'ai en stock qui pourrait coller avec ce que tu as déjà choisi.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
- 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
.
OK, je vois, ce sont des icônes ressemblant assez à celles du jeu. Je plonge dans mes archives ce soir.
Quant au son, soit c'est celui qui est joué lorsque tu gagnes une capacité (notamment par script) et là tu es refait car il est hardcodé, soit il provient de tes sorts.
Par ailleurs, il y a peut-être moyen de la réattribuer par sort, d'où le besoin d'avoir tes fichiers de sorts pour voir si je peux les modifier en conséquence.
PS: Depuis quelques années, il est possible de mettre des sorts en pièces jointes dans les messages.
Quant au son, soit c'est celui qui est joué lorsque tu gagnes une capacité (notamment par script) et là tu es refait car il est hardcodé, soit il provient de tes sorts.
Par ailleurs, il y a peut-être moyen de la réattribuer par sort, d'où le besoin d'avoir tes fichiers de sorts pour voir si je peux les modifier en conséquence.
PS: Depuis quelques années, il est possible de mettre des sorts en pièces jointes dans les messages.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Oui, il parait qu'on peut faire pleins de choses avec les ordinateurs. Comme moder en s'arrachant les cheveux.
Pour le son, oui c'est celui lié à l'acquisition d'une capacité spéciale: ACTIONOVERRIDE(PROTAGONIST,AddSpecialAbility("SPIN527"))
Si c'est pas possible, je ferai avec.
Je suis plus gêné par la non possibilité d'avoir la capacité en illimité. (j'ai pas trouvé en tout cas).
OK, pour les icônes.
- Supprimer les capacités spéciales
Autre problème, (une solution est toujours suivi d'un problème! ). Si le golem est détruit, je désire supprimer les capacités spéciales de type ordre.
J'ai tenté, je compile et ça ne marche pas dans le jeu. (le sort est bien dans SPELL.IDS pourtant):
Code.baf: ACTIONOVERRIDE(PROTAGONIST,AddSpecialAbility("SPIN527"))
...
Spell.ids: 3527 SPORD11
...
Code.baf: REMOVESPELL("SPORD11")
Allez, utilisons la haute technologie !
Pour le son, oui c'est celui lié à l'acquisition d'une capacité spéciale: ACTIONOVERRIDE(PROTAGONIST,AddSpecialAbility("SPIN527"))
Si c'est pas possible, je ferai avec.
Je suis plus gêné par la non possibilité d'avoir la capacité en illimité. (j'ai pas trouvé en tout cas).
OK, pour les icônes.
- Supprimer les capacités spéciales
Autre problème, (une solution est toujours suivi d'un problème! ). Si le golem est détruit, je désire supprimer les capacités spéciales de type ordre.
147 RemoveSpell(I:Spell*Spell)
147 RemoveSpellRES(S:RES*)
This action removes one memorised indtance of the specified spell from the spellbook of the active creature. The spell can be an innate ability, a priest spell or a wizard spell, but must be listed in spell.ids.
Code : Tout sélectionner
IF
Global("KR_ANTI_PALADIN_CHANGE","LOCALS",1)
THEN
RESPONSE #100
RemoveSpell(PALADIN_LAY_ON_HANDS)
RemoveSpell(PALADIN_DETECT_EVIL)
RemoveSpell(PALADIN_PROTECTION_FROM_EVIL)
SetGlobal("KR_ANTI_PALADIN_CHANGE","LOCALS",2)
END
Code.baf: ACTIONOVERRIDE(PROTAGONIST,AddSpecialAbility("SPIN527"))
...
Spell.ids: 3527 SPORD11
...
Code.baf: REMOVESPELL("SPORD11")
Allez, utilisons la haute technologie !
- Fichiers joints
-
- spin527.spl
- (202 Octets) Téléchargé 235 fois
- 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
.
Ton sort affecte un script, mais quid des habilités ?
Je suppose qu'elles sont attribuées à Player1. C'est celles-là dont j'ai besoin.
Par ailleurs, essaie de remplacer PROTAGONIST par Player1, puis RemoveSpell par RemoveSpellRes.
Envoie aussi ton script, car vu comme ça, à l'aveugle, j'ai l'impression que tu confonds le sort qui attribue un script avec les habilités.
PS : je te mentionnais la possibilité d'uploader des petits fichiers baf, spl et cie qui n'était pas prévue par le forum jusqu'il y a peu. Ça évite de passer par la création de fichiers rar, zip et autres.
Je suppose qu'elles sont attribuées à Player1. C'est celles-là dont j'ai besoin.
Par ailleurs, essaie de remplacer PROTAGONIST par Player1, puis RemoveSpell par RemoveSpellRes.
Envoie aussi ton script, car vu comme ça, à l'aveugle, j'ai l'impression que tu confonds le sort qui attribue un script avec les habilités.
PS : je te mentionnais la possibilité d'uploader des petits fichiers baf, spl et cie qui n'était pas prévue par le forum jusqu'il y a peu. Ça évite de passer par la création de fichiers rar, zip et autres.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Fichiers ajoutés:
Charname
Capacité spéciale: SPIN527
lance: SPORD11.BAF (ordre au golem)
Golem
Script général: GAGOLG1: réception de l'ordre par le golem
Script défaut: GAGOLD1: action liée à l'ordre
L'ajout de la capacité est lié à un script PNJ déclenché suite à un dialogue:
Pour le REMOVESPELL, il marche très bien en fait. J'ai mal codé le script.
Origine script Golem (à sa destruction)
Version corrigée
Charname
Capacité spéciale: SPIN527
lance: SPORD11.BAF (ordre au golem)
Golem
Script général: GAGOLG1: réception de l'ordre par le golem
Script défaut: GAGOLD1: action liée à l'ordre
L'ajout de la capacité est lié à un script PNJ déclenché suite à un dialogue:
Code : Tout sélectionner
// Achat Golem d'argile
IF
GLOBAL("GA_GOLEM_ARGILE_ACHETE","GLOBAL",1)
THEN
RESPONSE #100
SETGLOBAL("GA_GOLEM_ARGILE_ACHETE","GLOBAL",2)
SETGLOBAL("GA_GOLEM_ACHETE","GLOBAL",2)
// Le golem d'argile devient la propriété du Protecteur
// Texte: Félicitations, vous êtes l'heureux propriétaire d'un magnifique golem d'argile!
DisplayStringHead(Myself,@57)
ChangeEnemyAlly("GAGOL1",ALLY)
ACTIONOVERRIDE("GAGOL1",MakeGlobal())
// Capacité à donner des ordres au Golem
ACTIONOVERRIDE(PROTAGONIST,AddSpecialAbility("SPIN527")) // Suis moi!
ACTIONOVERRIDE(PROTAGONIST,AddSpecialAbility("SPIN526")) // Reste ici!
ACTIONOVERRIDE(PROTAGONIST,AddSpecialAbility("SPIN525")) // Tues!
ACTIONOVERRIDE(PROTAGONIST,AddSpecialAbility("SPIN524")) // Protèges moi!
Wait(1)
SHOUT(11)
END
Pour le REMOVESPELL, il marche très bien en fait. J'ai mal codé le script.
Origine script Golem (à sa destruction)
Code : Tout sélectionner
// Gestion de la destruction du golem
IF
die()
THEN
RESPONSE #100
// Suppression des ordres aux Golems
REMOVESPELL("SPORD11")
REMOVESPELL("SPORD13")
REMOVESPELL("SPORD13")
REMOVESPELL("SPORD14")
continue()
END
Version corrigée
Code : Tout sélectionner
// Gestion de la destruction du golem
IF
die()
THEN
RESPONSE #100
// Suppression des ordres aux Golems
ACTIONOVERRIDE(PROTAGONIST,RemoveSpell("SPORD11"))
ACTIONOVERRIDE(PROTAGONIST,REMOVESPELL("SPORD12"))
ACTIONOVERRIDE(PROTAGONIST,REMOVESPELL("SPORD13"))
ACTIONOVERRIDE(PROTAGONIST,REMOVESPELL("SPORD14"))
continue()
END
- Fichiers joints
-
- GAGOLG1.baf
- (1.81 Kio) Téléchargé 278 fois
-
- GAGOLD1.baf
- (1.1 Kio) Téléchargé 264 fois
-
- SPORD11.baf
- (128 Octets) Téléchargé 246 fois
- 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
.
Désolé, pas eu le temps de répondre hier soir.
Bon, si j'ai bien compris, lorsque tu achètes le golem, tu disposes de 4 capacités (SPIN524 à SPIN527), appelées SPORD11 à SPORD14 dans le fichier SPELL.ids, 11, 12, 13, 14 correspondant à la nature du Shout().
:!: Première remarque : évite de leur donner ce genre d'appellation (SPINxxx). Privilégie plutôt [coco]tue, [coco]suis... avec [coco] correspondant à ton préfixe de mod. Ça évitera des problèmes de compatibilité.
Idem avec le fichier SPELL.IDS : évite d'y toucher. Quid si un autre mod créé des sorts aux mêmes slots ? De plus, tu n'en as pas besoin en utilisant les commandes ...SpellRES.
Pour en revenir à nos golems, essaie de rajouter ces deux effets dans chacune de tes capacités :
Spell: Remove Spell [172] et Spell: Give Innate Ability [171] avec ressource = nom de ta capacité.
Ainsi chaque fois que tu l'utilises, tu la vides de ta mémoire et la réapprends illico presto : c'est une manière comme une autre de la rendre "illimitée".
Petite astuce : plutôt que de t'encombrer avec 4 capacités, utilises-en une seule qui appelle les 4 autres : chaque fois que tu l'utilises, tu choisis quel ordre donner.
Ci-joint une archive avec la capacité unique qui appelle les autres. Tu n'auras qu'à modifier les noms des fichiers des sorts ainsi que ceux contenus dans le fichier 2DA (avec Notepad++).
Testée in-game, cococapa se régénère à chaque utilisation.
Bon, si j'ai bien compris, lorsque tu achètes le golem, tu disposes de 4 capacités (SPIN524 à SPIN527), appelées SPORD11 à SPORD14 dans le fichier SPELL.ids, 11, 12, 13, 14 correspondant à la nature du Shout().
:!: Première remarque : évite de leur donner ce genre d'appellation (SPINxxx). Privilégie plutôt [coco]tue, [coco]suis... avec [coco] correspondant à ton préfixe de mod. Ça évitera des problèmes de compatibilité.
Idem avec le fichier SPELL.IDS : évite d'y toucher. Quid si un autre mod créé des sorts aux mêmes slots ? De plus, tu n'en as pas besoin en utilisant les commandes ...SpellRES.
Pour en revenir à nos golems, essaie de rajouter ces deux effets dans chacune de tes capacités :
Spell: Remove Spell [172] et Spell: Give Innate Ability [171] avec ressource = nom de ta capacité.
Ainsi chaque fois que tu l'utilises, tu la vides de ta mémoire et la réapprends illico presto : c'est une manière comme une autre de la rendre "illimitée".
Petite astuce : plutôt que de t'encombrer avec 4 capacités, utilises-en une seule qui appelle les 4 autres : chaque fois que tu l'utilises, tu choisis quel ordre donner.
Ci-joint une archive avec la capacité unique qui appelle les autres. Tu n'auras qu'à modifier les noms des fichiers des sorts ainsi que ceux contenus dans le fichier 2DA (avec Notepad++).
Testée in-game, cococapa se régénère à chaque utilisation.
- Fichiers joints
-
- Cococapa.rar
- (6.77 Kio) Téléchargé 54 fois
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Salut Freddy,
merci pour ton retour.
1-Compatibilité du Mod avec d'autres.
Je sais que pour certains c'est un sujet important pour pouvoir installer plusieurs mods. Mais pour faire simple, j'ai pris la décision au cours du mod de ne pas m'en préoccuper.
Mon mod démarre à la fin de BG1 et finalement cela sera une alternative à BG2. C'est donc une période que personne utilise. On installe mon mod avec une save BG1 ou on prend un nouveau perso. Ca pourrait effectivement poser problème si une personne veut démarrer une partie BG1 avec X mods.
Le fait de rendre compatible mon mod nécessite davantage de paramétrage d'une manière générale. Or je galère déjà beaucoup pour avancer. J'ai le sentiment d'avancer à pas de tortue. J'y passe énormément de temps.
A noter 'REMOVESPELLRES' etc... n''existe pas sur ma machine même si IESDP le propose. J'ai noté dans un mod existant un TP2 où des mots clés 'RES' sont visiblement ajoutés.
2-Capacité en illimité
Ta proposition d'ajouter l'effet 171-give innate hability marche bien et ne produit pas de son!
Je n'ai pas eu besoin d'ajouter REMOVESPELL dans le .SPL
Un problème de résolu. MERCI
3-Encombrement avec 4 capacités
Je garde ton idée de 4 en 1 sous le coude. Pour le moment, j'aime bien voir mes 4 icônes.
4-Choix des icones
Tes icônes expriment bien la capacité innate mais je n'accroche pas sur le style de dessin. A priori, je ne vais pas les retenir.
merci pour ton retour.
1-Compatibilité du Mod avec d'autres.
Je sais que pour certains c'est un sujet important pour pouvoir installer plusieurs mods. Mais pour faire simple, j'ai pris la décision au cours du mod de ne pas m'en préoccuper.
Mon mod démarre à la fin de BG1 et finalement cela sera une alternative à BG2. C'est donc une période que personne utilise. On installe mon mod avec une save BG1 ou on prend un nouveau perso. Ca pourrait effectivement poser problème si une personne veut démarrer une partie BG1 avec X mods.
Le fait de rendre compatible mon mod nécessite davantage de paramétrage d'une manière générale. Or je galère déjà beaucoup pour avancer. J'ai le sentiment d'avancer à pas de tortue. J'y passe énormément de temps.
A noter 'REMOVESPELLRES' etc... n''existe pas sur ma machine même si IESDP le propose. J'ai noté dans un mod existant un TP2 où des mots clés 'RES' sont visiblement ajoutés.
2-Capacité en illimité
Ta proposition d'ajouter l'effet 171-give innate hability marche bien et ne produit pas de son!
Je n'ai pas eu besoin d'ajouter REMOVESPELL dans le .SPL
Un problème de résolu. MERCI
3-Encombrement avec 4 capacités
Je garde ton idée de 4 en 1 sous le coude. Pour le moment, j'aime bien voir mes 4 icônes.
4-Choix des icones
Tes icônes expriment bien la capacité innate mais je n'accroche pas sur le style de dessin. A priori, je ne vais pas les retenir.
- 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
.
Bizarre : BG2 Fixpack les installe directement.Cocrane a écrit : A noter 'REMOVESPELLRES' etc... n''existe pas sur ma machine même si IESDP le propose. J'ai noté dans un mod existant un TP2 où des mots clés 'RES' sont visiblement ajoutés.
Copie le fichier tob2soa.tph de bg2fixpack\lib dans le répertoire de ton mod et ajoute dans ton tp2 la ligne
INCLUDE ~tonmod/sous-répertoire/tob2soa.tph~
Pas grave, c'est vrai qu'elles correspondent au parti-pris graphique de mon mod.Tes icônes expriment bien la capacité innate mais je n'accroche pas sur le style de dessin. A priori, je ne vais pas les retenir.
Je vais regarder si j'en ai d'autres plus classiques.
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
- mirandir
- Adepte de Grondemarteau
- Ver charognard
- Messages : 674
- Enregistré le : mer. 09 févr. 2011, 10:30
- Contact :
- Statut : Hors ligne
.
Si tu ne l'ajoutes pas, tu vas te retrouver avec 12 000 exemplaires de la capacité après un repos (12 000 étant égal au nombre de fois où tu auras utilisé la capacité + 1).Cocrane a écrit :Je n'ai pas eu besoin d'ajouter REMOVESPELL dans le .SPL
« Pssst. Tu as remarqué comme elle me dévore du regard ? Hein ? Tu as vu ça ? La façon dont elle a regardé la courbe de mon os occipital ? »
- 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
.
Merci d'avoir précisé ce point, mirandir.
Je l'avais laissé passé dans ma réponse : l'opcode #172 est O B L I G A T O I R E !
Je l'avais laissé passé dans ma réponse : l'opcode #172 est O B L I G A T O I R E !
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
-
- Adepte de Grondemarteau
- Ogre mage
- Messages : 1328
- Enregistré le : dim. 21 mars 2010, 12:03
- Localisation : Paris
- Contact :
- Statut : Hors ligne
.
Le Charname pourra revendre son golem.
Le soucis est que le Golem s'en va avant la fin de l'effet visuel redonnant le contrôle au Mage qui lui a vendu.
Script créature
J'ai ajouté le code SetInterrupt(TRUE) dans le but de m'assurer que code sera exécuté et terminé avant que le déplacement se produise mais ça ne change rien.
L'animation commence et le Golem se déplace avant la fin.
Comment attendre que l'exécution du code soit terminé pour passer à la suite ?
Le soucis est que le Golem s'en va avant la fin de l'effet visuel redonnant le contrôle au Mage qui lui a vendu.
Script créature
Code : Tout sélectionner
...
[B] [color="#FFFF00"]SetInterrupt(TRUE)[/color][/B]
CreateVisualEffectObject("SPHEALIN",PROTAGONIST)
wait(1)
CreateVisualEffectObject("SPHEALIN","GAGOL1")
ChangeEnemyAlly("GAGOL1",NEUTRAL)
ACTIONOVERRIDE(PROTAGONIST,REMOVESPELL("SPORD11"))
ACTIONOVERRIDE(PROTAGONIST,REMOVESPELL("SPORD12"))
ACTIONOVERRIDE(PROTAGONIST,REMOVESPELL("SPORD13"))
ACTIONOVERRIDE(PROTAGONIST,REMOVESPELL("SPORD14"))
[B] [color="#FFFF00"]SetInterrupt(FALSE)[/color] [/B]
ACTIONOVERRIDE("GAGOL1",MoveToPoint([570.585]))
...
L'animation commence et le Golem se déplace avant la fin.
Comment attendre que l'exécution du code soit terminé pour passer à la suite ?
- 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
.
Désolé, je suis de nouveau dispo...
Tu as le choix entre deux solutions :
1. Soit tu rajoutes un Wait(3) avant le déplacement du golem.
2. Soit tu scindes ton script en deux en rajoutant à la fin de la première partie une variable qui déclenche le déplacement du golem (deuxième partie du script).
Tu as le choix entre deux solutions :
1. Soit tu rajoutes un Wait(3) avant le déplacement du golem.
2. Soit tu scindes ton script en deux en rajoutant à la fin de la première partie une variable qui déclenche le déplacement du golem (deuxième partie du script).
CARPE DIEM...Co-modérateur de La Forge et de La Chambre des Scribes
Moddeur qui s'arrache les cheveux...
Moddeur qui s'arrache les cheveux...
... avec Menace sur le Royaume de Diamant Éternel.
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité