Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import es
- import playerlib
- import popuplib
- import usermsg
- import gamethread
- from configobj import ConfigObj
- import random
- global pct
- pct = 0
- #Klassen
- class MapManager(object):
- def __init__(self):
- pass
- def remove(self):
- index = es.createentitylist('hostage_entity')
- for i in index:
- es.server.queuecmd('es_xremove %s' %(i))
- class DownloadManager(object):
- def __init__(self):
- self.downloads = []
- def add(self, path):
- if not path in self.downloads:
- self.downloads.append(path)
- def remove(self, path):
- try:
- self.downloads.remove(path)
- except:
- pass
- def activate(self):
- for i in self.downloads:
- es.stringtable('downloadables', i)
- class Clock(object):
- def __init__(self):
- self.time = float(es.ServerVar('mp_roundtime'))*60
- self.userids = []
- def start(self):
- gamethread.delayedname(1, 'clockTimer', self.tick, ())
- self.time = float(es.ServerVar('mp_roundtime'))*60
- def stop(self):
- self.time = 0
- gamethread.cancelDelayed('clockTimer')
- def tick(self):
- gamethread.delayedname(1, 'clockTimer', self.tick, ())
- self.time -= 1
- if self.time == 0:
- self.stop()
- def getTime(self):
- return self.time
- def add(self, userid):
- if userid not in self.userids:
- self.userids.append(userid)
- def remove(self, userid):
- if userid in self.userids:
- self.userids.remove(userid)
- usermsg.hudhint(userid, '')
- def send(self):
- for i in self.userids:
- min = int(self.getTime()//60)
- sec = int(self.getTime()%60)
- if sec <= 9:
- sec = '0%s' %(sec)
- usermsg.hudhint(i, 'Time left:\n%s:%s' %(min, sec))
- class TickManager(object):
- def __init__(self):
- self.tickEnabled = False
- def enable(self):
- if not self.tickEnabled:
- es.addons.registerTickListener(tickListener)
- loop()
- self.tickEnabled = True
- def disable(self):
- if self.tickEnabled:
- es.addons.unregisterTickListener(tickListener)
- gamethread.cancelDelayed('sseekLoop')
- self.tickEnabled = False
- def isEnabled(self):
- return self.tickEnabled
- class Player(object):
- def __init__(self, userid):
- self.userid = userid
- self.player = playerlib.getPlayer(userid)
- self.team = es.getplayerteam(userid)
- self.alive = False
- self.thirdView = False
- self.solidStatus = True
- self.freezeStatus = False
- self.valuesOK = False
- self.valueList = []
- self.configPopupSend = False
- self.whistle = 0
- self.weapons = 0
- self.color = 0
- self.model = None
- self.ct = False
- self.ready = False
- self.wantsToSeePopup = True
- gamethread.delayed(1, self.isReady, ())
- def isReady(self):
- self.ready = True
- def changeTeam(self, index):
- self.team = int(index)
- if self.team in (2,3):
- cnt = 0
- for i in checkValues:
- cnt += 1
- gamethread.delayed(0.2*cnt, self.checkSettings, (i))
- def death(self):
- self.alive = False
- self.firstPerson()
- self.solid()
- self.unfreeze()
- def itemPickup(self, item):
- if self.team == 2:
- if not self.ct or item != 'usp':
- self.removeWeapons()
- elif item == 'usp':
- gamethread.delayed(0.5, self.player.setClip, ('weapon_usp', 0))
- gamethread.delayed(0.5, self.player.setAmmo, ('weapon_usp', 0))
- elif self.team == 3:
- if item in ('hegrenade', 'flashbang', 'smokegrenade'):
- index = self.player.getWeaponIndex('weapon_%s' %(item))
- es.server.queuecmd('es_xremove %s' %(index))
- es.cexec(self.userid, 'lastinv')
- def weaponFire(self):
- hp = self.player.getHealth() - 4
- if hp <= 0:
- es.server.queuecmd('damage %s %s' %(self.userid, self.player.getHealth()))
- else:
- self.player.setHealth(hp)
- def say(self, text):
- if self.alive:
- if self.team == 2:
- if text == '!model':
- tell(self.userid, 'Your Model: #green%s' %(self.model))
- elif text == '!t':
- infoPopup.sendTPopup(self.userid)
- elif self.team == 3:
- if text == '!ct':
- if self.weapons < 2:
- gunPopup.send(self.userid)
- if text == '!cfg' and not self.configPopupSend:
- infoPopup.sendConfigPopup(self.userid)
- self.configPopupSend = True
- def removeWeapons(self):
- es.server.queuecmd('es_xgive %s player_weaponstrip' %(self.userid))
- es.server.queuecmd('es_xfire %s player_weaponstrip strip' %(self.userid))
- if self.ct:
- try:
- es.server.queuecmd('es_xgive %s weapon_usp' %(self.userid))
- gamethread.delayed(0.5, self.player.setClip, ('weapon_usp', 0))
- gamethread.delayed(0.5, self.player.setAmmo, ('weapon_usp', 0))
- except:
- pass
- def prepare(self):
- es.server.queuecmd('es_xfire %s func_buyzone disable' %(self.userid))
- es.server.queuecmd('es_xfire %s func_breakable break' %(self.userid))
- es.server.queuecmd('es_xfire %s func_breakable_surf break' %(self.userid))
- self.whiste = 0
- self.weapons = 0
- self.color = 0
- self.model = None
- self.ct = False
- self.firstPerson()
- self.solid()
- self.unfreeze()
- if self.team == 2:
- self.prepareHide()
- elif self.team == 3:
- self.prepareSeek()
- self.alive = True
- def prepareHide(self):
- self.removeWeapons()
- if curMap in modellist:
- tmp = random.randint(1, len(modellist[curMap].keys()))
- self.player.setModel(modellist[curMap][tmp][1])
- tell(self.userid, 'Your new Model: #green%s' %(modellist[curMap][tmp][0]))
- self.model = modellist[curMap][tmp][0]
- self.player.setSpeed(1.3)
- def prepareSeek(self):
- usermsg.fade(self.userid, 1, 2, 15050, 2, 2, 2, 255)
- self.player.freeze(1)
- gamethread.delayed(31, self.player.freeze, (0))
- self.player.setColor(255,255,255,255)
- def thirdPerson(self):
- if not self.thirdView:
- es.setplayerprop(self.userid, 'CBasePlayer.m_hObserverTarget', 0)
- es.setplayerprop(self.userid, 'CBasePlayer.m_iObserverMode', 1)
- es.setplayerprop(self.userid, 'CBasePlayer.localdata.m_Local.m_bDrawViewmodel', 0)
- es.setplayerprop(self.userid, 'CBasePlayer.m_iFOV', 100)
- clock.add(self.userid)
- self.thirdView = True
- tell(self.userid, 'Third Person: #greenActivated')
- def firstPerson(self):
- if self.thirdView:
- es.setplayerprop(self.userid, 'CCSPlayer.baseclass.m_hObserverTarget', 0)
- if self.alive:
- es.setplayerprop(self.userid, 'CBasePlayer.m_iObserverMode', 0)
- es.setplayerprop(self.userid, 'CBasePlayer.localdata.m_Local.m_bDrawViewmodel', 1)
- es.setplayerprop(self.userid, 'CBasePlayer.m_iFOV', 90)
- clock.remove(self.userid)
- self.thirdView = False
- tell(self.userid, 'Third Person: #greenDeactivated')
- def nonSolid(self):
- if self.solidStatus:
- es.setplayerprop(self.userid, 'CBaseEntity.m_CollisionGroup', 2)
- self.solidStatus = False
- tell(self.userid, 'NoBlock: #greenActivated')
- def solid(self):
- if not self.solidStatus:
- es.setplayerprop(self.userid, 'CBaseEntity.m_CollisionGroup', 5)
- self.solidStatus = True
- tell(self.user, 'NoBlock: #greenDeactivated')
- def freeze(self):
- if not self.freezeStatus:
- es.setplayerprop(self.userid, 'CBasePlayer.m_fFlags', 66172)
- es.setplayerprop(self.userid, 'CBaseEntity.movetype', 0)
- self.freezeStatus = True
- tell(self.userid, 'Freeze: #greenActivated')
- def unfreeze(self):
- if self.freezeStatus:
- es.setplayerprop(self.userid, 'CBasePlayer.m_fFlags', 32)
- es.setplayerprop(self.userid, 'CBaseEntity.movetype', 2)
- self.freezeStatus = False
- tell(self.userid, 'Freeze: #greenDeactivated')
- def checkSettings(self, val):
- if self.ready:
- es.queryclientvar(self.userid, val)
- def addValue(self, value):
- if not value in self.valueList:
- self.valueList.append(value)
- if len(self.valueList) == len(checkValues):
- self.valuesOK = True
- def removeValue(self, value):
- if value in self.valueList:
- self.valueList.remove(value)
- if self.team != 1:
- es.server.queuecmd('es_xchangeteam %s 1' %(self.userid))
- tell(self.userid, 'Your Config isnt right yet! Please look in your Console or the Popup Menu to fix it.')
- self.valuesOK = False
- if not self.configPopupSend:
- infoPopup.sendConfigPopup(self.userid)
- self.configPopupSend = True
- def getValueStatus(self):
- return self.valuesOK
- def configPopupClosed(self):
- self.configPopupSend = False
- def gotWeapon(self):
- self.weapons += 1
- def setCT(self):
- self.ct = True
- self.player.setModel('player/ct_gsg9')
- es.server.queuecmd('es_xgive %s weapon_usp' %(self.userid))
- gamethread.delayed(0.1, self.player.setClip, ('weapon_usp', 0))
- gamethread.delayed(0.1, self.player.setAmmo, ('weapon_usp', 0))
- self.model = 'CT'
- def damageDucked(self):
- if self.player.isDucked():
- hp = self.player.getHealth() - 10
- if hp <= 0:
- es.server.queuecmd('damage %s %s' %(self.userid, self.player.getHealth()))
- else:
- self.player.setHealth(hp)
- msg('#green%s #defaultis ducking, like a Mouse!' %(es.getplayername(self.userid)))
- class Playerlist(object):
- def __init__(self):
- self.players = {}
- def __getitem__(self, key):
- try:
- return self.players[int(key)]
- except:
- return None
- def add(self, userid):
- userid = int(userid)
- self.players[userid] = Player(userid)
- def remove(self, userid):
- userid = int(userid)
- del self.players[userid]
- def checkSettings(self, val):
- for i in self.players:
- try:
- self.players[i].checkSettings(val)
- except:
- pass
- def damageDucked(self):
- for i in playerlib.getUseridList('#t, #alive'):
- self.players[i].damageDucked()
- class GunPopup(object):
- def __init__(self):
- if popuplib.exists('sseekGunMainMenu'):
- popuplib.delete('sseekGunMainMenu')
- self.main = popuplib.create('sseekGunMainMenu')
- self.main.addline('Waffen Menu:')
- self.main.addline('->1. Pistols')
- self.main.addline('->2. Shotguns')
- self.main.addline('->3. SMGs')
- self.main.addline('->4. Rifles')
- self.main.addline(' ')
- self.main.addline('0. Close')
- self.main.menuselect = self.mainChoice
- if popuplib.exists('sseekGunPistolMenu'):
- popuplib.delete('sseekGunPistolMenu')
- self.pistol = popuplib.create('sseekGunPistolMenu')
- self.pistol.addline('Handgun Menu:')
- self.pistol.addline('->1. Glock')
- self.pistol.addline('->2. USP')
- self.pistol.addline('->3. P228')
- self.pistol.addline('->4. Deagle')
- self.pistol.addline('->5. Dual Elite')
- self.pistol.addline('->6. Fiveseven')
- self.pistol.addline(' ')
- self.pistol.addline('->8. Back')
- self.pistol.addline('0. Close')
- self.pistol.menuselect = self.pistolChoice
- if popuplib.exists('sseekGunShotgunMenu'):
- popuplib.delete('sseekGunShotgunMenu')
- self.shotgun = popuplib.create('sseekGunShotgunMenu')
- self.shotgun.addline('Shotgun Menu:')
- self.shotgun.addline('->1. M3')
- self.shotgun.addline('->2. XM1014')
- self.shotgun.addline(' ')
- self.shotgun.addline('->8. Back')
- self.shotgun.addline('0. Close')
- self.shotgun.menuselect = self.shotgunChoice
- if popuplib.exists('sseekGunSMGMenu'):
- popuplib.delete('sseekGunSMGMenu')
- self.smg = popuplib.create('sseekGunSMGMenu')
- self.smg.addline('SMG Menu:')
- self.smg.addline('->1. Mac10')
- self.smg.addline('->2. TMP')
- self.smg.addline('->3. MP5')
- self.smg.addline('->4. UMP')
- self.smg.addline('->5. P90')
- self.smg.addline(' ')
- self.smg.addline('->8. Back')
- self.smg.addline('0. Close')
- self.smg.menuselect = self.smgChoice
- if popuplib.exists('sseekGunRifleMenu'):
- popuplib.delete('sseekGunRifleMMenu')
- self.rifle = popuplib.create('sseekGunRifleMMenu')
- self.rifle.addline('Rifle Menu:')
- self.rifle.addline('->1. Galil')
- self.rifle.addline('->2. Famas')
- self.rifle.addline('->3. AK47')
- self.rifle.addline('->4. M4A1')
- self.rifle.addline('->5. SG552')
- self.rifle.addline('->6. AUG')
- self.rifle.addline(' ')
- self.rifle.addline('->8. Back')
- self.rifle.addline('0. Close')
- self.rifle.menuselect = self.rifleChoice
- def mainChoice(self, userid, choice, id):
- if choice == 1:
- self.pistol.send(userid)
- elif choice == 2:
- self.shotgun.send(userid)
- elif choice == 3:
- self.smg.send(userid)
- elif choice == 4:
- self.rifle.send(userid)
- elif choice != 10:
- self.main.send(userid)
- def pistolChoice(self, userid, choice, id):
- weapons = ('glock', 'usp', 'p228', 'deagle', 'elite', 'fiveseven')
- if choice in (1,2,3,4,5,6):
- player = playerlib.getPlayer(userid)
- weapon = player.getSecondary()
- if weapon != 0:
- index = player.getWeaponIndex(weapon)
- es.server.queuecmd('es_xremove %s' %(index))
- es.server.queuecmd('es_xgive %s weapon_%s' %(userid, weapons[choice-1]))
- playerlist[userid].gotWeapon()
- elif choice == 8:
- self.main.send(userid)
- elif choice != 10:
- self.pistol.send(userid)
- def shotgunChoice(self, userid, choice, id):
- weapons = ('m3', 'xm1014')
- if choice in (1,2):
- player = playerlib.getPlayer(userid)
- weapon = player.getPrimary()
- if weapon != 0:
- index = player.getWeaponIndex(weapon)
- es.server.queuecmd('es_xremove %s' %(index))
- es.server.queuecmd('es_xgive %s weapon_%s' %(userid, weapons[choice-1]))
- playerlist[userid].gotWeapon()
- elif choice == 8:
- self.main.send(userid)
- elif choice != 10:
- self.shotgun.send(userid)
- def smgChoice(self, userid, choice, id):
- weapons = ('mac10', 'tmp', 'mp5navy', 'ump', 'p90')
- if choice in (1,2,3,4,5):
- player = playerlib.getPlayer(userid)
- weapon = player.getPrimary()
- if weapon != 0:
- index = player.getWeaponIndex(weapon)
- es.server.queuecmd('es_xremove %s' %(index))
- es.server.queuecmd('es_xgive %s weapon_%s' %(userid, weapons[choice-1]))
- playerlist[userid].gotWeapon()
- elif choice == 8:
- self.main.send(userid)
- elif choice != 10:
- self.shotgun.send(userid)
- def rifleChoice(self, userid, choice, id):
- weapons = ('galil', 'famas', 'ak47', 'm4a1', 'sg552', 'aug')
- if choice in (1,2,3,4,5,6):
- player = playerlib.getPlayer(userid)
- weapon = player.getPrimary()
- if weapon != 0:
- index = player.getWeaponIndex(weapon)
- es.server.queuecmd('es_xremove %s' %(index))
- es.server.queuecmd('es_xgive %s weapon_%s' %(userid, weapons[choice-1]))
- playerlist[userid].gotWeapon()
- elif choice == 8:
- self.main.send(userid)
- elif choice != 10:
- self.rifle.send(userid)
- def send(self, userid):
- self.main.send(userid)
- class InfoPopup(object):
- def __init__(self):
- if popuplib.exists('sseekInfoConfig'):
- popuplib.delete('sseekInfoConfig')
- self.config = popuplib.create('sseekInfoConfig')
- self.config.addline ('Config')
- self.config.addline ('----------')
- self.config.addline ('->1. cl_radaralpha 0')
- self.config.addline ('Configurate in Console')
- self.config.addline ('Radar off: cl_radaralpha 0')
- self.config.addline ('Radar on: cl_radaralpha 255')
- self.config.addline ('----------')
- self.config.addline ('->0. Close')
- self.config.menuselect = self.configChoice
- if popuplib.exists('sseekInfoT'):
- popuplib.delete('sseekInfoT')
- self.t = popuplib.create('sseekInfoT')
- self.t.addline ('SSeek - Terror')
- self.t.addline ('->1. Views')
- self.t.addline ('->2. Contrasts')
- self.t.addline ('->3. Painting')
- self.t.addline ('->4. Whistle')
- self.t.addline ('->5. Movement')
- self.t.addline ('->6. CT Model')
- self.t.addline ('->7. Color Blink')
- self.t.addline (' ')
- self.t.addline ('->0. Close')
- self.t.menuselect = self.tChoice
- if popuplib.exists('sseekBlink'):
- popuplib.delete('sseekBlink')
- self.blink = popuplib.create('sseekBlink')
- self.blink.addline ('SSeek - Blink')
- self.blink.addline ('->1. Start Blinking')
- self.blink.addline ('->2. Stop Blinking')
- self.blink.addline (' ')
- self.blink.addline ('->8. Back')
- self.blink.addline ('->0. Close')
- self.blink.menuselect = self.Blink
- if popuplib.exists('sseekMovement'):
- popuplib.delete('sseekMovement')
- self.movement = popuplib.create('sseekMovement')
- self.movement.addline ('SSeek - Movement')
- self.movement.addline ('->1. Noblock')
- self.movement.addline ('->2. Block')
- self.movement.addline ('->3. Freeze')
- self.movement.addline ('->4. UnFreeze')
- self.movement.addline (' ')
- self.movement.addline ('->8. Back')
- self.movement.addline ('->0. Close')
- self.movement.menuselect = self.Movement
- if popuplib.exists('sseekPaint'):
- popuplib.delete('sseekPaint')
- self.paint = popuplib.create('sseekPaint')
- self.paint.addline('SSeek - Painting')
- self.paint.addline('->1. Red')
- self.paint.addline('->2. Yellow')
- self.paint.addline('->3. Blue')
- self.paint.addline('->4. Green')
- self.paint.addline('->5. Pink')
- self.paint.addline('->6. Lila')
- self.paint.addline('->7. Black')
- self.paint.addline('->8. Normal')
- self.paint.addline(' ')
- self.paint.addline('->9. Back')
- self.paint.addline('->0. Close')
- self.paint.menuselect = self.Paint
- if popuplib.exists('sseekViews'):
- popuplib.delete('sseekViews')
- self.views = popuplib.create('sseekViews')
- self.views.addline ('SSeek - Views')
- self.views.addline ('->1. +3rd')
- self.views.addline ('->2. -3rd')
- self.views.addline (' ')
- self.views.addline ('->8. Back')
- self.views.addline ('->0. Close')
- self.views.menuselect = self.Views
- if popuplib.exists('sseekContrasts'):
- popuplib.delete('sseekContrasts')
- self.contrasts = popuplib.create('sseekContrasts')
- self.contrasts.addline ('SSeek - Contrasts')
- self.contrasts.addline ('->1. Getting Darker')
- self.contrasts.addline ('->2. Getting Lighter')
- self.contrasts.addline (' ')
- self.contrasts.addline ('->8. Back')
- self.contrasts.addline ('->0. Close')
- self.contrasts.menuselect = self.Contrasts
- def Movement(self,userid,choice,id):
- if choice == 1:
- player = playerlist[userid]
- if player.alive:
- if player.solidStatus:
- es.setplayerprop(userid, 'CBaseEntity.m_CollisionGroup', 2)
- player.solidStatus = False
- tell(userid, 'NoBlock: #greenActivated')
- self.movement.send(userid)
- elif choice == 2:
- player = playerlist[userid]
- if player.alive:
- if not player.solidStatus:
- es.setplayerprop(userid, 'CBaseEntity.m_CollisionGroup', 5)
- player.solidStatus = True
- tell(userid, 'NoBlock: #greenDeactivated')
- self.movement.send(userid)
- elif choice == 3:
- player = playerlist[userid]
- if player.alive:
- if not player.freezeStatus:
- es.setplayerprop(userid, 'CBasePlayer.m_fFlags', 66172)
- es.setplayerprop(userid, 'CBaseEntity.movetype', 0)
- player.freezeStatus = True
- tell(userid, 'Freeze: #greenActivated')
- self.movement.send(userid)
- elif choice == 4:
- player = playerlist[userid]
- if player.alive:
- if player.freezeStatus:
- es.setplayerprop(userid, 'CBasePlayer.m_fFlags', 32)
- es.setplayerprop(userid, 'CBaseEntity.movetype', 2)
- player.freezeStatus = False
- tell(userid, 'Freeze: #greenDeactivated')
- self.movement.send(userid)
- elif choice == 8:
- self.sendTPopup(userid)
- def Paint(self, userid, choice, id):
- player = playerlist[userid]
- if choice == 1:
- if player.alive:
- player.player.setColor(255,0,0,255)
- self.paint.send(userid)
- tell(userid, 'You are now: #greenRed!')
- elif choice == 2:
- if player.alive:
- player.player.setColor(255,240,0,255)
- self.paint.send(userid)
- tell(userid, 'You are now: #greenYellow!')
- elif choice == 3:
- if player.alive:
- player.player.setColor(0,0,255,255)
- self.paint.send(userid)
- tell(userid, 'You are now: #greenBlue!')
- elif choice == 4:
- if player.alive:
- player.player.setColor(0,255,0,255)
- self.paint.send(userid)
- tell(userid, 'You are now: #greenGreen!')
- elif choice == 5:
- if player.alive:
- player.player.setColor(255,0,255,255)
- self.paint.send(userid)
- tell(userid, 'You are now: #greenPink!')
- elif choice == 6:
- if player.alive:
- player.player.setColor(174,0,255,255)
- self.paint.send(userid)
- tell(userid, 'You are now: #greenLila!')
- elif choice == 7:
- if player.alive:
- player.player.setColor(0,0,0,255)
- self.paint.send(userid)
- tell(userid, 'You are now: #greenBlack!')
- elif choice == 8:
- if player.alive:
- player.player.setColor(255,255,255,255)
- self.paint.send(userid)
- tell(userid, 'You are now: #greenClean!')
- elif choice == 9:
- if player.alive:
- self.sendTPopup(userid)
- def Blink(self, userid, choice, id):
- if choice == 1:
- player = playerlist[userid]
- if player.alive:
- gamethread.delayedname(0.1, 'blink1', startblinking, (userid))
- self.blink.send(userid)
- elif choice == 2:
- player = playerlist[userid]
- if player.alive:
- gamethread.cancelDelayed('blink1')
- gamethread.cancelDelayed('blink2')
- gamethread.cancelDelayed('farbe1')
- player.player.setColor(255,255,255,255)
- self.blink.send(userid)
- elif choice == 8:
- player = playerlist[userid]
- if player.alive:
- self.sendTPopup(userid)
- def tChoice(self, userid, choice, id):
- if choice == 1:
- player = playerlist[userid]
- if player.alive:
- self.views.send(userid)
- elif choice == 2:
- player = playerlist[userid]
- if player.alive:
- self.contrasts.send(userid)
- elif choice == 3:
- player = playerlist[userid]
- if player.alive:
- self.paint.send(userid)
- elif choice == 4:
- player = playerlist[userid]
- if player.alive:
- if player.whistle < 3:
- whistle.play(userid)
- player.whistle += 1
- self.sendTPopup(userid)
- elif choice == 5:
- player = playerlist[userid]
- if player.alive:
- self.movement.send(userid)
- elif choice == 6:
- player = playerlist[userid]
- if player.alive:
- if not pct:
- player = playerlist[userid]
- player.ct = True
- player.player.setModel('player/ct_gsg9')
- es.server.queuecmd('es_xgive %s weapon_usp' %(userid))
- gamethread.delayed(0.1, player.player.setClip, ('weapon_usp', 0))
- gamethread.delayed(0.1, player.player.setAmmo, ('weapon_usp', 0))
- player.model = 'CT'
- global pct
- pct = 1
- self.sendTPopup(userid)
- else:
- player = playerlist[userid]
- if player.alive:
- tell(userid, 'There is actually a #greenCT in your Team.')
- elif choice == 7:
- player = playerlist[userid]
- if player.alive:
- self.blink.send(userid)
- def Views(self, userid, choice, id):
- if choice == 1:
- player = playerlist[userid]
- if player.alive:
- if player.team == 2:
- if not player.thirdView:
- es.setplayerprop(userid, 'CBasePlayer.m_hObserverTarget', 0)
- es.setplayerprop(userid, 'CBasePlayer.m_iObserverMode', 1)
- es.setplayerprop(userid, 'CBasePlayer.localdata.m_Local.m_bDrawViewmodel', 0)
- es.setplayerprop(userid, 'CBasePlayer.m_iFOV', 100)
- clock.add(userid)
- player.thirdView = True
- tell(userid, 'Third Person: #greenActivated')
- self.views.send(userid)
- elif choice == 2:
- player = playerlist[userid]
- if player.alive:
- if player.team == 2:
- if player.thirdView:
- es.setplayerprop(userid, 'CCSPlayer.baseclass.m_hObserverTarget', 0)
- if player.alive:
- es.setplayerprop(userid, 'CBasePlayer.m_iObserverMode', 0)
- es.setplayerprop(userid, 'CBasePlayer.localdata.m_Local.m_bDrawViewmodel', 1)
- es.setplayerprop(userid, 'CBasePlayer.m_iFOV', 90)
- clock.remove(userid)
- player.thirdView = False
- tell(userid, 'Third Person: #greenDeactivated')
- self.views.send(userid)
- elif choice == 8:
- self.sendTPopup(userid)
- def Contrasts(self, userid, choice, id):
- if choice == 1:
- player = playerlist[userid]
- if player.alive:
- if player.team == 2:
- if player.color < 140:
- player.color += 20
- player.player.setColor(255 - player.color, 255 - player.color, 255 - player.color, 255)
- else:
- tell(userid, 'You reached the maximum of #greendarkness!')
- self.contrasts.send(userid)
- elif choice == 2:
- player = playerlist[userid]
- if player.alive:
- if player.team == 2:
- if player.color > 0:
- player.color -= 20
- player.player.setColor(255 - player.color, 255 - player.color, 255 - player.color, 255)
- else:
- tell(userid, 'You reached the maximum of #greenlightness!')
- self.contrasts.send(userid)
- elif choice == 8:
- self.sendTPopup(userid)
- def configChoice(self, userid, choice, id):
- if choice not in (1,2,3,10):
- self.config.send(userid)
- else:
- playerlist[userid].configPopupClosed()
- def sendConfigPopup(self, userid):
- self.config.send(userid)
- def sendTPopup(self, userid):
- self.t.send(userid)
- class Whistle(object):
- def __init__(self):
- self.sounds = []
- def add(self, sound, name):
- if not (sound, name) in self.sounds:
- self.sounds.append((sound, name))
- downloadManager.add('sound/%s' %(sound))
- def play(self, userid):
- tmp = random.choice(self.sounds)
- es.emitsound('player', userid, tmp[0], 1.0, 0.7)
- msg('#green%s #default,is making noise with: #green%s' %(es.getplayername(userid), tmp[1]))
- class MessageManager(object):
- def __init__(self):
- pass
- def start(self):
- for i in xrange(1,6):
- gamethread.delayedname(30 - i, 'sseekStart_%s' %(i), usermsg.centermsg, ('#all', 'Only %s' %(i)))
- gamethread.delayedname(20, 'sseekStart_10', msg, ('The seeking starts in 10 seconds!'))
- gamethread.delayedname(30, 'sseekStart_0', msg, ('The Seeker getting started!'))
- def stop(self):
- tmp = (0,1,2,3,4,5,10)
- for i in tmp:
- gamethread.cancelDelayed('sseekStart_%s' %(i))
- def startblinking(userid):
- player = playerlib.getPlayer(userid)
- player.setColor(102,102,102,255)
- gamethread.delayedname(1, 'farbe1', player.setColor, (255,255,255,255))
- gamethread.delayedname(2, 'blink2', startblinking, (userid))
- #Globale Variablen
- configmaps = ConfigObj(es.getAddonPath('sseek') + '/maps.txt')
- modellist = {}
- for x in configmaps.keys():
- modellist[x] = {}
- cnt = 1
- for y in configmaps[x]:
- modellist[x][cnt] = [y, configmaps[x][y]]
- cnt += 1
- mapManager = MapManager()
- downloadManager = DownloadManager()
- clock = Clock()
- pct = {}
- tickManager = TickManager()
- playerlist = Playerlist()
- gunPopup = GunPopup()
- infoPopup = InfoPopup()
- whistle = Whistle()
- whistle.add('santasseek/buzzer.mp3', 'Buzzer')
- whistle.add('santasseek/caralarm.mp3', 'Alarm')
- whistle.add('santasseek/cartoon.mp3', 'Run...')
- whistle.add('santasseek/evillaugh.mp3', 'Evil Laugh')
- whistle.add('santasseek/mammi.mp3', 'Mammi')
- whistle.add('santasseek/mw.mp3', 'SHOUT!!!')
- whistle.add('santasseek/popi.mp3', 'Duck...')
- whistle.add('santasseek/muahaha.mp3', 'Muahaha...')
- messageManager = MessageManager()
- curMap = None
- tickCounter = 0
- checkValues = ['cl_radaralpha']
- info = es.AddonInfo()
- info.name = "Santas Seek"
- info.version = "6.0"
- info.author = "Santa"
- info.url = "http://www.s-seek.de"
- info.basename = "santasseek"
- info.description = "Hide n Seek Mod fuer CSS"
- info.copyright = "2010 - 2120"
- #ES-Methoden
- def load():
- global curMap
- curMap = str(es.ServerVar('eventscripts_currentmap'))
- es.set("%s" % info.basename,info.version)
- es.makepublic("%s" % info.basename)
- es.server.queuecmd('eventscripts_noisy 1')
- es.set('mp_flashlight', 0)
- es.set('mp_freezetime', 3)
- es.set('mp_forcecamera', 0)
- es.set('sv_hudhint_sound', 0)
- es.set('mp_playerid', 1)
- es.set('sv_allowminmodels', 0)
- es.set('mp_unbalance_limit', 0)
- downloadManager.activate()
- es.addons.registerClientCommandFilter(clientCommand)
- def unload():
- tickManager.disable()
- clock.stop()
- es.addons.unregisterClientCommandFilter(clientCommand)
- def es_map_start(ev):
- global curMap
- curMap = str(es.ServerVar('eventscripts_currentmap'))
- downloadManager.activate()
- def player_say(ev):
- playerlist[ev['userid']].say(ev['text'])
- def round_start(ev):
- userid = ev['userid']
- mapManager.remove()
- tickManager.enable()
- messageManager.start()
- global pct
- pct = 0
- gamethread.cancelDelayed('blink1')
- gamethread.cancelDelayed('blink2')
- gamethread.cancelDelayed('farbe1')
- player = playerlib.getPlayer(userid)
- player.setColor(255,255,255,255)
- def round_freeze_end(ev):
- clock.start()
- def round_end(ev):
- tickManager.disable()
- clock.stop()
- messageManager.stop()
- for i in playerlib.getPlayerList('#t,#alive'):
- es.server.queuecmd('score add %s 10' % i)
- msg('All living Hiders get #green10 Points!!!')
- for a in playerlib.getPlayerList('#t'):
- userid = a
- popuplib.close('sseekBlink', userid)
- popuplib.close('sseekMovement', userid)
- popuplib.close('sseekPaint', userid)
- popuplib.close('sseekViews', userid)
- popuplib.close('sseekContrasts', userid)
- def player_spawn(ev):
- userid = ev['userid']
- try:
- playerlist[ev['userid']].prepare()
- except:
- pass
- team = int(es.getplayerteam(userid))
- if team == 2:
- tell(userid, 'Hider Menu: #green!t')
- if team == 3:
- tell(userid, 'Seeker Menu: #green!ct')
- player = playerlib.getPlayer(userid)
- player.setColor(255,255,255,255)
- def player_death(ev):
- userid = ev['userid']
- playerlist[ev['userid']].death()
- gamethread.cancelDelayed('blink1')
- gamethread.cancelDelayed('blink2')
- gamethread.cancelDelayed('farbe1')
- player = playerlib.getPlayer(userid)
- player.setColor(255,255,255,255)
- if es.getplayerteam(ev['attacker']) == 3 and int(ev['attacker']) != int(ev['userid']):
- es.server.queuecmd('score add %s 2' % ev['attacker'])
- popuplib.close('sseekBlink', userid)
- popuplib.close('sseekMovement', userid)
- popuplib.close('sseekPaint', userid)
- popuplib.close('sseekViews', userid)
- popuplib.close('sseekContrasts', userid)
- def player_hurt(ev):
- hp = playerlist[ev['attacker']].player.getHealth() + int(int(ev['dmg_health']) * 0.1)
- if hp > 100:
- hp = 100
- playerlist[ev['attacker']].player.setHealth(hp)
- def player_activate(ev):
- es.server.mp_disable_autokick(ev['userid'])
- playerlist.add(ev['userid'])
- def player_disconnect(ev):
- playerlist.remove(ev['userid'])
- if es.getplayercount() == 0:
- tickManager.disable()
- def player_team(ev):
- playerlist[ev['userid']].changeTeam(ev['team'])
- def item_pickup(ev):
- playerlist[ev['userid']].itemPickup(ev['item'])
- def weapon_fire(ev):
- playerlist[ev['userid']].weaponFire()
- def es_player_variable(ev):
- if ev['variable'] in ('cl_radaralpha') and ev['status'] == 'success':
- if int(ev['value']) != 0:
- playerlist[ev['userid']].removeValue(ev['variable'])
- echo(ev['userid'], '%s the Value has to be 0' %(ev['variable']))
- else:
- playerlist[ev['userid']].addValue(ev['variable'])
- #Eigene Methoden
- def tickListener():
- global tickCounter
- tickCounter += 1
- if tickCounter % 10 == 0:
- clock.send()
- if tickCounter % 50 == 0:
- playerlist.checkSettings(checkValues[tickCounter/50 - 1])
- if tickCounter/50 == len(checkValues):
- tickCounter = 0
- def loop():
- gamethread.delayedname(2, 'sseekLoop', loop, ())
- playerlist.damageDucked()
- def clientCommand(userid, command):
- if command[0] == 'jointeam':
- if not playerlist[userid].getValueStatus():
- if es.getplayercount() == 1 and not tickManager.isEnabled():
- tickManager.enable()
- tell(userid, 'Your Config isnt checked yet! Please wait a moment')
- else:
- tell(userid, 'Your Config isnt right yet! Please look in your Console or the Popup Menu to fix it.')
- return False
- elif command[1] == '3':
- sizeT = int(es.getplayercount(2))
- sizeCT = int(es.getplayercount(3))
- if sizeT <= 20 and sizeCT > 4:
- tell(userid, 'The Seeker Team is full.')
- return False
- elif sizeT > 20 and sizeCT > 6:
- tell(userid, 'The Seeker Team is full.')
- return False
- return True
- def msg(text):
- es.msg('#multi', '#green[ #defaultS-Seek #lightgreen%s #green]#default %s' %(info.version, text))
- def tell(userid, text):
- es.tell(userid, '#multi', '#green[ #defaultS-Seek #lightgreen%s #green]#default %s' %(info.version, text))
- def echo(userid, text):
- es.cexec(userid, 'echo', '[S-Seek %s] %s' %(info.version, text))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement