求助脚本获取地图上的坐标一直报错 Usage of underclared local variable
求助 @Archer30 ,为啥脚本获取地图上的黑市坐标一直报错 Usage of underclared local variable "x/y/z"。试过了直接用 v600/v601/v602 也是报错 Usage of underclared local variable "v600/v601/v602"ZVSE2
; Author: MoonHeart & bismark2 (optimized by MoonHeart: Merchant every 3 days, Black Market every 7 days; Ground/Underground Black Market Shared Slots)
; Engine: ERM 2.0+
; Requires: ERA 3.0+, Era Erm Framework
; 功能:
; 1. 宝物商人(Artifact Merchant)每3天刷新;
; 2. 地上黑市(z=0):所有地上黑市共享7个槽位,每7天刷新;
; 3. 地下黑市(z=1):所有地下黑市共享7个槽位,每7天刷新;
; ============== 可配置设置(按需修改) ==============
!#VRi^artmerc_on^:S(TRUE); [总开关:TRUE=启用脚本(含商人和黑市)]
!#VRi^merchant_refresh_interval^:S3; [宝物商人刷新间隔(天)→ 3天]
!#VRi^blackmarket_refresh_interval^:S7; [黑市刷新间隔(天)→ 7天(每周)]
!#VRi^ground_z^:S0; [地上地图层级(z坐标),默认0]
!#VRi^underground_z^:S1; [地下地图层级(z坐标),默认1]
; ============ 结束设置 ============
; ------------------------------ 原有:宝物随机函数(FU9995-FU9992),完全保留(确保规则一致) ------------------------------
!?FU9995;槽位4(商人/地上黑市/地下黑市共用)
!!VRx1:S171 R54;
!!VRy2:S(TRUE);
!!VRy2&x1<=6:S(FALSE); [排除低阶组合宝物]
!!VRy2&x1>=144/x1<=145:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=161/x1<=170:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=179/x1<=210:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=219/x1<=220:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=226/x1<=238:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=252/x1<=266:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=273/x1<=289:S(FALSE); [排除特定组合宝物]
!!FU9995&y2=(FALSE):P?x1;
!?FU9994;槽位5(商人/地上黑市/地下黑市共用)
!!VRx1:S239 R50;
!!VRy2:S(TRUE);
!!VRy2&x1<=6:S(FALSE); [排除低阶组合宝物]
!!VRy2&x1>=144/x1<=145:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=161/x1<=170:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=179/x1<=210:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=219/x1<=220:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=226/x1<=238:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=252/x1<=266:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=273/x1<=289:S(FALSE); [排除特定组合宝物]
!!FU9994&y2=(FALSE):P?x1;
!?FU9993;槽位6(商人/地上黑市/地下黑市共用)
!!VRx1:S125 R132;
!!VRy2:S(TRUE);
!!VRy2&x1<=6:S(FALSE); [排除低阶组合宝物]
!!VRy2&x1>=144/x1<=145:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=161/x1<=170:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=129/x1<=178:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=211/x1<=225:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=231/x1<=251:S(FALSE); [排除特定组合宝物]
!!FU9993&y2=(FALSE):P?x1;
!?FU9992;槽位7(商人/地上黑市/地下黑市共用)
!!VRx1:S129 R160;
!!VRy2:S(TRUE);
!!VRy2&x1<=6:S(FALSE); [排除低阶组合宝物]
!!VRy2&x1>=144/x1<=145:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=161/x1<=218:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=221/x1<=230:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=239/x1<=257:S(FALSE); [排除特定组合宝物]
!!VRy2&x1>=267/x1<=272:S(FALSE); [排除特定组合宝物]
!!FU9992&y2=(FALSE):P?x1;
; ------------------------------ 核心触发:每日判断,满足间隔则刷新 ------------------------------
!?FU(OnEveryDay)&i^timerOnce^/i^artmerc_on^;
!!FU(artmerc_ResetArtMerchants)&i^timerDay^ % i^merchant_refresh_interval^ == 0:P; [商人每3天刷新]
!!FU(blackmarket_ResetAll)&i^timerDay^ % i^blackmarket_refresh_interval^ == 0:P; [黑市每7天刷新]
; ------------------------------ 宝物商人刷新逻辑(无修改) ------------------------------
!?FU(artmerc_ResetArtMerchants);
!!VRy1:S7 R38; [槽位1]
!!UN:J7/0/y1;
!!VRy2:S46 R38; [槽位2]
!!UN:J7/1/y2;
!!VRy3:S85 R39; [槽位3]
!!UN:J7/2/y3;
!!FU9995:P?y4; [槽位4]
!!UN:J7/3/y4;
!!FU9994:P?y5; [槽位5]
!!UN:J7/4/y5;
!!FU9993:P?y6; [槽位6]
!!UN:J7/5/y6;
!!FU9992:P?y7; [槽位7]
!!UN:J7/6/y7;
; ------------------------------ 黑市刷新逻辑(最终修复:循环内声明变量) ------------------------------
!?FU(blackmarket_ResetAll);
; ================================== 步骤1:生成两套独立宝物(地上+地下各7个)==================================
; 地上黑市专用宝物池(所有地上黑市共享)
!!VRy1_ground:S7 R38; [地上槽位1]
!!VRy2_ground:S46 R38; [地上槽位2]
!!VRy3_ground:S85 R39; [地上槽位3]
!!FU9995:P?y4_ground; [地上槽位4(调用专属随机函数)]
!!FU9994:P?y5_ground; [地上槽位5]
!!FU9993:P?y6_ground; [地上槽位6]
!!FU9992:P?y7_ground; [地上槽位7]
; 地下黑市专用宝物池(所有地下黑市共享)
!!VRy1_under:S7 R38; [地下槽位1]
!!VRy2_under:S46 R38; [地下槽位2]
!!VRy3_under:S85 R39; [地下槽位3]
!!FU9995:P?y4_under; [地下槽位4(调用专属随机函数)]
!!FU9994:P?y5_under; [地下槽位5]
!!FU9993:P?y6_under; [地下槽位6]
!!FU9992:P?y7_under; [地下槽位7]
; ================================== 步骤2:遍历所有黑市(循环内声明变量)==================================
!!UN:U(OBJ_BLACK_MARKET)/(ANY_OBJ)/?(blackmarketCount:y);
!!FU&(blackmarketCount)=0:E; [无黑市则退出]
!!VRv2:S-1; [初始化索引,循环外仅声明一次]
!!re i/0/(blackmarketCount)/1/-1;
; 第一步:获取当前黑市坐标(v600/x、v601/y、v602/z 生效)
!!UN:U(OBJ_BLACK_MARKET)/(ANY_OBJ)/-1/2;
; 第二步:循环内声明变量(关键!紧跟坐标获取,确保v600有值)
!!VRx:Sv600;
!!VRy:Sv601;
!!VRz:Sv602;
; 第三步:使用变量(此时x/y/z已赋值,解析器识别为已声明)
; ------------------------------ 地上黑市(z=0) ------------------------------
!!IF&z==i^ground_z^;
!!PO(x)/(y)/(z):A0/y1_ground; [地上槽位1]
!!PO(x)/(y)/(z):A1/y2_ground; [地上槽位2]
!!PO(x)/(y)/(z):A2/y3_ground; [地上槽位3]
!!PO(x)/(y)/(z):A3/y4_ground; [地上槽位4]
!!PO(x)/(y)/(z):A4/y5_ground; [地上槽位5]
!!PO(x)/(y)/(z):A5/y6_ground; [地上槽位6]
!!PO(x)/(y)/(z):A6/y7_ground; [地上槽位7]
; 重置购买状态
!!PO(x)/(y)/(z):B0/0;
!!PO(x)/(y)/(z):B1/0;
!!PO(x)/(y)/(z):B2/0;
!!PO(x)/(y)/(z):B3/0;
!!PO(x)/(y)/(z):B4/0;
!!PO(x)/(y)/(z):B5/0;
!!PO(x)/(y)/(z):B6/0;
!!en;
; ------------------------------ 地下黑市(z=1) ------------------------------
!!IF&z==i^underground_z^;
!!PO(x)/(y)/(z):A0/y1_under; [地下槽位1]
!!PO(x)/(y)/(z):A1/y2_under; [地下槽位2]
!!PO(x)/(y)/(z):A2/y3_under; [地下槽位3]
!!PO(x)/(y)/(z):A3/y4_under; [地下槽位4]
!!PO(x)/(y)/(z):A4/y5_under; [地下槽位5]
!!PO(x)/(y)/(z):A5/y6_under; [地下槽位6]
!!PO(x)/(y)/(z):A6/y7_under; [地下槽位7]
; 重置购买状态
!!PO(x)/(y)/(z):B0/0;
!!PO(x)/(y)/(z):B1/0;
!!PO(x)/(y)/(z):B2/0;
!!PO(x)/(y)/(z):B3/0;
!!PO(x)/(y)/(z):B4/0;
!!PO(x)/(y)/(z):B5/0;
!!PO(x)/(y)/(z):B6/0;
!!en;
!!en;
页:
[1]

