Сервер CSGO MM - пожелания и предложения

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
закинул немного другую версию extendedcomm - можно глянуть
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
грохнул пока мут. без доступа к клиенту не разобраться
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
ставишь одну хрень, она гробит предыдущую, убираешь это новое, а старое уже не пашет))) надеюсь управление вип вернется) я его не трогал вообще
попробую другую/очередную хрень для мута, там долго копаться с веб частью, так что после отпуска не раньше. hpmyadmin юзать, который я не знаю. ща сильно нет времени править кучу файлов.
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
надо вот это запилить /под спойлером/. с базами данных я не сталкивался, со всякой веб-хренью тоже. косяки потом сложнее исправлять, особенно не имея опыта.
надо переписать код в сурсбане под функционал плагина сурском, тогда все муты и прочие штуки будут писаться в БД.
у меня ща времени совсем нет на сесть и осторожно пробовать.
аналогично - поправить шаблон магазина не умею, дизайн вырви глаз дефолтный. и можно было бы этот кусок кода перенести к нам с арены.

Installation of database part
Execute the following query below (but first - check your table prefix!! replace sb to yours, if you uses another) on your sourcebans database:
Spoiler
Code:
CREATE TABLE `sb_comms` ( `bid` int(6) NOT NULL AUTO_INCREMENT, `authid` varchar(64) NOT NULL, `name` varchar(128) NOT NULL DEFAULT 'unnamed', `created` int(11) NOT NULL DEFAULT '0', `ends` int(11) NOT NULL DEFAULT '0', `length` int(10) NOT NULL DEFAULT '0', `reason` text NOT NULL, `aid` int(6) NOT NULL DEFAULT '0', `adminIp` varchar(32) NOT NULL DEFAULT '', `sid` int(6) NOT NULL DEFAULT '0', `RemovedBy` int(8) DEFAULT NULL, `RemoveType` varchar(3) DEFAULT NULL, `RemovedOn` int(11) DEFAULT NULL, `type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '1 - Mute, 2 - Gag', `ureason` text, PRIMARY KEY (`bid`), KEY `authid` (`authid`), KEY `created` (`created`), KEY `RemoveType` (`RemoveType`), KEY `type` (`type`), KEY `sid` (`sid`), KEY `aid` (`aid`), FULLTEXT KEY `authid_2` (`authid`), FULLTEXT KEY `name` (`name`), FULLTEXT KEY `reason` (`reason`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;Also, you could import attached sb_comms.sql.txt file instead of copying code from this post.

After this, If you want to import punishments from ExtendedComm plugin, execute folowing queries on your sourcebans database (check sourcebans table prefix and extendedcomm table name. If you have different prefix or table_name - replace their in code below to your values. if extendedcomm table is in a different database - replace in code below extendedcomm to 'database_with_table'.'name_of_extendedcomm_t able'):
Code:
INSERT INTO sb_comms (authid, name, created, length, ends, reason, type) SELECT steam_id, "", mute_time, mute_length, mute_time+mute_length, mute_reason, 1 FROM extendedcomm WHERE (mute_type='1' OR mute_type='2');INSERT INTO sb_comms (authid, name, created, length, ends, reason, type) SELECT steam_id, "", gag_time, gag_length, gag_time+gag_length, gag_reason, 2 FROM extendedcomm WHERE (gag_type='1' OR gag_type='2');Also, you could import attached import.sql.txt file instead of copying code from this post.

Installation of Web part
Place files from sourcecomms-web.zip archive to your sourcebans web folder. Then you need to edit a few files (make backup before you doing this!!!) Instructions for edit are placed in files_to_edit.txt or under spoiler below
filepathfilenameAt line XXX -- code on this line for simple search --Add AFTER/BEFORE/REPLACENew code here------------------------------------------------------------------------------------------------------------------------------------includesadmin.phpAt line 315 -- elseif($_GET['c'] == "mods") --Add BEFORE elseif($_GET['c'] == "comms") // ###################[ Comms ]################################################################## { CheckAdminAccess( ADMIN_OWNER|ADMIN_ADD_BAN|ADMIN_EDIT_OWN_BANS|ADMIN_EDIT_ALL_BANS ); if(!isset($_GET['o'])) { // ====================[ ADMIN SIDE MENU START ] =================== $banTabMenu = new CTabsMenu(); if($userbank->HasAccess(ADMIN_OWNER|ADMIN_ADD_BAN ) ) { $banTabMenu->addMenuItem("Add a block", 0); } $banTabMenu->addMenuItem("Comms list", 1, "", "index.php?p=commslist",true); $banTabMenu->outputMenu(); // ====================[ ADMIN SIDE MENU END ] =================== include TEMPLATES_PATH . "/admin.comms.php"; if(isset($_GET['mode']) && $_GET['mode'] == "delete") echo "<script>ShowBox('Ban Deleted', 'The ban has been deleted from SourceBans', 'green', '', true);</script>"; elseif(isset($_GET['mode']) && $_GET['mode']=="unban") echo "<script>ShowBox('Player Unbanned', 'The Player has been unbanned from SourceBans', 'green', '', true);</script>"; RewritePageTitle("Comms"); } elseif($_GET['o'] == 'edit') { $banTabMenu = new CTabsMenu(); $banTabMenu->addMenuItem("Back", 0,"", "javascript:history.go(-1);", true); $banTabMenu->outputMenu(); include TEMPLATES_PATH . "/admin.edit.comms.php"; RewritePageTitle("Edit Block Details"); } }------------------------------------------------------------------------------------------------------------------------------------includespage-builder.phpAt line 38 -- case "servers": --Add BEFORE case "commslist": RewritePageTitle("Communications Block List"); $page = TEMPLATES_PATH ."/page.commslist.php"; break;------------------------------------------------------------------------------------------------------------------------------------includessb-callback.phpAt line 2969 (end of file) -- ?> --Add BEFOREfunction AddBlock($nickname, $type, $steam, $length, $reason){ $objResponse = new xajaxResponse(); global $userbank, $username; if(!$userbank->HasAccess(ADMIN_OWNER|ADMIN_ADD_BAN)) { $objResponse->redirect("index.php?p=login&m=no_access", 0); $log = new CSystemLog("w", "Hacking Attempt", $username . " tried to add a block, but doesnt have access."); return $objResponse; } $steam = trim($steam); $error = 0; // If they didnt type a steamid if(empty($steam)) { $error++; $objResponse->addAssign("steam.msg", "innerHTML", "You must type a Steam ID or Community ID"); $objResponse->addScript("$('steam.msg').setStyle('display', 'block');"); } else if((!is_numeric($steam) && !validate_steam($steam)) || (is_numeric($steam) && (strlen($steam) < 15 || !validate_steam($steam = FriendIDToSteamID($steam))))) { $error++; $objResponse->addAssign("steam.msg", "innerHTML", "Please enter a valid Steam ID or Community ID"); $objResponse->addScript("$('steam.msg').setStyle('display', 'block');"); } else { $objResponse->addAssign("steam.msg", "innerHTML", ""); $objResponse->addScript("$('steam.msg').setStyle('display', 'none');"); } if($error > 0) return $objResponse; $nickname = RemoveCode($nickname); $reason = RemoveCode($reason); if(!$length) $len = 0; else $len = $length*60; // prune any old bans PruneComms(); $typeW = ""; switch ((int)$type) { case 1: $typeW = "type = 1"; break; case 2: $typeW = "type = 2"; break; case 3: $typeW = "(type = 1 OR type = 2)"; break; default: $typeW = ""; break; } // Check if the new steamid is already banned $chk = $GLOBALS['db']->GetRow("SELECT count(bid) AS count FROM ".DB_PREFIX."_comms WHERE authid = ? AND (length = 0 OR ends > UNIX_TIMESTAMP()) AND RemovedBy IS NULL AND ".$typeW, array($steam)); if(intval($chk[0]) > 0) { $objResponse->addScript("ShowBox('Error', 'SteamID: $steam is already blocked.', 'red', '');"); return $objResponse; } // Check if player is immune $admchk = $userbank->GetAllAdmins(); foreach($admchk as $admin) if($admin['authid'] == $steam && $userbank->GetProperty('srv_immunity') < $admin['srv_immunity']) { $objResponse->addScript("ShowBox('Error', 'SteamID: Admin ".$admin['user']." ($steam) is immune.', 'red', '');"); return $objResponse; } if((int)$type == 1 || (int)$type == 3) { $pre = $GLOBALS['db']->Prepare("INSERT INTO ".DB_PREFIX."_comms(created,type,authid,name,ends,length,reason,aid,adminIp ) VALUES (UNIX_TIMESTAMP(),1,?,?,(UNIX_TIMESTAMP() + ?),?,?,?,?)"); $GLOBALS['db']->Execute($pre,array($steam, $nickname, $length*60, $len, $reason, $userbank->GetAid(), $_SERVER['REMOTE_ADDR'])); } if ((int)$type == 2 || (int)$type ==3) { $pre = $GLOBALS['db']->Prepare("INSERT INTO ".DB_PREFIX."_comms(created,type,authid,name,ends,length,reason,aid,adminIp ) VALUES (UNIX_TIMESTAMP(),2,?,?,(UNIX_TIMESTAMP() + ?),?,?,?,?)"); $GLOBALS['db']->Execute($pre,array($steam, $nickname, $length*60, $len, $reason, $userbank->GetAid(), $_SERVER['REMOTE_ADDR'])); } $objResponse->addScript("ShowBlockBox('".$steam."', '".(int)$type."', '".(int)$len."');"); $objResponse->addScript("TabToReload();"); $log = new CSystemLog("m", "Block Added", "Block against (" . $steam . ") has been added, reason: $reason, length: $length", true, $kickit); return $objResponse;}function PrepareReblock($bid){ $objResponse = new xajaxResponse(); $ban = $GLOBALS['db']->GetRow("SELECT name, authid, type, length, reason FROM ".DB_PREFIX."_comms WHERE bid = '".$bid."';"); // clear any old stuff $objResponse->addScript("$('nickname').value = ''"); $objResponse->addScript("$('steam').value = ''"); $objResponse->addScript("$('txtReason').value = ''"); $objResponse->addAssign("txtReason", "innerHTML", ""); // add new stuff $objResponse->addScript("$('nickname').value = '" . $ban['name'] . "'"); $objResponse->addScript("$('steam').value = '" . $ban['authid']. "'"); $objResponse->addScriptCall("selectLengthTypeReason", $ban['length'], $ban['type']-1, addslashes($ban['reason'])); $objResponse->addScript("SwapPane(0);"); return $objResponse;}function PrepareBlockFromBan($bid){ $objResponse = new xajaxResponse(); // clear any old stuff $objResponse->addScript("$('nickname').value = ''"); $objResponse->addScript("$('steam').value = ''"); $objResponse->addScript("$('txtReason').value = ''"); $objResponse->addAssign("txtReason", "innerHTML", ""); $ban = $GLOBALS['db']->GetRow("SELECT name, authid FROM ".DB_PREFIX."_bans WHERE bid = '".$bid."';"); // add new stuff $objResponse->addScript("$('nickname').value = '" . $ban['name'] . "'"); $objResponse->addScript("$('steam').value = '" . $ban['authid']. "'"); $objResponse->addScript("SwapPane(0);"); return $objResponse;}function PasteBlock($sid, $name){ $objResponse = new xajaxResponse(); global $userbank, $username; $sid = (int)$sid; if(!$userbank->HasAccess(ADMIN_OWNER|ADMIN_ADD_BAN)) { $objResponse->redirect("index.php?p=login&m=no_access", 0); $log = new CSystemLog("w", "Hacking Attempt", $username . " tried paste a block, but doesn't have access."); return $objResponse; } require INCLUDES_PATH.'/CServerRcon.php'; //get the server data $data = $GLOBALS['db']->GetRow("SELECT ip, port, rcon FROM ".DB_PREFIX."_servers WHERE sid = ?;", array($sid)); if(empty($data['rcon'])) { $objResponse->addScript("$('dialog-control').setStyle('display', 'block');"); $objResponse->addScript("ShowBox('Error', 'No RCON password for server ".$data['ip'].":".$data['port']."!', 'red', '', true);"); return $objResponse; } $r = new CServerRcon($data['ip'], $data['port'], $data['rcon']); if(!$r->Auth()) { $GLOBALS['db']->Execute("UPDATE ".DB_PREFIX."_servers SET rcon = '' WHERE sid = ?;", array($sid)); $objResponse->addScript("$('dialog-control').setStyle('display', 'block');"); $objResponse->addScript("ShowBox('Error', 'Wrong RCON password for server ".$data['ip'].":".$data['port']."!', 'red', '', true);"); return $objResponse; } $ret = $r->rconCommand("status"); $search = preg_match_all(STATUS_PARSE,$ret,$matches,PREG_PATTERN_ORDER); $i = 0; $found = false; $index = -1; foreach($matches[2] AS $match) { if($match == $name) { $found = true; $index = $i; break; } $i++; } if($found) { $steam = $matches[3][$index]; $name = $matches[2][$index]; $objResponse->addScript("$('nickname').value = '" . addslashes($name) . "'"); $objResponse->addScript("$('steam').value = '" . $steam . "'"); } else { $objResponse->addScript("ShowBox('Error', 'Can't get player info for ".addslashes(htmlspecialchars($name)).". Player is not on the server (".$data['ip'].":".$data['port'].") anymore!', 'red', '', true);"); $objResponse->addScript("$('dialog-control').setStyle('display', 'block');"); return $objResponse; } $objResponse->addScript("SwapPane(0);"); $objResponse->addScript("$('dialog-control').setStyle('display', 'block');"); $objResponse->addScript("$('dialog-placement').setStyle('display', 'none');"); return $objResponse;}******************************************************************At line 2477-2478 -- if($ctype=="B") $redir = "?p=banlist".$pagelink; --Add AFTER elseif($ctype=="C") $redir = "?p=commslist".$pagelink;******************************************************************At line 2448-2449 -- elseif($ctype=="P") $redir = "?p=admin&c=bans#^1"; --Add AFTER elseif($ctype=="C") $redir = "?p=commslist".$pagelink;******************************************************************At line 2410-2411 -- elseif($ctype=="P") $redir = "?p=admin&c=bans#^1"; --ADD AFTER elseif($ctype=="C") $redir = "?p=commslist".$pagelink;******************************************************************At line 1348 -- {name: "Kick", callback: function(){KickPlayerConfirm('.$sid.', "'.str_replace('"', '"', $player["name"]).'", 0);}}, --Add AFTER {name: "Block comms", callback: function(){window.location = "index.php?p=admin&c=comms&action=pasteBan&sid='.$sid.'&pName='.str_replace('"', '"', $player["name"]).'"}},******************************************************************At line 66 -- $xajax->registerFunction("SendMail"); --Add AFTER $xajax->registerFunction("AddBlock"); $xajax->registerFunction("PrepareReblock"); $xajax->registerFunction("PrepareBlockFromBan"); $xajax->registerFunction("PasteBlock");------------------------------------------------------------------------------------------------------------------------------------includessystem-functions.phpAt line 765 -- function GetSVNRev() --Add BEFOREfunction PruneComms(){ global $userbank; $res = $GLOBALS['db']->Execute('UPDATE `'.DB_PREFIX.'_comms` SET `RemovedBy` = 0, `RemoveType` = 'E', `RemovedOn` = UNIX_TIMESTAMP() WHERE `length` != 0 and `ends` < UNIX_TIMESTAMP() and `RemoveType` IS NULL'); return $res?true:false;}******************************************************************At line 218 -- case "groups": --Add BEFORE case "comms": $cat = "Communication blocks management"; break;******************************************************************At line 187 -- $submenu->addMenuItem("Bans", 0,"", "index.php?p=admin&amp;c=bans", true); --Add AFTER if($userbank->HasAccess( ADMIN_OWNER|ADMIN_ADD_BAN|ADMIN_EDIT_OWN_BANS|ADMIN_EDIT_ALL_BANS)) $submenu->addMenuItem("Comms", 0,"", "index.php?p=admin&amp;c=comms", true);******************************************************************At line 169 -- AddTab("Ban List", "index.php?p=banlist", "All of the bans in the database can be viewed from here."); --Add AFTER AddTab("Comm List", "index.php?p=commslist", "All of the communication bans (such as chat gags and voice mutes) in the database can be viewed from here.");******************************************************************At line 135-137 -- $tab_arr[2] = "Servers"; $tab_arr[3] = "Submit a ban"; $tab_arr[4] = "Protest a ban"; --REPLACE $tab_arr[2] = "Comm List"; $tab_arr[3] = "Servers"; $tab_arr[4] = "Submit a ban"; $tab_arr[5] = "Protest a ban";------------------------------------------------------------------------------------------------------------------------------------pagespage.banlist.phpAt line 470 -- $data['details_link'] = CreateLinkR('click','getdemo.php?type=B&id='.$res->fields['ban_id']); --ADD BEFORE $data['blockcomm_link'] = CreateLinkR('<img src="images/forbidden.png" border="0" alt="" style="vertical-align:middle" /> Block Comms',"index.php?p=admin&c=comms".$pagelink."&blockfromban=".$res->fields['ban_id']."&key=".$_SESSION['banlist_postkey']."#^0");******************************************************************At line 345 -- $where = "WHERE CO.commenttxt LIKE ?"; --REPLACE $where = "WHERE CO.type = 'B' AND CO.commenttxt LIKE ?";------------------------------------------------------------------------------------------------------------------------------------scriptssourcebans.jsAt line 1473 (end of file) -- } --Add AFTERfunction RemoveBlock(id, key, page, name, confirm){ if(confirm==0) { ShowBox('Delete Block', 'Are you sure you want to delete the block for '+ name + '?', 'blue', '', true); $('dialog-control').setHTML('<input type="button" onclick="RemoveBlock(''+id+'', ''+key+'', ''+page+'', ''+addslashes(name.replace(/'/g,'''))+'', '1''+');" name="rban" class="btn ok" onmouseover="ButtonOver('rban')" onmouseout="ButtonOver('rban')" id="rban" value="Remove Block" />&nbsp;<input type="button" onclick="closeMsg('');$('bulk_action').options[0].selected=true;" name="astop" class="btn cancel" onmouseover="ButtonOver('astop')" onmouseout="ButtonOver('astop')" id="astop" value="Cancel" />'); } else if(confirm==1) { if(page != "") var pagelink = page; else var pagelink = ""; window.location = "index.php?p=commslist" + pagelink + "&a=delete&id="+ id +"&key="+ key; }}function UnGag(id, key, page, name, popup){ if(popup==1) { ShowBox('UnGag Reason', '<b>Please give a short comment, why you are going to ungag '+"'"+ name +"'"+'!</b><br><textarea rows="3" cols="40" name="ureason" id="ureason" style="overflow:auto;"></textarea><br><div id="ureason.msg" class="badentry"></div>', 'blue', '', true); $('dialog-control').setHTML('<input type="button" onclick="UnGag(''+id+'', ''+key+'', ''+page+'', ''+addslashes(name.replace(/'/g,'''))+'', '0''+');" name="uban" class="btn ok" onmouseover="ButtonOver('uban')" onmouseout="ButtonOver('uban')" id="uban" value="UnGag Player" />&nbsp;<input type="button" onclick="closeMsg('');" name="astop" class="btn cancel" onmouseover="ButtonOver('astop')" onmouseout="ButtonOver('astop')" id="astop" value="Cancel" />'); } else if(popup==0) { if(page != "") var pagelink = page; else var pagelink = ""; reason = $('ureason').value; if(reason == "") { $('ureason.msg').setHTML("Please leave a comment."); $('ureason.msg').setStyle('display', 'block'); return; } else { $('ureason.msg').setHTML(''); $('ureason.msg').setStyle('display', 'none'); } window.location = "index.php?p=commslist" + pagelink + "&a=ungag&id="+ id +"&key="+ key +"&ureason="+ reason; }}function UnMute(id, key, page, name, popup){ if(popup==1) { ShowBox('UnMute Reason', '<b>Please give a short comment, why you are going to unmute '+"'"+ name +"'"+'!</b><br><textarea rows="3" cols="40" name="ureason" id="ureason" style="overflow:auto;"></textarea><br><div id="ureason.msg" class="badentry"></div>', 'blue', '', true); $('dialog-control').setHTML('<input type="button" onclick="UnMute(''+id+'', ''+key+'', ''+page+'', ''+addslashes(name.replace(/'/g,'''))+'', '0''+');" name="uban" class="btn ok" onmouseover="ButtonOver('uban')" onmouseout="ButtonOver('uban')" id="uban" value="UnMute Player" />&nbsp;<input type="button" onclick="closeMsg('');" name="astop" class="btn cancel" onmouseover="ButtonOver('astop')" onmouseout="ButtonOver('astop')" id="astop" value="Cancel" />'); } else if(popup==0) { if(page != "") var pagelink = page; else var pagelink = ""; reason = $('ureason').value; if(reason == "") { $('ureason.msg').setHTML("Please leave a comment."); $('ureason.msg').setStyle('display', 'block'); return; } else { $('ureason.msg').setHTML(''); $('ureason.msg').setStyle('display', 'none'); } window.location = "index.php?p=commslist" + pagelink + "&a=unmute&id="+ id +"&key="+ key +"&ureason="+ reason; }}function UnSilence(id, key, page, name, popup){ if(popup==1) { ShowBox('UnSilence Reason', '<b>Please give a short comment, why you are going to unmute&ungag '+"'"+ name +"'"+'!</b><br><textarea rows="3" cols="40" name="ureason" id="ureason" style="overflow:auto;"></textarea><br><div id="ureason.msg" class="badentry"></div>', 'blue', '', true); $('dialog-control').setHTML('<input type="button" onclick="UnSilence(''+id+'', ''+key+'', ''+page+'', ''+addslashes(name.replace(/'/g,'''))+'', '0''+');" name="uban" class="btn ok" onmouseover="ButtonOver('uban')" onmouseout="ButtonOver('uban')" id="uban" value="UnSilence Player" />&nbsp;<input type="button" onclick="closeMsg('');" name="astop" class="btn cancel" onmouseover="ButtonOver('astop')" onmouseout="ButtonOver('astop')" id="astop" value="Cancel" />'); } else if(popup==0) { if(page != "") var pagelink = page; else var pagelink = ""; reason = $('ureason').value; if(reason == "") { $('ureason.msg').setHTML("Please leave a comment."); $('ureason.msg').setStyle('display', 'block'); return; } else { $('ureason.msg').setHTML(''); $('ureason.msg').setStyle('display', 'none'); } window.location = "index.php?p=commslist" + pagelink + "&a=unsilence&id="+ id +"&key="+ key +"&ureason="+ reason; }}function search_blocks(){ var type = ""; var input = ""; if($('name').checked) { type = "name"; input = $('nick').value; } if($('steam_').checked) { type = (document.getElementById('steam_match').value == "1" ? "steam" : "steamid"); input = $('steamid').value; } if($('reason_').checked) { type = "reason"; input = $('ban_reason').value; } if($('date').checked) { type = "date"; input = $('day').value + "," + $('month').value + "," + $('year').value; } if($('length_').checked) { type = "length"; if($('length').value=="other") var length = $('other_length').value; else var length = $('length').value input = $('length_type').value + "," + length; } if($('ban_type_').checked) { type = "btype"; input = $('ban_type').value; } if($('bancount').checked) { type = "bancount"; input = $('timesbanned').value; } if($('admin').checked) { type = "admin"; input = $('ban_admin').value; } if($('where_banned').checked) { type = "where_banned"; input = $('server').value; } if($('comment_').checked) { type = "comment"; input = $('ban_comment').value; } if(type!="" && input!="") window.location = "index.php?p=commslist&advSearch=" + input + "&advType=" + type;}function ShowBlockBox(check, type, length){ ShowBox('Block Added', 'The block has been successfully added<br><iframe id="srvkicker" frameborder="0" width="100%" src="pages/admin.blockit.php?check='+check+'&type='+type+'&length='+length+'"></iframe>', 'green', 'index.php?p=admin&c=comms', true);}******************************************************************At line 1197 -- window.location = "index.php?p=banlist"+searchlink+"&page="+nextPage; --Add AFTER if(type == "C") window.location = "index.php?p=commslist"+searchlink+"&page="+nextPage;------------------------------------------------------------------------------------------------------------------------------------themes**csscss.phpAt line 496-501 -- #search { width: 300px; float: right; padding: 2px 0 0 0; text-align: right; } --REPLACE#search2 { width: 300px; float: right; padding: 2px 0 0 0; text-align: right; }#search { width: 200px; float: right; margin: auto 14px 0 auto; margin-right: 14; margin-bottom: -10px; padding: 0 0 0 0; text-align: right; }******************************************************************At line 334-339 -- .searchbox { width:105px; height:14px; background-color:#d7d7d7; border:0; } --REPLACE.searchbox { width:230px; height:14px; background-color:#fdeaa8; border:0;}.searchbox2 { width:105px; height:14px; background-color:#fdeaa8; border:0;}------------------------------------------------------------------------------------------------------------------------------------themes**page_bans.tplAt line 138 -- <li>{$ban.demo_link}</li> --ADD BEFORE <li>{$ban.blockcomm_link}</li>
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
поставил 2 плагина - один частично закроет возможность обхода бана (чекает ip).
второй - уведомляет админов если коннектится игрок с предыдущими банами на серве.
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
Сейчас по идее должно работать ограничение на авп на команду. Но випы должны брать спокойно их. Надо попробовать) если ок - кину инфу в список рекламы. отмена ограничения на покупку в плане только випам
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
в админменю 6 пунктом commcomands - 2 и 3 пункты трогать не надо. убирать их пока нет возможности. скриптер из меня никакой)
чтобы все слышать и видеть каждому админу надо включить себе 1 4 и 5 пункты. и забыть обо всем)
закинул пофикшеный модуль випа на увеличение магазина/боекомплекта
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
Кстати. т.к. писать демо на клиенте против правил валв - идет запись на сервере и за последние 3-4 дня их можно в случае чего выцепить. старые удаляются.
запилить загрузку на сайт - можно технически, но нет свободной бд и места на хосте.
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
Есть плагин, блокирующий мат в чате. т.е. слова из списка заменяются чем-то или просто фильтруются + за несколько нарушений идет наказание (прописывается команда).
надо?
 

BUSYA

  • 8 Мар 2011
  • 648
  • 111
loshadka™ написал(а):
Есть плагин, блокирующий мат в чате. т.е. слова из списка заменяются чем-то или просто фильтруются + за несколько нарушений идет наказание (прописывается команда).
надо?
Сам по себе тяжелый плагин получиться. Все не внести, а сервер утяжеляет в разы.
 

™ЗаяЦ™

Команда форума

™ЗаяЦ™

  • 6 Июл 2017
  • 116
  • 10
нагрузка будет большая.. а толку мало, так как в основном общение в голосовом чате происходит... НО надо добавить всплывающее сообщение в чат о том, что мат запрещен и наказуем! Предупреждать каждого очень утомительно(
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
оповещалку в чат сделал. потом (может быть) запилю плагин с правилами сервера, админ сможет отдельному персонажу их показывать.
нагрузка - так то да. но у нас запас - проц макс на 40-45% грузится при 65 плагинах и 2424
Ботов добавить незя, запрещено ареной.
чето еще хотел.... а! смело мутим детей, что пищат в микрофон. вернусь - попробую сурском поставить, чтобы все муты в базу писались. пока просто в чате будет оповещение что микр 16+.
я тут. стараюсь следить. меня отвлекает портвейн, но я справляюсь :horse:
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
админы по идее видят обе команды. ироки - свою только
 

The_C@t

Команда форума

The_C@t

  • 9 Сен 2010
  • 2,729
  • 657
Как приеду попробуем другой античит поставить. Не шибко стабильный,но хоть дорабатываемый. Смак устарел в принципе
 
Сверху