inital commit
This commit is contained in:
734
beer.sp
Normal file
734
beer.sp
Normal file
@@ -0,0 +1,734 @@
|
||||
/* Plugin Template generated by Pawn Studio */
|
||||
|
||||
#include <sourcemod>
|
||||
#include <mapchooser>
|
||||
|
||||
new Handle:g_NextMap = INVALID_HANDLE;
|
||||
new Handle:g_ChangeMap = INVALID_HANDLE;
|
||||
new Handle:g_NominationMap = INVALID_HANDLE;
|
||||
|
||||
new Handle:cv_serverid, Handle:cv_lotto;
|
||||
|
||||
new price_nomination = 25;
|
||||
new price_mapvote = 100;
|
||||
new price_nextmap = 150;
|
||||
new price_changelevel = 200;
|
||||
|
||||
new String:MapchangeTo[100];
|
||||
|
||||
public Plugin:myinfo =
|
||||
{
|
||||
name = "Beer System",
|
||||
author = "Chefe",
|
||||
description = "System that gives Players Points for they Playtime.",
|
||||
version = "2.4",
|
||||
url = "www.the-bos.de"
|
||||
}
|
||||
|
||||
public OnPluginStart()
|
||||
{
|
||||
CreateTimer(300.0, Abbrechnung, _, TIMER_REPEAT);
|
||||
RegConsoleCmd("sm_beer", CommandLP, "Shows you your liter Beer!");
|
||||
cv_serverid = CreateConVar("sm_beer_serverid", "0", "Serverid for remove liter");
|
||||
cv_lotto = CreateConVar("sm_beer_lotto", "0", "Lotto I/0");
|
||||
//HookEvent("player_activate", Event_PlayerActivate);
|
||||
|
||||
if (GetConVarBool(cv_lotto))
|
||||
{
|
||||
CreateTimer(7200.0, LottoZiehung, _, TIMER_REPEAT);
|
||||
}
|
||||
|
||||
if (CheckCon())
|
||||
{
|
||||
PrintToServer("[BEER] Connection sucessfull!");
|
||||
}
|
||||
else
|
||||
{
|
||||
SetFailState("Can't etablish connection to Database");
|
||||
}
|
||||
|
||||
AutoExecConfig(true);
|
||||
}
|
||||
|
||||
public OnMapStart()
|
||||
{
|
||||
MapchangeTo = NULL_STRING;
|
||||
g_NextMap = BuildMapMenu(Menu_NextMap);
|
||||
g_ChangeMap = BuildMapMenu(Menu_ChangeMap);
|
||||
g_NominationMap = BuildMapMenu(Menu_NominateMap);
|
||||
}
|
||||
|
||||
public OnMapEnd()
|
||||
{
|
||||
if (g_NextMap != INVALID_HANDLE)
|
||||
{
|
||||
CloseHandle(g_NextMap);
|
||||
g_NextMap = INVALID_HANDLE;
|
||||
}
|
||||
|
||||
if (g_ChangeMap != INVALID_HANDLE)
|
||||
{
|
||||
CloseHandle(g_ChangeMap);
|
||||
g_ChangeMap = INVALID_HANDLE;
|
||||
}
|
||||
|
||||
if (g_NominationMap != INVALID_HANDLE)
|
||||
{
|
||||
CloseHandle(g_NominationMap);
|
||||
g_NominationMap = INVALID_HANDLE;
|
||||
}
|
||||
}
|
||||
|
||||
Handle:BuildMapMenu(MenuHandler:handel)
|
||||
{
|
||||
/* Open the file */
|
||||
new Handle:file = OpenFile("mapcycle.txt", "rt");
|
||||
if (file == INVALID_HANDLE)
|
||||
{
|
||||
return INVALID_HANDLE;
|
||||
}
|
||||
|
||||
/* Create the menu Handle */
|
||||
new Handle:menu = CreateMenu(handel);
|
||||
new String:mapname[255];
|
||||
while (!IsEndOfFile(file) && ReadFileLine(file, mapname, sizeof(mapname)))
|
||||
{
|
||||
if (mapname[0] == ';' || !IsCharAlpha(mapname[0]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
/* Cut off the name at any whitespace */
|
||||
new len = strlen(mapname);
|
||||
for (new i=0; i<len; i++)
|
||||
{
|
||||
if (IsCharSpace(mapname[i]))
|
||||
{
|
||||
mapname[i] = '\0';
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* Check if the map is valid */
|
||||
if (!IsMapValid(mapname))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
/* Add it to the menu */
|
||||
AddMenuItem(menu, mapname, mapname);
|
||||
}
|
||||
/* Make sure we close the file! */
|
||||
CloseHandle(file);
|
||||
|
||||
/* Finally, set the title */
|
||||
SetMenuTitle(menu, "Please select a map:");
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
public OnClientAuthorized(client, const String:auth[])
|
||||
{
|
||||
new String:sqlstring[255];
|
||||
Format(sqlstring, sizeof(sqlstring), "SELECT id FROM lp WHERE steamid = '%s'", auth);
|
||||
|
||||
new String:error_connect[255];
|
||||
new Handle:db = SQL_Connect("db", false, error_connect, sizeof(error_connect));
|
||||
new Handle:sql = SQL_Query(db, sqlstring);
|
||||
|
||||
if (SQL_GetRowCount(sql) == 0)
|
||||
{
|
||||
new String:create[250];
|
||||
Format(create, sizeof(create), "INSERT INTO lp(steamid, points) VALUES ('%s',0)", auth);
|
||||
SQL_FastQuery(db, create);
|
||||
}
|
||||
|
||||
CloseHandle(sql);
|
||||
CloseHandle(db);
|
||||
}
|
||||
|
||||
public Action:CommandLP(client, args)
|
||||
{
|
||||
new String:s_menu1[100];
|
||||
Format(s_menu1, sizeof(s_menu1), "SNomination (%i l)", price_nomination);
|
||||
new String:s_menu2[100];
|
||||
Format(s_menu2, sizeof(s_menu2), "Force Mapvote (%i l)", price_mapvote);
|
||||
new String:s_menu3[100];
|
||||
Format(s_menu3, sizeof(s_menu3), "Set Nextmap (%i l)", price_nextmap);
|
||||
new String:s_menu4[100];
|
||||
Format(s_menu4, sizeof(s_menu4), "Change Map (%i l)", price_changelevel);
|
||||
|
||||
new Handle:menu = CreateMenu(MenuHandler);
|
||||
SetMenuTitle(menu, "Loyality Points System");
|
||||
AddMenuItem(menu, "1", "Show Liter Beer");
|
||||
AddMenuItem(menu, "2", s_menu1);
|
||||
AddMenuItem(menu, "3", s_menu2);
|
||||
AddMenuItem(menu, "4", s_menu3);
|
||||
AddMenuItem(menu, "5", s_menu4);
|
||||
new bool:have_rs = HaveClientRS(client);
|
||||
|
||||
if (have_rs)
|
||||
{
|
||||
new String:s_menu5[100];
|
||||
Format(s_menu5, sizeof(s_menu5), "Your RS access end in %i min", GetRSMIN(client));
|
||||
AddMenuItem(menu, "6", s_menu5, ITEMDRAW_DISABLED);
|
||||
}
|
||||
else if (!have_rs)
|
||||
{
|
||||
AddMenuItem(menu, "7", "Reserved Slot");
|
||||
}
|
||||
|
||||
DisplayMenu(menu, client, MENU_TIME_FOREVER);
|
||||
|
||||
return Plugin_Handled;
|
||||
}
|
||||
|
||||
public MenuHandler(Handle:menu, MenuAction:action, param1, param2)
|
||||
{
|
||||
/* If an option was selected, tell the client about the item. */
|
||||
if (action == MenuAction_Select)
|
||||
{
|
||||
new String:info[32];
|
||||
GetMenuItem(menu, param2, info, sizeof(info));
|
||||
|
||||
switch(StringToInt(info))
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
new lp = GetLP(param1);
|
||||
PrintToChatAll("\x04[BEER]\x01 %N, you have %i Liter Beer!", param1, lp);
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
new lp = GetLP(param1);
|
||||
|
||||
if (lp >= price_nomination)
|
||||
{
|
||||
DisplayMenu(g_NominationMap, param1, MENU_TIME_FOREVER);
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have %i liter, but you need %i l to nominate!", lp, price_nomination);
|
||||
}
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
new lp = GetLP(param1);
|
||||
|
||||
if (lp >= price_mapvote)
|
||||
{
|
||||
RemoveLP(param1, price_mapvote);
|
||||
|
||||
PrintToChatAll("\x04[BEER]\x01 %N forced Mapvote!", param1)
|
||||
|
||||
InitiateMapChooserVote(MapChange_Instant);
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have %i liter, but you need %i l to force Mapvote!", lp, price_mapvote);
|
||||
}
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
new lp = GetLP(param1);
|
||||
|
||||
if (lp >= price_nextmap)
|
||||
{
|
||||
DisplayMenu(g_NextMap, param1, MENU_TIME_FOREVER);
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have %i liter, but you need %i l to set Nextmap!", lp, price_nextmap);
|
||||
}
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
new lp = GetLP(param1);
|
||||
|
||||
if (lp >= price_changelevel)
|
||||
{
|
||||
DisplayMenu(g_ChangeMap, param1, MENU_TIME_FOREVER);
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have %i liter, but you need %i l to change the Map!", lp, price_changelevel);
|
||||
}
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
|
||||
}
|
||||
case 7:
|
||||
{
|
||||
new Handle:menu2 = CreateMenu(MenuRS);
|
||||
SetMenuTitle(menu2, "Select RS-time");
|
||||
AddMenuItem(menu2, "1", "1 Day (100 l)");
|
||||
AddMenuItem(menu2, "2", "5 Days (450 l)");
|
||||
AddMenuItem(menu2, "3", "14 Days (800 l)");
|
||||
AddMenuItem(menu2, "4", "30 Days (999 l)");
|
||||
DisplayMenu(menu2, param1, MENU_TIME_FOREVER);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* If the menu has ended, destroy it */
|
||||
else if (action == MenuAction_End)
|
||||
{
|
||||
CloseHandle(menu);
|
||||
}
|
||||
}
|
||||
|
||||
public Menu_NextMap(Handle:menu, MenuAction:action, param1, param2)
|
||||
{
|
||||
if (action == MenuAction_Select)
|
||||
{
|
||||
new String:info[32];
|
||||
|
||||
/* Get item info */
|
||||
GetMenuItem(menu, param2, info, sizeof(info));
|
||||
RemoveLP(param1, price_nextmap);
|
||||
PrintToChatAll("\x04[BEER]\x01 %N changed the nextmap to %s!", param1, info);
|
||||
SetNextMap(info);
|
||||
}
|
||||
/* If the menu has ended, destroy it */
|
||||
else if (action == MenuAction_End)
|
||||
{
|
||||
CloseHandle(menu);
|
||||
}
|
||||
}
|
||||
|
||||
public Menu_ChangeMap(Handle:menu, MenuAction:action, param1, param2)
|
||||
{
|
||||
if (action == MenuAction_Select)
|
||||
{
|
||||
new String:info[32];
|
||||
|
||||
/* Get item info */
|
||||
GetMenuItem(menu, param2, info, sizeof(info));
|
||||
RemoveLP(param1, price_changelevel);
|
||||
PrintToChatAll("\x04[BEER]\x01 %N forced mapchange to %s!", param1, info);
|
||||
|
||||
if (!strcmp(MapchangeTo, NULL_STRING, false))
|
||||
{
|
||||
MapchangeTo = info;
|
||||
CreateTimer(5.0, Timer_Changelevel);
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 Mapchange already in Progress");
|
||||
}
|
||||
}
|
||||
/* If the menu has ended, destroy it */
|
||||
else if (action == MenuAction_End)
|
||||
{
|
||||
CloseHandle(menu);
|
||||
}
|
||||
}
|
||||
|
||||
public Action:Timer_Changelevel(Handle:timer)
|
||||
{
|
||||
ForceChangeLevel(MapchangeTo, "BEER");
|
||||
}
|
||||
|
||||
public Menu_NominateMap(Handle:menu, MenuAction:action, param1, param2)
|
||||
{
|
||||
if (action == MenuAction_Select)
|
||||
{
|
||||
new String:info[32];
|
||||
|
||||
/* Get item info */
|
||||
GetMenuItem(menu, param2, info, sizeof(info));
|
||||
RemoveLP(param1, price_nomination);
|
||||
PrintToChatAll("\x04[BEER]\x01 %N nominated %s!", param1, info);
|
||||
NominateMap(info, true, 0);
|
||||
}
|
||||
/* If the menu has ended, destroy it */
|
||||
else if (action == MenuAction_End)
|
||||
{
|
||||
CloseHandle(menu);
|
||||
}
|
||||
}
|
||||
|
||||
public MenuRS(Handle:menu, MenuAction:action, param1, param2)
|
||||
{
|
||||
/* If an option was selected, tell the client about the item. */
|
||||
if (action == MenuAction_Select)
|
||||
{
|
||||
new String:info[32];
|
||||
GetMenuItem(menu, param2, info, sizeof(info));
|
||||
|
||||
new lp = GetLP(param1)
|
||||
|
||||
switch(StringToInt(info))
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
if (lp >= 100)
|
||||
{
|
||||
|
||||
RemoveLP(param1, 100)
|
||||
GiveRS(param1, 1440);
|
||||
|
||||
if (IsClientInGame(param1))
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have bouth RS! If Server is full, connect via console, and you can connect!")
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have %i liter, but you need 100 l for 1 Day RS!", lp);
|
||||
}
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (lp >= 450)
|
||||
{
|
||||
|
||||
RemoveLP(param1, 450)
|
||||
GiveRS(param1, 7200);
|
||||
|
||||
if (IsClientInGame(param1))
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have bouth RS! If Server is full, connect via console, and you can connect!")
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have %i liter, but you need 450 l for 5 Days RS!", lp);
|
||||
}
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
if (lp >= 800)
|
||||
{
|
||||
|
||||
RemoveLP(param1, 800)
|
||||
GiveRS(param1, 20160);
|
||||
|
||||
if (IsClientInGame(param1))
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have bouth RS! If Server is full, connect via console, and you can connect!")
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have %i liter, but you need 800 l for 14 Days RS!", lp);
|
||||
}
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
if (lp >= 100)
|
||||
{
|
||||
|
||||
RemoveLP(param1, 999)
|
||||
GiveRS(param1, 43200);
|
||||
|
||||
if (IsClientInGame(param1))
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have bouth RS! If Server is full, connect via console, and you can connect!")
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
PrintToChat(param1, "\x04[BEER]\x01 You have %i liter, but you need 999 l for 30 Days RS!", lp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* If the menu has ended, destroy it */
|
||||
else if (action == MenuAction_End)
|
||||
{
|
||||
CloseHandle(menu);
|
||||
}
|
||||
}
|
||||
|
||||
public Action:Abbrechnung(Handle:timer)
|
||||
{
|
||||
new players = GetClientCount(false);
|
||||
new players_max = GetMaxClients();
|
||||
|
||||
if (players <= (players_max / 4))
|
||||
{
|
||||
GiveLP(3);
|
||||
}
|
||||
else if (players <= (players_max / 2))
|
||||
{
|
||||
GiveLP(2);
|
||||
}
|
||||
else
|
||||
{
|
||||
GiveLP(1);
|
||||
}
|
||||
|
||||
RemoveRSMIN(5)
|
||||
|
||||
PrintToChatAll("\x04[Oktoberfest]\x01 Our Server running the \x04Beer!\x01 System to reward Players.");
|
||||
PrintToChatAll("\x04[BEER]\x01 Type \x04!beer\x01 to get up the Beer! menu with more options.");
|
||||
PrintHintTextToAll("[BEER] ONLINE");
|
||||
}
|
||||
|
||||
GetLP(client)
|
||||
{
|
||||
new String:steamid[125];
|
||||
GetClientAuthString(client, steamid, sizeof(steamid));
|
||||
new String:sqlstring[255];
|
||||
Format(sqlstring, sizeof(sqlstring), "SELECT points FROM lp WHERE steamid = '%s'", steamid);
|
||||
|
||||
new String:error_connect[255];
|
||||
new Handle:db = SQL_Connect("db", false, error_connect, sizeof(error_connect));
|
||||
new Handle:sql = SQL_Query(db, sqlstring);
|
||||
|
||||
SQL_FetchRow(sql);
|
||||
new lp = SQL_FetchInt(sql, 0);
|
||||
|
||||
CloseHandle(sql);
|
||||
CloseHandle(db);
|
||||
|
||||
return lp;
|
||||
}
|
||||
|
||||
GiveLP(amount)
|
||||
{
|
||||
new String:error_connect[255];
|
||||
new Handle:db = SQL_Connect("db", false, error_connect, sizeof(error_connect));
|
||||
|
||||
new i = 1;
|
||||
|
||||
while (i != (MaxClients+1))
|
||||
{
|
||||
new client = i;
|
||||
if (IsClientInGame(client))
|
||||
{
|
||||
new String:steamid[50];
|
||||
GetClientAuthString(client, steamid, sizeof(steamid))
|
||||
new String:sqlstring[256];
|
||||
Format(sqlstring, sizeof(sqlstring), "UPDATE lp SET points = points + %i WHERE steamid = '%s'", amount, steamid);
|
||||
|
||||
if (!SQL_FastQuery(db, sqlstring))
|
||||
{
|
||||
new String:error[255];
|
||||
SQL_GetError(db, error, sizeof(error));
|
||||
PrintToServer("Failed to query (error: %s)", error);
|
||||
}
|
||||
|
||||
PrintToServer("[BEER] Gived %N %i l (client %i)", client, amount, i);
|
||||
}
|
||||
i = i + 1;
|
||||
}
|
||||
|
||||
CloseHandle(db);
|
||||
}
|
||||
|
||||
RemoveLP(client, amount)
|
||||
{
|
||||
if (IsClientInGame(client))
|
||||
{
|
||||
new String:error_connect[255];
|
||||
new Handle:db = SQL_Connect("db", false, error_connect, sizeof(error_connect));
|
||||
|
||||
new String:steamid[50];
|
||||
GetClientAuthString(client, steamid, sizeof(steamid))
|
||||
new String:sqlstring[256];
|
||||
Format(sqlstring, sizeof(sqlstring), "UPDATE lp SET points = points - %i WHERE steamid = '%s'", amount, steamid);
|
||||
|
||||
if (!SQL_FastQuery(db, sqlstring))
|
||||
{
|
||||
new String:error[255];
|
||||
SQL_GetError(db, error, sizeof(error));
|
||||
PrintToServer("Failed to query (error: %s)", error);
|
||||
}
|
||||
CloseHandle(db);
|
||||
}
|
||||
}
|
||||
|
||||
GiveRS(client, min)
|
||||
{
|
||||
if (IsClientInGame(client))
|
||||
{
|
||||
new String:error_connect[255];
|
||||
new Handle:db = SQL_Connect("db", false, error_connect, sizeof(error_connect));
|
||||
|
||||
// In die lp-Datenbank eintragen (Step 1)
|
||||
new String:steamid[50];
|
||||
GetClientAuthString(client, steamid, sizeof(steamid))
|
||||
new String:sqlstring[256];
|
||||
Format(sqlstring, sizeof(sqlstring), "UPDATE lp SET rs = 1, rsmin = %i, serverid = %i WHERE steamid = '%s'", min, GetConVarInt(cv_serverid), steamid);
|
||||
|
||||
if (!SQL_FastQuery(db, sqlstring))
|
||||
{
|
||||
new String:error[255];
|
||||
SQL_GetError(db, error, sizeof(error));
|
||||
PrintToServer("Failed to query (error: %s)", error);
|
||||
}
|
||||
|
||||
// In die Sm-Admin Datenbank eintragen (Step 2)
|
||||
|
||||
Format(sqlstring, sizeof(sqlstring), "INSERT INTO sm_admins(authtype, identity, flags, name, immunity) VALUES ('steam','%s', 'b,a', '%N', 5)", steamid, client);
|
||||
|
||||
if (!SQL_FastQuery(db, sqlstring))
|
||||
{
|
||||
new String:error[255];
|
||||
SQL_GetError(db, error, sizeof(error));
|
||||
PrintToServer("Failed to query (error: %s)", error);
|
||||
}
|
||||
|
||||
CloseHandle(db);
|
||||
|
||||
ServerCommand("sm_reloadadmins");
|
||||
}
|
||||
}
|
||||
|
||||
bool:HaveClientRS(client)
|
||||
{
|
||||
if (IsClientInGame(client))
|
||||
{
|
||||
new String:steamid[50];
|
||||
GetClientAuthString(client, steamid, sizeof(steamid))
|
||||
new String:sqlstring[255];
|
||||
Format(sqlstring, sizeof(sqlstring), "SELECT id FROM lp WHERE steamid = '%s' AND rs = '1'", steamid);
|
||||
|
||||
new String:error_connect[255];
|
||||
new Handle:db = SQL_Connect("db", false, error_connect, sizeof(error_connect));
|
||||
new Handle:sql = SQL_Query(db, sqlstring);
|
||||
new rs_bool = SQL_GetRowCount(sql);
|
||||
CloseHandle(sql);
|
||||
CloseHandle(db);
|
||||
|
||||
if (rs_bool >= 1)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else if (rs_bool == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
GetRSMIN(client)
|
||||
{
|
||||
new String:steamid[50];
|
||||
GetClientAuthString(client, steamid, sizeof(steamid));
|
||||
new String:sqlstring[200];
|
||||
Format(sqlstring, sizeof(sqlstring), "SELECT rsmin FROM lp WHERE steamid = '%s'", steamid);
|
||||
|
||||
new String:error_connect[255];
|
||||
new Handle:db = SQL_Connect("db", false, error_connect, sizeof(error_connect));
|
||||
new Handle:sql = SQL_Query(db, sqlstring);
|
||||
|
||||
SQL_FetchRow(sql);
|
||||
new rsmin = SQL_FetchInt(sql, 0);
|
||||
|
||||
CloseHandle(sql);
|
||||
CloseHandle(db);
|
||||
|
||||
return rsmin;
|
||||
}
|
||||
|
||||
RemoveRSMIN(min)
|
||||
{
|
||||
new String:error_connect[255];
|
||||
new Handle:db = SQL_Connect("db", false, error_connect, sizeof(error_connect));
|
||||
|
||||
new String:sqlstring[256];
|
||||
Format(sqlstring, sizeof(sqlstring), "UPDATE lp SET rsmin = rsmin - %i WHERE rs = 1 AND serverid = %i", min, GetConVarInt(cv_serverid));
|
||||
|
||||
if (!SQL_FastQuery(db, sqlstring))
|
||||
{
|
||||
new String:error[255];
|
||||
SQL_GetError(db, error, sizeof(error));
|
||||
PrintToServer("Failed to query (error: %s)", error);
|
||||
}
|
||||
|
||||
new String:sqlstring2[150];
|
||||
Format(sqlstring2, sizeof(sqlstring2), "SELECT steamid FROM lp WHERE rs = 1 AND serverid = %i AND rsmin <= 0", GetConVarInt(cv_serverid));
|
||||
|
||||
new Handle:sql = SQL_Query(db, sqlstring2);
|
||||
new nummber = SQL_GetRowCount(sql);
|
||||
|
||||
if (nummber != 0)
|
||||
{
|
||||
for (new a = 0; a != nummber; a++)
|
||||
{
|
||||
new String:steamid[256];
|
||||
SQL_FetchRow(sql);
|
||||
SQL_FetchString(sql, 0, steamid, sizeof(steamid));
|
||||
|
||||
// Aus der LP-Datenbank austragen (Step 1)
|
||||
new String:sqlstr[256];
|
||||
Format(sqlstr, sizeof(sqlstr), "UPDATE lp SET rs = 0, rsmin = 0, serverid = 0 WHERE steamid = '%s'", steamid);
|
||||
|
||||
if (!SQL_FastQuery(db, sqlstr))
|
||||
{
|
||||
new String:ero[255];
|
||||
SQL_GetError(db, ero, sizeof(ero));
|
||||
PrintToServer("Failed to query (error: %s)", ero);
|
||||
}
|
||||
|
||||
// Aus der SM-Admin Datenbank austragen (Step 2)
|
||||
new String:sqlstr2[150];
|
||||
Format(sqlstr2, sizeof(sqlstr2), "DELETE FROM sm_admins WHERE identity = '%s'", steamid);
|
||||
|
||||
if (!SQL_FastQuery(db, sqlstr2))
|
||||
{
|
||||
new String:ero2[255];
|
||||
SQL_GetError(db, ero2, sizeof(ero2));
|
||||
PrintToServer("Failed to query (error: %s)", ero2);
|
||||
}
|
||||
}
|
||||
ServerCommand("sm_reloadadmins");
|
||||
}
|
||||
|
||||
CloseHandle(sql);
|
||||
CloseHandle(db);
|
||||
}
|
||||
|
||||
public Action:LottoZiehung(Handle:timer)
|
||||
{
|
||||
new String:error_connect[255];
|
||||
new Handle:db = SQL_Connect("db", false, error_connect, sizeof(error_connect));
|
||||
|
||||
for (new i = 1; i != (GetMaxClients()+1); i++)
|
||||
{
|
||||
if (IsClientInGame(i))
|
||||
{
|
||||
if (0.25 >= GetRandomFloat(0.1, 1.0))
|
||||
{
|
||||
new String:steamid[50];
|
||||
GetClientAuthString(i, steamid, sizeof(steamid))
|
||||
new String:sqlstring[256];
|
||||
Format(sqlstring, sizeof(sqlstring), "UPDATE lp SET points = points + 500 WHERE steamid = '%s'", steamid);
|
||||
|
||||
if (!SQL_FastQuery(db, sqlstring))
|
||||
{
|
||||
new String:error[255];
|
||||
SQL_GetError(db, error, sizeof(error));
|
||||
PrintToServer("Failed to query (error: %s)", error);
|
||||
}
|
||||
|
||||
PrintToChat(i, "\x01[\x04BEER\x01] Congratulations, you have won in the BEER Lottery! You got \x04500 l\x01 add to your beer stock!");
|
||||
PrintToChatAll("\x01[\x04BEER\x01] %N won in the BEER Lottery!", i);
|
||||
}
|
||||
}
|
||||
}
|
||||
CloseHandle(db);
|
||||
}
|
||||
|
||||
CheckCon()
|
||||
{
|
||||
new String:error_connect[255];
|
||||
new Handle:db = SQL_Connect("db", false, error_connect, sizeof(error_connect));
|
||||
|
||||
if (db != INVALID_HANDLE)
|
||||
{
|
||||
CloseHandle(db);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
CloseHandle(db);
|
||||
return 0;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user