#include <sourcemod>
#include <sdktools>
#define HEALTH_INC 10 //Кол-во прибавляемого хп
public Plugin:myinfo=
{
name = "Medic Trace",
author = "",
version = "0.0.1 Beta",
url = ""
};
//new precache;
public OnPluginStart()
{
HookEvent("weapon_fire", Fire); //Ловим событие
//precache = PrecacheModel("materials/sprites/glow.vmt", false);
//Загрузка
//AddFileToDownloadsTable("materials/sprites/glow.vmt");
//AddFileToDownloadsTable("materials/sprites/glow.vtf");
}
public Fire(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
new target = GetClientAimTarget(client, true);
if(target != -1 && target > 0 && target <= MaxClients && !IsClientObserver(target) && GetClientTeam(target) == GetClientTeam(client))
{
//Effects
//new Float:fvecOrigin[3];
//GetEntPropVector(client, Prop_Send, "m_vecOrigin", fvecOrigin);
//TE_SetupBeamRingPoint(fvecOrigin, 100.0, 99.0, precache, precache, 0, 15, 1.0, 5.0, 0.0, {0, 0, 255, 255}, 10, 0);
//TE_SendToAll();
new health = GetClientHealth(target);
if(health < 100)
{
PrintCenterText(client, "Вы лечите %N", target);
//Effects
//new Float:vecOrigin[3];
//GetEntPropVector(target, Prop_Send, "m_vecOrigin", vecOrigin);
//TE_SetupBeamRingPoint(vecOrigin, 100.0, 99.0, precache, precache, 0, 15, 1.0, 5.0, 0.0, {0, 0, 255, 255}, 10, 0);
//TE_SendToAll();
PrintCenterText(target, "Вас лечит %N", client);
SetEntityHealth(target, health + HEALTH_INC);
}
}
}
Подскажите как сделать, чтобы плагин работал по флагу ?хилл союзников:#include <sourcemod> #include <sdktools> #define HEALTH_INC 10 //Кол-во прибавляемого хп public Plugin:myinfo= { name = "Medic Trace", author = "", version = "0.0.1 Beta", url = "" }; //new precache; public OnPluginStart() { HookEvent("weapon_fire", Fire); //Ловим событие //precache = PrecacheModel("materials/sprites/glow.vmt", false); //Загрузка //AddFileToDownloadsTable("materials/sprites/glow.vmt"); //AddFileToDownloadsTable("materials/sprites/glow.vtf"); } public Fire(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); new target = GetClientAimTarget(client, true); if(target != -1 && target > 0 && target <= MaxClients && !IsClientObserver(target) && GetClientTeam(target) == GetClientTeam(client)) { //Effects //new Float:fvecOrigin[3]; //GetEntPropVector(client, Prop_Send, "m_vecOrigin", fvecOrigin); //TE_SetupBeamRingPoint(fvecOrigin, 100.0, 99.0, precache, precache, 0, 15, 1.0, 5.0, 0.0, {0, 0, 255, 255}, 10, 0); //TE_SendToAll(); new health = GetClientHealth(target); if(health < 100) { PrintCenterText(client, "Вы лечите %N", target); //Effects //new Float:vecOrigin[3]; //GetEntPropVector(target, Prop_Send, "m_vecOrigin", vecOrigin); //TE_SetupBeamRingPoint(vecOrigin, 100.0, 99.0, precache, precache, 0, 15, 1.0, 5.0, 0.0, {0, 0, 255, 255}, 10, 0); //TE_SendToAll(); PrintCenterText(target, "Вас лечит %N", client); SetEntityHealth(target, health + HEALTH_INC); } } }
#include <sourcemod>
#include <sdktools>
#define HEALTH_INC 10 //Кол-во прибавляемого хп
public Plugin:myinfo=
{
name = "Medic Trace",
author = "",
version = "0.0.1 Beta",
url = ""
};
//new precache;
public OnPluginStart()
{
HookEvent("weapon_fire", Fire); //Ловим событие
//precache = PrecacheModel("materials/sprites/glow.vmt", false);
//Загрузка
//AddFileToDownloadsTable("materials/sprites/glow.vmt");
//AddFileToDownloadsTable("materials/sprites/glow.vtf");
}
public Fire(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
new target = GetClientAimTarget(client, true);
if(target != -1 && target > 0 && target <= MaxClients && !IsClientObserver(target) && GetClientTeam(target) == GetClientTeam(client) && GetUserFlagBits(client) & ADMFLAG_ROOT) // ADMFLAG_ROOT - нужный флаг игрока, который лечит
{
//Effects
//new Float:fvecOrigin[3];
//GetEntPropVector(client, Prop_Send, "m_vecOrigin", fvecOrigin);
//TE_SetupBeamRingPoint(fvecOrigin, 100.0, 99.0, precache, precache, 0, 15, 1.0, 5.0, 0.0, {0, 0, 255, 255}, 10, 0);
//TE_SendToAll();
new health = GetClientHealth(target);
if(health < 100)
{
PrintCenterText(client, "Вы лечите %N", target);
//Effects
//new Float:vecOrigin[3];
//GetEntPropVector(target, Prop_Send, "m_vecOrigin", vecOrigin);
//TE_SetupBeamRingPoint(vecOrigin, 100.0, 99.0, precache, precache, 0, 15, 1.0, 5.0, 0.0, {0, 0, 255, 255}, 10, 0);
//TE_SendToAll();
PrintCenterText(target, "Вас лечит %N", client);
SetEntityHealth(target, health + HEALTH_INC);
}
}
}
В друг пригодиться мой вариант есть в конфиге с настройка ограничение по раундам и через сколько секунд после начала раунда будет работать бхоп!Всем привет, нужна помощь в cs:go
Нужно для плагина VIP Bhop добавить возможность ограничивать время начала работы БХопа через конфиг, через сколько секунд после начала раунда БХ будет доступен
Нужно добавить конфиг, в котором можно указывать раунды, в котором не выдавать деньги, указанные в конфиге групп (т.е. чтобы отключить их на пистолетках).
GetClientCount(bool inGameOnly)Снова я со своими нубскими вопросами: Как сделать так, чтобы условие выполнялось, если на сервере 2+ игрока? Есть в SourceMod переменная, которая хранит онлайн на сервере?
C-подобный:if("тут переменная" >= 2) { тут что-то; }
#pragma semicolon 1
#include <sdktools>
#pragma newdecls required
Handle s_CvSound;
char s_Sound;
public void OnPluginStart()
{
char szBuffer[64];
s_CvSound = CreateConVar("sm_block_buy_weapon_sound", "sound/plug/pisk.wav", "Путь к звуку");
FormatEx(szBuffer, 64, "%s", s_Sound);
AddFileToDownloadsTable(szBuffer);
PrecacheSound(s_Sound, true);
}
public Action CS_OnBuyCommand(int client, const char[] weapon)
{
char szBuffer[64];
s_Sound = GetConVarDefault(s_CvSound, szBuffer, 64);
if (strcmp(weapon, "m4a1", false) == 0 || strcmp(weapon, "ak47", false) == 0)
{
PrintToChat(client, "\x04 Запрещено");
ClientCommand(client, "play *%s", s_Sound);
return Plugin_Handled;
}
return Plugin_Continue;
}
Перекеш звуков кс гоздравствуйте, у меня 2 вопроса помогите пожалуйста.
1. Что я сделал не правильно что ругается на первый аргумент в 16 строке?
2. Убираю 16 строку, компилирую плагин но звук не играет а сообщение пишется, что я не правильно сделал?
код:#pragma semicolon 1 #include <sdktools> #pragma newdecls required Handle s_CvSound; char s_Sound; public void OnPluginStart() { char szBuffer[64]; s_CvSound = CreateConVar("sm_block_buy_weapon_sound", "sound/plug/pisk.wav", "Путь к звуку"); FormatEx(szBuffer, 64, "%s", s_Sound); AddFileToDownloadsTable(szBuffer); PrecacheSound(s_Sound, true); } public Action CS_OnBuyCommand(int client, const char[] weapon) { char szBuffer[64]; s_Sound = GetConVarDefault(s_CvSound, szBuffer, 64); if (strcmp(weapon, "m4a1", false) == 0 || strcmp(weapon, "ak47", false) == 0) { PrintToChat(client, "\x04 Запрещено"); ClientCommand(client, "play *%s", s_Sound); return Plugin_Handled; } return Plugin_Continue; }
Handle s_CvSound = INVALID_HANDLE;
char s_Sound[64] = "plug/pisk.wav";
char szBuffer[64];
public void OnPluginStart()
{
s_CvSound = CreateConVar("sm_block_buy_weapon_sound", "plug/pisk.wav", "Путь к звуку");
}
public void OnMapStart()
{
FormatEx(szBuffer, 64, "sound/%s", s_Sound);
AddFileToDownloadsTable(szBuffer);
PrecacheSound(s_Sound);
}
public Action CS_OnBuyCommand(int client, const char[] weapon)
{
s_Sound = GetConVarString(s_CvSound, szBuffer, 64);
if (strcmp(weapon, "m4a1", false) == 0 || strcmp(weapon, "ak47", false) == 0)
{
PrintToChat(client, "\x04 Запрещено");
EmitSoundToClient(client, s_Sound);
return Plugin_Handled;
}
return Plugin_Continue;
}
s_Sound = GetConVarString(s_CvSound, szBuffer, 64);
void GetConVarString(Handle convar, char[] value, int maxlength)
GetConVarString(s_CvSound, s_Sound, 64);
Так не проще включить доступ только без ВАК Бана?Может кто делал себе плагин для запрета входа игрокам с VAC и желательно + тех кому STEAM отключил микро из-за жалоб постоянных, поделитесь?
он и так включен, вак и в других играх получить можноТак не проще включить доступ только без ВАК Бана?
#pragma semicolon 1
#include <sdktools_sound>
#include <sdktools_stringtables>
char s_Sound[PLATFORM_MAX_PATH];
public void OnPluginStart()
{
ConVar cvar = CreateConVar("sm_block_buy_weapon_sound", "plug/pisk.wav", "Путь к звуку", FCVAR_PRINTABLEONLY);
CVarChanged_Sound(cvar, NULL_STRING, NULL_STRING);
cvar.AddChangeHook(CVarChanged_Sound);
}
public void CVarChanged_Sound(ConVar cvar, const char[] oldValue, const char[] newValue)
{
cvar.GetString(s_Sound, sizeof(s_Sound));
int len = strlen(s_Sound) - 4;
if(len < 1 || strcmp(s_Sound[len], ".mp3", false) && strcmp(s_Sound[len], ".wav", false))
s_Sound[0] = 0;
else OnMapStart();
}
public void OnMapStart()
{
if(!s_Sound[0]) return;
char buffer[sizeof(s_Sound)];
FormatEx(buffer, sizeof(buffer), "sound/%s", s_Sound);
AddFileToDownloadsTable(buffer);
PrecacheSound(s_Sound, true);
}
public Action CS_OnBuyCommand(int client, const char[] weapon)
{
if(strcmp(weapon, "m4a1", false) && strcmp(weapon, "ak47", false))
return Plugin_Continue;
PrintToChat(client, "\x04 Покупка %s запрещена", weapon);
if(s_Sound[0]) EmitSoundToClient(client, s_Sound);
return Plugin_Handled;
}
Handle s_CvSound = INVALID_HANDLE;
char s_Sound[64] = "plug/pisk.wav";
char szBuffer[64];
public void OnPluginStart()
{
s_CvSound = CreateConVar("sm_block_buy_weapon_sound", "plug/pisk.wav", "Путь к звуку");
}
public void OnMapStart()
{
FormatEx(szBuffer, 64, "%s", s_Sound);
AddFileToDownloadsTable(szBuffer);
PrecacheSound(s_Sound);
}
public Action CS_OnBuyCommand(int client, const char[] weapon)
{
GetConVarString(s_CvSound, s_Sound, 64);
if (strcmp(weapon, "m4a1", false) == 0 || strcmp(weapon, "ak47", false) == 0)
{
PrintToChat(client, "\x04Запрещено");
EmitSoundToClient(client, s_Sound);
return Plugin_Handled;
}
return Plugin_Continue;
}