mp_forcecamera для админов

Тема в разделе "Counter-Strike: Source", создана пользователем egorka2, 11 янв 2014.

  1. egorka2

    egorka2

    Сообщения:
    92
    Симпатии:
    7
    Здравствуйте. На сервере стоит переменная mp_forcecamera 1, т.е. игроки могут после смерти смотреть только за своими игроками. Интересует вопрос, можно ли стандартными способами разрешить админам смотреть за всеми игроками после смерти, или же нужно с помощью стороннего плагина такую возможность добавлять?
     
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.970
    Симпатии:
    2.977
    egorka2, нет. Только плагином
     
  3. Sam_Fisher

    Sam_Fisher

    Сообщения:
    703
    Симпатии:
    202
    А каким?
     
  4. Konstantin

    Konstantin

    Сообщения:
    1.789
    Симпатии:
    767
    "Свеженаписанным", я полагаю)
     
  5. Sam_Fisher

    Sam_Fisher

    Сообщения:
    703
    Симпатии:
    202
    Konstantin, либо я плохо искал, либо тут его нет :)
     
  6. hepto

    hepto

    Сообщения:
    184
    Симпатии:
    56
    Sam_Fisher, канэшна нэт, тибе жы напесали
    Иди в http://hlmod.ru/forum/zaprosy-43/ авось кто возмется
     
  7. CTe6eJIeK_vRn

    CTe6eJIeK_vRn Супер-модератор

    Сообщения:
    2.014
    Симпатии:
    1.797
  8. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.970
    Симпатии:
    2.977
    Уже всё давно написано. А вы еще умудряетесь заказывать.
     
    Sam_Fisher нравится это.
  9. Sam_Fisher

    Sam_Fisher

    Сообщения:
    703
    Симпатии:
    202
    пытался скомпилировать под флаг ADMINFLAG_BAN и чет не вышло... Может кто сделать или подсказать, в чем моя ошибка.
    А ошибка при компилировании следующая:
    Код:
    //SourceMod Batch Compiler
    // by the SourceMod Dev Team
    
    
    //// admin-allspec.sp
    // C:\servers\css\27015\cstrike\addons\sourcemod\scripting\admin-allspec.sp(2) :
     fatal error 120: cannot read from file: "dhooks"
    //
    // Compilation aborted.
    // 1 Error.
    //
    // Compilation Time: 0,69 sec
    // ----------------------------------------
    
    Press enter to exit ...
    Я, конечно, не сильно разбираюсь в коде, но вот это, походу и дает ошибку:
    Код:
    #include <dhooks>
    Я про dhooks впервые слышу...

    Вот сам исходник:
    Код:
    #include <sourcemod>
    #include <dhooks>
    
    #define PLUGIN_VERSION "1.0.2"
    
    new Handle:hIsValidTarget;
    new Handle:mp_forcecamera;
    new bool:g_bCheckNullPtr = false;
    
    public Plugin:myinfo = 
    {
    	name = "Admin all spec",
    	author = "Dr!fter",
    	description = "Allows admin to spec all players",
    	version = PLUGIN_VERSION,
    	url = "http://www.sourcemod.net"
    }
    
    public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
    {
    	MarkNativeAsOptional("DHookIsNullParam");
    	
    	return APLRes_Success;
    }
    
    public OnPluginStart()
    {
    	mp_forcecamera = FindConVar("mp_forcecamera");
    	
    	if(!mp_forcecamera)
    	{
    		SetFailState("Failed to locate mp_forcecamera");
    	}
    	
    	new Handle:temp = LoadGameConfigFile("allow-spec.games");
    	
    	if(!temp)
    	{
    		SetFailState("Failed to load allow-spec.games.txt");
    	}
    	
    	new offset = GameConfGetOffset(temp, "IsValidObserverTarget");
    	
    	hIsValidTarget = DHookCreate(offset, HookType_Entity, ReturnType_Bool, ThisPointer_CBaseEntity, IsValidTarget);
    	
    	DHookAddParam(hIsValidTarget, HookParamType_CBaseEntity);
    	
    	CloseHandle(temp);
    	
    	g_bCheckNullPtr = (GetFeatureStatus(FeatureType_Native, "DHookIsNullParam") == FeatureStatus_Available);
    	
    	CreateConVar("admin_allspec_version", PLUGIN_VERSION, "Plugin version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
    }
    public OnClientPostAdminCheck(client)
    {
    	if(IsFakeClient(client))
    		return;
    	
    	if(CheckCommandAccess(client, "admin_allspec_flag", ADMFLAG_BAN))
    	{
    		SendConVarValue(client, mp_forcecamera, "0");
    		DHookEntity(hIsValidTarget, true, client);
    	}
    }
    public MRESReturn:IsValidTarget(this, Handle:hReturn, Handle:hParams)
    {
    	// As of DHooks 1.0.12 we must check for a null param.
    	if (g_bCheckNullPtr && DHookIsNullParam(hParams, 1))
    		return MRES_Ignored;
    	
    	new target = DHookGetParam(hParams, 1);
    	if(target <= 0 || target > MaxClients || !IsClientInGame(this) || !IsClientInGame(target) || !IsPlayerAlive(target) || IsPlayerAlive(this) || GetClientTeam(this) <= 1 || GetClientTeam(target) <= 1)
    	{
    		return MRES_Ignored;
    	}
    	else
    	{
    		DHookSetReturn(hReturn, true);
    		return MRES_Override;
    	}
    }
     
  10. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.970
    Симпатии:
    2.977
    Sam_Fisher нравится это.
  11. Sam_Fisher

    Sam_Fisher

    Сообщения:
    703
    Симпатии:
    202
    radionucleid и hepto нравится это.