Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: sourceserver.info. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • »TempletonPeck« ist der Autor dieses Themas

Beiträge: 2 498

Wohnort: Schwelm

Beruf: Immobilien-Verwalter / Serveradministrator

Rootserver vorhanden: Nein

  • Nachricht senden

1

Donnerstag, 2. Dezember 2010, 22:54

Kann wer das Script für mich etwas umschreiben?

1. Wenn man !rate eingibt soll das öffentlich erscheinen. Zur Zeit ist es ein "stiller" Befehl, den niemand anderes sieht.

2. Das Ergebnis der Bewertung (Thanks for rating *mapname....) sollte ebenfalls öffentlich sein.


Wenn das irgendwie ginge, wäre das Klasse.

Hier der Code:

Spoiler Spoiler

# Name: RateMap v2.0R3
# Author: JoeyT2008
# Description: Allows players to rate their favourite maps.
# Commands: !ratemap - Brings up the rating menu, or the error message if you have already rated.
# !rate - Brings up the rating menu, or the error message if you have already rated.
# !rm - Brings up the rating menu, or the error message if you have already rated.
# !rating - Tells the user what the current map is rated.
# !rating [map] - Tells the user what the chosen map is rated.
# !ratings - Shows the users all maps in a list and their ratings.
# !rmhelp - Brings up the command help menu.
# Credits: Creator JoeyT2008
# Help NATO_Hunter
# R`SiN
# Errant

import es, popuplib, os, playerlib, threading, gamethread, urllib2, time, langlib, cPickle, keyvalues

rm_admins = ["", ""]
rm_commands = {"!rm": "ratemap/sendPopup","!rate": "ratemap/sendPopup","!ratemap": "ratemap/sendPopup","!rating": "ratemap/viewRating","!ratings": "ratemap/listPopup","!rmhelp": "ratemap/viewCommands"}
rm_helpcommands = {"1": "!ratemap", "2": "!ratings", "3": "!rating", "4": "!rmhelp"}
ratemap_ver = es.ServerVar("ratemap_ver", "Menu", "Version of RateMap that you are using.")
ratemap_ver.makepublic()

info = es.AddonInfo()
info.name = "aimroyale.de RateMap"
info.version = ratemap_ver
info.url = "http://addons.eventscripts.com/addons/view/ratemap"
info.basename = "ratemap"
info.author = "JoeyT2008"

def loadMaps():
try:
file = open(es.getAddonPath("ratemap") + "/maps.dat", "r")
maps = cPickle.load(file)
file.close()
except: maps = {}
return maps

def saveMaps():
file = open(es.getAddonPath("ratemap") + "/maps.dat", "w")
cPickle.dump(ratemaps, file)
file.close()

def loadConfig():
path = str(es.ServerVar("eventscripts_gamedir")) + "/cfg/ratemap.cfg"
if os.path.exists(path):
config = open(path, "r").read()
for line in config.split("\n"):
line = line.strip()
if not line.startswith("/") and not line.startswith("-") and not line == "":
es.ServerVar(line.split()[0], line.split()[1])
else:
es.dbgmsg(0, lang("cfg_missing"))
logFile(lang("cfg_missing"))
es.unload("ratemap")

rm_variables = loadConfig()

def logFile(text):
try:
logfile_text = open(es.getAddonPath("ratemap") + "/ratemap.log", "r").read()
logfile_text += "%s: %s\n" % (time.ctime(), text)
logfile = open(es.getAddonPath("ratemap") + "/ratemap.log", "w")
logfile.write(logfile_text)
logfile.close()
except: pass

def Var(var):
try: return str(es.ServerVar(var))
except: return None

ratemaps = loadMaps()
lang = langlib.Strings(es.getAddonPath("ratemap") + "/strings.ini")

class webSQL(threading.Thread):
def run(self):
if Var("rm_usemysql") == "1":
runsql = None
try: runsql = urllib2.urlopen("%s/deleted.php?username=%s&password=%s" % (Var("rm_sqlurl"), Var("rm_username"), Var("rm_password"))).read()
except: logFile("Could not check for deleted maps.")
if runsql:
for map in runsql.split("\n"):
ratemaps.remove(map)
logFile("Removed: %s" % map)
saveMaps()
for map in ratemaps:
try: runsql = urllib2.urlopen("%s/update.php?username=%s&password=%s&map=%s&fivestars=%s&fourstars=%s&threestars=%s&twostars=%s&onestars=%s&runs=%s" % (Var("rm_sqlurl"), Var("rm_username"), Var("rm_password"), map, ratemaps[map][5], ratemaps[map][4], ratemaps[map][3], ratemaps[map][2], ratemaps[map][1], ratemaps[map][6])).read()
except: logFile("Could not connect to server.")
if runsql == "FINISHED": logFile("SQL table updated for %s." % map)

def load():
if not str(es.ServerVar("eventscripts_currentmap")) in ratemaps: setupMap(str(es.ServerVar("eventscripts_currentmap")))
for rm_command in rm_commands: es.regsaycmd(rm_command, rm_commands[rm_command])
es.regclientcmd("RateMap", "ratemap/RateMapClientAdmin")
if not es.exists("command", "RateMap"): es.regcmd("RateMap", "ratemap/RateMapAdmin")
if not es.exists("command", "ratemap_maplist"): es.regcmd("ratemap_maplist", "ratemap/printMaplist")
gamethread.delayedname(int(Var("rm_updatetime"))*60, "UpdateSQL", UpdateSQL)
if Var("rm_popup_automatic") == 1: gamethread.delayedname(int(rm_popup_minutes) * 60, "popupRating", sendPopupToAll)
ConvertDATtoDICT()

def unload():
gamethread.cancelDelayed("popupRating")
gamethread.cancelDelayed("UpdateSQL")
for rm_command in rm_commands: es.unregsaycmd(rm_command)
es.unregclientcmd("ratemap")
saveMaps()
for popup in ["ratemenu", "easyratemenu"]:
try: popuplib.delete(popup)
except: pass

def gg_win(event_var):
if Var("rm_ggpopup") == "1":
sendPopupToAll()

def sendPopupToAll():
for userid in playerlib.getUseridList("#all"):
if not hasRated(userid):
popupRating(userid)

def es_map_start(event_var):
if not str(es.ServerVar("eventscripts_currentmap")) in ratemaps: setupMap(str(es.ServerVar("eventscripts_currentmap")))
ratemaps[str(es.ServerVar("eventscripts_currentmap"))][6] += 1
createMapList()
gamethread.cancelDelayed("popupRating")
if Var("rm_popup_automatic") == 1: gamethread.delayedname(int(rm_popup_minutes) * 60, "popupRating", sendPopupToAll)
webSQL().start()

def UpdateSQL():
webSQL().start()
gamethread.delayedname(int(Var("rm_updatetime"))*60, "UpdateSQL", UpdateSQL)

def popupRating():
for userid in playerlib.getUseridList('#all'):
if not es.getplayersteamid(userid) in ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0]: sendPopupRating(userid)

def getRating(map):
try: return "%.2f" % (getMultipliedVotes(map) / float(getVotes(map)))
except: return "0.00"

def getPlayerRating(userid):
try: return ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0][es.getplayersteamid(userid)]
except: return "No Rating"

def hasRated(userid):
try:
if es.getplayersteamid(userid) in ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0]: return True
else: return False
except: return False

def getVotes(map):
if map in ratemaps: return int(ratemaps[map][1]) + int(ratemaps[map][2]) + int(ratemaps[map][3]) + int(ratemaps[map][4]) + int(ratemaps[map][5])
return 0

def getMultipliedVotes(map):
if map in ratemaps: return int(ratemaps[map][1])*1 + int(ratemaps[map][2])*2 + int(ratemaps[map][3])*3 + int(ratemaps[map][4])*4 + int(ratemaps[map][5])*5
return 0

def getRuns(map):
if map in ratemaps: return int(ratemaps[map][6])
return 0

def mapExists(map):
if map in ratemaps: return True
else: return False

def createMapList():
mapdict = {}
for map in ratemaps:
if float(getRating(map)) > 0:
if Var("rm_maplist_type") == "1": mapdict[map] = getMultipliedVotes(map)
elif Var("rm_maplist_type") == "2": mapdict[map] = getRating(map)
elif Var("rm_maplist_type") == "3": mapdict[map] = getVotes(map)
es.msg(mapdict)
mapdict = [(v, k) for k, v in mapdict.items()]
mapdict.sort()
mapdict.reverse()
mapdict = [(k, v) for v, k in mapdict]
if Var("rm_maplist") == "1":
maplist = open(str(es.ServerVar("eventscripts_gamedir")) + "/maplist.txt", "w")
try: votemaplist = open(str(es.ServerVar("eventscripts_gamedir")) + "/cfg/mani_admin_plugin/votemaplist.txt", "w")
except: pass
templist = open(es.getAddonPath("ratemap") + "/topmaps.txt", "w")
count = 0
for map in mapdict:
count += 1
if not count >= int(Var("rm_maplist_ammount")):
if Var("rm_maplist") == "1":
maplist.write("%s\n" % map[0])
try: votemaplist.write("%s\n" % map[0])
except: pass
templist.write("%s\n" % map[0])
if Var("rm_maplist") == "1":
maplist.close()
try: votemaplist.close()
except: pass
templist.close()

def round_start(event_var):
for userid in playerlib.getUseridList("#all"):
if Var("rm_announce") == "1":
if not es.getplayersteamid(userid) in ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0]: es.tell(userid, "#multi", lang("round_start_msg1", {}, playerlib.getPlayer(userid).get("lang")))
if getVotes(str(es.ServerVar("eventscripts_currentmap"))) > 0: es.tell(userid, "#multi", lang("rating", {"map": str(es.ServerVar("eventscripts_currentmap")), "rating": getRating(str(es.ServerVar("eventscripts_currentmap"))), "votes": getVotes(str(es.ServerVar("eventscripts_currentmap")))}, playerlib.getPlayer(userid).get("lang")))

def teamplay_round_start(event_var):
for userid in playerlib.getUseridList("#all"):
if Var("rm_announce") == "1":
if not es.getplayersteamid(userid) in ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0]: es.tell(userid, "#multi", lang("round_start_msg1", {}, playerlib.getPlayer(userid).get("lang")))
if getVotes(str(es.ServerVar("eventscripts_currentmap"))) > 0: es.tell(userid, "#multi", lang("rating", {"map": str(es.ServerVar("eventscripts_currentmap")), "rating": getRating(str(es.ServerVar("eventscripts_currentmap"))), "votes": getVotes(str(es.ServerVar("eventscripts_currentmap")))}, playerlib.getPlayer(userid).get("lang")))

def viewRating():
userid = es.getcmduserid()
if es.getargc() <= 2:
if es.getargc() == 2: map = es.getargv(1)
else: map = str(es.ServerVar("eventscripts_currentmap"))
if mapExists(map) > 0: es.tell(userid, "#multi", lang("rating", {"map": map, "rating": getRating(map), "votes": getVotes(map)}, playerlib.getPlayer(userid).get("lang")))
else: es.tell(userid, "#multi", lang("no_rating", {"map": map}, playerlib.getPlayer(userid).get("lang")))
else: es.tell(userid, "#multi", lang("viewrating", {}, playerlib.getPlayer(userid).get("lang")))

def sendPopup():
userid = es.getcmduserid()
popupRating(userid)

def popupRating(userid, ignore=0):
ratemenu = popuplib.create("ratemenu")
ratemenu.addline("aimroyale.de RateMap Menu")
ratemenu.addline("-------------------")
ratemenu.addline("%s: %s" % (lang("map", {}, playerlib.getPlayer(userid).get("lang")), str(es.ServerVar("eventscripts_currentmap"))))
if not hasRated(userid) or ignore == 1:
ratemenu.addline("-------------------")
ratemenu.addline("->1. %s" % lang("fivestars", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("->2. %s" % lang("fourstars", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("->3. %s" % lang("threestars", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("->4. %s" % lang("twostars", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("->5. %s" % lang("onestars", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("-------------------")
else:
ratemenu.addline("%s: %s" % (lang("ratingtxt", {}, playerlib.getPlayer(userid).get("lang")), str(getRating(str(es.ServerVar("eventscripts_currentmap"))))))
ratemenu.addline("%s: %s" % (lang("prevrating", {}, playerlib.getPlayer(userid).get("lang")), str(getPlayerRating(userid))))
ratemenu.addline("-------------------")
perbar = {}
total = getVotes(str(es.ServerVar("eventscripts_currentmap")))
map = str(es.ServerVar("eventscripts_currentmap"))
for x in range(5):
if int(getStars(map, x+1)) > 0:
value = int(round(100/float(float(total)/float(getStars(map, x+1))) / 5.0))
else:
value = 0
testnum = 20
perbar[x+1] = "[" + "l" * value + " " * (testnum-value) + "]"
ratemenu.addline("%s (%s - %s %s)" % (perbar[5], lang("fivestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 5), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[4], lang("fourstars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 4), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[3], lang("threestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 3), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[2], lang("twostars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 2), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[1], lang("onestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 1), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("-------------------")
if Var("rm_allowrerate") == "1":
ratemenu.addline("->1. %s" % lang("changerating", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("0. %s" % lang("close", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline("-------------------")
if not hasRated(userid) or ignore == 1:
ratemenu.menuselect = giveRating
else:
ratemenu.menuselect = changeRating
ratemenu.send(userid)

def getStars(map, rating):
return ratemaps[map][int(rating)]

def changeRating(userid, choice, popup):
if choice == 1:
popupRating(userid, 1)

def giveRating(userid, choice, popup):
if int(choice) in range(1, 6):
choice = 6-int(choice)
if hasRated(userid):
try: ratemaps[str(es.ServerVar("eventscripts_currentmap"))][int(getPlayerRating(userid).split(".")[0])] -= 1
except: pass
es.tell(userid, "#multi", lang("thx_for_rerating", {"map": str(es.ServerVar("eventscripts_currentmap"))}, playerlib.getPlayer(userid).get("lang")))
else:
es.tell(userid, "#multi", lang("thx_for_rating", {"map": str(es.ServerVar("eventscripts_currentmap"))}, playerlib.getPlayer(userid).get("lang")))
ratemaps[str(es.ServerVar("eventscripts_currentmap"))][choice] += 1
ratemaps[str(es.ServerVar("eventscripts_currentmap"))][0][es.getplayersteamid(userid)] = "%d.00" % choice
es.tell(userid, "#multi", lang("rating", {"map": str(es.ServerVar("eventscripts_currentmap")), "rating": getRating(str(es.ServerVar("eventscripts_currentmap"))), "votes": getVotes(str(es.ServerVar("eventscripts_currentmap")))}, playerlib.getPlayer(userid).get("lang")))
saveMaps()

def setupMap(map):
ratemaps[map] = {}
ratemaps[map][0], ratemaps[map][1], ratemaps[map][2], ratemaps[map][3], ratemaps[map][4], ratemaps[map][5], ratemaps[map][6] = {}, 0, 0, 0, 0, 0, 0

def listPopup():
userid = es.getcmduserid()
ratemenu = popuplib.create("ratemenu")
ratemenu.addline('RateMap v%s' % str(ratemap_ver))
ratemenu.addline('-------------------')
ratemenu.addline('->1. %s' % lang("nameasc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('->2. %s' % lang("namedesc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('->3. %s' % lang("votesasc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('->4. %s' % lang("votesdesc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('->5. %s' % lang("ratingasc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('->6. %s' % lang("ratingdesc", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.addline('0. %s' % lang("close", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.menuselect = sortMaps
ratemenu.send(userid)

def sortMaps(userid, choice, popup):
if choice == 1: sortMapsBy(userid, 1, 1)
if choice == 2: sortMapsBy(userid, 1)
if choice == 3: sortMapsBy(userid, 2)
if choice == 4: sortMapsBy(userid, 2, 1)
if choice == 5: sortMapsBy(userid, 3)
if choice == 6: sortMapsBy(userid, 3, 1)

def sortMapsBy(userid, type, reverse=0):
ratemenu = popuplib.easymenu("easyratemenu", "_popup_choice", showMapInfo)
ratemenu.settitle("RateMap v%s\n%s" % (str(ratemap_ver), lang("mapratings", {}, playerlib.getPlayer(userid).get("lang"))))
maps = {}
for map in ratemaps:
if type == 1: maps[map] = map
if type == 2: maps[map] = getVotes(map)
if type == 3: maps[map] = getRating(map)
maps = [(v, k) for k, v in maps.items()]
maps.sort()
if reverse == 1 and not type == 1: maps.reverse()
if reverse == 0 and type == 1: maps.reverse()
maps = [(k, v) for v, k in maps]
for map in maps:
if type == 1: ratemenu.addoption(map[0], map[0])
elif type == 2: ratemenu.addoption(map[0], "%s - %s %s" % (map[0], map[1], lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
elif type == 3: ratemenu.addoption(map[0], "%s - %s/5.00" % (map[0], map[1]))
ratemenu.send(userid)

def showMapInfo(userid, map, popupid):
ratemenu = popuplib.create('ratemenu:%s' % map)
ratemenu.addline('RateMap v%s' % str(ratemap_ver))
ratemenu.addline('-------------------')
ratemenu.addline('%s: %s' % (lang("mapname", {}, playerlib.getPlayer(userid).get("lang")), map))
ratemenu.addline('%s: %s' % (lang("ratingtxt", {}, playerlib.getPlayer(userid).get("lang")), str(getRating(map)) + "/5.00"))
if es.getplayersteamid(userid) in ratemaps[map][0]: ratemenu.addline('%s: %s' % (lang("yourrating", {}, playerlib.getPlayer(userid).get("lang")), ratemaps[map][0][es.getplayersteamid(userid)]))
ratemenu.addline('%s: %s' % (lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang")), str(getVotes(map))))
ratemenu.addline('%s: %s' % (lang("mapruns", {}, playerlib.getPlayer(userid).get("lang")), str(getRuns(map))))
ratemenu.addline('-------------------')
perbar = {}
total = getVotes(map)
for x in range(5):
if int(getStars(map, x+1)) > 0:
value = int(round(100/float(float(total)/float(getStars(map, x+1))) / 5.0))
else:
value = 0
testnum = 20
perbar[x+1] = "[" + "l" * value + " " * (testnum-value) + "]"
ratemenu.addline("%s (%s - %s %s)" % (perbar[5], lang("fivestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 5), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[4], lang("fourstars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 4), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[3], lang("threestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 3), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[2], lang("twostars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 2), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline("%s (%s - %s %s)" % (perbar[1], lang("onestars", {}, playerlib.getPlayer(userid).get("lang")), getStars(map, 1), lang("totalvotes", {}, playerlib.getPlayer(userid).get("lang"))))
ratemenu.addline('-------------------')
if es.getplayersteamid(userid) in rm_admins:
ratemenu.addline('->1. %s' % lang("clearrating", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.menuselect = clearRating
ratemenu.addline('0. %s' % lang("close", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.send(userid)

def clearRating(userid, choice, popup):
if choice == 1:
clearDatabase(popup.split(":")[1], userid)

def viewCommands():
userid = es.getcmduserid()
ratemenu = popuplib.create('ratemenu')
ratemenu.addline('RateMap v%s' % str(ratemap_ver))
ratemenu.addline('-------------------')
ratemenu.addline(lang("help", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
for x in rm_helpcommands:
ratemenu.addline('->%s. %s' % (x, rm_helpcommands[x]))
ratemenu.addline('-------------------')
ratemenu.addline('0. %s' % lang("close", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.menuselect = viewCommandHelp
ratemenu.send(userid)

def viewCommandHelp(userid, choice, popup):
if choice in range(1,5):
ratemenu = popuplib.create('ratemenu')
ratemenu.addline('RateMap v%s' % str(ratemap_ver))
ratemenu.addline('-------------------')
ratemenu.addline(rm_helpcommands[str(choice)])
ratemenu.addline('-------------------')
for x in {"1": [1,2,3], "2": [4,5,6,7,8], "3": [9,10,11], "4": [12,13,14]}[str(choice)]: ratemenu.addline('%s' % lang("rmh%d" % x, {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.addline('0. %s' % lang("close", {}, playerlib.getPlayer(userid).get("lang")))
ratemenu.addline('-------------------')
ratemenu.send(userid)

def ConvertDATtoDICT():
path = es.getAddonPath("ratemap") + "/data/"
if os.path.exists(path):
for file in os.listdir(path):
map = file.split(".")[0]
filepath = path + file
if not map in ratemaps:
mapkey = keyvalues.KeyValues(name=map)
mapkey.load(filepath)
ratemaps[map] = {}
ratemaps[map][0] = {}
for steamid in mapkey:
if not str(steamid) in ["fivestars", "fourstars", "threestars", "twostars", "onestars", "runs"]: ratemaps[map][0][str(steamid)] = mapkey[str(steamid)]["Rated"]
try: ratemaps[map][6] = int(mapkey["runs"]["count"])
except: ratemaps[map][6] = 0
try: ratemaps[map][5] = int(mapkey["fivestars"]["count"])
except: ratemaps[map][5] = 0
try: ratemaps[map][4] = int(mapkey["fourstars"]["count"])
except: ratemaps[map][4] = 0
try: ratemaps[map][3] = int(mapkey["threestars"]["count"])
except: ratemaps[map][3] = 0
try: ratemaps[map][2] = int(mapkey["twostars"]["count"])
except: ratemaps[map][2] = 0
try: ratemaps[map][1] = int(mapkey["onestars"]["count"])
except: ratemaps[map][1] = 0
try: os.remove(filepath)
except: pass

def RateMapClientAdmin():
userid = es.getcmduserid()
if es.getplayersteamid(userid) in rm_admins:
if es.getargc() > 1:
subcommand = es.getargv(1)
if subcommand == "clear":
if es.getargc() == 3:
clearDatabase(es.getargv(2), userid)
else: es.tell(userid, "#multi", "#green[RateMap] #lightgreenSyntax: #defaultRateMap clear <map>/all")
elif subcommand == "popup":
if es.getargc() >= 3:
if not es.getargv(2) == "1":
senduserid = es.getuserid(es.getargv(2))
if es.getargc() == 4: force = int(es.getargv(3))
else: force = 0
if es.exists("userid", senduserid):
if not hasRated(senduserid) or force == 1:
popupRating(senduserid)
es.tell(userid, "#multi", "#green[RateMap] #defaultSent RateMap popup to #lightgreen%s#default." % es.getplayername(senduserid))
else:
es.tell(userid, "#multi", "#green[RateMap] #defaultCouldn't find player: #lightgreen%s#default." % es.getargv(2))
else:
for senduserid in playerlib.getUseridList("#all"): popupRating(senduserid)
es.tell(userid, "#multi", "#green[RateMap] #defaultSent RateMap popup to all players.")
else:
for senduserid in playerlib.getUseridList("#all"):
if not hasRated(senduserid): popupRating(senduserid)
es.tell(userid, "#multi", "#green[RateMap] #defaultSent RateMap popup to all players.")
elif subcommand == "help" or subcommand == "commands":
es.tell(0, "#green[RateMap] #defaultCommands: #lightgreenhelp#default, #lightgreenclear#defualt, #lightgreenpopup#default.")
else:
es.tell(userid, "#multi", "#green[RateMap] #lightgreenSyntax: #defaultRateMap <command> [paramaters]")

def RateMapAdmin():
if es.getargc() > 1:
subcommand = es.getargv(1)
if subcommand == "clear":
if es.getargc() == 3:
clearDatabase(es.getargv(2), userid)
else: es.dbgmsg(0, "[RateMap] Syntax: RateMap clear <map>/all")
elif subcommand == "popup":
if es.getargc() >= 3:
if not es.getargv(2) == "1":
senduserid = es.getuserid(es.getargv(2))
if es.getargc() == 4: force = int(es.getargv(3))
else: force = 0
if es.exists("userid", senduserid):
if not hasRated(senduserid) or force == 1:
popupRating(senduserid)
es.dbgmsg(0, "[RateMap] Sent RateMap popup to %s." % es.getplayername(senduserid))
else:
es.dbgmsg(0, "[RateMap] Couldn't find player: %s." % es.getargv(2))
else:
for senduserid in playerlib.getUseridList("#all"): popupRating(senduserid)
es.dbgmsg(0, "[RateMap] Sent RateMap popup to all players.")
else:
for senduserid in playerlib.getUseridList("#all"):
if not hasRated(senduserid): popupRating(senduserid)
es.dbgmsg(0, "[RateMap] Sent RateMap popup to all players.")
elif subcommand == "help" or subcommand == "commands":
es.dbgmsg(0, "[RateMap] Commands: help, clear, popup")
else:
es.dbgmsg(0, "[RateMap] Syntax: RateMap <command> [paramaters]")

def clearDatabase(map, userid=None):
global ratemaps
if map.lower() == "all":
ratemaps = {}
if userid: es.tell(userid, "#multi", "#green[RateMap] #defaultThe map database has been cleared.")
else: es.dbgmsg(0, "[RateMap] The map database has been cleared.")
else:
try:
del ratemaps[map]
if userid: es.tell(userid, "#multi", "#green[RateMap] #defaultDeleted #lightgreen%s#default from the map database." % map)
else: es.dbgmsg(0, "[RateMap] Deleted %s from the map database." % map)
except:
if userid: es.tell(userid, "#multi", "#green[RateMap] #defaultCould not find map: #lightgreen%s#default." % map)
else: es.dbgmsg(0, "[RateMap] Could not find map: %s." % map)
saveMaps()

def printMaplist():
prefix = ""
if es.getargc() > 1:
prefix = es.getargs()
es.dbgmsg(0, "---------------")
es.dbgmsg(0, "RateMap Maplist")
es.dbgmsg(0, "---------------")
if len(ratemaps) > 0:
for map in ratemaps:
if map.startswith(prefix):
es.dbgmsg(0, "%s: %s/5.00 with %s votes" % (map, getRating(map), getVotes(map)))
else:
es.dbmsg(0, "No maps in database.")
es.dbgmsg(0, "---------------")

DeaD_EyE

Administrator

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

2

Donnerstag, 2. Dezember 2010, 23:45

Re: Kann wer das Script für mich etwas umschreiben?

Du kannst mit dem Script nichts anfangen, wenn die Einrückungen weg sin. Das ist bei Python von bedeutung.

Hier der Link von dem Script: http://forums.eventscripts.com/viewtopic.php?t=18306">http://forums.eventscripts.com/viewtopic.php?t=18306</a>
Code: http://pastebin.com/0Xt5TwnF">http://pastebin.com/0Xt5TwnF</a>

  • »TempletonPeck« ist der Autor dieses Themas

Beiträge: 2 498

Wohnort: Schwelm

Beruf: Immobilien-Verwalter / Serveradministrator

Rootserver vorhanden: Nein

  • Nachricht senden

3

Donnerstag, 2. Dezember 2010, 23:57

Re: Kann wer das Script für mich etwas umschreiben?

Uppala....

Alles klar, danke.

Edit: Ich habe das Script schon teilweise überarbeitet. Insofern wäre eine Überarbeitung des
Original Scripts, etwas sinnlos, da dadurch meine Änderungen verloren gingen.


Besteht hier nicht die Möglichkeit, meinen Code mit Einrückungen darzustellen?