- Регистрация
- 27 Дек 2012
- Сообщения
- 254
- Лучшие ответы
- 0
- Репутация
- 56
/capture (SVL) в данной команде используется инклуд foreach
И так начнем...
Добавим в начало мода инклуд
Удаляем...
Ко всем new;
В public OnPlayerConnect(playerid);
Ко всем stock;
Заменяем /capture свою на мою;
Заменяем public GzCheck();
В public OnPlayerDisconnect(playerid, reason)
Так же к командам /uval /univnite
Ссылка на инклуд:
И так начнем...
Добавим в начало мода инклуд
Код:
#include <foreach>
Код:
new OnZONE[120][20];
new ZoneTimer[120];
Код:
new captures = 0;
new CaptureOn[MAX_PLAYERS];
new PlayerText:CaptureTime[MAX_PLAYERS];
new PlayerText:CaptureWar[MAX_PLAYERS];
new PlayerText:CaptureGang[MAX_PLAYERS];
new ItsWar[22];
new GzCheckTimer;
new GzCheckOn = 0;
Код:
CaptureOn[playerid] = 0;
Код:
stock CaptureTextDraws(playerid)
{
CaptureTime[playerid] = CreatePlayerTextDraw(playerid,45.00000, 255.00000, "Time:~r~ 00:00");
PlayerTextDrawBackgroundColor(playerid,CaptureTime[playerid], 255);
PlayerTextDrawAlignment(playerid,CaptureTime[playerid], 1);
PlayerTextDrawLetterSize(playerid,CaptureTime[playerid], 0.333000,1.666666);
PlayerTextDrawFont(playerid,CaptureTime[playerid],1);
PlayerTextDrawColor(playerid,CaptureTime[playerid], COLOR_WHITE);
PlayerTextDrawSetOutline(playerid,CaptureTime[playerid],1);
PlayerTextDrawSetProportional(playerid,CaptureTime[playerid],1);
PlayerTextDrawSetShadow(playerid,CaptureTime[playerid],1);
PlayerTextDrawHide(playerid, CaptureTime[playerid]);
CaptureWar[playerid] = CreatePlayerTextDraw(playerid,45.00000, 275.00000, "Vagos: ~w~10");
PlayerTextDrawBackgroundColor(playerid,CaptureWar[playerid], 255);
PlayerTextDrawAlignment(playerid,CaptureWar[playerid], 1);
PlayerTextDrawLetterSize(playerid,CaptureWar[playerid], 0.333000,1.666666);
PlayerTextDrawFont(playerid,CaptureWar[playerid],1);
PlayerTextDrawColor(playerid,CaptureWar[playerid], COLOR_WHITE);
PlayerTextDrawSetOutline(playerid,CaptureWar[playerid],1);
PlayerTextDrawSetProportional(playerid,CaptureWar[playerid],1);
PlayerTextDrawSetShadow(playerid,CaptureWar[playerid],1);
PlayerTextDrawHide(playerid, CaptureWar[playerid]);
CaptureGang[playerid] = CreatePlayerTextDraw(playerid,45.00000, 295.00000, "Ballas: ~w~12");
PlayerTextDrawBackgroundColor(playerid,CaptureGang[playerid], 255);
PlayerTextDrawAlignment(playerid,CaptureGang[playerid], 1);
PlayerTextDrawLetterSize(playerid,CaptureGang[playerid], 0.333000,1.666666);
PlayerTextDrawFont(playerid,CaptureGang[playerid],1);
PlayerTextDrawColor(playerid,CaptureGang[playerid], COLOR_WHITE);
PlayerTextDrawSetOutline(playerid,CaptureGang[playerid],1);
PlayerTextDrawSetProportional(playerid,CaptureGang[playerid],1);
PlayerTextDrawSetShadow(playerid,CaptureGang[playerid],1);
PlayerTextDrawHide(playerid, CaptureGang[playerid]);
}
Код:
stock CaptureTimes()
{
new hour, minute, second;
gettime(hour, minute, second);
if(hour == 5 || hour == 7 || hour == 9 || hour == 11 || hour == 13 || hour == 15 || hour == 17 || hour == 19 || hour == 21 || hour == 23) return true;
else { return false; }
}
Код:
if(!strcmp(cmd, "/capture",true))
{
if(Flood[playerid] > 0) return SendClientMessage(playerid, 0xFFD5BBAA, "Не флуди!");
Flood[playerid] = 2;
if(FrakCD[PlayerInfo[playerid][pMember]] != 0) return SendClientMessage(playerid,COLOR_WHITE,Ошибка: Ваша банда уже воевала в этом часу.");
if(!IsInAllowed(playerid)) return SendClientMessage(playerid,COLOR_WHITE, "Ошибка: Вы не можете захватить территорию!");
new tmphour, tmpminute, tmpsecond;
gettime(tmphour, tmpminute, tmpsecond);
tmphour = shifthour;
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]) && GZInfo[i][gFrakVlad] != PlayerInfo[playerid][pMember] && ZoneOnBattle[i]==0)
{
new players = 0;
foreach(new m : Player)
{
if(PlayerInfo[m][pMember] == GZInfo[i][gFrakVlad])
{
players++;
}
}
if(players < 1) return SendClientMessage(playerid,COLOR_WHITE,"Ошибка: Невозможно захватить данную территорию, недостаточно игроков (минимум 1)"); //Значение свое
if(FrakCD[GZInfo[i][gFrakVlad]] != 0) return SendClientMessage(playerid,COLOR_WHITE,"Ошибка: Вы не можете захватить территорию");
if(IsATerra(playerid)) return SendClientMessage(playerid,COLOR_WHITE,"Ошибка: Нельзя захватить эту территорию");
if(PlayerInfo[playerid][pRank] < 7) return SendClientMessage(playerid, COLOR_WHITE,"Ошибка: Доступно с 7-го ранга.");
FrakCD[GZInfo[i][gFrakVlad]] = 1;
FrakCD[PlayerInfo[playerid][pMember]] = 1;
format(string,sizeof(string),"[Внимание]: Ваша банда напала на территорию %s",GetGangName(GZInfo[i][gFrakVlad]));
SendFamilyMessage(PlayerInfo[playerid][pMember],0x00B953AA,string);
format(string,sizeof(string), "[Внимание]: На вашу территорию напала %s",GetGangName(PlayerInfo[playerid][pMember]));
SendFamilyMessage(GZInfo[i][gFrakVlad],0xFF8CEFAA,string);
GangZoneFlashForAll(GZInfo[i][gID],GetGZColorF(PlayerInfo[playerid][pMember]));
GZSafeTime[i] = 600;
FrakCD[PlayerInfo[playerid][pMember]] = 2200;
GZInfo[i][gNapad] = PlayerInfo[playerid][pMember];
ZoneOnBattle[i] = 1;
captures++;
if(GzCheckOn == 0)
{
GzCheckTimer = SetTimer("GzCheck", 1000,1);
GzCheckOn = 1;
}
break;
}
}
}
Код:
public GzCheck()
{
for(new i = 0; i < sizeof(GZInfo); i++)
{
new OnZONE[130][20];
if(ZoneOnBattle[i] == 1)
{
if(GZSafeTime[i] > 0)
{
GZSafeTime[i] --;
}
foreach(new x : Player)
{
new faction = PlayerInfo[x][pMember];
if(faction == GZInfo[i][gNapad] || faction == GZInfo[i][gFrakVlad])
{
if(PlayerToKvadrat(x,GZInfo[i][gCoords][0], GZInfo[i][gCoords][1],GZInfo[i][gCoords][2],GZInfo[i][gCoords][3]))
{
if(ZoneOnBattle[i] == 1)
{
OnZONE[i][faction] ++;
}
}
}
}
foreach(new x : Player)
{
new string[128];
new y = PlayerInfo[x][pMember];
if(y == GZInfo[i][gNapad] || y == GZInfo[i][gFrakVlad])
{
if(CaptureOn[x] == 0)
{
CaptureTextDraws(x);
PlayerTextDrawShow(x, CaptureTime[x]);
PlayerTextDrawShow(x, CaptureGang[x]);
PlayerTextDrawShow(x, CaptureWar[x]);
CaptureOn[x] = 1;
}
format(string,180,"Time: ~w~%s",Convert(GZSafeTime[i]));
PlayerTextDrawSetString(x,CaptureTime[x],string);
format(string,180,"~g~%s: ~w~%d",GetGangName(GZInfo[i][gNapad]),OnZONE[i][GZInfo[i][gNapad]]);
PlayerTextDrawSetString(x,CaptureGang[x],string);
format(string,180,"~g~%s: ~w~%d",GetGangName(GZInfo[i][gFrakVlad]),OnZONE[i][GZInfo[i][gFrakVlad]]);
PlayerTextDrawSetString(x,CaptureWar[x],string);
//OnZONE[i][y] = 0;
}
}
new asd;
for(new x = 0; x < sizeof(FrakCD); x++)
{
if(OnZONE[i][x] > 0 && IsInAllowedF(x) && GZSafeTime[i] <= 0) asd++;
}
if(asd == 1)
{
for(new z = 0; z < 20; z++)
{
if(OnZONE[i][z] > 0)
{
new zx,zl;
zx = z;
zl = i;
if(GZInfo[i][gFrakVlad] == z)
{
SendFamilyMessage(GZInfo[i][gFrakVlad],0x00B953AA,"Вы отстояли свою территорию");
SendFamilyMessage(GZInfo[i][gNapad],0xC56565AA,"Вам не удалось захватить территорию");
foreach(new y : Player)
{
if(PlayerInfo[y][pMember] == GZInfo[i][gNapad] || PlayerInfo[y][pMember] == GZInfo[i][gFrakVlad])
{
CaptureOn[y] = 0;
PlayerTextDrawDestroy(y, CaptureTime[y]);
PlayerTextDrawDestroy(y, CaptureGang[y]);
PlayerTextDrawDestroy(y, CaptureWar[y]);
}
}
}
else
{
SendFamilyMessage(GZInfo[i][gNapad], 0x00B953AA,"Вы взяли под свой контроль новую территорию");
for(new y = 0; y < sizeof(GZInfo); y++)
{
if(GZInfo[y][gFrakVlad] == 12) TotalGzB++;
if(GZInfo[y][gFrakVlad] == 13) TotalGzV++;
if(GZInfo[y][gFrakVlad] == 15) TotalGzG++;
if(GZInfo[y][gFrakVlad] == 17) TotalGzA++;
if(GZInfo[y][gFrakVlad] == 18) TotalGzR++;
}
SendFamilyMessage(GZInfo[i][gFrakVlad], 0xC56565AA,"Вы потеряли контроль одной из своих территорий");
foreach(new y : Player)
{
if(PlayerInfo[y][pMember] == GZInfo[i][gNapad] || PlayerInfo[y][pMember] == GZInfo[i][gFrakVlad])
{
CaptureOn[y] = 0;
PlayerTextDrawDestroy(y, CaptureTime[y]);
PlayerTextDrawDestroy(y, CaptureGang[y]);
PlayerTextDrawDestroy(y, CaptureWar[y]);
}
}
}
captures--;
ItsWar[GZInfo[i][gNapad]] = -1;
ItsWar[GZInfo[i][gFrakVlad]] = -1;
ClearTotalGz();
ZoneOnBattle[zl] = 0;
GZInfo[zl][gNapad] = 0;
GZInfo[zl][gFrakVlad] = zx;
GangZoneStopFlashForAll(GZInfo[zl][gID]);
GangZoneHideForAll(GZInfo[zl][gID]);
GangZoneShowForAll(GZInfo[zl][gID],GetGangZoneColor(zl));
SaveGZ();
if(captures == 0)
{
KillTimer(GzCheckTimer);
GzCheckOn = 0;
}
break;
}
}
}
}
}
}
Код:
if(CaptureOn[playerid] == 1)
{
CaptureOn[playerid] = 0;
PlayerTextDrawDestroy(playerid, CaptureTime[playerid]);
PlayerTextDrawDestroy(playerid, CaptureGang[playerid]);
PlayerTextDrawDestroy(playerid, CaptureWar[playerid]);
}
Код:
if(CaptureOn[playerid] == 1)
CaptureOn[playerid] = 0;
PlayerTextDrawDestroy(playerid, CaptureTime[playerid]);
PlayerTextDrawDestroy(playerid, CaptureGang[playerid]);
PlayerTextDrawDestroy(playerid, CaptureWar[playerid]);
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!