1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Функция Поиск игрока

Тема в разделе 'Кодинг/Собственные решения', создана пользователем festival, 29 дек 2010.

  1. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    Как можно сделать, что бы функция "Поиск игрока" искала человека не только в играх, а еще например в банлисте и сейф листе?
    Например человек заходит на сайт статы, видит что есть "поиск игроков", думает -поищу себя, прописывает свой ник а он в бане или в сейф листе :)
    Мне кажется стат долго держать не надо, 3-7 месяцев и луче почистить стат т.к. он теряет свою актуальность, кто-то задротничает повышает скилл а кто-то уже редко играет и теряет скилл, информация что я там собирал ЦМке год назад никому не нужна в том числе и мне. Баны и сейф лист как бы вечен, если ты не админ то придется искать ник среди списка 1-5к ников перелистывая страницы + цмска туда еще варны выписывает, человек не забанен но он в списке забаненых, прикол.

    p.s. идея наверно очень сложная т.к. ставить такой поиск по базе, капчку надо по любому, тормоз нужен, потому что с классной статой будем в дауне валятся, тут еще смертники ставят на домашний ПК.
  2. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Попробую каптчу сделать для поиска игроков. А чтобы искал и сейф листе и в банах, имхо это уже есть. Ну у меня работает, а сл мне не нужен. Также в бота можно запихнуть функцию, как и tempban - если игрок не получал статы 7 месяцев - удаление. Но вот с последним нужно к fake обратиться.
  3. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
  4. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    не ну это имба защита =) прикол в том что каптча должна зашишять от ботов, а тут просто усложнение жизни юзерам=) ибо при просмотре ссылки на каптчу мы видим текст который в ней зашифрован =)
    http://rwc.mine.nu/ajax_get_captcha.php?chars=4a59t пример =)
  5. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Обливиус ранен. Ты от кого такой защитой решил защищаться? Мне вот не нравился google-бот, который, сучара, ставил в эфир рандомные песни) И все это из-за отсутствия каптчи)

    Ну сделай бота который найдет ответ на капчу, да че уж там - сделай свою каптчу и функцию с классом.
  6. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
  7. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    robots.txt - кал?)
  8. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Ну да, забыл :facepalm:
  9. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
  10. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    Капча должна защищать от ботов и в какой степени от доса, что бы боты и группы неграмотной школоты не заставляли скрипты генерировать страницы.
    Она должна быть элементом страницы и запрашивать динамические данные.

    В данном случае рассматривается преднамеренная нагрузка на хостинг то бишь дос; кэш, куки, ограничение запросов и robots.txt как вы понимаете сюда не подходит.

    Сейчас посмотрим что Zarj подкинул.
  11. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Да, спасибо заржу - работает.
  12. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Актуально, никто не поможет?
  13. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    ок сделаем, к 9 пм жди.
  14. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Чуток задерживаюсь :D
  15. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Ай, ай, ай, но я всё жду ^^
  16. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Погоди, так ведь он же и так ищет везде? Или тебе нужно чтобы писало, типо игрок Vasya2011 - админ итд.. другая инфа?
  17. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Найди в файле includes/ajax_search.php

    Код:
    //Build Result String
    Вставь этот код ниже этой строки, прежде удали все что есть после этой строки.

    Код:
    	echo "<table><tr><td style='padding-left:8px;' height='20px'>$lang[search_term_used] <b>$searchTerm</b></td></tr>";
        $total_matches = $db->num_rows($qry_result);
    	
    	 if ($total_matches < 1) 
    	 {echo "<tr><td><div align='center'<span style='color:red'>$lang[no_maches] <b>{$searchTerm}</b></span><br/></div></td></tr>";}
    	
    	 echo "<tr><td style='padding-left:8px;' height='20px'>$lang[search_found] $captcha ".$total_matches." $lang[search_users]</td></tr></table>";
    	 
    	 echo "<div align='center'><table style='width:95%;margin:8px;'> 
            <tr>
            <th style='padding-left:4px;'><div align='left'>$lang[name]</div></th>
            <th><div align='center'>Статус</div></th>
    		<th><div align='center'>$lang[games]</div></th>
    		<th><div align='center'>$lang[average]</div></th>
    		<th><div align='center'>$lang[kills]</div></th>
    		<th><div align='center'>$lang[deaths]</div></th>
    		<th><div align='center'>$lang[assists]</div></th>
    		<th><div align='center'>$lang[creeps]</div></th>
    		<th><div align='center'>$lang[denies]</div></th>
    		<th><div align='center'>$lang[first_game]</div></th>
    		<th><div align='center'>$lang[last_game]</div></th>
    		<th></th>
    		</tr>";
    	 
    	 
    	 while ($list = $db->fetch_array($qry_result,'assoc')) {
    	 	$totgames=$list["totgames"];
    		$kills=ROUND($list["kills"],2);
    		$death=ROUND($list["deaths"],2);
    		$assists=ROUND($list["assists"],2);
    		$creepkills=ROUND($list["creepkills"],2);
    		$creepdenies=ROUND($list["creepdenies"],2);
    		$neutralkills=ROUND($list["neutralkills"],2);
    		$towerkills=ROUND($list["towerkills"],2);
    		$firstplayed=date($date_format,strtotime($list["firstplayed"]));
    		$lastplayed=date($date_format,strtotime($list["lastplayed"]));
    		$name=$list["name"];
    		$name2=trim(strtolower($list["name"]));
            $banname=$list["banname"];
    		$ntitle = "title='$name'";
    		
    		$myFlag = "";
    		$IPaddress = $list["ip"];
    		//COUNTRY FLAGS
    		if ($CountryFlags == 1 AND file_exists("../includes/ip_files/countries.php") AND $IPaddress!="")
    		{
    		$two_letter_country_code=iptocountry($IPaddress);
    		include("../includes/ip_files/countries.php");
    		$three_letter_country_code=$countries[$two_letter_country_code][0];
            $country_name=convEnt2($countries[$two_letter_country_code][1]);
    		$file_to_check="./flags/$two_letter_country_code.gif";
    		if (file_exists($file_to_check)){
    		        $flagIMG = "<img src=includes/$file_to_check>";
                    $flag = "<img onMouseout='hidetooltip()' onMouseover='tooltip(\"".$flagIMG." $country_name\",100); return false' src='includes/$file_to_check' width='20' height='13'>";
                    }else{
                    $flag =  "<img title='$country_name' src='includes/flags/noflag.gif' width='20' height='13'>";
                    }	
    		$myFlag = $flag;
    		}
    		
    		
    		if (trim(strtolower($banname)) == $name2) 
    		{$reason = " <br>$lang[reason]: ".trim($list["reason"]);
    		$name = "<span style='color:#BD0000'>$list[name]</span>";
    		$ntitle = "title='Забанен'"; } else $reason = "";
    		
    		$isadmin = "";
    		$issafe = "";
    		$status = "";
    	  $sql1 = "SELECT id FROM admins WHERE name ='$name2' ";
    	  
    	  $qry_result1 = $db->query($sql1) or die(mysql_error());
    	  $list1 = $db->fetch_array($qry_result1,'assoc');
    	  if($list1["id"])
    	  $isadmin = "<span style='color:blue'>Админ</span>";
    	  
    	  $sql1 = "SELECT id FROM safelist WHERE name = '$name2' ";
    	  
    	  $qry_result1 = $db->query($sql1) or die(mysql_error());
    	  $list1 = $db->fetch_array($qry_result1,'assoc');
    	  if($list1["id"])
    	  $issafe = "<span style='color:green'>Защищенный</span>";
    	  
    	  
    	$status = $isadmin."<br>".$issafe;
    	if(!$isadmin && !$issafe)
    	$status = "Юзер";
    		
    	echo "<tr class='row'>
    	<td style='padding-left:4px; width='150px'>
    	<div align='left'>$myFlag <a $ntitle href='user.php?u=$name2'>$name</a> $reason</div></td>
    	<td width='50px'><div align='center'>$status</div></td>
    	<td width='64px'><div align='center'>$totgames</div></td>
    	<td width='32px'><div align='center'></div></td>
    	<td width='64px'><div align='center'>$kills</div></td>
    	<td width='64px'><div align='center'>$death</div></td>
    	<td width='64px'><div align='center'>$assists</div></td>
    	<td width='64px'><div align='center'>$creepkills</div></td>
    	<td width='64px'><div align='center'>$creepdenies</div></td>
    	<td width='160px'><div align='center'>$firstplayed</div></td>
    	<td width='160px'><div align='center'>$lastplayed</div></td>
    	<td width='16px'></td>
    	</tr>";
    	 }
    	 echo "</table></div>";
    	  
    	  ?>
  18. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Отлично, осталось добавить подсветку искомого куска (как в оригинальном поиске). Новая графа появилась это я так понимаю мол статус, админ, забаненый или сл? Просто у меня видимо проблемы с кодировкой и не отображается нормально.
  19. Apx Ньюфаг

    Сообщения:
    165
    Спасибы:
    0
    Судя по коду моя догадка была верна, можно этот статус персонажа запихнуть в переменные, а их добавить в ланг файл? Так было бы гораздо удобнее. ^^
  20. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Ну как хочешь, просто проще будет если ты сохранишь этот файл в UTF-8 Без BOM