/*
 © DM zones system by Exclusive [version: 1.0] | Файловый архив автора: www.e-xclusiv-e.ru | Удаление/изменение копирайтов ЗАПРЕЩЕНО!
 © Инструкция: замените значения на свои в mysql_connect. Измените ID диалог. окна в define DIALOG_ZONE на свой.
 © #define CREATE_DB_ZONES автоматически создает ДБ. Не требует ручного создания.
 © При выкладывании скрипта на другие ресурсы - указывайте автора!
 © Команды | Функции: /cz - создание зоны. | /ezones - список ДМ зон/зайти на ДМ зону.
*/

#include <a_samp>
#include <a_mysql>
#include <sscanf2>

#define CREATE_DB_ZONES \
	"CREATE TABLE IF NOT EXISTS eZones (id INT(5) NOT NULL AUTO_INCREMENT PRIMARY KEY,\
	 name VARCHAR(25) NOT NULL, owner VARCHAR(25) NOT NULL, gun int(5) NOT NULL, `eX` varchar(11) NOT NULL DEFAULT '0.0',`eY` varchar(11) NOT NULL DEFAULT '0.0',`eZ` varchar(11) NOT NULL DEFAULT '0.0') ENGINE = MyISAM"
#define DIALOG_ZONE 9000

public OnFilterScriptInit()
{
	mysql_connect("109.95.211.27:8070", "Dark City v 2.1", "SAMP", "");
	return mysql_query(CREATE_DB_ZONES);
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp("/cz", cmdtext, true) == 0) return ShowPlayerDialog(playerid,DIALOG_ZONE,DIALOG_STYLE_MSGBOX,"Создание зоны","Вы уверены, что хотите создать новую DM зону?\n\n\n\t\t{FF8400}© by Exclusive","Да","Нет");
	if(strcmp("/ezones", cmdtext, true) == 0)
	{
		new eID, eName[100], eOwner[25], eGun, Query[200],string[300];
  		format(Query, sizeof(Query), "SELECT * FROM eZones");
    	mysql_query(Query);
		mysql_store_result();
		while(mysql_fetch_row(Query))
		{
 			if(!mysql_num_rows()) continue;
   			sscanf(Query, "p<|>is[100]s[25]d", eID, eName, eOwner, eGun);
	    	format(string, sizeof(string), "%sID: %d - Название: %s - Создатель: %s - Оружие: %d\r\n", string, eID, eName, eOwner, eGun);
  		}
		ShowPlayerDialog(playerid,DIALOG_ZONE+3,DIALOG_STYLE_LIST, "Система ДМ зон", string, "Зайти", "Отмена");
		return true;
	}
	return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch(dialogid)
	{
	    case DIALOG_ZONE:
	    {
	        if(response) return ShowPlayerDialog(playerid,DIALOG_ZONE+1,DIALOG_STYLE_INPUT,"Создание зоны","Введите ID оружия, которое будет выдано при заходе на зону\n\n\n\t\t{FF8400}© by Exclusive","Далее","Отмена");
	    }
	    case DIALOG_ZONE+1:
	    {
	        if(response)
	        {
	            SetPVarInt(playerid,"eGun",strval(inputtext));
	            return ShowPlayerDialog(playerid,DIALOG_ZONE+2,DIALOG_STYLE_INPUT,"Создание зоны","Введите название ДМ зоны\n\n\n\t\t{FF8400}© by Exclusive","Далее","Отмена");
			}
		}
		case DIALOG_ZONE+2:
		{
		    if(response)
		    {
			    new str[200],Float:x,Float:y,Float:z; GetPlayerPos(playerid,x,y,z);
				format(str, sizeof(str), "INSERT INTO eZones (id, name, owner, gun, eX, eY, eZ) VALUES (NULL, '%s', '%s', '%d','%f','%f','%f');",inputtext,PlayerName(playerid),GetPVarInt(playerid,"eGun"),x,y,z);
				mysql_query(str);
				format(str,128,"Зона с названием '%s' создана. Оружие ID: %d. Создатель: %s.",inputtext,GetPVarInt(playerid,"eGun"),PlayerName(playerid));
				SendClientMessageToAll(0xFF8400FF,str);
				return DeletePVar(playerid,"eGun");
			}
		}
		case DIALOG_ZONE+3:
		{
		    if(response) return Action(listitem + 1, playerid);
		}
	}
	return true;
}
stock PlayerName(playerid)
{
	new pName[24];
	GetPlayerName(playerid, pName, sizeof pName);
	return pName;
}
stock Action(eID, pID)
{
    new eName[100],eGun,Float:eX,Float:eY,Float:eZ, Query[150], string[200];
    format(Query,sizeof(Query), "SELECT `name`,`gun`,`eX`,`eY`,`eZ` FROM `eZones` WHERE `id` = '%d'",eID);
    mysql_query(Query);
    mysql_store_result();
    if(!mysql_num_rows()) return 0;
    mysql_fetch_row(Query);
    sscanf(Query, "p<|>s[100]dfff", eName,eGun,eX,eY,eZ);
    GivePlayerWeapon(pID,eGun,9000);
	SetPlayerPos(pID,eX,eY,eZ);
    format(string, sizeof(string), "Игрок '%s' зашел на ДМ зону '%s'. Оружие ID: %d.",PlayerName(pID), eName, eGun);
    return SendClientMessageToAll(-1,string);
}
