Jump to content
  • 0

TurfTime.


Bolex_

Question

Eu folosesc acest sistem de zonă capturabile în cazul în care aveți nevoie de 30 de secunde pentru a captura fiecare zonă.  pot face astfel încât să pot configura timpul fiecare zonă va fi capturat. ?

de exemplu:

 

{"Military Shelter", {-153.3433,2213.3953,-99.2894,2319.2996}, {-126.7931,2257.9844,28.1627}, 6, 30} //30 seconds
{"Military Home", {-153.3433,2213.3953,-99.2894,2319.2996}, {-126.7931,2257.9844,28.1627}, 6, 15}, //15 seconds.

 

codul complet, vă rugăm să help.

 

Fiecare zonă durează 30 de secunde și vreau ca eu pot posta timp pentru fiecare, ca un exemplu de mai sus

 

#define CAPTURE_TIME 30
enum E_CAPTURE_ZONE
{
    E_CAPTURE_ZONE_NAME[64],
    Float:E_CAPTURE_ZONE_GANGZONE_OFFSET[4],
    Float:E_CAPTURE_ZONE_CP_OFFSET[3],
    E_CAPTURE_ZONE_OWNER,
    E_CAPTURE_ZONE_ATTACKER,
    E_CAPTURE_ZONE_COUNTDOWN,
    E_CAPTURE_ZONE_GANGZONE,
    E_CAPTURE_ZONE_CP,
    E_CAPTURE_ZONE_AREA,
    E_CAPTURE_ZONE_TIMER,
    E_CAPTURE_ZONE_PLAYERS_IN_ZONE,
    Text3D:E_CAPTURE_ZONE_LABEL
};
new captureZone[][E_CAPTURE_ZONE] =
{
    {"Military Shelter", {-153.3433,2213.3953,-99.2894,2319.2996}, {-126.7931,2257.9844,28.1627}, 6},
    {"LV BaySide", {236.328125,2892.578125,292.96875,2943.359375}, {260.0900,2889.5242,11.1854}, 6},
    {"Army Area91", {-617.1875,2531.25,-455.078125,2658.203125}, {-587.0584, 2586.8396, 53.5156}, 6},
    {"Army Petrol", {609.375,1652.34375,714.84375,1767.578125}, {669.5813,1725.7399,7.1875}, 6},
    {"Oil Factory", {95.703125,1339.84375,287.109375,1484.375}, {174.7896,1414.7444,10.5859}, 6},
    {"Oil Station", {529.296875,1205.078125,636.71875,1267.578125}, {634.4808, 1262.0211, 11.7188}, 6},
    {"Big Quarry", {439.453125,748.046875,863.28125,992.1875}, {621.5228,834.4896,-42.9609}, 6},
    {"Desert House", {-357.421875,1707.03125,-253.90625,1835.9375}, {-314.8433,1773.9176,43.6406}, 6},
    {"Big Ear Construction", {-437.5,1513.671875,-244.140625,1636.71875}, {-335.1765,1545.2960,75.5625}, 6},
    {"Sawmill", {678.9210, 1953.2191, 729.9295, 2001.2029}, {706.7179,1966.7109,5.5314}, 6},
    {"AmmuNation", {-351.5625,811.5234375, -284.1796875,884.765625}, {-330.2491,828.6450,14.2422}, 6},
    {"Cluckin Bell", {-1230.46875,1789.0625, -1175.78125,1839.84375},{-1212.40698, 1831.70020, 41.23455}, 6},
    {"Airport", {1230.46875,1142.578125, 1640.625,1798.828125}, {1594.7188,1448.2372,10.8286}, 6},
    {"Jay's Diner", {-1964.84375,2328.125, -1906.25,2402.34375}, {-1940.30542, 2380.05981, 48.99673}, 6},
    {"Nuclear Ship", {78.2477, 434.0849, 326.4969, 510.8952}, {269.2845,471.1271,15.2919}, 6},
    {"The Bridge", {436.5769,335.3214, 604.3247, 608.7048 }, {496.1524,506.4798,18.9220}, 6},
    {"Desert Point", {-675.2361,2335.1946,-646.9362,2406.5635}, {-642.8853,2360.3411,158.7717}, 6},
    {"Pirates Zone", {3068.3669, -2012.0554, 3006.0303, -2188.4277}, {3031.7722,-2105.9031,4.5294}, 6},
    {"Glen Park", {1862.2369, -1146.1490, 2056.5239, -1250.5487}, {1940.5801, -1199.4304, 22.3094}, 6},
    {"Drug Depot", {1016.9769, 2062.9336, 1110.0688, 2166.0183}, {1073.0277, 2104.1851, 10.8203}, 6},
    {"Gas Station", {1577.7716, 2183.3899, 1616.6106, 2242.5139}, {1600.5934, 2220.5210, 11.0625}, 6},
	{"Snake Farm", {-65.2373, 2311.1003, 10.0603, 2393.9177}, {-12.4123,2332.7690,24.1406}, 6, 0}
};
for (new i; i < sizeof captureZone; i++)
    {
        captureZone[i][E_CAPTURE_ZONE_ATTACKER] = INVALID_PLAYER_ID;
        captureZone[i][E_CAPTURE_ZONE_COUNTDOWN] = 0;
        captureZone[i][E_CAPTURE_ZONE_GANGZONE] = GangZoneCreate(captureZone[i][E_CAPTURE_ZONE_GANGZONE_OFFSET][0], captureZone[i][E_CAPTURE_ZONE_GANGZONE_OFFSET][1], captureZone[i][E_CAPTURE_ZONE_GANGZONE_OFFSET][2], captureZone[i][E_CAPTURE_ZONE_GANGZONE_OFFSET][3]);
        captureZone[i][E_CAPTURE_ZONE_CP] = CreateDynamicCP(captureZone[i][E_CAPTURE_ZONE_CP_OFFSET][0], captureZone[i][E_CAPTURE_ZONE_CP_OFFSET][1], captureZone[i][E_CAPTURE_ZONE_CP_OFFSET][2], 3.0);
        captureZone[i][E_CAPTURE_ZONE_AREA] = CreateDynamicRectangle(captureZone[i][E_CAPTURE_ZONE_GANGZONE_OFFSET][0], captureZone[i][E_CAPTURE_ZONE_GANGZONE_OFFSET][1], captureZone[i][E_CAPTURE_ZONE_GANGZONE_OFFSET][2], captureZone[i][E_CAPTURE_ZONE_GANGZONE_OFFSET][3]);

        captureZone[i][E_CAPTURE_ZONE_CP] = CreateDynamicMapIcon(captureZone[i][E_CAPTURE_ZONE_CP_OFFSET][0], captureZone[i][E_CAPTURE_ZONE_CP_OFFSET][1], captureZone[i][E_CAPTURE_ZONE_CP_OFFSET][2], 19, -1, -1, -1, -1, 9999.0, MAPICON_LOCAL);

        format(string, sizeof(string), ""COL_WHITE"%s"COL_YELLOW"(%i)", captureZone[i][E_CAPTURE_ZONE_NAME], i);
		captureZone[i][E_CAPTURE_ZONE_LABEL] = CreateDynamic3DTextLabel(string, TEAM[ captureZone[i][E_CAPTURE_ZONE_OWNER] ][E_TEAM_COLOR], captureZone[i][E_CAPTURE_ZONE_CP_OFFSET][0], captureZone[i][E_CAPTURE_ZONE_CP_OFFSET][1], captureZone[i][E_CAPTURE_ZONE_CP_OFFSET][2], 35.0, _, _, 0, 0);
		captureZone[i][E_CAPTURE_ZONE_TIMER] = SetTimerEx("OnCaptureZoneUpdate", 1000, true, "i", i);
    }




public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
	for (new i; i < sizeof captureZone; i++)
    {
        if (checkpointid == captureZone[i][E_CAPTURE_ZONE_CP])
        {
            if (IsPlayerInAnyVehicle(playerid))
            {
                SendClientMessage(playerid, COLOR_TOMATO, "* You cannot capture a zone in a vehicle.");
                return 1;
            }
            if(AdminDuty[playerid] == 1)
			{
			    SendClientMessage(playerid, COLOR_TOMATO, "No way! You can't capture zone while on duty!");
                return 1;
	   		}
	   		if(GetPlayerTeam(playerid) == captureZone[i][E_CAPTURE_ZONE_OWNER])
			{
   				SCM(playerid, COLOR_ORANGE_RED, "* This zone is controlled by your team.");
				break;
			}
            if (captureZone[i][E_CAPTURE_ZONE_ATTACKER] == INVALID_PLAYER_ID)
            {
                if ((GetPlayerTeam(playerid) >= 0 && GetPlayerTeam(playerid) < sizeof TEAM) && TEAM[GetPlayerTeam(playerid)][E_TEAM_VALID] && GetPlayerTeam(playerid) != captureZone[i][E_CAPTURE_ZONE_OWNER])
                {
					
                    captureZone[i][E_CAPTURE_ZONE_ATTACKER] = playerid;
                    captureZone[i][E_CAPTURE_ZONE_PLAYERS_IN_ZONE] = 1;
                    captureZone[i][E_CAPTURE_ZONE_COUNTDOWN] = 0;
                    KillTimer(captureZone[i][E_CAPTURE_ZONE_TIMER]);
                    captureZone[i][E_CAPTURE_ZONE_TIMER] = SetTimerEx("OnCaptureZoneUpdate", 1000, true, "i", i);

                    GangZoneFlashForAll(captureZone[i][E_CAPTURE_ZONE_GANGZONE], ALPHA(TEAM[GetPlayerTeam(playerid)][E_TEAM_COLOR], 100));

                    SCM(playerid, COLOR_ORANGE_RED, "Stay in the checkpoint to for "#CAPTURE_TIME" seconds to capture the zone.");

                    new string[150];
                    format(string, sizeof string, "[ZONE] "COL_WHITE"Someone is trying to capture "OLIVE_GREEN"%s "COL_WHITE"for team "DARK_RED"%s !", captureZone[i][E_CAPTURE_ZONE_NAME], TEAM[GetPlayerTeam(playerid)][E_TEAM_NAME]);
                    SendClientMessageToAll(COLOR_DARK_RED, string);
				}
                else return 1;
            }
            else if (GetPlayerTeam(playerid) == GetPlayerTeam(captureZone[i][E_CAPTURE_ZONE_ATTACKER]))
            {
                captureZone[i][E_CAPTURE_ZONE_PLAYERS_IN_ZONE]++;

                SCM(playerid, COLOR_GREEN, "* Stay in the checkpoint to assist your teammate in capturing the area.");
            }
            PlayerTextDrawShow(playerid, capturePlayerTextDraw[playerid]);
            PlayerTextDrawShow(playerid, capturePlayerPreview[playerid]);
            ShowPlayerProgressBar(playerid, capturePlayerBar[playerid]);
            return 1;
        }
    }
	return 1;
}

 

forward OnCaptureZoneUpdate(zoneid);
public OnCaptureZoneUpdate(zoneid)
{
    captureZone[zoneid][E_CAPTURE_ZONE_COUNTDOWN] += captureZone[zoneid][E_CAPTURE_ZONE_PLAYERS_IN_ZONE];

    new string[150];
    format(string, sizeof string, "Capturing %i...", CAPTURE_TIME - captureZone[zoneid][E_CAPTURE_ZONE_COUNTDOWN]);

    for (new i, j = GetPlayerPoolSize(); i <= j; i++)
    {
         if (IsPlayerInDynamicCP(i, captureZone[zoneid][E_CAPTURE_ZONE_CP]) &&
             !IsPlayerInAnyVehicle(i) &&
             GetPlayerTeam(i) == GetPlayerTeam(captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER]))
         {
             PlayerTextDrawSetString(i, capturePlayerTextDraw[i], string);
             SetPlayerProgressBarValue(i, capturePlayerBar[i], captureZone[zoneid][E_CAPTURE_ZONE_COUNTDOWN]);
         }
    }
    if (captureZone[zoneid][E_CAPTURE_ZONE_COUNTDOWN] > CAPTURE_TIME)
    {
        GetPlayerName(captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER], string, MAX_PLAYER_NAME);
        format(string, sizeof string, "* Good job soldier. You assisted %s to capture "LIGHT_GREEN"%s. +$500", string, captureZone[zoneid][E_CAPTURE_ZONE_NAME]);

        for (new i, j = GetPlayerPoolSize(); i <= j; i++)
        {
             if (IsPlayerInDynamicCP(i, captureZone[zoneid][E_CAPTURE_ZONE_CP]) &&
                 !IsPlayerInAnyVehicle(i) &&
                 GetPlayerTeam(i) == GetPlayerTeam(captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER]))
             {
                PlayerTextDrawHide(i, capturePlayerTextDraw[i]);
                PlayerTextDrawHide(i, capturePlayerPreview[i]);
                HidePlayerProgressBar(i, capturePlayerBar[i]);

                if (i != captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER])
                {
                    SendClientMessage(i, COLOR_GREEN, string);
                    GivePlayerCash(i, 500);
                }
			 }
			 if(GetPlayerTeam(i) == GetPlayerTeam(captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER]))
   			 {
				format(string, sizeof(string), "** You recieved +2 score from the captured zone by your team.");
                SCM(i, COLOR_LIGHTBLUE, string);

                SetPlayerScore(i, PInfo[i][Score] += 2);
			 }
             if(GetPlayerTeam(i) == captureZone[zoneid][E_CAPTURE_ZONE_OWNER])
             {
				format(string, sizeof(string), "** You recieved -2 score, your team lost the zone.");
                SCM(i, COLOR_LIGHTBLUE, string);

                SetPlayerScore(i, PInfo[i][Score] -= 2);
             }
        }
        SetPlayerScore(captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER], GetPlayerScore(captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER]) + 5);

        GivePlayerCash(captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER], 4500);
        format(string, sizeof string, "[ZONE] You successfully captured "COL_ORANGE"%s. "COL_WHITE"+5 Score +$4500", captureZone[zoneid][E_CAPTURE_ZONE_NAME]);
        SendClientMessage(captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER], COLOR_GREEN, string);

        PInfo[captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER]][ZonesCaptured]++;

        format(string, sizeof string, ""COL_ORANGE"(!) %s team have captured '%s' .", TEAM[GetPlayerTeam(captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER])][E_TEAM_NAME], captureZone[zoneid][E_CAPTURE_ZONE_NAME]);
        SCMToAll(-1, string);

        new text[150];
        format(text, sizeof(text), ""COL_WHITE"%s"COL_YELLOW"(%i)", captureZone[zoneid][E_CAPTURE_ZONE_NAME], zoneid);
		UpdateDynamic3DTextLabelText(captureZone[zoneid][E_CAPTURE_ZONE_LABEL], TEAM[captureZone[zoneid][E_CAPTURE_ZONE_OWNER]][E_TEAM_COLOR], text);

        captureZone[zoneid][E_CAPTURE_ZONE_OWNER] = GetPlayerTeam(captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER]);
        captureZone[zoneid][E_CAPTURE_ZONE_ATTACKER] = INVALID_PLAYER_ID;
        KillTimer(captureZone[zoneid][E_CAPTURE_ZONE_TIMER]);
        GangZoneStopFlashForAll(captureZone[zoneid][E_CAPTURE_ZONE_GANGZONE]);
        GangZoneShowForAll(captureZone[zoneid][E_CAPTURE_ZONE_GANGZONE], ALPHA(TEAM[captureZone[zoneid][E_CAPTURE_ZONE_OWNER]][E_TEAM_COLOR], 100));
    }
    return 1;
}

 

Edited by Avast_
Edit

Youtube: Click

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
La 12.03.2019 la 19:52, Kiran a spus:

Cred ca ai gresit topicul, nu prea inteleg ce

 

nu cred ca e roman baiatul

Citat
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.