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] Diverses questions pour gérer une créature supplémentaire dans le groupe

Répondre
Cocrane
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

.

Message par Cocrane »

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? ;)
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 »

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) :

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

...
Ça ne répond pas à toutes tes questions mais, appliqué à Reine, ce script fonctionnait parfaitement.
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 »

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:

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
Il y a aussi un script TP2 pour l'affecter à toutes les cartes pour la créature "haiare":

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. ^^
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 »

Le déplacement de la créature d'une carte à l'autre fonctionne bien avec le code:

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
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]
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.
On associe un fichier script à une créature si le sort est lancé.


Qui a une meilleure idée ?
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

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.
:!: 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 !
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 »

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

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

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

Il y a une erreur dans mon message, c'est l'icône "Tues!" qui est réalisé.

[ATTACH]10108[/ATTACH]

Des dessins de base me vont bien aussi.

Je peux t'envoyer les fichiers. Mais que veux tu en faire? ^^
Fichiers joints
TUE.bmp
TUE.bmp (3.05 Kio) Vu 407 fois
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 »

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. ^^
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 »

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.
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
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 !
Fichiers joints
spin527.spl
(202 Octets) Téléchargé 235 fois
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 »

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. ^^
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 »

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:

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

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. ;)
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...
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 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.
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 »

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.
Bizarre : BG2 Fixpack les installe directement.
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~

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.
Pas grave, c'est vrai qu'elles correspondent au parti-pris graphique de mon mod. ^^
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...
Avatar du membre
mirandir
Adepte de Grondemarteau
Ver charognard
Messages : 674
Enregistré le : mer. 09 févr. 2011, 10:30
Contact :
Statut : Hors ligne
.

Message par mirandir »

Cocrane a écrit :Je n'ai pas eu besoin d'ajouter REMOVESPELL dans le .SPL
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).
« 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 ? »
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 »

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 ! ;)
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 »

LOL

Je me suis aperçu hier que j'y étais forcé si je voulais conserver l'ordre des capacités innates. Sinon la capacité regénérée se retrouve en 4ième position.
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 »

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

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]))
...
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 ?
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 »

Icones: OK
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 »

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).
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 »

Le WAIT marche très bien.

J'avais fait un essai qui ne marchait pas. J'ai dû coder avec des yeux à moitié ouvert.

Attention Moder peut vous enlever toute lucidité. ^^
Répondre

Retourner vers « Scripts »

Qui est en ligne

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