那天盯着屏幕发呆
中午啃着煎饼果子,突然想起手头那个魔兽插件又卡成了幻灯片。明明功能简单得要死,刷个BUFF而已,每次触发硬是拖慢半拍,队友的骂声都快从耳机里溢出来了。
鼠标烦躁地在屏幕角落的代码上戳来戳去,一堆重复的施法命令挤在触发器里,跟早高峰地铁似的密密麻麻。删了又写写了又删,折腾半小时还是那副死样子。气得我把凉掉的煎饼摔进垃圾桶,想着要不彻底重写算了。
论坛扒拉出个生僻词
摸到某小众插件论坛翻老帖,看见有人提了嘴castsequence,下面讨论全是缩写。刚开始以为是啥复杂玩意儿,耐着性子扒拉三页口水战,突然被一条回复点醒:“就是让技能排着队放,别一窝蜂挤上去卡住”。
眼前啪地亮了——这不就跟我把煎饼里的薄脆一片片叠好再咬一样嘛
动手改代码踩大坑
冲回电脑前,把插件里二十几行重复的CastSpellByName()全删光。改成:
- 先/castsequence reset=10 开头,意思是十秒重置队伍
- 接着把要放的BUFF名挨个写进去,逗号隔开,像写超市购物清单
- 绑到快捷键G键上,手贱测试时差点把炉石搓出来
结果游戏里一按G键:只!放!了!第!一!个! 后面的BUFF全在队列里装死。气得我差点把键盘上G键抠下来。
熬夜找解决方案
晚上灌了两杯浓咖啡,翻外网文档看到眼冒金星。终于在角落发现reset=combat这个写法。意思是只要进战斗就重新排队,比定时器靠谱多了!赶紧爬起来改代码:
- 把reset=10换成reset=combat
- 每个技能后面加上逗号和英文问号?, 让它能跳过冷却中的技能
- 在队列尾巴塞个null,防止循环放技能把蓝抽干
改完哆嗦着按了G键。
效果直接惊掉下巴
只见角色跟开了挂似的:保护祝福→智慧祝福→力量祝福→溜去砍怪!全程不到两秒丝滑得像德芙巧克力!以前卡顿的地方现在直接顺过去,队友在语音里吼:“今天插件吃伟哥了?!”
更绝的是,测试时故意让某个技能冷却,结果它真就自动跳过冷却技,接着放下一个。以前手动判断冷却的几十行代码直接报废,现在全交给问号?处理。
现在看代码清爽得要命
以前跟蜘蛛网似的触发器页面,现在缩成短短几行:
按钮按下时:执行序列
序列内容:技能A, 技能B, 技能C, null
重置条件:进战斗就重来
老婆催睡觉的骂声里,我盯着这简洁的代码傻笑到凌晨三点。早干嘛去了?