rendered paste body#include <a_samp>
#include <float>
#include <core>
#define TEAM_ADMINS 1 // Admins
#define TEAM_CIVILIANS 2 // Niet-admins
#pragma tabsize 0
#define COLOR_YELLOW 0xFFFF00AA // Kleur Admins
#define COLOR_BLACK 0x000000 // Niet Admins
#define COLOR_GRAY 0xAFAFAFAA // Kleur wanneer je inactive bent
#define COLOR_LIGHTBLUE 0x00BFFF // kleur voor lichtblauwe tekst
#define COLOR_GREEN 0x008000 // kleur voor groene tekst
static gTeam[MAX_PLAYERS];
//------------------------------------------------------------------------------
forward SetPlayerToTeamColor(playerid); // Speler naar teamkleur zetten
forward SetupPlayerForClassSelection(playerid); // Speler klaarmaken voor setup
forward SetPlayerTeamFromClass(playerid,classid); // Speler in team zetten
forward ExitTheGameMode(); // uit gamemode gaan
forward IsPositionInArea(playerid, Float:minx, Float:maxx, Float:miny, Float:maxy);
//------------------------------------------------------------------------------
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Freeroom by Clank");
print("--------------------------------------\n");
return 1;
}
//------------------------------------------------------------------------------
new Float:shape[4][2] = {
{0.0,8.0},
{9.0,0.0},
{0.0,-7.0},
{-3.0,0.0}
};
//------------------------------------------------------------------------------
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Freeroom by Clank");
print("----------------------------------\n");
}
#endif
public OnGameModeInit()
{
SetGameModeText("Freeroom");
SetWorldTime(6); // tijd in uren.
ShowNameTags(1); // Spelers namen boven health balk aan of uit. Nu aan
ShowPlayerMarkers(1); // Blokjes op radar aan of uit? Nu aan
AddStaticVehicle(429,-2162.9761,293.7885,34.9206,0.1673,-1,-1); // sf-rp Banshee
AddStaticVehicle(541,-2167.1702,294.2055,34.9209,2.6872,-1,-1); // sf-rp Bullet
AddStaticVehicle(492,-2171.4482,293.6299,34.9224,359.8894,-1,-1); // sf-rp greenwood
AddStaticVehicle(475,-2176.0142,293.6442,34.9211,359.8203,-1,-1); // sf-rp Car that is now
AddStaticVehicle(562,-2162.9170,306.2026,34.9213,181.5363,-1,-1); // sf-rp elegy
AddStaticVehicle(480,-2167.5022,305.9372,34.9212,182.0892,-1,-1); // sf-rp comet
AddStaticVehicle(402,-2171.2854,305.7405,34.9236,181.0096,-1,-1); // sf-rp buffalo
AddStaticVehicle(422,-2175.7771,305.7611,34.9233,180.0073,-1,-1); // sf-rp bobcat
AddStaticVehicle(475,-2205.5044,293.9247,34.9217,0.0304,-1,-1); // sf-rp yankee
AddStaticVehicle(486,-2061.9856,272.7451,35.3162,273.5261,-1,-1); // sf-rp bulldozer
AddStaticVehicle(406,-2046.4180,288.0285,34.5102,182.2673,-1,-1); // sf-rp bigass truck
AddStaticVehicle(486,-2093.9050,276.2232,34.9247,355.8015,-1,-1); // bulldozer
AddStaticVehicle(406,-2099.3203,244.0579,35.6115,173.4507,-1,-1); // bigass truck
AddStaticVehicle(597,-1611.9727,673.5441,6.9626,181.6085,-1,-1); // sf-rp cop car
AddStaticVehicle(597,-1594.2646,672.5800,6.9626,176.7416,-1,-1); // sf-rp copcar
AddStaticVehicle(597,-1593.5822,652.3950,6.9626,1.3140,-1,-1); // sf-rp cop car
AddStaticVehicle(597,-1616.7960,652.6038,6.9626,0.6196,-1,-1); // sf-rp copcar
AddStaticVehicle(597,-1628.7367,652.5331,6.9726,0.8455,-1,-1); // sf-rp copcar
AddStaticVehicle(490,-1636.6252,665.9559,6.9551,267.9916,-1,-1); // sf-rp rancher
AddStaticVehicle(490,-1604.9026,652.2119,6.9549,4.7139,-1,-1); // sf-rp rancher
AddStaticVehicle(407,-2021.3077,84.2446,27.7586,271.3240,-1,-1); // sf-rp firetruck
AddStaticVehicle(407,-2020.9305,75.4216,27.8054,275.1901,-1,-1); // sf-rp firetruck
AddStaticVehicle(407,-2018.4757,93.6571,27.5804,274.5204,-1,-1); // sf-rp firetruck
AddStaticVehicle(496,-2139.2632,385.2727,35.0869,178.3456,-1,-1); // sf-rp random car
AddStaticVehicle(416,-2668.5098,625.1065,14.5746,359.9926,1,3); // sf-rp ambulance
AddStaticVehicle(416,-2691.5098,619.4815,14.5746,359.9926,1,3); // sf-rp ambulance
AddStaticVehicle(416,-2696.5098,612.9819,14.5753,359.9926,1,3); // sf-rp ambulance
AddStaticVehicle(416,-2695.5098,598.8561,14.5753,359.9925,1,3); // sf-rp ambulance
AddStaticVehicle(416,-2691.1348,592.4935,14.6466,359.9844,1,3); // sf-rp ambulance
AddStaticVehicle(416,-2631.2595,624.9828,14.5613,359.9930,1,3); // sf-rp ambulance
AddStaticVehicle(416,-2606.8464,623.2706,14.6087,359.2480,1,3); // sf-rp ambulance
AddStaticVehicle(431,-1728.4426,957.6014,25.0004,270.3876,25,1); // sf-rp bus
AddStaticVehicle(420,-1767.0001,951.1321,24.5412,0.0009,25,1); // sf-rp taxi
AddStaticVehicle(420,-1773.2501,944.2571,24.5412,0.0008,25,1); // sf-rp taxi
AddStaticVehicle(431,-1779.8098,957.7968,25.0007,91.9595,25,1); // sf-rp bus
AddStaticVehicle(470,-1382.4476,455.7917,7.1736,0.0806,43,0); // sf-rp mechcar
AddStaticVehicle(421,-1409.6677,455.5678,7.1072,8.2557,30,1); // sf-rp mechanic car
AddStaticVehicle(470,-1439.3806,455.0811,7.1695,0.3379,43,0); // sf-rp mechaniccar
AddStaticVehicle(542,-1465.0303,455.6733,6.8998,358.9681,31,93); // sf-rp mechcar
AddStaticVehicle(560,-1318.1819,-293.3684,13.8486,290.9279,-1,-1); //self made part
AddStaticVehicle(560,-1405.2732,-203.1853,13.8538,338.9735,-1,-1); //
AddStaticVehicle(519,-1306.6278,-251.0253,15.0695,303.0399,-1,-1); //
AddStaticVehicle(519,-1370.4625,-194.6961,15.0653,335.9335,-1,-1); //
AddStaticVehicle(519,-1362.5486,-491.4465,15.0928,205.1351,-1,-1); //
AddStaticVehicle(519,-1438.3007,-528.5573,15.0928,205.1830,-1,-1); //
AddStaticVehicle(411,-1407.0192,-552.9979,13.8755,288.1890,-1,-1); //
AddStaticVehicle(411,-1328.3071,-512.2791,13.8755,296.9144,-1,-1); //
AddStaticVehicle(603,-1245.6656,12.1121,13.9870,136.8830,-1,-1); //
AddStaticVehicle(603,-1236.3539,22.0556,13.9855,136.8745,-1,-1); //
AddStaticVehicle(520,-1221.6716,-10.1793,14.8717,223.8933,-1,-1); //
AddStaticVehicle(520,-1187.3149,25.7422,14.8716,223.1296,-1,-1); //
AddStaticVehicle(520,-1517.6234,-402.5834,7.8014,135.3301,-1,-1); //
AddStaticVehicle(522,-1548.1943,-443.0785,5.6271,133.6347,-1,-1); //
AddStaticVehicle(522,-2132.1709,-433.5217,34.9007,216.2325,-1,-1); //
AddStaticVehicle(522,-2132.0647,-430.7910,34.9067,213.6539,-1,-1); //
AddStaticVehicle(522,-2130.6838,-427.2279,34.8971,218.8109,-1,-1); //
AddStaticVehicle(444,-2174.3899,-403.4526,35.7072,58.9860,-1,-1); //
AddStaticVehicle(444,-2177.6724,-410.4970,35.7073,63.2504,-1,-1); //
AddStaticVehicle(541,-2085.6477,-84.9830,34.7891,357.0400,-1,-1); //
AddStaticVehicle(496,-2093.3701,-84.9458,34.8805,0.4441,-1,-1); //
AddStaticVehicle(506,-2072.0493,-84.3892,34.8682,1.2825,-1,-1); //
AddStaticVehicle(589,-2077.1528,-85.1303,34.8221,0.1539,-1,-1); //
AddStaticVehicle(562,-2090.1426,-109.8481,34.9794,180.8184,-1,-1); //
AddStaticVehicle(560,-2081.9758,-109.9148,35.0258,178.1591,-1,-1); //
AddStaticVehicle(506,-2072.4792,-109.9271,35.0304,180.3703,-1,-1); //
AddStaticVehicle(522,-2065.1299,-110.0734,34.8991,173.3588,-1,-1); //
AddStaticVehicle(522,-2062.9297,-110.1582,34.8977,177.6503,-1,-1); //
AddStaticVehicle(522,-2059.8762,-109.7364,34.8871,177.4540,-1,-1); //
AddStaticVehicle(589,-2021.1312,-48.8850,35.0050,224.9474,-1,-1); //
AddStaticVehicle(475,-2029.8212,156.0938,28.6387,358.5579,-1,-1); //
AddStaticVehicle(475,-1955.2612,301.5897,40.8440,37.7669,-1,-1); //
AddStaticVehicle(565,-1951.9244,260.4817,40.6738,60.0163,-1,-1); // started again on 12-1-08
AddStaticVehicle(602,-1950.5286,269.6283,40.8552,47.0954,-1,-1); //
AddStaticVehicle(541,-1956.6852,300.1263,35.0937,53.2652,-1,-1); //
AddStaticVehicle(411,-1955.8490,261.2670,35.1959,47.8172,-1,-1); //
AddStaticVehicle(603,-1950.8308,270.3087,35.3085,36.4136,-1,-1); //
AddStaticVehicle(475,-1985.6835,307.1218,34.9805,86.6055,-1,-1); //
AddStaticVehicle(581,-1987.3733,274.0890,34.7738,90.6856,-1,-1); //
AddStaticVehicle(562,-1959.2112,281.9969,35.1263,53.4833,-1,-1); //
AddStaticVehicle(562,-1988.0767,250.3333,34.8300,86.1795,-1,-1); //
AddStaticVehicle(562,-2131.5859,315.2945,34.8609,93.3491,-1,-1); //
AddStaticVehicle(506,-2265.5688,212.3717,34.8683,269.4919,-1,-1); //
AddStaticVehicle(496,-2265.9229,200.5877,34.8806,269.3365,-1,-1); //
AddStaticVehicle(581,-2266.4385,133.3371,34.7687,270.5156,-1,-1); //
AddStaticVehicle(415,-2267.0947,101.2426,34.9444,268.1581,-1,-1); // stopped at the baseball court
AddStaticVehicle(562,-1897.9261,-757.0679,31.6840,268.6527,-1,-1); //
AddStaticVehicle(562,-1887.2936,-757.3114,31.6793,268.4763,-1,-1); //
AddStaticVehicle(562,-1885.9030,-774.8696,31.6836,88.9826,-1,-1); //
AddStaticVehicle(562,-1896.7750,-774.6776,31.6797,89.2201,-1,-1); //
AddStaticVehicle(539,-2000.9114,-922.6259,31.5320,91.2272,-1,-1); //
AddStaticVehicle(539,-1997.9532,-904.8712,31.5319,90.1198,-1,-1); //
AddStaticVehicle(561,-1954.5983,-854.9791,31.9369,90.3567,-1,-1); //
AddStaticVehicle(561,-2124.5967,-775.8312,31.8370,89.9255,-1,-1); //
AddStaticVehicle(562,-2134.8020,-853.5728,31.6825,270.2987,-1,-1); //
AddStaticVehicle(560,-2148.4194,-818.4631,31.7282,90.3038,-1,-1); //
AddStaticVehicle(411,-2124.7612,-888.7297,31.7505,269.7657,-1,-1); //
AddStaticVehicle(581,-2124.7822,-871.9687,31.6209,95.5403,-1,-1); //
AddStaticVehicle(581,-2124.7119,-873.4526,31.6158,89.4601,-1,-1); //
AddStaticVehicle(402,-2149.3750,-935.1206,31.8552,269.1373,-1,-1); //
AddStaticVehicle(565,-2125.3667,-959.2330,31.6489,92.8424,-1,-1); //
AddStaticVehicle(573,-1886.4282,-957.6425,32.6739,273.7427,-1,-1); //
AddStaticVehicle(573,-1897.1628,-933.5775,32.6738,89.3088,-1,-1); //
AddStaticVehicle(602,-2392.3384,-607.8659,132.4550,213.9662,-1,-1); //
AddStaticVehicle(522,-2411.1726,-585.8032,132.2189,33.6358,-1,-1); //
AddStaticVehicle(506,-2397.9756,-592.4341,132.3530,304.1121,-1,-1); //
AddStaticVehicle(506,-2527.8079,-602.8188,132.2670,1.0777,-1,-1); //
AddStaticVehicle(506,-2772.4941,-295.5428,6.7436,1.4818,-1,-1); //
AddStaticVehicle(496,-2744.3281,-282.2730,6.7567,359.0742,-1,-1); //
AddStaticVehicle(496,-2745.7642,-304.7092,6.7476,228.1044,-1,-1); //
AddStaticVehicle(468,-2796.0259,-183.9818,6.8559,269.2784,-1,-1); //
AddStaticVehicle(602,-2804.5635,-161.4322,6.9119,359.4910,-1,-1); //
AddStaticVehicle(496,-2796.7246,-92.3369,6.9039,268.9000,-1,-1); //
AddStaticVehicle(496,-2702.0500,-182.1810,3.9689,5.0886,-1,-1); //
AddStaticVehicle(542,-2710.9238,-89.3346,3.9986,359.2532,-1,-1); //
AddStaticVehicle(542,-2627.2070,-35.4987,4.0791,2.4041,-1,-1); //
AddStaticVehicle(541,-2620.3032,-54.6283,3.9609,180.7989,-1,-1); //
AddStaticVehicle(522,-2660.0854,-54.7088,3.9101,185.0855,-1,-1); //
AddStaticVehicle(506,-2710.8037,-23.1914,3.9555,2.8390,-1,-1); //
AddStaticVehicle(506,-2695.1282,68.0907,4.0405,88.2818,-1,-1); //
AddStaticVehicle(561,-2702.1165,102.2281,4.0687,357.8049,-1,-1); //
AddStaticVehicle(561,-2578.5610,72.8431,4.9425,87.7070,-1,-1); //
AddStaticVehicle(562,-2688.0225,230.4311,3.9964,0.0000,-1,-1); //
AddStaticVehicle(562,-2664.7551,268.1989,3.9956,184.1168,-1,-1); //
AddStaticVehicle(560,-2678.2776,267.6308,4.0408,0.0003,-1,-1); //
AddStaticVehicle(458,-2754.5706,375.9738,4.1104,359.0325,-1,-1); //
AddStaticVehicle(568,-2936.7212,450.7487,3.3921,137.9812,-1,-1); //
AddStaticVehicle(573,-2952.8208,444.1526,3.4221,136.2771,-1,-1); //
AddStaticVehicle(495,-2937.1582,443.2858,3.6369,139.6535,-1,-1); // ended at the beach
AddStaticVehicle(522,-1651.5887,1210.8354,13.2038,274.7792,-1,-1); // nrg begin
AddStaticVehicle(522,-1661.9160,1219.2252,13.2442,284.4478,-1,-1); //
AddStaticVehicle(522,-1652.9851,1206.1672,20.7189,280.7187,-1,-1); //
AddStaticVehicle(522,-1659.1113,1215.0577,20.7298,283.0555,-1,-1); //
AddStaticVehicle(522,-1674.4785,1208.3156,20.7277,250.9688,-1,-1); // end nrg car showroom
AddStaticVehicle(522,-2511.0601,-622.5984,132.2926,125.7444,-1,-1); // NRG
AddStaticVehicle(522,-2506.4170,-622.5439,132.2670,140.1809,-1,-1); // NRG
//Classes:
AddPlayerClass(165,-2520.5664,-622.2319,132.3122,359.1625,31,400,0,0,0,0);
AddPlayerClass(0,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(105,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(106,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(107,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(165,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(124,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(122,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(121,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(118,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(117,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(116,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(115,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(114,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(195,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(13,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(104,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(103,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
AddPlayerClass(102,-2023.2551,156.5584,28.4075,271.9249,31,400,0,0,0,0);
return 1;
}
//------------------------------------------------------------------------------
public SetupPlayerForClassSelection(playerid)
{
SetPlayerInterior(playerid,11);
SetPlayerPos(playerid,508.7362,-87.4335,998.9609);
SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609);
SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609);
SetPlayerFacingAngle(playerid,0.0);
}
//------------------------------------------------------------------------------
public SetPlayerTeamFromClass(playerid,classid)
{
if(classid == 0) {
gTeam[playerid] = TEAM_ADMINS;
} else if(classid==1||classid==2||classid == 3 ||classid==6|| classid == 4 || classid == 5 ||classid==6||classid==7||classid==8||classid==9||classid==10||classid==11||classid==12||classid==13||classid==14||classid==15||classid==16||classid==17||classid==18||classid==19) {
gTeam[playerid] = TEAM_CIVILIANS;
}
}
//------------------------------------------------------------------------------
public SetPlayerToTeamColor(playerid)
{
if(gTeam[playerid] == TEAM_ADMINS) {
SetPlayerColor(playerid,COLOR_YELLOW); // geel
} else if(gTeam[playerid] == TEAM_CIVILIANS) {
SetPlayerColor(playerid,COLOR_GRAY); // grijs
}
}
//------------------------------------------------------------------------------
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
SetPlayerColor(playerid,COLOR_BLACK); // Kleur
GameTextForPlayer(playerid,"~r~Freeroom by Clank",2000,5); // Text
return 1;
}
//------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
SetPlayerToTeamColor(playerid);
SetPlayerInterior(playerid,0);
if(gTeam[playerid] == TEAM_ADMINS) {
GameTextForPlayer(playerid,"WELCOME ROY/CAS",6000,5);
}
else if(gTeam[playerid] == TEAM_CIVILIANS) {
GameTextForPlayer(playerid,
"ENJOY!",
6000,5);
}
return 1;
}
public ExitTheGameMode()
{
GameModeExit();
}
//------------------------------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
if IsPositionInArea(playerid,2471.1379,-2297.2871,2330.9753,-2450.1772,2325.3369,-2722.1604,2843.7278,-2736.2388,2877.4270,-2302.5518),
},
{
SendDeathMessage(killerid, playerid, reason); // send deathmessage
GivePlayerMoney(killerid, 1000); // give player 1000
}
else IsPositionInArea(playerid,0,0,100,100),
// else
{
SendDeathMessage(killerid, playerid, reason); // send deathmessage
GivePlayerMoney(killerid, -10000); // give the player -10000
}
}
//------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerPrivmsg(playerid, recieverid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/credits", cmdtext, true, 10) == 0)
{
SendClientMessage (playerid, COLOR_BLACK,"***********************************************************");
SendClientMessage (playerid, COLOR_YELLOW,"~y~Thanks to Clank for making this script");// Credits to clank
SendClientMessage (playerid, COLOR_YELLOW,"~y~Also thanks to the guys at the sa-mp forum");// Credits to the sa-mp forum
SendClientMessage (playerid, COLOR_YELLOW,"~y~And last but not least the guys behind the gtaforum.nl");// Credits to gtaforum.nl
SendClientMessage (playerid, COLOR_BLACK,"***********************************************************");
return 1;
}
if(strcmp(cmdtext, "/rules", true) == 0)
{
SendClientMessage (playerid, COLOR_BLACK,"***********************************************************");
SendClientMessage(playerid, COLOR_GREEN, "Our rules:");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "1. NEVER deathmatch. Only in the deathmatch area");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "to get to the deathmatch area type /deathmatch.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Just chillout, and report somone who is annoying to Clank or Fighterbitsj.");
SendClientMessage (playerid, COLOR_BLACK,"***********************************************************");
return 1;
}
if(strcmp(cmdtext, "/help", true) == 0)
{
SendClientMessage (playerid, COLOR_BLACK,"***********************");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "/credits /rules ");
SendClientMessage (playerid, COLOR_BLACK,"***********************");
return 1;
}
return 0;
}
public OnPlayerInfoChange(playerid)
{
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
bool:IsPositionInArea(Float:x,Float:y,Float:poss[][2],edges = sizeof poss)
{
if(edges < 3) return false;
new last = edges - 1,
Float:rsideangles = 0.0,
Float:lsideangles = 0.0;
for(new i = 0; i < edges; i++)
{
new next = (i == last) ? 0 : i + 1,
next2 = (next == last) ? 0 : next + 1,
Float:langle,
Float:floats[4];
floats[0] = poss[next][1] - poss[i][1];
if(floats[0] < 0.0) floats[0] = poss[i][1] - poss[next][1];
floats[1] = poss[i][0] - poss[next][0];
if(floats[1] < 0.0) floats[1] = poss[next][0] - poss[i][0];
floats[2] = poss[next2][0] - poss[next][0];
if(floats[2] < 0.0) floats[2] = poss[next][0] - poss[next2][0];
floats[3] = poss[next2][1] - poss[next][1];
if(floats[3] < 0) floats[3] = poss[next][1] - poss[next2][1];
langle = atan(floats[0] / floats[1]) + atan(floats[2] / floats[3]) + 180;
lsideangles += langle;
rsideangles += 360.0 - langle;
}
if(lsideangles > rsideangles)
{
for(new i = 0; i < edges; i++)
{
new next = (i == last) ? 0 : i + 1,
Float:em = (poss[i][0] - poss[next][0]) / (poss[i][1] - poss[next][1]), // y = mx + c
Float:ec = poss[next][1] - (poss[next][0] * em);
if(poss[i][0] < poss[next][0])
{
if(y > ((em * x) + ec)) return false;
} else if(poss[i][0] > poss[next][0])
{
if(y < ((em * x) + ec)) return false;
} else if(poss[i][1] < poss[next][1])
{
new Float:val = y - ec;
if(em != 0) val /= em;
if(x < val) return false;
} else if(poss[i][1] > poss[next][1])
{
new Float:val = y - ec;
if(em != 0) val /= em;
if(x > val) return false;
}
}
} else if(lsideangles < rsideangles)
{
for(new i = 0; i < edges; i++)
{
new next = (i == last) ? 0 : i + 1,
Float:em = (poss[i][0] - poss[next][0]) / (poss[i][1] - poss[next][1]), // y = mx + c
Float:ec = poss[next][1] - (poss[next][0] * em);
if(poss[i][0] < poss[next][0])
{
if(y < ((em * x) + ec)) return false;
} else if(poss[i][0] > poss[next][0])
{
if(y > ((em * x) + ec)) return false;
} else if(poss[i][1] < poss[next][1])
{
new Float:val = y - ec;
if(em != 0) val /= em;
if(x > val) return false;
} else if(poss[i][1] > poss[next][1])
{
new Float:val = y - ec;
if(em != 0) val /= em;
if(x < val) return false;
}
}
} else return false;
return true;
}