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

Yura7181

Участник
Сообщения
678
Реакции
594
Всем привет.

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

Заранее спасибо.
 

gibs

Фитиль народного волненья
Сообщения
722
Реакции
407
Мошенник
Если коротко, то просто добавь строчки
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);
}
 

Yura7181

Участник
Сообщения
678
Реакции
594
Вот это получается:

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

iSe7en

Участник
Сообщения
209
Реакции
111
Вот это получается:

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

C-подобный:
#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;
}
 

gibs

Фитиль народного волненья
Сообщения
722
Реакции
407
Мошенник
Ноль эмоций. Рычаги по прежнему никак не отображаются.
Значит посмотри через какую ентити сделаны твои рычаги. К тому же на них могут висеть фильтры, который будут блочить аутпуты в такой манере.
 

Yura7181

Участник
Сообщения
678
Реакции
594
Блин, наверно проще выпросить этот плагин у админа японского сервера.

Но тем не менее спасибо вам.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
проще выпросить этот плагин у админа японского сервера
Можно сильно не заморачиваться и попробовать сделать имитацию.
посмотри через какую ентити сделаны твои рычаги
@Yura7181, Заменить/Дать свойства entity на карте компилируй, наведи прицел на кнопку и отображаемую инфу скриншотом сюда.
 

Yura7181

Участник
Сообщения
678
Реакции
594
Можно сильно не заморачиваться и попробовать сделать имитацию.@Yura7181, Заменить/Дать свойства entity на карте компилируй, наведи прицел на кнопку и отображаемую инфу скриншотом сюда.
Ничего не происходит (остальные кнопки определяет).
 
Сверху Снизу