Пример #1
0
 def send_active_rooms_points(params):
     lock.acquire()
     a = Room.Room.get_active_rooms_points()
     lock.release()
     send(params[0], f"GAR~{len(a)}")
     for i in range(len(a)):
         send(params[0], f"{a[i]}")
Пример #2
0
def setup():
    global client
    # socket
    try:
        client = socket.socket()
        client.settimeout(3)
        client.connect((IP, ptr.PORT))
        client.settimeout(None)
        send(client, f"MAP~{ROOM}")
    except TimeoutError:
        print("Server seems to be shut down.")
        return setup()
    except socket.timeout:
        print("Server seems to be shut down.")
        return setup()
    except ConnectionRefusedError:
        print("Server seems to be shut down.")
        return setup()

    # window
    os.environ['SDL_VIDEO_WINDOW_POS'] = '%i,%i' % (u.GetSystemMetrics(0) // 2, 0)
    pygame.init()
    a = pygame.image.load(icon_path)
    s = pygame.display.set_mode((u.GetSystemMetrics(0) // 2, u.GetSystemMetrics(1)))
    pygame.display.set_icon(a)
    return s
Пример #3
0
 def send_points_of_room(params):
     lock.acquire()
     try:
         points = Room.Room.get_points_of(params[1])
         lock.release()
         send(params[0], f"GIT~{str(points[0])}")
     except FileNotFoundError:
         lock.release()
         Server.send_error(params[0], 7)
Пример #4
0
 def send_attribute(params):
     lock.acquire()
     try:
         atr = Unit.Unit.get_attribute(params[1])
         lock.release()
         send(params[0], f"GAB~{atr[0]}~{atr[1]}")
     except FileNotFoundError:
         lock.release()
         Server.send_error(params[0], 9)
Пример #5
0
 def create_player(params):
     lock.acquire()
     try:
         Player.Player(params[1], True, params[2])
         send(params[0], "DON")
         lock.release()
     except FileExistsError:
         lock.release()
         Server.send_error(params[0], 4)
Пример #6
0
 def create_room(params):
     lock.acquire()
     try:
         Room.Room(params[1], True, params[2], params[3])
         lock.release()
         send(params[0], "DON")
     except FileExistsError:
         lock.release()
         Server.send_error(params[0], 6)
Пример #7
0
def map_send(soc, msg):
    try:
        send(soc, msg)
        res = receive(client)
        print(f"(MAP) MSG: {msg}, RES: {res}")
        return ptr.map_parse(res, client)
    except ConnectionRefusedError:
        print("Server seems to be shut down.")
    except ConnectionAbortedError:
        print("Server seems to be shut down.")
Пример #8
0
 def delete_player(params):
     lock.acquire()
     try:
         a = Player.Player(params[1], False)
         a.delete_player()
         send(params[0], 'DON')
         lock.release()
     except FileNotFoundError:
         lock.release()
         Server.send_error(params[0], 5)
Пример #9
0
 def remove_unit(params):
     lock.acquire()
     try:
         a = Player.Player(params[1], False)
         a.remove_unit_form_db(int(params[2]))
         send(params[0], 'DON')
         lock.release()
     except FileNotFoundError:
         lock.release()
         Server.send_error(params[0], 2)
Пример #10
0
 def remove_player_from_room(params):
     lock.acquire()
     try:
         a = Room.Room(params[1], False)
         a.remove_player(params[2])
         lock.release()
         send(params[0], 'DON')
     except FileNotFoundError:
         lock.release()
         Server.send_error(params[0], 7)
     except ValueError:
         lock.release()
         Server.send_error(params[0], 5)
Пример #11
0
 def is_dead_or_ran(params):
     lock.acquire()
     try:
         a = Player.Player(params[1], False)
         res = a.is_dead_or_ran(params[2])
         send(params[0], f"GTF~{int(res)}")
         lock.release()
     except FileNotFoundError:
         lock.release()
         Server.send_error(params[0], 5)
     except IndexError:
         lock.release()
         Server.send_error(params[0], 3)
Пример #12
0
 def add_player_to_room(params):
     lock.acquire()
     try:
         a = Room.Room(params[1], False)
         a.add_player(params[2])
         lock.release()
         send(params[0], 'DON')
     except FileNotFoundError:
         lock.release()
         Server.send_error(params[0], 7)
     except IndexError:
         lock.release()
         Server.send_error(params[0], 8)
Пример #13
0
 def add_unit(params):
     lock.acquire()
     try:
         a = Player.Player(params[1], False)
         a.add_unit_by_name(params[2])
         send(params[0], 'DON')
         lock.release()
     except FileNotFoundError as e:
         lock.release()
         if "unit" in str(e):
             Server.send_error(params[0], 2)
         else:
             Server.send_error(params[0], 5)
Пример #14
0
 def send_second_player(params):
     lock.acquire()
     try:
         pnames = Room.Room.get_pnames(params[1])
         lock.release()
         pnames = pnames[0].split(',')
         if len(pnames) != 2:
             Server.send_error(params[0], 11)
             return
         pnames = [val for val in pnames if val != params[2]]
         send(params[0], f"GST~{pnames[0]}")
     except FileNotFoundError:
         lock.release()
         Server.send_error(params[0], 7)
Пример #15
0
def create_map(screen, ratios):
    res = receive(client)
    print(res, PLAYER_NUMBER)
    if PLAYER_NUMBER == 1:
        a = Map(screen, [''] * (24 * 24))
        # a.generate_tiles_from_ratio(*ratios)
        a.generate_tiles_from_config()
        send(client, f"GMP~{str(a)}")
        time.sleep(0.5)
        return a
    else:
        time.sleep(0.5)
        tiles_arr = ptr.map_parse(receive(client), client)
        print(tiles_arr)
        return Map(screen, tiles_arr)
Пример #16
0
    def send_all_units(params):
        lock.acquire()
        try:
            a = Player.Player(params[1], False)
            all_units = a.get_unit(-1)
            lock.release()
        except FileNotFoundError:
            Server.send_error(params[0], 5)
            lock.release()
            return

        send(params[0], f"GAU~{len(all_units)}")
        for unt in all_units:
            msg = "GUT~" + '~'.join([str(val) for val in unt.as_tuple()])
            send(params[0], msg)
Пример #17
0
 def send_unit(params):
     lock.acquire()
     if params[2].isdigit():
         try:
             unt = Player.Player(params[1],
                                 False).get_unit(int(params[2])).as_tuple()
         except IndexError:
             Server.send_error(params[0], 3)
             lock.release()
             return
     else:
         try:
             unt = Unit.Unit.unit_by_name(params[2]).as_tuple()
         except FileNotFoundError:
             Server.send_error(params[0], 2)
             lock.release()
             return
     msg = "GUT~" + '~'.join([str(val) for val in unt])
     send(params[0], msg)
     lock.release()
Пример #18
0
 def attack(params):
     lock.acquire()
     p1 = Player.Player(params[1], False)
     p2 = Player.Player(params[3], False)
     ranged = bool(int(params[5]))
     flank = bool(int(params[6]))
     charge = bool(int(params[7]))
     front = bool(int(params[8]))
     advantage = float(params[9])
     try:
         d, c = p1.attack(int(params[2]), p2, int(params[4]), ranged, flank,
                          charge, front, advantage)
         send(params[0], f"GDC~{d}~{c}")
         lock.release()
     except IndexError:
         lock.release()
         Server.send_error(params[0], 3)
     except ValueError:
         lock.release()
         Server.send_error(params[0], 12)
Пример #19
0
def client_send(soc, msg):
    try:
        send(soc, msg)
        res = receive(client)
        print(f"MSG: {msg}, RES: {res}")
        return ptr.client_parse(res, client)
    except ConnectionRefusedError:
        messagebox.showerror("Connection Error",
                             "Server seems to be shut down.")
        print("Server seems to be shut down.")
        return "ERR~11"
    except ConnectionAbortedError:
        messagebox.showerror("Connection Error",
                             "Server seems to be shut down.")
        print("Server seems to be shut down.")
        return "ERR~11"
    except socket.timeout:
        messagebox.showerror("Connection Error",
                             "Server seems to be shut down.")
        print("Server seems to be shut down.")
        return "ERR~11"
Пример #20
0
def handle_map(client, room, addr):
    try:
        lock.acquire()
        try:
            rooms[room].append(addr)
        except KeyError:
            rooms[room] = [addr]
        lock.release()
        while True:
            lock.acquire()
            if len(rooms[room]) == 2:
                lock.release()
                send(client, 'DON')
                break
            lock.release()

        while True:
            res = receive(client)
            if res:
                lock.acquire()
                print(res)
                for ad in rooms[room]:
                    if ad is not addr:
                        send(clients[ad], res)
                lock.release()
    except OSError as e:
        rooms[room].remove(addr)
        del clients[addr]
        for ad in rooms[room]:
            if ad is not addr:
                send(clients[ad], f"FRT")
        raise OSError(e)
Пример #21
0
 def send_to_server():
     send(client, f"GUA~{len(m.units)}")
     for unt in m.units:
         send(client, f"GSU~{str(unt)}")
Пример #22
0
import socket

from pyticario import protocol as ptr
from pyticario.network.common import receive, send

IP = socket.gethostbyname(socket.gethostname())

client = socket.socket()
client.connect((IP, ptr.PORT))

while True:
    name = input(">>> ")
    send(client, name)
    if name == "DIS":
        break
    res = receive(client)
    x = ptr.client_parse(res, client)
    if x:
        print(x)
Пример #23
0
 def is_password_valid(params):
     lock.acquire()
     send(params[0],
          f"GTF~{int(Player.Player.check_password(params[1], params[2]))}")
     lock.release()
Пример #24
0
 def done(params):
     send(params[0], "DON")
Пример #25
0
 def disconnect(params):
     send(params[0], "DON")
     params[0].close()
Пример #26
0
 def send_error(client, error_number):
     send(client, f"ERR~{error_number}")