Also, da es hier scheinbar relativ wenige juckt mach ich jetzt mal einen Bug-Sammel Tread auf.
Wo ich einen Fix weiß werde ich den auch posten, auch wenn er evtl. nicht "Traumhaft" ist.
Ich bitte euch hier der Übersicht wegen nur Bugs zu posten, diese so ausführlich wie Möglich zu formulieren und wenn es geht auch Log's mit zu liefern!!!
Außerdem wäre es hilfreich, wenn ihr Bugs ggfs. bestätigen/nicht bestätigen könntet, ABER bitte vorher auch absolut sicher sein (notfalls testen oder wenn nicht, dann lieber ruhig sein!)
1. Bug:
Tritt seit der 0.11.2 auf (kann das noch jemand bestätigen?)
Während dem Mod-Start taucht das folgende als eine der ersten Zeilen auf...
MAM läuft dann aber scheinbar weiter, zumindest ist kein Fehlverhalten DIREKT zu finden.
2. Bug:
sowie
Geben die Message "Command not found" aus, allerdings funktioniert der !getip Befehl widerrum in Verbindung mit einem Nick/PID.
Fix:
In der Datei in "/languages/en/help/basic.lng" (bzw. für die deutsche Hilfe-Datei dann statt "en" eben "de") folgendes ans Ende einfügen:
Verbesserungsvorschlag inkl. Umsetzung für !getip:
Da !getip nur die IP anzeigt, sie allerdings nirgends auf dem Server in einer Textdatei speichert für eine einfachere/effizientere/spätere Verwendung um z.b. bestimmten User/Admin-gruppen zu ermöglichen die IP besonders hartnäckiger Cheater für den Gameserverbetreiber zu hinterlegen, sodass der Gameserveradmin diese IP(-Range) dann später z.B. per Firewall oder IPTables bannen kann; habe ich mir erlaubt die nun endlich eingebaute !getip Funktion etwas zu erweitern.
Hier der Code: Er muss im "/plugins" Verzeichnis in die Datei "basiccommands.php" an das Ende der !getip-Funktion eingefügt werden (die !getip-Funktion befindet sich ganz am Ende der Datei).
Also kopiert ihr UNTER die Zeile
$this->players[$guid]->say($this->mod->getLngString("getIp", array("<NAME>", "<IP>"), array($this->players[$player]->getName(), $ip)));
Folgendes:
$playerNick = $this->players[$player]->getName();
$day = date("d.m.Y");
$timestamp = date("H:i:s");
$msg = "[ $timestamp-$day ]***[ IP: $ip ]***[ GUID: $player ]***[ Nick: $playerNick ]";
$filename = "ips.txt";
$file = fopen($filename, 'a');
fwrite($file, $msg);
fwrite($file,"\n");
fclose($file);
Alles anzeigen
Es wird nun im "/adminmod" Verzeichnis die Datei "ips.txt" angelegt und dort wird dann der Nick, die GUID, die IP sowie das Datum und die Uhrzeit geloggt.
(Ein kompletter MAM neustart ist nötig nachdem Einfügen!)
3. Bug:
Bei folgenden Settings in der "config.cfg"
Funktioniert der !skip Befehl (immernoch?) nicht richtig, folgendes konnte ich bei einem (zugegebenermaßen nur relativ schnellen) Testen feststellen:
1. Die !nextmap anzeige weißt plötzlich schreibfehler IM mapnamen auf!!! So wird aus z.B. "Apesgorod" plötzlich "aesgorod", dies trat nicht nur bei dieser einen Map auf, sondern auch bei anderen (vermutlich allen?). Ein Rechtschreibfehler in der "maps.cfg" bei der Zuweißung von "mp_apesgorod" zu "Apesgorod" kann ich ausschließen, habe das überprüft.
2. Die Message zum skippen der nächsten Map war einfach leer, d.h. es tauchten nur "()" auf ohne Map darin.
Wenn ich es noch richtig im Kopf habe sah der Output der Console dann etwa so aus:
(Nicht der genaue Wortlaut, aber man versteht was ich meine, dabei waren die "()" Klammern in einer andern Farbe (glaube grün?), allerdings ohne Inhalt)
Ein !skip zeigte danach allerdings immerhin an wie viele Spieler noch !skip eingeben müssen (also z.B. "1/10" oder so).
Ich weiß nun nicht ob !skip überhuapt gefixt wurde, aber ich erwähne es auf jedenfall mal.
4. Bug:
Seit der 0.11.2 verzeichne ich wieder vermehrte MAM-Crashes, nachdem die 0.11.1 relativ stabil auch mal gut einen Monat ohne Crash überstand.
Auszug aus einem "mod_xxxxxxx.log" vor/während des Crashes:
564:08 [16.06.10 19:38:05] Notice: Player 'Xx3A2000xX' executed command: 'vote kick Jakob', PID: 25, GUID: 261fcc824fb73e0dd5bdf03988e1aeef
564:08 [16.06.10 19:38:05] PHP-Error: Notice in var/www/gameserver/cod4/adminmod/plugins/voting.php:105 => Undefined property: Voting::$votestarted
564:08 [16.06.10 19:38:05] Notice: Player 'KiKKo' joined, PID: 14, GUID: 80ebf552bd59b293837855af3e81984a
564:13 [16.06.10 19:38:06] Notice: Player 'Snipes'' executed command: 'yes', PID: 0, GUID: 3009ad62f6687917f00fcf97b11f1925
564:18 [16.06.10 19:38:08] Notice: Player 'pvt.Squid' executed command: 'yes', PID: 8, GUID: d4ed401f27eec8fe05762bd74680c710
564:23 [16.06.10 19:38:13] Notice: Player 'Xx3A2000xX' executed command: 'yes', PID: 25, GUID: 261fcc824fb73e0dd5bdf03988e1aeef
564:23 [16.06.10 19:38:13] Notice: Player 'Sgt Wolfie' executed command: 'yes', PID: 12, GUID: 1c19bc68ab0e41b61c6080384604d320
564:25 [16.06.10 19:38:15] Notice: Player 'Meny' executed command: 'online', PID: 23, GUID: fe77559314ebee83163f2ebf64e8fbdf
564:42 [16.06.10 19:38:32] Notice: Player 'JAKOB' quit, PID: 29, GUID: af2c88e1ab2fcce564b1be163f692071
564:42 [16.06.10 19:38:33] PHP-Error: Notice in var/www/gameserver/cod4/adminmod/plugins/voting.php:382 => Undefined index: af2c88e1ab2fcce564b1be163f692071
[16-Jun-2010 19:38:33] PHP Fatal error: Call to a member function getName() on a non-object in /var/www/gameserver/cod4/adminmod/plugins/voting.php on line 382
Alles anzeigen
Anzumerken ist, dass
PHP-Error: Notice in var/www/gameserver/cod4/adminmod/plugins/voting.php:105 => Undefined property: Voting::$votestarted
seit der 0.11.2 immer wieder in den Log's auftaucht, also nicht nur gerade hier am Ende bevor der MAM dann gecrasht ist.
Passend zu diesem Crash hier der Inhalt des "rcon.log":
[16.06.10 19:37:35] Input: tell 25 ^1PM: ^2^1Player ^7jacob^1 not found or more than one player match
Einige Sekunde später dann:
[16.06.10 19:38:05] Input: say ^1Vote STARTED: ^2Kick ^7JAKOB? ^7(Vote by typing ^3!y^2es ^7or ^3!n^1o^7)
[16.06.10 19:38:05] Output:
[16.06.10 19:38:05] Input: say ^2Welcome Player ^3KiKKo ^7. Enjoy your stay and be nice! hf & gl !
[16.06.10 19:38:06] Output:
[16.06.10 19:38:06] Input: tell 0 ^1PM: ^2You voted ^2YES^7!
[16.06.10 19:38:07] Output:
[16.06.10 19:38:07] Input: say ^7pvt.Squid ^1drew first blood!
[16.06.10 19:38:08] Output:
[16.06.10 19:38:08] Input: tell 8 ^1PM: ^2You voted ^2YES^7!
[16.06.10 19:38:09] Output:
[16.06.10 19:38:13] Input: tell 12 ^1PM: ^2You voted ^2YES^7!
[16.06.10 19:38:14] Output:
[16.06.10 19:38:15] Input: tell 23 ^1PM: ^2^3Online Admins: ^2Frosty ^1(Donator)^7, ^2Meny ^1(Admin)
[16.06.10 19:38:15] Output:
[16.06.10 19:38:19] Input: say ^2Please Vote: ^2Kick ^7JAKOB? ^7(^2Yes: 4^7, ^1No: 0^7) (Vote by typing ^3!y^2es ^7or ^3!n^1o^7)
[16.06.10 19:38:25] Output:
[16.06.10 19:50:45] =================
[16.06.10 19:50:45] Connection opened
Alles anzeigen
Wie man erkennt stürzt der MAM in der dritt-letzten Zeile ab (Zeitsprung von knapp 12 Minuten bis zum nächsten Log Eintrag).
Meine bescheidene Analyse/Idee:
Sehr viel Log wirr-warr, die beiden Logauszüge sind aber vom selben Zeitpunkt, das Problem scheint folgendes zu sein soweit ich das Beurteilen kann:
Der Spieler "JAKOB" soll gevote-kickt werden, er leavt aber bevor er gevotet wird, der Vote läuft dennoch weiter.
Nun versucht der MAM die Funktion "getName" aufzurufen (siehe Log:
Call to a member function getName() on a non-object in /var/www/gameserver/cod4/adminmod/plugins/voting.php on line 382
).
Zuvor geschah aber dies:
Notice: Player 'JAKOB' quit, PID: 29, GUID: af2c88e1ab2fcce564b1be163f692071
PHP-Error: Notice in var/www/gameserver/cod4/adminmod/plugins/voting.php:382 => Undefined index: af2c88e1ab2fcce564b1be163f692071
Und in der nächsten Sekunde schmiert der MAM dann ab :\
Viel spass bei der Fehlersuche Manu