newstart 发表于 2024-11-19 22:09:40

有关部分任务的颜色代码建议

本帖最后由 newstart 于 2024-11-19 10:15 PM 编辑

有PyMUD用户发现,北侠中有部分任务(如星宿新手的毒草、炼丹师查看丹炉等)需要通过辨认颜色来区分下一步,而实际在这种情况下,PYMUD不能正常显示颜色,全都显示为白色。
我排查过该问题,原因是由于PyMUD使用的框架(prompt_toolkit)限制,ANSI代码的显示处理是逐行处理的,且并非是从上往下,因此在碰到多行颜色代码仅首行有效。由于框架限制,暂无法解决此问题。
例如,查看丹炉时,输出ANSI示意如下。其中颜色代码\x1b[35m仅在行首有一个,每一行只有火焰本身的ASCII代码。
建议服务器端代码能否针对这种任务做下代码修改,输出火焰等带颜色内容时,在每一行行首增加\x1b[35m颜色代码?否则只能使用触发器解决该问题(当前大家也是这样用的),对于手动用户不够友好。
请wiz团队考虑支持北侠玩家自研客户端,谢谢{:7_268:}
lookin lu
药炉现在炉内的状况:
\x1b[35m
                .
            :|!`
             .;|||'   .:`
      `:..;|||||:.!|'
       '||':|!;!|||'.;|||:
   `!||!:;|||;::!|||||||||' .'
:!``;|||||||||;::::;||||;;|!!!'
.:!!!!!!;:;!!!;::::::!!;:::;!!:`
`!!!!!;;:::::::' .'::::::::;!!:`
';;;::;::::::::`    '::``::::;:`
`;;::::::'. ..          .':::;:`
':::::'                .':::'.
\x1b[2;37;0m







creat 发表于 2024-11-19 22:20:34

当你是个开发者——那就解决这个问题
当你不是个开发者——那就联系开发者解决这个问题

newstart 发表于 2024-11-19 22:28:45

本帖最后由 newstart 于 2024-11-19 10:30 PM 编辑

我是开发者,就是有用户找到我,但个人受限自身水平,目前从客户端角度无法解决该问题,才看看能不能从服务器端帮忙处理下{:7_279:}
不行也没关系{:7_268:}

dtp 发表于 2024-11-19 23:06:14

我觉得不对呀。如果别的 mud 有这个问题,也要 wiz 帮忙改吗?你这样啥时候才是个头。

我建议你去 push prompt_toolkit,可能还有点效果。
如果它不理你,你就 fork 它。就像我 fork tintin 一样。

newstart 发表于 2024-11-20 11:49:30

好了,我自己研究解决。请wiz不要理会。

jarlyyn 发表于 2024-11-20 13:40:34

这个问题我炼丹遇到过,改了代码。

按理这个不难改啊。每行处理好记录下当前最后颜色就好。

newstart 发表于 2024-11-20 16:51:36

jarlyyn 发表于 2024-11-20 01:40 PM
这个问题我炼丹遇到过,改了代码。

按理这个不难改啊。每行处理好记录下当前最后颜色就好。 ...


嗯,已经搞定了(如图),只是要研究prompt_toolkit的显示机制,这个包的文档写的太简单,要读代码。
说到底,还是自己有些懒了{:7_283:}


jarlyyn 发表于 2024-11-20 16:55:20

newstart 发表于 2024-11-20 04:51 PM
嗯,已经搞定了(如图),只是要研究prompt_toolkit的显示机制,这个包的文档写的太简单,要读代码。
说 ...

这个本质也不算包的bug。

毕竟ansi很多东西还是要自己维护的,比如光标位置啥的。
页: [1]
查看完整版本: 有关部分任务的颜色代码建议