Help +rep easy
#10

pawn Код:
/*--------------------------------[ Airline Script ]--------------------------------

    This entire script is made by Bert
    Commands, Functions, Everything - Bert
    Idea - San Andreas Pilots Server ( [SAP] ), Credits for the Idea go to them!!

---------------------------------------------------------------------------------*/

#include <a_samp>
#define MAX_AIRPORTS 3

forward UnBusy(Airportid);
forward TransMittingTakeoff(playerid);
forward TransMittingLand(playerid);
forward UnSOSSent(playerid);
forward TransMittingSOS(playerid);
forward AssignTailNumbers();

new IsSOSSent[MAX_PLAYERS];
new Tailnumbers[11][] = {
    "CO2-SO",
    "CO2-S5",
    "H2O-2F",
    "H2O-3F",
    "NO4-OH",
    "NO4-KA",
    "H3O-69",
    "007-HQ",
    "KGB-13",
    "SOL-V2",
    "BBQ-69"
};
new Float:Airfields[MAX_AIRPORTS][2] = {
    {1471.412, 1483.09}, //LV
    {1751.681, -2464.032}, //LS
    {-1401.345, -233.5575} //SF
};

new String[128];
new String2[128];
new VehicleTailNumber[MAX_VEHICLES][2];
new Airport[MAX_PLAYERS];
new AirportNames[MAX_AIRPORTS][] = {
    "Las Venturas",
    "Los Santos",
    "San Fierro"
};
new IsBusy[MAX_AIRPORTS];
new IsPilot[MAX_PLAYERS] = 1;

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" Airtower Control Script by Bert");
    print("--------------------------------------\n");


    SetTimer("AssignTailNumbers", 10000, 0);
    print("Ten seconds after loading, tailnumbering will start");

    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/takeoff", cmdtext, true, 10) == 0 || (strcmp("/t", cmdtext, true, 10) == 0))
    {
        if(IsPilot[playerid])
        {
            new vehicleid;
            if(IsAirVehicle(vehicleid))
            {
                Airport[playerid] = GetClosestAirfield(playerid);
                SetTimerEx("TransMittingTakeoff", 5000, 0, "i", playerid);
                GameTextForPlayer(playerid, "~g~Transmitting...", 3500, 3);
            }
            else
            {
                SendClientMessage(playerid, 0xFFFFFF, "You are not in a  air vehicle");
            }
        }
        return 1;
    }
    if (strcmp("/land", cmdtext, true, 10) == 0 || (strcmp("/l", cmdtext, true, 10) == 0))
    {
        if(IsPilot[playerid])
        {
            new vehicleid;
            if(IsAirVehicle(vehicleid))
            {
                Airport[playerid] = GetClosestAirfield(playerid);
                SetTimerEx("TransMittingLand", 5000, 0, "i", playerid);
                GameTextForPlayer(playerid, "~g~Transmitting...", 3500, 3);
            }
            else
            {
                SendClientMessage(playerid, 0xFFFFFF, "You are not in a air vehicle");
            }
        }
        return 1;
    }
    return 0;
}

stock IsAirVehicle(carid)
{
    new AirVeh[] = { 592, 577, 511, 512, 593,
                     520, 553, 476, 519, 460,
                     513, 548, 425, 417, 487,
                     488, 497, 563, 447, 469
    };
    for(new i = 0; i < sizeof(AirVeh); i++)
    {
        if(GetVehicleModel(carid) == AirVeh[i]) return 1;
    }
    return 0;
}

stock GetClosestAirfield(playerid)
{
    new Float:Dist;
    new Float:Dist2 = 9999;
    new AirfieldNumber;
    for(new i = 0; i < 4; i ++)
    {
        new Float:x, Float:y, Float:z, Float:x1, Float:y1;
        GetPlayerPos(playerid, x, y, z);
        x1 = x-Airfields[i][0];
        y1 = y-Airfields[i][1];
        Dist = floatsqroot(x1*x1+y1*y1);
        if(Dist < Dist2)
        {
            Dist2 = Dist;
            AirfieldNumber = i;
        }
    }
    return AirfieldNumber;
}

public UnBusy(Airportid)
    IsBusy[Airportid] = 0;

public UnSOSSent(playerid)
    IsSOSSent[playerid] = 0;

public AssignTailNumbers()
{
    for(new i = 0; i< MAX_VEHICLES; i++) SetVehicleToRespawn(i);
    print("All airvehicles have been assigned a tailnumber");
}

public TransMittingSOS(playerid)
{
    new MaxPlayers = GetMaxPlayers(), vehicleid = GetPlayerVehicleID(playerid), Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    if(IsSOSSent[playerid] == 0)
    {
        for(new i = 0; i < MaxPlayers; i ++)
        {
            if(IsPilot[i])
            {
                format(String, 128, "~w~ATC: Flight ~b~'%d-%s' ~w~Sends SOS from: (%.0f, %.0f)", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]], x, y);
                format(String2, 128, "ATC: Flight '%d-%s' Sends SOS from: (%.0f, %.0f)", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]], x, y);
                SendClientMessage(i, 0xFFFFFF, String2);
                GameTextForPlayer(i, String, 6000, 4);
            }
        }
        IsSOSSent[playerid] = 1;
        SetTimerEx("UnSOSSent", 30000, 0, "i", playerid);
    }
    else
    {
        SendClientMessage(playerid, 0xFFFFFF, "You can use /sos only once half a minute!");
    }
}

public TransMittingTakeoff(playerid)
{
    new MaxPlayers = GetMaxPlayers();
    new vehicleid = GetPlayerVehicleID(playerid);
    if(IsBusy[Airport[playerid]] == 0)
    {
        for(new i = 0; i < MaxPlayers; i ++)
        {
            if(IsPilot[i])
            {
                if(i != playerid)
                {
                    format(String, 128, "~w~ATC: Flight ~b~'%d-%s' ~w~is going to takeoff from ~r~%s Airport", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]], AirportNames[Airport[playerid]]);
                    format(String2, 128, "ATC: Flight '%d-%s' is going to takeoff from %s Airport", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]], AirportNames[Airport[playerid]]);
                    SendClientMessage(i, 0xFFFFFF, String2);
                    GameTextForPlayer(i, String, 6000, 4);
                }
                else
                {
                    format(String, 128, "~w~ATC: Flight ~b~'%d-%s' ~w~you are clear to takeoff from ~r~%s Airport", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]], AirportNames[Airport[playerid]]);
                    format(String2, 128, "ATC: Flight '%d-%s' you are clear to takeoff from %s Airport", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]], AirportNames[Airport[playerid]]);
                    SendClientMessage(i, 0xFFFFFF, String2);
                    GameTextForPlayer(i, String, 6000, 4);
                }
            }
        }
        IsBusy[Airport[playerid]] = 1;
        SetTimerEx("UnBusy", 30000, 0, "i", Airport[playerid]);
    }
    else
    {
        format(String, 128, "The %s Airport is already busy with an other flight, hold on a minute!", AirportNames[Airport[playerid]]);
        format(String2, 128, "~g~The %s Airport is already busy", AirportNames[Airport[playerid]]);
        SendClientMessage(playerid, 0xFFFFFF, String);
        GameTextForPlayer(playerid, String2, 3000, 3);
    }
}

public TransMittingLand(playerid)
{
    new MaxPlayers = GetMaxPlayers();
    new vehicleid = GetPlayerVehicleID(playerid);
    if(IsBusy[Airport[playerid]] == 0)
    {
        for(new i = 0; i < MaxPlayers; i ++)
        {
            if(IsPilot[i])
            {
                if(i != playerid)
                {
                    format(String, 128, "~w~ATC: Flight ~b~'%d-%s' ~w~is going to land on ~r~%s Airport", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]], AirportNames[Airport[playerid]]);
                    format(String2, 128, "ATC: Flight '%d-%s' is going to land on %s Airport", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]], AirportNames[Airport[playerid]]);
                    SendClientMessage(i, 0xFFFFFF, String2);
                    GameTextForPlayer(i, String, 6000, 4);
                }
                else
                {
                    format(String, 128, "~w~ATC: Flight ~b~'%d-%s' ~w~you are clear to land on ~r~%s Airport", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]], AirportNames[Airport[playerid]]);
                    format(String2, 128, "ATC: Flight '%d-%s' you are clear to land on %s Airport", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]], AirportNames[Airport[playerid]]);
                    SendClientMessage(i, 0xFFFFFF, String2);
                    GameTextForPlayer(i, String, 6000, 4);
                }
            }
            IsBusy[Airport[playerid]] = 1;
            SetTimerEx("UnBusy", 30000, 0, "i", Airport[playerid]);
        }
    }
    else
    {
        format(String, 128, "The %s Airport is already busy with an other flight, hold on a minute!", AirportNames[Airport[playerid]]);
        format(String2, 128, "~g~The %s Airport is already busy", AirportNames[Airport[playerid]]);
        SendClientMessage(playerid, 0xFFFFFF, String);
        GameTextForPlayer(playerid, String2, 3000, 4);
    }
}

public OnVehicleSpawn(vehicleid)
{
    if(IsAirVehicle(vehicleid))
    {
        VehicleTailNumber[vehicleid][0] = random(99);
        VehicleTailNumber[vehicleid][1] = random(11);
    }
    return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(IsAirVehicle(vehicleid))
    {
        format(String, sizeof(String), "Your tailnumber is '%d-%s'", VehicleTailNumber[vehicleid][0], Tailnumbers[VehicleTailNumber[vehicleid][1]]);
        SendClientMessage(playerid, 0xFFFFFF, String);
    }
    return 1;
}

// 325 lines! all scripted by moi!
Reply


Messages In This Thread
Help +rep easy - by ManGoe - 17.09.2014, 08:55
Re: Help +rep easy - by Rudy_ - 17.09.2014, 09:27
Re: Help +rep easy - by rymax99 - 17.09.2014, 09:31
Re: Help +rep easy - by ManGoe - 17.09.2014, 10:39
Re: Help +rep easy - by Rudy_ - 17.09.2014, 10:41
Re: Help +rep easy - by blewert - 17.09.2014, 10:54
Re: Help +rep easy - by PawnOX - 17.09.2014, 12:00
Re: Help +rep easy - by ManGoe - 17.09.2014, 13:10
Re: Help +rep easy - by ManGoe - 18.09.2014, 04:24
Re: Help +rep easy - by rickisme - 18.09.2014, 04:30

Forum Jump:


Users browsing this thread: 2 Guest(s)