Advertisement
Brainsucker

Untitled

May 19th, 2011
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.83 KB | None | 0 0
  1. import es
  2. import datetime
  3. import cPickle
  4. import os
  5. import threading
  6.  
  7.  
  8. vip_cmd = '!vip'
  9. vip_weeks = 0
  10. vip_days = 0
  11. vip_hours = 1000
  12. vip_minutes = 0
  13.  
  14.  
  15. addonpath = es.getAddonPath('vipmod')
  16. dbpath = os.path.join(addonpath, 'users.db')
  17.  
  18.  
  19. vip_td = datetime.timedelta(weeks=vip_weeks, days=vip_days, hours=vip_hours, minutes=vip_minutes)
  20.  
  21.  
  22.  
  23. vip_dict = {}
  24. temp_data = {}
  25.  
  26. try:
  27.     vip_dict = cPickle.load(open(dbpath, 'rb'))
  28. except:
  29.     pass
  30.    
  31. info = es.AddonInfo()
  32. info.name = 'vipmod'
  33. info.author = 'Brainsucker'
  34. info.version = '1.0.0 (Unreleased)'
  35.    
  36. def load():
  37.     es.ServerVar(info['name'], info['version']).makepublic()
  38.     for p in es.getUseridList():
  39.         addPlayerbyUserid(p)
  40.        
  41. def getTotalSeconds(delta):
  42.     return (float(delta.microseconds) / 1000) + delta.seconds + (delta.days * 86400)
  43.  
  44. def saveDB():
  45.     threading.Thread(target=cPickle.dump, args=(vip_dict, open(dbpath, 'wb'))).start()
  46.    
  47. def addPlayerbySteamid(steamid):
  48.     if not steamid in ['BOT', 'STEAM_ID_PENDING', 'STEAM_ID_LAN']:
  49.         if not vip_dict.has_key(steamid):
  50.             vip_dict[steamid] = {}
  51.         if not vip_dict[steamid].has_key('playtime'):
  52.             vip_dict[steamid]['playtime'] = datetime.timedelta()
  53.            
  54.         if not temp_data.has_key(steamid):
  55.             temp_data[steamid] = {}
  56.         temp_data[steamid]['jointime'] = datetime.datetime.today()
  57.    
  58. def addPlayerbyUserid(userid):
  59.     steamid = es.getplayersteamid(userid)
  60.     addPlayerbySteamid(steamid)
  61.    
  62. def convertseconds(seconds):
  63.     m, s = divmod(seconds, 60)
  64.     h, m = divmod(m, 60)
  65.     return [h, m, s]
  66.    
  67. def es_player_validated(ev):
  68.     steamid = ev['networkid']
  69.     addPlayerbySteamid(steamid)
  70.    
  71.    
  72. def player_disconnect(ev):
  73.     steamid = ev['es_steamid']
  74.     current_time = datetime.datetime.today()
  75.     if temp_data.has_key(steamid):
  76.         playtime = current_time - temp_data[steamid]['jointime']
  77.         vip_dict[steamid]['playtime'] += playtime
  78.        
  79.         del temp_data[steamid]
  80.        
  81.         saveDB()
  82.        
  83. def player_say(ev):
  84.     text = ev['text']
  85.     username = ev['es_username']
  86.     steamid = ev['es_steamid']
  87.     n = datetime.datetime.today()
  88.     session_time = n - temp_data[steamid]['jointime']
  89.     pt = vip_dict[steamid]['playtime'] + session_time
  90.     ts1 = getTotalSeconds(pt)
  91.     cs1 = convertseconds(ts1)
  92.     ts2 = getTotalSeconds(vip_td)
  93.     cs2 = convertseconds(ts2)
  94.     if text.lower() == vip_cmd.lower():
  95.         es.msg('#multi', '#green%s #defaultgesamte Spielzeit: #lightgreen%i Stunden, %i Minuten ' % (username, cs1[0], cs1[1]))
  96.         es.msg('#multi', '#defaultBenötigte Spielzeit für VIP-Status: #green%i Stunden, %i Minuten' % (cs2[0], cs2[1]))
  97.         if pt > vip_td:
  98.             es.msg('#multi', '#green%s #defaulthat den VIP-Status erreicht!' % username)
  99.         else:
  100.             remaining_time = vip_td - pt
  101.             ts3 = getTotalSeconds(remaining_time)
  102.             cs3 = convertseconds(ts3)
  103.             es.msg('#multi', '#defaultBenötigte Spielzeit für VIP-Status: #green%i Stunden, %i Minuten, %i Sekunden' % (cs[0], cs[1], cs[2]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement