Добрый вечер, создал систему /capture на сервере. Но столкнулся с такой проблемой, при капте ганг зона мигает не той фракции которая забила вар, а после завершения нормально становится. И после рестарта сервера ганг зоны попросту не сохраняются и приходится заного бить капт .
PHP код:
CMD:capture(playerid,params[])
{
new string[144];
new faction = Player[playerid][pMember];
if(Player[playerid][pMember] > 14 || Player[playerid][pMember] < 10)return send(playerid, COLOR_RED,"[ОШИБКА] {FFFFFF}Захват зон доступен только бандам.");
if(Player[playerid][pRank] < 4)return send(playerid,COLOR_GREY,"[ОШИБКА] {FFFFFF}Захват зон доступен с 4 ранга и выше.");
if(FrakCD != 0)
{
f(string,"Новый захват можно организовать через %d минут.",FrakCD/60);
send(playerid,0xFFFFFFAA,string);
return 1;
}
for(new i = 0; i < sizeof(GZInfo); i++)
{
if(IsPlayerToSquare(playerid,GZInfo[i][gCoords][0],GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]) && GZInfo[i][gFrak] != 0 && ZoneOnBattle[i] == 0)
{
if(IsPlayerInAnyVehicle(playerid))return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Команду нельзя использовать в транспорте.");
{
if(Player[playerid][pRank] < 3)return NoRights;
if(GZInfo[i][gFrak] == Player[playerid][pMember])return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Вы не можете напасть на свою территорию");
if(GZInfo[i][gID] == 24 || GZInfo[i][gID] == 31 || GZInfo[i][gID] == 6 || GZInfo[i][gID] == 41 || GZInfo[i][gID] == 46)return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Данную территорию нельзя атаковать.");
if(IsCapture == true)return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}На территории штата уже идет война, дождитесь ее окончания.");
if(IsPlayerInBandOnline(faction) < 1)return send(playerid,0xFF0000AA,"[ОШИБКА] {FFFFFF}Не достаточно союзников для захвата зоны.");
if(IsPlayerInBandOnline(GZInfo[i][gFrak]) < 1)
{
f(string,"[ОШИБКА] {FFFFFF}У банды \"%s\" мало игроков, нужно минимум 3.",GetGangName(GZInfo[i][gFrak]));
send(playerid,0xFF0000AA,string);
return 1;
}
f(string,"[Война] {FFFFFF}%s %s борьбу за зону против \"%s\".",sendername(playerid),GetPVarInt(playerid, "Sex") == 1 ? ("начал") : ("начала"),GetGangName(GZInfo[i][gFrak]));
SendTeamM(faction,0xFFFF00AA,string);
f(string,"[Война] {FFFFFF}Ваша зона под атакой банды \"%s\".",FInfo[Player[playerid][pMember]][fName]);
SendTeamM(GZInfo[i][gFrak],0xFFFF00AA,string);
GangZoneFlashForAll(GangZone[i],GetGangZoneColor(faction));
GZSafeTime[i] = 600;
FrakCD = 2000;
GZInfo[i][gNapad] = faction;
ZoneOnBattle[i] = 1;
GangInfo[faction][capture] = 1;
GangInfo[GZInfo[i][gFrak]][capture] = 1;
GangInfo[GZInfo[i][gFrak]][captureid] = faction;
GangInfo[faction][captureid] = faction;
GangInfo[faction][gangnumber] = 1;
GangInfo[GZInfo[i][gFrak]][gangnumber] = 0;
CaptureStart(faction, GZInfo[i][gFrak]);
}
}
}
return 1;
}
PHP код:
stock CaptureStart(familyone,familytwo)
{
new SCORE[64];
foreach(new i: Player)
{
if(Logged[i] == false) continue;
if(Player[i][pMember] == familyone || Player[i][pMember] == familytwo)
{
for(new s; s < 7; s++) PlayerTextDrawShow(i, CaptureTD[i][s]);
f(SCORE,"%s", GetGangName(familyone));
PlayerTextDrawSetString(i,CaptureTD[i][3],SCORE);
f(SCORE,"%s", GetGangName(familytwo));
PlayerTextDrawSetString(i,CaptureTD[i][4],SCORE);
PlayerTextDrawSetString(i,CaptureTD[i][5],"0");
PlayerTextDrawSetString(i,CaptureTD[i][6],"0");
drawcapt[i] = true;
IsCapture = true;
}
}
}
stock CaptureEnd(familyone,familytwo)
{
foreach(new i: Player)
{
if(Player[i][pMember] == familyone || Player[i][pMember] == familytwo)
{
for(new s; s < 7; s++) PlayerTextDrawHide(i, CaptureTD[i][s]);
drawcapt[i] = false;
}
}
}