Пример #1
0
 def damage_client(self, target, client, damage, gun, dx, dy, dz):
     v = vec(dx, dy, dz).div(DMF).rescale(DNF)
     
     target.state.receive_damage(damage)
     
     with self.broadcastbuffer(1, True) as cds:
         swh.put_damage(cds, target, client, damage)
         
         if target == client:
             #target.state.setpushed()
             pass
         elif not v.iszero():
             if target.state.health <= 0:
                 swh.put_hitpush(cds, target, gun, damage, v)
             else:
                 with target.sendbuffer(1, True) as cds:
                     swh.put_hitpush(cds, target, gun, damage, v)
             #target.state.setpushed()
             
         if target.state.health < 1:
             target.state.state = client_states.CS_DEAD
             
             target.state.deaths += 1
             if self.gamemode.hasteams and client.team == target.team:
                 client.state.frags -= 1
             else:
                 client.state.frags += 1
             
             swh.put_died(cds, target, client)
Пример #2
0
 def on_client_suicide(self, client):
     with self.broadcastbuffer(1, True) as cds:
         swh.put_died(cds, client, client)
     client.state.state = client_states.CS_DEAD