BreDeN_GaDeN
Новичок
Когда одна банда захватывает территорию у другой, то при захвате (истечении времени) банда не переходит, к тем, кто захватывал, а остается, у тех у кого и была.
В Команде /capture кое-что закоментировал, всё идет нормально (таймер,засчитывает киллы), но только не переходит ГЗ как писал выше. Но если некоментировать, то вообще практически всё летит, к примеру война между: Grove и Vagos, киллы по нулям, но если убивать, 0 так и стоит. К тому же после захвата, тера багается.
Предоставляю /capture и паблик public CheckArmour(), т.к считаю что проблема или в команде, или в паблике, но если проблема, в другом, дайте знать.
То что я закоментировал, в команде /capture, так и оставил. И извиняюсь за символы вместо русского языка, сам не пойму откуда они взялись
/capture:
public CheckArmour():
В Команде /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;
}
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;
}
Последнее редактирование:
