diff --git a/SpamNotification/scripting/SpamNotification.sp b/SpamNotification/scripting/SpamNotification.sp new file mode 100644 index 0000000..bf965c8 --- /dev/null +++ b/SpamNotification/scripting/SpamNotification.sp @@ -0,0 +1,101 @@ +#pragma semicolon 1 + +#include +#include +/*#include +#include +#include +#include */ + +ConVar g_cMessagePosition; +ConVar g_cMessageColor; +ConVar g_cMessageCooldown; +ConVar g_cMessageText; + +float MessagePos[2]; +int MessageColor[3]; +Handle MessageTimer; +Handle MessageSync; + +public Plugin myinfo = +{ + name = "SpamNotification", + author = "Dogan", + description = "Provide the server with important informations/advertisements", + version = "1.0.0", + url = "" +} + +public void OnPluginStart() +{ + g_cMessagePosition = CreateConVar("sm_message_position", "-1.0 0.8", "The x and y positions for the message"); + g_cMessageColor = CreateConVar("sm_message_color", "0 255 0", "RGB color value for the message"); + g_cMessageCooldown = CreateConVar("sm_message_cooldown", "120", "Cooldown of the message in seconds"); + g_cMessageText = CreateConVar("sm_message_text", "UNLOZE Christmas Sale: 25'%' on all VIP Offers. Check www.unloze.com for more info", "text thats shown at the message"); + + g_cMessagePosition.AddChangeHook(ConVarChange); + g_cMessageColor.AddChangeHook(ConVarChange); + g_cMessageCooldown.AddChangeHook(ConVarChange); + + MessageSync = CreateHudSynchronizer(); + + AutoExecConfig(true, "plugin.SpamNotification"); + GetConVars(); +} + +public void ColorStringToArray(const char[] sColorString, int aColor[3]) +{ + char asColors[4][4]; + ExplodeString(sColorString, " ", asColors, sizeof(asColors), sizeof(asColors[])); + + aColor[0] = StringToInt(asColors[0]); + aColor[1] = StringToInt(asColors[1]); + aColor[2] = StringToInt(asColors[2]); +} + +public void GetConVars() +{ + char StringPos[2][8]; + char PosValue[16]; + g_cMessagePosition.GetString(PosValue, sizeof(PosValue)); + ExplodeString(PosValue, " ", StringPos, sizeof(StringPos), sizeof(StringPos[])); + + MessagePos[0] = StringToFloat(StringPos[0]); + MessagePos[1] = StringToFloat(StringPos[1]); + + char ColorValue[64]; + g_cMessageColor.GetString(ColorValue, sizeof(ColorValue)); + + ColorStringToArray(ColorValue, MessageColor); + + char MessageValue[512]; + g_cMessageText.GetString(MessageValue, sizeof(MessageValue)); + + if (MessageTimer != INVALID_HANDLE && CloseHandle(MessageTimer)) + MessageTimer = INVALID_HANDLE; + + MessageTimer = CreateTimer(g_cMessageCooldown.FloatValue, TimerCooldown, _, TIMER_REPEAT); +} + +public void ConVarChange(ConVar convar, char[] oldValue, char[] newValue) +{ + GetConVars(); +} + +public void SendMessage() +{ + SetHudTextParams(MessagePos[0], MessagePos[1], 5.0, MessageColor[0], MessageColor[1], MessageColor[2], 255, 1, 3.0, 0.4, 0.4); + + for (int client = 1; client <= MAXPLAYERS; client++) + { + if (IsClientConnected(client)) + { + ShowSyncHudText(client, MessageSync, g_cMessageText); + } + } +} + +public Action TimerCooldown(Handle timer) +{ + SendMessage(); +} \ No newline at end of file