18铜人 发表于 2024-10-24 21:18:38

2019/10/22【BLUE引擎更新日志】M2每1开网关端口的人数限制从6000提高到8000


2019/10/22        !全套程序配套使用
---------------------------------------------------------------------------
M2加入自动更新功能,可在关于菜单设置是否自动检测更新
M2可储存ints从0~9扩展到0~29,尽量使用此变量,避免使用直接读写文本的自定义变量
M2每1开网关端口的人数限制从6000提高到8000
提高M2处理游戏流量的能力
修正上个版本可能存在跑位空气墙问题
游戏网关接收缓冲区大小自适应,增加发送缓存以提高处理流量能力(内存相对上个版本会多一些)
游戏网关修正关闭程序时的一个bug
M2/DBS改写人物数据存取逻辑,大幅度提高存取数据的效率
修正很小的可能造成个别玩家数据存储错误bug,需要配套更新M2和DBServer
修正挂机假人会攻击人物下线时刻的英雄
扩展NPC命令:compval <$USERID> ^ "userid"        // $USERID是否以userid开头
扩展NPC命令:compval <$USERID> ` "userid"        // $USERID是否以userid结尾
登录器支持自配置自动刷新服务器列表
登录器配置器可自定义客户端Logo,png格式,可利用登陆器更新功能下载至传奇目录,留空使用默认logo(建议使用PS裁剪掉透明部分以减少文件大小)
KillMonGetFullExp +/-/= 秒数                                // 高等级杀怪获取全部经验时间(秒),存库
REFITEMSHAPE 位置 数值                                                // 引用某同类型物品外观,位置:0衣服 1武器,数值参考stditems.db中的物品idx,存库,(连击合击版本才支持)

---------------------------------------
增加角色改名功能,详见附件示意脚本,改名之前,如果有武器正在升级,需要取回

---------------------------------------
推广ID功能
登录器配置器增加“推广ID”的填写,最多14字节(7个汉字)
游戏内获取推广ID的脚本变量:<$ADID>

---------------------------------------
增加NPC命令:SetAbility 位置(0~100) 数值 持续秒数 结束时的提示字符(留空不提示)
其中有如下49个固有属性,其他的50-100可以用作临时计时变量,也可以作为计时器使用。

[@SetAbility]
#ACT
SetAbility 10 15 30 暴击附加属性恢复正常。
SENDMSG 5 获得暴击附加属性15点,持续30秒。
;SetAbility 10 0 0 暴击附加属性恢复正常。// 立即清理位置10的属性
;SetAbility clearup // 清理所有属性

位置对应属性:
0 // 腕力
1 // 负重
2 // 背包重量
3 // 准确
4 // 敏捷
5 // 魔法躲避 每一点代表10%,10点即为100%。
6 // 毒物躲避 每一点代表10%,10点即为100%。
7 // 中毒恢复 每一点代表10%,10点即为100%。
8 // 生命恢复 每一点代表10%,10点即为100%。
9 // 魔法恢复 每一点代表10%,10点即为100%。
10 // 暴击
11 // 目标爆率
12 // 防爆
13 // 忽视 属性为百分比,最大为100。
14 // 增伤 属性为百分比,最大为100。
15 // 反射 属性为百分比,最大为100。
16 // 物减 属性为百分比,最大为100。
17 // 魔减 属性为百分比,最大为100。
18 // 吸血
19 // 幸运
20 // GM隐身(观察模式)
21 // GM无敌
22 // 禁止使用物品
23 // 禁止丢弃
24 // 禁止移动
25 // 禁止跑步
26 // 禁止物理攻击
27 // 禁止魔法攻击
28 // 稳如泰山(不可被野蛮推动)
29 // 禁止召唤英雄
30 // 禁止修改攻击模式
31 // 禁止使用仓库
32 // 麻痹模式
33 // 魔道麻痹
34 // 复活
35 // 护身
36 // 传送
37 // 探测
38 // 隐身
39 // 破麻
40 // 防毒
41 // 破复活
42 // 破护身
43 // 背包不掉
44 // 装备不掉
45 // 攻击加速(10点以下为减速度,10点以上为加速度,与武器一致)
46 // 禁止交易
47 // 禁止摆摊
48 // 禁止出售物品

---------------------------------------
新增爆率文件引入用法,可以和以前的爆率混搭使用,支持多个文件被同时调用,方便编辑爆率
比如在 白野猪.txt 写入如下内容:        // MonDropItems目录位于MonItems目录下
#CALL
#CALL

---------------------------------------
支持爆率变量检测,兼容老格式,满足指定条件,物品才会爆出:
1/x 装备名称 数量 $检测变量 检测符(><=!?) 检测数 扣除“$检测变量”的数量(负数扣除,正数增加) 普通随机掉落是否必定扣除(0/1),设置1即使没有掉落也扣除,默认关闭
检测符: ?表示>=,^和`用于字符串检查
扣除: 和爆率没有关系,只关联检查条件,设置数值为0不进行扣除
例子:
1/1 强效太阳水 1 $GOLDCOUNT ? 0 100000                // 增加10万金币
1/3 强效太阳水 1 $GAMEGOLD ? 100 -100                // 元宝>=100时,有1/3几率计算掉落物品,否则不掉;元宝>=100时,扣除100元宝
1/8 某区物品   1 $SERVERNAME = XX传奇1区        // XX传奇1区 才有可能爆出
1/8 某物品   1 $USERID ^ head                                // 账号以head开头 才有可能爆出
1/8 某物品   1 $USERNAME ` tail                        // 角色名以tail结尾 才有可能爆出

支持变量:
$SERVERNAME
$SERVERIP
$WEBSITE
$BBSSITE
$CLIENTDOWNLOAD
$QQ
$PHONE
$BANKACCOUNT0
$BANKACCOUNT1
$BANKACCOUNT2
$BANKACCOUNT3
$BANKACCOUNT4
$BANKACCOUNT5
$BANKACCOUNT6
$BANKACCOUNT7
$BANKACCOUNT8
$BANKACCOUNT9
$GAMEGOLDNAME
$GAMEPOINTNAME
$USERCOUNT
$MACRUNTIME // 服务器开启天数
$SERVERRUNTIME // 引擎开启分钟数
$DATETIME:// 当前日期,格式:2019-11-12
$CURRENTMAPDESC // 地图名
$CURRENTMAP// 地图文件名
$CURRENTX
$CURRENTY
$GENDER// 0,1
$JOB//0,1,2
$ABILITYADDPOINT0..ABILITYADDPOINT6
$ABILITYADDTIME0..ABILITYADDTIME6
$USERNAME
$USERID
$CURITEMID
$ATTINFO_SKILLID
$ATTINFO_RACE
$ATTINFO_ISHERO
$ATTINFO_NAME
$ATTINFO_FNAME
$ATTINFO_MNAME
$CURTITLENAME
$MEMBRETYPE
$MEMBRELEVEL
$RANDOMNO
$RELEVEL
$GUILDHUMCOUNT
$GUILDNAME
$RANKNAME
$LEVEL
$COLLECTEXP
$COLLECTIPEXP
$HP
$MAXHP
$MP
$MAXMP
$AC
$MAXAC
$MAC
$MAXMAC
$DC
$MAXDC
$MC
$MAXMC
$SC
$MAXSC
$HIT
$SPD
$BONUSPOINT
$BONUSABIL_AC
$BONUSABIL_MAC
$BONUSABIL_DC
$BONUSABIL_MC
$BONUSABIL_SC
$BONUSABIL_HP
$BONUSABIL_MP
$BONUSABIL_HIT
$BONUSABIL_SPD
$BONUSABIL_X2
$EXP
$MAXEXP
$PKPOINT
$HW
$MAXHW
$BW
$MAXBW
$WW
$MAXWW
$HUNGER
$CREDITPOINT// 支持扣除操作
$GOLDCOUNT // 支持扣除操作
$GAMEGOLD // 支持扣除操作
$NIMBUS // 支持扣除操作
$GAMEPOINT // 支持扣除操作
$GAMEDIAMOND // 支持扣除操作
$GAMEGIRD // 支持扣除操作
$INTS0..INTS30// 支持扣除操作
$LOGINLONG // 登录时长,分钟
$DRESS        // 衣服名
$WEAPON        // 武器名
$RIGHTHAND
$HELMET
$NECKLACE
$RING_R
$RING_L
$ARMRING_R
$ARMRING_L
$HELMETEX// 非176版本
$BUJUK// 非176版本
$BELT// 非176版本
$BOOTS// 非176版本
$CHARM// 非176版本
$DRUM// 非176版本
$HORSE// 非176版本
$FASHION// 非176版本
$HWID
$YEAR
$MONTH
$DAY
$HOUR
$MINUTE
$SECOND
$MILLISECONDS
$MONDROPRATE
$IPADDR
$IPLOCAL
$GUILDBUILDPOINT
$GUILDAURAEPOINT
$GUILDSTABILITYPOINT
$GUILDFLOURISHPOINT
$STR(XX) // 支持扣除操作,其中的全局变量不要频繁使用,否则造成服务器卡顿
$H.STR(XX) // 支持扣除操作,其中的全局变量不要频繁使用,否则造成服务器卡顿
$HUMAN(XX) // 支持扣除操作,定义为内存操作将会自动保存,否则不自动保存;此变量不要高频使用,否则有效率问题
$H.HUMAN(XX) // 支持扣除操作,定义为内存操作将会自动保存,否则不自动保存;此变量不要高频使用,否则有效率问题
$GUILD(XX) // 支持扣除操作,定义为内存操作将会自动保存,否则不自动保存;此变量不要高频使用,否则有效率问题
$GLOBAL(XX) // 支持扣除操作,定义为内存操作将会自动保存,否则不自动保存;此变量不要高频使用,否则有效率问题
$PARAM(0..7)

攻击触发:
---------------------------------------
!setup.txt AttackTrigger=0        // 攻击触发总开关,默认0关闭,1开启触发QF的[@Attack]
Envir\MonAttackTrigger.txt        // 可以被攻击触发的怪物名称列表,每行一个

// 下列为[@Attack][@UnderAttack]攻击触发字段的【专属】变量,不能用于其他字段,否则引擎会发生崩溃
$TARINFO_RACE                // 目标Race
$TARINFO_ISHERO                // 目标是否英雄 {'0', '1'}
$TARINFO_NAME                // 目标名称
$TARINFO_FNAME                // 目标全名
$ATTINFO_SKILLID        // 攻击使用技能ID
$ATTINFO_RACE                // 攻击者Race
$ATTINFO_ISHERO                // 攻击者是否英雄
$ATTINFO_NAME                // 攻击者名称
$ATTINFO_FNAME                // 攻击者全名

// 目标变量
$T.CURRENTMAPDESC
$T.CURRENTMAP
$T.CURRENTX
$T.CURRENTY
$T.USERNAME
$T.MONKILLER
$T.KILLER
$T.LEVEL
$T.HP
$T.MAXHP
$T.MP
$T.MAXMP
$T.AC
$T.MAXAC
$T.MAC
$T.MAXMAC
$T.DC
$T.MAXDC
$T.MC
$T.MAXMC
$T.SC
$T.MAXSC
$T.HIT
$T.SPD

// QF例子
[@Attack]                                // 人或随从攻击列表指定怪物,会触发
#IF
COMPVAL <$TARINFO_FNAME> = 蜈蚣
COMPVAL <$T.HP> > 50
#ACT
T.HUMANHP - 50
SENDMSG 7 目标【<$TARINFO_NAME>】血量<$T.HP>

#IF
COMPVAL <$ATTINFO_RACE> ! 1                // Race=1 是玩家,这里就是非玩家(即随从)
#ACT
SENDMSG 7 你的随从<$ATTINFO_NAME>正在攻击<$TARINFO_NAME>


[@UnderAttack]                                                // 被人或随从或列表指定怪物攻击,会触发
#IF
COMPVAL <$ATTINFO_FNAME> = 蜈蚣                                // 蜈蚣打随从或自己
#ACT
HUMANHP - 50                                                // 主人扣血

#IF
COMPVAL <$ATTINFO_MNAME> ! ""                                // 攻击者主人名称不为空
#ACT
SENDMSG 7 【<$ATTINFO_MNAME>】的随从<$ATTINFO_NAME>正在攻击你
#ELSEIF
COMPVAL <$TARINFO_RACE> ! 1                                        // 自己的随从
#ACT
SENDMSG 7 【<$ATTINFO_NAME>】正在攻击你的随从【<$TARINFO_NAME>】
#ELSEACT
SENDMSG 7 【<$ATTINFO_NAME>】正在攻击你

---------------------------------------
主界面自定义按钮,最多20个,参考附件,可利用登陆自动更新配置
客户端data目录下增加配置文件:MainWidgetCfg.ini                // 主界面自定义按钮,最多20个,参考附件,可利用登陆自动更新配置
MainWidgetCfg.ini的wmlib=Lui时,会调用Lui.pkg的图片,图片名为lui.pkg内的文件名,非lui库的图片索引大于0才生效
MainWidgetCfg.ini LoginShowChildButton=0/1 字段,登陆是否显示各个子按钮

点击按钮会根据按钮序号执行QChatMission-0.txt脚本对应的[@MainBtnFunc_0至20]字段,[@MainBtnFunc_20]是显示开关的触发
相应的NPC控制脚本命令如下:
MAIN_FUNC_BTN_SHOW 序号 0/1                                // 显示或隐藏
MAIN_FUNC_BTN_FLASH 序号 0/1                                // 按钮是否闪烁
MAIN_FUNC_BTN_POS 序号 X Y                                // 调整按钮位置
!Setup.txt OpenMainFuncBtns=0/1                                // 开启或关闭主界面功能按钮功能,默认关闭

页: [1]
查看完整版本: 2019/10/22【BLUE引擎更新日志】M2每1开网关端口的人数限制从6000提高到8000