sprawdź czy działa:
#pragma semicolon 1
#include <sourcemod>
public Plugin:myinfo =
{
name = "Fun Vote",
author = "Cypis",
description = "Fun Vote",
version = "1.0",
url = "http://www.amxx.pl/"
};
new Handle:g_Players = INVALID_HANDLE;
new String:file_name[2][128];
public OnPluginStart()
{
g_Players = CreateArray(ByteCountToCells(33));
RegConsoleCmd("glosuj", Command_Vote);
BuildPath(Path_SM, file_name[0], sizeof(file_name[]), "logs/pytania.txt");
BuildPath(Path_SM, file_name[1], sizeof(file_name[]), "logs/sidy.txt");
}
public OnConfigsExecuted()
{
if(!FileExists(file_name[1]))
return;
new Handle:file = OpenFile(file_name[1], "r");
while(!IsEndOfFile(file))
{
decl String:g_sid[32];
ReadFileLine(file, g_sid, sizeof(g_sid));
PushArrayString(g_Players, g_sid);
}
CloseHandle(file);
}
public Action:Command_Vote(client, args)
{
if(!IsClientConnected(client) || !IsClientInGame(client) || IsFakeClient(client) || IsVoteInProgress())
return Plugin_Handled;
if(MozeGlosowac(client))
return Plugin_Handled;
new Handle:menu = CreateMenu(Handle_VoteMenu);
SetMenuTitle(menu, "Pytanie XXX");
AddMenuItem(menu, "1", "OPCJA 1");
AddMenuItem(menu, "2", "OPCJA 2");
AddMenuItem(menu, "3", "OPCJA 3");
AddMenuItem(menu, "4", "OPCJA 4");
SetMenuExitButton(menu, false);
DisplayMenu(menu, client, 20);
return Plugin_Handled;
}
public Handle_VoteMenu(Handle:menu, MenuAction:action, param1, param2)
{
if(action == MenuAction_Select)
{
decl String:info[32];
GetMenuItem(menu, param2, info, sizeof(info));
decl String:name[32];
decl String:auth[32];
GetClientName(param1, name, sizeof(name));
GetClientAuthString(param1, auth, sizeof(auth));
LogToFile(file_name[0], "Gracz %s (%s) zagłosował na %s (%i)", name, auth, info, param2);
LogToFile(file_name[1], "%s", auth);
PushArrayString(g_Players, auth);
}
else if(action == MenuAction_End)
{
CloseHandle(menu);
}
}
stock bool:MozeGlosowac(client)
{
if(!GetArraySize(g_Players))
return false;
decl String:auth[32];
GetClientAuthString(client, auth, sizeof(auth));
for(new i=0; i<GetArraySize(g_Players); i++)
{
decl String:g_sid[32];
GetArrayString(g_Players, i, g_sid, sizeof(g_sid));
if(strcmp(auth, g_sid, false) == 0)
return true;
}
return false;
}
Użytkownik Cypis' edytował ten post 15.10.2011 23:03