Are there any error messages in the mod.log?
Edit: Can you please join your server, kill somebody, check !stats, leave, join, check !stats. BE SURE, that the server/round/map doesn't restart/change during your test!
Are there any error messages in the mod.log?
Edit: Can you please join your server, kill somebody, check !stats, leave, join, check !stats. BE SURE, that the server/round/map doesn't restart/change during your test!
Dann findet er den Player nicht ($mod->findPlayerGuid() liefert false).
Entweder du prüfst das noch oder (wie ich bereits empfohlen habe) integrierst deine Prüfung in die banIpAndKick-Funktion.
private function banIpAndKick($kickerGuid, $playerToBan, $duration = 0, $reason = false) {
global $mod, $players;
$playerToBanGuid = $mod->findPlayerGuid($playerToBan);
if ($playerToBanGuid == false) {
$players[$kickerGuid]->say($mod->getLngString("playerNotFound", array("<SEARCH>"), array($playerToBan)));
return false;
}
if ($players[$playerToBanGuid]->isProtected()) {
$players[$kickerGuid]->say("^1player is protected");
return false;
}
$rconPlayerList = $mod->rconPlayerList();
foreach($rconPlayerList as $rconPlayer) {
if ($rconPlayer["guid"] == $playerToBanGuid) {
// ...............
Alles anzeigen
mam neu starten...
public function commandBanIp($kickerGuid, $parameters) {
global $mod, $players;
if ($mod->getCV("banip", "enabled") != 1) {
return;
}
$this->cleanup();
if (count($parameters) < 1) {
$players[$kickerGuid]->say("Koristenje: ^3!banip igrac [reason] ^2IME IGRACA MORA BITI JEDNA RIJEC!");
return false;
}
/**DEFINING PLAYER BY GUID*/
$playerToBanGuid = $mod->findPlayerGuid($parameters[0]);
/**CHECKING IF PROTECTED*/
if ($players[$playerToBanGuid]->isProtected()){
$players[$kickerGuid]->say("Ma sredio mad da ^3ne mozes banat IP protectanog igraca ^2<3");
return false;
}
if (count($parameters) == 2) {
$reason = false;
} else {
$reason = "";
for ($n = 1; $n < count($parameters); $n++) {
$reason .= $parameters[$n] . " ";
}
}
$this->banIpAndKick($kickerGuid, $parameters[0], 0, trim($reason));
}
Alles anzeigen
Probiers damit!
Es wäre aber taktisch besser, wenn du das in die Funktion banIpAndKick rein machen würdest. !banip ist ja nicht der einzhige Befehl, der bannen kann.
multiple-cods-and-mams-checklist:
- different logfile for the cods (-> different server configs)
- multiple copies of mam (separate folders)
- every config.cfg configured properly (at least different logfile paths and rcon ports)
post your statistics part of your config.cfg
Maybe player isn't listed: Team LineX Server Database
War noch ein Fehler drin, kopiere es dir nochmal oben raus.
Das sollte gehen:
!hinweis dieser text landet in der Datei log/hinweis.txt
<?php
$hinweis= new hinweis();
$mod->registerCommand("hinweis", false, "command", $hinweis);
class hinweis {
public function command ($guid, $parameters) {
$line = implode(" ", $parameters);
if (trim($line) != "")
{
$file = fopen(LOGDIR . "/hinweis.txt", "a");
fwrite($file, "$line\r\n");
fclose($file);
}
else
{
global $players;
$players[$guid]->say("Gib einen Grund an");
}
}
}
Alles anzeigen
You preg_match is buggy. And "it works fine since a few months" doesn't mean, that it doesn't contain any errors.
Demonstration wanted?
Run attachment with
Result:
'01234567890123456789021345678901' speedy: valid yenz: valid
'abcdefabcdefabcdefabcdefabcdefab' speedy: valid yenz: valid
'0123456789abcdef0123456789abcdef' speedy: valid yenz: valid
'000111' speedy: invalid yenz: invalid
'000000000000000000000000000000000000' speedy: invalid yenz: invalid
'12 12' speedy: valid yenz: invalid
'xxxxxxxxxaxxxxxxxxxxxxxxxxxxxxx1' speedy: valid yenz: invalid
'&& /*-*+-*/+s1ss%&$%(/&%/(&%/&' speedy: valid yenz: invalid
P.S.: I didn't want a comparison between your and my code. If you add two little chars, your will work correctly. Furthermore (to cleanup your code:
- trim() isn't necessary (already trimmed)
- $guid == "" isn't necessary (will be checked with strlen()-check)
)
You check a CVar from antiemptyguid (which maybe is wanted). But maybe asifali_eng thought it's for the antiemptyguid-plugin.
wtf ist going on in line 58 :lol:
@Speedy: Your code is not working properly
asifali_eng: I would recommend this code:
public function playerJoined ($guid)
{
global $mod;
global $players;
if (!$mod->getCV("antiFakeguid", "enabled"))
{
return;
}
if (strlen($guid) != 32 || !preg_match('/^[a-f0-9]*$/', $guid))
{
switch ($mod->getCV("antiFakeguid", "mode"))
{
case "tempban":
$players[$guid]->tempBan($mod->getCV("antiFakeguid", "kickreason"));
break;
case "kick":
$players[$guid]->kick($mod->getCV("antiFakeguid", "kickreason"));
break;
case "ban":
$players[$guid]->ban($mod->getCV("antiFakeguid", "kickreason"));
break;
}
}
}
Alles anzeigen
Furthermorde I would like to see the valid length configurable in the config. in dlder games (e.g. COD2) the guid has about ten characters.
All in all: Nice plugin.
Was für ein Server hast du eigentlich, dass sich das die IP ändert? (Oder ich verstehe das Grundproblem nicht.)
Kurz: Nein.
Lang: Wenn du in cod auf cod.domain.de verbindest, versucht er sich mit dem Server, wo dieser Webspace läuft, zu verbinden. Das PHP-Skript (auf Port 80) wird nie aufgerufen. Und eine Umleitung auf eine andere IP ist nur z.B. auf einen anderen Webspace möglich (oder halt alles, was im Browser so unterstützt wird).
Was du machen kannst: XFire-Join/GT-Join/xxx-Join-Link auf deiner Webseite.
I assume the first entry (Killer5000) will be overwritten with the second one (dnlbs1). So no, it won't work.
belstgut posted the best solution!
For finding out your guid, join an server with MAM and execute !me.
OR
Join your own server and check the mod.log (ind your mam's log folder).
ICH weiß mehr :mrgreen:
Also derzeit gibt es leider kein solches Plugin. Dieses auch mit einem normalen Plugin umzusetzen wäre mit der jetzigen MAM-Version etwas "overkill", da sehr viele Sachen extra und getrennt erfasst und gespeichert werden muss. Wir sind uns aber bewusst, dass solch konfigurierbaren Willkommensnachrichten sehr gefragt sind und werden dies in der nächsten MAM-Version implementieren.
WANN das sein wird, kann ich dir nicht im geringsten sagen. (It's done when it's done!)
Also vorerst lautet daher die Antwort: Nicht machbar (ohne großen Aufwand in ein einziges Plugin zu stecken).
Ein *Push*, da ich zu 99% die Ursache+Lösung gefunden habe:
ZitatWichtig!
PHP in diesem Paket benötigt die Microsoft Visual C++ 2008 Redistributable Erweiterung von http://www.microsoft.com/en-us/download/details.aspx?id=5582. In den meisten Fällen besitzt Ihr Rechner schon diese Erweiterung.
Quelle: apache friends - xampp für windows
Edit: Ach, ich sehe gerade, dass der letzte Post von mir auch schon auf das C++ Redistr. verweist. Hier dann jetzt allerdings nochmal in offizieller Form, da kein Forenthread, sondern auf der Downloadseite von XAMPP.
ich weiß nicht, ob das wichtig ist, allerdings hier noch ein konkreter Treffer, der sehr relevant sein könnte: Apache Friends Support Forum • View topic - Apache "side-by-side configuration is incorrect"
Der hat den Fehler zwar beim Apache Webserver, betrifft aber ebenfalls XAMPP unter Windows Server 2008!
Viel Erfolg!
Also das ist weder ein MAM- noch ein PHP-Fehler, sondern ist wohl ein allgemeiner Windows-Fehler.
Am Besten bemühst du selbst mal Google, einen ersten vielversprechenden Artikel findest du hier: Lösungsansätze für 'Side by Side Konfiguration ungültig' Fehlermeldungen beim Starten von Programmen - WinVistaSide Forum
Wo hast du PHP heruntergeladen?
Ich empfehle 1.) php for windows oder 2.) xampp für windows (dort ist php enthalten)