Laut Google funktioniert nur der LAN-Modus ohne PunkBuster.
Das stimmt man kann aber bestimmte script abändern dann kommen keine fehlermeldungen mehr.
Laut Google funktioniert nur der LAN-Modus ohne PunkBuster.
Das stimmt man kann aber bestimmte script abändern dann kommen keine fehlermeldungen mehr.
If the generator really dont work try this: http://www.sha1.cz/ and take the code from it as:
YourName:Yourgroup:yoursha1hashpassword
and write it as a new line in the tcp_user.db
and remember your username must be equalwith upper and lowercase letters to log in so if your write in TCP User Db Test dont use test to log in.
Maybe you started your MAM twice.
<?php
/*
* WeaponrestrictionsGametype
* Author: Voices
* Xfire: voices95
*/
$mod->setDefaultCV("wpgt", "enabled", 0);
$mod->setDefaultCV("wpgt", "weapons", "");
$mod->setDefaultCV("wpgt", "gametype", "sd");
$mod->setDefaultCV("wpgt", "warnstokick", 2);
$mod->setDefaultCV("wpgt", "mode", "kick");
$mod->setDefaultCV("wpgt", "reason", "Used a restricted weapon: <WEAPON>");
$wpgt = new WeaponrestrictionsGametype();
$wpgt->event_playerInit();
$mod->registerEvent("playerJoined", "event_playerInit", $wpgt);
$mod->registerEvent("playerKill", "event_CheckKill", $wpgt);
$mod->registerEvent("playerTeamKill", "event_CheckKill", $wpgt);
class WeaponrestrictionsGametype {
private $players;
private $mod;
private $logging;
public function __construct() {
$this->players = &$GLOBALS['players'];
$this->mod = &$GLOBALS['mod'];
$this->logging = &$GLOBALS['logging'];
}
public function event_CheckKill($parameters) {
list($killer_guid, $victim_guid, $weapon) = $parameters;
if (!$this->mod->getCV("wpgt", "enabled")) {
return;
}
if ($this->players[$killer_guid]->isProtected()) {
return;
}
if($this->mod->getCurrentGametype() !== $this->mod->getCV("wpgt", "gametype")) {
return;
}
$weapons = explode(",", strtolower($this->mod->getCV("wpgt", "weapons")));
$restricted = false;
if ($weapon[1] == "MOD_MELEE") {
if (in_array("knife", $weapons)) {
$restricted = true;
}
else {
//Dont warn when player knived while he had a restricted weapon
return;
}
}
if($this->isForbiddenWeapon($weapon[0], $weapons)) {
$restricted = true;
}
if (!$restricted) return;
if ($this->players[$killer_guid]->wpgt_warns >= $this->mod->getCV("wpgt", "warnstokick")) {
$this->punishPlayer($killer_guid, $weapon[0]);
}
}
public function event_playerInit() {
foreach (array_keys($this->players) as $guid) {
$this->players[$guid]->wpgt_warns = 0;
}
}
private function isForbiddenWeapon($weapon, $weapons) {
if (!in_array($weapon, $weapons)) {
return true;
}
return false;
}
private function punishPlayer($guid, $weapon) {
switch ($this->mod->getCV("wpgt", "mode")) {
case "tempban":
$this->players[$guid]->tempBan(str_replace("<WEAPON>", $weapon, $this->mod->getCV("wpgt", "reason")));
break;
case "kick":
$this->players[$guid]->kick(str_replace("<WEAPON>", $weapon, $this->mod->getCV("wpgt", "reason")));
break;
case "ban":
$this->players[$guid]->ban(str_replace("<WEAPON>", $weapon, $this->mod->getCV("wpgt", "reason")));
break;
}
}
}
Alles anzeigen
This Plugin is not tested yet.
Concifg.cfg:
[wpgt]
enabled = 1
weapons = "p90,knife,etc"
gametype = "sd"
warnstokick = 2
mdoe = "kick"
reason = "Used a restricted weapon: <WEAPON>"
Hope it works if not tell me the Error.
I will write you a Plugin gimme some time.
Ich verstehe ihn auch nicht einfach die custm_ruleset editieren das wäre so viel einfacher und als mode custom_public einstellen...
Welche version des Adminmod benutzt du da die Getip Funktion erst im 0.12 gefixxt ist und da das Plugin nur damit funktioniert würde ich dir empfehlen diese version zu nutzen
Sorry we dont offer support for versions below 0.12 so you can downlaod the newwest version of the AdminMod or we cant offer you support closed.
Ja Sql injection dürfte gehen das Plugin ist uralt darum hab ich es auch noch nicht released.
EDIT: D.h. aber auf iceops und originalen servern geht es schonmal nicht
<?php
/*
* Author: Vo!ces
* Xfire: voices95
*/
// SET DEFAULT CVS
$mod->setDefaultCV("shelly_ban", "enabled", 0);
$mod->setDefaultCV("shelly_ban", "banreason", "Global Banned on our Servers");
$mod->setDefaultCV("shelly_ban", "hostname", "localhost");
$mod->setDefaultCV("shelly_ban", "user", "banlist");
$mod->setDefaultCV("shelly_ban", "password", "securepassword");
$mod->setDefaultCV("shelly_ban", "database", "banlist");
$mod->setDefaultCV("shelly_ban", "table", "logKickBan");
// REGISTER EVENTS
$mod->registerEvent("playerJoined", "joined_hacker");
function joined_hacker($guid) {
global $mod;
global $players;
$db = mysql_connect($mod->getCV("shelly_ban", "hostname"),$mod->getCV("shelly_ban", "user"),$mod->getCV("shelly_ban", "password"))or die("Fehler");
mysql_select_db($mod->getCV("shelly_ban", "database"));
echo mysql_error();
$result = mysql_query("SELECT guid FROM ". $mod->getCV("shelly_ban", "table")." WHERE guid='". $guid ."' AND type ='ban'");
$rowguid = mysql_num_rows($result);
if($rowguid != "0") {
$players[$guid]->ban($mod->getCV("shelly_ban", "banreason"));
}
mysql_close($db);
}
?>
Alles anzeigen
So ergibt es mehr sinn allerdings brauchst du dafür eine spalte type in der mysqldb wo ban drin steht.
Das komplettpaket sehe dann so aus:
<?php
// SET DEFAULT CVS
$mod->setDefaultCV("banlist", "enabled", 0);
$mod->setDefaultCV("banlist", "banreason", "Global Banned on our Servers");
$mod->setDefaultCV("banlist", "hostname", "localhost");
$mod->setDefaultCV("banlist", "user", "banlist");
$mod->setDefaultCV("banlist", "password", "securepassword");
$mod->setDefaultCV("banlist", "database", "banlist");
$mod->setDefaultCV("banlist", "table", "bans");
try {
$banlist = new banlist();
}
catch (Exception $e) {
$logging->write(MOD_ERROR, "Banlist: " . $e->getMessage());
}
// REGISTER EVENTS
$mod->registerEvent("playerJoined", "banlist_joined", $banlist);
$mod->registerEvent("playerBanned", "banlist_ban", $banlist);
class banlist {
protected $mod;
protected $players;
protected $logging;
public function __construct()
{
$this->mod = &$GLOBALS['mod'];
$this->players = &$GLOBALS['players'];
$this->logging = &$GLOBALS['logging'];
$this->checkExtension();
$this->checkTables();
}
private function checkExtension() {
if (!$this->mod->getCV("banlist", "enabled")) {
return;
}
if (!extension_loaded('mysql')) {
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
@dl("php_mysql.dll");
}else {
@dl("mysql.so");
}
}
if (!function_exists("mysql_connect")) {
throw new Exception("MySQL extension for PHP is not installed! Please install the MySQL extension to use this feature");
}
}
private function checkTables() {
if (!$this->mod->getCV("banlist", "enabled")) {
return;
}
$db = mysql_connect($this->mod->getCV("banlist", "hostname"),$this->mod->getCV("banlist", "user"),$this->mod->getCV("banlist", "password"))or die("Fehler");
mysql_select_db($this->mod->getCV("banlist", "database"));
mysql_query("CREATE TABLE IF NOT EXISTS `" . $this->mod->getCV("banlist", "table") . "` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`player` text NOT NULL,
`playerguid` varchar(32) NOT NULL,
`reason` text NOT NULL,
`kicker` text NOT NULL,
`kickerguid` varchar(32) NOT NULL,
`date` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;");
$this->logging->write(MOD_NOTICE, "Banlist: Checking if the Database (" . $this->mod->getCV("banlist", "table") . ") is valid and exists.");
mysql_close($db);
}
public function banlist_joined($guid) {
if (!$this->mod->getCV("banlist", "enabled")) {
return;
}
$db = mysql_connect($this->mod->getCV("banlist", "hostname"),$this->mod->getCV("banlist", "user"),$this->mod->getCV("banlist", "password"))or die("Fehler");
mysql_select_db($this->mod->getCV("banlist", "database"));
$result = mysql_query("SELECT playerguid,reason FROM " . $this->mod->getCV("banlist", "table") . " WHERE playerguid='". $guid ."'");
$rowguid = mysql_num_rows($result);
$row = mysql_fetch_array($result);
if($rowguid != "0") {
$this->players[$guid]->ban($row['reason']);
$this->logging->write(MOD_NOTICE, "Banlist: Autobanned " . $this->players[$guid]->getName() . " for Reason: " . $row['reason']);
}
mysql_close($db);
}
public function banlist_ban($params) {
if (!$this->mod->getCV("banlist", "enabled")) {
return;
}
list($player, $reason, $kicker) = $params;
$db = mysql_connect($this->mod->getCV("banlist", "hostname"),$this->mod->getCV("banlist", "user"),$this->mod->getCV("banlist", "password"))or die("Fehler");
mysql_select_db($this->mod->getCV("banlist", "database"));
mysql_query("INSERT INTO " . $this->mod->getCV("banlist", "table") . " (player, playerguid, reason, kicker, kickerguid ,date) VALUES ('" . $this->mod->removecolor($players[$player]->getName()) . "','" . $players[$player] . "','" . $reason . "','" . $this->mod->removecolor($players[$kicker]->getName()) . "','" . $players[$kicker] . "','" . date("d.m.y H:i:s") . "')");
mysql_close($db);
}
}
?>
Alles anzeigen
Wann würde das sinn ergeben ? Da die lokalen IPs dir egal seien können.
das ?> am ende ist nicht nötig und kann in einigen fällen sogar zu problemen führen aber sonst super
Kannst du erklären wieso das mit dem ?> so ist ?
Es ist nicht möglich da in Punkbuster eine funktion integriert ist die einen Screenshot eines teils deines Bildschirms macht. Anders ist das nicht realisierbar.
Punkbuster ist eine erweiterung für CoD4 die mittlerweile nicht mehr supported wird von Evenbalance. Screenshots auf einen anderen weg zu machen ist nicht möglich.
In der aktuellen version Gibt es bugs in den Stats ich empfehle dir auf die nächste version zu warten oder mysql zu nutzen.
Darf ich fragen bei welchen CoD weil bei cod6 geht die ban funktion nicht
Soweit ich weiß darfst du das dann aber nicht als CG/XNC Matchserver nutzen da für solche Matches die dvar g_logsync auf 0 stehen muss.
Also da der Matchmode logsync ausschaltet da man durch die log theoretisch errechnen kann wo der gegner ist geht der MAM standartmäßig nicht aber Mirko hatte dafür mal nen Plugin.
das is voll egal, da das ein windows system ist. bei windows "Mods" == "mods"
WTF wie schnell bist du
Hast du in der custom_public g_logsync auf 2 gesetzt und den richtigen lopfad /dein/cod/server/mods/promodlvie216/meinlogname.log gesetzt ?