Показать сообщение отдельно
Старый 09.03.2010, 00:27   #7
Desperado
Гость
 
Сообщений: n/a
По умолчанию

Гейм мастера онлайн

Код:
<html> 
<body> 
                     <table border = "1" align = "center"> 
                            <tr> 
                            <td>Ник</td> 
                            <td>Расса</td> 
                             <td>Класс</td> 
                            <td>Уровень доступа</td> 
                            </tr>                    
<?php 

                         /** 
                           * @author [Desperado] 
                           * @copyright 2010 
                          */ 

                            require_once ('includes/config.php'); //подключаем файл конфигурации 

                    $Sql = mysql_connect("$host", "$db_user", "$db_user_passw") or die("Невозможно подключиться к базе данных : " . mysql_error()); //соединяемся с базой MySQl 
                     mysql_query("SET character_set_database = '$charset'");  //устанавливаем кодировку 
                     mysql_query("SET NAMES '$charset'");  //устанавливаем кодировку 
                          
                       $content = mysql_query ("select c.name, c.class, c.race, a.gmlevel from characters.characters c inner join realmd.account 
                       a on a.id=c.account where a.gmlevel != 0 and c.online = 1");      //достаём нужные данные 
                       $online = mysql_num_rows($content); 
                            
                             /** 
                        * мутим обработку данных из массива 
                        */               
                    
                            $class = array(1=>"Воин",2=>"Паладин",3=>"Охотник",4=>"Разбойник",5=>"Жрец", 
                        6=>"Рыцарь Смерти",7=>"Шаман",8=>"Маг",9=>"Чернокнижник",11=>"Друид");                          
                            $race = array(1=>"Человек",2=>"Орк",3=>"Дворф",4=>"Ночной Эльф",5=>"Нежить",6=>"Таурен",7=>"Гном",8=>"Тролль", 
                        10=>"Эльф Крови",11=>"Дреней"); 
                            $gmlevel = array(1=>'Модератор',2=>'Хелпер',3=>'Гейм Мастер',4=>'Администратор'); 
                          
                             /** 
                        * если гм нет, выводим неприличное сообщение 
                        */                           
                      
                             if($online < 1) { 
                             echo "<tr><td colspan='4' align='center'>Нет гм, вошедших в игру</td></tr>"; 
                             }                           
                        
                           /** 
                        * если гм есть, выводим другое неприличное сообщение 
                        */                          
                        
                        
                          while ($row = mysql_fetch_array($content))                          
                             { 
                     $name = $row['name']; 
                         echo "<tr><td><b>{$name}</b></td>";  //выводим ник Гм 
                         echo "<td><b>{$race[$row['race']]}</b></td>";  //Выводим рассу 
                         echo "<td><b>{$class[$row['class']]}</b></td>"; //Выводим класс 
                         echo "<td><b>{$gmlevel[$row['gmlevel']]}</b></td></tr>"; //Выводим уровень доступа 
                    }      

mysql_close($Sql);                   

?> 
</table> 
</body>                            
</html>
кол-во аккаунтов, максимальный аптайм, текущий онлайн, кол-во чаров за орду/альянс

Код:
             
       require_once ('includes/config.php'); //подключаем файл конфигурации 
       $sMySql = mysql_connect('$host', ' $db_user', '  $db_user_passw') or die("Невозможно подключиться к базе : " . mysql_error());; //открываем mysql. 
             
             
       $aSql = mysql_num_rows(mysql_query("SELECT guildid FROM characters.guild", $sMySql)); 
       $nTotalGuild = $aSql; 

          $aSql = mysql_num_rows(mysql_query("SELECT guid FROM characters.characters WHERE race IN ( 1, 4, 11, 3, 7 )", $sMySql)); 
       $nTotalAlliance = $aSql; 
       $aSql = mysql_num_rows(mysql_query("SELECT guid FROM characters.characters WHERE race IN (6, 10, 5, 2, 8)", $sMySql)); 
       $nTotalHorde = $aSql; 

       function conventNormTime($nSec) { 
        $d = floor( $nSec / (3600*24) ); 
              $nSec = ($nSec - $d * 3600 * 24); 
              $h = floor( $nSec / 3600 ); 
              $nSec = ($nSec - $h * 3600); 
              $m = floor( $nSec / 60 ); 
             return "{$d} д. {$h} ч. {$m} м."; 
       } 
              
       $aSql = mysql_fetch_array(mysql_query("SELECT maxplayers FROM realmd.uptime ORDER by maxplayers DESC LIMIT 1", $sMySql)); 
       $nMaxOnline = $aSql['maxplayers']; 
             
       $aSql = mysql_fetch_array(mysql_query("SELECT uptime FROM realmd.uptime ORDER by starttime DESC LIMIT 1", $sMySql)); 
        $tUptime = conventNormTime($aSql['uptime']); 

                    $aSql = mysql_query("SELECT uptime FROM realmd.uptime ORDER by uptime DESC LIMIT 1", $sMySql); 
                    $aSql =mysql_fetch_array($aSql); 
                    $aTotal = $aSql['uptime']; 
                    $aTotal = conventNormTime($aSql['uptime']); 

       $aSql = mysql_num_rows(mysql_query("SELECT id FROM realmd.account", $sMySql)); 
       $nTotalAccount = $aSql; 

$aSql = mysql_num_rows(mysql_query("SELECT guid FROM characters.characters WHERE online IN ( 1 )", $sMySql)); 
$nCurrenOnline = $aSql; 
             
             
         $aOut = array( 
          'online' => $nCurrenOnline, 
          'max_online' => $nMaxOnline, 
          'uptime' => $tUptime, 
          'max_uptime' => $aTotal, 
          'reg_accounts' => $nTotalAccount, 
       'reg_horde' => $nTotalHorde, 
       'reg_alliance' => $nTotalAlliance, 
        ); 

       echo    '<tr><td>Онлайн:</td> <td><b>{$nCurrenOnline}</b></td></tr>'; 
       echo    '<tr><td>Макс. онлайн:</td> <td><b>{$nMaxOnline}</b></td></tr>'; 
       echo    '<tr><td>Макс. аптайм:</td> <td><b>{$aTotal}</b></td></tr>'; 

             
       echo    '<tr><td>Акаунтов:</td> <td><b>{$nTotalAccount}</b></td></tr>'; 
       echo    '<tr><td>Альянса:</td> <td><b>{$nTotalAlliance}</b></td> </tr>'; 
       echo    '<tr><td>Орды:</td> <td><b>{$nTotalHorde}</b></td></tr>';

 mysql_close ($sMySql)
?>
Отображение открытых/закрытых инстов ВОТЛК.
если инст имеет уровень выше 71, но не выше 80 - открыт
если инст имеет уровень выше 80 - закрыт
Инфу записывает в текстовый файл. Кому надо, переделают за 10 секунд


Код:
<?php 
   require_once ('includes/config.php'); 
               $sMySql = mysql_connect($host, $user, $passw) or die("Невозможно подключиться к базе : " . mysql_error());
      mysql_select_db('mangos', $sMySql) or die("Невозможно подключиться к базе characters : " . mysql_error());
               $content = mysql_query("SELECT `required_level` , `name` FROM areatrigger_teleport WHERE `required_level` >= '71' ORDER BY `areatrigger_teleport`.`required_level` DESC"); //выборка данных 
           //обработка в массиве 
      $name = array ( 
   'Onyxia\'s Lair - Dustwallow Instance' => 'Логово Ониксии', 
   'Naxxramas (Inside)' => 'Наксрамас', 
   'Violet Hold (entrance)' => 'Аметистовая крепость', 
   'Oculus (exit)' => 'Нексус: Окулус', 
   'The Nexus (exit)' => 'Нексус: Нексус',   
   'Utgarde Pinnacle (exit)' => 'Крепость Утгард: Вершина Утгард', 
   'Utgarde Keep (entrance)' => 'Крепость Утгард: Крепость Утгард',   
   'Ulduar, Halls of Lightning (entrance)' => 'Ульдуар: Чертоги Молний', 
   'Ulduar, Halls of Stone (exit)' => 'Ульдуар: Чертоги Камня', 
   'Drak\'Tharon Keep (exit)' => 'Крепость Драк\'Тарон', 
   'Vault of Archavon (Exit)' => 'Склеп Аркавона', 
   'Azjol-Nerub (entrance)' => 'Азжол-Неруб: Азжол-Неруб', 
   'Ahn\'Kahet (entrance)' => 'Азжол-Неруб: Ан\'кахет: Старое Королевство', 
   'Chamber of Aspects, Obsidian Sanctum (entrance)' => 'Обсидиановое святилище', 
   'The Eye of Eternity' => 'Нексус: Око Вечности', 
   'Gundrak (exit south)' => 'Гундрак', 
   'Ulduar Raid entrance' => 'Ульдуар', 
   'Trial of the Crusader (exit)' => 'Испытание крестоносца', 
   'Trial of the Champion (entrance)' => 'Испытание чемпиона', 
   'Halls of Reflection (Entrance)' => 'Цитадель Ледяной Короны: Залы Отражений', 
   'Forge of Souls (Entrance)' => 'Цитадель Ледяной Короны: Кузня Душ', 
   'IceCrown Citadel (Entrance)' => 'Цитадель Ледяной Короны',   
   'Culling of Stratholme (entrance)' => 'Пещеры Времени: Очищение Стратхольма', 
   'Pit of Saron (Entrance)' => 'Цитадель Ледяной Короны: Яма Сарона'); 
     
       // строим таблицу 
         $szTable = '<table border="1" align="center">'; 
      $szTable .= '<tr> <td align="center"><b>Название</b></td><td><b>Статус</b></td></tr>';       
         
                            while ($row = mysql_fetch_array($content))                            
                    {   
          if ( isset($name[$row['name']]) ) { 
           $required_level = $row['required_level']; 
                     if ($required_level <= 80) 
                    { 
      $szTable .= '<tr> <td align="left">'.$name[$row['name']].'</td> <td align="center"><font color="green">Открыт</font></td>';        
              } else 
                    { 
      $szTable .= '<tr> <td align="left">'.$name[$row['name']].'</td> <td align="center"><font color="red">Закрыт</font></td>';                     
                     }                     
                     }   
                    }   
         $szTable  .= '</table>';    
      $szTable .= '<br>'; 
      $szTable .= '<br>'; 
      
          $handler = fopen("inst.txt", "w+"); 
          fwrite($handler, $szTable); 
          fclose($handler); 
          mysql_close($sMySql);      
?>
Отправка почты
Для работы необходим патч extern mail
Патч прилагается в атаче


Код:
CREATE TABLE IF NOT EXISTS `mail_external` (
  `id` int(20) unsigned NOT NULL auto_increment,
  `receiver` bigint(20) unsigned NOT NULL,
  `subject` varchar(200) default 'Support Message',
  `message` varchar(500) default 'Support Message',
  `money` int(20) unsigned NOT NULL default '0',
  `item` int(20) unsigned NOT NULL default '0',
  `item_count` int(20) unsigned NOT NULL default '1',
  PRIMARY KEY  (`id`)
) ENGINE
Код:
<?php

/**
 * @author Desperado
 * @copyright 2010
 * Скрипт рассылки вещей на почту игроков
 * Для работы необходим патч extern mail 
 */
 
   require_once ('includes/config.php'); //подключаем конфиг
   $sMySql = mysql_connect($host, $user, $passw) 
       or die("Невозможно подключиться к базе данных : " . mysql_error());  //соеденяемся с базой данных
    mysql_select_db('characters', $sMySql)
       or die("Невозможно выбрать базу"); //подключаем базу данных персонажей  
  
      /**
       * временные данные
       */
	   
$receiver = 18143; //Guid получателя
$subject = subject; //Заголовок сообщения
$message = message; //Тело сообщения
$money = 0; //Скок голда
$item = 2342; //ID вещи
$item_count = 1; //Количество вещей

      /**
       * Посылаем вещь
       */

   $last_mail_id = mysql_fetch_array(mysql_query("SELECT id FROM `characters`.`mail_external` ORDER by id DESC LIMIT 1")); //выбираем последние айди
   $last_mail = $last_mail_id['id'] +1;
   $result = mysql_query("INSERT INTO `characters`.`mail_external` (
                                                                    `id` ,
                                                                    `receiver` ,
                                                                    `subject` ,
                                                                    `message` ,
                                                                    `money` ,
                                                                    `item` ,
                                                                    `item_count` 
                                                                    )
                         VALUES ('$last_mail', '$receiver', '$subject', '$message', '$money', '$item','$item_count')");

mysql_close ($sMySql);                                                                          
?>
Парсинг и вывод статистики MMOTOP
Добавляем в константу ссылку из лк ммотопа и радуемся.

Код:
<?php 

define('HASH_URL', 'ссылка'); 
                       
            $aData = @file_get_contents(HASH_URL); // подгружаем в массив информацию 
            preg_match_all("|.*\t.*\t.*\t(.*)\t.*\n|isU",$aData,$aArgs); // мутим обработку на данные 
            $aArray = array(); 
            for ($i = 0; $i < count($aArgs[1]); $i ++ ) { 
             if ( ! $aArray[$aArgs[1][$i]] ) 
              $aArray[ $aArgs[1][$i] ] = 1; 
             else 
              $aArray[ $aArgs[1][$i] ] = $aArray[ $aArgs[1][$i] ] + 1; 
            } 
            arsort($aArray); 
            $szContent = '<center><table border="1" width="200">'; 
            $szContent .= '<tr><td align="left"><b>Ник</b></td><td align="left"><b>Голоса</b></td></tr>'."\n"; 
            foreach ($aArray as $var=>$val) { 
             $szContent .= '<tr><td><b>'.$var.'</b></td><td>'.$val.'</td></tr>'."\n"; 
            } 
            $szContent .= '</table></center>'; 
            $szContent = iconv('cp1251', 'utf-8', $szContent); 
            echo $szContent; 
?>
Функция конверта времени из линукса

Код:
function conventNormTime($nSec) { 
     $d = floor( $nSec / (3600*24) ); 
           $nSec = ($nSec - $d * 3600 * 24); 
           $h = floor( $nSec / 3600 ); 
           $nSec = ($nSec - $h * 3600); 
           $m = floor( $nSec / 60 ); 
          return "{$d} д. {$h} ч. {$m} м."; 
    }
Вложения
Тип файла: rar патч..rar (2.7 Кб, 559 просмотров)

Последний раз редактировалось Desperado; 09.03.2010 в 01:04.
  Ответить с цитированием
5 пользователя(ей) сказали cпасибо:
blackmanos (26.04.2010), Hantet (17.04.2010), KiriX (09.03.2010), Medivh (09.03.2010)