olezhka
Дебютант
Помогите с системой захвата бизнеса
Здравствуйте, такая вот проблема.
1) В данной команде сделано 3 места стрел. Суть проблемы в том что квадраты на карте мигают, но очень огромные.
2) Не могу добавить систему, чтобы и малые бизнесы тоже можно захватывать (Это которые прописаны под SBizzInfo например: Заправки)
Код команды:
Код окончания войны:
Здравствуйте, такая вот проблема.
1) В данной команде сделано 3 места стрел. Суть проблемы в том что квадраты на карте мигают, но очень огромные.
2) Не могу добавить систему, чтобы и малые бизнесы тоже можно захватывать (Это которые прописаны под SBizzInfo например: Заправки)
Код команды:
PHP:
else if(strcmp(cmd, "/bizwar", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid,COLOR_GREY,"{F74848}»Введите:{FFFFFF} /bizwar [id]");
SendClientMessage(playerid,COLOR_GREY,"1 - Нефтебаза | 2 - Склад | 3 - Доки");
return 1;
}
mestobizwar = strval(tmp);
if(mestobizwar > 3 || mestobizwar < 1)
{
SendClientMessage(playerid,COLOR_GREY,"{F74848}»Введите:{FFFFFF} /bizwar [id]");
SendClientMessage(playerid,COLOR_GREY,"1 - Нефтебаза | 2 - Склад | 3 - Доки");
return 1;
}
new factionm=0;
if(PlayerInfo[playerid][pLeader] !=0){ factionm = PlayerInfo[playerid][pLeader];}
else if(PlayerInfo[playerid][pMember] != 0 && PlayerInfo[playerid][pLeader] == 0) {factionm = PlayerInfo[playerid][pMember];}
else {factionm = 0;}
if(ISAMAFIA(playerid))
{
if(startwar == 1) return SendClientMessage(playerid, COLOR_WHITE, "Война уже начата!");
if(FrakCDm[factionm] > 0){
format(string,sizeof(string),"Следующий захват возможен через %d секунд",FrakCDm[factionm]);
SendClientMessage(playerid, COLOR_GRAD1, string);
return 1;
}
for(new h = 0; h < sizeof(BizzInfo); h++)
{
if(PlayerInfo[playerid][pMember] == 5 && PlayerInfo[playerid][pRank] >= 8 || PlayerInfo[playerid][pMember] == 6 && PlayerInfo[playerid][pRank] >= 8 || PlayerInfo[playerid][pMember] == 14 && PlayerInfo[playerid][pRank] >= 8)
{
if(PlayerToPoint(3, playerid,BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]) && BizzInfo[h][bMafia] != PlayerInfo[playerid][pMember])
{
if(war > 0)
{
format(string,sizeof(string),"Войну можно начать через %d секунд(ы)",war);
SendClientMessage(playerid,-1,string);
return 1;
}
if(BizzInfo[h][bMafia] == 0)
{
BizzInfo[h][bMafia] = PlayerInfo[playerid][pMember];
SendClientMessage(playerid, COLOR_GREEN, "::: Бизнес взят под контроль :::");
return 1;
}
if(BizzInfo[h][bMafia] > 0)
{
startwar = 1;
format(string,sizeof(string),"%s назначил(а) стрелу за %s мафии %s",Name(playerid),BizzInfo[h][bMessage],GetMafiaName(BizzInfo[h][bMafia]));
SendFamilyMessage(PlayerInfo[playerid][pMember],COLOR_RED,string);
format(string,sizeof(string),"::: Бизнес %s захватывает мафия %s :::",BizzInfo[h][bMessage],GetMafiaName(PlayerInfo[playerid][pMember]));
SendFamilyMessage(BizzInfo[h][bMafia],COLOR_RED,string);
switch(mestobizwar)
{
case 1:
{
SendFamilyMessage(PlayerInfo[playerid][pMember],COLOR_WHITE,"Место встречи - Нефтебаза");
mestobizwarcor[0] = 599.7518;
mestobizwarcor[1] = 1236.2462;
mestobizwarcor[2] = 11.7188;
mestobizwarcor[3] = 200.6528;
}
case 2:
{
SendFamilyMessage(PlayerInfo[playerid][pMember],COLOR_WHITE,"Место встречи - Склад");
mestobizwarcor[0] = -2150.9617;
mestobizwarcor[1] = -248.2362;
mestobizwarcor[2] = 36.5156;
mestobizwarcor[3] = 91.2908;
}
case 3:
{
SendFamilyMessage(PlayerInfo[playerid][pMember],COLOR_WHITE,"Место встречи - Доки");
mestobizwarcor[0] = 2377.4968;
mestobizwarcor[1] = -2392.5884;
mestobizwarcor[2] = 13.3803;
mestobizwarcor[3] = 45.7968;
}
}
zons = GangZoneCreate(mestobizwarcor[0], mestobizwarcor[1], mestobizwarcor[2], mestobizwarcor[3]);
SendFamilyMessage(BizzInfo[h][bMafia],COLOR_WHITE,"У Вас есть 10 минуты, чтобы отбить бизнес...");
BizzInfo[h][bZahvat] = 1;
war = 1200;
MZSafeTime[0] = 600;
FrakCDm[factionm] = 2400;
MZInfo[0][mNapad] = PlayerInfo[playerid][pMember];
MZInfo[0][mFrakVlad] = BizzInfo[h][bMafia];
ZoneTimerm[0] = 130;
ZoneOnBattlem[0] = 1;
GangZoneShowForAll(zons, COLOR_NEWS);
GangZoneFlashForAll(zons,COLOR_REDD);
}
}
}
}
}
return 1;
}
PHP:
forward MzCheck();
public MzCheck()
{
for(new i =0;i<sizeof(MZInfo);i++)
{
if(ZoneOnBattlem[i] == 1 && MZSafeTime[i] == 0)
{
ZoneTimerm[i] -=10;
if(ZoneTimerm[i] <=0)
{
for(new h = 0; h < sizeof(BizzInfo); h++)
{
if(BizzInfo[h][bZahvat] == 1)
{
BizzInfo[h][bMafia] = BizzInfo[h][bMafia];
SendFamilyMessage(BizzInfo[h][bMafia],COLOR_GREEN,"{00ff00}Вашей мафии удалось отстоять этот бизнес");
SendFamilyMessage(MZInfo[i][mNapad],COLOR_RED,"{ff0000}Вашей мафии не удалось взять под контроль новый бизнес");
BizzInfo[h][bZahvat] = 0;
startwar = 0;
ZoneOnBattlem[i] = 0;
GangZoneStopFlashForAll(zons);
OnPropUpdate();
}
}
}
for(new x =0;x<MAX_PLAYERS;x++)
{
if(PlayerToKvadrat(x,mestobizwarcor[0], mestobizwarcor[1], mestobizwarcor[2], mestobizwarcor[3]))
{
new factionm;
if(PlayerInfo[x][pLeader] !=0) factionm = PlayerInfo[x][pLeader];
else factionm = PlayerInfo[x][pMember];
OnmZONE[i][factionm] ++;
}
}
new asd;
for(new x =0;x<20;x++)
{
if(OnmZONE[i][x] > 0 && IsInAllowedM(x)) asd ++;
}
if(asd == 1)
{
for(new x =0;x<20;x++)
{
if(OnmZONE[i][x] > 0)
{
new zx,zl;
zx = x;
zl = i;
if(MZInfo[i][mFrakVlad] == x)
{
for(new h = 0; h < sizeof(BizzInfo); h++)
{
if(BizzInfo[h][bZahvat] == 1)
{
BizzInfo[h][bMafia] = BizzInfo[h][bMafia];
SendFamilyMessage(BizzInfo[h][bMafia],COLOR_RED,"{00ff00}Ваша мафия отстояла этот бизнес");
SendFamilyMessage(MZInfo[i][mNapad],COLOR_RED,"{ff0000}Вашей мафии не удалось завоевать ещё один бизнес");
BizzInfo[h][bZahvat] = 0;
startwar = 0;
}
}
}
else
{
for(new h = 0; h < sizeof(BizzInfo); h++)
{
if(BizzInfo[h][bZahvat] == 1)
{
SendFamilyMessage(BizzInfo[h][bMafia],COLOR_RED,"{ff0000}Ваша мафия потеряла контроль над одним из своих бизнесов");
SendFamilyMessage(MZInfo[i][mNapad],COLOR_LIGHTGREEN,"{00ff00}Ваша мафия завоевала новый бизнес");
BizzInfo[h][bMafia] = MZInfo[i][mNapad];
BizzInfo[h][bZahvat] = 0;
startwar = 0;
}
}
}
ZoneOnBattlem[zl] =0;
MZInfo[zl][mNapad] = 0;
MZInfo[zl][mFrakVlad] = zx;
GangZoneStopFlashForAll(zons);
GangZoneHideForAll(zons);
GangZoneShowForAll(zons,COLOR_NEWS);
OnPropUpdate();
break;
}
}
}
}
}
for(new i =0;i<3;i++)
{
for(new z = 0;z<20;z++)
{
OnmZONE[i][z] =0;
}
}
}
Последнее редактирование:
