FerreroXgod
Участник
- Сообщения
- 43
- Реакции
- 6
Нет именно игрок зашел и ему далась привелегия!вип тест время поменять?
FreeVip в определенное время ?
Нет именно игрок зашел и ему далась привелегия!вип тест время поменять?
FreeVip в определенное время ?
мне нужен плагин чтобы всем обычным игрокам добавалсь определенная вип привелегия!
!
Братан, у меня почему-то не получилась. Нельзя ли как-то его исправить и размер поменьше сделать, примерно, как на второй фотографии?@Jedi qLux, если не надо чтоб через стены и т.д видно было, убери параметр "$ignorez" "1" в marker.vmt
@Jedi qLux, Попробуйте, и покажите как вы спавните ее. Можно в ЛС
Привет всем, нужна помощь с плагином. В общем, нужно сделать команду, чтобы не выдавало шприц
#include <sourcemod>
#include <sdktools>
public OnPluginStart()
{
HookEvent("player_spawn", Event_PlayerSpawn);
}
public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
CreateTimer(3.0, WelcomePlayer, GetClientSerial(client));
}
public Action WelcomePlayer(Handle timer, int client)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if (IsClientInGame(client) && IsPlayerAlive(client))
{
GivePlayerItem(client, "weapon_healthshot");
}
}
#include <sourcemod>
#include <sdktools>
bool bHealthshot = true;
public OnPluginStart()
{
HookEvent("player_spawn", Event_PlayerSpawn);
RegAdminCmd("sm_hs", HealthshotCallBack, ADMFLAG_ROOT);
}
public Action HealthshotCallBack(int iClient, int args)
{
if(IsClientInGame(iClient))
{
bHealthshot = !bHealthshot;
PrintToChat(iClient, "Шприц %s", bHealthshot? "включен":"выключен");
}
}
public void Event_PlayerSpawn(Event event, const char []name, bool dontBroadcast)
{
CreateTimer(3.0, WelcomePlayer, GetEventInt(event, "userid"));
}
public Action WelcomePlayer(Handle timer, any UserID)
{
if(bHealthshot)
{
int iClient = GetClientOfUserId(UserID);
if (iClient != 0 && IsClientInGame(iClient) && IsPlayerAlive(iClient))
{
GivePlayerItem(iClient, "weapon_healthshot");
}
}
return Plugin_Stop;
}
Привет всем, нужна помощь с плагином. В общем, нужно сделать команду, чтобы не выдавало шприц
#include <sourcemod>
#include <sdktools>
public OnPluginStart()
{
HookEvent("player_spawn", Event_PlayerSpawn);
}
public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
CreateTimer(3.0, WelcomePlayer, GetClientSerial(client));
}
public Action WelcomePlayer(Handle timer, int client)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
if (IsClientInGame(client) && IsPlayerAlive(client))
{
GivePlayerItem(client, "weapon_healthshot");
}
}
#include <sourcemod>
#include <sdktools>
#include <clientprefs>
bool g_bHS;
Handle g_hCookie;
public OnPluginStart()
{
RegAdminCmd("sm_hs", GHS, ADMFLAG_BAN, "Give HealthShot");
HookEvent("player_spawn", Event_PlayerSpawn);
g_hCookie = RegClientCookie("GiveHealthShot", "Статус", CookieAccess_Public);
}
public void OnClientCookiesCached(int iClient)
{
char szValue[4];
GetClientCookie(iClient, g_hCookie, szValue, sizeof(szValue));
if (szValue[0])g_bHS = view_as<bool>(StringToInt(szValue));
else g_bHS = true;
}
public Action GHS(int iClient, int iArg)
{
if((g_bHS = !g_bHS))
{
SetClientCookie(iClient, g_hCookie, "1");
PrintToChat(iClient, "[GHS] Выдача включена");
}else{
SetClientCookie(iClient, g_hCookie, "0");
PrintToChat(iClient, "[GHS] Выдача выключена");
}
}
public void Event_PlayerSpawn(Event hEvent, const char[] sName, bool bDontBroadcast)
{
if(g_bHS) CreateTimer(3.0, WelcomePlayer, GetClientOfUserId(GetEventInt(hEvent, "userid")));
}
public Action WelcomePlayer(Handle hTimer, int iClient)
{
if (iClient != 0 && IsClientInGame(iClient) && IsPlayerAlive(iClient)) GivePlayerItem(iClient, "weapon_healthshot");
}
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <smlib>
#pragma semicolon 1
new bool:Walling[MAXPLAYERS+1];
new Handle:cv_walltex;
public Plugin:myinfo =
{
name = "[ANY] Wallhack For Specs",
author = "Arthurdead",
description = "Wallhack For Specs",
version = "0.3",
url = "http://steamcommunity.com/id/Arthurdead"
}
public OnPluginStart()
{
RegConsoleCmd("sm_wallhack", Command_Wallhack);
cv_walltex = CreateConVar("sm_wallhack_tex", "ggwp/wh/redlight.vmt", "Wallhack Texture", 0|FCVAR_NOTIFY);
HookEvent("player_spawn", Event_Spawn);
}
public Action:Command_Wallhack(client, args)
{
if(CheckCommandAccess(client, "sm_wallhack_access", ADMFLAG_GENERIC))
{
if(GetClientTeam(client) == 1)
{
if(Walling[client] == false)
{
Walling[client] = true;
PrintToChat(client, "Wallhack Enabled");
}
else if(Walling[client] == true)
{
Walling[client] = false;
PrintToChat(client, "Wallhack Disabled");
}
}
else ReplyToCommand(client, "[SM] You Must Be An Spectator To Use This Command");
}
return Plugin_Handled;
}
public Action:Event_Spawn(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
SDKHook(client, SDKHook_PreThink, PreThinkHook);
}
public PreThinkHook(client)
{
if(IsValidClient(client))
{
if(Walling[client] == true)
{
if(GetClientTeam(client) == 1)
{
decl Float:clientEyes[3];
GetClientEyePosition(client, clientEyes);
Client_GetClosest(clientEyes, client);
}
}
}
}
bool:IsValidClient( client )
{
if(!(1 <= client <= MaxClients ) || !IsClientInGame(client))
return false;
return true;
}
stock Client_GetClosest(Float:vecOrigin_center[3], const client)
{
decl Float:vecOrigin_edict[3];
new Float:distance = -1.0;
new closestEdict = -1;
new String:Tex[PLATFORM_MAX_PATH];
GetConVarString(cv_walltex, Tex, PLATFORM_MAX_PATH);
new mdl = PrecacheModel(Tex);
new target = Client_GetObserverTarget(client);
for (new i = 1; i < MaxClients; ++i)
{
if(!IsClientInGame(i) || !IsPlayerAlive(i) || (i == client))
continue;
GetEntPropVector(i, Prop_Data, "m_vecOrigin", vecOrigin_edict);
GetClientEyePosition(i, vecOrigin_edict);
if(GetClientTeam(i) != GetClientTeam(target))
{
TE_SetupGlowSprite(vecOrigin_edict, mdl, 0.1, 1.0, 255);
TE_SendToClient(client);
if(IsPointVisible(vecOrigin_center, vecOrigin_edict))
{
new Float:edict_distance = GetVectorDistance(vecOrigin_center, vecOrigin_edict);
if((edict_distance < distance) || (distance == -1.0))
{
distance = edict_distance;
closestEdict = i;
}
}
}
}
return closestEdict;
}
stock bool:IsPointVisible(const Float:start[3], const Float:end[3])
{
TR_TraceRayFilter(start, end, MASK_PLAYERSOLID, RayType_EndPoint, TraceEntityFilterStuff);
return TR_GetFraction() >= 0.9;
}
public bool:TraceEntityFilterStuff(entity, mask)
{
return entity > MaxClients;
}
Привет ребят помогите немного изменить плагин сейчас он сделан так что бы только когда в спектрах можно было включить вх а я хочу что бы он и в спектрах включался и когда админ мертвый сервер css steam
C-подобный:#include <sourcemod> #include <sdktools> #include <sdkhooks> #include <smlib> #pragma semicolon 1 new bool:Walling[MAXPLAYERS+1]; new Handle:cv_walltex; public Plugin:myinfo = { name = "[ANY] Wallhack For Specs", author = "Arthurdead", description = "Wallhack For Specs", version = "0.3", url = "http://steamcommunity.com/id/Arthurdead" } public OnPluginStart() { RegConsoleCmd("sm_wallhack", Command_Wallhack); cv_walltex = CreateConVar("sm_wallhack_tex", "ggwp/wh/redlight.vmt", "Wallhack Texture", 0|FCVAR_NOTIFY); HookEvent("player_spawn", Event_Spawn); } public Action:Command_Wallhack(client, args) { if(CheckCommandAccess(client, "sm_wallhack_access", ADMFLAG_GENERIC)) { if(GetClientTeam(client) == 1) { if(Walling[client] == false) { Walling[client] = true; PrintToChat(client, "Wallhack Enabled"); } else if(Walling[client] == true) { Walling[client] = false; PrintToChat(client, "Wallhack Disabled"); } } else ReplyToCommand(client, "[SM] You Must Be An Spectator To Use This Command"); } return Plugin_Handled; } public Action:Event_Spawn(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); SDKHook(client, SDKHook_PreThink, PreThinkHook); } public PreThinkHook(client) { if(IsValidClient(client)) { if(Walling[client] == true) { if(GetClientTeam(client) == 1) { decl Float:clientEyes[3]; GetClientEyePosition(client, clientEyes); Client_GetClosest(clientEyes, client); } } } } bool:IsValidClient( client ) { if(!(1 <= client <= MaxClients ) || !IsClientInGame(client)) return false; return true; } stock Client_GetClosest(Float:vecOrigin_center[3], const client) { decl Float:vecOrigin_edict[3]; new Float:distance = -1.0; new closestEdict = -1; new String:Tex[PLATFORM_MAX_PATH]; GetConVarString(cv_walltex, Tex, PLATFORM_MAX_PATH); new mdl = PrecacheModel(Tex); new target = Client_GetObserverTarget(client); for (new i = 1; i < MaxClients; ++i) { if(!IsClientInGame(i) || !IsPlayerAlive(i) || (i == client)) continue; GetEntPropVector(i, Prop_Data, "m_vecOrigin", vecOrigin_edict); GetClientEyePosition(i, vecOrigin_edict); if(GetClientTeam(i) != GetClientTeam(target)) { TE_SetupGlowSprite(vecOrigin_edict, mdl, 0.1, 1.0, 255); TE_SendToClient(client); if(IsPointVisible(vecOrigin_center, vecOrigin_edict)) { new Float:edict_distance = GetVectorDistance(vecOrigin_center, vecOrigin_edict); if((edict_distance < distance) || (distance == -1.0)) { distance = edict_distance; closestEdict = i; } } } } return closestEdict; } stock bool:IsPointVisible(const Float:start[3], const Float:end[3]) { TR_TraceRayFilter(start, end, MASK_PLAYERSOLID, RayType_EndPoint, TraceEntityFilterStuff); return TR_GetFraction() >= 0.9; } public bool:TraceEntityFilterStuff(entity, mask) { return entity > MaxClients; }
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <smlib>
#pragma semicolon 1
new bool:Walling[MAXPLAYERS+1];
new Handle:cv_walltex;
public Plugin:myinfo =
{
name = "[ANY] Wallhack For Specs",
author = "Arthurdead",
description = "Wallhack For Specs",
version = "0.3",
url = "http://steamcommunity.com/id/Arthurdead"
}
public OnPluginStart()
{
RegConsoleCmd("sm_wallhack", Command_Wallhack);
cv_walltex = CreateConVar("sm_wallhack_tex", "ggwp/wh/redlight.vmt", "Wallhack Texture", 0|FCVAR_NOTIFY);
HookEvent("player_spawn", Event_Spawn);
}
public Action:Command_Wallhack(client, args)
{
if(CheckCommandAccess(client, "sm_wallhack_access", ADMFLAG_GENERIC))
{
if(GetClientTeam(client) == 1 || !IsPlayerAlive(client))
{
if(Walling[client] == false)
{
Walling[client] = true;
PrintToChat(client, "Wallhack Enabled");
}
else if(Walling[client] == true)
{
Walling[client] = false;
PrintToChat(client, "Wallhack Disabled");
}
}
else ReplyToCommand(client, "[SM] You Must Be An Spectator To Use This Command");
}
return Plugin_Handled;
}
public Action:Event_Spawn(Handle:event, const String:name[], bool:dontBroadcast)
{
new client = GetClientOfUserId(GetEventInt(event, "userid"));
SDKHook(client, SDKHook_PreThink, PreThinkHook);
}
public PreThinkHook(client)
{
if(IsValidClient(client))
{
if(Walling[client] == true)
{
if(GetClientTeam(client) == 1)
{
decl Float:clientEyes[3];
GetClientEyePosition(client, clientEyes);
Client_GetClosest(clientEyes, client);
}
}
}
}
bool:IsValidClient( client )
{
if(!(1 <= client <= MaxClients ) || !IsClientInGame(client))
return false;
return true;
}
stock Client_GetClosest(Float:vecOrigin_center[3], const client)
{
decl Float:vecOrigin_edict[3];
new Float:distance = -1.0;
new closestEdict = -1;
new String:Tex[PLATFORM_MAX_PATH];
GetConVarString(cv_walltex, Tex, PLATFORM_MAX_PATH);
new mdl = PrecacheModel(Tex);
new target = Client_GetObserverTarget(client);
for (new i = 1; i < MaxClients; ++i)
{
if(!IsClientInGame(i) || !IsPlayerAlive(i) || (i == client))
continue;
GetEntPropVector(i, Prop_Data, "m_vecOrigin", vecOrigin_edict);
GetClientEyePosition(i, vecOrigin_edict);
if(GetClientTeam(i) != GetClientTeam(target))
{
TE_SetupGlowSprite(vecOrigin_edict, mdl, 0.1, 1.0, 255);
TE_SendToClient(client);
if(IsPointVisible(vecOrigin_center, vecOrigin_edict))
{
new Float:edict_distance = GetVectorDistance(vecOrigin_center, vecOrigin_edict);
if((edict_distance < distance) || (distance == -1.0))
{
distance = edict_distance;
closestEdict = i;
}
}
}
}
return closestEdict;
}
stock bool:IsPointVisible(const Float:start[3], const Float:end[3])
{
TR_TraceRayFilter(start, end, MASK_PLAYERSOLID, RayType_EndPoint, TraceEntityFilterStuff);
return TR_GetFraction() >= 0.9;
}
public bool:TraceEntityFilterStuff(entity, mask)
{
return entity > MaxClients;
}
Проверки на админа не хватаетC-подобный:#include <sourcemod> #include <sdktools> #include <sdkhooks> #include <smlib> #pragma semicolon 1 new bool:Walling[MAXPLAYERS+1]; new Handle:cv_walltex; public Plugin:myinfo = { name = "[ANY] Wallhack For Specs", author = "Arthurdead", description = "Wallhack For Specs", version = "0.3", url = "http://steamcommunity.com/id/Arthurdead" } public OnPluginStart() { RegConsoleCmd("sm_wallhack", Command_Wallhack); cv_walltex = CreateConVar("sm_wallhack_tex", "ggwp/wh/redlight.vmt", "Wallhack Texture", 0|FCVAR_NOTIFY); HookEvent("player_spawn", Event_Spawn); } public Action:Command_Wallhack(client, args) { if(CheckCommandAccess(client, "sm_wallhack_access", ADMFLAG_GENERIC)) { if(GetClientTeam(client) == 1 || !IsPlayerAlive(client)) { if(Walling[client] == false) { Walling[client] = true; PrintToChat(client, "Wallhack Enabled"); } else if(Walling[client] == true) { Walling[client] = false; PrintToChat(client, "Wallhack Disabled"); } } else ReplyToCommand(client, "[SM] You Must Be An Spectator To Use This Command"); } return Plugin_Handled; } public Action:Event_Spawn(Handle:event, const String:name[], bool:dontBroadcast) { new client = GetClientOfUserId(GetEventInt(event, "userid")); SDKHook(client, SDKHook_PreThink, PreThinkHook); } public PreThinkHook(client) { if(IsValidClient(client)) { if(Walling[client] == true) { if(GetClientTeam(client) == 1) { decl Float:clientEyes[3]; GetClientEyePosition(client, clientEyes); Client_GetClosest(clientEyes, client); } } } } bool:IsValidClient( client ) { if(!(1 <= client <= MaxClients ) || !IsClientInGame(client)) return false; return true; } stock Client_GetClosest(Float:vecOrigin_center[3], const client) { decl Float:vecOrigin_edict[3]; new Float:distance = -1.0; new closestEdict = -1; new String:Tex[PLATFORM_MAX_PATH]; GetConVarString(cv_walltex, Tex, PLATFORM_MAX_PATH); new mdl = PrecacheModel(Tex); new target = Client_GetObserverTarget(client); for (new i = 1; i < MaxClients; ++i) { if(!IsClientInGame(i) || !IsPlayerAlive(i) || (i == client)) continue; GetEntPropVector(i, Prop_Data, "m_vecOrigin", vecOrigin_edict); GetClientEyePosition(i, vecOrigin_edict); if(GetClientTeam(i) != GetClientTeam(target)) { TE_SetupGlowSprite(vecOrigin_edict, mdl, 0.1, 1.0, 255); TE_SendToClient(client); if(IsPointVisible(vecOrigin_center, vecOrigin_edict)) { new Float:edict_distance = GetVectorDistance(vecOrigin_center, vecOrigin_edict); if((edict_distance < distance) || (distance == -1.0)) { distance = edict_distance; closestEdict = i; } } } } return closestEdict; } stock bool:IsPointVisible(const Float:start[3], const Float:end[3]) { TR_TraceRayFilter(start, end, MASK_PLAYERSOLID, RayType_EndPoint, TraceEntityFilterStuff); return TR_GetFraction() >= 0.9; } public bool:TraceEntityFilterStuff(entity, mask) { return entity > MaxClients; }