Project1

标题: 【插件MZ/MV通用】方阵范围判定 2月2日更新至1.15 [打印本页]

作者: ccss1234    时间: 2024-1-26 18:03
标题: 【插件MZ/MV通用】方阵范围判定 2月2日更新至1.15
本帖最后由 ccss1234 于 2024-2-2 16:40 编辑

方阵范围判定
MaDaMan_fangzhenzuobiaoMZ.js

功能:
1.将指定范围存入公共变量,或从中删除
2.判断指定地图事件或角色是否在范围中

插件提供如下脚本命令:

1.划定范围指令
PluginManager.fanweishezhi([x1, y1, x2, y2], 目标模式, 距离模式, 变量id)

根据当前地图中指定范围每一格的坐标生成标记,并存入公共变量,最大支持999*999地图
可设置矩形范围、基于曼哈顿距离的范围、十字范围
地图的标记会分别存放

传入参数说明
[x1,y1,x2,y2]——指定范围的左上右下两个顶点,根据指传入的目标值决定是相对坐标还是绝对坐标

目标模式——指定划定范围的参照点
传入值>0则参照点为id对应传入值的地图事件
传入值=0则以玩家为参照点
传入值<0则上一传入参数为绝对坐标

距离模式——划定范围的模式
传入值=0则划定矩形范围
传入值>0则划定范围需同时满足曼哈顿距离不大于传入值
传入值<0则划定十字范围

变量id为保存标记的公共变量id,如公共变量已保存其他内容,则会清除并转为保存标记
注意:其他方式操作该公共变量会使所有标记丢失

2.清除标记执行
PluginManager.fanweishanchu([x1, y1, x2, y2], 目标模式, 距离模式, 变量id)

删除当前地图中指定范围的标记,传入参数与设置范围相同

3.位置判定指令
PluginManager.weizhipanding(目标,变量id)
判断事件或玩家的位置标记是否在数组中,返回true或false
目标值>0为对应id的地图事件,否则为玩家角色

4.提取坐标命令
PluginManager.tiquzuobiao(变量id, 地图id ,[x, y], 顺序, 清除标记)
将保存的坐标取出,保存至两个公共变量

参数说明:
变量id——设置范围时输入的变量id
地图id——需取出的坐标所在地图,小于等于0时为当前地图
[x,y]——保存取出坐标的公共变量id
顺序——取出标记的顺序
传入值=0则取出第一个格子的坐标,及所设置范围自上第一排左起第一个的格子
传入值>0则取出数值对应顺序的格子坐标
传入值<0则随机取出坐标
清除标记——此处需传入布尔值,true为清除所提取的坐标,false不清除


可以设置的范围形状如下,可以通过配合使用设置与清除,设置其他不同的形状


[line]2[/line]
更新日志:
1.01
1.修改了一下描述文字
2.设定基于曼哈顿距离或十字范围时,如指定目标值<0(即传入坐标为绝对坐标),(x1+x2)/2、(y1+y2)/2为中心坐标,求值四舍五入

1.10
1.修改了说明内容
2.修改了一处bug
3.增加了自所设置范围内提取坐标的功能

1.11
修改了提取出的横轴坐标不正确的bug

1.12
修改了一处描述错误
位置判定的脚本命令应为PluginManager.weizhipanding,之前错误写成了PluginManager.fugaipanduan

1.13
修改了一处弱智bug

1.14
修改了十字范围函数名打错的弱智bug

1.15
修改了十字范围实际不生效的bug

本人qq605145621,有问题可以联系我

MaDaMan_fangzhenfanweipianding1.15.rar (2.77 KB, 下载次数: 21)





作者: URUUR    时间: 2024-1-26 22:18
感谢分享,今天正好需要用到




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1