Fast_Stone
Умник
Проблема в том что тут бесконечные капты чтобы устранить они должны все кто из банды где капт идёт выйти с игры, а также в квадрат не сохраняется капт по фрагам, Как исправить?
Stock:
/capture
Stock:
PHP:
stock GzCheck()
{
if(capt == 1 || capt == 10)//capture[12] == 1 || capture[13] == 1 || capture[15] == 1 || capture[17] == 1 || capture[18] == 1)
{
if(WarZoneID == 255) return true;
WarTimeSec--;
if(WarTimeSec > 1 && WarTimeMin >= 0 || WarTimeMin > 0)
{
if(WarTimeSec == 0 && WarTimeMin != 0) { WarTimeSec = 60; WarTimeMin--; }
new stringtime[32];
if(WarTimeSec > 9) format(stringtime, sizeof(stringtime)," %d:%d",WarTimeMin,WarTimeSec);
else format(stringtime, sizeof(stringtime)," %d:0%d",WarTimeMin,WarTimeSec);
TextDrawSetString(vremya, stringtime);
}
else
{
foreach(Player, z)
{
if(PlayerInfo[z][pMRInections] == 12 || PlayerInfo[z][pMRInections] == 13 || PlayerInfo[z][pMRInections] == 15 || PlayerInfo[z][pMRInections] == 17 || PlayerInfo[z][pMRInections] == 18)
{
TextDrawHideForPlayer(z, fon);
TextDrawHideForPlayer(z, onecommand);
TextDrawHideForPlayer(z, twocommand);
TextDrawHideForPlayer(z, kolone);
TextDrawHideForPlayer(z, koltwo);
TextDrawHideForPlayer(z, timetext);
TextDrawHideForPlayer(z, vremya);
}
}
GangZoneStopFlashForAll(WarZoneID);
GangZoneHideForAll(WarZoneID);
if(CommandKill[1] > CommandKill[0])
{
SendFamilyMessage(captureteam[1],COLOR_NICE,"[F] Вам удалось отстоять свою территорию");
SendFamilyMessage(captureteam[0],COLOR_RED,"[F] Вам не удалось завоевать территорию");
switch(GZInfo[WarZoneID][gFrakVlad])
{
case 12: GangZoneShowForAll(GZInfo[WarZoneID][gID],0xd200ff99);
case 18: GangZoneShowForAll(GZInfo[WarZoneID][gID],0x007fffAA);
case 13: GangZoneShowForAll(GZInfo[WarZoneID][gID],0xcfbe0899);
case 15: GangZoneShowForAll(GZInfo[WarZoneID][gID],0x06b50699);
case 17: GangZoneShowForAll(GZInfo[WarZoneID][gID],0x03c3b899);
default: GangZoneShowForAll(GZInfo[WarZoneID][gID],0xFFBE0065);
}
FrakCD[GZInfo[WarZoneID][gNapad]] = 0;
FrakCD[GZInfo[WarZoneID][gFrakVlad]] = 0;
ScoreZahvat[GZInfo[WarZoneID][gNapad]] = 0;
GZInfo[WarZoneID][gNapad] = 0;
}
else
{
SendFamilyMessage(captureteam[1],COLOR_RED,"[F] Вы потеряли контроль над одной из своих территорий");
SendFamilyMessage(captureteam[0],COLOR_NICE,"[F] Вы приобрели контроль над новой территорией");
switch(GZInfo[WarZoneID][gNapad])
{
case 12: GangZoneShowForAll(GZInfo[WarZoneID][gID],0xd200ff99);
case 18: GangZoneShowForAll(GZInfo[WarZoneID][gID],0x007fffAA);
case 13: GangZoneShowForAll(GZInfo[WarZoneID][gID],0xcfbe0899);
case 15: GangZoneShowForAll(GZInfo[WarZoneID][gID],0x06b50699);
case 17: GangZoneShowForAll(GZInfo[WarZoneID][gID],0x03c3b899);
default: GangZoneShowForAll(GZInfo[WarZoneID][gID],0xFFBE0065);
}
FrakCD[GZInfo[WarZoneID][gNapad]] = 0;
FrakCD[GZInfo[WarZoneID][gFrakVlad]] = 0;
ScoreZahvat[GZInfo[WarZoneID][gFrakVlad]] = 0;
ScoreZahvat[GZInfo[WarZoneID][gNapad]] = 0;
GZInfo[WarZoneID][gFrakVlad] = GZInfo[WarZoneID][gNapad];
GZInfo[WarZoneID][gNapad] = 0;
}
captureteam[0] = 0;
captureteam[1] = 0;
WarTimeSec = 0;
if(capt == 1) capt = 2;
else if(capt == 10) capt = 4;
WarZoneID = 255;
SaveGZ();
}
}
return true;
}
PHP:
else if(!strcmp(cmd,"/capture",true))//GzCheck
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMRInections] == 12 || PlayerInfo[playerid][pMRInections] == 13 || PlayerInfo[playerid][pMRInections] == 15 || PlayerInfo[playerid][pMRInections] == 17 || PlayerInfo[playerid][pMRInections] == 18)
{
if(PlayerInfo[playerid][pRKInections] < 7) return SendClientMessage(playerid,COLOR_GREY,"Команда доступна с 7 ранга и выше");
new tmphour, tmpminute, tmpsecond;
new bigstringer[200];
gettime(tmphour, tmpminute, tmpsecond);
tmphour = shifthour;
if(tmphour < 12 || tmphour > 24) return SendClientMessage(playerid, COLOR_GREY, "Ошибка: захват территории разрешен с 12:00 до 24:00!");
if(capt == 1 || capt == 10) return SendClientMessage(playerid,COLOR_GREY,"Ошибка: в этом часе уже прошло два возможных захвата. Больше в один час нельзя");
if(capt == 4) return SendClientMessage(playerid, COLOR_GREY, "Ошибка: в этом часе уже прошло два возможных захвата. Больше в один час нельзя");
switch(tmpminute)
{
case 0..30:
{
for(new i = 0;i<130;i++)
{
if(PlayerToKvadrat(playerid,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
if(GZInfo[i][gFrakVlad] == PlayerInfo[playerid][pMRInections]) return SendClientMessage(playerid,COLOR_GREY,"Ошибка: нельзя воевать за свою же территорию");
new namegang[24],namegangv[24];
switch(PlayerInfo[playerid][pMRInections])
{
case 15: namegang = "Grove Street Gang";
case 17: namegang = "Aztecas Gang";
case 12: namegang = "Ballas Gang";
case 18: namegang = "Rifa Gang";
case 13: namegang = "Vagos Gang";
}
switch(GZInfo[i][gFrakVlad])
{
case 15: namegangv = "Grove Street Gang";
case 17: namegangv = "Aztecas Gang";
case 12: namegangv = "Ballas Gang";
case 18: namegangv = "Rifa Gang";
case 13: namegangv = "Vagos Gang";
}
if(capt == 2 && PlayerInfo[playerid][pMRInections] == WarBeen[0]) return SendClientMessage(playerid,COLOR_GREY,"Ошибка: Ваша банда уже воевала в этом часе");
if(capt == 2 && GZInfo[i][gFrakVlad] == WarBeen[1]) return SendClientMessage(playerid,COLOR_GREY,"Ошибка: эта банда уже воевала в этом часе");
if(capt == 2 && PlayerInfo[playerid][pMRInections] == WarBeen[1]) return SendClientMessage(playerid,COLOR_GREY,"Ошибка: Ваша банда уже воевала в этом часе");
if(capt == 2 && GZInfo[i][gFrakVlad] == WarBeen[1]) return SendClientMessage(playerid,COLOR_GREY,"Ошибка: эта банда уже воевала в этом часе");
if(FrakCD[GZInfo[i][gFrakVlad]] == 1 || FrakCD[PlayerInfo[playerid][pMRInections]] == 1) return SendClientMessage(playerid,COLOR_GREY,"Банда уже воюет за территорию");
if(IsATerra(playerid)) return SendClientMessage(playerid,COLOR_GREY,"Нельзя захватить эту территорию");
new gonline;
foreach(Player, y)
{
if(PlayerInfo[y][pMRInections] == PlayerInfo[playerid][pMRInections]) gonline++;
}
if(gonline < 1) return SendClientMessage(playerid, COLOR_GREY, "Ошибка: нельзя захватывать территорию, если в Вашей банде онлайн меньше 2 человек");
else gonline = 0;
foreach(Player, y)
{
if(PlayerInfo[y][pMRInections] == GZInfo[i][gFrakVlad]) gonline++;
}
if(gonline < 1) return SendClientMessage(playerid, COLOR_GREY, "Ошибка: нельзя захватывать территорию, если в вражейской банде онлайн меньше 2 человек");
if(capt == 0) capt = 1;
else if(capt == 3) capt = 10;
captureteam[0] = PlayerInfo[playerid][pMRInections];//Банда нападающих
captureteam[1] = GZInfo[i][gFrakVlad];//Банда обороняющихся
format(bigstringer, sizeof(bigstringer), "[F] Банда '%s' начала захват территории у '%s' в районе '%s' (Захват начал %s[%i])", namegang, namegangv, GetPlayerZone(playerid), PlayerInfo[playerid][pNames], playerid);
SendFamilyMessage(15, COLOR_RED, bigstringer); SendFamilyMessage(17, COLOR_RED, bigstringer); SendFamilyMessage(12, COLOR_RED, bigstringer); SendFamilyMessage(18, COLOR_RED, bigstringer); SendFamilyMessage(13, COLOR_RED, bigstringer);
format(bigstringer, sizeof(bigstringer), "[A] {FFCC00}Банда '%s' начала захват территории у '%s' в районе '%s' {B0B0B0}(Захват начал %s[%i])", namegang, namegangv, GetPlayerZone(playerid), PlayerInfo[playerid][pNames], playerid);
SendAdminMessage(0x99CC00FF, bigstringer);
GangZoneFlashForAll(GZInfo[i][gID],COLOR_REDD);
GZInfo[i][gNapad] = PlayerInfo[playerid][pMRInections];
WarTimeMin = 6;
WarTimeSec = 1;
WarZoneID = i;
WarBeen[0] = PlayerInfo[playerid][pMRInections];
WarBeen[1] = GZInfo[i][gFrakVlad];
CommandKill[0] = 0;
CommandKill[1] = 0;
ScoreZahvat[PlayerInfo[playerid][pMRInections]] = 0;
ScoreZahvat[GZInfo[i][gFrakVlad]] = 0;
capture[PlayerInfo[playerid][pMRInections]] = 1;
FrakCD[PlayerInfo[playerid][pMRInections]] = 1;
FrakCD[GZInfo[i][gFrakVlad]] = 1;
new ftext[20], ftext1[20];
switch(captureteam[0])
{
case 15: ftext = "Grove St.";
case 12: ftext = "Ballas";
case 18: ftext = "Rifa";
case 17: ftext = "Aztec";
case 13: ftext = "Vagos";
}
switch(captureteam[1])
{
case 15: ftext1 = "Grove St.";
case 12: ftext1 = "Ballas";
case 18: ftext1 = "Rifa";
case 17: ftext1 = "Aztec";
case 13: ftext1 = "Vagos";
}
TextDrawSetString(onecommand, ftext);
TextDrawSetString(twocommand, ftext1);
TextDrawSetString(kolone, "0");
TextDrawSetString(koltwo, "0");
foreach(Player, z)
{
if(PlayerInfo[z][pMRInections] == 15 || PlayerInfo[z][pMRInections] == 17 || PlayerInfo[z][pMRInections] == 12 || PlayerInfo[z][pMRInections] == 18 || PlayerInfo[z][pMRInections] == 13)
{
TextDrawShowForPlayer(z,fon);
TextDrawShowForPlayer(z,timetext);
TextDrawShowForPlayer(z,vremya);
TextDrawShowForPlayer(z,onecommand);
TextDrawShowForPlayer(z,twocommand);
TextDrawShowForPlayer(z,kolone);
TextDrawShowForPlayer(z,koltwo);
}
}
return true;
}
}
}
default: SendClientMessage(playerid,COLOR_GREY,"Воевать за территории можно в течение 30 минут после нового часа");
}
}
}
return true;
}
Последнее редактирование:
