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

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

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

  1. MySQL123 Guest

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

    1.
    Код:
       m_LobbyTimeLimitMax = CFG->GetInt( "bot_lobbytimelimitmax", 15 );
    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 = 26;
    		m_ReplayBuildNumber = 6059;
    	}
    	m_AutoStartDotaGames = CFG->GetInt( "bot_autostartdotagames", 0 ) == 0 ? false : true;
    Значит делаю так да?

    Код:
       m_LobbyTimeLimitMax = CFG->GetInt( "bot_lobbytimelimitmax", 15 );
       m_LANWar3Version = CFG->GetInt( "lan_war3version", 26 );
       m_ReplayWar3Version = CFG->GetInt( "replay_war3version", 26 );
       m_ReplayBuildNumber = CFG->GetInt( "replay_buildnumber", 6059 );
       m_AutoStartDotaGames = CFG->GetInt( "bot_autostartdotagames", 0 ) == 0 ? false : true;

    2.
    А разница есть?
  2. MySQL123 Guest

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

    Те вопросы отменяем все норм только трабл с названием репы, как я понял
    Код:
    m_Replay->Save( m_GHost->m_TFT, m_GHost->m_ReplayPath + UTIL_FileSafeName( "GHost++ " + string( Time ) + " " + m_GameName + ".w3g" ) );
    отвечает именно за это, ворос как изменить что б:
    GHost++ 107.w3g
    допустим?
  3. ViperNight ▒▒▒▒▒▒▒▒▒

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

    1.
    Делай, если нравится.

    2.
    Какая-то разница конечно есть.
    Лично я использую формат записи "as is".

    Ну, допустим... GHost++ 2010-08-10 23-43 DotA -apem [olous.com] #2502 (31m00s).w3g

    Плюсы:
    Имя файла replay'a содержит:
    Время проведения игры (позволяет оценить актуальность данного replay'а);
    Название, а именно название команды/клана, кто эту самую хостил – olous.com (скрытая реклама и возможность посетить ресурс);
    Продолжительно игры (позволяет рассчитать оставшееся время, чтобы посмотреть игру и не опоздать в школу).
    Всё это даёт хоть какую-то информацию, в то время, когда replay попадает в интернет и не имеет сопроводительного описания.

    Минусы:
    Имя replay'я получается довольно длинное;
    Теоретически, если на машине "хостера" происходит сбой времени (перезагрузка там или батарейка сдохла) и он это дело провафлил, и создал игру, то есть вероятность того, что бот может отхостить игру с той же продолжительность, названием и порядковым номером хосткаунтера, запишет её в тоже самое время. В этом случае произойдёт перезаписывание уже существующего файла replay, что, собственно, приведёт к потере предыдущего.

    И, соответственно, в случае с GHost++ GameID.w3g

    Плюсы:
    Короткое имя файла;
    Полностью исключается вероятность перезаписи уже имеющихся replay'eв, особенно в том случае, когда много хост-ботов сохраняют replay'и в одно место.

    Минусы:
    Полное отсутствие какой-либо информации, при первом контакте не позволяет провести никакую оценку, призван поставляться непосредственно на странице с сопутствующей информацией.
    I_aM_Fake нравится это.
  4. MySQL123 Guest

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

    ну и как это
    m_Replay->Save( m_GHost->m_TFT, m_GHost->m_ReplayPath + UTIL_FileSafeName( "GHost++ " + string( Time ) + " " + m_GameName + ".w3g" ) );

    переделать под Ghost++ ID
  5. ViperNight ▒▒▒▒▒▒▒▒▒

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

    У тебя в патче всё написано:

    Код:
    ===========================================================
    Модификация Ghost++ для сохранения replay'ев в следующием формате (по идентификатору игры):
    Ghost++ ИДЕНТИФИКАТОР_ИГРЫ.w3g
    ===========================================================
    Решение от uakf.b:
    http://www.codelain.com/forum/index.php?topic=14297.msg108849#msg108849
    
    Пометка: Openstats автоматически найдет replay с данным форматом имени файла.
    ===========================================================
    Модификация Ghost++:
    
    В game_base.h, добавить
    uint32_t m_DatabaseID;                          // идентификационный номер из базы данных, который мы будем использовать при сохранении replay'а
    
    В game_base.cpp, добавить m_DatabaseID = 0; в конструктор и
    
    		m_Replay->BuildReplay( m_GameName, m_StatString, m_GHost->m_ReplayWar3Version, m_GHost->m_ReplayBuildNumber );
    -		m_Replay->Save( m_GHost->m_TFT, m_GHost->m_ReplayPath + UTIL_FileSafeName( "GHost++ " + string( Time ) + " " + m_GameName + " (" + MinString + "m" + SecString + "s).w3g" ) );
    +	    if(m_DatabaseID == 0) {
    +		    m_Replay->Save( m_GHost->m_TFT, m_GHost->m_ReplayPath + UTIL_FileSafeName( "GHost++ " + string( Time ) + " " + m_GameName + " (" + MinString + "m" + SecString + "s).w3g" ) );
    +		} else {
    +		    m_Replay->Save( m_GHost->m_TFT, m_GHost->m_ReplayPath + UTIL_FileSafeName( "GHost++ " + UTIL_ToString( m_DatabaseID ) + ".w3g" ) );
    +		}
     	}
    
    Затем, в game.cpp
    	if( m_CallableGameAdd && m_CallableGameAdd->GetReady( ) )
     	{
    +	    m_DatabaseID = m_CallableGameAdd->GetResult();
     		if( m_CallableGameAdd->GetResult( ) > 0 )
     		{
     			CONSOLE_Print( "[GAME: " + m_GameName + "] saving player/stats data to database" );
    ===========================================================
    
    Таким образом, на выходе вы получите что-то вроде "Ghost++ 100.w3g"

    Вот и берёшь...

    В game_base.h, например, после
    Код:
    bool m_LocalAdminMessages;
    вставляешь с новой строки
    Код:
    uint32_t m_DatabaseID;

    В game_base.cpp, например, после
    Код:
    m_LocalAdminMessages = m_GHost->m_LocalAdminMessages;
    вставляешь с новой строки
    Код:
    m_DatabaseID = 0;
    ищешь и удаляешь всю строку
    Код:
    m_Replay->Save( m_GHost->m_TFT, m_GHost->m_ReplayPath
    на её место ставишь
    Код:
    if( m_DatabaseID == 0 )
    			m_Replay->Save( m_GHost->m_TFT, m_GHost->m_ReplayPath + UTIL_FileSafeName( "GHost++ " + string( Time ) + " " + m_GameName + ".w3g" ) );
    		else
    			m_Replay->Save( m_GHost->m_TFT, m_GHost->m_ReplayPath + UTIL_FileSafeName( "GHost++ " + UTIL_ToString( m_DatabaseID ) + ".w3g" ) );

    Затем, в game.cpp, перед
    Код:
    if( m_CallableGameAdd->GetResult( ) > 0 )
    на новой строке вставляешь
    Код:
    m_DatabaseID = m_CallableGameAdd->GetResult( );
    Всё!

    "Таким образом, на выходе вы получите что-то вроде - Ghost++ 100.w3g"
    I_aM_Fake нравится это.
  6. MySQL123 Guest

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

    Спасиб, отпишись мне по поводу "PTS команд"
  7. ViperNight ▒▒▒▒▒▒▒▒▒

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

    Например?
    I_aM_Fake нравится это.
  8. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    как смотриш игру там пишет колько убила тима scourge и santinel, а я хочу добавить Скоре команды scourge и santinel

    Код:
    Баланс команд по очкам: Sentinel 1535 : 982 Scourge
  9. Synth (LM) Пантограф!

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

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Чтобы делать расчёт, нужно знать, откуда эти очки берутся. Лично мне неизвестно откуда статистика будет их выбирать.
    I_aM_Fake нравится это.
  11. MySQL123 Guest

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

    Вот лонг давал куски....

    ну по сути из таблицы "scores"
  12. ViperNight ▒▒▒▒▒▒▒▒▒

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

    Лично мне структура таблицы scores неизвестна и какая в ней организация данных.
    I_aM_Fake нравится это.
  13. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Что тебя для этого нужно? скрин, запрос?
  14. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Нужна структура таблицы scores и знать, как туда заносятся игроки (например, аккаунт – одна запись, либо пара аккаунт+реалм – одна запись, либо одна игра – одна строка и т.п.).
    I_aM_Fake нравится это.
  15. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Ты мне скажы что тткуда дать я дам.

    пс:
    http://s019.radikal.ru/i611/1205/1c/afd9ff013345.jpg

    Код:
    CREATE TABLE scores (
    	id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    	category VARCHAR(25) NOT NULL,
    	name VARCHAR(15) NOT NULL,
    	server VARCHAR(100) NOT NULL,
    	score REAL NOT NULL
    );
  16. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Как и сколько было дано информации, так и сделано. Итак, приступаем…


    В config.php делаешь
    Код:
    $ScoreMethod = 1;
    $AccuratePointsCalculation = 1;

    В game.php ищешь
    Код:
    $scour_kills = 0;
    после, с новой строки добавляешь
    Код:
    $sent_score = 0;
    $scour_score = 0;
    ищешь
    Код:
    if ($newcolour<=5) {$sent_kills += $kills;}
    вместо этого, вставляешь
    Код:
    		if($newcolour <= 5)
    		{
    			$sent_kills += $kills;
    			$sent_score += $scoreBefore['totalscore'];
    		}
    ищешь
    Код:
    if ($newcolour>5) {$scour_kills += $kills;}
    вместо этого, вставляешь
    Код:
    		if($newcolour > 5)
    		{
    			$scour_kills += $kills;
    			$scour_score += $scoreBefore['totalscore'];
    		}
    ищешь
    Код:
    <b><?=$lang['Scourge']?></b>
    после вставляешь
    Код:
     | Team Pts <?php echo round($sent_score, 2); ?> : <?php echo round($scour_score, 2); ?>

    ... и будь я проклят, если это не Pts.
    I_aM_Fake нравится это.
  17. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Team Pts 0 : 0
  18. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    На дефолтной статистике с параметрами в config.php
    Код:
    $UserPointsOnGamePage = 1;
    $ScoreMethod = 1;
    $AccuratePointsCalculation = 1;
    всё показывает замечательно.
  19. MySQL123 Guest

    Сообщения:
    117
    Спасибы:
    0
    Дефолт только что скачан
    [IMG]
  20. ViperNight ▒▒▒▒▒▒▒▒▒

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