命令缓存到底解决了什么问题,新人太困难了。
我查看了一下记录,命令缓存是为了解决服务器的负担,这个我可以理解。设置剑心居是为了解决学习、领悟、练功指令过多,我也可以理解。前提都是为了更好的让玩家玩 mud,服务器不卡。但是游戏中那些进不了无法拜师,无法在剑心居学习的就应该因为游戏的设定,全部进缓存吗?是否可以让这些新人必须学习的人也享受一下,不急缓存的福利。1 、天龙寺的师傅段誉,这个是没法拜师的,每次更新不到 3 分钟就给做任务的人杀了,要学段誉的武功就必须要在他活在的时候学习。一般学习机器人就是不停的等他复活,复活了学一下,死了继续学,哪怕是有很多无效指令。没有谁可以一直在电脑面前,一直盯着。
2 、朱熹,学习读书写字的师傅,这个也是没有办法进入剑心居的吧,学习也会进缓存。
3 、侠客岛面壁,这个设置时间长一点,可以避免进入缓存。但是没有人说在一个号进入面壁就一直等着面壁玩吧,一定会去玩其他的号,但是连坐机制,就是一个号面壁,另外一个号只要稍微做快了一点就进缓存。一旦进了缓存就是一个 ip 完全废了。
4 、丐帮找黄蓉学读书写字也是一样。
目前只发现这三个地方因为学习会进入缓存。希望 wiz 可以看在新人不易的情况下,改进一下这些因为无法拜师,无法进入剑心居学习的地方。降低连坐机制对于小号的惩罚。 欢迎使用 PaoTin++。
PaoTin++ 检测 NPC 很方便。写个 if 语句就可以不用发无效命令了。 1、打晕段誉,搬到旁边学,没有拦路就没有杀害
2、学读书写字可以读书或者剑心居找师傅,师傅多少会点
3、面壁的白天间隔加长,晚上间隔恢复
4、同理
总结,拉长时间间隔
最后,topcmd是为了解决服务器负担,剑心居是解决练功负担,这种拜不了师的属于意料之外的,不多。在开发维护人员只有一个的情况下,多担当体谅下,自己改下机子 dddr 发表于 2024-9-6 12:32 PM
1、打晕段誉,搬到旁边学,没有拦路就没有杀害
2、学读书写字可以读书或者剑心居找师傅,师傅多少会点
3、 ...
多少级可以打败段誉,可以打败段誉的应该不用去段誉哪里学习了吧。这种确实不太多,但是对于天龙寺的来说,段誉应该是绕不开的坎吧。
其实修改机器是可以,但是改多少合适,因为缓存是动态的,可能前面一两天都没有问题,后面每一天都有问题,而且缓存是累加的,今天 1 小时,明天就 2 小时。而根据服务器负担动态调整指令间隔,这个对我只会使用简单的机器的人,有难度。或者说有什么指令可以反馈服务器负担,好参考修改机器。 dtp 发表于 2024-9-6 12:27 PM
欢迎使用 PaoTin++。
PaoTin++ 检测 NPC 很方便。写个 if 语句就可以不用发无效命令了。 ...
使用的就是 PaoTin++,但是忘记了有检查 NPC 这个功能。 克服一下吧。我吐槽太多快被记上小本本了 case 发表于 2024-9-6 02:13 PM
多少级可以打败段誉,可以打败段誉的应该不用去段誉哪里学习了吧。这种确实不太多,但是对于天龙寺的来说 ...
我做过一个水温系统。
接管全部发送的指令
根据过去一段时间内的指令数,动态调整发送频率,还有多种模式切换。
可以试试往那个放线发展。 本帖最后由 jarlyyn 于 2024-9-6 02:41 PM 编辑
case 发表于 2024-9-6 02:13 PM
多少级可以打败段誉,可以打败段誉的应该不用去段誉哪里学习了吧。这种确实不太多,但是对于天龙寺的来说 ...
具体的实现是用变体漏桶算法的
参考
https://www.pkuxkx.net/forum/thread-49204-1-1.html
实际代码
})
App.Core.Overheat.Commands = {
"west": 13,
"w": 13,
"north": 13,
"n": 13,
"east": 13,
"e": 13,
"south": 13,
"s": 13,
"up": 13,
"u": 13,
"down": 13,
"d": 13,
"enter": 13,
"out": 13,
"xiaojing": 13,
"biandao": 13,
"northeast": 13,
"ne": 13,
"southeast": 13,
"se": 13,
"southwest": 13,
"sw": 13,
"northwest": 13,
"nw": 13,
"northup": 13,
"nu": 13,
"eastup": 13,
"eu": 13,
"southup": 13,
"su": 13,
"westup": 13,
"wu": 13,
"northdown": 13,
"nd": 13,
"eastdown": 13,
"ed": 13,
"southdown": 13,
"sd": 13,
"westdown": 13,
"eu": 13,
"i": 15,
"i2": 8,
"l": 20,
"ask":50,
"jq":160,
"wield":5,
"jifa":10,
"skills":123,
}
App.Core.Overheat.Value = 0
App.Core.Overheat.Current = 0
App.Core.Overheat.IsOverThreshold = function () {
return App.Core.Overheat.Value > App.Core.OverheatMode.Current().Threshold();
}
App.Core.Overheat.OnTimer = function () {
App.Core.Overheat.Last.unshift(App.Core.Overheat.Current)
if (App.Core.Overheat.Last.length > max) {
App.Core.Overheat.Last = App.Core.Overheat.Last.slice(0, -1)
}
App.Core.Overheat.Last = [...App.Core.Overheat.Last]
App.Core.Overheat.Value = 0
if (App.Core.Overheat.Last.length) {
for (var i = 0; i < App.Core.Overheat.Last.length; i++) {
App.Core.Overheat.Value += App.Core.Overheat.Last
}
App.Core.Overheat.Value=Math.floor(App.Core.Overheat.Value/App.Core.Overheat.Last.length)
let shortvalue=0
let shortlist=App.Core.Overheat.Last.slice(-short)
for (var i = 0; i < shortlist.length; i++) {
shortvalue += shortlist
}
shortvalue=Math.floor(shortvalue/shortlist.length)
if (shortvalue>App.Core.Overheat.Value){
App.Core.Overheat.Value=shortvalue
}
}
App.Core.Overheat.Current = 0
App.Raise("core.overheat.updated", App.Core.Overheat.Value)
}
App.RegisterCallback("app.core.overheat.onsend", function (data) {
if (App.Data.Room.Name&&App.Data.Room.Location){
return;
}
if (data) {
for (var i = 0; i < data.length; i++) {
let v = App.Core.Overheat.Commands]
if (v) {
App.Core.Overheat.Current += v
}
}
}
})
App.Bind("Send", "app.core.overheat.onsend")
建立高消耗指令清单
记录所有已发送的指令消耗,统计最近的一段时间的消耗,并进行限流。
我这里还建立了个长和短两个限流,避免 突发 和 长期低温过热。
谢谢了,我先去学习一下编程,然后建立一个这样的系统,有方向了。感谢感谢 找朱熹学习都进缓存,这还咋玩