ValvePython / dota2

🐸 Python package for interacting with Dota 2 Game Coordinator
http://dota2.readthedocs.io
198 stars 32 forks source link

result of lobby match #90

Open amirhossein-mlkz opened 1 year ago

amirhossein-mlkz commented 1 year ago

Hello. how can I get the match result and end match event when I lunch the current lobby into a game?

MirkevychV commented 1 year ago

` self.dota.on('lobby_changed', self.lobby_change_handler)

    self.state_handler_dispatch = dict([
        (LobbyState.RUN, None),
        (LobbyState.POSTGAME, self.post_game_handler),
    ])

def post_game_handler(self, message=None):
    match message.match_outcome:
        case 2:  
            winner = Light
        case 3:  
            winner = Dark`
Philaeux commented 1 year ago

As previously stated, the even to subscribe to is dota2.features.Lobby.EVENT_LOBBY_CHANGED, so subscribe a function to listen to change on it.

dota.on(dota2.features.Lobby.EVENT_LOBBY_CHANGED, game_update)

def game_update(self, message):
   # Here message.state can be 
   # 0: in lobby
   # 1: in-game (loading)
   # 2: in game
   # 3: post-game
   # if 3, message.match_outcome == 2 if radiant win, or 3 if dire win

ISSUE STATUS: CLOSED ISSUE TAG: HOWTO

DiDHack commented 2 months ago

Does somebody know how to get score of match? Printing of whole message object shows not all attributes. I have know about match_outcome from this thread only