28.05.2014, 07:10
Hello ladies and gentlemen!
I want to know how can i make LEO/POLICE can /shutdown the turf, Its the same on /capture, but /capture is for family. I want to make it so police can join the turf war.
And finally the LSPD Var
I want to know how can i make LEO/POLICE can /shutdown the turf, Its the same on /capture, but /capture is for family. I want to make it so police can join the turf war.
Код:
CMD:capture(playerid, params[])
{
new string[128];
new mypoint = -1;
if(GetPVarInt(playerid,"Injured") == 1)
{
SendClientMessage(playerid, COLOR_GRAD1, " You can't capture while injured!");
return 1;
}
if(PlayerInfo[playerid][pGang] == 255 || PlayerInfo[playerid][pRank] < 5)
{
SendClientMessage(playerid, COLOR_GRAD1, "You're not high rank enough to capture!");
return 1;
}
for (new i=0; i<MAX_POINTS; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 1.0, Points[i][Pointx], Points[i][Pointy], Points[i][Pointz])) mypoint = i;
}
if(mypoint == -1)
{
SendClientMessage(playerid, COLOR_GRAD1, "You're not at the capture place!");
return 1;
}
if(Points[mypoint][Vulnerable] > 0 || Points[mypoint][Vulnerable] == -1)
{
SendClientMessage(playerid, COLOR_GRAD1, " This point is not ready for takeover.");
return 1;
}
if(Points[mypoint][TimeToClaim])
{
SendClientMessage(playerid, COLOR_GRAD1, " This point is already being captured!");
return 1;
}
/*if(GetPlayerPing(playerid) > pointpinglimit)
{
format(string,sizeof(string), " You can't capture with %d+ ping!", pointpinglimit);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}*/
Points[mypoint][PointBarID] = CreateProgressBar(258.00, 137.00, 131.50, 3.19, COLOR_GREEN, 100.0);
SetProgressBarValue(Points[mypoint][PointBarID], 100.0);
ShowProgressBarForPlayer(playerid, Points[mypoint][PointBarID]);
format(string,sizeof(string), " %s is attempting to capture the point.", GetPlayerNameEx(playerid));
ProxDetector(70.0, playerid, string, COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED,COLOR_RED);
GetPlayerPos(playerid, Points[mypoint][Capturex], Points[mypoint][Capturey], Points[mypoint][Capturez]);
Points[mypoint][ClaimerId] = playerid;
Points[mypoint][TimeToClaim] = 1;
Points[mypoint][TimeLeft] = 10;
SetTimerEx("ProgressTimer", 1000, 0, "d", mypoint);
return 1;
}
Код:
forward CaptureTimer(point);
public CaptureTimer(point)
{
new string[128];
new fam;
if(Points[point][ClaimerId] != INVALID_PLAYER_ID && Points[point][TimeToClaim])
{
new claimer = Points[point][ClaimerId];
new Float: x, Float: y, Float: z;
GetPlayerPos(claimer, x, y, z);
if(Points[point][Capturex] != x || Points[point][Capturey] != y || Points[point][Capturez] != z || GetPVarInt(Points[point][ClaimerId],"Injured") == 1)
{
SendClientMessage(Points[point][ClaimerId], COLOR_LIGHTBLUE, "You failed to capture. You either moved or died while attempting to capture.");
Points[point][ClaimerId] = INVALID_PLAYER_ID;
Points[point][TimeToClaim] = 0;
}
else
{
if(Points[point][Vulnerable] > 0)
{
SendClientMessage(Points[point][ClaimerId], COLOR_LIGHTBLUE, "You failed to capture. The point was already captured.");
Points[point][ClaimerId] = INVALID_PLAYER_ID;
Points[point][TimeToClaim] = 0;
return 1;
}
if(playerTabbed[claimer] != 0)
{
SendClientMessage(Points[point][ClaimerId], COLOR_LIGHTBLUE, "You failed to capture. You were alt-tabbed.");
format(string, sizeof(string), "{AA3333}AdmWarning{FFFF00}: %s (ID %d) may have possibly alt tabbed to capture a point.", GetPlayerNameEx(claimer), claimer);
ABroadCast(COLOR_YELLOW, string, 1);
format(string, sizeof(string), "%s may have possibly alt tabbed to capture a point.", GetPlayerNameEx(claimer));
AddAutomatedFlag(claimer, string);
Points[point][ClaimerId] = INVALID_PLAYER_ID;
Points[point][TimeToClaim] = 0;
return 1;
}
else
{
fam = PlayerInfo[claimer][pGang];
Points[point][PlayerNameCapping] = GetPlayerNameEx(claimer);
format(string, sizeof(string), "%s is attempting to take over of the %s for %s, they'll own it in %d minutes.", Points[point][PlayerNameCapping], Points[point][Name], FamilyInfo[fam][FamilyName], TIME_TO_TAKEOVER);
SendClientMessageToAllEx(COLOR_YELLOW, string);
if(Points[point][CaptureProccessEx] >= 1)
{
Points[point][CaptureProccessEx] = 2;
}
Points[point][TakeOverTimerStarted] = 1;
Points[point][TakeOverTimer] = 10;
Points[point][ClaimerId] = INVALID_PLAYER_ID;
Points[point][ClaimerTeam] = fam;
Points[point][TimeToClaim] = 0;
if(Points[point][CaptureTimerEx2] != -1) KillTimer(Points[point][CaptureTimerEx2]);
Points[point][CaptureTimerEx2] = SetTimerEx("CaptureTimerEx", 60000, 1, "d", point);
}
}
}
return 1;
}
Код:
forward CaptureTimerEx(point);
public CaptureTimerEx(point)
{
new string[128];
new fam;
if(Points[point][TakeOverTimerStarted])
{
fam = Points[point][ClaimerTeam];
if(Points[point][TakeOverTimer] > 0)
{
Points[point][TakeOverTimer]--;
//format(string, sizeof(string), "%s has successfully attempted to take over of %s for %s, it will be theirs in %d minutes!",
//Points[point][PlayerNameCapping], Points[point][Name], FamilyInfo[fam][FamilyName], Points[point][TakeOverTimer]);
//UpdateDynamic3DTextLabelText(Points[point][CaptureProccess], COLOR_YELLOW, string);
}
else
{
Points[point][ClaimerTeam] = INVALID_PLAYER_ID;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(PlayerInfo[i][pGang] == Points[point][ClaimerTeam])
{
PlayerInfo[i][pTokens] = PlayerInfo[i][pTokens] + 1;
}
}
Points[point][TakeOverTimer] = 0;
Points[point][TakeOverTimerStarted] = 0;
Points[point][Announced] = 0;
Points[point][Vulnerable] = NEW_VULNERABLE;
//DestroyDynamic3DTextLabel(Points[point][CaptureProccess]);
Points[point][CaptureProccessEx] = 0;
strmid(Points[point][Owner], FamilyInfo[fam][FamilyName], 0, 32, 32);
strmid(Points[point][CapperName], Points[point][PlayerNameCapping], 0, 32, 32);
format(string, sizeof(string), "%s has taken control the %s for %s.", Points[point][CapperName], Points[point][Name], Points[point][Owner]);
SendClientMessageToAllEx(COLOR_YELLOW, string);
SendClientMessageToAllEx(COLOR_REALRED, "All of them will get +1 Tokens!");
UpdatePoints();
KillTimer(Points[point][CaptureTimerEx2]);
Points[point][CaptureTimerEx2] = -1;
}
}
}
Код:
CMD:pointinfo(playerid, params[])
{
new
iCount,
szMessage[128];
SendClientMessage(playerid, COLOR_NEWS, "Point Info:");
for(new i; i < MAX_POINTS; i++) {
if(Points[i][Type] >= 0) {
if(Points[i][Vulnerable] == 0 && Points[i][TakeOverTimerStarted] > 0)
{
if(Points[i][TakeOverTimer] == 0)
{
format(szMessage, sizeof(szMessage), "* %s | Capper: %s | Family: %s | Time left: Less than 1 minute", Points[i][Name], Points[i][PlayerNameCapping], FamilyInfo[Points[i][ClaimerTeam]][FamilyName]);
SendClientMessage(playerid, COLOR_WHITE, szMessage);
iCount++;
}
else
{
format(szMessage, sizeof(szMessage), "* %s | Capper: %s | Family: %s | Time left: %d minutes", Points[i][Name], Points[i][PlayerNameCapping], FamilyInfo[Points[i][ClaimerTeam]][FamilyName], Points[i][TakeOverTimer]);
SendClientMessage(playerid, COLOR_WHITE, szMessage);
iCount++;
}
}
}
}
if(iCount == 0)
return SendClientMessage(playerid, COLOR_GRAD2, "No family has capped the point or the point is not ready to be capped.");
return 1;
}
Код:
CMD:points(playerid, params[])
{
new string[128];
for(new i; i < MAX_POINTS; i++)
{
if(Points[i][Type] >= 0)
{
if(Points[i][Vulnerable] == -1)
{
format(string, sizeof(string), "Name: %s | Owner: %s | Captured By: %s | Hours: Temporarily disabled", Points[i][Name],Points[i][Owner],Points[i][CapperName]);
}
else
{
if(PlayerInfo[CapperName][pFaction] == 1 || PlayerInfo[CapperName][pLeader] == 1)
{
format(string, sizeof(string), "Name: %s | SHUTDOWN BY THE POLICE | Captured By: %s | Hours: %d", Points[i][Name],Points[i][CapperName],Points[i][Vulnerable]);
}
else
{
format(string, sizeof(string), "Name: %s | Owner: %s | Captured By: %s | Hours: %d", Points[i][Name],Points[i][Owner],Points[i][CapperName],Points[i][Vulnerable]);
}
}
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
return 1;
}
Код:
PlayerInfo[playerid][pFaction] or IsACop(playerid)


