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

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

  1. Yura7181

    Yura7181

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

    Данный плагин показывает кто нажимает кнопки, но не показывает кто нажимает рычаги на картах. Буду благодарен если кто нибудь сможет отредактировать его. Видел на японском сервере подобный плагин и он показывает кто нажимает рычаги в чате - это отображается как 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 Фитиль народного волненья

    Сообщения:
    641
    Симпатии:
    213
    Если коротко, то просто добавь строчки
    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

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

    //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

    Сообщения:
    122
    Симпатии:
    41
    Код:
    #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

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

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

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

    Yura7181

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

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

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

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

    Yura7181

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

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

    AlmazON Не путать с самим yand3xmail

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

    Yura7181

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

    AlmazON Не путать с самим yand3xmail

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