水流行险 发表于 2021-6-11 16:32:35

【已解决】如何让电脑从7级兵升级到8级兵也要扣减资源?

本帖最后由 水流行险 于 2021-7-22 23:23 编辑

以下是33wog城镇升级脚本的电脑从7级兵升级到8级兵的脚本,可是电脑的8八级兵太多了,动不动就几十。如何让电脑从7级兵升级到8级兵也要扣减资源?
请版主和高手指点!@Archer30 @XEricSin

********************** AI直接升级生物 **********************
*Fu99868-Fu99869
!?OB98&v9428=1/-1000;
!!FU99868:P;

!?FU99868;
!!CA998:O?y1;
!!OW:C?y2;
!!FU&y1<>y2:E;
!!CA998:T?y3;
;v2=生物1,v3=升级生物1,v4=生物2,v5=升级生物2,v6=建筑标志1,v7=资源类型1
!!VRv2&y3=0:C7/144/13/150/40/5;      7十字军-144恶鬼 13大天使-150至高大天使 40-5
!!VRv2&y3=1:C19/170/27/151/39/4;   以下是个种族的八级兵
!!VRv2&y3=2:C33/116/41/152/39/5;
!!VRv2&y3=3:C51/195/55/153/41/1;
!!VRv2&y3=4:C59/141/69/154/38/1;
!!VRv2&y3=5:C77/192/83/155/40/3;
!!VRv2&y3=6:C87/142/97/156/38/4;
!!VRv2&y3=7:C99/194/111/157/37/1;
!!VRv2&y3=8:C129/164/131/158/40/1;
!!UN:J2/?y4;   检测难度等级
!!VRy5&y4<3:S90;130%-80%      AI升级时间限制90
!!VRy5&y4=3:S60;160%                        60
!!VRy5&y4=4:S30;200%                        30
!!VRy6:Sc;
!!FU&y6<y5:E;游戏天数低于设定数值禁止AI升级特殊兵种跟8级生物
!!HE-1:N?y7;
!!DO99869/0/6/1:Py7/v2/v3/v4/v5/v6/43;检测当前英雄身上的部队

!?FU99869;
!!HEx1:C0/x16/?y1/?y2;
!!FU|y1<0/y2=0:E;
!!CA998:B3/9;   检测城堡是否建造
!!FU&-1:E;
!!if&y1=x2:;
!!CA998:B3/x6;建造4级高级巢穴
!!HEx1&1:C0/x16/x3/y2;自动升级特殊进阶兵种
!!el:;
!!if&y1=x4:;
!!CA998:B3/x7; 建造7级高级巢穴   -------------------------------------------这里插入检查该势力的资源,和升级所需的资源,要扣减
!!HEx1&1:C0/x16/x5/y2;自动升级8级兵   改变怪物的位置、类型、数量
!!el:;
!!en:;

Archer30 发表于 2021-7-22 17:05:26

********************** AI直接升级生物 **********************
*Fu99868-Fu99869
!?OB98&v9428=1/-1000;
!!FU99868:P;

!?FU99868;
!!CA998:O?y1;
!!OW:C?y2;
!!FU&y1<>y2:E;

!!CA998:B3/9;   检测城堡是否建造
!!FU&-1:E;

!!UN:J2/?y4;   检测难度等级
!!VRy5&y4<3:S90;130%-80%      AI升级时间限制90
!!VRy5&y4=3:S60;160%                        60
!!VRy5&y4=4:S30;200%                        30
!!VRy6:Sc;
!!FU&y6<y5:E;游戏天数低于设定数值禁止AI升级特殊兵种跟8级生物

!!CA998:T?y3;[注意!!所有的默认值(50、2000、2)都要修改为实际的资源消耗数值]
;v2=生物1,v3=升级生物1,v4=生物2,v5=升级生物2,v6=4级巢穴,v7=生物1升级需要的金币(默认50)v8=生物2升级需要的金币(默认2000),v9=生物2升级需要的额外资源类型,v10=生物2升级需要的额外资源数量(默认2)
!!VRv2&y3=0:C7/144/13/150/40/50/2000/5/2;      7十字军-144恶鬼 13大天使-150至高大天使 40-5
!!VRv2&y3=1:C19/170/27/151/39/50/2000/4/2;   以下是各个种族的八级兵
!!VRv2&y3=2:C33/116/41/152/39/50/2000/5/2;
!!VRv2&y3=3:C51/195/55/153/41/50/2000/1/2;
!!VRv2&y3=4:C59/141/69/154/38/50/2000/1/2;
!!VRv2&y3=5:C77/192/83/155/40/50/2000/3/2;
!!VRv2&y3=6:C87/142/97/156/38/50/2000/4/2;
!!VRv2&y3=7:C99/194/111/157/37/50/2000/3/2;
!!VRv2&y3=8:C129/164/131/158/40/50/2000/1/2;

!!HE-1:N?y7;
!!DO99869/0/6/1:Py7/v2/v3/v4/v5/v6/43/v7/v8/v9/v10/y2;检测当前英雄身上的部队

!?FU99869;
; x1=当前英雄
; x2=生物1 x3=升级生物1 x4=生物2 x5=升级生物2
; x6=4级巢穴,x7=升级7级建筑
; x8=生物1升级金币 x9=生物2升级金币 x10=生物2升级资源类型 x11=生物2升级资源数量
; x12=当前玩家
; 金币资源类型=6
!!HEx1:C0/x16/?y1/?y2;
!!FU|y1<0/y2=0:E;

!!if&y1=x2:;
!!CA998:B3/x6;检查是否建造4级高级巢穴

!!FU&-1:E;未建造则退出

!!OW:Rx12/6/?y30; 计算玩家拥有的金币 y30
!!VRy31:Sy30 :x8; 计算现有的金币可以升级多少生物1 y31

!!if&y31>=y2:; 如果金币满足升级本槽位所有生物的需求(承担不起费用则不升级)
    !!HEx1:C0/x16/x3/y2;自动升级特殊进阶兵种
    !!VRy32:Sy2 *x8;计算升级需要的金币
    !!OW:Rx12/6/dy32; 扣除金币
!!en:;
!!en:;

!!if&y1=x4:;
!!CA998:B3/x7; 检查是否建造7级高级巢穴

!!FU&-1:E;未建造则退出

!!OW:Rx12/6/?y30; 计算玩家拥有的金币 y30
!!VRy31:Sy30 :x9; 计算现有的金币可以升级多少生物2 y31
!!OW:Rx12/x10/?y32; 计算玩家现有的特殊资源x10 y32
!!VRy33:Sy33 :x11; 计算现有的特殊资源可以升级多少生物2 y33

!!if&y31>=y2/y33>=y2:;如果金币和特殊资源满足升级本槽位所有生物的需求(承担不起费用则不升级)
    !!HEx1:C0/x16/x5/y2;自动升级8级兵
    !!VRy34:Sy2 *x9;计算升级需要的金币
    !!OW:Rx12/6/dy34; 扣除金币
    !!VRy35:Sy2 *x11; 计算升级需要的特殊资源
    !!OW:Rx12/x10/dy35; 扣除特殊资源
!!en:;
!!en:;

贤知有您 发表于 2021-6-11 16:55:40

楼主为啥不自己试一下,写一写.
你已经知道在哪里改了.
还差一些脚本,不妨试试看.遇到不懂的可以继续提问.
检查两种兵种的价格差(包括特殊资源)
检查玩家是否拥有足够多的资源.
对比扣减,然后升级.

lima133 发表于 2021-6-11 18:36:57

城镇第八生物能否也有进阶三阶的升级?
直接在 城堡招募界面如三阶一样升级?

lima133 发表于 2021-6-11 18:41:58

贤知有您 发表于 2021-6-11 16:55
楼主为啥不自己试一下,写一写.
你已经知道在哪里改了.
还差一些脚本,不妨试试看.遇到不懂的可以继续提问. ...

请求增加第8生物的三阶升级脚本。

babyandy 发表于 2021-6-11 19:07:06

好多大神                     

水流行险 发表于 2021-6-11 20:01:23

lima133 发表于 2021-6-11 18:36
城镇第八生物能否也有进阶三阶的升级?
直接在 城堡招募界面如三阶一样升级?

模仿也很辛苦,搞不定啊!快帮我矫正!;cn;@XEricSin @Archer30

********************** AI直接升级生物 **********************
*Fu99868-Fu99869
!?OB98&v9428=1/-1000;
!!FU99868:P;

!?FU99868;
!!CA998:O?y1;
!!OW:C?y2;
!!FU&y1<>y2:E;
!!CA998:T?y3;
;v2=生物1,v3=升级生物1,v4=生物2,v5=升级生物2,v6=建筑标志1,v7=资源类型1
!!VRv2&y3=0:C7/144/13/150/40/5;      7十字军-144恶鬼 13大天使-150至高大天使 40-5
!!VRv2&y3=1:C19/170/27/151/39/4;   以下是个种族的八级兵
!!VRv2&y3=2:C33/116/41/152/39/5;
!!VRv2&y3=3:C51/195/55/153/41/1;
!!VRv2&y3=4:C59/141/69/154/38/1;
!!VRv2&y3=5:C77/192/83/155/40/3;
!!VRv2&y3=6:C87/142/97/156/38/4;
!!VRv2&y3=7:C99/194/111/157/37/1;
!!VRv2&y3=8:C129/164/131/158/40/1;
!!UN:J2/?y4;   检测难度等级
!!VRy5&y4<3:S90;130%-80%      AI升级时间限制90
!!VRy5&y4=3:S60;160%                        60
!!VRy5&y4=4:S30;200%                        30
!!VRy6:Sc;
!!FU&y6<y5:E;游戏天数低于设定数值禁止AI升级特殊兵种跟8级生物
!!HE-1:N?y7;
!!DO99869/0/6/1:Py7/v2/v3/v4/v5/v6/43;检测当前英雄身上的部队

!?FU99869;
!!HEx1:C0/x16/?y1/?y2;
!!FU|y1<0/y2=0:E;
!!CA998:B3/9;   检测城堡是否建造
!!FU&-1:E;
!!if&y1=x2:;
!!CA998:B3/x6;建造4级高级巢穴
!!HEx1&1:C0/x16/x3/y2;自动升级特殊进阶兵种
!!el:;
!!if&y1=x4:;
!!CA998:B3/x7; 建造7级高级巢穴

!!VRy1:Sx4 +1;
!!VRy1&x4=7:S144;
!!VRy1&x4=13:S150; 至高大天使
!!VRy1&x4=19:S170;
!!VRy1&x4=27:S151;
!!VRy1&x4=33:S116;
!!VRy1&x4=41:S152;
!!VRy1&x4=51:S195;
!!VRy1&x4=55:S153;
!!VRy1&x4=59:S141;
!!VRy1&x4=69:S154;
!!VRy1&x4=77:S192;
!!VRy1&x4=83:S155;
!!VRy1&x4=87:S142;
!!VRy1&x4=97:S156;
!!VRy1&x4=99:S194;
!!VRy1&x4=111:S157;地狱九头怪
!!VRy1&x4=129:S164;   烈火元素-火元素使者
!!VRy1&x4=127:S166;   雷元素-气元素使者
!!VRy1&x4=125:S165;   石元素-土元素使者
!!VRy1&x4=123:S167;   冰元素-水元素使者
!!VRy1&x4=131:S158;   神圣凤凰


!!UN:N3/-2/x4/1 N3/-3/y1/1;获取怪物编号
!!MA:Cx4/?y2 Cx4/6/?y3 Cx4/1/?y4 Cx4/3/?y5 Cx4/4/?y6 Cx4/5/?y7;   获取怪物的所需资源
!!MA:Cy1/?y12 Cy1/6/?y13 Cy1/1/?y14 Cy1/3/?y15 Cy1/4/?y16 Cy1/5/?y17;获取怪物的所需资源
!!OW:R-1/6/?y22 R-1/1/?y23 R-1/3/?y24 R-1/4/?y25 R-1/5/?y26;    获取势力的资源数
!!VRy30:Sy2*x5:y12;   两种怪物的资源差
!!FU&y30<1:E;         资源不够就结束


!!VRy31:Sy13-y3*2*y30;         黄金
!!FU&y22<y31:E;
!!VRy32:Sy14-y4*y30;         水银
!!FU&y14>0/y23<y32:E;
!!VRy33:Sy15-y5*y30;         硫磺
!!FU&y15>0/y24<y33:E;
!!VRy34:Sy16-y6*y30;         水晶
!!FU&y16>0/y25<y34:E;
!!VRy35:Sy17-y7*y30;         宝石
!!FU&y17>0/y26<y35:E;


!!VRy40:Sy22-y31;            如果够用就扣去
!!VRy41:Sy23-y32;
!!VRy42:Sy24-y33;
!!VRy43:Sy25-y34;
!!VRy44:Sy26-y35;
!!OW:R-1/6/y40;
!!OW&y14>0:R-1/1/y41;
!!OW&y15>0:R-1/3/y42;
!!OW&y16>0:R-1/4/y43;
!!OW&y17>0:R-1/5/y44;

!!HEx1&1:C0/x16/x5/y2;自动升级8级兵   改变怪物的位置、类型、数量
!!el:;
!!en:;

Parry 发表于 2021-6-11 20:54:14

请求增加第8生物的三阶升级脚本。

裂空之冰 发表于 2021-6-12 06:19:57

不懂帮顶{:2_142:}

老鹰怕睡觉 发表于 2021-6-12 13:46:40

天底下没有免费的午餐,如果能有,早就横扫一切了。

水流行险 发表于 2021-6-12 22:47:47

贤知有您 发表于 2021-6-11 16:55
楼主为啥不自己试一下,写一写.
你已经知道在哪里改了.
还差一些脚本,不妨试试看.遇到不懂的可以继续提问. ...

快来救救命啊,搞不定!@Archer30 @XEricSin

Archer30 发表于 2021-6-13 15:32:07

没空,只写了一些(没啥用的一些)
!?FU(OnAfterErmInstructions);
!!FU(arch_CalculUpgLv7toLv8Res):P;

!?FU(arch_CalculUpgLv7toLv8Res);
!!VR(upgLv7Mons:y):C(MON_ARCHANGEL)/(MON_GOLD_DRAGON)/(MON_TITAN)/(MON_ARCH_DEVIL)/(MON_GHOST_DRAGON)/(MON_BLACK_DRAGON)/(MON_ANCIENT_BEHEMOTH)/(MON_CHAOS_HYDRA)/(MON_PHOENIX);
!!VR(lv8Mons:y):C(MON_SUPREME_ARCHANGEL)/(MON_DIAMOND_DRAGON)/(MON_LORD_OF_THUNDER)/(MON_ANTICHRIST)/(MON_BLOOD_DRAGON)/(MON_DARKNESS_DRAGON)/(MON_GHOST_BEHEMOTH)/(MON_HELL_HYDRA)/(MON_SACRED_PHOENIX);
!!VR(extRes:y):C(RES_GEMS)/(RES_CRYSTAL)/(RES_GEMS)/(RES_MERCURY)/(RES_MERCURY)/(RES_SULFUR)/(RES_CRYSTAL)/(RES_SULFUR)/(RES_MERCURY);

!!re i/(TOWN_FIRST)/(TOWN_LAST_WOG);
!!MA:C(upgLv7Mons)/(RES_GOLD)/?(goldUpgLv7:y) C(upgLv7Mons)/(extRes)/?(extResUpgLv7:y);
!!MA:C(lv8Mons)/(RES_GOLD)/?(goldLv8:y) C(lv8Mons)/(extRes)/?(extResLv8:y);

!!VRi^arch_lv7to8GoldDif_%i(upgLv7Mons)^:S(goldLv8) -(goldUpgLv7);
!!VRi^arch_lv7to8ExtResDif_%i(upgLv7Mons)^:S(extResLv8) -(extResUpgLv7);
!!en;这段计算升级7级兵到8级兵的差异,并把值存储在i^arch_lv7to8GoldDif_升级7级兵序号^和i^arch_lv7to8ExtResDif_升级7级兵序号^中

还缺啥呢?
每天遍历电脑玩家所有英雄的兵
判断升级7级兵的种类和数量
通过7级兵的种类判断额外资源(extRes)的种类
然后扣除电脑玩家 升级7级兵 * 数量的资源

水流行险 发表于 2021-6-13 21:14:38

Archer30 发表于 2021-6-13 15:32
没空,只写了一些(没啥用的一些)
这段计算升级7级兵到8级兵的差异,并把值存储在i^arch_lv7to8GoldDif_ ...

哈哈哈,有希望了!;exp;

ioppp789 发表于 2021-6-14 08:03:10

不清楚,了解一下!!

水流行险 发表于 2021-6-15 17:12:17

本帖最后由 水流行险 于 2021-6-15 17:20 编辑

Archer30 发表于 2021-6-13 15:32
没空,只写了一些(没啥用的一些)
这段计算升级7级兵到8级兵的差异,并把值存储在i^arch_lv7to8GoldDif_ ...
老板,我搞不定啊!;bq;ERA3连中文教程都没有!

水流行险 发表于 2021-6-20 21:15:55

Archer30 发表于 2021-6-13 15:32
没空,只写了一些(没啥用的一些)
这段计算升级7级兵到8级兵的差异,并把值存储在i^arch_lv7to8GoldDif_ ...

帮我多加一点补全它吧?:nianjing:

水流行险 发表于 2021-7-20 02:11:25

Archer30 发表于 2021-6-13 15:32
没空,只写了一些(没啥用的一些)
这段计算升级7级兵到8级兵的差异,并把值存储在i^arch_lv7to8GoldDif_ ...

现在新的ERA3搞定了,可以有空帮我加两行代码完成这个了吗?

Archer30 发表于 2021-7-20 21:34:31

ZVSE2
; Author:   Archer30
; Engine:   ERM 2.0+
; Requires: ERA 3.3+, Era Erm Framework, 77 wog - map rules

; Hero's upgraded level 7 monsters become level 8 now costs resources from AI players.


!?FU(OnStartOrLoad);
!!FU(costupg_CalcUpgCost):P;

!?FU(OnEveryDay)&i^timerIsAi^;
!!FU(costupg_LoopAiArmies):P;

!?FU(costupg_CalcUpgCost);
; Check if auto upgrading Upgraded Lv 7 to Lv 8 is enabeld. Exit if negative.
!!UN:P125/?(autoUpgOn:y);
!!FU&(autoUpgOn)<>(TRUE):E;

; Create arrays for Upgraded Lv 7, Lv 8 creatures and additional resources required for them
!!FU(NewIntArray):P8/?i^costupg_upgLv7Array^/(M_TEMP);
!!FU(Array_Fill):Pi^costupg_upgLv7Array^/(MON_ARCHANGEL)/14;
!!FU(Array_Push):Pi^costupg_upgLv7Array^/(MON_PHOENIX);

!!FU(NewIntArray):P9/?(lv8MonArray:y);
!!FU(Array_Fill):P(lv8MonArray)/(MON_SUPREME_ARCHANGEL)/1;

!!FU(NewIntArray):P?i^costupg_extResArray^/(M_TEMP);
!!FU(Array_Push):Pi^costupg_extResArray^/(RES_GEMS)/(RES_CRYSTAL)/(RES_GEMS)/(RES_MERCURY)/(RES_MERCURY)/(RES_SULFUR)/(RES_CRYSTAL)/(RES_SULFUR)/(RES_MERCURY);

; Create arrays for the difference of gold and additoinal resrouces of Upgraded Lv 7 to Lv 8
!!FU(NewIntArray):P?i^costupg_goldDiffArray^/(M_TEMP);

!!FU(NewIntArray):P?i^costupg_extResDiffArray^/(M_TEMP);

; Calculate the gold and resources difference for all 9 factions
!!re i/(TOWN_FIRST)/(TOWN_LAST_WOG);
!!SN:Mi^costupg_upgLv7Array^/i/?(upgLv7Mon:y);
!!SN:M(lv8MonArray)/i/?(lv8Mon:y);
!!SN:Mi^costupg_extResArray^/i/?(extRes:y);

!!MA:C(upgLv7Mon)/(RES_GOLD)/?(goldUpgLv7:y);
!!MA:C(upgLv7Mon)/(extRes)/?(extResUpgLv7:y);
!!MA:C(lv8Mon)/(RES_GOLD)/?(goldLv8:y);
!!MA:C(lv8Mon)/(extRes)/?(extResLv8:y);

!!VR(goldDiff:y):S(goldLv8) -(goldUpgLv7);
!!VR(extResDiff:y):S(extResLv8) -(extResUpgLv7);

!!FU(Array_Push):Pi^costupg_goldDiffArray^/(goldDiff);
!!FU(Array_Push):Pi^costupg_extResDiffArray^/(extResDiff);
!!en;

!?FU(costupg_LoopAiArmies);
; Check if auto upgrading upgraded Lv 7 to Lv 8 is enabeld. Exit if negative.
!!UN:P125/?(autoUpgOn:y);
!!FU&(autoUpgOn)<>(TRUE):E;

!!OW:C?(player:y);

; Loops through all slots of all heroes of current player
!!re (hero:y)/(HERO_FIRST)/(HERO_LAST_WOG);
!!HE(hero):O?(owner:y);

!!re (slot:y)/(ARMY_SLOT_FIRST)/(ARMY_SLOT_LAST)&(player)=(owner);
    !!HE(hero):C0/(slot)/?(mon:y)/?(qty:y);

    ; Check if any slot has an upgraded Lv 7 creature
    !!re (town:y)/(TOWN_FIRST)/(TOWN_LAST_WOG);
      !!SN:Mi^costupg_upgLv7Array^/(town)/?(upgLv7Mon:y);

      !!br&(mon)=(upgLv7Mon);
    !!en;

    ; Reduce resource if upgraded Lv 7 is found
    !!if&(town)<=(TOWN_LAST_WOG);
      ; Get the gold/additional resources difference and resoruces type for upgrades
      !!SN:Mi^costupg_extResArray^/(town)/?(extRes:y);
      !!SN:Mi^costupg_goldDiffArray^/(town)/?(goldDiff:y);
      !!SN:Mi^costupg_extResDiffArray^/(town)/?(extResDiff:y);

      ; Get the total amout of gold and additional resources difference of the slot
      !!VR(goldDiffSum:y):S(qty) *(goldDiff);
      !!VR(extResDiffSum:y):S(qty) *(extResDiff);

      ; Reduce resource for the total difference of the slot, make sure everything's not negative
      !!OW:R(player)/(RES_GOLD)/d-(goldDiffSum);
      !!OW:R(player)/(RES_GOLD)/?(goldNew:y);
      !!OW&(goldNew)<0:R(player)/(RES_GOLD)/0;
      !!OW:R(player)/(extRes)/d-(extResDiffSum);
      !!OW:R(player)/(extRes)/?(extResNew:y);
      !!OW&(extResNew)<0:R(player)/(extRes)/0;
    !!en;
!!en;
!!en;

Archer30 发表于 2021-7-20 22:23:33

;lan;等一下。我发现审错题目了。写了一篇论文,然后发现我写的是“英雄带领的升级7级生物自动升级为8级”AI消耗资源的脚本。不是楼主需求的部分

水流行险 发表于 2021-7-20 22:33:15

Archer30 发表于 2021-7-20 22:23
等一下。我发现审错题目了。写了一篇论文,然后发现我写的是“英雄带领的升级7级生物自动升级为8级”A ...

没关系,有人关心就很幸福了。

我的意图很简单,就是把城镇升级脚本的电脑AI的八级兵也要受资源限制。毕竟,英雄无敌离开了资源就没有玩头了。 用资源支撑的兵种和宝物来源是最大的乐趣。

Archer30 发表于 2021-7-21 00:28:48

能不能说一下FU99869里被传入的x6和x7什么作用?(也就是FU99868的v6和43)

主楼是原本的脚本吗?我只在主楼的基础上修改就行?
页: [1] 2
查看完整版本: 【已解决】如何让电脑从7级兵升级到8级兵也要扣减资源?

捐赠