数据包监听方法
监听特定数据包
- 在插件主类中使用
self.ListenPacket(packet_id, callback)
监听数据包 - 示例:
python
from tooldelta import Plugin
from tooldelta.constants import PacketIDs
class MyPlugin(Plugin):
...
def __init__(self, frame):
super().__init__(frame)
self.ListenPacket(PacketIDs.Text, self.OnPacket)
def OnPacket(self, packet):
print(packet)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
- 关于
ListenPacket
:参数 类型 说明 packet_id int 数据包 ID callback (dict) -> bool 监听回调函数,返回表示是否拦截数据包
警告
由于 Python 的 json 模块性能羸弱,在监听所有数据包时,很可能导致 ToolDelta 严重卡顿。
在 1.0.0
版本中,ToolDelta 移除了监听所有数据包的方法。
等待下一个数据包
- 等待并获得租赁服发送至 ToolDelta 的下一个指定 ID 的数据包。
- 示例:
python
from tooldelta.constants import PacketIDs
class MyPlugin(Plugin):
def do_something(self):
# 等待下一个 Text 数据包
pk = self.frame.packet_handler.wait_next_packet(PacketIDs.Text, 30)
if pk is None:
# 在 30s 内等不到 Text 数据包
# 做点什么...
pass
else:
# 做点什么... (输出数据包内容)
print(pk)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
关于
wait_next_packet
:参数 类型 说明 pkID PacketIDs 要等待的包ID timeout floaat 等待超时时间,单位为秒 返回类型 说明 dict 数据包内容 None 获取超时