佳丽云

英雄无敌3-WoG中文站

 找回密码
 英雄注册|Register
查看: 2299|回复: 3

战争机器脚本问题

[复制链接]
  • TA的每日心情
    慵懒
    昨天 21:13
  • 签到天数: 3885 天

    连续签到: 24 天

    [LV.Master]伴坛终老

    3876

    回帖

    5万

    金币

    0

    精华

    9级 Promising Supreme Hero

    Rank: 9Rank: 9Rank: 9

    积分
    76975
    发表于 2013-10-25 13:57:28 | 显示全部楼层 |阅读模式
    这个脚本有修满血无法恢复的代码,按说明是当怪物数量受损但是满血时点等待然后到行动时就可以对满血部队进行治疗。但是实际使用时会出现帐篷点等待后直接跳过帐篷的动(相当于点了防御而不是等待)。同时当帐篷动作前自动发动的治疗导致所有怪物满血时帐篷也会直接跳过行动。如何修复这一问题?

    1. ZVSE
    2. ERMS_ScriptDate=7.10(October).2013
    3. _WARNING_#1=IMPORTANT! This file is not in a plain text format. NEVER use any editor except ERM_S for making any kind of changes!
    4. ERMS_PoweredBy=ERM Scripter v. 2004.6.29.918


    5. ** Updated: August 26, 2005 by Perfect0  (removed three "!" corresponding to new erm parser)

    6. ** Updated: November 19, 2004 by Timothy to fix a bug preventing recruitment of ghosts
    7. ** (and subsequent town rebuilding) from a demolished town.

    8. ** Updated: 06.01.2005 by Thomas Franz (samot): ballistas reduce the speed to minimal the half
    9. ** of the basic speed of the creature. If stack is slowed: minSpeed = 1/3 of the basic speed

    10. *War Machine script 0.9 by Overlord
    11. *Reserved: TM41, v591, v2000-v2074, FU900-FU927, w81-83
    12. *Temporary: z1-z4
    13. *
    14. *ballista "base on ballista level" upgrades in towns
    15. *x(#)*damage, target loose speed, att/def bonuses, increases hit
    16. *
    17. *ammo cart "base on ammo cart level" upgrades in town
    18. *spell points every combat turn, def bonuses, increases hit
    19. *
    20. *first aid tent "base on first aid level" upgrades in town
    21. *additional healing with resurrection, increases hit
    22. *
    23. *catapult "base on herolevel and ballistics skill"
    24. *increases hit, with ballistics: shoot ability with 2,4 or 8 shoots
    25. *
    26. **修正帐篷使用:FU变量使用:FU928-FU932
    27. **修正帐篷使用: v变量使用:v944-v949

    28. ************************ before action combat screen ***************************

    29. !#UN:P54/?v591; [Check if script is enabled: v591=1 if yes]

    30. !?BG&v591=1; get before action

    31. !!UN:G1/145/0/0;恢复单数冲车默认名称
    32. !!UN:G1/145/1/0;恢复复数冲车默认名称

    33. !!UN:G1/146/0/0;恢复单数炮车默认名称
    34. !!UN:G1/146/1/0;恢复复数炮车默认名称

    35. !!UN:G1/147/0/0;恢复单数帐篷默认名称
    36. !!UN:G1/147/1/0;恢复复数帐篷默认名称

    37. !!FU900:P;

    38. !?FU900&v591=1;
    39. !!BG:N?y1 E?y3 D?y4 H?y5 Q?y6 A?y7;
    40. !!FU&y1<0|y1>41:E; exit if no stack
    41. !!BMy1:T?y2 I?y8 N?y9 L?y10 F?y-1; y-1 - moster flags (132165 = catapult if not siege)
    42. *
    43. !!FU925&y2=145/y-1=132165:Py6/y1/y7/y8; catapult first stage
    44. !!FU901&y2=45/y-1=132165/v2059=1:P1/y1/y7/y8/y5/y9; catapult second stage
    45. *
    46. !!FU902&y2=146/y7=7:P0/y3; ballista
    47. * first aid tent actions *
    48. **FU919&y2=173/v2056=1:P2/y7/y1; first aid other action
    49. **FU922&y2=147/v2056=0/y7=11:P0/y3;
    50. **FU903&y2=147/v2056=0/y7<>11:Py8/y5/y1/y7/y3; first aid start

    51. !?FU901&v591=1; catapult action * magog *
    52. * 1
    53. !!VRx4&x1=1:+2068;
    54. !!VRvx4&x1=1/x3=7:-1;
    55. !!BMx2&x1=1/x3<>7:T145;
    56. !!VRv2059&x1=1/x3=7:S3;
    57. !!VRv2054&x1=1/x3=7:Sx2;
    58. !!FU906&x1=1:P145/x5/x6/x2;
    59. * 2
    60. !!BMv2054&x1=2:T145;
    61. !!VRv2059&x1=2:S0;
    62. !!UN&x1=2:G1/45/0/0 G1/45/1/0; restore magog

    63. **VRv2059&x1=1/x3=7

    64. !?FU981&v1=55/v591=1; catapult
    65. * 1
    66. !!VRx4:+2068;
    67. !!BMx2&x1=1:T145;
    68. !!UN&x1=1:G1/173/0/0 G1/173/1/0;
    69. !!VRv2059&x1=1:S0;
    70. !!FU906&x1=1:P145/x5/x6/x2;
    71. !!VRvx4&x1=1/x3=7:-1;
    72. !!VRv2059&x1=1/x3=7/x7<>-1:S3;
    73. !!VRv2054&x1=1/x3=7/x7<>-1:Sx7;
    74. * 2
    75. !!FU&x1<2:E;
    76. !!VRv2059:S0;
    77. !!BMv2054:I?y1;
    78. *
    79. !!VRy5&y1=0:Sv2071;
    80. !!VRy5&y1=1:Sv2070;
    81. !!BMv2054&y5>0:M71/y10/y10;
    82. !!BU:R;



    83. !?FU919&v591=1;
    84. * 1
    85. !!BMx4&x1=0:T147;
    86. !!UN&x1=0:G1/173/0/0 G1/173/1/0;
    87. !!VRv2056&x1=0:S0;
    88. !!FU906&x1=0:P147/x2/x3/x4;
    89. * 2
    90. !!BMv2057&x1=1:T147;
    91. !!UN&x1=1:G1/173/0/0 G1/173/1/0;
    92. !!VRv2056&x1=1:S0;
    93. * 3
    94. !!FU&x1<2:E; exit if no x1
    95. !!FU|x2<4/x2>8/x2=6/x2=7:E; exit if action is not right
    96. !!BMx3:T147;
    97. !!VRv2056:S0;

    98. !?FU903&v591=1;
    99. !!HEx2:S27/?y1;
    100. !!FU&y1=0:E; exit if no first aid skill
    101. !!DO904/0/20/1:Px1/1; get if any creature dead
    102. !!FU&v1=0:E; exit if no creature to resurrect
    103. !!VRv2056:S1; there is a creature to resurrect
    104. !!VRz1:Sz154000;
    105. !!VRz2:Sz154001;
    106. !!UN:G1/173/0/1 G1/173/1/2;
    107. !!BMx3:T173; change to santa gremlin
    108. !!VRv2057:Sx3;
    109. !!BG:A0;

    110. !?FU904&v591=1;
    111. !!VRvx2&x16=0:S0;
    112. !!VRy1:Sx16;
    113. !!VRy1&x1=1:+21;
    114. !!BMy1:B?y2 N?y3 T?y4;
    115. !!VRvx2&y3<y2/y4>-1:+1;

    116. !?FU902&v591=1;
    117. * 1
    118. !!VRv2053&x1=0:S2;
    119. !!BMx2&x1=0:N?v2054 H?y2 L?y3;
    120. !!VRv2054&x1=0:*y2 -y3; get before life
    121. !!VRv2055&x1=0:Sx2;
    122. * 2
    123. !!FU&x1=0:E; exit if not x1 = 1
    124. !!VRv2053:S0;
    125. !!BMv2055:N?y1 H?y2 L?y3 I?y4 S?y13 T?y16 G54/?y18/d; // get Number, Health, Lost HP, Side, Speed, Type and check, if creature is slowed
    126. !!BH0&y4=1:N?y5;
    127. !!BH1&y4=0:N?y5; get THE hero number
    128. !!VRy1:*y2 -y3; get after life
    129. !!HEy5:S20/?y11;
    130. !!IF:Wy5;
    131. !!VRy6:Sw81 +1;
    132. !!VRy7:Sy11 +y6 *20 -20; artillery + level * 20, +80
    133. !!FU&y7=0:E; exit if not more damage
    134. !!VRy8:Sv2054 -y1 *y7 :100;
    135. !!VRy15:Sy13;
    136. !!VRy13&y15>0:-y11;
    137. !!MA:Sy16/?y17; // get the basic speed of the creature
    138. !!VRy17&y18=0::2; // halve the basic speed
    139. !!VRy17&y18>0::3; // minimal a third of the basic speed, if creature is slowed
    140. !!VRy13&y15>0/y13<y17:Sy17; no less than the half / a third of basic speed
    141. !!BMv2055:Ky8 Sy13; give additional damage and speed loss
    142. !!BU:R;

    143. !?FU920&v591=1;
    144. !!BG:H?y1;
    145. !!FU&y1<>x2:E; exit if different hero
    146. !!FU&x5=x6:E; exit if maximum creature founded
    147. !!CM:R0;
    148. !!VRx5:+1; add +1 creature
    149. !!BMx7:Lx3 Nx5; set hitpoints to 0
    150. !!BG:N?y1 Ex7 Dx8; get first aid tent
    151. !!BMy1:T147;
    152. !!UN:G1/173/0/0 G1/173/1/0;
    153. !!VRv2056:S0;
    154. !!BG:A11; call resurrection

    155. !?FU925&v591=1; check catapults avaiabitity
    156. !!VRv2074:S0;
    157. !!VRx4:+2068;
    158. !!FU&vx4=0:E; exit if no shots
    159. !!FU926&x1=0:P0/103 P0/121 P0/137;
    160. !!FU926&x1=1:P1/117 P1/116 P1/133 P1/150 P1/151;
    161. !!FU&v2074=1:E; exit if enemy found
    162. !!VRz1:Sz154002;
    163. !!VRz2:Sz154003;
    164. !!UN:G1/45/0/1 G1/45/1/2;
    165. !!BMx2:T45; change to magog
    166. !!BG:A0; cancel action
    167. !!VRv2059:S1; set activity to 1

    168. !?FU926&v591=1;
    169. !!BU:Ex2/?y1;
    170. !!FU&y1=-1:E;
    171. !!BMy1:I?y2;
    172. !!VRv2074&y2<>x1:S1;

    173. ************************* after action combat screen ***************************

    174. !?BG1&v591=1; get after action
    175. !!FU902&v2053=2:P1;
    176. !!FU901&v2059=3:P2;
    177. **FU922&v2056=2:P1;

    178. !?FU922&v591=1;
    179. * 1
    180. !!VRv2056&x1=0:S2;
    181. !!VRv2057&x1=0:Sx2;
    182. !!BMv2057&x1=0:L?v2058; get before heal
    183. * 2
    184. !!FU&x1<1:E; exit
    185. !!VRv2056:S0;
    186. !!BMv2057:Lv2058 I?y2; restore old and get index.
    187. !!BHy2:N?y3; get hero
    188. !!HEy3:S27/?y11;
    189. !!IF:Wy3;
    190. !!VRy6:Sw82 +1;
    191. !!VRy7:Sy11 +y6 *20 +80; first aid + level * 20, +80
    192. * set healing points *
    193. !!VRy1&y11=0:S25; !!VRy1&y11=1:S50; !!VRy1&y11=2:S75; !!VRy1&y11=3:S100;
    194. !!VRy1:*y7 :100; get quantity to heal
    195. !!FU923:Pv2057/y1/y11;

    196. !?FU923&v591=1;
    197. !!BMx1:B?y1 N?y2 H?y3 L?y4 L?y5; get information
    198. !!VRy4:-x2;
    199. !!BMx1&y4>-1:Ly4; all or partial healing
    200. !!FU&y4>-1:E; stop if completed
    201. !!BMx1&y4<0:L0;
    202. !!FU&y1=y2:E; stop if maximum creature
    203. !!FU&x3=0:E; stop if no first aid skills
    204. !!VRx2:-y5;
    205. !!VRy2:+1;
    206. !!BMx1:Ny2 Ly3;
    207. !!FU923:Pv2057/x2; recuring

    208. ************************* MOUSE CLICK combat screen ****************************

    209. !?CM4&v591=1;
    210. !!CM:D?v2048 F?v2049;
    211. !!FU905&v2048>-1/v2048<186:Pv2048/v2049;

    212. !?FU905&v591=1;
    213. !!BU:Ex1/?y1; check monster position
    214. !!FU&y1=-1:E; exit if no monster
    215. !!BMy1:T?y2 I?y3 L?y5 H?y6 N?y7 F?y8 B?y9; y2 = monster , y3 = hero side
    216. !!BHy3:N?y4; get hero number

    217. !!UN&y8<>132165/y2=45:G1/45/0/0 G1/45/1/0; restore magog if mouse click on real magogs
    218. !!VRz1&y8=132165:Sz154002;
    219. !!VRz2&y8=132165:Sz154003;
    220. !!UN&y8=132165:G1/45/0/1 G1/45/1/2;

    221. !!FU901&y2=45/v2059=1/y8=132165:P1/y1/0/y3/y4/y7; catapult view
    222. !!FU919&y2=173/v2056=1/y8=132161:P0/y4/y7/y1;
    223. * reset santa gremlin *
    224. !!UN&y2=173/v2056>0/y8<>132161:G1/173/0/0 G1/173/1/0;
    225. !!UN&y2=45/v2059>0/y8<>132165:G1/173/0/0 G1/173/1/0; restore magog
    226. *
    227. !!FU920&v2056=1/y8<>132161/x2=0:Py2/y4/y6/y5/y7/y9/y1/x1;
    228. !!FU906&y2>144/y2<149:Py2/y4/y7/y1; stats change if machines

    229. !?FU906&v591=1; x1 = machine , x2 = hero
    230. !!IF:Wx2; set W var for hero
    231. !!VRy5:Sx1 -65;
    232. !!VRy6:Swy5 +1; y6 = level of machine
    233. !!VRy12&x4<21:Sv2070;
    234. !!VRy12&x4>20:Sv2071;
    235. !!VRy13&x4<21:Sv2072;
    236. !!VRy13&x4>20:Sv2073;
    237. !!VRz1&x1=146:Sz154004;
    238. !!VRz1&x1=148:Sz154005;
    239. !!VRz1&x1=147:Sz154006;
    240. !!VRz1&x3>1:Sz154007;
    241. !!VRz1:Sz154008;
    242. !!VRz1&x1=145:Sz154009;
    243. !!VRz1&x1=145/x3>1:Sz154010;
    244. !!VRz1&x1=145/y12=1:Sz154011;
    245. !!VRz1&x1=145/y12=2:Sz154012;
    246. !!VRz1&x1=145/y12=3:Sz154013;
    247. !!VRz1&x1=145/x3>1:Sz154014;
    248. !!UN:G1/x1/1/1 G1/x1/0/1;
    249. * hit points
    250. !!VRy9&x1=145/y12=0:S500;
    251. !!VRy9&x1=145/y12>0:Sy12 *50 *y12 +550;
    252. !!VRy10&x1=145:Sy13 *50 +y9 -50;
    253. !!VRy10&x1=146:Sy6 *50 +200;
    254. !!VRy10&x1=147:Sy6 *25 + 125;
    255. !!VRy10&x1=148:Sy6 *10 +90;
    256. !!BMx4:Hy10 I?y11;
    257. !!MA:Px1/y10;
    258. * calculate shots for catapult *
    259. !!FU&v2052=98:E; exit if siege
    260. !!VRy12:S2068 +y11;
    261. !!VRy11:Svy12;
    262. !!MA&x1=145:N145/y11;

    263. *********************** Pre-Post Combat and ammo cart **************************

    264. !?BA0&v591=1;
    265. !!BA:H0/?y-1;    获取进攻方英雄ID保存到y-1
    266. !!IP:Wy-1/81/83; 发送英雄变量w81-w83
    267. !!BA:H1/?y-1;    获取防守方英雄ID保存到y-1
    268. !!IP:Wy-1/81/83; 发送英雄变量w81-w83
    269. !!IP:V2000/2074; 发送v变量

    270. !?BA52&v591=1;
    271. !!BA:P?v1/?v2/?v3;
    272. !!OBv1/v2/v3:T?v2052;
    273. !!CAv1/v2/v3&v2052=98:U?v7; town number
    274. [Count number of towns - store in y-2]
    275. !!UN&v2052=34:U98/-1/?y-2;
    276. !!DO927/1/y-2/1&v2052=34/y-2>0:P;  check if attacked hero in any town

    277. !!FU915:P0/0 P1/0; store enabler
    278. !!FU917:P; change stats

    279. **
    280. !?FU927&v591=1; check if attacked hero in this town
    281. !!UN:U98/-1/x16/4;
    282. !!FU&v1<>v4|v2<>v5/v3<>v6:E;
    283. [process only if attacked hero visiting town]
    284. !!CAv1/v2/v3:U?v7 H0/?y-1; store town number & check if hero in town harrison
    285. !!VRv2052&y-1=-1:S98; it is a siege if only 1 hero in town

    286. **
    287. !?FU917&v591=1;
    288. !!CA0/v7&v2052=98:B3/7; check if town has fort
    289. !!CA0/v7&v2052=98/-1:B3/8; check if town has citadel
    290. !!CA0/v7&v2052=98/-1:B3/9; check if town has castle
    291. !!VRv2052&v2052=98/-1:S0; town without fort
    292. !!MA&v2052<>98:X145/132165 M145/0 E145/200 N145/8; not town or no fort
    293. !!MA&v2052=98:X145/132197 M145/0 E145/200 N145/8; town with fort
    294. !!FU918&v2052<>98:P0 P1;

    295. !?FU918&v591=1;
    296. !!BA:Hx1/?y1;
    297. !!FU&y1<0:E;
    298. !!HEy1:S10/?y2;
    299. !!VRy3:S2068 +x1;
    300. !!VRvy3&y2=1:S2;
    301. !!VRvy3&y2=2:S4;
    302. !!VRvy3&y2=3:S8;

    303. !?BR&v591=1; set mana for ammo cart
    304. !!DO907/0/41/1&v997>0:P1;

    305. !?BF&v591=1; set machines attributes
    306. !!FU924:P; check siege mode AGAIN, if AI don't GET IT!
    307. !!FU909&v2052<>98:P0/119 P1/135; call if no siege battle
    308. !!DO908/0/41/1:P;

    309. !?FU924&v591=1;
    310. !!BU:E119/?x1;
    311. !!VRv2052&x1>-1:S98; if catapult found its a siege mode, set v2052 = 98
    312. !!MA&x1>-1:X145/132197 M145/0 E145/0;

    313. !?BA53&v591=1; after battle check & re-set enabler
    314. !!FU912:P1/0 P1/1;
    315. !!FU915:P0/1 P1/1;
    316. !!VRv2048:C0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0; v2048-v2063
    317. !!VRv2064:C0/0/0/0/0/0/0/0/0/0; v2064 - v2073

    318. !?FU907&v591=1;
    319. !!BMx16:T?y1 I?y2;
    320. !!FU&y1<>148:E; exit
    321. !!BHy2:N?y3;
    322. !!IF:Wy3;
    323. !!VRy6:Sw83 +1; get addition
    324. !!HEy3:I?y7/1; get current spell points
    325. !!VRy8:S2066 +y2; get current side index
    326. !!VRy9:Svy8 *10; get knowledge power * 10
    327. !!FU&y7=>y9:E; exit if spell already enough
    328. !!VRy6:+y7; set additioanl spell
    329. !!VRy6&y6>y9:Sy9; set max if y6 > y9
    330. !!HEy3:Iy6/1;

    331. !?FU908&v591=1;
    332. !!BMx16:T?x6 I?x7;
    333. !!FU|x6<145/x6>148:E; exit
    334. !!BHx7:N?x5;
    335. !!FU&x5<0:E; exit if no hero set
    336. !!IF:Wx5;
    337. !!VRx4:Sx6 -65;
    338. !!VRx3:Swx4 +1; get w-var for type, add 1 top skip 0
    339. *
    340. !!VRx1:Sv2070 +x7; new method to get sec + skill
    341. !!VRx2:Sv2072 +x7;
    342. * change catapult stats
    343. !!VRx8&x6=145/x1=0:S500;
    344. !!VRx8&x6=145/x1>0:Sx1 *50 *x1 +550;
    345. * hit points warmachines
    346. !!VRx9&x6=145:Sx2 *50 +x8 -50;
    347. !!VRx9&x6=146:Sx3 *50 +200;
    348. !!VRx9&x6=147:Sx3 *25 +125;
    349. !!VRx9&x6=148:Sx3 *10 +90;
    350. !!BMx16:Hx9;

    351. !?FU909&v591=1;
    352. * place real catapults *
    353. !!BA:Hx1/?y1;
    354. !!FU&y1<0:E; exit if no hero found
    355. !!HEy1:S10/?y11; get ballistics secondary skills
    356. !!FU912:P6/x2/x1/1;
    357. !!BU&y11>0/v1=0:S145/1/x2/x1/-1/0;

    358. !?FU915&v591=1;
    359. !!BA:Hx1/?y1;
    360. !!FU&y1<0:E;
    361. !!HEy1&x1=0/x2=0:A2/4/d/?v2060 A2/5/d/?v2061 A2/6/d/?v2062 Fd/d/d/?v2066 S10/?v2070 Ed/?v2072;
    362. !!HEy1&x1=1/x2=0:A2/4/d/?v2063 A2/5/d/?v2064 A2/6/d/?v2065 Fd/d/d/?v2067 S10/?v2071 Ed/?v2073;
    363. !!FU912:P6/y1/4/2 P6/y1/5/3 P6/y1/6/4; call enabler
    364. !!HEy1&v2=1/x2=0:A-4;
    365. !!HEy1&v3=1/x2=0:A-5;
    366. !!HEy1&v4=1/x2=0:A-6;
    367. !!HEy1&v2=1/x1=0/x2=1/v2060=1:A1/4/13;
    368. !!HEy1&v3=1/x1=0/x2=1/v2061=1:A1/5/14;
    369. !!HEy1&v4=1/x1=0/x2=1/v2062=1:A1/6/15;
    370. !!HEy1&v2=1/x1=1/x2=1/v2063=1:A1/4/13;
    371. !!HEy1&v3=1/x1=1/x2=1/v2064=1:A1/5/14;
    372. !!HEy1&v4=1/x1=1/x2=1/v2065=1:A1/6/15;

    373. ****************************** Adventure Map ***********************************

    374. !#TM41&v591=1:S1/999/1/255;

    375. !?TM41&v591=1;
    376. !!VRv2000:C0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0; v2000-v2015
    377. !!VRv2016:C0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0; v2016-v2031
    378. !!VRv2032:C0/0/0/0/0/0/0/0/0/0/0/0/0/0/0/0; v2032-v2047

    379. !?OB98&-1000/v591=1; town - ai check only
    380. !!HE-1:N?v2048;
    381. !!FU912:P1/v2048;

    382. !?OB106&v591=1; war machine factory, entrance!
    383. !!HE-1:N?v2048;
    384. !!UN:A4/10/0 A4/9/0 A5/10/0 A5/9/0 A6/10/0 A6/9/0; restore desc
    385. !!FU912:P2/v2048;

    386. !?CM1&v591=1; inside town
    387. !!CA-1:B3/13; [Check if Capitol is built - Flag 1=True if built]
    388. !!CA-1&-1:B3/12; [Check if City Hall is built - Flag 1=True if built]
    389. !!CA-1&-1:B3/11; [Check if Town Hall is built - Flag 1=True if built]
    390. !!CA-1&-1:B3/10; [Check if Village Hall is built - Flag 1=True if built]
    391. !!FU&-1:E; [Exit if no Hall is built at all]
    392. !!CM:R1 F?v2048 I?v2049 A?v2051/?v2050;
    393. !!FU910&v2048=0/v2050<375:Pv2051/v2050/0/0/v2049/0;

    394. !?CM2&v591=1; inside hero screen
    395. !!CM:H?v2048/?y-1 F?v2050 I?v2049 A?v2051/?v2052;
    396. !!FU911&v2049>14/v2049<19/v2052>28/v2052<165/v2051<653/v2051>562:Pv2049/0/v2048/1/v2050/v2051/v2052;
    397. !!FU914&v2049=19/v2050=512:Pv2048/0;

    398. !?CM3&v591=1; inside trade screen
    399. !!CM:H?v2049/?v2050 F?v2048 I?v2051;
    400. !!FU911&v2051>39/v2051<44:Pv2051/0/v2049/v2048/1;
    401. !!FU911&v2051>58/v2051<63:Pv2051/0/v2050/v2048/1;
    402. !!FU914&v2051=44:Pv2049/1;
    403. !!FU914&v2051=63:Pv2050/1;

    404. !?FU910&v591=1;
    405. !!CA-1:T?x4 H1/?x3 U?x6; get town type
    406. !!FU916:Px4/x1/x2/x5;
    407. !!FU&x3<0|v1=-1:E; exit
    408. !!VRx1:Sv1;
    409. !!VRx5&x5<>22:S16;
    410. !!VRx2&x1=4:S146;
    411. !!VRx2&x1=5:S148;
    412. !!VRx2&x1=6:S147;
    413. !!IF:Wx3; set W var for hero
    414. !!VRy5:Sx2 -65;
    415. !!VRy6:Swy5 +1; get w-var for type, add 1 top skip 0
    416. !!HEx3:A2/x1/d/?y1 B0/?z3 Ed/?y9/1 O?y10; hero level y9
    417. !!VRwy5&y1=0:S0; set w-var to 0
    418. !!UN&y1=0:G1/x2/0/0 G1/x2/1/0;
    419. !!UN:Ax1/10/0 Ax1/9/0; restore desc
    420. !!FU&y1=0:E; stop if found
    421. !!CM:R0; Disable standard reaction
    422. !!VRy16:S2000 +x6; get towns number store in v2000 + townnumber
    423. !!VRy17:Svy16; get number from vy16
    424. !!OW:Ry10/6/?y11; get gold from player
    425. !!VRy8:Sy6 +1; next level
    426. !!UN:N2/1/x4/x5 N3/2/x2/0; get ballista name & object name
    427. !!FU913:Px2/x1/x3/y8; get stats
    428. !!VRz5:Sz154015;
    429. !!VRz6:Sz154016;
    430. !!UN:Ax1/10/5 Ax1/9/6;
    431. !!MA:Cx2/6/?y7; y7 = gold cost
    432. !!VRy7::5 *y8; gold cost is level * machine / 5
    433. !!VRy15:S2; set to choices
    434. !!VRz4&y11<y7:Sz154017;
    435. !!VRz4&y9<y8:Sz154018;
    436. !!VRz4&y17>0:Sz154019;
    437. !!VRy15&y11<y7|y9<y8:S4; set to message with no buttons
    438. !!VRy15&y17>0:S4; also
    439. !!VRz4&y15=2:S^^;
    440. !!IF:Q1/8/x1/36/y7/y15/z154020;
    441. !!FU&y15=4|-1:E; stop function
    442. !!VRy11:-y7; sub money
    443. !!OW:Ry10/6/y11; new money
    444. !!VRwy5:+1; add level to W var for machine
    445. **VRvy16:+1; add for use only 1 time/castle/day

    446. !?FU911&v591=1;
    447. !!VRx1&x1>58:-44; trade right hero fix
    448. !!VRx1&x1>39:-25; trade left hero fix
    449. !!VRx1&x1=15:S146;
    450. !!VRx1&x1=16:S148;
    451. !!VRx1&x1=17:S147;
    452. !!VRx1&x1=18:S145;
    453. !!VRx2&x1=145:S3; !!VRx2&x1=146:S4;
    454. !!VRx2&x1=147:S6; !!VRx2&x1=148:S5;
    455. !!HEx3:A2/x2/d/?y1 S10/?y12 B0/?z7 R2/?y19;
    456. !!VRy1&x5=0/x6<609/x1<>146:S0; no ballista x-
    457. !!VRy1&x5=0/x1=145/x7<121:S0; catapult y-
    458. !!VRy1&x5=0/x1=146/x6>606:S0; ballista x+
    459. !!VRy1&x5=0/x1=146/x7>72:S0; ballista y+
    460. !!VRy1&x5=0/x1=148/x7>72:S0; ammo cart y+
    461. !!VRy1&x5=0/x1=147/x7>118:S0; first aid y+
    462. !!VRy1&x5=0/x1=147/x7<75:S0; first aid y-
    463. !!FU&y1=0:E; exit if no found
    464. !!CM:R0;
    465. !!IF:Wx3; set W var for hero
    466. !!VRy5:Sx1 -65;
    467. !!VRy6:Swy5 +1;
    468. !!FU913&x5>0:Px1/x2/x3/y6; get stats
    469. *
    470. !!VRz1&x2=3/y12=0:Sz154021;
    471. !!VRz1&x2=3/y12=1:Sz154022;
    472. !!VRz1&x2=3/y12=2:Sz154023;
    473. !!VRz1&x2=3/y12=3:Sz154024;
    474. !!VRz1&x2=4:Sz154025;
    475. !!VRz1&x2=5:Sz154026;
    476. !!VRz1&x2=6:Sz154027;
    477. !!VRz6:S^^;
    478. !!UN:Ax2/9/6;
    479. !!VRz2&x2=3:Sz154028;
    480. !!VRz2&x2=4:Sz154029;

    481. !!VRz2&x2=5:Sz154030;

    482. !!VRz2&x2=6:Sz154031;
    483. !!VRz2&x4=0:Sz154032;
    484. !!IF&x5>0:Q1/8/x2/4^%Z1

    485. %Z2^;

    486. !!FU912&x5=0:P6/x3/x2/1;
    487. !!VRz4&x5=0/v1=0:Sz154033;
    488. !!VRz4&x5=0/v1=1:Sz154034;
    489. !!VRz5&x5=0/v1=0:Sz154035;
    490. !!VRz5&x5=0/v1=1:Sz154036;
    491. !!UN:Ax2/10/0;
    492. !!VRz8&y19=0:Sz154037;
    493. !!VRz8&y19=1:Sz154038;
    494. !!IF&x5=0:Q1/8/x2/2/z154039;

    495. !!FU912&x5=0/1:P7/x3/x2/v1;
    496. !!FU&x5<>0:E; exit if not x5
    497. !!FU&-1:E; exit if choosed no
    498. !!VRz2&x2=3:Sz154040;
    499. !!VRz2&x2=4:Sz154041;
    500. !!VRz2&x2=5:Sz154042;
    501. !!VRz2&x2=6:Sz154043;
    502. !!VRz4&x5=0/v1=1:Sz154044;
    503. !!VRz4&x5=0/v1=0:Sz154045;
    504. !!IF:Q1/8/x2/1/z154046;

    505. !?FU916&v591=1;
    506. !!VRv1:S0;
    507. !!VRv2&x1=0:C240/251/364/369; castle
    508. !!VRv2&x1=1:C627/137/668/186; rampart
    509. !!VRv2&x1=2:C495/227/613/353; tower
    510. !!VRv2&x1=3:C684/272/780/367; inferno
    511. !!VRv2&x1=4:C402/252/471/296; necropolis
    512. !!VRv2&x1=5:C546/248/618/328; dungeon
    513. !!VRv2&x1=6:C622/286/765/361; stronghold
    514. !!VRv2&x1=7:C360/160/454/238; fortress
    515. !!VRv2&x1=8:C463/200/533/255; conflux
    516. !!VRv1&x2<v2|x2>v4:S-1;
    517. !!VRv1&x3<v3|x3>v5:S-1;
    518. !!FU&v1=-1:E; exit if out of range
    519. !!VRv1:S-1;
    520. !!VRv1&x4=16/x1=0:S4; castle
    521. !!VRv1&x4=16/x1=1:S6; rampart
    522. !!VRv1&x4=16/x1=2:S5; tower
    523. !!VRv1&x4=16/x1=3:S5; inferno
    524. !!VRv1&x4=16/x1=4:S6; necropolis
    525. !!VRv1&x4=23/x1=4:S6; necropolis
    526. !!VRv1&x4=16/x1=5:S4; dungeon
    527. !!VRv1&x4=16/x1=6:S5; stronghold
    528. !!VRv1&x4=22/x1=6:S4; stronghold
    529. !!VRv1&x4=16/x1=7:S6; fortress 1
    530. !!VRv1&x4=14/x1=7:S6; fortress 2
    531. !!VRv1&x4=13/x1=7:S6; fortress 3
    532. !!VRv1&x4=14/x1=8:S4; conflux
    533. !!VRv1&x4=16/x1=8:S4; conflux

    534. ********************************* Functions ************************************

    535. !?FU912&v591=1;
    536. * Ai get's upgrades - x1 = 1 *
    537. !!IF&x1>0/x1<4:Wx2;
    538. !!HEx2&x1>0/x1<4:A2/4/d/?y1 A2/5/d/?y2 A2/6/d/?y3 Ed/?y4/1; y1-Ballista,y2=Ammo Cart,y3=Aid Tent,y4=hero level
    539. !!VRw81&x1=1/y1>0/w81<y4:+1; add 1 level ballista
    540. !!VRw82&x1=1/y3>0/w82<y4:+1; add 1 level first aid
    541. !!VRw83&x1=1/y2>0/w83<y4:+1; add 1 level ammo cart
    542. * Erase Quantity - x2 = 2 *
    543. !!VRw81&x1=2/y1=0:S0; zero if no ballista
    544. !!VRw82&x1=2/y3=0:S0; zero if no ammo
    545. !!VRw83&x1=2/y2=0:S0; zero if no tent
    546. * Reset w81-w83 every hero *
    547. !!IF&x1=3:Wx16;
    548. !!VRw81&x1=3:S0;
    549. !!VRw82&x1=3:S0;
    550. !!VRw83&x1=3:S0;
    551. * get quantity of spells *
    552. !!HEx2&x1=4:Mx16/?y1;
    553. !!VRvx3&x1=4/y1=1:+1;
    554. * get spells
    555. !!HEx2&x1=5:Mx16/?y1;
    556. !!VRvx3&x1=5/y1=1:Sx16;
    557. !!VRx3&x1=5/y1=1:+1;
    558. * get enabler
    559. !!VRy1&x1=6:S2000 +x2;
    560. !!VRy2&x1=6:Svy1; ** get hero ** y2 = get number
    561. !!VRy6&x1=6/y2>999:S1;
    562. !!VRy2&x1=6/y2>999:-1000;
    563. !!VRy5&x1=6/y2>99:S1;
    564. !!VRy2&x1=6/y2>99:-100;
    565. !!VRy4&x1=6/y2>9:S1;
    566. !!VRy2&x1=6/y2>9:-10;
    567. !!VRy3&x1=6/y2>0:S1;
    568. !!VRy2&x1=6:S0;
    569. !!VRy2&x1=6/yx3=1:S1;
    570. !!VRvx4&x1=6:Sy2;
    571. * set enabler
    572. !!VRy1&x1=7:S2000 +x2;
    573. !!VRy2&x1=7:S30 -vy1; ** get hero ** y2 = get number
    574. !!VRy3&x1=7/x3=3:S1;
    575. !!VRy3&x1=7/x3=4:S10;
    576. !!VRy3&x1=7/x3=5:S100;
    577. !!VRy3&x1=7/x3=6:S1000;
    578. !!VRvy1&x1=7/x4=0:+y3;
    579. !!VRvy1&x1=7/x4=1:-y3;

    580. !#DO912/0/155/1&v591=1:P3;
    581. ************************** Get Z-var for warmachines ***************************

    582. !?FU913&v591=1;
    583. !!HEx3:S27/?y10 S20/?y11 S10/?y12 Ed/?y13/1;
    584. * catapult
    585. !!VRy9&x2=3/y12=0:S500;
    586. !!VRy9&x2=3/y12>0:Sy12 *50 *y12 +550;
    587. !!VRy8&x2=3:Sy13 *50 +y9 -50;
    588. !!VRy10&x2=3/y12=1:S2;
    589. !!VRy10&x2=3/y12=2:S4;
    590. !!VRy10&x2=3/y12=3:S8;
    591. !!VRz3&x2=3/y12=0:S^^;
    592. !!VRz3&x2=3/y12>0:Sz154047;
    593. !!VRz5&x2=3:Sz154048;
    594. * first aid tent
    595. !!VRy8&x2=6:Sx4 *25 +125;
    596. !!VRy7&x2=6:Sy10 +x4 *20 +80; first aid + level * 20, +80
    597. !!VRz6&x2=6/y10=0:S^^;
    598. !!VRz6&x2=6/y10>0:Sz154049;
    599. !!VRz5&x2=6:Sz154050;
    600. * ammo cart
    601. !!VRy8&x2=5:Sx4 *10 +90;
    602. !!VRz4&x2=5/x4=1:S^^;
    603. !!VRz4&x2=5/x4>1:Sz154051;
    604. !!VRz5&x2=5:Sz154052;
    605. * ballista
    606. !!VRy8&x2=4:Sx4 *50 +200;
    607. !!VRy7&x2=4:Sy11 +x4 *20 +80; artillery + level * 20, +80
    608. !!VRz6&x2=4/y11=0:S^^;
    609. !!VRz6&x2=4/y11>0:Sz154053;
    610. !!VRz5&x2=4:Sz154054;

    611. ******************************** Spell Book ************************************

    612. !?FU914&v591=1;
    613. !!HEx1:A2/1000/d/?y1 B0/?z3;
    614. !!FU&y1=0:E;
    615. !!CM:R0;
    616. !!VRv1:S0;
    617. !!DO912/0/69/1:P4/x1/1;
    618. !!VRz2&v1=0:Sz154055;
    619. !!VRz2&v1>3:Sz154056;
    620. !!VRz2&v1=70:Sz154057;
    621. !!UN:A0/9/2;
    622. !!VRz1&x2=0:Sz154058;
    623. !!VRz1&x2=1:Sz154059;
    624. !!IF&v1=0|v1>3:Q1/8/0/4^%Z1^;
    625. !!DO912/0/69/1&v1>0/v1<4:P5/x1/2;
    626. !!VRz2:S^^;
    627. !!VRz2&v1>1:Sz154060;
    628. !!VRz1:Sz154061;
    629. !!IF&v1=1:Q1/9/v2/4^%Z1^;
    630. !!IF&v1=2:Q1/9/v2/9/v3/4^%Z1^;
    631. !!IF&v1=3:Q1/9/v2/9/v3/9/v4/4^%Z1^;
    632. !!UN:A0/9/0 A0/9/10;

    633. ********************************************************************************
    634. ********************************急救帐篷修正开始********************************
    635. ***修正帐篷使用:FU变量使用:FU928-FU932
    636. ***修正帐篷使用: v变量使用:v944-v949

    637. ***恢复总血量=因子A+因子B+因子C
    638. ***恢复血量因子A:y12:英雄急救术级别对应的基础医疗量
    639. ***恢复血量因子B:y13:(英雄急救术级别+帐篷等级)*20+120
    640. ***恢复血量因子C【新增】:y15:英雄级别*10(当英雄有急救术时)


    641. !?BA0&v591=1;

    642. !!BA&v591=1:H0/?v37;      进攻方英雄ID存入v37
    643. !!BA&v591=1:H1/?v47;      防守方英雄ID存入v47

    644. !!HEv37&v37>-1/v591=1:S27/?v38;获取进攻方英雄急救术等级保存到v38
    645. !!HEv47&v47>-1/v591=1:S27/?v48;获取防守方英雄急救术等级保存到v48

    646. !?BG;
    647. !!FU928&v591=1:P;

    648. !?FU928&v591=1;
    649. !!VRv944:C-1/-1/-1/-1/-1/-1;  v944-v949复位

    650. !!BG:N?v944 A?v945 E?v947;    [v944=动作怪物堆栈,v945=动作类型,v947=目标怪物堆栈]
    651. !!BMv944&v944>0:T?v946 I?y1;  [v946=栈内怪物类型,y1=怪物归属]
    652. !!BMv947&v947>0:N?v949;       [目标怪物堆栈>0时,获取栈内怪物数量]

    653. ***帐篷***
    654. !!IF&y1=0/v37>-1:Wv37;                    [使用英雄变量]
    655. !!VRy2&y1=0:Sw82 +1;                      [y2赋值为进攻英雄帐篷等级+1]
    656. !!VRy12&v946=147/v945=11/y1=0/v38=0:S25;  [y12赋值/进攻英雄无医疗术时]
    657. !!VRy12&v946=147/v945=11/y1=0/v38=1:S50;  [y12赋值/进攻英雄无医疗术时]
    658. !!VRy12&v946=147/v945=11/y1=0/v38=2:S75;  [y12赋值/进攻英雄无医疗术时]
    659. !!VRy12&v946=147/v945=11/y1=0/v38=3:S100; [y12赋值/进攻英雄无医疗术时]
    660. !!VRy13&y1=0/v37>-1:Sv38 +y2 *20 +120;    [y13赋值英雄医疗术等级+帐篷等级*20+120]
    661. !!HEv37&v37>-1:Ed/?y14;                   [获取进攻英雄等级保存至y14]
    662. !!VRy15&y1=0/v37>-1/v38>0:Sy14 *10;       [y15赋值为英雄等级*10]


    663. !!IF&y1=1/v47>-1:Wv47;                    [使用英雄变量]
    664. !!VRy2&y1=1:Sw82 +1;                      [y2赋值为防守英雄帐篷等级+1]
    665. !!VRy12&v946=147/v945=11/y1=1/v48=0:S25;  [y12赋值/防守英雄无医疗术时]
    666. !!VRy12&v946=147/v945=11/y1=1/v48=1:S50;  [y12赋值/防守英雄无医疗术时]
    667. !!VRy12&v946=147/v945=11/y1=1/v48=2:S75;  [y12赋值/防守英雄无医疗术时]
    668. !!VRy12&v946=147/v945=11/y1=1/v48=3:S100; [y12赋值/防守英雄无医疗术时]
    669. !!VRy13&y1=1/v47>-1:Sv48 +y2 *20 +120;    [y13赋值英雄医疗术等级+帐篷等级*20+120]
    670. !!HEv47&v47>-1:Ed/?y14;                   [获取进攻英雄等级保存至y14]
    671. !!VRy15&y1=1/v47>-1/v48>0:Sy14 *10;       [y15赋值为英雄等级*10]

    672. !!VRv948&v946=147/v945=11:Sy12 +y13 +y14;  [v948赋值:]

    673. ****************************
    674. !?BG1&v591=1;      动作后触发
    675. !!FU929&v591=1:P;  调用函数929
    676. ****************************

    677. **********************************************
    678. !?FU929&v591=1;
    679. !!BMv947&v946=147/v945=11:H?y1 L?y2 ;            [获取目标怪物堆栈生命值,血的减少]
    680. !!FU930&v946=147/v945=11/v948<=y2/v591=1:Py1/y2; [恢复的血<怪物减少的血时,调用函数930,x1=HP,x2=减少的血]
    681. !!FU931&v946=147/v945=11/v948>y2/v591=1:Py1/y2;  [恢复的血>怪物减少的血时,调用函数931,x1=HP,x2=减少的血]

    682. !!BU:C?y12;           [检查回合数是否结束]
    683. !!UN&y12=1/74:P900/0; [回合结束时开启生物经验]
    684. **********************************************

    685. **********************************************
    686. !?FU930&v591=1;
    687. !!VRy1:Sx2 -v948;         [if healing <= damage subtract healing from damage]
    688. !!BMv947:B?y2 N?y3 T?y4;  获取栈内初始怪物数量/当前数量/怪物类型
    689. !!VRy4:Sy2 -y3;           计算差值
    690. !!VRy3&y4>0:+1;           损失数量>0时,至少复活1
    691. !!BMv947:Ly1 Ny3;         [set health lost]
    692. !!UN:N3/49/y4/0;          获取怪物名称
    693. !!VRz2:S^{急救帐篷复活了一个%Z49,额外恢复了%V948点生命值。}^;
    694. !!MM:Sz2;
    695. **********************************************

    696. **********************************************
    697. !?FU931&v591=1; x1=health  x2=damage
    698. !!VRy6:Sv948 -x2;      [subtract damage from healing]
    699. !!BMv947:L0;           [remove damage]
    700. !!VRy7:Sy6 :x1 +1;     [divide healing by health, add 1]
    701. !!VRy8:Sy6 %x1;        [get remainder of division]
    702. !!VRy5:Sx1 -y8;        [calculate missing health]
    703. !!BMv947:Ndy7 Ly5;     [add units with health missing]
    704. !!BMv947:N?y1 B?y2;    [get quantities (current/initial)]
    705. !!VRy2&v949>y2:Sv949;  [reset original size to pre-action size if needed]
    706. !!BMv947&y1>y2:Ny2 L0; [limit stack to original size]
    707. !!VRz2:S^{急救帐篷额外复活了%V948点生命值。}^;
    708. !!MM:Sz2;
    709. **********************************************

    710. **************血满无法恢复修正****************
    711. !?BG1&v591=1;
    712. !!FU932&v591=1:P1;

    713. !?FU932&v591=1;
    714. !!BU:E153/?y40;  获取进攻方帐篷堆栈
    715. !!BU:E169/?y-40; 获取防守方帐篷堆栈
    716. !!BMv944:B?y41 N?y42; 获取动作怪物堆栈栈内初始数量和当前数量
    717. !!FU&y41=y42:E;       二者数量相等时函数终止
    718. !!BMv944&v944>-1/v944<21/y40>-1/y42<y41/v38>0:Lx1; 动作怪物堆栈号为 0-21,进攻方帐篷堆栈>-1,当前数量<初始数量,进攻英雄有急救术:扣血一滴
    719. !!BMv944&v944>20/v944<42/y-40>-1/y42<y41/v48>0:Lx1;动作怪物堆栈号为21-41,防守方帐篷堆栈>-1,当前数量<初始数量,防御英雄有急救术:扣血一滴
    720. *******************修正完毕*******************
    复制代码
    =w=
  • TA的每日心情
    慵懒
    昨天 21:13
  • 签到天数: 3885 天

    连续签到: 24 天

    [LV.Master]伴坛终老

    3876

    回帖

    5万

    金币

    0

    精华

    9级 Promising Supreme Hero

    Rank: 9Rank: 9Rank: 9

    积分
    76975
     楼主| 发表于 2013-10-27 12:25:25 | 显示全部楼层

    点评

    @沧海一粟  详情 回复 发表于 2013-10-29 15:13
    =w=
  • TA的每日心情
    擦汗
    2023-1-8 15:06
  • 签到天数: 349 天

    连续签到: 1 天

    [LV.8]神圣凤凰

    1839

    回帖

    7819

    金币

    1

    精华

    论坛嘉宾

    Rank: 9Rank: 9Rank: 9

    积分
    7384

    退役版主社区QQ达人

    QQ
    发表于 2013-10-29 15:13:20 | 显示全部楼层
    gigichart 发表于 2013-10-27 12:25
    @贤知有您 @神奇的卡片

    @沧海一粟
  • TA的每日心情
    开心
    2023-7-4 14:44
  • 签到天数: 23 天

    连续签到: 1 天

    [LV.4]狂狼人

    79

    回帖

    9324

    金币

    0

    精华

    2级 Adventuring Hero

    Rank: 2

    积分
    370

    社区QQ达人

    发表于 2013-12-4 09:59:05 | 显示全部楼层
    解决了没有?????
    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 英雄注册|Register

    本版积分规则

    捐赠
    关注我们,英3Mod一网打尽!

    WoG中文站 ( 辽B2-20210485-10 )|辽公网安备 21128202000228 号

    GMT+8, 2025-5-4 13:52 , Processed in 0.363824 second(s), 14 queries , Gzip On, File On.

    Powered by Discuz! X3.4

    Copyright © 2004-2022, Beijing Second Sight Technology Co., LTD.

    快速回复 返回顶部 返回列表