Disable radar / fix error

Тема в разделе "Программирование / Скриптинг", создана пользователем Drumanid, 18 июл 2016.

  1. Drumanid

    Drumanid Дилетант

    Сообщения:
    567
    Симпатии:
    193
    Помогите исправить ошибку, флудит в логи...
    Смотрите под спойлером.

    L 07/18/2016 - 18:13:05: [SM] Exception reported: Entity 4 (4) is invalid
    L 07/18/2016 - 18:13:05: [SM] Blaming: DisableRadar.smx()
    L 07/18/2016 - 18:13:05: [SM] Call stack trace:
    L 07/18/2016 - 18:13:05: [SM] [0] GetEntProp
    L 07/18/2016 - 18:13:05: [SM] [1] Line 33, /home/forums/content/files/2/4/8/3/8/6/133573.attach::RemoveRadar()

    Исходник:

    PHP:
    #include <sourcemod>

    #define HIDE_RADAR_CSGO 1<<12

    new String:strGame[10];

    public 
    Plugin:myinfo 
    {
        
    name "Disable Radar",
        
    author "Internet Bully",
        
    description "Turns off Radar on spawn",
        
    version     "1.2",
        
    url "http://www.sourcemod.net/"
    }

    public 
    OnPluginStart() 
    {
        
    HookEvent("player_spawn"Player_Spawn);
       
        
    GetGameFolderName(strGamesizeof(strGame));
       
        if(
    StrContains(strGame"cstrike") != -1
            
    HookEvent("player_blind"Event_PlayerBlindEventHookMode_Post);
    }
    public 
    Player_Spawn(Handle:event, const String:name[], bool:dontBroadcast
    {
        
    CreateTimer(0.0RemoveRadarGetEventInt(event"userid"));
    }  

    public 
    Action:RemoveRadar(Handle:timerany:userid
    {
        new 
    client GetClientOfUserId(userid);
        if(
    StrContains(strGame"csgo") != -1)
            
    SetEntProp(clientProp_Send"m_iHideHUD"HIDE_RADAR_CSGO);
        else if(
    StrContains(strGame"cstrike") != -1
            
    CSSHideRadar(client);


    public 
    Event_PlayerBlind(Handle:event, const String:name[], bool:dontBroadcast)  
    {
        new 
    userid GetEventInt(event"userid");
        new 
    client GetClientOfUserId(userid);
       
        if (
    client && GetClientTeam(client) > 1)
        {
            new 
    Float:fDuration GetEntPropFloat(clientProp_Send"m_flFlashDuration");
            
    CreateTimer(fDurationRemoveRadarclient);
        }
    }

    CSSHideRadar(client)
    {
        
    SetEntPropFloat(clientProp_Send"m_flFlashDuration"3600.0);
        
    SetEntPropFloat(clientProp_Send"m_flFlashMaxAlpha"0.5);
    }
     
  2. Felton

    Felton

    Сообщения:
    332
    Симпатии:
    9
    А кокая задача этого плагина ?Где можно почитать описание?
     
  3. Drumanid

    Drumanid Дилетант

    Сообщения:
    567
    Симпатии:
    193
    :russian_ru:, отключает радар.
     
  4. Серый™

    Серый™ CS:S Server

    Сообщения:
    2.559
    Симпатии:
    1.143
    CreateTimer(fDuration, RemoveRadar, client);
    замени на
    CreateTimer(fDuration, RemoveRadar, userid);
     
    Drumanid нравится это.
  5. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.512
    Симпатии:
    1.963
    Что-то строка ошибки не совпадает с исходником.
    PHP:
    #include <sdkhooks>

    #define HIDE_RADAR_CSGO 1<<12

    new bool:g_bGameCSGO true;

    public 
    Plugin:myinfo 
    {
        
    name "Disable Radar",
        
    author "Internet Bully",
        
    description "Turns off Radar on spawn",
        
    version     "1.2edit",
        
    url "http://www.sourcemod.net/"
    }

    public 
    OnPluginStart()
    {
        if (
    GetEngineVersion() != Engine_CSGO)
        {
            
    g_bGameCSGO false;
            
    HookEventEx("player_blind"Event_PlayerBlind);
        }
    }

    public 
    OnClientPostAdminCheck(client)
    {
        if (!
    IsFakeClient(client)) SDKHook(clientSDKHook_SpawnPostg_bGameCSGO RemoveRadarCSGO:RemoveRadarOther);
    }

    public 
    RemoveRadarCSGO(clientSetEntProp(clientProp_Send"m_iHideHUD"HIDE_RADAR_CSGO);

    public 
    RemoveRadarOther(client)
    {
        
    SetEntPropFloat(clientProp_Send"m_flFlashDuration"3600.0);
        
    SetEntPropFloat(clientProp_Send"m_flFlashMaxAlpha"0.5);
    }

    public 
    Event_PlayerBlind(Handle:event, const String:name[], bool:dontBroadcast)
    {
        
    decl client;
        if (!
    IsFakeClient((client GetClientOfUserId(GetEventInt(event"userid")))) && GetClientTeam(client) > 1)
            
    CreateTimer(GetEntPropFloat(clientProp_Send"m_flFlashDuration"), RemoveRadarclientTIMER_FLAG_NO_MAPCHANGE);
    }

    public 
    Action:RemoveRadar(Handle:timerany:client)
    {
        if (
    IsClientInGame(client)) RemoveRadarOther(client);
        return 
    Plugin_Stop;
    }
     
    Drumanid нравится это.
  6. Drumanid

    Drumanid Дилетант

    Сообщения:
    567
    Симпатии:
    193
    Спасибо, попробую.
     
  7. Felton

    Felton

    Сообщения:
    332
    Симпатии:
    9
    Странно а зачем отключать радар?Это же не удобно .Для каких целей нужен этот плагин?Что бы просто отключить радар.Отключить радар и звук и зачем вообще играть?Или я чтото не понимаю?
     
  8. Drumanid

    Drumanid Дилетант

    Сообщения:
    567
    Симпатии:
    193
    Оффтоп

    На серф/дезран/мг и на других подобных модов - этот радар не нужен.
     
  9. Felton

    Felton

    Сообщения:
    332
    Симпатии:
    9
    А вот теперь понял для каких целей этот плагин.У меня DeathMatch вот поэтому и возникли вопросы.