atcommand "@warp " 找不到角色時崩潰
Hong-Shin opened this issue · 5 comments
Hong-Shin commented
缺陷描述
某些腳本會使用關聯玩家在進行指令傳送
途中當玩家離線會造成傳送時崩潰
重现步骤
prontera,160,160,4 script test 100,{
sleep 5000;
atcommand "@warp payon 150 150";
end;
}
點擊NPC後 在5秒內登出
预期的正确行为
跳過該玩家的傳送
截图
程序编译模式 (请完善以下信息):
- 操作系统: Windows 10 x64
- 编译工具: Visual Studio 2019
- 代码版本: 1.1.5
- 封包版本: 20200304
- 工作模式: 复兴后
其他附加信息
您可以在此补充与此问题相关的其他一切信息.
Hong-Shin commented
在atcommand前 先檢查一次角色是否在線上
就可以解決此問題了
CairoLee commented
此问题确实存在,下次熊猫还没 fix 的话先不要 close
CairoLee commented
当使用 atcommand 的目标玩家不存在时,在 atcommand_sub 函数中会构建一个 dummy_sd ,这个玩家对象并非真实存在,所以导致后面执行 pc_setpos 转移目标玩家位置时,地图服务器崩溃。
做了一些更加严格的检查,确保执行 pc_setpos 的时候玩家是真实有效的。此情况同样适用于 @jump
/ @go
等指令,现在应该都一并修正了
Hong-Shin commented
感謝感謝
CairoLee commented
此问题已解决,如果还有与其相关的其他情况,可以重新打开此问题