From b68a72fe1cbfd5bbccaf8dd694c36b049573fbaf Mon Sep 17 00:00:00 2001 From: Lorenc Pekaj Date: Wed, 4 Jul 2018 03:36:04 +1000 Subject: [PATCH] add orbital cannon, supa in facilities, rpg --- gamemodes/sf-cnr.pwn | 230 ++++------ .../cnr/static/player_objects.inc | 160 +++++++ .../cnr/static/server_objects.inc | 9 + .../irresistible/features/ammunation.inc | 12 +- .../irresistible/features/gangs/cannon.inc | 363 +++++++++++++++ .../features/gangs/facilities.inc | 429 +++++++++++------- pawno/include/irresistible/main.inc | 1 + scriptfiles/updates.txt | 19 +- 8 files changed, 915 insertions(+), 308 deletions(-) create mode 100644 pawno/include/irresistible/features/gangs/cannon.inc diff --git a/gamemodes/sf-cnr.pwn b/gamemodes/sf-cnr.pwn index b7310a7..46e42b9 100644 --- a/gamemodes/sf-cnr.pwn +++ b/gamemodes/sf-cnr.pwn @@ -82,7 +82,6 @@ native gpci ( playerid, serial[ ], len ); #define IsPlayerKidnapped(%1) (p_Kidnapped{%1}) #define IsPlayerBlowingCock(%0) (p_GivingBlowjob{%0}) #define IsPlayerGettingBlowed(%0) (p_GettingBlowjob{%0}) -#define IsPlayerAdminOnDuty(%0) (p_AdminOnDuty{%0}) #define IsPlayerMining(%0) (p_isMining{%0}) #define IsPlayerLoadingObjects(%0) (p_pausedToLoad{%0}) #define IsPlayerOnSlotMachine(%0) (p_usingSlotMachine[%0]!=-1) @@ -96,7 +95,6 @@ native gpci ( playerid, serial[ ], len ); #define Ach_Unlock(%0,%1) (%0 >= %1 ?("{6EF83C}"):("{FFFFFF}")) #define UpdatePlayerTime(%0) SetPlayerTime(%0,floatround(g_WorldClockSeconds/60),g_WorldClockSeconds-floatround((g_WorldClockSeconds/60)*60)) #define GetPlayerTotalCash(%0) (p_BankMoney[%0] + p_Cash[%0]) // Bank Money and Money -#define IsPlayerAFK(%0) ((GetTickCount()-p_AFKTime[%0])>=2595) #define GetPlayerMethLabVehicle(%0) (GetPlayerVirtualWorld(%0)-VW_METH) #define IsPlayerLorenc(%0) (p_AccountID[%0]==1) #define Achievement:: ach_ @@ -1156,13 +1154,17 @@ new ; /* ** ATM System ** */ -#define MAX_ATMS 48 +#if defined MAX_FACILITIES + #define MAX_ATMS ( 48 + MAX_FACILITIES ) +#else + #define MAX_ATMS ( 48 ) +#endif enum E_ATM_DATA { E_CHECKPOINT, Float: E_HEALTH, E_TIMESTAMP, E_OBJECT, Text3D: E_LABEL, bool: E_DISABLED, - E_PICKUP, E_LOOT + E_PICKUP, E_LOOT, E_WORLD }; new @@ -1404,6 +1406,7 @@ new /* ** Toy System ** */ #define MAX_TOYS ( sizeof( g_ToyData ) ) +#define MAX_TOY_UNLOCKS ( 200 ) // should be ideally MAX_TOYS #define CATEGORY_WATCHES ( 0 ) #define CATEGORY_BERETS ( 1 ) @@ -1502,7 +1505,7 @@ new { CATEGORY_MASKS, 96, "Gucci Balaclava", 19801, 10000, 2 }, { CATEGORY_MASKS, 45, "Black Mask", 18912, 6000, 2 }, { CATEGORY_MASKS, 46, "Green Mask", 18913, 5200, 2 }, - // { CATEGORY_MASKS, 47, "Versace Mask", 18915, 4500, 2 }, + { CATEGORY_MASKS, 47, "Weed Bandana", 18894, 4500, 2 }, { CATEGORY_MASKS, 48, "Gimp Mask", 19163, 300, 2 }, { CATEGORY_MASKS, 49, "Hockey Mask White", 19036, 250, 2 }, { CATEGORY_MASKS, 50, "Hockey Mask Red", 19037, 250, 2 }, @@ -1539,11 +1542,7 @@ new // { CATEGORY_GLASSES, 71, "Versace Vintage", 19033, 520, 2 }, // { CATEGORY_GLASSES, 72, "Versace Havana Wrap", 19030, 490, 2 }, { CATEGORY_GLASSES, 73, "Oakley Whisker", 19008, 400, 2 }, - // { CATEGORY_GLASSES, 74, "Oakley Wiretap", 19009, 400, 2 }, - // { CATEGORY_GLASSES, 75, "Versace Brown Square", 19031, 360, 2 }, { CATEGORY_GLASSES, 76, "Versace Marble Square", 19035, 380, 2 }, - // { CATEGORY_GLASSES, 77, "Oakley Valve", 19010, 300, 2 }, - // { CATEGORY_GLASSES, 78, "Oakley Crankshaft", 19007, 260, 2 }, // HANDHELD { CATEGORY_HANDHELD, 100, "Antique Sword", 19590, 15000, 6 }, @@ -1573,8 +1572,9 @@ new // MISC { CATEGORY_MISC, 99, "Gold Bar", 19941, 38000, 1 }, - { CATEGORY_MISC, 128, "Cowboy Boots", 11735, 3000, 1 }, // LATEST - { CATEGORY_MISC, 127, "Pistol Holster", 19773, 1000, 1 }, + { CATEGORY_MISC, 74, "Cowboy Boots", 11735, 3000, 1 }, + { CATEGORY_MISC, 77, "Marijuana Roll", 2901, 2000, 1 }, + { CATEGORY_MISC, 75, "Pistol Holster", 19773, 1000, 1 }, { CATEGORY_MISC, 79, "Police Light", 19419, 600, 1 }, { CATEGORY_MISC, 94, "Xmas Box 1", 19054, 500, 1 }, { CATEGORY_MISC, 95, "Xmas Box 2", 19056, 500, 1 }, @@ -1583,6 +1583,7 @@ new { CATEGORY_MISC, 81, "Glider", 2512, 150, 1 }, { CATEGORY_MISC, 82, "Plane", 2510, 120, 1 }, { CATEGORY_MISC, 98, "Hiker Backpack", 19559, 100, 1 }, + { CATEGORY_MISC, 78, "Backpack", 3026, 90, 1 }, { CATEGORY_MISC, 83, "Rubbish Bin", 1343, 80, 1 }, { CATEGORY_MISC, 84, "Chainsaw Dildo", 19086, 69, 5 }, { CATEGORY_MISC, 85, "Easter Egg", 19344, 50, 2 }, @@ -1608,7 +1609,7 @@ new p_ToySlotSelected [ MAX_PLAYERS char ], p_ToyCategorySelected [ MAX_PLAYERS char ], p_ToyIDSelected [ MAX_PLAYERS char ], - bool: p_ToyUnlocked [ MAX_PLAYERS ] [ 200 char ] // change back to MAX_TOYS + bool: p_ToyUnlocked [ MAX_PLAYERS ] [ MAX_TOY_UNLOCKS char ] ; /* ** C4 Data ** */ @@ -3517,56 +3518,6 @@ public OnGameModeInit() #endif /* ** Entrances/Exits ** */ - // Houses - /*CreateEntrance( "[ROOFTOP]", -2440.5149, 820.9702, 35.1838, -2438.1204, 819.7362, 65.5078, 0, 0, false, true ); // Jendral - CreateEntrance( "[ROOFTOP]", -2475.4238, 161.5239, 35.1406, -2476.4043, 155.6541, 64.9332, 0, 0, false, true ); // Queens' Rooftop - CreateEntrance( "[ROOFTOP]", -2281.2776, 923.6173, 66.7333, -2280.6958, 907.2256, 96.8359, 0, 0, false, true ); // Juniper Hill Rooftop - CreateEntrance( "[ROOFTOP]", -2372.5613, 851.7944, 41.0832, -2372.9949, 856.7742, 57.6094, 0, 0, false, true ); // Near-supa Rooftop - CreateEntrance( "[ROOFTOP]", -1696.3392, 1030.7318, 45.210, -1693.0250, 1030.273, 56.906, 0, 0, false, true ); // MrFreeze's Rooftop - CreateEntrance( "[ROOFTOP]", -2113.2771, 1087.924, 71.5219, -2120.263, 1060.5692, 96.9456, 0, 0, false, true ); // Arros' Rooftop - CreateEntrance( "[ROOFTOP]", -1991.5497, 821.0363, 45.4453, -1984.2457, 821.7531, 92.3203, 0, 0, false, true ); // Deedz's Rooftop - CreateEntrance( "[ROOFTOP]", -1887.0532, 761.1137, 45.4469, -1860.1149, 783.4689, 93.9143, 0, 0, false, true ); // Arntz's Rooftop - CreateEntrance( "[ROOFTOP]", -2018.7081, 1194.185, 45.4574, -2019.5271, 1198.3176, 80.750, 0, 0, false, true ); // Deedz's Rooftop - CreateEntrance( "[ROOFTOP]", -1782.7190, 1216.257, 32.6563, -1718.9036, 1208.9364, 48.7988, 0, 0, false, true ); // MrFreeze's Rooftop - CreateEntrance( "[ROOFTOP]", -2160.8496, 648.1808, 52.3672, -2163.1775, 648.1913, 60.6982, 0, 0, false, true ); // Dope's Rooftop - CreateEntrance( "[ROOFTOP]", -2724.6169, 73.51550, 4.33590, -2727.8027, 60.5538, 11.1953, 0, 0, false, true ); // Cake's Rooftop - CreateEntrance( "[ROOFTOP]", -1948.4548, 827.3771, 42.5405, -1947.5352, 813.5648, 77.7300, 0, 0, false, true ); // [RR]Natushi's Rooftop - CreateEntrance( "[ROOFTOP]", -1779.6537, 1013.5704, 24.8906, -1774.9280, 1019.5374, 97.6932, 0, 0, false, true ); // Diller's Rooftop - CreateEntrance( "[HOUSE]", -2121.4160, 659.9059, 52.3985, -2120.5251, 659.9581, 60.7005, 0, 0, false, false ); // _[Esteban]_'s Rooftop - CreateEntrance( "[HOUSE]", -2106.3545, 659.9128, 52.3932, -2107.2461, 659.8979, 60.7005, 0, 0, false, false ); // _[Esteban]_'s Rooftop - CreateEntrance( "[ROOFTOP]", 2238.6887, 2225.6982, 10.8203, 2220.8872, 2245.8870, 24.9297, 0, 0, false, true ); // PrinZeco's Rooftop - CreateEntrance( "[STUDIO]", -692.3306, 939.6115, 13.6328, -699.7916, 6335.1655, 84.2296, 0, 0, true , true ); // Uuri's Rooftop - CreateEntrance( "[SECURITY ROOM]", -2042.2239, 246.3592, 29.0572, -2040.1056, 273.7458, 904.9886, 0, 0, true , true ); // Gal's Rooftop - CreateEntrance( "[ROOFTOP]", -1757.2357, 774.0584, 45.2970, -1739.3662, 787.6291, 167.6535, 0, 0, false, true ); // Executive Esuite Roof - CreateEntrance( "[HOUSE]", -1737.0885, 801.0515, 24.8906, -1757.2689, 805.6949, 45.3265, 0, 0, false, true ); // Executive Esuite Roof - CreateEntrance( "[ROOFTOP]", 1370.8140, -1341.3876, 13.5469, 1378.1222, -1381.7068, 34.5537, 0, 0, false, true ); // Assassin's Rooftop - CreateEntrance( "[ROOFTOP]", -2591.5420, 147.2977, 4.3359, -2586.2024, 142.7569, 17.6344, 0, 0, false, true ); // Versec's Rooftop - CreateEntrance( "[ROOFTOP]", -2496.0562, 92.0874, 25.6172, -2506.0942, 105.3671, 35.1719, 0, 0, false, true ); // levi69's Rooftop - CreateEntrance( "[ROOFTOP]", -1732.3933, 632.2880, 25.0978, -1734.8120, 634.4911, 105.1406, 0, 0, false, true ); // Robox's Rooftop - CreateEntrance( "[ROOFTOP]", -1975.7041, 743.8552, 45.4453, -1981.0834, 759.7982, 85.9219, 0, 0, false, true ); // Amy's Rfooftop - CreateEntrance( "[ROOFTOP]", 2408.4724, 2005.9023, 10.8203, 2400.1514, 1997.0370, 19.1563, 0, 0, false, true ); // Zorba's Rooftop - CreateEntrance( "[ROOFTOP]", 2576.9863, 2082.4280, 10.8130, 2592.8230, 2091.7559, 15.6720, 0, 0, false, true ); // iTHUG's Rooftop - CreateEntrance( "[ROOFTOP]", 2119.9629, 1483.1409, 10.8302, 2162.6362, 1452.8992, 24.1406, 0, 0, false, true ); // Chrome_TV's Rooftop - CreateEntrance( "[ROOFTOP]", -2455.2925, -113.9168, 26.0669, -2450.1252, -129.2207, 51.8439, 0, 0, false, true ); // Rexer's Rooftop - CreateEntrance( "[ROOFTOP]", 606.6136, -1447.5503, 14.1969, 595.2242, -1484.3589, 73.8816, 0, 0, false, true ); // Zorba's Rooftop - CreateEntrance( "[ROOFTOP]", -2421.5044, -730.3824, 133.1481, -2432.5017, -747.6622, 141.2511, 0, 0, false, true ); // Gal's Rooftop - CreateEntrance( "[ROOFTOP]", -1681.3436, 1349.8549, 7.1722, -1691.0605, 1333.9678, 16.2976, 0, 0, false, true ); // Gal's Rooftop - CreateEntrance( "[ROOFTOP]", -1990.2039, 767.3861, 45.4453, -1982.2228, 790.7831, 107.0313, 0, 0, false, true ); // Thecover's Rooftop - CreateEntrance( "[ROOFTOP]", -2517.2058, 234.8540, 16.5137, -2517.2146, 233.6684, 21.9738, 0, 0, false, true ); // Niels's Rooftop - CreateEntrance( "[HOUSE]", -2521.8391, 248.8841, 11.0938, -2521.7922, 248.8820, 16.4937, 0, 0, false, true ); // Niels's Rooftop - CreateEntrance( "[ROOFTOP]", -2430.8696, 1.8262, 35.3203, -2435.1899, -3.0185, 47.9531, 0, 0, false, true ); // Miley's Rooftop - CreateEntrance( "[ROOFTOP]", -2246.1819, 457.2802, 40.4719,-2275.6460, 444.2489, 46.7418, 0, 0, false, true ); // Gal's Rooftop - CreateEntrance( "[ROOFTOP]", -1833.8469, 679.3009, 35.1919,-1840.6748, 685.3052, 81.3984, 0, 0, false, true ); // Kidz's Rooftop - CreateEntrance( "[VAULT]", -2912.6204,461.5075,9.7935, -2875.3625, 459.9657, 1240.3340, 0, 0, true, false ); // Wolf's Rooftop - CreateEntrance( "[SUBMARINE]", -34.6946, 234.4038, 2.1994, -35.3430, 244.1769, 770.9557, 0, 0, true, false ); // Wolf's Rooftop - CreateEntrance( "[ROOFTOP]", -2533.1726, 72.5313, 10.3846, -2575.0229, 60.0100, 18.0653, 0, 0, false, true ); // Daniel's Rooftop - CreateEntrance( "[ROOFTOP]", -1806.3270, 998.9644, 24.8906, -1823.3782, 988.7065, 77.1422, 0, 0, false, true ); // Syndicate's Rooftop - CreateEntrance( "[ROOFTOP]", -1977.4973, 955.7825, 45.4453, -1988.9637, 967.9180, 50.9922, 0, 0, false, true ); // Bang.'s Rooftop - CreateEntrance( "[ROOFTOP]", -1880.3057, 960.5383, 35.1719, -1860.1345, 977.6763, 49.8047, 0, 0, false, true ); // Biscuits's Rooftop - CreateEntrance( "[ROOFTOP]", -1962.5211, 743.8117, 45.4453, -1964.0610, 758.8718, 84.6016, 0, 0, false, true ); // Retrieval's Rooftop - CreateEntrance( "[UNDERWATER]", -2705.6335, -448.8924, 4.5261, -2714.9460, -442.7717, -12.2039, 0, 0, false, false ); // Veloxity_'s Rooftop - CreateEntrance( "[ROOFTOP]", -2629.4785, 696.2841, 27.9394, -2697.6145, 689.0028, 66.0922, 0, 0, false, true ); // Faze's Rooftop*/ - // Custom Interiors // CreateEntrance( "[SEWER]", -1990.7736, 1033.7378, 55.7266, 3638.4670, 5215.5024, 1203.3168, 1, 1, true, true, -1 ); // Milky CreateEntrance( "[BANK]", -1493.1296, 920.1409, 7.1875, -1444.2537, 831.0490, 985.7027, 0, g_bankvaultData[ CITY_SF ] [ E_WORLD ], true, false, 52 ); @@ -4947,7 +4898,7 @@ public OnServerUpdate( ) if ( ( GetTickCount( ) - p_AFKTime[ playerid ] ) >= 45000 ) { // AFK Jail - if ( p_WantedLevel[ playerid ] >= 6 && p_InHouse[ playerid ] == -1 && !IsPlayerAdminOnDuty( playerid ) && !IsPlayerInEntrance( playerid, g_VIPLounge[ CITY_SF ] ) && !IsPlayerInEntrance( playerid, g_VIPLounge[ CITY_LV ] ) && !IsPlayerInEntrance( playerid, g_VIPLounge[ CITY_LS ] ) && !IsPlayerTied( playerid ) && !IsPlayerKidnapped( playerid ) && !IsPlayerCuffed( playerid ) && !IsPlayerTazed( playerid ) ) { // && !IsPlayerDetained( playerid ) + if ( p_WantedLevel[ playerid ] >= 6 && p_InHouse[ playerid ] == -1 && !IsPlayerAdminOnDuty( playerid ) && !IsPlayerInEntrance( playerid, g_VIPLounge[ CITY_SF ] ) && !IsPlayerInEntrance( playerid, g_VIPLounge[ CITY_LV ] ) && !IsPlayerInEntrance( playerid, g_VIPLounge[ CITY_LS ] ) && !IsPlayerTied( playerid ) && !IsPlayerKidnapped( playerid ) && !IsPlayerCuffed( playerid ) && !IsPlayerTazed( playerid ) && IsPlayerSpawned( playerid ) ) { // && !IsPlayerDetained( playerid ) JailPlayer( playerid, 60, 1 ); SendGlobalMessage( -1, ""COL_GOLD"[JAIL]{FFFFFF} %s(%d) has been sent to jail for 60 seconds by the server "COL_LRED"[AFK Wanted]", ReturnPlayerName( playerid ), playerid ); } @@ -5300,7 +5251,7 @@ public OnServerUpdate( ) DestroyDynamicMapIcon( g_informedRobberies[ ir ] [ E_MAP_ICON ] ); Iter_SafeRemove(InformedRobbery, cur, ir); } - else Streamer_SetIntData( STREAMER_TYPE_MAP_ICON, g_informedRobberies[ ir ] [ E_MAP_ICON ], E_STREAMER_COLOR, setAlpha( COLOR_YELLOW, g_informedRobberies[ ir ] [ E_ALPHA ] ) ); + else Streamer_SetIntData( STREAMER_TYPE_MAP_ICON, g_informedRobberies[ ir ] [ E_MAP_ICON ], E_STREAMER_COLOR, setAlpha( COLOR_WANTED12, g_informedRobberies[ ir ] [ E_ALPHA ] ) ); } // Soft delete gang @@ -5380,7 +5331,7 @@ public OnServerUpdate( ) UpdateDynamic3DTextLabelText( g_atmData[ i ] [ E_LABEL ], COLOR_GOLD, "[ATM]\n"COL_GREY"100%" ); DestroyDynamicPickup( g_atmData[ i ] [ E_PICKUP ] ), g_atmData[ i ] [ E_PICKUP ] = -1; g_atmData[ i ] [ E_LOOT ] = 0, g_atmData[ i ] [ E_DISABLED ] = false, g_atmData[ i ] [ E_HEALTH ] = 100.0; - ReplaceObjectModel( g_atmData[ i ] [ E_OBJECT ], 19324 ); + Streamer_SetIntData( STREAMER_TYPE_OBJECT, g_atmData[ i ] [ E_OBJECT ], E_STREAMER_MODEL_ID, 19324 ); } // Replenish product @@ -5531,7 +5482,7 @@ public ZoneTimer( ) oCount = GetPlayersInGangZone( z, g_gangTurfData[ z ] [ E_OWNER ] ); new - attacker_time_required = -10 * ( attacker_member_count - TAKEOVER_NEEDED_PEOPLE ) + 60; + attacker_time_required = -10 * ( attacker_member_count - TAKEOVER_NEEDED_PEOPLE ) + ( g_gangTurfData[ z ] [ E_FACILITY_GANG ] == INVALID_GANG_ID ? 60 : 120 ); // minimum of 20 seconds if ( attacker_time_required < 20 ) @@ -6071,11 +6022,7 @@ public OnLookupComplete( playerid, success ) SendDeathMessage( INVALID_PLAYER_ID, playerid, 200 ); if ( IsProxyEnabledForPlayer( playerid ) ) { - if ( IsPlayerUnderCover( playerid ) ) { - format( szNormalString, sizeof( szNormalString ), "%s(%d) has connected to the server! (MX)", ReturnPlayerName( playerid ), playerid ); - } else { - format( szNormalString, sizeof( szNormalString ), "%s(%d) has connected to the server! (%s)", ReturnPlayerName( playerid ), playerid, GetPlayerCountryName( playerid ) ); - } + format( szNormalString, sizeof( szNormalString ), "%s(%d) has connected to the server! (%s)", ReturnPlayerName( playerid ), playerid, GetPlayerCountryName( playerid ) ); } else { format( szNormalString, sizeof( szNormalString ), "%s(%d) has connected to the server!", ReturnPlayerName( playerid ), playerid ); } @@ -6443,10 +6390,10 @@ public OnPlayerDisconnect( playerid, reason ) if ( i < MAX_GANGS ) p_gangInvited[ playerid ] [ i ] = false; if ( i < MAX_SETTINGS ) p_PlayerSettings[ playerid ] { i } = false; - if ( i < MAX_TOYS ) p_ToyUnlocked[ playerid ] { i } = false; if ( i < MAX_WEAPONS ) p_WeaponKills[ playerid ] [ i ] = 0; if ( i < MAX_RACES ) p_raceInvited[ playerid ] [ i ] = false; if ( i < MAX_STREAKS ) p_streakData[ playerid ] [ i ] [ E_BEST_STREAK ] = 0, p_streakData[ playerid ] [ i ] [ E_STREAK ] = 0; + if ( i < MAX_TOY_UNLOCKS ) p_ToyUnlocked[ playerid ] { i } = false; p_BlockedPM[ playerid ] [ i ] = false; } @@ -6467,6 +6414,7 @@ public OnPlayerSpawn( playerid ) UpdatePlayerTime( playerid ); DeletePVar( playerid, "attached_mugshot" ); + PlayerPlaySound( playerid, 0, 0.0, 0.0, 0.0 ); PlayerTextDrawHide( playerid, p_ExperienceTD[ playerid ] ); HidePlayerTogglableTextdraws( playerid ); TextDrawHideForPlayer( playerid, g_CurrentRankTD ); @@ -6989,11 +6937,13 @@ public OnPlayerShootDynamicObject( playerid, weaponid, objectid, Float:x, Float: if ( p_Class[ playerid ] == CLASS_POLICE ) return 1; // Prevent police from damaging atms - new - Float: Damage = GetWeaponDamageFromDistance( weaponid, GetPlayerDistanceFromPoint( playerid, x, y, z ) ); + new Float: Damage = GetWeaponDamageFromDistance( weaponid, GetPlayerDistanceFromPoint( playerid, x, y, z ) ); + new player_world = GetPlayerVirtualWorld( playerid ); foreach ( new i : atms ) { + if ( g_atmData[ i ] [ E_WORLD ] != -1 && g_atmData[ i ] [ E_WORLD ] != player_world ) continue; + if ( g_atmData[ i ] [ E_OBJECT ] == objectid && !g_atmData[ i ] [ E_DISABLED ] ) { if ( GetDynamicObjectPos( objectid, X, Y, Z ) && IsPointToPoint( 1.0, X + x, Y + y, Z + z, X, Y, Z ) ) { @@ -7005,7 +6955,7 @@ public OnPlayerShootDynamicObject( playerid, weaponid, objectid, Float:x, Float: UpdateDynamic3DTextLabelText( g_atmData[ i ] [ E_LABEL ], COLOR_GOLD, szNormalString ); } else { UpdateDynamic3DTextLabelText( g_atmData[ i ] [ E_LABEL ], COLOR_GOLD, "[ATM]\n"COL_RED"Disabled" ); - ReplaceObjectModel( g_atmData[ i ] [ E_OBJECT ], 2943 ); + Streamer_SetIntData( STREAMER_TYPE_OBJECT, g_atmData[ i ] [ E_OBJECT ], E_STREAMER_MODEL_ID, 2943 ); g_atmData[ i ] [ E_TIMESTAMP ] = g_iTime + 240; g_atmData[ i ] [ E_DISABLED ] = true; @@ -7022,7 +6972,7 @@ public OnPlayerShootDynamicObject( playerid, weaponid, objectid, Float:x, Float: SendServerMessage( playerid, "There seems to be no money in the ATM that you have breached." ); } else { GetDynamicObjectRot( objectid, rZ, rZ, rZ ); - g_atmData[ i ] [ E_PICKUP ] = CreateDynamicPickup( 1550, 1, X + 1.0 * -floatsin( -rZ, degrees ), Y + 1.0 * -floatcos( -rZ, degrees ), Z + 0.33 ); + g_atmData[ i ] [ E_PICKUP ] = CreateDynamicPickup( 1550, 1, X + 1.0 * -floatsin( -rZ, degrees ), Y + 1.0 * -floatcos( -rZ, degrees ), Z + 0.33, .worldid = g_atmData[ i ] [ E_WORLD ] ); g_atmData[ i ] [ E_LOOT ] = RandomEx( 320, 750 ); if ( IsPlayerConnected( playerid ) && p_MoneyBag{ playerid } == true ) { @@ -7438,7 +7388,7 @@ public OnPlayerDeath( playerid, killerid, reason ) if ( ! IsPlayerNPC( killerid ) && IsPlayerConnected( killerid ) && GetPVarInt( playerid, "used_cmd_kill" ) != 1 ) { - if ( !IsPlayerStreamedIn( killerid, playerid ) ) { + if ( ! IsPlayerStreamedIn( killerid, playerid ) && ! IsPlayerUsingOrbitalCannon( killerid ) ) { printf( "[DEBUG] %s was killed for possible fake kill. (0x1B)", ReturnPlayerName( playerid ) ); return SendServerMessage( playerid, "Possible Fake-kill detected - 0x1B" ), KickPlayerTimed( playerid ); } @@ -14177,8 +14127,8 @@ CMD:takeover( playerid, params[ ] ) if ( GetPlayerInterior( playerid ) != 0 && GetPlayerVirtualWorld( playerid ) != 0 ) return SendError( playerid, "You cannot do this inside interiors." ); - if ( IsPlayerJailed( playerid ) ) - return SendError( playerid, "You cannot use this while you are in jail." ); + if ( IsPlayerJailed( playerid ) || IsPlayerUsingOrbitalCannon( playerid ) ) + return SendError( playerid, "You cannot do this at the moment." ); new g_isAFK = 0, @@ -15584,14 +15534,7 @@ CMD:geolocate( playerid, params[ ] ) else if ( p_AdminLevel[ pID ] >= 5 || strmatch( ReturnPlayerName( pID ), "Lorenc" ) ) return SendError( playerid, "I love this person so much that I wont give you his geographical data! :)"); else { - if ( IsPlayerUnderCover( pID ) ) - { - SendClientMessageFormatted( playerid, COLOR_PINK, "[ADMIN]"COL_WHITE" %s(%d) is from Mexico (MX) [%s]", ReturnPlayerName( pID ), pID, ReturnPlayerIP( pID ) ); - } - else - { - SendClientMessageFormatted( playerid, COLOR_PINK, "[ADMIN]"COL_WHITE" %s(%d) is from %s (%s) [%s]", ReturnPlayerName( pID ), pID, GetPlayerCountryName( pID ), GetPlayerCountryCode( pID ), ReturnPlayerIP( pID ) ); - } + SendClientMessageFormatted( playerid, COLOR_PINK, "[ADMIN]"COL_WHITE" %s(%d) is from %s (%s) [%s]", ReturnPlayerName( pID ), pID, GetPlayerCountryName( pID ), GetPlayerCountryCode( pID ), ReturnPlayerIP( pID ) ); } return 1; } @@ -15859,7 +15802,7 @@ CMD:giveweapon( playerid, params[ ] ) else if ( IsWeaponBanned( wep ) && p_AdminLevel[ pID ] < 5 ) return SendError( playerid, "This weapon is a banned weapon, you cannot spawn this." ); else { - printf("%s banned wep %d - admin level %d", ReturnPlayerName( pID ), wep, p_AdminLevel[ playerid ]); + //printf("%s banned wep %d - admin level %d", ReturnPlayerName( pID ), wep, p_AdminLevel[ playerid ]); GetWeaponName( wep, gunname, sizeof( gunname ) ); AddAdminLogLineFormatted( "%s(%d) has given %s(%d) a %s", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID, gunname ); SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_WHITE" You have given %s(%d) a %s(%d)", ReturnPlayerName( pID ), pID, gunname, wep ); @@ -17152,6 +17095,7 @@ CMD:forceac( playerid, params[ ] ) else if ( !IsPlayerConnected( pID ) || IsPlayerNPC( pID ) ) return SendError( playerid, "Invalid Player ID." ); else if ( pID == playerid ) return SendError( playerid, "You cant kick yourself." ); else if ( p_AdminLevel[ pID ] > p_AdminLevel[ playerid ] ) return SendError( playerid, "You cannot use this command on admins higher than your level." ); + //else if ( GetPlayerScore( pID ) < 100 ) return SendError( playerid, "This player's score is under 100, please spectate instead." ); else { if ( p_forcedAnticheat[ pID ] <= 0 ) @@ -18844,8 +18788,9 @@ public OnPlayerDriveVehicle(playerid, vehicleid) } #endif - if ( ! g_Driveby ) + if ( ! g_Driveby ) { SetPlayerArmedWeapon( playerid, 0 ); + } if ( g_isBusinessVehicle[ vehicleid ] != -1 && Iter_Contains( business, g_isBusinessVehicle[ vehicleid ] ) ) { @@ -20091,7 +20036,7 @@ public OnPlayerPickUpDynamicPickup( playerid, pickupid ) Get2DCity ( szCity, X, Y, Z ); GetZoneFromCoordinates ( szLocation, X, Y, Z ); - SendGlobalMessage( -1, ""COL_GOLD"[ROBBERY]"COL_WHITE" %s(%d) has robbed "COL_GOLD"%s"COL_WHITE" from an ATM near %s in %s!", ReturnPlayerName( playerid ), playerid, number_format( iLoot ), szLocation, szCity ); + SendClientMessageToCops( -1, ""COL_BLUE"[ROBBERY]"COL_WHITE" %s(%d) has robbed "COL_GOLD"%s"COL_WHITE" from an ATM near %s in %s!", ReturnPlayerName( playerid ), playerid, number_format( iLoot ), szLocation, szCity ); return SendServerMessage( playerid, "You have successfully taken "COL_GOLD"%s"COL_WHITE" dispensed from the ATM.", number_format( iLoot ) ); } } @@ -21190,7 +21135,7 @@ function unpause_Player( playerid ) } #if defined AC_INCLUDED - public OnPlayerCheatDetected( playerid, detection ) + public OnPlayerCheatDetected( playerid, detection, params ) { if ( detection == CHEAT_TYPE_REMOTE_JACK ) { @@ -21216,7 +21161,15 @@ function unpause_Player( playerid ) // SendGlobalMessage( -1, ""COL_PINK"[ANTI-CHEAT]{FFFFFF} %s(%d) has been banned for fly hacks.", ReturnPlayerName( playerid ), playerid ); // AdvancedBan( playerid, "Server", "Fly Hacks", ReturnPlayerIP( playerid ) ); } - else SendClientMessageToAdmins( -1, ""COL_PINK"[ANTI-CHEAT]"COL_GREY" %s(%d) has been detected for %s.", ReturnPlayerName( playerid ), playerid, detectionToString( detection ) ); + else if ( detection == CHEAT_TYPE_WEAPON ) + { + SendClientMessageToAdmins( -1, ""COL_PINK"[ANTI-CHEAT]"COL_GREY" %s(%d) has been detected for weapon hack (%s).", ReturnPlayerName( playerid ), playerid, ReturnWeaponName( params ) ); + return 1; + } + else + { + SendClientMessageToAdmins( -1, ""COL_PINK"[ANTI-CHEAT]"COL_GREY" %s(%d) has been detected for %s.", ReturnPlayerName( playerid ), playerid, detectionToString( detection ) ); + } return 1; } #endif @@ -21331,9 +21284,9 @@ public OnPlayerEditAttachedObject( playerid, response, index, modelid, boneid, F { new bool: modded; - if ( fScaleX < 0.25 || fScaleX > 2.5 ) fScaleX = 1.0, modded = true; - if ( fScaleY < 0.25 || fScaleY > 2.5 ) fScaleY = 1.0, modded = true; - if ( fScaleZ < 0.25 || fScaleZ > 2.5 ) fScaleZ = 1.0, modded = true; + if ( fScaleX < 0.1 || fScaleX > 2.5 ) fScaleX = 1.0, modded = true; + if ( fScaleY < 0.1 || fScaleY > 2.5 ) fScaleY = 1.0, modded = true; + if ( fScaleZ < 0.1 || fScaleZ > 2.5 ) fScaleZ = 1.0, modded = true; if ( modded ) SendServerMessage( playerid, "Some scaling parts were either too small, or too big. They have been scaled to the default size." ); p_AttachedObjectsData[ playerid ] [ slot ] [ E_BONE ] = boneid; @@ -21577,10 +21530,10 @@ thread OnPlayerLogin( playerid, password[ ] ) SendServerMessage( playerid, "You have " COL_GREEN "successfully" COL_WHITE " logged in!" ); // UNDERCOVER USERS - if ( IsPlayerUnderCover( playerid ) ) { + /*if ( IsPlayerUnderCover( playerid ) ) { // all undercover are american ips format( p_PlayerIP[ playerid ], 16, "187.237.240.%d", random( 255 ) ); - } + }*/ // Search for valid gang new gang_sql = cache_get_field_content_int( 0, "GANG_ID", dbHandle ); @@ -22259,19 +22212,19 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) cmd_h( playerid, "config" ); return 1; } - if ( GetPlayerWeapon( playerid ) == 16 || GetPlayerWeapon( playerid ) == 42 ) - { + new current_weapon = GetPlayerWeapon( playerid ); + new current_ammo = GetPlayerAmmo( playerid ); + if ( ( 16 <= current_weapon <= 18 ) || current_weapon == 35 ) { SendError( playerid, "You cannot store this weapon." ); cmd_h( playerid, "config" ); return 1; } - new iAmmo = GetPlayerAmmo( playerid ); - if ( iAmmo > 0x7FFF || iAmmo <= 0 ) iAmmo = 0x7FFF; + if ( current_ammo > 0x7FFF || current_ammo <= 0 ) current_ammo = 0x7FFF; listitem = p_HouseWeaponAddSlot{ playerid }; - g_HouseWeapons[ p_InHouse[ playerid ] ] [ listitem ] = GetPlayerWeapon( playerid ); - g_HouseWeaponAmmo[ p_InHouse[ playerid ] ] [ listitem ] = iAmmo; - SendServerMessage( playerid, "You have inserted your "COL_GREY"%s"COL_WHITE" into your weapon storage.", ReturnWeaponName( GetPlayerWeapon( playerid ) ) ); - RemovePlayerWeapon( playerid, GetPlayerWeapon( playerid ) ); + g_HouseWeapons[ p_InHouse[ playerid ] ] [ listitem ] = current_weapon; + g_HouseWeaponAmmo[ p_InHouse[ playerid ] ] [ listitem ] = current_ammo; + SendServerMessage( playerid, "You have inserted your "COL_GREY"%s"COL_WHITE" into your weapon storage.", ReturnWeaponName( current_weapon ) ); + RemovePlayerWeapon( playerid, current_weapon ); SaveHouseWeaponStorage( p_InHouse[ playerid ] ); ShowHouseWeaponStorage( playerid ); } @@ -22727,7 +22680,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) GivePlayerXP( playerid, -100 ); for( new i; i < MAX_WEAPONS; i++ ) { - if ( IsWeaponInAnySlot( playerid, i ) && i != 0 && !( 16 <= i <= 18 ) && i != 47 && i != WEAPON_BOMB ) + if ( IsWeaponInAnySlot( playerid, i ) && i != 0 && !( 16 <= i <= 18 ) && i != 35 && i != 47 && i != WEAPON_BOMB ) { GivePlayerWeapon( playerid, i, 15000 ); } @@ -22914,7 +22867,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if ( g_shopItemData[ listitem ] [ E_LIMIT ] == LIMIT_ONE ) { - cmd_shop( playerid, "" ); + ShowPlayerShopMenu( playerid ); if ( GetPlayerCash( playerid ) < g_shopItemData[ listitem ] [ E_PRICE ] ) return SendError( playerid, "You don't have enough money for this item." ); @@ -22990,7 +22943,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) ShowPlayerDialog( playerid, DIALOG_SHOP_AMOUNT, DIALOG_STYLE_LIST, "{FFFFFF}Shop Items - Buy Quantity", "Buy 1\nBuy 5\nBuy Max", "Select", "Back" ); } - else cmd_shop( playerid, "" ); + else ShowPlayerShopMenu( playerid ); } if ( ( dialogid == DIALOG_XPMARKET ) && response ) { @@ -24380,7 +24333,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) } p_WeaponDealMenu{ playerid } = listitem; - RedirectAmmunation( playerid, listitem, "{FFFFFF}Weapon Deal - Purchase Weapons", DIALOG_WEAPON_DEAL_BUY, 0.75, true ); + RedirectAmmunation( playerid, listitem, "{FFFFFF}Weapon Deal - Purchase Weapons", DIALOG_WEAPON_DEAL_BUY, 0.75, 5 ); } if ( dialogid == DIALOG_WEAPON_DEAL_BUY ) { @@ -24407,7 +24360,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if ( price > GetPlayerCash( playerid ) ) { SendError( playerid, "You don't have enough money for this." ); - RedirectAmmunation( playerid, p_WeaponDealMenu{ playerid }, "{FFFFFF}Weapon Deal - Purchase Weapons", DIALOG_WEAPON_DEAL_BUY, 0.75, true ); + RedirectAmmunation( playerid, p_WeaponDealMenu{ playerid }, "{FFFFFF}Weapon Deal - Purchase Weapons", DIALOG_WEAPON_DEAL_BUY, 0.75, 5 ); return 1; } GivePlayerCash( weapondealerid, floatround( price * 0.75 ) ); @@ -24415,10 +24368,10 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) SetPVarInt( playerid, "purchased_weapon", GetPVarInt( playerid, "purchased_weapon" ) + 1 ); SendClientMessageFormatted( playerid, -1, ""COL_ORANGE"[WEAPON DEAL]{FFFFFF} You have purchased %s for "COL_GOLD"%s"COL_WHITE".", g_AmmunationWeapons[ i ] [ E_NAME ], number_format( price ) ); if ( g_AmmunationWeapons[ i ] [ E_WEPID ] == 101 ) SetPlayerArmour( playerid, 100.0 ); - else GivePlayerWeapon( playerid, g_AmmunationWeapons[ i ] [ E_WEPID ], 15000 ); // Infinite + else GivePlayerWeapon( playerid, g_AmmunationWeapons[ i ] [ E_WEPID ], g_AmmunationWeapons[ i ] [ E_AMMO ] * ( g_AmmunationWeapons[ i ] [ E_WEPID ] == 35 ? 1 : 5 ) ); SetPlayerArmedWeapon( playerid, 0 ); GivePlayerCash( playerid, -( price ) ); - RedirectAmmunation( playerid, p_WeaponDealMenu{ playerid }, "{FFFFFF}Weapon Deal - Purchase Weapons", DIALOG_WEAPON_DEAL_BUY, 0.75, true ); + RedirectAmmunation( playerid, p_WeaponDealMenu{ playerid }, "{FFFFFF}Weapon Deal - Purchase Weapons", DIALOG_WEAPON_DEAL_BUY, 0.75, 5 ); break; } x ++; @@ -26350,6 +26303,11 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) SetPlayerPos( playerid, 1642.2274, -2335.4978, 13.5469 ); } } + + // set interior/world + SetPlayerVirtualWorld( playerid, 0 ); + SetPlayerInterior( playerid, 0 ); + PlayerPlaySound( playerid, 0, 0.0, 0.0, 0.0 ); } if ( dialogid == DIALOG_SPAWN && response ) { @@ -28132,7 +28090,7 @@ stock ResetPlayerCash( playerid ) } stock IsWeaponBanned( weaponid ) { - return 0 <= weaponid < MAX_WEAPONS && ( weaponid == 35 || weaponid == 36 || weaponid == 37 || weaponid == 38 || weaponid == 39 || weaponid == 44 || weaponid == 45 ); + return 0 <= weaponid < MAX_WEAPONS && ( weaponid == 36 || weaponid == 37 || weaponid == 38 || weaponid == 39 || weaponid == 44 || weaponid == 45 ); } stock GivePlayerScore( playerid, score, Float: multiplier = 0.75 ) @@ -30632,7 +30590,7 @@ stock GetDayToString( day ) return string; } -stock CreateATM( Float: X, Float: Y, Float: Z, Float: rX, Float: offset = 180.0 ) +stock CreateATM( Float: X, Float: Y, Float: Z, Float: rX, Float: offset = 180.0, world = -1 ) { new ID = Iter_Free( atms ); @@ -30647,9 +30605,10 @@ stock CreateATM( Float: X, Float: Y, Float: Z, Float: rX, Float: offset = 180.0 Iter_Add( atms, ID ); g_atmData[ ID ] [ E_HEALTH ] = 100.0; - g_atmData[ ID ] [ E_CHECKPOINT ] = CreateDynamicCP( nX, nY, Z, 1.0 , -1, -1, -1, 100.0 ); - g_atmData[ ID ] [ E_OBJECT ] = CreateDynamicObject( 19324, X, Y, Z, 0.0, 0.0, rX, -1, -1, -1, 100.0, .priority = 2 ); - g_atmData[ ID ] [ E_LABEL ] = CreateDynamic3DTextLabel( "[ATM]\n"COL_GREY"100%", COLOR_GOLD, nX, nY, Z, 20.0 ); + g_atmData[ ID ] [ E_CHECKPOINT ] = CreateDynamicCP( nX, nY, Z, 1.0, .worldid = world ); + g_atmData[ ID ] [ E_OBJECT ] = CreateDynamicObject( 19324, X, Y, Z, 0.0, 0.0, rX, .priority = 2, .worldid = world ); + g_atmData[ ID ] [ E_LABEL ] = CreateDynamic3DTextLabel( "[ATM]\n"COL_GREY"100%", COLOR_GOLD, nX, nY, Z, 20.0, .worldid = world ); + g_atmData[ ID ] [ E_WORLD ] = world; } return ID; } @@ -33388,7 +33347,7 @@ stock showToyCategoryItems( playerid, category, bool: pawnshop = false ) stock UnlockPlayerToy( playerid, toy_id ) { - if ( toy_id > MAX_TOYS ) + if ( toy_id > MAX_TOY_UNLOCKS ) return; p_ToyUnlocked[ playerid ] { toy_id } = true; @@ -33426,7 +33385,7 @@ thread OnToyLoad( playerid ) while( ++i < rows ) { new iToy = cache_get_field_content_int( i, "TOY_ID", dbHandle ); - if ( iToy < MAX_TOYS ) // Must be something wrong otherwise... + if ( iToy < MAX_TOY_UNLOCKS ) // Must be something wrong otherwise... p_ToyUnlocked[ playerid ] { iToy } = true; } } @@ -34831,17 +34790,6 @@ stock ShowSoundsMenu( playerid ) ShowPlayerDialog( playerid, DIALOG_MODIFY_HITSOUND, DIALOG_STYLE_LIST, ""COL_WHITE"Hitmarker Sound", szSounds, "Select", "Close" ); } -stock ReplaceObjectModel( &objectid, modelid ) { - static - Float: X, Float: Y, Float: Z, Float: rX, Float: rY, Float: rZ; - - GetDynamicObjectPos( objectid, X, Y, Z ); - GetDynamicObjectRot( objectid, rX, rY, rZ ); - - DestroyDynamicObject( objectid ); - objectid = CreateDynamicObject( modelid, X, Y, Z, rX, rY, rZ ); -} - stock GivePlayerLeoWeapons( playerid ) { GivePlayerWeapon( playerid, 3, 1 ); GivePlayerWeapon( playerid, 22, 250 ); @@ -35951,8 +35899,8 @@ stock CreateCrimeReport( playerid ) else GetPlayerPos( playerid, X, Y, Z ); // Create marker - g_informedRobberies[ iCrimeReport ] [ E_ALPHA ] = 0xFF; - g_informedRobberies[ iCrimeReport ] [ E_MAP_ICON ] = CreateDynamicMapIcon( X, Y, Z, 0, COLOR_RED, -1, -1, 0, 1000.0, MAPICON_GLOBAL ); + g_informedRobberies[ iCrimeReport ] [ E_ALPHA ] = 0xAA; + g_informedRobberies[ iCrimeReport ] [ E_MAP_ICON ] = CreateDynamicMapIcon( X, Y, Z, 0, COLOR_WANTED12, -1, -1, 0, 1000.0, MAPICON_GLOBAL ); // Reset Players In Map Icon Streamer_RemoveArrayData( STREAMER_TYPE_MAP_ICON, g_informedRobberies[ iCrimeReport ] [ E_MAP_ICON ], E_STREAMER_PLAYER_ID, 0 ); @@ -37721,14 +37669,8 @@ stock FillHomeWithFurniture( houseid, interior_id ) { // else if ( strmatch( g_houseInteriors[ interior_id ] [ E_NAME ], "Domus Interior" ) ) } -stock IsPlayerUnderCover( playerid ) { - if ( ( p_AccountID[ playerid ] == 577142 || p_AccountID[ playerid ] == 536230 || p_AccountID[ playerid ] == 668504 ) && p_PlayerLogged{ playerid } ) // StefiTV852, Shepard23, JamesComey - return 1; - - if ( strmatch( ReturnPlayerName( playerid ), "Bonbo" ) ) - return 1; - - return 0; +stock IsPlayerUnderCover( playerid ) { // StefiTV852, Shepard23, JamesComey + return ( p_AccountID[ playerid ] == 577142 || p_AccountID[ playerid ] == 536230 || p_AccountID[ playerid ] == 668504 ) && p_PlayerLogged{ playerid }; } stock ShowPlayerSpawnMenu( playerid ) { @@ -38019,6 +37961,8 @@ stock GetPlayerVIPDuration( playerid ) return p_VIPExpiretime[ playerid ] - g_iT stock IsPlayerInPaintBall( playerid ) return p_inPaintBall{ playerid }; +stock IsPlayerMovieMode( playerid ) return p_inMovieMode{ playerid }; + stock GetPlayerAdminLevel( playerid ) return p_AdminLevel[ playerid ]; stock GetPlayerGang( playerid ) return p_GangID[ playerid ]; @@ -38031,10 +37975,16 @@ stock IsPlayerInEvent( playerid ) return ( GetPlayerVirtualWorld( playerid ) == stock IsPlayerJailed( playerid ) return p_Jailed{ playerid }; +stock IsPlayerAdminOnDuty( playerid ) return p_AdminOnDuty{ playerid }; + stock IsPlayerEmailVerified( playerid ) return p_accountSecurityData[ playerid ] [ E_ID ]; +stock IsPlayerAFK( playerid ) return ( ( GetTickCount( ) - p_AFKTime[ playerid ] ) >= 2595 ); + stock UpdatePlayerEntranceExitTick( playerid, ms = 2000 ) { p_EntranceTickcount[ playerid ] = GetTickCount( ) + ms; } stock CanPlayerExitEntrance( playerid ) return GetTickCount( ) > p_EntranceTickcount[ playerid ] && ! p_pausedToLoad{ playerid }; + +stock IsPlayerSpawnProtected( playerid ) return p_AntiSpawnKillEnabled{ playerid }; diff --git a/pawno/include/irresistible/cnr/static/player_objects.inc b/pawno/include/irresistible/cnr/static/player_objects.inc index 2caf078..4faef79 100644 --- a/pawno/include/irresistible/cnr/static/player_objects.inc +++ b/pawno/include/irresistible/cnr/static/player_objects.inc @@ -14996,4 +14996,164 @@ stock initializeObjects( ) tmpVariable = CreateDynamicObject( 6965, -1572.493164, 790.349914, 8.825008, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); SetDynamicObjectMaterial( tmpVariable, 1, 0, "none", "none", 0 ); SetDynamicObjectMaterial( tmpVariable, 3, 0, "none", "none", 0 ); + + // Avenger Mansion + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2264.220947, 457.697998, 38.223999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2264.220947, 457.697998, 38.223999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2250.218017, 457.697998, 38.223999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2275.893066, 445.486999, 38.223999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2275.893066, 432.326995, 38.224998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2281.228027, 424.670013, 38.234001, 0.000000, 0.000000, -131.399993, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2254.333007, 456.812011, 33.754001, 180.000000, 90.000000, 140.100006, -1, -1, -1 ), 0, 4550, "skyscr1_lan2", "sl_concretewall1", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2272.174072, 423.938995, 31.753000, 0.000000, 0.000000, -40.299999, -1, -1, -1 ), 0, 4550, "skyscr1_lan2", "sl_concretewall1", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2269.855957, 438.259002, 39.662998, 180.000000, 90.000000, 140.100006, -1, -1, -1 ), 0, 9582, "fort_sfw", "ws_alley_conc1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2255.378906, 455.566009, 39.661998, 180.000000, 90.000000, 140.100006, -1, -1, -1 ), 0, 9582, "fort_sfw", "ws_alley_conc1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2255.052001, 455.950012, 47.752998, 180.000000, 90.000000, 140.100006, -1, -1, -1 ), 0, 16150, "ufo_bar", "GEwhite1_64", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2270.011962, 438.059997, 47.743000, 180.000000, 90.000000, 140.100006, -1, -1, -1 ), 0, 16150, "ufo_bar", "GEWHITE1_64", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2273.114990, 434.361999, 39.652000, 180.000000, 90.000000, 140.100006, -1, -1, -1 ), 0, 9582, "fort_sfw", "ws_alley_conc1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2268.750976, 459.819000, 37.583999, 0.000000, 0.000000, 139.800003, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + CreateDynamicObject( 19817, -2270.329101, 447.997009, 33.542999, 0.000000, 0.000000, 49.099998, -1, -1, -1 ); + CreateDynamicObject( 19815, -2273.381103, 453.570007, 36.770000, 0.000000, 0.000000, 49.599998, -1, -1, -1 ); + CreateDynamicObject( 19899, -2274.925048, 444.696014, 34.252998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2255.926025, 436.192993, 40.186019, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2267.471923, 422.384002, 36.675998, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2269.314941, 420.182006, 36.675998, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2261.065917, 430.048004, 36.675998, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2245.142089, 449.079986, 26.843999, 0.000000, 0.000000, 140.100006, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2258.750976, 456.657989, 33.483001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 5174, "warehus_las2", "ws_carparkwall2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2250.750976, 456.657989, 33.483001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 5174, "warehus_las2", "ws_carparkwall2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2254.750976, 456.657989, 33.483001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 5174, "warehus_las2", "ws_carparkwall2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2249.995117, 456.028015, 26.184000, 0.000000, 0.000000, 0.100000, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + CreateDynamicObject( 19817, -2267.291992, 451.496002, 33.542999, 0.000000, 0.000000, 49.099998, -1, -1, -1 ); + CreateDynamicObject( 19903, -2271.349121, 452.027008, 34.123001, 0.000000, 0.000000, -45.200000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2274.691894, 441.419006, 33.492000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5174, "warehus_las2", "ws_carparkwall2", 0 ); + CreateDynamicObject( 2133, -2266.104980, 456.808990, 34.213001, 0.000000, 0.000000, -0.699999, -1, -1, -1 ); + CreateDynamicObject( 2133, -2265.104003, 456.795989, 34.213001, 0.000000, 0.000000, -0.699999, -1, -1, -1 ); + CreateDynamicObject( 19621, -2265.982910, 456.908996, 35.352001, 0.000000, 0.000000, -55.400001, -1, -1, -1 ); + CreateDynamicObject( 19921, -2265.331054, 456.589996, 35.341999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1650, -2266.360107, 456.850006, 35.541999, 0.000000, 0.000000, -66.599998, -1, -1, -1 ); + CreateDynamicObject( 2475, -2265.839111, 457.246002, 34.272998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1002, -2265.548095, 457.091003, 36.452999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1003, -2265.532958, 457.052001, 35.742000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 920, -2268.148925, 455.861999, 34.722000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19917, -2274.967041, 445.201995, 35.381999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19900, -2272.000976, 446.205993, 34.242000, 0.000000, 0.000000, 71.400001, -1, -1, -1 ); + CreateDynamicObject( 19921, -2271.792968, 446.132995, 35.192001, 0.000000, 0.000000, 72.400001, -1, -1, -1 ); + CreateDynamicObject( 9362, -2273.166992, 425.638000, 34.993000, 0.000000, 0.000000, 177.600006, -1, -1, -1 ); + CreateDynamicObject( 1569, -2272.699951, 417.850006, 34.303001, 0.000000, 0.000000, 138.199996, -1, -1, -1 ); + CreateDynamicObject( 1569, -2274.928955, 419.855987, 34.303001, 0.000000, 0.000000, -42.500000, -1, -1, -1 ); + CreateDynamicObject( 920, -2273.946044, 447.976013, 34.722000, 0.000000, 0.000000, 104.199996, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2274.691894, 437.419006, 33.492000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5174, "warehus_las2", "ws_carparkwall2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2274.691894, 433.419006, 33.492000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5174, "warehus_las2", "ws_carparkwall2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2274.691894, 429.419006, 33.492000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 5174, "warehus_las2", "ws_carparkwall2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19355, -2275.459960, 435.483001, 37.231998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 6357, "sunstrans_law2", "SunBillB10", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19355, -2256.818115, 457.282989, 37.012001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 10249, "ottos2_sfw", "ottos_pics_sfe", 0 ); + CreateDynamicObject( 1569, -2273.843994, 453.063995, 40.152999, 0.000000, 0.000000, 49.599998, -1, -1, -1 ); + CreateDynamicObject( 1569, -2271.900878, 455.351013, 40.152999, 0.000000, 0.000000, -130.300003, -1, -1, -1 ); + CreateDynamicObject( 1557, -2252.858886, 440.545989, 40.161998, 0.000000, 0.000000, -129.699996, -1, -1, -1 ); + CreateDynamicObject( 1557, -2254.794921, 438.240997, 40.161998, 0.000000, 0.000000, 49.799999, -1, -1, -1 ); + CreateDynamicObject( 1557, -2256.886962, 435.734008, 40.161998, 0.000000, 0.000000, -129.699996, -1, -1, -1 ); + CreateDynamicObject( 1557, -2258.833984, 433.408996, 40.161998, 0.000000, 0.000000, 49.799999, -1, -1, -1 ); + CreateDynamicObject( 638, -2256.154052, 437.296997, 40.792999, 0.000000, 0.000000, 139.899993, -1, -1, -1 ); + CreateDynamicObject( 638, -2253.486083, 441.955993, 40.792999, 0.000000, 0.000000, -130.699996, -1, -1, -1 ); + CreateDynamicObject( 638, -2260.308105, 433.855010, 40.792999, 0.000000, 0.000000, -130.699996, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3352, -2275.413085, 441.261993, 43.323001, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 8663, "triadcasino", "black32", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3578, -2262.750976, 456.657989, 33.483001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 5174, "warehus_las2", "ws_carparkwall2", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2276.186035, 457.966003, 48.231998, 0.000000, 0.000000, 50.000000, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + CreateDynamicObject( 3934, -2257.874023, 448.506011, 48.543000, 0.000000, 0.000000, -39.900001, -1, -1, -1 ); + CreateDynamicObject( 3934, -2265.750000, 439.135009, 48.543000, 0.000000, 0.000000, -39.900001, -1, -1, -1 ); + CreateDynamicObject( 14467, -2273.472900, 455.203002, 52.713001, 0.000000, 0.000000, 39.299999, -1, -1, -1 ); + CreateDynamicObject( 970, -2239.118896, 455.572998, 48.803001, 0.000000, 0.000000, 50.299999, -1, -1, -1 ); + CreateDynamicObject( 970, -2241.781005, 452.364990, 48.803001, 0.000000, 0.000000, 50.299999, -1, -1, -1 ); + CreateDynamicObject( 970, -2244.462890, 449.175994, 48.803001, 0.000000, 0.000000, 50.299999, -1, -1, -1 ); + CreateDynamicObject( 970, -2247.152099, 445.986999, 48.803001, 0.000000, 0.000000, 49.599998, -1, -1, -1 ); + CreateDynamicObject( 970, -2249.829101, 442.798004, 48.792999, 0.000000, 0.000000, 50.299999, -1, -1, -1 ); + CreateDynamicObject( 970, -2252.497070, 439.604003, 48.792999, 0.000000, 0.000000, 49.799999, -1, -1, -1 ); + CreateDynamicObject( 970, -2255.189941, 436.417999, 48.792999, 0.000000, 0.000000, 49.799999, -1, -1, -1 ); + CreateDynamicObject( 970, -2257.882080, 433.240997, 48.792999, 0.000000, 0.000000, 49.799999, -1, -1, -1 ); + CreateDynamicObject( 970, -2260.572021, 430.049011, 48.792999, 0.000000, 0.000000, 49.799999, -1, -1, -1 ); + CreateDynamicObject( 970, -2263.269042, 426.863006, 48.792999, 0.000000, 0.000000, 49.799999, -1, -1, -1 ); + CreateDynamicObject( 970, -2265.961914, 423.677001, 48.792999, 0.000000, 0.000000, 49.799999, -1, -1, -1 ); + CreateDynamicObject( 970, -2268.672119, 420.506988, 48.792999, 0.000000, 0.000000, 49.200000, -1, -1, -1 ); + CreateDynamicObject( 16151, -2274.366943, 423.973999, 48.513000, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 1594, -2244.900878, 453.394989, 48.713001, 0.000000, 0.000000, 14.899999, -1, -1, -1 ); + CreateDynamicObject( 1594, -2250.749023, 454.066009, 48.713001, 0.000000, 0.000000, 14.899999, -1, -1, -1 ); + CreateDynamicObject( 1281, -2267.210937, 427.559997, 49.022998, 0.000000, 0.000000, 43.099998, -1, -1, -1 ); + CreateDynamicObject( 1281, -2270.909912, 431.510986, 49.022998, 0.000000, 0.000000, 43.099998, -1, -1, -1 ); + CreateDynamicObject( 1497, -2273.763916, 453.128997, 48.213001, 0.000000, 0.000000, 49.799999, -1, -1, -1 ); + CreateDynamicObject( 1497, -2271.806884, 455.391998, 48.213001, 0.000000, 0.000000, -130.699996, -1, -1, -1 ); + CreateDynamicObject( 1594, -2248.082031, 448.544006, 48.713001, 0.000000, 0.000000, 14.899999, -1, -1, -1 ); + CreateDynamicObject( 3525, -2273.794921, 452.845001, 49.662998, 0.000000, 0.000000, 48.799999, -1, -1, -1 ); + CreateDynamicObject( 3525, -2271.514892, 455.449005, 49.662998, 0.000000, 0.000000, 48.799999, -1, -1, -1 ); + CreateDynamicObject( 638, -2273.270996, 451.731994, 48.873001, 0.000000, 0.000000, 46.599998, -1, -1, -1 ); + CreateDynamicObject( 638, -2270.304931, 454.871002, 48.873001, 0.000000, 0.000000, 46.599998, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2268.709960, 420.903015, 38.675998, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2261.900878, 429.042999, 38.675998, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2263.189941, 427.501007, 38.675998, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2243.138916, 451.483001, 38.675998, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2240.697998, 454.406005, 38.675998, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2242.283935, 452.459991, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2249.529052, 443.842010, 38.675998, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2247.510986, 446.140991, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2244.896972, 449.299987, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2250.115966, 442.989990, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2252.719970, 439.839996, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2255.333007, 436.680999, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2239.677978, 455.610992, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2260.555908, 430.364013, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2257.948974, 433.515014, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2263.169921, 427.205993, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2265.779052, 424.048004, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2270.995117, 417.739013, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19325, -2268.393066, 420.889007, 44.366001, 90.000000, 0.000000, 140.399993, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -218103808 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2254.969970, 437.335998, 40.196018, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + CreateDynamicObject( 1569, -2272.722900, 417.781005, 40.033000, 0.000000, 0.000000, 138.600006, -1, -1, -1 ); + CreateDynamicObject( 1569, -2274.935058, 419.731994, 40.033000, 0.000000, 0.000000, -42.000000, -1, -1, -1 ); + CreateDynamicObject( 15035, -2247.030029, 453.149993, 40.162998, 0.000000, 0.000000, -130.000000, -1, -1, -1 ); + CreateDynamicObject( 2311, -2271.806884, 440.399993, 40.152999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 11334, -2272.646972, 441.484985, 40.902999, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2253.596923, 457.845001, 42.231998, 0.000000, 0.000000, -93.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + CreateDynamicObject( 14651, -2264.120117, 430.992004, 42.233001, 0.000000, 0.000000, 142.500000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2250.666015, 456.278015, 42.231998, 0.000000, 0.000000, -131.800003, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + CreateDynamicObject( 14720, -2254.748046, 455.493988, 40.148998, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 19926, -2275.094970, 430.230010, 40.141998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19787, -2275.319091, 430.236999, 41.720001, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 19808, -2274.916992, 430.201995, 41.084999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1824, -2262.573974, 443.436004, 40.682998, 0.000000, 0.000000, 49.099998, -1, -1, -1 ); + CreateDynamicObject( 1714, -2273.872070, 429.804992, 40.138999, 0.000000, 0.000000, -122.199996, -1, -1, -1 ); + CreateDynamicObject( 1723, -2260.587890, 443.041992, 40.137001, 0.000000, 0.000000, -131.199996, -1, -1, -1 ); + CreateDynamicObject( 1723, -2264.571044, 443.850006, 40.137001, 0.000000, 0.000000, 48.299999, -1, -1, -1 ); + CreateDynamicObject( 2029, -2262.673095, 451.230010, 40.158000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2123, -2262.647949, 450.259002, 40.765998, 0.000000, 0.000000, 270.000000, -1, -1, -1 ); + CreateDynamicObject( 2123, -2261.687011, 450.259002, 40.765998, 0.000000, 0.000000, 270.000000, -1, -1, -1 ); + CreateDynamicObject( 2123, -2262.647949, 452.178985, 40.765998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2123, -2261.687011, 452.188995, 40.765998, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2868, -2262.147949, 451.222991, 40.956001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19174, -2250.497070, 455.730010, 43.317001, 0.000000, 0.000000, 48.299999, -1, -1, -1 ); + CreateDynamicObject( 2100, -2275.279052, 447.825012, 40.159000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1704, -2273.304931, 448.480010, 40.090999, 0.000000, 0.000000, 270.000000, -1, -1, -1 ); + CreateDynamicObject( 955, -2266.533935, 456.752990, 40.544998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 956, -2265.371093, 456.826995, 40.548999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1808, -2259.496093, 456.730987, 40.122001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2571, -2265.989013, 427.066009, 40.143001, 0.000000, 0.000000, -128.699996, -1, -1, -1 ); + CreateDynamicObject( 14455, -2275.323974, 426.929992, 41.591999, 0.000000, 0.000000, 270.000000, -1, -1, -1 ); + CreateDynamicObject( 2267, -2275.365966, 434.290008, 43.181999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2332, -2275.010986, 434.576995, 40.583000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2221, -2271.835937, 440.526000, 40.740001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2221, -2271.835937, 441.656005, 40.740001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19584, -2255.267089, 456.291992, 41.303001, 0.000000, 0.000000, 270.000000, -1, -1, -1 ); + CreateDynamicObject( 2745, -2252.252929, 439.356994, 34.668998, 0.000000, 0.000000, 46.599998, -1, -1, -1 ); + CreateDynamicObject( 2745, -2257.591064, 432.898010, 34.668998, 0.000000, 0.000000, 51.900001, -1, -1, -1 ); + CreateDynamicObject( 11743, -2254.943115, 456.313995, 41.139999, 0.000000, 0.000000, -41.000000, -1, -1, -1 ); + CreateDynamicObject( 19172, -2262.148925, 457.179992, 43.819999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 0, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2600, -2271.471923, 417.079986, 48.912998, 0.000000, 0.000000, 50.099998, -1, -1, -1 ); + CreateDynamicObject( 11724, -2275.100097, 441.191986, 40.673000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 11725, -2274.979003, 441.184997, 40.542999, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2269.118896, 439.127014, 33.762001, 180.000000, 90.000000, 140.100006, -1, -1, -1 ), 0, 4550, "skyscr1_lan2", "sl_concretewall1", -1 ); + CreateDynamicObject( 2500, -2254.482910, 454.143005, 41.091999, 0.000000, 0.000000, 270.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 7914, -2255.439208, 436.643066, 40.686000, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, "Gangsta' Crib", 120, "Impact", 64, 0, -16777088, 0, 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2237.777099, 457.899993, 38.223999, 0.000000, 0.000000, 50.099998, -1, -1, -1 ), 0, 4600, "theatrelan2", "gm_labuld2_b", -1 ); + CreateDynamicObject( 970, -2270.032958, 418.925994, 48.792999, 0.000000, -0.100000, 49.200000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2273.093261, 434.414459, 47.762992, 180.000000, 90.000000, 140.100006, -1, -1, -1 ), 0, 16150, "ufo_bar", "GEWHITE1_64", -1 ); } diff --git a/pawno/include/irresistible/cnr/static/server_objects.inc b/pawno/include/irresistible/cnr/static/server_objects.inc index 54ce3b6..19a6b7f 100644 --- a/pawno/include/irresistible/cnr/static/server_objects.inc +++ b/pawno/include/irresistible/cnr/static/server_objects.inc @@ -5282,8 +5282,17 @@ stock initializeServerObjects( ) CreateDynamicObject( 8168, -2126.154052, 1839.961059, 44.222999, 0.000000, 0.000000, 64.500000, -1, -1, -1 ); CreateDynamicObject( 16327, -1983.401977, 1835.933959, 41.668998, 0.000000, 0.000000, 33.200000, -1, -1, -1 ); SetDynamicObjectMaterial( CreateDynamicObject( 10610, -2087.221923, 1745.951049, 52.969001, 0.000000, 0.000000, -167.699996, -1, -1, -1 ), 1, 13008, "sw_block01", "sw_brewbrick01", -47 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2135.994140, 1756.071655, 52.015850, 0.000000, 14.100008, 2.300049, -1, -1, -1 ), 0, 0, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2125.268066, 1729.023315, 61.948272, 0.000000, 0.000000, 26.800050, -1, -1, -1 ), 0, 0, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2129.566406, 1840.423706, 41.849170, 0.000000, 0.000000, -54.799930, -1, -1, -1 ), 0, 0, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2118.684082, 1835.784790, 41.789211, 0.000000, 0.000000, -167.100112, -1, -1, -1 ), 0, 0, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -1992.245117, 1789.131347, 41.937107, 0.000000, 0.000000, 2.699999, -1, -1, -1 ), 0, 0, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -1981.197998, 1756.649902, 39.467201, 0.000000, 0.000000, 10.600001, -1, -1, -1 ), 0, 0, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -1980.224121, 1732.872070, 39.467201, 0.000000, 0.000000, -6.100002, -1, -1, -1 ), 0, 0, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2075.446533, 1709.991943, 39.931343, 0.000000, 0.000000, 93.099952, -1, -1, -1 ), 0, 0, "none", "none", 0 ); // Duel Arena + SetDynamicObjectMaterialText( CreateDynamicObject( 19861, -2232.130126, 263.019104, 36.146163, 0.000000, 0.000000, 0.099999, -1, -1, -1 ), 0, "Thanks Stev!", 130, "Impact", 32, 0, -16777216, 0, 1 ); SetDynamicObjectMaterial( CreateDynamicObject( 970, -2237.906250, 243.059402, 34.840320, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 1, 8463, "vgseland", "tiadbuddhagold", 0 ); SetDynamicObjectMaterial( CreateDynamicObject( 970, -2237.906250, 260.958953, 34.840320, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 1, 8463, "vgseland", "tiadbuddhagold", 0 ); SetDynamicObjectMaterial( CreateDynamicObject( 970, -2237.906250, 247.239334, 34.840320, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 1, 8463, "vgseland", "tiadbuddhagold", 0 ); diff --git a/pawno/include/irresistible/features/ammunation.inc b/pawno/include/irresistible/features/ammunation.inc index 062d3b3..fc55d53 100644 --- a/pawno/include/irresistible/features/ammunation.inc +++ b/pawno/include/irresistible/features/ammunation.inc @@ -29,7 +29,7 @@ new g_AmmunitionCategory[ ] [ ] = { { "Assault" }, { "Melee" }, { "Submachine Guns" }, { "Pistols" }, - { "Rifles" }, { "Shotguns" }, { "Thrown" }, { "Armor" } + { "Rifles" }, { "Shotguns" }, { "Thrown" }, { "Special" } }, g_AmmunationWeapons[ ][ E_WEAPONS_DATA ] = { @@ -67,25 +67,25 @@ new { MENU_THROWN, "Grenade", 16, 1, 1200 }, { MENU_THROWN, "Molotov Cocktail", 18, 4, 1400 }, - { MENU_ARMOR, "Armor", 101, 100, 12500 } + { MENU_ARMOR, "Armor", 101, 100, 12500 }, + { MENU_ARMOR, "RPG", 35, 1, 10000 } }, p_AmmunationMenu [ MAX_PLAYERS char ] ; /* ** Functions ** */ -stock RedirectAmmunation( playerid, listitem, custom_title[ ] = "{FFFFFF}Ammu-Nation", custom_dialogid = DIALOG_AMMU_BUY, Float: custom_multplier = 1.0, bool: unlimited_ammo = false ) +stock RedirectAmmunation( playerid, listitem, custom_title[ ] = "{FFFFFF}Ammu-Nation", custom_dialogid = DIALOG_AMMU_BUY, Float: custom_multplier = 1.0, ammo_multiplier = 1 ) { new szString[ 420 ]; if ( listitem == MENU_ARMOR ) szString = ""COL_WHITE"Item\t"COL_WHITE"Price\n"; - else if ( unlimited_ammo ) szString = ""COL_WHITE"Weapon\t"COL_WHITE"Price\n"; else szString = ""COL_WHITE"Weapon\t"COL_WHITE"Ammo\t"COL_WHITE"Price\n"; for( new i; i < sizeof( g_AmmunationWeapons ); i++ ) if ( g_AmmunationWeapons[ i ] [ E_MENU ] == listitem ) { - if ( ! unlimited_ammo && listitem != MENU_ARMOR ) { // Other multipliers will not specify ammo - format( szString, sizeof( szString ), "%s%s\t%d\t", szString, g_AmmunationWeapons[ i ] [ E_NAME ], g_AmmunationWeapons[ i ] [ E_AMMO ] ); + if ( listitem != MENU_ARMOR ) { // Other multipliers will not specify ammo + format( szString, sizeof( szString ), "%s%s\t%d\t", szString, g_AmmunationWeapons[ i ] [ E_NAME ], listitem == MENU_MELEE ? 1 : ( g_AmmunationWeapons[ i ] [ E_AMMO ] * ammo_multiplier ) ); } else { format( szString, sizeof( szString ), "%s%s\t", szString, g_AmmunationWeapons[ i ] [ E_NAME ] ); } diff --git a/pawno/include/irresistible/features/gangs/cannon.inc b/pawno/include/irresistible/features/gangs/cannon.inc new file mode 100644 index 0000000..c420064 --- /dev/null +++ b/pawno/include/irresistible/features/gangs/cannon.inc @@ -0,0 +1,363 @@ +/* + * Irresistible Gaming (c) 2018 + * Developed by Lorenc Pekaj + * Module: cannon.inc + * Purpose: orbital cannon implementation for gang facilities + */ + +#if !defined MAX_FACILITIES + #error "This module requires facility module!" +#endif + +/* ** Includes ** */ +#include < YSI\y_hooks > +#include < mapandreas > + +/* ** Definitions ** */ +#define ORBITAL_CANNON_TICK ( 100 ) + +/* ** Variables ** */ +enum E_ORBITAL_CANNON_DATA +{ + Float: E_POS[ 3 ], Float: E_ZOOM, E_TIMER, + E_FIRE_TICK, E_COOL_DOWN +}; + +new + g_orbitalCannonData [ MAX_FACILITIES ] [ E_ORBITAL_CANNON_DATA ], + p_usingOrbitalCannon [ MAX_PLAYERS ] = { -1, ... }, + Text: g_orbitalAimTD = Text: INVALID_TEXT_DRAW, + Text3D: g_orbitalPlayerLabels [ MAX_FACILITIES ] [ MAX_PLAYERS ] +; + +/* ** Hooks ** */ +hook OnScriptInit( ) +{ + // start map andreas + MapAndreas_Init( MAP_ANDREAS_MODE_MINIMAL ); + + // textdraw + g_orbitalAimTD = TextDrawCreate( 305.000000, 205.000000, "+" ); + TextDrawBackgroundColor( g_orbitalAimTD, 0 ); + TextDrawFont( g_orbitalAimTD, 2 ); + TextDrawLetterSize( g_orbitalAimTD, 1.000000, 4.000000 ); + TextDrawColor( g_orbitalAimTD, -16777152 ); + TextDrawSetOutline( g_orbitalAimTD, 1 ); + TextDrawSetProportional( g_orbitalAimTD, 1 ); + + // starting data + for ( new facilityid = 0; facilityid < sizeof( g_orbitalCannonData ); facilityid ++ ) { + g_orbitalCannonData[ facilityid ] [ E_TIMER ] = -1; + for ( new i = 0; i < sizeof( g_orbitalPlayerLabels[ ] ); i ++ ) { + g_orbitalPlayerLabels[ facilityid ] [ i ] = Text3D: INVALID_3DTEXT_ID; + } + } + return 1; +} + +hook SetPlayerRandomSpawn( playerid ) +{ + if ( GetPVarType( playerid, "left_cannon" ) != PLAYER_VARTYPE_NONE ) + { + new facilityid = GetPVarInt( playerid, "left_cannon" ); + new int_type = g_gangFacilities[ facilityid ] [ E_INTERIOR_TYPE ]; + + // place in facility + pauseToLoad( playerid ); + SetPVarInt( playerid, "in_facility", facilityid ); + UpdatePlayerEntranceExitTick( playerid ); + SetPlayerPos( playerid, g_gangFacilityInterior[ int_type ] [ E_CANNON_POS ] [ 0 ], g_gangFacilityInterior[ int_type ] [ E_CANNON_POS ] [ 1 ], g_gangFacilityInterior[ int_type ] [ E_CANNON_POS ] [ 2 ] ); + SetPlayerVirtualWorld( playerid, g_gangFacilities[ facilityid ] [ E_WORLD ] ); + SetPlayerInterior( playerid, 0 ); + + // set camera + DeletePVar( playerid, "left_cannon" ); + SetCameraBehindPlayer( playerid ); + return Y_HOOKS_BREAK_RETURN_1; + } + return 1; +} + +hook OnPlayerDisconnect( playerid, reason ) +{ + ClosePlayerOrbitalCannon( playerid ); + return 1; +} + +/* ** Callbacks ** */ +function OnPlayerOrbitalCannonUpdate( facilityid, playerid ) +{ + new Float: current_pos[ 3 ]; + new Float: move_unit = 10.0; + new keys, ud, lr; + + GetPlayerKeys( playerid, keys, ud, lr ); + + // store local positions + current_pos[ 0 ] = g_orbitalCannonData[ facilityid ] [ E_POS ] [ 0 ]; + current_pos[ 1 ] = g_orbitalCannonData[ facilityid ] [ E_POS ] [ 1 ]; + MapAndreas_FindZ_For2DCoord( current_pos[ 0 ], current_pos[ 1 ], current_pos[ 2 ] ); + + // close + if ( ( keys & KEY_CROUCH ) || IsPlayerJailed( playerid ) || IsPlayerAFK( playerid ) ) + { + SetPVarInt( playerid, "left_cannon", facilityid ); + ClosePlayerOrbitalCannon( playerid ); + return TogglePlayerSpectating( playerid, 0 ); + } + + // fire ammo + if ( ( keys & KEY_SPRINT ) && ! g_orbitalCannonData[ facilityid ] [ E_COOL_DOWN ] ) + { + if ( GetPlayerCash( playerid ) < 250000 ) { + SetPVarInt( playerid, "left_cannon", facilityid ); + ClosePlayerOrbitalCannon( playerid ); + TogglePlayerSpectating( playerid, 0 ); + return SendError( playerid, "You need $250,000 to fire an orbital cannon." ); + } + + // add tick (ms) for countdown + g_orbitalCannonData[ facilityid ] [ E_FIRE_TICK ] += ORBITAL_CANNON_TICK; + + // just pressed fire? move camera + if ( g_orbitalCannonData[ facilityid ] [ E_FIRE_TICK ] == ORBITAL_CANNON_TICK ) { + // smoothly move camera + InterpolateCameraPos( + playerid, + g_orbitalCannonData[ facilityid ] [ E_POS ] [ 0 ], g_orbitalCannonData[ facilityid ] [ E_POS ] [ 1 ], + current_pos[ 2 ] + g_orbitalCannonData[ facilityid ] [ E_ZOOM ], + current_pos[ 0 ], current_pos[ 1 ], current_pos[ 2 ] + g_orbitalCannonData[ facilityid ] [ E_ZOOM ] + 50.0, + 5000 + ); + + InterpolateCameraLookAt( + playerid, + g_orbitalCannonData[ facilityid ] [ E_POS ] [ 0 ], g_orbitalCannonData[ facilityid ] [ E_POS ] [ 1 ], current_pos[ 2 ], + current_pos[ 0 ], current_pos[ 1 ], current_pos[ 2 ], + 5000 + ); + } + + // alert + if ( g_orbitalCannonData[ facilityid ] [ E_FIRE_TICK ] % 1000 == 0 ) + { + if ( g_orbitalCannonData[ facilityid ] [ E_FIRE_TICK ] > 3000 ) + { + g_orbitalCannonData[ facilityid ] [ E_FIRE_TICK ] = 0; + g_orbitalCannonData[ facilityid ] [ E_COOL_DOWN ] = ORBITAL_CANNON_TICK * 20; + + new rocket = CreateDynamicObject( 3786, current_pos[ 0 ], current_pos[ 1 ], current_pos[ 2 ] + g_orbitalCannonData[ facilityid ] [ E_ZOOM ], 5.0, -90.0, 0.0 ); + new move_speed = MoveDynamicObject( rocket, current_pos[ 0 ], current_pos[ 1 ], current_pos[ 2 ], 100.0 ); + Streamer_Update( playerid, STREAMER_TYPE_OBJECT ); + + GivePlayerCash( playerid, -250000 ); + PlayerPlaySound( playerid, 1057, 0.0, 0.0, 0.0 ); + GameTextForPlayer( playerid, "~g~FIRED!", 2000, 3 ); + SendServerMessage( playerid, "You have launched an orbital cannon for "COL_GOLD"$250,000"COL_WHITE", you have %s left.", number_format( GetPlayerCash( playerid ) ) ); + return SetTimerEx( "OnPlayerFireOrbitalCannon", move_speed, false, "ddfff", playerid, rocket, current_pos[ 0 ], current_pos[ 1 ], current_pos[ 2 ] ); + } + else + { + g_orbitalCannonData[ facilityid ] [ E_ZOOM ] += 2.0; + GameTextForPlayer( playerid, sprintf( "~r~%d", g_orbitalCannonData[ facilityid ] [ E_FIRE_TICK ] / 1000 ), 2000, 3 ); + PlayerPlaySound( playerid, 1056, 0.0, 0.0, 0.0 ); + } + } + } + else + { + g_orbitalCannonData[ facilityid ] [ E_FIRE_TICK ] = 0; + } + + // deduct cooldown + if ( g_orbitalCannonData[ facilityid ] [ E_COOL_DOWN ] && ( g_orbitalCannonData[ facilityid ] [ E_COOL_DOWN ] -= ORBITAL_CANNON_TICK ) <= 0 ) + g_orbitalCannonData[ facilityid ] [ E_COOL_DOWN ] = 0; + + // begin movement + if ( ! g_orbitalCannonData[ facilityid ] [ E_FIRE_TICK ] ) + { + // zoom in + if ( g_orbitalCannonData[ facilityid ] [ E_ZOOM ] > 75.0 ) move_unit = g_orbitalCannonData[ facilityid ] [ E_ZOOM ] / 7.5; + else if ( g_orbitalCannonData[ facilityid ] [ E_ZOOM ] <= 20.0 ) move_unit = 5.0; + + // move camera + if ( ud == KEY_UP ) current_pos[ 1 ] += move_unit; + else if ( ud == KEY_DOWN ) current_pos[ 1 ] -= move_unit; + + if ( lr == KEY_LEFT ) current_pos[ 0 ] -= move_unit; + else if ( lr == KEY_RIGHT ) current_pos[ 0 ] += move_unit; + + // zoom in + if ( keys & KEY_FIRE ) { + if ( ( g_orbitalCannonData[ facilityid ] [ E_ZOOM ] -= move_unit ) < 20.0 ) { + g_orbitalCannonData[ facilityid ] [ E_ZOOM ] = 20.0; + } + } + else if ( keys & KEY_AIM ) { + if ( ( g_orbitalCannonData[ facilityid ] [ E_ZOOM ] += move_unit ) > 300.0 ) { + g_orbitalCannonData[ facilityid ] [ E_ZOOM ] = 300.0; + } + } + + // smoothly move camera + InterpolateCameraPos( + playerid, + g_orbitalCannonData[ facilityid ] [ E_POS ] [ 0 ], g_orbitalCannonData[ facilityid ] [ E_POS ] [ 1 ], g_orbitalCannonData[ facilityid ] [ E_POS ] [ 2 ] + g_orbitalCannonData[ facilityid ] [ E_ZOOM ], + current_pos[ 0 ], current_pos[ 1 ], current_pos[ 2 ] + g_orbitalCannonData[ facilityid ] [ E_ZOOM ], + 150 + ); + + InterpolateCameraLookAt( + playerid, + g_orbitalCannonData[ facilityid ] [ E_POS ] [ 0 ], g_orbitalCannonData[ facilityid ] [ E_POS ] [ 1 ], g_orbitalCannonData[ facilityid ] [ E_POS ] [ 2 ], + current_pos[ 0 ], current_pos[ 1 ], current_pos[ 2 ], + 150 + ); + } + + // update + g_orbitalCannonData[ facilityid ] [ E_POS ] = current_pos; + return 1; +} + +function OnPlayerFireOrbitalCannon( playerid, rocketid, Float: X, Float: Y, Float: Z ) +{ + new Float: player_X, Float: player_Y, Float: player_Z; + + // destroy the rocket after it is moved + DestroyDynamicObject( rocketid ); + + // kill everyone in that area + foreach ( new i : Player ) if ( GetPlayerGang( i ) != GetPlayerGang( playerid ) && GetPlayerVirtualWorld( i ) == 0 && GetPlayerInterior( i ) == 0 && ! IsPlayerJailed( i ) && ! IsPlayerAdminOnDuty( i ) && ! IsPlayerSpawnProtected( i ) ) + { + new + player_state = GetPlayerState( i ); + + if ( GetPlayerPos( i, player_X, player_Y, player_Z ) && player_Z >= Z && player_state != PLAYER_STATE_WASTED && player_state != PLAYER_STATE_SPECTATING ) + { + new + Float: distance_squared = VectorSize( player_X - X, player_Y - Y, 0.0 ); + + if ( distance_squared < 30.0 ) + { + SendClientMessageToAllFormatted( -1, ""COL_ORANGE"[ORBITAL CANNON]"COL_WHITE" %s(%d) got rekt by %s(%d)'s orbital cannon.", ReturnPlayerName( i ), i, ReturnPlayerName( playerid ), playerid ); + ForcePlayerKill( i, playerid, 51 ); + CreateExplosion( player_X, player_Y, player_Z, 0, 10.0 ); + continue; + } + } + } + + // create explosion + CreateExplosion( X, Y, Z, 6, 10.0 ); + return 1; +} + +/* ** Functions ** */ +stock StartPlayerOrbitalCannon( playerid, facilityid ) +{ + if ( g_orbitalCannonData[ facilityid ] [ E_TIMER ] != -1 ) + return 0; + + // player + SetPlayerInterior( playerid, 0 ); + SetPlayerVirtualWorld( playerid, 0 ); + TogglePlayerSpectating( playerid, 1 ); + TextDrawShowForPlayer( playerid, g_orbitalAimTD ); + ShowPlayerHelpDialog( playerid, 0, "~y~Arrows~w~ - Move camera~n~~y~~k~~PED_FIREWEAPON~~w~ - Zoom in~n~~y~~k~~PED_LOCK_TARGET~~w~ - Zoom out~n~~y~~k~~PED_SPRINT~~w~ - Fire cannon ~g~($250,000)~n~~y~~k~~PED_DUCK~~w~ - Cancel" ); + p_usingOrbitalCannon[ playerid ] = facilityid; + if ( ! IsPlayerMovieMode( playerid ) ) cmd_moviemode( playerid, "" ); + + // destroy labels (created on stream out/in anyway) + for ( new i = 0; i < sizeof( g_orbitalPlayerLabels[ ] ); i ++ ) { + DestroyDynamic3DTextLabel( g_orbitalPlayerLabels[ facilityid ] [ i ] ); + g_orbitalPlayerLabels[ facilityid ] [ i ] = Text3D: INVALID_3DTEXT_ID; + } + + // set cannon position + g_orbitalCannonData[ facilityid ] [ E_POS ] [ 0 ] = g_gangFacilities[ facilityid ] [ E_X ]; + g_orbitalCannonData[ facilityid ] [ E_POS ] [ 1 ] = g_gangFacilities[ facilityid ] [ E_Y ]; + g_orbitalCannonData[ facilityid ] [ E_POS ] [ 2 ] = g_gangFacilities[ facilityid ] [ E_Z ]; + + // set zoom of camera + g_orbitalCannonData[ facilityid ] [ E_POS ] [ 2 ] += ( g_orbitalCannonData[ facilityid ] [ E_ZOOM ] += 100.0 ); + + g_orbitalCannonData[ facilityid ] [ E_TIMER ] = SetTimerEx( "OnPlayerOrbitalCannonUpdate", ORBITAL_CANNON_TICK, true, "dd", facilityid, playerid ); + return 1; +} + +hook OnPlayerStreamIn( playerid, forplayerid ) +{ + if ( ! IsPlayerNPC( playerid ) && IsPlayerUsingOrbitalCannon( forplayerid ) ) + { + new + facilityid = p_usingOrbitalCannon[ forplayerid ]; + + if ( 0 <= facilityid < sizeof( g_orbitalCannonData ) ) + { + if ( ! IsValidDynamic3DTextLabel( g_orbitalPlayerLabels[ facilityid ] [ playerid ] ) ) + { + g_orbitalPlayerLabels[ facilityid ] [ playerid ] = CreateDynamic3DTextLabel( + sprintf( "%s(%d)", ReturnPlayerName( playerid ), playerid ), + setAlpha( GetPlayerColor( playerid ), 0xFF ), + 0.0, 0.0, 0.0, 300.0, + .attachedplayer = playerid, + .testlos = 0, + .playerid = forplayerid, + .streamdistance = 300.0 + ); + } + } + } + return 1; +} + +hook OnPlayerStreamOut( playerid, forplayerid ) +{ + if ( ! IsPlayerNPC( playerid ) && IsPlayerUsingOrbitalCannon( forplayerid ) ) + { + new + facilityid = p_usingOrbitalCannon[ forplayerid ]; + + if ( 0 <= facilityid < sizeof( g_orbitalCannonData ) ) + { + if ( IsValidDynamic3DTextLabel( g_orbitalPlayerLabels[ facilityid ] [ playerid ] ) ) + { + DestroyDynamic3DTextLabel( g_orbitalPlayerLabels[ facilityid ] [ playerid ] ); + g_orbitalPlayerLabels[ facilityid ] [ playerid ] = Text3D: INVALID_3DTEXT_ID; + } + } + } + return 1; +} + +stock ClosePlayerOrbitalCannon( playerid ) { + + new + facilityid = p_usingOrbitalCannon[ playerid ]; + + // remove user + p_usingOrbitalCannon[ playerid ] = -1; + TextDrawHideForPlayer( playerid, g_orbitalAimTD ); + HidePlayerHelpDialog( playerid ); + if ( IsPlayerMovieMode( playerid ) ) cmd_moviemode( playerid, "" ); + + // reset facility portion + if ( 0 <= facilityid < sizeof( g_orbitalCannonData ) ) + { + // remove label associated + for ( new i = 0; i < sizeof( g_orbitalPlayerLabels[ ] ); i ++ ) { + DestroyDynamic3DTextLabel( g_orbitalPlayerLabels[ facilityid ] [ i ] ); + g_orbitalPlayerLabels[ facilityid ] [ i ] = Text3D: INVALID_3DTEXT_ID; + } + + // kill timer + KillTimer( g_orbitalCannonData[ facilityid ] [ E_TIMER ] ); + g_orbitalCannonData[ facilityid ] [ E_TIMER ] = -1; + } + return 1; +} + +stock IsPlayerUsingOrbitalCannon( playerid ) { + return p_usingOrbitalCannon[ playerid ] != -1; +} diff --git a/pawno/include/irresistible/features/gangs/facilities.inc b/pawno/include/irresistible/features/gangs/facilities.inc index b28bbe9..83a1920 100644 --- a/pawno/include/irresistible/features/gangs/facilities.inc +++ b/pawno/include/irresistible/features/gangs/facilities.inc @@ -20,27 +20,40 @@ /* ** Variables ** */ enum E_GANG_FACILITIES { - E_GANG_SQL_ID, E_TURF_ID, E_INTERIOR_TYPE, + E_GANG_SQL_ID, E_TURF_ID, E_INTERIOR_TYPE, E_WORLD, Text3D: E_LABEL[ 2 ], E_CHECKPOINT[ 2 ], - Float: E_X, Float: E_Y, Float: E_Z, + Float: E_X, Float: E_Y, Float: E_Z, - E_AMMU_CP + E_AMMU_CP, E_SHOP_CP, E_CANNON_CP, + E_TRAVEL_CP }; enum E_FACILITY_INTERIOR { - Float: E_X, Float: E_Y, Float: E_Z, - - Float: E_AMMU_POS[ 4 ] //Float: E_MECHANIC_POS[ 4 ] + Float: E_POS[ 3 ], + Float: E_CANNON_POS[ 3 ], + Float: E_AMMU_POS[ 4 ], + Float: E_SHOP_POS[ 4 ], + Float: E_TRAVEL_POS[ 4 ], + Float: E_ATM_POS[ 4 ] + //Float: E_MECHANIC_POS[ 4 ] }; new g_gangFacilityInterior [ ] [ E_FACILITY_INTERIOR ] = { - { 228.2063, 1872.4011, 1463.7345, { 248.4965, 1797.5060, 1457.4143, 0.000000 } } + // default interior + { + { 238.9165, 1872.3391, 1861.4607 }, + { 212.4133, 1822.7343, 1856.4138 }, + { 248.5042, 1797.5060, 1857.4143, 0.000000 }, + { 259.9110, 1850.9300, 1858.7600, 0.000000 }, + { 261.0079, 1869.5808, 1858.7600, 90.00000 }, + { 262.5575, 1850.0053, 1858.3671, 180.0000 } + } }, g_gangFacilities [ MAX_FACILITIES ] [ E_GANG_FACILITIES ], // g_gangsWithFacilities [ MAX_FACILITIES ], @@ -98,8 +111,9 @@ hook OnPlayerEnterDynamicCP( playerid, checkpointid ) // begin entrance pauseToLoad( playerid ); SetPVarInt( playerid, "in_facility", facility ); + PlayerPlaySound( playerid, 1, 0.0, 0.0, 0.0 ); UpdatePlayerEntranceExitTick( playerid ); - SetPlayerPos( playerid, g_gangFacilityInterior[ int_type ] [ E_X ], g_gangFacilityInterior[ int_type ] [ E_Y ], g_gangFacilityInterior[ int_type ] [ E_Z ] ); + SetPlayerPos( playerid, g_gangFacilityInterior[ int_type ] [ E_POS ] [ 0 ], g_gangFacilityInterior[ int_type ] [ E_POS ] [ 1 ], g_gangFacilityInterior[ int_type ] [ E_POS ] [ 2 ] ); SetPlayerVirtualWorld( playerid, g_gangFacilities[ facility ] [ E_WORLD ] ); SetPlayerInterior( playerid, 0 ); break; @@ -108,6 +122,7 @@ hook OnPlayerEnterDynamicCP( playerid, checkpointid ) // exit else if ( checkpointid == g_gangFacilities[ facility ] [ E_CHECKPOINT ] [ 1 ] ) { + PlayerPlaySound( playerid, 0, 0.0, 0.0, 0.0 ); TogglePlayerControllable( playerid, 0 ); UpdatePlayerEntranceExitTick( playerid ); SetTimerEx( "ope_Unfreeze", 1250, false, "d", playerid ); @@ -121,6 +136,37 @@ hook OnPlayerEnterDynamicCP( playerid, checkpointid ) { return ShowAmmunationMenu( playerid, "{FFFFFF}Gang Facility - Purchase Weapons", DIALOG_FACILITY_AMMU ); } + + // shop + else if ( checkpointid == g_gangFacilities[ facility ] [ E_SHOP_CP ] ) + { + return ShowPlayerShopMenu( playerid ); + } + + // fast travel + else if ( checkpointid == g_gangFacilities[ facility ] [ E_TRAVEL_CP ] ) + { + if ( GetPlayerWantedLevel( playerid ) ) + return SendError( playerid, "You cannot travel while you are wanted." ); + + return ShowPlayerAirportMenu( playerid ); + } + + // orbital cannon + else if ( checkpointid == g_gangFacilities[ facility ] [ E_CANNON_CP ] ) + { + if ( GetPlayerCash( playerid ) < 250000 ) + return SendError( playerid, "You need at least $250,000 available to begin operating the orbital cannon." ); + + if ( StartPlayerOrbitalCannon( playerid, facility ) ) + { + return SendServerMessage( playerid, "You are now operating this facility's orbital cannon." ); + } + else + { + return SendError( playerid, "The orbital cannon of this facility is currently in use." ); + } + } } } return 1; @@ -226,6 +272,7 @@ thread OnGangFaciltiesLoad( ) if ( rows ) { new gang_name[ 30 ], join_msg[ 96 ]; + new Float: infront_x, Float: infront_y; for ( new row = 0; row < rows; row ++ ) { @@ -302,17 +349,47 @@ thread OnGangFaciltiesLoad( ) // create interior new type = g_gangFacilities[ id ] [ E_INTERIOR_TYPE ]; - g_gangFacilities[ id ] [ E_CHECKPOINT ] [ 1 ] = CreateDynamicCP( g_gangFacilityInterior[ type ] [ E_X ], g_gangFacilityInterior[ type ] [ E_Y ], g_gangFacilityInterior[ type ] [ E_Z ], 1.0, g_gangFacilities[ id ] [ E_WORLD ], -1, -1, 100.0 ); - g_gangFacilities[ id ] [ E_LABEL ] [ 1 ] = CreateDynamic3DTextLabel( "[EXIT]", COLOR_GOLD, g_gangFacilityInterior[ type ] [ E_X ], g_gangFacilityInterior[ type ] [ E_Y ], g_gangFacilityInterior[ type ] [ E_Z ], 20.0 ); + g_gangFacilities[ id ] [ E_CHECKPOINT ] [ 1 ] = CreateDynamicCP( g_gangFacilityInterior[ type ] [ E_POS ] [ 0 ], g_gangFacilityInterior[ type ] [ E_POS ] [ 1 ], g_gangFacilityInterior[ type ] [ E_POS ] [ 2 ], 1.0, g_gangFacilities[ id ] [ E_WORLD ], -1, -1, 100.0 ); + g_gangFacilities[ id ] [ E_LABEL ] [ 1 ] = CreateDynamic3DTextLabel( "[EXIT]", COLOR_GOLD, g_gangFacilityInterior[ type ] [ E_POS ] [ 0 ], g_gangFacilityInterior[ type ] [ E_POS ] [ 1 ], g_gangFacilityInterior[ type ] [ E_POS ] [ 2 ], 20.0 ); // ammunation man CreateDynamicActor( 179, g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 0 ], g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 1 ], g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 2 ], g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 3 ], true, 100.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); - new Float: infront_x = g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 0 ] + 2.0 * floatsin( g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 3 ], degrees ); - new Float: infront_y = g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 1 ] + 2.0 * floatcos( g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 3 ], degrees ); + infront_x = g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 0 ] + 2.0 * floatsin( -g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 3 ], degrees ); + infront_y = g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 1 ] + 2.0 * floatcos( -g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 3 ], degrees ); - g_gangFacilities[ id ] [ E_AMMU_CP ] = CreateDynamicCP( infront_x, infront_y, g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 2 ], 1.0, g_gangFacilities[ id ] [ E_WORLD ], -1, -1, 100.0 ); + g_gangFacilities[ id ] [ E_AMMU_CP ] = CreateDynamicCP( infront_x, infront_y, g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 2 ], 1.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); CreateDynamic3DTextLabel( "[AMMU-NATION]", COLOR_GOLD, infront_x, infront_y, g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 2 ], 20.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); + + // orbital cannon + g_gangFacilities[ id ] [ E_CANNON_CP ] = CreateDynamicCP( g_gangFacilityInterior[ type ] [ E_CANNON_POS ] [ 0 ], g_gangFacilityInterior[ type ] [ E_CANNON_POS ] [ 1 ], g_gangFacilityInterior[ type ] [ E_CANNON_POS ] [ 2 ], 1.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); + CreateDynamic3DTextLabel( "[ORBITAL CANNON]", COLOR_GOLD, g_gangFacilityInterior[ type ] [ E_CANNON_POS ] [ 0 ], g_gangFacilityInterior[ type ] [ E_CANNON_POS ] [ 1 ], g_gangFacilityInterior[ type ] [ E_CANNON_POS ] [ 2 ], 20.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); + + // shop actor + CreateDynamicActor( 211, g_gangFacilityInterior[ type ] [ E_SHOP_POS ] [ 0 ], g_gangFacilityInterior[ type ] [ E_SHOP_POS ] [ 1 ], g_gangFacilityInterior[ type ] [ E_SHOP_POS ] [ 2 ], g_gangFacilityInterior[ type ] [ E_SHOP_POS ] [ 3 ], true, 100.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); + + infront_x = g_gangFacilityInterior[ type ] [ E_SHOP_POS ] [ 0 ] + 2.0 * floatsin( -g_gangFacilityInterior[ type ] [ E_SHOP_POS ] [ 3 ], degrees ); + infront_y = g_gangFacilityInterior[ type ] [ E_SHOP_POS ] [ 1 ] + 2.0 * floatcos( -g_gangFacilityInterior[ type ] [ E_SHOP_POS ] [ 3 ], degrees ); + + g_gangFacilities[ id ] [ E_SHOP_CP ] = CreateDynamicCP( infront_x, infront_y, g_gangFacilityInterior[ type ] [ E_SHOP_POS ] [ 2 ], 1.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); + CreateDynamic3DTextLabel( "[24/7]", COLOR_GOLD, infront_x, infront_y, g_gangFacilityInterior[ type ] [ E_SHOP_POS ] [ 2 ], 20.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); + + // fast travel actor + CreateDynamicActor( 61, g_gangFacilityInterior[ type ] [ E_TRAVEL_POS ] [ 0 ], g_gangFacilityInterior[ type ] [ E_TRAVEL_POS ] [ 1 ], g_gangFacilityInterior[ type ] [ E_TRAVEL_POS ] [ 2 ], g_gangFacilityInterior[ type ] [ E_TRAVEL_POS ] [ 3 ], true, 100.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); + + infront_x = g_gangFacilityInterior[ type ] [ E_TRAVEL_POS ] [ 0 ] + 2.0 * floatsin( -g_gangFacilityInterior[ type ] [ E_TRAVEL_POS ] [ 3 ], degrees ); + infront_y = g_gangFacilityInterior[ type ] [ E_TRAVEL_POS ] [ 1 ] + 2.0 * floatcos( -g_gangFacilityInterior[ type ] [ E_TRAVEL_POS ] [ 3 ], degrees ); + + g_gangFacilities[ id ] [ E_TRAVEL_CP ] = CreateDynamicCP( infront_x, infront_y, g_gangFacilityInterior[ type ] [ E_TRAVEL_POS ] [ 2 ], 1.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); + CreateDynamic3DTextLabel( "[FAST TRAVEL]", COLOR_GOLD, infront_x, infront_y, g_gangFacilityInterior[ type ] [ E_TRAVEL_POS ] [ 2 ], 20.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); + + // create atm + CreateATM( g_gangFacilityInterior[ type ] [ E_ATM_POS ] [ 0 ], g_gangFacilityInterior[ type ] [ E_ATM_POS ] [ 1 ], g_gangFacilityInterior[ type ] [ E_ATM_POS ] [ 2 ], g_gangFacilityInterior[ type ] [ E_ATM_POS ] [ 3 ], 0.0, g_gangFacilities[ id ] [ E_WORLD ] ); + + // more actors + CreateDynamicActor( 268, 244.6742, 1843.2554, 1858.7576, 0.000000, true, 100.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); + ApplyDynamicActorAnimation( CreateDynamicActor( 70, 212.868576, 1819.894531, 1856.413818, 117.200050, true, 100.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ), "COP_AMBIENT", "Coplook_loop", 4.1, 1, 1, 1, 1, 0 ); + ApplyDynamicActorAnimation( CreateDynamicActor( 70, 213.705627, 1827.192993, 1856.413818, 60.300289, true, 100.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ), "COP_AMBIENT", "Coplook_think", 4.1, 1, 1, 1, 1, 0 ); } else { @@ -347,7 +424,7 @@ stock GetFacilityInteriorType( gang_sql_id ) static stock initializeFacilityObjects( ) { - tmpVariable = CreateDynamicObject( 16647, 249.156005, 1860.953002, 1460.366943, 0.000000, 0.000000, 180.000000, -1, -1, -1, .streamdistance = -1 ); + tmpVariable = CreateDynamicObject( 16647, 249.156005, 1860.953002, 1860.366943, 0.000000, 0.000000, 180.000000, -1, -1, -1, .streamdistance = -1 ); SetDynamicObjectMaterial( tmpVariable, 1, 6038, "lawwhitebuilds", "brwall_128", 0 ); SetDynamicObjectMaterial( tmpVariable, 2, 6038, "lawwhitebuilds", "brwall_128", 0 ); SetDynamicObjectMaterial( tmpVariable, 7, 6038, "lawwhitebuilds", "brwall_128", 0 ); @@ -358,87 +435,86 @@ static stock initializeFacilityObjects( ) SetDynamicObjectMaterial( tmpVariable, 8, 17538, "losflor4_lae2", "tarmacplain_bank", 0 ); SetDynamicObjectMaterial( tmpVariable, 15, 17538, "losflor4_lae2", "tarmacplain_bank", 0 ); SetDynamicObjectMaterial( tmpVariable, 6, 3587, "snpedhusxref", "comptwindo1", 0 ); - CreateDynamicObject( 16641, 279.890991, 1807.014038, -44.832000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - tmpVariable = CreateDynamicObject( 16643, 248.727005, 1869.989013, 1461.852050, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 16643, 248.727005, 1869.989013, 1861.852050, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); SetDynamicObjectMaterial( tmpVariable, 3, 16643, "none", "none", 1 ); SetDynamicObjectMaterial( tmpVariable, 4, 16643, "none", "none", 1 ); - CreateDynamicObject( 16651, 247.906005, 1825.625000, 1455.562011, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 16650, 247.703002, 1823.843994, 1456.555053, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", 0 ); - tmpVariable = CreateDynamicObject( 16665, 223.429992, 1822.741943, 1456.406005, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 16651, 247.906005, 1825.625000, 1855.562011, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 16650, 247.703002, 1823.843994, 1856.555053, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", 0 ); + tmpVariable = CreateDynamicObject( 16665, 223.429992, 1822.741943, 1856.406005, 0.000000, 0.000000, 0.000000, -1, -1, -1, .streamdistance = -1 ); SetDynamicObjectMaterial( tmpVariable, 0, 6038, "lawwhitebuilds", "brwall_128", 0 ); SetDynamicObjectMaterial( tmpVariable, 1, 6038, "lawwhitebuilds", "brwall_128", 0 ); SetDynamicObjectMaterial( tmpVariable, 6, 6038, "lawwhitebuilds", "brwall_128", 0 ); SetDynamicObjectMaterial( tmpVariable, 2, 17538, "losflor4_lae2", "tarmacplain_bank", 0 ); SetDynamicObjectMaterial( tmpVariable, 4, 17538, "losflor4_lae2", "tarmacplain_bank", 0 ); SetDynamicObjectMaterial( tmpVariable, 3, 8419, "vgsbldng1", "black32", 0 ); - CreateDynamicObject( 16648, 244.703002, 1905.211059, 1459.906005, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 16640, 263.429992, 1840.782958, 1457.109985, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - tmpVariable = CreateDynamicObject( 19786, 211.182998, 1822.728027, 1459.890991, 7.900000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 16648, 244.703002, 1905.211059, 1859.906005, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 16640, 263.429992, 1840.782958, 1857.109985, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 19786, 211.182998, 1822.728027, 1859.890991, 7.900000, 0.000000, 90.000000, -1, -1, -1 ); SetDynamicObjectMaterialText( tmpVariable, 0, "ACTIVE", 130, "ARIAL", 60, 1, 0, -16777216, 1 ); SetDynamicObjectMaterialText( tmpVariable, 1, "\nACTIVE", 130, "ARIAL", 100, 1, -65536, -16777216, 1 ); - tmpVariable = CreateDynamicObject( 19786, 211.244003, 1822.728027, 1460.186035, 7.900000, 0.000000, 90.000000, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 19786, 211.244003, 1822.728027, 1860.186035, 7.900000, 0.000000, 90.000000, -1, -1, -1 ); SetDynamicObjectMaterialText( tmpVariable, 0, "ORBITAL CANNON", 130, "ARIAL", 50, 1, 0, 0, 1 ); SetDynamicObjectMaterialText( tmpVariable, 1, "ORBITAL CANNON", 130, "ARIAL", 50, 1, -1, 0, 1 ); - tmpVariable = CreateDynamicObject( 19786, 212.235000, 1818.493041, 1459.784057, 7.900000, 0.000000, 117.599998, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 19786, 212.235000, 1818.493041, 1859.784057, 7.900000, 0.000000, 117.599998, -1, -1, -1 ); SetDynamicObjectMaterialText( tmpVariable, 1, "\nACTIVE", 130, "arial", 110, 1, -65536, -16777216, 1 ); SetDynamicObjectMaterialText( tmpVariable, 0, "\nACTIVE", 130, "arial", 110, 1, -16777216, -16777216, 1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19786, 212.212005, 1826.942993, 1459.744018, 7.900000, 0.000000, 62.299999, -1, -1, -1 ), 0, 16658, "a51", "wallgreyred128", 0 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 19786, 212.212005, 1826.942993, 1459.744018, 7.900000, 0.000000, 62.299999, -1, -1, -1 ), 1, "\nACTIVE", 130, "arial", 110, 1, -65536, -16777216, 1 ); - tmpVariable = CreateDynamicObject( 19786, 212.285003, 1818.517944, 1460.119018, 7.900000, 0.000000, 117.599998, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19786, 212.212005, 1826.942993, 1859.744018, 7.900000, 0.000000, 62.299999, -1, -1, -1 ), 0, 1676, "wshxrefpump", "black64", 0 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19786, 212.212005, 1826.942993, 1859.744018, 7.900000, 0.000000, 62.299999, -1, -1, -1 ), 1, "\nACTIVE", 130, "arial", 110, 1, -65536, -16777216, 1 ); + tmpVariable = CreateDynamicObject( 19786, 212.285003, 1818.517944, 1860.119018, 7.900000, 0.000000, 117.599998, -1, -1, -1 ); SetDynamicObjectMaterialText( tmpVariable, 1, "ORBITAL CANNON", 130, "Arial", 50, 1, -1, 0, 1 ); SetDynamicObjectMaterialText( tmpVariable, 0, "ORBITAL CANNON", 130, "Arial", 50, 1, 0, 0, 1 ); - tmpVariable = CreateDynamicObject( 19786, 212.263000, 1826.916992, 1460.088989, 7.900000, 0.000000, 62.299999, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 19786, 212.263000, 1826.916992, 1860.088989, 7.900000, 0.000000, 62.299999, -1, -1, -1 ); SetDynamicObjectMaterialText( tmpVariable, 1, "ORBITAL CANNON", 130, "Arial", 50, 1, -1, 0, 1 ); SetDynamicObjectMaterialText( tmpVariable, 0, "ORBITAL CANNON", 130, "Arial", 50, 1, 0, 0, 1 ); - CreateDynamicObject( 16782, 210.367004, 1822.741943, 1457.602050, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 16662, 211.934005, 1823.194946, 1456.639038, 0.000000, 0.000000, 63.000000, -1, -1, -1 ); - CreateDynamicObject( 3526, 222.003005, 1828.145019, 1455.504028, 0.000000, 0.000000, 68.900001, -1, -1, -1 ); - CreateDynamicObject( 3526, 224.410995, 1826.500000, 1455.504028, 0.000000, 0.000000, 41.799999, -1, -1, -1 ); - CreateDynamicObject( 3526, 221.975997, 1817.296997, 1455.504028, 0.000000, 0.000000, -69.500000, -1, -1, -1 ); - CreateDynamicObject( 3526, 224.350006, 1818.922973, 1455.504028, 0.000000, 0.000000, -41.700000, -1, -1, -1 ); - CreateDynamicObject( 964, 253.541000, 1797.566040, 1456.404052, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 964, 252.100997, 1797.566040, 1456.404052, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 964, 253.220993, 1797.251953, 1457.343994, 0.000000, 0.000000, -167.699996, -1, -1, -1 ); - CreateDynamicObject( 355, 254.179992, 1799.074951, 1456.722045, 0.000000, -90.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 355, 254.179992, 1798.395019, 1456.722045, 0.000000, -90.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 355, 254.179992, 1798.734985, 1456.722045, 0.000000, -90.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 2358, 252.067993, 1797.734008, 1457.472045, 0.000000, 0.000000, -130.000000, -1, -1, -1 ); - CreateDynamicObject( 2358, 253.134002, 1797.234985, 1458.391967, 0.000000, 0.000000, 175.800003, -1, -1, -1 ); - CreateDynamicObject( 2359, 251.667007, 1796.734008, 1457.501953, 0.000000, 0.000000, 14.500000, -1, -1, -1 ); - CreateDynamicObject( 923, 252.889007, 1805.036010, 1457.281982, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 923, 250.542999, 1804.788940, 1457.281982, 0.000000, 0.000000, 11.699999, -1, -1, -1 ); - CreateDynamicObject( 18637, 251.001998, 1796.952026, 1456.943969, 80.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 18637, 250.341995, 1796.952026, 1456.943969, 80.000000, 0.000000, 180.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 2063, 241.001007, 1799.272949, 1457.303955, 0.000000, 0.000000, 134.600006, -1, -1, -1 ), 0, 2063, "none", "none", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 2063, 244.800003, 1797.186035, 1457.303955, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 2063, "none", "none", 0 ); - CreateDynamicObject( 1271, 246.636001, 1797.443969, 1456.803955, 0.000000, 0.000000, 19.600000, -1, -1, -1 ); - CreateDynamicObject( 1271, 242.404006, 1798.142944, 1456.803955, 0.000000, 0.000000, -74.000000, -1, -1, -1 ); - CreateDynamicObject( 1271, 243.054000, 1797.572021, 1456.803955, 0.000000, 0.000000, -39.700000, -1, -1, -1 ); - CreateDynamicObject( 1271, 242.751998, 1797.739013, 1457.463989, 0.000000, 0.000000, 154.000000, -1, -1, -1 ); - CreateDynamicObject( 19602, 240.326995, 1799.930053, 1457.303955, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19602, 240.619995, 1799.656982, 1457.303955, 0.000000, 0.000000, 47.200000, -1, -1, -1 ); - CreateDynamicObject( 19602, 240.996994, 1799.318969, 1457.303955, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2040, 241.138000, 1799.099975, 1458.183959, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); - CreateDynamicObject( 2040, 241.533996, 1798.703979, 1458.183959, 0.000000, 0.000000, 21.200000, -1, -1, -1 ); - CreateDynamicObject( 2036, 244.300003, 1797.150024, 1457.254028, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2036, 245.289001, 1797.150024, 1457.693969, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 2035, 244.819000, 1797.150024, 1456.784057, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 2035, 245.429000, 1797.150024, 1458.104003, 0.000000, 0.000000, 11.600000, -1, -1, -1 ); - CreateDynamicObject( 19515, 243.938995, 1797.230957, 1458.313964, 0.000000, -90.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 19515, 244.578994, 1797.230957, 1458.313964, 0.000000, -90.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 359, 241.255996, 1798.937011, 1457.703979, 90.000000, 0.000000, 135.000000, -1, -1, -1 ); - CreateDynamicObject( 359, 239.716995, 1800.338989, 1457.154052, -8.399999, -88.400001, 138.899993, -1, -1, -1 ); - CreateDynamicObject( 359, 239.397003, 1800.671997, 1457.188964, -8.399999, -88.400001, 138.899993, -1, -1, -1 ); - CreateDynamicObject( 2056, 246.738006, 1797.470947, 1457.154052, -90.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2056, 246.554992, 1797.300048, 1457.173950, -90.000000, 0.000000, 43.099998, -1, -1, -1 ); - CreateDynamicObject( 1654, 241.621994, 1798.675048, 1457.404052, 0.000000, 0.000000, 124.300003, -1, -1, -1 ); - CreateDynamicObject( 1654, 241.350006, 1798.915039, 1457.404052, 0.000000, 0.000000, 175.399993, -1, -1, -1 ); - CreateDynamicObject( 370, 239.292999, 1801.390991, 1456.764038, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - tmpVariable = CreateDynamicObject( 16654, 248.358993, 1782.765991, 1456.819946, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 16782, 210.367004, 1822.741943, 1857.602050, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 16662, 211.934005, 1823.194946, 1856.639038, 0.000000, 0.000000, 63.000000, -1, -1, -1 ); + CreateDynamicObject( 3526, 222.003005, 1828.145019, 1855.504028, 0.000000, 0.000000, 68.900001, -1, -1, -1 ); + CreateDynamicObject( 3526, 224.410995, 1826.500000, 1855.504028, 0.000000, 0.000000, 41.799999, -1, -1, -1 ); + CreateDynamicObject( 3526, 221.975997, 1817.296997, 1855.504028, 0.000000, 0.000000, -69.500000, -1, -1, -1 ); + CreateDynamicObject( 3526, 224.350006, 1818.922973, 1855.504028, 0.000000, 0.000000, -41.700000, -1, -1, -1 ); + CreateDynamicObject( 964, 253.541000, 1797.566040, 1856.404052, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 964, 252.100997, 1797.566040, 1856.404052, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 964, 253.220993, 1797.251953, 1857.343994, 0.000000, 0.000000, -167.699996, -1, -1, -1 ); + CreateDynamicObject( 355, 254.179992, 1799.074951, 1856.722045, 0.000000, -90.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 355, 254.179992, 1798.395019, 1856.722045, 0.000000, -90.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 355, 254.179992, 1798.734985, 1856.722045, 0.000000, -90.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2358, 252.067993, 1797.734008, 1857.472045, 0.000000, 0.000000, -130.000000, -1, -1, -1 ); + CreateDynamicObject( 2358, 253.134002, 1797.234985, 1858.391967, 0.000000, 0.000000, 175.800003, -1, -1, -1 ); + CreateDynamicObject( 2359, 251.667007, 1796.734008, 1857.501953, 0.000000, 0.000000, 14.500000, -1, -1, -1 ); + CreateDynamicObject( 923, 252.889007, 1805.036010, 1857.281982, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 923, 250.542999, 1804.788940, 1857.281982, 0.000000, 0.000000, 11.699999, -1, -1, -1 ); + CreateDynamicObject( 18637, 251.001998, 1796.952026, 1856.943969, 80.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 18637, 250.341995, 1796.952026, 1856.943969, 80.000000, 0.000000, 180.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2063, 241.001007, 1799.272949, 1857.303955, 0.000000, 0.000000, 134.600006, -1, -1, -1 ), 0, 2063, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2063, 244.800003, 1797.186035, 1857.303955, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 2063, "none", "none", 0 ); + CreateDynamicObject( 1271, 246.636001, 1797.443969, 1856.803955, 0.000000, 0.000000, 19.600000, -1, -1, -1 ); + CreateDynamicObject( 1271, 242.404006, 1798.142944, 1856.803955, 0.000000, 0.000000, -74.000000, -1, -1, -1 ); + CreateDynamicObject( 1271, 243.054000, 1797.572021, 1856.803955, 0.000000, 0.000000, -39.700000, -1, -1, -1 ); + CreateDynamicObject( 1271, 242.751998, 1797.739013, 1857.463989, 0.000000, 0.000000, 154.000000, -1, -1, -1 ); + CreateDynamicObject( 19602, 240.326995, 1799.930053, 1857.303955, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19602, 240.619995, 1799.656982, 1857.303955, 0.000000, 0.000000, 47.200000, -1, -1, -1 ); + CreateDynamicObject( 19602, 240.996994, 1799.318969, 1857.303955, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2040, 241.138000, 1799.099975, 1858.183959, 0.000000, 0.000000, 45.000000, -1, -1, -1 ); + CreateDynamicObject( 2040, 241.533996, 1798.703979, 1858.183959, 0.000000, 0.000000, 21.200000, -1, -1, -1 ); + CreateDynamicObject( 2036, 244.300003, 1797.150024, 1857.254028, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2036, 245.289001, 1797.150024, 1857.693969, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 2035, 244.819000, 1797.150024, 1856.784057, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 2035, 245.429000, 1797.150024, 1858.104003, 0.000000, 0.000000, 11.600000, -1, -1, -1 ); + CreateDynamicObject( 19515, 243.938995, 1797.230957, 1858.313964, 0.000000, -90.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19515, 244.578994, 1797.230957, 1858.313964, 0.000000, -90.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 359, 241.255996, 1798.937011, 1857.703979, 90.000000, 0.000000, 135.000000, -1, -1, -1 ); + CreateDynamicObject( 359, 239.716995, 1800.338989, 1857.154052, -8.399999, -88.400001, 138.899993, -1, -1, -1 ); + CreateDynamicObject( 359, 239.397003, 1800.671997, 1857.188964, -8.399999, -88.400001, 138.899993, -1, -1, -1 ); + CreateDynamicObject( 2056, 246.738006, 1797.470947, 1857.154052, -90.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2056, 246.554992, 1797.300048, 1857.173950, -90.000000, 0.000000, 43.099998, -1, -1, -1 ); + CreateDynamicObject( 1654, 241.621994, 1798.675048, 1857.404052, 0.000000, 0.000000, 124.300003, -1, -1, -1 ); + CreateDynamicObject( 1654, 241.350006, 1798.915039, 1857.404052, 0.000000, 0.000000, 175.399993, -1, -1, -1 ); + CreateDynamicObject( 370, 239.292999, 1801.390991, 1856.764038, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 16654, 248.358993, 1782.765991, 1856.819946, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); SetDynamicObjectMaterial( tmpVariable, 0, 18038, "vegas_munation", "mp_gun_floorred", 0 ); SetDynamicObjectMaterial( tmpVariable, 1, 18038, "vegas_munation", "mp_gun_floorred", 0 ); - CreateDynamicObject( 16646, 245.960998, 1865.586059, 1460.828002, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - tmpVariable = CreateDynamicObject( 16642, 247.242004, 1823.897949, 1458.843994, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 16646, 245.960998, 1865.586059, 1860.828002, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 16642, 247.242004, 1823.897949, 1858.843994, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); SetDynamicObjectMaterial( tmpVariable, 3, 6038, "lawwhitebuilds", "brwall_128", 0 ); SetDynamicObjectMaterial( tmpVariable, 4, 6038, "lawwhitebuilds", "brwall_128", 0 ); SetDynamicObjectMaterial( tmpVariable, 5, 6038, "lawwhitebuilds", "brwall_128", 0 ); @@ -446,95 +522,140 @@ static stock initializeFacilityObjects( ) SetDynamicObjectMaterial( tmpVariable, 11, 6038, "lawwhitebuilds", "brwall_128", 0 ); SetDynamicObjectMaterial( tmpVariable, 7, 17538, "losflor4_lae2", "tarmacplain_bank", 0 ); SetDynamicObjectMaterial( tmpVariable, 12, 17538, "losflor4_lae2", "tarmacplain_bank", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3384, 245.067001, 1827.708984, 1455.163940, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3384, "none", "none", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3384, 246.557998, 1827.848999, 1455.163940, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 3384, "none", "none", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3384, 245.067001, 1816.129028, 1455.163940, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3384, "none", "none", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3384, 246.548004, 1816.269042, 1455.163940, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 3384, "none", "none", 0 ); - CreateDynamicObject( 14532, 244.511001, 1818.031982, 1457.404052, 0.000000, 0.000000, -64.099998, -1, -1, -1 ); - CreateDynamicObject( 14532, 244.520996, 1829.708984, 1457.413940, 0.000000, 0.000000, -64.099998, -1, -1, -1 ); - CreateDynamicObject( 3388, 244.970993, 1825.399047, 1453.524047, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 3388, 245.981002, 1825.399047, 1453.524047, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 3388, 244.970993, 1818.328979, 1453.524047, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 3388, 245.960998, 1818.328979, 1453.524047, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - tmpVariable = CreateDynamicObject( 16658, 283.406005, 1818.578002, 1455.991943, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3384, 245.067001, 1827.708984, 1855.163940, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3384, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3384, 246.557998, 1827.848999, 1855.163940, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 3384, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3384, 245.067001, 1816.129028, 1855.163940, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 3384, "none", "none", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3384, 246.548004, 1816.269042, 1855.163940, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 3384, "none", "none", 0 ); + CreateDynamicObject( 14532, 244.511001, 1818.031982, 1857.404052, 0.000000, 0.000000, -64.099998, -1, -1, -1 ); + CreateDynamicObject( 14532, 244.520996, 1829.708984, 1857.413940, 0.000000, 0.000000, -64.099998, -1, -1, -1 ); + CreateDynamicObject( 3388, 244.970993, 1825.399047, 1853.524047, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 3388, 245.981002, 1825.399047, 1853.524047, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 3388, 244.970993, 1818.328979, 1853.524047, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 3388, 245.960998, 1818.328979, 1853.524047, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 16658, 283.406005, 1818.578002, 1855.991943, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); SetDynamicObjectMaterial( tmpVariable, 6, 16644, "a51_detailstuff", "concretegroundl1_256", -47 ); SetDynamicObjectMaterial( tmpVariable, 7, 16644, "a51_detailstuff", "concretegroundl1_256", -47 ); SetDynamicObjectMaterial( tmpVariable, 8, 16644, "a51_detailstuff", "concretegroundl1_256", -47 ); SetDynamicObjectMaterial( tmpVariable, 11, 16644, "a51_detailstuff", "concretegroundl1_256", -47 ); - CreateDynamicObject( 16661, 287.554992, 1820.008056, 1455.218994, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 16659, 287.601989, 1819.647949, 1456.977050, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 11714, 277.506011, 1821.741943, 1458.069946, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 262.069000, 1817.915039, 1451.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 272.069000, 1817.915039, 1451.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 282.069000, 1817.915039, 1451.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 292.058990, 1817.915039, 1451.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 302.049011, 1817.915039, 1451.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, 262.069000, 1827.906005, 1451.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); - CreateDynamicObject( 16641, 272.330993, 1805.993041, 1455.167968, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); - CreateDynamicObject( 3397, 239.138000, 1829.255004, 1453.711059, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 3397, 239.138000, 1816.213012, 1453.711059, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 1989, 239.065994, 1822.729980, 1453.711059, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1989, 239.065994, 1823.711059, 1453.711059, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1989, 239.065994, 1821.739990, 1453.711059, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 1714, 240.231002, 1816.511962, 1453.691040, 0.000000, 0.000000, -60.000000, -1, -1, -1 ); - CreateDynamicObject( 1714, 240.320999, 1828.269042, 1453.691040, 0.000000, 0.000000, -110.199996, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19328, 238.559005, 1825.869018, 1455.470947, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 16644, "a51_detailstuff", "a51_map", 0 ); - CreateDynamicObject( 2615, 238.597000, 1828.056030, 1455.931030, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, 247.826004, 1811.739013, 1463.703979, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 16656, "a51_labs", "ws_trainstationwin1", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, 247.826004, 1821.369018, 1463.703979, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 16656, "a51_labs", "ws_trainstationwin1", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, 247.826004, 1831.000000, 1463.703979, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 16656, "a51_labs", "ws_trainstationwin1", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, 247.826004, 1833.501953, 1463.702026, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 16656, "a51_labs", "ws_trainstationwin1", 0 ); - CreateDynamicObject( 11714, 297.735992, 1821.741943, 1458.069946, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 11729, 249.175994, 1857.734008, 1463.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); - SetDynamicObjectMaterial( CreateDynamicObject( 11729, 248.505996, 1857.734008, 1463.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); - SetDynamicObjectMaterial( CreateDynamicObject( 11729, 247.845993, 1857.734008, 1463.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); - SetDynamicObjectMaterial( CreateDynamicObject( 11730, 247.186004, 1857.734008, 1463.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); - SetDynamicObjectMaterial( CreateDynamicObject( 11729, 246.535995, 1857.734008, 1463.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); - SetDynamicObjectMaterial( CreateDynamicObject( 11730, 245.886001, 1857.734008, 1463.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); - SetDynamicObjectMaterial( CreateDynamicObject( 2206, 246.013000, 1860.954956, 1463.024047, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", 0 ); - CreateDynamicObject( 1714, 246.960998, 1859.885009, 1463.073974, 0.000000, 0.000000, -151.199996, -1, -1, -1 ); - CreateDynamicObject( 356, 246.848999, 1860.711059, 1464.024047, -89.900001, 2.500000, -1.399999, -1, -1, -1 ); - CreateDynamicObject( 2043, 246.582000, 1861.208007, 1464.063964, 0.000000, 0.000000, -59.299999, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 2167, 242.563003, 1862.652954, 1463.104003, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 2167, 241.652999, 1862.652954, 1463.104003, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19787, 241.391006, 1857.465942, 1464.854003, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 16150, "ufo_bar", "black32", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19787, 243.671005, 1857.465942, 1464.854003, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 16150, "ufo_bar", "black32", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 11714, 238.455993, 1872.332031, 1459.208984, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 19799, "all_vault", "liftdoorsac256", -16 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 7909, 263.942993, 1861.439941, 1462.397949, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "! Work In Progress !", 120, "impact", 48, 0, -16711936, 0, 1 ); - tmpVariable = CreateDynamicObject( 19926, 248.494995, 1798.292968, 1456.375976, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 16661, 287.554992, 1820.008056, 1855.218994, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 16659, 287.601989, 1819.647949, 1856.977050, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11714, 277.506011, 1821.741943, 1858.069946, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 262.069000, 1817.915039, 1851.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 272.069000, 1817.915039, 1851.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 282.069000, 1817.915039, 1851.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 292.058990, 1817.915039, 1851.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 302.049011, 1817.915039, 1851.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 18765, 262.069000, 1827.906005, 1851.145019, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16640, "a51", "ws_castironwalk", -16 ); + CreateDynamicObject( 16641, 272.330993, 1805.993041, 1855.167968, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 3397, 239.138000, 1829.255004, 1853.711059, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 3397, 239.138000, 1816.213012, 1853.711059, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); + CreateDynamicObject( 1989, 239.065994, 1822.729980, 1853.711059, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1989, 239.065994, 1823.711059, 1853.711059, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1989, 239.065994, 1821.739990, 1853.711059, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1714, 240.231002, 1816.511962, 1853.691040, 0.000000, 0.000000, -60.000000, -1, -1, -1 ); + CreateDynamicObject( 1714, 240.320999, 1828.269042, 1853.691040, 0.000000, 0.000000, -110.199996, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19328, 238.559005, 1825.869018, 1855.470947, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 16644, "a51_detailstuff", "a51_map", 0 ); + CreateDynamicObject( 2615, 238.597000, 1828.056030, 1855.931030, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 247.826004, 1811.739013, 1863.703979, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 16656, "a51_labs", "ws_trainstationwin1", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 247.826004, 1821.369018, 1863.703979, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 16656, "a51_labs", "ws_trainstationwin1", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 247.826004, 1831.000000, 1863.703979, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 16656, "a51_labs", "ws_trainstationwin1", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 247.826004, 1833.501953, 1863.702026, 0.000000, 90.000000, 0.000000, -1, -1, -1 ), 0, 16656, "a51_labs", "ws_trainstationwin1", 0 ); + CreateDynamicObject( 11714, 297.735992, 1821.741943, 1858.069946, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11729, 249.175994, 1857.734008, 1863.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11729, 248.505996, 1857.734008, 1863.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11729, 247.845993, 1857.734008, 1863.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11730, 247.186004, 1857.734008, 1863.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11729, 246.535995, 1857.734008, 1863.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11730, 245.886001, 1857.734008, 1863.093994, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 11730, "none", "none", -251658241 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2206, 246.013000, 1860.954956, 1863.024047, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", 0 ); + CreateDynamicObject( 1714, 246.960998, 1859.885009, 1863.073974, 0.000000, 0.000000, -151.199996, -1, -1, -1 ); + CreateDynamicObject( 356, 246.848999, 1860.711059, 1864.024047, -89.900001, 2.500000, -1.399999, -1, -1, -1 ); + CreateDynamicObject( 2043, 246.582000, 1861.208007, 1864.063964, 0.000000, 0.000000, -59.299999, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2167, 242.563003, 1862.652954, 1863.104003, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 2167, 241.652999, 1862.652954, 1863.104003, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 1675, "wshxrefhse", "greygreensubuild_128", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19787, 241.391006, 1857.465942, 1864.854003, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 16150, "ufo_bar", "black32", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19787, 243.671005, 1857.465942, 1864.854003, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, 16150, "ufo_bar", "black32", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 11714, 238.455993, 1872.332031, 1859.208984, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 19799, "all_vault", "liftdoorsac256", -16 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 7909, 263.942993, 1861.439941, 1862.397949, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "The Lost And Damned", 120, "impact", 48, 0, 0xFF964B00, 0, 1 ); + tmpVariable = CreateDynamicObject( 19926, 248.494995, 1798.292968, 1856.375976, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); SetDynamicObjectMaterial( tmpVariable, 0, 4552, "ammu_lan2", "newall4-4", 0 ); SetDynamicObjectMaterial( tmpVariable, 1, 4552, "ammu_lan2", "newall4-4", 0 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 2662, 247.796997, 1806.805053, 1459.504028, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Ammunation", 120, "IMPACT", 84, 0, -13421773, 0, 1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 19327, 233.839004, 1821.076049, 1458.443969, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, "Authorized personnel\nONLY", 120, "IMPACT", 25, 0, -4671304, 0, 1 ); - tmpVariable = CreateDynamicObject( 19173, 245.843002, 1827.785034, 1457.543945, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 2662, 247.796997, 1806.805053, 1859.504028, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Ammunation", 120, "IMPACT", 84, 0, -13421773, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 19327, 233.839004, 1821.076049, 1858.443969, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, "Authorized personnel\nONLY", 120, "IMPACT", 25, 0, -4671304, 0, 1 ); + tmpVariable = CreateDynamicObject( 19173, 245.843002, 1827.785034, 1857.543945, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); SetDynamicObjectMaterialText( tmpVariable, 0, "SERVERS", 120, "IMPACT", 84, 0, -13421773, 0, 1 ); SetDynamicObjectMaterialText( tmpVariable, 1, "SERVERS", 120, "IMPACT", 84, 1, 0, 0, 1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, 295.842010, 1821.823974, 1457.980957, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 16644, "a51_detailstuff", "concretegroundl1_256", -47 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19377, 279.122009, 1821.823974, 1457.980957, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 16644, "a51_detailstuff", "concretegroundl1_256", -47 ); - CreateDynamicObject( 19618, 238.981002, 1819.521972, 1454.151000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); - CreateDynamicObject( 3787, 252.636001, 1843.160034, 1458.297973, 0.000000, 0.000000, 6.000000, -1, -1, -1 ); - CreateDynamicObject( 1685, 250.477996, 1856.599975, 1458.527954, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 964, 249.166000, 1858.026977, 1457.767944, 0.000000, 0.000000, -140.899993, -1, -1, -1 ); - CreateDynamicObject( 964, 248.787994, 1856.234985, 1457.767944, 0.000000, 0.000000, -87.400001, -1, -1, -1 ); - CreateDynamicObject( 1348, 251.755996, 1858.241943, 1458.517944, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19741, 249.591003, 1868.484985, 1457.511962, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16375, "des_boneyard", "roucghstone", -256 ); - CreateDynamicObject( 922, 242.257003, 1805.038940, 1457.333984, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 2662, 248.867004, 1842.296997, 1460.644042, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Server Room", 120, "IMPACT", 84, 0, -13421773, 0, 1 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 2662, 234.757003, 1822.738037, 1459.463989, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, "Orbital Cannon", 120, "IMPACT", 84, 0, -13421773, 0, 1 ); - tmpVariable = CreateDynamicObject( 19173, 245.843002, 1816.214965, 1457.543945, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 295.842010, 1821.823974, 1857.980957, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 16644, "a51_detailstuff", "concretegroundl1_256", -47 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19377, 279.122009, 1821.823974, 1857.980957, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 16644, "a51_detailstuff", "concretegroundl1_256", -47 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19741, 249.591003, 1868.484985, 1857.511962, 0.000000, 0.000000, 0.000000, -1, -1, -1 ), 0, 16375, "des_boneyard", "roucghstone", -256 ); + CreateDynamicObject( 922, 242.257003, 1805.038940, 1857.333984, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 2662, 248.867004, 1842.296997, 1860.644042, 0.000000, 0.000000, 180.000000, -1, -1, -1 ), 0, "Server Room", 120, "IMPACT", 84, 0, -13421773, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 2662, 234.757003, 1822.738037, 1859.463989, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, "Orbital Cannon", 120, "IMPACT", 84, 0, -13421773, 0, 1 ); + tmpVariable = CreateDynamicObject( 19173, 245.843002, 1816.214965, 1857.543945, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); SetDynamicObjectMaterialText( tmpVariable, 0, "SERVERS", 120, "IMPACT", 84, 0, -13421773, 0, 1 ); SetDynamicObjectMaterialText( tmpVariable, 1, "SERVERS", 120, "IMPACT", 84, 1, 0, 0, 1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19875, 227.824996, 1873.713012, 1462.730957, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 16649, "a51", "a51_weedoors", -16 ); - CreateDynamicObject( 16649, 231.477005, 1872.359008, 1461.961059, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - CreateDynamicObject( 16649, 231.477005, 1872.359008, 1461.961059, 0.000000, 0.000000, 180.000000, -1, -1, -1 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19875, 227.824996, 1871.010986, 1462.730957, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, 16649, "a51", "a51_weedoors", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19875, 227.815002, 1870.931030, 1462.730957, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, 16649, "a51", "a51_weedoors", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 19875, 227.815002, 1873.796020, 1462.730957, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 16649, "a51", "a51_weedoors", -16 ); - SetDynamicObjectMaterial( CreateDynamicObject( 3061, 247.550003, 1841.797973, 1468.943969, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -16 ); - CreateDynamicObject( 2960, 239.701995, 1844.417968, 1460.024047, 0.000000, 90.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2960, 239.701995, 1849.417968, 1460.024047, 0.000000, 90.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2960, 242.901992, 1849.417968, 1460.024047, 0.000000, 90.000000, 0.000000, -1, -1, -1 ); - CreateDynamicObject( 2960, 242.901992, 1844.417968, 1460.024047, 0.000000, 90.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19875, 238.533996, 1871.010986, 1860.458984, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, 16649, "a51", "a51_weedoors", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19875, 238.535003, 1873.715942, 1860.458984, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 16649, "a51", "a51_weedoors", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 3061, 247.550003, 1841.797973, 1868.943969, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 5722, "sunrise01_lawn", "plainglass", -16 ); + CreateDynamicObject( 18981, 252.274002, 1873.482055, 1857.004028, 0.000000, 90.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11400, 243.199996, 1850.332031, 1863.477050, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19917, 242.819000, 1850.366943, 1861.944946, -63.799999, 0.000000, -90.500000, -1, -1, -1 ); + CreateDynamicObject( 19899, 241.804000, 1842.675048, 1857.727050, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 19917, 239.598007, 1843.348022, 1857.727050, 0.000000, 0.000000, -73.400001, -1, -1, -1 ); + CreateDynamicObject( 3565, 249.134002, 1875.989990, 1859.078002, 0.000000, 0.000000, -12.500000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19817, 244.731994, 1855.046997, 1856.496948, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 12923, "sw_block05", "dustyconcrete", 0 ); + CreateDynamicObject( 19929, 238.908996, 1845.779052, 1857.732055, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2475, 238.576004, 1845.092041, 1857.786987, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2475, 238.576004, 1845.973022, 1857.786987, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 19903, 238.886993, 1852.663940, 1857.744018, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19903, 238.886993, 1857.545043, 1857.744018, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19817, 244.731994, 1859.936035, 1856.505004, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 12923, "sw_block05", "dustyconcrete", 0 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19817, 244.731994, 1850.213012, 1856.496948, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 12923, "sw_block05", "dustyconcrete", 0 ); + CreateDynamicObject( 1002, 238.729995, 1845.829956, 1860.006958, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1014, 238.535003, 1845.823974, 1859.274047, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1650, 239.013000, 1846.689941, 1858.963989, 0.000000, 0.000000, 25.200000, -1, -1, -1 ); + CreateDynamicObject( 19921, 239.309997, 1845.805053, 1858.758056, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 19621, 239.005004, 1844.909057, 1858.761962, 0.000000, 0.000000, -147.699996, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19355, 245.260803, 1842.088012, 1860.215576, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, 10249, "ottos2_sfw", "ottos_pics_sfe", 0 ); + CreateDynamicObject( 19815, 238.535003, 1855.029052, 1860.095825, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 19815, 238.535003, 1855.029052, 1859.104858, 0.000000, 180.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1999, 244.522003, 1843.942016, 1857.735961, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2059, 244.578002, 1844.083007, 1858.573974, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1984, 258.829010, 1851.767944, 1857.656005, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1848, 262.945007, 1855.573974, 1857.625976, 0.000000, 0.000000, 270.000000, -1, -1, -1 ); + CreateDynamicObject( 341, 256.651123, 1855.343017, 1858.655761, 0.000000, 28.199998, -109.299942, -1, -1, -1 ); + CreateDynamicObject( 1842, 259.781005, 1855.352050, 1858.107055, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1995, 256.463989, 1851.837036, 1857.586059, 0.000000, 0.000000, 270.000000, -1, -1, -1 ); + CreateDynamicObject( 1995, 256.493988, 1852.828979, 1857.586059, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1995, 256.463989, 1854.759033, 1857.586059, 0.000000, 0.000000, 270.000000, -1, -1, -1 ); + CreateDynamicObject( 1995, 256.493988, 1855.750976, 1857.586059, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 944, 251.302017, 1856.556518, 1858.638427, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 341, 256.467956, 1855.982666, 1858.664794, 0.000000, 28.199998, -107.400222, -1, -1, -1 ); + CreateDynamicObject( 918, 256.495544, 1851.684448, 1858.817626, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1650, 256.497772, 1852.841674, 1858.757568, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1650, 256.614929, 1853.054931, 1858.757568, 0.000000, 0.000000, -24.800024, -1, -1, -1 ); + CreateDynamicObject( 918, 256.495544, 1852.335083, 1858.817626, 0.000000, 0.000000, -66.499977, -1, -1, -1 ); + CreateDynamicObject( 19329, 259.889465, 1849.657836, 1859.798583, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2164, 261.189849, 1872.801391, 1857.736572, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2162, 263.488403, 1871.236206, 1857.736572, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2161, 263.488403, 1869.464477, 1857.736572, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2162, 263.488403, 1868.134765, 1857.736572, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 2164, 259.419281, 1872.801391, 1857.736572, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2167, 258.498840, 1872.801391, 1857.736572, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 2165, 260.386077, 1868.690551, 1857.736572, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 2310, 259.283569, 1868.564941, 1858.307128, 0.000000, 0.000000, -137.900177, -1, -1, -1 ); + CreateDynamicObject( 2472, 263.625640, 1869.469970, 1859.107910, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 1685, 257.151245, 1863.329711, 1858.477294, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 3800, 260.969757, 1862.297241, 1857.726562, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 3798, 262.515991, 1862.757446, 1857.706542, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1348, 257.097320, 1864.635742, 1858.427246, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1891, 259.709838, 1859.312500, 1857.666503, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1885, 256.321441, 1859.682617, 1857.696533, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1885, 256.321441, 1858.931884, 1857.696533, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 2662, 238.587280, 1849.567504, 1860.304809, 0.000000, 0.000000, 90.000000, -1, -1, -1 ), 0, "Gang Vehicles", 120, "Impact", 84, 0, -13421773, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 2662, 263.417633, 1869.281738, 1860.304809, 0.000000, 0.000000, -90.000000, -1, -1, -1 ), 0, "Fast Travel", 120, "Impact", 84, 0, -13421773, 0, 1 ); + CreateDynamicObject( 363, 246.722503, 1816.183593, 1855.371826, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 363, 246.722503, 1827.754516, 1855.371826, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); } /* ** SCHEMA ** */ diff --git a/pawno/include/irresistible/main.inc b/pawno/include/irresistible/main.inc index e2c218f..c882415 100644 --- a/pawno/include/irresistible/main.inc +++ b/pawno/include/irresistible/main.inc @@ -45,6 +45,7 @@ #include < irresistible\features\gangs\gangs > #include < irresistible\features\gangs\facilities > #include < irresistible\features\gangs\turfs > +#include < irresistible\features\gangs\cannon > // visage casino #include < irresistible\features\visage\roulette > diff --git a/scriptfiles/updates.txt b/scriptfiles/updates.txt index 2fdc42b..7a5ed7e 100644 --- a/scriptfiles/updates.txt +++ b/scriptfiles/updates.txt @@ -1,8 +1,11 @@ -(+) Adds a 1v1 duel arena behind paintball, where you can wage money against eachother. Thanks Stev. -(+) Adds /discordurl for level 5 admins to update the sfcnr.com/discord redirect. -(+) You now get a Shotgun with 25 ammo when you enter a police car. -(+) You can now join public gangs through /gangs. -(/) Wanted levels over 30 will place you in Alcatraz Prison. -(/) Price of supa save items have been generally increased. -(/) Speed of robberies has been increased. -(/) Bail is doubled if you are in Alcatraz. +(+) Orbital cannon now accessible through gang facilities. Costs $250,000 per missile. +(+) 2.5% fee on player duels... To counter aggressive money transfers. +(+) You can now buy an RPG at an ammunation for $10,000 per rocket. +(+) Adds fast travel, 24/7 and a private ATM within gang facilities. +(+) Orbital cannon now shows player tags. +(+) Adds backpack to toys. +(/) When a player commits a crime, a red blip will slowly fade out at the location of robbery. +(/) Takes at least 120 seconds to take over a facility. +(/) Weapon dealers now sell 5X the ammo of a standard ammunation. Though, 1 RPG only. +(*) Fixes a few anti weapon hack bugs, admins are also now reported with the weapon in question. +(*) Addresses some toy unlocking issues. \ No newline at end of file