Affichage des résultats 1 à 5 sur 5

Discussion: Effet #122 : Création d'un objet à plusieurs charges

  1. #1
    Date d'inscription
    April 2011
    Localisation
    Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
    Messages 
    4 644

    Effet #122 : Création d'un objet à plusieurs charges

    Je souhaite créer ce sort :

    @7501004 = ~Création d'eau (Invocation)
    Niveau : 1
    Sphère : Création, Élémentaire (Eau)
    Composantes : V, G
    Portée : 6 mètres
    Durée : instantanée
    Temps d'incantation : 1 round
    Zone d'effet : jusqu'à 8 litres d'eau par niveau
    Jet de sauvegarde : aucun
    Résistance à la magie : non

    En lançant ce sort, le prêtre peut créer un maximum de huit litres d'eau par niveau. Cette eau est pure et potable, comme de l'eau de pluie. Elle apparaît dans n'importe quel récipient capable de la recevoir, ou au-dessus d'une zone trois fois plus large (ce qui permet de créer une fine pluie ou de remplir plusieurs récipients de taille moindre). L'eau pèse 1 kilo par litre.
    Composante matérielle : une goutte d'eau.~
    Comme tous mes sorts, il est géré par une routine tpa :

    Code:
    // Création d'eau
    COPY ~Diamant_Eternel/Clones/GW.spl~	~override/GWCreWa.spl~	SAY NAME1 @7501003	SAY UNIDENTIFIED_DESC @7501004
    	LPF GW_NEW_SPELL INT_VAR spelltype = 2 spelllevel = 1 graphics = 15 school1 = 6 school2 = 13 location = 2 target = 5 range = 1 speed = 9 ablevel = 1 STR_VAR icon1 = EVAL "%DEST_RES%C" icon2 = EVAL "%DEST_RES%B" GW_son = CAS_P08 END
    	WRITE_LONG  0x18 (THIS BAND BNOT BIT14)	// supprime Non-magical ability
    	WRITE_LONG  0x1e THIS | BIT9			// ajoute Enchanters exclusion
    	LPF GW_ADD_HEADERS INT_VAR GW_Headers = 50 END
    	SET power = 1
    	SET resist_dispel = 2
    	SET target = 1
    	FOR (header=1;header<=50;++header) BEGIN
    		LPF configure_spell_header INT_VAR f_Header = header END
    		PATCH_IF (header < 10) BEGIN TEXT_SPRINT outres "0%header%" END ELSE BEGIN TEXT_SPRINT outres "%header%" END
    		LPF ADD_SPELL_EFFECT INT_VAR insert_point = "-1" opcode = 177 target timing = 1 parameter2 = 2 power resist_dispel header STR_VAR resource = EVAL "GWCREW%outres%" END	// Item: Create Inventory Item [122]
    		LPF ADD_SPELL_EFFECT INT_VAR insert_point = "-1" opcode = 215 target duration = 3 parameter2 = 1 power resist_dispel header STR_VAR resource = GWWINDC END
    		LPF ADD_SPELL_EFFECT INT_VAR insert_point = "-1" opcode = 215 target timing = 3 duration = 3 parameter2 = 1 power resist_dispel header STR_VAR resource = GWCREWAT END
    		LPF ADD_SPELL_EFFECT INT_VAR insert_point = "-1" opcode = 139 target timing = 4 duration = 4 parameter1 = RESOLVE_STR_REF (@7140032) power resist_dispel header END	// a créé de l'eau
    	END
    BUT_ONLY
    // Outre d'eau
    COPY ~Diamant_Eternel/Objets/Food/GWOutre.itm~ ~override/GWOutre.itm~	SAY NAME1 @8480005	SAY NAME2 @8480005	SAY DESC @8480006	SAY 0x19e @7000005 // Avale...
    Puis création de l'effet :

    Code:
    ACTION_DEFINE_ASSOCIATIVE_ARRAY Effets_Nouveaux BEGIN
    //	op	  Cible	  Timing  Durée		p1		p2			p3		p4	   pb1	pb2	   Dés Fac power ST bonus   MR	ressource	=>	effet
    //- 0 ----- 1 ----- 2 ----- 3 ----- 4 ----- 5 --------- 6 ----- 7 ----- 8 -- 9 --- 10 -11-- 12 - 13 - 14 -- 15 ---- 16 ----------------------------------------------------------------
    /* CHEVALIER DE DIAMANT */
    // Sort Création d'eau
    	122,	2,		9,		0,		1,		0,			8,		8,		0,	100,	0,	0,	0,	0,	0,		0,	GWOUTRE		=> GWCreW01	// Item: Create Inventory Item [122]
    ...
    END
    
    Patch de création de l'effet (je vous passe les détails)
    
    END
    
    // Sort Création d'eau
    OUTER_FOR (i=2 ; i<51 ; i +=1) BEGIN
    	ACTION_IF (i < 10) BEGIN OUTER_TEXT_SPRINT nb "0%i%" END ELSE BEGIN OUTER_TEXT_SPRINT nb "%i%" END
    		COPY_EXISTING ~GWCreW01.eff~	~override/GWCreW%nb%.eff~
    			WRITE_LONG 0x1c %i%	// paramètre 1
    		BUT_ONLY
    END
    Bref, l'outre doit avoir 8 charges (chacune correspondant à la consommation d'un litre).


    L'installation fonctionne, le fichier GWOutre.itm dispose bien de ses 8 charges, sauf que....

    Quand je lance ce sort, quelque soit le niveau, l'outre ne dispose que d'une charge !


    Une idée ?

    Note : J'ai indiqué la valeur 8 pour parametre3, parametre4 et paramètres 3 et 4 avec le même résultat.
    Dernière modification par Freddy_Gwendo ; 28/05/2015 à 11h29. Motif: Modification du titre
    CARPE DIEM...
    Co-modérateur de La Forge et de La Chambre des Scribes
    Moddeur qui s'arrache les cheveux...

  2. #2
    Date d'inscription
    December 2007
    Localisation
    GAP, Hautes alpes
    Messages 
    2 032
    Désolé, je crée des sorts "normalement", je n'utilise pas de routine TPA pour cela. Pourquoi faire si compliqué quand on peut faire simple ?
    Edite ton sort pour faire un onglet par niveau, et change la valeur dans chaque niveau à la main, ou utilise cette routine du dukp (simple!) :
    Code:
    COPY        ~Derats_kits/Warlord/Spells/pxw4boua.spl~        ~override~
    READ_LONG 0x64 abilities_off
    READ_SHORT 0x68 num_abilities
    FOR (i = 0; i < num_abilities; i += 1) BEGIN            // pour chaque habileté
        WRITE_BYTE (abilities_off + 0x120*i + 0x234) 34+i*2    // indiquer la valeur du premier effet comme lvlx2 + 20
    END
    Les mères célibataires au d'avoir flashé sur un gars "beau comme un dieu" elle auraient mieux fait de chercher un gars "qui ferait un bon père".

    Sur Path Of Exile. Plus de modding, ni traduction, etc...

  3. #3
    Date d'inscription
    April 2011
    Localisation
    Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
    Messages 
    4 644
    C'est ce que fait ma routine :

    Code:
    FOR (header=1;header<=50;++header) BEGIN
    	LPF ADD_SPELL_EFFECT INT_VAR insert_point = "-1" opcode = 177 target timing = 1 parameter2 = 2 power resist_dispel header STR_VAR resource = EVAL "GWCREW%outres%" END	// Item: Create Inventory Item [122]
    END
    Et ça ne fonctionne : le problème, c'est que le fichier de l'outre a bien 8 charges, mais que le perso n'en a accès qu'à une une fois l'objet créé via le sort !

    Quant à la routine tpa, une fois définie, elle me permet de gérer la création de tous les headers pas par pas et surtout il me suffit de modifier un paramètre (resist_dispel par exemple) et WeidU fait tout le boulot pour moi, quelque soit le sort !


    EDIT : un modo de passage pourrait-il modifier le titre et changer 177 par 122 ? Merci d'avance.
    Dernière modification par Freddy_Gwendo ; 28/05/2015 à 11h30.
    CARPE DIEM...
    Co-modérateur de La Forge et de La Chambre des Scribes
    Moddeur qui s'arrache les cheveux...

  4. #4
    Date d'inscription
    July 2003
    Localisation
    Plaisir
    Messages 
    6 827
    A vrai dire je n'ai pas d'expérience pratique de cet effet. Mais quelque chose ne me semble pas correspondre à la description de l'effet.

    La description de l'effet 122 indique que les charges sont le paramètre 1. La paramètre 4 correspond aux charges de la 3ème capacité.
    #122 (0x122) Item: Create Inventory Item [122]
    Parameter #1: Charges
    Parameter #2: Irrelevant
    Description:
    Creates the item specified by the resource key. The number of items created is controlled by the 'Charges' field. The number of secondary charge is determined by P3. The number of tertiary charges is determined by P4 (external eff's). The item is created in the Inventory.
    Du coup je ne comprends pas bien pourquoi tu indiques 8 pour le paramètre 4. Je me serai attendu à ce que ce soit le paramètre 1.

    La question qui me vient ensuite est : dans quel extended header de l'objet as-tu mis la capacité qui permet de boire ? Est-ce bien cohérent du rang de la charge dans lequel tu as mis la charge initiale à la création de l'objet
    Dans ton exemple, il me semble qu'il faudrait que ce soit le troisième extended header pour que la valeur 8 dans le paramètre 4 fasse l'effet escompté.

    Je me demande, en voyant la description du sort et les valeurs mises pour p1 et p3 / p4, si tu considères p1 comme la valeur min et p3 ou p4 comme la valeur max.
    Je n'ai pas le sentiment que l'effet 122 permette de générer l'aspect "jusqu'à 8 charges" du sort.
    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 !

  5. #5
    Date d'inscription
    April 2011
    Localisation
    Égaré dans un vortex entre Féérune et le Royaume de Diamant Éternel
    Messages 
    4 644
    Bon, comme d'hab, tu as vu juste !


    Ce foutu effet ne me sert à rien. En tout cas pas à faire ce que je veux.
    D'ailleurs après avoir cherché de partout, aucun opcode ne permet de créer un objet en gérant le nombre de charges du PREMIER header. Le paramètre 1 ne gère que le nombre d'objets créés.

    J'ai trouvé la parade : convocation d'une créature invisible dont le script donne un objet [GiveItemCreate(S:ResRef,O:Object,I:Usage1,I:Usage2,I:Usage3)] avec Usage2 correspondant à la valeur d'une variable lancée par le sort avec l'opcode Modify Global Variable [265]

    Mais je ne l'utiliserai pas car je me suis aperçu qu'en l'état ce sort foutait en l'air l'intérêt de mon composant nourriture : à niveau 20, le prêtre créée 20x8 litres d'eau !

    J'ai donc pris des libertés avec la définition officielle du sort pour ne pouvoir le lancer qu'une fois toutes les huit heures et ne créer qu'un litre d'eau tous les deux niveaux. Eau qui disparaît au bout de 4 heures... Donc pas de réserves.

    Du coup, j'utilise le paramètre 1 pour gérer le nombre d'outres de 1 litre créées.

    Et voilou !


    Edit : et merci d'avoir changé le titre du fil !
    Dernière modification par Freddy_Gwendo ; 30/05/2015 à 07h53.
    CARPE DIEM...
    Co-modérateur de La Forge et de La Chambre des Scribes
    Moddeur qui s'arrache les cheveux...

Discussions similaires

  1. [BG2][SOLUCE] Installer Shadows of Amn plusieurs fois... dans plusieurs langues différentes !
    Par Strigiodin dans le forum La Taverne d'Amkethran (Baldur's Gate 2)
    Réponses: 3
    Dernier message: 03/02/2014, 22h11
  2. [BG2][SOLUCE] Création d'objet
    Par bob456 dans le forum La Taverne d'Amkethran (Baldur's Gate 2)
    Réponses: 1
    Dernier message: 21/11/2012, 18h30
  3. [OUTIL OBSOLÈTE] Création d'objet avec IEEP
    Par Isaya dans le forum [ARCHIVES] Outils de la préhistoire
    Réponses: 25
    Dernier message: 02/09/2010, 20h47
  4. [OUTIL OBSOLÈTE] Problème de création d'objet avec IEEP
    Par Grenouillebleue dans le forum [ARCHIVES] Outils de la préhistoire
    Réponses: 7
    Dernier message: 22/01/2005, 19h50
  5. Création ou Réparation d'Objet ?
    Par Garde de Targos dans le forum Le Monastère du Corbeau Noir (Icewind Dale 2)
    Réponses: 8
    Dernier message: 12/02/2004, 19h03

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250