17.09.2014, 08:55
Код:
E:\Main\Life of Flying 0.3x (1)\LoF.pwn(70) : warning 217: loose indentation E:\Main\Life of Flying 0.3x (1)\LoF.pwn(81) : warning 217: loose indentation E:\Main\Life of Flying 0.3x (1)\LoF.pwn(84) : error 029: invalid expression, assumed zero E:\Main\Life of Flying 0.3x (1)\LoF.pwn(88) : warning 217: loose indentation E:\Main\Life of Flying 0.3x (1)\LoF.pwn(99) : warning 217: loose indentation Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 2 Errors.
Код:
/*--------------------------------[ 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!

