ich habe bereits mehrere kleine Scripte in Python geschrieben, bin aber dennoch Anfänger...
Und zwar hab ich ein Problem.
Mein Python Script liest über Telnet mit dem Befehl "lp" mehrere Spieler aus.
Die Liste ist wie folgt aufgebaut:
1. SPIELER 1
2. SPIELER 2
3. SPIELER 3
usw.
Diese möchte ich gerne in einer Datenbank speichern.
Ich habs soweit geschafft, dass er mir den ersten in der Liste in der Datenbank speichert, aber keine weiteren.
Habs schon mit ner While Schleife versucht, aber hat auch nicht geklappt.
Hier mal den Code, den ich verwende:
Code: Alles auswählen
while True:
line = tn.write("lp\n")
line = tn.read_until("\n")
while re.search("^(.*) INF Executing command 'lp' by Telnet from (.*):(.*)",line) is None:
line = tn.read_until("\n")
line = tn.read_until("\n")
if re.search("^Total of 0 in the game",line) is None:
data = re.search("(.*). id=(.*), (.*), pos=(.*), rot=(.*), remote=(.*), health=(.*), deaths=(.*), zombies=(.*), players=(.*), score=(.*), level=(.*), steamid=(.*), ip=(.*), ping=(.*)", line)
cursor.execute("SELECT * FROM players WHERE entityID = %s",(data.group(2)))
if cursor.rowcount >= 1:
row = cursor.fetchone()
#print line
#Zombiekills + Playerkills * 30 + level * 2 - Tote * 10 - ausgegebenes Geld
coins = int(row[7]) + (int(row[8]) * 30) + (int(row[4]) * 2) - (int(row[6]) * 10) - int(row[12])
cursor.execute("UPDATE players SET username = %s, level = %s, pos = %s, death = %s, zombiekills = %s, playerkills = %s, score = %s, ip = %s, coins = %s WHERE entityID = %s",(data.group(3), data.group(12), data.group(4), data.group(8), data.group(9), data.group(10), data.group(11), data.group(14), coins, data.group(2)))
connection.commit()
line = tn.read_until("\n")
else:
print line
cursor.execute("""INSERT INTO players (id,entityID,username,steamid,level,pos,death,zombiekills,playerkills,score,ip,coins,ausgegeben,ban) VALUES (NULL, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 0, 0, 0)""",(data.group(2), data.group(3), data.group(13), data.group(12), data.group(4), data.group(8), data.group(9), data.group(10), data.group(11), data.group(14)))
connection.commit()
line = tn.read_until("\n")
else:
line = tn.read_until("\n")
Gruß
drakes!