Доступ к готовым решениям

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Система Расследований (трупы и полицейские дела)

JIEON_COJIORS

Изучающий
Пользователь
Регистрация
27 Авг 2015
Сообщения
357
Лучшие ответы
0
Репутация
188

Код:
[/CENTER]
#define     FILTERSCRIPT

#include <a_samp>
#include <a_mysql>
#include <sscanf2>
#include <streamer>
#include <foreach>
#include <dc_cmd>

#define        SQL_HOST            "localhost"
#define        SQL_USER            "root"
#define        SQL_PASSWORD        ""
#define        SQL_DBNAME            "company"

new SQLHandle;


// -0.96000
//CreateObject(19944, 0.03010, 0.16260, 0.22000,   90.00000, 180.00000, 0.00000);
enum    _:e_dialogids // Диалоги
{
    d_police = 7500,
    d_police_check,
   
    d_case_menu,
    d_case_back,
    d_case_leads,
    d_case_done,
    d_case_killer,
    d_case_list,
   
    d_killer
}
#define MAX_INFO_SIZE 340
enum _case_enum
{
    c_number,

    c_victim[MAX_PLAYER_NAME],
    c_killer[MAX_PLAYER_NAME],
    c_leads[MAX_PLAYER_NAME],
   
    c_bodypart,
    c_reason,

    c_info[MAX_INFO_SIZE],

    c_body,
Text3D:c_label,
bool:c_docs,

Float:c_pos_x,
Float:c_pos_y,
Float:c_pos_z,
Float:c_pos_a,
}
new cases[300][_case_enum];

//Данные игрока
new player_name[MAX_PLAYERS][MAX_PLAYER_NAME],
    player_body_part_damage[MAX_PLAYERS],
    player_body_id[MAX_PLAYERS],
    list_ids[MAX_PLAYERS][10],
    list[MAX_PLAYERS],
    body_onplayer[MAX_PLAYERS]
;


static const body_parts[10][16] = {
    "разные места",
    "разные места",
    "разные места",
    "Живот",
    "Пах",
    "Левую руку",
    "Правую руку",
    "Левую ногу",
    "Правую ногу",
    "Голову"
};

public OnPlayerConnect(playerid)
{
    GetPlayerName(playerid,player_name[playerid],MAX_PLAYER_NAME);

    return 1;
}
public OnPlayerDisconnect(playerid, reason)
{

    if(IsPlayerAttachedObjectSlotUsed(playerid,3))
    {
        RemovePlayerAttachedObject(playerid,3);

        new i = body_onplayer[playerid];
        body_onplayer[playerid] = 0;

        GetPlayerPos(playerid, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ]);
        GetPlayerFacingAngle(playerid,cases [ i ][ c_pos_a ]);

        cases[ i ][ c_body ] = CreateDynamicObject(19944, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ]-0.96000,   0.00000, 0.00000,cases [ i ][ c_pos_a ]);
        cases[ i ][ c_label ] = CreateDynamic3DTextLabel("Тело\n{FFFFFF}Нажмите 'ALT' для взаимодействия",0xE67E22FF,cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ],30.0,INVALID_PLAYER_ID,INVALID_PLAYER_ID,0,-1,-1,-1,100.0);

    }
    return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
    if(IsPlayerAttachedObjectSlotUsed(playerid,3))
    {
        RemovePlayerAttachedObject(playerid,3);

        new i = body_onplayer[playerid];
        body_onplayer[playerid] = 0;

        GetPlayerPos(playerid, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ]);
        GetPlayerFacingAngle(playerid,cases [ i ][ c_pos_a ]);

        cases[ i ][ c_body ] = CreateDynamicObject(19944, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ]-0.96000,   0.00000, 0.00000,cases [ i ][ c_pos_a ]);
        cases[ i ][ c_label ] = CreateDynamic3DTextLabel("Тело\n{FFFFFF}Нажмите 'ALT' для взаимодействия",0xE67E22FF,cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ],30.0,INVALID_PLAYER_ID,INVALID_PLAYER_ID,0,-1,-1,-1,100.0);

    }
    if(GetPlayerVirtualWorld(playerid) == 0 && reason != 53) // Если человек на улице и не утонул
    {
        for(new i; i < sizeof(cases); i++)
        {
            if(cases[ i ][ c_number ] != 0) continue;
            cases [ i ][ c_number ] = random(sizeof(cases))+1000;

            GetPlayerPos(playerid, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ]);
            GetPlayerFacingAngle(playerid,cases [ i ][ c_pos_a ]);

            cases[ i ][ c_body ] = CreateDynamicObject(19944, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ]-0.96000,   0.00000, 0.00000,cases [ i ][ c_pos_a ]);
            cases[ i ][ c_label ] = CreateDynamic3DTextLabel("Тело\n{FFFFFF}Нажмите 'ALT' для взаимодействия",0xE67E22FF,cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ],30.0,INVALID_PLAYER_ID,INVALID_PLAYER_ID,0,-1,-1,-1,100.0);

            format(cases[ i ][ c_victim ], MAX_PLAYER_NAME, player_name[playerid] );

            cases[ i ][ c_reason ] = reason;
           
            format(cases[ i ][ c_leads ], 12,"Не назначен");

            if(killerid != INVALID_PLAYER_ID && playerid != killerid)
            {
                format(cases[ i ][ c_killer ], MAX_PLAYER_NAME, player_name[killerid] );
                cases[ i ][ c_bodypart ] = player_body_part_damage[playerid];
            }
            else format(cases[ i ][ c_killer ], 2, "-");
            break;
        }
    }
    printf("Reason %d",reason);
    return 1;

}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case d_police:
        {
            if(!response) return 1;
            new i = player_body_id[playerid];
            player_body_id[playerid] = 0;

            if(listitem == 0)
            { // Заводим дело

                new query[150];
                mysql_format(SQLHandle, query, sizeof(query), "INSERT INTO cases SET Number=%d, Victim='%e', Killer='%e', Bodypart=%d",cases[ i ][ c_number ]
                ,player_name[playerid], cases[ i ][ c_killer ], cases[ i ][ c_bodypart ]);
                mysql_tquery(SQLHandle, query, "", "");

                format(cases[ i ][ c_info ][0],1,"");

                SetTimerEx("Inspection",2000,false,"iii",playerid,i,1);
                MeAction(playerid," начинает заводить дело");

                TogglePlayerControllable(playerid,0);


                return 1;
            }

            cases[ i ][ c_number ] = 0;

            format(cases[ i ][ c_victim ], 2,"-");


            DestroyDynamicObject(cases[ i ][ c_body ]);
            DestroyDynamic3DTextLabel( cases [i ] [ c_label ] );
               cases [i ] [ c_label ] = Text3D:INVALID_3DTEXT_ID;
   
            SendClientMessage(playerid, 0x3399FFFF, "Тело отправлено в морг городской больницы!");
            return 1;
        }
        case d_police_check:
        {
            if(!response) return list[playerid] = 0;
            if(!strcmp(inputtext, "<<" )) return list[playerid] -= 10,cmd::check(playerid);
            if(!strcmp(inputtext, ">>" )) return list[playerid] += 10,cmd::check(playerid);

            new i = listitem+ list[playerid];
           
            switch(cases[ i ][ c_reason ])
            {
                case 4,8,16,22..34: { } //Если убийство оставляет улики (пули, осколки гранаты, и ножевые порезы)
                default: return SendClientMessage(playerid,0x3399FFFF,"По этому делу нет никаких улик!");
            }
            if(!strcmp(cases[ i ][ c_killer ], "-")) return SendClientMessage(playerid,0x3399FFFF,"По этому делу нет никаких улик!");
           
            new str[120];
            format(str,sizeof(str),"Продавец пробил по базе данных магазина номер орудия.\n\
            Данное оружие было продано %s.",cases[ i ][ c_killer ]);
           
            format(cases[ i ][ c_info ],MAX_INFO_SIZE,"%s\n%s",str);

            new query[MAX_INFO_SIZE + 54];

            mysql_format(SQLHandle, query, sizeof(query), "UPDATE cases SET Info='%e' WHERE Number=%d",
            cases[ i ][ c_info ], cases[ i ][ c_number ]);
            mysql_tquery(SQLHandle, query, "", "");


            ShowPlayerDialog(playerid,0000,DIALOG_STYLE_MSGBOX," ",str,!"Закрыть","");

            list[playerid] = 0;
        }
        case d_killer:
        {
            if(!response) return true;
            new i = player_body_id[playerid];
             player_body_id[playerid] = 0;
            if(listitem == 0)
            {
                SetPlayerAttachedObject(playerid,3,19944,1,-0.212999,-0.047000,-0.018999,88.100006,-1.599996,-87.000007,0.716000,0.673999,0.911999);

                SendClientMessage(playerid,-1,"Чтобы бросить тело, используйте /dropbody");
               
                DestroyDynamicObject(cases[ i ][ c_body ]);
                DestroyDynamic3DTextLabel( cases [i ] [ c_label ] );
                   cases [i ] [ c_label ] = Text3D:INVALID_3DTEXT_ID;

                case_menu(playerid, i);

                cases[ i ][ c_pos_x ] = cases[ i ][ c_pos_y ] = 0.0;

                body_onplayer[playerid] = i;
                return true;
            }
            cases[ i ][ c_docs ] = true;
           
            MeAction(playerid,"забрал документы из кормана трупа!");
        }
        case d_case_menu:
        {
            if(!response)
            {
                 player_body_id[playerid] = 0;
                return cmd::caselist(playerid);
            }
            new i = player_body_id[playerid];
            switch(listitem)
            {
                case 0,1: case_menu(playerid,i);
                case 2:
                {
                    ShowPlayerDialog(playerid, d_case_back, DIALOG_STYLE_MSGBOX, !"{E67E22}Информация по делу:",cases[i][ c_info ], !"Назад","");
                }
                case 3:
                {
                    // Здесь проверку на должность человека
                      ShowPlayerDialog(playerid, d_case_leads, DIALOG_STYLE_INPUT, !"{E67E22}Ведущий дело:","{FFFFFF}Введите ID человека, который будет заниматься этим делом", !"Назначить",!"Назад");
                }
                case 4:
                {
                    if(!strcmp(cases[ i ][ c_leads ], player_name[playerid] ))
                    {

                          ShowPlayerDialog(playerid, d_case_done, DIALOG_STYLE_LIST, !"{E67E22}Заключение по делу:",!"1. Убийство\n2. Самоубийство/Несчастный случай", !"Выбрать",!"Назад");
                    }
                    else return SendClientMessage(playerid, 0x3399FFFF, "Заключение делу могут давать только ведущие дело!");
                }
                case 5:
                {
                    SendClientMessage(playerid,0x3399FFFF,"Дело замяли по непонятным причинам!");

                    // Выводим в чат полиции итог дела

                    case_clear( i ); // Очищаем дело из базы данных и с сервера
                }
            }
        }
        case d_case_done:
        {
            if(!response) return case_menu(playerid,player_body_id[playerid]);
            new i = player_body_id[playerid];

            if(listitem == 0) // Убийство
            {
                if(!strcmp(cases[ i ][ c_killer ], "-")) // Если выбрал убийство, но это самоубийство - дело проваливается
                {

                    SendClientMessage(playerid,0x3399FFFF,"Вы оказались не правы, дело провалено, это было самоубийство!");
                   
                    // Выводим в чат полиции итог дела

                    case_clear( i ); // Очищаем дело из базы данных и с сервера
                   
                    return 1;
                }
                // Если и правдо убийство
                ShowPlayerDialog(playerid, d_case_killer, DIALOG_STYLE_INPUT,!"{3399FF}Заключение по делу","{FFFFFF}Введите имя подозреваемого преступника\n\
                {3399FF}Будьте уверены в выборе преступника, иначе дело будет провалено!",!"Ввести",!"Назад");
           
                return 1;
            }
            player_body_id[playerid] = 0;

            if(!strcmp(cases[ i ][ c_killer ], "-")) // Проверка, правдо ли самоубийство
            {
                SendClientMessage(playerid,0x3399FFFF,"Дело успешно закрыто! Вы оказались правы");
                // Выводим в чат полиции итог дела
                case_clear( i ); // Очищаем дело из базы данных и с сервера

                return 1;
            }
            // Если все же убийство - дело проваливается

            SendClientMessage(playerid,0x3399FFFF,"Дело успешно закрыто! Вы оказались правы");

            case_clear( i );

        }
        case d_case_killer:
        {
            if(!response) return case_menu(playerid,player_body_id[playerid]);
            if(!strlen(inputtext))
                return     ShowPlayerDialog(playerid, d_case_killer, DIALOG_STYLE_INPUT,!"{3399FF}Заключение по делу","{FFFFFF}Введите имя подозреваемого преступника\n\
                {3399FF}Будьте уверены в выборе преступника, иначе дело будет провалено!",!"Ввести",!"Назад");

            new i = player_body_id[playerid];

            player_body_id[playerid] = 0;
            if(!strcmp(cases[ i ][ c_killer ], inputtext)) // Если имя введо правильно
            {
                // Выводим в чат полиции итог дела
                SendClientMessage(playerid,0x3399FFFF,"Дело успешно закрыто! Вы оказались правы");
               
                case_clear( i );
               
                return 1;
            }
            // Если же ошибся
           
            SendClientMessage(playerid,0x3399FFFF,"Вы оказались не правы, дело провалено, это было самоубийство!");
            // Выводим в чат полиции итог дела

            case_clear( i ); // Очищаем дело из базы данных и с сервера

            return 1;
        }
        case d_case_back: return case_menu(playerid,player_body_id[playerid]);
        case d_case_leads:
        {
            if(!response) return case_menu(playerid,player_body_id[playerid]);

            if(!strlen(inputtext))
                return ShowPlayerDialog(playerid, d_case_leads, DIALOG_STYLE_INPUT, !"{E67E22}Ведущий дело:","{FFFFFF}Введите ID человека, который будет заниматься этим делом", !"Назначить",!"Назад");

            if(!IsPlayerConnected(strval(inputtext))) return SendClientMessage(playerid, 0x0858585FF, "Игрок не найден!");

            new i = player_body_id[playerid];
            // Здесь проверку на фракцию
           
            format(cases[ i ][ c_leads ], 24, player_name[strval(inputtext)]);

           
            static const
                        str_0[] = "%s назначил вас ведущим дела №%i",
                        str_1[] = "%s назначен ведущим дела №%i";
                       
            new str[sizeof str_0 + MAX_PLAYER_NAME + 4];

            format(str,sizeof(str), str_0, player_name[playerid], cases[ i ][ c_number ]);
            SendClientMessage(strval(inputtext),0xE67E22FF,str);

            format(str,sizeof(str), str_1, player_name[strval(inputtext)], cases[ i ][ c_number ]);
            SendClientMessage(playerid,0xE67E22FF,str);

            new query[180];

            mysql_format(SQLHandle, query, sizeof(query), "UPDATE cases SET Leads='%e' WHERE Number=%d",
            cases[ i ][ c_leads ], cases[ i ][ c_number ]);
            mysql_tquery(SQLHandle, query, "", "");
           
            case_menu(playerid,player_body_id[playerid]);
        }
        case d_case_list:
        {
            if(!response)
            {
                list[playerid] = 0;
                return true;
            }
            if(!strcmp(inputtext, "<<" )) return list[playerid] -= 10,cmd::caselist(playerid);
            if(!strcmp(inputtext, ">>" )) return list[playerid] += 10,cmd::caselist(playerid);

            if(listitem <= 9) return case_menu(playerid, listitem+ list[playerid]),list[playerid]=0;
        }

    }
    return 1;
}
stock case_clear( i )
{
    new query[64];
    mysql_format(SQLHandle, query, sizeof(query), "DELETE FROM cases WHERE Number=%d", cases[ i ][ c_number ]);
    mysql_tquery(SQLHandle, query, "", "");

    cases[ i ][ c_number ] = 0;
    format(cases[ i ][ c_killer ], 2,"-");
    format(cases[ i ][ c_leads ], 12,"Не назначен");
}
CMD:dropbody(playerid)
{
    if(IsPlayerAttachedObjectSlotUsed(playerid,3))
    {
        RemovePlayerAttachedObject(playerid,3);

        new i = body_onplayer[playerid];
        body_onplayer[playerid] = 0;

        GetPlayerPos(playerid, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ]);
        GetPlayerFacingAngle(playerid,cases [ i ][ c_pos_a ]);

        cases[ i ][ c_body ] = CreateDynamicObject(19944, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ]-0.96000,   0.00000, 0.00000,cases [ i ][ c_pos_a ]);
        cases[ i ][ c_label ] = CreateDynamic3DTextLabel("Тело\n{FFFFFF}Нажмите 'ALT' для взаимодействия",0xE67E22FF,cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ],30.0,INVALID_PLAYER_ID,INVALID_PLAYER_ID,0,-1,-1,-1,100.0);

    }
    return 1;
}

forward Inspection(playerid, i,step);
public Inspection(playerid, i, step)
{
    switch(step)
    {
        case 1:
        {
            InterpolateCameraPos(playerid, cases[ i ][ c_pos_x ], cases[ i ][ c_pos_y ], cases[ i ][ c_pos_z ]+0.5, cases[ i ][ c_pos_x ]+2, cases[ i ][ c_pos_y ]-2, cases[ i ][ c_pos_z ], 4000);
            InterpolateCameraLookAt(playerid, cases[ i ][ c_pos_x ], cases[ i ][ c_pos_y ], cases[ i ][ c_pos_z ]-0.96000, cases[ i ][ c_pos_x ], cases[ i ][ c_pos_y ], cases[ i ][ c_pos_z ]-0.96000, 4000);

            new year, month,day;
            getdate(year, month, day);
            new hour,minuite,second;
            gettime(hour,minuite,second);

            format(cases[i][c_info],MAX_INFO_SIZE,"%02d:%02d  %d/%d/%d - Обнаружено мертвое тело. Местонахождения: '%s'",hour, minuite, day, month, year, GetPlayerZone(playerid,0));
            ShowPlayerDialog(playerid, 0000, DIALOG_STYLE_MSGBOX, !"Процесс осмотра:",cases[i][c_info]," ","");

            ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 2, 0, 0, 0, 0, 0);
        }
        case 2:
        {
            ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 2, 0, 0, 0, 0, 0);
           
            InterpolateCameraPos(playerid, cases[ i ][ c_pos_x ]-2, cases[ i ][ c_pos_y ]+2, cases[ i ][ c_pos_z ]+0.5,cases[ i ][ c_pos_x ]+2, cases[ i ][ c_pos_y ]+2, cases[ i ][ c_pos_z ]+0.5, 4000);
            InterpolateCameraLookAt(playerid, cases[ i ][ c_pos_x ], cases[ i ][ c_pos_y ], cases[ i ][ c_pos_z ]-0.96000, cases[ i ][ c_pos_x ], cases[ i ][ c_pos_y ], cases[ i ][ c_pos_z ]-0.96000, 4000);

            format(cases[i][c_info],MAX_INFO_SIZE,"%s\nСостояние тела: %s\n",cases[i][c_info], (random(2)) ? ("Холодное"):("Теплое"));
            ShowPlayerDialog(playerid, 0000, DIALOG_STYLE_MSGBOX, !"Осмотр",cases[i][c_info]," ","");
        }
        case 3:
        {
            ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 2, 0, 0, 0, 0, 0);
           
            InterpolateCameraPos(playerid, cases[ i ][ c_pos_x ]+2, cases[ i ][ c_pos_y ]-2, cases[ i ][ c_pos_z ]+0.5,cases[ i ][ c_pos_x ]-2, cases[ i ][ c_pos_y ]+2, cases[ i ][ c_pos_z ]+0.5, 4000);
            InterpolateCameraLookAt(playerid, cases[ i ][ c_pos_x ], cases[ i ][ c_pos_y ], cases[ i ][ c_pos_z ]-0.96000, cases[ i ][ c_pos_x ], cases[ i ][ c_pos_y ], cases[ i ][ c_pos_z ]-0.96000, 4000);

            switch(cases[ i ][ c_reason ] )
            {
           
                case 0: format(cases[i][c_info],MAX_INFO_SIZE,"%sМед. экспертиза: %s",cases[i][c_info], (random(2) == 0) ? ("следы избиения") : ("следы царапин и синяки")); // Кулак
                case 1..3,5: format(cases[i][c_info],MAX_INFO_SIZE,"%sМед. экспертиза: %s", cases[i][c_info], (random(2) == 0) ? ("следы ударов тупым оружие") : ("синяки, и трещины на костях")); // Тупое оружие
                case 4,8:
                {
                    format(cases[i][c_info],MAX_INFO_SIZE,"%sCуд-Мед. экспертиза: %s", cases[i][c_info], (random(2) == 0) ? ("глубокое ножевое ранение") : ("отверстие с размером с ножевое лезвие"));
                    format(cases[i][c_info],MAX_INFO_SIZE,"%s\nРанение в: %s", cases[i][c_info], body_parts[cases[ i ][ c_bodypart ]]);
                    format(cases[i][c_info],MAX_INFO_SIZE,"%s\nCуд-Мед. экспертиза: обнаружено из-какого ножа была убита жертва", cases[i][c_info]);
                    // Острое оружие
                }
                case 22..34: // Застрелен
                {
                    format(cases[i][c_info],MAX_INFO_SIZE,"%sCуд-Мед. экспертиза: %s", cases[i][c_info], (random(2) == 0) ? ("пулевые отверстия") : ("несколько пулевых ранений"));
                    format(cases[i][c_info],MAX_INFO_SIZE,"%s\nРанение в: %s", cases[i][c_info], body_parts[cases[ i ][ c_bodypart ]]);
                    format(cases[i][c_info],MAX_INFO_SIZE,"%s\nCуд-Мед. экспертиза: обнаружено из-какого оружия была убита жертва", cases[i][c_info]);
                }
                case 49: //Сбила машина
                {
                    format(cases[i][c_info],MAX_INFO_SIZE,"%sМед. экспертиза: %s",cases[i][c_info],(random(2) == 0) ? ("Сломанный позвоночник и следы автомобильных шин на теле"):("Следы автомобильных шин на теле и сильного удара")); //
                }
                case 51: format(cases[i][c_info],170,"%sТело почти полностью сгоревшее и разорванное на части",cases[i][c_info]); // Взрыв
                case 54: // Упал с высоты
                {
                    format(cases[i][c_info],MAX_INFO_SIZE,"%sМед. экспертиза: %s",cases[i][c_info],(random(2) == 0) ? ("расплущенный череп и сломанные ноги") : ("сломанные кости по всему телу, расплющенный череп"));
                }
                case 255:
                {
                    format(cases[i][c_info],MAX_INFO_SIZE,"%sМед. экспертиза: %s",cases[i][c_info], (random(2) == 0) ? ("Удушение ремнем для брюк") : ("Огромное количество снатворных в желудке")); // Самоубийств
                    format(cases[i][c_info],MAX_INFO_SIZE,"%s\n%s",cases[i][c_info], (random(2) == 0) ? ("В кормане записка со словами 'Мне все надоело'") : ("В кормане записка со словами 'Я так больше не могу'")); // Самоубийство
                }
                default:
                {
                       format(cases[i][c_info],MAX_INFO_SIZE,"%sМед. экспертиза: %s",cases[i][c_info], (random(2) == 0) ? ("Телесных ранений не обнаружено") : ("Признаков избиения или выстрелов нет")); // Самоубийств
                }
            }
            ShowPlayerDialog(playerid, 0000, DIALOG_STYLE_MSGBOX, !"{E67E22}Осмотр",cases[i][c_info]," ","");
        }
        case 4:
        {
       
            if(!cases[ i ][ c_docs ]) format(cases[i][c_info],MAX_INFO_SIZE,"%s\nУстановлено имя жертвы по документам в кормане: %s",cases[i][c_info],cases[i][ c_victim ]);
            else format(cases[i][c_info],MAX_INFO_SIZE,"%s\nЖертва при себе документов не имела",cases[i][c_info]);

            ShowPlayerDialog(playerid, 0000, DIALOG_STYLE_MSGBOX, !"{E67E22}Осмотр",cases[i][c_info]," ","");

            ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 2, 0, 0, 0, 0, 0);
           
            InterpolateCameraPos(playerid, cases[ i ][ c_pos_x ]+2, cases[ i ][ c_pos_y ]+2, cases[ i ][ c_pos_z ]+0.5,cases[ i ][ c_pos_x ]-2, cases[ i ][ c_pos_y ]-2, cases[ i ][ c_pos_z ]+0.5, 4000);
            InterpolateCameraLookAt(playerid, cases[ i ][ c_pos_x ], cases[ i ][ c_pos_y ], cases[ i ][ c_pos_z ]-0.96000, cases[ i ][ c_pos_x ], cases[ i ][ c_pos_y ], cases[ i ][ c_pos_z ]-0.96000, 4000);
        }
        case 5:
        {

            new query[MAX_INFO_SIZE + 54];

            mysql_format(SQLHandle, query, sizeof(query), "UPDATE cases SET Info='%e' WHERE Number=%d",cases[ i ][ c_info ], cases[ i ][ c_number ]);
            mysql_tquery(SQLHandle, query, "", "");

            MeAction(playerid,"закончил осмотр тела");

            TogglePlayerControllable(playerid,1);
            SetCameraBehindPlayer(playerid);

            DestroyDynamicObject(cases[ i ][ c_body ]);
            DestroyDynamic3DTextLabel( cases [i ] [ c_label ] );
               cases [i ] [ c_label ] = Text3D:INVALID_3DTEXT_ID;

            SendClientMessage(playerid, 0xE67E22FF, "Тело отправлено в морг городской больницы!");

            case_menu(playerid, i);

            cases[ i ][ c_pos_x ] = cases[ i ][ c_pos_y ] = 0.0;

            return true;
        }
    }
    return SetTimerEx("Inspection",4000,false,"iii",playerid,i,step+1);
}

stock case_menu(playerid, i)
{
    new str[180];
    format(str,sizeof(str),"Номер дела: {E67E22}%i\n\
    Ведет дело: {E67E22}%s\n\
    1. Посмотреть информацию по делу\n\
    2. Назначить ведущего дело\n\
    3. Заключение по делу\n\
    4. Замять дело",cases[ i ][ c_number ], cases[ i ][ c_leads ]);
    ShowPlayerDialog(playerid, d_case_menu, DIALOG_STYLE_LIST,"{E67E22}Папка с делом:",str,!"Выбрать",!"Закрыть");

    player_body_id[playerid] = i;
    return 1;
}
CMD:check(playerid)
{
    new str[300] = "Номер дела\tЖертва",
        max_count[MAX_PLAYERS];

    for(new i = list[playerid]; i < sizeof(cases); i++)
    {
        if(cases[ i ][ c_number ] == 0) continue;

        if(!strcmp(cases[ i ][ c_leads ], player_name[playerid] ))
        {
            max_count[playerid]++;
            if(max_count[playerid] <= list[playerid]+10)
            {
                format(str,sizeof(str),"%s\n%i\t%s",str, cases[ i ][ c_number ],cases[ i ][ c_victim ]);
                list_ids[playerid][i-list[playerid]] = i;

            }
        }
    }
    if(list[playerid] >= 10) strcat(str,"\n<<");
    if(max_count[playerid] >= 10 && list[playerid]+10 < max_count[playerid]) strcat(str, "\n>>");

    if(strlen(str) < 25) return ShowPlayerDialog(playerid, 0000, DIALOG_STYLE_MSGBOX," ","{FFFFFF}Открытых дел на данный момент у Вас нет!",!"Закрыть",!"");

    ShowPlayerDialog(playerid, d_police_check, DIALOG_STYLE_TABLIST_HEADERS,"{E67E22}Открытые дела:",str,!"Выбрать",!"Закрыть");

    return 1;
}
CMD:caselist(playerid)
{
    new str[300] = "Номер дела\tВедет дело",
        max_count[MAX_PLAYERS];
       
    for(new i = list[playerid]; i < sizeof(cases); i++)
    {
        if(cases[ i ][ c_number ] == 0) continue;

        max_count[playerid]++;
        if(max_count[playerid] <= list[playerid]+10)
        {
            format(str,sizeof(str),"%s\n%i\t%s",str, cases[ i ][ c_number ],cases[ i ][ c_leads ]);
            list_ids[playerid][i-list[playerid]] = i;

        }
    }
    if(list[playerid] >= 10) strcat(str,"\n<<");
    if(max_count[playerid] >= 10 && list[playerid]+10 < max_count[playerid]) strcat(str, "\n>>");
   
    if(strlen(str) < 25) return ShowPlayerDialog(playerid, 0000, DIALOG_STYLE_MSGBOX," ","{FFFFFF}Открытых дел на данный момент нет!",!"Закрыть",!"");

    ShowPlayerDialog(playerid, d_case_list, DIALOG_STYLE_TABLIST_HEADERS,"{E67E22}Открытые дела:",str,!"Выбрать",!"Закрыть");

    return 1;
}
stock MeAction(playerid,action[],Float:distance = 13.0)
{
    new mes[128];
    format(mes,sizeof(mes),"%s %s",player_name[playerid],action);
    foreach(new i: Player)
    {
        new Float:x, Float:y, Float:z, Float:x2, Float:y2, Float:z2;
        GetPlayerPos(playerid, x, y, z);
        GetPlayerPos(i, x2, y2, z2);
   
        if(!IsPlayerConnected(i) || floatsqroot(floatadd(floatpower(x2-x,2),floatpower(y2-y,2))) > distance || GetPlayerVirtualWorld(i) != GetPlayerVirtualWorld(playerid)) continue;
        SendClientMessage(i,0xDD90FFFF,mes);
    }
    return 1;
}

CMD:test1(playerid)
{
    for(new i; i < sizeof(cases); i++)
    {
        if(cases[ i ][ c_number ] != 0) continue;
        cases [ i ][ c_number ] = random(sizeof(cases))+1000;

        GetPlayerPos(playerid, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ]);
        GetPlayerFacingAngle(playerid,cases [ i ][ c_pos_a ]);

        cases[ i ][ c_body ] = CreateDynamicObject(19944, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ]-0.96000,   0.00000, 0.00000,cases [ i ][ c_pos_a ]);
        cases[ i ][ c_label ] = CreateDynamic3DTextLabel("Тело\n{FFFFFF}Нажмите 'ALT' для взаимодействия",0xE67E22FF,cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ],30.0,INVALID_PLAYER_ID,INVALID_PLAYER_ID,0,-1,-1,-1,100.0);

        format(cases[ i ][ c_victim ], MAX_PLAYER_NAME, player_name[playerid] );

        cases[ i ][ c_reason ] = 24;

        format(cases[ i ][ c_leads ], 12,"Leon_Willson");

        format(cases[ i ][ c_killer ], MAX_PLAYER_NAME, "Leon_Willson" );
          cases[ i ][ c_bodypart ] = 1;
           
        break;
    }
    return true;
}
public OnFilterScriptExit()
{
    mysql_close(SQLHandle);
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    DisablePlayerCheckpoint(playerid);
    return 1;
}
public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
    if(issuerid != INVALID_PLAYER_ID) // If not self-inflicted
    {
        player_body_part_damage[playerid] = bodypart;
    }
    return 0;
}
CMD:tpcor(playerid,params[])
{
    if(sscanf(params, "fff", params[0], params[1], params[2])) return SendClientMessage(playerid, 0xE88732FF, "USAGE: {FFFFFF}/tpcor [fff]");
    SetPlayerPos(playerid,params[0], params[1], params[2]);
    return true;
}
public OnFilterScriptInit()
{

    DisableInteriorEnterExits();

    SQLHandle = mysql_connect(SQL_HOST, SQL_USER, SQL_DBNAME, SQL_PASSWORD);
    mysql_log(LOG_ERROR | LOG_WARNING, LOG_TYPE_HTML);
    mysql_set_charset("cp1251");
    if(mysql_errno() != 0)
    {
        print(" Can't connect to MySQL.");
        return 1;
    }

    mysql_tquery(SQLHandle, "SELECT * FROM cases", "load_cases", "");

    return 1;
}
public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
    SetPlayerPosFindZ(playerid, fX, fY, fZ);
    return 1;
}

forward load_cases();
public load_cases()
{
    new rows = cache_num_rows(),
        result;
    if(rows)
    {
        for(new i; i < rows; i++)
        {
              cases[i][ c_number ] = cache_get_field_content_int(i, "Number");
              cases[i][ c_reason ] = cache_get_field_content_int(i, "Reason");
              cases[i][ c_bodypart ] = cache_get_field_content_int(i, "Bodypart");

            cache_get_field_content(i, "Victim", cases[i][ c_victim ], .max_len = MAX_PLAYER_NAME);
              cache_get_field_content(i, "Killer", cases[i][ c_killer ], .max_len = MAX_PLAYER_NAME);
            cache_get_field_content(i, "Info", cases[i][ c_info ], .max_len = MAX_INFO_SIZE);
            cache_get_field_content(i, "Leads", cases[i][ c_leads ], .max_len = MAX_PLAYER_NAME);
            result++;
        }
        printf("[Система расследований] Загружено %d дел из базы данных",result);
    }
    else printf("[Система расследований] В базе данных нет полицейских дел.");
    return 1;
}

CMD:cop(playerid)
{
    SetPVarInt(playerid,"COP",true);
    SetPlayerSkin(playerid,283);
   
    return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if((newkeys & KEY_WALK))
    {
        if(GetPlayerVirtualWorld(playerid) == 0)
        {
            for(new i; i < sizeof(cases); i++)
            {
                if(cases[ i ][ c_number ] == 0) continue;
                if(!IsPlayerInRangeOfPoint(playerid, 2.0, cases [ i ][ c_pos_x ],cases [ i ][ c_pos_y ],cases [ i ][ c_pos_z ])) continue;
                player_body_id[playerid] = i;
                //Если человек коп
                if(GetPVarInt(playerid,"COP"))
                {
                    return ShowPlayerDialog(playerid, d_police, DIALOG_STYLE_LIST, "{E67E22}Тело","1. Завести дело\n2. Отдать в морг без расследований",!"Выбрать",!"Закрыть");
                }
                //Если убийца
                if(!strcmp(cases[ i ][ c_killer ], player_name[playerid] ))
                {
                    return ShowPlayerDialog(playerid, d_killer, DIALOG_STYLE_LIST, "{E67E22}Тело","1. Забрать тело\n2. Взять документы",!"Выбрать",!"Закрыть");

                }
                //Если обычный человек
                else
                {
                    SendClientMessage(playerid,0x3399FFFF,"Полицию уже оповестили о найденном трупе!");
                    // Вызов полиции
                }
                break;
            }
        }
    }
    return 1;
}
CMD:death(playerid)
{
    SetPlayerHealth(playerid,0.0);
}


enum SAZONE_MAIN
{
    SAZONE_NAME[28],
    Float:SAZONE_AREA[6]
};
static const gSAZones[][SAZONE_MAIN] = {
    {"The Big Ear",                 {-410.00,1403.30,-3.00,-137.90,1681.20,200.00}},
    {"Aldea Malvada",               {-1372.10,2498.50,0.00,-1277.50,2615.30,200.00}},
    {"Angel Pine",                  {-2324.90,-2584.20,-6.10,-1964.20,-2212.10,200.00}},
    {"Arco del Oeste",              {-901.10,2221.80,0.00,-592.00,2571.90,200.00}},
    {"Avispa Country Club",         {-2646.40,-355.40,0.00,-2270.00,-222.50,200.00}},
    {"Avispa Country Club",         {-2831.80,-430.20,-6.10,-2646.40,-222.50,200.00}},
    {"Avispa Country Club",         {-2361.50,-417.10,0.00,-2270.00,-355.40,200.00}},
    {"Avispa Country Club",         {-2667.80,-302.10,-28.80,-2646.40,-262.30,71.10}},
    {"Avispa Country Club",         {-2470.00,-355.40,0.00,-2270.00,-318.40,46.10}},
    {"Avispa Country Club",         {-2550.00,-355.40,0.00,-2470.00,-318.40,39.70}},
    {"Back o Beyond",               {-1166.90,-2641.10,0.00,-321.70,-1856.00,200.00}},
    {"Battery Point",               {-2741.00,1268.40,-4.50,-2533.00,1490.40,200.00}},
    {"Bayside",                     {-2741.00,2175.10,0.00,-2353.10,2722.70,200.00}},
    {"Bayside Marina",              {-2353.10,2275.70,0.00,-2153.10,2475.70,200.00}},
    {"Beacon Hill",                 {-399.60,-1075.50,-1.40,-319.00,-977.50,198.50}},
    {"Blackfield",                  {964.30,1203.20,-89.00,1197.30,1403.20,110.90}},
    {"Blackfield",                  {964.30,1403.20,-89.00,1197.30,1726.20,110.90}},
    {"Blackfield Chapel",           {1375.60,596.30,-89.00,1558.00,823.20,110.90}},
    {"Blackfield Chapel",           {1325.60,596.30,-89.00,1375.60,795.00,110.90}},
    {"Blackfield Intersection",     {1197.30,1044.60,-89.00,1277.00,1163.30,110.90}},
    {"Blackfield Intersection",     {1166.50,795.00,-89.00,1375.60,1044.60,110.90}},
    {"Blackfield Intersection",     {1277.00,1044.60,-89.00,1315.30,1087.60,110.90}},
    {"Blackfield Intersection",     {1375.60,823.20,-89.00,1457.30,919.40,110.90}},
    {"Blueberry",                   {104.50,-220.10,2.30,349.60,152.20,200.00}},
    {"Blueberry",                   {19.60,-404.10,3.80,349.60,-220.10,200.00}},
    {"Blueberry Acres",             {-319.60,-220.10,0.00,104.50,293.30,200.00}},
    {"Caligula's Palace",           {2087.30,1543.20,-89.00,2437.30,1703.20,110.90}},
    {"Caligula's Palace",           {2137.40,1703.20,-89.00,2437.30,1783.20,110.90}},
    {"Calton Heights",              {-2274.10,744.10,-6.10,-1982.30,1358.90,200.00}},
    {"Chinatown",                   {-2274.10,578.30,-7.60,-2078.60,744.10,200.00}},
    {"City Hall",                   {-2867.80,277.40,-9.10,-2593.40,458.40,200.00}},
    {"Come-A-Lot",                  {2087.30,943.20,-89.00,2623.10,1203.20,110.90}},
    {"Commerce",                    {1323.90,-1842.20,-89.00,1701.90,-1722.20,110.90}},
    {"Commerce",                    {1323.90,-1722.20,-89.00,1440.90,-1577.50,110.90}},
    {"Commerce",                    {1370.80,-1577.50,-89.00,1463.90,-1384.90,110.90}},
    {"Commerce",                    {1463.90,-1577.50,-89.00,1667.90,-1430.80,110.90}},
    {"Commerce",                    {1583.50,-1722.20,-89.00,1758.90,-1577.50,110.90}},
    {"Commerce",                    {1667.90,-1577.50,-89.00,1812.60,-1430.80,110.90}},
    {"Conference Center",           {1046.10,-1804.20,-89.00,1323.90,-1722.20,110.90}},
    {"Conference Center",           {1073.20,-1842.20,-89.00,1323.90,-1804.20,110.90}},
    {"Cranberry Station",           {-2007.80,56.30,0.00,-1922.00,224.70,100.00}},
    {"Creek",                       {2749.90,1937.20,-89.00,2921.60,2669.70,110.90}},
    {"Dillimore",                   {580.70,-674.80,-9.50,861.00,-404.70,200.00}},
    {"Doherty",                     {-2270.00,-324.10,-0.00,-1794.90,-222.50,200.00}},
    {"Doherty",                     {-2173.00,-222.50,-0.00,-1794.90,265.20,200.00}},
    {"Downtown",                    {-1982.30,744.10,-6.10,-1871.70,1274.20,200.00}},
    {"Downtown",                    {-1871.70,1176.40,-4.50,-1620.30,1274.20,200.00}},
    {"Downtown",                    {-1700.00,744.20,-6.10,-1580.00,1176.50,200.00}},
    {"Downtown",                    {-1580.00,744.20,-6.10,-1499.80,1025.90,200.00}},
    {"Downtown",                    {-2078.60,578.30,-7.60,-1499.80,744.20,200.00}},
    {"Downtown",                    {-1993.20,265.20,-9.10,-1794.90,578.30,200.00}},
    {"Downtown Los Santos",         {1463.90,-1430.80,-89.00,1724.70,-1290.80,110.90}},
    {"Downtown Los Santos",         {1724.70,-1430.80,-89.00,1812.60,-1250.90,110.90}},
    {"Downtown Los Santos",         {1463.90,-1290.80,-89.00,1724.70,-1150.80,110.90}},
    {"Downtown Los Santos",         {1370.80,-1384.90,-89.00,1463.90,-1170.80,110.90}},
    {"Downtown Los Santos",         {1724.70,-1250.90,-89.00,1812.60,-1150.80,110.90}},
    {"Downtown Los Santos",         {1370.80,-1170.80,-89.00,1463.90,-1130.80,110.90}},
    {"Downtown Los Santos",         {1378.30,-1130.80,-89.00,1463.90,-1026.30,110.90}},
    {"Downtown Los Santos",         {1391.00,-1026.30,-89.00,1463.90,-926.90,110.90}},
    {"Downtown Los Santos",         {1507.50,-1385.20,110.90,1582.50,-1325.30,335.90}},
    {"East Beach",                  {2632.80,-1852.80,-89.00,2959.30,-1668.10,110.90}},
    {"East Beach",                  {2632.80,-1668.10,-89.00,2747.70,-1393.40,110.90}},
    {"East Beach",                  {2747.70,-1668.10,-89.00,2959.30,-1498.60,110.90}},
    {"East Beach",                  {2747.70,-1498.60,-89.00,2959.30,-1120.00,110.90}},
    {"East Los Santos",             {2421.00,-1628.50,-89.00,2632.80,-1454.30,110.90}},
    {"East Los Santos",             {2222.50,-1628.50,-89.00,2421.00,-1494.00,110.90}},
    {"East Los Santos",             {2266.20,-1494.00,-89.00,2381.60,-1372.00,110.90}},
    {"East Los Santos",             {2381.60,-1494.00,-89.00,2421.00,-1454.30,110.90}},
    {"East Los Santos",             {2281.40,-1372.00,-89.00,2381.60,-1135.00,110.90}},
    {"East Los Santos",             {2381.60,-1454.30,-89.00,2462.10,-1135.00,110.90}},
    {"East Los Santos",             {2462.10,-1454.30,-89.00,2581.70,-1135.00,110.90}},
    {"Easter Basin",                {-1794.90,249.90,-9.10,-1242.90,578.30,200.00}},
    {"Easter Basin",                {-1794.90,-50.00,-0.00,-1499.80,249.90,200.00}},
    {"Easter Bay Airport",          {-1499.80,-50.00,-0.00,-1242.90,249.90,200.00}},
    {"Easter Bay Airport",          {-1794.90,-730.10,-3.00,-1213.90,-50.00,200.00}},
    {"Easter Bay Airport",          {-1213.90,-730.10,0.00,-1132.80,-50.00,200.00}},
    {"Easter Bay Airport",          {-1242.90,-50.00,0.00,-1213.90,578.30,200.00}},
    {"Easter Bay Airport",          {-1213.90,-50.00,-4.50,-947.90,578.30,200.00}},
    {"Easter Bay Airport",          {-1315.40,-405.30,15.40,-1264.40,-209.50,25.40}},
    {"Easter Bay Airport",          {-1354.30,-287.30,15.40,-1315.40,-209.50,25.40}},
    {"Easter Bay Airport",          {-1490.30,-209.50,15.40,-1264.40,-148.30,25.40}},
    {"Easter Bay Chemicals",        {-1132.80,-768.00,0.00,-956.40,-578.10,200.00}},
    {"Easter Bay Chemicals",        {-1132.80,-787.30,0.00,-956.40,-768.00,200.00}},
    {"El Castillo del Diablo",      {-464.50,2217.60,0.00,-208.50,2580.30,200.00}},
    {"El Castillo del Diablo",      {-208.50,2123.00,-7.60,114.00,2337.10,200.00}},
    {"El Castillo del Diablo",      {-208.50,2337.10,0.00,8.40,2487.10,200.00}},
    {"El Corona",                   {1812.60,-2179.20,-89.00,1970.60,-1852.80,110.90}},
    {"El Corona",                   {1692.60,-2179.20,-89.00,1812.60,-1842.20,110.90}},
    {"El Quebrados",                {-1645.20,2498.50,0.00,-1372.10,2777.80,200.00}},
    {"Esplanade East",              {-1620.30,1176.50,-4.50,-1580.00,1274.20,200.00}},
    {"Esplanade East",              {-1580.00,1025.90,-6.10,-1499.80,1274.20,200.00}},
    {"Esplanade East",              {-1499.80,578.30,-79.60,-1339.80,1274.20,20.30}},
    {"Esplanade North",             {-2533.00,1358.90,-4.50,-1996.60,1501.20,200.00}},
    {"Esplanade North",             {-1996.60,1358.90,-4.50,-1524.20,1592.50,200.00}},
    {"Esplanade North",             {-1982.30,1274.20,-4.50,-1524.20,1358.90,200.00}},
    {"Fallen Tree",                 {-792.20,-698.50,-5.30,-452.40,-380.00,200.00}},
    {"Fallow Bridge",               {434.30,366.50,0.00,603.00,555.60,200.00}},
    {"Fern Ridge",                  {508.10,-139.20,0.00,1306.60,119.50,200.00}},
    {"Financial",                   {-1871.70,744.10,-6.10,-1701.30,1176.40,300.00}},
    {"Fisher's Lagoon",             {1916.90,-233.30,-100.00,2131.70,13.80,200.00}},
    {"Flint Intersection",          {-187.70,-1596.70,-89.00,17.00,-1276.60,110.90}},
    {"Flint Range",                 {-594.10,-1648.50,0.00,-187.70,-1276.60,200.00}},
    {"Fort Carson",                 {-376.20,826.30,-3.00,123.70,1220.40,200.00}},
    {"Foster Valley",               {-2270.00,-430.20,-0.00,-2178.60,-324.10,200.00}},
    {"Foster Valley",               {-2178.60,-599.80,-0.00,-1794.90,-324.10,200.00}},
    {"Foster Valley",               {-2178.60,-1115.50,0.00,-1794.90,-599.80,200.00}},
    {"Foster Valley",               {-2178.60,-1250.90,0.00,-1794.90,-1115.50,200.00}},
    {"Frederick Bridge",            {2759.20,296.50,0.00,2774.20,594.70,200.00}},
    {"Gant Bridge",                 {-2741.40,1659.60,-6.10,-2616.40,2175.10,200.00}},
    {"Gant Bridge",                 {-2741.00,1490.40,-6.10,-2616.40,1659.60,200.00}},
    {"Ganton",                      {2222.50,-1852.80,-89.00,2632.80,-1722.30,110.90}},
    {"Ganton",                      {2222.50,-1722.30,-89.00,2632.80,-1628.50,110.90}},
    {"Garcia",                      {-2411.20,-222.50,-0.00,-2173.00,265.20,200.00}},
    {"Garcia",                      {-2395.10,-222.50,-5.30,-2354.00,-204.70,200.00}},
    {"Garver Bridge",               {-1339.80,828.10,-89.00,-1213.90,1057.00,110.90}},
    {"Garver Bridge",               {-1213.90,950.00,-89.00,-1087.90,1178.90,110.90}},
    {"Garver Bridge",               {-1499.80,696.40,-179.60,-1339.80,925.30,20.30}},
    {"Glen Park",                   {1812.60,-1449.60,-89.00,1996.90,-1350.70,110.90}},
    {"Glen Park",                   {1812.60,-1100.80,-89.00,1994.30,-973.30,110.90}},
    {"Glen Park",                   {1812.60,-1350.70,-89.00,2056.80,-1100.80,110.90}},
    {"Green Palms",                 {176.50,1305.40,-3.00,338.60,1520.70,200.00}},
    {"Greenglass College",          {964.30,1044.60,-89.00,1197.30,1203.20,110.90}},
    {"Greenglass College",          {964.30,930.80,-89.00,1166.50,1044.60,110.90}},
    {"Hampton Barns",               {603.00,264.30,0.00,761.90,366.50,200.00}},
    {"Hankypanky Point",            {2576.90,62.10,0.00,2759.20,385.50,200.00}},
    {"Harry Gold Parkway",          {1777.30,863.20,-89.00,1817.30,2342.80,110.90}},
    {"Hashbury",                    {-2593.40,-222.50,-0.00,-2411.20,54.70,200.00}},
    {"Hilltop Farm",                {967.30,-450.30,-3.00,1176.70,-217.90,200.00}},
    {"Hunter Quarry",               {337.20,710.80,-115.20,860.50,1031.70,203.70}},
    {"Idlewood",                    {1812.60,-1852.80,-89.00,1971.60,-1742.30,110.90}},
    {"Idlewood",                    {1812.60,-1742.30,-89.00,1951.60,-1602.30,110.90}},
    {"Idlewood",                    {1951.60,-1742.30,-89.00,2124.60,-1602.30,110.90}},
    {"Idlewood",                    {1812.60,-1602.30,-89.00,2124.60,-1449.60,110.90}},
    {"Idlewood",                    {2124.60,-1742.30,-89.00,2222.50,-1494.00,110.90}},
    {"Idlewood",                    {1971.60,-1852.80,-89.00,2222.50,-1742.30,110.90}},
    {"Jefferson",                   {1996.90,-1449.60,-89.00,2056.80,-1350.70,110.90}},
    {"Jefferson",                   {2124.60,-1494.00,-89.00,2266.20,-1449.60,110.90}},
    {"Jefferson",                   {2056.80,-1372.00,-89.00,2281.40,-1210.70,110.90}},
    {"Jefferson",                   {2056.80,-1210.70,-89.00,2185.30,-1126.30,110.90}},
    {"Jefferson",                   {2185.30,-1210.70,-89.00,2281.40,-1154.50,110.90}},
    {"Jefferson",                   {2056.80,-1449.60,-89.00,2266.20,-1372.00,110.90}},
    {"Julius Thruway East",         {2623.10,943.20,-89.00,2749.90,1055.90,110.90}},
    {"Julius Thruway East",         {2685.10,1055.90,-89.00,2749.90,2626.50,110.90}},
    {"Julius Thruway East",         {2536.40,2442.50,-89.00,2685.10,2542.50,110.90}},
    {"Julius Thruway East",         {2625.10,2202.70,-89.00,2685.10,2442.50,110.90}},
    {"Julius Thruway North",        {2498.20,2542.50,-89.00,2685.10,2626.50,110.90}},
    {"Julius Thruway North",        {2237.40,2542.50,-89.00,2498.20,2663.10,110.90}},
    {"Julius Thruway North",        {2121.40,2508.20,-89.00,2237.40,2663.10,110.90}},
    {"Julius Thruway North",        {1938.80,2508.20,-89.00,2121.40,2624.20,110.90}},
    {"Julius Thruway North",        {1534.50,2433.20,-89.00,1848.40,2583.20,110.90}},
    {"Julius Thruway North",        {1848.40,2478.40,-89.00,1938.80,2553.40,110.90}},
    {"Julius Thruway North",        {1704.50,2342.80,-89.00,1848.40,2433.20,110.90}},
    {"Julius Thruway North",        {1377.30,2433.20,-89.00,1534.50,2507.20,110.90}},
    {"Julius Thruway South",        {1457.30,823.20,-89.00,2377.30,863.20,110.90}},
    {"Julius Thruway South",        {2377.30,788.80,-89.00,2537.30,897.90,110.90}},
    {"Julius Thruway West",         {1197.30,1163.30,-89.00,1236.60,2243.20,110.90}},
    {"Julius Thruway West",         {1236.60,2142.80,-89.00,1297.40,2243.20,110.90}},
    {"Juniper Hill",                {-2533.00,578.30,-7.60,-2274.10,968.30,200.00}},
    {"Juniper Hollow",              {-2533.00,968.30,-6.10,-2274.10,1358.90,200.00}},
    {"K.A.C.C. Military Fuels",     {2498.20,2626.50,-89.00,2749.90,2861.50,110.90}},
    {"Kincaid Bridge",              {-1339.80,599.20,-89.00,-1213.90,828.10,110.90}},
    {"Kincaid Bridge",              {-1213.90,721.10,-89.00,-1087.90,950.00,110.90}},
    {"Kincaid Bridge",              {-1087.90,855.30,-89.00,-961.90,986.20,110.90}},
    {"King's",                      {-2329.30,458.40,-7.60,-1993.20,578.30,200.00}},
    {"King's",                      {-2411.20,265.20,-9.10,-1993.20,373.50,200.00}},
    {"King's",                      {-2253.50,373.50,-9.10,-1993.20,458.40,200.00}},
    {"LVA Freight Depot",           {1457.30,863.20,-89.00,1777.40,1143.20,110.90}},
    {"LVA Freight Depot",           {1375.60,919.40,-89.00,1457.30,1203.20,110.90}},
    {"LVA Freight Depot",           {1277.00,1087.60,-89.00,1375.60,1203.20,110.90}},
    {"LVA Freight Depot",           {1315.30,1044.60,-89.00,1375.60,1087.60,110.90}},
    {"LVA Freight Depot",           {1236.60,1163.40,-89.00,1277.00,1203.20,110.90}},
    {"Las Barrancas",               {-926.10,1398.70,-3.00,-719.20,1634.60,200.00}},
    {"Las Brujas",                  {-365.10,2123.00,-3.00,-208.50,2217.60,200.00}},
    {"Las Colinas",                 {1994.30,-1100.80,-89.00,2056.80,-920.80,110.90}},
    {"Las Colinas",                 {2056.80,-1126.30,-89.00,2126.80,-920.80,110.90}},
    {"Las Colinas",                 {2185.30,-1154.50,-89.00,2281.40,-934.40,110.90}},
    {"Las Colinas",                 {2126.80,-1126.30,-89.00,2185.30,-934.40,110.90}},
    {"Las Colinas",                 {2747.70,-1120.00,-89.00,2959.30,-945.00,110.90}},
    {"Las Colinas",                 {2632.70,-1135.00,-89.00,2747.70,-945.00,110.90}},
    {"Las Colinas",                 {2281.40,-1135.00,-89.00,2632.70,-945.00,110.90}},
    {"Las Payasadas",               {-354.30,2580.30,2.00,-133.60,2816.80,200.00}},
    {"Las Venturas Airport",        {1236.60,1203.20,-89.00,1457.30,1883.10,110.90}},
    {"Las Venturas Airport",        {1457.30,1203.20,-89.00,1777.30,1883.10,110.90}},
    {"Las Venturas Airport",        {1457.30,1143.20,-89.00,1777.40,1203.20,110.90}},
    {"Las Venturas Airport",        {1515.80,1586.40,-12.50,1729.90,1714.50,87.50}},
    {"Last Dime Motel",             {1823.00,596.30,-89.00,1997.20,823.20,110.90}},
    {"Leafy Hollow",                {-1166.90,-1856.00,0.00,-815.60,-1602.00,200.00}},
    {"Liberty City",                {-1000.00,400.00,1300.00,-700.00,600.00,1400.00}},
    {"Lil' Probe Inn",              {-90.20,1286.80,-3.00,153.80,1554.10,200.00}},
    {"Linden Side",                 {2749.90,943.20,-89.00,2923.30,1198.90,110.90}},
    {"Linden Station",              {2749.90,1198.90,-89.00,2923.30,1548.90,110.90}},
    {"Linden Station",              {2811.20,1229.50,-39.50,2861.20,1407.50,60.40}},
    {"Little Mexico",               {1701.90,-1842.20,-89.00,1812.60,-1722.20,110.90}},
    {"Little Mexico",               {1758.90,-1722.20,-89.00,1812.60,-1577.50,110.90}},
    {"Los Flores",                  {2581.70,-1454.30,-89.00,2632.80,-1393.40,110.90}},
    {"Los Flores",                  {2581.70,-1393.40,-89.00,2747.70,-1135.00,110.90}},
    {"Los Santos International",    {1249.60,-2394.30,-89.00,1852.00,-2179.20,110.90}},
    {"Los Santos International",    {1852.00,-2394.30,-89.00,2089.00,-2179.20,110.90}},
    {"Los Santos International",    {1382.70,-2730.80,-89.00,2201.80,-2394.30,110.90}},
    {"Los Santos International",    {1974.60,-2394.30,-39.00,2089.00,-2256.50,60.90}},
    {"Los Santos International",    {1400.90,-2669.20,-39.00,2189.80,-2597.20,60.90}},
    {"Los Santos International",    {2051.60,-2597.20,-39.00,2152.40,-2394.30,60.90}},
    {"Marina",                      {647.70,-1804.20,-89.00,851.40,-1577.50,110.90}},
    {"Marina",                      {647.70,-1577.50,-89.00,807.90,-1416.20,110.90}},
    {"Marina",                      {807.90,-1577.50,-89.00,926.90,-1416.20,110.90}},
    {"Market",                      {787.40,-1416.20,-89.00,1072.60,-1310.20,110.90}},
    {"Market",                      {952.60,-1310.20,-89.00,1072.60,-1130.80,110.90}},
    {"Market",                      {1072.60,-1416.20,-89.00,1370.80,-1130.80,110.90}},
    {"Market",                      {926.90,-1577.50,-89.00,1370.80,-1416.20,110.90}},
    {"Market Station",              {787.40,-1410.90,-34.10,866.00,-1310.20,65.80}},
    {"Martin Bridge",               {-222.10,293.30,0.00,-122.10,476.40,200.00}},
    {"Missionary Hill",             {-2994.40,-811.20,0.00,-2178.60,-430.20,200.00}},
    {"Montgomery",                  {1119.50,119.50,-3.00,1451.40,493.30,200.00}},
    {"Montgomery",                  {1451.40,347.40,-6.10,1582.40,420.80,200.00}},
    {"Montgomery Intersection",     {1546.60,208.10,0.00,1745.80,347.40,200.00}},
    {"Montgomery Intersection",     {1582.40,347.40,0.00,1664.60,401.70,200.00}},
    {"Mulholland",                  {1414.00,-768.00,-89.00,1667.60,-452.40,110.90}},
    {"Mulholland",                  {1281.10,-452.40,-89.00,1641.10,-290.90,110.90}},
    {"Mulholland",                  {1269.10,-768.00,-89.00,1414.00,-452.40,110.90}},
    {"Mulholland",                  {1357.00,-926.90,-89.00,1463.90,-768.00,110.90}},
    {"Mulholland",                  {1318.10,-910.10,-89.00,1357.00,-768.00,110.90}},
    {"Mulholland",                  {1169.10,-910.10,-89.00,1318.10,-768.00,110.90}},
    {"Mulholland",                  {768.60,-954.60,-89.00,952.60,-860.60,110.90}},
    {"Mulholland",                  {687.80,-860.60,-89.00,911.80,-768.00,110.90}},
    {"Mulholland",                  {737.50,-768.00,-89.00,1142.20,-674.80,110.90}},
    {"Mulholland",                  {1096.40,-910.10,-89.00,1169.10,-768.00,110.90}},
    {"Mulholland",                  {952.60,-937.10,-89.00,1096.40,-860.60,110.90}},
    {"Mulholland",                  {911.80,-860.60,-89.00,1096.40,-768.00,110.90}},
    {"Mulholland",                  {861.00,-674.80,-89.00,1156.50,-600.80,110.90}},
    {"Mulholland Intersection",     {1463.90,-1150.80,-89.00,1812.60,-768.00,110.90}},
    {"North Rock",                  {2285.30,-768.00,0.00,2770.50,-269.70,200.00}},
    {"Ocean Docks",                 {2373.70,-2697.00,-89.00,2809.20,-2330.40,110.90}},
    {"Ocean Docks",                 {2201.80,-2418.30,-89.00,2324.00,-2095.00,110.90}},
    {"Ocean Docks",                 {2324.00,-2302.30,-89.00,2703.50,-2145.10,110.90}},
    {"Ocean Docks",                 {2089.00,-2394.30,-89.00,2201.80,-2235.80,110.90}},
    {"Ocean Docks",                 {2201.80,-2730.80,-89.00,2324.00,-2418.30,110.90}},
    {"Ocean Docks",                 {2703.50,-2302.30,-89.00,2959.30,-2126.90,110.90}},
    {"Ocean Docks",                 {2324.00,-2145.10,-89.00,2703.50,-2059.20,110.90}},
    {"Ocean Flats",                 {-2994.40,277.40,-9.10,-2867.80,458.40,200.00}},
    {"Ocean Flats",                 {-2994.40,-222.50,-0.00,-2593.40,277.40,200.00}},
    {"Ocean Flats",                 {-2994.40,-430.20,-0.00,-2831.80,-222.50,200.00}},
    {"Octane Springs",              {338.60,1228.50,0.00,664.30,1655.00,200.00}},
    {"Old Venturas Strip",          {2162.30,2012.10,-89.00,2685.10,2202.70,110.90}},
    {"Palisades",                   {-2994.40,458.40,-6.10,-2741.00,1339.60,200.00}},
    {"Palomino Creek",              {2160.20,-149.00,0.00,2576.90,228.30,200.00}},
    {"Paradiso",                    {-2741.00,793.40,-6.10,-2533.00,1268.40,200.00}},
    {"Pershing Square",             {1440.90,-1722.20,-89.00,1583.50,-1577.50,110.90}},
    {"Pilgrim",                     {2437.30,1383.20,-89.00,2624.40,1783.20,110.90}},
    {"Pilgrim",                     {2624.40,1383.20,-89.00,2685.10,1783.20,110.90}},
    {"Pilson Intersection",         {1098.30,2243.20,-89.00,1377.30,2507.20,110.90}},
    {"Pirates in Men's Pants",      {1817.30,1469.20,-89.00,2027.40,1703.20,110.90}},
    {"Playa del Seville",           {2703.50,-2126.90,-89.00,2959.30,-1852.80,110.90}},
    {"Prickle Pine",                {1534.50,2583.20,-89.00,1848.40,2863.20,110.90}},
    {"Prickle Pine",                {1117.40,2507.20,-89.00,1534.50,2723.20,110.90}},
    {"Prickle Pine",                {1848.40,2553.40,-89.00,1938.80,2863.20,110.90}},
    {"Prickle Pine",                {1938.80,2624.20,-89.00,2121.40,2861.50,110.90}},
    {"Queens",                      {-2533.00,458.40,0.00,-2329.30,578.30,200.00}},
    {"Queens",                      {-2593.40,54.70,0.00,-2411.20,458.40,200.00}},
    {"Queens",                      {-2411.20,373.50,0.00,-2253.50,458.40,200.00}},
    {"Randolph Industrial Estate",  {1558.00,596.30,-89.00,1823.00,823.20,110.90}},
    {"Redsands East",               {1817.30,2011.80,-89.00,2106.70,2202.70,110.90}},
    {"Redsands East",               {1817.30,2202.70,-89.00,2011.90,2342.80,110.90}},
    {"Redsands East",               {1848.40,2342.80,-89.00,2011.90,2478.40,110.90}},
    {"Redsands West",               {1236.60,1883.10,-89.00,1777.30,2142.80,110.90}},
    {"Redsands West",               {1297.40,2142.80,-89.00,1777.30,2243.20,110.90}},
    {"Redsands West",               {1377.30,2243.20,-89.00,1704.50,2433.20,110.90}},
    {"Redsands West",               {1704.50,2243.20,-89.00,1777.30,2342.80,110.90}},
    {"Regular Tom",                 {-405.70,1712.80,-3.00,-276.70,1892.70,200.00}},
    {"Richman",                     {647.50,-1118.20,-89.00,787.40,-954.60,110.90}},
    {"Richman",                     {647.50,-954.60,-89.00,768.60,-860.60,110.90}},
    {"Richman",                     {225.10,-1369.60,-89.00,334.50,-1292.00,110.90}},
    {"Richman",                     {225.10,-1292.00,-89.00,466.20,-1235.00,110.90}},
    {"Richman",                     {72.60,-1404.90,-89.00,225.10,-1235.00,110.90}},
    {"Richman",                     {72.60,-1235.00,-89.00,321.30,-1008.10,110.90}},
    {"Richman",                     {321.30,-1235.00,-89.00,647.50,-1044.00,110.90}},
    {"Richman",                     {321.30,-1044.00,-89.00,647.50,-860.60,110.90}},
    {"Richman",                     {321.30,-860.60,-89.00,687.80,-768.00,110.90}},
    {"Richman",                     {321.30,-768.00,-89.00,700.70,-674.80,110.90}},
    {"Robada Intersection",         {-1119.00,1178.90,-89.00,-862.00,1351.40,110.90}},
    {"Roca Escalante",              {2237.40,2202.70,-89.00,2536.40,2542.50,110.90}},
    {"Roca Escalante",              {2536.40,2202.70,-89.00,2625.10,2442.50,110.90}},
    {"Rockshore East",              {2537.30,676.50,-89.00,2902.30,943.20,110.90}},
    {"Rockshore West",              {1997.20,596.30,-89.00,2377.30,823.20,110.90}},
    {"Rockshore West",              {2377.30,596.30,-89.00,2537.30,788.80,110.90}},
    {"Rodeo",                       {72.60,-1684.60,-89.00,225.10,-1544.10,110.90}},
    {"Rodeo",                       {72.60,-1544.10,-89.00,225.10,-1404.90,110.90}},
    {"Rodeo",                       {225.10,-1684.60,-89.00,312.80,-1501.90,110.90}},
    {"Rodeo",                       {225.10,-1501.90,-89.00,334.50,-1369.60,110.90}},
    {"Rodeo",                       {334.50,-1501.90,-89.00,422.60,-1406.00,110.90}},
    {"Rodeo",                       {312.80,-1684.60,-89.00,422.60,-1501.90,110.90}},
    {"Rodeo",                       {422.60,-1684.60,-89.00,558.00,-1570.20,110.90}},
    {"Rodeo",                       {558.00,-1684.60,-89.00,647.50,-1384.90,110.90}},
    {"Rodeo",                       {466.20,-1570.20,-89.00,558.00,-1385.00,110.90}},
    {"Rodeo",                       {422.60,-1570.20,-89.00,466.20,-1406.00,110.90}},
    {"Rodeo",                       {466.20,-1385.00,-89.00,647.50,-1235.00,110.90}},
    {"Rodeo",                       {334.50,-1406.00,-89.00,466.20,-1292.00,110.90}},
    {"Royal Casino",                {2087.30,1383.20,-89.00,2437.30,1543.20,110.90}},
    {"San Andreas Sound",           {2450.30,385.50,-100.00,2759.20,562.30,200.00}},
    {"Santa Flora",                 {-2741.00,458.40,-7.60,-2533.00,793.40,200.00}},
    {"Santa Maria Beach",           {342.60,-2173.20,-89.00,647.70,-1684.60,110.90}},
    {"Santa Maria Beach",           {72.60,-2173.20,-89.00,342.60,-1684.60,110.90}},
    {"Shady Cabin",                 {-1632.80,-2263.40,-3.00,-1601.30,-2231.70,200.00}},
    {"Shady Creeks",                {-1820.60,-2643.60,-8.00,-1226.70,-1771.60,200.00}},
    {"Shady Creeks",                {-2030.10,-2174.80,-6.10,-1820.60,-1771.60,200.00}},
    {"Sobell Rail Yards",           {2749.90,1548.90,-89.00,2923.30,1937.20,110.90}},
    {"Spinybed",                    {2121.40,2663.10,-89.00,2498.20,2861.50,110.90}},
    {"Starfish Casino",             {2437.30,1783.20,-89.00,2685.10,2012.10,110.90}},
    {"Starfish Casino",             {2437.30,1858.10,-39.00,2495.00,1970.80,60.90}},
    {"Starfish Casino",             {2162.30,1883.20,-89.00,2437.30,2012.10,110.90}},
    {"Temple",                      {1252.30,-1130.80,-89.00,1378.30,-1026.30,110.90}},
    {"Temple",                      {1252.30,-1026.30,-89.00,1391.00,-926.90,110.90}},
    {"Temple",                      {1252.30,-926.90,-89.00,1357.00,-910.10,110.90}},
    {"Temple",                      {952.60,-1130.80,-89.00,1096.40,-937.10,110.90}},
    {"Temple",                      {1096.40,-1130.80,-89.00,1252.30,-1026.30,110.90}},
    {"Temple",                      {1096.40,-1026.30,-89.00,1252.30,-910.10,110.90}},
    {"The Camel's Toe",             {2087.30,1203.20,-89.00,2640.40,1383.20,110.90}},
    {"The Clown's Pocket",          {2162.30,1783.20,-89.00,2437.30,1883.20,110.90}},
    {"The Emerald Isle",            {2011.90,2202.70,-89.00,2237.40,2508.20,110.90}},
    {"The Farm",                    {-1209.60,-1317.10,114.90,-908.10,-787.30,251.90}},
    {"The Four Dragons Casino",     {1817.30,863.20,-89.00,2027.30,1083.20,110.90}},
    {"The High Roller",             {1817.30,1283.20,-89.00,2027.30,1469.20,110.90}},
    {"The Mako Span",               {1664.60,401.70,0.00,1785.10,567.20,200.00}},
    {"The Panopticon",              {-947.90,-304.30,-1.10,-319.60,327.00,200.00}},
    {"The Pink Swan",               {1817.30,1083.20,-89.00,2027.30,1283.20,110.90}},
    {"The Sherman Dam",             {-968.70,1929.40,-3.00,-481.10,2155.20,200.00}},
    {"The Strip",                   {2027.40,863.20,-89.00,2087.30,1703.20,110.90}},
    {"The Strip",                   {2106.70,1863.20,-89.00,2162.30,2202.70,110.90}},
    {"The Strip",                   {2027.40,1783.20,-89.00,2162.30,1863.20,110.90}},
    {"The Strip",                   {2027.40,1703.20,-89.00,2137.40,1783.20,110.90}},
    {"The Visage",                  {1817.30,1863.20,-89.00,2106.70,2011.80,110.90}},
    {"The Visage",                  {1817.30,1703.20,-89.00,2027.40,1863.20,110.90}},
    {"Unity Station",               {1692.60,-1971.80,-20.40,1812.60,-1932.80,79.50}},
    {"Valle Ocultado",              {-936.60,2611.40,2.00,-715.90,2847.90,200.00}},
    {"Verdant Bluffs",              {930.20,-2488.40,-89.00,1249.60,-2006.70,110.90}},
    {"Verdant Bluffs",              {1073.20,-2006.70,-89.00,1249.60,-1842.20,110.90}},
    {"Verdant Bluffs",              {1249.60,-2179.20,-89.00,1692.60,-1842.20,110.90}},
    {"Verdant Meadows",             {37.00,2337.10,-3.00,435.90,2677.90,200.00}},
    {"Verona Beach",                {647.70,-2173.20,-89.00,930.20,-1804.20,110.90}},
    {"Verona Beach",                {930.20,-2006.70,-89.00,1073.20,-1804.20,110.90}},
    {"Verona Beach",                {851.40,-1804.20,-89.00,1046.10,-1577.50,110.90}},
    {"Verona Beach",                {1161.50,-1722.20,-89.00,1323.90,-1577.50,110.90}},
    {"Verona Beach",                {1046.10,-1722.20,-89.00,1161.50,-1577.50,110.90}},
    {"Vinewood",                    {787.40,-1310.20,-89.00,952.60,-1130.80,110.90}},
    {"Vinewood",                    {787.40,-1130.80,-89.00,952.60,-954.60,110.90}},
    {"Vinewood",                    {647.50,-1227.20,-89.00,787.40,-1118.20,110.90}},
    {"Vinewood",                    {647.70,-1416.20,-89.00,787.40,-1227.20,110.90}},
    {"Whitewood Estates",           {883.30,1726.20,-89.00,1098.30,2507.20,110.90}},
    {"Whitewood Estates",           {1098.30,1726.20,-89.00,1197.30,2243.20,110.90}},
    {"Willowfield",                 {1970.60,-2179.20,-89.00,2089.00,-1852.80,110.90}},
    {"Willowfield",                 {2089.00,-2235.80,-89.00,2201.80,-1989.90,110.90}},
    {"Willowfield",                 {2089.00,-1989.90,-89.00,2324.00,-1852.80,110.90}},
    {"Willowfield",                 {2201.80,-2095.00,-89.00,2324.00,-1989.90,110.90}},
    {"Willowfield",                 {2541.70,-1941.40,-89.00,2703.50,-1852.80,110.90}},
    {"Willowfield",                 {2324.00,-2059.20,-89.00,2541.70,-1852.80,110.90}},
    {"Willowfield",                 {2541.70,-2059.20,-89.00,2703.50,-1941.40,110.90}},
    {"Yellow Bell Station",         {1377.40,2600.40,-21.90,1492.40,2687.30,78.00}},
    // Main Zones
    {"Los Santos",       {44.60,-2892.90,-242.90,2997.00,-768.00,900.00}},
    {"Las Venturas",     {869.40,596.30,-242.90,2997.00,2993.80,900.00}},
    {"Bone County",      {-480.50,596.30,-242.90,869.40,2993.80,900.00}},
    {"Tierra Robada",    {-2997.40,1659.60,-242.90,-480.50,2993.80,900.00}},
    {"Tierra Robada",    {-1213.90,596.30,-242.90,-480.50,1659.60,900.00}},
    {"San Fierro",       {-2997.40,-1115.50,-242.90,-1213.90,1659.60,900.00}},
    {"Red County",       {-1213.90,-768.00,-242.90,2997.00,596.30,900.00}},
    {"Flint County",     {-1213.90,-2892.90,-242.90,44.60,-768.00,900.00}},
    {"Whetstone",        {-2997.40,-2892.90,-242.90,-1213.90,-1115.50,900.00}}
};
stock GetPlayerZone(playerid, value)
{
    new zone[32],bool:getzone;
    new Float:x1,Float:y1,Float:z1;
    GetPlayerPos(playerid,x1,y1,z1);
    for(new i=0; i<sizeof(gSAZones); i++)
    {
        switch(value)
        {
            case 0:
            {
                if(x1 >= gSAZones[i][SAZONE_AREA][0] && x1 <= gSAZones[i][SAZONE_AREA][3]
                        && y1 >= gSAZones[i][SAZONE_AREA][1] && y1 <= gSAZones[i][SAZONE_AREA][4])
                {
                    strmid(zone, gSAZones[i][SAZONE_NAME], 0, strlen(gSAZones[i][SAZONE_NAME]), 255);
                    getzone = true;
                    break;
                }
            }
        }
    }
    if(!getzone) zone = "Неизвестно";
    return zone;
}
[CENTER]

PHP:
CREATE TABLE IF NOT EXISTS `cases` (
`Number` int(8) NOT NULL,
`Victim` varchar(24) NOT NULL DEFAULT '',
`Killer` varchar(24) NOT NULL DEFAULT '-',
`Bodypart` int(11) NOT NULL,
`Reason` int(11) NOT NULL,
`Info` text NOT NULL,
`Leads` varchar(24) NOT NULL DEFAULT 'Не назначен'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
Сверху Снизу