Advertisement
Guest User

Item_Pack

a guest
Apr 29th, 2015
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.11 KB | None | 0 0
  1. //////////////////////
  2. // 3. Tweaked Items //
  3. //////////////////////
  4.  
  5. BEGIN @3
  6. INCLUDE ~Item_Pack/Library/d1BG1v.tpa~ // aVENGER's macro for proper Tutu and BGT compatibility
  7.  
  8. // Shield Amulet
  9. // Provide immunities simply by being equipped
  10. // Only modify it if there is no equipping effect and all effects are
  11. // on an ability header. If Item Revisions is installed then nothing happens
  12. COPY_EXISTING ~amul15.itm~ ~override~
  13. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  14. READ_LONG 0x64 abil_off
  15. READ_SHORT 0x68 abil_num
  16. READ_LONG 0x6a feat_off
  17. READ_SHORT 0x6e eqfeat_off
  18. READ_SHORT 0x70 eqfeat_num
  19. READ_SHORT (abil_off+0x1e) abilfeat_num
  20. READ_SHORT (abil_off+0x20) abilfeat_off
  21. // No equipping effects and only one ability header with all effects
  22. PATCH_IF (abil_num = 1) AND (eqfeat_num = 0) AND (abilfeat_off = 0) THEN BEGIN
  23. SAY NAME1 #6852
  24. SAY NAME2 #6917
  25. SAY UNIDENTIFIED_DESC #6900
  26. SAY DESC @1005
  27. // Delete the ability header
  28. DELETE_BYTES abil_off 0x38
  29. WRITE_SHORT 0x68 0
  30. // Effects are moved where the ability header was
  31. WRITE_LONG 0x6a abil_off
  32. WRITE_SHORT 0x6e 0
  33. WRITE_SHORT 0x70 abilfeat_num
  34. FOR (i = 0; i < abilfeat_num; i += 1) BEGIN
  35. offset = abil_off + i * 0x30
  36. READ_BYTE (offset + 0x0c) timing
  37. // If effect timing is duration, change it to while equipped
  38. PATCH_IF (timing = 0) THEN BEGIN
  39. WRITE_BYTE (offset + 0x0c) 2
  40. END
  41. END
  42. END
  43. END
  44. BUT_ONLY
  45.  
  46. ACTION_IF FILE_EXISTS_IN_GAME ~_sw1h01.itm~ BEGIN
  47. COPY ~override/amul15.itm~ ~override/%tutu_var%amul15.itm~
  48. SAY NAME2 #6917
  49. SAY DESC @1005
  50. END
  51.  
  52. // Greenstone Amulet
  53. // Provide immunities simply by being equipped
  54. // IR version remains as with Shield Amulet
  55. COPY_EXISTING ~amul17.itm~ ~override~
  56. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  57. READ_LONG 0x64 abil_off
  58. READ_SHORT 0x68 abil_num
  59. READ_LONG 0x6a feat_off
  60. READ_SHORT 0x6e eqfeat_off
  61. READ_SHORT 0x70 eqfeat_num
  62. READ_SHORT (abil_off+0x1e) abilfeat_num
  63. READ_SHORT (abil_off+0x20) abilfeat_off
  64. // No equipping effects and only one ability header with all effects
  65. PATCH_IF (abil_num = 1) AND (eqfeat_num = 0) AND (abilfeat_off = 0) THEN BEGIN
  66. SAY DESC @1000
  67. // Delete the ability header
  68. DELETE_BYTES abil_off 0x38
  69. WRITE_SHORT 0x68 0
  70. // Effects are moved where the ability header was
  71. WRITE_LONG 0x6a abil_off
  72. WRITE_SHORT 0x6e 0
  73. WRITE_SHORT 0x70 abilfeat_num
  74. FOR (i = 0; i < abilfeat_num; i += 1) BEGIN
  75. offset = abil_off + i * 0x30
  76. READ_BYTE (offset + 0x0c) timing
  77. // If effect timing is duration, change it to while equipped
  78. PATCH_IF (timing = 0) THEN BEGIN
  79. WRITE_BYTE (offset + 0x0c) 2
  80. END
  81. END
  82. END
  83. END
  84. BUT_ONLY
  85.  
  86. ACTION_IF FILE_EXISTS_IN_GAME ~_sw1h01.itm~ BEGIN
  87. COPY ~override/amul17.itm~ ~override/%tutu_var%amul17.itm~
  88. SAY DESC @1000
  89. END
  90.  
  91. // Darksteel Shield
  92. // Poison Resistance -> Electricity Resistance
  93. // Item Revisions has already changed it to Electricity so only description
  94. // is changed if IR is installed
  95. COPY_EXISTING ~shld31.itm~ ~override~
  96. SAY DESC @1001
  97. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  98. LPF ALTER_ITEM_EFFECT
  99. INT_VAR
  100. // Only modify equipping effects
  101. check_globals = 1
  102. // Poison Resistance
  103. match_opcode = 173
  104. // Change it to Electricity Resistance
  105. new_opcode = 29
  106. END
  107. END
  108. BUT_ONLY
  109.  
  110. // Scarlet Ninja-To
  111. // Equippable by thieves and fighters (except Beastmaster)
  112. /* I don't know what the intended behavior was. F/M is permitted but not
  113. F/D, F/C. Also, F/T and F/M/T are permitted but C/T, M/T are not.
  114. I will copy the original behavior.
  115. */
  116. COPY ~Item_Pack/Bams/d1iscrlt.bam~ ~override~
  117. COPY_EXISTING ~waninja.itm~ ~override~
  118. SAY DESC @1002
  119. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  120. READ_BYTE 0x1e use
  121. // Permit all alignments
  122. WRITE_BYTE 0x1e (%use% BAND 0b11000000)
  123. READ_BYTE 0x1f use
  124. // Permit Fighter and F/M
  125. WRITE_BYTE 0x1f (%use% BAND 0b11010111)
  126. READ_BYTE 0x20 use
  127. // Permit F/M/T, F/T, Paladin, Ranger, Thief, Elf
  128. WRITE_BYTE 0x20 (%use% BAND 0b00001100)
  129. READ_BYTE 0x21 use
  130. // Permit Dwarf, Half-Elf, Halfling, Human, Gnome, Monk, Half-Orc
  131. WRITE_BYTE 0x21 (%use% BAND 0b01000000)
  132.  
  133. READ_BYTE 0x2b kituse
  134. // Permit Stalker, Assassin, Bounty Hunter, Swashbuckler and Deny Beastmaster
  135. WRITE_BYTE 0x2b (%kituse% BAND 0b11100010 BOR 0b00000010)
  136. READ_BYTE 0x2d kituse
  137. // Permit Baseclass
  138. WRITE_BYTE 0x2d (%kituse% BAND 0b10111111)
  139. READ_BYTE 0x2f kituse
  140. // Permit Berserker, Wizardslayer, Kensai, Cavalier, Inquisitor, Undead Hunter
  141. WRITE_BYTE 0x2f (%kituse% BAND 0b11000000)
  142. END
  143. BUT_ONLY
  144.  
  145. // Studded Leather Armor of Thorns +6
  146. // 3D4 Fire Damage instead of 1D4 and also 25% Fire Resistance
  147. // If IR is installed then leat23a.spl change does not matter because
  148. // it is not used by the item. Fire resistance will be 10% i guess since
  149. // IR applies a penalty of 15%
  150. COPY ~Item_Pack/Bams/d1gTHORN.bam~ ~override~
  151. COPY_EXISTING ~leat23a.spl~ ~override~
  152. LPF ALTER_EFFECT
  153. INT_VAR
  154. // Only modify ability effects
  155. check_headers = 1
  156. // HP: Damage
  157. match_opcode = 12
  158. /* I used ALTER_SPELL_EFFECT but match_parameter2 doesn't seem to work
  159. so i changed it to ALTER_EFFECT. Do they have the same behavior ? */
  160. match_parameter2 = 524288
  161. dicenumber = 3
  162. END
  163. BUT_ONLY
  164.  
  165. COPY_EXISTING ~leat23.itm~ ~override~
  166. SAY DESC @1003
  167. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  168. // Change Ground Icon
  169. WRITE_ASCII 0x44 ~d1gthorn~ #8
  170. LPF DELETE_ITEM_EQEFFECT INT_VAR opcode_to_delete = 30 END
  171. LPF ADD_ITEM_EQEFFECT
  172. INT_VAR
  173. // Fire Resistance Modifier
  174. opcode = 30
  175. // Self
  176. target = 1
  177. // While equipped
  178. timing = 2
  179. // 25% Resistance
  180. parameter1 = 25
  181. // Cumulative Mode
  182. parameter2 = 0
  183. // Not Dispel / Bypass Resistance
  184. resist_dispel = 2
  185. END
  186. END
  187. BUT_ONLY
  188.  
  189. // Short Sword of Mask +5
  190. // Double chance 30% of triggering both abilities
  191. // IR changes SSoM so nothing is altered
  192. COPY_EXISTING ~sw1h59.itm~ ~override~
  193. SAY DESC @1004
  194. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  195. LPF ALTER_EFFECT
  196. INT_VAR
  197. check_globals = 0
  198. check_headers = 1
  199. // Second Ability
  200. match_probability1 = 30
  201. match_probability2 = 16
  202. probability1 = 60
  203. probability2 = 31
  204. END
  205. LPF ALTER_EFFECT
  206. INT_VAR
  207. check_globals = 0
  208. check_headers = 1
  209. // First Ability
  210. match_probability1 = 15
  211. match_probability2 = 0
  212. probability1 = 30
  213. END
  214. END
  215. BUT_ONLY
  216.  
  217. // Ring of Protection: The Warder's Signet
  218. // Gets +5 enchantment
  219. COPY ~Item_Pack/Bams/d1iRNG41.bam~ ~override~
  220. COPY_EXISTING ~ring41.itm~ ~override~
  221. SAY NAME2 @1006
  222. SAY DESC @1007
  223. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  224. LPF ALTER_EFFECT
  225. INT_VAR
  226. check_globals = 1
  227. check_headers = 0
  228. match_parametere1 = 3
  229. parameter1 = 5
  230. END
  231. END
  232. BUT_ONLY
  233.  
  234. // Staff of Arundel
  235. // +2 AC Bonus, 30% Fire/Cold Resistance instead of 10%, IronSkins instead of bonus spells
  236. COPY_EXISTING ~wastaff.itm~ ~override~
  237. SAY DESC @1008
  238. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  239. LPF ALTER_ITEM_EFFECT
  240. INT_VAR
  241. // Only modify equipping effects
  242. check_globals = 1
  243. // Fire Resistance
  244. match_opcode = 30
  245. // Change 10% to 30%
  246. parameter1 = 30
  247. END
  248. LPF ALTER_ITEM_EFFECT
  249. INT_VAR
  250. // Only modify equipping effects
  251. check_globals = 1
  252. // Cold Resistance
  253. match_opcode = 28
  254. // Change 10% to 30%
  255. parameter1 = 30
  256. END
  257. LPF ADD_ITEM_EQEFFECT
  258. INT_VAR
  259. // AC Bonus
  260. opcode = 0
  261. // Self
  262. target = 1
  263. // While equipped
  264. timing = 2
  265. // 2 Bonus to AC
  266. parameter1 = 2
  267. // Bonus to All Weapons
  268. parameter2 = 0
  269. END
  270. // Delete Bonus Priest Spells
  271. LPF DELETE_ITEM_EQEFFECT INT_VAR opcode_to_delete = 62 END
  272. END
  273. BUT_ONLY
  274.  
  275. // Mercykiller Ring
  276. // +1 Backstab multiplier
  277. // BAM isn't used in the item file ?
  278. COPY ~Item_Pack/Bams/d1iMERCY.bam~ ~override~
  279. COPY_EXISTING ~wa2ring.itm~ ~override~
  280. SAY DESC @1009
  281. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  282. LPF ADD_ITEM_EQEFFECT
  283. INT_VAR
  284. // Backstab
  285. opcode = 263
  286. // Self
  287. target = 1
  288. // While equipped
  289. timing = 2
  290. // Bonus Multiplier
  291. parameter1 = 1
  292. // Cumulative
  293. parameter2 = 0
  294. END
  295. END
  296. BUT_ONLY
  297.  
  298. // Rod of Smiting
  299. // Usable by all classes
  300. COPY_EXISTING ~rods04.itm~ ~override~
  301. SAY DESC @1010
  302. // Allow everyone, the lazy way
  303. WRITE_LONG 0x1e 0
  304. WRITE_BYTE 0x29 0
  305. WRITE_BYTE 0x2b 0
  306. WRITE_BYTE 0x2d 0
  307. WRITE_BYTE 0x2f 0
  308. BUT_ONLY
  309.  
  310. // Club of Detonation +5
  311. // 15% chance of triggering party friendly fireball
  312. // IR changes the weapon so the following code doesn't do anything.
  313. ADD_PROJECTILE ~Item_Pack/Items/d1blun27.pro~ // aVENGER's code for adding a custom projectile
  314. COPY ~Item_Pack/Items/d1blun27.spl~ ~override/d1blun27.spl~ // to a custom spell
  315. READ_LONG 0x64 ab_off
  316. READ_SHORT 0x68 ab_num
  317. FOR(i=0; i<ab_num; i+=1) BEGIN
  318. WRITE_SHORT (ab_off+i*0x28+0x26) "%d1blun27%" // use new projectile
  319. END
  320. BUT_ONLY_IF_IT_CHANGES
  321.  
  322. COPY_EXISTING ~blun27.itm~ ~override~
  323. SAY DESC @1011
  324. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  325. LPF ALTER_EFFECT
  326. INT_VAR
  327. // Only modify ability effects
  328. check_headers = 1
  329. // Cast Spell at Target
  330. match_opcode = 146
  331. STR_VAR
  332. match_resource = ~spwi304~
  333. resource = ~d1blun27~
  334. probability1 = 100
  335. probability2 = 85
  336. END
  337. END
  338. BUT_ONLY
  339.  
  340. // Harbinger
  341. // Also Party fireball
  342. COPY_EXISTING ~sw2h07.itm~ ~override~
  343. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  344. LPF ALTER_EFFECT
  345. INT_VAR
  346. // Only modify ability effects
  347. check_headers = 1
  348. // Cast Spell at Target
  349. match_opcode = 146
  350. STR_VAR
  351. match_resource = ~spwi304~
  352. resource = ~d1blun27~
  353. probability1 = 15
  354. probability2 = 0
  355. END
  356. END
  357. BUT_ONLY
  358.  
  359. // Girdle of Fortitude
  360. // Set Constitution to 18 while equipped instead of once per day
  361. // IR version remains.
  362. COPY ~Item_Pack/Bams/d1iGFORT.bam~ ~override~
  363. COPY_EXISTING ~belt09.itm~ ~override~
  364. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  365. // Change Inventory Icon
  366. WRITE_ASCII 0x3a ~d1iGFORT~ #8
  367. READ_LONG 0x64 abil_off
  368. READ_SHORT 0x68 abil_num
  369. READ_LONG 0x6a feat_off
  370. READ_SHORT 0x6e eqfeat_off
  371. READ_SHORT 0x70 eqfeat_num
  372. READ_SHORT (abil_off+0x1e) abilfeat_num
  373. READ_SHORT (abil_off+0x20) abilfeat_off
  374. // No equipping effects and only one ability header with all effects
  375. PATCH_IF (abil_num = 1) AND (eqfeat_num = 0) AND (abilfeat_off = 0) THEN BEGIN
  376. SAY DESC @206
  377. // Delete the ability header
  378. DELETE_BYTES abil_off 0x38
  379. WRITE_SHORT 0x68 0
  380. // Effects are moved where the ability header was
  381. WRITE_LONG 0x6a abil_off
  382. WRITE_SHORT 0x6e 0
  383. WRITE_SHORT 0x70 abilfeat_num
  384. FOR (i = 0; i < abilfeat_num; i += 1) BEGIN
  385. offset = abil_off + i * 0x30
  386. READ_BYTE (offset + 0x0c) timing
  387. // If effect timing is duration, change it to while equipped
  388. PATCH_IF (timing = 0) THEN BEGIN
  389. WRITE_BYTE (offset + 0x0c) 2
  390. END
  391. END
  392. END
  393. END
  394. BUT_ONLY
  395.  
  396. // Cloak of the Stars
  397. // +1 THAC0 Bonus, set mastery in darts
  398. COPY_EXISTING ~clck25.itm~ ~override~
  399. SAY DESC @508
  400. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  401. LPF ADD_ITEM_EQEFFECT
  402. INT_VAR
  403. // THAC0 Modifier
  404. opcode = 54
  405. // Self
  406. target = 1
  407. // While equipped
  408. timing = 2
  409. // Bonus 1 to THAC0
  410. parameter1 = 1
  411. // Cumulative Mode
  412. parameter2 = 0
  413. END
  414. LPF ADD_ITEM_EQEFFECT
  415. INT_VAR
  416. // Proficiency
  417. opcode = 233
  418. // Self
  419. target = 1
  420. // While equipped
  421. timing = 2
  422. // Set points to 3
  423. parameter1 = 3
  424. // Type of Darts
  425. parameter2 = 106
  426. END
  427. END
  428. BUT_ONLY
  429.  
  430. // Malla's Soul Stone
  431. // Replace Neutralize Poison with Immunity to Poison/Disease, +1 Strength, +1 AC
  432. // IR version remains. The code below doesn't do anything with IR installed
  433. COPY ~Item_Pack/Bams/d1imalla.bam~ ~override~
  434. COPY_EXISTING ~amsoul01.itm~ ~override~
  435. SAY DESC @608
  436. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  437. // Change Inventory Icon
  438. WRITE_ASCII 0x3a ~d1imalla~ #8
  439. READ_LONG 0x64 abil_off
  440. READ_SHORT 0x68 abil_num
  441. READ_LONG 0x6a feat_off
  442. READ_SHORT 0x6e eqfeat_off
  443. READ_SHORT 0x70 eqfeat_num
  444. READ_SHORT (abil_off+0x1e) abilfeat_num
  445. READ_SHORT (abil_off+0x20) abilfeat_off
  446. // Ability header with effects
  447. PATCH_IF (abil_num = 1) THEN BEGIN
  448. LPF DELETE_EFFECT
  449. INT_VAR
  450. // Only delete ability effects
  451. check_headers = 1
  452. check_globals = 0
  453. END
  454. // Delete the item ability itself
  455. LPF DELETE_ITEM_HEADER INT_VAR header_type = 3 END
  456. LPF ADD_ITEM_EQEFFECT
  457. INT_VAR
  458. // Strength Modifier
  459. opcode = 44
  460. // Self
  461. target = 1
  462. // While equipped
  463. timing = 2
  464. // Bonus 1 to Strenth
  465. parameter1 = 25
  466. // Cumulative Mode
  467. parameter2 = 0
  468. END
  469. LPF ADD_ITEM_EQEFFECT
  470. INT_VAR
  471. // AC Bonus
  472. opcode = 0
  473. // Self
  474. target = 1
  475. // While equipped
  476. timing = 2
  477. // 1 Bonus to AC
  478. parameter1 = 1
  479. // Bonus to All Weapons
  480. parameter2 = 0
  481. END
  482. LPF ADD_ITEM_EQEFFECT
  483. INT_VAR
  484. // Protection from Opcode
  485. opcode = 101
  486. // Self
  487. target = 1
  488. // While equipped
  489. timing = 2
  490. // Poison
  491. parameter2 = 25
  492. END
  493. LPF ADD_ITEM_EQEFFECT
  494. INT_VAR
  495. // Protection from Opcode
  496. opcode = 101
  497. // Self
  498. target = 1
  499. // While equipped
  500. timing = 2
  501. // Disease
  502. // Original opcode was 79 which is cure disease, isn't it ?
  503. parameter2 = 78
  504. END
  505. // Prevent strings Poisoned and Diseased from being displayed
  506. PATCH_FOR_EACH parameter1 IN 14662 54337 BEGIN
  507. LPF ADD_ITEM_EQEFFECT
  508. INT_VAR
  509. // Protection from Display Specific String
  510. opcode = 267
  511. // Self
  512. target = 1
  513. // While equipped
  514. timing = 2
  515. // String Reference
  516. parameter1
  517. END
  518. END
  519. END
  520. END
  521. BUT_ONLY
  522.  
  523. // Jerrod's Mace
  524. // Immunity to Poison and Bleeding while equipped
  525. /* No change because i didn't understand the behavior. Original item uses
  526. 177 opcode to load effects wamacea, wamaceb but dltcep cannot find them
  527. anywhere in my tree. Item_Pack's version has a effect preventing poison
  528. but nothing about bleeding and also has two more effects that prevent
  529. certain strings from being displayed but these effects are on the ability
  530. header. Shouldn't they be equip effects ? */
  531. COPY ~Item_Pack/Bams/d1ijerro.bam~ ~override~
  532. COPY ~Item_Pack/Items/damacea.eff~ ~override~
  533. COPY ~Item_Pack/Items/damaceb.eff~ ~override~
  534. COPY ~Item_Pack/Items/wamace.itm~ ~override~
  535. SAY DESC @260
  536.  
  537.  
  538. /////////////////////////////////////
  539. // 4. Convenient Free Action Items //
  540. /////////////////////////////////////
  541.  
  542. BEGIN @4
  543. INCLUDE ~Item_Pack/Library/d1BG1v.tpa~ // aVENGER's macro for proper Tutu and BGT compatibility
  544.  
  545. COPY_EXISTING ~blun30.itm~ ~override~
  546. ~sper12.itm~ ~override~
  547. ~ring09.itm~ ~override~
  548. // Item_Pack version lacks "Free Action" opcode 163. Does this opcode also
  549. // have problems and should be removed ?
  550. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  551. LPF DELETE_EFFECT
  552. INT_VAR
  553. check_globals = 1
  554. // Protection from Opcode
  555. match_opcode = 101
  556. // Movement Modifier
  557. match_parameter2 = 126
  558. END
  559. LPF DELETE_EFFECT
  560. INT_VAR
  561. check_globals = 1
  562. // Immunity from Special Effect Icon
  563. match_opcode = 169
  564. // Haste Icon
  565. match_parameter2 = 38
  566. END
  567. PATCH_FOR_EACH match_resource IN
  568. spwi305 // Haste
  569. spwi613 // Improved Haste
  570. spin828 // Innate Haste
  571. BEGIN
  572. LPF DELETE_EFFECT
  573. INT_VAR
  574. check_globals = 1
  575. // Protection from Spell
  576. match_opcode = 206
  577. STR_VAR
  578. match_resource
  579. END
  580. END
  581. END
  582. BUT_ONLY
  583.  
  584. // Add extra protection effects
  585. COPY_EXISTING ~ring09.itm~ ~override~
  586. SAY DESC @1100
  587. PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
  588.  
  589. LPF DELETE_EFFECT
  590. INT_VAR
  591. check_globals = 1
  592. match_opcode = 267
  593. match_parameter1 = 14102
  594. END
  595. LPF ADD_ITEM_EQEFFECT
  596. INT_VAR
  597. // Protection from Display Specific String
  598. opcode = 267
  599. // Self
  600. target = 1
  601. // While equipped
  602. timing = 2
  603. // Held
  604. parameter1 = 14102
  605. END
  606.  
  607. PATCH_FOR_EACH parameter2 IN
  608. 144 // Entagled
  609. 145 // Grease
  610. BEGIN
  611. LPF DELETE_EFFECT
  612. INT_VAR
  613. check_globals = 1
  614. match_opcode = 169
  615. match_parameter2 = %parameter2%
  616. END
  617. LPF ADD_ITEM_EQEFFECT
  618. INT_VAR
  619. // Immunity from Special Effect Icon
  620. opcode = 169
  621. // Self
  622. target = 1
  623. // While equipped
  624. timing = 2
  625. parameter2
  626. END
  627. END
  628.  
  629. PATCH_FOR_EACH resource IN
  630. spcl522 // Defensive Spin
  631. spin977 // Golem Slow
  632. spin983 // Innate Slow
  633. spwi101 // Grease
  634. spwi105 // Color Spray
  635. spwi312 // Slow
  636. spwish25 // Wish Slow
  637. spwm164 // Wild Magic Slow
  638. BEGIN
  639. LPF DELETE_EFFECT
  640. INT_VAR
  641. check_globals = 1
  642. match_opcode = 206
  643. STR_VAR
  644. match_resource = EVAL ~%resource%~
  645. END
  646. LPF ADD_ITEM_EQEFFECT
  647. INT_VAR
  648. // Protection from Spell
  649. opcode = 206
  650. // Self
  651. target = 1
  652. // While equipped
  653. timing = 2
  654. STR_VAR
  655. resource
  656. END
  657. END
  658. END
  659. BUT_ONLY
  660.  
  661. ACTION_IF FILE_EXISTS_IN_GAME ~_sw1h01.itm~ BEGIN
  662. COPY ~override/ring09.itm~ ~override/%tutu_var%ring09.itm~
  663. SAY NAME2 #6837
  664. SAY DESC @1100
  665. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement