Пример #1
0
 def checkStar(val):
     self._powersGiven = True
     if spaz.isAlive():
         setattr(spaz.node, 'invincible', val)
     if val and spaz.isAlive():
         if spaz.node.frozen:
             spaz.node.handleMessage(bs.ThawMessage())
         bs.playSound(
             bs.Powerup.getFactory().superStarSound,
             position=spaz.node.position)
         spaz.colorSet = bs.Timer(100,
                                  bs.Call(colorChanger),
                                  repeat=True)
         if spaz._cursed:
             spaz._cursed = False
             # remove cursed material
             factory = spaz.getFactory()
             for attr in [
                     'materials', 'rollerMaterials'
             ]:
                 materials = getattr(spaz.node, attr)
                 if factory.curseMaterial in materials:
                     setattr(
                         spaz.node, attr,
                         tuple(m for m in materials
                               if m !=
                               factory.curseMaterial))
             spaz.node.curseDeathTime = 0
     if not val and spaz.isAlive():
         spaz.node.color = spaz.getPlayer().color
         spaz.node.highlight = spaz.getPlayer(
         ).highlight
         spaz.colorSet = None
         bs.playSound(
             bs.Powerup.getFactory().powerdownSound,
             position=spaz.node.position)
         spaz.node.billboardOpacity = 0.0
    def handleMessage(self, m):

        if isinstance(m, bs.DieMessage):
            self.body.delete()
            self.loc.delete()
            self.spawner = None
            activity = self._activity()
            if activity and not m.immediate:
                activity.handleMessage(BaseDestroyedMessage())

        elif isinstance(m, bs.OutOfBoundsMessage):
            self.body.delete()
            self.loc.delete()

        elif isinstance(m, bs.FreezeMessage):
            if not self.body.exists(): return
            if not self.frozen:
                self.frozen = True
                bs.gameTimer(10000,
                             bs.WeakCall(self.handleMessage, bs.ThawMessage()))

        elif isinstance(m, bs.ThawMessage):
            if self.frozen and self.body.exists():
                self.frozen = False

        elif isinstance(m, bs.HitMessage):
            if not self.body.exists(): return
            if m.flatDamage: damage = m.flatDamage
            if m.hitType == 'punch':
                damage = randint(1, 3) * 150
                #bs.screenMessage('hitted')
            elif m.hitSubType in ('normal', 'tnt', 'block', 'landMine',
                                  'sticky', 'impact', 'cineticTrap'):
                damage = randint(1, 3) * 300
                #bs.screenMessage('exploded')
            elif m.hitSubType in ('ice', 'iceImpact'):
                damage = randint(1, 3) * 100
                #bs.screenMessage('freezed')
                self.handleMessage(bs.FreezeMessage())
            else:
                bs.playSound(self.errorSound)
                bs.screenMessage('Unknown hit: ' + m.hitSubType)
                damage = 200

            self._onPunched(damage)
            bs.emitBGDynamics(position=self.position,
                              velocity=(0, 0, 0),
                              count=35,
                              scale=0.7,
                              chunkType='spark',
                              emitType='stickers')
            bs.playSound(bs.getSound('punch01'), 1.0, position=self.position)

            # if damage was significant, lets show it
            if damage > 350:
                bs.playSound(bs.getSound('punchStrong01'),
                             1.0,
                             position=self.position)
                bsUtils.showDamageCount('-' + str(int(damage / 10)) + "%",
                                        m.pos, m.forceDirection)

        else:
            bs.Actor.handleMessage(self, m)
    def opt(self, nick, msg):
        if self.checkDevice(nick):
            m = msg.split(' ')[0]  # command
            a = msg.split(' ', 1)[1:]  # arguments

            activity = bsInternal._getForegroundHostActivity()
            with bs.Context(activity):
                if m == '/kick':  #just remove from the game
                    if a == []:
                        bsInternal._chatMessage("MUST USE KICK ID")
                    else:
                        try:
                            kickedPlayerID = int(a[0])
                        except Exception:
                            bsInternal._chatMessage("PLAYER NOT FOUND")
                        else:
                            if not kickedPlayerID == -1:
                                bsInternal._disconnectClient(kickedPlayerID)
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            else:
                                bsInternal._chatMessage("CANT KICK HOST")

                elif m == '/list':  #list of current players id
                    bsInternal._chatMessage(
                        "==========PLAYER KICK IDS==========")
                    for i in bsInternal._getGameRoster():
                        try:
                            bsInternal._chatMessage(
                                i['players'][0]['nameFull'] + "     kick ID " +
                                str(i['clientID']))
                        except Exception:
                            pass
                    bsInternal._chatMessage(
                        "==========PLAYER IDS=============")
                    for s in bsInternal._getForegroundHostSession().players:
                        bsInternal._chatMessage(
                            s.getName() + "  ID = " +
                            str(bsInternal._getForegroundHostSession().players.
                                index(s)))

                elif m == '/ban':  # add id to banlist=autokick list
                    if a == []:
                        bsInternal._chatMessage(
                            "MUST USE PLAYER ID OR NICK"
                        )  #also FIX this every time bsInternal ChatMessage thing!! for stop loops "update-FIXED"
                    else:  #firstly try nick if nick len is more then 2 else try as player id FIX ME
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        bannedClient = i.getInputDevice(
                                        ).getClientID()
                                        bannedName = i.getName().encode(
                                            'utf-8')
                                        bannedPlayerID = i.get_account_id()
                                        foolist = []
                                        foolist = mbal.autoKickList
                                        if bannedPlayerID not in foolist:
                                            foolist.append(bannedPlayerID)
                                            bsInternal._chatMessage(
                                                str(bannedName) + " Banned")
                                            i.removeFromGame()
                                        else:
                                            bsInternal._chatMessage(
                                                str(bannedName) +
                                                " Already Banned")
                                        with open(
                                                bs.getEnvironment()
                                            ['systemScriptsDirectory'] +
                                                "/MythBAdminList.py") as file:
                                            s = [row for row in file]
                                            s[7] = 'autoKickList = ' + str(
                                                foolist) + '\n'
                                            f = open(
                                                bs.getEnvironment()
                                                ['systemScriptsDirectory'] +
                                                "/MythBAdminList.py", 'w')
                                            for i in s:
                                                f.write(i)
                                            f.close()
                                            reload(mbal)
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bannedClient = bsInternal._getForegroundHostSession(
                                ).players[int(a[0])]
                            except Exception:
                                bsInternal._chatMessage("PLAYER NOT FOUND")
                            else:
                                foolist = []
                                foolist = mbal.autoKickList
                                bannedPlayerID = bannedClient.get_account_id()
                                if bannedPlayerID not in foolist:
                                    foolist.append(bannedPlayerID)
                                    bsInternal._chatMessage(
                                        str(bannedClient) + " Banned")
                                    bannedClient.removeFromGame()
                                else:
                                    bsInternal._chatMessage(
                                        str(bannedClient) + " Already Banned")
                                with open(bs.getEnvironment()
                                          ['systemScriptsDirectory'] +
                                          "/MythBAdminList.py") as file:
                                    s = [row for row in file]
                                    s[7] = 'autoKickList = ' + str(
                                        foolist) + '\n'
                                    f = open(
                                        bs.getEnvironment()
                                        ['systemScriptsDirectory'] +
                                        "/MythBAdminList.py", 'w')
                                    for i in s:
                                        f.write(i)
                                    f.close()
                                    reload(mbal)

                elif m == '/unban':  # remove id from banlist=autokick list
                    if a == []:
                        bsInternal._chatMessage("MUST USE PLAYER ID OR NICK")
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        bannedClient = i.getInputDevice(
                                        ).getClientID()
                                        bannedName = i.getName().encode(
                                            'utf-8')
                                        bannedPlayerID = i.get_account_id()
                                        foolist = []
                                        foolist = mbal.autoKickList
                                        if bannedPlayerID in foolist:
                                            foolist.remove(bannedPlayerID)
                                            bsInternal._chatMessage(
                                                str(bannedName) +
                                                " be free now!")
                                        else:
                                            bsInternal._chatMessage(
                                                str(bannedName) +
                                                " Already Not Banned")
                                        with open(
                                                bs.getEnvironment()
                                            ['systemScriptsDirectory'] +
                                                "/MythBAdminList.py") as file:
                                            s = [row for row in file]
                                            s[7] = 'autoKickList = ' + str(
                                                foolist) + '\n'
                                            f = open(
                                                bs.getEnvironment()
                                                ['systemScriptsDirectory'] +
                                                "/MythBAdminList.py", 'w')
                                            for i in s:
                                                f.write(i)
                                            f.close()
                                            reload(mbal)
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bannedClient = bsInternal._getForegroundHostSession(
                                ).players[int(a[0])]
                            except Exception:
                                bsInternal._chatMessage("PLAYER NOT FOUND")
                            else:
                                foolist = []
                                foolist = mbal.autoKickList
                                bannedPlayerID = bannedClient.get_account_id()
                                if bannedPlayerID in foolist:
                                    foolist.remove(bannedPlayerID)
                                    bsInternal._chatMessage(
                                        str(bannedClient) + " be free now!")
                                else:
                                    bsInternal._chatMessage(
                                        str(bannedClient) +
                                        " Already Not Banned")
                                with open(bs.getEnvironment()
                                          ['systemScriptsDirectory'] +
                                          "/MythBAdminList.py") as file:
                                    s = [row for row in file]
                                    s[7] = 'autoKickList = ' + str(
                                        foolist) + '\n'
                                    f = open(
                                        bs.getEnvironment()
                                        ['systemScriptsDirectory'] +
                                        "/MythBAdminList.py", 'w')
                                    for i in s:
                                        f.write(i)
                                    f.close()
                                    reload(mbal)

                elif m == '/amnesty':  # reset blacklist
                    foolist = []
                    bsInternal._chatMessage(
                        "==========FREEDOM TO ALL==========")
                    bsInternal._chatMessage(
                        "=========BLACKLİST WIPED=========")
                    with open(bs.getEnvironment()['systemScriptsDirectory'] +
                              "/MythBAdminList.py") as file:
                        s = [row for row in file]
                        s[7] = 'autoKickList = ' + str(foolist) + '\n'
                        f = open(
                            bs.getEnvironment()['systemScriptsDirectory'] +
                            "/MythBAdminList.py", 'w')
                        for i in s:
                            f.write(i)
                        f.close()
                        reload(mbal)

                elif m == '/camera':  #change camera mode
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))
                    try:
                        if bs.getSharedObject(
                                'globals').cameraMode == 'follow':
                            bs.getSharedObject('globals').cameraMode = 'rotate'
                        else:
                            bs.getSharedObject('globals').cameraMode = 'follow'
                    except Exception:
                        bsInternal._chatMessage('AN ERROR OCCURED')

                elif m == '/maxplayers':  #set maxplayers limit
                    if a == []:
                        bsInternal._chatMessage('MUST USE NUMBERS')
                    else:
                        try:
                            bsInternal._getForegroundHostSession(
                            )._maxPlayers = int(a[0])
                            bsInternal._setPublicPartyMaxSize(int(a[0]))
                            bsInternal._chatMessage('MaxPlayers = ' +
                                                    str(int(a[0])))
                        except Exception:
                            bsInternal._chatMessage('AN ERROR OCCURED')

                elif m == '/help':  #show help
                    bsInternal._chatMessage(
                        "=====================COMMANDS=====================")
                    bsInternal._chatMessage(
                        "list-kick-remove-ban-unban-amnesty-kill-curse-end-heal"
                    )
                    bsInternal._chatMessage(
                        "freeze-thaw-headless-shield-punch-maxplayers-headlessall"
                    )
                    bsInternal._chatMessage(
                        "killall-freezeall-shieldall-punchall-camera-slow")

                elif m == '/remove':  #remove from game
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        i.removeFromGame()
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].removeFromGame()
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/curse':  #curse
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        if i.actor.exists():
                                            i.actor.curse()
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].actor.curse()
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/curseall':  #curse all
                    for i in bs.getActivity().players:
                        try:
                            if i.actor.exists():
                                i.actor.curse()
                        except Exception:
                            pass
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))

                elif m == '/kill':  #kill
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        if i.actor.exists():
                                            i.actor.node.handleMessage(
                                                bs.DieMessage())
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].actor.node.handleMessage(
                                        bs.DieMessage())
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/killall':  #kill all
                    for i in bs.getActivity().players:
                        try:
                            if i.actor.exists():
                                i.actor.node.handleMessage(bs.DieMessage())
                        except Exception:
                            pass
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))

                elif m == '/freeze':  #freeze
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        if i.actor.exists():
                                            i.actor.node.handleMessage(
                                                bs.FreezeMessage())
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].actor.node.handleMessage(
                                        bs.FreezeMessage())
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/freezeall':  #freeze all
                    for i in bs.getActivity().players:
                        try:
                            if i.actor.exists():
                                i.actor.node.handleMessage(bs.FreezeMessage())
                        except Exception:
                            pass
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))

                elif m == '/thaw':  #thaw
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        if i.actor.exists():
                                            i.actor.node.handleMessage(
                                                bs.ThawMessage())
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].actor.node.handleMessage(
                                        bs.ThawMessage())
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/thawall':  #thaw all
                    for i in bs.getActivity().players:
                        try:
                            if i.actor.exists():
                                i.actor.node.handleMessage(bs.ThawMessage())
                        except Exception:
                            pass
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))

                elif m == '/headless':  #headless
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        if i.actor.exists():
                                            i.actor.node.headModel = None
                                            i.actor.node.style = "cyborg"
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].actor.node.headModel = None
                                bs.getActivity().players[int(
                                    a[0])].actor.node.style = "cyborg"
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/headlessall':  #headless all
                    for i in bs.getActivity().players:
                        try:
                            if i.actor.exists():
                                i.actor.node.headModel = None
                                i.actor.node.style = "cyborg"
                        except Exception:
                            pass
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))

                elif m == '/heal':  #heal
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        if i.actor.exists():
                                            i.actor.node.handleMessage(
                                                bs.PowerupMessage(
                                                    powerupType='health'))
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].actor.node.handleMessage(
                                        bs.PowerupMessage(
                                            powerupType='health'))
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/healall':  #heal all
                    for i in bs.getActivity().players:
                        try:
                            if i.actor.exists():
                                i.actor.node.handleMessage(
                                    bs.PowerupMessage(powerupType='health'))
                        except Exception:
                            pass
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))

                elif m == '/shield':  #shield
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        if i.actor.exists():
                                            i.actor.node.handleMessage(
                                                bs.PowerupMessage(
                                                    powerupType='shield'))
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].actor.node.handleMessage(
                                        bs.PowerupMessage(
                                            powerupType='shield'))
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/shieldall':  #shield all
                    for i in bs.getActivity().players:
                        try:
                            if i.actor.exists():
                                i.actor.node.handleMessage(
                                    bs.PowerupMessage(powerupType='shield'))
                        except Exception:
                            pass
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))

                elif m == '/punch':  #punch
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        if i.actor.exists():
                                            i.actor.node.handleMessage(
                                                bs.PowerupMessage(
                                                    powerupType='punch'))
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].actor.node.handleMessage(
                                        bs.PowerupMessage(powerupType='punch'))
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/punchall':  #punch all
                    for i in bs.getActivity().players:
                        try:
                            if i.actor.exists():
                                i.actor.node.handleMessage(
                                    bs.PowerupMessage(powerupType='punch'))
                        except Exception:
                            pass
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))

                elif m == '/knock':  #knock him
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        if i.actor.exists():
                                            i.actor.node.handleMessage(
                                                "knockout", 5000)
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].actor.node.handleMessage(
                                        "knockout", 5000)
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/knockall':  #knock all
                    for i in bs.getActivity().players:
                        try:
                            if i.actor.exists():
                                i.actor.node.handleMessage("knockout", 5000)
                        except Exception:
                            pass
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))

                elif m == '/celebrate':  #celebrate him
                    if a == []:
                        bsInternal._chatMessage('MUST USE PLAYER ID OR NICK')
                    else:
                        if len(a[0]) > 2:
                            for i in bs.getActivity().players:
                                try:
                                    if (i.getName()).encode('utf-8') == (a[0]):
                                        if i.actor.exists():
                                            i.actor.node.handleMessage(
                                                'celebrate', 30000)
                                except Exception:
                                    pass
                            bsInternal._chatMessage(
                                bs.getSpecialChar('logoFlat'))
                        else:
                            try:
                                bs.getActivity().players[int(
                                    a[0])].actor.node.handleMessage(
                                        'celebrate', 30000)
                                bsInternal._chatMessage(
                                    bs.getSpecialChar('logoFlat'))
                            except Exception:
                                bsInternal._chatMessage('PLAYER NOT FOUND')

                elif m == '/celebrateall':  #celebrate
                    for i in bs.getActivity().players:
                        try:
                            if i.actor.exists():
                                i.actor.node.handleMessage('celebrate', 30000)
                        except Exception:
                            pass
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))

                elif m == '/slow':  # slow-mo
                    bsInternal._chatMessage(bs.getSpecialChar('logoFlat'))
                    try:
                        if bs.getSharedObject('globals').slowMotion == True:
                            bs.getSharedObject('globals').slowMotion = False
                        else:
                            bs.getSharedObject('globals').slowMotion = True
                    except Exception:
                        bsInternal._chatMessage('AN ERROR OCCURED')

                elif m == '/end':  # just end game
                    try:
                        bsInternal._getForegroundHostActivity().endGame()
                        bsInternal._chatMessage('THE END')
                    except Exception:
                        bsInternal._chatMessage('AN ERROR OCCURED')
    def opt(self, nick, msg):
        if self.checkDevice(nick):
            m = msg.split(' ')[0]  # command
            a = msg.split(' ')[1:]  # arguments

            activity = bsInternal._getForegroundHostActivity()
            with bs.Context(activity):
                if m == '/kick':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /kick name or clientID')
                    else:
                        if len(a[0]) > 3:
                            self.kickByNick(a[0])
                            bsInternal._chatMessage('Player Kicked By Admin')
                        else:
                            try:
                                s = int(a[0])
                                bsInternal._chatMessage(
                                    'Player Kicked By Admin')
                                bsInternal._disconnectClient(int(a[0]))
                            except:
                                self.kickByNick(a[0])
                elif m == '/admin':
                    clID = int(a[0])
                    for client in bsInternal._getGameRoster():
                        if client['clientID'] == clID:
                            if a[1] == 'add':
                                newadmin = client['displayString']
                                updated_admins = gph.adminHashes.append(
                                    newadmin)
                            elif a[1] == 'remove':
                                newadmin = client['displayString']
                                if newadmin in gph.adminHashes:
                                    updated_admins = gph.adminHashes.remove(
                                        newadmin)

                    with open(bs.getEnvironment()['systemScriptsDirectory'] +
                              "/getPermissionsHashes.py") as file:
                        s = [row for row in file]
                        s[0] = 'vipHashes = []' + '\n'
                        s[1] = 'adminHashes = ' + updated_admins + '\n'
                        f = open(
                            bs.getEnvironment()['systemScriptsDirectory'] +
                            "/getPermissionsHashes.py", 'w')
                        for i in s:
                            f.write(i)
                        f.close()
                elif m == '/ban':
                    clID = int(a[0])
                    for client in bsInternal._getGameRoster():
                        if client['clientID'] == clID:
                            if a[1] == 'add':
                                ban = client['displayString']
                                updated_ban = gph.ban.append(ban)
                                bs.screenMessage('Banning...')
                            elif a[1] == 'remove':
                                ban = client['displayString']
                                if ban in gph.ban:
                                    updated_ban = gph.ban.remove(ban)

                    with open(bs.getEnvironment()['systemScriptsDirectory'] +
                              "/getPermissionsHashes.py") as file:
                        s = [row for row in file]
                        s[0] = 'vipHashes = []' + '\n'
                        s[1] = 'admin = []' + '\n'
                        s[2] = 'ass = []' + '\n'
                        s[3] = 'ban = ' + updated_ban + '\n'
                        f = open(
                            bs.getEnvironment()['systemScriptsDirectory'] +
                            "/getPermissionsHashes.py", 'w')
                        for i in s:
                            f.write(i)
                        f.close()
                elif m == '/ass':
                    clID = int(a[0])
                    for client in bsInternal._getGameRoster():
                        if client['clientID'] == clID:
                            if a[1] == 'add':
                                ass = client['displayString']
                                updated_ass = gph.ass.append(ass)
                            elif a[1] == 'remove':
                                ass = client['displayString']
                                if ass in gph.ass:
                                    updated_ass = gph.ass.remove(ass)

                    with open(bs.getEnvironment()['systemScriptsDirectory'] +
                              "/getPermissionsHashes.py") as file:
                        s = [row for row in file]
                        s[0] = 'vipHashes = []' + '\n'
                        s[1] = 'admin= []' + '\n'
                        s[2] = 'ass = ' + updated_admins + '\n'
                        f = open(
                            bs.getEnvironment()['systemScriptsDirectory'] +
                            "/getPermissionsHashes.py", 'w')
                        for i in s:
                            f.write(i)
                        f.close()
                elif m == '/vip':
                    clID = int(a[0])
                    for client in bsInternal._getGameRoster():
                        if client['clientID'] == clID:
                            if a[1] == 'add':
                                vip = client['displayString']
                                updated_vip = gph.vip.append(vip)
                            elif a[1] == 'remove':
                                vip = client['displayString']
                                if vip in gph.vip:
                                    updated_vip = gph.vip.remove(vip)

                    with open(bs.getEnvironment()['systemScriptsDirectory'] +
                              "/getPermissionsHashes.py") as file:
                        s = [row for row in file]
                        s[0] = 'vip = ' + updated_admins + '\n'
                        f = open(
                            bs.getEnvironment()['systemScriptsDirectory'] +
                            "/getPermissionsHashes.py", 'w')
                        for i in s:
                            f.write(i)
                        f.close()

                elif m == '/list':
                    bsInternal._chatMessage(
                        "======== FOR /kick ONLY: ========")
                    for i in bsInternal._getGameRoster():
                        try:
                            bsInternal._chatMessage(
                                i['players'][0]['nameFull'] + "     (/kick " +
                                str(i['clientID']) + ")")
                        except:
                            pass
                    bsInternal._chatMessage(
                        "==================================")
                    bsInternal._chatMessage(
                        "======= For other commands: =======")
                    for s in bsInternal._getForegroundHostSession().players:
                        bsInternal._chatMessage(
                            s.getName() +
                            "     " + str(bsInternal._getForegroundHostSession(
                            ).players.index(s)))
                elif m == '/ooh':
                    if a is not None and len(a) > 0:
                        s = int(a[0])

                        def oohRecurce(c):
                            bs.playSound(bs.getSound('ooh'), volume=2)
                            c -= 1
                            if c > 0:
                                bs.gameTimer(
                                    int(a[1]) if len(a) > 1
                                    and a[1] is not None else 1000,
                                    bs.Call(oohRecurce, c=c))

                        oohRecurce(c=s)
                    else:
                        bs.playSound(bs.getSound('ooh'), volume=2)
                elif m == '/playSound':
                    if a is not None and len(a) > 1:
                        s = int(a[1])

                        def oohRecurce(c):
                            bs.playSound(bs.getSound(str(a[0])), volume=2)
                            c -= 1
                            if c > 0:
                                bs.gameTimer(
                                    int(a[2]) if len(a) > 2
                                    and a[2] is not None else 1000,
                                    bs.Call(oohRecurce, c=c))

                        oohRecurce(c=s)
                    else:
                        bs.playSound(bs.getSound(str(a[0])), volume=2)
                elif m == '/quit':
                    bsInternal.quit()
                elif m == '/nv':
                    if self.tint is None:
                        self.tint = bs.getSharedObject('globals').tint
                    bs.getSharedObject('globals').tint = (
                        0.5, 0.7,
                        1) if a == [] or not a[0] == u'off' else self.tint
                elif m == '/freeze':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /freeze all or number of list')
                    else:
                        if a[0] == 'all':
                            for i in bs.getSession().players:
                                try:
                                    i.actor.node.handleMessage(
                                        bs.FreezeMessage())
                                except:
                                    pass
                        else:
                            bs.getSession().players[int(
                                a[0])].actor.node.handleMessage(
                                    bs.FreezeMessage())
                elif m == '/thaw':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /thaw all or number of list')
                    else:
                        if a[0] == 'all':
                            for i in bs.getSession().players:
                                try:
                                    i.actor.node.handleMessage(
                                        bs.ThawMessage())
                                except:
                                    pass
                        else:
                            bs.getSession().players[int(
                                a[0])].actor.node.handleMessage(
                                    bs.ThawMessage())
                elif m == '/sleep':
                    if a == []:
                        bsInternal._chatMessage('Using: number of list')
                    else:
                        if a[0] == 'all':
                            for i in bs.getSession().players:
                                try:
                                    i.actor.node.handleMessage(
                                        "knockout", 5000)
                                except:
                                    pass
                        else:
                            bs.getSession().players[int(
                                a[0])].actor.node.handleMessage(
                                    "knockout", 5000)

                elif m == '/kill':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /kill all or number of list')
                    else:
                        if a[0] == 'all':
                            for i in bs.getSession().players:
                                try:
                                    i.actor.node.handleMessage(bs.DieMessage())
                                except:
                                    pass
                        else:
                            bs.getSession().players[int(
                                a[0])].actor.node.handleMessage(
                                    bs.DieMessage())
                elif m == '/curse':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /curse all or number of list')
                    else:
                        if a[0] == 'all':
                            for i in bs.getSession().players:
                                try:
                                    i.actor.curse()
                                except:
                                    pass
                        else:
                            bs.getSession().players[int(a[0])].actor.curse()
                elif m == '/box':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /box all or number of list')
                    else:
                        try:
                            if a[0] == 'all':
                                for i in bs.getSession().players:
                                    try:
                                        i.actor.node.torsoModel = bs.getModel(
                                            "tnt")
                                    except:
                                        print 'error'
                                for i in bs.getSession().players:
                                    try:
                                        i.actor.node.colorMaskTexture = bs.getTexture(
                                            "tnt")
                                    except:
                                        print 'error'
                                for i in bs.getSession().players:
                                    try:
                                        i.actor.node.colorTexture = bs.getTexture(
                                            "tnt")
                                    except:
                                        print 'error'
                                for i in bs.getSession().players:
                                    try:
                                        i.actor.node.highlight = (1, 1, 1)
                                    except:
                                        print 'error'
                                for i in bs.getSession().players:
                                    try:
                                        i.actor.node.color = (1, 1, 1)
                                    except:
                                        print 'error'
                                for i in bs.getSession().players:
                                    try:
                                        i.actor.node.headModel = None
                                    except:
                                        print 'error'
                                for i in bs.getSession().players:
                                    try:
                                        i.actor.node.style = "cyborg"
                                    except:
                                        print 'error'
                            else:
                                n = int(a[0])
                                bs.getSession().players[
                                    n].actor.node.torsoModel = bs.getModel(
                                        "tnt")
                                bs.getSession().players[
                                    n].actor.node.colorMaskTexture = bs.getTexture(
                                        "tnt")
                                bs.getSession().players[
                                    n].actor.node.colorTexture = bs.getTexture(
                                        "tnt")
                                bs.getSession(
                                ).players[n].actor.node.highlight = (1, 1, 1)
                                bs.getSession().players[n].actor.node.color = (
                                    1, 1, 1)
                                bs.getSession(
                                ).players[n].actor.node.headModel = None
                                bs.getSession(
                                ).players[n].actor.node.style = "cyborg"
                        except:
                            bs.screenMessage('Ошибка!', color=(1, 0, 0))
                elif m == '/spaz':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /spaz all or number of list')
                    else:
                        try:
                            if a[0] == 'all':
                                for i in bs.getSession().players:
                                    t = i.actor.node
                                    try:

                                        t.colorTexture = bs.getTexture(a[1] +
                                                                       "Color")
                                        t.colorMaskTexture = bs.getTexture(
                                            a[1] + "ColorMask")

                                        t.headModel = bs.getModel(a[1] +
                                                                  "Head")
                                        t.torsoModel = bs.getModel(a[1] +
                                                                   "Torso")
                                        t.pelvisModel = bs.getModel(a[1] +
                                                                    "Pelvis")
                                        t.upperArmModel = bs.getModel(
                                            a[1] + "UpperArm")
                                        t.foreArmModel = bs.getModel(a[1] +
                                                                     "ForeArm")
                                        t.handModel = bs.getModel(a[1] +
                                                                  "Hand")
                                        t.upperLegModel = bs.getModel(
                                            a[1] + "UpperLeg")
                                        t.lowerLegModel = bs.getModel(
                                            a[1] + "LowerLeg")
                                        t.toesModel = bs.getModel(a[1] +
                                                                  "Toes")
                                        t.style = a[1]
                                    except:
                                        print 'error'
                            else:
                                n = int(a[0])
                                t = bs.getSession().players[n].actor.node
                                t.colorTexture = bs.getTexture(a[1] + "Color")
                                t.colorMaskTexture = bs.getTexture(a[1] +
                                                                   "ColorMask")

                                t.headModel = bs.getModel(a[1] + "Head")
                                t.torsoModel = bs.getModel(a[1] + "Torso")
                                t.pelvisModel = bs.getModel(a[1] + "Pelvis")
                                t.upperArmModel = bs.getModel(a[1] +
                                                              "UpperArm")
                                t.foreArmModel = bs.getModel(a[1] + "ForeArm")
                                t.handModel = bs.getModel(a[1] + "Hand")
                                t.upperLegModel = bs.getModel(a[1] +
                                                              "UpperLeg")
                                t.lowerLegModel = bs.getModel(a[1] +
                                                              "LowerLeg")
                                t.toesModel = bs.getModel(a[1] + "Toes")
                                t.style = a[1]
                        except:
                            bs.screenMessage('error', color=(1, 0, 0))
                elif m == '/inv':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /spaz all or number of list')
                    else:
                        try:
                            if a[0] == 'all':
                                for i in bs.getSession().players:
                                    t = i.actor.node
                                    try:

                                        t.headModel = None
                                        t.torsoModel = None
                                        t.pelvisModel = None
                                        t.upperArmModel = None
                                        t.foreArmModel = None
                                        t.handModel = None
                                        t.upperLegModel = None
                                        t.lowerLegModel = None
                                        t.toesModel = None
                                        t.style = "cyborg"
                                    except:
                                        print 'error'
                            else:
                                n = int(a[0])
                                t = bs.getSession().players[n].actor.node

                                t.headModel = None
                                t.torsoModel = None
                                t.pelvisModel = None
                                t.upperArmModel = None
                                t.foreArmModel = None
                                t.handModel = None
                                t.upperLegModel = None
                                t.lowerLegModel = None
                                t.toesModel = None
                                t.style = "cyborg"
                        except:
                            bs.screenMessage('error', color=(1, 0, 0))

                elif m == '/tex':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /tex all or number of list')
                    else:
                        try:
                            if a[0] == 'all':
                                for i in bs.getSession().players:
                                    try:
                                        i.actor.node.colorMaskTexture = bs.getTexture(
                                            "egg1")
                                    except:
                                        print 'error'
                                for i in bs.getSession().players:
                                    try:
                                        i.actor.node.colorTexture = bs.getTexture(
                                            "egg1")
                                    except:
                                        print 'error'
                            else:
                                n = int(a[0])
                                bs.getSession().players[
                                    n].actor.node.colorMaskTexture = bs.getTexture(
                                        "egg1")
                                bs.getSession().players[
                                    n].actor.node.colorTexture = bs.getTexture(
                                        "egg1")
                        except:
                            bs.screenMessage('Ошибка!', color=(1, 0, 0))

                elif m == '/remove':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /remove all or number of list')
                    else:
                        if a[0] == 'all':
                            for i in bs.getSession().players:
                                try:
                                    i.removeFromGame()
                                except:
                                    pass
                        else:
                            bs.getSession().players[int(a[0])].removeFromGame()
                elif m == '/end':
                    try:
                        bsInternal._getForegroundHostActivity().endGame()
                    except:
                        pass
                elif m == '/hug':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /hug all or number of list')
                    else:
                        try:
                            if a[0] == 'all':
                                try:
                                    bsInternal._getForegroundHostActivity(
                                    ).players[
                                        0].actor.node.holdNode = bsInternal._getForegroundHostActivity(
                                        ).players[1].actor.node
                                except:
                                    pass
                                try:
                                    bsInternal._getForegroundHostActivity(
                                    ).players[
                                        1].actor.node.holdNode = bsInternal._getForegroundHostActivity(
                                        ).players[0].actor.node
                                except:
                                    pass
                                try:
                                    bsInternal._getForegroundHostActivity(
                                    ).players[
                                        3].actor.node.holdNode = bsInternal._getForegroundHostActivity(
                                        ).players[2].actor.node
                                except:
                                    pass
                                try:
                                    bsInternal._getForegroundHostActivity(
                                    ).players[
                                        4].actor.node.holdNode = bsInternal._getForegroundHostActivity(
                                        ).players[3].actor.node
                                except:
                                    pass
                                try:
                                    bsInternal._getForegroundHostActivity(
                                    ).players[
                                        5].actor.node.holdNode = bsInternal._getForegroundHostActivity(
                                        ).players[6].actor.node
                                except:
                                    pass
                                try:
                                    bsInternal._getForegroundHostActivity(
                                    ).players[
                                        6].actor.node.holdNode = bsInternal._getForegroundHostActivity(
                                        ).players[7].actor.node
                                except:
                                    pass
                            else:
                                bsInternal._getForegroundHostActivity(
                                ).players[int(
                                    a[0]
                                )].actor.node.holdNode = bsInternal._getForegroundHostActivity(
                                ).players[int(a[1])].actor.node
                        except:
                            bs.screenMessage('Ошибка!', color=(1, 0, 0))
                elif m == '/gm':
                    if a == []:
                        for i in range(len(activity.players)):
                            if activity.players[i].getName().encode(
                                    'utf-8').find(
                                        nick.encode('utf-8').replace(
                                            '...', '').replace(':', '')) != -1:
                                activity.players[
                                    i].actor.node.hockey = activity.players[
                                        i].actor.node.hockey == False
                                activity.players[
                                    i].actor.node.invincible = activity.players[
                                        i].actor.node.invincible == False
                                activity.players[
                                    i].actor._punchPowerScale = 5 if activity.players[
                                        i].actor._punchPowerScale == 1.2 else 1.2
                    else:
                        activity.players[int(
                            a[0])].actor.node.hockey = activity.players[int(
                                a[0])].actor.node.hockey == False
                        activity.players[int(
                            a[0])].actor.node.invincible = activity.players[
                                int(a[0])].actor.node.invincible == False
                        activity.players[int(
                            a[0]
                        )].actor._punchPowerScale = 5 if activity.players[int(
                            a[0])].actor._punchPowerScale == 1.2 else 1.2
                elif m == '/tint':
                    if a == []:
                        bsInternal._chatMessage('Using: /tint R G B')
                        bsInternal._chatMessage('OR')
                        bsInternal._chatMessage('Using: /tint r bright speed')
                    else:
                        if a[0] == 'r':
                            m = 1.3 if a[1] is None else float(a[1])
                            s = 1000 if a[2] is None else float(a[2])
                            bsUtils.animateArray(
                                bs.getSharedObject('globals'), 'tint', 3, {
                                    0: (1 * m, 0, 0),
                                    s: (0, 1 * m, 0),
                                    s * 2: (0, 0, 1 * m),
                                    s * 3: (1 * m, 0, 0)
                                }, True)
                        else:
                            try:
                                if a[1] is not None:
                                    bs.getSharedObject('globals').tint = (
                                        float(a[0]), float(a[1]), float(a[2]))
                                else:
                                    bs.screenMessage('Error!', color=(1, 0, 0))
                            except:
                                bs.screenMessage('Error!', color=(1, 0, 0))
                elif m == 'pause':
                    bs.getSharedObject('globals').paused = bs.getSharedObject(
                        'globals').paused == False
                elif m == '/sm':
                    bs.getSharedObject(
                        'globals').slowMotion = bs.getSharedObject(
                            'globals').slowMotion == False
                elif m == '/bunny':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /bunny count owner(number of list)')
                    import BuddyBunny
                    for i in range(int(a[0])):
                        p = bs.getSession().players[int(a[1])]
                        if not 'bunnies' in p.gameData:
                            p.gameData['bunnies'] = BuddyBunny.BunnyBotSet(p)
                        p.gameData['bunnies'].doBunny()
                elif m == '/cameraMode':
                    try:
                        if bs.getSharedObject(
                                'globals').cameraMode == 'follow':
                            bs.getSharedObject('globals').cameraMode = 'rotate'
                        else:
                            bs.getSharedObject('globals').cameraMode = 'follow'
                    except:
                        pass
                elif m == '/lm':
                    arr = []
                    for i in range(100):
                        try:
                            arr.append(bsInternal._getChatMessages()[-1 - i])
                        except:
                            pass
                    arr.reverse()
                    for i in arr:
                        bsInternal._chatMessage(i)
                elif m == '/gp':
                    if a == []:
                        bsInternal._chatMessage('Using: /gp number of list')
                    else:
                        s = bsInternal._getForegroundHostSession()
                        for i in s.players[int(
                                a[0])].getInputDevice()._getPlayerProfiles():
                            try:
                                bsInternal._chatMessage(i)
                            except:
                                pass
                elif m == '/icy':
                    bsInternal._getForegroundHostActivity().players[int(
                        a[0]
                    )].actor.node = bsInternal._getForegroundHostActivity(
                    ).players[int(a[1])].actor.node
                elif m == '/fly':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /fly all or number of list')
                    else:
                        if a[0] == 'all':
                            for i in bsInternal._getForegroundHostActivity(
                            ).players:
                                i.actor.node.fly = True
                        else:
                            bsInternal._getForegroundHostActivity(
                            ).players[int(
                                a[0]
                            )].actor.node.fly = bsInternal._getForegroundHostActivity(
                            ).players[int(a[0])].actor.node.fly == False
                elif m == '/floorReflection':
                    bs.getSharedObject(
                        'globals').floorReflection = bs.getSharedObject(
                            'globals').floorReflection == False
                elif m == '/ac':
                    if a == []:
                        bsInternal._chatMessage('Using: /ac R G B')
                        bsInternal._chatMessage('OR')
                        bsInternal._chatMessage('Using: /ac r bright speed')
                    else:
                        if a[0] == 'r':
                            m = 1.3 if a[1] is None else float(a[1])
                            s = 1000 if a[2] is None else float(a[2])
                            bsUtils.animateArray(
                                bs.getSharedObject('globals'), 'ambientColor',
                                3, {
                                    0: (1 * m, 0, 0),
                                    s: (0, 1 * m, 0),
                                    s * 2: (0, 0, 1 * m),
                                    s * 3: (1 * m, 0, 0)
                                }, True)
                        else:
                            try:
                                if a[1] is not None:
                                    bs.getSharedObject(
                                        'globals').ambientColor = (float(a[0]),
                                                                   float(a[1]),
                                                                   float(a[2]))
                                else:
                                    bs.screenMessage('Error!', color=(1, 0, 0))
                            except:
                                bs.screenMessage('Error!', color=(1, 0, 0))
                elif m == '/iceOff':
                    try:
                        activity.getMap().node.materials = [
                            bs.getSharedObject('footingMaterial')
                        ]
                        activity.getMap().isHockey = False
                    except:
                        pass
                    try:
                        activity.getMap().floor.materials = [
                            bs.getSharedObject('footingMaterial')
                        ]
                        activity.getMap().isHockey = False
                    except:
                        pass
                    for i in activity.players:
                        i.actor.node.hockey = False
                elif m == '/maxPlayers':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /maxPlayers count of players')
                    else:
                        try:
                            bsInternal._getForegroundHostSession(
                            )._maxPlayers = int(a[0])
                            bsInternal._setPublicPartyMaxSize(int(a[0]))
                            bsInternal._chatMessage('Players limit set to ' +
                                                    str(int(a[0])))
                        except:
                            bs.screenMessage('Error!', color=(1, 0, 0))
                elif m == '/heal':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /heal all or number of list')
                    else:
                        try:
                            bsInternal._getForegroundHostActivity().players[
                                int(a[0])].actor.node.handleMessage(
                                    bs.PowerupMessage(powerupType='health'))
                        except:
                            bs.screenMessage('Error!', color=(1, 0, 0))
                elif m == '/reflections':
                    if a == [] or len(a) < 2:
                        bsInternal._chatMessage(
                            'Using: /reflections type(1/0) scale')
                    rs = [int(a[1])]
                    type = 'soft' if int(a[0]) == 0 else 'powerup'
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).node.reflection = type
                        bsInternal._getForegroundHostActivity().getMap(
                        ).node.reflectionScale = rs
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).bg.reflection = type
                        bsInternal._getForegroundHostActivity().getMap(
                        ).bg.reflectionScale = rs
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).floor.reflection = type
                        bsInternal._getForegroundHostActivity().getMap(
                        ).floor.reflectionScale = rs
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).center.reflection = type
                        bsInternal._getForegroundHostActivity().getMap(
                        ).center.reflectionScale = rs
                    except:
                        pass
                elif m == '/shatter':
                    if a == []:
                        bsInternal._chatMessage(
                            'Using: /shatter all or number of list')
                    else:
                        if a[0] == 'all':
                            for i in bsInternal._getForegroundHostActivity(
                            ).players:
                                i.actor.node.shattered = int(a[1])
                        else:
                            bsInternal._getForegroundHostActivity().players[
                                int(a[0])].actor.node.shattered = int(a[1])
                elif m == '/cm':
                    if a == []:
                        time = 8000
                    else:
                        time = int(a[0])

                        op = 0.08
                        std = bs.getSharedObject('globals').vignetteOuter
                        bsUtils.animateArray(
                            bs.getSharedObject('globals'), 'vignetteOuter', 3,
                            {
                                0: bs.getSharedObject('globals').vignetteOuter,
                                17000: (0, 1, 0)
                            })

                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).node.opacity = op
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).bg.opacity = op
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).bg.node.opacity = op
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).node1.opacity = op
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).node2.opacity = op
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).node3.opacity = op
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).steps.opacity = op
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).floor.opacity = op
                    except:
                        pass
                    try:
                        bsInternal._getForegroundHostActivity().getMap(
                        ).center.opacity = op
                    except:
                        pass

                    def off():
                        op = 1
                        try:
                            bsInternal._getForegroundHostActivity().getMap(
                            ).node.opacity = op
                        except:
                            pass
                        try:
                            bsInternal._getForegroundHostActivity().getMap(
                            ).bg.opacity = op
                        except:
                            pass
                        try:
                            bsInternal._getForegroundHostActivity().getMap(
                            ).bg.node.opacity = op
                        except:
                            pass
                        try:
                            bsInternal._getForegroundHostActivity().getMap(
                            ).node1.opacity = op
                        except:
                            pass
                        try:
                            bsInternal._getForegroundHostActivity().getMap(
                            ).node2.opacity = op
                        except:
                            pass
                        try:
                            bsInternal._getForegroundHostActivity().getMap(
                            ).node3.opacity = op
                        except:
                            pass
                        try:
                            bsInternal._getForegroundHostActivity().getMap(
                            ).steps.opacity = op
                        except:
                            pass
                        try:
                            bsInternal._getForegroundHostActivity().getMap(
                            ).floor.opacity = op
                        except:
                            pass
                        try:
                            bsInternal._getForegroundHostActivity().getMap(
                            ).center.opacity = op
                        except:
                            pass
                        bsUtils.animateArray(
                            bs.getSharedObject('globals'), 'vignetteOuter', 3,
                            {
                                0: bs.getSharedObject('globals').vignetteOuter,
                                100: std
                            })

                    bs.gameTimer(time, bs.Call(off))

                elif m == 'help':
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help1').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help2').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help3').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help4').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help5').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help6').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help7').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help8').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help9').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help10').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help11').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help12').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help13').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help14').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help15').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help16').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help17').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help18').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help19').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help20').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help21').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help22').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help23').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help24').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help25').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help26').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help27').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help28').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help29').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help30').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help31').evaluate())
                    bsInternal._chatMessage(
                        bs.Lstr(resource='help32').evaluate())