howi Posted January 21 Share Posted January 21 import BigWorld import requests print("[Мод]: Мод успешно загружен!") class EndBattleStats: def __init__(self, server_url): self.server_url = server_url self.total_damage = 0 self.kills = 0 self.player_nick = BigWorld.player().name # Ник игрока self.squad_members = self.get_squad_members() # Список игроков взвода print(f"[Мод]: Мод запущен для игрока {self.player_nick}") print(f"[Мод]: Участники взвода: {', '.join(self.squad_members)}") self.subscribe_events() def subscribe_events(self): """Подписываемся на события игры.""" BigWorld.player().arena.onHealthChanged += self.on_damage_done BigWorld.player().arena.onVehicleKilled += self.on_vehicle_killed BigWorld.player().arena.onBattleResultsReceived += self.on_battle_end BigWorld.player().onLeaveArena += self.on_leave_battle print("[Мод]: События подписаны.") def on_damage_done(self, vehicle_id, new_health, attacker_id, damage_info): """Обработка нанесённого урона.""" if attacker_id == BigWorld.player().playerVehicleID: damage = damage_info['damage'] self.total_damage += damage print( f"[Мод]: Нанесён урон: {damage}, общий урон: {self.total_damage}") def on_vehicle_killed(self, victim_id, attacker_id, equipment_id): """Обработка уничтожения танков.""" if attacker_id == BigWorld.player().playerVehicleID: self.kills += 1 print(f"[Мод]: Уничтожен танк. Всего фрагов: {self.kills}") def get_squad_members(self): """Получение списка участников взвода.""" squad_members = [] player_team = BigWorld.player().arena.vehicles for vehicle_id, data in player_team.items(): if data['prebattleID'] == BigWorld.player().arena.vehicles[BigWorld.player().playerVehicleID]['prebattleID']: squad_members.append(data['name']) return squad_members def on_leave_battle(self): """Отправка данных при выходе из боя.""" print("[Мод]: Игрок покинул бой. Отправка данных на сервер...") self.send_data(battle_status="left_battle") def on_battle_end(self, results): """Отправка данных при завершении боя.""" print("[Мод]: Бой завершён. Итоговые результаты отправляются на сервер.") self.send_data(battle_status="completed", battle_results=results) def send_data(self, battle_status, battle_results=None): """Отправка данных на сервер.""" data = { "nickname": self.player_nick, "squad_members": self.squad_members, "damage_done": self.total_damage, "kills": self.kills, "battle_status": battle_status, "battle_results": battle_results, } print(f"[Мод]: Отправка данных: {data}") try: response = requests.post(self.server_url, json=data) if response.status_code == 200: print("[Мод]: Данные успешно отправлены.") else: print( f"[Мод]: Ошибка отправки данных: {response.status_code} - {response.text}") except Exception as e: print(f"[Мод]: Ошибка подключения к серверу: {e}") # Подключение мода # Укажите адрес вашего сервера server_url = "http:/0.0.0.0:5000" end_battle_stats = EndBattleStats(server_url) @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.