Jump to content

[Tutorial] RoadBlock


RazvanBoss

Recommended Posts

[move]

Tutorial cum sa faci RoadBlock by RazVan

[/move]

In acest tutorial va voi invata cum sa faceti comanda

COD

/rb. 
Acest RoadBlock nu este la tunel, este cel clasic. Sub
forward AddsOn();
adaugam
forward ResetRoadblockTimer();
forward RemoveRoadblock(playerid).
Acum la functiile definite prin
 new 
adaugam
new roadblocktimer = 0;. 
Sub
pMarriedTo[128], 
adaugam
pRoadblock,
acum sub
PlayerInfo[playerid][pFuel] = 0; 
adaugam
PlayerInfo[playerid][pRoadblock] = 0; 
sub
else if(PlayerInfo[playerid][pJob] == 7)
    {
        if(JobDuty[playerid] == 1) { Mechanics -= 1; }
    } 
adaugam
if (PlayerInfo[playerid][pRoadblock] != 0)
    {
        RemoveRoadblock(playerid);
    }. 
La
OnPlayerCommandText adaugam sub o comanda
//--------------------------------[Roadblock]-----------------------------------
    if(strcmp(cmdtext, "/roadblock", true)==0 || strcmp(cmdtext, "/rb", true)==0)
    {
        if (PlayerInfo[playerid][pMember] != 1 && PlayerInfo[playerid][pLeader] != 1) return SendClientMessage(playerid, COLOR_GREY, "You are not a cop!");
        if (PlayerInfo[playerid][pRank] < 5)
        {
            SendClientMessage(playerid, COLOR_GREY, "You have to be rank 5 to use this command!");
            return 1;
        }
        if (PlayerInfo[playerid][pRoadblock] != 0) return SendClientMessage(playerid, COLOR_GREY, "You can only deploy 1 roadblock at a time, type /rrb to remove your existing one.");
        if (roadblocktimer != 0) return SendClientMessage(playerid, COLOR_GREY, "Please wait before trying to spawn another roadblock!");
        new Float:X, Float:Y, Float:Z, Float:A;
        GetPlayerPos(playerid, X, Y, Z);
        GetPlayerFacingAngle(playerid, A);
        PlayerInfo[playerid][pRoadblock] = CreateObject(981, X, Y, Z, 0.0, 0.0, A+180);
        SetPlayerPos(playerid, X, Y, Z+4);
        GameTextForPlayer(playerid, "~w~Roadblock ~r~Placed", 5000, 5);
        SendClientMessage(playerid, COLOR_GREEN, "Roadblock deployed successfully, type /rrb or /roadunblock to remove it.");
        roadblocktimer = 1;
        GetPlayerName(playerid, sendername, sizeof(sendername));
        format(string, sizeof(string), "HQ: A roadblock has been deployed by %s, it has been marked on the map by a checkpoint.", sendername);
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1)
                {
                    SetPlayerCheckpoint(playerid, X, Y, Z-10, 1.0);
                    SendClientMessage(i, TEAM_BLUE_COLOR, string);
                    if (PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 1)
                    {
                        SendClientMessage(i, COLOR_YELLOW, "You can remove all roadblocks by typing /rrball");
                    }
                }
            }
        }
        SetTimer("ResetRoadblockTimer", 60000, false);
        return 1;
    }

    if(strcmp(cmdtext, "/roadunblock", true)==0 || strcmp(cmdtext, "/rrb", true)==0)
    {
        if (PlayerInfo[playerid][pMember] != 1 && PlayerInfo[playerid][pLeader] != 1)
        {
            SendClientMessage(playerid, COLOR_GREY, "Only PD members can use this !");
            return 1;
        }
        if (PlayerInfo[playerid][pRank] < 5)
        {
            SendClientMessage(playerid, COLOR_GREY, "You have to be rank 5 to use this command!");
            return 1;
        }
        if (PlayerInfo[playerid][pRoadblock] == 0)
        {
            SendClientMessage(playerid, COLOR_GREY, "You haven't deployed a roadblock!");
            return 1;
        }
        RemoveRoadblock(playerid);
        SendClientMessage(playerid, COLOR_GREEN, "Roadblock removed successfully.");
        return 1;
    }

    if(strcmp(cmdtext, "/roadunblockall", true)==0 || strcmp(cmdtext, "/rrball", true)==0)
    {
        if (PlayerInfo[playerid][pRank] >= 5 && PlayerInfo[playerid][pMember] || PlayerInfo[playerid][pLeader] == 1)
        {
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
                if(PlayerInfo[i][pRoadblock] != 0)
                {
                    RemoveRoadblock(i);
                }
            }
            GetPlayerName(playerid, sendername, sizeof(sendername));
            format(string, sizeof(string), "HQ: All roadblocks in the area are to be disbanded immediately by order of %s.", sendername);
            for(new i = 0; i < MAX_PLAYERS; i++)
            {
                if(IsPlayerConnected(i))
                {
                    if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1)
                    {
                        SendClientMessage(i, TEAM_BLUE_COLOR, string);
                    }
                }
            }
        }
        else
        {
            SendClientMessage(playerid, COLOR_GREY, "You have to be rank 5+ or a police leader to remove all roadblocks!");
        }
        return 1;
    }. 
Sub
public AddsOn()
{
    adds=1;
    return 1;
} 
adaugam
public ResetRoadblockTimer()
{
    roadblocktimer = 0;
    return 1;
}

public RemoveRoadblock(playerid)
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1)
            {
                DisablePlayerCheckpoint(i);
            }
        }
    }
    DestroyObject(PlayerInfo[playerid][pRoadblock]);
    PlayerInfo[playerid][pRoadblock] = 0;
    return 1;
}.

Si asta a fost tot, sper sa va fie de folos, daca intampinati probleme, postati aici.

[move]

Tutorial cum sa faci RoadBlock by RazVan

[/move]

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • 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.