def centre_announce(text):
    """Broadcast a message to the centre of everyone's screen.

    Arguments:
    text - The text to announce.

    """
    es.centermsg(text)
Beispiel #2
0
    def start(self):
        global started, changed
        self.useridList = es.getUseridList()
        
        for userid in self.useridList:
            player = playerlib.getPlayer(userid)
            if player.team < 2 or player.isdead:
                self.useridList.remove(userid)        
        
        if len(self.useridList) < 3:
            es.centermsg("You have to have more than 3 players to play the Assassin mod!")
            return None
        
        if self.useridList:
            ultilib.removeMapObjective()
            
            if self.manualAssassinID:
                self.assassinID = self.manualAssassinID
                self.useridList.remove(self.assassinID)
            else:
                self.assassinID = self._selectOneUserid()
                
            if self.manualVipID:
                self.vipID = self.manualVipID
                self.useridList.remove(self.vipID)
            else:
                self.vipID = self._selectOneUserid()        
            
            self.vip = VIP(self.vipID)
            self.assassin = Assassin(self.assassinID)

            self.guards = {}
            for userid in self.useridList:
                self.guards[userid] = Guard(userid)

            self.vip.prepare(self)
            self.assassin.prepare(self)
            for userid in self.guards.keys():
                self.guards[userid].prepare(self)

            self.aInvisibilityInfo = {"userid": None, "weapon": None, "color": None}
            
            if not changed:

                es.set("mp_limitteams", 20)
                es.set("mp_friendlyfire", 1)
                es.set("mp_autoteambalance", 0)
                es.set("sv_alltalk", 1)
                changed = True
            started = True
            roundtime = int(float(es.ServerVar("mp_roundtime")) * 60.0)
            roundtime += int(float(es.ServerVar("mp_freezetime")) * 60.0)
            gamethread.cancelDelayed("vipwins")
            gamethread.delayedname(roundtime,"vipwins", self.vipWins)
            es.msg("#multi", "#green[UltiAssassin 1.1]#defaultYou're playing the UltiAssassin!")
            
        self.started = True
def _count_down(amount, bombType, userid):
    if amount:
        es.centermsg(amount)
        amount -= 1
        gamethread.delayedname(1, '%s_%s' % (bombType, userid), _count_down,
                               (amount, bombType, userid))
        es.emitsound('player', userid, xa_adminbomb_sound, '1.0', '0.7')
        r, g, b, a = str(xa_adminbomb_beaconcolor).split()
        location = es.getplayerlocation(userid)
        effectlib.drawCircle(location,
                             150,
                             steps=50,
                             model="materials/sprites/laser.vmt",
                             seconds=0.2,
                             width=20,
                             endwidth=10,
                             red=r,
                             green=g,
                             blue=b,
                             brightness=a,
                             speed=70)
    elif bombType == "timebomb":
        for index in es.createentitylist('env_explosion'):
            es.server.cmd('es_xremove %s' % index)
        es.server.cmd('es_xgive %s env_explosion' % userid)
        es.server.cmd('es_xfire %s env_explosion addoutput "imagnitude 300"' %
                      userid)
        es.server.cmd(
            'es_xfire %s env_explosion addoutput "iradiusoverride 600"' %
            userid)
        es.setindexprop(es.ServerVar('eventscripts_lastgive'),
                        'CBaseEntity.m_hOwnerEntity',
                        es.getplayerhandle(userid))
        es.server.cmd('es_xfire %s env_explosion explode' % userid)
        es.server.cmd('es_xfire %s env_explosion kill' % userid)
        players[userid]['timebombed'] = 0
    elif bombType == "freezebomb":
        x, y, z = es.getplayerlocation(userid)
        for player in es.getUseridList():
            xx, yy, zz = es.getplayerlocation(player)
            if (((xx - x)**2 + (yy - y)**2 + (zz - z)**2)**0.5) <= 300:
                player = playerlib.Player(userid)
                gamethread.queue(player.set, ('noclip', 1))
                gamethread.queue(player.set, ('freeze', 1))
        players[userid]['freezebombed'] = 0
    elif bombType == "firebomb":
        x, y, z = es.getplayerlocation(userid)
        for player in es.getUseridList():
            xx, yy, zz = es.getplayerlocation(player)
            if (((xx - x)**2 + (yy - y)**2 + (zz - z)**2)**0.5) <= 300:
                es.server.cmd('es_xfire %s !self ignite' % player)
                gamethread.delayedname(xa_adminfirebomb_duration,
                                       'remove_fire', _extinguish, player)
        players[userid]['firebombed'] = 0
Beispiel #4
0
def doWork(arg1, arg2):
    global checkTeabag
    victim      = playerlib.getPlayer(arg1)
    attacker    = playerlib.getPlayer(arg2)
    isDucking   = es.getplayerprop(arg2, 'CBasePlayer.localdata.m_Local.m_bDucked')
    
    victimPos   = victim.x + victim.y + victim.z
    attackerPos = attacker.x + attacker.y + attacker.z
    if (attackerPos - victimPos) <= 50: # Change this to change sensitivity
        if isDucking > 0:
            checkTeabag.stop
            es.centermsg("%s just got teabagged!!!" % victim.name)
            es.emitsound(player, arg2, 'bot/owned.wav', 1.0, 0.5)
            es.msg("#multi", "#lightgreen[#greenTea-Bag#lightgreen] %s#default has just tea-bagged #lightgreen%s#default!" % (attacker.name, victim.name))
Beispiel #5
0
    def roundStart(self, ev):
        global changed
        if not changed:
            limitteams = es.ServerVar("mp_limitteams")
            autobalance = es.ServerVar("mp_autoteambalance")
            es.server.queuecmd("bot_knives_only")
            if limitteams < 15:
                limitteams.set(20)

            if autobalance == 1:
                autobalance.set(0)
            changed = True
        
        if noMapObjective:
            ultilib.removeMapObjective(buyzone=False)
            es.centermsg("Kill the zombies and survive!!")
        
        es.msg("#multi", "#green[UltiZombie 1.0]#defaultYou're playing the single player/coop zombie mod by Ulti")
        es.centermsg("Do your objective or kill all zombies!")
def _count_down(amount, bombType, userid): 
    if amount: 
        es.centermsg(amount) 
        amount -= 1 
        gamethread.delayedname(1, '%s_%s'%(bombType, userid), _count_down, (amount, bombType, userid)) 
        es.emitsound('player', userid, xa_adminbomb_sound, '1.0', '0.7') 
        r, g, b, a = str(xa_adminbomb_beaconcolor).split() 
        location = es.getplayerlocation(userid) 
        effectlib.drawCircle(location, 150, steps=50, model="materials/sprites/laser.vmt", seconds=0.2, width=20, endwidth=10, red=r, green=g, blue=b, brightness = a, speed=70) 
    elif bombType == "timebomb": 
        for index in es.createentitylist('env_explosion'): 
            es.server.cmd('es_xremove %s'%index) 
        es.server.cmd('es_xgive %s env_explosion'%userid) 
        es.server.cmd('es_xfire %s env_explosion addoutput "imagnitude 300"'%userid) 
        es.server.cmd('es_xfire %s env_explosion addoutput "iradiusoverride 600"'%userid) 
        es.setindexprop(es.ServerVar('eventscripts_lastgive'), 'CBaseEntity.m_hOwnerEntity', es.getplayerhandle(userid)) 
        es.server.cmd('es_xfire %s env_explosion explode'%userid) 
        es.server.cmd('es_xfire %s env_explosion kill'%userid) 
        players[userid]['timebombed'] = 0 
    elif bombType == "freezebomb": 
        x,y,z = es.getplayerlocation(userid) 
        for player in es.getUseridList(): 
            xx,yy,zz = es.getplayerlocation(player) 
            if (((xx - x) ** 2 + (yy - y) ** 2 + (zz-z) ** 2) ** 0.5) <= 300:
                player = playerlib.Player(userid)
                gamethread.queue(player.set, ('noclip', 1))
                gamethread.queue(player.set, ('freeze', 1))
        players[userid]['freezebombed'] = 0 
    elif bombType == "firebomb": 
        x,y,z = es.getplayerlocation(userid) 
        for player in es.getUseridList(): 
            xx,yy,zz = es.getplayerlocation(player) 
            if (((xx - x) ** 2 + (yy - y) ** 2 + (zz-z) ** 2) ** 0.5) <= 300: 
                es.server.cmd('es_xfire %s !self ignite'%player) 
                gamethread.delayedname(xa_adminfirebomb_duration, 'remove_fire', _extinguish, player) 
        players[userid]['firebombed'] = 0 
Beispiel #7
0
def centermsg(argv):
  es.centermsg(*argv)
def centermsg(argv):
    es.centermsg(*argv)
Beispiel #9
0
 def playerDeath(self, ev):
     if es.isbot(ev["userid"]) and not es.isbot(ev["attacker"]):
         self.humans[int(ev["attacker"])].health += int(es.ServerVar("uz_healthadd"))
     elif not es.isbot(ev["userid"]):
         es.centermsg("%s was killed in action!" % ev["es_username"])
Beispiel #10
0
 def bombBeginPlant(self, ev):
     es.centermsg("%s is planting the bomb!" % ev["es_username"])
Beispiel #11
0
 def hostageFollows(self, ev):
     es.centermsg("%s is rescuing the hostages" % ev["es_username"])
Beispiel #12
0
def round_start(ev):
    es.centermsg("FLASHBANG WAR!")
    es.msg("#multi", "#green[UltiFlashWar 1.0]#defaultYou're playing the the flashbang war mod by Ulti")
Beispiel #13
0
 def vipWins(self):
     """Executes when the vip team wins"""
     global started
     self.assassin.suicide()
     es.centermsg("The VIP survives!")
     started = False