forked from UNLOZE/sm-plugins
Misc: Move shared stuff to shared git.
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
#include <sourcemod>
|
||||
|
||||
#define MAXLINES 20
|
||||
|
||||
#pragma newdecls required
|
||||
|
||||
/* CONVARS */
|
||||
ConVar g_cvInfoMessageFile;
|
||||
|
||||
/* STRINGS */
|
||||
char g_sBuffer[MAXLINES][192];
|
||||
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public Plugin myinfo =
|
||||
{
|
||||
name = "InfoMessage",
|
||||
author = "Neon",
|
||||
description = "",
|
||||
version = "1.0.0",
|
||||
url = "https://steamcommunity.com/id/n3ontm"
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public void OnPluginStart()
|
||||
{
|
||||
g_cvInfoMessageFile = CreateConVar("sm_info_message_file", "null", "", FCVAR_NONE);
|
||||
HookConVarChange(g_cvInfoMessageFile, Cvar_FileChanged);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public void Cvar_FileChanged(ConVar convar, const char[] oldValue, const char[] newValue)
|
||||
{
|
||||
for (int i = 0; i <= (MAXLINES - 1); i++)
|
||||
g_sBuffer[i] = "";
|
||||
|
||||
char sFile[PLATFORM_MAX_PATH];
|
||||
char sLine[192];
|
||||
char sFilename[192];
|
||||
GetConVarString(g_cvInfoMessageFile, sFilename, sizeof(sFilename))
|
||||
|
||||
if (StrEqual(sFilename, "null"))
|
||||
return;
|
||||
|
||||
BuildPath(Path_SM, sFile, sizeof(sFile), "configs/info_messages/%s.txt", sFilename);
|
||||
|
||||
Handle hFile = OpenFile(sFile, "r");
|
||||
|
||||
if(hFile != INVALID_HANDLE)
|
||||
{
|
||||
int iLine = 0;
|
||||
while (!IsEndOfFile(hFile))
|
||||
{
|
||||
if (!ReadFileLine(hFile, sLine, sizeof(sLine)))
|
||||
break;
|
||||
|
||||
TrimString(sLine);
|
||||
g_sBuffer[iLine] = sLine;
|
||||
iLine++;
|
||||
}
|
||||
|
||||
CloseHandle(hFile);
|
||||
|
||||
}
|
||||
else
|
||||
LogError("[SM] File not found! (configs/info_messages/%s.txt)", sFilename);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
int MenuHandler_NotifyPanel(Menu hMenu, MenuAction iAction, int iParam1, int iParam2)
|
||||
{
|
||||
switch (iAction)
|
||||
{
|
||||
case MenuAction_Select, MenuAction_Cancel:
|
||||
delete hMenu;
|
||||
}
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
// Purpose:
|
||||
//----------------------------------------------------------------------------------------------------
|
||||
public void OnClientPutInServer(int client)
|
||||
{
|
||||
char sFilename[192];
|
||||
GetConVarString(g_cvInfoMessageFile, sFilename, sizeof(sFilename))
|
||||
|
||||
if (StrEqual(sFilename, "null"))
|
||||
return;
|
||||
|
||||
Panel hNotifyPanel = new Panel(GetMenuStyleHandle(MenuStyle_Radio));
|
||||
|
||||
for (int i = 0; i <= (MAXLINES - 1); i++)
|
||||
{
|
||||
if (StrEqual(g_sBuffer[i], ""))
|
||||
break;
|
||||
|
||||
if (StrEqual(g_sBuffer[i], "/n"))
|
||||
{
|
||||
hNotifyPanel.DrawItem("", ITEMDRAW_SPACER);
|
||||
}
|
||||
else
|
||||
hNotifyPanel.DrawItem(g_sBuffer[i], ITEMDRAW_RAWLINE);
|
||||
}
|
||||
|
||||
hNotifyPanel.SetKeys(1023);
|
||||
hNotifyPanel.Send(client, MenuHandler_NotifyPanel, 0);
|
||||
delete hNotifyPanel;
|
||||
}
|
||||
Reference in New Issue
Block a user