02.07.2017, 17:34
When one player capturing zone, and when other player from same team comes to capture same zone, this zone starts capturing only for last one who comes not for first one who started to capture...
I mean when second player from same team comes to capture same zone player who first started not capturing and message is showing for second player you have failed to capture
I mean when second player from same team comes to capture same zone player who first started not capturing and message is showing for second player you have failed to capture
Код:
stock CaptureZoneMessage(playerid, messageid) { switch(messageid) { case 1: { SendClientMessage(playerid, red,"You cannot capture while in a vehicle!"); } case 2: { SendClientMessage(playerid, red,"This zone is already being taken over!"); } } return 1; } stock ActiveCAPZONE(playerid) { if(UnderAttack[CAPZONE] == 0) { if(!IsPlayerInAnyVehicle(playerid)) { UnderAttack[CAPZONE] = 1; timer[playerid][CAPZONE] = SetTimerEx("CAPZONETimer", 25000, false,"i",playerid); Captured[playerid][CAPZONE] = 0; GameTextForPlayer(playerid, "~w~Stay in this checkpoint for ~r~25 seconds ~w~to capture it", 5000, 1); if(gTeam[playerid] == C1) { GangZoneFlashForAll(Zone[CAPZONE], 0x000088FF); } else if(gTeam[playerid] == T1) { GangZoneFlashForAll(Zone[CAPZONE],0xFF17179B); } //------Message----- if(tCP[CAPZONE] == C1) { SendClientMessage(playerid, C_COLOR,"This flag is controlled by Army!"); } else if(tCP[CAPZONE] == T1) { SendClientMessage(playerid, T_COLOR,"This flag is controlled by Terrorists!"); } else if(tCP[CAPZONE] == NONE) { SendClientMessage(playerid, COLOR_WHITE,"This flag is not controlled by any team!"); } //---------loop-------// for(new i = 0; i < MAX_PLAYERS; i ++) { IsPlayerCapturing[i][CAPZONE] = 1; } } else return CaptureZoneMessage(playerid, 1); } else { CaptureZoneMessage(playerid, 2); TextDrawHideForPlayer(playerid, CountText[playerid]); } return 1; } stock CAPZONECaptured(playerid) { Captured[playerid][CAPZONE] = 1; UnderAttack[CAPZONE] = 0; KillTimer(timer[playerid][CAPZONE]); CountVar[playerid][CAPZONE] = 25; GivePlayerScore(playerid, 5); F_GivePlayerMoney(playerid, 5000); SendClientMessage(playerid, -1,"{FF0000}Congratulations! You have captured the Desert Airport! You received +5 scores and +$5000 cash!"); //========================================================================== for(new i = 0; i < MAX_PLAYERS; i++) { IsPlayerCapturing[i][CAPZONE] = 0; if(gTeam[i] == gTeam[playerid]) { SendClientMessage(i, -1,"{FF0000}Your team has captured the Desert Airport! You received +1 score for it!"); GivePlayerScore(i, 1); } } //========================================================================== tCP[CAPZONE] = gTeam[playerid]; GangZoneStopFlashForAll(Zone[CAPZONE]); //========================================================================== if(gTeam[playerid] == C1) { GangZoneShowForAll(Zone[CAPZONE], 0x000088FF); } else if(gTeam[playerid] == T1) { GangZoneShowForAll(Zone[CAPZONE], 0xFF17179B); } //========================================================================== new str[128]; format(str, sizeof(str),"{2BA12F}%s has captured the Desert Airport!", GetName(playerid)); SendClientMessageToAll(-1, str); return 1; } stock LeavingCAPZONE(playerid) { Captured[playerid][CAPZONE] = 1; UnderAttack[CAPZONE] = 0; KillTimer(timer[playerid][CAPZONE]); CountVar[playerid][CAPZONE] = 25; GangZoneStopFlashForAll(Zone[CAPZONE]); for(new i = 0; i < MAX_PLAYERS; i++) { IsPlayerCapturing[i][CAPZONE] = 0; } SendClientMessage(playerid, red,"You have failed to capture the Desert Airport!"); return 1; } forward CAPZONETimer(playerid); public CAPZONETimer(playerid) { CAPZONECaptured(playerid); return 1; }