Page 1 sur 1

[SCRIPT] Mon 1er script ne s'installe pas

Posté : jeu. 16 avr. 2009, 20:53
par deratiseur
Et je pense savoir pourquoi, mais j'ai besoin de l'aide d'un spécialiste.

Bon, tout est dans le titre.

Voilà le script :

Code : Tout sélectionner

[size=84]
IF
  Global("pxwarlordlvl1","LOCALS",0)
  Checkstat(Myself,1,LEVEL)
  Kit(Myself,warlordg)
THEN
  RESPONSE #100
    SetGlobal("pxwarlordlvl1","LOCALS",1)
    AddSuperKit(WARLORDM)(Myself)
END[/size]


Voilà le setup.tp2 :

Code : Tout sélectionner

[size=84]BEGIN @70

ADD_KIT ~WARLORDG~
// Types d'armes autorisés - CLASWEAP
~WARLORDG    1    1    1    0    0    1    1    1~
// Compétences autorisees - WEAPPROF.2da
~WARLORDG    5 5 0 1 1 1 1 0 5 5 5 1 5 5 5 1 1 1 1 1 1 1 1 0 0 0 0 0 2 2 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~
// Scores de caracteristiques minimaux necessaires - ABCLASRQ.2da
~WARLORDG    9    0    0    0    0    0~
// Modificateurs des scores de caracteristique - ABCLSMOD.2da
~WARLORDG    0    0    0    0    0    0~
// Caractéristiques minimales pour se jumeler VERS le kit - ABDCDSRQ.2da
~WARLORDG    0    0    0    0    0    0~
// Caractéristiques minimales pour se jumeler DEPUIS le kit - ABDCSCRQ.2da
~WARLORDG    0    0    0    0    0    0~
// Alignements autorisés - ALIGNMNT.2da
~WARLORDG    1       1       1       1       1       1       1       1       1~
//Possibilites de jumelage - DUALCLAS.2da
~WARLORDG    0       0       0       0       0       0~
// Habilités gagnées par niveau - 2da personnel
~Derats_kits/Warlord/Warlordg.2DA~
//Races et classes acceptants le kit - Kittable.d2a
~K_F_H    K_F_G    K_F_E    K_F_HE    K_F_HL    K_F_HO~
// Autorisation d'objets - KITLIST.2DA
~0x00003FC8 2~
// Habiletés de Haut niveau - LUABBR.2DA
~pxb~
//equipement au debut de TOB - 25STWEAP.2DA
~LEAT14 * HELM07 BAG25 RING06 RING31 CLCK02 BOOT01 AMUL19 BRAC16 BELT06 AROM11,80 * * POTN52,5 POTN4,2 POTN14,5 BOW12 SW1H73 STAF24~
//description du kit
SAY @71
SAY @72
SAY @73

ADD_KIT ~WARLORDW~
// Types d'armes autorisés - CLASWEAP
~WARLORDW    1    1    1    0    0    1    1    1~
// Compétences autorisees - WEAPPROF.2da
~WARLORDW    5 5 0 1 1 1 1 0 5 5 5 1 5 5 5 1 1 1 1 1 1 1 1 0 0 0 0 0 2 2 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~
// Scores de caracteristiques minimaux necessaires - ABCLASRQ.2da
~WARLORDW    9    0    0    0    0    0~
// Modificateurs des scores de caracteristique - ABCLSMOD.2da
~WARLORDW    0    0    0    0    0    0~
// Caractéristiques minimales pour se jumeler VERS le kit - ABDCDSRQ.2da
~WARLORDW    0    0    0    0    0    0~
// Caractéristiques minimales pour se jumeler DEPUIS le kit - ABDCSCRQ.2da
~WARLORDW    0    0    0    0    0    0~
// Alignements autorisés - ALIGNMNT.2da
~WARLORDW    1       1       1       1       1       1       1       1       1~
//Possibilites de jumelage - DUALCLAS.2da
~WARLORDW    0       0       0       0       0       0~
// Habilités gagnées par niveau - 2da personnel
~Derats_kits/Warlord/Warlordm.2DA~
//Races et classes acceptants le kit - Kittable.d2a
~~
// Autorisation d'objets - KITLIST.2DA
~0x00003FC8 1~
// Habiletés de Haut niveau - LUABBR.2DA
~pxb~
//equipement au debut de TOB - 25STWEAP.2DA
~LEAT14 * HELM07 BAG25 RING06 RING31 CLCK02 BOOT01 AMUL19 BRAC16 BELT06 AROM11,80 * * POTN52,5 POTN4,2 POTN14,5 BOW12 SW1H73 STAF24~
//description du kit
SAY @74
SAY @75
SAY @76

COPY_EXISTING ~DPlayer3.bcs~ ~Override/DPlayer3.bcs~
EXTEND_TOP ~DPlayer3.bcs~ ~Derats_kits/Warlord/Warlord.baf~

COPY_EXISTING ~DPlayer2.bcs~ ~Override/DPlayer2.bcs~
EXTEND_TOP ~DPlayer2.bcs~ ~Derats_kits/Warlord/Warlord.baf~

COPY      ~Derats_kits/Warlord/Spells~                    ~override~  [/size]


Et voilà le debug :
[...]
Added WARLORDW Kit
Copying 1 file ...
BIFF may be in hard-drive CD-path [E:\Travail & Outils\Copies de travail\Baldur2\CD5\/DATA/SCRIPTS.BIF]
BIFF may be in hard-drive CD-path [E:\Travail & Outils\Copies de travail\Baldur2\CD4\/DATA/SCRIPTS.BIF]
BIFF may be in hard-drive CD-path [E:\Travail & Outils\Copies de travail\Baldur2\CD3\/DATA/SCRIPTS.BIF]
BIFF may be in hard-drive CD-path [E:\Travail & Outils\Copies de travail\Baldur2\CD2\/DATA/SCRIPTS.BIF]
BIFF may be in hard-drive CD-path [E:\Travail & Outils\Copies de travail\Baldur2\CD1\/DATA/SCRIPTS.BIF]
BIFF may be in hard-drive CD-path [E:\Travail & Outils\Copies de travail\Baldur2\/DATA/SCRIPTS.BIF]
[E:\Travail & Outils\Copies de travail\Baldur2\/DATA/SCRIPTS.BIF] 6510702 bytes, 2826 files, 0 tilesets
Copied [DPlayer3.bcs] to [Override/DPlayer3.bcs]
Extending game scripts ...
[Derats_kits/Warlord/Warlord.baf] loaded, 185 bytes
[./override/TRIGGER.IDS] loaded, 7725 bytes
[./override/OBJECT.IDS] loaded, 1735 bytes
[./override/STATS.IDS] loaded, 4161 bytes
[./override/KIT.IDS] loaded, 1402 bytes
[./override/ACTION.IDS] loaded, 13073 bytes
ERROR: parsing [Derats_kits/Warlord/Warlord.baf]: Parsing.Parse_error
[./override/DPLAYER3.BCS] loaded, 2798 bytes
Extended script [DPlayer3.bcs] with [Derats_kits/Warlord/Warlord.baf]
Copying 1 file ...
Copied [DPlayer2.bcs] to [Override/DPlayer2.bcs]
Extending game scripts ...
[Derats_kits/Warlord/Warlord.baf] loaded, 185 bytes
ERROR: parsing [Derats_kits/Warlord/Warlord.baf]: Parsing.Parse_error
[./override/DPLAYER2.BCS] loaded, 2234 bytes
Extended script [DPlayer2.bcs] with [Derats_kits/Warlord/Warlord.baf]
Copying 1 file ...
[Derats_kits/Warlord/Spells/pxwspel1.2da] loaded, 180 bytes
Copied [Derats_kits/Warlord/Spells/pxwspel1.2da] to [override/pxwspel1.2da]
[Derats_kits/Warlord/Spells/pxwspel2.2da] loaded, 224 bytes
Copied [Derats_kits/Warlord/Spells/pxwspel2.2da] to [override/pxwspel2.2da]
[Derats_kits/Warlord/Spells/pxwspel3.2da] loaded, 276 bytes
Copied [Derats_kits/Warlord/Spells/pxwspel3.2da] to [override/pxwspel3.2da]
[Derats_kits/Warlord/Spells/pxwspel4.2da] loaded, 189 bytes
Copied [Derats_kits/Warlord/Spells/pxwspel4.2da] to [override/pxwspel4.2da]
[Derats_kits/Warlord/Spells/pxwspel4.2da.bak] loaded, 471 bytes
Copied [Derats_kits/Warlord/Spells/pxwspel4.2da.bak] to [override/pxwspel4.2da.bak]


Quoi que c'est qui cloche ?

j'ai surement fait une erreur dans le script.

Le code est comme ceci (IESDP) :

289 AddSuperKit(I:Kit*KIT)

Donc ça s'écrit comment dans le script ? Comment faut t'il decrypter I:Kit*KIT


Désolé, je débute (et mon script est celui du morituri légèrement modifié)

Re : Mon 1er script : ne s'installe pas

Posté : jeu. 16 avr. 2009, 22:08
par Isaya
Déjà, pour commencer mais sans rapport avec le problème, les COPY juste avant les EXTEND_TOP ne servent à rien. EXTEND_TOP est une commande à elle toute seule, pas une instruction de patch s'appliquant à un fichier désigné par COPY.
Cf le kit de Chantelame que je t'ai transmis.

Ton script a un gros problème : il cherche un kit appelé WARLORDM, alors que tu as créé deux kits appelés WARLORDG et WARLORDW. Ce qui compte est ce qui est employé dans l'instruction ADD_KIT et qui définit le "nom" du kit dans le fichier 2DA.
Pour quelques précisions et un exemple, vois les commentaires que j'ai indiqués dans le fichier AR0602.baf du kit Chantelame.

Je ne connais pas l'usage de l'action AddSuperKit. En tout cas sa description indique clairement qu'il n'y a qu'un seul paramètre, qui est le kit en question. Tu dois impérativement supprimer le Myself. Sa présence entre patenthèses, sans commande préalable est peut-être la cause de l'erreur de "Parse".
De toute façon la description indique bien que ce sera appliqué à la créature active. Et vu que tu l'ajoutes à un script de personnage, c'est forcément à lui que ça s'appliquera.
En principe
AddSuperKit(WARLORDG)
devrait fonctionner ("G" ou "W" selon lequel des deux tu veux appliquer).

De même, tu aurais intérêt à utiliser WARLORDG en majuscule dans ton test sur Kit(), histoire d'être sûr que WeiDU ne se formalisera pas de la différence entre minuscule et majuscule.
Il n'y a guère que les noms de fichiers sous Windows pour lesquels les majuscules et minuscules sont considérées comme identiques.

La forme AddSuperKit(I:Kit*KIT) vient tout simplement du fichier Action.IDS du jeu. Si tu compares au trigger 0x40BB Kit(O:Object*,I:Kit*KIT), qui est également décrit dans la documentation fourni par Bioware dans le répertoire Script compiler, tu verras que la forme du paramètre, I:Kit*KIT, est la même.
Dans la documentation de Bioware, tu constateras que la description du trigger explique, sous la forme Kit(Objet, Kit), que le paramètre pour Kit doit faire partie du fichier Kit.IDS. Ce n'est pas dit aussi clairement, certes, mais l'idée de tous les triggers expliqués au même endroit dans la doc est que les valeurs possibles sont indiquées dans un fichier IDS en fonction du test effectué, dans le cas de Kit(), Kit.IDS.
Si tu consultes le fichier Kit.IDS après installation d'un kit, tu verras qu'à la fin apparaît le nom du kit défini dans la command ADD_KIT du fichier TP2. On en conclut donc qu'il faut bien indiquer à AddSuperKit le nom de kit de la commande ADD_KIT.

Re : Mon 1er script : ne s'installe pas

Posté : jeu. 16 avr. 2009, 22:22
par deratiseur
Ok, merci isaya, effectivement encore une erreur d'inattention, warlordw faisait référence à w = wizard alors que dans le script c'est warlordm avec m= mage.

avec warlordm partout, ça s'installe.

J'ai enlevé le (myself) après la commande addsuper kit, et je n'ai mis que (WARLORDM) entre les parenthese. Reste à voir si ça fonctionne..

merci, bonne soirée :-)

Re : Mon 1er script : ne s'installe pas

Posté : jeu. 16 avr. 2009, 22:33
par deratiseur
Bon, ça ne marche pas. Appliqué au lvl 1 ou au lvl 3, ça me transforme en guerrier (simple, non kitté), pas en mage comme l'est le warlordm.

put...., j'arriverais pas à le faire ce Seigneur de guerre....
j'ai tout, les sorts, les icônes, l'idée, le texte et les descriptions de sorts, et pas de moyen technique de faire ce que je veux. Ouin :(

Re : Mon 1er script : ne s'installe pas

Posté : ven. 17 avr. 2009, 20:13
par Isaya
Je ne prends pas la peine de vérifier si tu as expliqué quelque part ce que tu voulais faire avec ces kits. A première vue, je comprends que tu veux donc faire un guerrier-mage, mais avec des kits. Je ne suis pas du tout certain que ce soit possible. J'ai l'impression que tu pars d'un guerrier. Mais le fait de lui donner un kit de mage a de grandes chances ne pas du tout fonctionner. Dans ces conditions, d'après ce qu'indique IESDP pour la commande AddSuperKit, il n'est pas trop étonnant que tu perdes le kit de guerrier d'origine si le jeu considère que le kit que tu essais d'imposer n'est pas correct.
Tu devrais essayer avec d'ajouter les capacités d'un autre kit de guerrier pour voir si tu récupères bien les capacités des deux au final. Si ça fonctionne, et que ton "kit de mage" (je ne sais pas précisément ce que fait celui que tu veux ajouter, c'est ce qui ressort de tes explications) fonctionne isolément, cela signifie que le jeu refuse ce mariage.

A titre d'exemple de chose bizarre, tu pourrais regarder le kit de Bladesinger (chantelame) qui fait partie de TDD. Il a un script un peu bizarre qui n'arrête pas, pratiquement à chaque changement de niveau, de refaire un AddKit() ou de forcer la classe à guerrier-mage.
Je ne sais pas comment ce kit est supposé fonctionner, ni même s'il fonctionne bien. Mais tu pourrais y jeter un coup d'oeil car il semble correspondre en partie à ce que tu as l'air de vouloir faire (mélanger guerrier et mage).

Re : Mon 1er script : ne s'installe pas

Posté : sam. 18 avr. 2009, 04:25
par deratiseur
En parlant de Bladesinger, c'est drôle, c'est la cause de tant d'acharnement de ma part.

Pour faire un geurrier qui lance des sorts, c'est extrêmement simple, je pourrais lui faire lancer ces sorts par don, ainsi il n'aurait pas besoin de livre de sort, et pourrait rester un guerrier kitté.

Sauf que ça existe déjà, c'est le chantelame :-/
Mon but n'est pas de plagier, donc il me faut autre chose :-/

L'explication complète et précise de ce que je veux faire est sur G3, je préfère garder la surprise pour les petits frenchies. :tongue:

Pas bête, je vais essayer l'addsuperkit sur un kit de guerrier, pour voir. Si ça ne fonctione pas, c'est que c'est ma commande qui est mauvaise.

Posté : jeu. 24 mars 2016, 23:46
par Freddy_Gwendo
derat, il y a comme une c.... dans le potage : tu as marqué la discussion comme résolue alors que... :$

Posté : ven. 25 mars 2016, 08:23
par deratiseur
Aheum....
En fait ce morceau de code fonctionne depuis belle lurette tel que j'aurais voulu qu'il fonctionne, le "warldord" est dans le dukp depuis des années.

Le soucis signalé au message n°4 est celui que j'ai débugué plein de fois dans le sous forum "rapport de bugs", à savoir du à de multiples installations/réinstallations de modules/kits qui mettent la pagaille dans le fichier KIT.IDS. (pour résoudre ça, simplement refaire une installation propre en partant de zéro).

Posté : ven. 25 mars 2016, 14:41
par Freddy_Gwendo
Je me doutais bien qu'il était résolu ! ;)

Mais comme je fais un récapitulatif des sujets résolus avec un petit descriptif du sujet traité, j'étais un peu coincé là...
Bon je transfère le message dans le nouveau forum de La Forge.

Merci. ^^