Доступ к архиву

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

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

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

Захват ганг зон

Статус
В этой теме нельзя размещать новые ответы.

BreDeN_GaDeN

Новичок
Когда одна банда захватывает территорию у другой, то при захвате (истечении времени) банда не переходит, к тем, кто захватывал, а остается, у тех у кого и была.

В Команде /capture кое-что закоментировал, всё идет нормально (таймер,засчитывает киллы), но только не переходит ГЗ как писал выше. Но если некоментировать, то вообще практически всё летит, к примеру война между: Grove и Vagos, киллы по нулям, но если убивать, 0 так и стоит. К тому же после захвата, тера багается.

Предоставляю /capture и паблик public CheckArmour(), т.к считаю что проблема или в команде, или в паблике, но если проблема, в другом, дайте знать.

То что я закоментировал, в команде /capture, так и оставил. И извиняюсь за символы вместо русского языка, сам не пойму откуда они взялись :(

/capture:

PHP:
if(strcmp(cmd, "/capture", true) == 0)
	{
    new fntext[19], fztext[19];
    if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pMember] == 3) return SendClientMessage(playerid, COLOR_RED, "Äàííàÿ ôóíêöèÿ Âàì íå äîñòóïíà");
    if(PlayerInfo[playerid][pRank] < 4) return SendClientMessage(playerid, COLOR_RED, "Äàííàÿ ôóíêöèÿ äîñòóïíà ñ 4 ðàíãà");
    if(StopWar != false) return SendClientMessage(playerid, COLOR_RED, "Çàõâàò òåððèòîðèè âîçìîæåí 1 ðàç â 30 ìèíóò");
    if(Command[0] != 0) return SendClientMessage(playerid, COLOR_RED, "Íà äàííûé ìîìåíò óæå çàõâàòûâàåòñÿ òåððèòîðèÿ");
    new zid, mid, Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x,y,z);
    for(new i = 0; i < sizeof(GZInfo); i++)
	{
    if((x >= GZInfo[i][px1] && x <= GZInfo[i][px2]) && (y >= 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]) return SendClientMessage(playerid, COLOR_RED, "Äàííàÿ òåððèòîðèÿ ïðèíàäëåæèò âàì");
	/*
	if(GZInfo[zid][pfrak] == 0)
	{
 	GZInfo[zid][pfrak] = mid;
    SaveGZ();
    switch(GZInfo[zid][pfrak])
	{
 	case 1: GangZoneShowForPlayer(playerid, zid, 0x03c03cAA);
  	case 2: GangZoneShowForPlayer(playerid, zid, 0xcd00cdAA);
    case 3: GangZoneShowForPlayer(playerid, zid, 0xffd700AA);
    }
    */
    new kol;
    for(new i=0;i<MAX_PLAYERS;i++)
	{
	if(PlayerInfo[i][pMember] == GZInfo[zid][pfrak] || PlayerInfo[i][pLeader] == GZInfo[zid][pfrak]) kol++;
    }
    if(kol < 1) return SendClientMessage(playerid, COLOR_RED, "Ó äàííîé áàíäû íåòó îíëàéíà");
    switch(mid)
	{
    case 1: fntext = "Grove Street";
    case 2: fntext = "The Ballas";
    case 3: fntext = "Los Santos Vagos";
    }
    switch(GZInfo[zid][pfrak])
	{
    case 1: fztext = "Grove Street";
    case 2: fztext = "The Ballas";
    case 3: fztext = "Los Santos Vagos";
    }
    format(string, sizeof(string), "Áàíäà '%s' íà÷àëà çàõâàò òåððèòîðèè ó '%s' â ðàéîíå '%s'",fntext, fztext, GetPlayerZone(playerid));
    SendFamilyMessage(1, 0xdd4400AA, string),SendFamilyMessage(2, 0xdd4400AA, string),SendFamilyMessage(3, 0xdd4400AA, string);
    GangZoneFlashForAll(zid, COLOR_RED);
    Command[0] = mid, Command[1] = GZInfo[zid][pfrak], WarZoneID = zid;
    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);
    new ftext[8];
    switch(mid)
	{
    case 1: ftext = "Grove";
    case 2: ftext = "Ballas";
    case 3: ftext = "Vagos";
    }
	onecommand = TextDrawCreate(10.0, 300.0, ftext);
    TextDrawLetterSize(onecommand, 0.4, 1.2);
    TextDrawFont(onecommand, 2);
    TextDrawSetOutline(onecommand, 2);
    switch(GZInfo[zid][pfrak])
	{
    case 1: ftext = "Grove";
    case 2: ftext = "Ballas";
    case 3: 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<MAX_PLAYERS;i++)
	{
    if((PlayerInfo[i][pMember] >= 1 && PlayerInfo[i][pMember] <= 3) || (PlayerInfo[i][pLeader] >= 1 && PlayerInfo[i][pLeader] <= 3)) {
    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;
    }
    return true;
    }
public CheckArmour():

PHP:
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();
                new fntext[19], fztext[19], string[126], zid, mid;
                switch(mid)
				{
				case 1: fntext = "Grove Street";
				case 2: fntext = "The Ballas";
			    case 3: fntext = "Los Santos Vagos";
				}
			    switch(GZInfo[zid][pfrak])
				{
                case 1: fztext = "Grove Street";
				case 2: fztext = "The Ballas";
                case 3: fztext = "Los Santos Vagos";
                }
                if(CommandKill[0] > CommandKill[1])
                {
                        foreach(new i: Player)
                        {
                                if(!IsPlayerConnected(i)) return true;
                                switch(GZInfo[WarZoneID][pfrak])
								{
                                    case 1: GangZoneShowForPlayer(i, WarZoneID, 0x00BC1E96);
                                    case 2: GangZoneShowForPlayer(i, WarZoneID, 0xD800C796);
                                    case 3: GangZoneShowForPlayer(i, WarZoneID, 0xFFCF0096);
                                }
                                if(PlayerInfo[i][pMember] == Command[0] || PlayerInfo[i][pLeader] == Command[0]) SendClientMessage(i, COLOR_GREEN, "Âû âûèãðàëè áèòâó è âçÿëè íîâóþ òåððèòîðèþ");
     			                if(PlayerInfo[i][pMember] == Command[1] || PlayerInfo[i][pLeader] == Command[1]) SendClientMessage(i, COLOR_ORANGE, "Âû ïðîèãðàëè áèòâó è ïîòåðÿëè òåððèòîðèþ");
                        }
                        GZInfo[WarZoneID][pfrak] = Command[0];
                        format(string, sizeof(string), "Áàíäà '%s' çàõâàòèëè òåððèòîðèþ ó '%s'",fntext, fztext);
				        SendFamilyMessage(1, 0xdd4400AA, string),SendFamilyMessage(2, 0xdd4400AA, string),SendFamilyMessage(3, 0xdd4400AA, string);
				}
                else if(CommandKill[0] < CommandKill[1])
                {
                        foreach(new i: Player)
                        {
                                if(!IsPlayerConnected(i)) return true;
                                switch(GZInfo[WarZoneID][pfrak])
								{
                                    case 1: GangZoneShowForPlayer(i, WarZoneID, 0x00BC1E96);
                                    case 2: GangZoneShowForPlayer(i, WarZoneID, 0xD800C796);
                                    case 3: GangZoneShowForPlayer(i, WarZoneID, 0xFFCF0096);
                                }
                                if(PlayerInfo[i][pMember] == Command[1] || PlayerInfo[i][pLeader] == Command[1]) SendClientMessage(i, COLOR_GREEN, "Âû îòñòîÿëè ñâîþ òåððèòîðèþ");
                                else if(PlayerInfo[i][pMember] == Command[0] || PlayerInfo[i][pLeader] == Command[0])
                                {
                                		new ftext[10];
                                        switch(GZInfo[WarZoneID][pfrak])
										{
                                            case 1: ftext = "Grove";
                                            case 2: ftext = "Ballas";
                                            case 3: ftext = "Vagos";
                                        }
                                        format(string, sizeof(string),"Âàì íå óäàëîñü çàõâàòèòü òåððèòîðèþ áàíäû %s",ftext); SendClientMessage(i, COLOR_ORANGE, string);
                                }
                        }
                }
                else
                {
                        foreach(new i: Player)
                        {
                                if(PlayerInfo[i][pMember] == Command[1] || PlayerInfo[i][pLeader] == Command[1])
                                {
                                        SendClientMessage(i, COLOR_GREEN, "Íè÷üÿ, òåððèòîðèÿ îñòà¸òñÿ ó âàñ");
                                        switch(GZInfo[WarZoneID][pfrak])
										{
                                        case 1: GangZoneShowForPlayer(i, WarZoneID, 0x00BC1E96);
                                    	case 2: GangZoneShowForPlayer(i, WarZoneID, 0xD800C796);
                                    	case 3: 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);
        return 1;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу