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

Fake Player

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Kuzka, 5 мар 2011.

Статус темы:
Закрыта.
  1. Kuzka Ньюфаг

    Сообщения:
    10
    Спасибы:
    0
    Как можно изменить имя FakePlayer на любое другое?
  2. Kuzka Ньюфаг

    Сообщения:
    10
    Спасибы:
    0
    Чтобы изменить имя fakeplayer заходим в game_base.cpp
    Ищем

    Код:
    void CBaseGame :: CreateFakePlayer( )
    {
    	if( m_FakePlayerPID != 255 )
    		return;
    
    	unsigned char SID = GetEmptySlot( false );
    
    	if( SID < m_Slots.size( ) )
    	{
    		if( GetNumPlayers( ) >= 11 )
    			DeleteVirtualHost( );
    
    		m_FakePlayerPID = GetNewPID( );
    		BYTEARRAY IP;
    		IP.push_back( 0 );
    		IP.push_back( 0 );
    		IP.push_back( 0 );
    		IP.push_back( 0 );
    		SendAll( m_Protocol->SEND_W3GS_PLAYERINFO( m_FakePlayerPID, "Fakeplayer", IP, IP ) );  
    		m_Slots[SID] = CGameSlot( m_FakePlayerPID, 100, SLOTSTATUS_OCCUPIED, 0, m_Slots[SID].GetTeam( ), m_Slots[SID].GetColour( ), m_Slots[SID].GetRace( ) );
    		SendAllSlotInfo( );
    	}
    }
    Заменяем Fakeplayer в строке
    Код:
    SendAll( m_Protocol->SEND_W3GS_PLAYERINFO( m_FakePlayerPID, "Fakeplayer", IP, IP ) );
    на любое другое
  3. Kuzka Ньюфаг

    Сообщения:
    10
    Спасибы:
    0
    Собственно сам себе ответил)) Мало ли кому-то пригодится)
  4. xNightx Парнишка с небывалым умом

    Сообщения:
    60
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Как его включить?
  5. Kuzka Ньюфаг

    Сообщения:
    10
    Спасибы:
    0
    команда fakeplayer
  6. TyMaH Рекомендуемый

    Сообщения:
    154
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7
    а его можно включить навсегда? чтоб он всеГда был по умолчанию и от него шли все команды а не от хоста
  7. TyMaH Рекомендуемый

    Сообщения:
    154
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7
    ;D и чтоб он был на нивидимом слоте
  8. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    ну ты загнул.... нивидимка))
    Кто знает как его засунуть командой fakeplayer но только на 10 там слот к примеру.
    Что в коде менять надо?
  9. TyMaH Рекомендуемый

    Сообщения:
    154
    Спасибы:
    1
    Сборка бота GHost:
    Ghost One 1.7
    а зачем ваще он нужен? :( я думал реально сделать так чтоб сообщения не от хоста шли а от fakeplayer'a
  10. rost Гуру

    Сообщения:
    1.258
    Спасибы:
    150
    Сборка бота GHost:
    LtG
    Дата начала использования бота:
    01.11.2010
    Skype:
    Мой статус
    я и хочу это, незнаю как на 12 слот запихнуть, в коде менял многое, хз нече невыходит, умы плз хелп :stenka:
  11. spartanec_orc Олд-фаг

    Сообщения:
    12
    Спасибы:
    2
    Сборка бота GHost:
    Chost One 1.7.266
    Сделал сообщение идут от fakeplayera

    В base_game.cpp
    В методе
    void CBaseGame :: SendWelcomeMessage( CGamePlayer *player)
    в самом низу ставим

    Код:
    	if( m_FakePlayerPID == 255 ){
    	CreateFakePlayer( );
    	m_GHost->m_CurrentGame->SwapSlots( (unsigned char)( 2 - 1 ), (unsigned char)( 11 - 1 ) );
    	m_GHost->m_CurrentGame->OpenSlot( (unsigned char)( 2 - 1 ), true );
    	}
    
    Далее


    Находим

    Код:
    void CBaseGame :: SendChat( CGamePlayer *player, string message )
    {
    SendChat( GetHostPID( ), player, message );
    }
    Меняем на

    Код:
    void CBaseGame :: SendChat( CGamePlayer *player, string message )
    {
    SendChat( m_FakePlayerPID, player, message );
    }

    Находим

    Код:
    void CBaseGame :: SendAllChat( string message )
    {
    	SendAllChat( GetHostPID( ), message );
    }
    Меняем на

    Код:
    void CBaseGame :: SendAllChat( string message )
    {
    	SendAllChat( m_FakePlayerPID, message );
    	//SendAllChat( GetHostPID( ), message );
    }
    Ниже

    Код:
    void CBaseGame :: SendAllyChat( string message )
    {
    SendAllyChat( GetHostPID( ), message );
    }
    Заменяем этим

    Код:
    void CBaseGame :: SendAllyChat( string message )
    {
    	//SendAllyChat( GetHostPID( ), message );
    	SendAllyChat( m_FakePlayerPID, message );
    }
    P.S на карте должны быть включены судьи

    И лучше FakePlayer поменять на

    m_VirtualHostName
    Вроде все
    AlexGhost и ZeratuL1986 нравится это.
  12. ____ROB____ Старожила

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    Интересует вот такой вопрос.
    12 слотов, 10 игроков, 1 фейк плеер, 1 закрыт = все занято
    Когда Админ / Safe-List игрок заходит в лобби, его автоматически бросает на закрытый слот. Как зделать что бы закрытый слот оставался закрымым когда заходят игроки с привилегиями.
  13. spartanec_orc Олд-фаг

    Сообщения:
    12
    Спасибы:
    2
    Сборка бота GHost:
    Chost One 1.7.266
    Пока не знаю, у меня вроде сразу в первый клан кидает после всех аминов и игроков с правами
  14. ____ROB____ Старожила

    Сообщения:
    1.008
    Спасибы:
    22
    Сборка бота GHost:
    Ghost One 1.5
    И на етом спасибо.
    Проверил - работает.
  15. spartanec_orc Олд-фаг

    Сообщения:
    12
    Спасибы:
    2
    Сборка бота GHost:
    Chost One 1.7.266
    Если на мапе поставить просто "зрители" то бот не сможет писать(( необходимо только судьи
Статус темы:
Закрыта.