佳丽云

英雄无敌3-WoG中文站

 找回密码
 英雄注册|Register
楼主: 水流行险

【已解决】如何取消裸奔及裸城?

[复制链接]
  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-3-10 23:40:57 | 显示全部楼层
    Archer30 发表于 2021-3-10 23:31
    你必须新建一个ERM文件,然后把我的脚本贴进去。

    注意,最前面必须是ZVSE2。。必须用ERA 3.3+。如果开 ...

    高手!革新了我的认知!!
    谢谢您的帮助!我的妩媚完美脚本终于完成了

    点评

    感谢测试  详情 回复 发表于 2021-3-10 23:43
    回复 支持 反对

    使用道具 举报

     成长值: 11335

  • TA的每日心情
    郁闷
    2024-3-3 18:17
  • 签到天数: 1609 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    5477

    回帖

    3万

    金币

    8

    精华

    管理员

    ERA Project Team
    WoG俄文论坛版主

    Rank: 12Rank: 12Rank: 12

    积分
    103546

    社区QQ达人论坛守望者脚本测试狂杰出贡献年度明星魅力之星宣传部长

    发表于 2021-3-10 23:43:18 | 显示全部楼层
    水流行险 发表于 2021-3-10 23:40
    高手!革新了我的认知!!
    谢谢您的帮助!我的妩媚完美脚本终于完成了

    感谢测试
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-5-31 17:33:55 | 显示全部楼层
    Archer30 发表于 2021-3-10 23:31
    你必须新建一个ERM文件,然后把我的脚本贴进去。

    注意,最前面必须是ZVSE2。。必须用ERA 3.3+。如果开 ...

    还有一个问题?同样,防止裸城,应该改哪里?

    点评

    裸城也不行了?那我写一下你看一眼。回合结束检查所有城镇,如果裸城就添加对应的一级兵。这个就不涉及战后的检查了(战后如果裸城,说明这个城防守失败,已经被占据了)  详情 回复 发表于 2021-6-1 01:41
    回复 支持 反对

    使用道具 举报

     成长值: 11335

  • TA的每日心情
    郁闷
    2024-3-3 18:17
  • 签到天数: 1609 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    5477

    回帖

    3万

    金币

    8

    精华

    管理员

    ERA Project Team
    WoG俄文论坛版主

    Rank: 12Rank: 12Rank: 12

    积分
    103546

    社区QQ达人论坛守望者脚本测试狂杰出贡献年度明星魅力之星宣传部长

    发表于 2021-6-1 01:41:28 | 显示全部楼层
    水流行险 发表于 2021-5-31 17:33
    还有一个问题?同样,防止裸城,应该改哪里?

    裸城也不行了?
    那我写一下。每回合遍历所有城镇,如果裸城就添加对应的一级兵。战后也会检查。不过有驻守城镇的英雄或者来访英雄都会跳过检查。
    1. ZVSE2
    2. ; Author:   Archer30
    3. ; Engine:   ERM 2.0+
    4. ; Requires: ERA 3.4+, Era Erm Framework, WoG Scripts (80 base)

    5. ; Give a 1st level creature native to the town if a town has no creatue at the end of a battle/turn.


    6. ; ============== SETTINGS ==============
    7. !#VRi^townguards_on^:S(TRUE);           [This script will be activated only if true]
    8. ; ============ END SETTINGS ============


    9. !?FU(townguards_RestrainValues);
    10. !!VRi^townguards_on^:F(FALSE)/(TRUE);

    11. !#FU(townguards_RestrainValues):P;

    12. !?FU(WOG_EndOfTurn)&i^townguards_on^;
    13. !#VA(x:y) (y:y) (z:y);

    14. !!OW:C?(player:y);
    15. !!VR(x):S-1;

    16. !!re i;                                 [loop though all towns]
    17.   !!UN:U(OBJ_TOWN)/(ANY_OBJ)/-1/(x)/(y)/(z);
    18.   !!br&(x)<0;

    19.   !!CA(x)/(y)/(z):O?(owner:y);
    20.   !!CA(x)/(y)/(z):H0/?(garrisonHero:y) H1/?(visitingHero:y); [check for garrison / visiting hero]
    21.   !!FU(townguards_EnsureTownsAreGuarded)&(player)=(owner)/(garrisonHero)=(NO_HERO)/(visitingHero)=(NO_HERO):P(x)/(y)/(z);
    22. !!en;

    23. !?FU(OnAfterBattleUniversal)&i^townguards_on^;
    24. !!OBi^battle_x^/i^battle_y^/i^battle_z^:T?(type:y);

    25. !!if&(type)=(OBJ_TOWN);
    26.   !!CAi^battle_x^/i^battle_y^/i^battle_z^:H0/?(garrisonHero:y) H1/?(visitingHero:y);
    27.   !!FU(townguards_EnsureTownsAreGuarded)&(garrisonHero)=(NO_HERO)/(visitingHero)=(NO_HERO):Pi^battle_x^/i^battle_y^/i^battle_z^;
    28. !!en;

    29. !?FU(townguards_EnsureTownsAreGuarded);
    30. !#VA(x:x) (y:x) (z:x);
    31. !#VA(firstLevelMons[9]:y);

    32. !!VR(firstLevelMons):C(MON_PIKEMAN)/(MON_CENTAUR)/(MON_GREMLIN)/(MON_IMP)/(MON_SKELETON)/(MON_TROGLODYTE)/(MON_GOBLIN)/(MON_GNOLL)/(MON_PIXIE);

    33. !!re (slotInd:y)/(ARMY_SLOT_FIRST)/(ARMY_SLOT_LAST);
    34.   !!CA(x)/(y)/(z):M2/(slotInd)/?(monType:y)/?(monCount:y);

    35.   !!FU&(monType)<>(NO_MON):E;
    36. !!en;

    37. !!CA(x)/(y)/(z):T?(townType:y);       [Check type of the town if the town is with no army]
    38. !!CA(x)/(y)/(z):M2/(ARMY_SLOT_FIRST)/(firstLevelMons[townType])/1; [add in first level creature according to the type of town]
    复制代码



    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-1 02:21:29 | 显示全部楼层
    Archer30 发表于 2021-6-1 01:41
    裸城也不行了?那我写一下。回合结束遍历所有城镇,如果裸城就添加对应的一级兵。这个就不涉及战 ...

    这些码好漂亮啊

    点评

    我的目的是让裸奔和裸城为守城服务。 //从魔法行会要招募的8级生物守护神 !?BF&1000;战斗开始前时设置战场 加&1000是只有人类参加时 !!BA:S?y3; 检测是否是攻城 !!FU&y3=0:E;如果不是攻城则退 !!CA998:T?  详情 回复 发表于 2021-6-1 02:45
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-1 02:45:23 | 显示全部楼层
    本帖最后由 水流行险 于 2021-6-1 02:48 编辑

    我的目的是让防止裸奔和裸城为守城服务,就是一定会发生守城战。

    //从魔法行会要招募的8级生物守护神
    !?BF&1000;战斗开始前时设置战场   加&1000是只有人类参加时
    !!BA:S?y3; 检测是否是攻城
    !!FU&y3=0:E;如果不是攻城则退

    !!CA998:T?y17;获取城镇的类型
    ! !CA998:B3/0;检查编号为0一级魔法行会 守护神建筑是否建造    最好改为1级1/3 --3/3--5/3倍数对应魔法行会
    ! !FU&-1:E;[没有神器]   ------空白的三行是原始脚本

    !!VRi:S0;等级数初始化
    !!CA998:B3/0;检查1级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/1;检查2级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/2;检查3级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/3;检查4级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/4;检查5级
    !!VRi&1:+1;等级数+1    现状 i=等级数

    !!BH1:N?y30;检测守城英雄编号???守城英雄?如果没有守城英雄则退出。
    !!FU&y30<0:E;[没有英雄就退出]---------------应改为没有英雄就等于0,怎么改?
    !!HEy30:Ed/?y29;检测守城英雄等级

    !!VRy10:S0;[获得最高英雄等级]
    !!re y1/0/155/1:;
      !!HEy1:O?y2 Ed/?y3/1;
      !!if&y2=你要的颜色/y3>y10:;
          !!VRy10:Sy3;[记录最高等级]
      !!en:;
    !!en:;

    !!VRy28:Sy17+150;设置怪物类型为城镇类型+150
    ! !VRy27:Sy29:1;召唤的数量跟守城英雄等级挂钩*或:
    ! !VRy27:Sy29:i;召唤的数量跟守城英雄等级成正比同时与魔法行会等级成反比:
    !!VRy27:Sy29+y10:i;召唤的数量跟(守城英雄等级+最高英雄等级)成正比同时与魔法行会等级成反比:
    !!BU:Sy28/y27/97/1/-1/0;在指定位置上召唤与英雄等级数量得8级怪物 97中心城门

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-1 03:10:49 | 显示全部楼层
    Archer30 发表于 2021-6-1 01:41
    裸城也不行了?那我写一下。每回合遍历所有城镇,如果裸城就添加对应的一级兵。这个就不涉及战后的检 ...

    这个也要攻城战后检查啊,如果两个电脑连续攻击,就会出现漏洞,这和英雄裸奔一样。

    点评

    你一直在提这个连续攻击会产生bug的问题,但这边不能复现。你的城如果在战后没有兵,那么这场战斗你的城已经失守了。如果不是,上传存档看看 这个添加兵力的功能是在OnEveryDay上触发的,每个玩家行动前,都会触  详情 回复 发表于 2021-6-1 03:24
    回复 支持 反对

    使用道具 举报

     成长值: 11335

  • TA的每日心情
    郁闷
    2024-3-3 18:17
  • 签到天数: 1609 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    5477

    回帖

    3万

    金币

    8

    精华

    管理员

    ERA Project Team
    WoG俄文论坛版主

    Rank: 12Rank: 12Rank: 12

    积分
    103546

    社区QQ达人论坛守望者脚本测试狂杰出贡献年度明星魅力之星宣传部长

    发表于 2021-6-1 03:24:18 | 显示全部楼层
    水流行险 发表于 2021-6-1 03:10
    这个也要攻城战后检查啊,如果两个电脑连续攻击,就会出现漏洞,这和英雄裸奔一样。

    你一直在提这个连续攻击会产生bug的问题,这边不能复现。
    你的城如果在战后没有兵,那么这场战斗你的城已经失守了(除非你的城有一个裸奔的英雄带指挥官)。如果不是,上传存档看看

    这个添加兵力的功能是在OnEveryDay上触发的,所有颜色的玩家行动前,都会触发一次

    点评

    我的兵都是放置的“预备役” !!FU&y30  详情 回复 发表于 2021-6-1 03:29
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-1 03:29:29 | 显示全部楼层
    Archer30 发表于 2021-6-1 03:24
    你一直在提这个连续攻击会产生bug的问题,这边不能复现。你的城如果在战后没有兵,那么这场战斗你的城 ...

    我的兵都是放置的“预备役”;就是赢了以后这些兵都会清零。然后这时下一个电脑又会来。如果是有守城英雄,英雄战后就会自动多出一个小兵,就可以继续战斗

    !!FU&y30<0:E;[没有英雄就退出]---------------应改为没有英雄就等于0,怎么改?

    点评

    总的来说,对于需不需要检测战后防止裸城的问题。 1. 你的城有英雄——那么英雄会有防止裸奔的脚本强行加兵 2. 你的城没有英雄——那么战后你的城如果没兵,说明已经战败了。战败后,新城主如果让这个城保持裸城  详情 回复 发表于 2021-6-1 03:55
    回复 支持 反对

    使用道具 举报

     成长值: 11335

  • TA的每日心情
    郁闷
    2024-3-3 18:17
  • 签到天数: 1609 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    5477

    回帖

    3万

    金币

    8

    精华

    管理员

    ERA Project Team
    WoG俄文论坛版主

    Rank: 12Rank: 12Rank: 12

    积分
    103546

    社区QQ达人论坛守望者脚本测试狂杰出贡献年度明星魅力之星宣传部长

    发表于 2021-6-1 03:55:33 | 显示全部楼层
    水流行险 发表于 2021-6-1 03:29
    我的兵都是放置的“预备役”;就是赢了以后这些兵都会清零。然后这时下一个电脑又会来。如果是有守城英雄 ...

    总的来说,对于需不需要检测战后防止裸城的问题。

    1. 你的城有英雄——那么英雄会有防止裸奔的脚本强行加兵
    2. 你的城没有英雄——那么战后你的城如果没兵,说明已经战败了。战败后,新城主如果让这个城保持裸城,那么在下一个玩家行动前这个城会被防止裸城脚本强行塞兵

    结论:裸城脚本不需要检测战后,没错?

    这里没看懂“没有英雄就等于0”,具体什么等于0?
    如果是BH:N的检测结果不准确,试试BA:H,也是检测英雄的

    防止裸城的脚本加入了驻守和来访英雄的检查,如果有这两个英雄其中之一,则跳过加兵(有英雄的话会被防止英雄裸奔的脚本加兵的)

    点评

    我的城只有一个兵(没有英雄),第一次战斗我的总兵力是一个兵,加上预备役放置的很多兵。然后我在战斗中胜利了,但是这一个兵死了,同时预备役放置的兵在战后会清理。这时,城镇没有易主,接着,第二个电脑又来攻城  详情 回复 发表于 2021-6-1 04:39
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-1 04:39:11 | 显示全部楼层
    本帖最后由 水流行险 于 2021-6-1 04:44 编辑
    Archer30 发表于 2021-6-1 03:55
    总的来说,对于需不需要检测战后防止裸城的问题。

    1. 你的城有英雄——那么英雄会有防止裸奔的脚本强 ...

    我的城只有一个兵(没有英雄),第一次战斗我的总兵力是一个兵,加上预备役放置的很多兵。然后我在战斗中胜利了,但是这一个兵死了,同时预备役放置的兵在战后会清理。这时,城镇没有易主,接着,第二个电脑又来攻城。如果我没有一个小兵,就视为空城,不触发攻城战,城镇立即易主。所以要战后裸城检查。


    关于召唤八级生物,没有守城英雄时,让其等级为0,不应该终止函数,所以两个红字的地方要修改一下。
    !!VRy27:Sy29+y10:i;召唤的数量跟(守城英雄等级+最高英雄等级)成正比同时与魔法行会等级成反比



    ZVSE
    **守城方开始战斗前自动增加预备役
    **战后不保留部队
    **EXricSin制作,2016.3.22于wog论坛编辑,独孤求败收录铭记
    **FU29423-29425
    ===================================================

    //从魔法行会要招募的8级生物守护神
    !?BF&1000;战斗开始前时设置战场   加&1000是只有人类参加时
    !!BA:S?y3; 检测是否是攻城
    !!FU&y3=0:E;如果不是攻城则退

    !!CA998:T?y17;获取城镇的类型

    !!VRi:S0;等级数初始化
    !!CA998:B3/0;检查1级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/1;检查2级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/2;检查3级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/3;检查4级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/4;检查5级
    !!VRi&1:+1;等级数+1    现状 i=等级数

    !!BH1:N?y30;检测守城英雄编号???守城英雄?如果没有守城英雄则退出。
    !!FU&y30<0:E;[没有英雄就退出]---------------应改为没有英雄就等于0
    !!HEy30:Ed/?y29;检测守城英雄等级

    !!VRy10:S0;[获得最高英雄等级]
    !!re y1/0/155/1:;
      !!HEy1:O?y2 Ed/?y3/1;
      !!if&y2=你要的颜色/y3>y10:;
          !!VRy10:Sy3;[记录最高等级]
      !!en:;
    !!en:;

    !!VRy28:Sy17+150;设置怪物类型为城镇类型+150
    !!VRy27:Sy29+y10:i;召唤的数量跟(守城英雄等级+最高英雄等级)成正比同时与魔法行会等级成反比:
    !!BU:Sy28/y27/97/1/-1/0;在指定位置上召唤与英雄等级数量得8级怪物 97中心城门

    ===================================================

    //从高级到低级检测要招募的预备役生物
    !?BF&1000;战斗开始前时设置战场   加&1000是只有人类参加时
    !!BA:S?y4; 检测是否是攻城
    !!FU&y4=0:E;如果不是攻城则退

    **y8y9=0by default
    !!CA998:T?y17;获取城镇的类型

      !!CA998:B3/43;检查编号为高级巢穴7的建筑是否建造
      !!VRy18:S0;
      !!VRy18&1:S1-y8;
      !!UN:Ty17/6/y18/?y26; //monster type
      !!FU29424:Py26/6/y9; //buy y26 /level 6/single recruit

      !!CA998:B3/42;检查编号为高级巢穴6的建筑是否建造
      !!VRy18:S0;
      !!VRy18&1:S1-y8;
      !!UN:Ty17/5/y18/?y25; //monster type
      !!FU29424:Py25/5/y9; //buy y25

      !!CA998:B3/41;检查编号为高级巢穴5的建筑是否建造
      !!VRy18:S0;
      !!VRy18&1:S1-y8;
      !!UN:Ty17/4/y18/?y24; //monster type
      !!FU29424:Py24/4/y9; //buy y24

      !!CA998:B3/40;检查编号为高级巢穴4的建筑是否建造
      !!VRy18:S0;
      !!VRy18&1:S1-y8;
      !!UN:Ty17/3/y18/?y23; //monster type
      !!FU29424:Py23/3/y9; //buy y23

      !!CA998:B3/39;检查编号为高级巢穴3的建筑是否建造
      !!VRy18:S0;
      !!VRy18&1:S1-y8;
      !!UN:Ty17/2/y18/?y22; //monster type
      !!FU29424:Py22/2/y9; //buy y22

      !!CA998:B3/38;检查编号为高级巢穴2的建筑是否建造
      !!VRy18:S0;
      !!VRy18&1:S1-y8;
      !!UN:Ty17/1/y18/?y21; //monster type
      !!FU29424:Py21/1/y9; //buy y21

      !!CA998:B3/37;检查编号为高级巢穴1的建筑是否建造
      !!VRy18:S0;
      !!VRy18&1:S1-y8;
      !!UN:Ty17/0/y18/?y20; //monster type
      !!FU29424:Py20/0/y9; //buy y20


    !?FU29424; //征召怪物编号 x1/等级 x2/x3=是否单招(0 or 2)
    !!CA998:M1/x2/?y12/?y13; //current reserve
    !!VRy1:S1000000; //min recruits by resources
    !!VRy1&y13<=y12/y1>y12:Sy12; //min recruits by reserve
    !!VRy1&y13>y12/y1>y13:Sy13; //min recruits by reserve UP
    !!FU&y1=0:E; //end if no available
    !!DO29425/0/10/1:Px1/y1;//place on field


    !?FU29425; //放置怪物 x1=type x2=quantity
    !!VRy10&x16=0:S14; //设置当前格子
    !!VRy10&x16=1:S184;
    !!VRy10&x16=2:S47;
    !!VRy10&x16=3:S149;
    !!VRy10&x16=4:S81;
    !!VRy10&x16=5:S115;
    !!VRy10&x16=6:S31;
    !!VRy10&x16=7:S167;
    !!VRy10&x16=8:S65;
    !!VRy10&x16=9:S133;
    !!VRy10&x16=10:S99;
    !!VRy11:Sy10-1; //设置前一个格子

    !!MA:Xx1/?y1;检测怪物属性
    !!VRy1:&1;//双格兵?
    !!BU:Oy10/?y2 Ey10/?y3; //检测当前格子是否已占
    !!VRy6:Sy2 &4; //quick sand
    !!VRy7:Sy2 &8; //mine
    !!BU:Oy11/?y4 Ey11/?y5; //检测前一个格子是否已占
    !!VRy8:Sy4 &4;
    !!VRy9:Sy4 &8;

    !!if|y2=0/y6=4/y7=8:; //当前格子是否已占
      !!FU&y3>-1:E; //end if occupied
      !!if&y1=0:; //单格兵直接召唤
        !!BU:Sx1/x2/y10/1/-1/0;          放置x1类型x2数量y3位置1右边-1无编号0不重画
        !!VRx16:S1000000;
      !!el:; //双格兵还要检测前一个格子是否已占
        !!if|y4=0/y8=4/y9=8:;
          !!FU&y5>-1:E; //end if occupied
          !!BU:Sx1/x2/y10/1/-1/0;summon  放置x1类型x2数量y3位置1右边-1无编号0不重画
          !!VRx16:S1000000;
        !!en:;
      !!en:;
    !!en:;

    ===================================================

    //战后清理战场和城镇

    !?BA1&1000; 战后触发  加&1000是只有人类参加时
    !!BA:S?y1; //检测攻城?
    !!FU&y1=0:E;

    !!BA:H0/?y3; //attacker hero
    !!HEy3:O?y4;
    !!FU&y4<0:E;

    **如果攻城胜利则巢穴清零
    !!CA998:M1/0/0/0;
    !!CA998:M1/1/0/0;
    !!CA998:M1/2/0/0;
    !!CA998:M1/3/0/0;
    !!CA998:M1/4/0/0;
    !!CA998:M1/5/0/0;
    !!CA998:M1/6/0/0;

    ***Erm over***




    点评

    那确实必须战后检查,这应该能搞定?核心检查条件在取消英雄裸奔的脚本已经写清楚了 这里的红字问题我还是没有完全理解。你用i这个变量表示等级,那么等级为0: 非常直白 但后边这个红字很难理解为什么这么  详情 回复 发表于 2021-6-1 05:01
    回复 支持 反对

    使用道具 举报

     成长值: 11335

  • TA的每日心情
    郁闷
    2024-3-3 18:17
  • 签到天数: 1609 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    5477

    回帖

    3万

    金币

    8

    精华

    管理员

    ERA Project Team
    WoG俄文论坛版主

    Rank: 12Rank: 12Rank: 12

    积分
    103546

    社区QQ达人论坛守望者脚本测试狂杰出贡献年度明星魅力之星宣传部长

    发表于 2021-6-1 05:01:30 | 显示全部楼层
    水流行险 发表于 2021-6-1 04:39
    我的城只有一个兵(没有英雄),第一次战斗我的总兵力是一个兵,加上预备役放置的很多兵。然后我在战斗中 ...

    那确实必须战后检查,这应该能搞定?核心检查条件在取消英雄裸奔的脚本已经写清楚了

    这里的红字问题我还是没有完全理解。你用i这个变量表示等级,那么等级为0:
    1. !!VRi&y30<0:S0;
    复制代码

    非常直白

    但后边这个红字很难理解为什么这么设置(以及你的问题是啥?),为什么打算和魔法行会等级成反比?除以任何数之前都必须检查数是否为0,不然会有ERM错误,前面的语句已经让魔法行会为0级或没有守城英雄时i为0了,这里你打算怎么处理呢?考虑魔法行会0级或守城英雄不存在时,i为1,每加一级魔法行会,i+1?

    另外的问题是,如果没有驻地的英雄,则来访英雄在攻城战中也会加入战斗,这在你的脚本中没有考虑呀

    点评

    以下是脚本的原型,表示在守城战在97位置召唤八级生物数量=守城英雄等级/该城魔法行会等级。我要变成数量=(守城英雄等级+该势力最高英雄等级)/该城魔法行会等级。仅此而已。 ZVSE **守城方开始战斗前自动增  详情 回复 发表于 2021-6-1 15:10
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-1 15:10:59 | 显示全部楼层
    本帖最后由 水流行险 于 2021-6-1 16:14 编辑
    Archer30 发表于 2021-6-1 05:01
    那确实必须战后检查,这应该能搞定?核心检查条件在取消英雄裸奔的脚本已经写清楚了

    这里的红字问题我 ...

    来访英雄不用考虑,游戏的硬码会自动处理,当城镇里面有英雄就是野战,没有英雄就是攻城战。

    以下是脚本的原型,表示在守城战在97位置召唤八级生物数量=守城英雄等级/该城魔法行会等级。我要变成数量=(守城英雄等级+该势力最高英雄等级)/该城魔法行会等级。仅此而已。主要是解决电脑不守城出现的偷城现象。


    ZVSE
    **守城方开始战斗前自动增加预备役
    **战后不保留部队
    **EXricSin制作,2016.3.22于wog论坛编辑,独孤求败收录铭记
    **FU29423-29425
    ===================================================

    //从魔法行会要招募的8级生物守护神
    !?BF&1000;战斗开始前时设置战场   加&1000是只有人类参加时
    !!BA:S?y3; 检测是否是攻城
    !!FU&y3=0:E;如果不是攻城则退
    !!CA998:T?y17;获取城镇的类型
    !!VRi:S0;等级数初始化
    !!CA998:B3/0;检查1级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/1;检查2级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/2;检查3级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/3;检查4级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/4;检查5级
    !!VRi&1:+1;等级数+1    现状 i=等级数

    !!BH1:N?y30;检测守城英雄编号???守城英雄?如果没有守城英雄则退出。
    !!FU&y30<0:E;[没有英雄就退出]
    !!HEy30:Ed/?y29;检测守城英雄等级
    !!VRy28:Sy17+150;设置怪物类型为城镇类型+150
    !!VRy27:Sy29:i;召唤的数量跟(守城英雄等级)成正比同时与魔法行会等级成反比:
    !!BU:Sy28/y27/97/1/-1/0;在指定位置上召唤与英雄等级数量得8级怪物 97中心城门

    点评

    我终于看懂了 看看是不是这么一回事 魔法行会等级为0和1,都是除以1  详情 回复 发表于 2021-6-1 18:22
    回复 支持 反对

    使用道具 举报

     成长值: 11335

  • TA的每日心情
    郁闷
    2024-3-3 18:17
  • 签到天数: 1609 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    5477

    回帖

    3万

    金币

    8

    精华

    管理员

    ERA Project Team
    WoG俄文论坛版主

    Rank: 12Rank: 12Rank: 12

    积分
    103546

    社区QQ达人论坛守望者脚本测试狂杰出贡献年度明星魅力之星宣传部长

    发表于 2021-6-1 18:22:49 | 显示全部楼层
    水流行险 发表于 2021-6-1 15:10
    来访英雄不用考虑,游戏的硬码会自动处理,当城镇里面有英雄就是野战,没有英雄就是攻城战。

    以下是脚 ...

    我终于看懂了

    看看是不是这么一回事
    魔法行会等级为0和1,都是除以1
    1. //从魔法行会要招募的8级生物守护神
    2. !?BF&1000;战斗开始前时设置战场   加&1000是只有人类参加时
    3. !!BA:S?y3; 检测是否是攻城
    4. !!FU&y3=0:E;如果不是攻城则退

    5. !!CA998:T?y17;获取城镇的类型

    6. !!VRy11:S0;等级数初始化
    7. !!CA998:B3/0;检查1级
    8. !!VRy11&1:+1;等级数+1
    9. !!CA998:B3/1;检查2级
    10. !!VRy11&1:+1;等级数+1
    11. !!CA998:B3/2;检查3级
    12. !!VRy11&1:+1;等级数+1
    13. !!CA998:B3/3;检查4级
    14. !!VRy11&1:+1;等级数+1
    15. !!CA998:B3/4;检查5级
    16. !!VRy11&1:+1;等级数+1    现状y11=等级数
    17. !!VRy11&y11<1:S1;没有魔法行会则将y11设置为1

    18. !!BH1:N?y30;检测守城英雄编号

    19. !!if&y30<0;检测英雄是否存在
    20.   !!VRy29:S0;没有英雄则将y29为0
    21. !!el;
    22.   !!HEy30:Ed/?y29;有英雄则获取守城英雄等级
    23. !!en;

    24. !!BA:O?y31/?y32;检测守城方势力
    25. !!VRy10:S0;获得最高英雄等级

    26. !!re y1/0/155/1:;
    27.   !!HEy1:O?y2 Ed/?y3/1;
    28.   !!if&y2=y32/y3>y10:;
    29.       !!VRy10:Sy3;记录最高等级
    30.   !!en:;
    31. !!en:;

    32. !!VRy28:Sy17 +150;设置怪物类型为城镇类型+150
    33. !!VRy27:Sy29 +y10 :y11;召唤的数量跟(守城英雄等级+最高英雄等级)成正比同时与魔法行会等级成反比:
    34. !!BU:Sy28/y27/97/1/-1/0;在指定位置上召唤与英雄等级数量得8级怪物 97中心城门
    复制代码




    点评

    ZVSE2 ; Author: Archer30 ; Engine: ERM 2.0+ ; Requires: ERA 3.4+, Era Erm Framework loop through all towns and add in first level creature to the garrison if a town is with no army daily  详情 回复 发表于 2021-6-1 22:39
    对,是这个意思。 还有一点,i与y11,这个https://www.h3wog.com/forum.php?mod=viewthread&tid=54390&extra=page%3D1&page=4  详情 回复 发表于 2021-6-1 20:15
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-1 20:15:33 | 显示全部楼层
    本帖最后由 水流行险 于 2021-6-1 20:54 编辑
    Archer30 发表于 2021-6-1 18:22
    我终于看懂了

    看看是不是这么一回事

    对,是这个意思。没有魔法行会就退出。不是和1级一样。!!VRy11&y11<1:S1;没有魔法行会则将y11设置为1   这里应该是没有魔法行会就退出
    还有一点,i与y11,这个https://www.h3wog.com/forum.php?mod=viewthread&tid=54390&extra=page%3D1&page=4



    捕获.PNG

    点评

    !!FU&y11  详情 回复 发表于 2021-6-1 21:21
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-1 21:21:23 | 显示全部楼层
    水流行险 发表于 2021-6-1 20:15
    对,是这个意思。没有魔法行会就退出。不是和1级一样。!!VRy11&y11

    !!FU&y11<1:E;如果没有魔法行会则退
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-1 22:39:52 | 显示全部楼层
    Archer30 发表于 2021-6-1 18:22
    我终于看懂了

    看看是不是这么一回事
    这样可以吗?
    ZVSE2
    ; Author:   Archer30
    ; Engine:   ERM 2.0+
    ; Requires: ERA 3.4+, Era Erm Framework

    loop through all towns and add in first level creature to the garrison if a town is with no army daily    防止裸城

    !?FU(OnEveryDay);                       [add in creature daily]
    !!FU(TownMustHaveArmy):P;

    !?FU(TownMustHaveArmy);
    !#VA(x:y) (y:y) (z:y);                  [define variables to store object coordinates]
    !!VR(x):S-1;                            [set x-coordinate to -1 to force to start search from scratch]
    !!re i;                                 [endless loop]
      !!SN:F^FindNextObject^/(OBJ_TOWN)/(ANY_OBJ)/?(x)/?(y)/?(z)/-1; [find next town, v1 is (TRUE) on success]
      !!br&v1=(FALSE);                      [exit loop if nothing found]
      !!re f/(ARMY_SLOT_FIRST)/(ARMY_SLOT_LAST);
        !!CA(x)/(y)/(z):M2/f/?(monType:y)/?(monCount:y);
        !!co 2&(monType)>(NO_MON)/(monCount)>0;
      !!en;
      !!CA(x)/(y)/(z):T?t;                  [Check type of the town if the town is with no army]
      !!VR(firstLevelMon[9]:y):C(MON_PIKEMAN)/(MON_CENTAUR)/(MON_GREMLIN)/(MON_IMP)/(MON_SKELETON)/(MON_TROGLODYTE)/(MON_GOBLIN)/(MON_GNOLL)/(MON_PIXIE);
      !!CA(x)/(y)/(z):M2/(ARMY_SLOT_FIRST)/(firstLevelMon[t])/1; [add in first level creature according to the type of town]
    !!en;

    !?FU(OnAfterBattleUniversal);
    !#VA(x:y) (y:y) (z:y);                  [define variables to store object coordinates]
    !!VR(x):S-1;                            [set x-coordinate to -1 to force to start search from scratch]
    !!re i;                                 [endless loop]
      !!SN:F^FindNextObject^/(OBJ_TOWN)/(ANY_OBJ)/?(x)/?(y)/?(z)/-1; [find next town, v1 is (TRUE) on success]
      !!br&v1=(FALSE);                      [exit loop if nothing found]
      !!re f/(ARMY_SLOT_FIRST)/(ARMY_SLOT_LAST);
        !!CA(x)/(y)/(z):M2/f/?(monType:y)/?(monCount:y);
        !!co 2&(monType)>(NO_MON)/(monCount)>0;
      !!en;
      !!CA(x)/(y)/(z):T?t;                  [Check type of the town if the town is with no army]
      !!VR(firstLevelMon[9]:y):C(MON_PIKEMAN)/(MON_CENTAUR)/(MON_GREMLIN)/(MON_IMP)/(MON_SKELETON)/(MON_TROGLODYTE)/(MON_GOBLIN)/(MON_GNOLL)/(MON_PIXIE);
      !!CA(x)/(y)/(z):M2/(ARMY_SLOT_FIRST)/(firstLevelMon[t])/1; [add in first level creature according to the type of town]
    !!en;


    点评

    虽然也行,但效率太差。你不需要在每次战后遍历所有城镇,你只需要在攻城战后检查这场战斗中的防守的城镇是否是裸城  详情 回复 发表于 2021-6-1 23:01
    回复 支持 反对

    使用道具 举报

     成长值: 11335

  • TA的每日心情
    郁闷
    2024-3-3 18:17
  • 签到天数: 1609 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    5477

    回帖

    3万

    金币

    8

    精华

    管理员

    ERA Project Team
    WoG俄文论坛版主

    Rank: 12Rank: 12Rank: 12

    积分
    103546

    社区QQ达人论坛守望者脚本测试狂杰出贡献年度明星魅力之星宣传部长

    发表于 2021-6-1 23:01:46 | 显示全部楼层
    水流行险 发表于 2021-6-1 22:39
    这样可以吗?
    ZVSE2
    ; Author:   Archer30

    虽然也行,但效率太差。你不需要在每次战后遍历所有城镇,你只需要在攻城战后检查这场战斗中的防守的城镇是否是裸城

    点评

    好奇文一下,城镇的建筑物编号是0-43共44个,我如果 !!VRi:S0;等级数初始化 !!CA998:B3/0;检查1级 !!VRi&1:+1;等级数+1 !!CA998:B3/1;检查2级 !!VRi&1:+1;等级数+1 !!CA998:B3/2;检查3级 !!VRi&1:+1;等级数+1  详情 回复 发表于 2021-6-2 16:38
    这……太难了,快救救我!  详情 回复 发表于 2021-6-2 00:23
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-2 00:23:09 | 显示全部楼层
    Archer30 发表于 2021-6-1 23:01
    虽然也行,但效率太差。你不需要在每次战后遍历所有城镇,你只需要在攻城战后检查这场战斗中的防守的城镇 ...

      这……太难了,快救救我!

    点评

    防止英雄裸奔的脚本和防止裸城[/url]的脚本都更新了。裸城脚本加入了战后检查。看看是不是这么一回事  详情 回复 发表于 2021-6-4 07:36
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-3-22 22:17
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]火元素使者

    342

    回帖

    9274

    金币

    0

    精华

    4级 Famous Hero

    Rank: 4

    积分
    2490
     楼主| 发表于 2021-6-2 16:38:47 | 显示全部楼层
    Archer30 发表于 2021-6-1 23:01
    虽然也行,但效率太差。你不需要在每次战后遍历所有城镇,你只需要在攻城战后检查这场战斗中的防守的城镇 ...

    好奇问一下,城镇的建筑物编号是0-43共44个,我如果
    !!VRi:S0;等级数初始化
    !!CA998:B3/0;检查1级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/1;检查2级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/2;检查3级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/3;检查4级
    !!VRi&1:+1;等级数+1
    !!CA998:B3/4;检查5级
    !!VRi&1:+1;等级数+1    现状 i=等级数

    一直……到43,有什么问题吗?也就是说,先建了19号,然后21号,然后才见0号。能运作吗?@Archer30 @XEricSin @贤知有您
    回复 支持 反对

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 英雄注册|Register

    本版积分规则

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

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

    GMT+8, 2024-5-14 11:58 , Processed in 0.979587 second(s), 29 queries , Gzip On, File On.

    Powered by Discuz! X3.4

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

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