Code: Show/Hide from asss import * chat = get_interface(I_CHAT) game = get_interface(I_GAME) def count_playing(arena): players = [ 0 ] def cb_count(p): if p.arena == arena and p.ship < SHIP_SPEC: players[0] += 1 for_each_player(cb_count) return players[0] def kill(arena, killer, killed, bounty, flags, pts, green): # promote if killer.ship != SHIP_WARBIRD: game.SetShip(killer, killer.ship - 1) # check for game over elif killer.ship == SHIP_WARBIRD: arena.leader_killcb = None chat.SendArenaMessage(arena, "Game over. %s is the winner!" % killer.p.name) # demote if killed.ship != SHIP_SHARK: game.SetShip(killed, killed.ship + 1) return pts, green def c_start_game(cmd, params, p, targ): """\ Module: <py> leader Min. players: 2 Everyone starts as Shark, kill to get ship changed. First to make a kill in a Warbird wins. """ players = count_playing(p.arena) if players >= 2: def cb_setship(i): if i.arena == arena and i.ship < SHIP_SPEC: game.SetShip(i, SHIP_SHARK) for_each_player(cb_setship) chat.SendArenaMessage(p.arena, "The Game Has Started, Begin Killing To Get Promoted. If You Are Killed You Will Get Demoted.") game.LockArena(p.arena, 0, 0, 0, 0) else: chat.SendArenaMessage(p.arena, "Not enough players, %d more needed." % (2 - players)) cmd1 = add_command("startl", c_start_game) def mm_attach(arena): arena.leader_killcb = reg_callback(CB_KILL, kill, arena) def mm_detach(arena): arena.leader_killcb = None arena.leader_cmd1 = None |
Code: Show/Hide def mm_attach(arena):
arena.leader_cmd1 = add_command("start1", c_start_game, arena) |
Code: Show/Hide #Leader by Chambahs #12-16-05 #dec 29 2005 smong #Chambahs jan 06, bugs and ect. from asss import * chat = get_interface(I_CHAT) game = get_interface(I_GAME) def count_playing(arena): players = [ 0 ] def cb_count(p): if p.arena == arena and p.ship < SHIP_SPEC: players[0] += 1 for_each_player(cb_count) return players[0] def c_start_game(cmd, params, p, targ): """\ Module: <py> leader Min. players: 2 Everyone starts as Shark, kill to get ship changed. First to make a kill in a Warbird wins. """ players = count_playing(p.arena) if players >= 2: def cb_setship(i): if i.arena == p.arena and i.ship < SHIP_SPEC: game.SetShip(i, SHIP_SHARK) for_each_player(cb_setship) chat.SendArenaMessage(p.arena, "The Leader Game Has Started By: " + p.name + ", Begin Killing To Get Promoted. If You Are Killed You Will Get Demoted.") game.LockArena(p.arena, 0, 0, 0, 0) else: chat.SendArenaMessage(p.arena, "Not Enough Players, %d More Needed." % (2 - players)) def kill(arena, killer, killed, bounty, flags, pts, green): # promote if killer.ship != SHIP_WARBIRD: game.SetShip(killer, killer.ship - 1) # check for game over players = count_playing(arena) if players < 2: arena.leader_killcb = None chat.SendArenaMessage(arena, "Game over. %s is the winner!" % killer.name) elif killer.ship == SHIP_WARBIRD: arena.leader_killcb = None chat.SendArenaMessage(arena, "Game over. %s is the winner!" % killer.name) # demote if killed.ship != SHIP_SHARK: game.SetShip(killed, killed.ship + 1) return pts, green def mm_attach(arena): arena.leader_killcb = reg_callback(CB_KILL, kill, arena) arena.leader_cmd1 = add_command("startgame", c_start_game, arena) arena.leader_cmd2 = add_command("stopgame", do_game_over, arena) def mm_detach(arena): arena.leader_killcb = None arena.leader_cmd1 = None arena.leader_cmd2 = None |