Comme tous mes sorts, il est géré par une routine tpa :@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.~
Code : Tout sélectionner
// 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...
Code : Tout sélectionner
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
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.