【已解决】如何让电脑从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:;
********************** 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
楼主为啥不自己试一下,写一写.
你已经知道在哪里改了.
还差一些脚本,不妨试试看.遇到不懂的可以继续提问. ...
请求增加第8生物的三阶升级脚本。 好多大神 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:;
请求增加第8生物的三阶升级脚本。 不懂帮顶{:2_142:} 天底下没有免费的午餐,如果能有,早就横扫一切了。 贤知有您 发表于 2021-6-11 16:55
楼主为啥不自己试一下,写一写.
你已经知道在哪里改了.
还差一些脚本,不妨试试看.遇到不懂的可以继续提问. ...
快来救救命啊,搞不定!@Archer30 @XEricSin 没空,只写了一些(没啥用的一些)
!?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级兵 * 数量的资源
Archer30 发表于 2021-6-13 15:32
没空,只写了一些(没啥用的一些)
这段计算升级7级兵到8级兵的差异,并把值存储在i^arch_lv7to8GoldDif_ ...
哈哈哈,有希望了!;exp; 不清楚,了解一下!! 本帖最后由 水流行险 于 2021-6-15 17:20 编辑
Archer30 发表于 2021-6-13 15:32
没空,只写了一些(没啥用的一些)
这段计算升级7级兵到8级兵的差异,并把值存储在i^arch_lv7to8GoldDif_ ...
老板,我搞不定啊!;bq;ERA3连中文教程都没有! Archer30 发表于 2021-6-13 15:32
没空,只写了一些(没啥用的一些)
这段计算升级7级兵到8级兵的差异,并把值存储在i^arch_lv7to8GoldDif_ ...
帮我多加一点补全它吧?:nianjing: Archer30 发表于 2021-6-13 15:32
没空,只写了一些(没啥用的一些)
这段计算升级7级兵到8级兵的差异,并把值存储在i^arch_lv7to8GoldDif_ ...
现在新的ERA3搞定了,可以有空帮我加两行代码完成这个了吗? 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; ;lan;等一下。我发现审错题目了。写了一篇论文,然后发现我写的是“英雄带领的升级7级生物自动升级为8级”AI消耗资源的脚本。不是楼主需求的部分 Archer30 发表于 2021-7-20 22:23
等一下。我发现审错题目了。写了一篇论文,然后发现我写的是“英雄带领的升级7级生物自动升级为8级”A ...
没关系,有人关心就很幸福了。
我的意图很简单,就是把城镇升级脚本的电脑AI的八级兵也要受资源限制。毕竟,英雄无敌离开了资源就没有玩头了。 用资源支撑的兵种和宝物来源是最大的乐趣。 能不能说一下FU99869里被传入的x6和x7什么作用?(也就是FU99868的v6和43)
主楼是原本的脚本吗?我只在主楼的基础上修改就行?
页:
[1]
2