Система захват территорий (Advance RP) - 85% [RLS]

Description: Уроки по скриптингу
Moderator: SJplayer

SJplayer M
Topic author, Модератор
Модератор
Avatar
SJplayer M
Topic author, Модератор
Модератор
Posts: 196
Joined: 25 May 2013
With us: 11 years 4 months

#1by SJplayer » 1 Jun 2013, 21:52

Система захват территорий (Advance RP) - 85% [RLS]

Автор: SQUUAAD

Image

Image

Image


Система подойдёт к любому моду,где нет системы захвата.


И так начнём:

1. Добавить к глобальным переменным (ко всем new):

Code: Select all

new bool:StopWar = false;
new Command[2];
new CommandKill[2];
new WarZoneID;
new Text: onecommand;
new Text: twocommand;
new Text: kolone;
new Text: koltwo;
new Text: fon;
new Text: time;
new Text: vremya;
new WarTimeMin;
new WarTimeSec;
new WarStop;


2. Добавим forward's (Ко всем forward):

Code: Select all

forward LoadGZ();
forward SaveGZ();
forward CheckArmour(); // такой форвад уже скорей всего есть, так что можно просто добавить содержимое моего кода в данный паблик         


3. Создать паблики, лучше в самом конце мода:

Code: Select all

public LoadGZ()
{
    new string[256];
    new ololo[5][32];
    new File: file = fopen("zone.ini", io_read);
    if(file)
    {
        new idx;
        while (idx < sizeof(GZInfo))
        {
            fread(file, string);
            split(string, ololo, '|');
            GZInfo[idx][px1] = floatstr(ololo[0]);
            GZInfo[idx][py1] = floatstr(ololo[1]);
            GZInfo[idx][px2] = floatstr(ololo[2]);
            GZInfo[idx][py2] = floatstr(ololo[3]);
            GZInfo[idx][pfrak] = strval(ololo[4]);
            idx++;
        }
        fclose(file);
    }
}

public SaveGZ()
{
    new string[128], idx;
    new File: file2;
    while (idx < sizeof(GZInfo))
    {
        format(string, sizeof(string),"%f|%f|%f|%f|%d\n",GZInfo[idx][px1],GZInfo[idx][py1],GZInfo[idx][px2],
        GZInfo[idx][py2],GZInfo[idx][pfrak]);
        if(idx == 0)
        {
            file2 = fopen("zone.ini", io_write);
        }
        else
        
{
            file2 = fopen("zone.ini", io_append);
        }
        fwrite(file2,string);
        idx++;
        fclose(file2);
    }
    return 1;
}

public CheckArmour()
{
    WarTimeSec--;
    if(WarStop > 0) WarStop--;
    if(WarStop == 0) StopWar = false;
    if(WarTimeSec == 0 && WarTimeMin == 0)
    {
        TextDrawDestroy(fon);
        TextDrawDestroy(onecommand);
        TextDrawDestroy(twocommand);
        TextDrawDestroy(kolone);
        TextDrawDestroy(koltwo);
        TextDrawDestroy(time);
        TextDrawDestroy(vremya);
        GangZoneStopFlashForAll(WarZoneID);
        SaveGZ();
        if(CommandKill[0] > CommandKill[1])
        {
            for(new i = 0; i < GetMaxPlayers(); i++)
            {
                if(IsPlayerConnected(i))
                {
                    if(GZInfo[WarZoneID][pfrak] == 19) GangZoneShowForPlayer(i, WarZoneID, 0x00BC1E96);
                    else if(GZInfo[WarZoneID][pfrak] == 20)  GangZoneShowForPlayer(i, WarZoneID, 0xD800C796);
                    else if(GZInfo[WarZoneID][pfrak] == 21)  GangZoneShowForPlayer(i, WarZoneID, 0x5418D696);
                    else if(GZInfo[WarZoneID][pfrak] == 22)  GangZoneShowForPlayer(i, WarZoneID, 0x0098FF96);
                    else if(GZInfo[WarZoneID][pfrak] == 23)  GangZoneShowForPlayer(i, WarZoneID, 0xFFCF0096);
                }
                if(PlayerInfo[i][pMember] == Command[0] || PlayerInfo[i][pLeader] == Command[0])
                {
                    SendClientMessage(i, COLOR_GREEN, "Вы выиграли эту битву.");
                }
            }
            GZInfo[WarZoneID][pfrak] = Command[0];
        }
        else if(CommandKill[0] < CommandKill[1])
        {
            for(new i = 0; i < GetMaxPlayers(); i++)
            {
                if(IsPlayerConnected(i))
                {
                    if(GZInfo[WarZoneID][pfrak] == 19) GangZoneShowForPlayer(i, WarZoneID, 0x00BC1E96);
                    else if(GZInfo[WarZoneID][pfrak] == 20)  GangZoneShowForPlayer(i, WarZoneID, 0xD800C796);
                    else if(GZInfo[WarZoneID][pfrak] == 21)  GangZoneShowForPlayer(i, WarZoneID, 0x5418D696);
                    else if(GZInfo[WarZoneID][pfrak] == 22)  GangZoneShowForPlayer(i, WarZoneID, 0x0098FF96);
                    else if(GZInfo[WarZoneID][pfrak] == 23)  GangZoneShowForPlayer(i, WarZoneID, 0xFFCF0096);
                }
                if(PlayerInfo[i][pMember] == Command[1] || PlayerInfo[i][pLeader] == Command[1])
                {
                    SendClientMessage(i, COLOR_GRAD1, "Вы выиграли эту битву.");
                }
                else if(PlayerInfo[i][pMember] == Command[0] || PlayerInfo[i][pLeader] == Command[0])
                {
                    new string[64],ftext[16];
                    if(GZInfo[WarZoneID][pfrak] == 19) ftext = "The Grove";
                    else if(GZInfo[WarZoneID][pfrak] == 20) ftext = "Ballas";
                    else if(GZInfo[WarZoneID][pfrak] == 21) ftext = "Rifa";
                    else if(GZInfo[WarZoneID][pfrak] == 22) ftext = "Aztecas";
                    else if(GZInfo[WarZoneID][pfrak] == 23) ftext = "Vagos";
                    format(string, sizeof(string),"Вам не удалось захватить территорию банды %s",ftext);
                    SendClientMessage(i, COLOR_GREEN, string);
                }
            }
        }
        else
        
{
            for(new i = 0; i < GetMaxPlayers(); i++)
            {
                if(PlayerInfo[i][pMember] == Command[1] || PlayerInfo[i][pLeader] == Command[1])
                {
                    SendClientMessage(i, COLOR_GREEN, "Ничья, зона остаётся у вас.");
                    if(GZInfo[WarZoneID][pfrak] == 19) GangZoneShowForPlayer(i, WarZoneID, 0x00BC1E96);
                    else if(GZInfo[WarZoneID][pfrak] == 20)  GangZoneShowForPlayer(i, WarZoneID, 0xD800C796);
                    else if(GZInfo[WarZoneID][pfrak] == 21)  GangZoneShowForPlayer(i, WarZoneID, 0x5418D696);
                    else if(GZInfo[WarZoneID][pfrak] == 22)  GangZoneShowForPlayer(i, WarZoneID, 0x0098FF96);
                    else if(GZInfo[WarZoneID][pfrak] == 23)  GangZoneShowForPlayer(i, WarZoneID, 0xFFCF0096);
                }
            }
        }
        Command[0] = 0;
        Command[1] = 0;
    }
    else if(WarTimeSec == 0) { WarTimeSec = 60; WarTimeMin--; }
    new string[32];
    if(WarTimeSec > 9) format(string, sizeof(string),"%d:%d",WarTimeMin,WarTimeSec);
    else format(string, sizeof(string),"%d:0%d",WarTimeMin,WarTimeSec);
    TextDrawSetString(vremya, string);
}


4. В OnGameModeInit() добавим:

Code: Select all

        SetTimer("CheckArmour",1000,1); // если такого нет
        LoadGZ();
    for(new i = 0; i < sizeof(GZInfo); i++)
    {
        GangZoneCreate(GZInfo[i][px1],GZInfo[i][py1],GZInfo[i][px2],GZInfo[i][py2]);
    }


5. В OnPlayerConnect() добавим:

Code: Select all

for(new i = 0; i < sizeof(GZInfo); i++)
{
    if(GZInfo[i][pfrak] == 0) GangZoneShowForPlayer(playerid, i, 0xB4B4B496);
    else if(GZInfo[i][pfrak] == 19) GangZoneShowForPlayer(playerid, i, 0x00BC1E96);
    else if(GZInfo[i][pfrak] == 20)  GangZoneShowForPlayer(playerid, i, 0xD800C796);
    else if(GZInfo[i][pfrak] == 21)  GangZoneShowForPlayer(playerid, i, 0x5418D696);
    else if(GZInfo[i][pfrak] == 22)  GangZoneShowForPlayer(playerid, i, 0x0098FF96);
    else if(GZInfo[i][pfrak] == 23)  GangZoneShowForPlayer(playerid, i, 0xFFCF0096); 
}


6. В OnPlayerDisconnect() добавим:

Code: Select all

    if(PlayerInfo[playerid][pMember] == Command[0] || PlayerInfo[playerid][pLeader] == Command[0] ||
    PlayerInfo[playerid][pMember] == Command[1] || PlayerInfo[playerid][pLeader] == Command[1])
    {
        TextDrawHideForPlayer(playerid, fon);
        TextDrawHideForPlayer(playerid, onecommand);
        TextDrawHideForPlayer(playerid, twocommand);
        TextDrawHideForPlayer(playerid, kolone);
        TextDrawHideForPlayer(playerid, koltwo);
        TextDrawHideForPlayer(playerid, time);
        TextDrawHideForPlayer(playerid, vremya);
    }


7. В OnPlayerDeath() добавим:

Code: Select all

    if(WarTimeSec > 0)
    {
        if(PlayerInfo[playerid][pMember] == Command[0] || PlayerInfo[playerid][pLeader] == Command[0])
        {
            if(PlayerInfo[killerid][pMember] == Command[1] || PlayerInfo[killerid][pLeader] == Command[1])
            {
                new Float:x, Float:y, Float:z;
                GetPlayerPos(playerid, x,y,z);
                if((>= GZInfo[WarZoneID][px1] && x <= GZInfo[WarZoneID][px2]) &&
                (>= GZInfo[WarZoneID][py1] && y <= GZInfo[WarZoneID][py2]))
                {
                    CommandKill[1]++;
                    new string[12];
                    format(string, sizeof(string),"%d",CommandKill[1]);
                    TextDrawSetString(kolone, string);
                }
            }
        }
        if(PlayerInfo[playerid][pMember] == Command[1] || PlayerInfo[playerid][pLeader] == Command[1])
        {
            if(PlayerInfo[killerid][pMember] == Command[0] || PlayerInfo[killerid][pLeader] == Command[0])
            {
                new Float:x, Float:y, Float:z;
                GetPlayerPos(playerid, x,y,z);
                if((>= GZInfo[WarZoneID][px1] && x <= GZInfo[WarZoneID][px2]) &&
                (>= GZInfo[WarZoneID][py1] && y <= GZInfo[WarZoneID][py2]))
                {
                    CommandKill[0]++;
                    new string[12];
                    format(string, sizeof(string),"%d",CommandKill[0]);
                    TextDrawSetString(koltwo, string);
                }
            }
        }
    }


8. В OnPlayerCommandText(playerid, cmdtext[]) добавим:

Code: Select all

else if(strcmp(cmd, "/gzone", true) == 0)
    {
        if(PlayerInfo[playerid][pAdmin] >= 1)
        {
            tmp=strtok(cmdtext, idx);
            if(!strlen(tmp) || (!IsNumeric(tmp)))
            {
                SendClientMessage(playerid, COLOR_GRAD1, "Используйте: /gzone [ 19 - 23 ]");
                return 1;
            }
            new banda = strval(tmp);
            if(banda > 18 && banda < 24)
            {
                new zid;
                new Float:x, Float:y, Float:z;
                GetPlayerPos(playerid, x,y,z);
                for(new i = 0; i < sizeof(GZInfo); i++)
                {
                    if((>= GZInfo[i][px1] && x <= GZInfo[i][px2]) &&
                    (>= GZInfo[i][py1] && y <= GZInfo[i][py2]))
                    {
                        zid = i;
                        i = 5555;
                    }
                }
                GZInfo[zid][pfrak] = banda;
                SaveGZ();
                if(GZInfo[zid][pfrak] == 19) GangZoneShowForAll(zid, 0x00BC1E96);
                else if(GZInfo[zid][pfrak] == 20)  GangZoneShowForAll(zid, 0xD800C796);
                else if(GZInfo[zid][pfrak] == 21)  GangZoneShowForAll(zid, 0x5418D696);
                else if(GZInfo[zid][pfrak] == 22)  GangZoneShowForAll(zid, 0x0098FF96);
                else if(GZInfo[zid][pfrak] == 23)  GangZoneShowForAll(zid, 0xFFCF0096);
                SendClientMessage(playerid,COLOR_GRAD1, "Сделано.");
            }
            else
            
{
                SendClientMessage(playerid, COLOR_GRAD1, "Недопустимое значение.");
                return 1;
            }
        }
    }


9. В public OnPlayerCommandText(playerid, cmdtext[]):

Code: Select all

    else if(strcmp(cmd, "/capture", true) == 0)
    {
    new fntext[60];
    new string[128];
    new fztext[60];
        if(PlayerInfo[playerid][pMember] >= 19 && PlayerInfo[playerid][pMember] <= 23)
        {
            if(PlayerInfo[playerid][pRang] >= 7)
            {
                if(StopWar == false)
                {
                    if(Command[0] != 0) { SendClientMessage(playerid, COLOR_GRAD1, "На данный момент уже захватывается территория"); return 1; }
                    new zid,mid;
                    new Float:x, Float:y, Float:z;
                    GetPlayerPos(playerid, x,y,z);
                    for(new i = 0; i < sizeof(GZInfo); i++)
                    {
                        if((>= GZInfo[i][px1] && x <= GZInfo[i][px2]) &&
                        (>= GZInfo[i][py1] && y <= GZInfo[i][py2]))
                        {
                            zid = i;
                            i = 5555;
                        }
                    }
                    if(PlayerInfo[playerid][pMember] != 0) mid = PlayerInfo[playerid][pMember];
                    else if(PlayerInfo[playerid][pLeader] != 0) mid = PlayerInfo[playerid][pLeader];
                    if(mid == GZInfo[zid][pfrak]) { SendClientMessage(playerid, COLOR_GRAD1, "Данная территория принадлежит вам"); return 1; }
                    if(GZInfo[zid][pfrak] == 0)
                    {
                        GZInfo[zid][pfrak] = mid;
                        SaveGZ();
                        if(GZInfo[zid][pfrak] == 19) GangZoneShowForPlayer(playerid, zid, 0x03c03cAA);
                        else if(GZInfo[zid][pfrak] == 20)  GangZoneShowForPlayer(playerid, zid, 0xcd00cdAA);
                        else if(GZInfo[zid][pfrak] == 21)  GangZoneShowForPlayer(playerid, zid, 0x3D62F296);
                        else if(GZInfo[zid][pfrak] == 22)  GangZoneShowForPlayer(playerid, zid, 0x1ee7ffAA);
                        else if(GZInfo[zid][pfrak] == 23)  GangZoneShowForPlayer(playerid, zid, 0xffd700AA);
                        return 1;
                    }
                    new kol;
                    for(new i = 0; i < GetMaxPlayers(); i++)
                    {
                        if(PlayerInfo[i][pMember] == GZInfo[zid][pfrak] ||
                        PlayerInfo[i][pLeader] == GZInfo[zid][pfrak])
                        {
                            kol++;
                        }
                    }
                    if(kol < 1) { SendClientMessage(playerid, COLOR_GRAD1, "У данной банды нету онлайна"); return 1; }
            if(mid == 19) fntext = "Grove Street";
                    else if(mid == 20) fntext = "The Ballas";
                    else if(mid == 21) fntext = "The Rifa";
                    else if(mid == 22) fntext = "Varios Los Aztecas";
                    else if(mid == 23) fntext = "Los Santos Vagos";
                                        if(GZInfo[zid][pfrak] == 19) fztext = "Grove Street";
                    else if(GZInfo[zid][pfrak] == 20) fztext = "The Ballas";
                    else if(GZInfo[zid][pfrak] == 21) fztext = "The Rifa";
                    else if(GZInfo[zid][pfrak] == 22) fztext = "Varios Los Aztecas";
                    else if(GZInfo[zid][pfrak] == 23) fztext = "Los Santos Vagos";
                format(string, sizeof(string), "Банда '%s' начала захват территории у '%s' в районе '%s'",fntext, fztext, GetPlayerZone(playerid));
                SendFamilyMessage(19, 0xdd4400AA, string),SendFamilyMessage(20, 0xdd4400AA, string),SendFamilyMessage(21, 0xdd4400AA, string),SendFamilyMessage(22, 0xdd4400AA, string),SendFamilyMessage(23, 0xdd4400AA, string);
                    GangZoneFlashForAll(zid, COLOR_RED);
                    Command[0] = mid;
                    Command[1] = GZInfo[zid][pfrak];
                    WarZoneID = zid;
                    new ftext[16];
                    fon = TextDrawCreate(1, 285, "_");
                                    TextDrawUseBox(fon, 1);
                                    TextDrawBoxColor(fon, 0x00000075);
                                    TextDrawTextSize(fon, 150.0, 400.0);
                                    TextDrawLetterSize(fon, 0.0, 5.3);
                    time = TextDrawCreate(10.0, 285.0, "Time:");
                    TextDrawLetterSize(time, 0.4, 1.2);
                    TextDrawColor(time, 0x37FA00FF);
                    TextDrawFont(time, 2);
                    TextDrawSetProportional(time, 1);
                    TextDrawSetOutline(time, 2);
                    vremya = TextDrawCreate(50.0, 285.0, "5:00");
                    TextDrawLetterSize(vremya, 0.4, 1.2);
                    TextDrawColor(vremya, 0x37FA00FF);
                    TextDrawFont(vremya, 2);
                    TextDrawSetOutline(vremya, 2);
                    if(mid == 19) ftext = "Grove";
                    else if(mid == 20) ftext = "Ballas";
                    else if(mid == 21) ftext = "Rifa";
                    else if(mid == 22) ftext = "Aztecas";
                    else if(mid == 23) ftext = "Vagos";
                    onecommand = TextDrawCreate(10.0, 300.0, ftext);
                    TextDrawLetterSize(onecommand, 0.4, 1.2);
                    TextDrawFont(onecommand, 2);
                    TextDrawSetOutline(onecommand, 2);
                    if(GZInfo[zid][pfrak] == 19) ftext = "Grove";
                    else if(GZInfo[zid][pfrak] == 20) ftext = "Ballas";
                    else if(GZInfo[zid][pfrak] == 21) ftext = "Rifa";
                    else if(GZInfo[zid][pfrak] == 22) ftext = "Aztecas";
                    else if(GZInfo[zid][pfrak] == 23) ftext = "Vagos";
                    twocommand = TextDrawCreate(10.0, 315.0, ftext);
                    TextDrawUseBox(twocommand, 0);
                    TextDrawLetterSize(twocommand, 0.4, 1.2);
                    TextDrawFont(twocommand, 2);
                    TextDrawSetOutline(twocommand, 2);
                    kolone = TextDrawCreate(133.0, 315.0, "0");
                    TextDrawLetterSize(kolone, 0.4, 1.2);
                    TextDrawFont(kolone, 2);
                    TextDrawSetOutline(kolone, 2);
                    koltwo = TextDrawCreate(133.0, 300.0, "0");
                    TextDrawLetterSize(koltwo, 0.4, 1.2);
                    TextDrawFont(koltwo, 2);
                    TextDrawSetOutline(koltwo, 2);
                    for(new i = 0; i < GetMaxPlayers();i++)
                    {
                        if((PlayerInfo[i][pMember] >= 19 && PlayerInfo[i][pMember] <= 23) ||
                        (PlayerInfo[i][pLeader] >= 19 && PlayerInfo[i][pLeader] <= 23))
                        {
                            TextDrawShowForPlayer(i,fon);
                            TextDrawShowForPlayer(i,time);
                            TextDrawShowForPlayer(i,vremya);
                            TextDrawShowForPlayer(i,onecommand);
                            TextDrawShowForPlayer(i,twocommand);
                            TextDrawShowForPlayer(i,kolone);
                            TextDrawShowForPlayer(i,koltwo);
                        }
                    }
                    WarTimeMin = 2;
                    WarTimeSec = 60;
                    WarStop = 7200000;
                    CommandKill[0] = 0;
                    CommandKill[1] = 0;
                    StopWar = true;
                }
                else
                
{
                    SendClientMessage(playerid, COLOR_GRAD1, "Захват территории возможен 1 раз в час");
                    return 1;
                }
            }
            else
            
{
                SendClientMessage(playerid, COLOR_GRAD1, "Данная функция доступна с 7 ранга");
                return 1;
            }
        }
        else
        
{
            SendClientMessage(playerid, COLOR_GRAD1, "Данная функция Вам не доступна");
            return 1;
        }
    }


10.

Code: Select all

enum pZone
{
 Float:px1,
 Float:py1,
 Float:px2,
 Float:py2,
 pfrak,
}; 


Файл zone.ini

Code: Select all

1625.199951|-2176.175537|1755.199951|-2036.507812|22
1755.199951
|-2176.188476|1885.199951|-2036.507812|22
1885.199951
|-2176.201416|2015.199951|-2036.507812|22
2015.199951
|-2176.214599|2145.199951|-2036.507812|22
2145.199951
|-2176.227539|2275.199951|-2036.507812|22
2275.199951
|-2176.240478|2405.199951|-2036.507812|21
2405.199951
|-2176.253417|2535.199951|-2036.507812|21
2535.199951
|-2176.266601|2665.199951|-2036.507812|21
2665.199951
|-2176.279541|2795.199951|-2036.507812|21
2795.199951
|-2176.292480|2925.199951|-2036.507812|21
1625.199951
|-2036.175537|1755.199951|-1896.507812|22
1755.199951
|-2036.188476|1885.199951|-1896.507812|22
1885.199951
|-2036.201538|2015.199951|-1896.507812|22
2015.199951
|-2036.214477|2145.199951|-1896.507812|22
2145.199951
|-2036.227539|2275.199951|-1896.507812|22
2275.199951
|-2036.240478|2405.199951|-1896.507812|21
2405.199951
|-2036.253540|2535.199951|-1896.507812|21
2535.199951
|-2036.266479|2665.199951|-1896.507812|21
2665.199951
|-2036.279541|2795.199951|-1896.507812|21
2795.199951
|-2036.292480|2925.199951|-1896.507812|21
1625.199951
|-1896.175537|1755.199951|-1756.507812|22
1755.199951
|-1896.188476|1885.199951|-1756.507812|22
1885.199951
|-1896.201538|2015.199951|-1756.507812|22
2015.199951
|-1896.214477|2145.199951|-1756.507812|22
2145.199951
|-1896.227539|2275.199951|-1756.507812|22
2275.199951
|-1896.240478|2405.199951|-1756.507812|21
2405.199951
|-1896.253540|2535.199951|-1756.507812|21
2535.199951
|-1896.266479|2665.199951|-1756.507812|21
2665.199951
|-1896.279541|2795.199951|-1756.507812|21
2795.199951
|-1896.292480|2925.199951|-1756.507812|21
1625.199951
|-1756.175537|1755.199951|-1616.507812|22
1755.199951
|-1756.188476|1885.199951|-1616.507812|22
1885.199951
|-1756.201538|2015.199951|-1616.507812|19
2015.199951
|-1756.214477|2145.199951|-1616.507812|19
2145.199951
|-1756.227539|2275.199951|-1616.507812|19
2275.199951
|-1756.240478|2405.199951|-1616.507812|19
2405.199951
|-1756.253540|2535.199951|-1616.507812|19
2535.199951
|-1756.266479|2665.199951|-1616.507812|19
2665.199951
|-1756.279541|2795.199951|-1616.507812|21
2795.199951
|-1756.292480|2925.199951|-1616.507812|21
1625.199951
|-1616.175537|1755.199951|-1476.507812|20
1755.199951
|-1616.188476|1885.199951|-1476.507812|22
1885.199951
|-1616.201538|2015.199951|-1476.507812|19
2015.199951
|-1616.214477|2145.199951|-1476.507812|19
2145.199951
|-1616.227539|2275.199951|-1476.507812|19
2275.199951
|-1616.240478|2405.199951|-1476.507812|19
2405.199951
|-1616.253540|2535.199951|-1476.507812|19
2535.199951
|-1616.266479|2665.199951|-1476.507812|19
2665.199951
|-1616.279541|2795.199951|-1476.507812|21
2795.199951
|-1616.292480|2925.199951|-1476.507812|23
1625.199951
|-1476.175537|1755.199951|-1336.507812|20
1755.199951
|-1476.188476|1885.199951|-1336.507812|20
1885.199951
|-1476.201538|2015.199951|-1336.507812|19
2015.199951
|-1476.214477|2145.199951|-1336.507812|19
2145.199951
|-1476.227539|2275.199951|-1336.507812|19
2275.199951
|-1476.240478|2405.199951|-1336.507812|19
2405.199951
|-1476.253540|2535.199951|-1336.507812|19
2535.199951
|-1476.266479|2665.199951|-1336.507812|19
2665.199951
|-1476.279541|2795.199951|-1336.507812|23
2795.199951
|-1476.292480|2925.199951|-1336.507812|23
1625.199951
|-1336.175537|1755.199951|-1196.507812|20
1755.199951
|-1336.188476|1885.199951|-1196.507812|20
1885.199951
|-1336.201538|2015.199951|-1196.507812|20
2015.199951
|-1336.214477|2145.199951|-1196.507812|20
2145.199951
|-1336.227539|2275.199951|-1196.507812|20
2275.199951
|-1336.240478|2405.199951|-1196.507812|23
2405.199951
|-1336.253540|2535.199951|-1196.507812|23
2535.199951
|-1336.266479|2665.199951|-1196.507812|23
2665.199951
|-1336.279541|2795.199951|-1196.507812|23
2795.199951
|-1336.292480|2925.199951|-1196.507812|23
1625.199951
|-1196.175537|1755.199951|-1056.507812|20
1755.199951
|-1196.188476|1885.199951|-1056.507812|20
1885.199951
|-1196.201538|2015.199951|-1056.507812|20
2015.199951
|-1196.214477|2145.199951|-1056.507812|20
2145.199951
|-1196.227539|2275.199951|-1056.507812|20
2275.199951
|-1196.240478|2405.199951|-1056.507812|23
2405.199951
|-1196.253540|2535.199951|-1056.507812|23
2535.199951
|-1196.266479|2665.199951|-1056.507812|23
2665.199951
|-1196.279541|2795.199951|-1056.507812|23
2795.199951
|-1196.292480|2925.199951|-1056.507812|23
1625.199951
|-1056.175537|1755.199951|-916.517028|20
1755.199951
|-1056.188476|1885.199951|-916.513000|20
1885.199951
|-1056.201538|2015.199951|-916.513000|20
2015.199951
|-1056.214477|2145.199951|-916.513000|20
2145.199951
|-1056.227539|2275.199951|-916.513000|20
2275.199951
|-1056.240478|2405.199951|-916.513000|23
2405.199951
|-1056.253540|2535.199951|-916.513000|23
2535.199951
|-1056.266479|2665.199951|-916.513000|23
2665.199951
|-1056.279541|2795.199951|-916.513000|23
2795.199951
|-1056.292480|2925.199951|-916.513000|23


  • Similar Topics
    Replies
    Views
    Last post

Return to “Уроки”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest