import es import playerlib import shelve import random info = es.AddonInfo() info['name'] = "Knifeking" info['version'] = "2.0" info['author'] = "Thekiller" info['url'] = "http://clanroyal.dk" info['description'] = "Be the knifeking and get rewards!" #start or create the database playerdata = shelve.open(es.getAddonPath('kk') + '/rounds.db', writeback=True) KnifeKing = es.ServerVar('KnifeKing') KnifeKing.set('2.0') KnifeKing.makepublic() kk_rounds = 0 kk_userid = 0 kk_username = 0 ###SETTINGS### #Random Rewards #set how much money they can get or being current knifeking - default $ 1000 cash = 1000 #set primary weapon and secondary weapon rewards. - default AWP + Deagle primary = "weapon_awp" secondary = "weapon_deagle" #Set how much armor they can get for being current knifeking - default 125armor armor = '125' #set how much health they can get for being current knifeking - default 200health health = '200' ###Set what rewards you want to use ### reward = 'abcd' #now you use ALL random rewards. #a = cash #b = weapon pack #c = armor #d = health #i.e. if you only want cash and armor we set this in rewards 'ac' #set how many hours the server need to save the player? - delete this line if you want to save the keygroups for ever! #default 72hours/3 days hours_to_trim = 72 #Knifeking Skins skinct = 'Patch to skin' #i.e. models/player/test.mdl skint = 'Patch to skin' #i.e. models/player/test.mdl ###SETTINGS OFF### def load(): for userid in es.getUseridList(): player_spawn({'userid':str(userid)}) # End of settings ### SET your skin es.server.cmd('downloadable %s' % skinct) es.server.cmd('downloadable %s' % skint) es.msg('#multi', '#green[KnifeKing]#lightgreen has been Loaded!') def unload(): es.msg('#multi', '#green[KnifeKing]#lightgreen has been unloaded!') playerdata.close() def es_map_start(event_var): global kk_rounds, kk_userid, playerdata kk_rounds = 0 kk_userid = 0 es.server.cmd('downloadable %s' % skinct) es.server.cmd('downloadable %s' % skint) playerdata.sync() def round_start(event_var): if kk_userid > 0: es.delayed(2, es.msg('#multi', '#green[KnifeKing]#lightgreen The current KnifeKing is %s at %s round|s|!' % (kk_username, kk_rounds))) else: es.delayed(2, es.msg('#multi', '#green[KnifeKing]#lightgreen There is no current KnifeKing, knife someone to become the new KnifeKing!')) def player_death(event_var): global kk_rounds, kk_userid, kk_username if event_var['weapon'] == "knife": if event_var['attacker'] == str(kk_userid): # Make a victim and an attacker victim = playerlib.getPlayer(event_var['userid']) attack = playerlib.getPlayer(event_var['attacker']) # take money victimcash = victim.get("cash") killercash = attack.get("cash") # Set money victim.set("cash", '0') attack.set("cash", killercash + victimcash) es.msg('#multi', '#green[KnifeKing]#lightgreen %s #defaultwas knifed by the KNIFEKING #lightgreen( %s )' % (event_var['es_username'], event_var['es_attackername'])) es.tell (event_var["userid"], "#multi", "#green[KnifeKing]#lightgreen You have been mugged by the KnifeKing") es.tell (event_var["attacker"], '#multi', '#green[KnifeKing]#lightgreen You mugged $ %s off %s' % (victimcash, event_var['es_username'])) else: # Make a victim and an attacker victim = playerlib.getPlayer(event_var['userid']) attack = playerlib.getPlayer(event_var['attacker']) # take money victimcash = victim.get("cash") killercash = attack.get("cash") # Set money attack.set("cash", killercash + victimcash) victim.set("cash", '0') kk_userid = event_var['attacker'] kk_username = event_var['es_attackername'] kk_rounds = 0 es.msg('#multi', '#green[KnifeKing]#lightgreen %s #defaultwas knifed by the NEW KNIFEKING #lightgreen( %s )' % (event_var['es_username'], kk_username)) es.tell (event_var["userid"], "#multi", "#green[KnifeKing]#lightgreen You have been mugged by the KnifeKing") es.tell (event_var["attacker"], '#multi', '#green[KnifeKing]#lightgreen You mugged $ %s off %s' % (victimcash, event_var['es_username'])) def player_say(event_var): if event_var['text'] == "!knifeking": if kk_userid > 0: es.delayed(2, es.msg('#multi', '#green[KnifeKing]#lightgreen The current KnifeKing is %s at %s round|s|!' % (kk_username, kk_rounds))) else: es.delayed(2, es.msg('#multi', '#green[KnifeKing]#lightgreen There is no current KnifeKing, knife someone to become the new KnifeKing!')) if event_var['text'] == "!knifeme": userid = event_var['userid'] playerid = playerlib.uniqueid(userid, True) currentdata = playerdata[playerid] es.msg('#multi', '#lightgreen %s#default has been Knifeking for a total of#lightgreen %s #defaultround|s|.' % (event_var['es_username'], currentdata['knife_count'])) def player_spawn(event_var): global kk_rounds, playerdata #knifeking if event_var['userid'] == str(kk_userid): kk_rounds += 1 userid = event_var['userid'] playerid = playerlib.uniqueid(userid, True) if playerdata.has_key(playerid): playerdata[playerid]['knife_count'] += 1 else: playerdata[playerid] = {'knife_count':1} #Random price for being knifeking rewards = random.choice(reward) knifeking = playerlib.getPlayer(event_var['userid']) if rewards == 'a': knifekingcash = knifeking.get("cash") knifeking.set("cash", knifekingcash + cash) es.tell (event_var["userid"], "#multi", "#green[KnifeKing]#lightgreen You have been rewarded $ %s for being the current KnifeKing!" % cash) if rewards == 'b': es.sexec(event_var['userid'], "drop") es.sexec(event_var['userid'], "drop") es.give(event_var['userid'], primary) es.give(event_var['userid'], secondary) es.tell (event_var["userid"], "#multi", "#green[KnifeKing]#lightgreen You have been rewarded a weapon pack for being the current KnifeKing!") if rewards == 'c': knifeking.set('armor', armor) es.tell (event_var["userid"], "#multi", "#green[KnifeKing]#lightgreen You have been rewarded %s armor for being the current KnifeKing!" % armor) if rewards == 'd': knifeking.set('health', health) es.tell (event_var["userid"], "#multi", "#green[KnifeKing]#lightgreen You have been rewarded %s health for being the current KnifeKing!" % health) #let us set the skin! if event_var['es_userteam'] == '3': skin = playerlib.getPlayer(event_var['userid']) skin.set('model', skinct) else: if event_var['es_userteam'] == '2': skin = playerlib.getPlayer(event_var['userid']) skin.set('model', skint) def player_disconnect(event_var): global kk_userid if event_var['userid'] == str(kk_userid): kk_userid = 0