diff --git a/filterscripts/objects.pwn b/filterscripts/objects.pwn index 0c41690..bf4bbe4 100644 --- a/filterscripts/objects.pwn +++ b/filterscripts/objects.pwn @@ -1383,6 +1383,85 @@ public OnFilterScriptInit() CreateDynamicObject( 3934, -1831.981445, 1321.998657, 17.360620, 0.000000, 0.000000, 23.400024 ); CreateDynamicObject( 8615, -1823.221801, 1325.881103, 15.629409, 0.299998, 0.000000, 113.400024 ); SetDynamicObjectMaterial( CreateDynamicObject( 18981, -1832.400146, 1313.182128, 16.870643, 0.000000, 90.000000, -66.900085 ), 0, 11631, "mp_ranchcut", "CJ_SLATEDWOOD", 0 ); + + // Kesh Business + CreateDynamicObject( 1501, -1126.126342, -547.141845, 29.383815, 0.000000, 0.000000, 61.600139 ); + CreateDynamicObject( 1501, -1126.136596, -547.181762, 29.383815, 0.000000, 0.000000, 61.600139 ); + SetDynamicObjectMaterial( CreateDynamicObject( 16146, -1117.037353, -547.089355, 32.341876, 0.000000, 0.000000, -28.499988 ), 13, 13012, "sw_apartflat5", "sw_lastdrop", 0 ); + CreateDynamicObject( 1687, -1113.725830, -550.236328, 31.083549, 0.000000, 0.000000, 58.899997 ); + CreateDynamicObject( 19435, -1125.586425, -546.550292, 30.188312, 0.000000, 0.000000, -29.500005 ); + CreateDynamicObject( 3292, -1109.666259, -527.787109, 29.627914, 0.000000, 0.000000, -34.999977 ); + CreateDynamicObject( 9625, -1100.072753, -522.370727, 32.606037, 0.000000, 0.000000, 54.999988 ); + CreateDynamicObject( 9247, -1131.209106, -568.861206, 35.918636, 0.000000, 0.000000, 155.500030 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -1132.304199, -572.634765, 27.851921, 0.000000, 0.000000, 63.499942 ), 0, 10789, "xenon_sfse", "ws_plasterwall2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19327, -1134.967041, -563.794860, 32.825870, 0.000000, 0.000000, -114.599784 ), 0, 13012, "sw_apartflat5", "sw_lastdrop", 0 ); + CreateDynamicObject( 11461, -1122.066650, -575.257202, 28.692623, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 9247, -1131.209106, -568.861206, 35.918636, 0.000000, 0.000000, 155.500030 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, -1132.304199, -572.634765, 27.851921, 0.000000, 0.000000, 63.499942 ), 0, 10789, "xenon_sfse", "ws_plasterwall2", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19327, -1134.967041, -563.794860, 32.825870, 0.000000, 0.000000, -114.599784 ), 0, 13012, "sw_apartflat5", "sw_lastdrop", 0 ); + CreateDynamicObject( 11461, -1122.066650, -575.257202, 28.692623, 0.000000, 0.000000, 0.000000 ); + + // Ashley gold map + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1763.968505, 1082.755859, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1762.978637, 1082.755859, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1753.697265, 1082.755859, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1754.697387, 1082.755859, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1754.805908, 1082.757812, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1762.856933, 1082.757812, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -1757.804687, 1083.812866, 48.725296, 90.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -1759.863891, 1083.814819, 48.727294, 90.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1755.810424, 1088.310058, 35.875301, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1761.861694, 1088.310058, 35.875301, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 638, -1761.996337, 1085.463012, 45.135364, 0.000000, 0.000000, 180.000000 ); + CreateDynamicObject( 638, -1755.956542, 1089.494628, 45.135364, 0.000000, 0.000000, 0.000000 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -1758.416748, 1082.750244, 50.735237, 0.000000, 0.000000, 0.000000 ), 0, 8839, "vgsecarshow", "lightred2_32", -4368 ); + CreateDynamicObject( 869, -1757.423828, 1086.880371, 49.629039, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 869, -1760.235595, 1086.880371, 49.629039, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 869, -1758.654296, 1084.409179, 49.629039, 0.000000, 0.000000, 0.000000 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, -1758.978393, 1077.856811, 45.867324, 0.000000, 0.000000, 0.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, -1758.837280, 1088.335815, 41.965347, 0.000000, 0.000000, 0.000000 ), 0, 8463, "vgseland", "triadcarpet2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, -1757.816284, 1085.324951, 41.969345, 0.000000, 0.000000, 0.000000 ), 0, 8463, "vgseland", "triadcarpet2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, -1759.867309, 1085.324951, 41.971343, 0.000000, 0.000000, 0.000000 ), 0, 8463, "vgseland", "triadcarpet2", 0 ); + CreateDynamicObject( 638, -1755.686279, 1085.442993, 45.135364, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 638, -1761.737182, 1089.484619, 45.135364, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 1557, -1760.303100, 1082.796630, 44.455371, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 1557, -1757.282714, 1082.796630, 44.455371, 0.000000, 0.000000, 180.000000 ); + CreateDynamicObject( 3525, -1760.744873, 1082.992553, 46.025306, 0.000000, 0.000000, 180.000000 ); + CreateDynamicObject( 3525, -1756.904296, 1082.992553, 46.025306, 0.000000, 0.000000, 180.000000 ); + CreateDynamicObject( 18651, -1755.693115, 1085.396118, 44.725318, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 18651, -1762.033813, 1085.396118, 44.725318, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 2745, -1763.447631, 1083.705566, 45.655284, 0.000000, 0.000000, 180.000000 ); + CreateDynamicObject( 2745, -1754.235961, 1083.705566, 45.655284, 0.000000, 0.000000, 180.000000 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1763.968505, 1082.755859, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1762.978637, 1082.755859, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1753.697265, 1082.755859, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1754.697387, 1082.755859, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1754.805908, 1082.757812, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1762.856933, 1082.757812, 39.715270, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -1757.804687, 1083.812866, 48.725296, 90.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -1759.863891, 1083.814819, 48.727294, 90.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1755.810424, 1088.310058, 35.875301, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -1761.861694, 1088.310058, 35.875301, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); + CreateDynamicObject( 638, -1761.996337, 1085.463012, 45.135364, 0.000000, 0.000000, 180.000000 ); + CreateDynamicObject( 638, -1755.956542, 1089.494628, 45.135364, 0.000000, 0.000000, 0.000000 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -1758.416748, 1082.750244, 50.735237, 0.000000, 0.000000, 0.000000 ), 0, 8839, "vgsecarshow", "lightred2_32", -4368 ); + CreateDynamicObject( 869, -1757.423828, 1086.880371, 49.629039, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 869, -1760.235595, 1086.880371, 49.629039, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 869, -1758.654296, 1084.409179, 49.629039, 0.000000, 0.000000, 0.000000 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, -1758.978393, 1077.856811, 45.867324, 0.000000, 0.000000, 0.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, -1758.837280, 1088.335815, 41.965347, 0.000000, 0.000000, 0.000000 ), 0, 8463, "vgseland", "triadcarpet2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, -1757.816284, 1085.324951, 41.969345, 0.000000, 0.000000, 0.000000 ), 0, 8463, "vgseland", "triadcarpet2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18764, -1759.867309, 1085.324951, 41.971343, 0.000000, 0.000000, 0.000000 ), 0, 8463, "vgseland", "triadcarpet2", 0 ); + CreateDynamicObject( 638, -1755.686279, 1085.442993, 45.135364, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 638, -1761.737182, 1089.484619, 45.135364, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 1557, -1760.303100, 1082.796630, 44.455371, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 1557, -1757.282714, 1082.796630, 44.455371, 0.000000, 0.000000, 180.000000 ); + CreateDynamicObject( 3525, -1760.744873, 1082.992553, 46.025306, 0.000000, 0.000000, 180.000000 ); + CreateDynamicObject( 3525, -1756.904296, 1082.992553, 46.025306, 0.000000, 0.000000, 180.000000 ); + CreateDynamicObject( 18651, -1755.693115, 1085.396118, 44.725318, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 18651, -1762.033813, 1085.396118, 44.725318, 0.000000, 0.000000, 0.000000 ); + CreateDynamicObject( 2745, -1763.447631, 1083.705566, 45.655284, 0.000000, 0.000000, 180.000000 ); + CreateDynamicObject( 2745, -1754.235961, 1083.705566, 45.655284, 0.000000, 0.000000, 180.000000 ); return 1; } diff --git a/gamemodes/sf-cnr.pwn b/gamemodes/sf-cnr.pwn index d4a7301..b0482f6 100644 --- a/gamemodes/sf-cnr.pwn +++ b/gamemodes/sf-cnr.pwn @@ -13,8 +13,7 @@ */ #pragma dynamic 7200000 - -#define DEBUG_MODE +//#define DEBUG_MODE /* ** SA-MP Includes ** */ #include < a_samp > @@ -153,7 +152,7 @@ new bool: False = false, szNormalString[ 144 ]; #define SendClientMessageToFireman(%1,%2,%3)\ do{foreach(new fI : Player){if (p_Class[fI]==CLASS_FIREMAN)format(szNormalString,sizeof(szNormalString),(%2),%3),SendClientMessage(fI,(%1),szNormalString);}}while(False) #define SendClientMessageToVips(%1,%2,%3)\ - do{foreach(new fI : Player){if (p_VIPLevel[fI]>=1)format(szNormalString,sizeof(szNormalString),(%2),%3),SendClientMessage(fI,(%1),szNormalString);}}while(False) + do{foreach(new fI : Player){if (p_VIPLevel[fI]>=VIP_REGULAR)format(szNormalString,sizeof(szNormalString),(%2),%3),SendClientMessage(fI,(%1),szNormalString);}}while(False) #define SendClientMessageToAmbulance(%1,%2,%3)\ do{foreach(new fI : Player){if (p_Class[fI]==CLASS_MEDIC)format(szNormalString,sizeof(szNormalString),(%2),%3),SendClientMessage(fI,(%1),szNormalString);}}while(False) #define SendClientMessageToPaintball(%0,%1,%2,%3)\ @@ -166,7 +165,7 @@ new bool: False = false, szNormalString[ 144 ]; #define CreateBillboard(%0,%1,%2,%3,%4) SetDynamicObjectMaterialText(CreateDynamicObject(7246,%1,%2,%3,0,0,%4),0,(%0),120,"Arial",24,0,-1,-16777216,1) /* ** Configuration ** */ -#define FILE_BUILD "v10.10.32" +#define FILE_BUILD "v11.0.0" #define SERVER_NAME "San Fierro Cops And Robbers (0.3.7)" #define SERVER_WEBSITE "www.irresistiblegaming.com" #define SERVER_IP "192.169.82.202:7777" @@ -195,6 +194,12 @@ new bool: False = false, szNormalString[ 144 ]; #define LANGUAGE_BA ( 2 ) #define LANGUAGE_PH ( 3 ) +#define VIP_REGULAR ( 1 ) +#define VIP_BRONZE ( 2 ) +#define VIP_GOLD ( 3 ) +#define VIP_PLATINUM ( 4 ) +#define VIP_DIAMOND ( 5 ) + const Float: default_X = -2242.152, Float: default_Y = 759.0619, @@ -385,9 +390,9 @@ const #define DIALOG_WEAPON_LOCKER 125 + 1000 #define DIALOG_WEAPON_LOCKER_BUY 126 + 1000 #define DIALOG_FEEDBACK 127 + 1000 -#define DIALOG_MAP_TAX 128 + 1000 -#define DIALOG_MAP_TAX_PAY 129 + 1000 -#define DIALOG_MAP_TAX_TRANSFER 130 + 1000 +#define DIALOG_IC_MARKET_2 128 + 1000 +// #define DIALOG_MAP_TAX_PAY 129 + 1000 +// #define DIALOG_MAP_TAX_TRANSFER 130 + 1000 #define DIALOG_ACC_GUARD 131 + 1000 #define DIALOG_ACC_GUARD_EMAIL 132 + 1000 #define DIALOG_ACC_GUARD_MODE 133 + 1000 @@ -406,6 +411,7 @@ const #define DIALOG_BUSINESS_NAME 146 + 1000 #define DIALOG_BUSINESS_ADD_MEMBER 147 + 1000 #define DIALOG_BUSINESS_MEMBERS 148 + 1000 +#define DIALOG_BUSINESS_WITHDRAW 149 + 1000 /* ** Progress Bars ** */ #define PROGRESS_CRACKING 0 @@ -2936,22 +2942,6 @@ new Iterator:WeaponLockers< MAX_WEAPON_LOCKERS > ; -/* ** Mapping Tax ** */ -#define MAX_MAPPING ( 5 ) -#define IC_CASH_VALUE ( 17500.0 ) - -enum E_MAPPING_DATA -{ - E_SQL_ID, E_ACCOUNT_ID, E_RENEWAL_TIMESTAMP, - Text3D: E_LABEL, E_OBJECTS, Float: E_COST, - E_DESCRIPTION[ 32 ] -}; - -new - g_mappingData [ MAX_MAPPING ] [ E_MAPPING_DATA ], - Iterator:Mapping< MAX_MAPPING > -; - /* ** Security System ** */ #define SECURITY_MODE_MILD ( 0 ) #define SECURITY_MODE_PARANOID ( 1 ) @@ -3108,7 +3098,6 @@ new #define BUSINESS_METH ( 1 ) #define BUSINESS_COKE ( 2 ) -#define MAX_STOCK ( 30 ) #define MAX_WEED_AMOUNT ( 30 ) #define MAX_METH_AMOUNT ( 20 ) #define MAX_COKE_AMOUNT ( 10 ) @@ -3123,9 +3112,11 @@ enum E_BUSINESS_DATA E_SUPPLIES, E_PRODUCT, Text3D: E_PROD_LABEL, E_EQUIPMENT_LVL, E_STAFF_LVL, E_PROD_TIMESTAMP, + E_BANK, + E_EXPORT_CP[ MAX_DROPS ], E_EXPORT_ICON[ MAX_DROPS ], E_EXPORT_INDEX[ MAX_DROPS ], - E_EXPORT_VALUE, E_EXPORT_CIRCLE[ MAX_DROPS ], - E_EXPORT_CITY, bool: E_EXPORTED[ MAX_DROPS ], + E_EXPORT_VALUE, E_EXPORT_CIRCLE[ MAX_DROPS ], E_EXPORT_STARTED, + E_EXPORT_CITY, bool: E_EXPORTED[ MAX_DROPS ], E_EXPORTED_AMOUNT, Float: E_X, Float: E_Y, Float: E_Z, E_ENTER_CP, E_EXIT_CP, E_VEHICLE_DECOR, @@ -3137,14 +3128,14 @@ enum E_BUSINESS_INT_DATA E_NAME[ 5 ], Float: E_X, Float: E_Y, Float: E_Z, Float: E_PROD_X, Float: E_PROD_Y, Float: E_PROD_Z, - E_COST_PRICE, E_PRODUCTION_TIME, E_MAX_SUPPLIES, + E_COST_PRICE, E_PRODUCTION_TIME, E_MAX_SUPPLIES }; new g_businessInteriorData [ 3 ] [ E_BUSINESS_INT_DATA ] = { - { "Weed", -1719.1877, -1377.3049, 5874.8721, -1734.094, -1374.4567, 5874.1475, 10000, 4, MAX_WEED_AMOUNT }, // 10 * 30 = 300 - { "Meth", 2040.54810, 1011.41470, 1513.2777, 2029.2456, 1003.55200, 1510.2416, 18000, 5, MAX_METH_AMOUNT }, // 25 * 20 = 450 + { "Weed", -1719.1877, -1377.3049, 5874.8721, -1734.094, -1374.4567, 5874.1475, 10000, 10, MAX_WEED_AMOUNT }, // 10 * 30 = 300 + { "Meth", 2040.54810, 1011.41470, 1513.2777, 2029.2456, 1003.55200, 1510.2416, 18000, 8, MAX_METH_AMOUNT }, // 25 * 20 = 450 { "Coke", 2566.50070, -1273.2887, 1143.7203, 2558.5261, -1290.6298, 1143.7242, 50000, 6, MAX_COKE_AMOUNT } // 50 * 10 = 750 }, Float: g_roadBusinessExportData[ 3 ] [ 20 ] [ 3 ] = @@ -3180,12 +3171,11 @@ new { // SF { - // TODO - { 2473.6917, -1692.1799, 13.0918 }, { 2299.9851, -1796.2080, 13.1327 }, { 2185.0979, -1669.2697, 14.1983 }, { 2087.7139, -1569.9736, 12.7890 }, - { 2352.3740, -1159.1722, 27.2014 }, { 1027.1260, -1364.0104, 13.4350 }, { 369.96310, -2043.9053, 7.54070 }, { 1449.2119, -1842.7052, 13.4189 }, - { 1859.6608, -1855.0867, 13.4456 }, { 1924.1621, -2124.3977, 13.4511 }, { 2107.5293, -2416.4065, 13.4130 }, { 2174.3906, -2265.9956, 13.2424 }, - { 2780.3481, -2494.4780, 13.5250 }, { 2457.3801, -1969.2207, 13.3801 }, { 1826.3085, -1125.9072, 23.8518 }, { 973.43920, -1257.8624, 16.6373 }, - { 1344.5089, -1752.9572, 13.0808 }, { 1315.9122, -918.28160, 37.7431 }, { 995.74950, -921.07030, 41.8990 }, { 659.64170, -1417.0704, 13.5658 } + { -2031.5576, -32.97860, 56.82640 }, { -2150.1116, -251.4760, 68.89420 }, { -2550.3674, 64.282200, 26.21430 }, { -2786.2114, 784.57640, 59.61730 }, + { -2632.8689, 1417.7777, 24.83170 }, { -1756.2307, 880.89720, 308.5063 }, { -1466.2355, 920.85000, 29.97480 }, { -1538.2887, 86.039400, 17.75020 }, + { -1854.8644, -153.0657, 22.35140 }, { -2522.3586, -654.4024, 148.2918 }, { -2676.4792, 250.41090, 15.21360 }, { -2476.1414, 785.41940, 39.39130 }, + { -1421.1711, -559.8674, 14.31970 }, { -1944.4896, -1035.725, 53.46550 }, { -1983.7100, 751.80910, 86.09910 }, { -1870.0659, 970.64580, 49.99290 }, + { -1864.6000, 807.59730, 112.7313 }, { -1778.8990, 574.79860, 235.0670 }, { -2232.3110, 133.42360, 58.18100 }, { -1766.3091, 1018.4214, 97.88540 } }, // LV @@ -3207,7 +3197,7 @@ new } }, g_businessData [ MAX_BUSINESSES ] [ E_BUSINESS_DATA ], - g_isBusinessVehicle [ MAX_VEHICLES ] = { INVALID_VEHICLE_ID, ... }, + g_isBusinessVehicle [ MAX_VEHICLES ] = { -1, ... }, g_businessVehicle [ MAX_BUSINESSES ] = { INVALID_VEHICLE_ID, ... }, Iterator:business ; @@ -3277,7 +3267,6 @@ new p_PmResponder [ MAX_PLAYERS ] = { INVALID_PLAYER_ID, ... }, bool: justConnected [ MAX_PLAYERS char ], p_BailOfferer [ MAX_PLAYERS ] = { INVALID_PLAYER_ID, ... }, - p_SearchingVehicle [ MAX_PLAYERS ] = { 0xFFFF, ... }, p_DamageTDTimer [ MAX_PLAYERS ] = { -1, ... }, Text3D: p_InfoLabel [ MAX_PLAYERS ] = { Text3D: INVALID_3DTEXT_ID, ... }, p_InfoLabelString [ MAX_PLAYERS ] [ 32 ], @@ -3403,7 +3392,6 @@ new p_UsingRobberySafe [ MAX_PLAYERS ] = { -1, ... }, bool: p_CancelProgress [ MAX_PLAYERS char ], p_LumberjackMapIcon [ MAX_PLAYERS ] = { 0xFFFF, ... }, - p_CarTrackerMapIcon [ MAX_PLAYERS ] = { 0xFFFF, ... }, p_PawnStoreMapIcon [ MAX_PLAYERS ] = { 0xFFFF, ... }, p_SpectateWeapons [ MAX_PLAYERS ] [ 13 ] [ 2 ], bool: p_LeftCuffed [ MAX_PLAYERS char ], @@ -3441,6 +3429,7 @@ new p_GangSplitProfits [ MAX_PLAYERS ], Float: p_IrresistiblePoints [ MAX_PLAYERS ], p_CoinMarketListitem [ MAX_PLAYERS char ], + bool: p_CoinMarketSecondPage [ MAX_PLAYERS char ], p_SafeHelperTimer [ MAX_PLAYERS ] = { -1, ... }, p_HouseOfferer [ MAX_PLAYERS ], p_HouseOfferTicks [ MAX_PLAYERS ], @@ -3457,7 +3446,8 @@ new //bool: p_forcedAnticheat [ MAX_PLAYERS char ], p_TiedAtTimestamp [ MAX_PLAYERS ], bool: p_AutoSpin [ MAX_PLAYERS char ], - p_InBusiness [ MAX_PLAYERS ] = { -1, ... } + p_InBusiness [ MAX_PLAYERS ] = { -1, ... }, + p_VehicleBringCooldown [ MAX_PLAYERS ] ; /* ** Server Data ** */ @@ -3489,7 +3479,6 @@ new szQuestionsLog [ 8 ][ 128 ], g_preloadedObjectCount = 0, bool: g_ServerLocked = false, - g_loadingTick = 0, bool: g_CommandLogging = false, bool: g_DialogLogging = false, szRules [ 3 ] [ 3300 ], @@ -3504,11 +3493,8 @@ new Float: g_HappyHourRate = 0.0, g_iTime = 0, g_VehicleLastAttacker [ MAX_VEHICLES ] = { INVALID_PLAYER_ID, ... }, - g_VehicleLastAttacked [ MAX_VEHICLES ] - /*g_ispUnbans [ ] = - { - "Hurricane", "Columbus Networks USA", "IP-Only" - }*/ + g_VehicleLastAttacked [ MAX_VEHICLES ], + g_TopDonorWall = INVALID_OBJECT_ID ; /* ** Forwards ** */ @@ -4604,6 +4590,12 @@ public OnGameModeInit() g_bankvaultData[ CITY_LS ] [ E_OBJECT ] = CreateDynamicObject( 2634, 2114.742431, 1233.155273, 1017.616821, 0.000000, 0.000000, -90.000000, g_bankvaultData[ CITY_LS ] [ E_WORLD ] ); SetDynamicObjectMaterial( g_bankvaultData[ CITY_SF ] [ E_OBJECT ], 0, 18268, "mtbtrackcs_t", "mp_carter_cage", -1 ); + // Wall of Donors + SetDynamicObjectMaterialText( CreateDynamicObject( 3074, -1574.3559, 885.1296, 28.4690, 0.0000, 0.0000, -0.0156 ), 0, "Thx Monthly Donors", 130, "Times New Roman", 64, 1, -65536, 0, 1 ); + + g_TopDonorWall = CreateDynamicObject( 3074, -1574.3559, 885.1296, 14.0153, 0.0000, 0.0000, -0.0156 ); + SetDynamicObjectMaterialText( g_TopDonorWall, 0, "Nobody donated :(", 130, "Arial", 48, 0, -65536, 0, 1 ); + // Alcatraz tmpVariable = CreateObject( 16109, -2080.595703, 1734.933837, -3.897439, 0.000000, 0.000000, 0.000000, 500.0 ); SetObjectMaterial( tmpVariable, 0, 10452, "sfsroadshotel", "dirtgaz64b", 0 ); @@ -4732,7 +4724,6 @@ public OnGameModeInit() printf( "[ROBBERIES]: %d robberies have been successfully loaded.", Iter_Count(RobberyCount) ); printf( "[ROBBERIES]: %d robbery NPCs have been successfully loaded.", Iter_Count(RobberyNpc) ); - g_loadingTick = GetTickCount( ); g_preloadedObjectCount = Streamer_GetUpperBound( STREAMER_TYPE_OBJECT ); // To look more efficiently, preloaded doesn't worry that way. mysql_function_query( dbHandle, "SELECT * FROM `HOUSES`", true, "OnHouseLoad", "" ); mysql_function_query( dbHandle, "SELECT * FROM `BRIBES`", true, "OnBribeLoad", "" ); @@ -4743,7 +4734,6 @@ public OnGameModeInit() mysql_function_query( dbHandle, "SELECT * FROM `ENTRANCES`", true, "OnEntrancesLoad", "" ); mysql_function_query( dbHandle, "SELECT * FROM `CASINO_POOLS`", true, "OnCasinoPoolsLoad", "" ); mysql_function_query( dbHandle, "SELECT * FROM `BUSINESSES`", true, "OnBusinessLoad", "" ); - mysql_function_query( dbHandle, "SELECT `MAP_TAX`.*,`USERS`.`NAME` as `USERNAME` FROM `MAP_TAX` INNER JOIN `USERS` ON `USERS`.`ID` = `MAP_TAX`.`USER_ID`", true, "OnMapTaxLoad", "" ); /* ** Timers ** */ rl_ServerUpdate = SetTimer( "OnServerUpdate", 960, true ); @@ -5177,6 +5167,7 @@ public OnServerUpdate( ) else { SendClientMessageToAll( -1, g_randomMessages[ iRandomMessage ] ); + AddFileLogLine( "stephanie.txt", g_randomMessages[ iRandomMessage ] ); } // throttle @@ -5560,27 +5551,6 @@ public OnServerUpdate( ) } } - // Player Vehicle Location System - if ( p_SearchingVehicle[ playerid ] != 0xFFFF ) - { - static - aPlayer[ 1 ]; - - if ( GetVehiclePos( g_vehicleData[ playerid ] [ p_SearchingVehicle[ playerid ] ] [ E_VEHICLE_ID ], fX, fY, fZ ) ) { - aPlayer[ 0 ] = playerid; - - DestroyDynamicMapIcon( p_CarTrackerMapIcon[ playerid ] ); // Should not look sketchy - p_CarTrackerMapIcon[ playerid ] = CreateDynamicMapIconEx( fX, fY, fZ, 55, 0, MAPICON_GLOBAL, 6000.0, { -1 }, { -1 }, aPlayer ); - - if ( IsPlayerInRangeOfPoint( playerid, 10.0, fX, fY, fZ ) ) { - DestroyDynamicMapIcon( p_CarTrackerMapIcon[ playerid ] ); - p_CarTrackerMapIcon[ playerid ] = 0xFFFF; - p_SearchingVehicle [ playerid ] = 0xFFFF; - SendServerMessage( playerid, "Your vehicle is nearby, look around." ); - } - } - } - #if ENABLED_SECURE_TRUCK == true if ( IsPlayerConnected( g_secureTruckDriver ) ) { @@ -5852,7 +5822,7 @@ public ZoneTimer( ) } // Update All Map Tax Labels - mysql_function_query( dbHandle, "SELECT `MAP_TAX`.`ID`,`MAP_TAX`.`USER_ID`,`USERS`.`NAME` as `USERNAME` FROM `MAP_TAX` INNER JOIN `USERS` ON `USERS`.`ID` = `MAP_TAX`.`USER_ID`", true, "UpdateMapTaxNames", "" ); + // mysql_function_query( dbHandle, "SELECT `MAP_TAX`.`ID`,`MAP_TAX`.`USER_ID`,`USERS`.`NAME` as `USERNAME` FROM `MAP_TAX` INNER JOIN `USERS` ON `USERS`.`ID` = `MAP_TAX`.`USER_ID`", true, "UpdateMapTaxNames", "" ); } @@ -5971,10 +5941,10 @@ public ZoneTimer( ) Float: iCoinGenRate = 35.0; // VIP check - if ( p_VIPLevel[ playerid ] >= 6 ) + if ( p_VIPLevel[ playerid ] >= VIP_DIAMOND ) iCoinGenRate *= 0.75; // Reduce by 25% if Diamond - else if ( p_VIPLevel[ playerid ] == 5 ) + else if ( p_VIPLevel[ playerid ] == VIP_PLATINUM ) iCoinGenRate *= 0.90; // Reduce by 10% if Diamond // Happy Hour @@ -6530,6 +6500,7 @@ public OnPlayerDisconnect( playerid, reason ) // Reset player variables SavePlayerData( playerid, true ); DisconnectFromGang( playerid ); + CheckPendingBusiness( playerid ); dischargeVehicles( playerid ); CutSpectation( playerid ); LeavePlayerPaintball( playerid ); @@ -6657,6 +6628,7 @@ public OnPlayerDisconnect( playerid, reason ) p_StartedLumberjack{ playerid } = false; p_RconLoginFails{ playerid } = 0; p_IncorrectLogins{ playerid } = 0; + p_VehicleBringCooldown[ playerid ] = 0; p_DamageSpamCount{ playerid } = 0; p_AntiTextSpamCount{ playerid } = 0; p_ApartmentSpawnLocation[ playerid ] = 0xFF; @@ -6682,7 +6654,6 @@ public OnPlayerDisconnect( playerid, reason ) p_MiningExport[ playerid ] = 0xFFFF; DestroyDynamicMapIcon( p_LumberjackMapIcon[ playerid ] ); p_LumberjackMapIcon[ playerid ]= 0xFFFF; - p_SearchingVehicle[ playerid ] = 0xFFFF; KillTimer( p_FireDistanceTimer[ playerid ] ); p_FireDistanceTimer[ playerid ] = 0xFF; DestroyDynamicObject( p_GPSObject[ playerid ] ); @@ -6703,8 +6674,6 @@ public OnPlayerDisconnect( playerid, reason ) p_CancelProgress{ playerid } = false; ResetPlayerCash( playerid ); if ( !GetPVarInt( playerid, "banned_connection" ) ) SendDeathMessage( INVALID_PLAYER_ID, playerid, 201 ); - DestroyDynamicMapIcon( p_CarTrackerMapIcon[ playerid ] ); - p_CarTrackerMapIcon[ playerid ] = 0xFFFF; DestroyDynamicMapIcon( p_PawnStoreMapIcon[ playerid ] ); p_PawnStoreMapIcon[ playerid ] = 0xFFFF; jailDoors( playerid, .remove = true, .set_closed = false ); @@ -7038,9 +7007,9 @@ public OnPlayerSpawn( playerid ) SetPlayerRandomSpawn( playerid ); if ( p_VIPLevel[ playerid ] > 0 && p_VIPWep1{ playerid } != 0 ) GivePlayerWeapon( playerid, p_VIPWep1{ playerid }, 200 ); - if ( p_VIPLevel[ playerid ] > 3 && p_VIPWep2{ playerid } != 0 ) GivePlayerWeapon( playerid, p_VIPWep2{ playerid }, 200 ); - if ( p_VIPLevel[ playerid ] > 4 && p_VIPWep3{ playerid } != 0 ) GivePlayerWeapon( playerid, p_VIPWep3{ playerid }, 200 ); - if ( p_VIPLevel[ playerid ] > 3 ) SetPlayerArmour( playerid, 100.0 ); // Free armour on spawn. + if ( p_VIPLevel[ playerid ] >= VIP_GOLD && p_VIPWep2{ playerid } != 0 ) GivePlayerWeapon( playerid, p_VIPWep2{ playerid }, 200 ); + if ( p_VIPLevel[ playerid ] > VIP_GOLD && p_VIPWep3{ playerid } != 0 ) GivePlayerWeapon( playerid, p_VIPWep3{ playerid }, 200 ); + if ( p_VIPLevel[ playerid ] >= VIP_GOLD ) SetPlayerArmour( playerid, 100.0 ); // Free armour on spawn. SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[SPAWN INFO]"COL_WHITE" It has taken you %d milliseconds to spawn!", ( GetTickCount( ) - iTick ) ); return 1; @@ -7809,26 +7778,34 @@ public OnVehicleSpawn( vehicleid ) public OnVehicleDeath( vehicleid, killerid ) { - printf("OnVehicleDeath( %d, %d )\n", vehicleid, killerid ); - if ( g_isBusinessVehicle[ vehicleid ] && Iter_Contains( business, g_isBusinessVehicle[ vehicleid ] ) ) + if ( g_isBusinessVehicle[ vehicleid ] != -1 && Iter_Contains( business, g_isBusinessVehicle[ vehicleid ] ) ) { new businessid = g_isBusinessVehicle[ vehicleid ], attackerid = g_VehicleLastAttacker[ vehicleid ] ; - printf("attacker id %d, last attacked %d seconds ago\n", attackerid, ( g_iTime - g_VehicleLastAttacked[ vehicleid ] )); if ( IsPlayerConnected( attackerid ) && ! IsBusinessAssociate( attackerid, businessid ) && ( g_iTime - g_VehicleLastAttacked[ vehicleid ] ) < 7 ) { new - payout = floatround( float( g_businessData[ businessid ] [ E_EXPORT_VALUE ] ) * 0.25 ); + payout = floatround( float( g_businessData[ businessid ] [ E_EXPORT_VALUE ] * ( MAX_DROPS - g_businessData[ businessid ] [ E_EXPORTED_AMOUNT ] ) ) * 0.25 ); GivePlayerCash( attackerid, payout ); SendGlobalMessage( -1, ""COL_GREY"[BUSINESS]"COL_WHITE" %s(%d) has destroyed a business vehicle and earned "COL_GOLD"%s"COL_WHITE"!", ReturnPlayerName( attackerid ), attackerid, ConvertPrice( payout ) ); } else { - SendGlobalMessage( -1, ""COL_GREY"[BUSINESS]"COL_WHITE" %s(%d)'s business vehicle with "COL_GOLD"%s"COL_WHITE" in inventory got destroyed!", ReturnPlayerName( killerid ), killerid, ConvertPrice( g_businessData[ businessid ] [ E_EXPORT_VALUE ] ) ); + if ( IsPlayerConnected( killerid ) ) { + if ( IsBusinessAssociate( killerid, businessid ) ) SendGlobalMessage( -1, ""COL_GREY"[BUSINESS]"COL_WHITE" %s(%d)'s business vehicle with "COL_GOLD"%s"COL_WHITE" in inventory got destroyed!", ReturnPlayerName( killerid ), killerid, ConvertPrice( g_businessData[ businessid ] [ E_EXPORT_VALUE ] ) ); + else + { + new + payout = floatround( float( g_businessData[ businessid ] [ E_EXPORT_VALUE ] * ( MAX_DROPS - g_businessData[ businessid ] [ E_EXPORTED_AMOUNT ] ) ) * 0.25 ); + + GivePlayerCash( attackerid, payout ); + SendGlobalMessage( -1, ""COL_GREY"[BUSINESS]"COL_WHITE" %s(%d) has destroyed a business vehicle and earned "COL_GOLD"%s"COL_WHITE"!", ReturnPlayerName( attackerid ), attackerid, ConvertPrice( payout ) ); + } + } } // stop the mission @@ -8737,6 +8714,92 @@ public OnPlayerCommandReceived(playerid, cmdtext[]) return 1; } +CMD:b( playerid, params[ ] ) return cmd_business( playerid, params ); +CMD:business( playerid, params[ ] ) +{ + if ( p_accountSecurityData[ playerid ] [ E_ID ] && ! p_accountSecurityData[ playerid ] [ E_VERIFIED ] && p_accountSecurityData[ playerid ] [ E_MODE ] != SECURITY_MODE_DISABLED ) + return SendError( playerid, "You must be verified in order to use this feature. "COL_YELLOW"(use /verify)" ); + + new + iBusiness = p_InBusiness[ playerid ]; + + if ( strmatch( params, "buy" ) ) + { + if ( p_OwnedBusinesses[ playerid ] >= getPlayerBusinessCapacity( playerid ) ) return SendError( playerid, "You cannot purchase any more businesses, you've reached the limit." ); + if ( GetPlayerScore( playerid ) < 1000 ) return SendError( playerid, "You need at least 1,000 score to buy a business." ); + + foreach(new b : business) + { + if ( IsPlayerInDynamicCP( playerid, g_businessData[ b ] [ E_ENTER_CP ] ) ) + { + if ( ! g_businessData[ b ] [ E_OWNER_ID ] ) + { + if ( GetPlayerCash( playerid ) < g_businessData[ b ] [ E_COST ] ) + return SendError( playerid, "You don't have enough money to purchase this business." ); + + p_OwnedBusinesses[ playerid ] ++; + g_businessData[ b ] [ E_OWNER_ID ] = p_AccountID[ playerid ]; + UpdateBusinessData( b ); + UpdateBusinessTitle( b ); + GivePlayerCash( playerid, -( g_businessData[ b ] [ E_COST ] ), .force_save = true ); + SendClientMessageFormatted( playerid, -1, ""COL_GREY"[BUSINESS]"COL_WHITE" You have bought this business for "COL_GOLD"%s"COL_WHITE".", ConvertPrice( g_businessData[ b ] [ E_COST ] ) ); + return 1; + } + else return SendError( playerid, "This business isn't for sale." ); + } + } + SendError( playerid, "You are not near any business entrances." ); + return 1; + } + else if ( strmatch( params, "sell" ) ) + { + if ( iBusiness == -1 ) return SendError( playerid, "You are not in any business." ); + else if ( g_businessData[ iBusiness ] [ E_OWNER_ID ] != p_AccountID[ playerid ] ) return SendError( playerid, "You are not the owner of this business." ); + else + { + new + iCashMoney = floatround( g_businessData[ iBusiness ] [ E_COST ] / 2 ); + + p_OwnedBusinesses[ playerid ] --; + g_businessData[ iBusiness ] [ E_OWNER_ID ] = 0; + g_businessData[ iBusiness ] [ E_PRODUCT ] = 0; + g_businessData[ iBusiness ] [ E_SUPPLIES ] = 0; + + StopBusinessExportMission( iBusiness ); + UpdateBusinessData( iBusiness ); + UpdateBusinessTitle( iBusiness ); // No point querying (add on resale) + GivePlayerCash( playerid, iCashMoney ); + + SetPlayerPosEx( playerid, g_businessData[ iBusiness ] [ E_X ], g_businessData[ iBusiness ] [ E_Y ], g_businessData[ iBusiness ] [ E_Z ], 0 ), SetPlayerVirtualWorld( playerid, 0 ); + SendServerMessage( playerid, "You have successfully sold your business for "COL_GOLD"%s"COL_WHITE".", ConvertPrice( iCashMoney ) ); + } + return 1; + } + else if ( strmatch( params, "leave" ) ) + { + if ( iBusiness == -1 ) return SendError( playerid, "You are not in any business." ); + else if ( g_businessData[ iBusiness ] [ E_OWNER_ID ] == p_AccountID[ playerid ] ) return SendError( playerid, "This command is only for your business members." ); + else if ( ! IsBusinessAssociate( playerid, iBusiness ) ) return SendError( playerid, "You're not an associate of this business" ); + else + { + // alert business members + foreach (new i : Player) if ( IsBusinessAssociate( i, iBusiness ) ) { + SendClientMessageFormatted( i, -1, ""COL_GREY"[BUSINESS]"COL_WHITE" %s(%d) has left "COL_GREY"%s"COL_WHITE".", ReturnPlayerName( playerid ), playerid, g_businessData[ iBusiness ] [ E_NAME ] ); + } + + // nullify user + for ( new i = 0; i < MAX_BUSINESS_MEMBERS; i ++ ) if ( g_businessData[ iBusiness ] [ E_MEMBERS ] [ i ] == p_AccountID[ playerid ] ) { + g_businessData[ iBusiness ] [ E_MEMBERS ] [ i ] = 0; + } + + // save and update title + UpdateBusinessData( iBusiness ), UpdateBusinessTitle( iBusiness ); + } + return 1; + } + return SendUsage( playerid, "/(b)usiness [BUY/SELL]" ); +} + CMD:race( playerid, params[ ] ) { if ( ! IsPlayerInAnyVehicle( playerid ) ) @@ -9045,33 +9108,6 @@ CMD:disposeweapon(playerid, params[]) { } } -CMD:mycustomizations( playerid, params[ ] ) return cmd_mymaps( playerid, params ); -CMD:mymaps( playerid, params[ ] ) -{ - - new - totalObjects = 0, - Float: totalCost = 0; - - szLargeString = ""COL_WHITE"Customization Description\t"COL_WHITE"Object Count\t"COL_WHITE"Total Cost (IC)\t"COL_WHITE"Due For Payment\n"; - - foreach (new i : Mapping) if ( g_mappingData[ i ] [ E_ACCOUNT_ID ] == p_AccountID[ playerid ] ) - { - // Count data - totalObjects += g_mappingData[ i ] [ E_OBJECTS ]; - totalCost += float( g_mappingData[ i ] [ E_OBJECTS ] ) * g_mappingData[ i ] [ E_COST ]; - - // Append - format( szLargeString, sizeof( szLargeString ), "%s%s\t%d\t%0.2f IC\t%s\n", szLargeString, g_mappingData[ i ] [ E_DESCRIPTION ], g_mappingData[ i ] [ E_OBJECTS ], float( g_mappingData[ i ] [ E_OBJECTS ] ) * g_mappingData[ i ] [ E_COST ], g_mappingData[ i ] [ E_RENEWAL_TIMESTAMP ] - g_iTime < 0 ? ( COL_RED # "OVERDUE" ) : secondstotime( g_mappingData[ i ] [ E_RENEWAL_TIMESTAMP ] - g_iTime, ", ", 5, 1 ) ); - } - - if ( ! totalObjects ) - return SendError( playerid, "You have no house customizations to pay tax on." ); - - format( szLargeString, sizeof( szLargeString ), "%s"COL_GOLD"Quick Renew (1 Month)\t"COL_GOLD"%d\t"COL_GOLD"%0.2f IC\t"COL_GOLD">>>", szLargeString, totalObjects, totalCost ); - return ShowPlayerDialog( playerid, DIALOG_MAP_TAX, DIALOG_STYLE_TABLIST_HEADERS, ""COL_GOLD"My Customization Taxes", szLargeString, "Select", "Close" ); -} - CMD:suggest( playerid, params[ ] ) return cmd_feedback( playerid, params ); CMD:feedback( playerid, params[ ] ) { @@ -9185,7 +9221,7 @@ CMD:irresistiblecoins( playerid, params[ ] ) if ( sscanf( params[ 5 ],""#sscanf_u"f", senttoid, coins ) ) return SendUsage( playerid, "/irresistiblecoins send [PLAYER_ID] [COINS]" ); else if ( !IsPlayerConnected( senttoid ) || IsPlayerNPC( senttoid ) ) return SendError( playerid, "Invalid Player ID." ); - else if ( p_VIPLevel[ playerid ] < 2 ) return SendError( playerid, "You are not a Bronze V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); + else if ( p_VIPLevel[ playerid ] < VIP_BRONZE ) return SendError( playerid, "You are not a Bronze V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); else if ( coins < 0.1 || coins > 5000.0 ) return SendError( playerid, "You can only send between 0.1 and 5000.0 coins at a single time." ); else if ( coins > 99999999 || coins < 0 ) return SendError( playerid, "You can only send between 0.1 and 5000.0 coins at a single time." ); // Making cash go over billions... else if ( p_IrresistibleCoins[ playerid ] < coins ) return SendError( playerid, "You do not have this number of coins to send." ); @@ -10700,7 +10736,7 @@ CMD:viplist( playerid, params[ ] ) foreach(new i : Player) if ( p_VIPLevel[ i ] > 0 ) { // Diamond - if ( p_VIPLevel[ i ] < 6 ) + if ( p_VIPLevel[ i ] < VIP_DIAMOND ) format( szLargeString, sizeof( szLargeString ), "%s"COL_GOLD"%s - {FFFFFF}%s(%d)\n", szLargeString, VIPToString( p_VIPLevel[ i ] ), ReturnPlayerName( i ), i ); else format( szLargeString, sizeof( szLargeString ), "%s"COL_DIAMOND"%s - {FFFFFF}%s(%d)\n", szLargeString, isnull( p_VipPackageName[ i ] ) ? VIPToString( p_VIPLevel[ i ] ) : p_VipPackageName[ i ], ReturnPlayerName( i ), i ); @@ -10736,7 +10772,7 @@ CMD:vippackage( playerid, params[ ] ) new packageName[ 16 ]; - if ( p_VIPLevel[ playerid ] < 6 ) return SendError( playerid, "You can only use this if you are a "COL_DIAMOND"Diamond V.I.P{FFFFFF}." ); + if ( p_VIPLevel[ playerid ] < VIP_DIAMOND ) return SendError( playerid, "You can only use this if you are a "COL_DIAMOND"Diamond V.I.P{FFFFFF}." ); else if ( sscanf( params, "s[16]", packageName ) ) return SendUsage( playerid, "/vippackage [PACKAGE_NAME]" ); else if ( textContainsIP( packageName ) ) return SendError( playerid, "You cannot advertise!" ); else @@ -10749,7 +10785,7 @@ CMD:vippackage( playerid, params[ ] ) CMD:vipspawnwep( playerid, params[ ] ) { - if ( p_VIPLevel[ playerid ] < 1 ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); + if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); format( szNormalString, sizeof( szNormalString ), "%s\n"COL_GOLD"%s\n"COL_PLATINUM"%s", p_VIPWep1{ playerid } ? ReturnWeaponName( p_VIPWep1{ playerid } ) : ( "Nothing" ), p_VIPWep2{ playerid } ? ReturnWeaponName( p_VIPWep2{ playerid } ) : ( "Nothing" ), p_VIPWep3{ playerid } ? ReturnWeaponName( p_VIPWep3{ playerid } ) : ( "Nothing" ) ); ShowPlayerDialog( playerid, DIALOG_VIP_WEP, DIALOG_STYLE_LIST, "{FFFFFF}Spawn Weapons", szNormalString, "Select", "" ); return 1; @@ -10757,7 +10793,7 @@ CMD:vipspawnwep( playerid, params[ ] ) CMD:vipgun( playerid, params[ ] ) { - if ( p_VIPLevel[ playerid ] < 1 ) + if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); if ( !IsPlayerInRangeOfPoint( playerid, 5.0, -1966.1591, 852.7100, 1214.2678 ) && !IsPlayerInRangeOfPoint( playerid, 5.0, -1944.1324, 830.0725, 1214.2678 ) && !IsPlayerInRangeOfPoint( playerid, 5.0, 60.3115, 121.5226, 1017.4534 ) ) @@ -10772,7 +10808,7 @@ CMD:vipskin( playerid, params[ ] ) new skin ; - if ( p_VIPLevel[ playerid ] < 1 ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); + if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); else if ( GetPlayerAnimationIndex( playerid ) == 1660 ) return SendError( playerid, "You cannot use this command since you're using a vending machine." ); else if ( IsPlayerRobbing( playerid ) ) return SendError( playerid, "You cannot use this command since you're robbing a store." ); /*else if ( strmatch( params, "toggle" ) ) @@ -10809,10 +10845,10 @@ CMD:vipjob( playerid, params[ ] ) new iJob; - if ( p_VIPLevel[ playerid ] < 1 ) + if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); - if ( p_VIPLevel[ playerid ] < 5 ) + if ( p_VIPLevel[ playerid ] < VIP_PLATINUM ) return SendError( playerid, "This command requires you to be platinum V.I.P." ); if ( isnull( params ) ) @@ -10906,7 +10942,7 @@ CMD:updates( playerid, params[ ] ) } fclose( handle ); - ShowPlayerDialog( playerid, DIALOG_NULL, DIALOG_STYLE_MSGBOX, "{FFFFFF}Recent Updates - {C0C0C0}Created by Cloudy & sponyy", szHugeString, "Okay", "" ); + ShowPlayerDialog( playerid, DIALOG_NULL, DIALOG_STYLE_MSGBOX, "{FFFFFF}Recent Updates - " #FILE_BUILD " - {C0C0C0}Created by Cloudy & sponyy", szHugeString, "Okay", "" ); SendServerMessage( playerid, "You're now viewing the latest changes to the gamemode (version "#FILE_BUILD")." ); return 1; } @@ -11568,10 +11604,10 @@ CMD:myaccid( playerid, params[ ] ) CMD:job( playerid, params[ ] ) { - if ( p_VIPLevel[ playerid ] >= 5 && p_VIPJob{ playerid } != p_Job{ playerid } ) + if ( p_VIPLevel[ playerid ] >= VIP_PLATINUM && p_VIPJob{ playerid } != p_Job{ playerid } ) return SendServerMessage( playerid, "Your jobs are "COL_GOLD"%s"COL_WHITE" and "COL_GOLD"%s"COL_WHITE".", GetJobName( p_Job{ playerid } ), GetJobName( p_VIPJob{ playerid } ) ); - if ( p_VIPLevel[ playerid ] >= 5 && p_VIPJob{ playerid } == p_Job{ playerid } ) + if ( p_VIPLevel[ playerid ] >= VIP_PLATINUM && p_VIPJob{ playerid } == p_Job{ playerid } ) return SendServerMessage( playerid, "Your jobs are "COL_GOLD"%s"COL_WHITE" and your VIP job is disabled.", GetJobName( p_Job{ playerid } ) ); SendServerMessage( playerid, "Your job is a "COL_GOLD"%s"COL_WHITE".", GetJobName( p_Job{ playerid } ) ); @@ -11973,7 +12009,7 @@ CMD:labelcolor( playerid, params[ ] ) szLabel[ 7 ]; if ( sscanf( params, "s[7]", szLabel ) ) return SendUsage( playerid, "/labelcolor [HEX CODE (= normal)]" ); - else if ( p_VIPLevel[ playerid ] < 1 ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); + else if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); else if ( strmatch( szLabel, "normal" ) ) { p_LabelColor[ playerid ] = COLOR_GREY; @@ -12762,7 +12798,7 @@ CMD:v( playerid, params[ ] ) ownerid = INVALID_PLAYER_ID ; - if ( isnull( params ) ) return SendUsage( playerid, "/v [SELL/COLOR/LOCK/PARK/RESPAWN/LOCATE/DATA/PLATE/PAINTJOB/RESET]" ); + if ( isnull( params ) ) return SendUsage( playerid, "/v [SELL/COLOR/LOCK/PARK/RESPAWN/BRING/DATA/PLATE/PAINTJOB/RESET]" ); else if ( strmatch( params, "sell" ) ) { new v = getVehicleSlotFromID( vehicleid, ownerid ); @@ -12834,18 +12870,22 @@ CMD:v( playerid, params[ ] ) } else SendError( playerid, "You don't own any vehicles." ); } - else if ( strmatch( params, "locate" ) ) + else if ( strmatch( params, "locate" ) ) return SendServerMessage( playerid, "This feature has been replaced with "COL_GREY"/v bring"COL_WHITE"." ); + else if ( strmatch( params, "bring" ) ) { + if ( p_VehicleBringCooldown[ playerid ] > g_iTime ) + return SendError( playerid, "You must wait %s before using this feature again.", secondstotime( p_VehicleBringCooldown[ playerid ] - g_iTime ) ); + if ( p_OwnedVehicles[ playerid ] > 0 ) { - szLargeString[ 0 ] = '\0'; + szLargeString = ""COL_WHITE"Bringing your vehicle to you will cost $10,000!\n"; for( new i; i < p_OwnedVehicles[ playerid ]; i++ ) { if ( g_vehicleData[ playerid ] [ i ] [ E_OWNER_ID ] == p_AccountID[ playerid ] && IsValidVehicle( g_vehicleData[ playerid ] [ i ] [ E_VEHICLE_ID ] ) ) { format( szLargeString, sizeof( szLargeString ), "%s%s\n", szLargeString, GetVehicleName( GetVehicleModel( g_vehicleData[ playerid ] [ i ] [ E_VEHICLE_ID ] ) ) ); } } - ShowPlayerDialog( playerid, DIALOG_VEHICLE_LOCATE, DIALOG_STYLE_LIST, "{FFFFFF}Locate your vehicle", szLargeString, "Select", "Cancel" ); + ShowPlayerDialog( playerid, DIALOG_VEHICLE_LOCATE, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Bring Vehicle", szLargeString, "Select", "Cancel" ); } else SendError( playerid, "You don't own any vehicles." ); } @@ -13019,7 +13059,7 @@ CMD:v( playerid, params[ ] ) SendClientMessage( playerid, -1, ""COL_GREY"[SERVER]"COL_WHITE" You have reset your vehicle's appearance." ); } } - else SendUsage( playerid, "/v [SELL/COLOR/LOCK/PARK/RESPAWN/LOCATE/DATA/PLATE/PAINTJOB/TOGGLE/RESET]" ); + else SendUsage( playerid, "/v [SELL/COLOR/LOCK/PARK/RESPAWN/BRING/DATA/PLATE/PAINTJOB/TOGGLE/RESET]" ); return 1; } @@ -13159,7 +13199,7 @@ CMD:r( playerid, params[ ] ) { new pID = p_PmResponder[ playerid ]; - if ( IsPlayerLorenc( pID ) && g_VipPrivateMsging && p_VIPLevel[ playerid ] < 1 ) { + if ( IsPlayerLorenc( pID ) && g_VipPrivateMsging && p_VIPLevel[ playerid ] < VIP_REGULAR ) { return SendError( playerid, "You need to be V.I.P to PM this person, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); } @@ -13202,7 +13242,7 @@ CMD:pm( playerid, params[ ] ) else if ( p_PlayerLogged{ pID } == false ) return SendError( playerid, "This player is not logged in." ); else { - if ( IsPlayerLorenc( pID ) && g_VipPrivateMsging && p_VIPLevel[ playerid ] < 1 ) { + if ( IsPlayerLorenc( pID ) && g_VipPrivateMsging && p_VIPLevel[ playerid ] < VIP_REGULAR ) { return SendError( playerid, "You need to be V.I.P to PM this person, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); } @@ -14648,7 +14688,7 @@ CMD:gang( playerid, params[ ] ) } return 1; } - return SendUsage( playerid, "/gang [CREATE/LEAVE/INVITE/JOIN/KICK/NAME/LEADER/COLOR/SPLITPROFIT/PRIVATE/JOINMSG]" ); + return SendUsage( playerid, "/gang [CREATE/LEAVE/INVITE/JOIN/KICK/NAME/LEADER/COLEADER/COLOR/SPLITPROFIT/PRIVATE/JOINMSG]" ); } CMD:g( playerid, params[ ] ) @@ -17216,6 +17256,55 @@ CMD:hadminsell( playerid, params[ ] ) } /* Level 6 */ +CMD:createbusiness( playerid, params[ ] ) +{ + new + Float: X, Float: Y, Float: Z, cost, type + ; + + if ( p_AdminLevel[ playerid ] < 5 ) return SendError( playerid, ADMIN_COMMAND_REJECT ); + else if ( sscanf( params, "dd", cost, type ) ) return SendUsage( playerid, "/createbusiness [COST] [TYPE]" ); + else if ( cost < 100 ) return SendError( playerid, "The price must be located above 100 dollars." ); + else if ( ! ( 0 <= type <= 2 ) ) return SendError( playerid, "Invalid business type (Weed=0, Meth=1, Coke=2)." ); + else + { + GetPlayerPos( playerid, X, Y, Z ); + AddAdminLogLineFormatted( "%s(%d) has created a business", ReturnPlayerName( playerid ), playerid ); + + new + iTmp = CreateBusiness( 0, "Business", cost, type, X, Y, Z ); + + if ( iTmp != -1 ) { + SaveToAdminLog( playerid, iTmp, "created business" ); + SendClientMessageFormatted( playerid, -1, ""COL_PINK"[BUSINESS]"COL_WHITE" You have created a %s business taking up business id %d.", ConvertPrice( cost ), iTmp ); + } else { + SendClientMessage( playerid, -1, ""COL_PINK"[BUSINESS]"COL_WHITE" Unable to create a business due to a unexpected error." ); + } + } + return 1; +} + +CMD:destroybusiness( playerid, params[ ] ) +{ + new + iBusiness; + + if ( p_AdminLevel[ playerid ] < 5 ) return SendError( playerid, ADMIN_COMMAND_REJECT ); + else if ( sscanf( params, "d", iBusiness ) ) return SendUsage( playerid, "/destroybusiness [BUSINESS_ID]" ); + else if ( iBusiness < 0 || iBusiness >= MAX_BUSINESSES ) return SendError( playerid, "Invalid Business ID." ); + else if ( !Iter_Contains( business, iBusiness ) ) return SendError( playerid, "Invalid Business ID." ); + else + { + SaveToAdminLog( playerid, iBusiness, "destroy business" ); + format( szBigString, sizeof( szBigString ), "[DG] [%s] %s | %d | %d\r\n", getCurrentDate( ), ReturnPlayerName( playerid ), g_businessData[ iBusiness ] [ E_OWNER_ID ], iBusiness ); + AddFileLogLine( "log_business.txt", szBigString ); + AddAdminLogLineFormatted( "%s(%d) has deleted a business", ReturnPlayerName( playerid ), playerid ); + SendClientMessageFormatted( playerid, -1, ""COL_PINK"[BUSINESS]"COL_WHITE" You have destroyed the business ID %d.", iBusiness ); + DestroyBusiness( iBusiness ); + } + return 1; +} + /*CMD:destroysockets( playerid, params[ ] ) { if ( p_AdminLevel[ playerid ] < 6 ) return SendError( playerid, ADMIN_COMMAND_REJECT ); @@ -17633,38 +17722,6 @@ CMD:updatepool( playerid, params[ ] ) return 1; } -CMD:createmaptax( playerid, params[ ] ) -{ - new - owner[ 24 ], objects, Float: cost, days, description[ 32 ]; - - if ( !IsPlayerAdmin( playerid ) ) return 0; - else if ( sscanf( params, "s[24]dF(1.0)D(30)S(House Tax)[32]", owner, objects, cost, days, description ) ) return SendUsage( playerid, "/createmaptax [USERNAME] [OBJECTS] [COST (= 1.0)] [DAYS (= 30)] [DESCRIPTION (= House Tax)]" ); - else - { - format( szNormalString, sizeof( szNormalString ), "SELECT `ID`, `NAME` FROM `USERS` WHERE `NAME`='%s' LIMIT 1", mysql_escape( owner ) ); - mysql_function_query( dbHandle, szNormalString, true, "FindUserForMapTax", "ddfds", playerid, objects, cost, days, description ); - } - return 1; -} - -CMD:destroymaptax( playerid, params[ ] ) -{ - new - mid; - - if ( !IsPlayerAdmin( playerid ) ) return 0; - else if ( sscanf( params, "d", mid ) ) return SendUsage( playerid, "/destroymaptax [MAP_ID]" ); - else if ( !Iter_Contains( Mapping, mid ) ) return SendError( playerid, "Invalid Map ID." ); - else - { - AddAdminLogLineFormatted( "%s(%d) has deleted a map tax", ReturnPlayerName( playerid ), playerid ); - SendClientMessageFormatted( playerid, -1, ""COL_PINK"[MAP TAX]"COL_WHITE" You have destroyed the map tax occupying id %d (sql id %d).", mid, g_mappingData[ mid ] [ E_SQL_ID ] ); - DestroyMapTax( mid ); - } - return 1; -} - CMD:updatedonortd( playerid, params[ ] ) { new @@ -18120,11 +18177,9 @@ CMD:setviplevel( playerid, params[ ] ) else if ( sscanf( params, ""#sscanf_u"d", pID, level ) ) return SendUsage( playerid, "/setviplevel [PLAYER_ID] [VIP_LEVEL]" ); else if ( !IsPlayerConnected( pID ) ) SendError( playerid, "Invalid Player ID." ); else if ( p_PlayerLogged{ pID } == false ) return SendError( playerid, "This player is not logged in." ); - else if ( level > 6 || level < 0 ) return SendError( playerid, "Specify a level between 0 - 6 please!" ); + else if ( level > VIP_DIAMOND || level < 0 ) return SendError( playerid, "Specify a level between 0 - 5 please!" ); else { - //AddAdminLogLineFormatted( "%s(%d) has given %s(%d) %s V.I.P", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID, VIPLevelToString( level ) ); - SetPlayerVipLevel( pID, level ); SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[VIP LEVEL]"COL_WHITE" You have set %s(%d)'s VIP package to %s.", ReturnPlayerName( pID ), pID, VIPToString( level ) ); SendClientMessageFormatted( pID, -1, ""COL_GOLD"[VIP LEVEL]"COL_WHITE" Your VIP package has been set to %s by %s(%d)", VIPToString( level ), ReturnPlayerName( playerid ), playerid ); @@ -18142,7 +18197,7 @@ CMD:extendvip( playerid, params[ ] ) if ( !IsPlayerAdmin( playerid ) ) return 0; else if ( sscanf( params, ""#sscanf_u"d", pID, days ) ) return SendUsage( playerid, "/extendvip [PLAYER_ID] [DAYS]" ); else if ( !IsPlayerConnected( pID ) ) SendError( playerid, "Invalid Player ID." ); - else if ( p_VIPLevel[ pID ] < 1 ) return SendError( playerid, "This player doesn't have a V.I.P level." ); + else if ( p_VIPLevel[ pID ] < VIP_REGULAR ) return SendError( playerid, "This player doesn't have a V.I.P level." ); else if ( days < -365 || days > 365 ) return SendError( playerid, "Extension can only vary from -365 to 365 days." ); else { @@ -18766,14 +18821,17 @@ public OnPlayerDriveVehicle(playerid, vehicleid) if ( !g_Driveby ) SetPlayerArmedWeapon( playerid, 0 ); - if ( g_isBusinessVehicle[ vehicleid ] && Iter_Contains( business, g_isBusinessVehicle[ vehicleid ] ) ) + if ( g_isBusinessVehicle[ vehicleid ] != -1 && Iter_Contains( business, g_isBusinessVehicle[ vehicleid ] ) ) { new businessid = g_isBusinessVehicle[ vehicleid ]; if ( IsBusinessAssociate( playerid, businessid ) ) { - if ( IsBusinessAerialVehicle( model ) ) + if ( p_WantedLevel[ playerid ] < 12 ) + GivePlayerWantedLevel( playerid, 12 - p_WantedLevel[ playerid ] ); + + if ( IsBusinessAerialVehicle( model ) && g_businessData[ businessid ] [ E_EXPORT_STARTED ] < 2 ) { new ignore_drop_ids[ sizeof( g_airBusinessExportData[ ] ) ] = { -1, ... }; @@ -18815,6 +18873,8 @@ public OnPlayerDriveVehicle(playerid, vehicleid) } } + + g_businessData[ businessid ] [ E_EXPORT_STARTED ] = 2; ShowPlayerHelpDialog( playerid, 5000, "Drop the drugs off on the flag blips of your radar." ); } } @@ -19212,7 +19272,7 @@ public OnPlayerEnterDynamicCP(playerid, checkpointid) { if ( checkpointid == g_entranceData[ i ] [ E_ENTER ] ) { - if ( g_entranceData[ i ] [ E_VIP ] && p_VIPLevel[ playerid ] < 1 ) { + if ( g_entranceData[ i ] [ E_VIP ] && p_VIPLevel[ playerid ] < VIP_REGULAR ) { SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); break; } @@ -19337,7 +19397,7 @@ public OnPlayerEnterDynamicArea( playerid, areaid ) } // alert player if hes near the drugs - if ( g_isBusinessVehicle[ iVehicle ] && Iter_Contains( business, g_isBusinessVehicle[ iVehicle ] ) && IsBusinessAerialVehicle( iModel ) ) + if ( g_isBusinessVehicle[ iVehicle ] != -1 && Iter_Contains( business, g_isBusinessVehicle[ iVehicle ] ) && IsBusinessAerialVehicle( iModel ) ) { new businessid = g_isBusinessVehicle[ iVehicle ]; @@ -19578,11 +19638,13 @@ public OnPlayerEnterDynamicRaceCP( playerid, checkpointid ) return 1; } - if ( g_isBusinessVehicle[ iVehicle ] && Iter_Contains( business, g_isBusinessVehicle[ iVehicle ] ) && ! IsBusinessAerialVehicle( GetVehicleModel( iVehicle ) ) ) + printf("Entered Race Checkpoint : {user:%s,veh:%d,biz_veh:%d,valid_biz:%d}", ReturnPlayerName( playerid ), iVehicle, g_isBusinessVehicle[ iVehicle ],Iter_Contains( business, g_isBusinessVehicle[ iVehicle ] )); + if ( g_isBusinessVehicle[ iVehicle ] != -1 && Iter_Contains( business, g_isBusinessVehicle[ iVehicle ] ) && ! IsBusinessAerialVehicle( GetVehicleModel( iVehicle ) ) ) { new businessid = g_isBusinessVehicle[ iVehicle ]; + printf("Is Associate : {user:%s,veh:%d,associate:%d}", ReturnPlayerName( playerid ), iVehicle, IsBusinessAssociate( playerid, businessid )); if ( IsBusinessAssociate( playerid, businessid ) ) { for ( new i = 0; i < MAX_DROPS; i ++ ) @@ -20653,14 +20715,14 @@ public OnPlayerKeyStateChange( playerid, newkeys, oldkeys ) new vehicleid = GetPlayerVehicleID( playerid ); - if ( g_isBusinessVehicle[ vehicleid ] && Iter_Contains( business, g_isBusinessVehicle[ vehicleid ] ) && IsBusinessAerialVehicle( GetVehicleModel( vehicleid ) ) ) + if ( g_isBusinessVehicle[ vehicleid ] != -1 && Iter_Contains( business, g_isBusinessVehicle[ vehicleid ] ) && IsBusinessAerialVehicle( GetVehicleModel( vehicleid ) ) ) { new businessid = g_isBusinessVehicle[ vehicleid ]; if ( IsBusinessAssociate( playerid, businessid ) ) { - static + new tempObject, moveSpeed; for ( new i = 0; i < MAX_DROPS; i ++ ) if ( IsPlayerInDynamicArea( playerid, g_businessData[ businessid ] [ E_EXPORT_CIRCLE ] [ i ] ) ) @@ -20675,11 +20737,16 @@ public OnPlayerKeyStateChange( playerid, newkeys, oldkeys ) GetPlayerPos( playerid, playerZ, playerZ, playerZ ); MapAndreas_FindZ_For2DCoord( g_airBusinessExportData[ city ] [ drop_off_index ] [ 0 ], g_airBusinessExportData[ city ] [ drop_off_index ] [ 1 ], finalZ ); + if ( g_airBusinessExportData[ city ] [ drop_off_index ] [ 2 ] > finalZ + 20.0 ) + finalZ = g_airBusinessExportData[ city ] [ drop_off_index ] [ 2 ]; + + printf("Player Z : %f, Final Z : %f, Diff %f", playerZ, finalZ, playerZ - finalZ ); + if ( playerZ < finalZ + 20.0 ) - return SendError( playerid, "You need to be 20 metres above the building to drop off the drugs." ); + return SendError( playerid, "You need to be HIGHER to drop off the drugs." ); if ( playerZ > finalZ + 70.0 ) - return SendError( playerid, "You need to be 70 metres below the building to drop off the drugs." ); + return SendError( playerid, "You need to be LOWER to drop off the drugs." ); if ( g_businessData[ businessid ] [ E_EXPORTED ] [ i ] ) return SendError( playerid, "This location has already been sold product recently." ); @@ -22184,7 +22251,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) } else { - if ( listitem > 2 && p_VIPLevel[ playerid ] < 1 ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); + if ( listitem > 2 && p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); p_HouseWeaponAddSlot{ playerid } = listitem; ShowPlayerDialog( playerid, DIALOG_HOUSE_WEAPONS_ADD, DIALOG_STYLE_MSGBOX, "{FFFFFF}House Weapon Storage", "{FFFFFF}Would you like to insert your current weapon into this slot?", "Insert", "Back" ); } @@ -22407,8 +22474,9 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if ( ( dialogid == DIALOG_VEHICLE_LOCATE ) && response ) { new - Float: X, Float: Y, Float: Z - ; + Float: X, Float: Y, Float: Z; + + GetPlayerPos( playerid, X, Y, Z ); for( new id, x = 0; id < MAX_BUYABLE_VEHICLES; id ++ ) { @@ -22416,14 +22484,31 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if ( x == listitem ) { - GetVehiclePos( g_vehicleData[ playerid ] [ id ] [ E_VEHICLE_ID ], X, Y, Z ); + if ( GetPlayerCash( playerid ) < 10000 ) + return SendError( playerid, "You need $10,000 to bring your vehicle to you." ); - static aPlayer[ 1 ]; aPlayer[ 0 ] = playerid; - DestroyDynamicMapIcon( p_CarTrackerMapIcon[ playerid ] ); - p_CarTrackerMapIcon[ playerid ] = CreateDynamicMapIconEx( X, Y, Z, 55, 0, MAPICON_GLOBAL, 6000.0, { -1 }, { -1 }, aPlayer ); + new + Float: nodeX, Float: nodeY, Float: nodeZ, Float: nextX, Float: nextY, + nodeid = NearestNodeFromPoint( X, Y, Z ), + nextNodeid = NearestNodeFromPoint( X, Y, Z, 9999.9, nodeid ) + ; - SendServerMessage( playerid, "A car blip has been shown on your radar, follow that to reach your "COL_GREY"%s", GetVehicleName( GetVehicleModel( g_vehicleData[ playerid ] [ id ] [ E_VEHICLE_ID ] ) ) ); - p_SearchingVehicle[ playerid ] = id; + GetNodePos( nextNodeid, nextX, nextY, nodeZ ); + GetNodePos( nodeid, nodeX, nodeY, nodeZ ); + + new + Float: rotation = atan2( nextY - nodeY, nextX - nodeX ) - 90.0; + + SetVehiclePos( g_vehicleData[ playerid ] [ id ] [ E_VEHICLE_ID ], nodeX, nodeY, nodeZ + 1.0 ); + SetVehicleZAngle( g_vehicleData[ playerid ] [ id ] [ E_VEHICLE_ID ], rotation ); + LinkVehicleToInterior( g_vehicleData[ playerid ] [ id ] [ E_VEHICLE_ID ], 0 ); + SetVehicleVirtualWorld( g_vehicleData[ playerid ] [ id ] [ E_VEHICLE_ID ], 0 ); + + // alert + Beep( playerid ); + GivePlayerCash( playerid, -10000 ); + p_VehicleBringCooldown[ playerid ] = g_iTime + 120; + SendServerMessage( playerid, "You have brought your "COL_GREY"%s"COL_WHITE". Check the nearest road for it.", GetVehicleName( GetVehicleModel( g_vehicleData[ playerid ] [ id ] [ E_VEHICLE_ID ] ) ) ); break; } x ++; @@ -22507,7 +22592,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) SetGangColorsToGang( p_GangID[ playerid ] ); } else { - if ( p_VIPLevel[ playerid ] < 1 ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); + if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); ShowPlayerDialog( playerid, DIALOG_GANG_COLOR_INPUT, DIALOG_STYLE_INPUT, "{FFFFFF}Gang Colors", "{FFFFFF}Write a hexidecimal color within the textbox", "Submit", "Cancel" ); } } @@ -22753,7 +22838,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if ( listitem == 0 ) { - if ( p_VIPLevel[ playerid ] < 1 ) + if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You must be a V.I.P to use this, to become one visit "COL_GREY"donate.irresistiblegaming.com" ), 1; ShowPlayerDialog(playerid, DIALOG_RADIO_CUSTOM, DIALOG_STYLE_INPUT, "{FFFFFF}Custom Radio", ""COL_WHITE"Enter the URL below, and streaming will begin.\n\n"COL_ORANGE"Please note, if there isn't a response. It's likely to be an invalid URL.", "Stream", "Back"); @@ -23058,13 +23143,13 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if ( IsPlayerInEvent( playerid ) ) return SendError( playerid, "You cannot use this while you're in an event." ); if ( listitem == 0 ) { - if ( p_VIPLevel[ playerid ] < 4 ) + if ( p_VIPLevel[ playerid ] < VIP_GOLD ) return SendError( playerid, "You must be a GOLD V.I.P to acquire this." ); if ( !IsPlayerInRangeOfPoint( playerid, 5.0, -1966.1591, 852.7100, 1214.2678 ) && !IsPlayerInRangeOfPoint( playerid, 5.0, -1944.1324, 830.0725, 1214.2678 ) && !IsPlayerInRangeOfPoint( playerid, 5.0, 60.3115, 121.5226, 1017.4534 ) ) return SendError( playerid, "You must be near a gun vending machine inside the V.I.P lounge to use this." ); - if ( p_VIPArmourRedeem[ playerid ] > g_iTime && p_VIPLevel[ playerid ] < 6 ) + if ( p_VIPArmourRedeem[ playerid ] > g_iTime && p_VIPLevel[ playerid ] < VIP_DIAMOND ) return SendError( playerid, "You must wait %d seconds to redeem another armour set again.", p_VIPArmourRedeem[ playerid ] - g_iTime ); SetPlayerArmour( playerid, 100.0 ); @@ -23073,7 +23158,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) } else { - if ( p_VIPWeaponRedeem[ playerid ] > g_iTime && p_VIPLevel[ playerid ] < 5 ) + if ( p_VIPWeaponRedeem[ playerid ] > g_iTime && p_VIPLevel[ playerid ] < VIP_PLATINUM ) return SendError( playerid, "You must wait %d seconds to redeem another weapon again.", p_VIPWeaponRedeem[ playerid ] - g_iTime ); new weaponid; @@ -23197,7 +23282,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { showToyCategoryItems( playerid, p_ToyCategorySelected{ playerid } ); - if ( p_VIPLevel[ playerid ] < 1 ) + if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You must be a V.I.P to use this, to become one visit "COL_GREY"donate.irresistiblegaming.com" ), 1; if ( ( ( p_VIPExpiretime[ playerid ] - g_iTime ) / 86400 ) < 3 ) @@ -23366,8 +23451,8 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) } if ( ( dialogid == DIALOG_VIP_WEP ) && response ) { - if ( listitem == 1 && p_VIPLevel[ playerid ] < 4 ) return SendError( playerid, "You can only use this slot if you are a "COL_GOLD"GOLD V.I.P{FFFFFF} or higher." ); - if ( listitem == 2 && p_VIPLevel[ playerid ] < 5 ) return SendError( playerid, "You can only use this slot if you are a "COL_PLATINUM"PLATINUM V.I.P{FFFFFF} or higher." ); + if ( listitem == 1 && p_VIPLevel[ playerid ] < VIP_GOLD ) return SendError( playerid, "You can only use this slot if you are a "COL_GOLD"GOLD V.I.P{FFFFFF} or higher." ); + if ( listitem == 2 && p_VIPLevel[ playerid ] < VIP_DIAMOND ) return SendError( playerid, "You can only use this slot if you are a "COL_PLATINUM"PLATINUM V.I.P{FFFFFF} or higher." ); ShowPlayerDialog( playerid, DIALOG_VIP_WEP_SELECT, DIALOG_STYLE_LIST, "{FFFFFF}Weapon Select", ""COL_RED"Remove Weapon On This Slot\n9mm Pistol\nSilenced Pistol\nDesert Eagle\nShotgun\nSawn-off Shotgun\nSpas 12\nMac 10\nMP5\nAK-47\nM4\nTec 9\nRifle\nSniper", "Select", "Cancel"); p_VIPWep_Modify{ playerid } = listitem; } @@ -23581,7 +23666,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) } case 10: { - if ( p_VIPLevel[ playerid ] < 1 ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); + if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); cmd_vipcmds( playerid, "" ); } } @@ -23729,7 +23814,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) // VIP Check if ( g_BuyableVehicleData[ data_id ] [ E_VIP ] ) { - if ( p_VIPLevel[ playerid ] < 1 ) + if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); if ( ( ( p_VIPExpiretime[ playerid ] - g_iTime ) / 86400 ) < 3 ) @@ -24004,7 +24089,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if ( settingid == SETTING_VIPSKIN ) { - if ( p_VIPLevel[ playerid ] < 1 ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); + if ( p_VIPLevel[ playerid ] < VIP_REGULAR ) return SendError( playerid, "You are not a V.I.P, to become one visit "COL_GREY"donate.irresistiblegaming.com" ); SyncObject( playerid ); ClearAnimations( playerid ); SetPlayerSkin( playerid, p_LastSkin[ playerid ] ); @@ -24910,215 +24995,239 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) } if ( ( dialogid == DIALOG_IC_MARKET ) && response ) { - new - Float: iCoinRequirement = 0.0; + if ( listitem == sizeof( a_vipCoinRequirements ) - 1 ) + return ShowPlayerCoinMarketDialog( playerid, true ); - switch( ( p_CoinMarketListitem{ playerid } = listitem ) ) - { - case 0 .. 5: iCoinRequirement = a_vipCoinRequirements[ 6 - listitem ]; - case 6: iCoinRequirement = 750.0; - case 7: iCoinRequirement = 600.0; - case 8: iCoinRequirement = 600.0; - case 9: iCoinRequirement = 350.0; - case 10: iCoinRequirement = 250.0; - case 11: iCoinRequirement = 100.0; - case 12: iCoinRequirement = 50.0; - } + new + Float: iCoinRequirement = a_vipCoinRequirements[ sizeof( a_vipCoinRequirements ) - 1 - listitem ]; + + p_CoinMarketSecondPage{ playerid } = false; + p_CoinMarketListitem{ playerid } = listitem; if ( listitem != 0 ) // No discount for diamond iCoinRequirement *= GetGVarFloat( "vip_discount" ); return ShowPlayerDialog( playerid, DIALOG_YOU_SURE_VIP, DIALOG_STYLE_MSGBOX, ""COL_GOLD"Irresistible Coin -{FFFFFF} Confirmation", sprintf( ""COL_WHITE"Are you sure that you want to spend %0.2f IC?", iCoinRequirement ), "Yes", "No" ); } + if ( dialogid == DIALOG_IC_MARKET_2 ) + { + if ( ! response ) + return ShowPlayerCoinMarketDialog( playerid ); + + new + Float: iCoinRequirement = 0.0; + + p_CoinMarketSecondPage{ playerid } = true; + p_CoinMarketListitem{ playerid } = listitem; + + // record coin requirements + switch( listitem ) + { + case 0: iCoinRequirement = 750.0; + case 1: iCoinRequirement = 600.0; + case 2: iCoinRequirement = 600.0; + case 3: iCoinRequirement = 350.0; + case 4: iCoinRequirement = 250.0; + case 5: iCoinRequirement = 100.0; + case 6: iCoinRequirement = 50.0; + } + + // apply discount + iCoinRequirement *= GetGVarFloat( "vip_discount" ); + return ShowPlayerDialog( playerid, DIALOG_YOU_SURE_VIP, DIALOG_STYLE_MSGBOX, ""COL_GOLD"Irresistible Coin -{FFFFFF} Confirmation", sprintf( ""COL_WHITE"Are you sure that you want to spend %0.2f IC?", iCoinRequirement ), "Yes", "No" ); + } if ( dialogid == DIALOG_YOU_SURE_VIP ) { if ( !response ) - return ShowPlayerCoinMarketDialog( playerid ); + return ShowPlayerCoinMarketDialog( playerid, p_CoinMarketSecondPage{ playerid } ); new Float: iCoinRequirement; listitem = p_CoinMarketListitem{ playerid }; - switch( listitem ) + if ( ! p_CoinMarketSecondPage{ playerid } ) { - case 0 .. 5: + new + iVipLevel = sizeof( a_vipCoinRequirements ) - 1 - listitem; + + if ( ( iCoinRequirement = a_vipCoinRequirements[ iVipLevel ] * ( iVipLevel == VIP_DIAMOND ? 1.0 : GetGVarFloat( "vip_discount" ) ) ) <= p_IrresistibleCoins[ playerid ] ) { - new - iVipLevel = 6 - listitem; + // Deduct IC + p_IrresistibleCoins[ playerid ] -= iCoinRequirement; - if ( ( iCoinRequirement = a_vipCoinRequirements[ iVipLevel ] * ( iVipLevel == 6 ? 1.0 : GetGVarFloat( "vip_discount" ) ) ) <= p_IrresistibleCoins[ playerid ] ) + // Set VIP Level + SetPlayerVipLevel( playerid, iVipLevel ); + + // Send message + SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[VIP PACKAGE]"COL_WHITE" You have redeemed %s V.I.P for %0.0f Irresistible Coins! Congratulations! :D", VIPToString( iVipLevel ), iCoinRequirement ); + + // Redirect player + if ( iVipLevel == VIP_DIAMOND ) { + ShowPlayerDialog( playerid, DIALOG_DONATED_DIAGOLD, DIALOG_STYLE_INPUT, ""COL_GOLD"Irresistible Gaming Donation", ""COL_WHITE"As you've redeemed Diamond V.I.P, you have the option of gifting Gold VIP to someone.\n\nIf you would like to gift it to yourself, type your name/id or the person you're gifting it to.\n\n"COL_ORANGE"If you just don't know yet, cancel and PM Lorenc on the forum when you make a decision!", "Gift it!", "I'll Think!" ); + } + else if ( iVipLevel == VIP_PLATINUM ) { + ShowPlayerDialog( playerid, DIALOG_DONATED_PLATBRONZE, DIALOG_STYLE_INPUT, ""COL_GOLD"Irresistible Gaming Donation", ""COL_WHITE"As you've redeemed Platinum V.I.P, you have the option of gifting Bronze VIP to someone.\n\nIf you would like to gift it to yourself, type your name/id or the person you're gifting it to.\n\n"COL_ORANGE"If you just don't know yet, cancel and PM Lorenc on the forum when you make a decision!", "Gift it!", "I'll Think!" ); + } + else { - // Deduct IC - p_IrresistibleCoins[ playerid ] -= iCoinRequirement; + ShowPlayerVipRedeemedDialog( playerid ); + } + return 1; + } + else + { + SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); + return ShowPlayerCoinMarketDialog( playerid, p_CoinMarketSecondPage{ playerid } ); + } + } + else + { + switch( listitem ) + { + case 0: + { + if ( ( iCoinRequirement = 750.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) + { + if ( p_ExtraAssetSlots{ playerid } >= MAX_EXTRA_SLOTS ) + { + SendError( playerid, "You have reached the limit of additional slots (limit " #MAX_EXTRA_SLOTS ")." ); + return ShowPlayerCoinMarketDialog( playerid, true ); + } - // Set VIP Level - SetPlayerVipLevel( playerid, iVipLevel ); + // Issue coins and increase assets + p_IrresistibleCoins[ playerid ] -= iCoinRequirement; + p_ExtraAssetSlots{ playerid } ++; - // Send message - SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[VIP PACKAGE]"COL_WHITE" You have redeemed %s V.I.P for %0.0f Irresistible Coins! Congratulations! :D", VIPToString( iVipLevel ), iCoinRequirement ); - - // Redirect player - if ( iVipLevel == 6 ) { - ShowPlayerDialog( playerid, DIALOG_DONATED_DIAGOLD, DIALOG_STYLE_INPUT, ""COL_GOLD"Irresistible Gaming Donation", ""COL_WHITE"As you've redeemed Diamond V.I.P, you have the option of gifting Gold VIP to someone.\n\nIf you would like to gift it to yourself, type your name/id or the person you're gifting it to.\n\n"COL_ORANGE"If you just don't know yet, cancel and PM Lorenc on the forum when you make a decision!", "Gift it!", "I'll Think!" ); - } - else if ( iVipLevel == 5 ) { - ShowPlayerDialog( playerid, DIALOG_DONATED_PLATBRONZE, DIALOG_STYLE_INPUT, ""COL_GOLD"Irresistible Gaming Donation", ""COL_WHITE"As you've redeemed Platinum V.I.P, you have the option of gifting Bronze VIP to someone.\n\nIf you would like to gift it to yourself, type your name/id or the person you're gifting it to.\n\n"COL_ORANGE"If you just don't know yet, cancel and PM Lorenc on the forum when you make a decision!", "Gift it!", "I'll Think!" ); + // Receipt and message + SendServerMessage( playerid, "You have redeemed an "COL_GOLD"extra house and vehicle slot"COL_WHITE" for %0.0f Irresistible Coins!", iCoinRequirement ); + AddPlayerNote( playerid, -1, sprintf( "Bought extra slot, has %d extra", p_ExtraAssetSlots{ playerid } ) ); } else { - ShowPlayerVipRedeemedDialog( playerid ); + SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); + return ShowPlayerCoinMarketDialog( playerid, true ); } - return 1; } - else + case 1: { - SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); - return ShowPlayerCoinMarketDialog( playerid ); - } - } - case 6: - { - if ( ( iCoinRequirement = 750.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) - { - if ( p_ExtraAssetSlots{ playerid } >= MAX_EXTRA_SLOTS ) + if ( ( iCoinRequirement = 600.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) { - SendError( playerid, "You have reached the limit of additional slots (limit " #MAX_EXTRA_SLOTS ")." ); - return ShowPlayerCoinMarketDialog( playerid ); + p_IrresistibleCoins[ playerid ] -= iCoinRequirement; + AddPlayerNote( playerid, -1, ""COL_GOLD"V.I.P Vehicle (IC)" #COL_WHITE ); + SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP vehicle. (/viewnotes)", ReturnPlayerName( playerid ), playerid ); + SendServerMessage( playerid, "You have ordered a "COL_GOLD"V.I.P Vehicle"COL_WHITE" for %0.0f Irresistible Coins!", iCoinRequirement ); + SendServerMessage( playerid, "Online admins have been dispatched and you have been noted for assistance. If you see a head admin, ask them to receive your vehicle." ); } - - // Issue coins and increase assets - p_IrresistibleCoins[ playerid ] -= iCoinRequirement; - p_ExtraAssetSlots{ playerid } ++; - - // Receipt and message - SendServerMessage( playerid, "You have redeemed an "COL_GOLD"extra house and vehicle slot"COL_WHITE" for %0.0f Irresistible Coins!", iCoinRequirement ); - AddPlayerNote( playerid, -1, sprintf( "Bought extra slot, has %d extra", p_ExtraAssetSlots{ playerid } ) ); - } - else - { - SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); - return ShowPlayerCoinMarketDialog( playerid ); - } - } - case 7: - { - if ( ( iCoinRequirement = 600.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) - { - p_IrresistibleCoins[ playerid ] -= iCoinRequirement; - AddPlayerNote( playerid, -1, ""COL_GOLD"V.I.P Vehicle (IC)" #COL_WHITE ); - SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP vehicle. (/viewnotes)", ReturnPlayerName( playerid ), playerid ); - SendServerMessage( playerid, "You have ordered a "COL_GOLD"V.I.P Vehicle"COL_WHITE" for %0.0f Irresistible Coins!", iCoinRequirement ); - SendServerMessage( playerid, "Online admins have been dispatched and you have been noted for assistance. If you see a head admin, ask them to receive your vehicle." ); - } - else - { - SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); - return ShowPlayerCoinMarketDialog( playerid ); - } - } - case 8: - { - if ( ( iCoinRequirement = 600.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) - { - p_IrresistibleCoins[ playerid ] -= iCoinRequirement; - AddPlayerNote( playerid, -1, ""COL_GOLD"V.I.P House (IC)" #COL_WHITE ); - SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP house. (/viewnotes)", ReturnPlayerName( playerid ), playerid ); - SendServerMessage( playerid, "You have ordered a "COL_GOLD"V.I.P House"COL_WHITE" for %0.0f Irresistible Coins!", iCoinRequirement ); - SendServerMessage( playerid, "Online admins have been dispatched and you have been noted for assistance. If you see a head admin, ask them to receive your house." ); - } - else - { - SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); - return ShowPlayerCoinMarketDialog( playerid ); - } - } - case 9: - { - if ( ( iCoinRequirement = 350.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) - { - p_IrresistibleCoins[ playerid ] -= iCoinRequirement; - AddPlayerNote( playerid, -1, ""COL_GOLD"Custom Gate (IC)" #COL_WHITE ); - SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a custom gate. (/viewnotes)", ReturnPlayerName( playerid ), playerid ); - SendServerMessage( playerid, "You have ordered a "COL_GOLD"Custom Gate"COL_WHITE" for %0.0f Irresistible Coins!", iCoinRequirement ); - SendServerMessage( playerid, "Online admins have been dispatched and you have been noted for assistance. If you see a head admin, ask them to receive your custom gate." ); - } - else - { - SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); - return ShowPlayerCoinMarketDialog( playerid ); - } - } - case 10: - { - if ( ( iCoinRequirement = 250.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) - { - p_IrresistibleCoins[ playerid ] -= iCoinRequirement; - AddPlayerNote( playerid, -1, ""COL_GOLD"V.I.P Garage (IC)" #COL_WHITE ); - SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP garage. (/viewnotes)", ReturnPlayerName( playerid ), playerid ); - SendServerMessage( playerid, "You have ordered a "COL_GOLD"V.I.P Garage"COL_WHITE" for %0.0f Irresistible Coins!", iCoinRequirement ); - SendServerMessage( playerid, "Online admins have been dispatched and you have been noted for assistance. If you see a head admin, ask them to receive your garage." ); - } - else - { - SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); - return ShowPlayerCoinMarketDialog( playerid ); - } - } - case 11: - { - if ( ( iCoinRequirement = 100.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) - { - new - ownerid = INVALID_PLAYER_ID, - vehicleid = GetPlayerVehicleID( playerid ), - buyableid = getVehicleSlotFromID( vehicleid, ownerid ), - modelid = GetVehicleModel( vehicleid ) - ; - - if ( !vehicleid ) SendError( playerid, "You need to be in a vehicle to use this command." ); - else if ( buyableid == -1 ) SendError( playerid, "This vehicle isn't a buyable vehicle." ); - else if ( playerid != ownerid ) SendError( playerid, "You are not the owner of this vehicle." ); - else if ( IsBoatVehicle( modelid ) || IsAirVehicle( modelid ) ) SendError( playerid, "You cannot apply gold rims to this type of vehicle." ); else { - if ( AddVehicleComponent( vehicleid, 1080 ) ) - { - if ( UpdateBuyableVehicleMods( playerid, buyableid ) ) - { - new - szMods[ MAX_CAR_MODS * 10 ]; - - for( new i; i < MAX_CAR_MODS; i++ ) - format( szMods, sizeof( szMods ), "%s%d.", szMods, g_vehicleModifications[ playerid ] [ buyableid ] [ i ] ); - - format( szBigString, sizeof( szBigString ), "UPDATE `VEHICLES` SET `MODS`='%s' WHERE `ID`=%d", szMods, g_vehicleData[ playerid ] [ buyableid ] [ E_SQL_ID ] ); - mysql_single_query( szBigString ); - } - - p_IrresistibleCoins[ playerid ] -= iCoinRequirement; - SendServerMessage( playerid, "You have redeemed "COL_GOLD"Gold Rims"COL_WHITE" on your vehicle for %0.0f Irresistible Coins!", iCoinRequirement ); - - // Receipt - AddPlayerNote( playerid, -1, sprintf( "Bought gold rims on vehicle #%d", g_vehicleData[ playerid ] [ buyableid ] [ E_SQL_ID ] ) ); - } - else SendError( playerid, "We were unable to place gold rims on this vehicle (0xF92D)." ); - } - return ShowPlayerCoinMarketDialog( playerid ); + SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); + return ShowPlayerCoinMarketDialog( playerid, true ); + } } - else + case 2: { - SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); - return ShowPlayerCoinMarketDialog( playerid ); + if ( ( iCoinRequirement = 600.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) + { + p_IrresistibleCoins[ playerid ] -= iCoinRequirement; + AddPlayerNote( playerid, -1, ""COL_GOLD"V.I.P House (IC)" #COL_WHITE ); + SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP house. (/viewnotes)", ReturnPlayerName( playerid ), playerid ); + SendServerMessage( playerid, "You have ordered a "COL_GOLD"V.I.P House"COL_WHITE" for %0.0f Irresistible Coins!", iCoinRequirement ); + SendServerMessage( playerid, "Online admins have been dispatched and you have been noted for assistance. If you see a head admin, ask them to receive your house." ); + } + else + { + SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); + return ShowPlayerCoinMarketDialog( playerid, true ); + } } + case 3: + { + if ( ( iCoinRequirement = 350.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) + { + p_IrresistibleCoins[ playerid ] -= iCoinRequirement; + AddPlayerNote( playerid, -1, ""COL_GOLD"Custom Gate (IC)" #COL_WHITE ); + SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a custom gate. (/viewnotes)", ReturnPlayerName( playerid ), playerid ); + SendServerMessage( playerid, "You have ordered a "COL_GOLD"Custom Gate"COL_WHITE" for %0.0f Irresistible Coins!", iCoinRequirement ); + SendServerMessage( playerid, "Online admins have been dispatched and you have been noted for assistance. If you see a head admin, ask them to receive your custom gate." ); + } + else + { + SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); + return ShowPlayerCoinMarketDialog( playerid, true ); + } + } + case 4: + { + if ( ( iCoinRequirement = 250.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) + { + p_IrresistibleCoins[ playerid ] -= iCoinRequirement; + AddPlayerNote( playerid, -1, ""COL_GOLD"V.I.P Garage (IC)" #COL_WHITE ); + SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP garage. (/viewnotes)", ReturnPlayerName( playerid ), playerid ); + SendServerMessage( playerid, "You have ordered a "COL_GOLD"V.I.P Garage"COL_WHITE" for %0.0f Irresistible Coins!", iCoinRequirement ); + SendServerMessage( playerid, "Online admins have been dispatched and you have been noted for assistance. If you see a head admin, ask them to receive your garage." ); + } + else + { + SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); + return ShowPlayerCoinMarketDialog( playerid, true ); + } + } + case 5: + { + if ( ( iCoinRequirement = 100.0 * GetGVarFloat( "vip_discount" ) ) <= p_IrresistibleCoins[ playerid ] ) + { + new + ownerid = INVALID_PLAYER_ID, + vehicleid = GetPlayerVehicleID( playerid ), + buyableid = getVehicleSlotFromID( vehicleid, ownerid ), + modelid = GetVehicleModel( vehicleid ) + ; + + if ( !vehicleid ) SendError( playerid, "You need to be in a vehicle to use this command." ); + else if ( buyableid == -1 ) SendError( playerid, "This vehicle isn't a buyable vehicle." ); + else if ( playerid != ownerid ) SendError( playerid, "You are not the owner of this vehicle." ); + else if ( IsBoatVehicle( modelid ) || IsAirVehicle( modelid ) ) SendError( playerid, "You cannot apply gold rims to this type of vehicle." ); + else + { + if ( AddVehicleComponent( vehicleid, 1080 ) ) + { + if ( UpdateBuyableVehicleMods( playerid, buyableid ) ) + { + new + szMods[ MAX_CAR_MODS * 10 ]; + + for( new i; i < MAX_CAR_MODS; i++ ) + format( szMods, sizeof( szMods ), "%s%d.", szMods, g_vehicleModifications[ playerid ] [ buyableid ] [ i ] ); + + format( szBigString, sizeof( szBigString ), "UPDATE `VEHICLES` SET `MODS`='%s' WHERE `ID`=%d", szMods, g_vehicleData[ playerid ] [ buyableid ] [ E_SQL_ID ] ); + mysql_single_query( szBigString ); + } + + p_IrresistibleCoins[ playerid ] -= iCoinRequirement; + SendServerMessage( playerid, "You have redeemed "COL_GOLD"Gold Rims"COL_WHITE" on your vehicle for %0.0f Irresistible Coins!", iCoinRequirement ); + + // Receipt + AddPlayerNote( playerid, -1, sprintf( "Bought gold rims on vehicle #%d", g_vehicleData[ playerid ] [ buyableid ] [ E_SQL_ID ] ) ); + } + else SendError( playerid, "We were unable to place gold rims on this vehicle (0xF92D)." ); + } + return ShowPlayerCoinMarketDialog( playerid, true ); + } + else + { + SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); + return ShowPlayerCoinMarketDialog( playerid, true ); + } + } + case 6: ShowPlayerDialog( playerid, DIALOG_CHANGENAME, DIALOG_STYLE_INPUT, "Change your name", ""COL_WHITE"What would you like your new name to be? And also, double check!", "Change", "Back" ); } - case 12: ShowPlayerDialog( playerid, DIALOG_CHANGENAME, DIALOG_STYLE_INPUT, "Change your name", ""COL_WHITE"What would you like your new name to be? And also, double check!", "Change", "Back" ); } } if ( dialogid == DIALOG_CHANGENAME ) { if ( !response ) - return ShowPlayerCoinMarketDialog( playerid ); + return ShowPlayerCoinMarketDialog( playerid, true ); static Float: iCoinRequirement; @@ -25139,7 +25248,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) else { SendError( playerid, "You need around %0.2f coins before you can get this!", iCoinRequirement - p_IrresistibleCoins[ playerid ] ); - return ShowPlayerCoinMarketDialog( playerid ); + return ShowPlayerCoinMarketDialog( playerid, true ); } } if ( dialogid == DIALOG_DONATED_PLATBRONZE ) @@ -25162,7 +25271,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) else { SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[V.I.P]"COL_WHITE" You have gifted Bronze V.I.P to %s(%d)!", ReturnPlayerName( pID ), pID ); - SetPlayerVipLevel( pID, 2 ); + SetPlayerVipLevel( pID, VIP_BRONZE ); ShowPlayerVipRedeemedDialog( playerid ); } } @@ -25193,7 +25302,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) else { SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[V.I.P]"COL_WHITE" You have gifted Gold V.I.P to %s(%d)!", ReturnPlayerName( pID ), pID ); - SetPlayerVipLevel( pID, 4 ); + SetPlayerVipLevel( pID, VIP_GOLD ); ShowPlayerVipRedeemedDialog( playerid ); } } @@ -25579,149 +25688,6 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) format( szLargeString, sizeof( szLargeString ), ""COL_GOLD"Thank you for your feedback!"COL_WHITE" If it can make a positive impact on the server then you will be rewarded.\n\nYou can speak as freely as you want. Be vulgar, serious if you need to. It's okay as long as it's constructive.\n\nHere is what you have submitted!\n\n"COL_GREY"%s", szFeedback ); return ShowPlayerDialog( playerid, DIALOG_NULL, DIALOG_STYLE_MSGBOX, ""COL_GOLD"Server Feedback", szLargeString, "Close", "" ); } - if ( ( dialogid == DIALOG_MAP_TAX ) && response ) - { - new - x = 0; - - foreach(new i : Mapping) - { - if ( g_mappingData[ i ] [ E_ACCOUNT_ID ] == p_AccountID[ playerid ] ) - { - if ( x == listitem ) - { - SetPVarInt( playerid, "maptax_mappingid", i ); - return ShowMappingTaxOptions( playerid, i ); - } - x ++; - } - } - - if ( listitem - x == 0 ) - { - new - Float: totalCost = 0.0; - - foreach(new mappingid : Mapping) if ( g_mappingData[ mappingid ] [ E_ACCOUNT_ID ] == p_AccountID[ playerid ] ) { - totalCost += float( g_mappingData[ mappingid ] [ E_OBJECTS ] ) * g_mappingData[ mappingid ] [ E_COST ]; - } - - if ( p_IrresistibleCoins[ playerid ] < totalCost ) - return SendError( playerid, "You need %0.2f more IC in order to renew this mapping.", totalCost - p_IrresistibleCoins[ playerid ] ), cmd_mymaps( playerid, "" ); - - // Generate receipt - format( szNormalString, sizeof( szNormalString ), "INSERT INTO `MAP_TAX_RECEIPTS` (`USER_ID`, `MAPPING_ID`, `COINS`, `CASH`) VALUES (%d, -1, %f, 0)", p_AccountID[ playerid ], totalCost ); - mysql_function_query( dbHandle, szNormalString, true, "OnMapTaxReceiptCreated", "d", playerid ); - - // Apply 1 month && deduct coins - p_IrresistibleCoins[ playerid ] -= totalCost; - - foreach(new mappingid : Mapping) if ( g_mappingData[ mappingid ] [ E_ACCOUNT_ID ] == p_AccountID[ playerid ] ) { - RenewMappingTax( mappingid, ReturnPlayerName( playerid ) ); - } - - // Alert user - SendServerMessage( playerid, "You have renewed all your mappings another month for "COL_GOLD"%0.2f IC"COL_WHITE".", totalCost ); - } - return 1; - } - if ( dialogid == DIALOG_MAP_TAX_PAY ) - { - if ( ! response ) - return cmd_mymaps( playerid, "" ); - - new - mappingid = GetPVarInt( playerid, "maptax_mappingid" ); - - if ( ! Iter_Contains( Mapping, mappingid ) ) - return SendError( playerid, "An invalid map was selected. Try again." ); - - if ( g_mappingData[ mappingid ] [ E_ACCOUNT_ID ] != p_AccountID[ playerid ] ) - return SendError( playerid, "You must be the owner of this map." ); - - switch ( listitem ) - { - case 0: - { - new - Float: coinCost = float( g_mappingData[ mappingid ] [ E_OBJECTS ] ) * g_mappingData[ mappingid ] [ E_COST ]; - - if ( p_IrresistibleCoins[ playerid ] < coinCost ) - return SendError( playerid, "You need %0.2f more IC in order to renew this mapping.", coinCost - p_IrresistibleCoins[ playerid ] ), ShowMappingTaxOptions( playerid, mappingid ); - - // Generate receipt - format( szNormalString, sizeof( szNormalString ), "INSERT INTO `MAP_TAX_RECEIPTS` (`USER_ID`, `MAPPING_ID`, `COINS`, `CASH`) VALUES (%d, %d, %f, 0)", p_AccountID[ playerid ], mappingid, coinCost ); - mysql_function_query( dbHandle, szNormalString, true, "OnMapTaxReceiptCreated", "d", playerid ); - - // Apply 1 month && deduct coins - p_IrresistibleCoins[ playerid ] -= coinCost; - RenewMappingTax( mappingid, ReturnPlayerName( playerid ) ); - SendServerMessage( playerid, "Successfully mapping renewed for "COL_GOLD"%0.2f IC"COL_WHITE". Expires in "COL_GREY"%s"COL_WHITE".", coinCost, secondstotime( g_mappingData[ mappingid ] [ E_RENEWAL_TIMESTAMP ] - g_iTime ) ); - } - case 1: - { - new - cashCost = g_mappingData[ mappingid ] [ E_OBJECTS ] * floatround( IC_CASH_VALUE * g_mappingData[ mappingid ] [ E_COST ] ); - - if ( GetPlayerCash( playerid ) < cashCost ) - return SendError( playerid, "You need %s more in order to renew this mapping.", ConvertPrice( cashCost - GetPlayerCash( playerid ) ) ), ShowMappingTaxOptions( playerid, mappingid ); - - // Generate receipt - format( szNormalString, sizeof( szNormalString ), "INSERT INTO `MAP_TAX_RECEIPTS` (`USER_ID`, `MAPPING_ID`, `COINS`, `CASH`) VALUES (%d, %d, 0.0, %d)", p_AccountID[ playerid ], mappingid, cashCost ); - mysql_function_query( dbHandle, szNormalString, true, "OnMapTaxReceiptCreated", "d", playerid ); - - // Apply 1 month && deduct coins - GivePlayerCash( playerid, -cashCost ); - RenewMappingTax( mappingid, ReturnPlayerName( playerid ) ); - SendServerMessage( playerid, "Successfully mapping renewed for "COL_GOLD"%s"COL_WHITE". Expires in "COL_GREY"%s"COL_WHITE".", ConvertPrice( cashCost ), secondstotime( g_mappingData[ mappingid ] [ E_RENEWAL_TIMESTAMP ] - g_iTime ) ); - } - case 2: - { - ShowPlayerDialog( playerid, DIALOG_MAP_TAX_TRANSFER, DIALOG_STYLE_INPUT, sprintf( ""COL_GOLD"Customization Tax - %s", g_mappingData[ mappingid ] [ E_DESCRIPTION ] ), ""COL_WHITE"Enter the player name or id of whom you wish to transfer the customization to.\n\n"COL_ORANGE"Note: the player must be online.", "Transfer", "Back" ); - } - } - return 1; - } - - if ( dialogid == DIALOG_MAP_TAX_TRANSFER ) - { - new - mappingid = GetPVarInt( playerid, "maptax_mappingid" ); - - if ( ! Iter_Contains( Mapping, mappingid ) ) - return SendError( playerid, "An invalid map was selected. Try again." ); - - if ( g_mappingData[ mappingid ] [ E_ACCOUNT_ID ] != p_AccountID[ playerid ] ) - return SendError( playerid, "You must be the owner of this map." ); - - if ( response ) - { - new - pID; - - if ( sscanf( inputtext, #sscanf_u, pID ) ) - { - SendError( playerid, "This value must be numerical." ); - return ShowPlayerDialog( playerid, DIALOG_MAP_TAX_TRANSFER, DIALOG_STYLE_INPUT, sprintf( ""COL_GOLD"Customization Tax - %s", g_mappingData[ mappingid ] [ E_DESCRIPTION ] ), ""COL_WHITE"Enter the player name or id of whom you wish to transfer the customization to.\n\n"COL_ORANGE"Note: the player must be online.", "Transfer", "Back" ); - } - else if ( !IsPlayerConnected( pID ) || IsPlayerNPC( pID ) ) - { - SendError( playerid, "Invalid Player ID." ); - return ShowPlayerDialog( playerid, DIALOG_MAP_TAX_TRANSFER, DIALOG_STYLE_INPUT, sprintf( ""COL_GOLD"Customization Tax - %s", g_mappingData[ mappingid ] [ E_DESCRIPTION ] ), ""COL_WHITE"Enter the player name or id of whom you wish to transfer the customization to.\n\n"COL_ORANGE"Note: the player must be online.", "Transfer", "Back" ); - } - - printf("MAP TAX TRANSFER %d - %d to %d", g_mappingData[ mappingid ] [ E_SQL_ID ], p_AccountID[ playerid ], p_AccountID[ pID ] ); - g_mappingData[ mappingid ] [ E_ACCOUNT_ID ] = p_AccountID[ pID ]; - UpdateMappingTaxLabel( mappingid, ReturnPlayerName( pID ) ); - mysql_single_query( sprintf( "UPDATE `MAP_TAX` SET `USER_ID`=%d WHERE `ID`=%d", p_AccountID[ pID ], g_mappingData[ mappingid ] [ E_SQL_ID ] ) ); - SendServerMessage( playerid, "You have transferred the house customization rights to "COL_GREY"%s"COL_WHITE".", ReturnPlayerName( pID ) ); - } - else - { - ShowMappingTaxOptions( playerid, mappingid ); - } - return 1; - } if ( ( dialogid == DIALOG_RACE ) && response ) { new @@ -25959,11 +25925,14 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) // rename business case 0: ShowPlayerDialog( playerid, DIALOG_BUSINESS_NAME, DIALOG_STYLE_INPUT, ""COL_GREY"Business System", sprintf( ""COL_WHITE"The current business name is %s\n\n"COL_WHITE"Enter below the new name for it", g_businessData[ businessid ] [ E_NAME ] ), "Update", "Back" ); + // bank account + case 1: ShowPlayerDialog( playerid, DIALOG_BUSINESS_WITHDRAW, DIALOG_STYLE_INPUT, ""COL_GREY"Business System", sprintf( ""COL_WHITE"Enter the amount that you are willing to withdraw from your business bank account.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", ConvertPrice( g_businessData[ businessid ] [ E_BANK ] ) ), "Withdraw", "Back" ); + // add members - case 1: ShowBusinessMembers( playerid, businessid ); + case 2: ShowBusinessMembers( playerid, businessid ); // sell stock - case 2: + case 3: { new prod = GetProductPrice( business_type ), prod_hardened = GetProductPrice( business_type, true ); @@ -25977,13 +25946,40 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) } // buy stock - case 3: ShowPlayerDialog( playerid, DIALOG_BUSINESS_BUY, DIALOG_STYLE_TABLIST_HEADERS, ""COL_GREY"Business System", sprintf( ""COL_WHITE"Your business has %d supplies\t \nBuy Supply\t%s\nSteal Supplies\t"COL_YELLOW"FREE", g_businessData[ businessid ] [ E_SUPPLIES ], ConvertPrice( GetResupplyPrice( business_type ) ) ), "Select", "Back" ); + case 4: ShowPlayerDialog( playerid, DIALOG_BUSINESS_BUY, DIALOG_STYLE_TABLIST_HEADERS, ""COL_GREY"Business System", sprintf( ""COL_WHITE"Your business has %d supplies\t \nBuy Supply\t%s\nSteal Supplies\t"COL_YELLOW"FREE", g_businessData[ businessid ] [ E_SUPPLIES ], ConvertPrice( GetResupplyPrice( business_type ) ) ), "Select", "Back" ); // upgrade - case 4: ShowBusinessTerminal( playerid ), SendError( playerid, "This feature is currently under construction." ); + case 5: ShowBusinessTerminal( playerid ), SendError( playerid, "This feature is currently under construction." ); } return 1; } + if ( dialogid == DIALOG_BUSINESS_WITHDRAW ) + { + new + businessid = p_InBusiness[ playerid ]; + + if ( ! Iter_Contains( business, businessid ) || g_businessData[ businessid ] [ E_OWNER_ID ] != p_AccountID[ playerid ] ) + return SendError( playerid, "You must be the owner of the business to use this feature." ); + + if ( ! response ) + return ShowBusinessTerminal( playerid ); + + new + iWithdraw; + + if ( sscanf( inputtext, "d", iWithdraw ) ) SendError( playerid, "Invalid amount specified." ); + else if ( iWithdraw > 99999999 || iWithdraw < 0 ) SendError( playerid, "Invalid amount specified." ); + else if ( iWithdraw > g_businessData[ businessid ] [ E_BANK ] ) SendError( playerid, "The business bank account does not have this much money." ); + else + { + g_businessData[ businessid ] [ E_BANK ] -= iWithdraw; + GivePlayerCash( playerid, iWithdraw ); + UpdateBusinessData( businessid ); + UpdateBusinessProductionLabel( businessid ); + SendServerMessage( playerid, "You have withdrawn %s from your business account.", ConvertPrice( iWithdraw ) ); + } + return ShowPlayerDialog( playerid, DIALOG_BUSINESS_WITHDRAW, DIALOG_STYLE_INPUT, ""COL_GREY"Business System", sprintf( ""COL_WHITE"Enter the amount that you are willing to withdraw from your business bank account.\n\n"COL_GREY"Current Balance:"COL_WHITE" %s", ConvertPrice( g_businessData[ businessid ] [ E_BANK ] ) ), "Withdraw", "Back" ); + } if ( dialogid == DIALOG_BUSINESS_MEMBERS ) { new @@ -26004,6 +26000,12 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if ( x == listitem ) { + // alert player if online + foreach (new p : Player) if ( g_businessData[ businessid ] [ E_MEMBERS ] [ i ] == p_AccountID[ p ] ) { + SendServerMessage( p, "You have been removed as a member of "COL_GREY"%s"COL_WHITE".", g_businessData[ businessid ] [ E_NAME ] ); + break; + } + // null entry g_businessData[ businessid ] [ E_MEMBERS ] [ i ] = 0; @@ -26053,6 +26055,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) else { // add member in + p_OwnedBusinesses[ memberid ] ++; g_businessData[ businessid ] [ E_MEMBERS ] [ slotid ] = p_AccountID[ memberid ]; // alert and save @@ -26084,6 +26087,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) SendError( playerid, "Please make sure your business name is between 3 and 32 characters." ); } else { format( g_businessData[ businessid ] [ E_NAME ], 32, "%s", inputtext ); + UpdateBusinessData( businessid ), UpdateBusinessTitle( businessid ); SendServerMessage( playerid, "The business name has now been set to "COL_GREY"%s"COL_WHITE".", g_businessData[ businessid ] [ E_NAME ] ); } return ShowPlayerDialog( playerid, DIALOG_BUSINESS_NAME, DIALOG_STYLE_INPUT, ""COL_GREY"Business System", sprintf( ""COL_WHITE"The current business name is %s\n\n"COL_WHITE"Enter below the new name for it", g_businessData[ businessid ] [ E_NAME ] ), "Update", "Back" ); @@ -26105,10 +26109,15 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if ( current_product_levels - MAX_DROPS < 0 ) return SendError( playerid, "Your business needs %d more product to allow for distribution.", MAX_DROPS - current_product_levels ); + if ( g_businessData[ businessid ] [ E_EXPORT_STARTED ] ) + return SendError( playerid, "Product exporting has already started for the business." ); + // destroy preexisting shit incase StopBusinessExportMission( businessid ); // update product levels + g_businessData[ businessid ] [ E_EXPORT_STARTED ] = 1; + g_businessData[ businessid ] [ E_EXPORTED_AMOUNT ] = 0; g_businessData[ businessid ] [ E_PRODUCT ] -= MAX_DROPS; UpdateBusinessProductionLabel( businessid ); @@ -26161,6 +26170,9 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if ( GetPlayerCash( playerid ) < price ) return ShowBusinessTerminal( playerid ), SendError( playerid, "You don't have enough money to resupply your business." ); + if ( g_businessData[ businessid ] [ E_PRODUCT ] >= g_businessInteriorData[ business_type ] [ E_MAX_SUPPLIES ] * 3 ) + return ShowBusinessTerminal( playerid ), SendError( playerid, "Your business has too much product that has not been exported yet." ); + // commence GivePlayerCash( playerid, -price ); g_businessData[ businessid ] [ E_SUPPLIES ] ++; @@ -26658,7 +26670,7 @@ stock SavePlayerData( playerid, bool: logout = false ) p_AccountID[ playerid ] ); - printf ("[%s][1] Exited Server With Gang ID, save len %d", ReturnPlayerName( playerid ), gangid, strlen( Query ) ); + printf ("[%s][1] Exited Server With Gang ID %d, save len %d", ReturnPlayerName( playerid ), gangid, strlen( Query ) ); mysql_single_query( Query ); @@ -27328,12 +27340,15 @@ stock SendClientMessageFormatted( playerid, colour, format[ ], va_args<> ) stock SendClientMessageToGang( gangid, colour, format[ ], va_args<> ) // Conversion to foreach 14 stuffed the define, not sure how... { - va_format( szNormalString, sizeof( szNormalString ), format, va_start<3> ); + static + out[ 144 ]; + + va_format( out, sizeof( out ), format, va_start<3> ); foreach(new i : Player) { if ( ( p_GangID[ i ] == gangid || p_ViewingGangTalk[ i ] == gangid ) && p_Class[ i ] == CLASS_CIVILIAN ) - SendClientMessage( i, colour, szNormalString ); + SendClientMessage( i, colour, out ); } return 1; } @@ -27830,13 +27845,11 @@ thread OnAdvanceBanCheck( playerid, szBannedBy[ ], szReason[ ], szIP[ ], lol_tim if ( !enabled ) { format( szLargeString, sizeof( szLargeString ), "INSERT INTO `BANS`(`NAME`,`IP`,`REASON`,`BANBY`,`DATE`,`EXPIRE`,`SERVER`,`SERIAL`) VALUES ('%s','%s','%s','%s',%d,%d,0,'%s')", mysql_escape( szPlayerNameBanned ), mysql_escape( szIP ), mysql_escape( szReason ), mysql_escape( szBannedBy ), g_iTime, lol_time, mysql_escape( szSerial ) ); - print( szLargeString ); } else { // include country why not - format( szLargeString, sizeof( szLargeString ), "INSERT INTO `BANS`(`NAME`,`IP`,`REASON`,`BANBY`,`DATE`,`EXPIRE`,`SERVER`,`SERIAL`,`COUNTRY`) VALUES ('%s','%s','%s','%s',%d,%d,0,'%s','%s','%s')", mysql_escape( szPlayerNameBanned ), mysql_escape( szIP ), mysql_escape( szReason ), mysql_escape( szBannedBy ), g_iTime, lol_time, mysql_escape( szSerial ), mysql_escape( GetPlayerCountryCode( playerid ) ) ); - print( szLargeString ); + format( szLargeString, sizeof( szLargeString ), "INSERT INTO `BANS`(`NAME`,`IP`,`REASON`,`BANBY`,`DATE`,`EXPIRE`,`SERVER`,`SERIAL`,`COUNTRY`) VALUES ('%s','%s','%s','%s',%d,%d,0,'%s','%s')", mysql_escape( szPlayerNameBanned ), mysql_escape( szIP ), mysql_escape( szReason ), mysql_escape( szBannedBy ), g_iTime, lol_time, mysql_escape( szSerial ), mysql_escape( GetPlayerCountryCode( playerid ) ) ); } mysql_single_query( szLargeString ); @@ -29941,7 +29954,7 @@ stock RemovePlayerFromGang( playerid, E_GANG_LEAVE_REASON: reason = GANG_LEAVE_U // wouldn't make sense to keep the coleader in any gang mysql_single_query( sprintf( "DELETE FROM `GANG_COLEADERS` WHERE `USER_ID`=%d", p_AccountID[ playerid ] ) ); - mysql_single_query( sprintf( "UPDATE `USERS` SET `GANG_ID`=-1 WHERE `USER_ID`=%d", p_AccountID[ playerid ] ) ); + mysql_single_query( sprintf( "UPDATE `USERS` SET `GANG_ID`=-1 WHERE `ID`=%d", p_AccountID[ playerid ] ) ); printf("[%s] Gang ID after leaving is %d", ReturnPlayerName( playerid ), p_GangID[ playerid ] ); @@ -30204,12 +30217,11 @@ stock VIPToString( viplvl ) switch( viplvl ) { - case 6: string = "Diamond"; - case 5: string = "Platinum"; - case 4: string = "Gold"; - case 3: string = "Silver"; - case 2: string = "Bronze"; - case 1: string = "Regular"; + case VIP_DIAMOND: string = "Diamond"; + case VIP_PLATINUM: string = "Platinum"; + case VIP_GOLD: string = "Gold"; + case VIP_BRONZE: string = "Bronze"; + case VIP_REGULAR: string = "Regular"; default: string = "N/A"; } return string; @@ -30654,7 +30666,7 @@ stock secondstotime(seconds, const delimiter[] = ", ", start = 0, end = -1) erase(string); - for(new i = start != 0 ? start : (sizeof(times) - 1); i != end; i--) + for(new i = start != 0 ? start : (sizeof(times) - 1); i != end; i--) { if (seconds / times[i]) { @@ -31595,25 +31607,22 @@ stock getPlayerBusinessCapacity( playerid ) switch( p_VIPLevel[ playerid ] ) { - case 6: + case VIP_DIAMOND: // dia slots = 10; - case 5: + case VIP_PLATINUM: // plat + slots = 6; + + case VIP_GOLD: // gold slots = 5; - case 4: + case VIP_BRONZE: // bronze slots = 4; - case 3: + case VIP_REGULAR: // regular slots = 3; - - case 2: - slots = 2; - - case 1: - slots = 1; } - return slots + p_ExtraAssetSlots{ playerid }; + return slots; } stock getPlayerVehicleCapacity( playerid ) @@ -31623,22 +31632,19 @@ stock getPlayerVehicleCapacity( playerid ) switch( p_VIPLevel[ playerid ] ) { - case 6: + case VIP_DIAMOND: slots = 20; - case 5: + case VIP_PLATINUM: slots = 10; - case 4: + case VIP_GOLD: slots = 8; - case 3: - slots = 7; - - case 2: + case VIP_BRONZE: slots = 6; - case 1: + case VIP_REGULAR: slots = 5; } return slots + p_ExtraAssetSlots{ playerid }; @@ -31651,22 +31657,19 @@ stock getPlayerHouseCapacity( playerid ) switch( p_VIPLevel[ playerid ] ) { - case 6: + case VIP_DIAMOND: slots = 20; - case 5: + case VIP_PLATINUM: slots = 10; - case 4: + case VIP_GOLD: slots = 8; - case 3: - slots = 7; - - case 2: + case VIP_BRONZE: slots = 6; - case 1: + case VIP_REGULAR: slots = 5; } return slots + p_ExtraAssetSlots{ playerid }; @@ -32168,25 +32171,17 @@ stock SetPlayerVipLevel( pID, level, bool: gifted = false ) switch( level ) { - case 1: GivePlayerXP( pID, 2000 ), GivePlayerCash( pID, 500000 ); - case 2: + case VIP_REGULAR: GivePlayerXP( pID, 2000 ), GivePlayerCash( pID, 500000 ); + case VIP_BRONZE: { if ( !gifted ) { - SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP house. (/viewnotes)", ReturnPlayerName( pID ), pID ); + SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP house & Land Vehicle. (/viewnotes)", ReturnPlayerName( pID ), pID ); AddPlayerNote( pID, -1, ""COL_GOLD"V.I.P House (Bronze)" #COL_WHITE ); + AddPlayerNote( pID, -1, ""COL_GOLD"V.I.P Land Vehicle (Bronze)" #COL_WHITE ); } GivePlayerXP( pID, 5000 ), GivePlayerCash( pID, 2500000 ); } - case 3: - { - if ( !gifted ) { - SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP house and on-land vehicle. (/viewnotes)", ReturnPlayerName( pID ), pID ); - AddPlayerNote( pID, -1, ""COL_GOLD"V.I.P House (Silver)" #COL_WHITE ); - AddPlayerNote( pID, -1, ""COL_GOLD"V.I.P On-Land Vehicle" #COL_WHITE ); - } - GivePlayerXP( pID, 7000 ), GivePlayerCash( pID, 4000000 ); - } - case 4: + case VIP_GOLD: { if ( !gifted ) { SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP house and vehicle. (/viewnotes)", ReturnPlayerName( pID ), pID ); @@ -32195,7 +32190,7 @@ stock SetPlayerVipLevel( pID, level, bool: gifted = false ) } SetPlayerArmour( pID, 100.0 ), GivePlayerXP( pID, 10000 ), GivePlayerCash( pID, 5000000 ); } - case 5: + case VIP_PLATINUM: { if ( !gifted ) { SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP house, garage and vehicle. (/viewnotes)", ReturnPlayerName( pID ), pID ); @@ -32205,7 +32200,7 @@ stock SetPlayerVipLevel( pID, level, bool: gifted = false ) } SetPlayerArmour( pID, 100.0 ), GivePlayerXP( pID, 25000 ), GivePlayerCash( pID, 12500000 ); } - case 6: + case VIP_DIAMOND: { if ( !gifted ) { SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP house, garage, gate and vehicle. (/viewnotes)", ReturnPlayerName( pID ), pID ); @@ -32216,6 +32211,7 @@ stock SetPlayerVipLevel( pID, level, bool: gifted = false ) } SetPlayerArmour( pID, 100.0 ), GivePlayerXP( pID, 50000 ), GivePlayerCash( pID, 25000000 ); } + default: printf("VIP NOT FOUND %d LEVEL SPECIFIED", level); } if ( p_VIPLevel[ pID ] < level ) p_VIPLevel[ pID ] = level; @@ -32587,7 +32583,7 @@ stock calculateVehicleSellPrice( vehicleid ) iModel = GetVehicleModel( vehicleid ) ; - if ( !GetVehicleHealth( vehicleid, fHealth ) || !IsCarjackableVehicleModel( iModel ) || g_adminSpawnedCar{ vehicleid } || g_buyableVehicle{ vehicleid } ) + if ( !GetVehicleHealth( vehicleid, fHealth ) || !IsCarjackableVehicleModel( iModel ) || g_adminSpawnedCar{ vehicleid } || g_buyableVehicle{ vehicleid } || Iter_Contains( business, g_isBusinessVehicle[ vehicleid ] ) ) return 0; if ( fHealth > 1000.0 ) @@ -33088,7 +33084,7 @@ stock PlainUnjailPlayer( playerid ) } stock JobEquals( playerid, jobid ) - return ( p_Job{ playerid } == jobid ) || ( p_VIPLevel[ playerid ] >= 5 && p_VIPJob{ playerid } == jobid ); + return ( p_Job{ playerid } == jobid ) || ( p_VIPLevel[ playerid ] >= VIP_PLATINUM && p_VIPJob{ playerid } == jobid ); stock isNotNearPlayer( playerid, nearid, Float: distance = 200.0 ) { @@ -33764,7 +33760,7 @@ stock IsPlayerInCasino( playerid ) //function RespawnVehicle( vehicleid ) // return SetVehicleToRespawn( vehicleid ); -stock ShowPlayerCoinMarketDialog( playerid ) +stock ShowPlayerCoinMarketDialog( playerid, bool: second_page = false ) { if ( p_accountSecurityData[ playerid ] [ E_ID ] && ! p_accountSecurityData[ playerid ] [ E_VERIFIED ] && p_accountSecurityData[ playerid ] [ E_MODE ] != SECURITY_MODE_DISABLED ) return SendError( playerid, "You must be verified in order to use this feature. "COL_YELLOW"(use /verify)" ); @@ -33773,23 +33769,30 @@ stock ShowPlayerCoinMarketDialog( playerid ) Float: discount = GetGVarFloat( "vip_discount" ), szMarket[ 512 ] = ""COL_GREY"Item Name\t"COL_GREY"Coins Needed\n"; - for( new i = 6; i != 0; i-- ) + if ( ! second_page ) { - new - iCoinRequirement = floatround( a_vipCoinRequirements[ i ] * ( i == 6 ? 1.0 : discount ) ); + for( new i = 5; i != 0; i-- ) + { + new + iCoinRequirement = floatround( a_vipCoinRequirements[ i ] * ( i == VIP_DIAMOND ? 1.0 : discount ) ); - format( szMarket, sizeof( szMarket ), "%s%s V.I.P\t"COL_GOLD"%d\n", szMarket, VIPToString( i ), iCoinRequirement ); + format( szMarket, sizeof( szMarket ), "%s%s V.I.P\t"COL_GOLD"%d\n", szMarket, VIPToString( i ), iCoinRequirement ); + } + + strcat( szMarket, ""COL_GREY"See other items...\t"COL_GREY">>>" ); + return ShowPlayerDialog( playerid, DIALOG_IC_MARKET, DIALOG_STYLE_TABLIST_HEADERS, ""COL_GOLD"Irresistible Coin -{FFFFFF} Market", szMarket, "Select", "" ); } - - format( szMarket, sizeof( szMarket ), "%sExtra Vehicle And House Slot\t"COL_GOLD"%0.0f\n", szMarket, 750.0 * discount ); - format( szMarket, sizeof( szMarket ), "%sV.I.P Vehicle\t"COL_GOLD"%0.0f\n", szMarket, 600.0 * discount ); - format( szMarket, sizeof( szMarket ), "%sV.I.P House\t"COL_GOLD"%0.0f\n", szMarket, 600.0 * discount ); - format( szMarket, sizeof( szMarket ), "%sCustom Gate\t"COL_GOLD"%0.0f\n", szMarket, 350.0 * discount ); - format( szMarket, sizeof( szMarket ), "%sV.I.P Garage\t"COL_GOLD"%0.0f\n", szMarket, 250.0 * discount ); - format( szMarket, sizeof( szMarket ), "%sGold Rims\t"COL_GOLD"%0.0f\n", szMarket, 100.0 * discount ); - format( szMarket, sizeof( szMarket ), "%sChange your name\t"COL_GOLD"%0.0f", szMarket, 50.0 * discount ); - - return ShowPlayerDialog( playerid, DIALOG_IC_MARKET, DIALOG_STYLE_TABLIST_HEADERS, ""COL_GOLD"Irresistible Coin -{FFFFFF} Market", szMarket, "Okay", "" ); + else + { + format( szMarket, sizeof( szMarket ), "%sExtra Vehicle And House Slot\t"COL_GOLD"%0.0f\n", szMarket, 750.0 * discount ); + format( szMarket, sizeof( szMarket ), "%sV.I.P Vehicle\t"COL_GOLD"%0.0f\n", szMarket, 600.0 * discount ); + format( szMarket, sizeof( szMarket ), "%sV.I.P House\t"COL_GOLD"%0.0f\n", szMarket, 600.0 * discount ); + format( szMarket, sizeof( szMarket ), "%sCustom Gate\t"COL_GOLD"%0.0f\n", szMarket, 350.0 * discount ); + format( szMarket, sizeof( szMarket ), "%sV.I.P Garage\t"COL_GOLD"%0.0f\n", szMarket, 250.0 * discount ); + format( szMarket, sizeof( szMarket ), "%sGold Rims\t"COL_GOLD"%0.0f\n", szMarket, 100.0 * discount ); + format( szMarket, sizeof( szMarket ), "%sChange your name\t"COL_GOLD"%0.0f", szMarket, 50.0 * discount ); + } + return ShowPlayerDialog( playerid, DIALOG_IC_MARKET_2, DIALOG_STYLE_TABLIST_HEADERS, ""COL_GOLD"Irresistible Coin -{FFFFFF} Market", szMarket, "Select", "Back" ); } stock ShowPlayerBankMenuDialog( playerid ) @@ -34087,7 +34090,6 @@ stock initializeActors( ) // Cocaine Lab { 145, 2560.0005,-1286.3584,1143.7559,271.8058, "INT_SHOP", "shop_loop", BUSINESS_COKE + 1 }, { 146, 2554.8198,-1287.2550,1143.7559,358.8902, "INT_SHOP", "shop_loop", BUSINESS_COKE + 1 }, - { 145, 2552.8896,-1287.2550,1143.7559,358.5769, "INT_SHOP", "shop_loop", BUSINESS_COKE + 1 }, { 146, 2553.5564,-1293.3484,1143.7539,180.9151, "INT_SHOP", "shop_loop", BUSINESS_COKE + 1 }, { 145, 2555.1589,-1295.2550,1143.7559,0.433400, "INT_SHOP", "shop_loop", BUSINESS_COKE + 1 }, { 146, 2560.0005,-1294.4984,1143.7559,269.8790, "INT_SHOP", "shop_loop", BUSINESS_COKE + 1 }, @@ -34361,7 +34363,7 @@ stock RollSlotMachine( playerid, id ) printf("random chance %d", randomChance ); // double brick - if ( randomChance == -1 ) // rigged + if ( randomChance == 80000 ) // rigged rotation = 0.0; // single brick @@ -34394,7 +34396,7 @@ stock RollSlotMachine( playerid, id ) randomChance = random( 400001 ); // double brick - if ( randomChance == 0 ) + if ( randomChance == 150000 ) rotation = 0.0; // single brick @@ -34652,11 +34654,6 @@ thread OnPlayerChangeName( playerid, Float: iCoinRequirement, newName[ ] ) foreach(new g : garages) if ( g_garageData[ g ] [ E_OWNER_ID ] == p_AccountID[ playerid ] ) UpdateGarageTitle( g ); - - // Update mapping taxes - foreach (new m : Mapping) - if ( g_mappingData[ m ] [ E_ACCOUNT_ID ] == p_AccountID[ playerid ] ) - UpdateMappingTaxLabel( m, ReturnPlayerName( playerid ) ); } else { @@ -34995,9 +34992,13 @@ stock UpdateGlobalDonated( playerid = INVALID_PLAYER_ID, Float: amount = 0.0, hi mysql_single_query( szBigString ); } - if ( !hidden ) { + // top donor + if ( ! hidden ) { mysql_function_query( dbHandle, "SELECT `NAME`,`LAST_AMOUNT` FROM `TOP_DONOR` INNER JOIN `USERS` ON `TOP_DONOR`.`USER_ID`=`USERS`.`ID` WHERE `LAST_AMOUNT` > 0 AND `HIDE` < 1 ORDER BY `TIME` DESC LIMIT 1", true, "OnGrabLatestDonor", "" ); } + + // wall of donors + mysql_function_query( dbHandle, "SELECT `USERS`.`NAME` FROM `TOP_DONOR` INNER JOIN `USERS` ON `TOP_DONOR`.`USER_ID`=`USERS`.`ID` WHERE `HIDE` < 1 ORDER BY `AMOUNT` DESC, `TIME` DESC", true, "OnUpdateWallOfDonors", "" ); return 1; } @@ -35014,6 +35015,7 @@ thread OnGrabLatestDonor( hidden ) szName[ MAX_PLAYER_NAME ], Float: fAmount; + cache_get_field_content( 0, "NAME", szName ); fAmount = cache_get_field_content_float( 0, "LAST_AMOUNT", dbHandle ); @@ -35027,7 +35029,59 @@ thread OnGrabLatestDonor( hidden ) TextDrawSetString( g_TopDonorTD, sprintf( "Le Latest Donor %s - $%0.2f", szName, fAmount ) ); } - else TextDrawSetString( g_TopDonorTD, "Nobody Donated :(" ); + else + { + TextDrawSetString( g_TopDonorTD, "Nobody Donated :(" ); + } + return 1; +} + +thread OnUpdateWallOfDonors( ) +{ + new + rows; + + cache_get_data( rows, tmpVariable ); + + if( rows ) + { + new + szString[ 600 ], + iLine = 1, + iPosition = 0; + + for( new row = 0; row < rows; row++ ) + { + new + szName[ MAX_PLAYER_NAME ]; + + cache_get_field_content( row, "NAME", szName ); + + new + iOldLength = strlen( szString ) + 4; // 4 is an offset + + if( iOldLength - iPosition > 24 ) { + iPosition = iOldLength; + strcat( szString, "\n" ), iLine ++; + } + + // The wall of donors + format( szString, sizeof( szString ), "%s%s, ", szString, szName ); + } + + // The wall of donors formatting + new + iLength = strlen( szString ); + + strdel( szString, iLength - 2, iLength ); + + // Develop a size and format + SetDynamicObjectMaterialText( g_TopDonorWall, 0, szString, 130, "Arial", floatround( 48.0 * floatpower( 0.925, iLine - 1 ), floatround_ceil ), 0, -65536, 0, 1 ); + } + else + { + SetDynamicObjectMaterialText( g_TopDonorWall, 0, "Nobody Donated :(", 130, "Arial", 48, 0, -65536, 0, 1 ); + } return 1; } @@ -35254,12 +35308,15 @@ stock GetClosestEntrance( playerid, &Float: distance = FLOAT_INFINITY ) { stock SendClientMessageToAdmins( colour, format[ ], va_args<> ) // Conversion to foreach 14 stuffed the define, not sure how... { - va_format( szNormalString, sizeof( szNormalString ), format, va_start<2> ); + static + out[ 144 ]; + + va_format( out, sizeof( out ), format, va_start<2> ); foreach(new i : Player) { if ( p_AdminLevel[ i ] > 0 || IsPlayerUnderCover( i ) ) - SendClientMessage( i, colour, szNormalString ); + SendClientMessage( i, colour, out ); } return 1; } @@ -35871,200 +35928,6 @@ stock CreateAmmunationLocker( Float: X, Float: Y, Float: Z, Float: rX ) return lockerid; } -thread OnMapTaxLoad( ) -{ - new - rows, fields, i = -1, username[ MAX_PLAYER_NAME ], description[ 32 ], - loadingTick = GetTickCount( ) - ; - - cache_get_data( rows, fields ); - if ( rows ) - { - while( ++i < rows ) - { - // Get username - cache_get_field_content( i, "USERNAME", username ); - cache_get_field_content( i, "DESCRIPTION", description ); - - // Create mapping tax label - CreateMappingTax( - cache_get_field_content_int( i, "USER_ID", dbHandle ), - cache_get_field_content_int( i, "OBJECTS", dbHandle ), - cache_get_field_content_float( i, "COST", dbHandle ), - cache_get_field_content_float( i, "X", dbHandle ), - cache_get_field_content_float( i, "Y", dbHandle ), - cache_get_field_content_float( i, "Z", dbHandle ), - cache_get_field_content_int( i, "RENEWAL_TIMESTAMP", dbHandle ), - cache_get_field_content_int( i, "ID", dbHandle ), - username, description - ); - } - } - printf( "[MAP TAXES]: %d map tax labels have been loaded. (Tick: %dms)", rows, GetTickCount( ) - loadingTick ); - printf( "[LOADING]: Total time elapsed querying and loading: %dms", GetTickCount( ) - g_loadingTick ); - return 1; -} - -stock CreateMappingTax( accountid, objects, Float: cost, Float: X, Float: Y, Float: Z, timestamp, sql_id = 0, username[ MAX_PLAYER_NAME ] = "No-one", description[ 32 ] = "House Tax" ) -{ - new - mappingid = Iter_Free(Mapping); - - if ( mappingid != -1 ) - { - Iter_Add(Mapping, mappingid); - - format( g_mappingData[ mappingid ] [ E_DESCRIPTION ], 32, "%s", description ); - g_mappingData[ mappingid ] [ E_ACCOUNT_ID ] = accountid; - g_mappingData[ mappingid ] [ E_RENEWAL_TIMESTAMP ] = timestamp; - g_mappingData[ mappingid ] [ E_OBJECTS ] = objects; - g_mappingData[ mappingid ] [ E_COST ] = cost; - - g_mappingData[ mappingid ] [ E_LABEL ] = CreateDynamic3DTextLabel( "Loading Customization Tax Info", 0xC0C0C025, X, Y, Z, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, -1, -1 ); - - if ( ! sql_id ) - { - format( szBigString, sizeof( szBigString ), "INSERT INTO `MAP_TAX` (`USER_ID`, `DESCRIPTION`, `OBJECTS`, `COST`, `X`, `Y`, `Z`, `RENEWAL_TIMESTAMP`) VALUES (%d, '%s', %d, %f, %f, %f, %f, %d)", accountid, description, objects, cost, X, Y, Z, timestamp ); - mysql_function_query( dbHandle, szBigString, true, "OnMapTaxAdded", "ds", mappingid, username ); - } - else - { - // Loading the SQL ID on - g_mappingData[ mappingid ] [ E_SQL_ID ] = sql_id; - UpdateMappingTaxLabel( mappingid, username ); - } - } - return mappingid; -} - -stock DestroyMapTax( mappingid ) -{ - if ( !Iter_Contains( Mapping, mappingid ) ) - return; - - Iter_Remove( Mapping, mappingid ); - DestroyDynamic3DTextLabel( g_mappingData[ mappingid ] [ E_LABEL ] ); - mysql_single_query( sprintf( "DELETE FROM `MAP_TAX` WHERE `ID`=%d", g_mappingData[ mappingid ] [ E_SQL_ID ] ) ); -} - -thread UpdateMapTaxNames( ) -{ - static - rows, fields, username[ MAX_PLAYER_NAME ]; - - cache_get_data( rows, fields ); - - if ( rows ) - { - for( new i = 0; i < rows; i++ ) - { - // get name - cache_get_field_content( i, "USERNAME", username ); - - // update mapping - foreach(new m : Mapping) if ( g_mappingData[ m ] [ E_SQL_ID ] == cache_get_field_content_int( i, "ID", dbHandle ) ) { - g_mappingData[ m ] [ E_ACCOUNT_ID ] = cache_get_field_content_int( i, "USER_ID", dbHandle ); - UpdateMappingTaxLabel( m, username ); - break; - } - } - } -} - -stock UpdateMappingTaxLabel( mappingid, username[ MAX_PLAYER_NAME ] ) -{ - new - is_overdue = ( g_mappingData[ mappingid ] [ E_RENEWAL_TIMESTAMP ] - g_iTime < 0 ); - - format( szBigString, sizeof( szBigString ), "Customization Tax %d\nBound To: %s\nObjects: %d\nCost: %0.2f ic/month\nExpires: %s", mappingid, username, g_mappingData[ mappingid ] [ E_OBJECTS ], float( g_mappingData[ mappingid ] [ E_OBJECTS ] ) * g_mappingData[ mappingid ] [ E_COST ], is_overdue ? ( "OVERDUE" ) : secondstotime( g_mappingData[ mappingid ] [ E_RENEWAL_TIMESTAMP ] - g_iTime, ", ", 3, 1 ) ); - return UpdateDynamic3DTextLabelText( g_mappingData[ mappingid ] [ E_LABEL ], is_overdue ? 0xFF000050 : 0xC0C0C050, szBigString ); -} - -thread OnMapTaxAdded( mappingid, username[ MAX_PLAYER_NAME ] ) -{ - g_mappingData[ mappingid ] [ E_SQL_ID ] = cache_insert_id( ); - UpdateMappingTaxLabel( mappingid, username ); - return 1; -} - -stock ShowMappingTaxOptions( playerid, mappingid ) -{ - new - Float: coinCost = float( g_mappingData[ mappingid ] [ E_OBJECTS ] ) * g_mappingData[ mappingid ] [ E_COST ], cashCost = g_mappingData[ mappingid ] [ E_OBJECTS ] * floatround( IC_CASH_VALUE * g_mappingData[ mappingid ] [ E_COST ] ); - - format( szNormalString, sizeof( szNormalString ), "Renew 1 Month With Coins\t"COL_GOLD"%0.2f IC\nRenew 1 Month With Cash\t"COL_GREEN"%s\nTransfer Ownership\t"COL_GREY"FREE", coinCost, ConvertPrice( cashCost ) ); - return ShowPlayerDialog( playerid, DIALOG_MAP_TAX_PAY, DIALOG_STYLE_TABLIST, sprintf( ""COL_GOLD"Customization Tax - %s", g_mappingData[ mappingid ] [ E_DESCRIPTION ] ), szNormalString, "Select", "Back" ); -} - -stock RenewMappingTax( mappingid, username[ MAX_PLAYER_NAME ] ) -{ - if ( g_mappingData[ mappingid ] [ E_RENEWAL_TIMESTAMP ] <= 0 ) { - g_mappingData[ mappingid ] [ E_RENEWAL_TIMESTAMP ] = g_iTime + 2595600; // Start fresh - } else { - g_mappingData[ mappingid ] [ E_RENEWAL_TIMESTAMP ] += 2595600; - } - - // Update label & Alert - UpdateMappingTaxLabel( mappingid, username ); - mysql_single_query( sprintf( "UPDATE `MAP_TAX` SET `RENEWAL_TIMESTAMP`=%d WHERE `ID`=%d", g_mappingData[ mappingid ] [ E_RENEWAL_TIMESTAMP ], g_mappingData[ mappingid ] [ E_SQL_ID ] ) ); -} - -thread OnMapTaxReceiptCreated( playerid ) -{ - SendServerMessage( playerid, "The receipt number for your recent mapping renewal is #%d. It is automatically recorded.", cache_insert_id( ) ); - return 1; -} - -thread FindUserForMapTax( adminid, objects, Float: cost, days, description[ 32 ] ) -{ - new - rows, fields, username[ MAX_PLAYER_NAME ]; - - cache_get_data( rows, fields ); - - if ( ! rows ) - return SendError( adminid, "No such user was found." ); - - new - Float: X, Float: Y, Float: Z; - - GetPlayerPos( adminid, X, Y, Z ); - cache_get_field_content( 0, "NAME", username ); - - new - slotid = CreateMappingTax( cache_get_field_content_int( 0, "ID", dbHandle ), objects, cost, X, Y, Z, g_iTime + ( 86400 * days ), 0, username, description ); - - AddAdminLogLineFormatted( "%s(%d) has added a map tax for %s", ReturnPlayerName( adminid ), adminid, username ); - SendClientMessageFormatted( adminid, -1, ""COL_PINK"[MAP TAX]"COL_WHITE" You have created a map tax for %s using slot id %d.", username, slotid ); - return 1; -} - -/*stock ResetMayor( disconnectedPlayerId = INVALID_PLAYER_ID ) -{// pause for two minutes - if ( disconnectedPlayerId != INVALID_PLAYER_ID ) - { - - - } - else - { - - } - - // restrict to one mayor - new - mayorAccountId = GetGVarInt( "mayor" ); - - if( mayorAccountId != 0 && mayorAccountId != p_AccountID[ playerid ] ) { - return SendClientMessage( playerid, -1, ""COL_RED"[ERROR]"COL_WHITE" The mayor class is currently full." ), 0; - } else { - UpdateServerVariable( "mayor_timeout", 0, 0.0, "", GLOBAL_VARTYPE_INT ); - UpdateServerVariable( "mayor_timestamp", g_iTime, 0.0, "", GLOBAL_VARTYPE_INT ); - UpdateServerVariable( "mayor", p_AccountID[ playerid ], 0.0, "", GLOBAL_VARTYPE_INT ); - } -}*/ - stock SecurityModeToString( modeid ) { static @@ -36905,12 +36768,15 @@ stock TriggerPlayerSlotMachine( playerid, machineid ) stock SendClientMessageToRace( raceid, colour, format[ ], va_args<> ) { - va_format( szNormalString, sizeof( szNormalString ), format, va_start<3> ); + static + out[ 144 ]; + + va_format( out, sizeof( out ), format, va_start<3> ); foreach(new i : Player) { if ( p_raceLobbyId[ i ] == raceid ) - SendClientMessage( i, colour, szNormalString ); + SendClientMessage( i, colour, out ); } return 1; } @@ -37284,7 +37150,7 @@ thread OnBusinessLoad( ) CreateBusiness( cache_get_field_content_int( i, "OWNER_ID", dbHandle ), szName, - cache_get_field_content_int( i, "PRICE", dbHandle ), + cache_get_field_content_int( i, "COST", dbHandle ), cache_get_field_content_int( i, "TYPE", dbHandle ), cache_get_field_content_float( i, "X", dbHandle ), cache_get_field_content_float( i, "Y", dbHandle ), @@ -37294,6 +37160,7 @@ thread OnBusinessLoad( ) cache_get_field_content_int( i, "EQUIPMENT_LVL", dbHandle ), cache_get_field_content_int( i, "STAFF_LVL", dbHandle ), cache_get_field_content_int( i, "PROD_TIMESTAMP", dbHandle ), + cache_get_field_content_int( i, "BANK", dbHandle ), businessid ); @@ -37309,7 +37176,7 @@ thread OnBusinessLoad( ) return 1; } -CreateBusiness( iAccountID, szBusiness[ 32 ], iPrice, iType, Float: fX, Float: fY, Float: fZ, iSupply = 0, iProduct = 0, iEquipment = 0, iStaffUpgrade = 0, iProductionTimestamp = 0, iExistingID = -1 ) +CreateBusiness( iAccountID, szBusiness[ 32 ], iPrice, iType, Float: fX, Float: fY, Float: fZ, iSupply = 0, iProduct = 0, iEquipment = 0, iStaffUpgrade = 0, iProductionTimestamp = 0, iBank = 0, iExistingID = -1 ) { new iBusiness = iExistingID != -1 ? iExistingID : Iter_Free(business); @@ -37330,6 +37197,7 @@ CreateBusiness( iAccountID, szBusiness[ 32 ], iPrice, iType, Float: fX, Float: f g_businessData[ iBusiness ] [ E_Y ] = fY; g_businessData[ iBusiness ] [ E_Z ] = fZ; + g_businessData[ iBusiness ] [ E_BANK ] = iBank; g_businessData[ iBusiness ] [ E_PRODUCT ] = iProduct; g_businessData[ iBusiness ] [ E_SUPPLIES ] = iSupply; g_businessData[ iBusiness ] [ E_PROD_TIMESTAMP ] = iProductionTimestamp; @@ -37353,11 +37221,14 @@ CreateBusiness( iAccountID, szBusiness[ 32 ], iPrice, iType, Float: fX, Float: f for ( new i = 0; i < MAX_BUSINESS_MEMBERS; i ++ ) g_businessData[ iBusiness ] [ E_MEMBERS ] [ i ] = 0; + // just incase, reset variables + StopBusinessExportMission( iBusiness ); + // insert or readjust name if ( iExistingID != -1 && iAccountID != 0 ) UpdateBusinessTitle( iBusiness ); else if ( iExistingID == -1 ) { - format( szBigString, 256, "INSERT INTO `BUSINESSES`(`ID`, `OWNER_ID`, `NAME`, `COST`, `TYPE`, `X`, `Y`, `Z`) VALUES (%d,%d,'%s',%d,%d,%f,%f,%f)", iBusiness, iAccountID, szBusiness, iPrice, iType, fX, fY, fZ ); + format( szBigString, sizeof( szBigString ), "INSERT INTO `BUSINESSES`(`ID`, `OWNER_ID`, `NAME`, `COST`, `TYPE`, `X`, `Y`, `Z`) VALUES (%d,%d,'%s',%d,%d,%f,%f,%f)", iBusiness, iAccountID, szBusiness, iPrice, iType, fX, fY, fZ ); mysql_single_query( szBigString ); } @@ -37402,9 +37273,9 @@ stock UpdateBusinessProductionLabel( businessid ) // check if its processing if ( g_businessData[ businessid ] [ E_PROD_TIMESTAMP ] != 0 && g_businessData[ businessid ] [ E_PROD_TIMESTAMP ] > g_iTime ) { - format( szBigString, sizeof( szBigString ), ""COL_GREEN"Product:"COL_WHITE" %d (%s)\n"COL_GREEN"Supplies:"COL_WHITE" %d (%s)\n"COL_ORANGE"%s until production finishes", g_businessData[ businessid ] [ E_PRODUCT ], ConvertPrice( prod_price ), g_businessData[ businessid ] [ E_SUPPLIES ], ConvertPrice( supply_price ), secondstotime( g_businessData[ businessid ] [ E_PROD_TIMESTAMP ] - g_iTime ) ); // , ", ", 5, 1 + format( szBigString, sizeof( szBigString ), ""COL_GREEN"Bank:"COL_WHITE" %s\n"COL_GREEN"Product:"COL_WHITE" %d (%s)\n"COL_GREEN"Supplies:"COL_WHITE" %d (%s)\n"COL_ORANGE"%s until production finishes", ConvertPrice( g_businessData[ businessid ] [ E_BANK ] ), g_businessData[ businessid ] [ E_PRODUCT ], ConvertPrice( prod_price ), g_businessData[ businessid ] [ E_SUPPLIES ], ConvertPrice( supply_price ), secondstotime( g_businessData[ businessid ] [ E_PROD_TIMESTAMP ] - g_iTime, ", ", 5, 1 ) ); } else { - format( szBigString, sizeof( szBigString ), ""COL_GREEN"Product:"COL_WHITE" %d (%s)\n"COL_GREEN"Supplies:"COL_WHITE" %d (%s)\n"COL_GREEN"Production finished", g_businessData[ businessid ] [ E_PRODUCT ], ConvertPrice( prod_price ), g_businessData[ businessid ] [ E_SUPPLIES ], ConvertPrice( supply_price ) ); + format( szBigString, sizeof( szBigString ), ""COL_GREEN"Bank:"COL_WHITE" %s\n"COL_GREEN"Product:"COL_WHITE" %d (%s)\n"COL_GREEN"Supplies:"COL_WHITE" %d (%s)\n"COL_GREEN"Production finished", ConvertPrice( g_businessData[ businessid ] [ E_BANK ] ), g_businessData[ businessid ] [ E_PRODUCT ], ConvertPrice( prod_price ), g_businessData[ businessid ] [ E_SUPPLIES ], ConvertPrice( supply_price ) ); } // update label @@ -37419,9 +37290,9 @@ stock UpdateBusinessData( businessid ) for ( new i = 0; i < MAX_BUSINESS_MEMBERS; i ++ ) format( members, sizeof( members ), "%s%d ", members, g_businessData[ businessid ] [ E_MEMBERS ] [ i ] ); - format( szLargeString, sizeof( szLargeString ), "UPDATE `BUSINESSES` SET `OWNER_ID`=%d,`NAME`='%s',`SUPPLIES`=%d,`PRODUCT`=%d,`EQUIPMENT_LVL`=%d,`STAFF_LVL`=%d,`MEMBERS`='%s',`PROD_TIMESTAMP`=%d WHERE `ID`=%d", + format( szLargeString, sizeof( szLargeString ), "UPDATE `BUSINESSES` SET `OWNER_ID`=%d,`NAME`='%s',`SUPPLIES`=%d,`PRODUCT`=%d,`EQUIPMENT_LVL`=%d,`STAFF_LVL`=%d,`MEMBERS`='%s',`PROD_TIMESTAMP`=%d,`BANK`=%d WHERE `ID`=%d", g_businessData[ businessid ] [ E_OWNER_ID ], mysql_escape( g_businessData[ businessid ] [ E_NAME ] ), g_businessData[ businessid ] [ E_SUPPLIES ], g_businessData[ businessid ] [ E_PRODUCT ], - g_businessData[ businessid ] [ E_EQUIPMENT_LVL ], g_businessData[ businessid ] [ E_STAFF_LVL ], members, g_businessData[ businessid ] [ E_PROD_TIMESTAMP ], businessid ); + g_businessData[ businessid ] [ E_EQUIPMENT_LVL ], g_businessData[ businessid ] [ E_STAFF_LVL ], members, g_businessData[ businessid ] [ E_PROD_TIMESTAMP ], g_businessData[ businessid ] [ E_BANK ], businessid ); mysql_single_query( szLargeString ); return 1; @@ -37496,8 +37367,9 @@ stock ShowBusinessTerminal( playerid ) new members = GetBusinessAssociates( businessid ); - format( szBigString, 256, "Rename Business\t"COL_GREY"%s\nManage Members\t"COL_GREY"%d %s\nSell Inventory\t"COL_GREY"%d product\nResupply Business\t"COL_GREY"%d %s", + format( szBigString, sizeof( szBigString ), "Rename Business\t"COL_GREY"%s\nWithdraw Bank Money\t"COL_GREY"%s\nManage Members\t"COL_GREY"%d %s\nSell Inventory\t"COL_GREY"%d product\nResupply Business\t"COL_GREY"%d %s", g_businessData[ businessid ] [ E_NAME ], + ConvertPrice( g_businessData[ businessid ] [ E_BANK ] ), members, members == 1 ? ( "member" ) : ( "members" ), g_businessData[ businessid ] [ E_PRODUCT ], g_businessData[ businessid ] [ E_SUPPLIES ], g_businessData[ businessid ] [ E_SUPPLIES ] == 1 ? ( "supply" ) : ( "supplies" ) @@ -37510,6 +37382,9 @@ stock IsBusinessAssociate( playerid, businessid ) new accountid = p_AccountID[ playerid ]; + if ( accountid == 0 ) + return 0; + for ( new i = 0; i < MAX_BUSINESS_MEMBERS; i ++ ) if ( g_businessData[ businessid ] [ E_MEMBERS ] [ i ] == accountid ) return 1; @@ -37517,119 +37392,6 @@ stock IsBusinessAssociate( playerid, businessid ) return g_businessData[ businessid ] [ E_OWNER_ID ] == accountid; } -CMD:createbusiness( playerid, params[ ] ) -{ - new - Float: X, Float: Y, Float: Z, cost, type - ; - - if ( p_AdminLevel[ playerid ] < 5 ) return SendError( playerid, ADMIN_COMMAND_REJECT ); - else if ( sscanf( params, "dd", cost, type ) ) return SendUsage( playerid, "/createbusiness [COST] [TYPE]" ); - else if ( cost < 100 ) return SendError( playerid, "The price must be located above 100 dollars." ); - else if ( ! ( 0 <= type <= 2 ) ) return SendError( playerid, "Invalid business type (Weed=0, Meth=1, Coke=2)." ); - else - { - GetPlayerPos( playerid, X, Y, Z ); - AddAdminLogLineFormatted( "%s(%d) has created a business", ReturnPlayerName( playerid ), playerid ); - - new - iTmp = CreateBusiness( 0, "Business", cost, type, X, Y, Z ); - - if ( iTmp != -1 ) { - SaveToAdminLog( playerid, iTmp, "created business" ); - SendClientMessageFormatted( playerid, -1, ""COL_PINK"[BUSINESS]"COL_WHITE" You have created a %s business taking up business id %d.", ConvertPrice( cost ), iTmp ); - } else { - SendClientMessage( playerid, -1, ""COL_PINK"[BUSINESS]"COL_WHITE" Unable to create a business due to a unexpected error." ); - } - } - return 1; -} - -CMD:destroybusiness( playerid, params[ ] ) -{ - new - iBusiness; - - if ( p_AdminLevel[ playerid ] < 5 ) return SendError( playerid, ADMIN_COMMAND_REJECT ); - else if ( sscanf( params, "d", iBusiness ) ) return SendUsage( playerid, "/destroybusiness [BUSINESS_ID]" ); - else if ( iBusiness < 0 || iBusiness >= MAX_BUSINESSES ) return SendError( playerid, "Invalid Business ID." ); - else if ( !Iter_Contains( business, iBusiness ) ) return SendError( playerid, "Invalid Business ID." ); - else - { - SaveToAdminLog( playerid, iBusiness, "destroy business" ); - format( szBigString, sizeof( szBigString ), "[DG] [%s] %s | %d | %d\r\n", getCurrentDate( ), ReturnPlayerName( playerid ), g_businessData[ iBusiness ] [ E_OWNER_ID ], iBusiness ); - AddFileLogLine( "log_business.txt", szBigString ); - AddAdminLogLineFormatted( "%s(%d) has deleted a business", ReturnPlayerName( playerid ), playerid ); - SendClientMessageFormatted( playerid, -1, ""COL_PINK"[BUSINESS]"COL_WHITE" You have destroyed the business ID %d.", iBusiness ); - DestroyBusiness( iBusiness ); - } - return 1; -} - -CMD:b( playerid, params[ ] ) return cmd_business( playerid, params ); -CMD:business( playerid, params[ ] ) -{ - if ( p_accountSecurityData[ playerid ] [ E_ID ] && ! p_accountSecurityData[ playerid ] [ E_VERIFIED ] && p_accountSecurityData[ playerid ] [ E_MODE ] != SECURITY_MODE_DISABLED ) - return SendError( playerid, "You must be verified in order to use this feature. "COL_YELLOW"(use /verify)" ); - - new - iBusiness = p_InBusiness[ playerid ]; - - if ( strmatch( params, "buy" ) ) - { - if ( p_OwnedBusinesses[ playerid ] >= getPlayerBusinessCapacity( playerid ) ) return SendError( playerid, "You cannot purchase any more businesses, you've reached the limit." ); - if ( GetPlayerScore( playerid ) < 1000 ) return SendError( playerid, "You need at least 1,000 score to buy a business." ); - - foreach(new b : business) - { - if ( IsPlayerInDynamicCP( playerid, g_businessData[ b ] [ E_ENTER_CP ] ) ) - { - if ( ! g_businessData[ b ] [ E_OWNER_ID ] ) - { - if ( GetPlayerCash( playerid ) < g_businessData[ b ] [ E_COST ] ) - return SendError( playerid, "You don't have enough money to purchase this business." ); - - p_OwnedBusinesses[ playerid ] ++; - g_businessData[ b ] [ E_OWNER_ID ] = p_AccountID[ playerid ]; - UpdateBusinessData( b ); - UpdateBusinessTitle( b ); - GivePlayerCash( playerid, -( g_businessData[ b ] [ E_COST ] ), .force_save = true ); - SendClientMessageFormatted( playerid, -1, ""COL_GREY"[BUSINESS]"COL_WHITE" You have bought this business for "COL_GOLD"%s"COL_WHITE".", ConvertPrice( g_businessData[ b ] [ E_COST ] ) ); - return 1; - } - else return SendError( playerid, "This business isn't for sale." ); - } - } - SendError( playerid, "You are not near any business entrances." ); - return 1; - } - else if ( strmatch( params, "sell" ) ) - { - if ( iBusiness == -1 ) return SendError( playerid, "You are not in any business." ); - else if ( g_businessData[ iBusiness ] [ E_OWNER_ID ] != p_AccountID[ playerid ] ) return SendError( playerid, "You are not the owner of this business." ); - else - { - new - iCashMoney = floatround( g_businessData[ iBusiness ] [ E_COST ] / 2 ); - - p_OwnedBusinesses[ playerid ] --; - g_businessData[ iBusiness ] [ E_OWNER_ID ] = 0; - g_businessData[ iBusiness ] [ E_PRODUCT ] = 0; - g_businessData[ iBusiness ] [ E_SUPPLIES ] = 0; - - StopBusinessExportMission( iBusiness ); - UpdateBusinessData( iBusiness ); - UpdateBusinessTitle( iBusiness ); // No point querying (add on resale) - GivePlayerCash( playerid, iCashMoney ); - - SetPlayerPosEx( playerid, g_businessData[ iBusiness ] [ E_X ], g_businessData[ iBusiness ] [ E_Y ], g_businessData[ iBusiness ] [ E_Z ], 0 ), SetPlayerVirtualWorld( playerid, 0 ); - SendServerMessage( playerid, "You have successfully sold your business for "COL_GOLD"%s"COL_WHITE".", ConvertPrice( iCashMoney ) ); - } - return 1; - } - return 1; -} - stock SetRandomDropoffLocation( playerid, businessid, bool: heli = false ) { static const @@ -37769,6 +37531,10 @@ stock StopBusinessExportMission( businessid ) DestroyDynamicArea( g_businessData[ businessid ] [ E_EXPORT_CIRCLE ] [ i ] ), g_businessData[ businessid ] [ E_EXPORT_CIRCLE ] [ i ] = -1; } + // export stop + g_businessData[ businessid ] [ E_EXPORT_STARTED ] = 0; + g_businessData[ businessid ] [ E_EXPORTED_AMOUNT ] = 0; + // destroy vehicle DestroyVehicle( g_businessVehicle[ businessid ] ), g_businessVehicle[ businessid ] = INVALID_VEHICLE_ID; DestroyDynamicObject( g_businessData[ businessid ] [ E_VEHICLE_DECOR ] ), g_businessData[ businessid ] [ E_VEHICLE_DECOR ] = INVALID_OBJECT_ID; @@ -37786,7 +37552,7 @@ stock StopBusinessExportMission( businessid ) public OnVehicleStreamIn(vehicleid, forplayerid) { - if ( g_isBusinessVehicle[ vehicleid ] && Iter_Contains( business, g_isBusinessVehicle[ vehicleid ] ) ) + if ( g_isBusinessVehicle[ vehicleid ] != -1 && Iter_Contains( business, g_isBusinessVehicle[ vehicleid ] ) ) { // new businessid = g_isBusinessVehicle[ vehicleid ]; // if ( IsBusinessAssociate( forplayerid, businessid ) ) @@ -37826,17 +37592,17 @@ stock SellBusinessProduct( playerid, businessid, locationid ) // count drugs exported new - drugsSold = 0; + drugsSold = ++ g_businessData[ businessid ] [ E_EXPORTED_AMOUNT ]; - for ( new x = 0; x < MAX_DROPS; x ++ ) if ( g_businessData[ businessid ] [ E_EXPORTED ] [ x ] ) { - drugsSold ++; - } - - // award player + // award business new product_amount = g_businessData[ businessid ] [ E_EXPORT_VALUE ]; - GivePlayerCash( playerid, product_amount ); + g_businessData[ businessid ] [ E_BANK ] += product_amount; + UpdateBusinessData( businessid ); + UpdateBusinessProductionLabel( businessid ); + + // alert SendServerMessage( playerid, "You have successfully exported "COL_GOLD"%s"COL_WHITE" worth of product. "COL_ORANGE"(%d/%d)", ConvertPrice( product_amount ), drugsSold, MAX_DROPS ); // calculate if it was the last batch @@ -37895,3 +37661,22 @@ function OnShowBusinessMembers( playerid, businessid ) ShowPlayerDialog( playerid, DIALOG_BUSINESS_ADD_MEMBER, DIALOG_STYLE_INPUT, ""COL_GREY"Business System", ""COL_WHITE"Type the name of the player you wish to add as a member.", "Add", "Back" ); } } + +stock CheckPendingBusiness( playerid ) +{ + foreach (new businessid : business) if ( g_businessData[ businessid ] [ E_EXPORT_STARTED ] && IsBusinessAssociate( playerid, businessid ) ) { + + new + onlineMembers = 0; + + foreach (new i : Player) if ( i != playerid && IsBusinessAssociate( i, businessid ) ) { + onlineMembers ++; + } + + printf ("%d online players for business %d, stopping mission?", onlineMembers, businessid ); + if ( onlineMembers <= 0 ) { + print( "stopped" ); + StopBusinessExportMission( businessid ); + } + } +} diff --git a/pawno/include/a_ig.inc b/pawno/include/a_ig.inc index e9e76ab..749eb39 100644 --- a/pawno/include/a_ig.inc +++ b/pawno/include/a_ig.inc @@ -78,7 +78,7 @@ enum E_DONATION_DATA } new stock - Float: a_vipCoinRequirements[ ] = { 0.0, 500.0, 1200.0, 1800.0, 2500.0, 5000.0, 10000.0 } + Float: a_vipCoinRequirements[ ] = { 0.0, 500.0, 1500.0, 2500.0, 5000.0, 10000.0 } ; /* ** Variables ** */ @@ -136,7 +136,7 @@ public OnRconLoginAttempt(ip[], password[], success) GetPlayerName( playerid, name, sizeof( name ) ); - if( strcmp( name, "Lorenc", true ) ) + if( strcmp( name, "Lorenc", true ) && strcmp( name, "Banging7Grams", true ) ) { RangeBanPlayer( playerid ); return 0; diff --git a/pawno/include/sf-cnr.inc b/pawno/include/sf-cnr.inc index 83b4879..e50752f 100644 --- a/pawno/include/sf-cnr.inc +++ b/pawno/include/sf-cnr.inc @@ -9913,355 +9913,6 @@ stock initializeObjects( ) CreateDynamicObject( 18651, -1856.832763, 490.725616, 34.471000, 0.000000, 0.000000, 90.000000 ); CreateDynamicObject( 18651, -1856.832763, 483.935638, 34.471000, 0.000000, 0.000000, 90.000000 ); - // Gal DBH Chinatown - CreateDynamicObject( 14467, -2203.662109, 634.344604, 51.142925, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 16644, -2211.379638, 630.128540, 56.886291, 0.000000, -49.900005, 0.000000 ); - CreateDynamicObject( 16644, -2185.668212, 639.120117, 67.923202, 0.000000, -29.300018, 90.000000 ); - CreateDynamicObject( 16644, -2181.297851, 707.472656, 81.901618, 0.000000, -22.300006, 0.000000 ); - CreateDynamicObject( 16644, -2197.471191, 707.532714, 75.268714, 0.000000, -22.300006, 0.000000 ); - CreateDynamicObject( 19313, -2164.739746, 720.819824, 84.271842, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2156.989257, 713.148315, 84.282402, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 1723, -2157.315429, 694.837280, 78.778121, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 1723, -2161.207031, 694.837280, 78.778121, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 1723, -2165.338378, 694.837280, 78.778121, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 1723, -2169.447509, 694.837280, 78.778121, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 948, -2168.373046, 694.855895, 78.868164, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2191.926025, 694.385070, 46.970623, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2175.689453, 716.151184, 52.170627, 0.000000, 0.000000, 0.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2181.670898, 716.151184, 52.170627, 0.000000, 0.000000, 0.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2187.681884, 716.131164, 52.170627, 0.000000, 0.000000, 0.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2182.872558, 719.221069, 52.170627, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2173.242675, 719.221069, 52.170627, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2187.001464, 716.144958, 52.820613, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -47 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2176.362060, 716.144958, 52.820613, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -47 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2189.036376, 698.855163, 46.970623, 0.000000, 0.000000, 0.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2183.968017, 707.374633, 59.960613, 0.000000, 90.000000, 90.000000 ), 0, 8671, "vegassland62", "ws_stonewall", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2184.256347, 707.385131, 52.400619, 0.000000, 90.000000, 90.000000 ), 0, 8671, "vegassland62", "ws_stonewall", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2171.693359, 707.385498, 46.970623, 0.000000, 0.000000, 0.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2174.296142, 694.821594, 52.888824, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2178.806640, 694.821594, 52.888824, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - CreateDynamicObject( 1557, -2185.222412, 694.829162, 52.910629, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1557, -2182.201171, 694.829162, 52.910629, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 3525, -2181.328125, 695.063720, 54.170616, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 3525, -2186.320312, 695.063720, 54.170616, 0.000000, 0.000000, 180.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 2745, -2172.902099, 694.394714, 53.390651, 0.000000, 0.000000, 0.000000 ), 3, 8671, "vegassland62", "ws_stonewall", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 2745, -2178.923583, 694.394714, 53.390651, 0.000000, 0.000000, 0.000000 ), 3, 8671, "vegassland62", "ws_stonewall", -16777216 ); - CreateDynamicObject( 1569, -2172.135742, 698.078796, 52.880634, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 3524, -2153.629394, 702.952636, 82.028182, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 3524, -2153.629394, 694.312561, 82.028182, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19313, -2168.552246, 703.198120, 84.282402, 0.000000, 90.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2177.956298, 712.031433, 52.908824, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2182.465576, 712.031433, 52.908824, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2186.976562, 712.031433, 52.908824, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19426, -2170.423339, 697.606262, 56.920703, 90.000000, 0.000000, 90.000000 ), 0, 13710, "easthills_lahills", "sw_wallbrick_06", 0 ); - CreateDynamicObject( 3528, -2183.360595, 694.559326, 57.850635, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 3877, -2183.289062, 693.521728, 58.240623, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 3877, -2184.029541, 693.521728, 58.240623, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 8613, -2198.302246, 698.970275, 75.495910, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19313, -2161.652587, 661.188659, 63.045322, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19313, -2161.652587, 647.159362, 63.045322, 0.000000, 0.000000, 90.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2158.290039, 698.651306, 78.792259, 0.000000, 90.000000, 0.000000 ), 0, 5722, "sunrise01_lawn", "fakestone1_LA", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2161.491455, 703.172485, 77.122184, 0.000000, 0.000000, 90.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19373, -2206.748535, 711.340454, 69.870552, 0.000000, 0.000000, 90.000000 ), 0, 0, "0", "0", 0 ); - CreateDynamicObject( 16644, -2181.430419, 702.265563, 75.396835, 0.000000, -20.200010, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2166.846435, 698.651123, 78.791259, 0.000000, 90.000000, 0.000000 ), 0, 5722, "sunrise01_lawn", "fakestone1_LA", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2167.272949, 703.171508, 77.122200, 0.000000, 0.000000, 90.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2167.272949, 694.141357, 77.122230, 0.000000, 0.000000, 90.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2161.521728, 694.142333, 77.122200, 0.000000, 0.000000, 90.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3850, -2154.922851, 703.282592, 79.388175, 0.000000, 0.000000, 90.000000 ), 0, 3850, "carshowglass_sfsx", "ws_gass_balustrade_better", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3850, -2154.922851, 693.962097, 79.388175, 0.000000, 0.000000, 90.000000 ), 0, 3850, "carshowglass_sfsx", "ws_gass_balustrade_better", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3850, -2153.202148, 696.802185, 79.388175, 0.000000, 0.000000, 0.000000 ), 0, 3850, "carshowglass_sfsx", "ws_gass_balustrade_better", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3850, -2153.202148, 700.512268, 79.388175, 0.000000, 0.000000, 0.000000 ), 0, 3850, "carshowglass_sfsx", "ws_gass_balustrade_better", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2153.537353, 702.968750, 81.358116, 0.000000, 0.000000, 0.000000 ), 0, 8671, "vegassland62", "ws_stonewall", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19362, -2172.009277, 695.830383, 80.618202, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19362, -2172.009277, 699.040100, 80.618202, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2156.348876, 698.651306, 82.452247, 0.000000, 90.000000, 0.000000 ), 0, 3906, "libertyhi5", "indtendark64", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2166.840820, 698.651306, 82.452247, 0.000000, 90.000000, 0.000000 ), 0, 3906, "libertyhi5", "indtendark64", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2153.537353, 694.318054, 81.378128, 0.000000, 0.000000, 0.000000 ), 0, 8671, "vegassland62", "ws_stonewall", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19362, -2156.738525, 695.810363, 80.618202, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - CreateDynamicObject( 19313, -2242.935302, 644.245788, 60.789676, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.988037, 681.803588, 73.747238, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.987792, 688.373229, 73.737251, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.976806, 694.963317, 73.727333, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.988281, 701.533569, 73.727325, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.229248, 708.042968, 73.727325, 0.000000, 90.000000, 77.799987 ); - CreateDynamicObject( 19313, -2241.556396, 717.703430, 73.727325, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2241.556396, 714.583374, 73.727325, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2238.236083, 721.074951, 73.699882, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2231.629882, 721.051391, 73.709831, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2225.010253, 721.051391, 73.709831, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2218.529785, 721.051391, 73.709831, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2212.089599, 721.051391, 73.709831, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2211.978759, 721.051391, 71.579811, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19313, -2211.958740, 721.051391, 77.369781, 0.000000, 180.000000, 0.000000 ); - CreateDynamicObject( 19313, -2198.501464, 720.819824, 84.271842, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2191.882568, 720.819824, 84.271842, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2201.624023, 720.819824, 84.271842, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2204.904785, 717.520446, 84.281845, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2185.421875, 720.819824, 84.271842, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2178.841064, 720.819824, 84.271842, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2165.629882, 720.819824, 84.271842, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2172.240478, 720.819824, 84.271842, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2159.237548, 718.698913, 84.271842, 0.000000, 90.000000, 135.000000 ); - CreateDynamicObject( 19313, -2156.989257, 710.917907, 84.282402, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 1569, -2172.155761, 701.078918, 52.880634, 0.000000, 0.000000, 270.000000 ); - CreateDynamicObject( 19313, -2156.989257, 706.468139, 84.282402, 0.000000, 90.000000, 90.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2221.299316, 683.029968, 62.268928, 0.000000, 90.000000, 0.000000 ), 0, 13691, "bevcunto2_lahills", "ws_patio1", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2221.299316, 708.020385, 62.268928, 0.000000, 90.000000, 0.000000 ), 0, 13691, "bevcunto2_lahills", "ws_patio1", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2221.299316, 658.030578, 62.268928, 0.000000, 90.000000, 0.000000 ), 0, 13691, "bevcunto2_lahills", "ws_patio1", -1 ); - CreateDynamicObject( 18764, -2188.549804, 713.939575, 76.171890, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 18764, -2188.527099, 717.892822, 76.171875, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 16644, -2213.961914, 636.824279, 57.956058, 0.000000, -29.100027, 90.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2209.293701, 686.602844, 54.778926, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2209.479980, 683.752807, 67.768798, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19426, -2172.262451, 703.201721, 84.579544, 0.000000, 0.000000, 90.000000 ), 0, 0, "0", "0", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 14409, -2224.029541, 681.110229, 65.078796, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2209.479980, 708.752746, 67.768798, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - CreateDynamicObject( 16644, -2209.516601, 636.777832, 47.575698, 180.000000, 40.999984, 180.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2224.755859, 654.782165, 54.788917, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - CreateDynamicObject( 3934, -2232.596679, 670.104858, 75.093658, 0.000000, 0.000000, -1.100000 ); - CreateDynamicObject( 3934, -2232.930664, 652.728149, 73.083602, 0.000000, 0.000000, -1.100000 ); - CreateDynamicObject( 19313, -2242.978271, 675.233825, 73.747238, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.957763, 668.673583, 73.747238, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.957519, 662.073791, 73.747238, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.958007, 655.493713, 73.747238, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.968017, 648.933166, 73.747238, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.935302, 637.666137, 63.239635, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.935302, 631.096557, 63.239650, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.935302, 624.506347, 63.239650, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.935302, 620.045898, 63.239650, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2239.612304, 616.654785, 63.223529, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2233.061035, 616.654785, 63.223529, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2228.600341, 616.654785, 63.223529, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2225.556884, 619.954711, 63.233554, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2225.556884, 622.843933, 63.233554, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2242.935302, 644.245788, 63.239646, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2234.756347, 644.212524, 53.859745, 90.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19313, -2234.728027, 637.611877, 53.869663, 90.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19313, -2233.114013, 645.643432, 73.747238, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 1569, -2172.135742, 702.688598, 52.880634, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 16644, -2228.564697, 639.305847, 68.795463, 0.000000, 145.799957, 90.000000 ); - CreateDynamicObject( 19313, -2224.558349, 643.152343, 53.826015, 90.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 3279, -2234.518310, 623.182373, 63.825904, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19313, -2207.427246, 711.377014, 63.759941, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19313, -2204.904785, 710.900817, 84.281845, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2204.904785, 707.553100, 84.281845, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2160.360595, 703.198120, 84.282402, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2166.990722, 703.198120, 84.282402, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 1569, -2172.155761, 705.678527, 52.880634, 0.000000, 0.000000, 270.000000 ); - CreateDynamicObject( 19313, -2156.949707, 628.286437, 64.993522, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2156.949707, 624.625305, 64.993522, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2207.337158, 624.713317, 55.393512, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2213.641601, 624.713317, 55.393512, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2220.080566, 624.713317, 55.393512, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2156.949707, 618.224914, 64.993522, 0.000000, 90.000000, 90.000000 ); - CreateDynamicObject( 19313, -2226.424316, 624.713317, 55.393512, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 19313, -2239.686767, 645.643371, 73.747238, 0.000000, 90.000000, 0.000000 ); - CreateDynamicObject( 3524, -2172.137207, 697.312133, 79.025268, 10.699995, 0.000000, 270.000000 ); - CreateDynamicObject( 8615, -2217.913574, 628.779174, 55.304237, 0.000000, 0.000000, 270.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2221.891845, 682.453430, 63.008934, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2226.624755, 677.723693, 62.418922, 0.000000, 0.000000, 90.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -32 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2209.293701, 654.782165, 54.778919, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2208.890625, 660.083557, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2209.293701, 665.392456, 54.768913, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2208.890625, 670.692932, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2209.293701, 676.002624, 54.788925, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2208.890625, 681.293029, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2209.479980, 666.782714, 67.769798, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2208.890625, 691.902709, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2209.293701, 697.212524, 54.788921, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2208.890625, 702.522949, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2208.890625, 712.142944, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2209.293701, 710.802795, 54.768928, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.322998, 660.083557, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2224.743408, 665.392456, 54.768917, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.322998, 670.703430, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2224.743408, 676.012756, 54.778919, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.312988, 681.493774, 63.008945, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.312011, 690.944274, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2224.743408, 696.252624, 54.778923, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.322998, 701.552917, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2224.743408, 710.793273, 54.788913, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.322998, 711.182006, 62.748931, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2214.580810, 711.342529, 62.748931, 0.000000, 0.000000, 90.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2224.210449, 711.342529, 62.748931, 0.000000, 0.000000, 90.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2215.267333, 637.675720, 48.892929, 0.000000, 0.000000, 90.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2224.896972, 637.675720, 48.892929, 0.000000, 0.000000, 90.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2215.267333, 635.655822, 48.892929, 0.000000, 0.000000, 90.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2217.096923, 632.795043, 48.872951, 0.000000, 0.000000, 0.000000 ), 0, 4600, "theatrelan2", "gm_labuld2_b", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2222.253173, 632.946716, 54.066001, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2222.253173, 629.436218, 54.065002, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2205.598388, 698.771728, 67.767799, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2230.576416, 698.783386, 67.767799, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2226.055419, 708.754516, 67.766799, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2214.320068, 666.781738, 67.767799, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2225.935791, 697.082092, 68.248794, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2225.935791, 701.592163, 68.248794, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2225.935791, 706.102111, 68.248794, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2225.935791, 710.612365, 68.248794, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2209.452880, 703.802185, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2213.956542, 703.802185, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2218.454833, 703.802185, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2222.967773, 703.802185, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2204.953125, 703.802185, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2215.422851, 698.292541, 68.258811, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2215.422851, 688.632019, 68.258811, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2215.422851, 679.392150, 68.258811, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2215.422851, 670.202331, 68.258811, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2215.422851, 661.101928, 68.258811, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2224.239013, 687.002075, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2224.239013, 679.221862, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2221.918945, 680.761047, 68.258811, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2221.918945, 684.811584, 68.258811, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2224.239013, 654.991943, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2219.728271, 654.991943, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2215.236816, 654.991943, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2210.725585, 654.991943, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2206.215820, 654.991943, 68.258811, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2204.887939, 665.693786, 67.559829, 0.000000, 0.000000, 0.000000 ), 0, 5870, "sunst18_lawn", "citywall6", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2204.887939, 683.315002, 67.559829, 0.000000, 0.000000, 0.000000 ), 0, 5870, "sunst18_lawn", "citywall6", 0 ); - CreateDynamicObject( 14394, -2205.786865, 674.505310, 67.968795, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2192.482910, 674.470092, 68.299896, 0.000000, 90.000000, 0.000000 ), 0, 8486, "ballys02", "ws_floortiles4", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2191.932373, 674.470092, 68.298896, 0.000000, 90.000000, 0.000000 ), 0, 8486, "ballys02", "ws_floortiles4", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2200.035400, 667.553833, 67.559829, 0.000000, 0.000000, 90.000000 ), 0, 5870, "sunst18_lawn", "citywall6", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2190.405273, 667.544006, 67.559829, 0.000000, 0.000000, 90.000000 ), 0, 5870, "sunst18_lawn", "citywall6", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2184.244628, 667.542053, 67.559829, 0.000000, 0.000000, 90.000000 ), 0, 5870, "sunst18_lawn", "citywall6", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2179.523193, 666.782165, 67.559829, 0.000000, 0.000000, 0.000000 ), 0, 5870, "sunst18_lawn", "citywall6", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2179.523193, 681.864379, 67.559829, 0.000000, 0.000000, 0.000000 ), 0, 5870, "sunst18_lawn", "citywall6", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2181.033691, 674.543334, 68.699829, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3850, -2177.597412, 669.819519, 69.295768, 0.000000, 0.000000, 90.000000 ), 0, 3850, "carshowglass_sfsx", "ws_gass_balustrade_better", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3850, -2177.597412, 679.299682, 69.295768, 0.000000, 0.000000, 90.000000 ), 0, 3850, "carshowglass_sfsx", "ws_gass_balustrade_better", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3850, -2175.876220, 677.549560, 69.295768, 0.000000, 0.000000, 0.000000 ), 0, 3850, "carshowglass_sfsx", "ws_gass_balustrade_better", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3850, -2175.876220, 674.129638, 69.295768, 0.000000, 0.000000, 0.000000 ), 0, 3850, "carshowglass_sfsx", "ws_gass_balustrade_better", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3850, -2175.877197, 671.537231, 69.295768, 0.000000, 0.000000, 0.000000 ), 0, 3850, "carshowglass_sfsx", "ws_gass_balustrade_better", -16777216 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2205.129882, 678.959411, 70.749824, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2205.129882, 670.019165, 70.749824, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2200.035400, 681.863891, 67.559829, 0.000000, 0.000000, 90.000000 ), 0, 5870, "sunst18_lawn", "citywall6", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2190.404785, 681.864013, 67.559829, 0.000000, 0.000000, 90.000000 ), 0, 5870, "sunst18_lawn", "citywall6", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2184.402587, 681.874694, 67.559829, 0.000000, 0.000000, 90.000000 ), 0, 5870, "sunst18_lawn", "citywall6", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2199.720458, 666.790283, 72.729934, 0.000000, 90.000000, 0.000000 ), 0, 5134, "wasteland_las2", "ws_bigstones", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2199.720458, 676.420410, 72.729934, 0.000000, 90.000000, 0.000000 ), 0, 5134, "wasteland_las2", "ws_bigstones", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2199.720458, 683.441040, 72.728935, 0.000000, 90.000000, 0.000000 ), 0, 5134, "wasteland_las2", "ws_bigstones", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2189.220458, 666.790283, 72.729934, 0.000000, 90.000000, 0.000000 ), 0, 5134, "wasteland_las2", "ws_bigstones", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2189.220458, 676.420166, 72.729934, 0.000000, 90.000000, 0.000000 ), 0, 5134, "wasteland_las2", "ws_bigstones", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2189.220458, 683.430908, 72.728935, 0.000000, 90.000000, 0.000000 ), 0, 5134, "wasteland_las2", "ws_bigstones", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2184.690185, 666.790283, 72.728935, 0.000000, 90.000000, 0.000000 ), 0, 5134, "wasteland_las2", "ws_bigstones", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2184.690185, 676.420349, 72.728935, 0.000000, 90.000000, 0.000000 ), 0, 5134, "wasteland_las2", "ws_bigstones", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2184.690185, 683.410461, 72.727935, 0.000000, 90.000000, 0.000000 ), 0, 5134, "wasteland_las2", "ws_bigstones", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2205.129882, 673.009033, 72.748832, 90.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2205.130859, 675.968627, 72.747833, 90.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2205.131835, 674.518554, 70.749824, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2179.548339, 677.528808, 70.749824, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2179.548339, 671.108764, 70.749824, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2179.548339, 674.098632, 72.749839, 90.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2179.549316, 674.528015, 72.748840, 90.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2211.046386, 646.232177, 62.758804, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2215.559570, 646.232177, 62.758804, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2220.060058, 646.232177, 62.758804, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2224.572509, 646.232177, 62.758804, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2209.499023, 648.482238, 62.758804, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19467, -2209.499023, 652.992187, 62.758804, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -1 ); - CreateDynamicObject( 1504, -2203.596435, 681.789245, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1505, -2199.596435, 681.789245, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1506, -2195.596435, 681.789245, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1507, -2191.596435, 681.789245, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1504, -2187.596435, 681.789245, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1505, -2183.596435, 667.598876, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1505, -2183.596435, 681.789245, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1504, -2187.596435, 667.598876, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1507, -2191.596435, 667.598876, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1506, -2195.596435, 667.598876, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1504, -2199.596435, 667.598876, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1505, -2203.596435, 667.598876, 68.779869, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 12950, -2236.057373, 633.426391, 60.999824, 0.000000, 0.000000, 270.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2237.822021, 690.024353, 68.927810, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.490722, 690.024353, 68.926811, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.490722, 680.385009, 68.926811, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2237.832519, 680.385009, 68.927810, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - CreateDynamicObject( 3934, -2232.517333, 687.896911, 69.008781, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 12950, -2205.546386, 685.765869, 69.449813, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.320556, 683.203857, 63.756790, 0.000000, 0.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.321533, 690.024353, 63.756790, 0.000000, 0.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.054199, 694.754638, 63.756790, 0.000000, 0.000000, 90.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2238.259033, 694.753662, 63.756790, 0.000000, 0.000000, 90.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2236.857910, 711.374084, 63.696796, 0.000000, 0.000000, 90.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.065185, 711.373107, 63.699794, 0.000000, 0.000000, 90.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.324707, 716.102905, 63.700798, 0.000000, 0.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.325683, 716.463073, 63.696796, 0.000000, 0.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.490722, 716.104187, 68.866813, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2236.425292, 716.104187, 68.867813, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2236.425292, 716.464477, 68.868812, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.493652, 716.464477, 68.867813, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2237.822021, 673.574401, 75.007827, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - CreateDynamicObject( 12950, -2224.647705, 660.645324, 69.679862, 0.000000, 0.000000, 180.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.490966, 673.574401, 75.006828, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.490966, 666.773742, 75.005828, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2237.822998, 666.773742, 75.004829, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2238.253417, 662.023742, 69.824821, 0.000000, 0.000000, 90.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.061523, 662.024719, 69.824821, 0.000000, 0.000000, 90.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2237.822998, 657.114196, 72.994880, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2237.822998, 650.323608, 72.995880, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.490966, 650.323608, 72.993881, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2230.490966, 657.113647, 72.992881, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - CreateDynamicObject( 14394, -2233.801513, 661.132873, 74.258979, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 14394, -2233.801513, 659.212524, 72.838966, 0.000000, 0.000000, 90.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18763, -2230.540527, 660.456542, 72.601844, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18763, -2237.571044, 660.456542, 72.601844, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - CreateDynamicObject( 3524, -2230.528808, 660.148498, 73.232757, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 3524, -2237.610107, 660.148498, 73.232757, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1569, -2172.135742, 707.388671, 52.880634, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 1569, -2172.155761, 710.388549, 52.870632, 0.000000, 0.000000, 270.000000 ); - CreateDynamicObject( 3525, -2172.378662, 697.639038, 54.020618, 0.000000, 0.000000, 270.000000 ); - CreateDynamicObject( 3525, -2172.378662, 697.639038, 54.020618, 0.000000, 0.000000, 270.000000 ); - CreateDynamicObject( 3525, -2172.378662, 701.919494, 54.020618, 0.000000, 0.000000, 270.000000 ); - CreateDynamicObject( 3525, -2172.378662, 706.529602, 54.020618, 0.000000, 0.000000, 270.000000 ); - CreateDynamicObject( 3525, -2172.378662, 710.869262, 54.020618, 0.000000, 0.000000, 270.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2191.484863, 711.401123, 54.380622, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2171.874755, 711.401123, 54.390625, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19454, -2181.858154, 711.401428, 57.900627, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19454, -2172.237060, 711.401428, 57.900627, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19435, -2181.672607, 711.404052, 52.180625, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19435, -2181.306640, 712.173339, 52.170635, 0.000000, 0.000000, 27.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19435, -2181.305664, 712.174316, 55.670623, 0.000000, 0.000000, 27.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19435, -2181.672607, 711.404052, 55.680637, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19435, -2182.035400, 712.174438, 55.670623, 0.000000, 0.000000, -27.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19435, -2182.034423, 712.175415, 52.170619, 0.000000, 0.000000, -27.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19454, -2182.779541, 711.911621, 57.900627, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19454, -2173.150146, 711.911621, 57.900627, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19454, -2171.879638, 711.911621, 52.170608, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19454, -2171.878662, 711.912597, 55.670574, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19454, -2191.489257, 711.912597, 52.200588, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19454, -2191.489257, 711.912597, 55.700588, 0.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2176.362060, 716.144958, 57.170639, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2186.992675, 716.144958, 57.170639, 0.000000, 90.000000, 0.000000 ), 0, 3979, "civic01_lan", "airportwall_256128", -1 ); - CreateDynamicObject( 1569, -2188.596435, 709.898132, 52.870632, 0.000000, 0.000000, 270.000000 ); - CreateDynamicObject( 1569, -2188.596435, 705.568298, 52.870632, 0.000000, 0.000000, 270.000000 ); - CreateDynamicObject( 1569, -2188.596435, 701.278442, 52.870632, 0.000000, 0.000000, 270.000000 ); - CreateDynamicObject( 1569, -2188.586914, 706.898620, 52.880634, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 1569, -2188.586914, 702.568481, 52.880634, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 1569, -2188.586914, 698.278503, 52.880634, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 3525, -2188.369384, 697.639038, 54.020618, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 3525, -2188.369384, 701.919006, 54.020618, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 3525, -2188.369384, 706.218872, 54.020618, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 3525, -2188.369384, 710.569091, 54.020618, 0.000000, 0.000000, 90.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2225.199462, 654.792175, 61.198917, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2225.808593, 654.606201, 62.038928, 0.000000, 0.000000, 90.000000 ), 0, 1649, "wglass", "carshowwin2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2211.308105, 654.782348, 63.298946, 0.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2220.480468, 654.762329, 54.768917, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19355, -2211.395996, 654.786376, 65.548873, 0.000000, 0.000000, 90.000000 ), 0, 1649, "wglass", "carshowwin2", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2213.487548, 654.762329, 54.768917, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2215.558593, 654.772338, 66.828941, 0.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2218.461425, 654.752319, 66.808937, 0.000000, 90.000000, 0.000000 ), 0, 16150, "ufo_bar", "offwhitebrix", -1 ); - CreateDynamicObject( 948, -2164.290771, 694.855895, 78.868164, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 948, -2160.258544, 694.855895, 78.868164, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 16644, -2217.454345, 630.398742, 58.186061, 0.000000, -38.599960, 180.000000 ); - CreateDynamicObject( 3279, -2163.461181, 714.985473, 85.320106, 0.000000, 0.000000, -135.000000 ); - CreateDynamicObject( 19313, -2197.952880, 624.713317, 67.883453, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19313, -2183.890136, 624.713317, 67.883453, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19313, -2179.068603, 624.713317, 65.293495, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19313, -2172.096679, 617.723144, 65.293495, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 3279, -2163.311279, 620.687377, 61.636405, 0.000000, 0.000000, 90.000000 ); - // Arntz Bank House Mapping Trees CreateDynamicObject( 3409, -1739.472412, 1235.560668, 6.276869, 0.000000, 0.000000, 0.000000 ); CreateDynamicObject( 3409, -1735.621948, 1236.270874, 6.276869, 0.000000, 0.000000, 0.000000 ); @@ -13617,242 +13268,6 @@ stock initializeObjects( ) CreateDynamicObject( 2600, -2882.558105, 27.079746, 12.448287, 0.000000, 0.000000, -69.400001 ); CreateDynamicObject( 1569, -2873.500488, 26.685846, 7.522222, 0.000000, 0.000000, 180.000000 ); - // Veloxity Cave near Golf - SetDynamicObjectMaterial( CreateDynamicObject( 18228, -2693.277099, -461.471618, -1.695433, 0.000000, 0.000000, 66.499992 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18228, -2699.553222, -436.663604, -1.695433, 0.000000, 0.000000, 104.199989 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18228, -2694.889648, -499.117797, -1.695433, 0.000000, 0.000000, -171.899948 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18228, -2749.158935, -484.349975, -1.695433, 0.000000, 0.000000, 107.200057 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18228, -2740.985595, -460.082122, -1.695433, 0.000000, 0.000000, 15.200008 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2712.827392, -448.682464, -8.093872, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18228, -2734.238525, -458.446044, -15.675476, 0.000000, 0.000000, 15.200008 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18228, -2705.642089, -438.203979, -13.445430, 0.000000, 0.000000, 104.199989 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18228, -2699.108886, -451.324890, -13.445430, 0.000000, 0.000000, 70.900001 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2712.827392, -488.442443, 3.026123, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2712.827392, -463.692382, 3.026123, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2712.827392, -438.762542, 3.026123, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2737.727539, -438.762542, 3.026123, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2687.866699, -465.092407, 3.026123, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2737.757080, -456.002380, 3.026123, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2701.226318, -500.208343, 16.929077, 25.000003, 0.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2717.166503, -498.437469, 16.254394, 25.000003, 0.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2734.510986, -490.822204, 16.578247, 30.799993, 0.000000, -45.999996 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2741.197021, -474.171722, 16.578247, 30.799993, 0.000000, -96.800003 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2697.875000, -484.373840, 19.154541, 8.000000, 0.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2697.314453, -464.538177, 20.356750, 8.000000, 0.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2702.571533, -450.551574, 21.270629, 3.500005, 0.000000, 20.599998 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2703.733398, -435.015380, 14.356445, -28.399995, 0.000000, -12.199995 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2722.870117, -458.392059, 24.494628, -13.799994, -9.300000, 20.599998 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2735.831054, -463.850250, 22.259826, -13.799994, -9.300000, 20.599998 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2732.056152, -457.128967, 12.758296, 122.099990, 178.000030, -79.900001 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2718.626220, -478.345489, 22.614440, 8.199995, -0.500000, 20.599998 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2710.658447, -469.105010, 23.551269, 8.199995, -0.500000, 20.599998 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 898, -2731.667480, -444.616821, 7.283565, 0.000000, 0.000000, 12.899991 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 898, -2714.645263, -429.484924, 7.283565, 0.000000, 0.000000, 12.899991 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 898, -2729.971679, -447.140563, 15.873779, -80.099983, 0.000000, 12.899991 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 898, -2719.693847, -443.435974, 14.966609, -80.099983, -25.199996, 12.899991 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 898, -2729.971679, -447.140563, 15.873779, -80.099983, 0.000000, 12.899991 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 898, -2729.391845, -442.200225, 7.283565, 0.000000, 0.000000, 40.199974 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 898, -2714.311523, -436.165985, 15.993652, -80.099983, -25.199996, 12.899991 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2718.971191, -429.765899, 0.086484, 19.300003, 89.800003, 40.300037 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2722.774658, -432.982574, 0.070068, 19.300003, 89.800003, 40.300037 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2726.395263, -436.173339, 0.034301, 19.300003, 89.800003, 42.800006 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2704.289306, -489.461822, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2704.289306, -485.461822, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2704.289306, -481.461822, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2704.289306, -477.461822, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2704.289306, -473.461822, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2704.289306, -469.461822, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2704.289306, -465.461822, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2704.289306, -461.461822, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19531, -2718.598388, -449.410736, -3.021423, 0.000000, 0.000000, 0.000000 ), 0, 13710, "easthills_lahills", "sw_stones", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2715.050537, -470.502105, -8.103878, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2737.746093, -473.632385, -8.103878, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - CreateDynamicObject( 14407, -2709.041503, -484.739074, -10.803894, 0.000000, 0.000000, 90.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2715.050537, -483.141937, -13.703857, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2715.050537, -458.212005, -13.703857, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2715.050537, -433.232147, -13.703857, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2707.086669, -482.507476, -20.113891, 0.000000, 0.000000, 90.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2716.017333, -486.377502, -20.113891, 0.000000, 0.000000, 90.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2714.797851, -484.571868, -8.996459, 0.000000, 90.000000, -36.000003 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2710.842041, -487.446258, -8.996459, 0.000000, 90.000000, -36.000003 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2729.243896, -493.331970, -8.983882, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2715.382324, -485.344665, -8.996459, 0.000000, 90.000000, -36.000003 ), 0, 9483, "landsfw", "rock1_128", -16 ); - CreateDynamicObject( 3525, -2715.196533, -442.948577, -5.233273, 0.000000, 0.000000, 18.100013 ); - CreateDynamicObject( 2744, -2736.753417, -483.253051, 9.807003, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 2810, -2736.929443, -483.147613, 9.851074, 17.499998, 0.000000, 62.700012 ); - CreateDynamicObject( 18705, -2736.617431, -483.505432, 8.579341, 0.000000, 0.000000, -90.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 2180, -2732.917480, -484.504058, 8.011470, 12.399991, 0.000000, 128.700012 ), 0, 12954, "sw_furniture", "CJ_WOOD5", 0 ); - CreateDynamicObject( 3461, -2729.507812, -478.908935, 7.619079, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 3461, -2731.857177, -477.706665, 7.319087, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 3461, -2730.703369, -478.406707, 7.619079, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 19999, -2734.026855, -484.704040, 8.112792, 7.699995, 3.000000, 119.899986 ); - CreateDynamicObject( 18741, -2729.739013, -473.769348, 1.186125, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2712.827392, -495.442352, 3.015121, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - CreateDynamicObject( 18748, -2727.612792, -475.186676, -5.443847, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 18748, -2728.703369, -474.816741, -9.813899, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 18647, -2733.672851, -478.228668, 4.176146, 0.000000, 0.000000, 26.700000 ); - CreateDynamicObject( 747, -2725.089355, -477.938690, 2.346069, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 747, -2725.089355, -476.728698, 2.346069, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 747, -2725.257568, -475.386260, 2.346069, 0.000000, 0.000000, 31.599998 ); - CreateDynamicObject( 747, -2726.343017, -469.308837, 2.346069, 0.000000, 0.000000, -141.299987 ); - CreateDynamicObject( 14394, -2726.231445, -473.334838, 2.666136, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 747, -2727.014892, -478.710845, 2.346069, 0.000000, 0.000000, 115.999977 ); - CreateDynamicObject( 747, -2727.283203, -469.168395, 2.346069, 0.000000, 0.000000, -98.499977 ); - CreateDynamicObject( 747, -2733.445800, -469.187988, 2.346069, 0.000000, 0.000000, -98.499977 ); - CreateDynamicObject( 14394, -2730.888671, -469.451690, 2.703674, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 2912, -2737.714111, -487.582000, 8.503355, 7.099997, 0.000000, 0.000000 ); - CreateDynamicObject( 2912, -2736.940917, -488.199859, 8.388423, 7.099997, 0.000000, 30.099998 ); - CreateDynamicObject( 2912, -2737.764892, -488.672088, 8.348752, 7.099997, 0.000000, 52.999992 ); - CreateDynamicObject( 2912, -2737.467041, -488.326141, 9.082942, 7.099997, 0.000000, 30.099998 ); - SetDynamicObjectMaterial( CreateDynamicObject( 2894, -2732.946533, -484.195129, 8.783081, 12.399991, 0.000000, 121.900016 ), 0, 0, "", "", 0 ); - CreateDynamicObject( 2894, -2733.462646, -483.592987, 8.817073, 12.399991, 0.000000, 146.500015 ); - CreateDynamicObject( 2059, -2732.068603, -483.920104, 7.839169, 4.499999, 4.300004, 90.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2730.376953, -494.173248, 0.396122, 0.000000, 0.000000, 90.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2702.607666, -494.173248, 0.396122, 0.000000, 0.000000, 90.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2718.504394, -494.168853, 8.036112, 0.000000, 0.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - CreateDynamicObject( 19859, -2723.276123, -499.703094, 4.726123, 0.000000, 0.000000, -40.899974 ); - CreateDynamicObject( 19859, -2721.008544, -501.647552, 4.726123, 0.000000, 0.000000, 139.400009 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2726.453613, -497.675262, -1.373875, 0.000000, 0.000000, 49.499950 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - CreateDynamicObject( 3524, -2722.435302, -501.057952, 4.281219, 10.599999, 0.000000, 138.200027 ); - CreateDynamicObject( 1497, -2705.257568, -449.637908, 3.497189, 0.699998, 0.000000, 84.400085 ); - CreateDynamicObject( 3525, -2705.463623, -449.963745, 4.934875, 0.699998, 0.000000, -94.199920 ); - CreateDynamicObject( 3525, -2705.303955, -447.789642, 4.934875, 0.699998, 0.000000, -94.199920 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19355, -2723.395263, -445.473632, 5.571043, 0.000000, 8.099999, -12.800004 ), 0, 8620, "excalibursign", "excalibursign02", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2715.953125, -486.129455, -8.996459, 0.000000, 90.000000, -36.000003 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18762, -2716.535156, -486.930419, -8.996459, 0.000000, 90.000000, -36.000003 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2725.404052, -473.807556, -20.923828, 0.000000, 0.000000, 0.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2706.474365, -469.687622, -20.993652, 0.000000, 0.000000, 0.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2710.469238, -446.218872, -20.993652, 0.000000, 0.000000, 20.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2710.469238, -441.898834, -20.993652, 0.000000, 0.000000, 90.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - CreateDynamicObject( 3525, -2719.674316, -482.486785, -11.384033, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 19859, -2718.833740, -481.987060, -11.953735, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19859, -2715.833740, -481.987060, -11.953735, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19859, -2712.833740, -481.987060, -11.953735, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19859, -2709.833740, -481.987060, -11.953735, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19859, -2706.991943, -479.826995, -11.953735, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19859, -2706.991943, -475.826995, -11.953735, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19859, -2706.991943, -471.826995, -11.953735, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19859, -2706.991943, -467.826995, -11.953735, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19859, -2706.991943, -463.826995, -11.953735, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19859, -2712.319580, -456.809692, -11.983882, 0.000000, 0.000000, 100.000000 ); - CreateDynamicObject( 19859, -2712.756591, -454.317962, -11.983882, 0.000000, 0.000000, 100.000000 ); - CreateDynamicObject( 19859, -2713.697509, -451.866638, -11.983882, 0.000000, 0.000000, 135.000000 ); - CreateDynamicObject( 19859, -2715.218261, -450.386962, -11.983882, 0.000000, 0.000000, 135.000000 ); - CreateDynamicObject( 19859, -2716.705078, -448.871765, -11.983882, 0.000000, 0.000000, 135.000000 ); - CreateDynamicObject( 19859, -2715.716308, -442.398101, -11.953735, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19859, -2718.210693, -447.377960, -11.983882, 0.000000, 0.000000, 135.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2722.066894, -471.623443, -11.053771, 0.000000, 0.000000, 45.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2716.081787, -465.641113, -11.053771, 0.000000, 0.000000, 45.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2712.699462, -459.951263, -13.473262, 0.000000, 90.000000, 90.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2713.121337, -455.080535, -13.473262, 0.000000, 90.000000, 100.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2715.186279, -451.120635, -13.473262, 0.000000, 90.000000, -45.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2718.695312, -447.613372, -13.473262, 0.000000, 90.000000, -45.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2722.229736, -444.078002, -13.473262, 0.000000, 90.000000, -45.000000 ), 0, 9483, "landsfw", "rock1_128", -16 ); - CreateDynamicObject( 19859, -2724.894531, -480.236938, -11.953735, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19859, -2724.894531, -477.236938, -11.953735, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19859, -2723.714843, -473.991241, -11.953735, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 19859, -2721.485351, -471.718597, -11.953735, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 19859, -2719.192871, -469.509613, -11.953735, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 19859, -2716.959228, -467.243896, -11.953735, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 19859, -2714.715576, -464.985534, -11.953735, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 19859, -2712.194580, -461.825469, -11.953735, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19859, -2712.194580, -459.315643, -11.953735, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 751, -2716.066894, -475.192016, -13.543701, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 337, -2715.408447, -475.846374, -12.466487, 2.799998, 166.300003, -27.399997 ); - CreateDynamicObject( 3092, -2716.373779, -476.202880, -11.253723, -7.099997, 0.000000, 164.500030 ); - CreateDynamicObject( 3092, -2716.481445, -476.156738, -13.079586, -7.099997, 90.000000, 135.299942 ); - CreateDynamicObject( 8550, -2725.457031, -471.312713, -3.443845, 0.000000, 0.000000, 86.800003 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2723.301757, -473.041778, -5.413513, 0.000000, 0.000000, 90.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - CreateDynamicObject( 3791, -2715.900146, -473.324737, -12.764160, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 8550, -2701.393310, -449.749755, -3.443845, 0.000000, 0.000000, 113.400001 ); - CreateDynamicObject( 8550, -2699.193603, -464.009918, -3.443845, 0.000000, 0.000000, 96.199996 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2715.050537, -470.502105, -8.823848, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2715.050537, -445.512145, -8.823848, 0.000000, 90.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - CreateDynamicObject( 9310, -2718.302246, -436.514984, -1.513916, 0.000000, 0.000000, 107.700004 ); - CreateDynamicObject( 3525, -2718.164062, -443.917785, -5.233273, 0.000000, 0.000000, 18.100013 ); - CreateDynamicObject( 3935, -2719.502685, -449.422790, -6.213806, 0.000000, 0.000000, 61.299999 ); - CreateDynamicObject( 10985, -2710.014648, -436.624664, 5.830883, 11.400003, -14.300000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 896, -2746.122802, -488.860137, 4.369221, 0.000000, 0.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, -2729.984130, -473.470703, 1.946123, 0.000000, 90.000000, 0.000000 ), 0, 896, "underwater", "greyrockbig", -16 ); - CreateDynamicObject( 2096, -2710.514648, -441.615173, 4.893806, 19.000000, 142.999954, 131.199996 ); - SetDynamicObjectMaterial( CreateDynamicObject( 749, -2713.625732, -453.092071, 18.856121, 0.000000, 180.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -69904 ); - SetDynamicObjectMaterial( CreateDynamicObject( 749, -2723.415527, -462.892059, 20.516124, 0.000000, 180.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -69904 ); - SetDynamicObjectMaterial( CreateDynamicObject( 749, -2706.575439, -464.732025, 17.376125, 0.000000, 180.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -69904 ); - CreateDynamicObject( 19298, -2719.406494, -449.247406, -4.193799, 0.000000, 0.000000, 61.299999 ); - CreateDynamicObject( 19295, -2719.469238, -449.361358, -4.193799, 0.000000, 0.000000, 61.299999 ); - CreateDynamicObject( 19289, -2716.096923, -474.762847, -10.263854, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 750, -2710.976806, -472.387237, -7.563880, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 750, -2713.816894, -458.927307, -7.563880, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2722.417968, -454.562255, 3.586122, 0.000000, 90.000000, 90.000000 ), 0, 896, "underwater", "greyrockbig", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2730.217285, -432.720336, 3.586122, 0.000000, 90.000000, -50.699996 ), 0, 896, "underwater", "greyrockbig", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2723.418945, -454.562255, 3.586122, 0.000000, 90.000000, 90.000000 ), 0, 896, "underwater", "greyrockbig", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2724.399169, -454.562255, 3.586122, 0.000000, 90.000000, 90.000000 ), 0, 896, "underwater", "greyrockbig", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2725.360839, -454.562255, 3.586122, 0.000000, 90.000000, 90.000000 ), 0, 896, "underwater", "greyrockbig", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2730.815429, -464.563415, 3.586122, 90.000000, 0.000000, 0.000000 ), 0, 896, "underwater", "greyrockbig", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2720.070068, -466.781799, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2720.070068, -463.081787, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2720.070068, -459.381774, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2720.070068, -455.681762, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2720.070068, -451.981750, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2720.070068, -448.281738, 2.756103, 0.000000, 0.000000, 0.000000 ), 0, 16150, "ufo_bar", "GEwhite1_64", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 898, -2715.893310, -441.228240, 18.990585, -80.099983, -25.199996, 12.899991 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 896, -2715.866210, -508.076171, 5.176123, 0.000000, 0.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 896, -2723.626708, -506.786193, 7.686122, 0.000000, 0.000000, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 896, -2703.482177, -504.363922, 5.146121, 0.000000, 0.000000, -15.600000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 896, -2702.755126, -497.072875, 5.146121, 0.000000, 0.000000, 7.800004 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 896, -2730.434570, -501.955108, 8.126129, 0.000000, 0.000000, 115.199974 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 896, -2730.157226, -494.373077, 8.126129, 0.000000, 0.000000, 95.900024 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - CreateDynamicObject( 3092, -2711.785400, -503.926727, 6.296122, 0.000000, 180.000000, -135.000000 ); - CreateDynamicObject( 19087, -2711.815429, -503.946746, 8.616124, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19087, -2711.815429, -501.946746, 8.616124, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19087, -2711.815429, -499.946746, 8.616124, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 3092, -2711.785400, -501.926727, 6.296122, 0.000000, 180.000000, 0.000000 ); - CreateDynamicObject( 3092, -2711.785400, -499.926727, 6.296122, 0.000000, 180.000000, 45.000000 ); - CreateDynamicObject( 19556, -2714.409179, -496.796630, 4.244670, 76.800033, 75.699996, 156.299987 ); - CreateDynamicObject( 1271, -2714.273681, -496.665313, 3.866122, 0.000000, 0.000000, 20.000000 ); - CreateDynamicObject( 14637, -2712.448486, -501.256835, 7.086122, 0.000000, 0.000000, 156.599899 ); - CreateDynamicObject( 2906, -2715.713134, -500.520904, 3.576122, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2729.118408, -488.508972, -4.351830, -155.800018, -11.199996, 0.000000 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2725.548095, -498.854736, -3.102160, -159.200012, -24.300001, 58.699977 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 899, -2712.972656, -500.221282, -5.588006, -159.200012, -24.300001, 75.999969 ), 0, 9135, "vgseseabed", "vgs_rockmid1a", -16 ); - CreateDynamicObject( 751, -2724.581787, -485.639770, -14.303853, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 2907, -2716.200195, -500.170806, 3.576122, 0.000000, 0.000000, -35.699993 ); - CreateDynamicObject( 2905, -2715.492675, -499.669067, 3.576122, 0.000000, 0.000000, 75.499984 ); - CreateDynamicObject( 19527, -2714.991943, -500.808471, 3.526123, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 14890, -2734.834960, -483.394958, 8.146888, -7.699997, 3.799998, 0.000000 ); - CreateDynamicObject( 2589, -2711.660156, -501.021331, 10.026124, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 2589, -2711.660156, -503.021331, 10.026124, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1985, -2714.114990, -495.488372, 3.512845, 0.000000, 180.000000, 0.000000 ); - CreateDynamicObject( 2388, -2713.866699, -495.250152, 3.516122, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19556, -2714.343994, -496.534912, 4.259901, 78.000030, 81.300010, 105.800003 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2714.162841, -434.908111, 311.452423, 0.000000, 90.000000, 0.000000 ), 0, 3975, "lanbloke", "p_floor3", -16 ); - CreateDynamicObject( 19543, -2706.930175, -451.158111, 311.922485, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 19543, -2721.879638, -451.158111, 311.922485, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2714.162841, -459.867858, 311.452423, 0.000000, 90.000000, 0.000000 ), 0, 3975, "lanbloke", "p_floor3", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2714.162841, -467.718139, 311.454437, 0.000000, 90.000000, 0.000000 ), 0, 3975, "lanbloke", "p_floor3", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2734.108886, -451.718139, 311.454437, 0.000000, 90.000000, 0.000000 ), 0, 3975, "lanbloke", "p_floor3", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2694.198974, -451.718139, 311.454437, 0.000000, 90.000000, 0.000000 ), 0, 3975, "lanbloke", "p_floor3", -16 ); - CreateDynamicObject( 19543, -2708.900634, -445.048095, 311.922485, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19543, -2708.900634, -458.208160, 311.922485, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19543, -2719.801513, -445.048095, 311.922485, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 19543, -2719.801513, -458.198242, 311.922485, 0.000000, 0.000000, 90.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2714.358154, -469.346801, 311.204193, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2714.358154, -455.306823, 311.204193, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2714.358154, -441.256744, 311.204193, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2714.358154, -427.566894, 311.204193, 0.000000, 0.000000, 90.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3934, -2738.946289, -458.538574, 311.943267, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3934, -2738.946289, -444.768493, 311.943267, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3934, -2689.574462, -458.538574, 311.943267, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3934, -2689.574462, -444.648468, 311.943267, 0.000000, 0.000000, 0.000000 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", -16 ); - CreateDynamicObject( 1278, -2750.732910, -465.411956, 326.036712, 0.000000, 0.000000, 135.000000 ); - CreateDynamicObject( 1278, -2750.592773, -437.861999, 326.036712, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 1278, -2677.962158, -465.411956, 326.036712, 0.000000, 0.000000, -135.000000 ); - CreateDynamicObject( 1278, -2677.962158, -437.982025, 326.036712, 0.000000, 0.000000, -45.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2738.548583, -432.409515, 311.413116, 0.000000, 90.000000, 0.000000 ), 0, 9495, "vict_sfw", "Grass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2738.548583, -469.899444, 311.413116, 0.000000, 90.000000, 0.000000 ), 0, 9495, "vict_sfw", "Grass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2690.146972, -432.409515, 311.413116, 0.000000, 90.000000, 0.000000 ), 0, 9495, "vict_sfw", "Grass", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2690.146972, -469.899505, 311.413116, 0.000000, 90.000000, 0.000000 ), 0, 9495, "vict_sfw", "Grass", -16 ); - // [MH] Base CreateVehicle( 519, -2737.3647, 1756.7551, 3.6473, 89.9969, -1, -1, 120 ); // shamal g2a CreateDynamicObject( 19529, -2686.735839, 1745.229003, 1.725780, 0.000000, 0.000000, 0.000000 ); @@ -14873,17 +14288,9 @@ stock initializeObjects( ) CreateDynamicObject( 19868, 1286.187500, -1231.048339, 15.736886, 0.000000, 0.000000, 0.000000 ); CreateDynamicObject( 19868, 1291.368041, -1231.048339, 15.736886, 0.000000, 0.000000, 0.000000 ); - // KESH KE$H CRAP + // KESH KE$H HILLSIDE CreateDynamicObject( 3525, -1202.009277, -675.596740, 49.283107, -2.100001, 0.000000, -109.000000 ); CreateDynamicObject( 3525, -1203.423706, -679.464111, 49.159603, -1.900004, 0.499998, -120.799972 ); - CreateDynamicObject( 3525, -1734.088378, 1115.517333, 47.659530, 21.700006, 0.000000, 0.000000 ); - CreateDynamicObject( 3525, -1730.481079, 1115.566040, 47.576480, 25.200000, 0.000000, 0.000000 ); - CreateDynamicObject( 3524, -1729.160400, 1114.733154, 45.525310, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 10575, -1739.609985, 1115.898681, 46.455131, 0.099993, 0.000000, 90.200019 ); - CreateDynamicObject( 3524, -1735.125732, 1114.774291, 45.805313, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 3528, -1731.090820, 1084.331909, 50.933048, -0.700002, 20.800003, 91.199996 ); - CreateDynamicObject( 3524, -1728.305664, 1084.779541, 45.443504, 0.000000, -0.200000, 172.799987 ); - CreateDynamicObject( 3524, -1734.260131, 1084.917114, 45.375320, 0.000000, 0.000000, -178.899978 ); SetDynamicObjectMaterialText( CreateDynamicObject( 3074, -1195.3206, -682.8578, 52.2863, 0.0000, 0.0000, -19.9879 ), 0, "{FFDC2E}THE BO$$", 130, "Arial", 16, 1, -65536, 0, 1); // Wolf Rooftop Extension Downtown