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

Тема добра и любви

Тема в разделе 'Запуск и Поддержка', создана пользователем MySQL123, 7 май 2012.

  1. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    Вобще я все сделал, спасибо Лонг за подсказки)
    Осталось только баланс команд по очкам, как не крутил не смог воще.Будь добр помоги а?
  2. Synth (LM) Пантограф!

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

    Не, сам делай.
  3. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    Когда герой не пикнут по сути должна быть иконка "BLANKX.gif" но её нету, просто пустота...как фиксить?
    ПС:
  4. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Re: Вопросик

    Если это в game.php, то должно быть что-то типа такого.

    Заменяешь:
    if ($hero!="") {
            $img = convEnt2($heroname)."<br><img src=img/heroes/$hero.gif>";
    		$hero = "<a onMouseout='hidetooltip()' onMouseover='tooltip(\"".$img."\",130)' href='hero.php?hero=$hero'><img alt='' width='28' src='./img/heroes/$hero.gif' border=0></a>";}
    		else {$hero = "<img title='No hero' alt='' width='28' src='./img/heroes/blank.gif'>";}


    на

    Код:
    if(!empty($hero) && $hero != "\0\0\0\0")
    {
        if(file_exists('./img/heroes/' . $list['hero'] . '.gif'))
        {
            $img = convEnt2($heroname) . '<br /><img src=img/heroes/' . $hero . '.gif>';
            $hero = '<img src="./img/heroes/' . $hero . '.gif" alt="" width="40" height="40" style="border: 0; vertical-align: middle;" />';
        }
        else
            $hero = '<a title="' . $list['description'] . '">' . $list['hero'] . '</a>';
    }
    else
        $hero = '<img src="img/heroes/BLANKX.gif" alt="" width="40" height="40" title="No hero" />';

    Затем, ниже по коду, удаляешь:

    if (!file_exists("./img/heroes/$list[hero].gif")) {$hero = "<a title='$list[description]'>$list[hero]</a>";}


    Должно работать.
    I_aM_Fake нравится это.
  5. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    Помогите сделать страницу игры за сегодня...
  6. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Re: Вопросик

    games-today.php

    Код:
    <?php
    include './header.php';
    
    $pageTitle = $lang['dota_games'];
    
    // $qp = "AND `datetime` >= DATE_SUB(NOW(), INTERVAL 7 DAY)";
    $qp = "AND `datetime` >= CURDATE()";
    
    $sql = "
        SELECT COUNT(*)
        FROM `games`
        WHERE `map` LIKE '%dota%' $qp
        LIMIT 1";
    
    $result = $db->query($sql);
    $r = $db->fetch_row($result);
    $numrows = $r[0];
    
    $result_per_page = $games_per_page;
    $order = 'id';
    
    if(isset($_GET['order']))
        switch($_GET['order']):
            case 'game': $order = 'LOWER(`gamename`)'; break;
            case 'duration': $order = '`duration`'; break;
            case 'type': $order = '`type`'; break;
            case 'date': $order = '`datetime`'; break;
            case 'creator': $order = 'LOWER(`creatorname`)';
        endswitch;
    
    $sort = 'DESC';
    
    if(isset($_GET['sort']) and $_GET['sort'] == 'asc')
    {
        $sort = 'desc';
        $sortdb = 'ASC';
    }
    else
    {
        $sort = 'asc';
        $sortdb = 'DESC';
    }
    
    include './pagination.php';
    
    $sql = "
        SELECT
            `g`.`id`,
            `map`,
            `datetime`,
            `gamename`,
            `ownername`,
            `duration`,
            `creatorname`,
            `dg`.`winner`,
            CASE
                WHEN(`gamestate` = '17')
                THEN 'PRIV'
                ELSE 'PUB'
            END AS `type`
        FROM `games` AS `g`
        LEFT JOIN `dotagames` AS `dg` ON `g`.`id` = `dg`.`gameid`
        WHERE
            `map` LIKE '%dota%'  $qp
        ORDER BY $order $sortdb
        LIMIT $offset, $rowsperpage";
    
    $result = $db->query($sql);
    ?>
    <table class="tableA" style="margin-left: auto; margin-right: auto;">
        <tr>
            <th class="tableD"><a href="<?php echo $_SERVER['PHP_SELF']; ?>?order=game&amp;sort=<?php echo $sort; ?>"><?php echo $lang['game']; ?></a></th>
            <th><a href="<?php echo $_SERVER['PHP_SELF']; ?>?order=duration&amp;sort=<?php echo $sort; ?>"><?php echo $lang['duration']; ?></a></th>
            <th><a href="<?php echo $_SERVER['PHP_SELF']; ?>?order=type&amp;sort=<?php echo $sort; ?>"><?php echo $lang['type']; ?></a></th>
            <th><a href="<?php echo $_SERVER['PHP_SELF']; ?>?order=date&amp;sort=<?php echo $sort; ?>"><?php echo $lang['date']; ?></a></th>
            <th><a href="<?php echo $_SERVER['PHP_SELF']; ?>?order=creator&amp;sort=<?php echo $sort; ?>"><?php echo $lang['creator']; ?></a></th>
        </tr>
    <?php
    while($list = $db->fetch_array($result, 'assoc')):
        $gameid = $list['id'];
        $map = convEnt2(substr($list['map'], strripos($list['map'], '\\') + 1));
        $type = $list['type'];
        $gametime = date($date_format, strtotime($list['datetime']));
        $gamename = trim($list['gamename']);
        $ownername = $list['ownername'];
        $duration = secondsToTime($list['duration']);
        $creator = trim($list['creatorname']);
        $creator2 = trim(strtolower($list['creatorname']));
        $winner = $list['winner'];
        $dispWinner = '';
    
        if($winner == 1)
        {
            $dispWinner = ' onmouseover="tooltip(\'<strong>Map:</strong> ' . $map . '<br /><strong>' . $lang['winner'] . ':</strong> ' . $lang['Sentinel'] . '\', 150); return false;" onmouseout="hidetooltip();"';
            $gamename = '<span class="GamesSentinel">' . $gamename . '</span>';
        }
        elseif($winner == 2)
        {
            $dispWinner = ' onmouseover="tooltip(\'<strong>Map:</strong> ' . $map . '<br /><strong>' . $lang['winner'] . ':</strong> ' . $lang['Scourge'] . '\', 150); return false;" onmouseout="hidetooltip();"';
            $gamename = '<span class="GamesScourge">' . $gamename . '</span>';
        }
        elseif($winner == 0)
        {
            $dispWinner = ' onmouseover="tooltip(\'<strong>Map:</strong> ' . $map . '<br /><strong>Draw Game\', 150); return false;" onmouseout="hidetooltip();"';
            $gamename = '<span class="GamesDraw">' . $gamename . '</span>';
        }
    ?>
        <tr class="row">
            <td class="tableD" style="text-align: left; width: 300px;"><a href="game.php?gameid=<?php echo $gameid; ?>"<?php echo $dispWinner; ?>><?php echo $gamename; ?></a></td>
            <td style="text-align: left; width: 160px;"><?php echo $duration; ?></td>
            <td style="text-align: left; width: 100px;"><?php echo $type; ?></td>
            <td style="text-align: left; width: 200px;"><?php echo $gametime; ?></td>
            <td style="text-align: left; width: 200px;"><a href="user.php?u=<?php echo $creator2; ?>"><?php echo $creator; ?></a></td>
        </tr>
    <?php
    endwhile;
    ?>
    </table>
    <?php
    include './pagination.php';
    ?>
    <br />
    <?php
    $pageContents = ob_get_contents();
    ob_end_clean();
    echo str_replace('<!--TITLE-->', $pageTitle, $pageContents);
    
    include './footer.php';
    
    // Cache this page
    if($cachePages == 1 and $cacheAllGames == 1)
        file_put_contents($CacheTopPage, str_replace('<!--TITLE-->', $pageTitle, $pageContents));
    I_aM_Fake нравится это.
  7. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    Спасибо! А типа сделать новые игроки?ну например сегодня сыграли 2 игры и в базу добавилось 4 игрока, ну и показать их на сайте на отдельной странице?
  8. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    Код:
    И ище как туда втулить 
    [quote]  if ($ShowSentinelScourgeWon == 1)
        {require_once("./includes/get_games_summary.php");}[/quote]
    
    куда не пытался, косит дизайн либо не отображает игры
    Сделал, пост выше актуален
  9. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    Какой запрос на "lastgame" хочу вывести в профиль, сам пытался не получилось
  10. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Re: Вопросик

    Код:
    SELECT
    	`gp`.`name`,
    	`datetime`,
    	`gamename`
    FROM
    	`gameplayers` AS `gp`
    LEFT JOIN
    	`dotaplayers` AS `dp` ON (`dp`.`gameid` = `gp`.`gameid` AND `dp`.`colour` = `gp`.`colour`)
    LEFT JOIN
    	games AS `g` ON (`g`.`id` = `gp`.`gameid`)
    WHERE
    	`gp`.`name` = 'MySQL123'
    ORDER BY `gp`.`id` DESC
    LIMIT 1;
    Игрок [MySQL123] последний раз был замечен [2012-05-13 06:31:56] в игре [DotA -Apem #1337].


    Цепляем таблицу с героями, можно отобразить героя:

    Код:
    SELECT
    	`gp`.`name`,
    	`datetime`,
    	`gamename`,
    	`description`
    FROM
    	`gameplayers` AS `gp`
    LEFT JOIN
    	`dotaplayers` AS `dp` ON (`dp`.`gameid` = `gp`.`gameid` AND `dp`.`colour` = `gp`.`colour`)
    LEFT JOIN
    	games AS `g` ON (`g`.`id` = `gp`.`gameid`)
    LEFT JOIN heroes AS hr ON ( hr.heroid = dp.hero )
    WHERE
    	`gp`.`name` = 'MySQL123'
    ORDER BY `gp`.`id` DESC
    LIMIT 1;

    Игрок [MySQL123] последний раз был замечен [2012-05-13 06:31:56] в игре [DotA -Apem #1337] играл за [Morphling].
    I_aM_Fake нравится это.
  11. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    Окай сяб, а для top.php даШ?
  12. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Re: Вопросик

    Дать для top.php, а что дать – не указанно.
    I_aM_Fake нравится это.
  13. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    LastGame - Последняя игра
    Что бы отображало кто когда последний раз играл
  14. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Re: Вопросик

    Ну это прям идёт подгонка под omg-stats ;)



    В includes/common.php ищешь:
    Код:
    ) as disc
    добавляешь после:
    Код:
    , MAX(`datetime`) AS `lastseen`

    В top.php ищешь:
    Код:
    $totdisc = $list["disc"];
    после, с новой строки вставляешь:
    Код:
    $lastseen = $list['lastseen'];
    ищешь:
    Код:
    $lang[neutrals]</a>",
    за ним вставляешь:
    Код:
    $lang['lastseen']
    ищешь:
    Код:
    , '{%NEUTRALS%}'
    за ним вставляешь:
    Код:
    , '{%LASTSEEN%}'
    ищешь:
    Код:
    , $myFlag
    за ним вставляешь:
    Код:
    , $lastseen
    ищешь:
    Код:
    ,'{%FLAG%}'
    за ним вставляешь:
    Код:
    , '{%LASTSEEN%}'

    В lang/english.php добавляешь новую строку:
    Код:
    $lang['lastseen'] = 'Last seen';

    В style/dota/top.html ищешь:
    Код:
    <th><div align='center'>{%NEUTRALS%}</div></th>
    после, с новой строки вставляешь:
    Код:
    <th><div align="center">{%LASTSEEN%}</div></th>

    В style/dota/top_row.html ищешь:
    Код:
    <td width='70'><div align='center'>{%NEUTRALS%}</div></td>
    после, с новой строки вставляешь:
    Код:
    <td><div align="center">{%LASTSEEN%}</div></td>
    I_aM_Fake нравится это.
  15. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    Спасибо, задам вопрос возможно это рако вопрос ноо...как или где включить запись чата игры, папка реплей пуста...включал в боте запись реплея, но чата не обнаружено...
  16. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Re: Вопросик

    Чат парсится с replay’я и сохраняется в той же директории где, находится сам replay (чтобы много раз не парсить), при первом нажатии кнопки “Game Log” на странице информации об игре. Если кнопок “Download Replay” и “Game Log” нет, значит, replay был записан с неверным временным смещением либо задан неверный путь к директории с replay’ями. Если кнопки есть, но чат пустой/не появляется, может быть так, что replay был сохранен ботом с неверной версией либо просто сохранён криво и парсер не может его прочитать.
    I_aM_Fake нравится это.
  17. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    вот оно как, как щас настроить правильно сохранение?ghost one

    ?
  18. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Re: Вопросик

    Ну вот.

    Можешь заполнить в конфигурационном файле:
    Код:
    replay_war3version = 26
    replay_buildnumber = 6059
    либо в ghost.cpp можешь поставить
    Код:
    m_ReplayWar3Version = CFG->GetInt( "replay_war3version", 26 );
    m_ReplayBuildNumber = CFG->GetInt( "replay_buildnumber", 6059 );
    и перекомпилировать, тогда в конфигурационном файле можно эти строки оставить пустыми или вообще удалить.
    I_aM_Fake нравится это.
  19. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Re: Вопросик

    этой строчки нету
    m_ReplayWar3Version = CFG->GetInt( "replay_war3version", 26 );

    мб добавить?
    -------------------------------------------------------------------------------------------------------------------------
    там 2 патча их заюзать?
  20. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Re: Вопросик

    1.
    Ну, у тебя вместо этой строчки какая-то нубские конструкции завязанная на LAN-версии. Можешь просто удалить эти if, вставить только одну эту строчку, а можешь продолжить городить, типа:
    Код:
    	m_LANWar3Version = CFG->GetInt( "lan_war3version", 24 );
    	m_ReplayBuildNumber = CFG->GetInt( "replay_buildnumber", 6059 );
    
    	if(m_LANWar3Version == 23)
    	{
    		m_ReplayWar3Version = 23;
    		m_ReplayBuildNumber = 6058;
    	}
    
    	if(m_LANWar3Version == 24)
    	{
    		m_ReplayWar3Version = 24;
    		m_ReplayBuildNumber = 6059;
    	}
    
    	if(m_LANWar3Version == 26)
    	{
    		m_ReplayWar3Version = 26;
    		m_ReplayBuildNumber = 6059;
    	}
    При таком раскладе у тебя управление версиями будет идти только из конфигурационного файла:
    Код:
    lan_war3version = 26

    А если сделать так:
    Код:
    m_LANWar3Version = CFG->GetInt( "lan_war3version", 26 );
    то тогда отпадает надобность во всех этих if'ах.


    Я бы прибил условия и продефинировал переменные с соответствующими значениями:
    Код:
    	m_LANWar3Version = CFG->GetInt( "lan_war3version", 26 );
    	m_ReplayWar3Version = CFG->GetInt( "replay_war3version", 26 );
    	m_ReplayBuildNumber = CFG->GetInt( "replay_buildnumber", 6059 );
    и потом уже из cfg рулил бы версиями, при необходимости.


    2.
    Это как тебе угодно.
    Сейчас у тебя такая картина (по крайне мере должна быть):
    Код:
     GHost++ 2010-08-10 23-43 DotA -apem  #2502 (31m00s).w3g 
    Если помодишь, будет так:
    Код:
     GHost++  GameID.w3g
    Где: GameID – идентификатор игры (уникальный), под которым она пишется в базу данных.
    I_aM_Fake нравится это.