SA-MP Forums Archive
Help to making /gangshow command - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Help to making /gangshow command (/showthread.php?tid=611106)



Help to making /gangshow command - alekschowee - 02.07.2016

Helpppp
Show and Hide Gang Name


Re: Help to making /gangshow command - alekschowee - 02.07.2016

Helpppp


Re: Help to making /gangshow command - SyS - 02.07.2016

how we can help you unless you provide some codes of your gang system


Re: Help to making /gangshow command - alekschowee - 02.07.2016

Код:
#include <a_samp>
#include <MXini>
#include <file>

#define MAX_GANGS 500

new
tgang[MAX_PLAYERS],
name[MAX_GANGS][256],
col[MAX_GANGS][256],
gangskin[MAX_PLAYERS],
id[MAX_PLAYERS] = -1
;

new
GangName[MAX_GANGS][256],
Gang[MAX_GANGS],
GangLvl[MAX_PLAYERS],
GName[MAX_GANGS][256],
GColor[MAX_GANGS][10],
PGang[MAX_PLAYERS],
Float:GSpawnX[MAX_GANGS],
Float:GSpawnY[MAX_GANGS],
Float:GSpawnZ[MAX_GANGS],
GSkin[MAX_GANGS][7]
;

public OnFilterScriptInit()
{
    GangLoad();
	print("\n--------------------------------------");
	print("GangSystem by _TeraN_(ZakMage) was on! ");
	print("  Modifed by Jekson and ARH[I]VIRUS    ");
	print("--------------------------------------\n");
	return true;
}

public OnFilterScriptExit()
{
    for(new i; i<MAX_PLAYERS; i++) SaveAccount(i);
	return true;
}

public OnPlayerDisconnect(playerid, reason)
{
    SaveAccount(playerid);
	return true;
}

public OnPlayerRequestClass(playerid, classid)
{
    PGang[playerid] = 0;
    GangLvl[playerid] = 0;
    LoadAccount(playerid);
	return true;
}

public OnPlayerSpawn(playerid)
{
	SetTimerEx("Spawn", 500, false, "i", playerid);
	return true;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
	return true;
}

public OnPlayerText(playerid, text[])
{
	if(IsPlayerConnected(playerid))
	{
		if(text[0] == '!')
	    {
	  		new string[128],string2[128];
	  		format(string, sizeof(string), "{bab9b6}[{00a8ff}Gang чат{bab9b6}] %s[ID: %d]: %s", PlayerName(playerid),playerid, text[1]);
	  		format(string2, sizeof(string2), "[Gang чат] %s[ID: %d]: %s", PlayerName(playerid),playerid, text[1]);
	    	printf("%s", string2);
			for(new i; i<MAX_PLAYERS; i++)
			{
				if(PGang[i] == PGang[playerid])
				{
				SendClientMessage(i, GetPlayerColor(playerid), string);
				}
			}
	    	return false;
		}
	}
	new string[256],string2[256];
	if(PGang[playerid] > 0)
	{
	    GetPlayerColor(playerid);
		format(string, sizeof(string), "[Банда: %s ] %s{00FD00}[ID: %d]{FFFFFF}: %s",GName[PGang[playerid]], PlayerName(playerid), playerid, text);
		format(string2, sizeof(string2), "[Банда: %s ] %s[ID: %d]: %s",GName[PGang[playerid]], PlayerName(playerid), playerid, text);
		printf("%s", string2);
		SendClientMessageToAll(GetPlayerColor(playerid), string);
	    return false;
	}
	return true;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	new cmd[256], idx;
	cmd = strtok(cmdtext,idx);
	if(!strcmp(cmd, "/gang", true))
	{
		ShowPlayerDialog(playerid, 1001, DIALOG_STYLE_LIST, "{FF0000}[Samp-Play]{FFFFFF} - Gang Menu", "\
		Создать банду\
		\nРедактировать\
		\nПригласить в банду\
		\nУйти из банды\
		", "Выбрать", "Отмена");
		return true;
 	}
	return false;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new string[256];
	if(dialogid == 1001)
	{
	    if(response)
	    {
		    switch(listitem)
		    {
		        case 0:
		        {
		            if(PGang[playerid] == 0 && GetPlayerScore(playerid) >= 1500 && GetPlayerMoney(playerid) >= 500000)
					{
	                	ShowPlayerDialog(playerid, 2001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Create", "Введите название банды:", "Принять", "Отмена");
	                }else return SendClientMessage(playerid, 0xFF0000FF, "Вы должны выйти из своей банды, и у вас должно быть как минимум 1500 очков и 500.000$");
		        }
		        case 1:
		        {
		            if(PGang[playerid] != 0 && GangLvl[playerid] == 6)
					{
	                	ShowPlayerDialog(playerid, 1005, DIALOG_STYLE_LIST, "{FF0000}[Samp-Play]{FFFFFF} - Gang Menu", "Назначить скины\nНазначить место спавна\nНазначить ранг\nКикнуть из банды\nИзменить цвет банды\nИзменить название банды\nУдалить банду", "Принять", "Отмена");
	                }else return SendClientMessage(playerid, 0xFF0000FF, "Вы должны состоять в банде, и у вас должен быть ранг лидера.");
		        }
		        case 2:
		        {
					if(PGang[playerid] != 0 && GangLvl[playerid] >= 4)
					{
	                	ShowPlayerDialog(playerid, 3001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Invite", "Введите id игрока, которого хотите пригласить:", "Принять", "Отмена");
					}else return SendClientMessage(playerid, 0xFF0000FF, "Вы должны состоять в банде, и у вас должен быть как минимум 4 ранг.");
		        }
		        case 3:
		        {
					if(PGang[playerid] > 0)
					{
	                	ShowPlayerDialog(playerid, 6001, DIALOG_STYLE_MSGBOX, "{FF0000}[Samp-Play]{FFFFFF} - Gang Exit", "Вы точно хотите выйти из банды?", "Да", "Нет");
					}else return SendClientMessage(playerid, 0xFF0000FF, "Вы должны состоять в банде!");
		        }
		    }
		}
	}
	else if(dialogid == 1005)
	{
 		if(response)
	    {
	    switch(listitem)
		    {
     			case 0:
		        {
		            if(PGang[playerid] != 0 && GangLvl[playerid] == 6)
					{
	                	ShowPlayerDialog(playerid, 8001, DIALOG_STYLE_LIST, "{FF0000}[Samp-Play]{FFFFFF} - Gang Skin", "Нуб\nИгрок\nПро игрок\nЭлита\nЗам лидера\nЛидер", "Принять", "Отмена");
	                }else return SendClientMessage(playerid, 0xFF0000FF, "Вы должны состоять в банде, и у вас должен быть ранг лидера.");
		        }
		        case 1:
		        {
		            if(PGang[playerid] != 0 && GangLvl[playerid] == 6)
					{
	                	ShowPlayerDialog(playerid, 7001, DIALOG_STYLE_MSGBOX, "{FF0000}[Samp-Play]{FFFFFF} - Gang Spawn", "Вы точно хотите назначить место спавна на этом месте?", "Принять", "Отмена");
	                }else return SendClientMessage(playerid, 0xFF0000FF, "Вы должны состоять в банде, и у вас должен быть ранг лидера.");
		        }
		        case 2:
		        {
		            if(PGang[playerid] != 0 && GangLvl[playerid] == 6)
					{
	                	ShowPlayerDialog(playerid, 9001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Rang", "Введите id игрока, которому хотите назначит ранг:", "Принять", "Отмена");
	                }else return SendClientMessage(playerid, 0xFF0000FF, "Вы должны состоять в банде, и у вас должен быть ранг лидера.");
		        }
		        case 3:
		        {
					if(PGang[playerid] != 0 && GangLvl[playerid] >= 5)
					{
	                	ShowPlayerDialog(playerid, 4001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Kick", "Введите id игрока, которого хотите кикнуть:", "Принять", "Отмена");
					}else return SendClientMessage(playerid, 0xFF0000FF, "Вы должны состоять в банде, и у вас должен быть как минимум 5 ранг.");
		        }
		        case 4:
		        {
					if(PGang[playerid] != 0 && GangLvl[playerid] == 6)
					{
	                	ShowPlayerDialog(playerid, 5001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Color", "Введите 6 символов формата RRGGBB:", "Принять", "Отмена");
					}else return SendClientMessage(playerid, 0xFF0000FF, "Вы должны состоять в банде, и у вас должен быть ранг лидера.");
		        }
		        case 5:
		        {
					if(PGang[playerid] != 0 && GetPlayerMoney(playerid) >= 1000000 && GangLvl[playerid] == 6)
					{
	                	ShowPlayerDialog(playerid, 10010, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Name Change", "Введите новое имя банды\nв поле ниже:", "Принять", "Отмена");
					}else return SendClientMessage(playerid, 0xFF0000FF, "Для смены имени требуеться: ранг лидера и 1.000.000$");
		        }
		        case 6:
		        {
	        		if(PGang[playerid] != 0 && GangLvl[playerid] == 6)
	        		{
        				ShowPlayerDialog(playerid, 7041, DIALOG_STYLE_MSGBOX, "{FF0000}[Samp-Play]{FFFFFF} - Gang Delete", "Вы точно хотите удалить свою банду?", "Да", "Отмена");
					}else return SendClientMessage(playerid, 0xFF0000FF, "Вы должны состоять в банде, и у вас должен быть ранг лидера.");
				}
		    }
	    }
 	}
	else if(dialogid == 2001)
	{
	    if(response)
	    {
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Create", "Введите название банды:", "Принять", "Отмена");
			format(GangName[playerid], 256, inputtext);
			ShowPlayerDialog(playerid, 2002, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Create", "Введите цвет банды:", "Принять", "Отмена");
   		}
	}
	else if(dialogid == 2002)
	{
	    if(response)
	    {
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2002, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Create", "Введите цвет банды:", "Принять", "Отмена");
			if(strlen(inputtext) != 6)
			{
				SendClientMessage(playerid, 0xFF0000, "Значение должно быть из 6 символов формата RRGGBB!");
				return ShowPlayerDialog(playerid, 2002, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Create", "Введите цвет банды:", "Принять", "Отмена");
			}
			new f[256],year,month,day,lolo[128]; getdate(year, month, day);
			format(f, 256, "Gangs/%i.ini",GetFreeGang());
			new cfile = ini_createFile(f);
			if(cfile == INI_OK)
			{
				GangLvl[playerid] = 6;
				PGang[playerid] = GetFreeGang();
				format(GName[PGang[playerid]], 256, GangName[playerid]);
				format(GColor[PGang[playerid]], 10, "%sFF", inputtext);
				format(lolo, sizeof(lolo),"%d/%d/%d",day, month, year);
				new hex[MAX_PLAYERS];
				hex[playerid] = HexToInt(GColor[PGang[playerid]]);
				SetPlayerColor(playerid, hex[playerid]);
				Gang[GetFreeGang()] = 1;
				GivePlayerMoney(playerid, -1000000);
				format(string, sizeof(string), "{FFFF00}Банда успешно создана!\r\n{FFFF00}Название банды: %s\r\n{FFFF00}Цвет банды: {%s}%s\r\n{FFFF00}Дата основания: {FFFFFF}%s", GName[PGang[playerid]], inputtext,GColor[PGang[playerid]],lolo);
				ShowPlayerDialog(playerid, 1002, DIALOG_STYLE_MSGBOX, "{FF0000}[Samp-Play]{FFFFFF} - Gang Create", string, "Принять", "");
			    ini_setString(cfile, "Gang name", GName[PGang[playerid]]);
			    ini_setString(cfile, "Gang color", GColor[PGang[playerid]]);
			    ini_setString(cfile, "founded", lolo);
   			    ini_setFloat(cfile, "SpawnX", 0.0);
			    ini_setFloat(cfile, "SpawnY", 0.0);
			    ini_setFloat(cfile, "SpawnZ", 0.0);
       			ini_setInteger(cfile, "Skin1", 0);
			    ini_setInteger(cfile, "Skin2", 0);
			    ini_setInteger(cfile, "Skin2", 0);
			    ini_setInteger(cfile, "Skin3", 0);
			    ini_setInteger(cfile, "Skin4", 0);
			    ini_setInteger(cfile, "Skin5", 0);
			    ini_setInteger(cfile, "Skin6", 0);
				ini_closeFile(cfile);
			}
	    }
	}
	else if(dialogid == 3001)
	{
	    if(response)
	    {
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 3001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Invite", "Введите id игрока, которого хотите пригласить:", "Принять", "Отмена");
			if(IsPlayerConnected(strval(inputtext)))
			{
				if(PGang[strval(inputtext)] == 0)
				{
				    format(string, sizeof(string), "Игрок %s пригласил Вас в банду '%s'", PlayerName(playerid), GName[PGang[playerid]]);
				    ShowPlayerDialog(strval(inputtext), 3002, DIALOG_STYLE_MSGBOX, "Приглашение в банду", string, "Принять", "Отказать");
				    format(string, sizeof(string), "Лидер '%s' выслал приглашение игроку '%s'", PlayerName(playerid), PlayerName(id[playerid]));
				    for(new i; i<MAX_PLAYERS; i++)
				    {
				        if(PGang[i] == PGang[playerid])
				        {
							
							SendClientMessage(i, 0xFF0000FF, string);
				        }
					}
				    tgang[strval(inputtext)] = PGang[playerid];
				}else return SendClientMessage(playerid, 0xFFFFFFFF, "Этот игрок уже в банде!");
			}else return SendClientMessage(playerid, 0xFFFFFFFF, "Этот игрок не в игре!");
	    }
	}
	else if(dialogid == 3002)
	{
	    if(response)
	    {
            PGang[playerid] = tgang[playerid];
            GangLvl[playerid] = 1;
			new hex[MAX_PLAYERS];
			hex[playerid] = HexToInt(GColor[PGang[playerid]]);
			SetPlayerColor(playerid, hex[playerid]);
            format(string, sizeof(string), "Вы вступили в банду '%s'", GName[PGang[playerid]]);
            SendClientMessage(playerid, 0xFFFFFFFF, string);
            format(string, sizeof(string), "%s вступил в банду!", PlayerName(playerid));
            for(new i; i<MAX_PLAYERS; i++)
            {
				if(PGang[i] == PGang[playerid])
				{
				    SendClientMessage(i, 0xFFFF00FF, string);
				}
            }
	    }
	    else
		{
		    tgang[playerid] = 0;
		}
	}
	else if(dialogid == 4001)
	{
	    if(response)
	    {
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 4001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Kick", "Введите id игрока, которого хотите кикнуть:", "Принять", "Отмена");
			if(IsPlayerConnected(strval(inputtext)))
			{
				if(PGang[strval(inputtext)] == PGang[playerid])
				{
					PGang[strval(inputtext)] = 0;
					GangLvl[strval(inputtext)] = 0;
					format(string, 256, "{FF0000}Вы были кикнуты из банды игроком '{FFFFFF}%s{FF0000}'", PlayerName(playerid));
					SendClientMessage(playerid, 0xFF0000FF, string);
				}else return SendClientMessage(playerid, 0xFFFFFFFF, "Этот игрок не в вашей банде!");
			}else return SendClientMessage(playerid, 0xFFFFFFFF, "Этот игрок не в игре!");
	    }
	}
	else if(dialogid == 5001)
	{
	    if(response)
	    {
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 5001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Color", "Введите 6 символов формата RRGGBB:", "Принять", "Отмена");
			if(strlen(inputtext) != 6)
			{
				SendClientMessage(playerid, 0xFF0000FF, "Значение должно быть из 6 символов формата RRGGBB!");
				return ShowPlayerDialog(playerid, 5001, DIALOG_STYLE_INPUT, "Смена цвета банды", "Введите 6 символов формата RRGGBB:", "Принять", "Отмена");
			}
			format(GColor[PGang[playerid]], 10, "%sFF", inputtext);
			new hex[MAX_PLAYERS];
			hex[playerid] = HexToInt(GColor[PGang[playerid]]);
			SetPlayerColor(playerid,hex[playerid]);
			format(string, sizeof(string), "Теперь цвет вашей банды: {%s}%s", inputtext, GColor[PGang[playerid]]);
			SendClientMessage(playerid, 0xCCFF00FF, string);
			new f[256];
			format(f, 256, "Gangs/%i.ini",PGang[playerid]);
			new file = ini_openFile(f);
			if(file == INI_OK)
			{
				ini_setString(file, "Gang color", GColor[PGang[playerid]]);
				ini_closeFile(file);
			}
	    }
	}
	else if(dialogid == 6001)
	{
	    if(response)
	    {
	        format(string,sizeof(string), "{FFFF00}'{FFFFFF}%s{FFFF00}' ушёл из банды!", PlayerName(playerid));
	        for(new i; i<MAX_PLAYERS; i++)
	        {
				if(PGang[i] == PGang[playerid] && i != playerid)
				{
				 	SendClientMessage(i, 0xFFFF00, string);
				}
			}
			PGang[playerid] = 0;
			GangLvl[playerid] = 0;
	    }
	}
	else if(dialogid == 7001)
	{
	    if(response)
	    {
	        new Float:x, Float:y, Float:z;
			GetPlayerPos(playerid, x, y, z);
			GSpawnX[PGang[playerid]] = x;
			GSpawnY[PGang[playerid]] = y;
			GSpawnZ[PGang[playerid]] = z;
            new f[256];
			format(f, 256, "Gangs/%i.ini",PGang[playerid]);
			new file = ini_openFile(f);
			if(file == INI_OK)
			{
			    ini_setFloat(file, "SpawnX", x);
			    ini_setFloat(file, "SpawnY", y);
			    ini_setFloat(file, "SpawnZ", z);
			    ini_closeFile(file);
			}
	    }
	}
	else if(dialogid == 8001)
	{
	    if(response)
	    {
			switch(listitem)
			{
	            case 0: gangskin[playerid] = 1;
	            case 1: gangskin[playerid] = 2;
	            case 2: gangskin[playerid] = 3;
		        case 3: gangskin[playerid] = 4;
	            case 4: gangskin[playerid] = 5;
	            case 5: gangskin[playerid] = 6;
			}
			ShowPlayerDialog(playerid, 8002, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Skin", "Введите в окошко ID скина, который хотите назначить:", "Принять", "Отмена");
	    }
	}
	else if(dialogid == 8002)
	{
	    if(response)
	    {
			if(!strlen(inputtext) && strval(inputtext) > 0) return ShowPlayerDialog(playerid, 8002, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Skin", "Введите в окошко ID скина, который хотите назначить:", "Принять", "Отмена");
            new f[256];
			format(f, 256, "Gangs/%i.ini",PGang[playerid]);
			new file = ini_openFile(f);
			if(file == INI_OK)
			{
				format(string, 256, "Skin%i", gangskin[playerid]);
			    ini_setInteger(file, string, strval(inputtext));
			    ini_closeFile(file);
				format(string, sizeof(string), "Скин успешно установлен! ID скина: %i", strval(inputtext));
				SendClientMessage(playerid, 0xFFFF00FF, string);
				GSkin[PGang[playerid]][gangskin[playerid]-1] = strval(inputtext);
				for(new i; i<MAX_PLAYERS; i++)
				{
				    if(PGang[i] == PGang[playerid] && GangLvl[i] == gangskin[playerid])
				    {
				        SetPlayerSkin(i, strval(inputtext));
				    }
				}
				gangskin[playerid] = 0;
			}
	    }
	}
	else if(dialogid == 9001)
	{
	    if(response)
	    {
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 9001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Rang", "Введите id игрока, которому хотите назначит ранг:", "Принять", "Отмена");
			if(PGang[strval(inputtext)] != PGang[playerid])
			{
			    SendClientMessage(playerid, 0xFFFF00FF, "Игрок не в вашей банде!");
			    return ShowPlayerDialog(playerid, 9001, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Rang", "Введите id игрока, которому хотите назначит ранг:", "Принять", "Отмена");
			}
			id[playerid] = strval(inputtext);
			ShowPlayerDialog(playerid, 9002, DIALOG_STYLE_LIST, "{FF0000}[Samp-Play]{FFFFFF} - Gang Rang", "Нуб\nИгрок\nПро игрок\nЭлита\nЗам лидера\nЛидер", "Принять", "Отмена");
	    }
	}
	else if(dialogid == 9002)
	{
	    if(response)
	    {
	        switch(listitem)
			{
	            case 0: GangLvl[id[playerid]] = 1;
	            case 1: GangLvl[id[playerid]] = 2;
	            case 2: GangLvl[id[playerid]] = 3;
		        case 3: GangLvl[id[playerid]] = 4;
	            case 4: GangLvl[id[playerid]] = 5;
	            case 5: GangLvl[id[playerid]] = 6;
			}
			format(string, sizeof(string), "Вы выдали игроку %s ранг %i", PlayerName(id[playerid]), GangLvl[id[playerid]]);
			SendClientMessage(playerid, 0xFFFF00FF, string);
			format(string, sizeof(string), "Лидер %s выдал Вам ранг %i", PlayerName(playerid), GangLvl[id[playerid]]);
			SendClientMessage(id[playerid], 0xFFFF00FF, string);
			if(GSkin[PGang[playerid]][GangLvl[id[playerid]]] > 0) SetPlayerSkin(id[playerid], GSkin[PGang[playerid]][GangLvl[id[playerid]]-1]);
			id[playerid] = -1;
	    }
	}
	else if(dialogid == 10010)
	{
	    if(response)
	    {
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 10010, DIALOG_STYLE_INPUT, "{FF0000}[Samp-Play]{FFFFFF} - Gang Name Change", "Введите новое имя банды\nв поле ниже:", "Принять", "Отмена");
			format(GName[PGang[playerid]], 256, "%s", inputtext);
			format(string, sizeof(string), "\n{FFFF00}Вы успешно изменили имя банды!\nНовое имя банды: {FF0000}%s\n",inputtext);
			ShowPlayerDialog(playerid, 10011, DIALOG_STYLE_MSGBOX, "{FF0000}[Samp-Play]{FFFFFF} - Gang Name Change", string, "Ok", "");
			new f[256];
			format(f, 256, "Gangs/%i.ini",PGang[playerid]);
			new file = ini_openFile(f);
			if(file == INI_OK)
			{
				ini_setString(file, "Gang name", GName[PGang[playerid]]);
				ini_closeFile(file);
			}
	    }
  	}
	else if(dialogid == 7041)
 	{
		if(response)
	    {
     		new f[256];
			format(f, 256, "Gangs/%i.ini",PGang[playerid]);
			fremove(f);
			PGang[playerid] = 0;
    		GangLvl[playerid] = 0;
        	SendClientMessage(playerid, 0xFFFF00FF, "Ваша банда успешно удалена!");
		}
	}
	return true;
}

stock GetFreeGang()
{
	for(new i=1; i<MAX_GANGS; i++)
	{
		if(Gang[i] == 0) return i;
	}
	return false;
}

forward LoadAccount(playerid);
public LoadAccount(playerid)
{
    new f[256], hex[MAX_PLAYERS];
    format(f, 256, "Gangs/Players/%s.ini", PlayerName(playerid));
	new file = ini_openFile(f);
	if(file == INI_OK)
	{
	    ini_getInteger(file, "Gang", PGang[playerid]);
	    ini_getInteger(file, "GangLvl", GangLvl[playerid]);
	    if(PGang[playerid] > 0)
	    {
			hex[playerid] = HexToInt(GColor[PGang[playerid]]);
			SetPlayerColor(playerid, hex[playerid]);
		}
		ini_closeFile(file);
		return true;
	}
	else
	{
	    ini_closeFile(file);
	    file = ini_createFile(f);
	    ini_setInteger(file, "Gang", 0);
	    ini_setInteger(file, "GangLvl", 0);
		ini_closeFile(file);
		return true;
	}
}

forward SaveAccount(playerid);
public SaveAccount(playerid)
{
    new f[256];
    format(f, 256, "Gangs/Players/%s.ini", PlayerName(playerid));
	new file = ini_openFile(f);
	if(file == INI_OK)
	{
	    ini_setInteger(file, "Gang", PGang[playerid]);
	    ini_setInteger(file, "GangLvl", GangLvl[playerid]);
		ini_closeFile(file);
	}
	return true;
}

forward GangLoad();
public GangLoad()
{
    new file, f[256];
	for(new i; i<MAX_GANGS; i++)
	{
	    format(f, 256, "Gangs/%i.ini",i);
		file = ini_openFile(f);
		if(file == INI_OK)
		{
		    ini_getString(file, "Gang name", name[i]);
		    format(GName[i], 256, name[i]);
		    ini_getString(file, "Gang color", col[i]);
		    format(GColor[i], 10, col[i]);
		    ini_getFloat(file, "SpawnX", GSpawnX[i]);
		    ini_getFloat(file, "SpawnY", GSpawnY[i]);
		    ini_getFloat(file, "SpawnZ", GSpawnZ[i]);
		    ini_getInteger(file, "Skin1", GSkin[i][0]);
		    ini_getInteger(file, "Skin2", GSkin[i][1]);
		    ini_getInteger(file, "Skin3", GSkin[i][2]);
		    ini_getInteger(file, "Skin4", GSkin[i][3]);
		    ini_getInteger(file, "Skin5", GSkin[i][4]);
		    ini_getInteger(file, "Skin6", GSkin[i][5]);
		    Gang[i] = 1;
			ini_closeFile(file);
		}
	}
	return false;
}

forward Spawn(playerid);
public Spawn(playerid)
{
    if(GSkin[PGang[playerid]][GangLvl[playerid]-1] > 0)
	{
 		SetPlayerSkin(playerid, GSkin[PGang[playerid]][GangLvl[playerid]-1]);
	}
	if(GSpawnX[PGang[playerid]] != 0.0 && GSpawnY[PGang[playerid]] != 0.0 && GSpawnZ[PGang[playerid]] != 0.0)
	{
		SetPlayerPos(playerid, GSpawnX[PGang[playerid]], GSpawnY[PGang[playerid]], GSpawnZ[PGang[playerid]]);
	}
	new hex[MAX_PLAYERS];
	hex[playerid] = HexToInt(GColor[PGang[playerid]]);
	SetPlayerColor(playerid, hex[playerid]);
}

stock strtok(const string[], &index)
{
	new length = strlen(string);
	while ((index < length) && (string[index] <= ' '))
	{
		index++;
	}

	new offset = index;
	new result[20];
	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
	{
		result[index - offset] = string[index];
		index++;
	}
	result[index - offset] = EOS;
	return result;
}

stock PlayerName(playerid)
{
	new pname[MAX_PLAYER_NAME];
	GetPlayerName(playerid,pname,sizeof(pname));
	return pname;
}

stock HexToInt(string[]) {
  if (string[0]==0) return 0;
  new i;
  new cur=1;
  new res=0;
  for (i=strlen(string);i>0;i--) {
    if (string[i-1]<58) res=res+cur*(string[i-1]-48); else res=res+cur*(string[i-1]-65+10);
    cur=cur*16;
  }
  return res;
}

stock IntToHex(number)
{
  new m=1;
  new depth=0;
  while (number>=m) {
   m = m*16;
   depth++;
  }
  depth--;
  new str[125];
  for (new i = depth; i >= 0; i--)
  {
   str[i] = ( number & 0x0F) + 0x30; // + (tmp > 9 ? 0x07 : 0x00)
   str[i] += (str[i] > '9') ? 0x07 : 0x00;
   number >>= 4;
  }
  str[8] = '\0';
  return str;
}