bluem2引擎登录器官网 > 传奇学院 > 开区教程 > 三端互通,LEG/BLUE/LEGS引擎介绍

三端互通,LEG/BLUE/LEGS引擎介绍

[LEGSM2]专业版优势
---------------------------------------------------------------------------
1、完全兼容LEG0730,LEG0825引擎数据,老区数据完美过渡。
2、完全封杀老引擎遗留的问题及漏洞。
3、完全彻底免费,无隐藏网关,插件等二次消费。

[LEGSM2_20200901]更新日志
---------------------------------------------------------------------------
1、完善切割参数DELMONHP为通用型切割命令,该命令可以切割人物、英雄、怪物,可以用于固定数值切割、当前血量百分比切割、总血量百分比切割等。
DELMONHP支持3个参数,参数详解:
DELMONHP 10:第1个参数为切割单位。
DELMONHP 10 0:第2个参数为切割类型。
DELMONHP 10 0 3:第3个参数为切割对象。
第1个切割单位是根据第2个类型参数进行减血,0=切当前血量百分比,1=切固定掉血,2=切总血量百分比。第3个参数为对象,1=人物、2=英雄。3=怪物。
实例:
DELMONHP 10 0 3,切怪物当前血量的10%。
DELMONHP 1000 1 3,每次固定切怪物的1000血。
DELMONHP 10 2 3,每次切怪物总血量的10%
2、增加正常按死亡后计算刷怪版本号引擎(复古版)见压缩包 “mir200复古版引擎”文件夹
3、增加心理学刷怪(专业版)
老的刷新机制:
比如A怪物10分钟一刷,当20分钟后去打也就是说到了二波时间也不会连续出现两波。
新概念的刷新机制:
比如A怪物10分钟一刷,当20分钟后去打也就是说到了二波时间打死一波,怪物一分钟内会原地刷新。
当然如果间隔30分钟去打,也只会出现2波,然后等10分钟后再刷下一波。
如果是压着时间打 比如A怪物10分钟刷新,我每10分钟刷新打一次,这样A怪物都会间隔10分钟刷新一次,
不会出现连刷。

新概念刷怪的好处:
在玩家杀完第一次刷新的怪物后,如果过了怪物本身刷新时间,会立刻刷出第二只怪物,这样服里的玩家比如全服喊话发现
了第一只怪物死亡,大家都懂可能会立刻出现第二只,这样就可以促进玩家抢怪,然后造成玩家PK对抗,玩家只要PK,剩下你们懂的

新概念刷怪的目的:
从心理学的角度促进玩家抢怪概念提升,抢怪促进PK,PK促进冲钱

4、修正H.TAKEW无效的问题。
5、完善物品爆出限制规则,格式如下:MonDropLimitList.txt
物品名字 掉落物品总数 重置间隔(天) 上次重置时间 已掉落 掉落数量已满而未掉落数量
建议大家重新配置物品。
1、修正引擎重启导致的重置无法爆出的问题。
2、完善界面显示。
3、重置时间不会因服务器重启而导致重置。

举例一个回收脚本:
[@战神回收]
#IF
CHECKLEVELEX > 0
#ACT
;P1 是单价
;P2 是回收掉的物品总数
MOV P1 50
MOV P2 0
TAKE 战神头盔 40
INC P2 $TAKEITEMCOUNT
TAKE 战神项链 40
INC P2 $TAKEITEMCOUNT
TAKE 战神手镯 40
INC P2 $TAKEITEMCOUNT
TAKE 战神戒指 40
INC P2 $TAKEITEMCOUNT
TAKE 战神腰带 40
INC P2 $TAKEITEMCOUNT
TAKE 战神靴子 40
INC P2 $TAKEITEMCOUNT
#IF
!SMALL P2 1
#ACT
MUL P1 $STR(P2)
GAMEGOLD + <$STR(P1)>
SENDMSG 6 你当前回收了[<$STR(P1)>]颗元宝!
BREAK
6、修正物品爆出限制没有保存的问题
7、修复超级野蛮无效的问题。
8、优化M2部分性能参数。
9、定时器增加10个,编号为0..19
10、增加变量返回日期时间相关
$YEAR //年
$MONTH //月
$DAY //日
$HOUR //时
$MINUTE //分
$SECOND //秒
$MILLISECONDS //毫秒
$UNIXTIME 返回时间总秒数,可用于时间差计算。
$MAP 地图编号
$X 当前X坐标
$Y 当前Y坐标

11、更正控制器路径错误
12、野蛮时间修改,累积加速触发
13、修改HUMANHP HUMANMP 实时刷新显示。
14、修改掉落拾取间隔无效的问题,新增拾取间隔提示信息。
15、修改DELMONHP脚本有参数2,无效的问题。
16、mapmove 新增第四个参数 为 传送范围
实例:
#ACT
MAPMOVE 3 333 333 10
SENDMSG 5 你被传送到了地图3(333,333)周围10个坐标以内。
17、新增脚本命令用于修改指定NPC的显示名字SETNPCNAME
SETNPCNAME 地图名字 X坐标 Y坐标 新名字
SETNPCNAME self 新名字

#ACT
SETNPCNAME 3 333 333 买个引擎开区吧
sendmsg 5 地图3(333,333)的NPC已经被改名为:买个引擎开区吧
SETNPCNAME SELF 我叫王大锤
sendmsg 5 当前NPC被改名叫王大锤
注意:NPC名字尽量不要包含数字,否则字符串会被引擎截断。

18、MOVR 新增第四个参数,用于生成两个数字之间的随机数,兼容老的写法

新写法:
MOVR 变量名字 最小随机数界限 最大随机数界限

#ACT
MOVR P0 10 100 ;随机生成10-100之间随机数
#SAY
<$STR(P0)>

19、新增INSERTLINE用于在指定文本中插入,允许重复插入。
INSERTLINE 文本路径 插入行号 内容

#ACT
INSERTLINE ../插入测试.txt 1 充钱的都是爷
SENDMSG 5 你在“插入测试.txt”的第二行插入了“充钱的都是爷”
20、增加脚本命令POS检测一个字符串是否包含另一个字符串

POS A B ;检测A字符中是否包含B内容;
#IF
POS TEST1111 Test
#SAY
Test在TEST1111存在!

21、新增变量<$LENGTH.变量1>显示变量1的字符串长度。
用一组尖括号包起来即可。
#ACT
MOV S10 我我我哇哈哈哈哈
SENDMSG 5 <$STR(S10)>的长度为:<$LENGTH[$STR(S10)]>/<$LENGTH[社会主义好]>

22、新增一种变量嵌套的玩法,取指定角色的任意变量的值
<$HUMANINFO[指定角色名字].变量名字>

#ACT
MOV S0 张三
MOV S1 李四
SENDMSG 5 <$STR(S0)>等级:<$HUMANINFO[$STR(S0)].$LEVEL>
SENDMSG 5 <$STR(S1)>元宝:<$HUMANINFO[$STR(S1)].$GAMEGOLD>

23、增加脚本命令将数据插入指定文本的指定位置;
INsert A B C D
A: 需要插入的字符串或变量
B: 需要插入的位置
C: 需插入的数据内容
D: 插入操作后保存到的字符变量
#ACT
MOV S0 恭喜发财
INsert $STR(S0) 4 大家 S1
SENDMSG 5 结果:<$STR(S1)>
SENDMSG 5 结果:恭喜大家发财

24、增加字符串拆分命令:split,用来分割字符串
split A B C
参数A带分割的字符串
参数B用于分割字符串的字符,也就是字符串的分隔符,一般常用|,其他字符也可以,比如英文的逗号,等号等。
参数C用于保存拆分结果的第一个变量,只写第一个起始即可,引擎自动往后存储。

#ACT
MOV S0 AA|BB|CC|DD
split $STR(S0)) | S1

//以上表示把文本数据 AA|BB|CC|DD 进行分割,
分割标识是字符"|" 分割返回的字符保存在从S1开始的字符变量中!
以上分割后的结果就是,最高支持到S99
S1=AA
S2=BB
S3=CC
S4=DD

#ACT
MOV S0 WWW.LEGSM2.COM
split $STR(S0)) . S1
SENDMSG 5 <$STR(S1)>/<$STR(S2)>/<$STR(S3)>
结果:S1,S2,S3分别是WWW,LEGSM2,COM

25、更新增加脚本命令:FillText A B,将字符变量A以空格填满至B长度;
GM可以用这个填充,来对NPC界面进行美化,也就是说不管字符串多长,NPC界面均不会错位。
本脚本命令只会在原字符串后面追加空格,不会改变其原有内容。
注意,一个中文字符是2个字节。

#ACT
MOV S0 LEGSM2
FillText S0 20
MOV S1 COM
#SAY
<$STR(S0)><$STR(S1)>\

实际显示:
LEGSM2 COM
26、新增脚本命令GETVALIDSTR,作用:将字符串按照指定字符拆分,提取第一部分和剩余内容。
比如 AA|BBCCDD 按照|拆分 AA就是第一部分 BBCCDD即为剩余内容。
GETVALIDSTR A B C D
将A文本中,以B字符(只支持一个英文半角字符)为分割,获取第一段内容存入C变量,剩下内容存入D变量。

#ACT
MOV S0 WWW.LEGSM2.COM
GETVALIDSTR $STR(S0) . S1 S2
#SAY
<$STR(S1)>\
<$STR(S2)>

结果显示:
WWW
LEGSM2.COM

27、 优化封号给予流程函数
28、优化引擎叠加物品计算
29、针对某挂无限刀进行补杀
30、优化引擎同屏PK减少没必要的下发流量
31、修复祝福油控制算法更加严谨
32、优化英雄发包
33、优化刷怪减少M2的负担
34、修复精准爆率导致限制装备爆出的BUG
35、客户端内核反外挂增加程序健壮性
36、修正英雄休息状态失效问题,改变跟随路径规则,英雄流程小优化
37、解决引擎,网关下发封包顺序BUG
38、客户端修正怪物出现时,声音调节失效问题
39、修正客户端对NPC:WebBrowser命令部分网页打不开问题
40、优化客户端操作体验

[LEGSM2_20200808]更新日志
---------------------------------------------------------------------------
1、引擎野蛮冲撞面板增加释放间隔与释放者移动卡位(彻底封杀超级野蛮)
2、修正怪物视野异常的问题
3、引擎增加重名物品提示。
4、修正$H.ITEM变量部分情况下无效的问题。
5、新增刺杀与开天斩直线目标支持切割
6、修正GOTOLABEL 范围bug
7、增强怪物说话提示信息,支持使用%m显示地图名称,%X,%Y分别显示怪物的X,Y坐标。
8、新增变量<$MAPHUM[参数1]>用于获取指定地图的角色数量,参数1为地图编号,支持变量
[@aaaa]
#act
MOV S0 new0150
SENDMSG 5 我来看看盟重有几个角色<$MAPHUM[3]>
SENDMSG 5 我来看看皇宫有几个角色<$MAPHUM[$STR(S0)]>
9、新增变量<$MAPMON[参数1]>用于获取指定地图的怪物数量,参数1为地图编号,支持变量
[@aaaa]
#act
MOV S0 new0150
SENDMSG 5 我来看看盟重有几个怪物<$MAPMON[3]>
SENDMSG 5 我来看看皇宫有几个怪物<$MAPMON[$STR(S0)]>
10、新增$ITEM变量扩展参数CHANGENAME用于获取指定物品的修改后的名字,没有改过名字的返回空值。
[@AAA]
#ACT
SENDMSG 5 你的武器的改名为:<$ITEM[$USERITEM].CHANGENAME>
11、修改以下脚本命令均支持绝对路径,同一个服务器的区服可以统一存放关键数据。(绝对路径的含义就是 D:/111)
PS:磁盘IO为最慢的操作,即使是SSD相对CPU来说也是很慢,所以不要将所有数据都一股脑放进去,
导致文件很大,这样引擎操作文本会就造成卡顿,请熟知利害关系。
使用绝对路径的好处可以在同服务器跨服处理同步文本数据
ADDNAMELIST
ADDGUILDLIST
ADDACCOUNTLIST
ADDIPLIST

DELNAMELIST
DELGUILDLIST
DELACCOUNTLIST
DELIPLIST

CHECKNAMELIST
CHECKACCOUNTLIST
CHECKIPLIST
CHECKGUILDLIST

AddNameDateList
DelNameDateList
ClearNameList
CheckAccountIPList
CheckNameIPList
CheckCodeList
AddUseDateList
DelUseDateList

CHECKSTRINGLIST
ReadRandomLine
ReadRandomStr
DelCodeList
WriteLineList
DeleteLineList

ReadLine
DeleteLine
WriteLine
InsertLine
CheckNameListPostion

CheckUserDateType
CheckNameDateList

以下随便用一个示范
#IF
#ACT
MOV S15 1
MOV S16 2
MOV S17 3
MOV S13 4
ADDLINELIST d:/LEGSM2引擎稳定才是硬道理.txt 玩家:<$USERNAME>,姓名:<$STR(S15)>,支付宝:<$STR(S16)>,提现金额:<$STR(S17)>,时间:<$STR(S13)> //注意以上d:/LEGSM2引擎稳定才是硬道理.txt 就是绝对路径

12、修正CHANGEMODE失效的问题。
13、增加清空当前角色经验的脚本命令:CLEAREXP

[@清零角色经验值]
#ACT
CLEAREXP
SENDMSG 5 你已经违反游戏规则,当前等级经验值已被清零。
break

14、新增脚本命令:GoBackHome,作用与回城卷一样;

[@会员无限回城]
#IF
TRUE
#ACT
GoBackHome
SENDMSG 5 尊敬的超级PLUS会员,您已经返回安全了。

15、新增脚本命令TAKEID 用于将背包里指定序列号的物品删除
[@删除物品]
#ACT
TAKEID 123456
SENDMSG 5 序列号为123456的物品已经删除。

16、新增脚本命令用于检测背包里是否有指定序列号的物品:
CHECKITEMID 检测序列号的ID

#IF
CHECKITEMID 122311
#SAY
你的背包里有编号为:122311的物品。
#ELSESAY
你的背包里没有编号为:122311的物品。

17、新增脚本命令用于检测指定文件是否存在:CHECKTXT

[@检测指定文件是否存在]
#IF
CHECKTXT Mapinfo.txt
#SAY
Mapinfo.txt文件存在
#ELSESAY
Mapinfo.txt不存在

18、新增文件复制命令CopyFile用于进行文件复制操作,如果目标文件已存在,则会覆盖
COPYFILE 源文件 目的文件
[@零点排行榜更新]
#IF
TRUE
#ACT
COPYFILE ../MAPINFO.TXT ../AAAA.TXT
COPYFILE ../今日充值排行榜.txt ../昨日充值排行榜.txt
CLEARNAMELIST ../今日充值排行榜.txt
SENDMSG 0 今日充值活动已经结束,请今日充值冠军领奖。

;脚本的意思是零点将../今日充值排行榜.txt文件覆盖到../昨日充值排行榜.txt
只要查询../昨日充值排行榜.txt这个文件存放的是昨日的排行榜。

19、新增脚本命令RENAME 用于将文件改名,需要被改成的文件名字已经存在,则会被覆盖。
RENAME 源文件名字 目标文件名字
[@文件改名]
#IF
TRUE
#ACT
RENAME ../123.txt ../456.txt
#SAY
你将123.txt 改名为 456.txt


20、新增脚本命令MKDIR 用于创建目录
[@新建目录]
#IF
TRUE
#ACT
MKDIR ../data
SENDMSG Envir下创建目录OK。

21、新增脚本命令行QUITGROUP 用于退出当前小组。
#ACT
QUITGROUP
SENDMSG 5 你已经退出当前小组。

[LEGSM2_20200801]更新日志
---------------------------------------------------------------------------
1、修正LEG0730操作重大逻辑bug,目前其他引擎均有次bug。(太严重了的漏洞了,独家修复)
2、增加以下几个脚本命令进行兼容:注意排序从0开启
INI_READ_STRING 文件 节名 键名 S/A //从Ini的【文件-节-键】获取字符串值到S/A
INI_WRITE_STRING 文件 节名 键名 S/A/文字/变量 //写入字符串值到Ini的【文件-节-键】
INI_READ_INTEGER 文件 节名 键名 P/G/D/M/H //从Ini的【文件-节-键】获取整数值到P/G/D/M/H
INI_WRITE_INTEGER 文件 节名 键名 P/G/D/M/H/整数 //写入整数值到Ini的【文件-节-键】 //(此命令可以不用)
INI_WRITE_INTEGER_EX 文件 节名 键名 +/-/= P/G/D/M/H/整数 //按操作符写入整数值到Ini的【文件-节-键】
3、新增脚本命令DELETEINI 用于删除INI文件的指定内容,也可以删除自定义变量。
使用之前请熟知ini文件结构。
用法如下:
DELETEINI 参数A 参数B 参数C
参数A:文件路径,支持绝对与相对路径。
参数B:需要删除的节点名称,写*为所有节点。
参数C:需要删除的键名,写*为所有键名。

原定Test.ini文本为:
[张三]
充值=10
元宝=200

[李四]
充值=100
元宝=2000

[传奇]
充值=100
元宝=2000

1.删除张三的充值
DELETEINI Test.ini 张三 充值

删除后:
[张三]
元宝=200

[李四]
充值=100
元宝=2000

[传奇]
充值=100
元宝=2000

2.删除张三的所有变量
DELETEINI Test.ini 张三 *

删除后:

[李四]
充值=100
元宝=2000

[传奇]
充值=100
元宝=2000

3.删除所有人的充值变量
DELETEINI Test.ini * 充值

删除后:
[张三]
元宝=200

[李四]
元宝=2000

[传奇]
元宝=2000

4、新增INI排序脚本相关命令,用法见例子:
INI_SORT_READ_SECTION_VALUES 文件 节名 排序键或值(0=键/1=值) 排序类型(0=字符串/1=整数) 升序降序(0升序/1降序) 保存到内存的标识名 保存到文件(0/1)
INI_SORT_READ_SECTION_VALUES 最后一个参数为1,则会将排序结果保存到与文件同目录下的内存的标识名.ini

INI_SORT_SECTION_VALUES_COUNT 保存到内存的标识名 变量名字
//获取指定标识名的排序结果数量到指定变量(包含了节,在列表第一个)
如果返回数据为9,则下面的读取的数据索引就是1 ~ 8。

INI_SORT_GET_SECTION_STRING 保存到内存的标识名 节名
//获取指定标识节名的字符串“节名”到指定变量

INI_SORT_GET_IDENT_STRING 保存到内存的标识名 索引(从1开始) 变量
//获取指定标识名和指定索引的字符串“键” 到S/A

INI_SORT_GET_IDENT_VALUE_STRING 保存到内存的标识名 索引(从1开始) S/A //获取指定标识名和指定索引的字符串“键值”到S/A
INI_SORT_GET_VALUE_STRING 保存到内存的标识名 索引(从1开始) S/A //获取指定标识名和指定索引的字符串“值” 到S/A
INI_SORT_GET_VALUE_INTEGER 保存到内存的标识名 索引(从1开始) P/G/D/M/H //获取指定标识名和指定索引的整数 “值” 到P/G/D/M/H
INI_SORT_DELETE 保存到内存的标识名(All=删除所有) //删除对应内存标志名的列表信息

注意:LEGSM2的INI排序不需要SAVE与LOAD操作。
当排序不在使用时的,请使用INI_SORT_DELETE删除排序内存,否则将一直占用内存。
INI排序的索引均从1开始。

5、增加物品拾取,增加返回是否怪物掉落,掉落怪物的名字。
$PARAM(0) 返回 1 则是怪物掉落 其他返回0
$PARAM(1) 掉落的怪物名字
$PARAM(2) 物品名字
[@PickUpItem]
#IF
EQUAL $PARAM(0) 1
#ACT
SENDMSG 0 恭喜玩家%S杀死<$PARAM(1)>获得<$PARAM(2)>。

6、增强[@KillMon]标签,新增如下变量返回:

$PARAM(0) 杀死的怪物名字
$PARAM(1) 地图编号
$PARAM(2) 地图名字
$PARAM(3) 怪物等级
$PARAM(4) 怪物X坐标
$PARAM(5) 怪物Y坐标

[@KillMon]
#ACT
SENDMSG 5 怪物名字:<$PARAM(0)>
SENDMSG 5 地图编号:<$PARAM(1)>
SENDMSG 5 地图名字:<$PARAM(2)>
SENDMSG 5 怪物等级:<$PARAM(3)>
SENDMSG 5 怪物X坐标:<$PARAM(4)>
SENDMSG 5 怪物Y坐标:<$PARAM(5)>
7、引擎新增复活戒指属性设置:物品装备,特殊属性 ,复活,可用于修改复活戒指冷却CD与复活后恢复的血量百分比。
血量百分比默认是:100,为了兼容老的版本设置。
如需特殊设置,请自行修改相关设置。
8、扩展字符变量S和数字变量N
格式:S$自定义名称 N$自定义名称 <$STR(S$自定义名称)> <$STR(N$自定义名称)>
支持变量无需赋值,直接使用脚本(INC DEC MUL DIV)操作该类变量,引擎将自动创建改变量
字符型自动初始化为空,数字型初始化为0,然后进行运算。
;本功能仅为方便GM,但是建议GM不要过多的无限创建,因为创建的变量越多,程序需要占用的内存越大。
;建议使用S$1-S$500,N$1~N$500,这样好记,也好重复利用。
S$和N$变量小退消失。
[@test]
#ACT
MOV S$我的人物名称 <$USERNAME>
SENDMSG 5 <$STR(S$我的人物名称)>

[@变量初始化_创建示范]
#IF
checklevelex > 0
#ACT
MOV N$我的杀怪总数 100;赋值操作,自动创建该变量
INC N$我的当前杀怪数 1;脚本(INC DEC MUL DIV)操作引擎也会自动创建。
SENDMSG 5 <$STR(N$我的杀怪总数)>
SENDMSG 5 <$STR(N$我的当前杀怪数)>

[四则运算]
#ACT
MOV N$变量1 100
MOV N$变量2 2
INC N$变量2 $STR(N$变量1)
SENDMSG 5 加法运算:<$STR(N$变量2)>

MOV N$变量1 100
MOV N$变量2 2
DEC N$变量2 $STR(N$变量1)
SENDMSG 5 减法运算:<$STR(N$变量2)>

MOV N$变量1 100
MOV N$变量2 2
MUL N$变量2 $STR(N$变量1)
SENDMSG 5 乘法运算:<$STR(N$变量2)>

MOV N$变量1 100
MOV N$变量2 2
DIV N$变量1 $STR(N$变量2)
SENDMSG 5 除法运算:<$STR(N$变量1)>

9、新增杀死怪物触发功能脚本的[@KillMon],同时支持使用变量<$KILLMONNAME>提取杀死的怪物名字。
[@KillMon]
#ACT
SENDMSG 0 %s牛气冲天,将<$KILLMONNAME>一下子干翻在%m。
;可以设计服务器累积杀死多少只怪物或者指定怪物使用脚本掉落某个物品。
10、新增杀死玩家触发功能脚本的[@KillPlay],同时支持使用变量<$KILLPlayNAME>提取杀死的玩家的名字。
[@KillPlay]
#ACT
SENDMSG 0 %s牛气冲天,将<$KILLPlayNAME>暴菊了。
11、增加脚本命令对自定义变量进行排序,直接排序保存到指定文件。
SortVar 变量名 变量路径 排序模式(0 升序,1 降序) 保存路径 分隔符(可不写默认为|)
#IF
TRUE
#ACT
SORTVAR 元宝 ../元宝.txt 1 ../元宝排序.txt |
将../元宝.txt里面的自定义变量 元宝 进行降序排序,排序结果保存到../元宝排序.txt

使用脚本命令GetRandomText读取,拆分显示判断即可。

结果:
张三|10100
李四|3333

12、变量清理的脚本命令ClearVar 参数1 参数2
彻底摆脱变量 MOV 赋值清空的繁琐。

参数1:引擎内置变量(P、G、D、M、I、A、S、H)
参数2:清理的范围数量

示范:

[@示范清理G类变量]
#ACT
ClearVar G0 99
SENDMSG 5 所有的T类变量G0-G99都被清空!
break

[@示范清理D类变量]
#ACT
ClearVar D0 99
SENDMSG 5 你的D类变量D0-D99都被清空!
break

[@示范清理S类变量]
#ACT
ClearVar S50 10
SENDMSG 5 你的S类变量S50-S60都被清空!
break

13、增加脚本命令 GOTOLABEL 模式(0,1,2,3) 触发字段 范围(模式等于3时有效)
模式=0 小组成员触发
模式=1 行会成员触发
模式=2 当前地图的人物触发
模式=3 以自己坐标为中心指定范围人物触发
[@main]
#IF
#ACT
GOTOLABEL 0 @小组成员触发
GOTOLABEL 1 @行会成员触发
GOTOLABEL 2 @当前地图的人物触发
GOTOLABEL 3 @指定范围人物触发

[@小组成员触发]
#ACT
SENDMSG 5 你触发了提问脚本

14、解决某些特殊性情况下对多个目标进行切割的问题。
15、修正上一个版本引擎[Exception] TBaseObject::AttackDir Code:报错
16、修正部分代码逻辑错误。
17、彻底修正怪物爆率限制不清零问题。
18、新增英雄收到攻击触发功能脚本的标签[@HeroAttackEx]
19、重写切割部分函数(如遇异常请及时发给技术解决)
20、使用隐身术后再带隐身戒指无效问题
21、M2修正死亡之眼技能能打到非本地图怪物问题
22、M2修正聚灵珠不能在DB设置爆出为满经验问题
23、修正中毒状态混乱bug
24、死亡取消交易
25、客户端窗口层叠关系优化
26、客户端修正鼠标乱移动bug
27、修正完善内存池调用
28、处理引擎和网关因通讯丢包引起个别玩家登陆黑屏(测试)
29、修正掉线重新召唤的随从行走速度异常
30、优化NPC获取
31、修正技能等级变化没有刷新技能套装威力
32、修正游戏网关停止服务发生崩溃,优化性能
33、优化攻击模式检测
34、客户端暂时去掉小退/大退保护
35、客户端修正集体隐身术释放效果
36、客户端修正黄泉教主效果
37、[+] 新增拆分字符串命令:StrTok
StrTok 源字符串(同时也会保存拆分后剩余的字符串) 拆分的第一部分子串 拆分符号
示范脚本:
#IF
TRUE
#ACT
MOV S1 WWW.LEGSM2.COM
StrTok S1 S2 .
SENDMSG 5 s1=<$STR(S1)>(LEGSM2.COM)
SENDMSG 5 s2=<$STR(S2)>(WWW)
38、修复客户端摆摊不显示“使用元宝交易”
39、新增脚本命令DELETEINI 用于删除INI文件的指定内容,也可以删除自定义变量。
使用之前请熟知ini文件结构。
用法如下:
DELETEINI 参数A 参数B 参数C
参数A:文件路径,支持绝对与相对路径。
参数B:需要删除的节点名称,写*为所有节点。
参数C:需要删除的键名,写*为所有键名。

原定Test.ini文本为:
[张三]
充值=10
元宝=200

[李四]
充值=100
元宝=2000

[传奇]
充值=100
元宝=2000

1、删除张三的充值
DELETEINI Test.ini 张三 充值

删除后:
[张三]
元宝=200

[李四]
充值=100
元宝=2000

[传奇]
充值=100
元宝=2000

2、删除张三的所有变量
DELETEINI Test.ini 张三 *

删除后:

[李四]
充值=100
元宝=2000

[传奇]
充值=100
元宝=2000

3、删除所有人的充值变量
DELETEINI Test.ini * 充值

删除后:
[张三]
元宝=200

[李四]
元宝=2000

[传奇]
元宝=2000

[LEGSM2_20200719]更新日志
---------------------------------------------------------------------------
1、修正丢金币方式来刷金币的漏洞(目前LEG0730,0825等一切LEG老引擎均存在此漏洞,金币服必须更换此版本引擎)
2、增加RUNGATE超级反加速配置模板,无视任意加速外挂
3、优化登录器彻底兼容WIN10,无需右键管理员模式运行否则NPC字体花的问题
4、优化登录器内核内挂隐藏翅膀无效的BUG
5、优化登录器内核的性能,使用15年前的奔腾处理器都已经相当流畅
6、新增组队触发
创建小组触发功能脚本的[@CreateGroup]
加入小组触发功能脚本的[@JoinGroup]
离开小组触发功能脚本的[@ExitGroup]
7、新增变量<$GIVEITEM>用于获取当前GIve和GIVEEX脚本给予物品的makeindex序号。
8、新增变量<$H.GIVEITEM>用于获取英雄当前GIve和GIVEEX脚本给予物品的makeindex序号。
9、新增变量<$PICKUPITEM>用于获取当前拾取物品的makeindex序号。
10、新增变量<$H.PICKUPITEM>用于获取英雄拾取物品的makeindex序号。
11、新增脚本命令:UPGRADEUSERITEM 用于对物品的属性位进行调整,属性位进行调整(装备属性转移,捡取有惊喜等活动可以随便用此命令开发)
UPGRADEUSERITEM 参数1 参数2 参数3 参数4
参数1 为物品的身上的穿戴位置比如0是衣服,1是武器,也可以是物品的makeindex 比如$GIVEITEM $PICKUPITEM等变量返回的物品makeindex
参数2 极品属性位 取值范围0~30 目前只开放0~15 , 15~30 可自行尝试,具体代表含义搜索引擎说明书物品极品属性详解
参数3 操作费 + - =
参数4 数值

[@测试]
#ACT
UPGRADEUSERITEM 1 0 + 1
SENDMSG 5 你给你佩戴的武器增加了一点极品攻击属性。

[@直接使用makeindex调整物品]
#ACT
GIVE 屠龙 1
UPGRADEUSERITEM $GIVEITEM 0 + 5
SENDMSG 5 你获得了一把极品屠龙。
12、新增变量<$ITEM[参数1].参数2>用于获取物品的极品属性与DB的相关属性
参数1:物品的makeindex 序列号 ,支持变量,可直接写 $GIVEITEM $PICKUPITEM $USERITEM 等变量
参数2:极品属性位直接写属性位即可,取值范围0~30,也可以写物品DB数据库的相关字段的值,即提取这个物品的DB数据库的值。
目前支持字段如下(其他陆续增加):
'IDX'
'NAME'
'Stdmode'
'Shape'
'Weight'
'AniCount'
'Source'
'Reserved'
'Looks'
'DuraMax'
'AC'
'AC2'
'DC'
'DC2'
'SC'
'SC2'
'MC'
'MC2'
'MAC'
'MAC2'
'Need'
'NeedLevel'
'Price'

[@TEST]
#ACT
GIVE 屠龙 1
SENDMSG 5 <$GIVEITEM>
UPGRADEUSERITEM $GIVEITEM 0 + 5
SENDMSG 5 <$ITEM[$GIVEITEM].NAME>的极品攻击属性点数:<$ITEM[$GIVEITEM].0>

[@PickUpItem]
#ACT
SENDMSG 5 你拾取了:<$ITEM[$GIVEITEM].NAME>

注意:物品的序列号开放,代表角色的任何背包和身上的穿戴物品皆可随时进行调整,自由组合使用。
部分属性位比如装备的持久是有倍数的,返回的值实际的数值,而非计算后的值
比如武器,DB持久设置10000游戏里是10点,比如持久10的裁决,提取的当前持久就是10000。
典型应用:
1、直接给予的时候,直接进行属性调整。
2、直接调整身上的装备,无需很繁琐的脚本。
3、通过获取物品相关属性可以做极品转移等。
各位举一反三吧。
13、NPC命令:DropItemMap 增加参数7,为物品可拾取的倒计时秒数,0立即可以拾取
14、新增脚本命令MobNpc A B C D x y E,临时生成一个NPC,并且加载脚本,指定时间后自动消失;
参数说明: A NPC名称
B 脚本文件名
C 外形(Appr)
D 地图
x X坐标
y Y坐标
E 延迟时间(秒)

例子:
mov s0 老兵/盟重老兵
MobNpc 异界之门 <$STR(S0)> 0 <$MAP> <$X> <$Y> 60
//这里的文件名字需要带地图编号。

15、新增变量<$USERITEM[X]> 与 <$H.USERITEM[X]> 分别获取主体和英雄身上的装备的指纹序号,没有佩戴装备返回0。
X 取值 0-16 代表 身上的16个装备的位置,0是 衣服,1为武器,其他查说明书。
X 支持直接写数字,也支持持写变量。

[@TakeOn1]
#ACT
SENDMSG 5 [@TakeOn1]<$WEAPON>
MOV S0 1
SENDMSG 5 物品系列号:<$USERITEM[1]>/<$USERITEM[$STR(S0)]>
MOV S1 ASDSADASDAS
SENDMSG 5 <$LENGTH[$STR(S1)]>/<$LENGTH[123456]>

[@HEROTakeOn1]
#ACT
H.SENDMSG 5 [@TakeOn1]<$H.WEAPON>
H.MOV S0 1
H.SENDMSG 5 英雄物品系列号:<$H.STR(S0)>/<$H.USERITEM[1]>/<$H.USERITEM[$H.STR(S0)]>
16、修改聚灵珠使用等级支持范围限制,即珠子必须在指定的等级限定之间使用(首先在引擎有开关控制,默认不开启)
如果不使用等级限定请讲聚灵珠物品的NEEDLEVEL与STOCK字段设置为0。
设置NEEDLEVEL 为聚灵珠的最低使用等级,设置40则等级达到40级才可以使用。
设置STOCK字段 则为聚灵珠的最高使用等级,设置50,则高于50级不能在使用该珠子。
比如DB 聚灵珠(小) NEEDLEVEL设置为50 STOCK 设置为55 则聚灵珠(小)只能等级在50 - 55的角色使用(包含55级)。
GM 可以灵活添加各种等级的珠子来吸金。

17、增加一个脚本命令 PKZONE 用于在自己周围制造一个持续伤害区域,可以当做区域活动之用;
PKZONE 范围 特效类型 持续时间 伤害
范围:0~3
特效类型:4光柱,5为火墙
持续时间:秒
伤害:伤害

[@制造一个伤害]
#IF
TRUE
#ACT
PKZONE 3 4 10 100
SENDMSG 0 %s触发神威阵法,处于神威阵中的人岌岌可危。
18、ChangeExp/ChangeIPExp 第三参数不为空时,聚灵珠不会吸收经验
例如:
#IF
#ACT
CHANGEEXP + 5000 1
#SAY
你当前的经验增加5000,聚灵珠不会获取经验

#IF
#ACT
CHANGEEXP + 5000
#SAY
你当前的经验增加5000,聚灵珠额外获取经验
19、新增变量<$TAKEITEMCOUNT>返回主体TAKE 脚本实际收取的物品数量
20、新增变量<$H.TAKEITEMCOUNT>返回英雄TAKE 脚本实际收取的物品数量
#ACT
TAKE 裁决之杖 40
SENDMSG 5 实际删除了<$TAKEITEMCOUNT>

这样做回收就简单了

[@回收裁决之杖]
#ACT
MOV P0 10;设置裁决单价
TAKE 裁决之杖 40
MUL P0 $TAKEITEMCOUNT
GAMEGOLD + $STR(P0)
SENDSMG 5 你回收掉了<$TAKEITEMCOUNT>裁决之杖,获得了<$STR(P0)>个元宝。
21、新增变量返回主体背包里指定物品的数量<$ITEMCOUNT[参数1]> 参数1:物品名字,支持变量
新增变量返回英雄背包里指定物品的数量<$H.ITEMCOUNT[参数1]> 参数1:物品名字,支持变量
#ACT
GIVE 裁决之杖 1
MOV S1 裁决之杖
SENDMSG 5 <$ITEMCOUNT[裁决之杖]>/<$ITEMCOUNT[$STR(S1)]>
22、引擎,选项,功能,技能面板首页新增月灵与分身术设置,可以设置与主人进攻同一目标。

23、引擎新增佩戴复活戒指复活后触发功能脚本的[@Revival]标签,英雄触发[@HeroRevival]标签

24、修复开天斩,刺杀无法触发切割脚本的问题。
25、引擎,怪物爆率控制新增选项,用于设置爆率清零单位是否是小时,不设置,默认还是天。
26、有几率导致物品不显示问题
27、因神兽变身有几率导致崩溃bug
28、修复上个版本行会站双方名字颜色问题
29、镖车名字显示问题
30、修正刀刀刺杀非刺杀位也有忽视防御效果bug
31、屏蔽掉护体神盾的释放动作,彻底防止破盾加速外挂
32、修正魔龙教主/火龙的特殊攻击可以对死亡角色有效bug
33、修改物理攻击打不到城墙bug
34、修正装备单独爆率设置读取不到问题
35、优化角色DB存取逻辑,释放主线程压力
36、修复极品属性多出1点bug,对此项要求严格的请重新调节极品属性的最高点数
37、隐身技能可能出现时间计算错误
38、完美修复人物变黑问题
39、提高大/小火球,雷电术,灵魂火符等魔法对奔跑对象的击中率
40、修正上个版本怪物会有几率变人形的bug
41、重叠物品操作优化
42、修复多机负载过图后法师召唤下属属性不对应bug
43、修复多机负载过图后蓝量异常bug
44、修复多机负载有概率小退黑屏bug (复活地图所属的引擎与死亡地图所属引擎不同)
45、修复多机擎负载出生点新角色登陆黑屏bug

[LEGSM2_20200713]更新日志
---------------------------------------------------------------------------
1、大量优化登录器性能,智能进行360杀软误报处理
2、大量优化M2性能,更加节约CPU,内存效率
3、完善引擎智能AI引擎细节
4、完善引擎智能怪物
5、QM增加[@OnInit],执行时机优先于[@Login],用于初始化人物私有变量
6、新增本体技能触发功能脚本的[@MagSelfFuncX] X为技能ID。
;英雄雷电术触发示范
[@MagSelfFunc11]
#IF
H.CHECKLEVELEX > 0
#ACT
H.DELMONHP 20

7、新增英雄技能触发功能脚本的[@HeroMagSelfFuncX] X为技能ID。
;英雄雷电术触发示范
[@HeroMagSelfFunc11]
#IF
H.CHECKLEVELEX > 0
#ACT
H.DELMONHP 20
H.SENDMSG 5 HERO<$H.USERNAME>

8、新增合击技能支持触发技能触发功能脚本
本体触发[@MagSelfFuncX]
英雄触发[@HeroMagSelfFuncX]
被攻击目标为角色则触发[@MagTagFuncX]
最后一个X均为合击技能的ID
比如破魂斩为60
本体触发[@MagSelfFunc60]
英雄触发[@HeroMagSelfFunc60]
被攻击目标为角色则触发[@MagTagFunc60]

9、新增主体拾取物品触发功能脚本的[@PickUpItem]标签
[@PickUpItem]
#ACT
SENDMSG 5 你拾取的物品序列号是:<$PICKUPITEM>;
10、英雄拾取物品触发功能脚本的[@HeroPickUpItem]标签
[@HeroPickUpItem]
#ACT
SENDMSG 5 英雄拾取的物品序列号是:<$H.PICKUPITEM>;
11、增加字符串替换命令
StringReplace S1 <$STR(S2)> <$STR(S3)>
将S1中的S2字符串全部替换为S3,如果S3为空则代表在S1中删除S2

12、新增脚本检测true ,用于写到不需要检测的条件里面。
比如checklevelex > 0 可以直接用TRUE 替换
写起来更加简便。

[@Test_True]
#IF
TRUE
#SAY
我不需要条件,直接执行

13、增加一个脚本命令HIGHLEVELEXP 用于实现高等级杀怪经验不变,复古版本吸金功能之一。
HIGHLEVELEXP 操作符[+-=] 持续时间(秒)
新增变量<$HIGHLEVELEXP> 用于返回剩余的时间(秒)

#ACT
HIGHLEVELEXP = 3600
SENDMSG 5 你开启了一个小时的真视秘籍时间。

14、增加一个脚本命令用于检测指定地图是否有指定怪物,如果存在,返回真并返回第一个满足条件的怪物的坐标,否则返回假
CHECKMON 怪物名字 地图名字 返回变量1 返回变量2

#IF
CHECKMON 白野猪 3 S1 S2
#SAY
盟重有个白野猪在<$STR(S1)>:<$STR(S2)>
#ELSESAY
盟重没有白野猪存在。

可以使用此命令付费查询BOSS指定坐标。

15、增加一个脚本命令用于检测指定地图是否有指定怪物,如果存在,返回真并返回第一个满足条件的怪物的坐标,否则返回假
CHECKMON 怪物名字 地图名字 返回变量1 返回变量2

#IF
CHECKMON 白野猪 3 S1 S2
#SAY
盟重有个白野猪在<$STR(S1)>:<$STR(S2)>
#ELSESAY
盟重没有白野猪存在。

可以使用此命令付费查询BOSS指定坐标。


16、新增全服信息过滤脚本:FILTERGLOBALMSG,
[@开启消息过滤]
#ACT
FILTERGLOBALMSG 1
SENDMSG 5 你已经开启全服消息进行过滤。

[@关闭消息过滤]
#ACT
FILTERGLOBALMSG 0
SENDMSG 5 你已经关闭全服消息进行过滤。

17、增加<$POWERRATE> 当前显示攻击力倍数
增加<$POWERRATETIME> 当前攻击力倍数剩余时间
18、引擎,内核数据,全局变量可以双击修改全局G类与全局S类变量的值。

19、新增摆摊区域限制,用于严格限制玩家只能在指定地图的指定区域摆摊,这样可以聚拢摆摊人气。
Envir下出生点与安全区配置文件,新增第九个参数配置,用于配置这个区域是否允许摆摊。
;地图号 座标X 座标Y 禁止说话 大小范围 光环类型 PKZONE PKFIRE 允许摆摊(默认不允许)
设置顺序如下:
1、允许摆摊的区域的所在地图添加允许摆摊的地图参数“STALL”。
2、打开StartPoint.txt,修改现有安全区或者新增摆摊区域,最后允许摆摊的参数设置为1。
3、打开引擎,选项,游戏参数,坐标范围,摆摊限制,勾选即可。


比如只允许盟重安全区摆摊;
mapinfo.txt
[3 盟重省] KILLFUNC(1) DAY STALL
StartPoint.txt
3 330 330 0 10 3 0 0 1
20、修正关闭M2加速功能不完善问题
21、优化人物流程
22、修正英雄组合速度难调节问题
23、修正怪物过于灵敏问题并完善怪物AI
24、改善英雄和怪物的运行效率
25、修正行会时,攻击模式计算缓慢问题
26、改善怪物流程稳定性
27、修正周围有人取消摆摊失败bug
28、修正账号在其他地方登录时,偶尔不提示信息bug
29、修正有时怪物不显示名字
30、修正偶尔出现个别怪物报错
31、修正发现死亡人形怪/人物时外观不正确显示bug
32、修正引擎,三个网关刚开启时遇到接入连接的出错Bug
33、改善数据读取和保存线程逻辑
34、改善英雄对目标的锁定
35、改善法师/道士职业英雄
36、改善英雄回到主人身边的反映
37、改善丢包被T
38、有几率导致物品不显示问题
39、因神兽变身有几率导致崩溃bug
40、合击击中效果补全和一些效果修正,需要配套M2更新
41、客户端因为退出慢,导致人物有可能延迟下线问题
42、修正DBS未开启情况下,重复连接角色网关问题
43、修正上个版本因修正刀刀刺杀非刺杀位也有忽视防御效果导致战士技能威力异常问题
44、M2 细化英雄处理粒度;改进英雄组合速度,开启可以细调英雄各种组合动作之间的间隔,让英雄的动作看起来更合理、更像玩家的动作;
45、不开启,则英雄各种组合动作有点不均匀,看起来像使用了加速。
46、修正人物打出的龙影剑法/双龙斩可能他人看不到效果bug
47、M2/Rungate 增强稳定性,需要配套使用
48、M2修因角色数据个别错误可能导致登录黑屏问题
49、DBS修正可能死锁问题
50、M2优化角色数据的存取逻辑
51、DBS允许将缓存数量设置为0
52、修正上个版本可能存在跑位空气墙问题
53、游戏网关接收缓冲区大小自适应,增加发送缓存以提高处理流量能力(内存相对上个版本会多一些)
54、游戏网关修正关闭程序时的一个bug
55、M2/DBS改写人物数据存取逻辑,大幅度提高存取数据的效率
56、修正很小的可能造成个别玩家数据存储错误bug,需要配套更新M2和DBServer
57、修正挂机假人会攻击人物下线时刻的英雄
58、修正一个怪物攻击力计算不准确问题
59、修正部分几率计算溢出问题
60、优化地图对象转移处理流程
61、优化地图单元处理流程,少占用点内存
62、普通药品回血速率规范化
63、注意:没有鉴定次数的物品不会有实际属性
64、封交易重叠物品的漏洞
65、英雄锁定范围检测更严格
66、修正174 129 4116 怪物普通攻击无效bug
67、修正一个严重bug,可能导致出现变态装备
68、去掉实验性封包优化模块,略较少内存占用
69、客户端新功能修正完善
70、客户端消息处理优化
71、客户端渲染优化
72、优化性能,负载能力应该提升不少
73、修正NPC获取
74、修正挖肉卡顿

 

[LEGSM2_20200702]更新日志
---------------------------------------------------------------------------
重磅完善超细腻化爆率系统★★★★★
1、个人多倍爆率倍数
新增KILLMONBURSTRATE用于设置指定角色的爆率倍数与时间,用法与设置攻击倍数相同
KILLMONBURSTRATE 爆率倍数 持续时间
爆率倍数为100的基数,本数字/100为实际倍率,持续时间单位秒
新增变量返回爆率倍数:<$KILLMONBURSTRATE>,返回当前爆率持续时间:<$KILLMONBURSTRATETIME>
设置为0,则当前角色打怪不爆出装备。
时间与倍数小退不保存,请GM自行使用变量保存。
#IF
CHECKGAMEGOLD > 1000
#ACT
KILLMONBURSTRATE 200 360000
SENDMSG 5 个人爆率:<$KILLMONBURSTRATE>,持续时间:<$KILLMONBURSTRATETIME>秒
#ELSEACT
KILLMONBURSTRATE 0 360000
SENDMSG 5 请先充值1000元宝,否则无任何打怪不出装备。
2、全局爆率倍数
新增脚本命令MONBURSTRATE用于设置服务器全局爆率。
MONBURSTRATE 爆率倍数(本数字/100为实际倍率) 设置110 为1.1倍,设置为0则服务器不爆出任何东西。
新增变量<$MONBURSTRATE>显示当前服务器全局爆率倍数
#ACT
MONBURSTRATE 200
SENDMSG 5 庆祝本服充值收入过万,全服开启双倍爆率。
SENDMSG 5 全局爆率:<$MONBURSTRATE>
新增地图参数BURSTRATE(爆率倍数(本数字/100为实际倍率)) ,用于设置当前地图的多倍爆率倍数。
[3 新盟重] BURSTRATE(150) 当前地图为1.5倍爆率,本参数设置为0则当前地图不爆出任何物品。
3、地图参数爆率倍数
新增地图参数用于修改指定地图的爆率倍数:MAPBURSTRATE 地图编号 爆率倍数(本数字/100为实际倍率)
设置为0则该地图不爆出任何东西。
新增变量<$MAPBURSTRATE(3)>显示指定地图的爆率倍数。
#ACT
MAPBURSTRATE 3 600
SENDMSG 5 庆开服三天了,盟重开启三倍爆率。
SENDMSG 5 盟重地图爆率:<$MAPBURSTRATE(3)>
注:爆率有真实效果,请设置前仔细测试爆率,以免造成不必要的损失。
4、增加爆率组概念,支持多个物品使用同一个爆率,物品名字用英文|分割。
格式:1/10 物品1|物品2|物品3
系统会随机抽取一个进行爆出。
如果当前爆率组不想参与PK目标爆率计算,则前面加*即可
比如:
1/10 *物品1|物品2|物品3
特别注意:以上这个*只需在第一个装备前加一个就可以了,代表的是这一排就是原始爆率(也就是说不参与任何全局,地图,个人多倍爆率运算),经常用到特殊装备控制的地方
5、扩展临时属性命令,新增如下属性(角色的属性完全脚本可控):
为防止数据溢出,暂不开放负值操作
属性不同,点数的意义不同,具体自行测试。
AbilityAdd 属性(0~26) 点数(0~65535) 时间(秒)
H.AbilityAdd 属性(0~26) 点数(0~65535) 时间(秒)


新增如下属性(编号为7~26):
0 HP (支持21亿)
1 MP (支持21亿)
2 防御
3 魔御
4 攻击
5 魔法
6 道术
7 腕力
8 负重
9 背包重量
10 准确
11 敏捷
12 魔法躲避
13 毒物躲避
14 中毒恢复
15 生命恢复
16 魔法恢复
17 暴击
18 目标爆率
19 防爆
20 忽视
21 增伤
22 反射
23 物减
24 魔减
25 吸血
26 幸运
27 GM隐身
28 GM无敌
29 禁止使用物品
30 禁止丢弃
31 禁止移动
32 禁止跑步
33 禁止物理攻击
34 禁止魔法攻击
35 稳如泰山(不可被野蛮推动)
36 禁止召唤英雄
37 禁止修改攻击模式
38 禁止使用仓库
39 麻痹模式
40 魔道麻痹
41 复活
42 护身
43 传送
44 探测
45 隐身
46 破麻
47 防毒
48 破复活
49 破护身
50 背包不掉
51 装备不掉
52 攻击加速(10点以下为减速度,10点以上为加速度,与武器一致)

备注:12~16每一点代表10%,10点即为100%。
20~24属性为百分比,最大为100。
27~51属性为是否开启 开启写1,不开启写0 持续时间

[@超级负载]
#IF
ISADMIN
#ACT
AbilityAdd 7 1000 60000
AbilityAdd 8 1000 60000
AbilityAdd 9 1000 60000
SENDMSG 5 尊敬的管理,您的腕力,负载,背包负重分别增加了1000点。


[@调整其他属性]
#IF
TRUE
#ACT
AbilityAdd 10 10 60000
AbilityAdd 11 10 60000
AbilityAdd 12 10 60000
AbilityAdd 13 2 60000
AbilityAdd 14 3 60000
AbilityAdd 15 4 60000
AbilityAdd 16 4 60000
SENDMSG 5 属性已加成。


新增变量<$ABILITYADDPOINT[X]>获取本体指定属性附加的点数
新增变量<$ABILITYADDTIME[X]>获取本体指定属性附加的剩余时间(单位秒)
新增变量<$H.ABILITYADDPOINT[X]>获取英雄指定属性附加的点数
新增变量<$H.ABILITYADDTIME[X]>获取英雄指定属性附加的剩余时间
X的取值范围:0~26


[@示范]
#IF
TRUE
#ACT
SENDMSG 5 你的魔法躲避点数<$ABILITYADDPOINT[16]>,持续时间<$ABILITYADDTIME[16]>秒

[@测试隐身]
#IF
TRUE
#ACT
AbilityAdd 27 1 30
SENDMSG 5 你获得30秒的隐身特权,请放心使用!

AbilityAdd 28 1 10
SENDMSG 5 你获得10秒的无敌特权,请放心使用!

6、新增英雄攻击触发[@HEROATTACK]标签
7、魔法触发[@MagSelfFuncX] 其中的X代表技能编号

8、修改HUMANHP HUMANMP 实时刷新显示。(完善老LEG无法实现秒回血脚本)
9、引擎级别封超级野蛮(野蛮冲撞技能标签页设置)

10、修改切割命令,支持对角色进行切割。(角色,英雄,怪物的RACE值请参考以下2条命令,随意获取)
11、新增变量返回自己的<$RACE>值,主体返回1,英雄为2.
12、新增变量<$TARGETRACE>返回攻击目标的的RACE值,主体返回1,英雄为2,怪物返回自己的race值
13、修正英雄取反操作返回不正确。

14、怪物数据库新增一个可选扩展字段用于设置怪物的视野范围:字段名字ViewRange,不添加或者字段值为空,则不设置。扩展字段类型(INTEGER)字段长度32
这样就可以设置不同的怪物有不同的视野范围。
比如BOSS视野,极品视野,普通怪物视野不同。

15、新增脚本命令:DROPITEMMAPEX 地图号(支持SELF) X Y 范围 物品名称 数量 (前六个与DROPITEMMAP一致,只有最后一个参数不一样)
最后一个参数为拾取方式: (默认为0)
0 所有人可直接拾取
1 自己可以直接拾取,别人需要等待
2 所有人都需要等待。
16、修改DropItemMapEx与DropItemMap叠加物品掉落自动叠加。

[@叠加掉落测试]
#IF
TRUE
#ACT
DropItemMapEx 3 333 333 3 金牛令 100000 2
DropItemMap 3 340 340 3 金牛令 10000
17、修复$H.ABILITYADDPOINT0 $H.ABILITYADDPOINT1 显示错误的问题
18、多级脚本P,支持英雄触发。
19、修正CHECKGUILDLIST路径异常问题。

 

20、新增角色砍怪触发功能脚本的[@ATTACK]标签,如被攻击目标是角色则被攻击角色触发[@ATTACKEX]标签
21、新增复活时间保存到dbs。
22、解决上个版本$TARGETMONNAME名字显示为空的问题。
23、解决某些特殊性情况下对多个目标进行切割的问题。

24、优化地图对象流程,增加地图对象内存管理
25、网关通讯采用多线程IOCP模式,提高数据吞吐量
26、改进地图对象架构,提高性能,减少内存碎片
27、增加地图对象管理,减少内存开支
28、修正火龙之心bug
29、修正属下的反应比较慢的问题
30、包裹界面增加刷新包裹按钮
31、增加安全区右上角标识
32、修正按住施毒术会导致毒药消失假象问题
33、暂时去掉部分分线程,保证稳定性
34、更改英雄攻击模式的限制时间调整为200ms
35、修复神兽有大量目标仍边攻击边回头走问题(包括其他怪物属下)
36、优化NPC执行流程
37、优化修正引擎接收封包处理封包的bug,大幅度提升引擎对客户端封包处理效率
38、减少英雄飞到主人身边的检测距离
39、加快英雄远程锁定目标的攻击反映
40、改善数据读取和保存线程逻辑
41、修正GM命令调整元宝不刷新BUG
42、修正英雄有几率在安全区攻击bug
43、优化聊天处理
44、优化消息列队和发送
45、英雄得到其他经验可以设置为0%
46、法师英雄现在修改为跟随状态也可以持续开盾

[LEGSM2_20200626]更新日志
---------------------------------------------------------------------------
1、修复LEG0730,0801一个重要的刷金币漏洞及导致M2崩溃的漏洞【特别重要
2、增加大NPC对话框调用(后期会支持自定义NPC对话框)
例:
(@bigmain)
[@Main]
3、新增摆摊名字关键字检测功能。设置GuildRankNameFilter.txt即可。
4、修正上个版本引擎的一处循环异常。
5、Envir下新增一个怪物列表:ScatterMonster.txt 列表里的怪物爆出物品可自由捡取。
可以做类似页游世界BOSS之类的活动,比如世界BOSS爆出东西来,大家可以自由拾取,看人品。
6、新增地图参数 DELAY(时间单位秒) 用于设置在当前地图的计时器功能,到达时间触发功能脚本的相关标签。
本体触发[@DELAY_X] x为当前地图编号
举例:
[D515 祖玛教主之家] DELAY(5)
本体间隔5秒钟触发一次功能脚本的[@DELAY_D515]
[D717 石墓七层] DELAY(60)
本体间隔5秒钟触发一次功能脚本的[@DELAY_D717]
单个地图的间隔触发可以不再需要定时器了,定时器可以另作它用了。
7、新增伤害吸收设置,用于吸收收到的伤害
可以使用脚本命令SetSuckDamage设置主体吸收的伤害,H.SetSuckDamage 设置英雄吸收的伤害
SetSuckDamage 参数A 参数B 参数C
参数A:吸收伤害的总数值(最大21亿)
参数B:吸收伤害比例的千分比(1~1000)
参数C:设置吸收伤害的成功率(1~100)

[@设置主体伤害吸收]
#ACT
SetSuckDamage 1000000 500 80
SENDMSG 5 你成功设置主体吸收伤害,吸收总伤害100W,吸收伤害比例50%,吸收伤害成功率80%。

[@设置英雄伤害吸收]
#ACT
H.SetSuckDamage 100000 50 90
SENDMSG 5 你成功设置英雄吸收伤害,吸收总伤害10W,吸收伤害比例5%,吸收伤害成功率90%。

新增变量可以显示伤害吸收相关变量:

<$SUCKDAMAGE> //显示吸收伤总数
<$SUCKPERMILLAGE> //显示吸收千分比
<$SUCKRATE> //显示伤害吸收概率
<$H.SUCKDAMAGE> //显示英雄吸收伤总数
<$H.SUCKPERMILLAGE> //显示英雄吸收千分比
<$H.SUCKRATE> //显示英雄伤害吸收概率

备注:伤害吸收小退不会保存,请使用自定义变量就进行保存。
8、优化英雄逻辑,防止强锁
9、新增爆率文件引入用法,可以和以前的爆率混搭使用,支持多个文件被同时调用,极大方便GM编辑爆率。
相同的装备写三组爆率,普通圣战.txt 中级圣战.txt 高级圣战.txt
不同级别的怪物CALL 不同爆率的文件即可,比如所有BOSS CALL 的高级圣战.txt
要提高圣战的爆率,只需要修改高级圣战.txt一个文本即可。方便快捷。
比如在白野猪.txt 写入如下内容:

#CALL [..\MonItems\药品爆率.txt]
#CALL [..\MonItems\衣服爆率.txt]
#CALL [..\MonItems\40级新衣服.txt]
#CALL [..\MonItems\裁决级武器.txt]

这样同一组爆率,设置三种爆率,直接#CALL文件即可,注意:当前CALL禁止多级CALL防止无限加载,
同一个文件支持CALL多个文件,一个文件也可以被多个文件CALL,但是不处理被CALL的文件里CALL的其他文件。

10、有几率导致物品不显示问题
11、因神兽变身有几率导致崩溃bug
12、英雄被刺杀会回击
13、部分地图随机飞有几率进入黑点导致动不了问题
14、修正微端因拉取大文件丢包问题
15、优化网络接发能力,优化性能
16、提高后台FPS,改善体验
17、修正连续多次弹出消息窗口bug
18、行会成员超过一定数量编辑不了封号问题
19、修正微端服务器有几率因包未发送完连接被掉导致崩溃bug
20、修正客户端显示+HP/MP与实际不符问题
21、修复一个严重bug,特定情况下会消耗大量的流量和CPU
22、多线程处理人物/英雄/怪物/通讯等流程,流畅度是否提升,需测试!
23、修正行会时,攻击模式计算缓慢问题
24、登陆网关和客户端的登陆流程修改
25、修正关闭M2加速功能不完善问题
26、优化人物流程
27、修正英雄组合速度难调节问题
28、修正怪物过于灵敏问题并完善怪物灵敏度调节
29、修正镖车可能引起的内存错误
30、修正偶尔出现怪物假象

[LEGSM2_20200623]更新日志
---------------------------------------------------------------------------
1、修复多机负载过图有几率造成随从丢失bug
2、修正客户端频繁向微端服务器发送请求bug
3、优化全局变量相关应用部分
4、修正周围有人取消摆摊失败bug
5、修正账号在其他地方登录时,偶尔不提示信息bug
6、修正有时怪物不显示名字
7、修正偶尔出现个别怪物报错
8、修正发现死亡人形怪/人物时外观不正确显示bug
9、优化部分封包,减少引擎下发流量
10、优化封包模块,性能有比较大的提升(影响所有服务器程序)
11、改进新刷怪模式,刷怪速度几乎等同老模式,性能更好刷怪更合理!同时增加回老的刷怪模式提供选择
12、改善怪物流程稳定性
13、修正挖动物获取到的物品看不见bug
14、性能设置增加怪物灵活度兼容开关,开启后,怪物灵活度等同于以前版本引擎的。
15、优化聊天处理代码
16、修正NPC下发脚本小bug
17、修正挖肉品质bug,修正肉品价格错误
18、修正丢物品到地面偶尔看不到bug(客户端)
19、修复地面装备问题
20、修正引用时间函数的错误运算
21、修正偶尔出现GM隐身被看见bug
22、客户端修正部分素材看不到bug(客户端)
23、修复一处可导致引擎自动关闭的溢出漏洞
24、修复客户端飘血与实际掉血量不相等BUG
25、大量减少引擎下发流量
26、修正快速使用物品可能导致内存溢出bug
27、修正特性情况下交易物品消失bug
28、修正地狱雷光/瞬息移动之类的魔法,超过魔法距离释放失败问题
29、改进英雄的群体技能的释放
30、修正提交镖车,镖车不消失bug
31、优化多线程下物理地图对象存取
32、Envir新增文件BroadMonList.txt,列表里的怪物刷新后会触发功能脚本的[@MonGen]标签,
系统自动触发,将以下脚本放入功能脚本,稍作修改即可。
列表里没有的怪物将不触发本标签,可以做怪物刷新提示,提问,诱导玩家PK。

标签下有以下几个变量返回:

$PARAM(0) 真实刷新怪物的名字
$PARAM(1) 刷新怪物的地图编号
$PARAM(2) 刷新怪物的地图名字
$PARAM(3) 怪物等级
$PARAM(4) 怪物X坐标
$PARAM(5) 怪物Y坐标
$PARAM(6) 过滤掉数字的怪物名字

[@MonGen]
#IF
TRUE
#ACT
SENDMSG 0 [刷怪提示]:<$PARAM(6)>已在<$PARAM(2)>(<$PARAM(4)>,<$PARAM(5)>)复活,正在耀武扬威,你有胆量去挑战它么?
GMEXECUTE 全服提问 @顶级BOSS刷新
33、新增脚本命令CHANGESTATUS用于设置角色状态
CHANGESTATUS 状态编号(0~11) 状态时长(1~65535)


[@设置角色状态]
#IF
TRUE
#ACT
CHANGESTATUS 5 3
SENDMSG 5 你获得3秒麻痹状态。

[@设置英雄状态]
#IF
TRUE
#ACT
H.CHANGESTATUS 5 3
SENDMSG 5 你的英雄获得3秒麻痹状态。

新增变量<$STATUSTIME[X]>用于获取角色剩余状态的时间。
新增变量<$H.STATUSTIME[X]>用于获取英雄剩余状态的时间。
X为状态编号,取值0~11
34、新增变量<$USERID> 获取角色账号。
35、脚本命令MOVR支持无限变量
[@测试]
#IF
TRUE
#ACT
MOVR N$随机数 200 300
SENDMSG 5 <$STR(N$随机数)>
36、修正部分脚本路径不支持绝对路径的问题
37、新增变量<$TARGETMONNAME> 返回主体正在攻击的怪物的名字
38、新增变量<$H.TARGETMONNAME> 返回英雄正在攻击的怪物的名字
39、修正对英雄无法切割的问题。
40、新增变量<$PARALYSISRATE>返回身上生效的麻痹物品的麻痹几率
41、新增变量<$PARALYSISTIME>返回身上生效的麻痹物品的麻痹时间
42、新增变量<$REVIVALTICK>返回身上生效的复活物品的复活冷却时间(单位毫秒)
43、新增变量<$REVIVALHP>返回身上生效的复活物品的复活HP百分比
44、新增变量<$REVIVALTICK>返回距离下次复活的时间。
45、新增变量<$H.PARALYSISRATE>获取英雄身上的相关变量,作用同<$PARALYSISRATE>。
46、新增变量<$H.PARALYSISTIME>获取英雄身上的相关变量,作用同$PARALYSISTIME>
47、新增变量<$H.REVIVALTICK>获取英雄身上的相关变量,作用同<$REVIVALTICK>
48、新增变量<$H.REVIVALHP>获取英雄身上的相关变量,作用同<$REVIVALHP>
49、新增变量<$H.REVIVALTICK>获取英雄身上的相关变量,作用同<$REVIVALTICK>

50、新增变量<$H.TARGETRACE>返回英雄正在攻击目标的RACE
51、新增变量<$TARGETNAME> 返回主体正在攻击的角色的名字,没有返回空值。
52、新增变量<$H.TARGETNAME> 返回英雄正在攻击的角色的名字,没有返回空值。
53、新增变量<$ATTACKNAME> 返回最后一个攻击自己本体的角色名字,没有返回空值。
54、新增变量<$H.ATTACKNAME> 返回最后一个攻击自己英雄的角色名字,没有返回空值。

测试脚本范例:
[@attack]
#IF
TRUE
#ACT
SENDMSG 5 我攻击的角色:<$TARGETNAME>,攻击我的角色:<$ATTACKNAME>

[@HEROattack]
#IF
H.CHECKLEVELEX > 0
#ACT
SENDMSG 5 我攻击的角色:<$H.TARGETNAME>,攻击我的角色:<$H.ATTACKNAME>
55、优化脚本对象,新增对主人与对面角色执行(多级脚本)
主人是O,英雄是H,对面角色是P,M为怪物(M正在扩展,暂不开放)

[@测试对面角色]
#IF
TRUE
#ACT
P.HUMANHP - 5000
SENDMSG 5 你将对面的角色HP-5000.

56、改善英雄和怪物的运行效率
57、修正按住施毒术会导致毒药消失假象问题
58、优化客户端纹理加载和管理
59、优化客户端操作体验
60、修正物品被拾取后偶尔留下的物品假象
61、被登陆脚本踢下线后不再接受客户端封包
62、优化引擎IOCP封包处理部分的性能
63、优化客户端聊天栏字体渲染效率
64、优化客户端数字飘血和数字显血
65、提高火球术,大火球,灵魂火符对移动目标的命中率
66、客户端增加极品物品的坐标和方向提示
67、客户端修正怪物出现时,声音调节失效问题
68、修正类似虎卫被召唤,无限刷新问题
69、改善法师/道士职业英雄
70、改善英雄回到主人身边的反映
71、改善丢包被T
72、修正英雄有时动作速度异常问题,增加英雄野蛮时间补偿,现在看起来更接近于玩家的动作
73、修正客户端使用微端时,个别资源因解压校验错误而未能显示问题
74、修正几个怪物重刷后不能移动问题
75、修正合区工具问题
76、优化微端内存申请释放,修正出现死锁情况;微端修改为需要激活使用。
77、控制台增加保存插件目录
78、套装增加保留兼容模式开关,按原来计算方式计算属性
79、修正扩展套装功能引起的内存泄漏
80、修正带了附加套装技能效果后,更换为无效果装备,自身魔法举手效果依然存在的问题,虽然其他人看到的是正常效果
81、修正刺杀不忽视魔法盾情况下的伤害错误计算
82、修正装备限制爆出系统bug
83、修正寒冰掌技能bug
84、修正个别怪物报错
85、优化人物数据读写
86、道道合击提高命中率
87、更好用的英雄守护模式
88、护体神盾的敏捷附加可以在魔法设置面板调节;抵挡伤害计算略微调整,最多抵挡1/3伤害
89、修正护体神盾,护身戒指作用下引起飘血数字不正确问题
90、完善伤害反射的计算

[LEGSM2_20200620]更新日志
---------------------------------------------------------------------------
1、修复登录器360误报,请自行替换"main.jpg",同时快捷方式不要起敏感字
2、优化登录器搜索客户端的精准速度
3、优化登录器32位真彩地图的加载速度,即使在大的真彩地图,也极致流畅
4、优化微端服务器下载地图的速度,优化登录器微端线程的速度,建议使用微端的朋友制作最小微端直接丢给玩家使用,或者借助“InnoSetup”打包软件制作最小微端打包
5、细腻化个别特殊怪物内挂“怪物简装”失效问题
6、细腻化“人物简装”细节,区分职业,区分性别,更细腻的简装模式
7、修正引擎在摆摊区域复活的问题。
8、修正上个版本摆摊范围检测错误。
9、修改切割伤害支持到21亿。
10、新增脚本命令 RandomText 用于在文本中随机抽取,这样GM再也不用写一串random了。
格式:RandomText 需要保存的变量 字符串分隔符[一般用|] 需要随机抽取的字符串

[@测试随机抽取]
#IF
TRUE
#ACT
MOV S1 麻痹戒指|护体戒指|重生戒指|屠龙|1000元宝
RandomText S1 | $STR(S1)
SENDMSG 0 恭喜%s在跑酷中获得了<$STR(S1)>

11、新增脚本命令HCALL 用于让指定角色执行QManage的指定脚本。
HCALL 需要指定的角色名字[支持变量] QM中的脚本名字
[@执行HCALL]
#IF
TRUE
#ACT
HCALL 光头强 @死去吧

备注:如果参数1是英雄,则英雄的本体触发QM的脚本。

12、新增脚本命令TAKEB,用于将角色的指定装备脱下放进背包,如果背包已满则无法脱下。
可以用这个脚本命令制作缴械之类的BUFF。
TAKEB 参数1:[可以写装备名字,写ALL为脱下所有的装备]
[@拔掉指定装备]
#IF
TRUE
#ACT
TAKEB $WEAPON
SENDMSG 5 你的武器已经被放入扒下并放入背包。

[@本体扒光]
#IF
TRUE
#ACT
TAKEB ALL
SENDMSG 5 你的装备已经被扒光。

[@英雄扒光]
#IF
TRUE
#ACT
H.TAKEB ALL
SENDMSG 5 你的英雄已经被扒光。
13、$ITEMCOUNT变量支持叠加物品统计数量:
[@免费泡点]
#IF
TRUE
#ACT
GIVE 金牛令 8888
SENDMSG 5 金牛令:<$ITEMCOUNT[金牛令]>
14、GIVE 脚本命令支持叠加物品自动进行叠加,物品数量支持超过60个。

物品重叠功能,StdItem.DB 中OverLap=1或2 表示可以重叠
OverLap=1 重量=重叠数量*单物品重量/10
OverLap=2 重量=重叠数量*单物品重量

[@GIVE]
#IF
TRUE
#ACT
GIVE 王者令牌 100000
SENDMSG 5 你获得100000个王者令牌。
15、新增变量<$TAKEONITEMNAME>用于显示本体这次佩戴上的装备名称。
16、新增变量<$TAKEOFFITEMNAME>用于显示本体这次摘下上的装备名称。
17、新增变量<$H.TAKEONITEMNAME>用于显示英雄这次佩戴上的装备名称。
18、新增变量<$H.TAKEOFFITEMNAME>用于显示英雄这次摘下上的装备名称。
[@TAKEON1]
#IF
TRUE
#ACT
SENDMSG 5 你佩戴上了<$TAKEONITEMNAME>。

[@TAKEOFF1]
#IF
TRUE
#ACT
SENDMSG 5 你摘下了<$TAKEOFFITEMNAME>。

两个脚本逻辑:
;CHECKITEMW 为检测身上正在佩戴的装备,takeon这样写没错。
[@TAKEONX]
#IF
CHECKITEMW XXX
#ACT

这样写是错误的,因为在指定脚本之前,引擎已经脱下装备,并未完成佩戴穿戴新的替换的新装备。
这一瞬间:这个位置是空的,所以检测身上装备永远不会成立,所以不要这么写,直接用这个两个变量获取。

[@TAKEOFFX]
#IF
CHECKITEMW XXX
19、新增主体增加经验触发功能脚本的[@GetExp]标签,同时变量<$GetExp>返回本次增加的经验值。
20、新增英雄增加经验触发功能脚本的[@HeroGetExp]标签,同时变量<$H.GetExp>返回本次增加的经验值。
以上脚本可以用作累积角色的杀怪经验做活动使用。

[@GetExp]
#IF
TRUE
#ACT
SENDMSG 5 本次经验增加<$GetExp>点。

[@HeroGetExp]
#IF
TRUE
#ACT
SENDMSG 5 本次经验增加<$H.GetExp>点。

部分GM可能不会累积,因为变量最大支持到21亿,经验远远超过21亿。
这里给大家提供一个思路:
同时每次累加经验尽量不要超过21亿。
[@累加经验]
#IF
TRUE
#ACT
CALCVAR HUMAN 当前经验 + 80000000
SENDMSG 5 你累加8000万经验

#IF
CHECKVAR HUMAN 当前经验 > 100000000
#ACT
CALCVAR HUMAN 当前经验 - 100000000
CALCVAR HUMAN 累积经验 + 1
SENDMSG 5 你当前累积经验为<$HUMAN(累积经验)>亿<$HUMAN(当前经验)>点。

21、新能脚本命令用于设置宝宝攻击威力倍数SLAVEPOWERRATE 威力倍数(/100为真实威力) 时间
用法与角色设置攻击倍数相同

[@设置主体宝宝两倍攻击威力]
#IF
TRUE
#ACT
SLAVEPOWERRATE 200 3600
SENDMSG 5 本体威力倍数:2,时间3600秒。

[@设置英雄宝宝两倍攻击威力]
#IF
TRUE
#ACT
H.SLAVEPOWERRATE 200 3600
SENDMSG 5 英雄威力倍数:2,时间3600秒。

22、新增变量获取本体与英雄的宝宝的威力倍数与时间:
<$SLAVEPOWERRATE> 主体宝宝威力倍数
<$SLAVEPOWERRATETIME> 主体宝宝威力倍数时间
<$H.SLAVEPOWERRATE> 英雄宝宝威力倍数
<$H.SLAVEPOWERRATETIME> 英雄宝宝威力倍数时间
23、引擎个人变量:
P 数字 10个 非别是 0~9
D 数字
M 数字
S 字符
全局变量(新增全局F类与T类):
G 数字
I 数字
A 字符
H 字符
F 数字型(新增) 200个 0~199 引擎自动保存。
T 字符型(新增) 200个 0~199 引擎自动保存。

[@测试全局F类变量]
#IF
TRUE
#ACT
MOV F110 360
SENDMSG 5 F110的值是<$STR(F110)>
INC F110 100
DEC F110 200
SENDMSG 5 F110的值是<$STR(F110)>


[@测试全局T类变量]
#IF
TRUE
#ACT
MOV T120 传奇是个好东西
SENDMSG 5 T120的值是<$STR(T120)>

备注:一共增加了1000个全局变量,绝大多数版本应该足够了。

备注:某些一次性领奖的,可以直接使用任务标志来保存,一共1000个,可以做很多事情了。
这些变量会自动保存,合区都省事,比做文本列表方便快多了。

[LEGSM2_20200618]更新日志
---------------------------------------------------------------------------
1、完善登录器自动免疫外挂模式,目前针对大名等外挂直接无视,随机桌面快捷方式图标,防止网吧劫持
2、完善登录器增加突发性兼容360等主流杀软[人工智能AI模式自动开启],报毒处理从此很简单
3、完善登录器内挂英雄收回保护功能
4、完善登录器对任意WIN系统无缝对接直接兼容WIN10
5、完善登录器彻底封死WPE类等变种封包程序,客户端检测后静默退出(内核级人工智能AI反极端外挂
6、登录器误报小技巧,第一登录器标题不要起敏感字,第二登录器的图片“main.jpg”请使用PhotoShop处理保存的时候更改保存画质来改变图片,即可有效防止杀软误报
7、DELMONHP 扩展第二个参数支持写2,当第二个参数写2的时候,以怪物的最高HP计算切割百分比。(兼容主流合击引擎切割)

DELMONHP 10; 以怪物当前HP的10%作为切割血量
DELMONHP 10 1;第二个参数写1,第一个参数则为切割的实际HP;
DELMONHP 10 2;以怪物最大HP的10%作为切割血量

详解
DELMONHP为通用型切割命令,可以用于固定数值切割、当前血量百分比切割、总血量百分比切割等。

DELMONHP支持2个参数,参数详解:
DELMONHP 10:第1个参数为切割单位。
DELMONHP 10 0:第2个参数为切割类型。

第1个切割单位是根据第2个类型参数进行减血,0=切当前血量百分比,1=切固定掉血,2=切总血量百分比。

实例:
DELMONHP 10 0 3 切怪物当前血量的10%。
DELMONHP 1000 1 切怪物的1000血。

英雄切割脚本:
[@HEROattack]
#IF
H.CHECKLEVELEX > 0
#ACT
H.DELMONHP 10 2
8、修正引擎在摆摊区域复活的问题。
9、英雄守护距离限制为15格
10、护需要英雄在视野外才可以瞬移
11、优化大面积封号顶赞获取的BUG
12、修正英雄怪物迟钝问题
13、减少引擎和网关的空包通讯间隔
14、完善装备限制爆出功能,增加精准爆率的限爆
15、修正寒冰掌技能bug
16、修正个别怪物报错
17、优化人物数据读写
18、道道合击提高命中率
19、更好用的英雄守护模式
20、修正英雄变量解析的问题
21、新增脚本CHECKITEMDURE、检测物品持久在指定数值以上的数量;
本脚本命令支持检测所有游戏物品的持久位,物品装备的持久,另外比如矿石的纯度,聚灵珠的经验值都是使用的持久,也支持。

例子:
#IF
CHECKITEMDURE 兔肉 5000 3
#SAY
你的包里有3块持久在5以上的兔肉。
#ELSESAY
你包里没有3块持久在5以上的兔肉。

;聚灵珠
#IF
CHECKITEMDURE 聚灵珠 300 3 ;300只是示意,自己的珠子是多少满 就检测多少。
#SAY
你的包里有3个已经吸收300万经验的聚灵珠()。
#ELSESAY
你的包里没有3个已经吸收300万经验的聚灵珠。

22、增加脚本命令TAKEDUREITEM、取走指定数量持久在指定数值以上的物品;
例子:
#IF
CHECKITEMDURE 兔肉 5000 3
#ACT
TAKEDUREITEM 兔肉 5000 3
#ELSESAY
你包里没有3块持久在5以上的兔肉。
#IF
CHECKITEMDURE 聚灵珠 300 3
#ACT
TAKEDURAITEM 聚灵珠 300 3;收取三个吸收了300万经验的聚灵珠
23、新增一个开关,用于设置是否判断聚灵珠类型物品的使用等级,默认不开启,使用NEEDLEVEL字段设置使用等级限制,鉴于都是第三方登陆器,客户端可能无法显示,但程序会给客户端发送红色提示。
开关,引擎,选项,游戏参数,游戏选项二设置,记住,只需要设置NEEDLEVEL字段即可,不限制写0,NEED 字段为开启珠子需要的货币类型,不要修改!!!
24、修改CHECKMAPRANGEMONCOUNT当最后一个参数为正数时,数量相等也返回真
#IF
CHECKMAPRANGEMONCOUNT 3 333 333 20 白野猪 10
#SAY
在地图(3)坐标200,200方圆20里发现10个或10个以上白野猪
25、增加脚本命令CHECKMAPRANGEMONCOUNT A B C D E F

作用:检查指定地图、是否存在指定名字指定数量条件的怪物

参数说明:
A 地图编号 支持变量 self 为当前地图
B 坐标x 支持变量
C 坐标y 支持变量
D 范围 支持变量
E 怪物名 支持变量
F 检测数字 支持变量 //当这个值为负数时 则检测是否小于当前正值

示例:
#IF
CHECKMAPRANGEMONCOUNT 3 333 333 20 白野猪 0
CHECKMAPRANGEMONCOUNT

#SAY
在地图(3)坐标200,200方圆20里没有发现白野猪!
#IF
CHECKMAPRANGEMONCOUNT 3 333 333 20 白野猪 10
#SAY
在地图(3)坐标200,200方圆20里发现10个以上白野猪!
#IF
CHECKMAPRANGEMONCOUNT 3 333 333 20 白野猪 -10
#SAY
在地图(3)坐标200,200方圆20里的白野猪不足10个!
26、聚灵珠等级限制无效请开启,引擎,选项,功能参数,游戏选项二:开启聚灵珠使用等级限制。


[LEGSM2_20200616]更新日志
---------------------------------------------------------------------------
1、登录器支持32位真彩色,完美兼容WIN10
2、登录器支持内挂"人物简装","怪物简装","怪物显名"
3、登录器完善一些细节,如套装的技能要学习了才显示
4、增加引擎->控制->重新加载->重读爆率功能
5、GameCenter增加定时开区功能,可以精准到秒
6、新增登陆脚本触发标签[@Startup] 引擎启动只触发一次。
7、封超级野蛮,英雄空降等等外挂功能
8、!取反命令检测
示范:
写法1:检测脚本前面直接加英文的感叹号!
#IF
!CHECKGAMEGOLD < 100
#SAY
你的元宝不小于100个,即大于等于100个。
9、增加#OR脚本标签,写法和#IF类似,用法:多个条件有一个成立即执行#ACT的脚本
格式:检测自身等级大于100级或者你的元宝大于100个
[@main]
#OR
CHECKLEVELEX > 100
CHECKGAMEGOLD > 100
#SAY
你等级大于50级或者你的元宝大于50个
10、修正BLUE/leg系列引擎历史装备触发遗留问题。
佩戴取下脚本物品名字显示的问题。
[@TakeOn3]
#ACT
SENDMSG 5 佩戴<$NECKLACE>

[@TakeOff3]
#ACT
SENDMSG 5 取下<$NECKLACE>
11、增加英雄穿戴触发
@HeroTakeOnX
@HeroTakeOffX
脚本例子
[@HeroTakeOn3]
#If
H.checkitemw 圣战项链 1
#Act
SendMsg 5 [提示]:你穿戴触发了撒.
12、修改EQUAL脚本,支持对字符串变量是否为空。
#IF
EQUAL S10
#ACT
SENDMSG 5 S10变量为空值
#ELSEACT
SENDMSG 5 S10变量内有值
13、新增脚本命令用于随机读取文本GetRandomText
用法1:随机读取
GetRandomText 文本路径 字符类变量(A 或者S)
#ACT
GetRandomText ../读取测试.txt S0
SENDMSG 5 你随机读取到了<$STR(S0)>

用法2:指定行数读取,注意:写0 就是读取第一行,1是第二行,以此类推。
GetRandomText 文本路径 字符类变量(A 或者S) 行号
#ACT
GetRandomText ../读取测试.txt S0 0
SENDMSG 5 你文本的第一行读取到了<$STR(S0)>

用法3:指定行数内随机读取,行数的用法同用法2
GetRandomText 文本路径 字符类变量(A 或者S) 开始行号 结束行号
#ACT
GetRandomText ../读取测试.txt S0 0 9
SENDMSG 5 你文本的第一行到第10行之间随机读取到了<$STR(S0)>
14、新增如下触发标签,触发功能脚本
[@创建行会]
[@加入行会]
[@退出行会]
[@踢出行会]
[@解散行会]
15、新增地图参数NOTSTONE,设置后当前地图气血石魔血石等在本地图无效。
16、修复英雄自由加点准确和敏捷BUG
17、重写修复挖怪物尸体获得物品,修复之前BUG
18、修正1116英雄安全区偶尔不穿人BUG
19、修正带升级武器标识的武器,砍下报错
20、减少内存占用
21、英雄使用火墙更灵活
22、假如怪物被重叠,现在可以攻击周围目标
23、修正优化其他代码
24、优化聊天处理
25、优化消息列队和发送
26、法师英雄现在修改为跟随状态也可以持续开盾
27、修正GM命令调整元宝不刷新BUG
28、修正英雄有几率在安全区攻击BUG
29、修复RUNGATE的一个致命问题,请用户务必替换网关,不替换后果严重
30、优化游戏网关,修正网关启动服务时立即有连接接入时崩溃bug
31、优化引擎刷怪算法
32、修正掉线重新召唤的随从行走速度异常
33、优化NPC获取
34、修正技能等级变化没有刷新技能套装威力
35、修正游戏网关停止服务发生崩溃,优化性能
36、增强引擎网关IOCP能力
37、修正游戏网关停止服务时,可能出现崩溃的bug
38、修正引擎手动关闭或开启网关服务报错