Skocz do zawartości
Chumi

[Rozwiązane] Brak możliwości użycia komendy jeśli zostały 2 minuty do końca mapy (KPN)

Rekomendowane odpowiedzi

Siemka, ostatnio miałem chęć dodania pluginu ADEPT_KPN na serwer, jednak napotkałem jeden problem. Jeżeli ktoś da kilka sekund przed końcem mapy prośbę o zagranie w KPN, to kredyty giną. Czy jest jakaś możliwość, aby nie można było użyć tej komendy przez 2 minuty przed końcem mapy? W załączniku daję sp pluginu.

 

Spoiler
#include <store>
#include <clientprefs>

#pragma semicolon 1
#pragma newdecls required

#define MOD_TAG "\x01\x0B\x0E★ \x07[ADEPT-Kamień, Papier, Nożyce]\x04 "

Handle g_hAllowInvite;

bool g_bInGame[MAXPLAYERS + 1], Selected[MAXPLAYERS + 1], g_bAllowInvites[MAXPLAYERS + 1];
int g_iBetAmount[MAXPLAYERS + 1], g_iOponent[MAXPLAYERS + 1];

enum KPN
{
	None = 0, 
	Kamien, 
	Papier, 
	Nozyce, 
};

KPN kpn[MAXPLAYERS + 1];

public Plugin myinfo = 
{
	name = "ADEPT --> Kamień papier nożyce", 
	description = "Autorski Plugin StudioADEPT.net", 
	author = "Brum Brum", 
	version = "1.0", 
	url = "http://www.StudioADEPT.net/forum", 
};

public void OnPluginStart()
{
	g_hAllowInvite = RegClientCookie("sm_kpn_allowinvite", "Zezwala/Nie zezwala na zaproszenia do KPN", CookieAccess_Protected);
	RegConsoleCmd("sm_kpn", CMD_KPN);
}

public void OnClientCookiesCached(int client)
{
	char Value[11];
	GetClientCookie(client, g_hAllowInvite, Value, sizeof(Value));
	g_bAllowInvites[client] = StringToInt(Value);
}

public void OnClientDisconnect(int client)
{
	if (g_bInGame[client])
	{
		int client2 = GetClientOfUserId(g_iOponent[client]);
		
		Store_SetClientCredits(client2, Store_GetClientCredits(client) + g_iBetAmount[client]);
		Store_SetClientCredits(client, Store_GetClientCredits(client) - g_iBetAmount[client]);
		PrintToChat(client2, "%s Twój przeciwnik wyszedł z gry! Wygrałeś jego \x02%d kredytów", MOD_TAG, g_iBetAmount[client]);
		ResetAllVariables(client2);
	}
	if (AreClientCookiesCached(client))
	{
		char Value[11];
		Format(Value, sizeof(Value), "%d", g_bAllowInvites[client]);
		SetClientCookie(client, g_hAllowInvite, Value);
	}
	ResetAllVariables(client);
	g_bAllowInvites[client] = true;
}

public Action CMD_KPN(int client, int args)
{
	
	if (g_bInGame[client]) {
		PrintToChat(client, "%s Nie możesz wyzwać innego gracze w trakcie gry!", MOD_TAG);
		return Plugin_Handled;
	}
	
	if (args == 0)
	{
		OpenKPNMenu(client);
		return Plugin_Handled;
	}
	
	if (args < 2) {
		ReplyToCommand(client, "%s Użyj !kpn <nick> <suma>", MOD_TAG);
		return Plugin_Handled;
	}
	
	if (args > 2) {
		ReplyToCommand(client, "%s Użyj !kpn <nick> <suma>", MOD_TAG);
		return Plugin_Handled;
	}
	
	char arg[65], arg2[11];
	GetCmdArg(1, arg, sizeof(arg));
	GetCmdArg(2, arg2, sizeof(arg2));
	int count = StringToInt(arg2);
	
	if (count > Store_GetClientCredits(client))
	{
		PrintToChat(client, "%s Nie masz wystarczająco kredytów!", MOD_TAG);
		return Plugin_Handled;
	}
	if (count <= 0) {
		PrintToChat(client, "%s Kwota musi być większa od zera!", MOD_TAG);
		return Plugin_Handled;
	}
	
	int target = FindTarget(client, arg, false, false);
	if (target == -1)
	{
		return Plugin_Handled;
	}
	if (target == client)
	{
		PrintToChat(client, "%s Nie możesz wyzwać samego siebie XD", MOD_TAG);
		return Plugin_Handled;
	}
	if (!g_bAllowInvites[target])
	{
		PrintToChat(client, "%s Wskazany gracz nie akceptuje zaproszeń!", MOD_TAG);
		return Plugin_Handled;
	}
	if (g_bInGame[target]) {
		PrintToChat(client, "%s Nie możesz wyzwać innego gracze w trakcie jego gry!", MOD_TAG);
		return Plugin_Handled;
	}
	if (count > Store_GetClientCredits(target))
	{
		PrintToChat(client, "%s Osoba z którą chcesz grać nie ma tyle pieniędzy!", MOD_TAG);
		return Plugin_Handled;
	}
	KPN_Invite(client, target, count);
	return Plugin_Handled;
}

public void KPN_Invite(int client, int target, int count)
{
	char title[256], option[32];
	Menu menu = new Menu(Menu_Handler);
	Format(title, sizeof(title), "ADEPT -> Kamień, Papier, Nożyce\n%N wyzwał Ciebie na pojedynek w Kamień, Papier, Nożyce\nZawalczycie o %d kredytów", client, count);
	menu.SetTitle(title);
	Format(option, sizeof(option), "yes;%d;%d", GetClientUserId(client), count);
	menu.AddItem(option, "Akceptuję");
	Format(option, sizeof(option), "no;%d;%d", GetClientUserId(client), count);
	menu.AddItem(option, "Rezygnuję");
	menu.ExitButton = true;
	menu.Display(target, 15);
}

public int Menu_Handler(Menu menu, MenuAction action, int client, int item)
{
	if (!IsValidClient(client))return;
	
	switch (action)
	{
		case MenuAction_Select:
		{
			char info[128], TempArray[3][128];
			menu.GetItem(item, info, sizeof(info));
			ExplodeString(info, ";", TempArray, 3, sizeof(TempArray[]));
			int sender = GetClientOfUserId(StringToInt(TempArray[1]));
			int count = StringToInt(TempArray[2]);
			if (StrEqual(TempArray[0], "yes"))
			{
				g_iBetAmount[client] = count;
				g_iBetAmount[sender] = count;
				g_bInGame[client] = true;
				g_bInGame[sender] = true;
				g_iOponent[client] = GetClientUserId(sender);
				g_iOponent[sender] = GetClientUserId(client);
				StartKPN(client);
				StartKPN(sender);
			}
			else {
				PrintToChat(sender, "%s \x02%N\x04 odrzucił twoją propozycję gry!", MOD_TAG, client);
			}
		}
		case MenuAction_End:delete menu;
	}
}

void StartKPN(int client)
{
	if (!IsValidClient(client))return;
	
	Menu menu = new Menu(KPN_Handler);
	menu.SetTitle("ADEPT -> Co chcesz wystawić");
	menu.AddItem("", "Kamień");
	menu.AddItem("", "Papier");
	menu.AddItem("", "Nożyce");
	menu.ExitButton = false;
	menu.Display(client, MENU_TIME_FOREVER);
}

public int KPN_Handler(Menu menu, MenuAction action, int client, int item)
{
	if (!IsValidClient(client))return;
	
	if (action == MenuAction_Select)
	{
		switch (item)
		{
			case 0:kpn[client] = Kamien;
			case 1:kpn[client] = Papier;
			case 2:kpn[client] = Nozyce;
		}
		CheckGame(client);
	}
	else if (action == MenuAction_End)delete menu;
}

void CheckGame(int client)
{
	int client2 = GetClientOfUserId(g_iOponent[client]);
	//REMISY
	if (kpn[client] == Kamien && kpn[client2] == Kamien)
	{
		EndGame(true, client, client2);
	}
	if (kpn[client] == Papier && kpn[client2] == Papier)
	{
		EndGame(true, client, client2);
	}
	if (kpn[client] == Nozyce && kpn[client2] == Nozyce)
	{
		EndGame(true, client, client2);
	}
	//WYGRANE C1
	if (kpn[client] == Kamien && kpn[client2] == Nozyce)
	{
		EndGame(false, client, client2);
	}
	if (kpn[client] == Papier && kpn[client2] == Kamien)
	{
		EndGame(false, client, client2);
	}
	if (kpn[client] == Nozyce && kpn[client2] == Papier)
	{
		EndGame(false, client, client2);
	}
	//WYGRANE C2
	if (kpn[client] == Nozyce && kpn[client2] == Kamien)
	{
		EndGame(false, client2, client);
	}
	if (kpn[client] == Kamien && kpn[client2] == Papier)
	{
		EndGame(false, client2, client);
	}
	if (kpn[client] == Papier && kpn[client2] == Nozyce)
	{
		EndGame(false, client2, client);
	}
}

void EndGame(bool remis, int winner, int looser)
{
	char KPNStringWinner[16], KPNStringLooser[16];
	switch (kpn[winner])
	{
		case Kamien:Format(KPNStringWinner, sizeof(KPNStringWinner), "Kamień");
		case Papier:Format(KPNStringWinner, sizeof(KPNStringWinner), "Papier");
		case Nozyce:Format(KPNStringWinner, sizeof(KPNStringWinner), "Nożyce");
	}
	switch (kpn[looser])
	{
		case Kamien:Format(KPNStringLooser, sizeof(KPNStringLooser), "Kamień");
		case Papier:Format(KPNStringLooser, sizeof(KPNStringLooser), "Papier");
		case Nozyce:Format(KPNStringLooser, sizeof(KPNStringLooser), "Nożyce");
	}
	if (remis) {
		PrintToChat(winner, "%s \x02REMIS\x04 Gracz \x02%N\x04 postawił \x02%s", MOD_TAG, looser, KPNStringLooser);
		PrintToChat(looser, "%s \x02REMIS\x04 Gracz \x02%N\x04 postawił \x02%s", MOD_TAG, winner, KPNStringWinner);
		ResetAllVariables(winner);
		ResetAllVariables(looser);
		return;
	}
	else
	{
		Store_SetClientCredits(winner, Store_GetClientCredits(winner) + g_iBetAmount[winner]);
		Store_SetClientCredits(looser, Store_GetClientCredits(looser) - g_iBetAmount[winner]);
		PrintToChat(winner, "%s Wygrałeś \x02%d kredytów\x04 Twój przeciwnik postawił \x02%s", MOD_TAG, g_iBetAmount[winner], KPNStringLooser);
		PrintToChat(looser, "%s Przegrałeś \x02%d kredytów\x04 Twój przeciwnik postawił \x02%s", MOD_TAG, g_iBetAmount[winner], KPNStringWinner);
		ResetAllVariables(winner);
		ResetAllVariables(looser);
		return;
	}
}

void OpenKPNMenu(int client)
{
	Menu menu = new Menu(KPN_Menu);
	menu.SetTitle("ADEPT -> Kamień Papier Nożyce");
	menu.AddItem("", "Ustawienia");
	menu.ExitButton = true;
	menu.Display(client, 60);
}

public int KPN_Menu(Menu menu, MenuAction action, int client, int item)
{
	if (!IsValidClient(client))return;
	
	switch (action)
	{
		case MenuAction_Select:
		{
			switch (item)
			{
				case 0:
				{
					Menu nmenu = new Menu(KPNSetting_Handler);
					nmenu.AddItem("", "Zezwalaj na zaproszenia do gry");
					nmenu.AddItem("", "Odrzucaj zaproszenia do gry");
					nmenu.ExitButton = true;
					nmenu.Display(client, 30);
				}
			}
		}
		case MenuAction_End:delete menu;
	}
}

public int KPNSetting_Handler(Menu menu, MenuAction action, int client, int item)
{
	if (!IsValidClient(client))return;
	
	switch (action)
	{
		case MenuAction_Select:
		{
			switch (item)
			{
				case 0:
				{
					g_bAllowInvites[client] = true;
					PrintToChat(client, "%s Zezwalasz na zaproszenia do gry w KPN!", MOD_TAG);
				}
				case 1:
				{
					g_bAllowInvites[client] = false;
					PrintToChat(client, "%s Nie zezwalasz na zaproszenia do gry w KPN!", MOD_TAG);
				}
			}
		}
	}
}

void ResetAllVariables(int client)
{
	g_iBetAmount[client] = -1;
	g_bInGame[client] = false;
	g_iOponent[client] = -1;
	kpn[client] = None;
	Selected[client] = false;
} 

public bool IsValidClient(int client)
{
	if (!(1 <= client <= MaxClients) || !IsClientInGame(client) || !IsClientConnected(client) || IsFakeClient(client) || IsClientSourceTV(client))
		return false;
	
	return true;
} 

 

 

ADEPT_KPN.sp
Hej! Skorzystałeś z linku lub pobrałeś załącznik? Uhonoruj naszą pracę poprzez rejestrację na forum i rośnij razem z nami!

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Spoiler
#include <store>
#include <clientprefs>

#pragma semicolon 1
#pragma newdecls required

#define MOD_TAG "\x01\x0B\x0E★ \x07[ADEPT-Kamień, Papier, Nożyce]\x04 "

Handle g_hAllowInvite;

bool g_bInGame[MAXPLAYERS + 1], Selected[MAXPLAYERS + 1], g_bAllowInvites[MAXPLAYERS + 1];
int g_iBetAmount[MAXPLAYERS + 1], g_iOponent[MAXPLAYERS + 1];

enum KPN
{
	None = 0, 
	Kamien, 
	Papier, 
	Nozyce, 
};

KPN kpn[MAXPLAYERS + 1];

public Plugin myinfo = 
{
	name = "ADEPT --> Kamień papier nożyce", 
	description = "Autorski Plugin StudioADEPT.net", 
	author = "Brum Brum", 
	version = "1.0", 
	url = "http://www.StudioADEPT.net/forum", 
};

public void OnPluginStart()
{
	g_hAllowInvite = RegClientCookie("sm_kpn_allowinvite", "Zezwala/Nie zezwala na zaproszenia do KPN", CookieAccess_Protected);
	RegConsoleCmd("sm_kpn", CMD_KPN);
}

public void OnClientCookiesCached(int client)
{
	char Value[11];
	GetClientCookie(client, g_hAllowInvite, Value, sizeof(Value));
	g_bAllowInvites[client] = StringToInt(Value);
}

public void OnClientDisconnect(int client)
{
	if (g_bInGame[client])
	{
		int client2 = GetClientOfUserId(g_iOponent[client]);
		
		Store_SetClientCredits(client2, Store_GetClientCredits(client) + g_iBetAmount[client]);
		Store_SetClientCredits(client, Store_GetClientCredits(client) - g_iBetAmount[client]);
		PrintToChat(client2, "%s Twój przeciwnik wyszedł z gry! Wygrałeś jego \x02%d kredytów", MOD_TAG, g_iBetAmount[client]);
		ResetAllVariables(client2);
	}
	if (AreClientCookiesCached(client))
	{
		char Value[11];
		Format(Value, sizeof(Value), "%d", g_bAllowInvites[client]);
		SetClientCookie(client, g_hAllowInvite, Value);
	}
	ResetAllVariables(client);
	g_bAllowInvites[client] = true;
}

public Action CMD_KPN(int client, int args)
{
	
	if (g_bInGame[client]) {
		PrintToChat(client, "%s Nie możesz wyzwać innego gracze w trakcie gry!", MOD_TAG);
		return Plugin_Handled;
	}
	
	if (args == 0)
	{
		OpenKPNMenu(client);
		return Plugin_Handled;
	}
	
	if (args < 2) {
		ReplyToCommand(client, "%s Użyj !kpn <nick> <suma>", MOD_TAG);
		return Plugin_Handled;
	}
	
	if (args > 2) {
		ReplyToCommand(client, "%s Użyj !kpn <nick> <suma>", MOD_TAG);
		return Plugin_Handled;
	}
	int time;
	GetMapTimeLeft(time);
	if (time < 120) {
		ReplyToCommand(client, "%s Nie możesz zagrać. Do końca mapy pozostało mniej niż 2 minuty.", MOD_TAG);
		return Plugin_Handled;
	}
	
	char arg[65], arg2[11];
	GetCmdArg(1, arg, sizeof(arg));
	GetCmdArg(2, arg2, sizeof(arg2));
	int count = StringToInt(arg2);
	
	if (count > Store_GetClientCredits(client))
	{
		PrintToChat(client, "%s Nie masz wystarczająco kredytów!", MOD_TAG);
		return Plugin_Handled;
	}
	if (count <= 0) {
		PrintToChat(client, "%s Kwota musi być większa od zera!", MOD_TAG);
		return Plugin_Handled;
	}
	
	int target = FindTarget(client, arg, false, false);
	if (target == -1)
	{
		return Plugin_Handled;
	}
	if (target == client)
	{
		PrintToChat(client, "%s Nie możesz wyzwać samego siebie XD", MOD_TAG);
		return Plugin_Handled;
	}
	if (!g_bAllowInvites[target])
	{
		PrintToChat(client, "%s Wskazany gracz nie akceptuje zaproszeń!", MOD_TAG);
		return Plugin_Handled;
	}
	if (g_bInGame[target]) {
		PrintToChat(client, "%s Nie możesz wyzwać innego gracze w trakcie jego gry!", MOD_TAG);
		return Plugin_Handled;
	}
	if (count > Store_GetClientCredits(target))
	{
		PrintToChat(client, "%s Osoba z którą chcesz grać nie ma tyle pieniędzy!", MOD_TAG);
		return Plugin_Handled;
	}
	KPN_Invite(client, target, count);
	return Plugin_Handled;
}

public void KPN_Invite(int client, int target, int count)
{
	char title[256], option[32];
	Menu menu = new Menu(Menu_Handler);
	Format(title, sizeof(title), "ADEPT -> Kamień, Papier, Nożyce\n%N wyzwał Ciebie na pojedynek w Kamień, Papier, Nożyce\nZawalczycie o %d kredytów", client, count);
	menu.SetTitle(title);
	Format(option, sizeof(option), "yes;%d;%d", GetClientUserId(client), count);
	menu.AddItem(option, "Akceptuję");
	Format(option, sizeof(option), "no;%d;%d", GetClientUserId(client), count);
	menu.AddItem(option, "Rezygnuję");
	menu.ExitButton = true;
	menu.Display(target, 15);
}

public int Menu_Handler(Menu menu, MenuAction action, int client, int item)
{
	if (!IsValidClient(client))return;
	
	switch (action)
	{
		case MenuAction_Select:
		{
			char info[128], TempArray[3][128];
			menu.GetItem(item, info, sizeof(info));
			ExplodeString(info, ";", TempArray, 3, sizeof(TempArray[]));
			int sender = GetClientOfUserId(StringToInt(TempArray[1]));
			int count = StringToInt(TempArray[2]);
			if (StrEqual(TempArray[0], "yes"))
			{
				g_iBetAmount[client] = count;
				g_iBetAmount[sender] = count;
				g_bInGame[client] = true;
				g_bInGame[sender] = true;
				g_iOponent[client] = GetClientUserId(sender);
				g_iOponent[sender] = GetClientUserId(client);
				StartKPN(client);
				StartKPN(sender);
			}
			else {
				PrintToChat(sender, "%s \x02%N\x04 odrzucił twoją propozycję gry!", MOD_TAG, client);
			}
		}
		case MenuAction_End:delete menu;
	}
}

void StartKPN(int client)
{
	if (!IsValidClient(client))return;
	
	Menu menu = new Menu(KPN_Handler);
	menu.SetTitle("ADEPT -> Co chcesz wystawić");
	menu.AddItem("", "Kamień");
	menu.AddItem("", "Papier");
	menu.AddItem("", "Nożyce");
	menu.ExitButton = false;
	menu.Display(client, MENU_TIME_FOREVER);
}

public int KPN_Handler(Menu menu, MenuAction action, int client, int item)
{
	if (!IsValidClient(client))return;
	
	if (action == MenuAction_Select)
	{
		switch (item)
		{
			case 0:kpn[client] = Kamien;
			case 1:kpn[client] = Papier;
			case 2:kpn[client] = Nozyce;
		}
		CheckGame(client);
	}
	else if (action == MenuAction_End)delete menu;
}

void CheckGame(int client)
{
	int client2 = GetClientOfUserId(g_iOponent[client]);
	//REMISY
	if (kpn[client] == Kamien && kpn[client2] == Kamien)
	{
		EndGame(true, client, client2);
	}
	if (kpn[client] == Papier && kpn[client2] == Papier)
	{
		EndGame(true, client, client2);
	}
	if (kpn[client] == Nozyce && kpn[client2] == Nozyce)
	{
		EndGame(true, client, client2);
	}
	//WYGRANE C1
	if (kpn[client] == Kamien && kpn[client2] == Nozyce)
	{
		EndGame(false, client, client2);
	}
	if (kpn[client] == Papier && kpn[client2] == Kamien)
	{
		EndGame(false, client, client2);
	}
	if (kpn[client] == Nozyce && kpn[client2] == Papier)
	{
		EndGame(false, client, client2);
	}
	//WYGRANE C2
	if (kpn[client] == Nozyce && kpn[client2] == Kamien)
	{
		EndGame(false, client2, client);
	}
	if (kpn[client] == Kamien && kpn[client2] == Papier)
	{
		EndGame(false, client2, client);
	}
	if (kpn[client] == Papier && kpn[client2] == Nozyce)
	{
		EndGame(false, client2, client);
	}
}

void EndGame(bool remis, int winner, int looser)
{
	char KPNStringWinner[16], KPNStringLooser[16];
	switch (kpn[winner])
	{
		case Kamien:Format(KPNStringWinner, sizeof(KPNStringWinner), "Kamień");
		case Papier:Format(KPNStringWinner, sizeof(KPNStringWinner), "Papier");
		case Nozyce:Format(KPNStringWinner, sizeof(KPNStringWinner), "Nożyce");
	}
	switch (kpn[looser])
	{
		case Kamien:Format(KPNStringLooser, sizeof(KPNStringLooser), "Kamień");
		case Papier:Format(KPNStringLooser, sizeof(KPNStringLooser), "Papier");
		case Nozyce:Format(KPNStringLooser, sizeof(KPNStringLooser), "Nożyce");
	}
	if (remis) {
		PrintToChat(winner, "%s \x02REMIS\x04 Gracz \x02%N\x04 postawił \x02%s", MOD_TAG, looser, KPNStringLooser);
		PrintToChat(looser, "%s \x02REMIS\x04 Gracz \x02%N\x04 postawił \x02%s", MOD_TAG, winner, KPNStringWinner);
		ResetAllVariables(winner);
		ResetAllVariables(looser);
		return;
	}
	else
	{
		Store_SetClientCredits(winner, Store_GetClientCredits(winner) + g_iBetAmount[winner]);
		Store_SetClientCredits(looser, Store_GetClientCredits(looser) - g_iBetAmount[winner]);
		PrintToChat(winner, "%s Wygrałeś \x02%d kredytów\x04 Twój przeciwnik postawił \x02%s", MOD_TAG, g_iBetAmount[winner], KPNStringLooser);
		PrintToChat(looser, "%s Przegrałeś \x02%d kredytów\x04 Twój przeciwnik postawił \x02%s", MOD_TAG, g_iBetAmount[winner], KPNStringWinner);
		ResetAllVariables(winner);
		ResetAllVariables(looser);
		return;
	}
}

void OpenKPNMenu(int client)
{
	Menu menu = new Menu(KPN_Menu);
	menu.SetTitle("ADEPT -> Kamień Papier Nożyce");
	menu.AddItem("", "Ustawienia");
	menu.ExitButton = true;
	menu.Display(client, 60);
}

public int KPN_Menu(Menu menu, MenuAction action, int client, int item)
{
	if (!IsValidClient(client))return;
	
	switch (action)
	{
		case MenuAction_Select:
		{
			switch (item)
			{
				case 0:
				{
					Menu nmenu = new Menu(KPNSetting_Handler);
					nmenu.AddItem("", "Zezwalaj na zaproszenia do gry");
					nmenu.AddItem("", "Odrzucaj zaproszenia do gry");
					nmenu.ExitButton = true;
					nmenu.Display(client, 30);
				}
			}
		}
		case MenuAction_End:delete menu;
	}
}

public int KPNSetting_Handler(Menu menu, MenuAction action, int client, int item)
{
	if (!IsValidClient(client))return;
	
	switch (action)
	{
		case MenuAction_Select:
		{
			switch (item)
			{
				case 0:
				{
					g_bAllowInvites[client] = true;
					PrintToChat(client, "%s Zezwalasz na zaproszenia do gry w KPN!", MOD_TAG);
				}
				case 1:
				{
					g_bAllowInvites[client] = false;
					PrintToChat(client, "%s Nie zezwalasz na zaproszenia do gry w KPN!", MOD_TAG);
				}
			}
		}
	}
}

void ResetAllVariables(int client)
{
	g_iBetAmount[client] = -1;
	g_bInGame[client] = false;
	g_iOponent[client] = -1;
	kpn[client] = None;
	Selected[client] = false;
}

public bool IsValidClient(int client)
{
	if (!(1 <= client <= MaxClients) || !IsClientInGame(client) || !IsClientConnected(client) || IsFakeClient(client) || IsClientSourceTV(client))
		return false;
	
	return true;
} 

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Problem został rozwiązany

Jeżeli się z tym nie zgadzasz, raportuj ten post

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...