Junior Member
Join Date: Jan 2019
Location: IASI
|
01-12-2019
, 11:33
Re: Plugin compile help
|
#7
|
Quote:
Originally Posted by Sincronic
Guys, i have this source and is a working plugin, i decompiled i changed something but now i can't compile it. I put the code.
Thanks
Code:
public PlVers:__version =
{
version = 5,
filevers = "1.7.2",
date = "05/07/2017",
time = "22:48:57"
};
new Float:NULL_VECTOR[3];
new String:NULL_STRING[4];
public Extension:__ext_core =
{
name = "Core",
file = "core",
autoload = 0,
required = 0,
};
new MaxClients;
public Extension:__ext_sdktools =
{
name = "SDKTools",
file = "sdktools.ext",
autoload = 1,
required = 1,
};
public Extension:__ext_sdkhooks =
{
name = "SDKHooks",
file = "sdkhooks.ext",
autoload = 1,
required = 1,
};
public Extension:__ext_cstrike =
{
name = "cstrike",
file = "games/game.cstrike.ext",
autoload = 0,
required = 1,
};
public Extension:__ext_topmenus =
{
name = "TopMenus",
file = "topmenus.ext",
autoload = 1,
required = 1,
};
public SharedPlugin:__pl_adminmenu =
{
name = "adminmenu",
file = "adminmenu.smx",
required = 1,
};
public Extension:__ext_cprefs =
{
name = "Client Preferences",
file = "clientprefs.ext",
autoload = 1,
required = 1,
};
public Plugin:myinfo =
{
name = "vip_ex",
description = "GUCCI LA VALOARE",
author = "HATTTRICK + GUCCI",
version = "1.0",
url = "OLDCS.LALEAGANE.RO"
};
new Handle:g_pTagsCookie;
new Handle:g_pSteams;
new Handle:g_pFlags;
new g_TagOption[129];
new bool:g_bVIP[129];
new bool:g_bAsk[129];
new bool:g_bEquipped[129];
new String:g_Flags[129][32];
new g_Time;
new bool:g_bOneAndOnly;
new bool:g_inGame[129];
public __ext_core_SetNTVOptional()
{
MarkNativeAsOptional("GetFeatureStatus");
MarkNativeAsOptional("RequireFeature");
MarkNativeAsOptional("AddCommandListener");
MarkNativeAsOptional("RemoveCommandListener");
MarkNativeAsOptional("BfWriteBool");
MarkNativeAsOptional("BfWriteByte");
MarkNativeAsOptional("BfWriteChar");
MarkNativeAsOptional("BfWriteShort");
MarkNativeAsOptional("BfWriteWord");
MarkNativeAsOptional("BfWriteNum");
MarkNativeAsOptional("BfWriteFloat");
MarkNativeAsOptional("BfWriteString");
MarkNativeAsOptional("BfWriteEntity");
MarkNativeAsOptional("BfWriteAngle");
MarkNativeAsOptional("BfWriteCoord");
MarkNativeAsOptional("BfWriteVecCoord");
MarkNativeAsOptional("BfWriteVecNormal");
MarkNativeAsOptional("BfWriteAngles");
MarkNativeAsOptional("BfReadBool");
MarkNativeAsOptional("BfReadByte");
MarkNativeAsOptional("BfReadChar");
MarkNativeAsOptional("BfReadShort");
MarkNativeAsOptional("BfReadWord");
MarkNativeAsOptional("BfReadNum");
MarkNativeAsOptional("BfReadFloat");
MarkNativeAsOptional("BfReadString");
MarkNativeAsOptional("BfReadEntity");
MarkNativeAsOptional("BfReadAngle");
MarkNativeAsOptional("BfReadCoord");
MarkNativeAsOptional("BfReadVecCoord");
MarkNativeAsOptional("BfReadVecNormal");
MarkNativeAsOptional("BfReadAngles");
MarkNativeAsOptional("BfGetNumBytesLeft");
MarkNativeAsOptional("BfWrite.WriteBool");
MarkNativeAsOptional("BfWrite.WriteByte");
MarkNativeAsOptional("BfWrite.WriteChar");
MarkNativeAsOptional("BfWrite.WriteShort");
MarkNativeAsOptional("BfWrite.WriteWord");
MarkNativeAsOptional("BfWrite.WriteNum");
MarkNativeAsOptional("BfWrite.WriteFloat");
MarkNativeAsOptional("BfWrite.WriteString");
MarkNativeAsOptional("BfWrite.WriteEntity");
MarkNativeAsOptional("BfWrite.WriteAngle");
MarkNativeAsOptional("BfWrite.WriteCoord");
MarkNativeAsOptional("BfWrite.WriteVecCoord");
MarkNativeAsOptional("BfWrite.WriteVecNormal");
MarkNativeAsOptional("BfWrite.WriteAngles");
MarkNativeAsOptional("BfRead.ReadBool");
MarkNativeAsOptional("BfRead.ReadByte");
MarkNativeAsOptional("BfRead.ReadChar");
MarkNativeAsOptional("BfRead.ReadShort");
MarkNativeAsOptional("BfRead.ReadWord");
MarkNativeAsOptional("BfRead.ReadNum");
MarkNativeAsOptional("BfRead.ReadFloat");
MarkNativeAsOptional("BfRead.ReadString");
MarkNativeAsOptional("BfRead.ReadEntity");
MarkNativeAsOptional("BfRead.ReadAngle");
MarkNativeAsOptional("BfRead.ReadCoord");
MarkNativeAsOptional("BfRead.ReadVecCoord");
MarkNativeAsOptional("BfRead.ReadVecNormal");
MarkNativeAsOptional("BfRead.ReadAngles");
MarkNativeAsOptional("BfRead.GetNumBytesLeft");
MarkNativeAsOptional("PbReadInt");
MarkNativeAsOptional("PbReadFloat");
MarkNativeAsOptional("PbReadBool");
MarkNativeAsOptional("PbReadString");
MarkNativeAsOptional("PbReadColor");
MarkNativeAsOptional("PbReadAngle");
MarkNativeAsOptional("PbReadVector");
MarkNativeAsOptional("PbReadVector2D");
MarkNativeAsOptional("PbGetRepeatedFieldCount");
MarkNativeAsOptional("PbSetInt");
MarkNativeAsOptional("PbSetFloat");
MarkNativeAsOptional("PbSetBool");
MarkNativeAsOptional("PbSetString");
MarkNativeAsOptional("PbSetColor");
MarkNativeAsOptional("PbSetAngle");
MarkNativeAsOptional("PbSetVector");
MarkNativeAsOptional("PbSetVector2D");
MarkNativeAsOptional("PbAddInt");
MarkNativeAsOptional("PbAddFloat");
MarkNativeAsOptional("PbAddBool");
MarkNativeAsOptional("PbAddString");
MarkNativeAsOptional("PbAddColor");
MarkNativeAsOptional("PbAddAngle");
MarkNativeAsOptional("PbAddVector");
MarkNativeAsOptional("PbAddVector2D");
MarkNativeAsOptional("PbRemoveRepeatedFieldValue");
MarkNativeAsOptional("PbReadMessage");
MarkNativeAsOptional("PbReadRepeatedMessage");
MarkNativeAsOptional("PbAddMessage");
MarkNativeAsOptional("Protobuf.ReadInt");
MarkNativeAsOptional("Protobuf.ReadFloat");
MarkNativeAsOptional("Protobuf.ReadBool");
MarkNativeAsOptional("Protobuf.ReadString");
MarkNativeAsOptional("Protobuf.ReadColor");
MarkNativeAsOptional("Protobuf.ReadAngle");
MarkNativeAsOptional("Protobuf.ReadVector");
MarkNativeAsOptional("Protobuf.ReadVector2D");
MarkNativeAsOptional("Protobuf.GetRepeatedFieldCount");
MarkNativeAsOptional("Protobuf.SetInt");
MarkNativeAsOptional("Protobuf.SetFloat");
MarkNativeAsOptional("Protobuf.SetBool");
MarkNativeAsOptional("Protobuf.SetString");
MarkNativeAsOptional("Protobuf.SetColor");
MarkNativeAsOptional("Protobuf.SetAngle");
MarkNativeAsOptional("Protobuf.SetVector");
MarkNativeAsOptional("Protobuf.SetVector2D");
MarkNativeAsOptional("Protobuf.AddInt");
MarkNativeAsOptional("Protobuf.AddFloat");
MarkNativeAsOptional("Protobuf.AddBool");
MarkNativeAsOptional("Protobuf.AddString");
MarkNativeAsOptional("Protobuf.AddColor");
MarkNativeAsOptional("Protobuf.AddAngle");
MarkNativeAsOptional("Protobuf.AddVector");
MarkNativeAsOptional("Protobuf.AddVector2D");
MarkNativeAsOptional("Protobuf.RemoveRepeatedFieldValue");
MarkNativeAsOptional("Protobuf.ReadMessage");
MarkNativeAsOptional("Protobuf.ReadRepeatedMessage");
MarkNativeAsOptional("Protobuf.AddMessage");
VerifyCoreVersion();
return 0;
}
ExplodeString(String:text[], String:split[], String:buffers[][], maxStrings, maxStringLength, bool:copyRemainder)
{
new reloc_idx;
new idx;
new total;
new var1;
if (maxStrings < 1 || !split[0])
{
return 0;
}
while ((idx = SplitString(text[reloc_idx], split, buffers[total], maxStringLength)) != -1)
{
reloc_idx = idx + reloc_idx;
total++;
if (maxStrings == total)
{
if (copyRemainder)
{
strcopy(buffers[total + -1], maxStringLength, text[reloc_idx - idx]);
}
return total;
}
}
total++;
strcopy(buffers[total], maxStringLength, text[reloc_idx]);
return total;
}
PrintToChatAll(String:format[])
{
decl String:buffer[192];
new i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
SetGlobalTransTarget(i);
VFormat(buffer, 192, format, 2);
PrintToChat(i, "%s", buffer);
}
i++;
}
return 0;
}
PrintHintTextToAll(String:format[])
{
decl String:buffer[192];
new i = 1;
while (i <= MaxClients)
{
if (IsClientInGame(i))
{
SetGlobalTransTarget(i);
VFormat(buffer, 192, format, 2);
PrintHintText(i, "%s", buffer);
}
i++;
}
return 0;
}
hCSGO_MakeHtmlSafe(String:Buffer[], Size)
{
ReplaceString(Buffer, Size, "<", "(", true);
ReplaceString(Buffer, Size, ">", ")", true);
return strlen(Buffer);
}
hCSGO_FixFileLine(String:FileLine[], Size, Times)
{
static m_Iterator;
m_Iterator = 0;
while (m_Iterator < Times)
{
ReplaceString(FileLine, Size, "\x09", " ", true);
m_Iterator += 1;
}
m_Iterator = 0;
while (m_Iterator < Times)
{
ReplaceString(FileLine, Size, " ", " ", true);
m_Iterator += 1;
}
return strlen(FileLine);
}
hCSGO_PureChatCommand(String:Input[], String:Output[], Size)
{
static m_Length;
static m_Iterator;
m_Iterator = 0;
m_Length = 0;
Output[0] = MissingTAG:0;
while (strlen(Input) > m_Iterator)
{
new var1;
if (Input[m_Iterator] == '!' || Input[m_Iterator] == '/' || IsCharAlpha(Input[m_Iterator]) || IsCharNumeric(Input[m_Iterator]))
{
m_Length = Format(Output, Size, "%s%c", Output, Input[m_Iterator]);
}
m_Iterator += 1;
}
return m_Length;
}
hCSGO_ClampInt(Val, Min, Max)
{
if (Val < Min)
{
return Min;
}
if (Val > Max)
{
return Max;
}
return Val;
}
hCSGO_CountTeam(Team, bool:bOnlyAlive)
{
static m_Count;
static m_Player;
m_Player = 1;
m_Count = 0;
while (m_Player <= MaxClients)
{
new var1;
if (!IsClientInGame(m_Player) || Team == GetClientTeam(m_Player))
{
}
else
{
new var2;
if (!(bOnlyAlive && !IsPlayerAlive(m_Player)))
{
m_Count += 1;
}
}
m_Player += 1;
}
return m_Count;
}
hCSGO_GetOnePlayerTeam(Team, bool:bOnlyAlive)
{
static playersSize;
static playersTable[65];
static m_Player;
m_Player = 1;
playersSize = 0;
while (m_Player <= MaxClients)
{
new var1;
if (!IsClientInGame(m_Player) || Team == GetClientTeam(m_Player))
{
}
else
{
new var2;
if (!(bOnlyAlive && !IsPlayerAlive(m_Player)))
{
playersSize += 1;
playersTable[playersSize] = m_Player;
}
}
m_Player += 1;
}
playersTable[playersSize] = 0;
if (playersSize)
{
return playersTable[GetRandomInt(0, playersSize + -1)];
}
return -1;
}
bool:hCSGO_IsClientAdmin(Id)
{
static m_Flags;
m_Flags = GetUserFlagBits(Id);
new var1;
if (m_Flags & 1 || m_Flags & 512 || m_Flags & 4 || m_Flags & 16384)
{
return true;
}
return false;
}
hCSGO_ExtractSteamID(String:Input[], String:Output[], Size)
{
static String:m_Patterns[4][48] =
{
"STEAM_0:0:",
"STEAM_0:1:",
"STEAM_1:0:",
"STEAM_1:1:"
};
static m_Length;
static m_Iterator;
m_Iterator = 0;
m_Length = FormatEx(Output, Size, Input);
while (m_Iterator < 4)
{
m_Length = ReplaceString(Output, Size, m_Patterns[m_Iterator], "", false);
m_Iterator += 1;
}
return m_Length;
}
hCSGO_ClearLine(String:Line[], Times)
{
static m_Length;
static m_Iterator;
m_Iterator = 0;
m_Length = strlen(Line);
while (m_Iterator < Times)
{
StripQuotes(Line);
m_Length = TrimString(Line);
m_Iterator += 1;
}
return m_Length;
}
bool:hCSGO_IsWarmup()
{
new var1;
if (GameRules_GetProp("m_bWarmupPeriod", 4, 0))
{
var1 = true;
}
else
{
var1 = false;
}
return var1;
}
public APLRes:AskPluginLoad2(Handle:pMyself, bool:bLate, String:Error[], maxLen)
{
CreateNative("ReloadVIPs", __ReloadVIPs);
CreateNative("IsClientVIP", __IsClientVIP);
RegPluginLibrary("vip_ex");
return APLRes:0;
}
public __IsClientVIP(Handle:pPlugin, Params)
{
new var1;
if (g_bVIP[GetNativeCell(1)])
{
var1 = 1;
}
else
{
var1 = 0;
}
return var1;
}
public __ReloadVIPs(Handle:pPlugin, Params)
{
static Iterator;
static Size;
static Player;
static String:Steam[32];
static String:Buffer[1024];
static String:Buffers[4][256];
static Handle:pFile;
ClearArray(g_pSteams);
ClearArray(g_pFlags);
Player = 1;
while (Player <= MaxClients)
{
if (g_bVIP[Player])
{
g_Flags[Player][0] = MissingTAG:0;
g_bVIP[Player] = 0;
}
Player += 1;
}
BuildPath(PathType:0, Buffer, 1024, "configs/vips.txt");
if (!FileExists(Buffer, false, "GAME"))
{
return 0;
}
pFile = OpenFile(Buffer, "r", false, "GAME");
if (!pFile)
{
return 0;
}
while (!IsEndOfFile(pFile) && ReadFileLine(pFile, Buffer, 1024))
{
TrimString(Buffer);
hCSGO_FixFileLine(Buffer, 1024, 32);
new var3;
if (!(strlen(Buffer) < 1 || Buffer[0] == ';' || Buffer[0] == '#' || (Buffer[0] == '/' && Buffer[0] == '/')))
{
Size = ExplodeString(Buffer, " ", Buffers, 4, 256, false);
if (Size >= 2)
{
new var4 = Buffers;
hCSGO_ClearLine(var4[0][var4], 4);
new var5 = Buffers;
new var6 = Buffers;
hCSGO_ExtractSteamID(var6[0][var6], var5[0][var5], 256);
new var7 = Buffers;
PushArrayString(g_pSteams, var7[0][var7]);
hCSGO_ClearLine(Buffers[1], 4);
PushArrayString(g_pFlags, Buffers[1]);
}
}
}
CloseHandle(pFile);
Size = GetArraySize(g_pSteams);
if (0 < Size)
{
Iterator = 0;
while (Iterator < Size)
{
GetArrayString(g_pSteams, Iterator, Buffer, 1024);
Player = 1;
while (Player <= MaxClients)
{
if (g_inGame[Player])
{
GetClientAuthId(Player, AuthIdType:0, Steam, 32, true);
if (StrContains(Steam, Buffer, false) != -1)
{
g_bVIP[Player] = 1;
GetArrayString(g_pFlags, Iterator, g_Flags[Player], 32);
PrintToChat(Player, "*\x04 VIPs\x01 were reloaded by the\x03 owner\x01.");
PrintToChat(Player, "* You are\x04 VIP\x01 and you can type\x03 !vip\x01.");
}
}
Player += 1;
}
Iterator += 1;
}
}
return 1;
}
public void:OnClientCookiesCached(Client)
{
static String:Data[8];
GetClientCookie(Client, g_pTagsCookie, Data, 8);
if (strlen(Data) < 1)
{
g_TagOption[Client] = 0;
g_bAsk[Client] = 1;
}
else
{
g_TagOption[Client] = hCSGO_ClampInt(StringToInt(Data, 10), 0, 4);
g_bAsk[Client] = 0;
}
return void:0;
}
public void:OnRoundStart(Handle:pHndl, String:Name[], bool:bNoBCast)
{
static Iter;
Iter = 1;
while (Iter <= MaxClients)
{
g_bEquipped[Iter] = 0;
Iter += 1;
}
g_bOneAndOnly = false;
return void:0;
}
public void:OnPluginStart()
{
HookEvent("round_start", OnRoundStart, EventHookMode:1);
HookEvent("player_spawn", OnSpawn, EventHookMode:1);
HookEvent("player_death", OnDeath, EventHookMode:1);
RegConsoleCmd("say", CommandSay, "", 0);
RegConsoleCmd("say_team", CommandSay, "", 0);
g_pSteams = CreateArray(32, 0);
g_pFlags = CreateArray(32, 0);
g_pTagsCookie = RegClientCookie("VipTags", "Stores the VIP tag setting.", CookieAccess:2);
CreateTimer(GetRandomFloat(5.0, 10.0) * 60.0, TimerAd, any:0, 1);
CreateTimer(2.25, TimerReload, any:0, 1);
return void:0;
}
public Action:OnWpnReload(Weapon)
{
static Owner;
Owner = GetEntPropEnt(Weapon, PropType:0, "m_hOwner", 0);
new var1;
if (Owner != -1 && g_bVIP[Owner] && StrContains(g_Flags[Owner], "U", false) != -1)
{
return Action:4;
}
return Action:0;
}
public void:OnEntityCreated(Entity, String:Class[])
{
new var1;
if (Entity != -1 && StrContains(Class, "Weapon_", false) != -1 && StrContains(Class, "Knife", false) == -1 && StrContains(Class, "Bayonet", false) == -1 && StrContains(Class, "Taser", false) == -1 && StrContains(Class, "Zeus", false) == -1 && StrContains(Class, "Nade", false) == -1 && StrContains(Class, "Flash", false) == -1 && StrContains(Class, "C4", false) == -1 && StrContains(Class, "Bomb", false) == -1 && StrContains(Class, "World", false) == -1)
{
SDKHook(Entity, SDKHookType:36, OnWpnReload);
}
return void:0;
}
public Action:TimerAd(Handle:pTimer)
{
static Plr;
switch (GetRandomInt(0, 1))
{
case 0:
{
Plr = 1;
while (Plr <= MaxClients)
{
new var2;
if (g_inGame[Plr] && !IsPlayerAlive(Plr))
{
PrintHintText(Plr, "<b><font color='#FF0000'>eLeague</font></b>eLeague<b><font color='#00FF00'>5€</font></b>.");
}
Plr += 1;
}
}
case 1:
{
Plr = 1;
while (Plr <= MaxClients)
{
new var1;
if (g_inGame[Plr] && !IsPlayerAlive(Plr))
{
PrintHintText(Plr, "<b><font color='#FF0000'>Tag Settings?</font></b> Type <b><font color='#00FF00'>!vip</font></b>.");
}
Plr += 1;
}
}
default:
{
}
}
return Action:0;
}
public void:OnMapStart()
{
static Size;
static String:Buffer[1024];
static Handle:pFile;
static String:Buffers[4][256];
g_Time = 0;
ClearArray(g_pSteams);
ClearArray(g_pFlags);
BuildPath(PathType:0, Buffer, 1024, "configs/vips.txt");
if (!FileExists(Buffer, false, "GAME"))
{
return void:0;
}
pFile = OpenFile(Buffer, "r", false, "GAME");
if (!pFile)
{
return void:0;
}
while (!IsEndOfFile(pFile) && ReadFileLine(pFile, Buffer, 1024))
{
TrimString(Buffer);
hCSGO_FixFileLine(Buffer, 1024, 32);
new var3;
if (!(strlen(Buffer) < 1 || Buffer[0] == ';' || Buffer[0] == '#' || (Buffer[0] == '/' && Buffer[0] == '/')))
{
Size = ExplodeString(Buffer, " ", Buffers, 4, 256, false);
if (Size >= 2)
{
new var4 = Buffers;
hCSGO_ClearLine(var4[0][var4], 4);
new var5 = Buffers;
new var6 = Buffers;
hCSGO_ExtractSteamID(var6[0][var6], var5[0][var5], 256);
new var7 = Buffers;
PushArrayString(g_pSteams, var7[0][var7]);
hCSGO_ClearLine(Buffers[1], 4);
PushArrayString(g_pFlags, Buffers[1]);
}
}
}
CloseHandle(pFile);
return void:0;
}
public void:OnClientDisconnect(Id)
{
if (0 < Id)
{
g_inGame[Id] = 0;
g_bVIP[Id] = 0;
g_bAsk[Id] = 0;
g_TagOption[Id] = 0;
}
return void:0;
}
public void:OnClientPutInServer(Id)
{
static Iter;
static Size;
static String:Object[32];
static String:Steam[32];
if (0 < Id)
{
g_inGame[Id] = 0;
g_bVIP[Id] = 0;
g_inGame[Id] = 1;
Size = GetArraySize(g_pSteams);
if (0 < Size)
{
GetClientAuthId(Id, AuthIdType:0, Steam, 32, true);
Iter = 0;
while (Iter < Size)
{
GetArrayString(g_pSteams, Iter, Object, 32);
if (StrContains(Steam, Object, false) != -1)
{
GetArrayString(g_pFlags, Iter, g_Flags[Id], 32);
CreateTimer(GetRandomFloat(2.75, 4.5), TimerVIPJoined, Id, 2);
g_bVIP[Id] = 1;
}
Iter += 1;
}
}
if (g_bAsk[Id])
{
CreateTimer(GetRandomFloat(18.5, 27.5), Ask, Id, 2);
}
}
return void:0;
}
public Action:CommandSay(Client, Args)
{
static String:Command[32];
static String:RawCommand[32];
new var1;
if (Client > 0 && g_inGame[Client])
{
GetCmdArgString(RawCommand, 32);
hCSGO_PureChatCommand(RawCommand, Command, 32);
if (0 < strlen(Command))
{
new var2;
if (strcmp(Command, "VIP", false) && strcmp(15152 + 1, "VIP", false) && strcmp(Command, "TAG", false) && strcmp(15152 + 1, "TAG", false))
{
g_bAsk[Client] = 1;
CreateTimer(GetRandomFloat(0.1, 0.3), Ask, Client, 2);
}
}
}
return Action:0;
}
public Action:Ask(Handle:pTimer, any:Id)
{
static Handle:pPanel;
static bool:bAdmin;
new var1;
if (Id > any:0 && g_inGame[Id] && g_bAsk[Id])
{
pPanel = CreatePanel(Handle:0);
if (pPanel)
{
bAdmin = hCSGO_IsClientAdmin(Id);
SetPanelKeys(pPanel, 1023);
SetPanelTitle(pPanel, "The Type of Tag in The Scores Table?", false);
DrawPanelText(pPanel, " \n");
new var2;
if (g_bVIP[Id] && bAdmin)
{
DrawPanelText(pPanel, "1. Only VIP★ Tag");
DrawPanelText(pPanel, "2. VIP★ & Admin Tag");
DrawPanelText(pPanel, "3. Only Admin Tag");
DrawPanelText(pPanel, "4. No Tag At All (Do Not Change)");
}
else
{
new var3;
if (g_bVIP[Id] && !bAdmin)
{
DrawPanelText(pPanel, "1. Only VIP★ Tag");
DrawPanelText(pPanel, "2. No Tag At All (Do Not Change)");
}
new var4;
if (!g_bVIP[Id] && bAdmin)
{
DrawPanelText(pPanel, "1. Only Admin Tag");
DrawPanelText(pPanel, "2. No Tag At All (Do Not Change)");
}
DrawPanelText(pPanel, "1. No Tag At All (Do Not Change)");
}
SendPanelToClient(pPanel, Id, AskPanel, 0);
CloseHandle(pPanel);
}
}
return Action:0;
}
public AskPanel(Handle:pPanel, MenuAction:pAction, Client, Selection)
{
static String:Option[8];
static bool:bAdmin;
new var1;
if (pAction == MenuAction:4 && g_inGame[Client] && g_bAsk[Client])
{
bAdmin = hCSGO_IsClientAdmin(Client);
new var2;
if (g_bVIP[Client] && bAdmin)
{
switch (Selection)
{
case 1:
{
g_TagOption[Client] = 1;
g_bAsk[Client] = 0;
IntToString(g_TagOption[Client], Option, 8);
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 Only VIP★ Tag\x01.");
}
case 2:
{
g_TagOption[Client] = 3;
g_bAsk[Client] = 0;
IntToString(g_TagOption[Client], Option, 8);
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 VIP★ & Admin Tag\x01.");
}
case 3:
{
g_TagOption[Client] = 2;
g_bAsk[Client] = 0;
IntToString(g_TagOption[Client], Option, 8);
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 Only Admin Tag\x01.");
}
case 4:
{
g_TagOption[Client] = 4;
g_bAsk[Client] = 0;
IntToString(g_TagOption[Client], Option, 8);
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 No Tag At All (Do Not Change)\x01.");
PrintToChat(Client, ">> You might need to\x04 Re-Try Connection\x01 to get rid of it.");
}
default:
{
}
}
}
new var3;
if (g_bVIP[Client] && !bAdmin)
{
switch (Selection)
{
case 1:
{
g_TagOption[Client] = 1;
g_bAsk[Client] = 0;
IntToString(g_TagOption[Client], Option, 8);
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 Only VIP★ Tag\x01.");
}
case 2:
{
g_TagOption[Client] = 4;
g_bAsk[Client] = 0;
IntToString(g_TagOption[Client], Option, 8);
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 No Tag At All (Do Not Change)\x01.");
PrintToChat(Client, ">> You might need to\x04 Re-Try Connection\x01 to get rid of it.");
}
default:
{
}
}
}
new var4;
if (!g_bVIP[Client] && bAdmin)
{
switch (Selection)
{
case 1:
{
g_TagOption[Client] = 2;
g_bAsk[Client] = 0;
IntToString(g_TagOption[Client], Option, 8);
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 Only Admin Tag\x01.");
}
case 2:
{
g_TagOption[Client] = 4;
g_bAsk[Client] = 0;
IntToString(g_TagOption[Client], Option, 8);
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 No Tag At All (Do Not Change)\x01.");
PrintToChat(Client, ">> You might need to\x04 Re-Try Connection\x01 to get rid of it.");
}
default:
{
}
}
}
switch (Selection)
{
case 1:
{
g_TagOption[Client] = 4;
g_bAsk[Client] = 0;
IntToString(g_TagOption[Client], Option, 8);
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 No Tag At All (Do Not Change)\x01.");
}
default:
{
}
}
}
return 0;
}
public Action:TimerReload(Handle:pTimer)
{
static Flags;
static Client;
static Weapon;
static String:Class[32];
static bool:bAdmin;
Client = 1;
while (Client <= MaxClients)
{
new var2;
if (!g_inGame[Client] || (!hCSGO_IsClientAdmin(Client) && !g_bVIP[Client]))
{
}
else
{
new var3;
if (g_TagOption[Client] && g_TagOption[Client] != 4 && !g_bAsk[Client])
{
bAdmin = hCSGO_IsClientAdmin(Client);
new var4;
if (g_bVIP[Client] && g_TagOption[Client] == 1)
{
CS_SetClientClanTag(Client, "VIP★");
}
new var5;
if (bAdmin && g_TagOption[Client] == 2)
{
Flags = GetUserFlagBits(Client);
if (Flags & 16384)
{
CS_SetClientClanTag(Client, "Owner");
}
if (Flags & 32768)
{
CS_SetClientClanTag(Client, "Co-Owner");
}
if (Flags & 65536)
{
CS_SetClientClanTag(Client, "Moderator");
}
if (Flags & 131072)
{
CS_SetClientClanTag(Client, "Administrator");
}
if (Flags & 262144)
{
CS_SetClientClanTag(Client, "Helper");
}
if (Flags & 524288)
{
CS_SetClientClanTag(Client, "YouTube");
}
if (Flags & 1048576)
{
CS_SetClientClanTag(Client, "Legend");
}
}
new var6;
if (bAdmin && g_bVIP[Client] && g_TagOption[Client] == 3)
{
Flags = GetUserFlagBits(Client);
if (Flags & 16384)
{
CS_SetClientClanTag(Client, "VIP★ Owner");
}
if (Flags & 32768)
{
CS_SetClientClanTag(Client, "VIP★ Co-Owner");
}
if (Flags & 65536)
{
CS_SetClientClanTag(Client, "VIP★ Mod");
}
if (Flags & 131072)
{
CS_SetClientClanTag(Client, "VIP★ Admin");
}
if (Flags & 262144)
{
CS_SetClientClanTag(Client, "VIP★ Helper");
}
if (Flags & 524288)
{
CS_SetClientClanTag(Client, "VIP★ YouTube");
}
if (Flags & 1048576)
{
CS_SetClientClanTag(Client, "VIP★ Legend");
}
}
}
new var7;
if (g_bVIP[Client] && StrContains(g_Flags[Client], "U", false) != -1 && IsPlayerAlive(Client))
{
Weapon = GetEntPropEnt(Client, PropType:0, "m_hActiveWeapon", 0);
new var8;
if (Weapon != -1 && GetEdictClassname(Weapon, Class, 32))
{
new var9;
if (StrContains(Class, "Knife", false) == -1 && StrContains(Class, "Taser", false) == -1 && StrContains(Class, "Nade", false) == -1 && StrContains(Class, "Flash", false) == -1 && StrContains(Class, "Bayonet", false) == -1 && StrContains(Class, "Smoke", false) == -1 && StrContains(Class, "Incendiary", false) == -1 && StrContains(Class, "Molotov", false) == -1 && StrContains(Class, "Kit", false) == -1 && StrContains(Class, "Defuse", false) == -1 && StrContains(Class, "Projectile", false) == -1 && StrContains(Class, "Bang", false) == -1 && StrContains(Class, "Bomb", false) == -1 && StrContains(Class, "C4", false) == -1 && StrContains(Class, "Zeus", false) == -1 && StrContains(Class, "Decoy", false) == -1)
{
SetEntProp(Weapon, PropType:0, "m_iClip1", any:32, 4, 0);
SetEntProp(Weapon, PropType:0, "m_iClip2", any:32, 4, 0);
}
}
}
}
Client += 1;
}
return Action:0;
}
public Action:TimerVIPJoined(Handle:pTimer, any:Client)
{
static String:Name[32];
new var1;
if (g_bVIP[Client] && g_inGame[Client])
{
GetClientName(Client, Name, 32);
hCSGO_MakeHtmlSafe(Name, 32);
PrintHintTextToAll("<b><font color='#FF0000'>VIP</font></b> <font color='#00FF00'>%s</font> <font color='#FFFFFF'>joined!</font>", Name);
}
return Action:0;
}
public void:OnDeath(Handle:pEvent, String:myName[], bool:bNoBroadcast)
{
static Gained;
static newHealth;
static Health;
static Killer;
static Client;
static bool:bWarmup;
Client = GetClientOfUserId(GetEventInt(pEvent, "userid", 0));
Killer = GetClientOfUserId(GetEventInt(pEvent, "attacker", 0));
bWarmup = hCSGO_IsWarmup();
new var1;
if (Killer != Client && Client > 0 && Killer > 0 && g_bVIP[Killer] && IsPlayerAlive(Killer) && StrContains(g_Flags[Killer], "H", false) != -1 && !bWarmup)
{
Health = GetClientHealth(Killer);
if (0 < Health)
{
newHealth = hCSGO_ClampInt(Health + 5, 6, 100);
Gained = newHealth - Health;
if (Gained)
{
SetEntProp(Killer, PropType:0, "m_iHealth", newHealth, 4, 0);
PrintHintText(Killer, "<b><font color='#FF0000'>+%d</font></b> <font color='#00FF00'>HP</font> <font color='#FFFFFF'>GAINED!</font>", Gained);
}
}
}
if (!bWarmup)
{
CreateTimer(GetRandomFloat(0.05, 0.105), TimerShowInfo, any:0, 2);
}
return void:0;
}
public Action:TimerShowInfo(Handle:pTimer)
{
static Time;
static CTPlayer;
static TPlayer;
static CT;
static T;
static String:enemyName[32];
static String:Name[32];
Time = GetTime({0,0});
T = hCSGO_CountTeam(2, true);
CT = hCSGO_CountTeam(3, true);
new var1;
if (T == 1 && CT > 0)
{
TPlayer = hCSGO_GetOnePlayerTeam(2, true);
if (TPlayer != -1)
{
GetClientName(TPlayer, Name, 32);
if (CT > 1)
{
if (g_Time < Time)
{
if (!g_bOneAndOnly)
{
g_bOneAndOnly = true;
}
PrintToChatAll("*\x07 %s\x01 (\x04%d HP\x01) against\x0B %d CT", Name, GetClientHealth(TPlayer), CT);
g_Time = Time + 1;
}
}
CTPlayer = hCSGO_GetOnePlayerTeam(3, true);
if (CTPlayer != -1)
{
GetClientName(CTPlayer, enemyName, 32);
PrintToChatAll("*\x07 %s\x01 (\x04%d HP\x01) against\x0B %s\x01 (\x04%d HP\x01)", Name, GetClientHealth(TPlayer), enemyName, GetClientHealth(CTPlayer));
}
}
}
else
{
new var2;
if (CT == 1 && T > 0)
{
CTPlayer = hCSGO_GetOnePlayerTeam(3, true);
if (CTPlayer != -1)
{
GetClientName(CTPlayer, Name, 32);
if (T > 1)
{
if (g_Time < Time)
{
if (!g_bOneAndOnly)
{
g_bOneAndOnly = true;
}
PrintToChatAll("*\x0B %s\x01 (\x04%d HP\x01) against\x07 %d T", Name, GetClientHealth(CTPlayer), T);
g_Time = Time + 1;
}
}
TPlayer = hCSGO_GetOnePlayerTeam(2, true);
if (TPlayer != -1)
{
GetClientName(TPlayer, enemyName, 32);
PrintToChatAll("*\x0B %s\x01 (\x04%d HP\x01) against\x07 %s\x01 (\x04%d HP\x01)", Name, GetClientHealth(CTPlayer), enemyName, GetClientHealth(TPlayer));
}
}
}
}
return Action:0;
}
public void:OnSpawn(Handle:pEvent, String:myName[], bool:bNoBroadcast)
{
static Client;
Client = GetClientOfUserId(GetEventInt(pEvent, "userid", 0));
new var1;
if (Client > 0 && g_bVIP[Client] && g_inGame[Client] && IsPlayerAlive(Client))
{
CreateTimer(0.275, EquipClient, Client, 2);
}
return void:0;
}
public Action:EquipClient(Handle:pTimer, any:Client)
{
static Team;
new var1;
if (!g_bEquipped[Client] && g_bVIP[Client] && g_inGame[Client] && IsPlayerAlive(Client))
{
Team = GetClientTeam(Client);
switch (GetRandomInt(0, 1))
{
case 0:
{
if (StrContains(g_Flags[Client], "G", false) != -1)
{
GivePlayerItem(Client, "weapon_hegrenade", 0);
}
if (StrContains(g_Flags[Client], "I", false) != -1)
{
new var3;
if (Team == 2)
{
var3[0] = 17124;
}
else
{
var3[0] = 17140;
}
GivePlayerItem(Client, var3, 0);
}
if (StrContains(g_Flags[Client], "S", false) != -1)
{
GivePlayerItem(Client, "weapon_smokegrenade", 0);
}
if (StrContains(g_Flags[Client], "F", false) != -1)
{
GivePlayerItem(Client, "weapon_flashbang", 0);
}
}
case 1:
{
if (StrContains(g_Flags[Client], "I", false) != -1)
{
new var2;
if (Team == 2)
{
var2[0] = 17212;
}
else
{
var2[0] = 17228;
}
GivePlayerItem(Client, var2, 0);
}
if (StrContains(g_Flags[Client], "G", false) != -1)
{
GivePlayerItem(Client, "weapon_hegrenade", 0);
}
if (StrContains(g_Flags[Client], "S", false) != -1)
{
GivePlayerItem(Client, "weapon_smokegrenade", 0);
}
if (StrContains(g_Flags[Client], "F", false) != -1)
{
GivePlayerItem(Client, "weapon_flashbang", 0);
}
}
default:
{
}
}
new var4;
if (Team == 3 && StrContains(g_Flags[Client], "D", false) != -1)
{
GivePlayerItem(Client, "item_defuser", 0);
}
if (StrContains(g_Flags[Client], "A", false) != -1)
{
SetEntProp(Client, PropType:0, "m_ArmorValue", any:100, 4, 0);
SetEntProp(Client, PropType:0, "m_bHasHelmet", any:1, 4, 0);
}
g_bEquipped[Client] = 1;
}
return Action:0;
}
|
**********************************
That's the source
**********************************
Code:
#include <hattrick_csgo>
#include <clientprefs>
enum
{
TagInvalid = 0,
TagOnlyVIP,
TagOnlyAdmin,
TagBoth,
TagNone
};
Handle g_pTagsCookie = INVALID_HANDLE;
Handle g_pSteams = INVALID_HANDLE;
Handle g_pFlags = INVALID_HANDLE;
int g_TagOption[128 + 1] = { TagInvalid, ... };
bool g_bVIP[128 + 1] = { false, ... };
bool g_bAsk[128 + 1] = { false, ... };
bool g_bEquipped[128 + 1] = { false, ... };
char g_Flags[128 + 1][MAX_NAME_LENGTH];
int g_Time = 0;
bool g_bOneAndOnly = false;
bool g_inGame[128 + 1] = { false, ... };
public APLRes AskPluginLoad2(Handle pMyself, bool bLate, char[] Error, int maxLen)
{
CreateNative("ReloadVIPs", __ReloadVIPs);
CreateNative("IsClientVIP", __IsClientVIP);
RegPluginLibrary("vip_ex");
return APLRes_Success;
}
public int __IsClientVIP(Handle pPlugin, int Params)
{
return g_bVIP[GetNativeCell(1)] ? 1 : 0;
}
public int __ReloadVIPs(Handle pPlugin, int Params)
{
static int Player, Size, Iterator;
static char Buffer[1024], Steam[MAX_NAME_LENGTH];
static char Buffers[4][PLATFORM_MAX_PATH];
static Handle pFile;
ClearArray(g_pSteams);
ClearArray(g_pFlags);
for (Player = 1; Player <= MaxClients; Player++)
{
if (g_bVIP[Player])
{
g_Flags[Player][0] = EOS;
g_bVIP[Player] = false;
}
}
BuildPath(Path_SM, Buffer, sizeof(Buffer), "configs/vips.txt");
if (!FileExists(Buffer))
return 0;
pFile = OpenFile(Buffer, "r");
if (pFile == INVALID_HANDLE)
return 0;
while (!IsEndOfFile(pFile) && ReadFileLine(pFile, Buffer, sizeof(Buffer)))
{
TrimString(Buffer);
hCSGO_FixFileLine(Buffer, sizeof(Buffer));
if (strlen(Buffer) < 1 || Buffer[0] == ';' || Buffer[0] == '#' || \
(Buffer[0] == '/' && Buffer[1] == '/'))
{
continue;
}
Size = ExplodeString(Buffer, " ", Buffers, sizeof(Buffers), sizeof(Buffers[]));
if (Size >= 2)
{
hCSGO_ClearLine(Buffers[0]);
hCSGO_ExtractSteamID(Buffers[0], Buffers[0], sizeof(Buffers[]));
PushArrayString(g_pSteams, Buffers[0]);
hCSGO_ClearLine(Buffers[1]);
PushArrayString(g_pFlags, Buffers[1]);
}
}
CloseHandle(pFile);
Size = GetArraySize(g_pSteams);
if (Size > 0)
{
for (Iterator = 0; Iterator < Size; Iterator++)
{
GetArrayString(g_pSteams, Iterator, Buffer, sizeof(Buffer));
for (Player = 1; Player <= MaxClients; Player++)
{
if (g_inGame[Player])
{
GetClientAuthId(Player, AuthId_Engine, Steam, sizeof(Steam));
if (StrContains(Steam, Buffer, false) != -1)
{
g_bVIP[Player] = true;
GetArrayString(g_pFlags, Iterator, g_Flags[Player], sizeof(g_Flags[]));
PrintToChat(Player, "*\x04 VIPs\x01 were reloaded by the\x03 owner\x01.");
PrintToChat(Player, "* You are\x04 VIP\x01 and you can type\x03 !vip\x01.");
}
}
}
}
}
return 1;
}
public void OnClientCookiesCached(int Client)
{
static char Data[8];
GetClientCookie(Client, g_pTagsCookie, Data, sizeof(Data));
if (strlen(Data) < 1)
{
g_TagOption[Client] = TagInvalid;
g_bAsk[Client] = true;
}
else
{
g_TagOption[Client] = hCSGO_ClampInt(StringToInt(Data), TagInvalid, TagNone);
g_bAsk[Client] = false;
}
}
public void OnRoundStart(Handle pHndl, const char[] Name, bool bNoBCast)
{
static int Iter;
for (Iter = 1; Iter <= MaxClients; Iter++)
g_bEquipped[Iter] = false;
g_bOneAndOnly = false;
}
public void OnPluginStart()
{
HookEvent("round_start", OnRoundStart);
HookEvent("player_spawn", OnSpawn);
HookEvent("player_death", OnDeath);
RegConsoleCmd("say", CommandSay);
RegConsoleCmd("say_team", CommandSay);
g_pSteams = CreateArray(MAX_NAME_LENGTH);
g_pFlags = CreateArray(MAX_NAME_LENGTH);
g_pTagsCookie = RegClientCookie("VipTags", "Stores the VIP tag setting.", CookieAccess_Private);
CreateTimer(60.0 * GetRandomFloat(5.0, 10.0), TimerAd, _, TIMER_REPEAT);
CreateTimer(2.25, TimerReload, _, TIMER_REPEAT);
}
public Action OnWpnReload(int Weapon)
{
static int Owner;
Owner = GetEntPropEnt(Weapon, Prop_Send, "m_hOwner");
if (Owner != INVALID_ENT_REFERENCE && g_bVIP[Owner] && StrContains(g_Flags[Owner], "U", false) != -1)
return Plugin_Stop;
return Plugin_Continue;
}
public void OnEntityCreated(int Entity, const char[] Class)
{
if (Entity != INVALID_ENT_REFERENCE && \
StrContains(Class, "Weapon_", false) != -1 && \
StrContains(Class, "Knife", false) == -1 && \
StrContains(Class, "Bayonet", false) == -1 && \
StrContains(Class, "Taser", false) == -1 && \
StrContains(Class, "Zeus", false) == -1 && \
StrContains(Class, "Nade", false) == -1 && \
StrContains(Class, "Flash", false) == -1 && \
StrContains(Class, "C4", false) == -1 && \
StrContains(Class, "Bomb", false) == -1 && \
StrContains(Class, "World", false) == -1)
{
SDKHook(Entity, SDKHook_Reload, OnWpnReload);
}
}
public Action TimerAd(Handle pTimer)
{
static int Plr;
switch (GetRandomInt(0, 1))
{
case 0:
{
for (Plr = 1; Plr <= MaxClients; Plr++)
{
if (g_inGame[Plr] && !IsPlayerAlive(Plr))
PrintHintText(Plr, "<b><font color='#FF0000'>VIP?</font></b> Send us <b><font color='#00FF00'>5€</font></b>.");
}
}
case 1:
{
for (Plr = 1; Plr <= MaxClients; Plr++)
{
if (g_inGame[Plr] && !IsPlayerAlive(Plr))
PrintHintText(Plr, "<b><font color='#FF0000'>Tag Settings?</font></b> Type <b><font color='#00FF00'>!vip</font></b>.");
}
}
}
}
public void OnMapStart()
{
static int Size;
static char Buffer[1024];
static Handle pFile;
static char Buffers[4][PLATFORM_MAX_PATH];
g_Time = 0;
ClearArray(g_pSteams);
ClearArray(g_pFlags);
BuildPath(Path_SM, Buffer, sizeof(Buffer), "configs/vips.txt");
if (!FileExists(Buffer))
return;
pFile = OpenFile(Buffer, "r");
if (pFile == INVALID_HANDLE)
return;
while (!IsEndOfFile(pFile) && ReadFileLine(pFile, Buffer, sizeof(Buffer)))
{
TrimString(Buffer);
hCSGO_FixFileLine(Buffer, sizeof(Buffer));
if (strlen(Buffer) < 1 || Buffer[0] == ';' || Buffer[0] == '#' || \
(Buffer[0] == '/' && Buffer[1] == '/'))
{
continue;
}
Size = ExplodeString(Buffer, " ", Buffers, sizeof(Buffers), sizeof(Buffers[]));
if (Size >= 2)
{
hCSGO_ClearLine(Buffers[0]);
hCSGO_ExtractSteamID(Buffers[0], Buffers[0], sizeof(Buffers[]));
PushArrayString(g_pSteams, Buffers[0]);
hCSGO_ClearLine(Buffers[1]);
PushArrayString(g_pFlags, Buffers[1]);
}
}
CloseHandle(pFile);
}
public void OnClientDisconnect(int Id)
{
if (Id > 0)
{
g_inGame[Id] = false;
g_bVIP[Id] = false;
g_bAsk[Id] = false;
g_TagOption[Id] = TagInvalid;
}
}
public void OnClientPutInServer(int Id)
{
static int Size, Iter;
static char Steam[MAX_NAME_LENGTH], Object[MAX_NAME_LENGTH];
if (Id > 0)
{
g_inGame[Id] = false;
g_bVIP[Id] = false;
g_inGame[Id] = true;
Size = GetArraySize(g_pSteams);
if (Size > 0)
{
GetClientAuthId(Id, AuthId_Engine, Steam, sizeof(Steam));
for (Iter = 0; Iter < Size; Iter++)
{
GetArrayString(g_pSteams, Iter, Object, sizeof(Object));
if (StrContains(Steam, Object, false) != -1)
{
GetArrayString(g_pFlags, Iter, g_Flags[Id], sizeof(g_Flags[]));
CreateTimer(GetRandomFloat(2.75, 4.5), TimerVIPJoined, Id, TIMER_FLAG_NO_MAPCHANGE);
g_bVIP[Id] = true;
break;
}
}
}
if (g_bAsk[Id])
CreateTimer(GetRandomFloat(18.5, 27.5), Ask, Id, TIMER_FLAG_NO_MAPCHANGE);
}
}
public Action CommandSay(int Client, int Args)
{
static char RawCommand[MAX_NAME_LENGTH], Command[MAX_NAME_LENGTH];
if (Client > 0 && g_inGame[Client])
{
GetCmdArgString(RawCommand, sizeof(RawCommand));
hCSGO_PureChatCommand(RawCommand, Command, sizeof(Command));
if (strlen(Command) > 0)
{
if (strcmp(Command, "VIP", false) == 0 || strcmp(Command[1], "VIP", false) == 0 || \
strcmp(Command, "TAG", false) == 0 || strcmp(Command[1], "TAG", false) == 0)
{
g_bAsk[Client] = true;
CreateTimer(GetRandomFloat(0.1, 0.3), Ask, Client, TIMER_FLAG_NO_MAPCHANGE);
}
}
}
}
public Action Ask(Handle pTimer, any Id)
{
static Handle pPanel;
static bool bAdmin;
if (Id > 0 && g_inGame[Id] && g_bAsk[Id])
{
pPanel = CreatePanel();
if (pPanel != INVALID_HANDLE)
{
bAdmin = hCSGO_IsClientAdmin(Id);
SetPanelKeys(pPanel, hCSGO_MKeysAll);
SetPanelTitle(pPanel, "The Type of Tag in The Scores Table?");
DrawPanelText(pPanel, " \n");
if (g_bVIP[Id] && bAdmin)
{
DrawPanelText(pPanel, "1. Only VIP★ Tag");
DrawPanelText(pPanel, "2. VIP★ & Admin Tag");
DrawPanelText(pPanel, "3. Only Admin Tag");
DrawPanelText(pPanel, "4. No Tag At All (Do Not Change)");
}
else if (g_bVIP[Id] && !bAdmin)
{
DrawPanelText(pPanel, "1. Only VIP★ Tag");
DrawPanelText(pPanel, "2. No Tag At All (Do Not Change)");
}
else if (!g_bVIP[Id] && bAdmin)
{
DrawPanelText(pPanel, "1. Only Admin Tag");
DrawPanelText(pPanel, "2. No Tag At All (Do Not Change)");
}
else
DrawPanelText(pPanel, "1. No Tag At All (Do Not Change)");
SendPanelToClient(pPanel, Id, AskPanel, MENU_TIME_FOREVER);
CloseHandle(pPanel);
}
}
}
public int AskPanel(Handle pPanel, MenuAction pAction, int Client, int Selection)
{
static char Option[8];
static bool bAdmin;
if (pAction == MenuAction_Select && g_inGame[Client] && g_bAsk[Client])
{
bAdmin = hCSGO_IsClientAdmin(Client);
if (g_bVIP[Client] && bAdmin)
{
switch (Selection)
{
case 1:
{
g_TagOption[Client] = TagOnlyVIP;
g_bAsk[Client] = false;
IntToString(g_TagOption[Client], Option, sizeof(Option));
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 Only VIP★ Tag\x01.");
}
case 2:
{
g_TagOption[Client] = TagBoth;
g_bAsk[Client] = false;
IntToString(g_TagOption[Client], Option, sizeof(Option));
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 VIP★ & Admin Tag\x01.");
}
case 3:
{
g_TagOption[Client] = TagOnlyAdmin;
g_bAsk[Client] = false;
IntToString(g_TagOption[Client], Option, sizeof(Option));
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 Only Admin Tag\x01.");
}
case 4:
{
g_TagOption[Client] = TagNone;
g_bAsk[Client] = false;
IntToString(g_TagOption[Client], Option, sizeof(Option));
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 No Tag At All (Do Not Change)\x01.");
PrintToChat(Client, ">> You might need to\x04 Re-Try Connection\x01 to get rid of it.");
}
}
}
else if (g_bVIP[Client] && !bAdmin)
{
switch (Selection)
{
case 1:
{
g_TagOption[Client] = TagOnlyVIP;
g_bAsk[Client] = false;
IntToString(g_TagOption[Client], Option, sizeof(Option));
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 Only VIP★ Tag\x01.");
}
case 2:
{
g_TagOption[Client] = TagNone;
g_bAsk[Client] = false;
IntToString(g_TagOption[Client], Option, sizeof(Option));
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 No Tag At All (Do Not Change)\x01.");
PrintToChat(Client, ">> You might need to\x04 Re-Try Connection\x01 to get rid of it.");
}
}
}
else if (!g_bVIP[Client] && bAdmin)
{
switch (Selection)
{
case 1:
{
g_TagOption[Client] = TagOnlyAdmin;
g_bAsk[Client] = false;
IntToString(g_TagOption[Client], Option, sizeof(Option));
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 Only Admin Tag\x01.");
}
case 2:
{
g_TagOption[Client] = TagNone;
g_bAsk[Client] = false;
IntToString(g_TagOption[Client], Option, sizeof(Option));
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 No Tag At All (Do Not Change)\x01.");
PrintToChat(Client, ">> You might need to\x04 Re-Try Connection\x01 to get rid of it.");
}
}
}
else
{
switch (Selection)
{
case 1:
{
g_TagOption[Client] = TagNone;
g_bAsk[Client] = false;
IntToString(g_TagOption[Client], Option, sizeof(Option));
SetClientCookie(Client, g_pTagsCookie, Option);
PrintToChat(Client, ">> Option selected!\x04 No Tag At All (Do Not Change)\x01.");
}
}
}
}
}
public Action TimerReload(Handle pTimer)
{
static int Weapon, Client, Flags;
static char Class[MAX_NAME_LENGTH];
static bool bAdmin;
for (Client = 1; Client <= MaxClients; Client++)
{
if (!g_inGame[Client] || \
(!hCSGO_IsClientAdmin(Client) && !g_bVIP[Client]))
{
continue;
}
if (g_TagOption[Client] != TagInvalid && g_TagOption[Client] != TagNone && !g_bAsk[Client])
{
bAdmin = hCSGO_IsClientAdmin(Client);
if (g_bVIP[Client] && g_TagOption[Client] == TagOnlyVIP)
CS_SetClientClanTag(Client, "[VIP]");
if (bAdmin && g_TagOption[Client] == TagOnlyAdmin)
{
Flags = GetUserFlagBits(Client);
if (Flags & ADMFLAG_ROOT)
CS_SetClientClanTag(Client, "Fondator");
else if (Flags & ADMFLAG_CUSTOM1)
CS_SetClientClanTag(Client, "OverLord");
else if (Flags & ADMFLAG_CUSTOM2)
CS_SetClientClanTag(Client, "Lord");
else if (Flags & ADMFLAG_CUSTOM3)
CS_SetClientClanTag(Client, "Legendary");
else if (Flags & ADMFLAG_CUSTOM4)
CS_SetClientClanTag(Client, "Legend");
else if (Flags & ADMFLAG_CUSTOM5)
CS_SetClientClanTag(Client, "Diamond");
else if (Flags & ADMFLAG_CUSTOM6)
CS_SetClientClanTag(Client, "Helper");
else if (Flags & ADMFLAG_RESERVATION)
CS_SetClientClanTag(Client, "Slot");
}
if (bAdmin && g_bVIP[Client] && g_TagOption[Client] == TagBoth)
{
Flags = GetUserFlagBits(Client);
if (Flags & ADMFLAG_ROOT)
CS_SetClientClanTag(Client, "VIP★ Fondator");
else if (Flags & ADMFLAG_CUSTOM1)
CS_SetClientClanTag(Client, "VIP★ OverLord");
else if (Flags & ADMFLAG_CUSTOM2)
CS_SetClientClanTag(Client, "VIP★ Lord");
else if (Flags & ADMFLAG_CUSTOM3)
CS_SetClientClanTag(Client, "VIP★ Legendary");
else if (Flags & ADMFLAG_CUSTOM4)
CS_SetClientClanTag(Client, "VIP★ Legend");
else if (Flags & ADMFLAG_CUSTOM5)
CS_SetClientClanTag(Client, "VIP★ Diamond");
else if (Flags & ADMFLAG_CUSTOM6)
CS_SetClientClanTag(Client, "VIP★ Helper");
else if (Flags & ADMFLAG_RESERVATION)
CS_SetClientClanTag(Client, "VIP★ Slot");
}
}
if (g_bVIP[Client] && StrContains(g_Flags[Client], "U", false) != -1 && IsPlayerAlive(Client))
{
Weapon = GetEntPropEnt(Client, Prop_Send, "m_hActiveWeapon");
if (Weapon != INVALID_ENT_REFERENCE && GetEdictClassname(Weapon, Class, sizeof(Class)))
{
if (StrContains(Class, "Knife", false) == -1 && \
StrContains(Class, "Taser", false) == -1 && \
StrContains(Class, "Nade", false) == -1 && \
StrContains(Class, "Flash", false) == -1 && \
StrContains(Class, "Bayonet", false) == -1 && \
StrContains(Class, "Smoke", false) == -1 && \
StrContains(Class, "Incendiary", false) == -1 && \
StrContains(Class, "Molotov", false) == -1 && \
StrContains(Class, "Kit", false) == -1 && \
StrContains(Class, "Defuse", false) == -1 && \
StrContains(Class, "Projectile", false) == -1 && \
StrContains(Class, "Bang", false) == -1 && \
StrContains(Class, "Bomb", false) == -1 && \
StrContains(Class, "C4", false) == -1 && \
StrContains(Class, "Zeus", false) == -1 && \
StrContains(Class, "Decoy", false) == -1)
{
SetEntProp(Weapon, Prop_Send, "m_iClip1", 32);
SetEntProp(Weapon, Prop_Send, "m_iClip2", 32);
}
}
}
}
}
public Action TimerVIPJoined(Handle pTimer, any Client)
{
static char Name[MAX_NAME_LENGTH];
if (g_bVIP[Client] && g_inGame[Client])
{
GetClientName(Client, Name, sizeof(Name));
hCSGO_MakeHtmlSafe(Name, sizeof(Name));
PrintHintTextToAll("<b><font color='#FF0000'>VIP-ul</font></b> <font color='#00FF00'>%s</font> <font color='#FFFFFF'>a intrat pe server!</font>", \
Name);
}
}
public void OnDeath(Handle pEvent, const char[] myName, bool bNoBroadcast)
{
static int Client, Killer, Health, newHealth, Gained;
static bool bWarmup;
Client = GetClientOfUserId(GetEventInt(pEvent, "userid"));
Killer = GetClientOfUserId(GetEventInt(pEvent, "attacker"));
bWarmup = hCSGO_IsWarmup();
if (Client != Killer && \
Client > 0 && Killer > 0 && \
g_bVIP[Killer] && IsPlayerAlive(Killer) && \
StrContains(g_Flags[Killer], "H", false) != -1 && !bWarmup)
{
Health = GetClientHealth(Killer);
if (Health > 0)
{
newHealth = hCSGO_ClampInt(Health + 5, 6, 100);
Gained = newHealth - Health;
if (Gained != 0)
{
SetEntProp(Killer, Prop_Send, "m_iHealth", newHealth);
PrintHintText(Killer, \
"<b><font color='#FF0000'>+%d</font></b> <font color='#00FF00'>HP</font> <font color='#FFFFFF'>GAINED!</font>", \
Gained);
}
}
}
if (!bWarmup)
CreateTimer(GetRandomFloat(0.05, 0.105), TimerShowInfo, _, TIMER_FLAG_NO_MAPCHANGE);
}
public Action TimerShowInfo(Handle pTimer)
{
static int T, CT, TPlayer, CTPlayer, Time;
static char Name[MAX_NAME_LENGTH], enemyName[MAX_NAME_LENGTH];
Time = GetTime();
T = hCSGO_CountTeam(CS_TEAM_T, true);
CT = hCSGO_CountTeam(CS_TEAM_CT, true);
if (T == 1 && CT > 0)
{
TPlayer = hCSGO_GetOnePlayerTeam(CS_TEAM_T, true);
if (TPlayer != INVALID_ENT_REFERENCE)
{
GetClientName(TPlayer, Name, sizeof(Name));
if (CT > 1)
{
if (g_Time < Time)
{
if (!g_bOneAndOnly)
{
g_bOneAndOnly = true;
}
PrintToChatAll("*\x07 %s\x01 (\x04%d HP\x01) against\x0B %d CT", \
Name, GetClientHealth(TPlayer), CT);
g_Time = Time + 1;
}
}
else
{
CTPlayer = hCSGO_GetOnePlayerTeam(CS_TEAM_CT, true);
if (CTPlayer != INVALID_ENT_REFERENCE)
{
GetClientName(CTPlayer, enemyName, sizeof(enemyName));
PrintToChatAll("*\x07 %s\x01 (\x04%d HP\x01) against\x0B %s\x01 (\x04%d HP\x01)", \
Name, GetClientHealth(TPlayer), enemyName, GetClientHealth(CTPlayer));
}
}
}
}
else if (CT == 1 && T > 0)
{
CTPlayer = hCSGO_GetOnePlayerTeam(CS_TEAM_CT, true);
if (CTPlayer != INVALID_ENT_REFERENCE)
{
GetClientName(CTPlayer, Name, sizeof(Name));
if (T > 1)
{
if (g_Time < Time)
{
if (!g_bOneAndOnly)
{
g_bOneAndOnly = true;
}
PrintToChatAll("*\x0B %s\x01 (\x04%d HP\x01) against\x07 %d T", \
Name, GetClientHealth(CTPlayer), T);
g_Time = Time + 1;
}
}
else
{
TPlayer = hCSGO_GetOnePlayerTeam(CS_TEAM_T, true);
if (TPlayer != INVALID_ENT_REFERENCE)
{
GetClientName(TPlayer, enemyName, sizeof(enemyName));
PrintToChatAll("*\x0B %s\x01 (\x04%d HP\x01) against\x07 %s\x01 (\x04%d HP\x01)", \
Name, GetClientHealth(CTPlayer), enemyName, GetClientHealth(TPlayer));
}
}
}
}
}
public void OnSpawn(Handle pEvent, const char[] myName, bool bNoBroadcast)
{
static int Client;
Client = GetClientOfUserId(GetEventInt(pEvent, "userid"));
if (Client > 0 && g_bVIP[Client] && \
g_inGame[Client] && IsPlayerAlive(Client))
{
CreateTimer(0.275, EquipClient, Client, TIMER_FLAG_NO_MAPCHANGE);
}
}
public Action EquipClient(Handle pTimer, any Client)
{
static int Team;
if (!g_bEquipped[Client] && g_bVIP[Client] && g_inGame[Client] && IsPlayerAlive(Client))
{
Team = GetClientTeam(Client);
switch (GetRandomInt(0, 1))
{
case 0:
{
if (StrContains(g_Flags[Client], "G", false) != -1)
GivePlayerItem(Client, "weapon_hegrenade");
if (StrContains(g_Flags[Client], "I", false) != -1)
GivePlayerItem(Client, Team == CS_TEAM_T ? "weapon_molotov" : "weapon_incgrenade");
if (StrContains(g_Flags[Client], "S", false) != -1)
GivePlayerItem(Client, "weapon_smokegrenade");
if (StrContains(g_Flags[Client], "F", false) != -1)
GivePlayerItem(Client, "weapon_flashbang");
}
case 1:
{
if (StrContains(g_Flags[Client], "I", false) != -1)
GivePlayerItem(Client, Team == CS_TEAM_T ? "weapon_molotov" : "weapon_incgrenade");
if (StrContains(g_Flags[Client], "G", false) != -1)
GivePlayerItem(Client, "weapon_hegrenade");
if (StrContains(g_Flags[Client], "S", false) != -1)
GivePlayerItem(Client, "weapon_smokegrenade");
if (StrContains(g_Flags[Client], "F", false) != -1)
GivePlayerItem(Client, "weapon_flashbang");
}
}
if (Team == CS_TEAM_CT && StrContains(g_Flags[Client], "D", false) != -1)
GivePlayerItem(Client, "item_defuser");
if (StrContains(g_Flags[Client], "A", false) != -1)
{
SetEntProp(Client, Prop_Send, "m_ArmorValue", 100);
SetEntProp(Client, Prop_Send, "m_bHasHelmet", true);
}
g_bEquipped[Client] = true;
}
}
Last edited by GUCCICSGO; 01-12-2019 at 11:37.
|
|