Помогите с плагином показывающим кто нажимает кнопки/рычаги

Тема в разделе "Запросы", создана пользователем Yura7181, 6 мар 2016.

  1. Yura7181

    Yura7181

    Сообщения:
    367
    Симпатии:
    293
    Всем привет.

    Данный плагин показывает кто нажимает кнопки, но не показывает кто нажимает рычаги на картах. Буду благодарен если кто нибудь сможет отредактировать его. Видел на японском сервере подобный плагин и он показывает кто нажимает рычаги в чате - это отображается как unknown button

    #include <sourcemod>
    #include <sdktools>

    new bool:espresionado[2048];

    public Plugin:myinfo =
    {
    name = "Button Watcher",
    author = "Franc1sco franug",
    description = "Generates an output when a button is pressed",
    version = "1.1",
    url = "ZEUS Server | Zombie Europe Server"
    };

    public OnPluginStart()
    {
    HookEntityOutput("func_button", "OnPressed", Presionado);
    CreateConVar("sm_buttonwatcher", "1.1", "", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
    }

    public Presionado(const String:output[], caller, activator, Float:delay)
    {
    if(!IsValidClient(activator)) return;

    if(espresionado[caller]) return;

    decl String:entity[512];
    GetEntPropString(caller, Prop_Data, "m_iName", entity, sizeof(entity));

    PrintToChatAll(" \x02[BW] \x0C%N \x04pressed button\x0C %i %s", activator, caller, entity);

    LogMessage("[BW] %L pressed the button %i %s", activator, caller, entity)

    espresionado[caller] = true;
    CreateTimer(5.0, Pasado, caller);
    }

    public Action:Pasado(Handle:timer, any:entity)
    {
    espresionado[entity] = false;
    }

    public IsValidClient( client )
    {
    if ( !( 1 <= client <= MaxClients ) || !IsClientInGame(client) || !IsPlayerAlive(client) )
    return false;

    return true;
    }

    Заранее спасибо.
     
    Святослав124 нравится это.
  2. gibs

    gibs Фитиль народного волненья

    Сообщения:
    535
    Симпатии:
    133
    Если коротко, то просто добавь строчки
    PHP:
    public OnPluginStart()
    {
    HookEntityOutput("func_rot_button""OnPressed"Presionado);
    HookEntityOutput("momentary_rot_button""OnPressed"Presionado);
    HookEntityOutput("func_button""OnPressed"Presionado);
    CreateConVar("sm_buttonwatcher""1.1"""FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
    }
     
  3. Yura7181

    Yura7181

    Сообщения:
    367
    Симпатии:
    293
    Вот это получается:

    //SourceMod Batch Compiler
    // by the SourceMod Dev Team


    //// buttonwatcher.sp
    //
    // E:\servercsgo_unlimited\csgo\addons\sourcemod\scripting\buttonwatcher.sp(17)
    : error 029: invalid expression, assumed zero
    //
    // 1 Error.
    //
    // Compilation Time: 0,19 sec
    // ----------------------------------------

    Press enter to exit ...
     
    Святослав124 нравится это.
  4. Se7en_RUS

    Se7en_RUS

    Сообщения:
    53
    Симпатии:
    11
    Код:
    #include <sourcemod>
    #include <sdktools>
    
    new bool:espresionado[2048];
    
    public Plugin:myinfo =
    {
    name = "Button Watcher",
    author = "Franc1sco franug",
    description = "Generates an output when a button is pressed",
    version = "1.1",
    url = "ZEUS Server | Zombie Europe Server"
    };
    
    public OnPluginStart()
    {
    HookEntityOutput("func_rot_button", "OnPressed", Presionado);
    HookEntityOutput("momentary_rot_button", "OnPressed", Presionado);
    HookEntityOutput("func_button", "OnPressed", Presionado);
    CreateConVar("sm_buttonwatcher", "1.1", "", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
    }
    
    public Presionado(const String:output[], caller, activator, Float:delay)
    {
    if(!IsValidClient(activator)) return;
    
    if(espresionado[caller]) return;
    
    decl String:entity[512];
    GetEntPropString(caller, Prop_Data, "m_iName", entity, sizeof(entity));
    
    PrintToChatAll(" \x02[BW] \x0C%N \x04pressed button\x0C %i %s", activator, caller, entity);
    
    LogMessage("[BW] %L pressed the button %i %s", activator, caller, entity)
    
    espresionado[caller] = true;
    CreateTimer(5.0, Pasado, caller);
    }
    
    public Action:Pasado(Handle:timer, any:entity)
    {
    espresionado[entity] = false;
    }
    
    public IsValidClient( client )
    {
    if ( !( 1 <= client <= MaxClients ) || !IsClientInGame(client) || !IsPlayerAlive(client) )
    return false;
    
    return true;
    }
    
     
  5. Yura7181

    Yura7181

    Сообщения:
    367
    Симпатии:
    293
    Ноль эмоций. Рычаги по прежнему никак не отображаются.
     
    Святослав124 нравится это.
  6. gibs

    gibs Фитиль народного волненья

    Сообщения:
    535
    Симпатии:
    133
    Значит посмотри через какую ентити сделаны твои рычаги. К тому же на них могут висеть фильтры, который будут блочить аутпуты в такой манере.
     
  7. Yura7181

    Yura7181

    Сообщения:
    367
    Симпатии:
    293
    Блин, наверно проще выпросить этот плагин у админа японского сервера.

    Но тем не менее спасибо вам.
     
    Святослав124 нравится это.
  8. skolobes

    skolobes Не раздевайся, я по делу

    Сообщения:
    263
    Симпатии:
    22
    @Yura7181, ну что раздобыл плагин?
     
  9. Yura7181

    Yura7181

    Сообщения:
    367
    Симпатии:
    293
    Привет.

    Нет.
     
    Святослав124 нравится это.
  10. AlmazON

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

    Сообщения:
    4.505
    Симпатии:
    1.960
    Можно сильно не заморачиваться и попробовать сделать имитацию.
    @Yura7181, Заменить/Дать свойства entity на карте компилируй, наведи прицел на кнопку и отображаемую инфу скриншотом сюда.
     
    Святослав124 нравится это.
  11. Yura7181

    Yura7181

    Сообщения:
    367
    Симпатии:
    293
    Ничего не происходит (остальные кнопки определяет).
     
    Святослав124 нравится это.
  12. AlmazON

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

    Сообщения:
    4.505
    Симпатии:
    1.960
    Какая-то кнопка "цельная". Тогда без вариантов, имитация не поможет.