rendered paste body#include <a_samp>
#include <core>
#include <float>
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_ORANGE 0xFF9900AA
#define PocketMoney 4000 // Amount player recieves on spawn.
#define INACTIVE_PLAYER_ID 255
#define GIVECASH_DELAY 5000 // Time in ms between /givecash commands.
#define NUMVALUES 4
#define CP_BANK 0
#define CP_PIRATE 1
#define CP_SKYSCARPER 2
#define CP_ZOMBOTECH 3
#define CP_AMMU 4
#define CP_AMMU_2 5
#define CP_BANK_2 6
#define CP_BANK_3 7
#define CP_LS_AIR 8
#define CP_SF_AIR 9
#define CP_LV_AIR 10
#define CP_ALAHAM 11
#define CP_DIDERSACHS 12
#define CP_BAR 13
#define CP_HAIRSTUD 14
#define CP_ZIP 15
#define CP_BINCO 16
#define CP_TATOO 17
#define CP_GOLF 18
#define CP_WANG 19
#define CP_HOTEL 20
#define CP_OTTOS 21
#define CP_DRAGON 22
#define CP_CALIGULA 23
#define CP_SEXSHOP 24
#define CP_CATHAY 25
#define CP_VERONA 26
#define CP_ZERORC 27
#define CP_JIZZYS 28
#define P_ALAHAM 0
#define P_DIDERSACHS 1
#define P_BAR 2
#define P_HAIRSTUD 3
#define P_ZIP 4
#define P_BINCO 5
#define P_TATOO 6
#define P_GOLF 7
#define P_WANG 8
#define P_HOTEL 9
#define P_OTTOS 10
#define P_DRAGON 11
#define P_CALIGULA 12
#define P_SEXSHOP 13
#define P_CATHAY 14
#define P_VERONA 15
#define P_ZERORC 16
#define P_JIZZYS 17
#define P_OFFSET 11
forward FreeroamRpScoreUpdate();
forward Givecashdelaytimer(playerid);
//forward FreeroamRpModeReset();
forward SetPlayerRandomSpawn(playerid);
forward SetupPlayerForClassSelection(playerid);
forward GameModeExitFunc();
//------------------------------------------------------------------------------------------------------
new ownedcar[MAX_PLAYERS];
new owner[256];
new CashScoreOld;
new iSpawnSet[MAX_PLAYERS];
new bank[MAX_PLAYERS];
new bounty[MAX_PLAYERS];
new playerCheckpoint[MAX_PLAYERS];
new savePos;
new worldTime;
new playerColors[100] = {
0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEE82EEFF,0xFFD720FF,
0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,
0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,
0x275222FF,0xF09F5BFF,0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,0x4B8987FF,
0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,
0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,
0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,
0x9F945CFF,0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
0x3FE65CFF
};
new Float:gRandomPlayerSpawns[78][3] = {
{2805.0862,-1180.9579,25.4536},
{2530.4785,-1063.5999,69.5695},
{-2275.2280,42.3125,35.3125},
{2042.9279,-1013.6509,39.7422},
{1497.0605,-689.1375,95.1092},
{1255.1125,-803.2986,84.1406},
{829.4501,-858.8712,70.1248},
{699.3003,-1059.2599,49.4217},
{299.0901,-1155.5858,80.9099},
{315.2544,-1772.5730,4.6776},
{-2062.5583,237.4662,35.7149},
{333.3540,-1519.2587,35.8672},
{763.0789,-1564.3256,13.5536},
{986.0850,-1095.0150,27.6041},
{1109.6948,-972.4279,42.7656},
{-2123.6570,-425.2528,35.5313},
{1438.9014,-927.2687,39.6406},
{1656.6252,-1076.3080,23.8984},
{1956.1605,-1116.0430,27.8305},
{-2653.6443,1388.2767,7.1301},
{2224.1555,-1240.3496,25.1478},
{2338.8757,-1289.3113,27.9766},
{-2838.1958,880.8605,44.0547},
{2436.4819,-1303.6724,24.6679},
{2450.9358,-1493.6650,24.0000},
{-2319.8889,578.0090,31.2498},
{2519.8420,-1678.7356,14.8524},
{2507.6228,-2019.1085,13.5469},
{-2642.2583,-274.9985,7.5393},
{1957.7228,-2183.6519,13.5469},
{1857.9117,-2042.3588,13.5469},
{-1771.3396,1205.8127,25.1250},
{1734.1467,-2099.2144,13.8666},
{2511.4326,-2589.3069,13.6443},
{2785.9890,-2417.7148,13.6341},
{2261.2937,-1930.7488,12.8935},
{2105.2878,-1913.1111,13.3828},
{-2157.2119,649.5484,52.3672},
{-2478.9902,1141.1311,55.7266},
{1833.2399,-1681.1813,13.4816},
{1665.9006,-1559.9375,13.5469},
{1125.5248,-1372.0935,13.9844},
{-2652.8887,1347.5245,7.1592},
{1289.0425,-1134.7928,23.8281},
{2842.1575,-1335.5879,14.7421},
{2767.4480,-1610.6735,10.9219},
{2753.1375,-1308.9150,53.0938},
{2789.2317,-2494.3286,13.6485},
{-1377.4271,466.0897,7.1875},
{1958.3783,1343.1572,15.3746},
{2199.6531,1393.3678,10.8203},
{2483.5977,1222.0825,10.8203},
{2637.2712,1129.2743,11.1797},
{2000.0106,1521.1111,17.0625},
{2024.8190,1917.9425,12.3386},
{-2569.5093,894.0370,64.9844},
{2261.9048,2035.9547,10.8203},
{2262.0986,2398.6572,10.8203},
{-2442.7913,752.1005,35.1786},
{2244.2566,2523.7280,10.8203},
{2335.3228,2786.4478,10.8203},
{-1754.9976,958.5851,24.8828},
{2150.0186,2734.2297,11.1763},
{2158.0811,2797.5488,10.8203},
{1969.8301,2722.8564,10.8203},
{-2790.7754,69.6904,7.2020},
{1652.0555,2709.4072,10.8265},
{1564.0052,2756.9463,10.8203},
{1271.5452,2554.0227,10.8203},
{1441.5894,2567.9099,10.8203},
{-2665.4282,635.6348,14.4531},
{1480.6473,2213.5718,11.0234},
{1400.5906,2225.6960,11.0234},
{-1939.9021,-858.7451,32.0234},
{1598.8419,2221.5676,11.0625},
{1318.7759,1251.3580,10.8203},
{-1660.7620,1207.0634,21.1563},
{1558.0731,1007.8292,10.8125}
};
new Float:gCopPlayerSpawns[6][3] = {
{1579.9010, -1636.5945, 13.5587},
{1525.2365, -1678.0016, 5.8906},
{2297.1064, 2452.0115, 10.8203},
{2297.0452, 2468.6743, 10.8203},
{-1635.0077, 665.8105, 7.1875},
{-1636.9252, 662.2247, 7.1875}
};
#define MAX_POINTS 29
new Float:checkCoords[MAX_POINTS][4] = {
{-36.5483,-57.9948, -17.2655,-49.2967}, //BANK
{1894.6128,1445.3431, 2084.9739,1637.8186}, //LV_PIRATE
{1526.1332,-1370.5281,1558.4066,-1346.3019}, //LS_SKYSCARPER
{-2020.2151,593.7877,-1882.4504,745.5773}, //SF_ZOMBOTECH
{285.5186,-40.8558, 299.3870,-30.2428}, //AMMUNATION
{284.0546,-86.4384, 302.9315,-56.6674}, //AMMUNATION_2
{-37.2183,-91.8006, -14.1099,-74.6845}, //BANK_2
{-34.6621,-31.4095, -2.6782,-25.6232}, //BANK_3
{1406.4838,-2372.7078,1836.9307,-2205.9673}, //LS_AIRPORT
{-1720.8835,-692.9379,-1229.0609,-244.2898}, //SF_AIRPORT
{1631.2246,1319.9592,1815.6743,1549.8381}, //LV_AIRPORT
{473.8677,-24.4651, 503.5214,-10.7020}, //ALHAMBRA
{200.4548,-168.0065, 211.3137,-156.5380}, //DIDERSACHS
{487.6558,-88.5900, 512.0635, -67.7503}, //BAR
{410.9893,-24.1658,415.1630,-12.6853}, //HAIRSTUD
{144.9131,-96.0927, 177.4128,-70.7923}, //ZIP
{201.4462,-112.4556, 218.5237,-95.1238}, //BINCO
{-204.7587,-27.0317, -200.2572,-22.7652}, //TATOO
{-2815.8892,-330.0380,-2637.8352,-202.6930}, //SF GOLF CLUB
{-2014.8904,218.3705,-1900.5179,327.4985}, //SF WANG CARS
{-1804.7817,904.1232,-1682.8546,979.6241,}, //SF HOTEL
{-1681.0754,1168.9130,-1554.2562,1254.3335}, //OTTO'S AUTOS
{1925.1511,968.2358, 2019.0715,1067.4276}, //DRAGONS
{2216.7971,1638.0493, 2255.2097,1714.0806}, //CALIGULA
{-115.9544,-24.2706, -99.1631,-7.1391}, //SEXSHOP
{954.5639,-1158.5366,1073.8862,-1086.4647}, //CATHAY
{1020.2889,-1581.0238,1214.4883,-1387.2167}, //VERONA
{-2240.6978,128.3114,-2224.1711,137.5221}, //ZERORC
{-2689.9849,1389.1598,-2631.0308,1431.7599} //JIZZYS
};
new Float:checkpoints[MAX_POINTS][3] = {
{-22.2549,-55.6575,1003.5469},
{2000.3132,1538.6012,13.5859},
{1544.3478, -1356.1665, 329.469},
{-1951.9886,686.6917,46.5625},
{291.1157,-39.9011,1001.5156},
{291.0004,-84.5168,1001.5156},
{-23.0664,-90.0882,1003.5469},
{-33.9593,-29.0792,1003.5573},
{1685.4951,-2333.1021,13.5469},
{-1423.1083,-289.5751,14.1484},
{1677.3966,1447.7908,10.7758},
{475.2822,-18.4801,1003.6953},
{204.0677,-157.7979,1000.5234},
{501.4927,-75.4323,998.7578},
{411.9587,-17.9706,1001.8047},
{161.1875,-79.9915,1001.8047},
{207.5640,-97.8188,1005.2578},
{-201.5237,-26.2863,1002.2734},
{-2724.3921,-314.7957,7.1861},
{-1957.3124,302.8924,35.4688},
{-1754.2139,960.2347,24.8828},
{-1660.4781,1218.4636,7.2500},
{1994.7078,1017.6371,994.8906},
{2235.5408,1679.0402,1008.3594},
{-103.9330,-21.0203,1000.7188},
{1022.7669,-1124.1028,23.8708},
{1129.0569,-1489.0812,22.7690},
{-2233.7097,133.7087,1035.4210},
{-2650.8259,1410.2885,906.2734}
};
new checkpointType[MAX_POINTS] = {
CP_BANK,
CP_PIRATE,
CP_SKYSCARPER,
CP_ZOMBOTECH,
CP_AMMU,
CP_AMMU_2,
CP_BANK_2,
CP_BANK_3,
CP_LS_AIR,
CP_SF_AIR,
CP_LV_AIR,
CP_ALAHAM,
CP_DIDERSACHS,
CP_BAR,
CP_HAIRSTUD,
CP_ZIP,
CP_BINCO,
CP_TATOO,
CP_GOLF,
CP_WANG,
CP_HOTEL,
CP_OTTOS,
CP_DRAGON,
CP_CALIGULA,
CP_SEXSHOP,
CP_CATHAY,
CP_VERONA,
CP_ZERORC,
CP_JIZZYS
};
#define MAX_PROPERTIES 18
new propertyNames[MAX_PROPERTIES][32] = {
"LS Alhambra Club",
"Dider Sachs Boutiques",
"Ten Green Bottles, Shithole Bar",
"Hair Studios",
"Zip Shops",
"Binco Shops",
"Tatoo Parlors",
"SF Country Club",
"SF Wang Cars",
"SF Hotel",
"SF Otto's Autos",
"LV Four Dragons Casino",
"LV Caligula Casino",
"LV Sexshop",
"LS Kathay Chineese Theatre",
"LS Verona Mall",
"SF Zero RC Shop",
"SF Jizzy's Club"
};
new propertyValues[MAX_PROPERTIES] = {
70000,
100000,
20000,
30000,
15000,
15000,
10000,
220000,
170000,
200000,
190000,
75000,
100000,
25000,
130000,
150000,
25000,
70000
};
new propertyEarnings[MAX_PROPERTIES] = {
4500,
7000,
1500,
4000,
1000,
1000,
700,
14000,
95000,
12000,
10000,
5000,
7000,
2000,
8500,
9000,
1500,
4500
};
new propertyOwner[MAX_PROPERTIES] = {999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999};
#define MAX_WEAPONS 7
new weaponNames[MAX_WEAPONS][32] = {
"Shotgun",
"Combat Shotgun",
"Micro Uzi",
"Tec9",
"MP5",
"AK47",
"M4"
};
new weaponIDs[MAX_WEAPONS] = {
25, //Shotgun
27, //Combat shotgun
28, //Micro Uzi
32, //Tec9
29, //MP5
30, //AK47
31 //M4
};
new weaponCost[MAX_WEAPONS] = {
7000,
15000,
7000,
5000,
15000,
25000,
30000
};
new weaponAmmo[MAX_WEAPONS] = {
15,
20,
120,
120,
120,
120,
120
};
new playerWeapons[MAX_PLAYERS][MAX_WEAPONS];
#define MAX_SAVE 64
new savedInfo[MAX_SAVE][4];
new savedNames[MAX_SAVE][MAX_PLAYER_NAME];
new savedWeapons[MAX_SAVE][MAX_WEAPONS];
#define MAX_GANGS 32
#define MAX_GANG_MEMBERS 6
#define MAX_GANG_NAME 16
new gangMembers[MAX_GANGS][MAX_GANG_MEMBERS];
new gangNames[MAX_GANGS][MAX_GANG_NAME];
new gangInfo[MAX_GANGS][3]; //0-created,1-members,2-color
new gangBank[MAX_GANGS];
new playerGang[MAX_PLAYERS];
new gangInvite[MAX_PLAYERS];
new gActivePlayers[MAX_PLAYERS];
new gLastGaveCash[MAX_PLAYERS];
//------------------------------------------------------------------------------------------------------
main()
{
print("\n----------------------------------");
print(" SAN ANDREAS FreeroamRp");
print("----------------------------------\n");
}
//------------------------------------------------------------------------------------------------------
public PlayerLeaveGang(playerid) {
new string[256];
new playername[MAX_PLAYER_NAME];
new gangnum = playerGang[playerid];
if(gangnum > 0) {
for(new i = 0; i < gangInfo[gangnum][1]; i++) {
if(gangMembers[gangnum][i]==playerid) {
//One less gang member
gangInfo[gangnum][1]--;
for(new j = i; j < gangInfo[gangnum][1]; j++) {
//Shift gang members
gangMembers[gangnum][j]=gangMembers[gangnum][j+1];
}
//Disband gang if no more members
if(gangInfo[gangnum][1]<1) {
gangInfo[gangnum][0]=0;
gangInfo[gangnum][1]=0;
gangBank[gangnum]=0;
}
//Notify other members
for(new j = 0; j < gangInfo[gangnum][1]; j++) {
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
format(string, sizeof(string),"%s has quit your gang.", playername);
SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string);
}
format(string, sizeof(string),"You have quit the gang '%s' (id: %d)", gangNames[gangnum], gangnum);
SendClientMessage(playerid, COLOR_ORANGE, string);
playerGang[playerid]=0;
SetPlayerColor(playerid,playerColors[playerid]);
return;
}
}
} else {
SendClientMessage(playerid, COLOR_RED, "You are not in a gang.");
}
}
public getCheckpointType(playerID) {
return checkpointType[playerCheckpoint[playerID]];
}
public isPlayerInArea(playerID, Float:data[4])
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerID, X, Y, Z);
if(X >= data[0] && X <= data[2] && Y >= data[1] && Y <= data[3]) {
return 1;
}
return 0;
}
public PayPlayerInArea(playerID, Float:x1, Float:y1, Float:x2, Float:y2, cash)
{
if(IsPlayerConnected(playerID))
{
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerID, X, Y, Z);
if(X >= x1 && X <= x2 && Y >= y1 && Y <= y2)
{
GivePlayerMoney(playerID, cash);
return 1;
}
}
return 0;
}
//------------------------------------------------------------------------------------------------------
public TimeUpdate() {
worldTime++;
worldTime%=24;
SetWorldTime(worldTime);
}
//------------------------------------------------------------------------------------------------------
public PirateShipScoreUpdate()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
PayPlayerInArea(i, 1995.5, 1518.0, 2006.0, 1569.0, 200);
PayPlayerInArea(i, 1516.1332, -1380.5281, 1568.4066, -1336.3019, 200);
PayPlayerInArea(i, -1988.4744, 639.1348, -1917.0579, 715.5820, 200);
// {
// SendClientMessage(i, COLOR_YELLOW, "You earned money for holding pirate ship area.");
// }
}
}
//------------------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------------------
public checkpointUpdate()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i)) {
for(new j=0; j < MAX_POINTS; j++) {
if(isPlayerInArea(i, checkCoords[j])) {
if(playerCheckpoint[i]!=j) {
DisablePlayerCheckpoint(i);
SetPlayerCheckpoint(i, checkpoints[j][0],checkpoints[j][1],checkpoints[j][2],2);
playerCheckpoint[i] = j;
}
} else {
if(playerCheckpoint[i]==j) {
DisablePlayerCheckpoint(i);
playerCheckpoint[i] = 999;
}
}
}
}
}
}
//------------------------------------------------------------------------------------------------------
public PropertyScoreUpdate()
{
new owners[MAX_PROPERTIES];
new payments[MAX_PROPERTIES];
for(new i=0; i < MAX_PROPERTIES; i++)
owners[i]=999;
for(new i=0; i < MAX_PROPERTIES; i++)
{
if(propertyOwner[i] < 999) {
for(new j=0; j < MAX_PROPERTIES; j++) {
if(owners[j]==propertyOwner[i]) {
payments[j]+=propertyEarnings[i];
j = MAX_PROPERTIES;
} else if (owners[j]==999) {
owners[j]=propertyOwner[i];
payments[j]+=propertyEarnings[i];
j = MAX_PROPERTIES;
}
}
}
}
for(new i=0; i < MAX_PROPERTIES; i++) {
if(owners[i] < 999 && IsPlayerConnected(owners[i])) {
new string[256];
GivePlayerMoney(owners[i], payments[i]);
format(string, sizeof(string), "You earned $%d from your properties.", payments[i]);
SendClientMessage(owners[i], COLOR_GREEN, string);
}
}
}
//------------------------------------------------------------------------------------------------------
public SavedUpdate()
{
for(new i = 0; i < MAX_SAVE; i++) {
if(savedInfo[i][3] < 5) {
if(savedInfo[i][3]==4) {
savedInfo[i][0]=savedInfo[i][1]=savedInfo[i][2]=0;
savedNames[i][0]=0;
}
savedInfo[i][3]++;
}
}
}
//------------------------------------------------------------------------------------------------------
public FreeroamRpScoreUpdate()
{
new CashScore;
new name[MAX_PLAYER_NAME];
//new string[256];
for(new i=0; i<MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
GetPlayerName(i, name, sizeof(name));
CashScore = GetPlayerMoney(i);
SetPlayerScore(i, CashScore);
if (CashScore > CashScoreOld)
{
CashScoreOld = CashScore;
//format(string, sizeof(string), "$$$ %s is now in the lead $$$", name);
//SendClientMessageToAll(COLOR_YELLOW, string);
}
}
}
}
//------------------------------------------------------------------------------------------------------
/*public FreeroamRpModeReset()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
SetPlayerScore(i, PocketMoney);
SetPlayerRandomSpawn(i, classid);
}
}
}*/
//------------------------------------------------------------------------------------------------------
public OnPlayerConnect(playerid)
{
new playrname[MAX_PLAYER_NAME];
GameTextForPlayer(playerid,"~w~SA-MP: ~r~San Andreas ~g~Freeroam server",5000,5);
SendPlayerFormattedText(playerid, " ~San Andreas FreeroamRp~", 0);
SendClientMessage(playerid,0x00FF00FF,"type /help for some useful inforamtion");
gActivePlayers[playerid]++;
gLastGaveCash[playerid] = GetTickCount();
playerCheckpoint[playerid]=999;
bank[playerid]=0;
playerGang[playerid]=0;
gangInvite[playerid]=0;
GetPlayerName(playerid, playrname, sizeof(playrname));
for(new i = 0; i < MAX_SAVE; i++) {
if(isStringSame(savedNames[i], playrname, MAX_PLAYER_NAME)) {
GivePlayerMoney(playerid, savedInfo[i][0]);
bank[playerid] = savedInfo[i][1];
bounty[playerid] = savedInfo[i][2];
savedInfo[i][0]=savedInfo[i][1]=savedInfo[i][2]=0;
savedNames[i][0]=0;
for(new j = 0; j < MAX_WEAPONS; j++) {
playerWeapons[playerid][j]=savedWeapons[i][j];
savedWeapons[i][j]=0;
}
SendClientMessage(playerid, COLOR_GREEN, "Your money has been restored.");
}
}
return 1;
}
//------------------------------------------------------------------------------------------------------
public OnPlayerDisconnect(playerid)
{
new playername[MAX_PLAYER_NAME];
gActivePlayers[playerid]--;
for(new i = 0; i < MAX_PROPERTIES; i++) {
if(propertyOwner[i]==playerid) {
propertyOwner[i] = 999;
GivePlayerMoney(playerid, propertyValues[i]);
}
}
//Save temp info for timeouts/crashes
GetPlayerName(playerid, playername, sizeof(playername));
format(savedNames[savePos], MAX_PLAYER_NAME, "%s",playername);
savedInfo[savePos][0] = GetPlayerMoney(playerid);
savedInfo[savePos][1] = bank[playerid];
savedInfo[savePos][2] = bounty[playerid];
savedInfo[savePos][3] = 0;
for(new i = 0; i < MAX_WEAPONS; i++)
savedWeapons[savePos][i]=playerWeapons[playerid][i];
//
savePos++;
if(savePos >= MAX_SAVE)
savePos = 0;
PlayerLeaveGang(playerid);
bounty[playerid] = 0;
for(new i = 0; i < MAX_WEAPONS;i++) {
playerWeapons[playerid][i]=0;
}
}
//------------------------------------------------------------------------------------------------------
public OnPlayerCommandText(playerid, cmdtext[])
{
new string[256];
new playermoney;
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new cmd[256];
new giveplayerid, moneys, idx, weaponid;
cmd = strtok(cmdtext, idx);
//------------------- /help
if(strcmp(cmd, "/help", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN,"San Andreas Freeroam server Help");
SendClientMessage(playerid, COLOR_YELLOW,"You can visit ATMs in convenience stores to bank your money");
SendClientMessage(playerid, COLOR_YELLOW,"Type /commands for a full list of commands, and /gangcommands for a list of gang commands.");
SendClientMessage(playerid, COLOR_YELLOW,"Type /laws to see a list of rules of the server");
SendClientMessage(playerid, COLOR_YELLOW,"Type /admins to see a list of the admins of the server");
SendClientMessage(playerid, COLOR_RED,"AREA 69,MILITARY BOAT AND POLICE STATIONS ARE OF LIMIT PEOPLE FOUND THEIR WILL BE JAILD OR KICKED ON SECOND ATTEMPT.");
return 1;
}
//------------------- /admins
if(strcmp(cmd, "/amins", true) == 0) {
SendClientMessage(playerid, COLOR_YELLOW,"Mototom360, Freelancer, Spawn");
return 1;
}
//------------------- /laws
if(strcmp(cmd, "/laws", true) == 0) {
SendClientMessage(playerid, COLOR_YELLOW,"No carjacking,NO killing,ALLWAYS drive on right side,NO hacking");
return 1;
}
//------------------- /commands
if(strcmp(cmd, "/commands", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN,"Available commands:");
SendClientMessage(playerid, COLOR_YELLOW,"/bank [amount], /withdraw [amount], /balance");
SendClientMessage(playerid, COLOR_YELLOW,"/givecash [playerid] [amount]");
SendClientMessage(playerid, COLOR_YELLOW,"/hitman [playerid] [amount]");
SendClientMessage(playerid, COLOR_YELLOW,"/bounty [playerid]");
SendClientMessage(playerid, COLOR_YELLOW,"/buy, /properties, /properties2, /purchase, /callmycar");
SendClientMessage(playerid, COLOR_YELLOW,"/buyweapon, /weaponist");
SendClientMessage(playerid, COLOR_YELLOW,"/bounties, /gangs");
SendClientMessage(playerid, COLOR_YELLOW,"/lv, /sf, /ls, /chillad, /dive, /atm");
SendClientMessage(playerid, COLOR_YELLOW,"/taxi, /limo, /fire, /911, /ambulance");
return 1;
}
//------------------- /gangcommands
if(strcmp(cmd, "/gangcommands", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN,"Gang commands:");
SendClientMessage(playerid, COLOR_YELLOW,"/gang create [name]");
SendClientMessage(playerid, COLOR_YELLOW,"/gang join");
SendClientMessage(playerid, COLOR_YELLOW,"/gang invite [playerID]");
SendClientMessage(playerid, COLOR_YELLOW,"/gang quit");
SendClientMessage(playerid, COLOR_YELLOW,"/ganginfo [number] (no number given shows your gang's info)");
SendClientMessage(playerid, COLOR_YELLOW,"/gbank [money] /gwithdraw [money] /gbalance");
SendClientMessage(playerid, COLOR_YELLOW,"! (prefix text for gang-chat)");
return 1;
}
//------------------- /fire
if(strcmp(cmdtext, "/fire", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof (pname));
format(string, sizeof(string), " %s ~R~Reported A Fire", pname);
SendClientMessage(playerid, COLOR_GREEN, string); //
GameTextForAll(string ,3000,5);
return 1;}
//------------------- /ambulance
if(strcmp(cmdtext, "/ambulance", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof (pname));
format(string, sizeof(string), " %s ~R~Needs An Ambulance", pname);
SendClientMessage(playerid, COLOR_GREEN, string); //
GameTextForAll(string ,3000,5);
return 1;}
//------------------- /911
if(strcmp(cmdtext, "/911", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof (pname));
format(string, sizeof(string), " %s ~R~Needs Police Assistance", pname);
SendClientMessage(playerid, COLOR_GREEN, string); //
GameTextForAll(string ,3000,5);
return 1;}
//------------------- /limo
if(strcmp(cmdtext, "/limo", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof (pname));
format(string, sizeof(string), " %s ~Y~Needs A Limo", pname);
SendClientMessage(playerid, COLOR_GREEN, string); //
GameTextForAll(string ,3000,5);
return 1;}
//------------------- /taxi
if(strcmp(cmdtext, "/taxi", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof (pname));
format(string, sizeof(string), " %s ~Y~Needs A Taxi", pname);
SendClientMessage(playerid, COLOR_GREEN, string); //
GameTextForAll(string ,3000,5);
return 1;}
//------------------- /chillad
if (strcmp(cmdtext, "/Chillad", true)==0)
{
SetPlayerPos(playerid, -2432.5391,-1620.2317,526.8373);
SetPlayerInterior(playerid, 0);
SendClientMessage(playerid, COLOR_ORANGE, "You are now at the mount chilliad");
return 1;
}
if (strcmp(cmdtext, "/Fly", true)==0)
{
GivePlayerWeapon(playerid, 46, 1);
SetPlayerPos(playerid, -2321.6790,-1684.5330,1500.3648);
GameTextForPlayer(playerid,"I believe, I can fly! ~n~ I believe that I can touch the sky...",10000,4);
return 1;
}
//------------------- /unlock
if (strcmp(cmdtext, "/unlock", true)==0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid,0xFFFF00AA,"You can only unlock the doors as the driver.");
return 1;
}
new i;
for(i=0;i<MAX_PLAYERS;i++)
{
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 0);
}
SendClientMessage(playerid, 0xFFFF00AA, "Vehicle unlocked!");
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1057,pX,pY,pZ);
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "You're not in a vehicle!");
}
return 1;
}
//------------------- /lock
if (strcmp(cmdtext, "/lock", true)==0)
{
if(IsPlayerInAnyVehicle(playerid))
{
new State=GetPlayerState(playerid);
if(State!=PLAYER_STATE_DRIVER)
{
SendClientMessage(playerid,0xFFFF00AA,"You can only lock the doors as the driver.");
return 1;
}
new i;
for(i=0;i<MAX_PLAYERS;i++)
{
if(i != playerid)
{
SetVehicleParamsForPlayer(GetPlayerVehicleID(playerid),i, 0, 1);
}
}
SendClientMessage(playerid, 0xFFFF00AA, "Vehicle locked!");
new Float:pX, Float:pY, Float:pZ;
GetPlayerPos(playerid,pX,pY,pZ);
PlayerPlaySound(playerid,1056,pX,pY,pZ);
}
else
{
SendClientMessage(playerid, 0xFFFF00AA, "You're not in a vehicle!");
}
return 1;
}
//------------------- /dive
if(strcmp(cmdtext, "/dive", true) == 0) {
if(IsPlayerInAnyVehicle(playerid)) {
new Float:X;
new Float:Y;
new Float:Z;
new VehicleID;
GetPlayerPos(playerid, X, Y, Z);
VehicleID = GetPlayerVehicleID(playerid);
SetVehiclePos(VehicleID, X, Y, Z + 800.00);
GivePlayerWeapon(playerid,46,1);
} else {
new Float:X;
new Float:Y;
new Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerPos(playerid, X, Y, Z + 800.00);
GivePlayerWeapon(playerid,46,1);
GameTextForPlayer(playerid, "~w~Don't forget to pull out your parachute :D",8000,5);
}
return 1;
}
//------------------- /purchase
if (strcmp(cmdtext, "/purchase", true)==0) // to set the vehicle that you register to be teleported
{
if (GetPlayerMoney(playerid) < 5000)
{
SendClientMessage(playerid,COLOR_GREEN,"Sorry, you don't have enough money to buy a car.");
}
else
{
if (IsPlayerInAnyVehicle(playerid) == 1)
{
SetVehicleToRespawn(ownedcar[playerid]);
ownedcar[playerid] = GetPlayerVehicleID(playerid);
owner[ownedcar[playerid]] = playerid;
SendClientMessage(playerid,COLOR_YELLOW,"Congragulations! You have purchased a new car.");
GivePlayerMoney(playerid,-5000);
}
else
{
SendClientMessage(playerid,COLOR_YELLOW,"Please get in a vehicle to buy it.");
}
}
return 1;
}
//------------------- /callmycar
if (strcmp(cmdtext, "/callmycar", true)==0)
{
if (ownedcar[playerid] != 0)
{
if (GetPlayerMoney(playerid) < 500)
{
SendClientMessage(playerid,COLOR_YELLOW,"Sorry, you don't have enough money to use the car teleport service.");
}
else
{
new Float:playerpos[4];
GetPlayerPos(playerid,playerpos[0],playerpos[1],playerpos[2]);
GetPlayerFacingAngle(playerid,playerpos[3]);
SetVehicleZAngle(ownedcar[playerid],playerpos[3]+90.0);
SetVehiclePos(ownedcar[playerid],playerpos[0]+3.0*floatsin(-playerpos[3],degrees),playerpos[1]+3.0*floatcos(-playerpos[3],degrees),playerpos[2]+0.5); // This one is cool that I am using trigo functions to set the vehicle just before you.
SendClientMessage(playerid,COLOR_YELLOW,"Thank you for using car teleport service. Your car has came.");
GivePlayerMoney(playerid,-500);
}
}
return 1;
}
//admin cars
if (strcmp(cmdtext, "/admin-lock", true)==0)
{
if(IsPlayerAdmin(playerid) == 1) {
for(new i=1;i<=12;i++) {
for(new j=0;j<MAX_PLAYERS;j++) {
if(IsPlayerConnected(j) && (!IsPlayerAdmin(i))) {
SetVehicleParamsForPlayer(i,j,0,1);
}
}
}
SendClientMessageToAll(0xFFFF00AA, "Admin Vehicles LOCKED");
} else {
SendClientMessage(playerid, 0xFFFF00AA, "You must be an admin to use this feature!");
}
return 1;
}
if (strcmp(cmdtext, "/admin-unlock", true)==0)
{
if(IsPlayerAdmin(playerid)) {
for(new i=1;i<=12;i++) {
for(new j=0;j<MAX_PLAYERS;j++) {
if(IsPlayerConnected(j)) {
SetVehicleParamsForPlayer(i,j,0,0);
}
}
}
SendClientMessageToAll(0xFFFF00AA, "Admin Vehicles UNLOCKED!");
} else {
SendClientMessage(playerid, 0xFFFF00AA, "You must be an admin to use this feature!");
}
return 1;
}
//------------------- /area69
if(strcmp(cmdtext, "/area69", true)==0) {
SetPlayerPos(playerid, 213.6707,1864.7698,13.1406);
SetPlayerFacingAngle(playerid,181.7940);
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~R~Restricted area military only",3000,5);
return 1;}
//------------------- /atm
if(strcmp(cmdtext, "/atm", true)==0) {
SetPlayerPos(playerid, 2188.4519,1991.0585,10.8203);
SetPlayerFacingAngle(playerid,181.7940);
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~W~Welcome to the atm",3000,5);
return 1;}
//------------------- /pol3
if(strcmp(cmdtext, "/pol3", true)==0) {
SetPlayerPos(playerid, 2098.1409,2401.6836,74.5786);
SetPlayerFacingAngle(playerid,181.7940);
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~R~Restricted police only",3000,5);
return 1;}
//------------------- /pol2
if(strcmp(cmdtext, "/pol2", true)==0) {
SetPlayerPos(playerid, 2237.9932,2454.1389,10.8203);
SetPlayerFacingAngle(playerid,181.7940);
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~R~Restricted police only",3000,5);
return 1;}
//------------------- /pol1
if(strcmp(cmdtext, "/pol1", true)==0) {
SetPlayerPos(playerid, -1587.6565,740.5066,-5.2422);
SetPlayerFacingAngle(playerid,181.7940);
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~R~Restricted police only",3000,5);
return 1;}
//------------------- /ls
if(strcmp(cmdtext, "/ls", true)==0) {
SetPlayerPos(playerid, 1680.0398,-2333.1033,13.5469);
SetPlayerFacingAngle(playerid,181.7940);
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~W~Welcome to Los Santos",3000,5);
return 1;}
//------------------- /aircraft
if(strcmp(cmdtext, "/aircraft", true)==0) {
SetPlayerPos(playerid, -1445.3480,505.6172,18.2344);
SetPlayerFacingAngle(playerid,181.7940);
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~R~Restricted area military only",5000,5);
return 1;}
//------------------- /sf
if(strcmp(cmdtext, "/sf", true)==0) {
SetPlayerPos(playerid, -1416.5874,-295.6553,14.1484);
SetPlayerFacingAngle(playerid,181.7940);
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~W~Welcome to San Fierro",3000,5);
return 1;}
//------------------- /lv
if(strcmp(cmdtext, "/lv", true)==0) {
SetPlayerPos(playerid, 1679.5981,1447.7528,10.7742);
SetPlayerFacingAngle(playerid,181.7940);
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid, "~W~Welcome to Las Venturas",3000,5);
return 1;}
//------------------- /bank
if(strcmp(cmd, "/bank", true) == 0 || strcmp(cmd, "/gbank", true) == 0) {
new gang;
if(strcmp(cmd, "/gbank", true) == 0)
gang = 1;
if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != CP_BANK && getCheckpointType(playerid) != CP_BANK_2 && getCheckpointType(playerid) != CP_BANK_3) {
SendClientMessage(playerid, COLOR_YELLOW, "You must be at a bank area to use this. ATMs are located in convenience stores.");
return 1;
}
if(gang && playerGang[playerid]==0) {
SendClientMessage(playerid, COLOR_RED, "You are not in a gang!");
return 1;
}
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /(g)bank [amount]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1) {
SendClientMessage(playerid, COLOR_YELLOW, "Hey what are you trying to pull here.");
return 1;
}
if(GetPlayerMoney(playerid) < moneys) {
moneys = GetPlayerMoney(playerid);
}
GivePlayerMoney(playerid, 0-moneys);
if(gang)
gangBank[playerGang[playerid]]+=moneys;
else
bank[playerid]+=moneys;
if(gang)
format(string, sizeof(string), "You have deposited $%d, your gang's balance is $%d.", moneys, gangBank[playerGang[playerid]]);
else
format(string, sizeof(string), "You have deposited $%d, your current balance is $%d.", moneys, bank[playerid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
//------------------- /withdraw
if(strcmp(cmd, "/withdraw", true) == 0 || strcmp(cmd, "/gwithdraw", true) == 0) {
new gang;
if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != CP_BANK && getCheckpointType(playerid) != CP_BANK_2 && getCheckpointType(playerid) != CP_BANK_3 ) {
SendClientMessage(playerid, COLOR_YELLOW, "You must be at a bank area to use this. ATMs are located in convenience stores.");
return 1;
}
if(strcmp(cmd, "/gwithdraw", true) == 0)
gang = 1;
if(gang && playerGang[playerid]==0) {
SendClientMessage(playerid, COLOR_RED, "You are not in a gang!");
return 1;
}
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /(g)withdraw [amount]");
return 1;
}
moneys = strval(tmp);
if(moneys < 1) {
SendClientMessage(playerid, COLOR_YELLOW, "Hey what are you trying to pull here.");
return 1;
}
if(gang) {
if(moneys > gangBank[playerGang[playerid]])
moneys = gangBank[playerGang[playerid]];
} else {
if(moneys > bank[playerid])
moneys = bank[playerid];
}
GivePlayerMoney(playerid, moneys);
if(gang)
gangBank[playerGang[playerid]] -= moneys;
else
bank[playerid] -= moneys;
if(gang)
format(string, sizeof(string), "You have withdrawn $%d, your gang's balance is $%d.", moneys, gangBank[playerGang[playerid]]);
else
format(string, sizeof(string), "You have withdrawn $%d, your current balance is $%d.", moneys, bank[playerid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
//------------------- /balance
if(strcmp(cmd, "/balance", true) == 0 || strcmp(cmd, "/gbalance", true) == 0) {
new gang;
if(strcmp(cmd, "/gbalance", true) == 0)
gang = 1;
if(IsPlayerInCheckpoint(playerid) == 0 || getCheckpointType(playerid) != CP_BANK && getCheckpointType(playerid) != CP_BANK_2 && getCheckpointType(playerid) != CP_BANK_3) {
SendClientMessage(playerid, COLOR_YELLOW, "You must be at a bank area to use this. ATMs are located in convenience stores.");
return 1;
}
if(gang && playerGang[playerid]==0) {
SendClientMessage(playerid, COLOR_RED, "You are not in a gang!");
return 1;
}
if(gang)
format(string, sizeof(string), "Your gang has $%d in the bank.", gangBank[playerGang[playerid]]);
else
format(string, sizeof(string), "You have $%d in the bank.", bank[playerid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
return 1;
}
//------------------- /givecash
if(strcmp(cmd, "/givecash", true) == 0) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
return 1;
}
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
return 1;
}
moneys = strval(tmp);
//printf("givecash_command: %d %d",giveplayerid,moneys);
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys) {
GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), "You have sent %s (id: %d), $%d.", giveplayer,giveplayerid, moneys);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "You have recieved $%d from %s (id: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
}
else {
SendClientMessage(playerid, COLOR_YELLOW, "Invalid transaction amount.");
}
}
else {
format(string, sizeof(string), "%d is not an active player.", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
//------------------- /hitman
if(strcmp(cmd, "/hitman", true) == 0) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /hitman [playerid] [amount]");
return 1;
}
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /hitman [playerid] [amount]");
return 1;
}
moneys = strval(tmp);
if(moneys > GetPlayerMoney(playerid)) {
SendClientMessage(playerid, COLOR_RED, "You don't have enough money!");
return 1;
}
if(moneys < 1) {
SendClientMessage(playerid, COLOR_YELLOW, "Hey what are you trying to pull here.");
return 1;
}
if(IsPlayerConnected(giveplayerid)==0) {
SendClientMessage(playerid, COLOR_RED, "No such player exists.");
return 1;
}
bounty[giveplayerid]+=moneys;
GivePlayerMoney(playerid, 0-moneys);
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s has had a $%d bounty put on his head from %s (total: $%d).", giveplayer, moneys, sendername, bounty[giveplayerid]);
SendClientMessageToAll(COLOR_ORANGE, string);
format(string, sizeof(string), "You have had a $%d bounty put on you from %s (id: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_RED, string);
return 1;
}
//------------------- /bounty
if(strcmp(cmd, "/bounty", true) == 0) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /bounty [playerid]");
return 1;
}
giveplayerid = strval(tmp);
if(IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Player %s (id: %d) has a $%d bounty on his head.", giveplayer,giveplayerid,bounty[giveplayerid]);
SendClientMessage(playerid, COLOR_YELLOW, string);
} else {
SendClientMessage(playerid, COLOR_RED, "No such player exists!");
}
return 1;
}
//------------------- /bounties
if(strcmp(cmd, "/bounties", true) == 0)
{
// new tmp[256];
new x;
SendClientMessage(playerid, COLOR_GREEN, "Current Bounties:");
for(new i=0; i < MAX_PLAYERS; i++) {
if(IsPlayerConnected(i) && bounty[i] > 0) {
GetPlayerName(i, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "%s%s(%d): $%d", string,giveplayer,i,bounty[i]);
x++;
if(x > 3) {
SendClientMessage(playerid, COLOR_YELLOW, string);
x = 0;
format(string, sizeof(string), "");
} else {
format(string, sizeof(string), "%s, ", string);
}
}
}
if(x <= 3 && x > 0) {
string[strlen(string)-2] = '.';
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
//------------------- /buy
if(strcmp(cmd, "/buy", true) == 0) {
new property=999;
if(IsPlayerInCheckpoint(playerid)) {
switch (playerCheckpoint[playerid]) {
case CP_ALAHAM:{
property = P_ALAHAM;
}
case CP_DIDERSACHS:{
property = P_DIDERSACHS;
}
case CP_BAR:{
property = P_BAR;
}
case CP_HAIRSTUD:{
property = P_HAIRSTUD;
}
case CP_ZIP:{
property = P_ZIP;
}
case CP_BINCO:{
property = P_BINCO;
}
case CP_TATOO:{
property = P_TATOO;
}
case CP_GOLF:{
property = P_GOLF;
}
case CP_WANG:{
property = P_WANG;
}
case CP_HOTEL:{
property = P_HOTEL;
}
case CP_OTTOS:{
property = P_OTTOS;
}
case CP_DRAGON:{
property = P_DRAGON;
}
case CP_CALIGULA:{
property = P_CALIGULA;
}
case CP_SEXSHOP:{
property = P_SEXSHOP;
}
case CP_CATHAY:{
property = P_CATHAY;
}
case CP_VERONA:{
property = P_VERONA;
}
case CP_ZERORC:{
property = P_ZERORC;
}
case CP_JIZZYS:{
property = P_JIZZYS;
}
}
if(property==999) {
SendClientMessage(playerid, COLOR_YELLOW, "You need to be in a property checkpoint to /buy it.");
return 1;
}
// property--;
if(GetPlayerMoney(playerid) < propertyValues[property]) {
SendClientMessage(playerid, COLOR_RED, "You don't have enough money to buy this property.");
return 1;
}
if(propertyOwner[property]==playerid) {
SendClientMessage(playerid, COLOR_RED, "You already own this property.");
return 1;
}
if(propertyOwner[property] < 999) {
GetPlayerName(playerid, giveplayer, sizeof(giveplayer));
GivePlayerMoney(propertyOwner[property], propertyValues[property]);
format (string, sizeof(string), "Your property, the %s, has been bought out by %s (id: %d).",propertyNames[property],giveplayer,playerid);
SendClientMessage(propertyOwner[property], COLOR_RED, string);
}
GivePlayerMoney(playerid, 0-propertyValues[property]);
propertyOwner[property]=playerid;
format(string, sizeof(string), "You have purchased the %s!", propertyNames[property]);
SendClientMessage(playerid, COLOR_GREEN, string);
} else {
SendClientMessage(playerid, COLOR_YELLOW, "You need to be in a property checkpoint to /buy it.");
return 1;
}
return 1;
}
//------------------- /properties
if(strcmp(cmd, "/properties", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN, "Property Owners List 1:");
for(new i = 0; i < 8; i++) {
if(propertyOwner[i] < 999) {
GetPlayerName(propertyOwner[i], giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "%d. %s - %s", i, propertyNames[i], giveplayer);
} else
format(string, sizeof(string), "%d. %s - None", i, propertyNames[i]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
if(strcmp(cmd, "/properties2", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN, "Property Owners List 2:");
for(new i = 9; i < 18; i++) {
if(propertyOwner[i] < 999) {
GetPlayerName(propertyOwner[i], giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "%d. %s - %s", i, propertyNames[i], giveplayer);
} else
format(string, sizeof(string), "%d. %s - None", i, propertyNames[i]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
//------------------- /buyweapon
if(strcmp(cmd, "/buyweapon", true) == 0) {
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /buyweapon [weapon number]");
return 1;
}
weaponid = strval(tmp);
if(IsPlayerInCheckpoint(playerid)==0) {
SendClientMessage(playerid, COLOR_YELLOW, "You need to be in an Ammunation to purchase weapons.");
return 1;
}
if(playerCheckpoint[playerid]!=CP_AMMU && playerCheckpoint[playerid]!=CP_AMMU_2) {
SendClientMessage(playerid, COLOR_YELLOW, "You need to be in an Ammunation to purchase weapons.");
return 1;
}
if(GetPlayerMoney(playerid) < weaponCost[weaponid]) {
SendClientMessage(playerid, COLOR_RED, "You don't have enough money!");
return 1;
}
if(weaponid < 0 || weaponid > MAX_WEAPONS-1){
SendClientMessage(playerid, COLOR_RED, "Invalid weapon number.");
return 1;
}
format (string, sizeof(string), "You purchased 1 %s for when you spawn.",weaponNames[weaponid]);
SendClientMessage(playerid, COLOR_GREEN, string);
GivePlayerWeapon(playerid, weaponIDs[weaponid], weaponAmmo[weaponid]);
playerWeapons[playerid][weaponid]++;
GivePlayerMoney(playerid, 0-weaponCost[weaponid]);
return 1;
}
//------------------- /weaponlist
if(strcmp(cmd, "/weaponlist", true) == 0) {
SendClientMessage(playerid, COLOR_GREEN, "Weapons List:");
for(new i = 0; i < MAX_WEAPONS; i++) {
format (string, sizeof(string), "%d. %s - $%d",i,weaponNames[i],weaponCost[i]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
//------------------- /gang
if(strcmp(cmd, "/gang", true) == 0) {
new tmp[256];
new gangcmd, gangnum;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [create/join/invite/quit] [name/number]");
return 1;
}
giveplayerid = strval(tmp);
if(strcmp(tmp, "create", true)==0)
gangcmd = 1;
else if(strcmp(tmp, "invite", true)==0)
gangcmd = 2;
else if(strcmp(tmp, "join", true)==0)
gangcmd = 3;
else if(strcmp(tmp, "quit", true)==0)
gangcmd = 4;
tmp = strtok(cmdtext, idx);
if(gangcmd < 3 && !strlen(tmp)) {
if(gangcmd==0)
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [create/join/invite/quit] [name/number]");
else if(gangcmd==1)
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [create] [name]");
else if(gangcmd==2)
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gang [invite] [playerID]");
return 1;
}
//Create Gang//
if(gangcmd==1) {
if(playerGang[playerid]>0) {
SendClientMessage(playerid, COLOR_RED, "You are already in a gang!");
return 1;
}
for(new i = 1; i < MAX_GANGS; i++) {
if(gangInfo[i][0]==0) {
//name gang
format(gangNames[i], MAX_GANG_NAME, "%s", tmp);
//Gang exists
gangInfo[i][0]=1;
//There is one member
gangInfo[i][1]=1;
//Gang color is player's color
gangInfo[i][2]=playerColors[playerid];
//Player is the first gang member
gangMembers[i][0] = playerid;
format(string, sizeof(string),"You have created the gang '%s' (id: %d)", gangNames[i], i);
SendClientMessage(playerid, COLOR_GREEN, string);
playerGang[playerid]=i;
return 1;
}
}
return 1;
//Join Gang//
} else if (gangcmd==3) {
gangnum = gangInvite[playerid];
if(playerGang[playerid]>0) {
SendClientMessage(playerid, COLOR_RED, "You are already in a gang!");
return 1;
}
if(gangInvite[playerid]==0) {
SendClientMessage(playerid, COLOR_RED, "You have not been invited to a gang.");
return 1;
}
if(gangInfo[gangnum][0]==0) {
SendClientMessage(playerid, COLOR_RED, "That gang does not exist!");
return 1;
}
if(gangInfo[gangnum][1] < MAX_GANG_MEMBERS) {
new i = gangInfo[gangnum][1];
gangInvite[playerid]=0;
gangMembers[gangnum][i] = playerid;
GetPlayerName(playerid, sendername, MAX_PLAYER_NAME);
for(new j = 0; j < gangInfo[gangnum][1]; j++) {
format(string, sizeof(string),"%s has joined your gang.", sendername);
SendClientMessage(gangMembers[gangnum][j], COLOR_ORANGE, string);
}
gangInfo[gangnum][1]++;
playerGang[playerid] = gangnum;
SetPlayerColor(playerid,gangInfo[gangnum][2]);
format(string, sizeof(string),"You have joined the gang '%s' (id: %d)", gangNames[gangnum], gangnum);
SendClientMessage(playerid, COLOR_GREEN, string);
return 1;
}
SendClientMessage(playerid, COLOR_RED, "That gang is full.");
return 1;
//Invite to Gang//
} else if (gangcmd==2) {
giveplayerid = strval(tmp);
if(playerGang[playerid]==0) {
SendClientMessage(playerid, COLOR_RED, "You are not in a gang!");
return 1;
}
// if(gangMembers[playerGang[playerid]][0]!=playerid) {
// SendClientMessage(playerid, COLOR_RED, "You need to be the gang leader to send an invite.");
// return 1;
// }
if(IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string),"You have sent a gang invite to %s.", giveplayer);
SendClientMessage(playerid, COLOR_GREEN, string);
format(string, sizeof(string),"You have recieved a gang invite from %s to '%s' (id: %d)", sendername, gangNames[playerGang[playerid]],playerGang[playerid]);
SendClientMessage(giveplayerid, COLOR_GREEN, string);
gangInvite[giveplayerid]=playerGang[playerid];
} else
SendClientMessage(playerid, COLOR_RED, "No such player exists!");
//Leave Gang//
} else if (gangcmd==4) {
PlayerLeaveGang(playerid);
}
return 1;
}
//------------------- /ganginfo
if(strcmp(cmd, "/ganginfo", true) == 0) {
new tmp[256];
new gangnum;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp) && playerGang[playerid]==0) {
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ganginfo [number]");
return 1;
} else if (!strlen(tmp))
gangnum = playerGang[playerid];
else
gangnum = strval(tmp);
if(gangInfo[gangnum][0]==0) {
SendClientMessage(playerid, COLOR_RED, "No such gang exists!");
return 1;
}
format(string, sizeof(string),"'%s' Gang Members (id: %d)", gangNames[gangnum], gangnum);
SendClientMessage(playerid, COLOR_GREEN, string);
for(new i = 0; i < gangInfo[gangnum][1]; i++) {
GetPlayerName(gangMembers[gangnum][i], giveplayer, sizeof(giveplayer));
format(string, sizeof(string),"%s (%d)", giveplayer, gangMembers[gangnum][i]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
//------------------- /gangs
if(strcmp(cmd, "/gangs", true) == 0)
{
new x;
SendClientMessage(playerid, COLOR_GREEN, "Current Gangs:");
for(new i=0; i < MAX_GANGS; i++) {
if(gangInfo[i][0]==1) {
format(string, sizeof(string), "%s%s(%d) - %d members", string,gangNames[i],i,gangInfo[i][1]);
x++;
if(x > 2) {
SendClientMessage(playerid, COLOR_YELLOW, string);
x = 0;
format(string, sizeof(string), "");
} else {
format(string, sizeof(string), "%s, ", string);
}
}
}
if(x <= 2 && x > 0) {
string[strlen(string)-2] = '.';
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
return 0;
}
//------------------------------------------------------------------------------------------------------
public OnPlayerText(playerid, text[])
{
if(text[0] == '!') {
if(playerGang[playerid] > 0) {
new gangChat[256];
new senderName[MAX_PLAYER_NAME];
new string[256];
// for(new i = 1; i < strlen(text)+1; i++)
// gangChat[i]=text[i];
strmid(gangChat,text,1,strlen(text));
GetPlayerName(playerid, senderName, sizeof(senderName));
format(string, sizeof(string),"%s: %s", senderName, gangChat);
for(new i = 0; i < gangInfo[playerGang[playerid]][1]; i++) {
SendClientMessage(gangMembers[playerGang[playerid]][i], COLOR_LIGHTBLUE, string);
}
}
return 0;
}
return 1;
}
//------------------------------------------------------------------------------------------------------
public OnPlayerSpawn(playerid)
{
// SetVehicleParamsForPlayer(CAR_MARKER_SKYSCARPER,playerid,1,1);
// SetVehicleParamsForPlayer(CAR_MARKER_STORE,playerid,1,1);
if(GetPlayerMoney(playerid)>=0)
{
GivePlayerMoney(playerid, PocketMoney);
}
SetPlayerInterior(playerid,0);
SetPlayerRandomSpawn(playerid);
for(new i = 0; i < MAX_WEAPONS; i++) {
if(playerWeapons[playerid][i] > 0) {
GivePlayerWeapon(playerid,weaponIDs[i],weaponAmmo[i]*playerWeapons[playerid][i]);
}
}
return 1;
}
public SetPlayerRandomSpawn(playerid)
{
if (iSpawnSet[playerid] == 1)
{
new rand = random(sizeof(gCopPlayerSpawns));
SetPlayerPos(playerid, gCopPlayerSpawns[rand][0], gCopPlayerSpawns[rand][1], gCopPlayerSpawns[rand][2]); // Warp the player
SetPlayerFacingAngle(playerid, 270.0);
}
else if (iSpawnSet[playerid] == 0)
{
new rand = random(sizeof(gRandomPlayerSpawns));
SetPlayerPos(playerid, gRandomPlayerSpawns[rand][0], gRandomPlayerSpawns[rand][1], gRandomPlayerSpawns[rand][2]); // Warp the player
}
return 1;
}
//------------------------------------------------------------------------------------------------------
public OnPlayerDeath(playerid, killerid, reason)
{
new playercash;
new killedplayer[MAX_PLAYER_NAME];
new string[256];
playercash = GetPlayerMoney(playerid);
if(killerid == INVALID_PLAYER_ID)
{
SendDeathMessage(INVALID_PLAYER_ID,playerid,reason);
}
else
{
SendDeathMessage(killerid,playerid,reason);
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
if(bounty[playerid] > 0 && (playerGang[killerid] == 0 || playerGang[playerid] != playerGang[killerid])) {
GetPlayerName(playerid, killedplayer, sizeof(killedplayer));
format(string, sizeof(string), "You earned a bounty of %d for killing %s.", bounty[playerid], killedplayer);
SendClientMessage(killerid, COLOR_GREEN, string);
GivePlayerMoney(killerid, bounty[playerid]);
bounty[playerid] = 0;
}
if(playercash > 0) {
GivePlayerMoney(killerid, playercash);
}
}
if(playercash > 0)
{
GivePlayerMoney(playerid,-3500);
}
return 1;
}
//------------------------------------------------------------------------------------------------------
public OnPlayerEnterCheckpoint(playerid)
{
new string[256];
new ownplayer[MAX_PLAYER_NAME];
switch(getCheckpointType(playerid))
{
case CP_BANK: {
SendClientMessage(playerid, COLOR_YELLOW, "You are at an ATM. To store money use '/bank amount', to withdraw");
SendClientMessage(playerid, COLOR_YELLOW, "money use '/withdraw amount', and '/balance' to see your balance.");
}
case CP_BANK_2: {
SendClientMessage(playerid, COLOR_YELLOW, "You are at an ATM. To store money use '/bank amount', to withdraw");
SendClientMessage(playerid, COLOR_YELLOW, "money use '/withdraw amount', and '/balance' to see your balance.");
}
case CP_BANK_3: {
SendClientMessage(playerid, COLOR_YELLOW, "You are at an ATM. To store money use '/bank amount', to withdraw");
SendClientMessage(playerid, COLOR_YELLOW, "money use '/withdraw amount', and '/balance' to see your balance.");
}
case CP_PIRATE: {
SendClientMessage(playerid, COLOR_YELLOW, "You can hold the Pirate Ship area to gain money.");
}
case CP_SKYSCARPER: {
SendClientMessage(playerid, COLOR_YELLOW, "You can hold the Skyscarper rooftop area to gain money.");
}
case CP_ZOMBOTECH: {
SendClientMessage(playerid, COLOR_YELLOW, "You can hold the Zombotech Corp. lobby area to gain money.");
}
case CP_AMMU: {
SendClientMessage(playerid, COLOR_GREEN, "You can purchase weapons here so that you have them every");
SendClientMessage(playerid, COLOR_GREEN, "time you spawn. You can purchase more than once for more ammo.");
SendClientMessage(playerid, COLOR_YELLOW, "Type /buyweapon [weapon number] and /weaponlist for a list of weapons.");
}
case CP_AMMU_2: {
SendClientMessage(playerid, COLOR_GREEN, "You can purchase weapons here so that you have them every");
SendClientMessage(playerid, COLOR_GREEN, "time you spawn. You can purchase more than once for more ammo.");
SendClientMessage(playerid, COLOR_YELLOW, "Type /buyweapon [weapon number] and /weaponlist for a list of weapons.");
}
/* case CP_DRAGON: {
SendClientMessage(playerid, COLOR_YELLOW, "You can buy the Four Dragons Casino for $75,000 with /buy.");
SendClientMessage(playerid, COLOR_YELLOW, "You will earn $5,000 regularly.");
}
case CP_SEXSHOP: {
SendClientMessage(playerid, COLOR_YELLOW, "You can buy the Sex Shop for $25,000 with /buy.");
SendClientMessage(playerid, COLOR_YELLOW, "You will earn $2,000 regularly.");
}
case CP_BAR: {
SendClientMessage(playerid, COLOR_YELLOW, "You can buy the Shithole Bar for $20,000 with /buy.");
SendClientMessage(playerid, COLOR_YELLOW, "You will earn $1,500 regularly.");
}
case CP_CALIGULA: {
SendClientMessage(playerid, COLOR_YELLOW, "You can buy the Caligula Casino for $100,000 with /buy.");
SendClientMessage(playerid, COLOR_YELLOW, "You will earn $7,000 regularly.");
}
case CP_ZIP: {
SendClientMessage(playerid, COLOR_YELLOW, "You can buy the Zip clothes store for $15,000 with /buy.");
SendClientMessage(playerid, COLOR_YELLOW, "You will earn $1,000 regularly.");
}*/
}
if(getCheckpointType(playerid)>= P_OFFSET) {
format(string, sizeof(string), "You can buy the %s for $%d with /buy.", propertyNames[playerCheckpoint[playerid]-P_OFFSET], propertyValues[playerCheckpoint[playerid]-P_OFFSET]);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "You will earn $%d regularly.", propertyEarnings[playerCheckpoint[playerid]-P_OFFSET]);
SendClientMessage(playerid, COLOR_YELLOW, string);
if(propertyOwner[playerCheckpoint[playerid]-P_OFFSET]<999) {
GetPlayerName(propertyOwner[playerCheckpoint[playerid]-P_OFFSET], ownplayer, sizeof(ownplayer));
format(string, sizeof(string), "This property is currently owned by %s.", ownplayer);
SendClientMessage(playerid, COLOR_RED, string);
}
}
}
//------------------------------------------------------------------------------------------------------
public OnPlayerRequestClass(playerid, classid)
{
if(classid == 0 || classid == 1 || classid == 2 || classid == 3 || classid == 4 || classid == 5 || classid == 6)
{
iSpawnSet[playerid] = 1;
}
else
{
iSpawnSet[playerid] = 0;
}
SetupPlayerForClassSelection(playerid);
return 1;
}
public SetupPlayerForClassSelection(playerid)
{
SetPlayerInterior(playerid,14);
SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
SetPlayerFacingAngle(playerid, 270.0);
SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
}
public GameModeExitFunc()
{
GameModeExit();
}
public OnGameModeInit()
{
SetGameModeText("Freeroam Rp");
ShowPlayerMarkers(1);
ShowNameTags(1);
// Player Class's
AddPlayerClass(280,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
AddPlayerClass(281,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
AddPlayerClass(282,1958.3783,1343.1572,15.3746,270.1425,0,0,24,300,-1,-1);
AddPlayerClass(283,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(284,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(285,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(286,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(287,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(254,1958.3783,1343.1572,15.3746,0.0,0,0,24,300,-1,-1);
AddPlayerClass(255,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(256,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(257,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(258,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(259,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(260,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(261,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(262,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(263,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(264,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(274,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(275,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(276,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(1,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(2,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(290,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(291,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(292,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(293,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(294,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(295,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(296,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(297,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(298,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(299,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(277,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(278,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(279,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(288,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(47,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(48,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(49,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(50,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(51,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(52,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(53,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(54,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(55,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(56,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(57,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(58,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(59,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(60,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(61,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(62,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(63,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(64,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(66,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(67,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(68,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(69,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(70,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(71,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(72,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(73,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(75,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(76,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(78,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(79,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(80,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(81,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(82,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(83,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(84,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(85,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(87,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(88,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(89,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(91,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(92,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(93,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(95,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(96,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(97,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(98,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(99,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(100,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(101,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(102,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(103,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(104,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(105,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(106,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(107,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(108,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(109,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(110,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(111,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(112,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(113,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(114,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(115,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(116,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(117,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(118,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(120,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(121,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(122,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(123,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(124,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(125,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(126,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(127,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(128,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(129,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(131,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(133,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(134,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(135,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(136,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(137,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(138,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(139,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(140,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(141,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(142,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(143,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(144,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(145,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(146,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(147,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(148,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(150,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(151,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(152,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(153,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(154,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(155,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(156,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(157,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(158,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(159,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(160,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(161,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(162,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(163,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(164,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(165,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(166,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(167,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(168,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(169,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(170,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(171,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(172,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(173,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(174,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(175,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(176,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(177,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(178,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(179,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(180,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(181,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(182,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(183,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(184,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(185,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(186,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(187,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(188,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(189,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(190,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(191,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(192,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(193,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(194,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(195,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(196,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(197,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(198,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(199,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(200,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(201,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(202,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(203,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(204,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(205,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(206,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(207,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(209,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(210,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(211,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(212,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(213,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(214,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(215,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(216,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(217,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(218,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(219,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(220,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(221,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(222,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(223,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(224,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(225,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(226,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(227,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(228,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(229,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(230,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(231,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(232,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(233,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(234,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(235,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(236,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(237,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(238,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(239,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(240,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(241,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(242,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(243,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(244,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(245,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(246,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(247,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(248,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(249,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(250,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(251,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(253,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddPlayerClass(0,1958.3783,1343.1572,15.3746,269.1425,0,0,24,300,-1,-1);
AddStaticVehicle(581,-1952.1572,258.3057,35.0679,118.1056,87,1); // 1st bike something 400
AddStaticVehicle(522,-1952.8041,262.8377,35.0468,120.7407,7,79); // nrg 500
AddStaticVehicle(521,-1953.7235,266.2981,35.0422,110.5233,118,118); // fcr 900
AddStaticVehicle(468,-1953.9911,270.1373,35.1358,119.0860,46,46); // dirt bike
AddStaticVehicle(463,-1952.0309,255.1783,35.0155,105.0787,36,36); // freeway
// Car Spawns
//Car Spawns Las Venturas
AddStaticVehicle(548,353.4704,1982.2430,19.2475,52.9589,1,1); // cargo heli
AddStaticVehicle(487,346.1259,1967.4890,17.8174,60.2074,26,3); // maverik
AddStaticVehicle(487,339.1202,1945.7148,17.7020,60.2067,26,3); // maverick
AddStaticVehicle(520,275.7519,1955.9460,18.7180,269.2552,0,0); // hydra
AddStaticVehicle(520,278.7327,1989.5031,18.3330,268.4850,0,0); // hydra
AddStaticVehicle(520,278.5645,2025.5474,18.7106,268.2908,0,0); // hydra
AddStaticVehicle(425,340.1276,1927.7709,18.2124,67.7989,43,0); // hunter
AddStaticVehicle(506,223.6484,1865.5868,12.8450,269.9412,6,6); // super gt
AddStaticVehicle(429,1695.6174,1287.0477,10.5000,180.7585,2,1); // banshee lvap parking area
AddStaticVehicle(429,1679.6306,1297.5044,10.5000,359.3076,3,1); // banshee lvap parking area
AddStaticVehicle(409,1714.2111,1389.9977,10.3661,19.1052,1,1); //lv ap
AddStaticVehicle(409,1724.2988,1500.2258,10.5402,351.2657,1,1); // lvap
AddStaticVehicle(409,2172.6665,1661.5638,10.6202,283.7924,1,1); // limo lv calis
AddStaticVehicle(409,2173.0723,1666.3839,10.6203,274.7438,1,1); // limo lv calis
AddStaticVehicle(409,2174.0593,1696.0752,10.6201,258.0639,1,1); // limo lv calis
AddStaticVehicle(409,2173.8938,1690.6277,10.6193,270.7980,1,1); // limo lv calis
AddStaticVehicle(409,2038.4000,989.2642,10.4717,179.5024,1,1); // limo lv 4d
AddStaticVehicle(409,2038.7544,1030.8610,10.4719,179.5120,1,1); // limo lv 4d
AddStaticVehicle(405,2039.4434,1017.9758,10.5469,178.0563,75,1); // sentinel 4d
AddStaticVehicle(405,2038.9369,1003.0536,10.5469,178.0564,75,1); // sentinel 4d
AddStaticVehicle(422,2142.5386,1006.6237,10.8082,88.3872,83,57); // bobcat next to ammu lv
AddStaticVehicle(422,2162.3687,1022.2087,10.8110,270.4568,83,57); // bobcan next to ammu lv
AddStaticVehicle(461,2142.1326,1021.8297,10.3893,81.9794,36,1); // fast motor next to ammu lv
AddStaticVehicle(461,2163.1770,1009.7770,10.4019,261.0974,43,1); // fast motor next to ammu lv
AddStaticVehicle(461,2187.7354,1979.0115,10.3984,267.3401,79,1); // fast moto lv
AddStaticVehicle(461,2188.0000,1980.4435,10.4062,268.2871,79,1); // fast moto lv
AddStaticVehicle(427,2269.2729,2442.3384,10.9522,176.9351,0,1); // lv enforcer
AddStaticVehicle(427,2256.0542,2478.0481,10.9540,358.9922,0,1); // lv enforcer
AddStaticVehicle(427,2260.3638,2477.6470,10.9521,358.2362,0,1); // lv enforcer
AddStaticVehicle(598,2273.4885,2476.8000,10.5654,359.1584,0,1); // lv police car
AddStaticVehicle(598,2273.2993,2459.4111,10.5673,180.0322,0,1); // lv police car
AddStaticVehicle(598,2260.1638,2443.2319,10.5669,178.1461,0,1); // lv police car
AddStaticVehicle(598,2251.7144,2476.5032,10.5661,0.2429,0,1); // lv police car
AddStaticVehicle(601,2290.6523,2478.4045,10.5791,359.9655,1,1); // swat lv
AddStaticVehicle(601,2290.9829,2442.5815,10.5792,179.5429,1,1); // swat lv
AddStaticVehicle(497,2095.2571,2415.4465,74.7553,202.9445,0,1); // police heli lv
AddStaticVehicle(497,2084.4802,2410.8540,74.7970,203.0845,0,1); // police heli lv
AddStaticVehicle(593,1570.1882,1646.9216,11.2811,182.0284,60,1); // dodo lv
AddStaticVehicle(593,1589.5842,1554.1580,11.2779,18.5130,60,1); // dodo lv
AddStaticVehicle(553,1477.6049,1829.6105,12.1511,180.8126,38,9); // nevada lv
AddStaticVehicle(553,1518.8621,1830.1967,12.1555,180.8142,38,9); // nevada lv
AddStaticVehicle(511,1536.8748,1692.1619,12.1928,130.6713,27,97); // beagle lv
AddStaticVehicle(511,1562.0745,1473.7328,13.2682,130.6714,27,97); // beagle lv
AddStaticVehicle(487,1640.3491,1540.4860,10.9652,0.1816,74,35); // maverick heli lv
AddStaticVehicle(487,1616.6409,1540.4104,10.9792,0.1821,74,35); // maverick heli lv
AddStaticVehicle(487,1654.8475,1540.5315,11.0584,0.1820,74,35); // maevrick heli lv
//Car Spawns San Fierro
AddStaticVehicle(595,-1440.3982,504.2473,0.2767,90.8327,112,20);
AddStaticVehicle(548,-1308.5972,493.3585,19.9070,358.2792,1,1);
AddStaticVehicle(425,-1459.1454,502.0413,18.8464,0.9856,43,0);
AddStaticVehicle(476,-1439.7610,494.2462,18.9372,0.0083,77,87);
AddStaticVehicle(520,-1424.9409,495.0192,18.9562,0.0015,0,0);
AddStaticVehicle(520,-1414.2035,494.7303,18.9565,358.6341,0,0);
AddStaticVehicle(520,-1403.7982,494.8017,18.9527,1.1315,0,0);
AddStaticVehicle(487,-1292.3912,492.9361,18.4110,0.0011,26,3);
AddStaticVehicle(487,-1281.2070,493.1939,18.4110,359.9529,12,39);
AddStaticVehicle(485,-1352.5498,500.4186,17.8935,90.6461,1,78);
AddStaticVehicle(470,-1477.1927,456.3334,7.1789,357.2957,43,0);
AddStaticVehicle(470,-1472.7213,456.6737,7.1735,357.4581,43,0);
AddStaticVehicle(432,-1438.1643,458.4050,7.1959,360.0000,43,0);
AddStaticVehicle(432,-1425.6365,457.9330,7.1862,359.8635,43,0);
AddStaticVehicle(437,-1531.5389,484.0515,7.3145,266.3825,105,20);
AddStaticVehicle(506,-1388.2129,-350.7858,13.7800,16.5416,3,3); // super gt sfap
AddStaticVehicle(506,-1414.9252,-303.7461,13.7706,39.4561,7,7); // super gt 2 sfap
AddStaticVehicle(506,1695.5342,1306.7169,10.5247,177.3274,52,52); // super gt lvap carpark
AddStaticVehicle(506,1673.0757,1316.9115,10.5247,358.5629,52,52); // super gt lvap carpark
AddStaticVehicle(451,-1439.4822,-284.3539,13.7762,55.9819,75,75); //turismo sfap
AddStaticVehicle(420,-1424.5520,-294.8083,13.9872,49.0305,36,36); // taxi sfap
AddStaticVehicle(420,-1406.9434,-312.8687,13.9833,38.3706,1,1); // taxi sfap
AddStaticVehicle(420,1707.8154,1418.8939,10.4809,9.4751,0,0); // taxi lvap
AddStaticVehicle(420,1707.1162,1433.7953,10.5343,359.7365,0,0); // taxi lvap
AddStaticVehicle(420,1710.1377,1452.3088,10.6763,343.3719,0,0); // taxi lvap
AddStaticVehicle(437,-1398.2220,-327.3619,14.2034,28.9068,105,20); // coach sfap
AddStaticVehicle(437,1712.9202,1464.3580,10.8806,340.1207,98,20); // coach lvap
AddStaticVehicle(437,1710.5824,1402.1375,10.7021,11.6585,98,20); // coach lv ap
AddStaticVehicle(560,-1446.7507,-279.3604,13.7761,64.5073,56,29); // sultan sfap
AddStaticVehicle(560,-1457.2251,-275.4287,13.7725,70.5613,21,1); // sultan sfap
AddStaticVehicle(560,-2592.2236,199.1215,4.8082,86.1853,56,29); // sultan mod shop
AddStaticVehicle(560,-2589.9155,209.6967,8.2382,104.9454,56,29); // sultan mod shop
AddStaticVehicle(560,-2604.4824,206.5577,5.8634,99.3019,56,29); // sultan mod shop
AddStaticVehicle(541,-1949.3174,260.1537,40.6752,113.7290,2,1); // bullet inside wangs
AddStaticVehicle(587,-1991.4977,245.6279,34.8993,63.8969,53,1); // euros wangs
AddStaticVehicle(587,-1991.4021,252.6939,34.8966,60.1346,53,1); // euros wangs
AddStaticVehicle(587,-1990.6750,259.3485,34.9026,61.4613,53,1); // euros wangs
AddStaticVehicle(587,-1989.8176,267.4250,34.9011,57.1701,53,1); // euros wangs
AddStaticVehicle(601,-1579.6873,749.7564,-5.4834,359.3906,1,1); // sf police swat
AddStaticVehicle(601,-1584.0530,750.5629,-5.4834,357.3619,1,1); // sf police swat
AddStaticVehicle(597,-1616.5988,732.5768,-5.4741,181.9934,0,1); // sf police car
AddStaticVehicle(597,-1611.9893,732.8204,-5.4740,175.3062,0,1); // sf police car
AddStaticVehicle(597,-1600.8342,750.3016,-5.4755,358.2693,0,1); // sf police car
AddStaticVehicle(427,-1596.7498,749.6959,-5.1108,358.3807,0,1); // sf police van
AddStaticVehicle(427,-1573.0487,734.3610,-5.1102,269.9632,0,1); // sf police van
AddStaticVehicle(593,-1345.9252,-271.4911,14.6022,334.0021,60,1); // dodo sf
AddStaticVehicle(593,-1353.8943,-244.5542,14.4275,334.0042,60,1); // dodo sf
AddStaticVehicle(593,-1385.0016,-233.7372,14.4677,334.0021,60,1); // dodo sf
AddStaticVehicle(563,-1260.0510,498.2272,18.9391,359.5444,1,6); // rain dancer military
AddStaticVehicle(447,-1679.5422,705.4398,30.6144,159.5266,75,2); // police sea sparrow
//boats
AddStaticVehicle(493,720.9388,-1700.4620,-0.5290,35.6348,-1,-1);
AddStaticVehicle(493,2355.2488,-2514.3970,-0.5287,158.8268,-1,-1);
AddStaticVehicle(493,2364.3354,517.6652,-0.4520,89.2890,-1,-1);
AddStaticVehicle(493,-1476.2301,691.7451,-0.4462,356.6588,-1,-1);
//+ v0.3 added
AddStaticVehicle(420,-1393.3545,-336.3529,13.8505,24.0909,-1,-1); // car taxi
AddStaticVehicle(420,1660.3115,-2314.4729,13.2351,90.8312,-1,-1);
AddStaticVehicle(405,1127.3945,-940.5890,42.5764,92.2462,-1,-1);
//+ v0.4 added
//+ v0.5 added
AddStaticVehicle(402,-2248.0791,336.6792,34.3907,6.0747,-1,-1);
//PICKUPS
AddStaticPickup(371,2,-772.5848,2423.1196,157.0880); // sse_para
AddStaticPickup(371,2,-809.8860,2429.0366,156.9699); // sse_para
AddStaticPickup(371,2,-226.1909,1394.2926,172.4141); // bigear_para
AddStaticPickup(371,2,-224.0347,1394.2474,172.4141); // bigear_para
AddStaticPickup(371,2,2051.6555,2407.1292,150.4766); // emerald_para
AddStaticPickup(371,2,-1753.7095,885.9033,295.8750); // para_pointy_build
AddStaticPickup(371,2,-1520.9993,674.6617,139.2734); // bridge1_para
AddStaticPickup(371,2,-1518.5388,677.5485,139.2734); // bringe1_para
AddStaticPickup(371,2,-1532.2827,688.2155,133.0514); // bridge1_para
AddStaticPickup(371,15,-2667.5481,1933.8230,181.5822); // bridge2_para2
AddStaticPickup(371,15,-2667.5481,1933.8230,181.5822); // bridge2_para2
AddStaticPickup(371,2,-2311.0059,-1572.5967,479.9083); // para_chill
AddStaticPickup(371,2,-2264.2344,-1684.8676,481.1554); // parachute
AddStaticPickup(371,2,-2230.6846,-1743.9265,480.8720); // parachute
AddStaticPickup(371,2,-2255.2649,-1749.4268,487.5909); // parachute
AddStaticPickup(371,2,-2432.3979,-1620.2229,526.8325); // parachute
AddStaticPickup(371,2,1524.3611,-1358.8881,330.0000); // para_1
AddStaticPickup(371,2,1537.5822,-1338.6387,329.9711); // para_2
AddStaticPickup(371,2,1562.1649,-1346.8159,329.9346); // para_3
AddStaticPickup(371,2,1557.6104,-1369.5931,329.8975); // para_4
AddStaticPickup(371,2,1541.5498,-1364.5927,326.2109); // para_5
AddStaticPickup(1242,2,-1341.9568,495.9735,11.1953); //armour military
AddStaticPickup(348,2,-1343.3424,495.8264,11.2027); //desert eagle military
AddStaticPickup(351,2,-1345.4238,495.8698,11.2027); //combat shotgun military
AddStaticPickup(356,2,-1347.0498,495.9303,11.2027); //m4 military
AddStaticPickup(1242,2,2100.1155,2425.7422,74.5786); //armor lv polic
AddStaticPickup(351,2,2098.3713,2425.8376,74.5786); //combat lv polie
AddStaticPickup(353,2,2096.3398,2425.9490,74.5786); //mp5 lv police
AddStaticPickup(1240,2,2093.8225,2426.0862,74.5786); //health lv police
AddStaticPickup(1242,2,-1601.4745,730.8135,-4.9063); //armor sf police
AddStaticPickup(351,2,-1599.5947,730.9717,-4.9063); //combat sf police
AddStaticPickup(353,2,-1597.5498,730.9078,-4.9063); //mp5 sf police
AddStaticPickup(1240,2,-1595.2092,730.8868,-4.9063); //health sf police
AddStaticPickup(1242,2,248.6880,1858.8037,14.0840); //area 69
AddStaticPickup(351,2,247.2969,1859.0923,14.0840); //area69
AddStaticPickup(353,2,245.2721,1858.9653,14.0840); //area 69
AddStaticPickup(1240,2,242.7855,1858.9283,14.0840); //area 69
SetTimer("FreeroamRpScoreUpdate", 1000, 1);
SetTimer("checkpointUpdate", 1100, 1);
SetTimer("PirateShipScoreUpdate", 2001, 1);
SetTimer("PropertyScoreUpdate", 40005, 1);
SetTimer("GambleUpdate", 5013, 1);
SetTimer("SavedUpdate",60017, 1);
SetTimer("TimeUpdate",60009, 1);
//SetTimer("GameModeExitFunc", gRoundTime, 0);
return 1;
}
public SendPlayerFormattedText(playerid, const str[], define)
{
new tmpbuf[256];
format(tmpbuf, sizeof(tmpbuf), str, define);
SendClientMessage(playerid, 0xFFFF00AA, tmpbuf);
}
public SendAllFormattedText(playerid, const str[], define)
{
new tmpbuf[256];
format(tmpbuf, sizeof(tmpbuf), str, define);
SendClientMessageToAll(0xFFFF00AA, tmpbuf);
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
isStringSame(const string1[], const string2[], len) {
for(new i = 0; i < len; i++) {
if(string1[i]!=string2[i])
return 0;
if(string1[i] == 0 || string1[i] == '\n')
return 1;
}
return 1;
}