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

Редактирование команды !end

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

  1. D-MiLIR Ньюфаг

    Сообщения:
    109
    Спасибы:
    0
    Что нужно изменить что бы команду могли только писать rootadmin и admin. Так как у меня могут создавать игры все, то они автоматически становятся админами данной игры и им доступны команды админа и хотелось бы убрать у них команду !end.
    Код:
    //
    			// !ENDN
    			//
    
    			if( Command == "endn" && m_GameLoaded )
    			{
    				if (!m_GameEndCountDownStarted)
    					if (m_GHost->m_EndReq2ndTeamAccept && m_EndRequested)
    						if (m_Slots[GetSIDFromPID(player->GetPID())].GetTeam()!=m_EndRequestedTeam)
    						{
    							CONSOLE_Print( "[GAME: " + m_GameName + "] is over (admin ended game)" );
    							SendAllChat("Game will end in 5 seconds");
    							m_GameEndCountDownStarted = true;
    							m_GameEndCountDownCounter = 5;
    							m_GameEndLastCountDownTicks = GetTicks();
    						}
    
    				if (m_GHost->m_EndReq2ndTeamAccept && !RootAdminCheck)
    				{
    					bool secondTeamPresent = false;
    
    					unsigned char PID = player->GetPID();
    					for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    					{
    						if (m_Slots[GetSIDFromPID((*i)->GetPID())].GetTeam()!=m_Slots[GetSIDFromPID(PID)].GetTeam())
    							secondTeamPresent = true;
    					}
    
    					if (m_GetMapNumTeams==2 && secondTeamPresent)
    					{
    						m_EndRequestedTeam = m_Slots[GetSIDFromPID(player->GetPID())].GetTeam();
    						if (!m_EndRequested)
    						{
    							m_EndRequestedTicks = GetTicks();
    							m_EndRequested = true;
    							for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    							{
    								if (m_Slots[GetSIDFromPID((*i)->GetPID())].GetTeam()!=m_EndRequestedTeam)
    									SendChat((*i)->GetPID(), User + " wants to end the game, type "+m_GHost->m_CommandTrigger+"end to accept");
    								else
    									SendChat((*i)->GetPID(), User + " wants to end the game, waiting for the other team to accept...");
    							}
    
    						}
    						return HideCommand;
    					}
    				}
    
    				if (!CMDCheck(CMD_end, AdminAccess))
    				{
    					SendChat(player->GetPID(), m_GHost->m_Language->YouDontHaveAccessToThatCommand( ));
    					return HideCommand;
    				}
    				
    				CONSOLE_Print( "[GAME: " + m_GameName + "] is over (admin ended game)" );
    				StopPlayers( "was disconnected (admin ended game)" );
    			}
    
    			//
    			// !ENDS
    			//
    
    			if( (Command == "ends" || Command == "a") && m_GameLoaded )
    			{
    				if (!CMDCheck(CMD_end, AdminAccess))
    				{
    					SendChat(player->GetPID(), m_GHost->m_Language->YouDontHaveAccessToThatCommand( ));
    					return HideCommand;
    				}
    				CONSOLE_Print( "[GAME: " + m_GameName + "] canceled end game" );
    				SendAllChat("Admin stoped end countdown");
    				m_GameEndCountDownStarted = false;
    			}
    
    			//
    			// !END
    			//
    
    			if( Command == "end" && m_GameLoaded )
    			{
    				bool access = CMDCheck(CMD_end, AdminAccess); 
    
    				if (!m_GameEndCountDownStarted)
    					if (m_GHost->m_EndReq2ndTeamAccept && m_EndRequested)
    						if (m_Slots[GetSIDFromPID(player->GetPID())].GetTeam()!=m_EndRequestedTeam)
    						{
    							CONSOLE_Print( "[GAME: " + m_GameName + "] is over (admin ended game)" );
    							SendAllChat("Game will end in 5 seconds");
    							m_GameEndCountDownStarted = true;
    							m_GameEndCountDownCounter = 5;
    							m_GameEndLastCountDownTicks = GetTicks();
    						}
    
    				if (m_GHost->m_EndReq2ndTeamAccept && !RootAdminCheck)
    				{
    					bool secondTeamPresent = false;
    
    					unsigned char PID = player->GetPID();
    					for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    					{
    						if (m_Slots[GetSIDFromPID((*i)->GetPID())].GetTeam()!=m_Slots[GetSIDFromPID(PID)].GetTeam())
    							secondTeamPresent = true;
    					}
    
    					if (m_GetMapNumTeams==2 && secondTeamPresent)
    					{
    						m_EndRequestedTeam = m_Slots[GetSIDFromPID(player->GetPID())].GetTeam();
    						if (!m_EndRequested)
    						{
    							m_EndRequestedTicks = GetTicks();
    							m_EndRequested = true;
    							for( vector<CGamePlayer *> :: iterator i = m_Players.begin( ); i != m_Players.end( ); i++ )
    							{
    								if (m_Slots[GetSIDFromPID((*i)->GetPID())].GetTeam()!=m_EndRequestedTeam)
    									SendChat((*i)->GetPID(), User + " wants to end the game, type "+m_GHost->m_CommandTrigger+"end to accept");
    								else
    									SendChat((*i)->GetPID(), User + " wants to end the game, waiting for the other team to accept...");
    							}
    						}
    						return HideCommand;
    					}
    				}
    
    				if (!access)
    				{
    					SendChat(player->GetPID(), m_GHost->m_Language->YouDontHaveAccessToThatCommand( ));
    					return HideCommand;
    				}
    
    				CONSOLE_Print( "[GAME: " + m_GameName + "] is over (admin ended game)" );
    				SendAllChat("Game will end in 5 seconds");
    				m_GameEndCountDownStarted = true;
    				m_GameEndCountDownCounter = 5;
    				m_GameEndLastCountDownTicks = GetTicks();
    //				StopPlayers( "was disconnected (admin ended game)" );
    			}
  2. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Дак ты хочешь чтоб могли писать админы и рут админы или не могли писать... o_O
  3. D-MiLIR Ньюфаг

    Сообщения:
    109
    Спасибы:
    0
    У моего бота доступна команда !pub абсолютно всем. При создание игры, владелиц этой игры становиться админ этой игры, в не всего бота. Соответственно в своей игре он может использовать админ команды в том числе !end. И я хочу убрать у них !end.
  4. aivanzipper Ньюфаг

    Сообщения:
    39
    Спасибы:
    0
    Код:
    bot_userscanhost = 0
  5. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Код:
    bot_blueisowner = 0
  6. D-MiLIR Ньюфаг

    Сообщения:
    109
    Спасибы:
    0
    Он хоть не на синем будет стоят все равно он будет использовать команды админа так как он является владельцем этой игры которую он создал.
  7. p03uTuFF Ньюфаг

    Сообщения:
    20
    Спасибы:
    0
    если ghost one то:
    [IMG]
    убирай ненужные галочки для овнеров
    или
    Код:
    # default access for owners (use admin access panel to change any admin's access to your liking and see the access code for those commands)
    bot_owneraccess = 3949