giantsd/plugins/bullets.py

29 lines
1.1 KiB
Python

from dpnet.gamepackets import *
import struct
class Bullets:
def __init__(self, server):
self.server = server
async def on_player_chat(self, player, type, team, message):
command = message.split(" ")
if len(command) > 1 and command[0] == "bullet":
t = int(command[1])
player.opts["bullet"] = t
async def on_player_shoot(self, player, payload):
if "bullet" in player.opts and player.opts["bullet"] != 0:
oid = struct.unpack("<H", payload[31:33])[0]
print(oid)
x = struct.unpack("<f", payload[14:18])[0]
y = struct.unpack("<f", payload[18:22])[0]
z = struct.unpack("<f", payload[22:26])[0]
o = struct.unpack("<L", payload[26:30])[0]
await self.server.broadcast_gamedata(MSG_BULLET_EXPLOSION(player, oid, x, y, z, False).to_packet())
await self.server.broadcast_gamedata(MSG_NEW_PROJECTILE(player, self.server.new_oid(), player.opts["bullet"], x, y, z, o).to_packet())
def setup(server):
plugin = Bullets(server)
server.add_plugin(plugin)