佳丽云

英雄无敌3-WoG中文站

 找回密码
 英雄注册|Register
查看: 11089|回复: 4

帐篷导致追随者死亡Bug的解决方法

[复制链接]
  • TA的每日心情

    2021-8-18 21:24
  • 签到天数: 9 天

    连续签到: 2 天

    [LV.3]火元素使者

    313

    回帖

    7158

    金币

    9

    精华

    绘图大师

    精灵奇侠的跟班

    Rank: 8Rank: 8

    积分
    664
    发表于 2005-11-12 14:02:00 | 显示全部楼层 |阅读模式
    原作者:nf_xp, 发表于:05年6月12日 22:30

    将 script49.[wiki]ERM[/wiki] 第 205 行到第 207 行

    1. !!BMx1&y6>-1:Ny8;                                    [set quantity to level] </p><p>
    2. !!BMx1|y6=63/y6=154:By8;                             [if vampire lord or blood dragon set starting quantity to level]
    复制代码


    改为:

    1. !!BMx1&y6>-1:Ny8 By8;                                [set level(quantity), starting quantity]
    复制代码

    大家可以去 http://nf.ys168.com/ [wiki]WoG[/wiki]目录里下载改好的,包括原版修正、Arstahd加强版修正和nf_xp加强版,都修正了帐篷导致[wiki]追随者[/wiki]死亡的Bug。


    nf_xp加强版还包括其它修改:

    1. Bug修正

    1) 修正了帐篷治疗导致追随者死亡的Bug。
    2) 修正了白[wiki]鬼[/wiki]魂追随者在长过命但血很少的情况下很容易被打死的Bug,并完善了逻辑。
    3) 电脑由每仗前随机选择追随者变为无追随者或者追随者死亡时才(重新)选择追随者。
    4) 电脑由随机选择追随者兵种(甚至圣龙)变为从已有部队兵种里选择。
    5) 不可以(电脑也不会)选择[wiki]神[/wiki]使作为追随者(因为没有攻击力)。

    2. 功能增加

    1) 增加宝物“追随者日志”: 获得双倍最大战斗经验;更换追随者不会损失战斗经验;战斗初追随者被祈祷。追随者和[wiki]新宝物[/wiki]选项同时选中时有效,地图[wiki]WoG化[/wiki]时由个别高级宝物转换而来。

    3. 平衡变动

    1) 战斗经验由每次固定6~10点改为8~(8+[wiki]英雄[/wiki]等级)点。
    2) 白鬼魂的升级比率由35改为60。
    3) 电脑新选择追随者的战斗经验由max{上一追随者战斗经验,(25~35)x英雄等级}改为上一追随者战斗经验。

    版本历史:

    v1.2.1 2005-06-15

    1. 地图WoG化时放置“追随者日志”由script00.erm合并到script49.erm里了。 

    压缩包里的script00.erm为原版,如果下载过v1.2,请用这个替换回去,否则请不要替换,特别是你的script00.erm有过其它自定义修改。最好的办法是做任何变动之前先备份。
     
    该原版文件也能在v1.2版压缩包backup子目录里找到。

    2. 修正了“追随者日志”的地图消息文本。

    v1.2 2005-06-14

    1. 增加宝物“追随者日志”: 
    1) 获得双倍最大战斗经验((8+英雄等级)x2)。 
    2) 更换追随者不会损失战斗经验。 
    3) 战斗初追随者被祈祷。 
    追随者和新宝物选项同时选中时有效,地图WoG化时由个别高级宝物转换而来。

    2. 白鬼魂追随者更符合逻辑:  战斗中数量(等级)不会改变,但是生命值和生命最大值会增长,增长的生命最大值不会保留。

    v1.1 2005-06-13

    1. Bug修正
    1) 修正了帐篷治疗导致追随者死亡的Bug。
    2) 修正了白鬼魂追随者在长过命但血很少的情况下很容易被打死的Bug。
    3) 电脑由每仗前随机选择追随者变为无追随者或者追随者死亡时才(重新)选择追随者。
    4) 电脑由随机选择追随者兵种(甚至圣龙)变为从已有部队兵种里选择。
    5) 不可以(电脑也不会)选择神使作为追随者(因为没有攻击力)。

    2. 平衡变动
    1) 战斗经验由每次固定6~10点改为8~(8+英雄等级)点。
    2) 白鬼魂的升级比率由35改为60。
    3) 电脑新选择追随者的战斗经验由max{上一追随者战斗经验,(25~35)x英雄等级}改为上一追随者战斗经验。

    追随者相关问题解释:
    1. 为什么追随者不受部分兵种加强、英雄兵种特长影响? 
    因为兵种加强、英雄兵种特长的脚本在生成追随者的脚本之前执行,所以对后生成的追随者没有影响。这就是“为什么部队是全箭但追随者反而是半箭”等问题出现的原因。</p><p>

    2. 为什么追随者会被帐篷治疗致死? 
    当治疗超量后,部队数量会被限制到小于等于战斗初数量。因为没有事先记录追随者的战斗初数量,所以被限制到小于等于默认值0了。

    3. 为什么白鬼魂追随者会明明数量增长了,但更容易死亡? 
    因为官方的判断是,如果追随者的数量少了一个以上,就判为死亡,不管其数量是否增加过。 

    修改版1.2版以上的逻辑为:白鬼魂做为追随者,战斗中数量(等级)不会改变,但是生命值和生命最大值会增长,增长的生命最大值不会保留。 

    例如:10级白鬼魂追随者,战斗初生命值和生命最大值为200。吸取生命值50后生命值和生命最大值变为250(生命值和生命最大值会增长)。被攻击掉20生命值后生命值和生命最大值变为230(增长的生命最大值不会保留)。再被攻击掉40生命值后生命值为190,但生命最大值仍为200(原有的生命最大值会保留)。其间数量(等级)一直为10。
    WoG中文论坛提示您:
    1 发贴提问前请使用论坛搜索功能,搜索相关主题;
    2 提问标题请写明你的简要问题,不要以&amp;quot;在线求助/救命/急急急/高手进&amp;quot;之类为题!
    3 严禁在多个版块发相同主题
    4 问题已解决的请编辑主题后加&amp;quot;已解决&amp;quot;

    该用户从未签到

    46

    回帖

    7530

    金币

    0

    精华

    1级 Hired Hero

    Rank: 1

    积分
    60
    发表于 2007-12-26 11:57:03 | 显示全部楼层
    下载空间打不开

    该用户从未签到

    8

    回帖

    7518

    金币

    0

    精华

    1级 Hired Hero

    Rank: 1

    积分
    11
    发表于 2008-6-7 12:44:45 | 显示全部楼层
    下载空间打不开
  • TA的每日心情
    开心
    2017-4-24 11:09
  • 签到天数: 82 天

    连续签到: 1 天

    [LV.6]地狱战马

    198

    回帖

    7411

    金币

    0

    精华

    2级 Adventuring Hero

    Rank: 2

    积分
    211
    发表于 2008-7-24 16:07:15 | 显示全部楼层

    script49

    ZVSE
    ERMS_ScriptName=追随者
    ERMS_ScriptAuthor=Arstahd
    ERMS_ScriptVersion=1.0.0
    ERMS_ScriptDate=15.1(January).2005
    ERMS_ScriptER[wiki]MV[/wiki]ersion=2.70
    ERMS_ScriptLanguage=简体中文 or 中文(简体) (native)
    ERMS_ScriptUsedVariables=v7181;v7206-7217
    ERMS_AdditionalFiles=修改:GB;增加追随者可得到经验等级;[wiki]转职[/wiki]和设定经验点的功能
    ERMS_ScriptUsedTimers=19
    ERMS_ScriptUsedFunctions=7100-7109
    ERMS_ScriptERMVerv7213sion=2.70
    _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!
    ERMS_PoweredBy=ERM Scripter v. 2004.6.29.918
    ** HENCHMEN  -  ERM script 49

    ** By Arstahd
    ** Version: 1.16   updated August 23 2004               
    ** Thanks to Hermann the Weird for bug fixing and script maintenance

    ** Note: Henchmen will not appear in network human-to-battles in this version.

    ** Variables used:
    ** V variables:    v7206-v7217 v7181  
    ** Z variables:    z1-z9,z170-171
    ** W variables:    w117(经验),w118(类型),w119(生死),w120(保存追随天数)
    ** Functions used: 7100-7109
    ** Timers used:    19 (copy of T19 used in script00)


    ** allows you to select one of your creatures to act as a Henchman, and fight with your army
    ** left click on player-color flag in upper right corner of hero screen to select a new henchman or check status
    ** right click on player-color flag in upper right corner of hero screen to view help page

    ** henchmen gain status for each battle fought and gain levels (indicated by increased stack quantity)
    ** henchmen have a status bonus based on hero level and current day
    ** lower level/un-upgraded creatures level up faster than higher level/upgraded creatures
    ** dead henchmen can be resurrected in a town for a fee based on creature cost and level
    ** AI heroes have a (good) chance of having a henchman of random level (based on hero level)

    ** henchmen gain +1 attack, +1 defense, +1 speed
    ** henchmen gain an additional +1 speed for every 10 levels
    ** henchmen gain an additional +1 attack and +1 defense for every 3 levels
    ** henchmen gain +2-5 to base damage
    ** henchmen gain +10 to base health

    ** henchmen have a "dummy spell" (disguise) applied to color their quantity tag to help separate them from normal creatures
    ** henchmen will die after one of the stack is lost, they may offer one last retaliation before doing so

    **补充说明**
    ;战斗时,追随者可以获得经验等级,为英雄等级除2
    ;可以重新设定战斗后经验获得值,有四种选择,默认为4-10点
    ;原来是更换追随者则经验归零,我改为减半,不用太心痛了.
    ;追随者可以转职,具体为
    ;1.转职条件为追随天数不低于该兵种的最低追随天数Follow Rate
    ;  追随天数由选择追随者的那天计算,转职后追随天数归零,重新计算.
    ;2.一般是同城兵种转职,也就是1-[wiki]8级兵[/wiki]的顺序
    ;  中立兵种的转职比较乱,懒得去排了,恶鬼Troll会转职为战争机器的.
    ;  宠物也可以转出来,由圣诞小鬼去转比较快
    ;  WOG新增加的生物也可以互相转职,更加乱就是.
    ;  如果你要查具体的转职顺序,可以查ERM帮助中的Format C表.
    ;对电脑的加强:电脑英雄会100%带出追随者,原来是75%
    ;电脑的追随者不会出现七,八级兵,同一英雄的追随者会一次比一次强.
    ;ps:如果大家使用这ERM时出现问题请到论坛告之,Thank~
    ;(GB修改于2005-1-15)
    ;该ERM为Arstahd写的,再次感谢~

    !#VRv7206:S0;                                        [initialize "done" flag]
    *#UN:P49/?v7181;                                     [check if Henchmen is enabled in WoGify Options]
    !#VRv7218:S0;
    !#VRv7181:S1;
    ** Timer routines
    !#TM19:S1/1/1/255;
    !#TM20:S2/999/1/255;                                 记录追随天数的TM触发器
    !?TM19&1000;                                         [continue if enabled   day 1 only ]
    !!DO7105/0/155/1&v7206=0:P;                          [iterate through all heroes]

    !?TM20&1000;    w120=追随天数
    !!DO7112/0/155/1:P;
    !?FU7112;
    !!IF:Wx16;
    !!VRw120&w119=1:+1;

    ** start of hero screen mouse trigger **
    !?CM2&v7181=1;                                       [continue if enabled]                           

    !!CM:I?y-3 F?y-4 S?y-5;                              [get mouse click, flag, subtype]
    !!IF&y-3=141/y-4=512:Q2/-1/-1/1^HENCHMAN BONUS STATS AT LEVEL 1 :

    +1 Attack
    +1 Defense
    +1 Speed
    +2-5 Base Damage
    +10 Base Health

    At every 3rd level : +1 Attack, +1 Defense
    At every 10th level : +1 Speed

    Henchmen gain {Status} for each battle fought and gain levels (indicated by increased stack quantity). They also benefit from a {Status Bonus} based on hero level and current day.

    Henchmen will die after one of the stack is lost, they may offer one last retaliation before doing so.

    Lower level/un-upgraded creatures level up faster than higher level/upgraded creatures.

    The "Disguise" spell is applied to color their quantity tag to help separate them from normal creatures.

    Dead henchmen can be resurrected in a town for a fee based on creature cost and level.

    AI heroes have a (good) chance of having a henchman of random level ({Status} based on hero level). The creature type is chosen randomly each battle and may even be of a type not in the hero's army.
    ^;

    !!FU|y-3<>141/y-4<>0/y-5<>12:E;                      [continue if player banner (141) was left clicked only, else exit]

    !!CM:H?y-1/?y-2;                                     [get hero number]
    !!IF&y-1>-1:Wy-1;                                    [enable hero variable]  

    !!FU7106&w118>-1:Py-1;                               [if a henchman, display henchman info]
    !!FU7102&w118<0:P;                                   [if no henchman, select one]
    !!UN:R3/-1;                                          [redraw]

    ** end of hero screen mouse trigger **

    ** start of object trigger - towns **
    !?OB98&1000;
    !!OW:I-1/?y-2;                                        [check if human hero]
    !!CA998&y-2=0:O?y-4;                                  [get town owner]
    !!HE-1&y-2=0:N?y-1 O?y-3;                             [get hero number, owner]
    !!IF&y-2=0/y-1>-1:Wy-1;                               [enable hero variable]  
    !!FU7108&y-2=0/w118>-1/w119=0/y-3=y-4:Py-1;           [if dead henchman, display resurrection info]

    *!FU7109&y-2=0/w118=-1/y-3<>y-4:P;                    [function for reminder message]
    ** end of object trigger - towns **

    ** start of object trigger - monsters **
    !?OB54&1000;                                          [object trigger - monsters]
    !!FU7109:P;                                           [function for reminder message]
    ** end of object trigger - monsters **

    !?FU7109;

    !!OW:I-1/?y-2;                                       [check if human hero]
    !!HE-1&y-2=0:N?y-1 O?y-3;                            [get hero number, owner if human]
    !!IF&y-2=0/y-1>-1:Wy-1;                              [enable hero variable]  

    !!IF&y-2=0/w118=-1:Q2/10/y-3/2^You have not yet chosen a Henchman.
    Do you wish to look over your troops and see if any are worthy of the honor?

    (Selecting NO will disable future reminders for this hero.)



    {To open Henchman screen : Left Click on color banner on hero screen}
    {To view Henchman help : Right Click on color banner on hero screen}^;

    !!FU7102&2/y-2=0/w118=-1:P;                          [if yes select henchman]
    !!VRw118&-2/y-2=0/w118=-1:S-2;                       [if no set to disable future messages]
    ** end of function **


    ** start of battlefield trigger **
    !?BF&1000;                                        [continue if enabled]

    !!VRv7207:C-1/-1/-1/-1/-1/-1;                        [initialize variables]
    !!VRy-1:S-2;                                         [initialize variable]

    !!BU:E2/?y-7;                                        [check for enemy creature at position 2 for banks]

    !!BA:H0/?y-1;                                        [get hero number - attacker]
    !!HEy-1&y-1>-1:O?y-3;                                [get attacker's owner]
    !!OW:Iy-3/?y-6;                                      [check if AI]
    !!FU7103&y-6=1/y-1>-1:Py-1;                          [choose henchman for AI]
    !!IF&y-1>-1:Wy-1;                                    [enable hero variable - attacker]  
    !!VRy-8&y-7<21:S20;                                  [set position - normal]
    !!VRy-8&y-7>20:S25;                                  [set position - bank]
    !!BU&w118>-1/w119=1/y-1>-1:Sw118/1/y-8/0/-1/0;       [add a creature to attacker's army at position y-8]
    !!BU&w118>-1/w119=1/y-1>-1:Ey-8/?v7207;              [get stack]
    !!FU7101&w118>-1/w119=1/y-1>-1/v7207>-1:Pv7207/0/y-1;[add stat increases - attacker]

    !!VRy-2:S-2;                                         [initialize variable]
    !!BA:H1/?y-2;                                        [get hero number - defender]
    !!HEy-2&y-2>-1:O?y-3;                                [get defender's owner]
    !!OW:Iy-3/?y-6;                                      [check if AI]
    !!FU7103&y-6=1/y-2>-1:Py-2;                          [choose henchman for AI]
    !!IF&y-2>-1:Wy-2;                                    [enable hero variable - defender]  
    !!BU&w118>-1/w119=1/y-2>-1:Sw118/1/30/1/-1/0;        [add a creature to defender's army at position 30]
    !!BU&w118>-1/w119=1/y-2>-1:E30/?v7208;               [get stack]
    !!FU7101&w118>-1/w119=1/y-2>-1/v7208>-1:Pv7208/1/y-2;[add stat increases - defender]
    ** end of battlefield trigger **


    ** pre-action trigger
    !?BG;                              [continue if enabled]


    !!BMv7207&v7207>-1:N?v7211 H?v7216;                  [get quantity and health of henchman - attacker]
    !!BMv7208&v7208>-1:N?v7212 H?v7217;                  [get quantity and health of henchman - defender]
    !!BG&v7207=v7210/v7211=0:A3;                         [if dead henchman is next set to defend - attacker]
    !!BG&v7208=v7210/v7212=0:A3;                         [if dead henchman is next set to defend - defender]


    ** end of pre-action trigger

    ** post-action trigger
    !?BG1;                             [continue if enabled]

    !!BG:N?v7210;                                        [get current stack #]

    !!BMv7207&v7207>-1:N?y-2 T?y-3;                      [get quantity, type of henchman stack - attacker]
    !!BMv7207&v7207>-1/y-2<v7211:K100000;                [kill henchman stack if any were killed - attacker]
    !!FU7107&v7207>-1/y-2<v7211:P0/0;                    [set dead - attacker]
    !!BMv7207&v7207>-1/y-2>v7211/y-3<>159:Nv7213 L0;     [reset quantity of henchman stack if resurrected (unless ghost) - attacker]
    !!FU7107&v7207>-1/y-2>v7211/y-3<>159:P0/1;           [set alive (unless ghost) - attacker]
    !!BU&v7207>-1/y-2<v7211/y-3<>159:R;                  [redraw screen (unless ghost)]

    !!BMv7208&v7208>-1:N?y-2 T?y-3;                      [get quantity, type of henchman stack - defender]
    !!BMv7208&v7208>-1/y-2<v7212:K100000;                [kill henchman stack if any were killed - defender]
    !!FU7107&v7208>-1/y-2<v7212:P1/0;                    [set dead - defender]
    !!BMv7208&v7208>-1/y-2>v7212/y-3<>159:Nv7214 L0;     [reset quantity of henchman stack if resurrected (unless ghost) - defender]
    !!FU7107&v7208>-1/y-2<v7212/y-3<>159:P1/1;           [set alive (unless ghost) - defender]
    !!BU&v7208>-1/y-2<v7212/y-3<>159:R;                  [redraw screen (unless ghost)]
    ** end of post-action trigger

    ** function to get monster names
    !?FU7100;             x1= Z index
    !!HE-1:C0/x16/?y1/?y2;                               [get monster in slot x16 type, quantity]
    !!UN&x16=0/y1>-1:N3/2/y1/0;                          [get monster name]
    !!UN&x16=1/y1>-1:N3/3/y1/0;                          [get monster name]
    !!UN&x16=2/y1>-1:N3/4/y1/0;                          [get monster name]
    !!UN&x16=3/y1>-1:N3/5/y1/0;                          [get monster name]
    !!UN&x16=4/y1>-1:N3/6/y1/0;                          [get monster name]
    !!UN&x16=5/y1>-1:N3/7/y1/0;                          [get monster name]
    !!UN&x16=6/y1>-1:N3/8/y1/0;                          [get monster name]

    ** end of function


    ** function to give stat increases    x1=stack  x2=attacker/defender  x3=hero number
    !?FU7101;     

    !!BMx1:T?y6;                                         [get stack type]
    !!FU7104&y6>-1:Py6;                                  [get monster level]
    !!VRy7&y6>-1:Sv7215;                                 [copy monster level]
    !!IF&y6>-1:Wx3;                                      [enable hero variable]  
    !!HEx3:E?y1/?y2/1;                                   [get hero exp, level]
    !!VRy10:Sy2 -1 *10 +w117 +c;                         [experience points = (hero level -1) x10  +earned xp + current day]
    !!VRv7213&x2=0/y6>-1:Sy10 :y7 +1;                    [level = experience points / monster level + 1 - attacker]
    !!VRv7214&x2=1/y6>-1:Sy10 :y7 +1;                    [level = experience points / monster level + 1 - defender]
    !!VRy8&x2=0/y6>-1:Sv7213;                            [copy attacker level to y8]
    !!VRy8&x2=1/y6>-1:Sv7214;                            [copy defender level to y8]

    !!VRy4&y6>-1:Sy8 :10 +1;                             [bonus = level / 10 + 1]
    !!BMx1&y6>-1:Sdy4;                                   [give +1 speed per 10 levels]

    !!BMx1&y6>-1:U1/d2;                                  [give +2 min damage]
    !!BMx1&y6>-1:U2/d5;                                  [give +5 max damage]

    !!VRy4&y6>-1:Sy8 :3 +1;                              [bonus = level / 3 + 1]
    !!BMx1&y6>-1:Ady4 Ddy4;                              [give +1 attack and +1 defense per 3 levels]

    !!BMx1&y6>-1:H?y4;                                   [get health]
    !!VRy5&y6>-1:Sy4 +10 *y8;                            [health - add 10, multiply by level]
    !!BMx1&y6>-1:Hy5;                                    [set health]
    !!BMx1&y6>-1:Ny8 By8;                                [set level(quantity), starting quantity]

    !!BMx1&y6>-1:M4/100/1;                               [give disguise dummy spell to make tag yellow]

    ;由v7218的内容选择执行下面其中一条.
    !!VRw117&v7218=0:+6 T4;       [After win,gain 6-10 points per battle]
    !!VRw117&v7218=1:+10 T5;      10-15
    !!VRw117&v7218=2:+20 T10;     20-30
    !!VRw117&v7218=3:+50;         50

    ;由英雄等级确定追随者的经验等级
    !!VRy11:Sy2 :2;                                  英雄级别/2
    !!VRy11&y11>10:S10;                              限制最高10级
    !!VRy12:Sx1 *-1 -1;                              计算经验堆栈值
    !!EAy12:Ey11/12/d/d;                             按英雄级别给予追随者经验等级

    *tactics speed boost if enabled*

    !!UN:P218/?y1;                                       [check if tactics is enabled in WoG options]
    !!FU&y1<>1:E;                                        [exit if it isn't]
    !!VRy3:S0;                                           [initialize y3]
    !!VRy4:S0;                                           [initialize y4]
    !!BH0:N?y1;                                          [attacking hero #]
    !!BH1:N?y2;                                          [defending hero #]
    !!HEy1&y1>=0:S19/?y3;                                [get attacker's tactics]
    !!HEy2&y2>=0:S19/?y4;                                [get defender's tactics]
    !!FU&y3=0/y4=0:E;                                    [exit if no one has tactics]
    !!FU&y3=y4:E;                                        [exit if equal tactics level]
    !!FU&y3<y4/x2=0:E;                                   [exit if defender's tactics superior - attacker]
    !!FU&y3>y4/x2=1:E;                                   [exit if attacker's tactics superior - defender]
    !!VRy5&y3>y4/x2=0:S0 +y3 -y4;                        [set bonus if attackers tactics superior - attacker]
    !!VRy5&y3<y4/x2=1:S0 +y4 -y3;                        [set bonus if defenders tactics superior - defender]
    !!BMx1&y6>-1:Sdy5;                                   [give tactics speed boost]

    ** end of function


    ** function to pick henchman
    !?FU7102;             x1=

    !!VRz1:S^你需要选择一个新的追随者吗?^;
    !!VRz2:S^^;
    !!VRz3:S^^;
    !!VRz4:S^^;
    !!VRz5:S^^;
    !!VRz6:S^^;
    !!VRz7:S^^;
    !!VRz8:S^^;
    !!VRz9:S^解散追随者^;
    !!VRz10:S^取消^;

    !!VRz170:S^重新设定经验获得值^;
    !!VRz171:S^---=<转 职>=---^;
    !!DO7100/0/6/1:P2;
    !!IF&1000:G1/1/1024/1/2/3/4/5/6/7/8/9/170/171/10;                [give choice to human]
    !!FU&v1=1024:E;

    !!VRy2&v1=1:S0;
    !!VRy2&v1=2:S1;
    !!VRy2&v1=4:S2;
    !!VRy2&v1=8:S3;
    !!VRy2&v1=16:S4;
    !!VRy2&v1=32:S5;
    !!VRy2&v1=64:S6;

    !!HE-1&v1<256:N?y3;                                  [get hero number]
    !!HE-1&v1<128:C0/y2/?y1/d-1;                         [get monster type, reduce quantity by 1]
    !!IF&v1<256/y3>-1:Wy3;                               [enable hero variable]
    *!VRw117&v1<256:S0;                                  [reset experience]
    !!VRw117&v1<128::2;                                  更换则经验值减半.
    !!VRw120&v1<128:S1;                                  解雇则追随天数=1.
    !!VRw118&v1<128:Sy1;                                 [store monster type]
    !!VRw118&v1=128:S-2;                                 [reste monster type if dismissed]
    !!VRw117&v1=128:S0;                                  解雇则经验值为零
    !!VRw120&v1=128:S0;                                  解雇则追随天数归零.
    !!VRw119&v1<128:S1;                                  [set to alive]

    !!IF&v1=512/w118<0:M^Where is your Henchman?^;       容错处理
    !!FU7111&v1=512/w118>-1:Pw118;     转职函数

    !!FU7110&v1=256:P;                 经验函数

    ** end of function
    ;---------------------------------------------------------------------
    ** 重新设定经验点-函数
    !?FU7110;
    !!VRz1:S^请选择每次战斗后获得的经验范围:^;
    !!VRz2:S^6-10,默认.^;
    !!VRz3:S^10-15,标准.^;
    !!VRz4:S^20-30,加强.^;
    !!VRz5:S^50-50,超快.^;
    !!VRz6:S^不选择,退出^;
    !!IF&1000:G1/1/16/1/2/3/4/5/6;
    !!VRv7218&v1=1:S0;    变量v7218保存选择结果
    !!VRv7218&v1=2:S1;
    !!VRv7218&v1=4:S2;
    !!VRv7218&v1=8:S3;
    ** 完
    ;---------------------------------------------------------------------
    ** 转职函数 **
    !?FU7111;
    !!FU7113:Px1;                              检查该兵种的最低追随天数
    !!IF&w120<v7219:M^Follow days too low.^;   少于最低天数则退出
    !!FU&w120<v7219:E;

    !!VRy11:Sw118 +1;         获得转职对象的类型

    !!VRy11&w118=13:S150;     7级兵另外处理
    !!VRy11&w118=27:S151;
    !!VRy11&w118=41:S152;
    !!VRy11&w118=55:S153;
    !!VRy11&w118=69:S154;
    !!VRy11&w118=83:S155;
    !!VRy11&w118=97:S156;
    !!VRy11&w118=111:S157;
    !!VRy11&w118=131:S158;

    !!VRy11&w118=112:S127;    四系元素兵的非正常顺序处理
    !!VRy11&w118=113:S125;
    !!VRy11&w118=114:S129;
    !!VRy11&w118=115:S123;
    !!VRy11&w118=127:S115;
    !!VRy11&w118=123:S114;
    !!VRy11&w118=129:S113;
    !!VRy11&w118=125:S120;
    !!VRy11&w118=121:S130;

    !!VRy11&w118=148:S145;    禁止箭塔出现
    !!VRy11&w118=196:S0;      龙巫妖到枪兵(196>>0),循环处理
    !!IF:Q5/21/w118/21/y11/2^Fellow days OK,upgrade?^;   提问是否转职
    !!FU7114&5:P;              调用正式转职函数

    ;---------------------------------------------------------------------
    ** 检查最低追随天数
    !?FU7113;
    !!MA:Lx1/?y10;         检查该追随者的等级
    !!VRv7219&y10=0:S3;    一级兵为3天,每级+1
    !!VRv7219&y10=1:S4;
    !!VRv7219&y10=2:S5;
    !!VRv7219&y10=3:S6;
    !!VRv7219&y10=4:S7;
    !!VRv7219&y10=5:S8;
    !!VRv7219&y10=6:S9;   未升级的7级兵转升级的需9天
    ;高级七级兵到八级兵需要14天
    !!VRv7219|x1=13/x1=27/x1=41/x1=55/x1=69/x1=83/x1=97/x1=111/x1=131:S14;
    ;---------------------------------------------------------------------

    ** 正式转职函数
    !?FU7114;
    !!VRy18:Sw118;           临时比较变量,确定是否转职成功.
    !!VRw118:+1;             同城兵种转职则兵种代码+1

    !!VRw118&w118=14:S150;   7级转8级则另外处理,这一行是大[wiki]天使[/wiki]转神圣大天使
    !!VRw118&w118=28:S151;
    !!VRw118&w118=42:S152;
    !!VRw118&w118=56:S153;
    !!VRw118&w118=70:S154;
    !!VRw118&w118=84:S155;
    !!VRw118&w118=98:S156;
    !!VRw118&w118=112:S157;
    !!VRw118&w118=132:S158;

    !!VRw118&w118=112:S127;  四系元素的特殊处理
    !!VRw118&w118=113:S125;
    !!VRw118&w118=114:S129;
    !!VRw118&w118=115:S123;
    !!VRw118&w118=127:S115;
    !!VRw118&w118=123:S114;
    !!VRw118&w118=129:S113;
    !!VRw118&w118=125:S120;
    !!VRw118&w118=121:S130;

    !!VRw118&w118=148:S145;  战争机器的循环处理,防止箭塔作为追随者出现

    !!VRw118&w118=197:S0;    龙巫妖作为最高兵种类型,转职则变回枪兵,呵呵

    !!VRw120&w118<>y18:S0;   追随天数清零
    ** 转职函数结束 **
    ;---------------------------------------------------------------------

    ** function to pick henchman for AI
    !?FU7103;             x1= hero #  x16= slot #

    !!IF:Wx1;                                            [enable hero variable]  
    !!VRy1:S7;                                        [random roll: 0-6 = use slot number, 7 = choose random creature]
    *!HEx1&y1<7:C0/y1/?y2/?y3;                           [get monster type, quantity in slot y1]
    !!VRy2&y1>6:S0 T173;                                 [random 0 to 199]
    !!VRy2&y1>6/y2>=132/y2<=135:S105;                 [random 0 to 173 (reroll if super dragons were selected)]
    !!VRy2&y1>6/y2>=150/y2<=158:S75;                 [random 0 to 173 (reroll if 8th levels were selected)]
    !!VRy2&y1>6/y2>=145/y2<=149:S29;                 [random 0 to 131 (reroll if war machines were selected)]
    !!VRy2&y1>6/y2>=160/y2<=163:S63;                 [random 0 to 131 (reroll if emissaries were selected)]
    !!VRy2&y1>6/y2=122:S192;                             [set NOT USED 1 to sylvan centaur]
    !!VRy2&y1>6/y2=124:S193;                             [set NOT USED 2 to sorceress]
    !!VRy2&y1>6/y2=126:S194;                             [set NOT USED 3 to werewolf]
    !!VRy2&y1>6/y2=128:S195;                             [set NOT USED 4 to hell steed]
    !!VRy2&y1>6/y2>173:S119;                              [if >173, set to -1]
    !!VRy2&y1>6/y2<0:S35;
    !!MA:Ly2/?y11;
    !!VRy2&y11=6:S119;

    !!HEx1&y2>-1:E?y6/?y7/1;                             [get hero exp, level]
    !!VRy4&y2>-1:S15 T5 *y7;                             [random # 25-35 x hero level]
    !!VRw118&y2>-1:Sy2;                                  [set henchman type]
    !!VRw117&y2>-1/w118>-1/y4>w117:Sy4;                  [set AI experience if greater than previous]
    !!VRw119&y2>-1:S1;                                   [set to alive]
    !!VRw119&y2=-1:S0;                                   [set to dead]
    ** end of function

    ** function to get creature level    x1=type
    !?FU7104;              

    !!MA:Lx1/?y7;                                        [get monster level (0-6)]

    !!VRy8:S0;                                           [set to 0]
    !!VRy8&x1<112:Sx1 %2;                                [check if upgraded]

    !!VRv7215&y7=0/y8=0:S20;                             [if level 1 = 20]
    !!VRv7215&y7=1/y8=0:S25;                             [if level 2 = 25]
    !!VRv7215&y7=2/y8=0:S35;                             [if level 3 = 35]
    !!VRv7215&y7=3/y8=0:S50;                             [if level 4 = 50]
    !!VRv7215&y7=4/y8=0:S75;                             [if level 5 = 75]
    !!VRv7215&y7=5/y8=0:S115;                            [if level 6 = 115]
    !!VRv7215&y7=6/y8=0:S180;                            [if level 7 = 180]

    !!VRv7215&y7=0/y8=1:S22;                             [if level 1 = 22 (upgrade)]
    !!VRv7215&y7=1/y8=1:S28;                             [if level 2 = 28 (upgrade)]
    !!VRv7215&y7=2/y8=1:S40;                             [if level 3 = 40 (upgrade)]
    !!VRv7215&y7=3/y8=1:S58;                             [if level 4 = 58 (upgrade)]
    !!VRv7215&y7=4/y8=1:S88;                             [if level 5 = 88 (upgrade)]
    !!VRv7215&y7=5/y8=1:S136;                            [if level 6 = 136 (upgrade)]
    !!VRv7215&y7=6/y8=1:S250;                            [if level 7 = 250 (upgrade)]


    !!VRv7215&x1=112:S35;                                [make air elemental = 35]
    !!VRv7215&x1=127:S40;                                [make storm elemental = 40]
    !!VRv7215&x1=113:S50;                                [make earth elemental = 50]
    !!VRv7215&x1=121:S58;                                [make magma elemental = 58]
    !!VRv7215&x1=119:S22;                                [make sprite = 22]
    !!VRv7215&x1=121:S136;                               [make magic elemental = 136]
    !!VRv7215&x1=123:S40;                                [maker ice elemental = 40]
    !!VRv7215&x1=129:S58;                                [make energy elemental = 58]
    !!VRv7215&x1=131:S225;                               [make phoenix = 225]

    !!VRv7215&x1=132:S550;                               [make azure dragon = 550]
    !!VRv7215&x1=133:S450;                               [make crystal dragon = 450]
    !!VRv7215&x1=134:S350;                               [make faerie dragon = 350]
    !!VRv7215&x1=135:S400;                               [make rust dragon = 400]
    !!VRv7215&x1>=150/x1<=158:S400;                      [make level 8 creatures = 400]

    !!VRv7215&x1=63:S100;                                [make vampire lord = 80]
    !!VRv7215&x1=159:S55;                                [make ghost = 25]
    !!VRv7215&x1=172:S136;                               [make nightmare = 136]
    !!VRv7215&x1=196:S500;                               [make dracolich = 500]

    ** end of function                                               

    ** function to initialize hero variable w118   
    !?FU7105;              
    !!IF:Wx16;                                           [enable hero variable]  
    !!VRw118:S-1;                                        [set to -1]
    !!VRw120:S0;                                         追随天数清零
    !!VRv7206:S1;                                        [set "done" flag]
    ** end of function

    ** function to display henchman    x1 = hero number
    !?FU7106;            
    !!IF&x1>-1:Wx1;                                      [enable hero variable]  
    !!VRz1:S^^;
    !!VRz1&w119=0:S^<<<<{DEAD}>>>>^;
    !!FU7104&w118>-1:Pw118;                              [function to get monster level]
    !!HEx1:E?y1/?y2/1;                                   [get hero exp, level]
    !!VRy2:-1 *10 +c -1;                                 [bonus status = (hero level -1) x10  + current day -1]
    !!VRy11:Sw117 +y2;                                   [total status points = earned status + bonus status]
    !!VRy3:Sy11 :v7215 +1;                               [henchman level = status points / level rate + 1]
    !!VRy4:Sy11 %v7215 -v7215 *-1;                       [calculate status needed for next level]


    !!MA&w118>-1:Aw118/?y1;                              [get base attack]
    !!VRy5:Sy3 :3 +1 +y1;                                [attack = level / 10 + 1 + base]
    !!MA&w118>-1:Dw118/?y1;                              [get base defense]
    !!VRy6:Sy3 :3 +1 +y1;                                [defense = level / 3 + 1 + base]
    !!MA&w118>-1:Pw118/?y1;                              [get base health]
    !!VRy7:Sy1 +10 *y3;                                  [health = base + 2 x level]
    !!MA&w118>-1:Mw118/?y1;                              [get base damage min]
    !!VRy8:Sy1 +2 *y3;                                   [damage min = base + 2 x level]
    !!MA&w118>-1:Ew118/?y1;                              [get base damage max]
    !!VRy9:Sy1 +5 *y3;                                   [damage max = base + 5 x level]
    !!MA&w118>-1:Sw118/?y1;                              [get base speed]
    !!VRy10:Sy3 :10 +1 +y1;                              [speed = level / 3 + 1 + base]
    !!FU7113:Pw118;

    !!IF:Q2/21/w118/2^{Henchman level} : %Y3
    {Level Rate} : %V7215  {Status for next level} : %Y4
    {Status Total} : %Y11  {Earned} : %W117  {Bonus} : %Y2
    Attack : %Y5   Defense : %Y6
    Health : %Y7   Damage : %Y8-%Y9
    Speed : %Y10
    Follow : %W120 days
    (Follow Rate=%V7219 days)
    %Z1
    {Do you wish to select a new Henchman?}^;
    !!FU7102&2:P;                                        [if yes, select henchman]
    ** end of function

    ** function to handle dead/alive status   
    !?FU7107;               x1=attacker/defender    x2= dead/alive
    !!BA&x1=0:H0/?y1;                                    [get hero number - attacker]
    !!BA&x1=1:H1/?y1;                                    [get hero number - defender]
    !!IF:Wy1;                                            [enable hero variable]  
    !!VRw119:Sx2;                                        [set to x2 0=dead,1=alive]
    ** end of function

    ** function to resurrect dead henchman   
    !?FU7108;               
    !!IF&x1>-1:Wx1;                                      [enable hero variable]  
    !!FU7104&w118>-1:Pw118;                              [get monster level]
    !!HEx1:E?y6/?y7/1;                                   [get hero exp, level]
    !!IF&x1>-1:Wx1;                                      [enable hero variable]  
    !!VRy10:Sy7 -1 *10 +w117 +c;                         [experience points = (hero level -1) x10  +earned xp + current day]
    !!VRy3:Sy10 :v7215 +1;                               [henchman level = experience points / level rate + 1]
    !!MA:Cw118/6/?y8;                                    [get base creature cost]
    !!VRy4:Sy8 *y3 :5;                                   [resurrection cost = base cost x henchman level / 5]
    !!IF:Q2/21/w118/2^{Henchman level = %Y3}

    Do you wish to resurrect this Henchman?
    It will cost %Y4 gold.^;
    !!OW:R-1/6/?y5;                                      [get current gold amount]
    !!VRy8&2/y5>=y4:Sy5 -y4;                             [calculate gold transaction]
    !!OW&2/y5>=y4:R-1/6/y8;                              [if yes and player has enough gold,set new gold amount]
    !!VRw119&2/y5>=y4:S1;                                [if yes and player has enough gold, set to alive]
    !!IF&2/y5<y4:M^Sorry, you can't afford to pay for the resurrection.^; [if yes and player does not have enough gold, display message]
    ** end of function
  • TA的每日心情
    开心
    2016-10-21 15:24
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]野猪

    184

    回帖

    6529

    金币

    0

    精华

    2级 Adventuring Hero

    Rank: 2

    积分
    234
    发表于 2008-8-16 11:21:42 | 显示全部楼层
    谢谢了!
    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 英雄注册|Register

    本版积分规则

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

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

    GMT+8, 2025-2-23 20:26 , Processed in 0.424473 second(s), 14 queries , Gzip On, File On.

    Powered by Discuz! X3.4

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

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