From cf301ac2906b77abaa87bafd615006ebb50fe4d8 Mon Sep 17 00:00:00 2001 From: Lorenc Pekaj Date: Sat, 23 Jun 2018 17:54:55 +1000 Subject: [PATCH] auto arrest , auto bc , auto untie , alcatraz revamp , facility weapons --- gamemodes/sf-cnr.pwn | 1105 +++++++++-------- pawno/include/irresistible/cnr/dialog_ids.inc | 1 + .../cnr/static/player_objects.inc | 36 +- .../cnr/static/server_objects.inc | 311 +++-- .../cnr/static/server_vehicles.inc | 27 +- pawno/include/irresistible/cnr/vip.inc | 2 +- .../irresistible/features/ammunation.inc | 116 ++ .../include/irresistible/features/fishing.inc | 21 + .../features/gangs/facilities.inc | 431 ++++++- .../irresistible/features/gangs/gangs.inc | 5 +- .../irresistible/features/gangs/turfs.inc | 8 + pawno/include/irresistible/features/pilot.inc | 213 ++++ .../irresistible/features/visage/boxing.inc | 3 +- pawno/include/irresistible/main.inc | 4 + pawno/include/irresistible/sampac.inc | 48 + scriptfiles/updates.txt | 20 +- server.cfg | 4 +- 17 files changed, 1590 insertions(+), 765 deletions(-) create mode 100644 pawno/include/irresistible/features/ammunation.inc create mode 100644 pawno/include/irresistible/features/fishing.inc create mode 100644 pawno/include/irresistible/features/pilot.inc create mode 100644 pawno/include/irresistible/sampac.inc diff --git a/gamemodes/sf-cnr.pwn b/gamemodes/sf-cnr.pwn index e40d08e..3cd2335 100644 --- a/gamemodes/sf-cnr.pwn +++ b/gamemodes/sf-cnr.pwn @@ -43,7 +43,7 @@ #include < gvar > #include < RouteConnector > #include < merrandom > -#include < sampac > +// #include < sampac > #include < MathParser > #include < md-sort > native WP_Hash ( buffer[ ], len, const str[ ] ); @@ -76,7 +76,7 @@ native gpci ( playerid, serial[ ], len ); /* ** Useful macros ** */ #define DQCMD:%1(%2) forward discord_%1(%2); public discord_%1(%2) #define IsPlayerTazed(%1) (p_Tazed{%1}) -#define IsPlayerDetained(%1) (p_Detained{%1}) +//#define IsPlayerDetained(%1) (p_Detained{%1}) #define IsPlayerCuffed(%1) (p_Cuffed{%1}) #define IsPlayerTied(%1) (p_Tied{%1}) #define IsPlayerKidnapped(%1) (p_Kidnapped{%1}) @@ -225,7 +225,7 @@ static CLASS_ARMY_RANGE; #define CLASS_MEDIC ( 3 ) /* ** Checkpoints ** */ -#define ALL_CHECKPOINTS ( 50 ) +#define ALL_CHECKPOINTS ( 40 ) #define CP_BOMB_SHOP ( 0 ) #define CP_BANK_MENU ( 1 ) @@ -255,7 +255,7 @@ static CLASS_ARMY_RANGE; #define CP_REFILL_AMMO ( 25 ) #define CP_REFILL_AMMO_LS ( 26 ) #define CP_REFILL_AMMO_LV ( 27 ) -#define CP_DROP_OFF_COP ( 28 ) +/*#define CP_DROP_OFF_COP ( 28 ) #define CP_DROP_OFF_FC ( 29 ) #define CP_DROP_OFF_DILLIMORE ( 30 ) #define CP_DROP_OFF_DIABLO ( 31 ) @@ -265,18 +265,19 @@ static CLASS_ARMY_RANGE; #define CP_DROP_OFF_FBI_LV ( 35 ) #define CP_DROP_OFF_COP_LV ( 36 ) #define CP_DROP_OFF_FBI ( 37 ) -#define CP_DROP_OFF_HELI ( 38 ) -#define CP_BIZ_TERMINAL_COKE ( 39 ) -#define CP_BIZ_TERMINAL_METH ( 40 ) -#define CP_BIZ_TERMINAL_WEED ( 41 ) -#define CP_BIZ_TERMINAL_WEAP ( 42 ) -#define CP_REWARDS_4DRAG ( 43 ) -#define CP_REWARDS_CALIG ( 44 ) -#define CP_REWARDS_VISAGE ( 45 ) -#define CP_AIRPORT_SF ( 46 ) -#define CP_AIRPORT_LS ( 47 ) -#define CP_AIRPORT_LV ( 48 ) -#define CP_CASINO_BAR ( 49 ) +#define CP_DROP_OFF_HELI ( 38 )*/ +#define CP_BIZ_TERMINAL_COKE ( 28 ) +#define CP_BIZ_TERMINAL_METH ( 29 ) +#define CP_BIZ_TERMINAL_WEED ( 30 ) +#define CP_BIZ_TERMINAL_WEAP ( 31 ) +#define CP_REWARDS_4DRAG ( 32 ) +#define CP_REWARDS_CALIG ( 33 ) +#define CP_REWARDS_VISAGE ( 34 ) +#define CP_AIRPORT_SF ( 35 ) +#define CP_AIRPORT_LS ( 36 ) +#define CP_AIRPORT_LV ( 37 ) +#define CP_CASINO_BAR ( 38 ) +#define CP_ALCATRAZ_EXPORT ( 39 ) /* ** Discord ** */ //#include @@ -1282,7 +1283,7 @@ new ; /* ** Mining ** */ -#define MAX_ROCKS ( 61 ) +#define MAX_ROCKS ( 72 ) #define MAX_ORE_STORAGE 14 #define ORE_BAUXITE 0 @@ -1440,7 +1441,7 @@ enum E_ATTACHED_DATA Float: E_OX, Float: E_OY, Float: E_OZ, Float: E_RX, Float: E_RY, Float: E_RZ, Float: E_SX, Float: E_SY, Float: E_SZ, - E_SQL_ID + E_COLOR, E_SQL_ID }; enum E_TOY_DATA @@ -1516,14 +1517,13 @@ new // MASKS { CATEGORY_MASKS, 96, "Gucci Balaclava", 19801, 10000, 2 }, - // { CATEGORY_MASKS, 45, "Louis Mask Bright", 18916, 6000, 2 }, - // { CATEGORY_MASKS, 46, "Louis Mask Dark ", 18920, 5200, 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, 48, "Gimp Mask", 19163, 300, 2 }, { CATEGORY_MASKS, 49, "Hockey Mask White", 19036, 250, 2 }, { CATEGORY_MASKS, 50, "Hockey Mask Red", 19037, 250, 2 }, - // { CATEGORY_MASKS, 51, "Hockey Mask Green", 19038, 250, 2 }, - // { CATEGORY_MASKS, 52, "Camo Mask", 18914, 220, 2 }, + { CATEGORY_MASKS, 51, "Blue Bandana", 18897, 100, 2 }, { CATEGORY_MASKS, 53, "Grove Mask", 18913, 200, 2 }, { CATEGORY_MASKS, 54, "Zorro Mask", 18974, 100, 2 }, @@ -1618,13 +1618,14 @@ new { CATEGORY_VIP, -1, "S.W.A.T Armour", 19142, 0, 1 }, { CATEGORY_VIP, -1, "Construction Vest", 19904, 0, 1 }, { CATEGORY_VIP, -1, "Sledge Hammer", 19631, 0, 5 }, + { CATEGORY_VIP, -1, "Laser Sight", 18643, 0, 5 }, { CATEGORY_VIP, -1, "Better Santa Hat", 19065, 0, 2 } }, p_AttachedObjectsData [ MAX_PLAYERS ] [ 3 ] [ E_ATTACHED_DATA ], p_ToySlotSelected [ MAX_PLAYERS char ], p_ToyCategorySelected [ MAX_PLAYERS char ], p_ToyIDSelected [ MAX_PLAYERS char ], - bool: p_ToyUnlocked [ MAX_PLAYERS ] [ MAX_TOYS char ] + bool: p_ToyUnlocked [ MAX_PLAYERS ] [ 200 char ] // change back to MAX_TOYS ; /* ** C4 Data ** */ @@ -1871,69 +1872,6 @@ new } ; -/* ** Dynamic Ammunation ** */ -#define MENU_ASSAULT ( 0 ) -#define MENU_MELEE ( 1 ) -#define MENU_SUB_SMGS ( 2 ) -#define MENU_PISTOLS ( 3 ) -#define MENU_RIFLES ( 4 ) -#define MENU_SHOTGUNS ( 5 ) -#define MENU_THROWN ( 6 ) -#define MENU_ARMOR ( 7 ) - -enum E_WEAPONS_DATA -{ - E_MENU, E_NAME[ 32 ], E_WEPID, - E_AMMO, E_PRICE -}; - -new - g_AmmunitionCategory[ ] [ ] = - { - { "Assault" }, { "Melee" }, { "Submachine Guns" }, { "Pistols" }, - { "Rifles" }, { "Shotguns" }, { "Thrown" }, { "Armor" } - }, - g_AmmunationWeapons[ ][ E_WEAPONS_DATA ] = - { - { MENU_MELEE, "Flowers", 14, 1, 75 }, - { MENU_MELEE, "Shovel", 6, 1, 100 }, - { MENU_MELEE, "Pool Cue", 7, 1, 125 }, - { MENU_MELEE, "Golf Club", 2, 1, 125 }, - { MENU_MELEE, "Baseball Bat", 5, 1, 180 }, - { MENU_MELEE, "Brass Knuckles", 1, 1, 200 }, - { MENU_MELEE, "Parachute", 46, 1, 200 }, - { MENU_MELEE, "Camera", 43, 1, 250 }, - { MENU_MELEE, "Knife", 4, 1, 300 }, - { MENU_MELEE, "Katana", 8, 1, 600 }, - { MENU_MELEE, "Chainsaw", 9, 1, 750 }, - - { MENU_PISTOLS, "9mm Pistol", 22, 180, 200 }, - { MENU_PISTOLS, "Silenced 9mm", 23, 180, 400 }, - { MENU_PISTOLS, "Desert Eagle", 24, 100, 1250 }, - - { MENU_SHOTGUNS, "Shotgun", 25, 75, 600 }, - { MENU_SHOTGUNS, "Sawn-off Shotgun", 26, 100, 1200 }, - { MENU_SHOTGUNS, "Combat Shotgun", 27, 100, 1800 }, - - { MENU_SUB_SMGS, "MP5", 29, 100, 500 }, - { MENU_SUB_SMGS, "Tec 9", 32, 100, 600 }, - { MENU_SUB_SMGS, "Mac 10", 28, 100, 700 }, - - { MENU_ASSAULT, "AK47", 30, 100, 800 }, - { MENU_ASSAULT, "M4", 31, 100, 1000 }, - - { MENU_RIFLES, "Rifle", 33, 100, 300 }, - { MENU_RIFLES, "Sniper", 34, 75, 1000 }, - - { MENU_THROWN, "Teargas", 17, 5, 500 }, - { MENU_THROWN, "Grenade", 16, 1, 1200 }, - { MENU_THROWN, "Molotov Cocktail", 18, 4, 1400 }, - - { MENU_ARMOR, "Armor", 101, 100, 10000 } - }, - p_AmmunationMenu [ MAX_PLAYERS char ] -; - /* ** Apartment System ** */ #define MAX_AFLOORS ( 20 ) @@ -2073,8 +2011,8 @@ new { false, "Chastity Belt", "Preventation of Aids", LIMIT_ONE, 500 }, // 3 { false, "Secure Wallet", "Less Being Robbed Chance", LIMIT_ONE, 600 }, // 4 { true , "Scissors", "/cuttie", LIMIT_SCISSORS, 750 }, // 5 - { true , "Bobby Pin", "/breakcuff", LIMIT_PINS, 1200 }, // 6 [1000] -makecopgreatagain - { false, "Money Case", "Increases Robbing Amount", LIMIT_ONE, 1500 }, // 7 [1250] + { true , "Bobby Pin", "Automatically break cuffs", LIMIT_PINS, 1200 }, // 6 [1000] -makecopgreatagain + { false, "Money Case", "Increases Robbing Amount", LIMIT_ONE, 1500 }, // 7 [1250] { true , "Rope", "/tie", LIMIT_ROPES, 1750 }, // 8 [1500] { true , "Aluminium Foil", "Deflects EMP", LIMIT_FOIL, 1750 }, // 9 { true , "Thermal Drill", "Halves Safe Cracking Time", LIMIT_ONE, 5000 }, // 10 @@ -2212,6 +2150,8 @@ new /* ** Jail System ** */ #define JAIL_SECONDS_MULTIPLIER ( 5 ) +#define ALCATRAZ_REQUIRED_TIME ( 300 ) + #define ALCATRAZ_TIME_PAUSE ( 5 ) #define ALCATRAZ_TIME_WANTED ( 600 ) @@ -2771,7 +2711,7 @@ new ; /* ** VIP House Display ** */ -#define MAX_BUSINESSES ( 200 ) +#define MAX_BUSINESSES ( 250 ) #define MAX_DROPS ( 5 ) #define MAX_BUSINESS_MEMBERS ( 8 ) #define MAX_BIZ_VEH_MODELS ( 18 ) @@ -2839,7 +2779,6 @@ enum E_BUSINESS_VEHICLE_DATA E_COST }; - enum E_SECURITY_LEVEL_DATA { E_LEVEL[ 17 ], Float: E_COST_MULTIPLIER, E_BREAKIN_COOLDOWN @@ -2959,7 +2898,6 @@ new bool: p_PlayerLogged [ MAX_PLAYERS char ], p_AccountID [ MAX_PLAYERS ], p_AdminLevel [ MAX_PLAYERS ], - bool: p_Detained [ MAX_PLAYERS char ], p_Class [ MAX_PLAYERS ], p_Job [ MAX_PLAYERS char ], p_VIPJob [ MAX_PLAYERS char ], @@ -3008,7 +2946,6 @@ new p_InHouse [ MAX_PLAYERS ], p_ExperienceHideTimer [ MAX_PLAYERS ], p_AntiTextSpam [ MAX_PLAYERS ], - p_DetainedBy [ MAX_PLAYERS ], bool: p_BlockedPM [ MAX_PLAYERS ] [ MAX_PLAYERS ], bool: p_inFBI [ MAX_PLAYERS char ], bool: p_inArmy [ MAX_PLAYERS char ], @@ -3091,7 +3028,6 @@ new p_RansomPlacer [ MAX_PLAYERS ] = { INVALID_PLAYER_ID, ... }, p_RansomAmount [ MAX_PLAYERS ], p_LastDrovenPoliceVeh [ MAX_PLAYERS ] = { INVALID_VEHICLE_ID, ... }, - p_AntiTazeSpam [ MAX_PLAYERS ], Text3D: p_SpawnKillLabel [ MAX_PLAYERS ] = { Text3D: INVALID_3DTEXT_ID, ... }, p_AntiSpawnKill [ MAX_PLAYERS ], bool: p_AntiSpawnKillEnabled [ MAX_PLAYERS char ], @@ -3124,7 +3060,9 @@ new p_PawnStoreExport [ MAX_PLAYERS ] = { 0xFFFF, ... }, p_Burglaries [ MAX_PLAYERS ], p_ArmyBanned [ MAX_PLAYERS char ], - Text3D: p_DetainedLabel [ MAX_PLAYERS ] = { Text3D: INVALID_3DTEXT_ID, ... }, + //Text3D: p_DetainedLabel [ MAX_PLAYERS ] = { Text3D: INVALID_3DTEXT_ID, ... }, + //bool: p_Detained [ MAX_PLAYERS char ], + //p_DetainedBy [ MAX_PLAYERS ], p_BailTimestamp [ MAX_PLAYERS ], p_AFKTime [ MAX_PLAYERS ], bool: p_ClassSelection [ MAX_PLAYERS char ], @@ -3190,7 +3128,8 @@ new p_ExplosiveBullets [ MAX_PLAYERS ], bool: p_AddedEmail [ MAX_PLAYERS char ], p_SpawningKey [ MAX_PLAYERS ] [ 4 ], - p_SpawningIndex [ MAX_PLAYERS ] + p_SpawningIndex [ MAX_PLAYERS ], + p_TazingImmunity [ MAX_PLAYERS ] ; /* ** Server Data ** */ @@ -3230,7 +3169,8 @@ new g_iTime = 0, g_VehicleLastAttacker [ MAX_VEHICLES ] = { INVALID_PLAYER_ID, ... }, g_VehicleLastAttacked [ MAX_VEHICLES ], - g_TopDonorWall = INVALID_OBJECT_ID + g_TopDonorWall = INVALID_OBJECT_ID, + g_AlcatrazArea = -1 ; /* ** Forwards ** */ @@ -3242,7 +3182,7 @@ public OnRevCTRLHTTPResponse( index, response_code, data[ ] ); public OnTwitterHTTPResponse( index, response_code, data[ ] ); public OnDonationRedemptionResponse( index, response_code, data[ ] ); public OnPlayerChainsawTree( playerid, treeid ); -public OnPlayerArrest( playerid, victimid, totalarrests, totalpeople ); +public OnPlayerArrested( playerid, victimid, totalarrests, totalpeople ); public OnPlayerProgressUpdate( playerid, progressid, params ); public OnPlayerProgressComplete( playerid, progressid, params ); public OnPlayerUnjailed( playerid, reasonid ); @@ -3438,8 +3378,8 @@ public OnGameModeInit() #endif /* ** Robbery Points ** */ - static const ROBBERY_BOT_PAY = 2100; // max pay from robbing bots - static const ROBBERY_SAFE_PAY = 4300; // max pay from robbing safes + static const ROBBERY_BOT_PAY = 2000; // max pay from robbing bots + static const ROBBERY_SAFE_PAY = 6000; // max pay from robbing safes CreateMultipleRobberies( "Bank of San Fierro - Safe 1", floatround( float( ROBBERY_SAFE_PAY ) * 1.85 ), -1400.941772, 862.858947, 984.17200, -90.00000, g_bankvaultData[ CITY_SF ] [ E_WORLD ] ); CreateMultipleRobberies( "Bank of San Fierro - Safe 2", floatround( float( ROBBERY_SAFE_PAY ) * 1.85 ), -1400.941772, 861.179321, 985.07251, -90.00000, g_bankvaultData[ CITY_SF ] [ E_WORLD ] ); @@ -3448,7 +3388,7 @@ public OnGameModeInit() CreateMultipleRobberies( "Desperado Cafe", floatround( float( ROBBERY_SAFE_PAY ) * 0.5 ), 2113.085693, -1784.66638, 12.95044, 180.00000, -1 ); CreateMultipleRobberies( "Ahmyy's Cafe", floatround( float( ROBBERY_SAFE_PAY ) * 0.5 ), 2540.658691, 2013.840209, 10.289649, 90.000000, -1 ); - CreateMultipleRobberies( "FaZe's Cafe", floatround( float( ROBBERY_SAFE_PAY ) * 0.5 ), 1978.945312, 2066.297607, 10.285301, 90.000000, -1 ); + CreateMultipleRobberies( "Nibble Cafe", floatround( float( ROBBERY_SAFE_PAY ) * 0.5 ), 1978.945312, 2066.297607, 10.285301, 90.000000, -1 ); CreateMultipleRobberies( "Le Flawless Cafe", floatround( float( ROBBERY_SAFE_PAY ) * 0.5 ), -1968.052612, 107.914459, 27.092870, 0.0000000, -1 ); CreateMultipleRobberies( "Hospital", floatround( float( ROBBERY_SAFE_PAY ) * 1.25 ), -2638.146484, 662.669677, 969.852905, -90.0000, -1 ); @@ -4322,38 +4262,7 @@ public OnGameModeInit() SetDynamicObjectMaterialText( g_TopDonorWall, 0, "Nobody donated :(", 130, "Arial", 48, 0, -65536, 0, 1 ); // Alcatraz - tmpVariable = CreateDynamicObject( 16109, -2080.595703, 1734.933837, -3.897439, 0.000000, 0.000000, 0.000000, .streamdistance = 500.0, .priority = 100 ); - SetDynamicObjectMaterial( tmpVariable, 0, 10452, "sfsroadshotel", "dirtgaz64b", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 9957, "multistory_sfe", "grassgrn256", 0 ); - SetDynamicObjectMaterial( tmpVariable, 2, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 3, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 4, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - - tmpVariable = CreateDynamicObject( 16149, -1912.565917, 1698.053833, -12.757503, 0.000000, 0.000000, 0.000000, .streamdistance = 500.0, .priority = 100 ); - SetDynamicObjectMaterial( tmpVariable, 0, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 2, 9957, "multistory_sfe", "grassgrn256", 0 ); - SetDynamicObjectMaterial( tmpVariable, 3, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 4, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 5, 9957, "multistory_sfe", "grassgrn256", 0 ); - SetDynamicObjectMaterial( tmpVariable, 6, 9957, "multistory_sfe", "grassgrn256", 0 ); - - tmpVariable = CreateDynamicObject( 16147, -1926.906250, 1901.545288, -11.262178, 0.000000, 0.000000, 0.000000, .streamdistance = 500.0, .priority = 100 ); - SetDynamicObjectMaterial( tmpVariable, 0, 9957, "multistory_sfe", "grassgrn256", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 9957, "multistory_sfe", "grassgrn256", 0 ); - SetDynamicObjectMaterial( tmpVariable, 2, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 3, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 4, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 5, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 6, 10452, "sfsroadshotel", "dirtgaz64b", 0 ); - - tmpVariable = CreateDynamicObject( 16148, -2088.817626, 1913.784423, -1.467424, 0.000000, 0.000000, 0.000000, .streamdistance = 500.0, .priority = 100 ); - SetDynamicObjectMaterial( tmpVariable, 0, 9957, "multistory_sfe", "grassgrn256", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 2, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 3, 13673, "mullho03a_lahills", "sw_rockgrass1", 0 ); - SetDynamicObjectMaterial( tmpVariable, 5, 5134, "wasteland_las2", "concretenewb256", 0 ); - SetDynamicObjectMaterial( tmpVariable, 6, 5134, "wasteland_las2", "concretenewb256", 0 ); - SetDynamicObjectMaterial( tmpVariable, 8, 5134, "wasteland_las2", "concretenewb256", 0 ); + g_AlcatrazArea = CreateDynamicRectangle( -1921.6816, 1661.7448, -2172.4653, 1876.0469 ); /* ** Dirty Mechanic ** */ // SF @@ -4371,6 +4280,9 @@ public OnGameModeInit() /* ** Pickups ** */ CreateDynamicPickup( 337, 2, -2744.6367, 1264.8502, 11.77030 ); // Spade @Mining CreateDynamicPickup( 337, 2, 589.440800, 869.86900, -42.4973 ); // Spade @Mining + CreateDynamicPickup( 337, 2, -1998.7056, 1777.7448, 43.73860 ); // Spade @Alcatraz + // CreateDynamicPickup( 341, 2, -2069.1431, 1788.9657, 43.7386 ); // Chainsaw @Alcatraz + CreateDynamicPickup( 371, 2, 1318.92200, 2002.7311, 1200.250 ); // Parachute @Shamal CreateDynamicPickup( 371, 2, -1745.2754, 59.301500, 866.4556 ); // Parachute @Veloxity @@ -4961,8 +4873,8 @@ public OnServerUpdate( ) Player_CheckPokerGame( playerid, "Out Of Range" ); // KickPlayerFromTable( playerid ); // Not near detained player then uncuff - if ( IsPlayerDetained( playerid ) && isNotNearPlayer( playerid, p_DetainedBy[ playerid ] ) && ( g_iTime - p_TiedAtTimestamp[ playerid ] ) >= 8 ) - Uncuff( playerid ); + //if ( IsPlayerDetained( playerid ) && isNotNearPlayer( playerid, p_DetainedBy[ playerid ] ) && ( g_iTime - p_TiedAtTimestamp[ playerid ] ) >= 8 ) + // Uncuff( playerid ); // Trucking Trailers if ( iState == PLAYER_STATE_DRIVER && iVehicle && p_hasTruckingJob{ playerid } && !IsTrailerAttachedToVehicle( iVehicle ) && p_TruckingCancelTimer[ playerid ] == 0xFFFF ) @@ -5051,7 +4963,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 ) && !IsPlayerDetained( playerid ) && !IsPlayerCuffed( playerid ) && !IsPlayerTazed( 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 ) ) { // && !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 ); } @@ -5105,8 +5017,15 @@ public OnServerUpdate( ) }*/ // Tied probably? - if ( IsPlayerTied( playerid ) && g_iTime - p_TimeTiedAt[ playerid ] > MAX_TIME_TIED ) { - ShowPlayerHelpDialog( playerid, 1200, "You have been tied for %s.~n~~n~Your tie is loose. Type ~y~~h~/cuttie", secondstotime( g_iTime - p_TimeTiedAt[ playerid ] ) ); + if ( IsPlayerTied( playerid ) && g_iTime - p_TimeTiedAt[ playerid ] > MAX_TIME_TIED ) + { + TogglePlayerControllable( playerid, 1 ); + p_Tied{ playerid } = false; + Delete3DTextLabel( p_TiedLabel[ playerid ] ); + p_TiedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; + p_TimeTiedAt[ playerid ] = 0; + p_Kidnapped{ playerid } = false; + ShowPlayerHelpDialog( playerid, 1200, "You have been tied for %s.~n~~n~Your tie is loose.", secondstotime( g_iTime - p_TimeTiedAt[ playerid ] ) ); } // Alcatraz Escape Mechanism @@ -5115,9 +5034,9 @@ public OnServerUpdate( ) if ( IsPlayerAFK( playerid ) ) p_AlcatrazEscapeTS[ playerid ] = g_iTime + ALCATRAZ_TIME_PAUSE; // Money farmers? - if ( IsPlayerInArea( playerid, -2204.4255, -1884.5057, 1605.3810, 2052.6060 ) ) + if ( IsPlayerInDynamicArea( playerid, g_AlcatrazArea ) ) { - if ( !IsPlayerJailed( playerid ) && !IsPlayerDetained( playerid ) && p_Class[ playerid ] != CLASS_POLICE ) + if ( !IsPlayerJailed( playerid ) && p_Class[ playerid ] != CLASS_POLICE ) // && !IsPlayerDetained( playerid ) { if ( GetPVarInt( playerid, "AlcatrazWantedCD" ) < g_iTime ) { @@ -5380,7 +5299,7 @@ public OnServerUpdate( ) // samp ac force if ( p_forcedAnticheat[ playerid ] > 0 && ! IsPlayerUsingSampAC( playerid ) ) { - SendGlobalMessage( -1, ""COL_PINK"[ANTI-CHEAT]{FFFFFF} %s(%d) has been kicked for disabling SAMP-AC. "COL_YELLOW"(www.samp-ac.com)", ReturnPlayerName( playerid ), playerid ); + SendGlobalMessage( -1, ""COL_PINK"[ANTI-CHEAT]{FFFFFF} %s(%d) has been kicked for disabling SAMP-AC. "COL_YELLOW"("AC_WEBSITE")", ReturnPlayerName( playerid ), playerid ); KickPlayerTimed( playerid ); } } @@ -6341,7 +6260,7 @@ public OnPlayerDisconnect( playerid, reason ) StopPlayerTruckingCourier( playerid ); RemovePlayerFromRace( playerid ); ClearPlayerRoadblocks( playerid, .distance_check = false ); - p_Detained { playerid } = false; + //p_Detained { playerid } = false; p_Tied { playerid } = false; p_Kidnapped { playerid } = false; p_Wood [ playerid ] = 0; @@ -6398,7 +6317,7 @@ public OnPlayerDisconnect( playerid, reason ) p_HealDealer [ playerid ] = INVALID_PLAYER_ID; p_Spectating { playerid } = false; p_TicketIssuer [ playerid ] = INVALID_PLAYER_ID; - p_DetainedBy [ playerid ] = INVALID_PLAYER_ID; + //p_DetainedBy [ playerid ] = INVALID_PLAYER_ID; p_GangID [ playerid ] = INVALID_GANG_ID; p_InfectedHIV { playerid } = false; p_OwnedHouses [ playerid ] = 0; @@ -6476,8 +6395,8 @@ public OnPlayerDisconnect( playerid, reason ) p_SpawnKillLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; Delete3DTextLabel( p_AdminLabel[ playerid ] ); p_AdminLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; - Delete3DTextLabel( p_DetainedLabel[ playerid ] ); - p_DetainedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; + //Delete3DTextLabel( p_DetainedLabel[ playerid ] ); + //p_DetainedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; Delete3DTextLabel( p_TiedLabel[ playerid ] ); p_TiedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; DestroyDynamic3DTextLabel( p_WeedLabel[ playerid ] ); @@ -6598,7 +6517,7 @@ public OnPlayerSpawn( playerid ) p_InGarage[ playerid ] = -1; StopSound( playerid ); CancelEdit( playerid ); - loadPlayerToys( playerid ); + reloadPlayerToys( playerid ); // Approved spawn? if ( !approveClassSpawned( playerid ) ) { @@ -6911,7 +6830,7 @@ public OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float:fX, Float:f if ( IsPlayerAdminOnDuty( playerid ) ) return 0; - if ( IsPlayerConnected( hitid ) && ( IsPlayerTazed( hitid ) || IsPlayerCuffed( hitid ) || IsPlayerDetained( hitid ) || IsPlayerKidnapped( hitid ) || IsPlayerTied( hitid ) || IsPlayerLoadingObjects( hitid ) || IsPlayerAdminOnDuty( hitid ) || p_AntiSpawnKillEnabled{ hitid } ) ) + if ( IsPlayerConnected( hitid ) && ( IsPlayerTazed( hitid ) || IsPlayerCuffed( hitid ) || IsPlayerKidnapped( hitid ) || IsPlayerTied( hitid ) || IsPlayerLoadingObjects( hitid ) || IsPlayerAdminOnDuty( hitid ) || p_AntiSpawnKillEnabled{ hitid } ) ) return 0; if ( p_AntiSpawnKill[ playerid ] > g_iTime && p_AntiSpawnKillEnabled{ playerid } ) @@ -7199,10 +7118,10 @@ public OnPlayerTakePlayerDamage( playerid, issuerid, &Float: amount, weaponid, b if ( p_BulletInvulnerbility[ issuerid ] > g_iTime ) return ShowPlayerHelpDialog( issuerid, 2000, "You cannot damage players as you're immune!" ), 0; - if ( IsPlayerOnSlotMachine( playerid ) && ! p_WantedLevel[ playerid ] ) + if ( ( IsPlayerOnSlotMachine( playerid ) || IsPlayerMining( playerid ) ) && ! p_WantedLevel[ playerid ] ) return ShowPlayerHelpDialog( issuerid, 2000, "This player cannot be killed as they are doing something!" ), 0; - if ( IsPlayerTazed( playerid ) || IsPlayerCuffed( playerid ) || IsPlayerDetained( playerid ) || IsPlayerKidnapped( playerid ) || IsPlayerTied( playerid ) || IsPlayerLoadingObjects( playerid ) || IsPlayerAdminOnDuty( playerid ) || p_AntiSpawnKillEnabled{ playerid } ) + if ( IsPlayerTazed( playerid ) || IsPlayerCuffed( playerid ) || IsPlayerKidnapped( playerid ) || IsPlayerTied( playerid ) || IsPlayerLoadingObjects( playerid ) || IsPlayerAdminOnDuty( playerid ) || p_AntiSpawnKillEnabled{ playerid } ) return 0; // Rhino damage invulnerable @@ -7451,10 +7370,10 @@ public OnPlayerDeath( playerid, killerid, reason ) p_WeaponDealing{ playerid } = false; p_WeaponDealer[ playerid ] = INVALID_PLAYER_ID; p_Cuffed{ playerid } = false; - p_DetainedBy[ playerid ] = INVALID_PLAYER_ID; + //p_DetainedBy[ playerid ] = INVALID_PLAYER_ID; p_LastVehicle[ playerid ] = INVALID_VEHICLE_ID; - Delete3DTextLabel( p_DetainedLabel[ playerid ] ); - p_DetainedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; + //Delete3DTextLabel( p_DetainedLabel[ playerid ] ); + //p_DetainedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; Delete3DTextLabel( p_TiedLabel[ playerid ] ); p_TiedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; DestroyDynamic3DTextLabel( p_WeedLabel[ playerid ] ); @@ -7462,7 +7381,7 @@ public OnPlayerDeath( playerid, killerid, reason ) p_Tied{ playerid } = false; p_TicketTimestamp[ playerid ] = 0; p_Kidnapped{ playerid } = false; - p_Detained{ playerid } = false; + //p_Detained{ playerid } = false; p_ClassSelection{ playerid } = false; p_TicketIssuer[ playerid ] = INVALID_PLAYER_ID; KillTimer( p_TrackingTimer[ playerid ] ); @@ -7868,7 +7787,7 @@ public OnPlayerUnjailed( playerid, reasonid ) SetPlayerHealth( playerid, 100.0 ); if ( p_inAlcatraz{ playerid } ) { - SetPlayerPosEx( playerid, -2038.38, 1833.896, 21.934200, 0 ); + SetPlayerPosEx( playerid, -2052.0059, 1324.6919, 7.1615, 0 ); SetPVarInt( playerid, "AlcatrazWantedCD", g_iTime + ALCATRAZ_TIME_WANTED ); SetPlayerVirtualWorld( playerid, 0 ); } @@ -8019,7 +7938,7 @@ public OnPlayerText( playerid, text[ ] ) function Untaze( playerid ) { - if ( !IsPlayerConnected( playerid ) || p_Detained{ playerid } == true || !p_Tazed{ playerid } ) + if ( !IsPlayerConnected( playerid ) || !p_Tazed{ playerid } ) // || p_Detained{ playerid } == true return 0; if ( !IsPlayerTied( playerid ) ) @@ -8043,10 +7962,10 @@ function Uncuff( playerid ) ClearAnimations( playerid ); } p_Cuffed{ playerid } = false; - p_Detained{ playerid } = false; - Delete3DTextLabel( p_DetainedLabel[ playerid ] ); - p_DetainedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; - p_DetainedBy[ playerid ] = INVALID_PLAYER_ID; + //p_Detained{ playerid } = false; + //Delete3DTextLabel( p_DetainedLabel[ playerid ] ); + //p_DetainedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; + //p_DetainedBy[ playerid ] = INVALID_PLAYER_ID; p_BulletInvulnerbility[ playerid ] = g_iTime + 5; SendGlobalMessage( -1, ""COL_GREY"[SERVER]{FFFFFF} %s(%d) has been uncuffed and undetained by the anti-abuse system.", ReturnPlayerName( playerid ), playerid ); @@ -8308,7 +8227,12 @@ public OnPlayerProgressComplete( playerid, progressid, params ) format( szNormalString, 14, "%s\n%d/%d", getOreName( g_miningData[ m ] [ E_ORE ] ), g_miningData[ m ] [ E_ORES ], g_miningData[ m ] [ E_MAX_ORES ] ); UpdateDynamic3DTextLabelText( g_miningData[ m ] [ E_LABEL ], g_miningData[ m ] [ E_COLOR ], szNormalString ); - SendServerMessage( playerid, "Great you've mined an ore, now store it in a "COL_GREY"Dune"COL_WHITE"." ); + + if ( IsPlayerJailed( playerid ) ) { + SendServerMessage( playerid, "Great you've mined an ore, now take it to the "COL_GREY"Rock Crusher"COL_WHITE"." ); + } else { + SendServerMessage( playerid, "Great you've mined an ore, now store it in a "COL_GREY"Dune"COL_WHITE"." ); + } SetPVarInt( playerid, "carrying_ore", m ); SetPlayerSpecialAction( playerid, SPECIAL_ACTION_CARRY ); @@ -10170,7 +10094,7 @@ CMD:robitems( playerid, params[ ] ) if ( IsPlayerInAnyVehicle( victimid ) ) return SendError( playerid, "This player is in a vehicle." ); if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); if ( IsPlayerTazed( playerid ) ) return SendError( playerid, "You cannot use this command since you're tazed." ); - if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); + //if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); if ( IsPlayerCuffed( playerid ) ) return SendError( playerid, "You cannot use this command since you're cuffed." ); if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You cannot use this command since you're tied." ); if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You cannot use this command since you're kidnapped." ); @@ -10190,9 +10114,9 @@ CMD:robitems( playerid, params[ ] ) iRandomItem = -1 ; - if ( p_BobbyPins[ victimid ] > 0 && p_BobbyPins[ playerid ] < LIMIT_PINS ) available_items[ 0 ] = 0; + if ( p_BobbyPins[ victimid ] > 0 && p_BobbyPins[ playerid ] < LIMIT_PINS ) available_items[ 0 ] = 0; if ( p_Scissors[ victimid ] > 0 && p_Scissors[ playerid ] < LIMIT_SCISSORS ) available_items[ 1 ] = 1; - if ( p_Ropes[ victimid ] > 0 && p_Ropes[ playerid ] < LIMIT_ROPES ) available_items[ 2 ] = 2; + if ( p_Ropes[ victimid ] > 0 && p_Ropes[ playerid ] < LIMIT_ROPES ) available_items[ 2 ] = 2; if ( available_items[ 0 ] == -1 || available_items[ 1 ] == -1 || available_items[ 2 ] == -1 ) { SendClientMessageFormatted( victimid, -1, ""COL_GREEN"[ROB FAIL]{FFFFFF} %s(%d) has failed to rob items off you.", ReturnPlayerName( playerid ), playerid ); @@ -11853,90 +11777,6 @@ CMD:pleave( playerid, params[ ] ) return 1; } -CMD:bc( playerid, params[ ] ) return cmd_breakcuff( playerid, params ); -CMD:breakcuff( playerid, params[ ] ) -{ - if ( p_BobbyPins[ playerid ] < 1 ) - return SendError( playerid, "You don't have any bobby pins." ); - - if ( !IsPlayerAttachedObjectSlotUsed( playerid, 2 ) ) return SendError( playerid, "You are not cuffed." ); - else if ( IsPlayerLoadingObjects( playerid ) ) return SendError( playerid, "You're in a object-loading state, please wait." ); - else - { - new iRandom = random( 101 ); - - if ( IsPlayerDetained( playerid ) ) // && iRandom < 66 ) - return SendError( playerid, "You cannot break your cuffs if you're detained." ); - // return SendError( playerid, "You snapped the bobby pin and failed to get break out of your cuffs." ); - - if ( p_BobbyPins[ playerid ]-- <= 3 ) - ShowPlayerHelpDialog( playerid, 2500, "You only have %d bobby pins left!", p_BobbyPins[ playerid ] ); - - if ( iRandom < 50 ) - return SendError( playerid, "You snapped the bobby pin and failed to get break out of your cuffs." ); - - TogglePlayerControllable( playerid, 1 ); - RemovePlayerAttachedObject( playerid, 2 ); - SetPlayerSpecialAction( playerid, SPECIAL_ACTION_NONE ); - if ( !IsPlayerInAnyVehicle( playerid ) ) { - ClearAnimations( playerid ); - } - p_Cuffed{ playerid } = false; - p_Tazed{ playerid } = false; - p_Detained{ playerid } = false; - Delete3DTextLabel( p_DetainedLabel[ playerid ] ); - p_DetainedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; - p_DetainedBy[ playerid ] = INVALID_PLAYER_ID; - p_QuitToAvoidTimestamp[ playerid ] = g_iTime + 3; - - SendServerMessage( playerid, "You have successfully broken your cuffs." ); - GivePlayerWantedLevel( playerid, 6 ); - } - return 1; -} - - -CMD:cuttie( playerid, params[ ] ) -{ - new - bTiedLong = g_iTime - p_TimeTiedAt[ playerid ] > MAX_TIME_TIED; - - if ( p_Scissors[ playerid ] < 1 && !bTiedLong ) - return SendError( playerid, "You don't have any scissors" ); - - if ( !p_Tied{ playerid } ) return SendError( playerid, "You are not tied." ); - else if ( IsPlayerLoadingObjects( playerid ) ) return SendError( playerid, "You're in a object-loading state, please wait." ); - else - { - new iRandom = random( 101 ); - - p_Scissors[ playerid ] --; - - if ( IsPlayerKidnapped( playerid ) ) - iRandom -= 75; - - if ( bTiedLong ) - iRandom = 100; // Tied for too long - - if ( iRandom > 10 ) - { - TogglePlayerControllable( playerid, 1 ); - p_Tied{ playerid } = false; - if ( IsPlayerKidnapped( playerid ) ) { - p_Kidnapped{ playerid } = false; - } - Delete3DTextLabel( p_TiedLabel[ playerid ] ); - p_TiedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; - SendServerMessage( playerid, "You have cut the ties connected to your hands." ); - } - else SendServerMessage( playerid, "You have failed to cut the tie connected to you." ); - - if ( 0 <= p_Scissors[ playerid ] <= 3 ) - ShowPlayerHelpDialog( playerid, 2500, "You only have %d scissors left!", p_Scissors[ playerid ] ); - } - return 1; -} - CMD:xpmarket( playerid, params[ ] ) { ShowPlayerDialog(playerid, DIALOG_XPMARKET, DIALOG_STYLE_INPUT, "{FFFFFF}XP Market", ""COL_WHITE"Welcome, enter inside the input box how much XP you're willing\nto trade in for.\n\nExchange Rate: "COL_GOLD"1 XP = $"#EXCHANGE_XPCASH"", "Select", "Cancel"); @@ -12207,7 +12047,7 @@ CMD:mostwanted( playerid, params[ ] ) CMD:contracts( playerid, params[ ] ) return cmd_hitlist( playerid, params ); CMD:hitlist( playerid, params[ ] ) { - if ( p_Class[ playerid ] != CLASS_CIVILIAN ) return SendError( playerid, "This is restricted to civilians only." ); + // if ( p_Class[ playerid ] != CLASS_CIVILIAN ) return SendError( playerid, "This is restricted to civilians only." ); new g_contractList[ MAX_PLAYERS ] [ 2 ], bool: is_empty = true; @@ -12330,7 +12170,7 @@ CMD:eject( playerid, params[ ] ) else { if ( p_Kidnapped{ pID } == true ) p_Kidnapped{ pID } = false; - if ( p_Detained{ pID } == true ) p_Detained{ pID } = false; + //if ( p_Detained{ pID } == true ) p_Detained{ pID } = false; RemovePlayerFromVehicle( pID ); SyncObject( pID, 0.0, 2.0, 2.0 ); GameTextForPlayer( pID, "~r~EJECTED~w~!", 3500, 3 ); @@ -12365,7 +12205,7 @@ CMD:ejectall( playerid, params[ ] ) if ( iTargetVehicle == iPlayerVehicle && iTargetSeat >= 1 && iTargetSeat <= 3 ) { // change variables if ( p_Kidnapped{ i } == true ) p_Kidnapped{ i } = false; - if ( p_Detained{ i } == true ) p_Detained{ i } = false; + //if ( p_Detained{ i } == true ) p_Detained{ i } = false; // remove from vehicle RemovePlayerFromVehicle( i ); @@ -12855,7 +12695,7 @@ CMD:drb( playerid, params[ ] ) else if ( g_roadblockData[ rbID ] [ E_CREATOR ] != playerid ) return SendError( playerid, "You have not created this spike strip." ); else { - destroyRoadBlockStrip( rbID ); + destroyRoadBlockStrip( rbID, .remove_iter = true ); SendServerMessage( playerid, "You have succesfully destroyed a road block." ); } return 1; @@ -13450,7 +13290,7 @@ CMD:shop( playerid, params[ ] ) { if ( ( !IsPlayerInEntrance( playerid, g_SupaSave ) && !IsPlayerInDynamicCP( playerid, g_Checkpoints[ CP_247_MENU ] ) ) || !GetPlayerInterior( playerid ) ) return SendError( playerid, "You must be within Supa Save or 24/7 to purchase items." ); if ( IsPlayerTazed( playerid ) ) return SendError( playerid, "You cannot use this since you're tazed." ); - if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this since you're detained." ); + //if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this since you're detained." ); if ( IsPlayerCuffed( playerid ) ) return SendError( playerid, "You cannot use this since you're cuffed." ); if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You cannot use this since you're tied." ); if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You cannot use this since you're kidnapped." ); @@ -13604,7 +13444,7 @@ CMD:kill( playerid, params[ ] ) if ( !IsPlayerSpawned( playerid ) ) return SendError( playerid, "You cannot use this command since you're not spawned." ); if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); if ( IsPlayerTazed( playerid ) ) return SendError( playerid, "You cannot use this command since you're tazed." ); - if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); + //if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); if ( IsPlayerCuffed( playerid ) ) return SendError( playerid, "You cannot use this command since you're cuffed." ); if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You cannot use this command since you're tied." ); if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You cannot use this command since you're kidnapped." ); @@ -13623,7 +13463,7 @@ CMD:changeclass( playerid, params[ ] ) if ( !IsPlayerSpawned( playerid ) ) return SendError( playerid, "You cannot use this command since you're not spawned." ); if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); if ( IsPlayerTazed( playerid ) ) return SendError( playerid, "You cannot use this command since you're tazed." ); - if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); + //if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); if ( IsPlayerCuffed( playerid ) ) return SendError( playerid, "You cannot use this command since you're cuffed." ); if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You cannot use this command since you're tied." ); if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You cannot use this command since you're kidnapped." ); @@ -13774,27 +13614,56 @@ CMD:tie( playerid, params[ ] ) if ( p_AntiSpawnKillEnabled{ victimid } ) return SendError( playerid, "You cannot use this command on spawn protected players." ); if ( IsPlayerInCasino( victimid ) && ! p_WantedLevel[ victimid ] ) return SendError( playerid, "The innocent person you're trying to tie is in a casino." ); + // remove rope after attempt + if ( p_Ropes[ playerid ] -- > 0 ) { + ShowPlayerHelpDialog( playerid, 4500, "You only have %d ropes left!", p_Ropes[ playerid ] ); + } else { + ShowPlayerHelpDialog( playerid, 4500, "You can buy ropes at Supa Save or a 24/7 store." ); + } + + p_AntiTieSpam[ playerid ] = g_iTime + 30; + GivePlayerWantedLevel( playerid, 6 ); + + // check if tie is successful if ( random( 101 ) < 90 ) { - SendClientMessageFormatted( victimid, -1, ""COL_RED"[TIED]{FFFFFF} You have been tied by %s(%d)!", ReturnPlayerName( playerid ), playerid ); - SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[TIED]{FFFFFF} You have tied %s(%d)!", ReturnPlayerName( victimid ), victimid ); - TogglePlayerControllable( victimid, 0 ); - p_Tied{ victimid } = true; - p_Ropes[ playerid ] --; - p_TimeTiedAt[ victimid ] = g_iTime; - GivePlayerWantedLevel( playerid, 6 ); - p_AntiTieSpam[ playerid ] = g_iTime + 30; - p_TiedBy[ victimid ] = playerid; - Delete3DTextLabel( p_TiedLabel[ victimid ] ); - format( szNormalString, 48, "Tied by %s!", ReturnPlayerName( playerid ) ); - p_TiedLabel[ victimid ] = Create3DTextLabel( szNormalString, 0xDAB583FF, 0.0, 0.0, 0.0, 15.0, 0 ); - Attach3DTextLabelToPlayer( p_TiedLabel[ victimid ], victimid, 0.0, 0.0, 0.6 ); - p_TiedAtTimestamp[ victimid ] = g_iTime; + new bool: scissor_success = false; + new attempts = 0; - if ( p_Ropes[ victimid ] ) - ShowPlayerHelpDialog( victimid, 4000, "You can cut your ties with ~p~/cuttie." ); + for ( attempts = 1; attempts < p_Scissors[ victimid ]; attempts ++ ) + { + if ( random( 101 ) > 20 ) { + scissor_success = true; + break; + } + } + + if ( ( p_Scissors[ victimid ] -= attempts ) > 0 ) { + ShowPlayerHelpDialog( victimid, 4500, "You only have %d scissors left!", p_Scissors[ victimid ] ); + } else { + ShowPlayerHelpDialog( victimid, 4500, "You can buy sissors at Supa Save or a 24/7 store." ); + } + + if ( scissor_success ) + { + SendClientMessageFormatted( playerid, -1, ""COL_RED"[TIE]{FFFFFF} %s(%d) has cut the tie you placed!", ReturnPlayerName( victimid ), victimid ); + SendClientMessageFormatted( victimid, -1, ""COL_GREEN"[TIE]{FFFFFF} You have cut off %s(%d)'s tie after %d attempt(s)!", ReturnPlayerName( playerid ), playerid, attempts ); + } else - ShowPlayerHelpDialog( victimid, 4000, "You can buy sissors at Supa Save or a 24/7 store." ); + { + SendClientMessageFormatted( victimid, -1, ""COL_RED"[TIED]{FFFFFF} You have been tied by %s(%d)!", ReturnPlayerName( playerid ), playerid ); + SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[TIED]{FFFFFF} You have tied %s(%d)!", ReturnPlayerName( victimid ), victimid ); + TogglePlayerControllable( victimid, 0 ); + p_Tied{ victimid } = true; + p_TimeTiedAt[ victimid ] = g_iTime; + p_TiedBy[ victimid ] = playerid; + Delete3DTextLabel( p_TiedLabel[ victimid ] ); + format( szNormalString, 48, "Tied by %s!", ReturnPlayerName( playerid ) ); + p_TiedLabel[ victimid ] = Create3DTextLabel( szNormalString, 0xDAB583FF, 0.0, 0.0, 0.0, 15.0, 0 ); + Attach3DTextLabelToPlayer( p_TiedLabel[ victimid ], victimid, 0.0, 0.0, 0.6 ); + p_TiedAtTimestamp[ victimid ] = g_iTime; + } + return 1; } else { @@ -13802,9 +13671,9 @@ CMD:tie( playerid, params[ ] ) SendClientMessageFormatted( victimid, -1, ""COL_GREEN"[FAIL TIE]{FFFFFF} %s(%d) has failed to tie you!", ReturnPlayerName( playerid ), playerid ); SendClientMessageFormatted( playerid, -1, ""COL_RED"[FAIL TIE]{FFFFFF} You have failed to tie %s(%d)!", ReturnPlayerName( victimid ), victimid ); } + return 1; } else return SendError( playerid, "There are no players around to tie." ); - return 1; } CMD:pu( playerid, params[ ] ) return cmd_pullover(playerid, params); @@ -13911,7 +13780,7 @@ stock TicketPlayer( pID, playerid ) else if ( p_WantedLevel[ pID ] > 5 ) return SendError( playerid, "Wanted suspects cannot be issued a ticket." ); else if ( p_WantedLevel[ pID ] < 1 ) return SendError( playerid, "Innocent players cannot be issued a ticket." ); else if ( p_Jailed{ playerid } ) return SendError( playerid, "You cannot use this command in jail." ); - else if ( IsPlayerDetained( pID ) ) return SendError( playerid, "You cannot use this command on a detained player." ); + //else if ( IsPlayerDetained( pID ) ) return SendError( playerid, "You cannot use this command on a detained player." ); else if ( g_iTime < p_TicketTimestamp[ pID ] ) return SendError( playerid, "This player has been ticketed recently, he will be fined in %d seconds.", g_iTime - p_TicketTimestamp[ pID ] ); else { @@ -13931,6 +13800,14 @@ stock TicketPlayer( pID, playerid ) return 1; } +CMD:taze( playerid, params[ ] ) +{ + new + pID = GetClosestPlayer( playerid ); + + return TazePlayer( pID, playerid ); +} + CMD:payticket( playerid, params[] ) { if ( !p_WantedLevel[ playerid ] ) @@ -13970,92 +13847,18 @@ CMD:payticket( playerid, params[] ) CMD:ar( playerid, params[ ] ) return cmd_arrest(playerid, params); CMD:arrest( playerid, params[ ] ) { - new victimid; // = GetClosestPlayer( playerid ); - if ( p_Class[ playerid ] != CLASS_POLICE ) return SendError( playerid, "This is restricted to police only." ); - else if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); - //else if ( GetPlayerScore( playerid ) > 200 ) return SendError( playerid, "This feature is no longer available to you. Please use /detain." ); - else if ( sscanf( params, ""#sscanf_u"", victimid ) ) return SendUsage( playerid, "/ar(rest) [PLAYER_ID]" ); - else if ( victimid == playerid ) return SendError( playerid, "You cannot arrest yourself." ); - else if ( !IsPlayerConnected( victimid ) ) return SendError( playerid, "This player is not connected." ); - else if ( p_Spectating{ playerid } ) return SendError( playerid, "You cannot use such commands while you're spectating." ); - else if ( GetDistanceBetweenPlayers( playerid, victimid ) < 4.0 && IsPlayerConnected( victimid ) ) - { - if ( p_Class[ victimid ] == p_Class[ playerid ] ) return SendError( playerid, "This player is in your team." ); - if ( p_WantedLevel[ victimid ] == 0 ) return SendError( playerid, "This player is innocent!" ); - if ( !IsPlayerCuffed( victimid ) ) return SendError( playerid, "This player is not cuffed." ); - if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You are kidnapped, you cannot do this." ); - if ( IsPlayerDetained( victimid ) ) return SendError( playerid, "This player is detained, you cannot arrest them." ); - if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You are tied, you cannot do this." ); - if ( IsPlayerJailed( victimid ) ) return SendError( playerid, "This player is jailed. He may be paused." ); - if ( IsPlayerInAnyVehicle( playerid ) ) return SendError( playerid, "You cannot arrest this person inside a vehicle." ); - if ( IsPlayerInAnyVehicle( victimid ) ) return SendError( playerid, "You cannot arrest a person that is inside a vehicle." ); - if ( IsPlayerAdminOnDuty( victimid ) ) return SendError( playerid, "You cannot use this command on admins that are on duty." ); - if ( GetPlayerState( playerid ) == PLAYER_STATE_WASTED ) return SendError( playerid, "You cannot use this command since you are dead." ); - new totalCash = ( p_WantedLevel[ victimid ] < MAX_WANTED_LVL ? p_WantedLevel[ victimid ] : MAX_WANTED_LVL ) * ( 300 ); - new totalSeconds = p_WantedLevel[ victimid ] * ( JAIL_SECONDS_MULTIPLIER ); - GivePlayerScore( playerid, 2, .multiplier = 1.5 ); - GivePlayerCash( playerid, totalCash ); - if ( totalCash > 20000 ) printf("[police arrest] %s -> %s - %s", ReturnPlayerName( playerid ), ReturnPlayerName( victimid ), number_format( totalCash ) ); // 8hska7082bmahu - SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[ACHIEVE]{FFFFFF} You have earned "COL_GOLD"%s{FFFFFF} dollars and 2 score for arresting %s(%d)!", number_format( totalCash ), ReturnPlayerName( victimid ), victimid ); - GameTextForPlayer( victimid, "~r~Busted!", 4000, 0 ); - CallLocalFunction( "OnPlayerArrest", "dddd", playerid, victimid, p_Arrests[ playerid ], 1 ); - Untaze( victimid ); - GivePlayerIrresistiblePoints( victimid, -2 ); - SendGlobalMessage( -1, ""COL_GOLD"[JAIL]{FFFFFF} %s(%d) has sent %s(%d) to jail for %d seconds!", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( victimid ), victimid, totalSeconds ); - JailPlayer( victimid, totalSeconds ); - } - else return SendError( playerid, "There are no players around to arrest." ); - return 1; + new + victimid = GetClosestPlayer( playerid ); + + return ArrestPlayer( victimid, playerid ); } CMD:cuff( playerid, params[ ] ) { - new victimid; // = GetClosestPlayer( playerid ); - if ( p_Class[ playerid ] != CLASS_POLICE ) return SendError( playerid, "This is restricted to police only." ); - else if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); - else if ( sscanf( params, ""#sscanf_u"", victimid ) ) return SendUsage( playerid, "/cuff [PLAYER_ID]" ); - else if ( victimid == playerid ) return SendError( playerid, "You cannot cuff yourself." ); - else if ( !IsPlayerConnected( victimid ) || IsPlayerNPC( victimid ) ) return SendError( playerid, "This player is not connected." ); - else if ( p_Spectating{ playerid } ) return SendError( playerid, "You cannot use such commands while you're spectating." ); - else if ( GetDistanceBetweenPlayers( playerid, victimid ) < 4.0 && IsPlayerConnected( victimid ) ) - { - if ( p_Class[ victimid ] == p_Class[ playerid ] ) return SendError( playerid, "This player is in your team." ); - if ( p_WantedLevel[ victimid ] == 0 ) return SendError( playerid, "This player is innocent!" ); - if ( p_WantedLevel[ victimid ] < 6 ) return SendError( playerid, "This person isn't worth cuffing, ticket them." ); - if ( IsPlayerInAnyVehicle( victimid ) ) return SendError( playerid, "This player is in a vehicle " ); - if ( IsPlayerDetained( victimid ) ) return SendError( playerid, "This player is already detained." ); - if ( IsPlayerInAnyVehicle( playerid ) ) return SendError( playerid, "You cannot do this while you're inside a vehicle." ); - if ( IsPlayerCuffed( victimid ) ) return SendError( playerid, "This player is already cuffed." ); - if ( IsPlayerJailed( victimid ) ) return SendError( playerid, "This player is jailed. He may be paused." ); - if ( !IsPlayerTazed( victimid ) ) return SendError( playerid, "You must taze this player before cuffing them." ); - if ( IsPlayerGettingBlowed( playerid ) ) return SendError( playerid, "You cannot use this command since you're getting blowed." ); - if ( IsPlayerBlowingCock( playerid ) ) return SendError( playerid, "You cannot use this command since you're giving oral sex." ); - if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You are kidnapped, you cannot do this." ); - if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You are tied, you cannot do this." ); - if ( IsPlayerAdminOnDuty( victimid ) ) return SendError( playerid, "You cannot use this command on admins that are on duty." ); - if ( IsPlayerJailed( victimid ) ) return SendError( playerid, "This player is jailed. He may be paused." ); - if ( IsPlayerLoadingObjects( victimid ) ) return SendError( playerid, "This player is in a object-loading state." ); - if ( GetPlayerState( playerid ) == PLAYER_STATE_WASTED ) return SendError( playerid, "You cannot use this command since you are dead." ); - if ( !IsPlayerSpawned( victimid ) ) return SendError( playerid, "The player must be spawned." ); - GameTextForPlayer( victimid, "~n~~r~CUFFED!", 2000, 4 ); - GameTextForPlayer( playerid, sprintf( "~n~~y~~h~/arrest %d", victimid ), 2000, 4 ); - SendClientMessageFormatted( victimid, -1, ""COL_RED"[CUFFED]{FFFFFF} You have been cuffed by %s(%d)!", ReturnPlayerName( playerid ), playerid ); - SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[CUFFED]{FFFFFF} You have cuffed %s(%d)!", ReturnPlayerName( victimid ), victimid ); - KillTimer( p_CuffAbuseTimer[ victimid ] ); - p_CuffAbuseTimer[ victimid ] = SetTimerEx( "Uncuff", ( 60 * 1000 ), false, "d", victimid ); - //ApplyAnimation( victimid, "ped", "cower", 5.0, 1, 1, 1, 0, 0 ); - //TogglePlayerControllable( victimid, 0 ); - p_Cuffed{ victimid } = true; - SetPlayerAttachedObject( victimid, 2, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977, -81.700035, 0.891999, 1.000000, 1.168000 ); - SetPlayerSpecialAction( victimid, SPECIAL_ACTION_CUFFED ); + new + victimid = GetClosestPlayer( playerid ); - if ( p_BobbyPins[ victimid ] ) - ShowPlayerHelpDialog( victimid, 4000, "You can uncuff yourself with ~p~/breakcuff." ); - else - ShowPlayerHelpDialog( victimid, 4000, "You can buy bobby pins at Supa Save or a 24/7 store to break cuffs." ); - } - else return SendError( playerid, "There are no players around to cuff." ); - return 1; + return CuffPlayer( victimid, playerid ); } CMD:uncuff( playerid, params[ ] ) @@ -14074,16 +13877,16 @@ CMD:uncuff( playerid, params[ ] ) if ( IsPlayerTazed( playerid ) ) return SendError( playerid, "You cannot use this command since you're tazed." ); if ( IsPlayerCuffed( playerid ) ) return SendError( playerid, "You cannot use this command since you're cuffed." ); if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You cannot use this command since you're kidnapped." ); - if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); + //if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); SendClientMessageFormatted( victimid, -1, ""COL_RED"[UNCUFFED]{FFFFFF} You have been uncuffed by %s(%d)!", ReturnPlayerName( playerid ), playerid ); SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[UNCUFFED]{FFFFFF} You have uncuffed %s(%d)!", ReturnPlayerName( victimid ), victimid ); ClearAnimations( victimid ); TogglePlayerControllable( victimid, 1 ); p_Cuffed{ victimid } = false; - p_Detained{ victimid } = false; - Delete3DTextLabel( p_DetainedLabel[ victimid ] ); - p_DetainedLabel[ victimid ] = Text3D: INVALID_3DTEXT_ID; - p_DetainedBy[ victimid ] = INVALID_PLAYER_ID; + //p_Detained{ victimid } = false; + //Delete3DTextLabel( p_DetainedLabel[ victimid ] ); + //p_DetainedLabel[ victimid ] = Text3D: INVALID_3DTEXT_ID; + //p_DetainedBy[ victimid ] = INVALID_PLAYER_ID; KillTimer( p_CuffAbuseTimer[ victimid ] ); SetPlayerSpecialAction( victimid, SPECIAL_ACTION_NONE ); RemovePlayerAttachedObject( victimid, 2 ); @@ -14092,7 +13895,7 @@ CMD:uncuff( playerid, params[ ] ) return 1; } -CMD:detain( playerid, params[ ] ) +/*CMD:detain( playerid, params[ ] ) { new victimid = GetClosestPlayer( playerid ); if ( p_Class[ playerid ] != CLASS_POLICE ) return SendError( playerid, "This is restricted to police only." ); @@ -14125,62 +13928,7 @@ CMD:detain( playerid, params[ ] ) } else return SendError( playerid, "There are no players around to detain." ); return 1; -} - -CMD:taze( playerid, params[ ] ) -{ - /* ** ANTI TAZE SPAM ** */ - if ( p_AntiTazeSpam[ playerid ] > g_iTime ) return SendError( playerid, "You must wait %d seconds before tazing someone again.", p_AntiTazeSpam[ playerid ] - g_iTime ); - /* ** END OF ANTI SPAM ** */ - - new victimid; // = GetClosestPlayer( playerid ); - if ( p_Class[ playerid ] != CLASS_POLICE ) return SendError( playerid, "This is restricted to police only." ); - else if ( sscanf( params, ""#sscanf_u"", victimid ) ) return SendUsage( playerid, "/taze [PLAYER_ID]" ); - else if ( victimid == playerid ) return SendError( playerid, "You cannot taze yourself." ); - else if ( !IsPlayerConnected( victimid ) ) return SendError( playerid, "There are no players around to taze." ); - else if ( p_Spectating{ playerid } ) return SendError( playerid, "You cannot use such commands while you're spectating." ); - else if ( GetDistanceBetweenPlayers( playerid, victimid ) < 5.0 && IsPlayerConnected( victimid ) ) - { - if ( p_Class[ victimid ] == p_Class[ playerid ] ) return SendError( playerid, "This player is in your team." ); - if ( p_WantedLevel[ victimid ] == 0 ) return SendError( playerid, "This player is innocent!" ); - if ( IsPlayerInAnyVehicle( victimid ) ) return SendError( playerid, "This player is in a vehicle " ); - if ( IsPlayerInAnyVehicle( playerid ) ) return SendError( playerid, "You cannot do this while you're inside a vehicle." ); - if ( IsPlayerTazed( victimid ) ) return SendError( playerid, "This player is already tazed." ); - //if ( IsPlayerCuffed( victimid ) ) return SendError( playerid, "This player is already cuffed." ); - if ( IsPlayerDetained( victimid ) ) return SendError( playerid, "This player is already detained." ); - if ( IsPlayerGettingBlowed( playerid ) ) return SendError( playerid, "You cannot use this command since you're getting blowed." ); - if ( IsPlayerBlowingCock( playerid ) ) return SendError( playerid, "You cannot use this command since you're giving oral sex." ); - if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You are kidnapped, you cannot do this." ); - if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You are tied, you cannot do this." ); - if ( IsPlayerAdminOnDuty( victimid ) ) return SendError( playerid, "You cannot use this command on admins that are on duty." ); - if ( IsPlayerJailed( victimid ) ) return SendError( playerid, "This player is jailed. He may be paused." ); - if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command while in jail." ); - if ( IsPlayerTied( victimid ) ) return SendError( playerid, "Tazing a tied player is pretty useless, though you can use /untie for a harder job!" ); - if ( IsPlayerLoadingObjects( victimid ) ) return SendError( playerid, "This player is in a object-loading state." ); - if ( IsPlayerInEvent( playerid ) ) return SendError( playerid, "You cannot use this command since you're in an event." ); - if ( GetPlayerState( playerid ) == PLAYER_STATE_WASTED ) return SendError( playerid, "You cannot use this command since you are dead." ); - if ( random( 101 ) < 90 ) - { - GameTextForPlayer( victimid, "~n~~r~TAZED!", 2000, 4 ); - GameTextForPlayer( playerid, sprintf( "~n~~y~~h~/cuff %d", victimid ), 2000, 4 ); - SendClientMessageFormatted( victimid, -1, ""COL_RED"[TAZED]{FFFFFF} You have been tazed by %s(%d) for 3 seconds!", ReturnPlayerName( playerid ), playerid ); - SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[TAZED]{FFFFFF} You have tazed %s(%d) for 3 seconds!", ReturnPlayerName( victimid ), victimid ); - SetTimerEx( "Untaze", 3000, false, "d", victimid ); - TogglePlayerControllable( victimid, 0 ); - ApplyAnimation( victimid, "CRACK", "crckdeth2", 5.0, 1, 1, 1, 0, 0 ); - p_Tazed{ victimid } = true; - } - else - { - SendClientMessageFormatted( playerid, -1, ""COL_RED"[TAZE FAIL]{FFFFFF} You have failed to taze %s(%d)!", ReturnPlayerName( victimid ), victimid ); - SendClientMessageFormatted( victimid, -1, ""COL_GREEN"[TAZE FAIL]{FFFFFF} %s(%d) has failed to taze you!", ReturnPlayerName( playerid ), playerid ); - } - p_AntiTazeSpam[ playerid ] = g_iTime + 6; - } else { - return SendError( playerid, "There are no players around to taze." ); - } - return 1; -} +}*/ CMD:rob( playerid, params[ ] ) { @@ -14203,7 +13951,7 @@ CMD:rob( playerid, params[ ] ) if ( GetPlayerCash( victimid ) < 10 ) return SendError( playerid, "This player cannot be robbed since he has a low amount of money." ); if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); if ( IsPlayerTazed( playerid ) ) return SendError( playerid, "You cannot use this command since you're tazed." ); - if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); + //if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); if ( IsPlayerCuffed( playerid ) ) return SendError( playerid, "You cannot use this command since you're cuffed." ); if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You cannot use this command since you're tied." ); if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You cannot use this command since you're kidnapped." ); @@ -14272,7 +14020,7 @@ CMD:rape( playerid, params[ ] ) if ( IsPlayerInAnyVehicle( playerid ) ) return SendError( playerid, "You cannot use this command inside a vehicle." ); if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); if ( IsPlayerTazed( playerid ) ) return SendError( playerid, "You cannot use this command since you're tazed." ); - if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); + //if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); if ( IsPlayerCuffed( playerid ) ) return SendError( playerid, "You cannot use this command since you're cuffed." ); if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You cannot use this command since you're tied." ); if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You cannot use this command since you're kidnapped." ); @@ -14344,7 +14092,7 @@ CMD:c4( playerid, params[ ] ) if ( !JobEquals( playerid, JOB_TERRORIST ) ) return SendError( playerid, "This is restricted to terrorists." ); if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); if ( IsPlayerTazed( playerid ) ) return SendError( playerid, "You cannot use this command since you're tazed." ); - if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); + //if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); if ( IsPlayerCuffed( playerid ) ) return SendError( playerid, "You cannot use this command since you're cuffed." ); if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You cannot use this command since you're tied." ); if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You cannot use this command since you're kidnapped." ); @@ -17427,7 +17175,7 @@ CMD:forceac( playerid, params[ ] ) p_forcedAnticheat[ pID ] = p_AccountID[ playerid ]; mysql_single_query( sprintf( "UPDATE `USERS` SET `FORCE_AC`=%d WHERE `ID`=%d", p_AccountID[ playerid ], p_AccountID[ pID ] ) ); AddAdminLogLineFormatted( "%s(%d) has forced ac on %s(%d)", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID ); - SendGlobalMessage( -1, ""COL_PINK"[ADMIN]"COL_GREY" %s is required to use an anticheat to play by %s. "COL_YELLOW"(www.samp-ac.com)", ReturnPlayerName( pID ), ReturnPlayerName( playerid ) ); + SendGlobalMessage( -1, ""COL_PINK"[ADMIN]"COL_GREY" %s is required to use an anticheat to play by %s. "COL_YELLOW"("AC_WEBSITE")", ReturnPlayerName( pID ), ReturnPlayerName( playerid ) ); if ( ! IsPlayerUsingSampAC( pID ) ) KickPlayerTimed( pID ); } else @@ -19360,8 +19108,8 @@ public OnPlayerStateChange(playerid, newstate, oldstate) if ( newstate == PLAYER_STATE_DRIVER ) CallLocalFunction( "OnPlayerDriveVehicle", "dd", playerid, vID ); - if ( newstate == PLAYER_STATE_ONFOOT && p_Detained{ playerid } == true && IsPlayerConnected( p_DetainedBy[ playerid ] ) ) - return PutPlayerInEmptyVehicleSeat( p_LastVehicle[ p_DetainedBy[ playerid ] ], playerid ); + //if ( newstate == PLAYER_STATE_ONFOOT && p_Detained{ playerid } == true && IsPlayerConnected( p_DetainedBy[ playerid ] ) ) + // return PutPlayerInEmptyVehicleSeat( p_LastVehicle[ p_DetainedBy[ playerid ] ], playerid ); if ( newstate == PLAYER_STATE_PASSENGER ) { @@ -19393,15 +19141,34 @@ public OnPlayerEnterDynamicCP(playerid, checkpointid) if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You can't do anything as you are tied." ); - /* ** Dropoff check ** */ + /* ** Dropoff check ** new bDropoff = false; for ( new i = CP_DROP_OFF_COP; i <= CP_DROP_OFF_HELI; i ++ ) if ( checkpointid == g_Checkpoints[ i ] ) - bDropoff = true; + bDropoff = true;*/ - if ( IsPlayerJailed( playerid ) && !bDropoff ) + /* ** Ore Mining At Alcatraz ** */ + if ( checkpointid == g_Checkpoints[ CP_ALCATRAZ_EXPORT ] ) + { + if ( IsPlayerAttachedObjectSlotUsed( playerid, 4 ) ) + { + new ore = GetPVarInt( playerid, "carrying_ore" ); + + if ( ! ( 0 <= ore < sizeof( g_miningData ) ) ) + return SendError( playerid, "An error has occured, try again." ), RemoveEquippedOre( playerid ); + + new earned_money = floatround( float( g_orePrices[ g_miningData[ ore ] [ E_ORE ] ] ) * 0.5 ); + + GivePlayerCash( playerid, earned_money ); + SendServerMessage( playerid, "You have crushed a "COL_GREY"%s"COL_WHITE" Ore and earned "COL_GOLD"%s"COL_WHITE".", getOreName( g_miningData[ ore ] [ E_ORE ] ), number_format( earned_money ) ); + RemoveEquippedOre( playerid ); + } + return 1; + } + + if ( IsPlayerJailed( playerid ) ) // || && !bDropoff return SendError( playerid, "You're jailed, and you accessed a checkpoint. I smell a cheater." ), KickPlayerTimed( playerid ), 1; /* ** Continue ** */ @@ -19479,7 +19246,7 @@ public OnPlayerEnterDynamicCP(playerid, checkpointid) } // Detain Mechanism - if ( bDropoff ) + /*if ( bDropoff ) { if ( p_Class[ playerid ] != CLASS_POLICE ) return 1; @@ -19526,13 +19293,13 @@ public OnPlayerEnterDynamicCP(playerid, checkpointid) GivePlayerCash( playerid, iCashEarned ); GivePlayerScore( playerid, iDetained * 2 ); - CallLocalFunction( "OnPlayerArrest", "dddd", playerid, INVALID_PLAYER_ID, p_Arrests[ playerid ], iDetained ); + CallLocalFunction( "OnPlayerArrested", "dddd", playerid, INVALID_PLAYER_ID, p_Arrests[ playerid ], iDetained ); return SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[ACHIEVE]{FFFFFF} You have earned "COL_GOLD"%s{FFFFFF} and %d score for dropping off %d criminal(s) to prison.", number_format( iCashEarned ), iDetained * 2, iDetained ); } else return SendError( playerid, "There are no detained criminals in your vehicle that can be jailed." ); } else return SendError( playerid, "You need a driver of a vehicle with detained criminals to use this." ); - } + }*/ if ( checkpointid == g_Checkpoints[ CP_FIGHTSTYLE ] || checkpointid == g_Checkpoints[ CP_FIGHTSTYLE_LV ] || checkpointid == g_Checkpoints[ CP_FIGHTSTYLE_LS ] ) { @@ -20332,7 +20099,7 @@ public OnPlayerPickUpDynamicPickup( playerid, pickupid ) // Bribes foreach(new bribeid : BribeCount) if ( g_bribeData[ bribeid ] [ E_PICKUP ] [ 0 ] == pickupid || g_bribeData[ bribeid ] [ E_PICKUP ] [ 1 ] == pickupid ) { - if ( !( g_bribeData[ bribeid ] [ E_DISABLED ] == true || p_WantedLevel[ playerid ] <= 0 || IsPlayerDetained( playerid ) || IsPlayerCuffed( playerid ) || GetPlayerState( playerid ) == PLAYER_STATE_SPECTATING ) ) + if ( !( g_bribeData[ bribeid ] [ E_DISABLED ] == true || p_WantedLevel[ playerid ] <= 0 || IsPlayerCuffed( playerid ) || GetPlayerState( playerid ) == PLAYER_STATE_SPECTATING ) ) // || IsPlayerDetained( playerid ) { new iWanted = 2; @@ -20719,7 +20486,7 @@ function OnSafeHelperUpdate( playerid, robberyid ) return ( p_SafeHelperTimer[ playerid ] = SetTimerEx( "OnSafeHelperUpdate", 500, false, "dd", playerid, robberyid ) ); } -public OnPlayerArrest( playerid, victimid, totalarrests, totalpeople ) +public OnPlayerArrested( playerid, victimid, totalarrests, totalpeople ) { new iBefore = p_Arrests[ playerid ], @@ -20728,7 +20495,7 @@ public OnPlayerArrest( playerid, victimid, totalarrests, totalpeople ) incrementPlayerStreak( playerid, STREAK_ARREST ); - if ( iBefore < 1000 && iAfter >= 1000 ) ShowAchievement( playerid, "Arrested ~r~1000~w~~h~~h~ criminals!", 25 ); + if ( iBefore < 1000 && iAfter >= 1000 ) ShowAchievement( playerid, "Arrested ~r~1000~w~~h~~h~ criminals!", 25 ); else if ( iBefore < 500 && iAfter >= 500 ) ShowAchievement( playerid, "Arrested ~r~500~w~~h~~h~ criminals!", 18 ); else if ( iBefore < 200 && iAfter >= 200 ) ShowAchievement( playerid, "Arrested ~r~200~w~~h~~h~ criminals!", 15 ); else if ( iBefore < 100 && iAfter >= 100 ) ShowAchievement( playerid, "Arrested ~r~100~w~~h~~h~ criminals!", 12 ); @@ -21377,9 +21144,11 @@ public OnPlayerKeyStateChange( playerid, newkeys, oldkeys ) closestid = GetClosestPlayer( playerid ); if ( closestid != INVALID_PLAYER_ID && p_Class[ closestid ] != CLASS_POLICE && ! ( GetDistanceBetweenPlayers( playerid, closestid ) > 10.0 || !IsPlayerConnected( closestid ) ) ) { - if ( p_WantedLevel[ closestid ] > 5 ) - GameTextForPlayer( playerid, sprintf( "~n~~y~~h~/taze %d", closestid ), 2000, 4 ); // TazePlayer( playerid, closestid ); - else { + if ( p_WantedLevel[ closestid ] > 5 ) { + if ( IsPlayerCuffed( closestid ) ) ArrestPlayer( closestid, playerid ); + else if ( IsPlayerTazed( closestid ) ) CuffPlayer( closestid, playerid ); + else TazePlayer( closestid, playerid ); + } else { TicketPlayer( closestid, playerid ); } } @@ -21555,16 +21324,18 @@ public OnPlayerUpdate( playerid ) public OnPlayerEditAttachedObject( playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ ) { - new - slot = p_ToySlotSelected{ playerid }; + new slot = p_ToySlotSelected{ playerid }; + new color = p_AttachedObjectsData[ playerid ] [ slot ] [ E_COLOR ]; if ( response ) { 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 ( 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; p_AttachedObjectsData[ playerid ] [ slot ] [ E_OX ] = fOffsetX; p_AttachedObjectsData[ playerid ] [ slot ] [ E_OY ] = fOffsetY; @@ -21576,8 +21347,9 @@ public OnPlayerEditAttachedObject( playerid, response, index, modelid, boneid, F p_AttachedObjectsData[ playerid ] [ slot ] [ E_SY ] = fScaleY; p_AttachedObjectsData[ playerid ] [ slot ] [ E_SZ ] = fScaleZ; p_AttachedObjectsData[ playerid ] [ slot ] [ E_MODELID ] = modelid; + RemovePlayerAttachedObject( playerid, index ); - SetPlayerAttachedObject( playerid, index, modelid, boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ ); + SetPlayerAttachedObject( playerid, index, modelid, boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ, color, color ); format( szBigString, sizeof( szBigString ), "UPDATE `TOYS` SET `OX`=%f,`OY`=%f,`OZ`=%f,`RX`=%f,`RY`=%f,`RZ`=%f,`SX`=%f,`SY`=%f,`SZ`=%f WHERE `ID`=%d", fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ, p_AttachedObjectsData[ playerid ] [ slot ] [ E_SQL_ID ] ); mysql_single_query( szBigString ); @@ -21591,7 +21363,8 @@ public OnPlayerEditAttachedObject( playerid, response, index, modelid, boneid, F SetPlayerAttachedObject( playerid, index, p_AttachedObjectsData[ playerid ] [ slot ] [ E_MODELID ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_BONE ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_OX ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_OY ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_OZ ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_RX ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_RY ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_RZ ], - p_AttachedObjectsData[ playerid ] [ slot ] [ E_SX ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_SY ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_SZ ] + p_AttachedObjectsData[ playerid ] [ slot ] [ E_SX ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_SY ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_SZ ], + color, color ); } showToyEditMenu( playerid, slot ); @@ -21608,13 +21381,7 @@ public OnPlayerStreamOut(playerid, forplayerid) return 1; } -public AC_OnFileExecuted( playerid, module[ ], md5[ ] ) { - /*format( szNormalString, sizeof( szNormalString ), "[ANTI-CHEAT]{FFFFFF} %s(%d) executed a file:"COL_GREY"%s", ReturnPlayerName( playerid ), playerid, module ); - SendClientMessageToAdmins( COLOR_PINK, szNormalString );*/ - return 1; -} - -public AC_OnImgFileModifed( playerid, filename[ ], md5[ ] ) { +/*public AC_OnImgFileModifed( playerid, filename[ ], md5[ ] ) { format( szNormalString, sizeof( szNormalString ), "[ANTI-CHEAT]{FFFFFF} %s(%d) modified an img file: "COL_GREY"%s", ReturnPlayerName( playerid ), playerid, filename ); SendClientMessageToAdmins( COLOR_PINK, szNormalString ); return 1; @@ -21627,7 +21394,7 @@ public AC_OnFileCalculated( playerid, filename[ ], md5[ ], bool: isCheat ) SendClientMessageToAdmins( COLOR_PINK, szNormalString ); } return 1; -} +}*/ thread OnPlayerLogin( playerid, password[ ] ) { @@ -21752,7 +21519,7 @@ thread OnPlayerLogin( playerid, password[ ] ) // anti-cheat if ( p_forcedAnticheat[ playerid ] > 0 && ! IsPlayerUsingSampAC( playerid ) ) { - SendError( playerid, "You must install an anticheat to play the server. Visit "COL_GREY"www.samp-ac.com"COL_WHITE" to install the anticheat." ); + SendError( playerid, "You must install an anticheat to play the server. Visit "COL_GREY""AC_WEBSITE""COL_WHITE" to install the anticheat." ); KickPlayerTimed( playerid ); return 1; } @@ -22872,13 +22639,44 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) format( szLargeString, 350, "%s"COL_GREY"Bank:"COL_WHITE" %s\n"COL_GREY"Zones Captured:"COL_WHITE" %d", szLargeString, number_format( g_gangData[ g ] [ E_BANK ] ), GetGangCapturedTurfs( g ) ); ShowPlayerDialog( playerid, DIALOG_GANG_LIST_RESPONSE, DIALOG_STYLE_MSGBOX, "{FFFFFF}Gang Statistics", szLargeString, "Close", "Back" ); } - case 1: mysql_function_query( dbHandle, sprintf( "SELECT `NAME`,`ONLINE` FROM `USERS` WHERE `GANG_ID`=%d ORDER BY `ONLINE` DESC", g_gangData[ g ] [ E_SQL_ID ] ), true, "OnListGangMembers", "dd", playerid, g ); // View gang members + case 1: + { + // View gang members + mysql_tquery( dbHandle, + sprintf( "SELECT `NAME`,`ONLINE` FROM `USERS` WHERE `GANG_ID`=%d ORDER BY `ONLINE` DESC LIMIT 20 OFFSET 0", g_gangData[ g ] [ E_SQL_ID ] ), + "OnListGangMembers", "ddd", playerid, g, 0 + ); + } } return 1; } - if ( dialogid == DIALOG_GANG_LIST_RESPONSE || dialogid == DIALOG_GANG_LIST_MEMBERS ) + if ( dialogid == DIALOG_GANG_LIST_RESPONSE ) { + return ShowPlayerDialog( playerid, DIALOG_GANG_LIST_OPTIONS, DIALOG_STYLE_LIST, "{FFFFFF}Gang Options", "View Statistics\nView Gang Members", "Select", "Back" ); + } + if ( dialogid == DIALOG_GANG_LIST_MEMBERS ) { - ShowPlayerDialog( playerid, DIALOG_GANG_LIST_OPTIONS, DIALOG_STYLE_LIST, "{FFFFFF}Gang Options", "View Statistics\nView Gang Members", "Select", "Back" ); + new g = GetPVarInt( playerid, "gang_members_id" ); + new members_shown = GetPVarInt( playerid, "gang_members_results" ); + new page = GetPVarInt( playerid, "gang_members_page" ); + + if ( ! Iter_Contains( gangs, g ) ) + return SendError( playerid, "Could not find gang. Try again." ); + + if ( ! response && page == 0 ) + return ShowPlayerDialog( playerid, DIALOG_GANG_LIST_OPTIONS, DIALOG_STYLE_LIST, "{FFFFFF}Gang Options", "View Statistics\nView Gang Members", "Select", "Back" ); + + if ( members_shown < 20 && response ) + return 1; + + // if response, add a page, otherwise previous + page += response ? 1 : -1; + + // find page result + mysql_tquery( dbHandle, + sprintf( "SELECT `NAME`,`ONLINE` FROM `USERS` WHERE `GANG_ID`=%d ORDER BY `ONLINE` DESC LIMIT 20 OFFSET %d", g_gangData[ g ] [ E_SQL_ID ], page * 20 ), + "OnListGangMembers", "ddd", playerid, g, page + ); + return 1; } if ( ( dialogid == DIALOG_PERKS ) && response ) { @@ -23686,6 +23484,44 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) showToyEditMenu( playerid, iSlot ); } + if ( dialogid == DIALOG_TOYS_COLOR ) + { + new + slot = p_ToySlotSelected{ playerid }; + + if ( !response ) + return showToyEditMenu( playerid, slot ); + + new + hexcode[ 7 ]; + + if ( sscanf( inputtext, "S(000000)[7]", hexcode ) ) SendError( playerid, "Please ensure your hex is 6 characters at maximum (RRGGBB)." ); + else if ( ! isHex( hexcode ) ) SendError( playerid, "This is not a valid hex code." ); + else + { + if ( strmatch( hexcode, "000000" ) ) + { + p_AttachedObjectsData[ playerid ] [ slot ] [ E_COLOR ] = 0; + mysql_single_query( sprintf( "UPDATE `TOYS` SET `COLOR`=0 WHERE `ID`=%d", p_AttachedObjectsData[ playerid ] [ slot ] [ E_SQL_ID ] ) ); + SendServerMessage( playerid, "You have reset your toy's color." ); + } + else + { + new + final_hex; + + if ( ! sscanf( sprintf( "0xFF%s", hexcode ), "h", final_hex ) ) + { + p_AttachedObjectsData[ playerid ] [ slot ] [ E_COLOR ] = final_hex; + mysql_single_query( sprintf( "UPDATE `TOYS` SET `COLOR`=%d WHERE `ID`=%d", p_AttachedObjectsData[ playerid ] [ slot ] [ E_COLOR ], p_AttachedObjectsData[ playerid ] [ slot ] [ E_SQL_ID ] ) ); + SendServerMessage( playerid, "You have set your toy's color to {%s}%s"COL_WHITE".", hexcode, hexcode ); + } + else SendError( playerid, "This is not a valid hex code." ); + } + return reloadPlayerToys( playerid ); + } + return showToyEditMenu( playerid, slot ); + } if ( ( dialogid == DIALOG_TOYS_EDIT ) ) { if ( !response ) @@ -23714,6 +23550,16 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) SendServerMessage( playerid, "You are now reselecting your toy's bone." ); } case 2: + { + if ( !p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_ENABLED ] ) { + SendError( playerid, "You cannot set the color of a disabled toy." ); + return showToyEditMenu( playerid, p_ToySlotSelected{ playerid } ); + } + + ShowPlayerDialog( playerid, DIALOG_TOYS_COLOR, DIALOG_STYLE_INPUT, "{FFFFFF}Toys - Color", ""COL_WHITE"Please specify the color (hex) code as "COL_RED"RR"COL_GREEN"GG"COL_BLUE"BB"COL_WHITE" below:", "Select", "Back" ); + SendServerMessage( playerid, "You are now editing your toy's color, enter nothing or 000000 to reset it." ); + } + case 3: { p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_ENABLED ] = !p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_ENABLED ]; @@ -23728,7 +23574,8 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) SetPlayerAttachedObject( playerid, 7 + p_ToySlotSelected{ playerid }, p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_MODELID ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_BONE ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_OX ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_OY ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_OZ ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_RX ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_RY ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_RZ ], - p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_SX ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_SY ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_SZ ] + p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_SX ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_SY ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_SZ ], + p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_COLOR ], p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_COLOR ] ); SendServerMessage( playerid, "You have enabled this toy." ); } @@ -23738,7 +23585,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) showToyEditMenu( playerid, p_ToySlotSelected{ playerid } ); } - case 3: + case 4: { RemovePlayerAttachedObject( playerid, 7 + p_ToySlotSelected{ playerid } ); p_AttachedObjectsData[ playerid ] [ p_ToySlotSelected{ playerid } ] [ E_BONE ] = 0; @@ -23900,9 +23747,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) strcat( szCMDS, ""COL_GREY"/shop{FFFFFF} - Displays the shop menu whilst in Supa Save.\n"\ ""COL_GREY"/tie{FFFFFF} - Ties the closest player with your rope(s).\n"\ ""COL_GREY"/untie{FFFFFF} - Unties the closest player.\n" ); - strcat( szCMDS, ""COL_GREY"/cuttie{FFFFFF} - Cuts your tie currently on you.\n"\ - ""COL_GREY"/breakout{FFFFFF} - Breaks out the jail by melting the cell bars using a Metal Melter.\n"\ - ""COL_GREY"/breakcuff{FFFFFF} - Unlocks the handcuffs placed by a LEO using a bobby pin." ); + strcat( szCMDS, ""COL_GREY"/breakout{FFFFFF} - Breaks out the jail by melting the cell bars using a Metal Melter." ); ShowPlayerDialog( playerid, DIALOG_CMDS_REDIRECT, DIALOG_STYLE_MSGBOX, "{FFFFFF}Shop/Item Commands", szCMDS, "Okay", "Back" ); } case 4: @@ -24010,7 +23855,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) ""COL_GREY"Army Warns:{FFFFFF} %d/" #MAX_CLASS_BAN_WARNS "\n"\ ""COL_GREY"V.I.P Job:{FFFFFF} %s\n"\ ""COL_GREY"Current Job:{FFFFFF} %s", - szLargeString, VIPToString( p_VIPLevel[ pID ] ), vipSeconds > 0 ? secondstotime( vipSeconds ) : ( "N/A" ), p_CopBanned{ pID }, p_ArmyBanned{ pID }, p_VIPLevel[ pID ] < 5 ? ( "N/A" ) : GetJobName( p_VIPJob{ pID } ), GetJobName( p_Job{ pID } ) ); + szLargeString, VIPToString( p_VIPLevel[ pID ] ), vipSeconds > 0 ? secondstotime( vipSeconds ) : ( "N/A" ), p_CopBanned{ pID }, p_ArmyBanned{ pID }, p_VIPLevel[ pID ] < VIP_GOLD ? ( "N/A" ) : GetJobName( p_VIPJob{ pID } ), GetJobName( p_Job{ pID } ) ); if ( gangid != -1 ) { format( szLargeString, 750, "%s\n"COL_GREY"Gang:"COL_WHITE" %s(%d)", szLargeString, g_gangData[ gangid ] [ E_NAME ], gangid ); @@ -24325,6 +24170,9 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if ( p_AddedEmail{ playerid } ) return SendError( playerid, "You already added an email to your account before." ); + if ( GetPlayerScore( playerid ) < 50 ) + return SendServerMessage( playerid, "Get at least 50 score, then use this feature." ); + Beep( playerid ); p_AddedEmail{ playerid } = true; //p_IrresistibleCoins[ playerid ] += 5.0; @@ -24357,7 +24205,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if ( strlen( szInput ) != 8 ) return SendError( playerid, "The verification code must be 8 characters." ), ShowPlayerAccountVerification( playerid ); - format( szBigString, sizeof( szBigString ), "SELECT * FROM `USER_CONFIRMED_IPS` WHERE `USER_ID`=%d AND `IP`='%s' AND `TOKEN`='%s'", p_AccountID[ playerid ], mysql_escape( ReturnPlayerIP( playerid ) ), szInput ); + mysql_format( dbHandle, szBigString, sizeof( szBigString ), "SELECT * FROM `USER_CONFIRMED_IPS` WHERE `USER_ID`=%d AND `IP`='%e' AND `TOKEN`='%e'", p_AccountID[ playerid ], ReturnPlayerIP( playerid ), szInput ); mysql_function_query( dbHandle, szBigString, true, "OnAccountGuardVerify", "d", playerid ); return 1; } @@ -25053,8 +24901,7 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) if ( ( dialogid == DIALOG_HELP ) && response ) { SetPVarInt( playerid, "help_category", listitem ); - format( szNormalString, sizeof( szNormalString ), "SELECT `SUBJECT`,`ID`,`CATEGORY` FROM `HELP` WHERE `CATEGORY`=%d ORDER BY `SUBJECT` ASC", listitem ); - mysql_function_query( dbHandle, szNormalString, true, "OnFetchCategoryResponse", "dd", playerid, listitem ); + mysql_function_query( dbHandle, sprintf( "SELECT `SUBJECT`,`ID`,`CATEGORY` FROM `HELP` WHERE `CATEGORY`=%d ORDER BY `SUBJECT` ASC", listitem ), true, "OnFetchCategoryResponse", "dd", playerid, listitem ); } if ( dialogid == DIALOG_HELP_CATEGORY ) { @@ -25075,10 +24922,8 @@ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) HTTP( playerid, HTTP_GET, sprintf( "sfcnr.com/api/player/help/%d", digits[ listitem ] ), "", "OnHelpHTTPResponse" ); } - if ( ( dialogid == DIALOG_HELP_THREAD ) && !response ) - { - format( szNormalString, 72, "SELECT `SUBJECT`,`ID`,`CATEGORY` FROM `HELP` WHERE `CATEGORY`=%d ORDER BY `SUBJECT` ASC", GetPVarInt( playerid, "help_category" ) ); - mysql_function_query( dbHandle, szNormalString, true, "OnFetchCategoryResponse", "dd", playerid, GetPVarInt( playerid, "help_category" ) ); + if ( ( dialogid == DIALOG_HELP_THREAD ) && !response ) { + mysql_function_query( dbHandle, sprintf( "SELECT `SUBJECT`,`ID`,`CATEGORY` FROM `HELP` WHERE `CATEGORY`=%d ORDER BY `SUBJECT` ASC", GetPVarInt( playerid, "help_category" ) ), true, "OnFetchCategoryResponse", "dd", playerid, GetPVarInt( playerid, "help_category" ) ); } if ( ( dialogid == DIALOG_HELP_BACK ) && !response ) return cmd_help( playerid, "" ); if ( ( dialogid == DIALOG_GATE ) && response ) @@ -26907,10 +26752,9 @@ stock SetPlayerPosToPrison( playerid ) Float: alctrazSpawnPoints[ ] [ 3 ] = { - { -2008.7112, 1876.0122, 21.7957 }, - { -2062.8308, 1878.9573, 21.7957 }, - { -2112.6472, 1907.8503, 21.7957 }, - { -2040.2295, 1918.9410, 21.7957 } + { -2005.1923, 1748.1976, 43.7386 }, + { -2013.7557, 1783.2218, 43.7386 }, + { -2049.5774, 1734.1851, 43.7386 } }, Float: loadingHeight = 0.50 @@ -26926,7 +26770,7 @@ stock SetPlayerPosToPrison( playerid ) SetTimerEx ( "ope_Unfreeze", 5000, false, "d", playerid ); p_inAlcatraz { playerid } = false; - if ( p_JailTime[ playerid ] > 600 ) + if ( p_JailTime[ playerid ] > ALCATRAZ_REQUIRED_TIME ) { iRandom = random( sizeof( alctrazSpawnPoints ) ); SetPlayerPos ( playerid, alctrazSpawnPoints[ iRandom ][ 0 ], alctrazSpawnPoints[ iRandom ][ 1 ], alctrazSpawnPoints[ iRandom ][ 2 ] + loadingHeight ); @@ -26984,11 +26828,11 @@ stock JailPlayer( playerid, seconds, admin = 0 ) p_TicketIssuer [ playerid ] = INVALID_PLAYER_ID; // Reset Tickets p_TicketTimestamp [ playerid ] = 0; // Reset Tickets p_Cuffed { playerid } = false; - p_Detained { playerid } = false; + //p_Detained { playerid } = false; p_InfectedHIV { playerid } = false; - Delete3DTextLabel ( p_DetainedLabel[ playerid ] ); - p_DetainedLabel [ playerid ] = Text3D: INVALID_3DTEXT_ID; - p_DetainedBy [ playerid ] = INVALID_PLAYER_ID; + //Delete3DTextLabel ( p_DetainedLabel[ playerid ] ); + //p_DetainedLabel [ playerid ] = Text3D: INVALID_3DTEXT_ID; + //p_DetainedBy [ playerid ] = INVALID_PLAYER_ID; // Primary Jail Variables p_Jailed { playerid } = true; @@ -27921,13 +27765,13 @@ function SetPlayerRandomSpawn( playerid ) stock initializeCheckpoints( ) { g_Checkpoints[ CP_BOMB_SHOP ] = CreateDynamicCP( -1923.7546, 303.3475, 41.0469, 2.0, 0, -1, -1, 100.0 ); - g_Checkpoints[ CP_DROP_OFF_COP ] = CreateDynamicCP( -1577.0952, 683.9492, 7.2440, 3.0, 0, -1, -1, 100.0 ); + //g_Checkpoints[ CP_DROP_OFF_COP ] = CreateDynamicCP( -1577.0952, 683.9492, 7.2440, 3.0, 0, -1, -1, 100.0 ); g_Checkpoints[ CP_BANK_MENU ] = CreateDynamicCP( -1405.0657, 831.0966, 984.7126, 1.0, -1, -1, -1, 100.0 ); g_Checkpoints[ CP_COUNTRY_BANK_MENU ] = CreateDynamicCP( 2156.1299, 1640.2460, 1041.6124, 1.0, -1, -1, -1, 100.0 ); g_Checkpoints[ CP_CHANGE_JOB ] = CreateDynamicCP( 361.8525, 173.6031, 1008.3828, 1.0, -1, -1, -1, 50.0 ); g_Checkpoints[ CP_HOSPITAL ] = CreateDynamicCP( -2647.5007, 659.0084, 970.4332, 2.0, -1, -1, -1, 100.0 ); g_Checkpoints[ CP_PAINTBALL ] = CreateDynamicCP( -2172.2017, 252.1113, 35.3388, 1.0, -1, -1, -1, 100.0 ); - g_Checkpoints[ CP_DROP_OFF_FBI ] = CreateDynamicCP( -2446.6785, 522.9684, 30.2548, 3.0, -1, -1, -1, 100.0 ); + //g_Checkpoints[ CP_DROP_OFF_FBI ] = CreateDynamicCP( -2446.6785, 522.9684, 30.2548, 3.0, -1, -1, -1, 100.0 ); g_Checkpoints[ CP_LUMBERJACK ] = CreateDynamicCP( -2323.5676, -97.2582, 35.3078, 1.0, -1, -1, -1, 100.0 ); g_Checkpoints[ CP_FIGHTSTYLE ] = CreateDynamicCP( 768.2576, -22.8351, 1000.5859, 2.0, -1, -1, -1, 25.0 ); g_Checkpoints[ CP_VEHDEALER ] = CreateDynamicCP( -1867.9092, -646.3469, 1002.1284, 1.0, -1, -1, -1, 25.0 ); @@ -27935,14 +27779,14 @@ stock initializeCheckpoints( ) g_Checkpoints[ CP_AMMUNATION_0 ] = CreateDynamicCP( 296.3782, -38.4512, 1001.5156, 1.0, -1, -1, -1, 20.0 ); g_Checkpoints[ CP_AMMUNATION_1 ] = CreateDynamicCP( 295.4524, -80.7487, 1001.5156, 1.0, -1, -1, -1, 20.0 ); g_Checkpoints[ CP_AMMUNATION_2 ] = CreateDynamicCP( 312.8432, -166.1419, 999.6010, 1.0, -1, -1, -1, 20.0 ); - g_Checkpoints[ CP_DROP_OFF_HELI ] = CreateDynamicCP( -1651.6956, 700.8394, 38.2422, 5.0, -1, -1, -1, 50.0 ); + //g_Checkpoints[ CP_DROP_OFF_HELI ] = CreateDynamicCP( -1651.6956, 700.8394, 38.2422, 5.0, -1, -1, -1, 50.0 ); g_Checkpoints[ CP_PAWNSHOP ] = CreateDynamicCP( 1333.0847, -1080.0726, 968.0430, 1.0, -1, -1, -1, 20.0 ); g_Checkpoints[ CP_REFILL_AMMO ] = CreateDynamicCP( -1615.2600, 685.5120, 7.1875, 1.0, -1, -1, -1, 20.0 ); g_Checkpoints[ CP_REFILL_AMMO_LS ] = CreateDynamicCP( -1615.2600, 685.5120, 7.1875, 1.0, -1, -1, -1, 20.0 ); - g_Checkpoints[ CP_DROP_OFF_FC ] = CreateDynamicCP( -211.6869, 979.3518, 19.3237, 3.0, -1, -1, -1, 100.0 ); - g_Checkpoints[ CP_DROP_OFF_DILLIMORE ] = CreateDynamicCP( 614.2876, -588.6716, 17.2330, 3.0, -1, -1, -1, 100.0 ); - g_Checkpoints[ CP_DROP_OFF_DIABLO ] = CreateDynamicCP( -433.3666, 2255.6064, 42.4297, 3.0, -1, -1, -1, 100.0 ); - g_Checkpoints[ CP_DROP_OFF_QUBRADOS ] = CreateDynamicCP( -1400.0497, 2647.2358, 55.6875, 3.0, -1, -1, -1, 100.0 ); + //g_Checkpoints[ CP_DROP_OFF_FC ] = CreateDynamicCP( -211.6869, 979.3518, 19.3237, 3.0, -1, -1, -1, 100.0 ); + //g_Checkpoints[ CP_DROP_OFF_DILLIMORE ] = CreateDynamicCP( 614.2876, -588.6716, 17.2330, 3.0, -1, -1, -1, 100.0 ); + //g_Checkpoints[ CP_DROP_OFF_DIABLO ] = CreateDynamicCP( -433.3666, 2255.6064, 42.4297, 3.0, -1, -1, -1, 100.0 ); + //g_Checkpoints[ CP_DROP_OFF_QUBRADOS ] = CreateDynamicCP( -1400.0497, 2647.2358, 55.6875, 3.0, -1, -1, -1, 100.0 ); g_Checkpoints[ CP_BIZ_TERMINAL_COKE ] = CreateDynamicCP( 2563.5728, -1310.5925, 1143.7242, 1.0, -1, -1, -1, 30.0 ); g_Checkpoints[ CP_BIZ_TERMINAL_METH ] = CreateDynamicCP( 2034.0669, 1001.6073, 1510.2416, 1.0, -1, -1, -1, 30.0 ); g_Checkpoints[ CP_BIZ_TERMINAL_WEED ] = CreateDynamicCP( -1742.9982, -1377.3049, 5874.1333, 1.0, -1, -1, -1, 30.0 ); @@ -27954,24 +27798,25 @@ stock initializeCheckpoints( ) g_Checkpoints[ CP_AIRPORT_LS ] = CreateDynamicCP( 1642.22740, -2335.4978, 13.5469, 1.0, -1, -1, -1, 30.0 ); g_Checkpoints[ CP_AIRPORT_SF ] = CreateDynamicCP( -1422.4063, -286.50810, 14.1484, 1.0, -1, -1, -1, 30.0 ); g_Checkpoints[ CP_CASINO_BAR ] = CreateDynamicCP( 2655.8694, 1591.1545, 1506.1793, 1.0, -1, -1, -1, 30.0 ); + g_Checkpoints[ CP_ALCATRAZ_EXPORT ] = CreateDynamicCP( -1999.9487, 1781.2325, 43.7386, 1.0, -1, -1, -1, 30.0 ); // Out of SF - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -211.6869, 979.3518, 19.3237, 50.0); - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, 614.2876, -588.6716, 17.2330, 50.0); - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -433.3666, 2255.6064, 42.4297, 50.0); - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -1400.0497, 2647.2358, 55.6875, 50.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -211.6869, 979.3518, 19.3237, 50.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, 614.2876, -588.6716, 17.2330, 50.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -433.3666, 2255.6064, 42.4297, 50.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -1400.0497, 2647.2358, 55.6875, 50.0); #if ENABLE_CITY_LV == true g_Checkpoints[ CP_BOMB_SHOP_LV ] = CreateDynamicCP( 1998.7263, 2298.5562, 10.8203, 2.0, 0, -1, -1, 100.0 ); - g_Checkpoints[ CP_DROP_OFF_COP_LV ] = CreateDynamicCP( 2225.6753, 2457.2388, -7.4531, 3.0, 0, -1, -1, 100.0 ); + //g_Checkpoints[ CP_DROP_OFF_COP_LV ] = CreateDynamicCP( 2225.6753, 2457.2388, -7.4531, 3.0, 0, -1, -1, 100.0 ); g_Checkpoints[ CP_HOSPITAL_LV ] = CreateDynamicCP( 1607.2659, 1815.2485, 10.8203, 2.0, -1, -1, -1, 100.0 ); - g_Checkpoints[ CP_DROP_OFF_FBI_LV ] = CreateDynamicCP( 948.6036, 1811.2720, 8.6484, 3.0, -1, -1, -1, 100.0 ); + //g_Checkpoints[ CP_DROP_OFF_FBI_LV ] = CreateDynamicCP( 948.6036, 1811.2720, 8.6484, 3.0, -1, -1, -1, 100.0 ); g_Checkpoints[ CP_FIGHTSTYLE_LV ] = CreateDynamicCP( 766.8416, -62.1872, 1000.6563, 2.0, -1, -1, -1, 25.0 ); g_Checkpoints[ CP_VEHDEALER_2 ] = CreateDynamicCP( -126.2794, 117.3427, 1004.7233, 1.0, -1, -1, -1, 25.0 ); g_Checkpoints[ CP_REFILL_AMMO_LV ] = CreateDynamicCP( 2251.9438, 2488.7981, 10.9908, 1.0, -1, -1, -1, 20.0 ); CreateDynamic3DTextLabel("[PURCHASE VEHICLE]", COLOR_GOLD, -126.2794, 117.3427, 1004.7233, 20.0); - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, 2225.6753, 2457.2388, -7.4531, 20.0); - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, 948.6036, 1811.2720, 8.6484, 20.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, 2225.6753, 2457.2388, -7.4531, 20.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, 948.6036, 1811.2720, 8.6484, 20.0); CreateDynamic3DTextLabel("[LEARN FIGHT STYLES]", COLOR_GOLD, 766.8416, -62.1872, 1000.6563, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, 9); CreateDynamic3DTextLabel("[BOMB SHOP]", COLOR_GOLD, 1998.7263, 2298.5562, 10.8203, 20.0); CreateDynamic3DTextLabel("[HOSPITAL]", COLOR_GOLD, 1607.2659, 1815.2485, 10.8203, 20.0); @@ -27983,16 +27828,16 @@ stock initializeCheckpoints( ) g_Checkpoints[ CP_HOSPITAL1_LS ] = CreateDynamicCP( 1172.0767, -1323.3257, 15.4029, 1.0, -1, -1, -1, 100.0 ); g_Checkpoints[ CP_HOSPITAL2_LS ] = CreateDynamicCP( 2034.0677, -1401.6699, 17.2938, 1.0, -1, -1, -1, 100.0 ); g_Checkpoints[ CP_HOSPITAL_FC ] = CreateDynamicCP( -320.2127, 1048.2339, 20.3403, 1.0, -1, -1, -1, 100.0 ); - g_Checkpoints[ CP_DROP_OFF_COP_LS ] = CreateDynamicCP( 1569.0277, -1694.1566, 5.8906, 3.0, 0, -1, -1, 100.0 ); - g_Checkpoints[ CP_DROP_OFF_FBI_LS ] = CreateDynamicCP( 1516.6716, -1458.9398, 9.5000, 3.0, -1, -1, -1, 100.0 ); + //g_Checkpoints[ CP_DROP_OFF_COP_LS ] = CreateDynamicCP( 1569.0277, -1694.1566, 5.8906, 3.0, 0, -1, -1, 100.0 ); + //g_Checkpoints[ CP_DROP_OFF_FBI_LS ] = CreateDynamicCP( 1516.6716, -1458.9398, 9.5000, 3.0, -1, -1, -1, 100.0 ); g_Checkpoints[ CP_FIGHTSTYLE_LS ] = CreateDynamicCP( 772.0868, 12.6397, 1000.6996, 1.0, -1, -1, -1, 25.0 ); g_Checkpoints[ CP_BANK_MENU_LS ] = CreateDynamicCP( 2136.4946, 1226.1787, 1017.1369, 1.0, -1, -1, -1, 25.0 ); g_Checkpoints[ CP_VEHDEALER_3 ] = CreateDynamicCP( 540.7507, -1299.1378, 17.2859, 1.0, -1, -1, -1, 25.0 ); g_Checkpoints[ CP_REFILL_AMMO_LS ] = CreateDynamicCP( 1579.5439, -1635.5166, 13.5609, 1.0, -1, -1, -1, 20.0 ); CreateDynamic3DTextLabel("[PURCHASE VEHICLE]", COLOR_GOLD, 540.7507, -1299.1378, 17.2859, 20.0); CreateDynamic3DTextLabel("[BANK MENU]", COLOR_GOLD, 2136.4946, 1226.1787, 1017.1369, 20.0); - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, 1569.0277, -1694.1566, 5.8906, 20.0); - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, 1516.6716, -1458.9398, 9.5000, 20.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, 1569.0277, -1694.1566, 5.8906, 20.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, 1516.6716, -1458.9398, 9.5000, 20.0); CreateDynamic3DTextLabel("[LEARN FIGHT STYLES]", COLOR_GOLD, 772.0868, 12.6397, 1000.6996, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, 10); CreateDynamic3DTextLabel("[BOMB SHOP]", COLOR_GOLD, 1911.2462, -1775.8755, 13.3828, 20.0); CreateDynamic3DTextLabel("[HOSPITAL]", COLOR_GOLD, 1172.0767, -1323.3257, 15.4029, 20.0); @@ -28001,6 +27846,7 @@ stock initializeCheckpoints( ) CreateDynamic3DTextLabel("[REFILL AMMO]", COLOR_GOLD, 1579.5439, -1635.5166, 13.5609, 20.0); #endif + CreateDynamic3DTextLabel("[ROCK CRUSHER]", COLOR_GOLD, -1999.9487, 1781.2325, 43.7386, 50.0); CreateDynamic3DTextLabel("[CASINO BAR]", COLOR_GOLD, 2655.8694, 1591.1545, 1506.1793, 50.0); CreateDynamic3DTextLabel("[AIRPORT]", COLOR_GOLD, 1672.53640, 1447.86160, 10.7881, 50.0); CreateDynamic3DTextLabel("[AIRPORT]", COLOR_GOLD, 1642.22740, -2335.4978, 13.5469, 50.0); @@ -28010,9 +27856,9 @@ stock initializeCheckpoints( ) CreateDynamic3DTextLabel("[SHOP]", COLOR_GOLD, -29.0409,-184.7446,1003.5469, 20.0); CreateDynamic3DTextLabel("[BANK MENU]", COLOR_GOLD, -1405.0657, 831.0966, 984.7126, 20.0); CreateDynamic3DTextLabel("[BANK MENU]", COLOR_GOLD, 2156.1299, 1640.2460, 1041.6124, 20.0); - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -1577.0952, 683.9492, 7.2440, 20.0); - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -2446.6785, 522.9684, 30.2548, 20.0); - CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -1651.6956, 700.8394, 38.2422, 50.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -1577.0952, 683.9492, 7.2440, 20.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -2446.6785, 522.9684, 30.2548, 20.0); + //CreateDynamic3DTextLabel("[DROP OFF]", COLOR_GOLD, -1651.6956, 700.8394, 38.2422, 50.0); CreateDynamic3DTextLabel("[BOMB SHOP]", COLOR_GOLD, -1923.7546, 303.3475, 41.0469, 20.0); CreateDynamic3DTextLabel("[GUN STORE]", COLOR_GOLD, 296.3782, -38.4512, 1001.5156, 20.0); CreateDynamic3DTextLabel("[GUN STORE]", COLOR_GOLD, 295.4524, -80.7487, 1001.5156, 20.0); @@ -28078,7 +27924,7 @@ stock ExplodePlayerC4s( playerid, start=0, end=MAX_C4 ) } else GetDynamicObjectPos( g_C4Data[ playerid ] [ i ] [ E_OBJECT ], X, Y, Z ); - if ( IsPointToPoint( 10.0, X, Y, Z, -2038.6539, 1840.0137, 21.7857 ) ) + if ( IsPointToPoint( 10.0, X, Y, Z, -2016.7365, 1826.2612, 43.1458 ) ) { if ( g_iTime > g_alcatrazTimestamp ) { @@ -28088,7 +27934,7 @@ stock ExplodePlayerC4s( playerid, start=0, end=MAX_C4 ) GivePlayerWantedLevel( playerid, 24 ); Achievement::HandleJailBlown( playerid ); - SendGlobalMessage( -1, ""COL_GREY"[SERVER]"COL_WHITE" %s(%d) has destroyed the "COL_GREY"Alcatraz gate{FFFFFF}!", ReturnPlayerName( playerid ), playerid ); + SendGlobalMessage( -1, ""COL_GREY"[SERVER]"COL_WHITE" %s(%d) has destroyed the "COL_GREY"Alcatraz Rock{FFFFFF}!", ReturnPlayerName( playerid ), playerid ); massUnjailPlayers( CITY_SF, .alcatraz = true ); } } @@ -29937,10 +29783,10 @@ stock getRandomCreatedHouse( ) new ignoredHomes[ MAX_HOUSES ] = { -1, ... }; // first find homes to ignore - foreach ( new i : houses ) + for ( new i = 0; i < MAX_HOUSES; i ++ ) { // Avoid Hills / Avoid V.I.P or Clan Homes - if ( g_houseData[ i ] [ E_EZ ] > 300.0 || g_houseData[ i ] [ E_COST ] < 500000 ) { + if ( ! Iter_Contains( houses, i ) || g_houseData[ i ] [ E_EZ ] > 300.0 || g_houseData[ i ] [ E_COST ] < 500000 ) { ignoredHomes[ i ] = i; continue; } @@ -30891,7 +30737,7 @@ stock CreateFire( ) { house = getRandomCreatedHouse( ); - if ( house != ITER_NONE ) + if ( Iter_Contains( houses, house ) ) { g_fireData[ i ] [ E_HEALTH ] = 100.0 + fRandomEx( 1, 25 ); g_fireData[ i ] [ E_HOUSE ] = house; @@ -31129,7 +30975,7 @@ stock CreateLoopingAnimation( playerid, animlib[ ], animname[ ], Float:Speed, lo else if ( !IsPlayerSpawned( playerid ) ) return SendError( playerid, "You cannot use this command since you're not spawned." ); // else if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); else if ( IsPlayerTazed( playerid ) ) return SendError( playerid, "You cannot use this command since you're tazed." ); - else if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); + //else if ( IsPlayerDetained( playerid ) ) return SendError( playerid, "You cannot use this command since you're detained." ); else if ( IsPlayerCuffed( playerid ) ) return SendError( playerid, "You cannot use this command since you're cuffed." ); else if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You cannot use this command since you're tied." ); else if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You cannot use this command since you're kidnapped." ); @@ -31243,40 +31089,6 @@ stock IsVehicleOccupied( vehicleid, bool: include_vehicle_interior = false ) { return false; } -stock RedirectAmmunation( playerid, listitem, custom_title[ ] = "{FFFFFF}Ammu-Nation", custom_dialogid = DIALOG_AMMU_BUY, Float: custom_multplier = 1.0, bool: unlimited_ammo = false ) -{ - 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"COL_GOLD"%s\n", szString, g_AmmunationWeapons[ i ] [ E_NAME ], g_AmmunationWeapons[ i ] [ E_AMMO ], number_format( floatround( g_AmmunationWeapons[ i ] [ E_PRICE ] * custom_multplier ) ) ); - else - format( szString, sizeof( szString ), "%s%s\t"COL_GOLD"%s\n", szString, g_AmmunationWeapons[ i ] [ E_NAME ], number_format( floatround( g_AmmunationWeapons[ i ] [ E_PRICE ] * custom_multplier ) ) ); - } - ShowPlayerDialog( playerid, custom_dialogid, DIALOG_STYLE_TABLIST_HEADERS, custom_title, szString, "Purchase", "Back" ); - return 1; -} - -stock ShowAmmunationMenu( playerid, custom_title[ ] = "{FFFFFF}Ammu-Nation", custom_dialogid = DIALOG_AMMU ) -{ - static - szString[ 70 ]; - - if ( !szString[ 0 ] ) - { - for( new i = 0; i < sizeof( g_AmmunitionCategory ); i++ ) { - format( szString, sizeof( szString ), "%s%s\n", szString, g_AmmunitionCategory[ i ] ); - } - } - return ShowPlayerDialog( playerid, custom_dialogid, DIALOG_STYLE_LIST, custom_title, szString, "Select", "Cancel" ); -} - stock apartment_CallElevator( level ) { new Float: Z, Float: LastZ; @@ -31950,8 +31762,8 @@ stock jailMoveGate( playerid, city, bool: close = false, bool: alcatraz = false if ( alcatraz ) { - if ( close ) MoveDynamicObject( p_AlcatrazObject[ playerid ], -2038.832641, 1843.541992, 24.695789, speed ); - else MoveDynamicObject( p_AlcatrazObject[ playerid ], -2038.832641, 1843.541992, 24.695789 - 10, speed ); + if ( close ) MoveDynamicObject( p_AlcatrazObject[ playerid ], -2013.164184, 1827.123168, 41.506713, speed ); + else MoveDynamicObject( p_AlcatrazObject[ playerid ], -2013.164184, 1827.123168, 41.506713 - 10.0, speed ); return; } @@ -32026,7 +31838,7 @@ stock jailDoors( playerid, remove = false, set_closed = true ) SetDynamicObjectPos( p_JailObjectLS[ playerid ] [ 1 ], 266.36481, 81.211600, 1001.27979 ); SetDynamicObjectPos( p_JailObjectLS[ playerid ] [ 2 ], 266.36481, 76.709470, 1001.27985 ); - SetDynamicObjectPos( p_AlcatrazObject[ playerid ], -2038.832641, 1843.541992, 24.695789 ); + SetDynamicObjectPos( p_AlcatrazObject[ playerid ], -2013.164184, 1827.123168, 41.506713 ); return; } } @@ -32064,7 +31876,9 @@ stock jailDoors( playerid, remove = false, set_closed = true ) p_JailObjectLS[ playerid ] [ 1 ] = CreateDynamicObject( 19302, 266.36481, 81.211600, 1001.27979, 0.00000, 0.00000, 90.0000, -1, -1, playerid ); p_JailObjectLS[ playerid ] [ 2 ] = CreateDynamicObject( 19302, 266.36481, 76.709470, 1001.27985, 0.00000, 0.00000, 90.0000, -1, -1, playerid ); - p_AlcatrazObject[ playerid ] = CreateDynamicObject( 16775, -2038.832, 1843.5419, 24.695789, 0.00000, 0.00000, 0.999999, -1, -1, playerid ); + p_AlcatrazObject[ playerid ] = CreateDynamicObject( 749, -2013.164184, 1827.123168, 41.506713, 11.800004, 0.000000, 0.000000, -1, -1, playerid ); + SetDynamicObjectMaterial( p_AlcatrazObject[ playerid ], 2, 9135, "vgseseabed", "vgs_rockmid1a", -47 ); + SetDynamicObjectMaterial( p_AlcatrazObject[ playerid ], 1, 0, "none", "none", 0 ); } else { @@ -33569,6 +33383,7 @@ stock resetPlayerToys( playerid, slot ) { p_AttachedObjectsData[ playerid ] [ slot ] [ E_SX ] = 0.0; p_AttachedObjectsData[ playerid ] [ slot ] [ E_SY ] = 0.0; p_AttachedObjectsData[ playerid ] [ slot ] [ E_SZ ] = 0.0; + p_AttachedObjectsData[ playerid ] [ slot ] [ E_COLOR ] = 0; } thread OnToyLoad( playerid ) @@ -33621,6 +33436,7 @@ thread OnToyOffsetLoad( playerid ) p_AttachedObjectsData[ playerid ] [ iSlot ] [ E_SX ] = cache_get_field_content_float( i, "SX", dbHandle ); p_AttachedObjectsData[ playerid ] [ iSlot ] [ E_SY ] = cache_get_field_content_float( i, "SY", dbHandle ); p_AttachedObjectsData[ playerid ] [ iSlot ] [ E_SZ ] = cache_get_field_content_float( i, "SZ", dbHandle ); + p_AttachedObjectsData[ playerid ] [ iSlot ] [ E_COLOR ] = cache_get_field_content_int( i, "COLOR", dbHandle ); } } } @@ -33634,11 +33450,14 @@ thread OnPlayerAddToy( playerid, slotid ) { stock showToyEditMenu( playerid, slot ) { - format( szNormalString, 86, "%sEdit Toy Position\n%sEdit Toy Bone\n%s Toy\n"COL_LRED"Remove Toy", p_AttachedObjectsData[ playerid ] [ slot ] [ E_ENABLED ] ? ( #COL_WHITE ) : ( COL_BLACK ), p_AttachedObjectsData[ playerid ] [ slot ] [ E_ENABLED ] ? ( #COL_WHITE ) : ( #COL_BLACK ), p_AttachedObjectsData[ playerid ] [ slot ] [ E_ENABLED ] ? ( "Disable" ) : ( "Enable" ) ); - return ShowPlayerDialog( playerid, DIALOG_TOYS_EDIT, DIALOG_STYLE_LIST, "{FFFFFF}Toys", szNormalString, "Select", "Back" ); + if ( p_AttachedObjectsData[ playerid ] [ slot ] [ E_ENABLED ] ) { + return ShowPlayerDialog( playerid, DIALOG_TOYS_EDIT, DIALOG_STYLE_LIST, "{FFFFFF}Toys", ""COL_WHITE"Edit Toy Position\n"COL_WHITE"Edit Toy Bone\n"COL_WHITE"Edit Toy Color\nDisable Toy\n"COL_LRED"Remove Toy", "Select", "Back" ); + } else { + return ShowPlayerDialog( playerid, DIALOG_TOYS_EDIT, DIALOG_STYLE_LIST, "{FFFFFF}Toys", ""COL_BLACK"Edit Toy Position\n"COL_BLACK"Edit Toy Bone\n"COL_BLACK"Edit Toy Color\nEnable Toy", "Select", "Back" ); + } } -stock loadPlayerToys( playerid ) +stock reloadPlayerToys( playerid ) { // Loop is more slower than this! if ( p_AttachedObjectsData[ playerid ] [ 0 ] [ E_ENABLED ] ) { @@ -33646,7 +33465,8 @@ stock loadPlayerToys( playerid ) SetPlayerAttachedObject( playerid, 7, p_AttachedObjectsData[ playerid ] [ 0 ] [ E_MODELID ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_BONE ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_OX ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_OY ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_OZ ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_RX ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_RY ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_RZ ], - p_AttachedObjectsData[ playerid ] [ 0 ] [ E_SX ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_SY ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_SZ ] + p_AttachedObjectsData[ playerid ] [ 0 ] [ E_SX ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_SY ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_SZ ], + p_AttachedObjectsData[ playerid ] [ 0 ] [ E_COLOR ], p_AttachedObjectsData[ playerid ] [ 0 ] [ E_COLOR ] ); } if ( p_AttachedObjectsData[ playerid ] [ 1 ] [ E_ENABLED ] ) { @@ -33654,7 +33474,8 @@ stock loadPlayerToys( playerid ) SetPlayerAttachedObject( playerid, 8, p_AttachedObjectsData[ playerid ] [ 1 ] [ E_MODELID ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_BONE ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_OX ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_OY ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_OZ ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_RX ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_RY ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_RZ ], - p_AttachedObjectsData[ playerid ] [ 1 ] [ E_SX ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_SY ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_SZ ] + p_AttachedObjectsData[ playerid ] [ 1 ] [ E_SX ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_SY ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_SZ ], + p_AttachedObjectsData[ playerid ] [ 1 ] [ E_COLOR ], p_AttachedObjectsData[ playerid ] [ 1 ] [ E_COLOR ] ); } if ( p_AttachedObjectsData[ playerid ] [ 2 ] [ E_ENABLED ] ) { @@ -33662,9 +33483,11 @@ stock loadPlayerToys( playerid ) SetPlayerAttachedObject( playerid, 9, p_AttachedObjectsData[ playerid ] [ 2 ] [ E_MODELID ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_BONE ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_OX ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_OY ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_OZ ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_RX ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_RY ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_RZ ], - p_AttachedObjectsData[ playerid ] [ 2 ] [ E_SX ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_SY ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_SZ ] + p_AttachedObjectsData[ playerid ] [ 2 ] [ E_SX ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_SY ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_SZ ], + p_AttachedObjectsData[ playerid ] [ 2 ] [ E_COLOR ], p_AttachedObjectsData[ playerid ] [ 2 ] [ E_COLOR ] ); } + return 1; } thread OnSettingsLoad( playerid ) @@ -34938,7 +34761,7 @@ thread OnPlayerChangeName( playerid, Float: iCoinRequirement, newName[ ] ) return 1; } -thread OnListGangMembers( playerid, gangid ) +thread OnListGangMembers( playerid, gangid, page ) { new rows, i; @@ -34956,7 +34779,10 @@ thread OnListGangMembers( playerid, gangid ) format( szLargeString, sizeof( szLargeString ), "%s%s%s\n", szLargeString, cache_get_field_content_int( i, "ONLINE", dbHandle ) ? ( #COL_GREEN ) : ( #COL_WHITE ), userName ); } - ShowPlayerDialog( playerid, DIALOG_GANG_LIST_MEMBERS, DIALOG_STYLE_LIST, ""COL_WHITE"Gang Members", szLargeString, "Close", "Back" ); + SetPVarInt( playerid, "gang_members_id", gangid ); + SetPVarInt( playerid, "gang_members_results", rows ); + SetPVarInt( playerid, "gang_members_page", page ); + ShowPlayerDialog( playerid, DIALOG_GANG_LIST_MEMBERS, DIALOG_STYLE_LIST, sprintf( ""COL_WHITE"Gang Members - Page %d", page + 1 ), szLargeString, rows >= 20 ? ( "Next" ) : ( "Close" ), "Back" ); } else { @@ -37964,6 +37790,191 @@ stock SetPlayerMineOre( playerid, m ) ShowProgressBar( playerid, "Mining Rock", PROGRESS_MINING, g_oreMiningTime[ g_miningData[ m ] [ E_ORE ] ], g_miningData[ m ] [ E_COLOR ] ); } +stock TazePlayer( victimid, playerid ) +{ + if ( p_Class[ playerid ] != CLASS_POLICE ) return SendError( playerid, "This is restricted to police only." ); + //else if ( sscanf( params, ""#sscanf_u"", victimid ) ) return SendUsage( playerid, "/taze [PLAYER_ID]" ); + //else if ( victimid == playerid ) return SendError( playerid, "You cannot taze yourself." ); + else if ( !IsPlayerConnected( victimid ) ) return SendError( playerid, "There are no players around to taze." ); + else if ( p_Spectating{ playerid } ) return SendError( playerid, "You cannot use such commands while you're spectating." ); + else if ( GetDistanceBetweenPlayers( playerid, victimid ) < 5.0 && IsPlayerConnected( victimid ) ) + { + if ( p_Class[ victimid ] == p_Class[ playerid ] ) return SendError( playerid, "This player is in your team." ); + if ( p_WantedLevel[ victimid ] == 0 ) return SendError( playerid, "This player is innocent!" ); + if ( IsPlayerInAnyVehicle( victimid ) ) return SendError( playerid, "This player is in a vehicle " ); + if ( IsPlayerInAnyVehicle( playerid ) ) return SendError( playerid, "You cannot do this while you're inside a vehicle." ); + if ( IsPlayerTazed( victimid ) ) return SendError( playerid, "This player is already tazed." ); + //if ( IsPlayerCuffed( victimid ) ) return SendError( playerid, "This player is already cuffed." ); + //if ( IsPlayerDetained( victimid ) ) return SendError( playerid, "This player is already detained." ); + if ( IsPlayerGettingBlowed( playerid ) ) return SendError( playerid, "You cannot use this command since you're getting blowed." ); + if ( IsPlayerBlowingCock( playerid ) ) return SendError( playerid, "You cannot use this command since you're giving oral sex." ); + if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You are kidnapped, you cannot do this." ); + if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You are tied, you cannot do this." ); + if ( IsPlayerAdminOnDuty( victimid ) ) return SendError( playerid, "You cannot use this command on admins that are on duty." ); + if ( IsPlayerJailed( victimid ) ) return SendError( playerid, "This player is jailed. He may be paused." ); + if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command while in jail." ); + if ( IsPlayerTied( victimid ) ) return SendError( playerid, "Tazing a tied player is pretty useless, though you can use /untie for a harder job!" ); + if ( IsPlayerLoadingObjects( victimid ) ) return SendError( playerid, "This player is in a object-loading state." ); + if ( IsPlayerInEvent( playerid ) ) return SendError( playerid, "You cannot use this command since you're in an event." ); + if ( GetPlayerState( playerid ) == PLAYER_STATE_WASTED ) return SendError( playerid, "You cannot use this command since you are dead." ); + if ( p_TazingImmunity[ victimid ] > g_iTime ) return SendError( playerid, "You must wait %d seconds before tazing this player.", p_TazingImmunity[ victimid ] - g_iTime ); + if ( random( 101 ) < 90 ) + { + GameTextForPlayer( victimid, "~n~~r~TAZED!", 2000, 4 ); + GameTextForPlayer( playerid, "~n~~y~~h~/cuff", 2000, 4 ); + SendClientMessageFormatted( victimid, -1, ""COL_RED"[TAZED]{FFFFFF} You have been tazed by %s(%d) for 3 seconds!", ReturnPlayerName( playerid ), playerid ); + SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[TAZED]{FFFFFF} You have tazed %s(%d) for 3 seconds!", ReturnPlayerName( victimid ), victimid ); + SetTimerEx( "Untaze", 2000, false, "d", victimid ); // previous 3000 + TogglePlayerControllable( victimid, 0 ); + ApplyAnimation( victimid, "CRACK", "crckdeth2", 5.0, 1, 1, 1, 0, 0 ); + p_Tazed{ victimid } = true; + } + else + { + SendClientMessageFormatted( playerid, -1, ""COL_RED"[TAZE FAIL]{FFFFFF} You have failed to taze %s(%d)!", ReturnPlayerName( victimid ), victimid ); + SendClientMessageFormatted( victimid, -1, ""COL_GREEN"[TAZE FAIL]{FFFFFF} %s(%d) has failed to taze you!", ReturnPlayerName( playerid ), playerid ); + } + p_TazingImmunity[ victimid ] = g_iTime + 6; + return 1; + } else { + return SendError( playerid, "There are no players around to taze." ); + } +} + +stock ArrestPlayer( victimid, playerid ) +{ + if ( p_Class[ playerid ] != CLASS_POLICE ) return SendError( playerid, "This is restricted to police only." ); + else if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); + //else if ( GetPlayerScore( playerid ) > 200 ) return SendError( playerid, "This feature is no longer available to you. Please use /detain." ); + // else if ( sscanf( params, ""#sscanf_u"", victimid ) ) return SendUsage( playerid, "/ar(rest) [PLAYER_ID]" ); + // else if ( victimid == playerid ) return SendError( playerid, "You cannot arrest yourself." ); + else if ( !IsPlayerConnected( victimid ) ) return SendError( playerid, "This player is not connected." ); + else if ( p_Spectating{ playerid } ) return SendError( playerid, "You cannot use such commands while you're spectating." ); + else if ( GetDistanceBetweenPlayers( playerid, victimid ) < 4.0 && IsPlayerConnected( victimid ) ) + { + if ( p_Class[ victimid ] == p_Class[ playerid ] ) return SendError( playerid, "This player is in your team." ); + if ( p_WantedLevel[ victimid ] == 0 ) return SendError( playerid, "This player is innocent!" ); + if ( !IsPlayerCuffed( victimid ) ) return SendError( playerid, "This player is not cuffed." ); + if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You are kidnapped, you cannot do this." ); + //if ( IsPlayerDetained( victimid ) ) return SendError( playerid, "This player is detained, you cannot arrest them." ); + if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You are tied, you cannot do this." ); + if ( IsPlayerJailed( victimid ) ) return SendError( playerid, "This player is jailed. He may be paused." ); + if ( IsPlayerInAnyVehicle( playerid ) ) return SendError( playerid, "You cannot arrest this person inside a vehicle." ); + if ( IsPlayerInAnyVehicle( victimid ) ) return SendError( playerid, "You cannot arrest a person that is inside a vehicle." ); + if ( IsPlayerAdminOnDuty( victimid ) ) return SendError( playerid, "You cannot use this command on admins that are on duty." ); + if ( GetPlayerState( playerid ) == PLAYER_STATE_WASTED ) return SendError( playerid, "You cannot use this command since you are dead." ); + new totalCash = ( p_WantedLevel[ victimid ] < MAX_WANTED_LVL ? p_WantedLevel[ victimid ] : MAX_WANTED_LVL ) * ( 300 ); + new totalSeconds = p_WantedLevel[ victimid ] * ( JAIL_SECONDS_MULTIPLIER ); + GivePlayerScore( playerid, 2, .multiplier = 1.5 ); + GivePlayerCash( playerid, totalCash ); + if ( totalCash > 20000 ) printf("[police arrest] %s -> %s - %s", ReturnPlayerName( playerid ), ReturnPlayerName( victimid ), number_format( totalCash ) ); // 8hska7082bmahu + SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[ACHIEVE]{FFFFFF} You have earned "COL_GOLD"%s{FFFFFF} dollars and 2 score for arresting %s(%d)!", number_format( totalCash ), ReturnPlayerName( victimid ), victimid ); + GameTextForPlayer( victimid, "~r~Busted!", 4000, 0 ); + CallLocalFunction( "OnPlayerArrested", "dddd", playerid, victimid, p_Arrests[ playerid ], 1 ); + Untaze( victimid ); + GivePlayerIrresistiblePoints( victimid, -2 ); + SendGlobalMessage( -1, ""COL_GOLD"[JAIL]{FFFFFF} %s(%d) has sent %s(%d) to jail for %d seconds!", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( victimid ), victimid, totalSeconds ); + JailPlayer( victimid, totalSeconds ); + return 1; + } + else return SendError( playerid, "There are no players around to arrest." ); +} + +stock CuffPlayer( victimid, playerid ) +{ + if ( p_Class[ playerid ] != CLASS_POLICE ) return SendError( playerid, "This is restricted to police only." ); + else if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot use this command since you're jailed." ); + //else if ( sscanf( params, ""#sscanf_u"", victimid ) ) return SendUsage( playerid, "/cuff [PLAYER_ID]" ); + //else if ( victimid == playerid ) return SendError( playerid, "You cannot cuff yourself." ); + else if ( !IsPlayerConnected( victimid ) || IsPlayerNPC( victimid ) ) return SendError( playerid, "This player is not connected." ); + else if ( p_Spectating{ playerid } ) return SendError( playerid, "You cannot use such commands while you're spectating." ); + else if ( GetDistanceBetweenPlayers( playerid, victimid ) < 4.0 && IsPlayerConnected( victimid ) ) + { + if ( p_Class[ victimid ] == p_Class[ playerid ] ) return SendError( playerid, "This player is in your team." ); + if ( p_WantedLevel[ victimid ] == 0 ) return SendError( playerid, "This player is innocent!" ); + if ( p_WantedLevel[ victimid ] < 6 ) return SendError( playerid, "This person isn't worth cuffing, ticket them." ); + if ( IsPlayerInAnyVehicle( victimid ) ) return SendError( playerid, "This player is in a vehicle " ); + //if ( IsPlayerDetained( victimid ) ) return SendError( playerid, "This player is already detained." ); + if ( IsPlayerInAnyVehicle( playerid ) ) return SendError( playerid, "You cannot do this while you're inside a vehicle." ); + if ( IsPlayerCuffed( victimid ) ) return SendError( playerid, "This player is already cuffed." ); + if ( IsPlayerJailed( victimid ) ) return SendError( playerid, "This player is jailed. He may be paused." ); + if ( !IsPlayerTazed( victimid ) ) return SendError( playerid, "You must taze this player before cuffing them." ); + if ( IsPlayerGettingBlowed( playerid ) ) return SendError( playerid, "You cannot use this command since you're getting blowed." ); + if ( IsPlayerBlowingCock( playerid ) ) return SendError( playerid, "You cannot use this command since you're giving oral sex." ); + if ( IsPlayerKidnapped( playerid ) ) return SendError( playerid, "You are kidnapped, you cannot do this." ); + if ( IsPlayerTied( playerid ) ) return SendError( playerid, "You are tied, you cannot do this." ); + if ( IsPlayerAdminOnDuty( victimid ) ) return SendError( playerid, "You cannot use this command on admins that are on duty." ); + if ( IsPlayerJailed( victimid ) ) return SendError( playerid, "This player is jailed. He may be paused." ); + if ( IsPlayerLoadingObjects( victimid ) ) return SendError( playerid, "This player is in a object-loading state." ); + if ( GetPlayerState( playerid ) == PLAYER_STATE_WASTED ) return SendError( playerid, "You cannot use this command since you are dead." ); + if ( !IsPlayerSpawned( victimid ) ) return SendError( playerid, "The player must be spawned." ); + GameTextForPlayer( victimid, "~n~~r~CUFFED!", 2000, 4 ); + //GameTextForPlayer( playerid, sprintf( "~n~~y~~h~/arrest %d", victimid ), 2000, 4 ); + GameTextForPlayer( playerid, "~n~~y~~h~/arrest", 2000, 4 ); + SendClientMessageFormatted( victimid, -1, ""COL_RED"[CUFFED]{FFFFFF} You have been cuffed by %s(%d)!", ReturnPlayerName( playerid ), playerid ); + SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[CUFFED]{FFFFFF} You have cuffed %s(%d)!", ReturnPlayerName( victimid ), victimid ); + KillTimer( p_CuffAbuseTimer[ victimid ] ); + p_CuffAbuseTimer[ victimid ] = SetTimerEx( "Uncuff", ( 60 * 1000 ), false, "d", victimid ); + //ApplyAnimation( victimid, "ped", "cower", 5.0, 1, 1, 1, 0, 0 ); + //TogglePlayerControllable( victimid, 0 ); + p_Cuffed{ victimid } = true; + SetPlayerAttachedObject( victimid, 2, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977, -81.700035, 0.891999, 1.000000, 1.168000 ); + SetPlayerSpecialAction( victimid, SPECIAL_ACTION_CUFFED ); + + if ( ! BreakPlayerCuffs( victimid ) ) { + ShowPlayerHelpDialog( victimid, 4000, "You can buy bobby pins at Supa Save or a 24/7 store to break cuffs." ); + } else { + SendClientMessageFormatted( playerid, -1, ""COL_GREEN"[CUFFED]{FFFFFF} %s(%d) just broke their cuffs off!", ReturnPlayerName( victimid ), victimid ); + } + return 1; + } + else return SendError( playerid, "There are no players around to cuff." ); +} + +stock BreakPlayerCuffs( playerid ) +{ + if ( p_BobbyPins[ playerid ] < 1 ) + return 0; + + new + bool: success = false, + attempts; + + for ( attempts = 1; attempts < p_BobbyPins[ playerid ]; attempts ++ ) + { + if ( random( 101 ) > 20 ) { + success = true; + break; + } + } + + if ( ( p_BobbyPins[ playerid ] -= attempts ) > 0 ) { + ShowPlayerHelpDialog( playerid, 4500, "You only have %d bobby pins left!", p_BobbyPins[ playerid ] ); + } + + if ( success ) { + TogglePlayerControllable( playerid, 1 ); + RemovePlayerAttachedObject( playerid, 2 ); + SetPlayerSpecialAction( playerid, SPECIAL_ACTION_NONE ); + if ( !IsPlayerInAnyVehicle( playerid ) ) { + ClearAnimations( playerid ); + } + p_Cuffed{ playerid } = false; + p_Tazed{ playerid } = false; + //p_Detained{ playerid } = false; + //Delete3DTextLabel( p_DetainedLabel[ playerid ] ); + //p_DetainedLabel[ playerid ] = Text3D: INVALID_3DTEXT_ID; + //p_DetainedBy[ playerid ] = INVALID_PLAYER_ID; + p_QuitToAvoidTimestamp[ playerid ] = g_iTime + 3; + p_TazingImmunity[ playerid ] = g_iTime + 6; + + SendServerMessage( playerid, "You have used %d bobby pins to successfully break your cuffs.", attempts ); + GivePlayerWantedLevel( playerid, 6 ); + } else { + SendError( playerid, "You snapped %d bobby pin(s) and failed to break out of your cuffs.", attempts ); + } + return 1; +} stock GetServerTime( ) return g_iTime; @@ -37977,6 +37988,8 @@ stock IsPlayerInPaintBall( playerid ) return p_inPaintBall{ playerid }; stock GetPlayerAdminLevel( playerid ) return p_AdminLevel[ playerid ]; +stock GetPlayerGang( playerid ) return p_GangID[ playerid ]; + stock IsPlayerSpawned( playerid ) return p_Spawned{ playerid }; stock IsPlayerInEvent( playerid ) return ( GetPlayerVirtualWorld( playerid ) == 69 ); @@ -37989,4 +38002,4 @@ stock UpdatePlayerEntranceExitTick( playerid, ms = 2000 ) { p_EntranceTickcount[ playerid ] = GetTickCount( ) + ms; } -stock CanPlayerExitEntrance( playerid ) return GetTickCount( ) > p_EntranceTickcount[ playerid ]; +stock CanPlayerExitEntrance( playerid ) return GetTickCount( ) > p_EntranceTickcount[ playerid ] && ! p_pausedToLoad{ playerid }; diff --git a/pawno/include/irresistible/cnr/dialog_ids.inc b/pawno/include/irresistible/cnr/dialog_ids.inc index 60f9014..e2c7652 100644 --- a/pawno/include/irresistible/cnr/dialog_ids.inc +++ b/pawno/include/irresistible/cnr/dialog_ids.inc @@ -168,6 +168,7 @@ #define DIALOG_FACILITY_SPAWN 1157 #define DIALOG_IC_MARKET_3 1158 #define DIALOG_BUY_VIP 1159 +#define DIALOG_TOYS_COLOR 1160 /* ** Hooks ** */ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) diff --git a/pawno/include/irresistible/cnr/static/player_objects.inc b/pawno/include/irresistible/cnr/static/player_objects.inc index c54bb88..2caf078 100644 --- a/pawno/include/irresistible/cnr/static/player_objects.inc +++ b/pawno/include/irresistible/cnr/static/player_objects.inc @@ -6310,7 +6310,7 @@ stock initializeObjects( ) CreateDynamicObject( 1557, 1989.559204, 2094.033935, 14.557316, 0.000000, 0.000000, 180.000000 ); CreateDynamicObject( 3525, 1989.986206, 2093.843994, 15.577322, 0.000000, 0.000000, 0.000000 ); CreateDynamicObject( 3525, 1985.975952, 2093.843994, 15.577322, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterialText( CreateDynamicObject( 3074, 1992.5368, 2081.0703, 12.2363, 0.0000, -0.1000, -0.2994 ), 0, "FaZe's Cafe", 130, "Impact", 32, 0, -8092540, 0, 1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 3074, 1992.5368, 2081.0703, 12.2363, 0.0000, -0.1000, -0.2994 ), 0, "Nibble Cafe", 130, "Impact", 32, 0, -8092540, 0, 1 ); // Godfather Mansion Extension CreateDynamicObject( 19585, -2914.379394, 461.606353, 5.039083, 0.000000, 0.000000, 0.000000 ); @@ -10923,40 +10923,6 @@ stock initializeObjects( ) CreateDynamicObject( 3525, -1281.895019, -757.517517, 70.801536, 0.000000, 0.000000, 45.000000 ); CreateDynamicObject( 3525, -1279.014648, -754.638549, 70.801536, 0.000000, 0.000000, 45.000000 ); - // paintball house - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2240.016601, 266.421875, 34.180316, 0.000000, 90.000000, -51.299999 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2239.103027, 265.282409, 34.180316, 0.000000, 90.000000, -51.299999 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2225.420410, 263.522399, 26.870332, 90.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2225.420410, 240.512634, 26.870332, 90.000000, 0.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2239.087158, 238.746093, 34.180316, 0.000000, 90.000000, 51.399921 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18766, -2240.016845, 237.589599, 34.180316, 0.000000, 90.000000, 51.399921 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2225.690673, 251.552886, 26.870332, 90.000000, 0.000000, 0.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18981, -2229.437255, 253.790481, 33.840286, 0.000000, 90.000000, 0.000000 ), 0, 13691, "bevcunto2_lahills", "ws_patio1", 0 ); - CreateDynamicObject( 3515, -2237.908203, 260.086822, 33.470420, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2241.446044, 234.706878, 34.780334, 0.000000, 90.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18980, -2241.446044, 269.306945, 34.780334, 0.000000, 90.000000, 90.000000 ), 0, 8399, "vgs_shops", "vgsclubwall05_128", 0 ); - CreateDynamicObject( 640, -2241.460449, 259.542144, 35.570304, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 640, -2241.460449, 264.581970, 35.570304, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 640, -2241.460449, 244.502212, 35.570304, 0.000000, 0.000000, 180.000000 ); - CreateDynamicObject( 640, -2241.460449, 239.432266, 35.570304, 0.000000, 0.000000, 180.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2236.931152, 261.812835, 31.850328, 0.000000, 0.000000, 0.000000 ), 0, 9495, "vict_sfw", "Grass_128HV", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2236.931152, 242.212677, 31.850328, 0.000000, 0.000000, 0.000000 ), 0, 9495, "vict_sfw", "Grass_128HV", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 970, -2238.631103, 247.236816, 34.870285, 0.000000, 0.000000, 0.000000 ), 0, 3905, "libertyhi2", "glass_fence_64hv", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 970, -2234.118896, 247.236816, 34.870285, 0.000000, 0.000000, 0.000000 ), 0, 3905, "libertyhi2", "glass_fence_64hv", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 970, -2238.631103, 256.727142, 34.870285, 0.000000, 0.000000, 0.000000 ), 0, 3905, "libertyhi2", "glass_fence_64hv", -268435456 ); - SetDynamicObjectMaterial( CreateDynamicObject( 970, -2234.118896, 256.726867, 34.870285, 0.000000, 0.000000, 0.000000 ), 0, 3905, "libertyhi2", "glass_fence_64hv", -268435456 ); - CreateDynamicObject( 1557, -2226.141357, 250.501144, 34.300373, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 1557, -2226.141357, 253.531250, 34.300373, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 3525, -2226.281982, 253.974609, 35.730285, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 3525, -2226.281982, 250.054824, 35.730285, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 3515, -2237.908203, 244.046768, 33.470420, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 5422, -2229.038085, 240.954986, 36.310279, 0.000000, 0.000000, 90.000000 ), 0, 17562, "coast_apts", "garagedoor5_law", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 5422, -2229.038085, 263.055084, 36.310279, 0.000000, 0.000000, 90.000000 ), 0, 17562, "coast_apts", "garagedoor5_law", 0 ); - CreateDynamicObject( 869, -2233.871093, 260.942504, 34.714874, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 869, -2233.871093, 259.002563, 34.714874, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 869, -2233.871093, 245.122589, 34.714874, 0.000000, 0.000000, 90.000000 ); - CreateDynamicObject( 869, -2233.871093, 242.512603, 34.714874, 0.000000, 0.000000, 90.000000 ); - // [ZF]IMakeMyOwnCAKE City Map SetDynamicObjectMaterial( CreateDynamicObject( 18981, -1689.194946, 815.914489, 23.384389, 0.000000, 90.000000, 0.000000 ), 0, 3906, "libertyhi5", "marblekb_256128", -4368 ); SetDynamicObjectMaterial( CreateDynamicObject( 18981, -1689.194946, 790.914489, 23.384389, 0.000000, 90.000000, 0.000000 ), 0, 3906, "libertyhi5", "marblekb_256128", -4368 ); diff --git a/pawno/include/irresistible/cnr/static/server_objects.inc b/pawno/include/irresistible/cnr/static/server_objects.inc index 28a719d..df2794a 100644 --- a/pawno/include/irresistible/cnr/static/server_objects.inc +++ b/pawno/include/irresistible/cnr/static/server_objects.inc @@ -4245,120 +4245,6 @@ stock initializeServerObjects( ) CreateDynamicObject( 3929, 2389.416259, 3192.428955, 1017.342285, 0.000000, 0.000000, 57.400058 ); CreateDynamicObject( 3929, 2389.029541, 3191.821289, 1017.342285, 0.000000, 0.000000, 57.400058 ); - // Alcatraz - SetDynamicObjectMaterial( CreateDynamicObject( 17513, -2030.526855, 1897.911865, 12.840667, 0.000000, 0.000000, -135.399902 ), 0, 5134, "wasteland_las2", "concretenewb256", 0 ); - CreateDynamicObject( 10610, -2093.488037, 1928.907958, 31.056991, 0.000000, 0.000000, 41.599960 ); - SetDynamicObjectMaterial( CreateDynamicObject( 10985, -2067.109375, 1927.908081, 21.519468, 0.000000, 0.000000, 0.000000 ), 0, 9957, "multistory_sfe", "grassgrn256", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 10985, -2073.860351, 1921.161376, 21.389465, 0.000000, 0.000000, 46.700016 ), 0, 9957, "multistory_sfe", "grassgrn256", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 10985, -2082.020019, 1915.032470, 22.079481, 0.000000, 0.000000, 35.600017 ), 0, 9957, "multistory_sfe", "grassgrn256", 0 ); - CreateDynamicObject( 689, -1942.959106, 1880.650756, 8.680265, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 690, -1961.289184, 1831.741333, 16.140258, 0.000000, 8.199999, 0.000000 ); - CreateDynamicObject( 8209, -2094.501464, 1843.990478, 22.951774, 0.000000, 0.000000, -0.299999 ); - CreateDynamicObject( 8209, -2144.040527, 1893.712036, 22.951791, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 8209, -2144.040527, 1893.712036, 15.911795, 0.000000, 0.000000, -90.000000 ); - CreateDynamicObject( 8315, -2122.668945, 1962.861572, 23.140863, 0.000000, 0.000000, -46.300010 ); - CreateDynamicObject( 8315, -2122.668945, 1962.861572, 16.620866, 0.000000, 0.000000, -46.300010 ); - CreateDynamicObject( 8210, -2011.561767, 1862.624633, 22.939054, 0.000000, 0.000000, 42.500011 ); - CreateDynamicObject( 8210, -2009.839233, 1901.603759, 22.935874, 0.000000, 0.000000, 132.399856 ); - CreateDynamicObject( 8315, -2077.215820, 1965.980346, 23.515901, 0.000000, 0.000000, -122.499969 ); - CreateDynamicObject( 8210, -2036.850830, 1931.181884, 22.935874, 0.000000, 0.000000, 132.399856 ); - CreateDynamicObject( 8315, -2077.215820, 1965.980346, 17.895927, 0.000000, 0.000000, -122.499969 ); - CreateDynamicObject( 8210, -2036.850830, 1931.181884, 17.195880, 0.000000, 0.000000, 132.399856 ); - CreateDynamicObject( 683, -1936.225341, 1785.823486, 11.710291, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 688, -2054.089111, 1789.664916, 15.794617, 0.000000, -13.600001, 0.000000 ); - CreateDynamicObject( 688, -2048.784667, 1764.247070, 16.299072, 16.300016, 5.799999, -114.099983 ); - CreateDynamicObject( 688, -1982.347778, 1716.536132, 13.046571, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 690, -1975.291381, 1771.226806, 17.316553, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 18850, -1989.817871, 1849.995483, 8.646547, 0.000000, 0.000000, 45.100021 ); - CreateDynamicObject( 18850, -1986.359130, 1812.226684, 8.656547, 0.000000, 0.000000, 45.100021 ); - tmpVariable = CreateDynamicObject( 8417, -2024.147827, 1878.229980, 20.834800, 0.000000, 0.000000, -134.400009 ); - SetDynamicObjectMaterial( tmpVariable, 0, 0, "none", "none", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 5134, "wasteland_las2", "concretenewb256", 0 ); - tmpVariable = CreateDynamicObject( 8417, -2042.422607, 1856.380004, 20.824800, 0.000000, 0.000002, 93.800125 ); - SetDynamicObjectMaterial( tmpVariable, 0, 0, "none", "none", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 5134, "wasteland_las2", "concretenewb256", 0 ); - tmpVariable = CreateDynamicObject( 8417, -2074.927490, 1865.764892, 20.834800, 0.000000, 0.000000, 2.199973 ); - SetDynamicObjectMaterial( tmpVariable, 0, 0, "none", "none", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 5134, "wasteland_las2", "concretenewb256", 0 ); - tmpVariable = CreateDynamicObject( 8417, -2114.038574, 1874.155029, 20.824800, 0.000000, 0.000000, -177.199996 ); - SetDynamicObjectMaterial( tmpVariable, 0, 0, "none", "none", 0 ); - SetDynamicObjectMaterial( tmpVariable, 1, 5134, "wasteland_las2", "concretenewb256", 0 ); - CreateDynamicObject( 3242, -2022.802856, 1878.328613, 22.685743, 0.000000, 0.000000, 44.399967 ); - CreateDynamicObject( 3242, -2012.803833, 1888.115234, 22.685743, 0.000000, 0.000000, 44.399967 ); - CreateDynamicObject( 2517, -1998.589721, 1878.360961, 20.755735, 0.000000, 0.000000, -45.500007 ); - CreateDynamicObject( 2517, -2000.328002, 1880.130126, 20.755735, 0.000000, 0.000000, -45.500007 ); - CreateDynamicObject( 2517, -2002.213867, 1882.049072, 20.755735, 0.000000, 0.000000, -45.500007 ); - CreateDynamicObject( 2517, -2004.133789, 1884.002441, 20.755735, 0.000000, 0.000000, -45.500007 ); - CreateDynamicObject( 3280, -2001.943481, 1882.259887, 20.805749, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 3280, -2000.083251, 1880.249755, 20.805749, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 3280, -1998.402587, 1878.518676, 20.805749, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 3280, -2003.924316, 1884.069458, 20.805749, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1368, -2026.848266, 1912.515502, 21.521852, 0.000000, -0.399999, 134.100021 ); - CreateDynamicObject( 1368, -2023.299682, 1908.853393, 21.486249, 0.000000, -0.399999, 134.100021 ); - CreateDynamicObject( 1368, -2019.687500, 1905.126464, 21.480022, 0.000000, -0.399999, 134.100021 ); - CreateDynamicObject( 1368, -2015.860473, 1901.177246, 21.491624, 0.000000, -0.399999, 134.100021 ); - CreateDynamicObject( 16327, -2022.626831, 1844.096191, 21.210548, 0.000000, 0.000000, 40.600009 ); - CreateDynamicObject( 19273, -2047.389892, 1843.410522, 22.601806, 0.000000, 0.000000, 0.000000 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2112.615966, 1912.949340, 18.875694, 0.000000, 0.000000, 39.000000 ), 0, 5134, "wasteland_las2", "concretenewb256", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2109.315917, 1908.811889, 18.855693, 0.000000, 0.000000, 39.000000 ), 0, 5134, "wasteland_las2", "concretenewb256", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2112.632812, 1906.125366, 18.865694, 0.000000, 0.000000, 39.000000 ), 0, 5134, "wasteland_las2", "concretenewb256", 0 ); - SetDynamicObjectMaterial( CreateDynamicObject( 18765, -2115.966796, 1910.235595, 18.855693, 0.000000, 0.000000, 39.000000 ), 0, 5134, "wasteland_las2", "concretenewb256", 0 ); - CreateDynamicObject( 1508, -2107.467285, 1913.822753, 22.625698, 0.000000, 0.000000, 41.600006 ); - CreateDynamicObject( 2628, -2042.831542, 1887.889282, 20.799438, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 2628, -2044.076782, 1889.134521, 20.799438, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 2628, -2045.370971, 1890.428710, 20.799438, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 2627, -2049.986083, 1891.446777, 20.809438, 0.000000, 0.000000, -135.000000 ); - CreateDynamicObject( 2627, -2051.698974, 1889.735717, 20.809438, 0.000000, 0.000000, -135.000000 ); - CreateDynamicObject( 2627, -2053.474609, 1887.959716, 20.809438, 0.000000, 0.000000, -135.000000 ); - CreateDynamicObject( 2631, -2045.314575, 1880.324584, 20.809450, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 2631, -2043.262329, 1882.376831, 20.809450, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 2631, -2041.183959, 1884.455200, 20.809450, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 2915, -2042.887573, 1880.286621, 20.929435, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 2915, -2040.836181, 1882.338012, 20.929435, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 2915, -2045.341552, 1882.740600, 20.929435, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 2915, -2043.262084, 1884.763916, 20.929435, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 2629, -2058.166259, 1885.933593, 20.839435, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 2629, -2056.651367, 1887.447875, 20.839435, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 2632, -2055.970947, 1885.222412, 20.779438, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 2629, -2053.821044, 1884.619628, 20.839435, 0.000000, 0.000000, -135.000000 ); - CreateDynamicObject( 2629, -2055.293701, 1883.147338, 20.839435, 0.000000, 0.000000, -135.000000 ); - CreateDynamicObject( 1594, -2076.873291, 1882.984863, 21.279438, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1594, -2071.922363, 1881.134399, 21.279438, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1594, -2081.106201, 1884.735229, 21.279438, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1594, -2076.843505, 1878.624023, 21.279438, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1594, -2081.575439, 1880.354492, 21.279438, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1594, -2079.643798, 1874.214843, 21.279438, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1594, -2073.291992, 1873.743164, 21.279438, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 1594, -2073.232666, 1877.123413, 21.279438, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 16327, -2110.122070, 1885.015991, 20.766305, 0.000000, 0.000000, -13.500003 ); - CreateDynamicObject( 16327, -2127.075439, 1858.006225, 20.689430, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 16327, -2097.990722, 1909.772949, 21.099515, 0.000000, 0.000000, 46.100002 ); - CreateDynamicObject( 16327, -2061.320312, 1891.989135, 20.799455, 0.000000, 0.000000, -46.399982 ); - CreateDynamicObject( 16327, -2059.766845, 1914.101440, 20.887237, 0.000000, 0.000000, -44.400001 ); - CreateDynamicObject( 16327, -2053.181640, 1839.623657, 20.886312, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 16327, -2075.739990, 1839.623657, 20.886312, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 16327, -2089.614013, 1857.404418, 20.666305, 0.000000, 0.000000, -4.999998 ); - CreateDynamicObject( 987, -2023.728271, 1887.461547, 20.807210, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 987, -2030.233276, 1880.956542, 20.807210, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 987, -2038.633544, 1889.356811, 20.807210, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 987, -2047.110717, 1897.834350, 20.807210, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 987, -2051.199218, 1901.921386, 20.807210, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 987, -2051.199218, 1901.921386, 20.807210, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 987, -2048.158935, 1904.437622, 20.807210, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 987, -2035.961059, 1916.635253, 20.807210, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 987, -2027.511718, 1908.185913, 20.807210, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 987, -2023.599487, 1904.273681, 20.807210, 0.000000, 0.000000, -45.000000 ); - CreateDynamicObject( 2114, -2033.428222, 1898.837158, 20.987220, 0.000000, 0.000000, 0.000000 ); - CreateDynamicObject( 946, -2042.777343, 1907.451538, 22.977230, 0.000000, 0.000000, -138.300094 ); - CreateDynamicObject( 946, -2024.682495, 1889.356689, 22.977230, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 1226, -2016.517089, 1895.273803, 24.647218, 0.000000, 0.000000, 18.500001 ); - CreateDynamicObject( 2630, -2047.702758, 1876.121948, 20.779439, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 2630, -2048.799804, 1875.025268, 20.779439, 0.000000, 0.000000, 45.000000 ); - CreateDynamicObject( 2630, -2050.137939, 1873.687622, 20.779439, 0.000000, 0.000000, 45.000000 ); - SetObjectInvisible( CreateDynamicObject( 18766, -2010.384033, 1902.462890, 29.162845, 0.000000, 0.000000, -47.700027 ) ); - SetObjectInvisible( CreateDynamicObject( 18766, -2003.656738, 1895.076904, 29.162845, 0.000000, 0.000000, -47.700027 ) ); - SetObjectInvisible( CreateDynamicObject( 18766, -1996.953857, 1887.709472, 29.162845, 0.000000, 0.000000, -47.700027 ) ); - // Grotti LS SetDynamicObjectMaterial( CreateDynamicObject( 19435, 517.37, -1302.95, 24.47, 0.00, 0.00, 0.00), 0, 6337, "sunset02_law2", "concpanel_la" ); SetDynamicObjectMaterial( CreateDynamicObject( 19435, 567.17, -1294.78, 17.48, 0.00, 0.00, 0.00), 0, 6337, "sunset02_law2", "concpanel_la" ); @@ -5201,4 +5087,201 @@ stock initializeServerObjects( ) SetDynamicObjectMaterial( tmpVariable, 0, 8460, "vgseland03_lvs", "ceaserwall06_128", 0 ); SetDynamicObjectMaterial( tmpVariable, 1, 8839, "vgsecarshow", "lightred2_32", 0 ); CreateDynamicObject( 19124, -1980.134521, 884.300659, 63.985248, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + + // Alcatraz + tmpVariable = CreateDynamicObject( 11696, -2051.541015, 1774.244018, -42.902000, 0.000000, 0.000000, 0.000000, .streamdistance = -1 ); + SetDynamicObjectMaterial( tmpVariable, 1, 17025, "cuntrock", "cliffmid1", -16 ); + SetDynamicObjectMaterial( tmpVariable, 2, 17025, "cuntrock", "cliffmid1", -16 ); + SetDynamicObjectMaterial( tmpVariable, 0, 11696, "Hill250x250Rocky3", "cw2_mountdirt", 0 ); + CreateDynamicObject( 19313, -2117.447998, 1839.666992, 45.636001, 0.000000, 0.000000, 91.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2117.204101, 1825.771972, 45.804000, 0.000000, 1.399999, 91.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2116.964111, 1811.899047, 45.981998, 0.000000, 0.000000, 91.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2116.780029, 1801.188964, 45.981998, 0.000000, 0.000000, 91.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2109.571044, 1793.555053, 45.981998, 0.000000, 0.000000, -5.099999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2081.603027, 1794.131958, 45.981998, 0.000000, 0.000000, -2.500000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2067.780029, 1792.281005, 45.981998, 0.000000, 0.000000, -13.300000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2053.983886, 1790.505004, 45.981998, 0.000000, 0.000000, -0.899999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2049.350097, 1790.432983, 45.981998, 0.000000, 0.000000, -0.899999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2035.806030, 1792.598999, 45.981998, 0.000000, 0.000000, 19.299999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2022.218017, 1794.905029, 45.981998, 0.000000, 0.000000, 0.300000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2019.535034, 1794.916015, 45.981998, 0.000000, 0.000000, 0.300000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2012.374023, 1801.902954, 45.981998, 0.000000, 0.000000, 88.400001, -1, -1, -1 ); + CreateDynamicObject( 19313, -2011.984985, 1815.848022, 45.981998, 0.000000, 0.000000, 88.400001, -1, -1, -1 ); + CreateDynamicObject( 19313, -2011.343994, 1838.808959, 45.981998, 0.000000, 0.000000, 88.400001, -1, -1, -1 ); + CreateDynamicObject( 19313, -2004.160034, 1846.616943, 45.981998, 0.000000, 0.000000, 6.699999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2001.447998, 1846.937011, 45.981998, 0.000000, 0.000000, 6.699999, -1, -1, -1 ); + CreateDynamicObject( 19313, -1987.774047, 1846.319946, 45.520000, 0.000000, 2.900000, -10.800000, -1, -1, -1 ); + CreateDynamicObject( 19313, -1978.838012, 1838.287963, 45.139999, 0.000000, 0.000000, -71.599998, -1, -1, -1 ); + CreateDynamicObject( 19313, -1980.230957, 1825.656982, 45.139999, 0.000000, 0.000000, 59.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -1987.385986, 1813.750000, 45.139999, 0.000000, 0.000000, 59.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -1992.003051, 1800.848022, 45.139999, 0.000000, 0.000000, 81.300003, -1, -1, -1 ); + CreateDynamicObject( 19313, -1992.416992, 1786.858032, 45.139999, 0.000000, 0.000000, 94.300003, -1, -1, -1 ); + CreateDynamicObject( 19313, -1987.616943, 1774.439941, 45.139999, 0.000000, 0.000000, 127.800003, -1, -1, -1 ); + CreateDynamicObject( 19313, -1982.296020, 1761.922973, 45.139999, 0.000000, 0.000000, 98.400001, -1, -1, -1 ); + CreateDynamicObject( 19313, -1979.052978, 1748.463989, 45.139999, 0.000000, 0.000000, 108.400001, -1, -1, -1 ); + CreateDynamicObject( 19313, -1977.395019, 1734.947021, 45.139999, 0.000000, 0.000000, -94.699996, -1, -1, -1 ); + CreateDynamicObject( 19313, -1994.113037, 1711.443969, 45.139999, 0.000000, 0.000000, 1.899999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2008.076049, 1710.979980, 45.139999, 0.000000, 0.000000, 1.899999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2022.087036, 1710.786010, 45.139999, 0.000000, 0.000000, -0.200000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2036.082031, 1711.095947, 45.139999, 0.000000, 0.000000, -2.599999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2049.989990, 1711.009033, 45.139999, 0.000000, 0.000000, 3.200000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2064.003906, 1710.437011, 45.139999, 0.000000, 0.000000, 1.500000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2077.962890, 1709.473999, 45.139999, 0.000000, 0.000000, 6.599999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2091.676025, 1706.713012, 45.139999, 0.000000, 0.000000, 15.800000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2105.222900, 1706.296020, 45.139999, 0.000000, 0.000000, -12.899999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2118.569091, 1710.369995, 45.139999, 0.000000, 0.000000, -20.799999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2128.149902, 1719.193969, 45.139999, 0.000000, 0.000000, -64.599998, -1, -1, -1 ); + CreateDynamicObject( 19313, -2133.112060, 1732.272949, 45.139999, 0.000000, 0.000000, -73.900001, -1, -1, -1 ); + CreateDynamicObject( 19313, -2135.883056, 1745.967041, 45.139999, 0.000000, 0.000000, -83.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2136.957031, 1759.859985, 45.139999, 0.000000, 0.000000, -88.099998, -1, -1, -1 ); + CreateDynamicObject( 19313, -2137.116943, 1764.738037, 45.139999, 0.000000, 0.000000, -88.099998, -1, -1, -1 ); + CreateDynamicObject( 19313, -2134.762939, 1778.218994, 45.139999, 0.000000, 0.000000, -112.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2132.933105, 1782.755981, 45.139999, 0.000000, 0.000000, -112.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2129.924072, 1796.234008, 45.150001, 0.000000, 0.000000, -93.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -2131.400878, 1809.957031, 45.150001, 0.000000, 0.000000, -74.699996, -1, -1, -1 ); + CreateDynamicObject( 19313, -2134.858886, 1823.562988, 45.150001, 0.000000, 0.000000, -77.199996, -1, -1, -1 ); + CreateDynamicObject( 19313, -2133.697021, 1836.737060, 45.150001, 0.000000, 0.000000, -114.699996, -1, -1, -1 ); + CreateDynamicObject( 19313, -2124.256103, 1844.828002, 45.049999, 0.000000, 0.000000, -163.600006, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 898, -2016.324951, 1833.566040, 45.444999, 0.000000, 0.000000, -90.199996, -1, -1, -1 ), 0, 17025, "cuntrock", "cliffmid1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 898, -2017.589965, 1834.517944, 45.424999, 14.300000, 0.000000, -39.799999, -1, -1, -1 ), 0, 17025, "cuntrock", "cliffmid1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 898, -2015.780029, 1818.338989, 45.750999, 14.300000, 0.000000, -98.199996, -1, -1, -1 ), 0, 17025, "cuntrock", "cliffmid1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 898, -2017.067993, 1816.223999, 46.860000, 14.300000, 0.000000, -142.600006, -1, -1, -1 ), 0, 17025, "cuntrock", "cliffmid1", -16 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19700, -2012.499023, 1801.114013, 53.648998, 0.000000, 90.000000, -1.899999, -1, -1, -1 ), 0, 19700, "none", "none", 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19700, -2012.086059, 1813.505981, 53.648998, 0.000000, 90.000000, -1.899999, -1, -1, -1 ), 0, 19700, "none", "none", 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19700, -2011.671997, 1826.010009, 53.648998, 0.000000, 90.000000, -1.899999, -1, -1, -1 ), 0, 19700, "none", "none", 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19700, -2011.218994, 1839.702026, 53.648998, 0.000000, 90.000000, -1.899999, -1, -1, -1 ), 0, 19700, "none", "none", 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 19700, -2011.509033, 1830.988037, 53.648998, 0.000000, 90.000000, -1.899999, -1, -1, -1 ), 0, 19700, "none", "none", 1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 898, -2016.949951, 1825.939941, 52.902000, -81.900001, 0.000000, -39.799999, -1, -1, -1 ), 0, 17025, "cuntrock", "cliffmid1", -16 ); + tmpVariable = CreateDynamicObject( 19313, -2116.964111, 1811.899047, 51.431999, 0.000000, 0.000000, 91.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 1, 17025, "cuntrock", "cliffmid1", 1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 17025, "cuntrock", "cliffmid1", 1 ); + tmpVariable = CreateDynamicObject( 19313, -2117.204101, 1825.910034, 51.462001, 0.000000, 1.399999, 91.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 17025, "cuntrock", "cliffmid1", 1 ); + SetDynamicObjectMaterial( tmpVariable, 1, 17025, "cuntrock", "cliffmid1", 1 ); + CreateDynamicObject( 18268, -2051.471923, 1834.894042, 73.278999, 0.000000, 0.000000, -24.500000, -1, -1, -1 ); + CreateDynamicObject( 18268, -2069.943115, 1837.413940, 56.138999, 0.000000, 0.000000, 170.500000, -1, -1, -1 ); + CreateDynamicObject( 6295, -1982.427978, 1720.067016, 65.616996, 0.000000, 0.000000, 38.299999, -1, -1, -1 ); + CreateDynamicObject( 19313, -1980.051025, 1721.412963, 45.139999, 0.000000, 0.000000, -106.800003, -1, -1, -1 ); + CreateDynamicObject( 19313, -1982.302978, 1716.746948, 45.139999, 0.000000, 0.000000, -133.000000, -1, -1, -1 ); + CreateDynamicObject( 3427, -2100.240966, 1716.201049, 42.891998, 0.000000, 0.000000, 120.300003, -1, -1, -1 ); + CreateDynamicObject( 3643, -2088.209960, 1726.152954, 47.138999, 0.000000, 0.000000, -71.199996, -1, -1, -1 ); + CreateDynamicObject( 11461, -2132.152099, 1750.506958, 41.904998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 11461, -2132.955078, 1761.522949, 41.904998, 0.000000, 0.000000, 20.899999, -1, -1, -1 ); + CreateDynamicObject( 13367, -2130.738037, 1833.348999, 53.673999, 0.000000, 0.000000, -24.500000, -1, -1, -1 ); + CreateDynamicObject( 17000, -2002.338012, 1840.102050, 42.326999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + SetDynamicObjectMaterial( CreateDynamicObject( 16446, -1995.322998, 1781.859008, 41.359001, 0.000000, 0.000000, 99.000000, -1, -1, -1 ), 0, 0, "none", "none", 0 ); + CreateDynamicObject( 5836, -1991.525024, 1769.984008, 54.347999, 0.000000, 0.000000, -41.900001, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 17513, -2020.968017, 1727.017944, 34.811000, 0.000000, 0.000000, 91.400001, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 3, 17513, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 4, 17513, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 1, 17513, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 17513, "none", "none", 1 ); + tmpVariable = CreateDynamicObject( 17513, -2020.889038, 1723.797973, 34.805000, 0.000000, 0.000000, 91.400001, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 3, 17513, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 4, 17513, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 1, 17513, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 17513, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 2, 8416, "vgsbballcrt", "greyground256128", 0 ); + CreateDynamicObject( 19313, -2003.738037, 1734.816040, 46.046001, 0.000000, 0.000000, 91.099998, -1, -1, -1 ); + CreateDynamicObject( 19313, -2003.490966, 1722.046020, 46.046001, 0.000000, 0.000000, 91.099998, -1, -1, -1 ); + CreateDynamicObject( 19313, -2010.818969, 1741.640014, 46.046001, 0.000000, 0.000000, 1.299999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2010.323974, 1714.926025, 46.046001, 0.000000, 0.000000, 1.299999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2026.875000, 1741.275024, 46.046001, 0.000000, 0.000000, 1.299999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2026.219970, 1714.564941, 46.046001, 0.000000, 0.000000, 1.299999, -1, -1, -1 ); + CreateDynamicObject( 19313, -2033.748046, 1734.109008, 46.046001, 0.000000, 0.000000, 91.099998, -1, -1, -1 ); + CreateDynamicObject( 19313, -2033.505981, 1721.411010, 46.046001, 0.000000, 0.000000, 91.099998, -1, -1, -1 ); + CreateDynamicObject( 946, -2004.894042, 1729.128051, 44.978000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 946, -2032.187988, 1728.396972, 44.978000, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 1297, -2007.485961, 1739.139038, 46.158000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1297, -2013.245971, 1739.139038, 46.158000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1297, -2023.844970, 1739.139038, 46.158000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1297, -2029.796020, 1739.139038, 46.158000, 0.000000, 0.000000, 90.000000, -1, -1, -1 ); + CreateDynamicObject( 1368, -2026.965942, 1739.590942, 43.467998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1368, -2010.413940, 1739.590942, 43.467998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 19313, -1979.052978, 1748.463989, 38.540000, 0.000000, 0.000000, 108.400001, -1, -1, -1 ); + CreateDynamicObject( 19313, -1977.395019, 1734.947021, 38.720001, 0.000000, 0.000000, -94.699996, -1, -1, -1 ); + CreateDynamicObject( 618, -2009.551513, 1797.848388, 42.968708, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 16327, -2043.649047, 1715.628051, 41.734001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 16327, -2063.378906, 1714.154052, 41.734001, 0.000000, 0.000000, 16.899999, -1, -1, -1 ); + CreateDynamicObject( 16327, -2086.620117, 1710.051025, 41.734001, 0.000000, 0.000000, -1.899999, -1, -1, -1 ); + CreateDynamicObject( 16327, -1980.360961, 1738.504028, 41.258998, 0.000000, 0.000000, 11.100000, -1, -1, -1 ); + CreateDynamicObject( 16327, -1995.744995, 1789.537963, 42.648998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 16327, -1994.253051, 1809.894042, 41.758998, 0.000000, 0.000000, -29.600000, -1, -1, -1 ); + CreateDynamicObject( 618, -2009.551513, 1806.239624, 42.968708, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 618, -2075.224365, 1778.763183, 42.978706, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1260, -2038.368041, 1791.296997, 47.409000, 0.000000, 0.000000, 100.800003, -1, -1, -1 ); + SetDynamicObjectMaterialText( CreateDynamicObject( 7909, -2038.739013, 1792.104003, 52.979000, 0.000000, 0.000000, 10.800000, -1, -1, -1 ), 0, "Alcatraz", 130, "IMPACT", 120, 0, -1, 0, 1 ); + CreateDynamicObject( 19313, -2095.590087, 1793.677001, 45.981998, 0.000000, 0.000000, 6.099999, -1, -1, -1 ); + CreateDynamicObject( 1679, -2057.504882, 1721.427978, 43.219001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1679, -2051.134033, 1720.057006, 43.219001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 618, -2088.058837, 1778.763183, 42.978706, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1679, -2054.084960, 1727.029052, 43.219001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 618, -2044.264282, 1729.603393, 42.978706, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1679, -2039.296020, 1721.947998, 43.219001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 618, -2047.617553, 1741.858642, 42.978706, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 618, -2105.628662, 1780.314697, 42.978706, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1216, -2034.042968, 1721.562988, 43.368000, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 1216, -2034.042968, 1730.943969, 43.368000, 0.000000, 0.000000, -90.000000, -1, -1, -1 ); + CreateDynamicObject( 18236, -2030.634033, 1789.380004, 42.719001, 0.000000, 0.000000, 99.699996, -1, -1, -1 ); + CreateDynamicObject( 1997, -2020.909057, 1792.633056, 42.738998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 1997, -2019.275024, 1793.098022, 42.738998, 0.000000, 0.000000, 139.100006, -1, -1, -1 ); + CreateDynamicObject( 16327, -2051.986083, 1786.858032, 42.479000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 16327, -2080.388916, 1791.166992, 42.479000, 0.000000, 0.000000, -10.399999, -1, -1, -1 ); + CreateDynamicObject( 16327, -2114.218994, 1791.704956, 42.479000, 0.000000, 0.000000, -1.200000, -1, -1, -1 ); + CreateDynamicObject( 16327, -1992.180053, 1716.468994, 41.969001, 0.000000, 0.000000, 2.500000, -1, -1, -1 ); + CreateDynamicObject( 18248, -2044.727050, 1800.765991, 50.558998, 0.000000, 0.000000, 144.699996, -1, -1, -1 ); + CreateMiningRock( 0, 867, -2033.832031, 1769.868286, 43.298999, 0.000000, 0.000000, 0.000000 ); + CreateMiningRock( 1, 867, -2026.916137, 1773.185424, 43.298999, 0.000000, 0.000000, -122.800003 ); + CreateMiningRock( 2, 867, -2026.784301, 1759.508300, 43.298999, 0.000000, 0.000000, 0.000000 ); + CreateMiningRock( 1, 867, -2034.441040, 1759.048950, 43.298999, 0.000000, 0.000000, 0.000000 ); + CreateMiningRock( 0, 867, -2019.292480, 1754.896362, 43.298999, 0.000000, 0.000000, 0.000000 ); + CreateMiningRock( 1, 867, -2013.604003, 1767.661865, 43.298999, 0.000000, 0.000000, 0.000000 ); + CreateMiningRock( 2, 867, -2016.374145, 1770.856079, 43.298999, 0.000000, 0.000000, 0.000000 ); + CreateMiningRock( 0, 867, -2044.821044, 1765.729980, 43.298999, 0.000000, 0.000000, -76.80000 ); + CreateMiningRock( 0, 867, -2042.848144, 1770.819335, 43.298999, 0.000000, 0.000000, -168.0000 ); + CreateMiningRock( 3, 867, -2034.399536, 1751.985229, 43.298999, 0.000000, 0.000000, -168.000000 ); + CreateMiningRock( 0, 867, -2029.619750, 1758.542724, 43.298999, 0.000000, 0.000000, -168.000000 ); + CreateDynamicObject( 8879, -2001.619018, 1754.954956, 48.688999, 0.000000, 0.000000, 54.400001, -1, -1, -1 ); + CreateDynamicObject( 8879, -2057.771972, 1786.723022, 48.688999, 0.000000, 0.000000, -141.800003, -1, -1, -1 ); + CreateDynamicObject( 8878, -2053.410888, 1781.672973, 49.699001, 0.000000, 0.000000, 84.199996, -1, -1, -1 ); + CreateDynamicObject( 618, -2105.628662, 1771.532470, 42.978706, 0.000000, 0.000000, 60.700069, -1, -1, -1 ); + CreateDynamicObject( 618, -2118.327392, 1773.766113, 42.978706, 0.000000, 0.000000, 60.700069, -1, -1, -1 ); + CreateDynamicObject( 19902, -1999.953857, 1781.213989, 43.168739, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 18234, -1988.675048, 1751.760009, 41.881999, 0.000000, 1.000000, 12.899999, -1, -1, -1 ); + CreateDynamicObject( 9618, -2091.160888, 1760.253051, 52.787998, 0.000000, 0.000000, 100.000000, -1, -1, -1 ); + tmpVariable = CreateDynamicObject( 19313, -2067.780029, 1792.281005, 50.981998, 0.000000, 0.000000, -13.300000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 1, 19313, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 19313, "none", "none", 1 ); + tmpVariable = CreateDynamicObject( 19313, -2053.983886, 1790.505004, 50.981998, 0.000000, 0.000000, -0.899999, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 19313, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 1, 19313, "none", "none", 1 ); + tmpVariable = CreateDynamicObject( 19313, -2049.350097, 1790.432983, 50.981998, 0.000000, 0.000000, -0.899999, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 19313, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 1, 19313, "none", "none", 1 ); + tmpVariable = CreateDynamicObject( 19313, -2035.806030, 1792.598999, 50.981998, 0.000000, 0.000000, 19.299999, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 19313, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 1, 19313, "none", "none", 1 ); + tmpVariable = CreateDynamicObject( 19313, -2022.218017, 1794.905029, 50.981998, 0.000000, 0.000000, 0.300000, -1, -1, -1 ); + SetDynamicObjectMaterial( tmpVariable, 0, 19313, "none", "none", 1 ); + SetDynamicObjectMaterial( tmpVariable, 1, 19313, "none", "none", 1 ); + CreateDynamicObject( 8874, -2006.890991, 1758.239990, 49.589000, 0.000000, 0.000000, -157.800994, -1, -1, -1 ); + CreateDynamicObject( 19834, -2010.604736, 1825.674804, 42.758743, 90.000000, -74.700012, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 3287, -2076.824951, 1720.203979, 47.359001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 819, -2109.500000, 1792.000976, 42.449001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 819, -2104.051025, 1792.000976, 41.589000, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 819, -2095.989990, 1792.592041, 42.449001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 819, -2099.800048, 1792.000976, 42.118999, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 819, -2092.120117, 1792.592041, 41.289001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 819, -2088.069091, 1792.592041, 41.898998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 819, -2082.928955, 1792.592041, 42.449001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 695, -2066.409912, 1799.141967, 42.969001, 0.000000, 0.000000, -9.300000, -1, -1, -1 ); + CreateDynamicObject( 695, -2101.706054, 1804.493041, 42.969001, 0.000000, 0.000000, -90.500000, -1, -1, -1 ); + CreateDynamicObject( 698, -2125.081054, 1729.795043, 48.080001, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 660, -2131.279052, 1780.607055, 42.738998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 660, -2132.500000, 1770.978027, 42.738998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 660, -2128.229003, 1791.727050, 42.738998, 0.000000, 0.000000, 0.000000, -1, -1, -1 ); + CreateDynamicObject( 9618, -2104.736083, 1757.859008, 52.790000, 0.000000, 0.000000, 100.000000, -1, -1, -1 ); + 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 ); } diff --git a/pawno/include/irresistible/cnr/static/server_vehicles.inc b/pawno/include/irresistible/cnr/static/server_vehicles.inc index 48cb703..f8cc3d7 100644 --- a/pawno/include/irresistible/cnr/static/server_vehicles.inc +++ b/pawno/include/irresistible/cnr/static/server_vehicles.inc @@ -375,14 +375,6 @@ static stock InitializeServerVehicles( ) AddStaticVehicle( 487, -1129.844200, -196.243300, 14.419300, 17.569400, -1, -1 ); AddStaticVehicle( 487, -1112.967000, -179.658400, 14.441800, 17.569400, -1, -1 ); AddStaticVehicle( 487, -1107.054600, -201.881600, 14.421300, 17.569400, -1, -1 ); - AddStaticVehicle( 473, -2061.434800, 1649.142500, -0.294100, 174.99280, -1, -1 ); - AddStaticVehicle( 473, -2067.982200, 1649.720200, -0.244300, 174.99280, -1, -1 ); - AddStaticVehicle( 473, -2072.878400, 1650.152500, -0.207100, 174.99280, -1, -1 ); - AddStaticVehicle( 473, -1967.595200, 1691.162200, -0.415600, 175.43550, -1, -1 ); - AddStaticVehicle( 473, -1960.556200, 1690.641800, -0.222000, 175.51280, -1, -1 ); - AddStaticVehicle( 473, -1912.116100, 1774.927000, -0.393800, 175.68510, -1, -1 ); - AddStaticVehicle( 473, -1907.980200, 1858.248400, -0.175000, 250.12210, -1, -1 ); - AddStaticVehicle( 473, -1906.774000, 1869.304700, -0.441600, 248.84890, -1, -1 ); CreateVehicle( 498, -2460.731200, -2.41190000, 28.007300, 269.90640, -1, -1, -1 ); // BoxVille CreateVehicle( 498, -2460.730500, -5.54940000, 28.004800, 269.33500, -1, -1, -1 ); // BoxVille CreateVehicle( 498, -2460.730000, -11.6038000, 28.159400, 270.65460, -1, -1, -1 ); // BoxVille @@ -413,22 +405,9 @@ static stock InitializeServerVehicles( ) AddStaticVehicle( 488, -1882.6461, -204.7765, 23.2701, 268.0665, -1, -1 ); // cake hq vehicles AddStaticVehicle( 480, -1871.6210, -199.5918, 18.2159, 270.0637, -1, -1 ); // cake hq vehicles AddStaticVehicle( 521, -722.95300, -123.1921, 67.8943, 114.2874, -1, -1 ); // cake hq vehicles - - // Gal Race - tmpVariable = AddStaticVehicle( 494, -1158.1777, 1341.4666, 1132.1697, 180.8421, 36, 117 ); - SetVehicleVirtualWorld( tmpVariable, 32 ), LinkVehicleToInterior( tmpVariable, 9 ); - tmpVariable = AddStaticVehicle( 494, -1152.7059, 1341.3110, 1132.1720, 181.7808, 98, 109 ); - SetVehicleVirtualWorld( tmpVariable, 32 ), LinkVehicleToInterior( tmpVariable, 9 ); - tmpVariable = AddStaticVehicle( 494, -1148.2886, 1341.3065, 1132.2030, 182.0001, 92, 101 ); - SetVehicleVirtualWorld( tmpVariable, 32 ), LinkVehicleToInterior( tmpVariable, 9 ); - tmpVariable = AddStaticVehicle( 494, -1144.0511, 1341.3103, 1132.1731, 179.2510, 75, 79 ); - SetVehicleVirtualWorld( tmpVariable, 32 ), LinkVehicleToInterior( tmpVariable, 9 ); - tmpVariable = AddStaticVehicle( 494, -1139.7194, 1341.1389, 1132.1704, 184.7887, 54, 36 ); - SetVehicleVirtualWorld( tmpVariable, 32 ), LinkVehicleToInterior( tmpVariable, 9 ); - tmpVariable = AddStaticVehicle( 494, -1135.2349, 1341.2239, 1132.1724, 182.0041, 42, 33 ); - SetVehicleVirtualWorld( tmpVariable, 32 ), LinkVehicleToInterior( tmpVariable, 9 ); - tmpVariable = AddStaticVehicle( 494, -1130.7087, 1341.2335, 1132.1774, 180.8928, 42, 30 ); - SetVehicleVirtualWorld( tmpVariable, 32 ), LinkVehicleToInterior( tmpVariable, 9 ); + AddStaticVehicle( 473,-2132.7664, 1689.1938, -0.2510, 145.6282, -1 , -1 ); // alca dinghy + AddStaticVehicle( 473,-2124.7256, 1680.1863, -0.3078, 211.8767, -1 , -1 ); // alca dinghy + AddStaticVehicle( 473,-2147.2537, 1693.4557, -0.2553, 220.9750, -1 , -1 ); // alca dinghy // Vehicle Dealership tmpVariable = AddStaticVehicle( 494, -1867.3900, -621.3196, 1007.0273, 130.5349, -1, -1 ); // DL1 diff --git a/pawno/include/irresistible/cnr/vip.inc b/pawno/include/irresistible/cnr/vip.inc index 304e048..f076b2f 100644 --- a/pawno/include/irresistible/cnr/vip.inc +++ b/pawno/include/irresistible/cnr/vip.inc @@ -290,7 +290,7 @@ hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) { GivePlayerIrresistibleCoins( playerid, -iCoinRequirement ); AddPlayerNote( playerid, -1, sprintf( ""COL_GOLD"%s" #COL_WHITE, g_irresistibleMarketItems[ listitem ] [ E_NAME ] ) ); - SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a VIP Coke Business. (/viewnotes)", ReturnPlayerName( playerid ), playerid ); + SendClientMessageToAdmins( -1, ""COL_PINK"[DONOR NEEDS HELP]"COL_GREY" %s(%d) needs a %s. (/viewnotes)", ReturnPlayerName( playerid ), playerid, g_irresistibleMarketItems[ listitem ] [ E_NAME ] ); SendServerMessage( playerid, "You have ordered a "COL_GOLD"%s"COL_WHITE" for %s Irresistible Coins!", g_irresistibleMarketItems[ listitem ] [ E_NAME ], number_format( iCoinRequirement, .prefix = '\0', .decimals = 0 ) ); SendServerMessage( playerid, "Online admins have been notified of your purchase. Use "COL_GREY"/notes"COL_WHITE" to track your orders and to remind online admins." ); ShowPlayerHelpDialog( playerid, 10000, "You can use ~y~/notes~w~ to track your orders.~n~~n~Also, admins can be called using this command." ); diff --git a/pawno/include/irresistible/features/ammunation.inc b/pawno/include/irresistible/features/ammunation.inc new file mode 100644 index 0000000..062d3b3 --- /dev/null +++ b/pawno/include/irresistible/features/ammunation.inc @@ -0,0 +1,116 @@ +/* + * Irresistible Gaming (c) 2018 + * Developed by Lorenc Pekaj + * Module: + * Purpose: + */ + +/* ** Includes ** */ +#include < YSI\y_hooks > + +/* ** Definitions ** */ +#define MENU_ASSAULT ( 0 ) +#define MENU_MELEE ( 1 ) +#define MENU_SUB_SMGS ( 2 ) +#define MENU_PISTOLS ( 3 ) +#define MENU_RIFLES ( 4 ) +#define MENU_SHOTGUNS ( 5 ) +#define MENU_THROWN ( 6 ) +#define MENU_ARMOR ( 7 ) + +/* ** Variables ** */ +enum E_WEAPONS_DATA +{ + E_MENU, E_NAME[ 32 ], E_WEPID, + E_AMMO, E_PRICE +}; + +new + g_AmmunitionCategory[ ] [ ] = + { + { "Assault" }, { "Melee" }, { "Submachine Guns" }, { "Pistols" }, + { "Rifles" }, { "Shotguns" }, { "Thrown" }, { "Armor" } + }, + g_AmmunationWeapons[ ][ E_WEAPONS_DATA ] = + { + { MENU_MELEE, "Flowers", 14, 1, 75 }, + { MENU_MELEE, "Shovel", 6, 1, 100 }, + { MENU_MELEE, "Pool Cue", 7, 1, 125 }, + { MENU_MELEE, "Golf Club", 2, 1, 125 }, + { MENU_MELEE, "Baseball Bat", 5, 1, 180 }, + { MENU_MELEE, "Brass Knuckles", 1, 1, 200 }, + { MENU_MELEE, "Parachute", 46, 1, 200 }, + { MENU_MELEE, "Camera", 43, 1, 250 }, + { MENU_MELEE, "Knife", 4, 1, 300 }, + { MENU_MELEE, "Katana", 8, 1, 600 }, + { MENU_MELEE, "Chainsaw", 9, 1, 750 }, + + { MENU_PISTOLS, "9mm Pistol", 22, 180, 200 }, + { MENU_PISTOLS, "Silenced 9mm", 23, 180, 400 }, + { MENU_PISTOLS, "Desert Eagle", 24, 100, 1250 }, + + { MENU_SHOTGUNS, "Shotgun", 25, 75, 600 }, + { MENU_SHOTGUNS, "Sawn-off Shotgun", 26, 100, 1200 }, + { MENU_SHOTGUNS, "Combat Shotgun", 27, 100, 1800 }, + + { MENU_SUB_SMGS, "MP5", 29, 100, 500 }, + { MENU_SUB_SMGS, "Tec 9", 32, 100, 600 }, + { MENU_SUB_SMGS, "Mac 10", 28, 100, 700 }, + + { MENU_ASSAULT, "AK47", 30, 100, 800 }, + { MENU_ASSAULT, "M4", 31, 100, 1000 }, + + { MENU_RIFLES, "Rifle", 33, 100, 300 }, + { MENU_RIFLES, "Sniper", 34, 75, 1000 }, + + { MENU_THROWN, "Teargas", 17, 5, 500 }, + { MENU_THROWN, "Grenade", 16, 1, 1200 }, + { MENU_THROWN, "Molotov Cocktail", 18, 4, 1400 }, + + { MENU_ARMOR, "Armor", 101, 100, 12500 } + }, + 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 ) +{ + 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 ] ); + } else { + format( szString, sizeof( szString ), "%s%s\t", szString, g_AmmunationWeapons[ i ] [ E_NAME ] ); + } + + // check for free or not + if ( custom_multplier > 0.0 ) { + format( szString, sizeof( szString ), "%s"COL_GOLD"%s\n", szString, number_format( floatround( g_AmmunationWeapons[ i ] [ E_PRICE ] * custom_multplier ) ) ); + } else { + strcat( szString, ""COL_GOLD"FREE\n" ); + } + } + ShowPlayerDialog( playerid, custom_dialogid, DIALOG_STYLE_TABLIST_HEADERS, custom_title, szString, "Purchase", "Back" ); + return 1; +} + +stock ShowAmmunationMenu( playerid, custom_title[ ] = "{FFFFFF}Ammu-Nation", custom_dialogid = DIALOG_AMMU ) +{ + static + szString[ 70 ]; + + if ( !szString[ 0 ] ) + { + for( new i = 0; i < sizeof( g_AmmunitionCategory ); i++ ) { + format( szString, sizeof( szString ), "%s%s\n", szString, g_AmmunitionCategory[ i ] ); + } + } + return ShowPlayerDialog( playerid, custom_dialogid, DIALOG_STYLE_LIST, custom_title, szString, "Select", "Cancel" ); +} diff --git a/pawno/include/irresistible/features/fishing.inc b/pawno/include/irresistible/features/fishing.inc new file mode 100644 index 0000000..14935cd --- /dev/null +++ b/pawno/include/irresistible/features/fishing.inc @@ -0,0 +1,21 @@ +/* + * Irresistible Gaming (c) 2018 + * Developed by Lorenc Pekaj + * Module: fishing.inc + * Purpose: fishing module + */ + +/* ** Includes ** */ +#include < YSI\y_hooks > + +/* ** Definitions ** */ + +/* ** Variables ** */ + +/* ** Hooks ** */ + +/* ** Functions ** */ +CMD:fish( playerid, params[ ] ) +{ + return 1; +} diff --git a/pawno/include/irresistible/features/gangs/facilities.inc b/pawno/include/irresistible/features/gangs/facilities.inc index 0337e6a..0d37462 100644 --- a/pawno/include/irresistible/features/gangs/facilities.inc +++ b/pawno/include/irresistible/features/gangs/facilities.inc @@ -1,29 +1,49 @@ /* * Irresistible Gaming (c) 2018 * Developed by Lorenc Pekaj - * Module: - * Purpose: + * Module: facilities.inc + * Purpose: gang facilities module */ /* ** Includes ** */ #include < YSI\y_hooks > /* ** Definitions ** */ -#define MAX_FACILITIES ( 16 ) +#define MAX_FACILITIES ( 24 ) +#define FACILITY_AMMU_RESPECT ( 75000.0 ) + +#define DIALOG_GANG_JOIN ( 9238 ) +#define DIALOG_FACILITY_AMMU ( 9239 ) +#define DIALOG_FACILITY_AMMU_BUY ( 9299 ) + +/* ** Variables ** */ enum E_GANG_FACILITIES { - E_GANG_SQL_ID, E_TURF_ID, + 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 +}; + +enum E_FACILITY_INTERIOR +{ + Float: E_X, Float: E_Y, Float: E_Z, + + Float: E_AMMU_POS[ 4 ] //Float: E_MECHANIC_POS[ 4 ] }; -/* ** Variables ** */ new + g_gangFacilityInterior [ ] [ E_FACILITY_INTERIOR ] = + { + { 228.2063, 1872.4011, 1463.7345, { 248.4965, 1797.5060, 1457.4143, 0.000000 } } + }, g_gangFacilities [ MAX_FACILITIES ] [ E_GANG_FACILITIES ], - // g_gangsWithFacilities [ MAX_FACILITIES ], + // g_gangsWithFacilities [ MAX_FACILITIES ], Iterator: gangfacilities < MAX_FACILITIES > ; @@ -32,6 +52,159 @@ hook OnGameModeInit( ) { // preload gang and facility mysql_function_query( dbHandle, "SELECT `GANG_FACILITIES`.`ID` as `FACILITY_ID`, `GANGS`.*, `GANG_FACILITIES`.* FROM `GANGS` JOIN `GANG_FACILITIES` ON `GANGS`.`ID` = `GANG_FACILITIES`.`GANG_ID`", true, "OnGangFaciltiesLoad", "d", INVALID_PLAYER_ID ); + + // initialize facility objects + initializeFacilityObjects( ); + return 1; +} + +hook OnPlayerEnterDynamicCP( playerid, checkpointid ) +{ + if ( CanPlayerExitEntrance( playerid ) ) + { + new + gangid = GetPlayerGang( playerid ); + + foreach ( new facility : gangfacilities ) + { + // entrance + if ( checkpointid == g_gangFacilities[ facility ] [ E_CHECKPOINT ] [ 0 ] ) + { + new turfid = g_gangFacilities[ facility ] [ E_TURF_ID ]; + new facility_gangid = Turf_GetFacility( turfid ); + + // not in the gang / not a turf owner + if ( ! ( Turf_GetOwner( turfid ) == gangid || facility_gangid == gangid ) ) + { + if ( ! IsGangPrivate( facility_gangid ) && gangid == INVALID_GANG_ID ) + { + SetPVarInt( playerid, "gang_facility_join", facility_gangid ); // store gang id + return ShowPlayerDialog( + playerid, DIALOG_GANG_JOIN, DIALOG_STYLE_MSGBOX, + sprintf( "{%06x}%s", g_gangData[ facility_gangid ] [ E_COLOR ] >>> 8, g_gangData[ facility_gangid ] [ E_NAME ] ), + ""COL_WHITE"This gang is a public gang, would you like to join it?", + "Yes", "No" + ); + } + else + { + return SendError( playerid, "You are not in the gang of this facility. Capture it to enter." ); + } + } + + new + int_type = g_gangFacilities[ facility ] [ E_INTERIOR_TYPE ]; + + // begin entrance + pauseToLoad( playerid ); + UpdatePlayerEntranceExitTick( playerid ); + SetPlayerPos( playerid, g_gangFacilityInterior[ int_type ] [ E_X ], g_gangFacilityInterior[ int_type ] [ E_Y ], g_gangFacilityInterior[ int_type ] [ E_Z ] ); + SetPlayerVirtualWorld( playerid, g_gangFacilities[ facility ] [ E_WORLD ] ); + SetPlayerInterior( playerid, 0 ); + break; + } + + // exit + else if ( checkpointid == g_gangFacilities[ facility ] [ E_CHECKPOINT ] [ 1 ] ) + { + TogglePlayerControllable( playerid, 0 ); + UpdatePlayerEntranceExitTick( playerid ); + SetTimerEx( "ope_Unfreeze", 1250, false, "d", playerid ); + SetPlayerPosEx( playerid, g_gangFacilities[ facility ] [ E_X ], g_gangFacilities[ facility ] [ E_Y ], g_gangFacilities[ facility ] [ E_Z ], 0 ); + SetPlayerVirtualWorld( playerid, 0 ); + break; + } + + // ammunation + else if ( checkpointid == g_gangFacilities[ facility ] [ E_AMMU_CP ] ) + { + return ShowAmmunationMenu( playerid, "{FFFFFF}Gang Facility - Purchase Weapons", DIALOG_FACILITY_AMMU ); + } + } + } + return 1; +} + +hook OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] ) +{ + if ( dialogid == DIALOG_GANG_JOIN && response ) + { + if ( p_GangID[ playerid ] != -1 ) + return SendServerMessage( playerid, "You are already in a gang." ); + + new + joining_gang = GetPVarInt( playerid, "gang_facility_join" ); + + if ( ! Iter_Contains( gangs, joining_gang ) || IsGangPrivate( joining_gang ) ) + return SendError( playerid, "You can no longer join this gang." ); + + p_GangID[ playerid ] = joining_gang; + if ( GetPlayerWantedLevel( playerid ) < 1 ) SetPlayerColor( playerid, g_gangData[ joining_gang ] [ E_COLOR ] ); + mysql_single_query( sprintf( "UPDATE `USERS` SET `GANG_ID`=%d WHERE `ID`=%d", g_gangData[ joining_gang ] [ E_SQL_ID ], GetPlayerAccountID( playerid ) ) ); + SendClientMessageToGang( joining_gang, g_gangData[ joining_gang ] [ E_COLOR ], "[GANG]{FFFFFF} %s(%d) has joined the gang.", ReturnPlayerName( playerid ), playerid ); + return 1; + } + else if ( dialogid == DIALOG_FACILITY_AMMU && response ) + { + new player_gang = GetPlayerGang( playerid ); + + if ( ! Iter_Contains( gangs, player_gang ) ) + return SendError( playerid, "You are not in any gang." ); + + new Float: discount = ( FACILITY_AMMU_RESPECT - float( g_gangData[ player_gang ] [ E_RESPECT ] ) ) / FACILITY_AMMU_RESPECT; + + SetPVarInt( playerid, "facility_weapon_cat", listitem ); + RedirectAmmunation( playerid, listitem, "{FFFFFF}Gang Facility - Purchase Weapons", DIALOG_FACILITY_AMMU_BUY, discount ); + } + else if ( dialogid == DIALOG_FACILITY_AMMU_BUY ) + { + if ( response ) + { + new player_gang = GetPlayerGang( playerid ); + + if ( ! Iter_Contains( gangs, player_gang ) ) return SendError( playerid, "You are not in any gang." ); + if ( IsPlayerJailed( playerid ) ) return SendError( playerid, "You cannot buy weapons in jail." ); + if ( IsPlayerInEvent( playerid ) ) return SendError( playerid, "You cannot buy weapons in an event." ); + if ( GetPlayerState( playerid ) == PLAYER_STATE_WASTED || !IsPlayerSpawned( playerid ) ) return SendError( playerid, "You are unable to purchase any weapons at this time." ); + + new gun_category = GetPVarInt( playerid, "facility_weapon_cat" ); + new Float: gun_discount = ( FACILITY_AMMU_RESPECT - float( g_gangData[ player_gang ] [ E_RESPECT ] ) ) / FACILITY_AMMU_RESPECT; + + // make sure player doesnt get credited money lol + if ( gun_discount < 0.0 ) { + gun_discount = 0.0; + } + + for( new i, x = 0; i < sizeof( g_AmmunationWeapons ); i++ ) + { + if ( g_AmmunationWeapons[ i ] [ E_MENU ] == gun_category ) + { + if ( x == listitem ) + { + new price = floatround( g_AmmunationWeapons[ i ] [ E_PRICE ] * gun_discount ); // Change the discount here!! + + if ( price > GetPlayerCash( playerid ) ) + { + SendError( playerid, "You don't have enough money for this." ); + RedirectAmmunation( playerid, gun_category, "{FFFFFF}Gang Facility - Purchase Weapons", DIALOG_FACILITY_AMMU_BUY, gun_discount ); + return 1; + } + + GivePlayerCash( playerid, -price ); + + if ( g_AmmunationWeapons[ i ] [ E_WEPID ] == 101 ) SetPlayerArmour( playerid, float( g_AmmunationWeapons[ i ] [ E_AMMO ] ) ); + else GivePlayerWeapon( playerid, g_AmmunationWeapons[ i ] [ E_WEPID ], g_AmmunationWeapons[ i ] [ E_AMMO ] ); + + RedirectAmmunation( playerid, gun_category, "{FFFFFF}Gang Facility - Purchase Weapons", DIALOG_FACILITY_AMMU_BUY, gun_discount ); + SendServerMessage( playerid, "You have purchased %s(%d) for "COL_GOLD"%s"COL_WHITE"%s.", g_AmmunationWeapons[ i ] [ E_NAME ], g_AmmunationWeapons[ i ] [ E_AMMO ], price > 0.0 ? number_format( price ) : ( "FREE" ) ); + break; + } + x ++; + } + } + } + else return ShowAmmunationMenu( playerid, "{FFFFFF}Gang Facility - Purchase Weapons", DIALOG_FACILITY_AMMU ); + } return 1; } @@ -55,8 +228,6 @@ thread OnGangFaciltiesLoad( ) cache_get_field_content( row, "NAME", gang_name, dbHandle, sizeof( gang_name ) ); cache_get_field_content( row, "JOIN_MSG", join_msg, dbHandle, sizeof( join_msg ) ); - printf( "Gang: %s, Join msg: %s", gang_name, join_msg ); - // check for existing gang foreach ( new g : gangs ) if ( g_gangData[ g ] [ E_SQL_ID ] == gang_sql_id ) { gangid = g; @@ -108,14 +279,31 @@ thread OnGangFaciltiesLoad( ) g_gangFacilities[ id ] [ E_GANG_SQL_ID ] = gang_sql_id; g_gangFacilities[ id ] [ E_TURF_ID ] = turf_id; + g_gangFacilities[ id ] [ E_WORLD ] = id + 1; + g_gangFacilities[ id ] [ E_INTERIOR_TYPE ] = GetFacilityInteriorType( gang_sql_id ); g_gangFacilities[ id ] [ E_X ] = cache_get_field_content_float( row, "ENTER_X", dbHandle ); g_gangFacilities[ id ] [ E_Y ] = cache_get_field_content_float( row, "ENTER_Y", dbHandle ); g_gangFacilities[ id ] [ E_Z ] = cache_get_field_content_float( row, "ENTER_Z", dbHandle ); - g_gangFacilities[ id ] [ E_CHECKPOINT ] [ 0 ] = CreateDynamicCP( g_gangFacilities[ id ] [ E_X ], g_gangFacilities[ id ] [ E_Y ], g_gangFacilities[ id ] [ E_Z ], 1.0, -1, 0, -1, 100.0 ); + g_gangFacilities[ id ] [ E_CHECKPOINT ] [ 0 ] = CreateDynamicCP( g_gangFacilities[ id ] [ E_X ], g_gangFacilities[ id ] [ E_Y ], g_gangFacilities[ id ] [ E_Z ], 1.0, -1, -1, -1, 100.0 ); format( szNormalString, sizeof( szNormalString ), "Gang Facility\n"COL_WHITE" %s", gang_name ); g_gangFacilities[ id ] [ E_LABEL ] [ 0 ] = CreateDynamic3DTextLabel( szNormalString, g_gangData[ gangid ] [ E_COLOR ], g_gangFacilities[ id ] [ E_X ], g_gangFacilities[ id ] [ E_Y ], g_gangFacilities[ id ] [ E_Z ], 20.0 ); + + // 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 ); + + // 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 ); + + 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 ); + CreateDynamic3DTextLabel( "[AMMU-NATION]", COLOR_GOLD, infront_x, infront_y, g_gangFacilityInterior[ type ] [ E_AMMU_POS ] [ 2 ], 20.0, .worldid = g_gangFacilities[ id ] [ E_WORLD ] ); } else { @@ -140,38 +328,205 @@ stock SetPlayerToGangFacility( playerid, handle ) SetPlayerVirtualWorld( playerid, 0 ); SetPlayerInterior( playerid, 0 ); } -/* -new gz_gangzoneid = 0; -new gz_state = 0; -new Float: gz_minx; -new Float: gz_miny; -new Float: gz_maxx; -new Float: gz_maxy; -CMD:switch( playerid, params[ ] ) { - gz_state = strval( params ); - - if ( gz_state == 2 ) printf("%f, %f, %f, %f\n", gz_minx, gz_miny, gz_maxx, gz_maxy); - return 1; +stock GetFacilityInteriorType( gang_sql_id ) +{ + #pragma unused gang_sql_id + // todo + return 0; } -hook OnPlayerUpdate( playerid ) +static stock initializeFacilityObjects( ) { - static Float: X, Float: Y, Float: Z; - - if ( gz_state != 2 ) - { - GetPlayerPos( playerid, X, Y, Z ); - - if ( gz_state == 0 ) gz_minx = X, gz_miny = Y; - else if ( gz_state == 1 ) gz_maxx = X, gz_maxy = Y; - - GangZoneDestroy( gz_gangzoneid ); - gz_gangzoneid = GangZoneCreate( gz_minx, gz_miny, gz_maxx, gz_maxy ); - GangZoneShowForPlayer( playerid, gz_gangzoneid, COLOR_RED ); - } - return 1; -}*/ + tmpVariable = CreateDynamicObject( 16647, 249.156005, 1860.953002, 1460.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 ); + SetDynamicObjectMaterial( tmpVariable, 14, 6038, "lawwhitebuilds", "brwall_128", 0 ); + SetDynamicObjectMaterial( tmpVariable, 3, 17538, "losflor4_lae2", "tarmacplain_bank", 0 ); + SetDynamicObjectMaterial( tmpVariable, 5, 17538, "losflor4_lae2", "tarmacplain_bank", 0 ); + SetDynamicObjectMaterial( tmpVariable, 13, 17538, "losflor4_lae2", "tarmacplain_bank", 0 ); + 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 ); + 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 ); + 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 ); + 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 ); + 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 ); + 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 ); + 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 ); + 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 ); + 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 ); + SetDynamicObjectMaterial( tmpVariable, 3, 6038, "lawwhitebuilds", "brwall_128", 0 ); + SetDynamicObjectMaterial( tmpVariable, 4, 6038, "lawwhitebuilds", "brwall_128", 0 ); + SetDynamicObjectMaterial( tmpVariable, 5, 6038, "lawwhitebuilds", "brwall_128", 0 ); + SetDynamicObjectMaterial( tmpVariable, 6, 6038, "lawwhitebuilds", "brwall_128", 0 ); + 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( 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 ); + 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( 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 ); + 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 ); +} /* ** SCHEMA ** */ /* diff --git a/pawno/include/irresistible/features/gangs/gangs.inc b/pawno/include/irresistible/features/gangs/gangs.inc index e693ffb..8882be6 100644 --- a/pawno/include/irresistible/features/gangs/gangs.inc +++ b/pawno/include/irresistible/features/gangs/gangs.inc @@ -14,6 +14,9 @@ #define MAX_COLEADERS ( 3 ) +/* ** Macros ** */ +#define IsGangPrivate(%0) ( g_gangData[ %0 ] [ E_INVITE_ONLY ] ) + /* ** Variables ** */ enum e_gang_data { @@ -57,7 +60,7 @@ hook OnGameModeInit( ) { #if !defined DEBUG_MODE // Remove inactive gang members - mysql_single_query( "UPDATE `USERS` SET `GANG_ID`=-1 WHERE UNIX_TIMESTAMP()-`USERS`.`LASTLOGGED` > 1209600" ); + // mysql_single_query( "UPDATE `USERS` SET `GANG_ID`=-1 WHERE UNIX_TIMESTAMP()-`USERS`.`LASTLOGGED` > 1209600" ); // Remove gangs with a non existant gang leader / unmatched player gang id to gang leader id mysql_single_query( "DELETE g FROM GANGS g LEFT JOIN USERS u ON g.LEADER = u.ID WHERE u.GANG_ID != g.ID OR u.ID IS NULL" ); diff --git a/pawno/include/irresistible/features/gangs/turfs.inc b/pawno/include/irresistible/features/gangs/turfs.inc index 46dbf0e..ce00fdd 100644 --- a/pawno/include/irresistible/features/gangs/turfs.inc +++ b/pawno/include/irresistible/features/gangs/turfs.inc @@ -473,6 +473,14 @@ stock Turf_Create( Float: min_x, Float: min_y, Float: max_x, Float: max_y, owner return id; } +stock Turf_GetOwner( id ) { + return g_gangTurfData[ id ] [ E_OWNER ]; +} + +stock Turf_GetFacility( id ) { + return g_gangTurfData[ id ] [ E_FACILITY_GANG ]; +} + stock Turf_GetFirstTurf( playerid ) { new diff --git a/pawno/include/irresistible/features/pilot.inc b/pawno/include/irresistible/features/pilot.inc new file mode 100644 index 0000000..86ab39b --- /dev/null +++ b/pawno/include/irresistible/features/pilot.inc @@ -0,0 +1,213 @@ +/* + * Irresistible Gaming (c) 2018 + * Developed by Stev + * Module: pilot.pwn + * Purpose: Pilot mini-job +*/ + +#include + +// ** ENUMS + +enum taskEnum +{ + taskName[64], + Float:taskStart[3], + Float:taskFinish[3], + taskReward[2], +}; + +// ** VARIABLES + +new bool:playerWorking[MAX_PLAYERS char] = false; +new playerTaskCheckpoint[MAX_PLAYERS]; +new playerTaskMapIcon[MAX_PLAYERS]; +new playerTaskProgress[MAX_PLAYERS]; +new playerTask[MAX_PLAYERS]; +new playerTaskDistance[MAX_PLAYERS char]; + +new playerPilotTasks[MAX_PLAYERS char]; // DATABASE FOR HIGHEST SCORE + +new taskInfo[][taskEnum] = +{ + {"Weapons", {324.0082, 2501.9749, 17.2114}, {1773.6418, -2492.8054, 14.2744}, {2250, 6000}}, + {"Weapons", {324.0082, 2501.9749, 17.2114}, {-1452.0604, 40.2788, 14.8709}, {2000, 6000}}, + {"Passengers", {324.0082, 2501.9749, 17.2114}, {1478.1902, 1653.5984, 11.5396}, {2000, 6000}}, + {"Drugs", {1478.1902, 1653.5984, 11.5396}, {-1452.0604, 40.2788, 14.8709}, {2000, 6000}}, + {"Weapons", {1478.1902, 1653.5984, 11.5396}, {1773.6418, -2492.8054, 14.2744}, {2250, 6000}}, + {"Drinks", {1478.1902, 1653.5984, 11.5396}, {324.0082, 2501.9749, 17.2114}, {1500, 6000}}, + {"Passengers", {-1452.0604, 40.2788, 14.8709}, {1773.6418, -2492.8054, 14.2744}, {1500, 6000}}, + {"Passengers", {-1452.0604, 40.2788, 14.8709}, {324.0082, 2501.9749, 17.2114}, {2000, 6000}}, + {"Passengers", {-1452.0604, 40.2788, 14.8709}, {1478.1902, 1653.5984, 11.5396}, {2250, 6000}}, + {"Drugs", {1773.6418, -2492.8054, 14.2744}, {324.0082, 2501.9749, 17.2114}, {2000, 6000}}, + {"Ammo", {1773.6418, -2492.8054, 14.2744}, {-1452.0604, 40.2788, 14.8709}, {2000, 6000}}, + {"Food", {1773.6418, -2492.8054, 14.2744}, {1478.1902, 1653.5984, 11.5396}, {2250, 6000}} +}; + +// ** HOOKS + +hook OnPlayerStateChange(playerid, newstate, oldstate) +{ + if (newstate == PLAYER_STATE_DRIVER && IsPlayerInAnyVehicle(playerid)) + { + new vehicleid = GetPlayerVehicleID(playerid); + if (GetVehicleModel(vehicleid) == 519 && !playerWorking{playerid}) + { + ShowPlayerHelpDialog(playerid, 3000, "You can begin a pilot job by typing ~g~/work"); + } + } +} + +hook OnPlayerExitVehicle(playerid, vehicleid) +{ + if (playerWorking{playerid} && playerTask[playerid] > 0) + { + SendServerMessage(playerid, "Your pilot mission has been stopped."); + + playerTask[playerid] = -1; + playerTaskProgress[playerid] = 0; + pTaskDistance{playerid} = 0; + playerWorking{playerid} = false; + + DestroyDynamicRaceCP(playerTaskCheckpoint[playerid]); + DestroyDynamicMapIcon(playerTaskMapIcon[playerid]); + } +} + +hook OnPlayerUpdate(playerid) +{ + UpdatePilotTask(playerid); +} + +hook OnPlayerEnterDynamicRaceCP(playerid, checkpointid) +{ + if (playerWorking{playerid} && playerTask[playerid] > 0) + { + new index = playerTask[playerid]; + switch (playerTaskProgress[playerid]) + { + case 0: + { + if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) + return SendError(playerid, "You must be the driver of the vehicle to continue this mission."); + + playerTaskProgress[playerid] ++; + + DestroyDynamicRaceCP(playerTaskCheckpoint[playerid]); + DestroyDynamicMapIcon(playerTaskMapIcon[playerid]); + + playerTaskCheckpoint[playerid] = CreateDynamicRaceCP(1, taskInfo[index][taskFinish][0], taskInfo[index][taskFinish][2], taskInfo[index][taskFinish][2], 0.0, 0.0, 0.0, 5.0, 0, 0, playerid); + playerTaskMapIcon[playerid] = CreateDynamicMapIcon(taskInfo[index][taskFinish][0], taskInfo[index][taskFinish][1], taskInfo[index][taskFinish][2], 5, -1, 0, 0, playerid); + } + case 1: + { + if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) + return SendError(playerid, "You must be the driver of the vehicle to complete this mission."); + + new reward = RandomEx(taskInfo[index][taskReward][0], taskInfo[index][taskReward][1]); + + ShowPlayerHelpDialog(playerid, 5000, "You have earned ~y~$%s ~w~for transporting %s!", taskInfo[index][taskName], number_format(reward)); + + GivePlayerMoney(playerid, reward); + // GIVE THE XP + // GIVE THE SCORE ASWELL (IF YOU WANT) + + playerTask[playerid] = -1; + playerTaskProgress[playerid] = 0; + pTaskDistance{playerid} = 0; + playerWorking{playerid} = false; + + DestroyDynamicRaceCP(playerTaskCheckpoint[playerid]); + DestroyDynamicMapIcon(playerTaskMapIcon[playerid]); + + playerPilotTasks{playerid} ++; + } + } + } +} + +// ** COMMANDS + +CMD:work(playerid, params[]) +{ + if (playerWorking{playerid}) + return SendError(playerid, "You are already doing a task."); + + if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) + return SendError(playerid, "You must be the driver of the vehicle to start a task."); + + if (GetVehicleModel(GetPlayerVehicleID(playerid)) != 519) + return SendError(playerid, "There are currently no jobs for this particular vehicle."); + + new index = RandomEx(0, sizeof(taskInfo)); + + playerTaskProgress[playerid] = 0; + pTaskDistance{playerid} = 0; + playerTask[playerid] = index; + playerWorking{playerid} = true; + + ShowPlayerHelpDialog(playerid, 5000, "A ~g~air blip~w~ has been shown on your radar. Go to where the air blip is pick up the %s.", taskInfo[index][taskName]); + + playerTaskCheckpoint[playerid] = CreateDynamicRaceCP(1, taskInfo[index][taskStart][0], taskInfo[index][taskStart][1], taskInfo[index][taskStart][2], taskInfo[index][taskFinish][0], taskInfo[index][taskFinish][1], taskInfo[index][taskFinish][2], 5.0, 0, 0, playerid, 100.0); + playerTaskMapIcon[playerid] = CreateDynamicMapIcon(taskInfo[index][taskStart][0], taskInfo[index][taskStart][1], taskInfo[index][taskStart][2], 5, -1, 0, 0, playerid); + return 1; +} + +// ** FUNCTIONS + +ShowAirportLocation(Float:fX, Float:fY, Float:fZ) +{ + enum e_ZoneData + { + e_ZoneName[32 char], + Float:e_ZoneArea[6] + }; + new const g_arrZoneData[][e_ZoneData] = + { + {!"SF Airport", {-1499.80, -50.00, -0.00, -1242.90, 249.90, 200.00}}, + {!"SF Airport", {-1794.90, -730.10, -3.00, -1213.90, -50.00, 200.00}}, + {!"SF Airport", {-1213.90, -730.10, 0.00, -1132.80, -50.00, 200.00}}, + {!"SF Airport", {-1242.90, -50.00, 0.00, -1213.90, 578.30, 200.00}}, + {!"SF Airport", {-1213.90, -50.00, -4.50, -947.90, 578.30, 200.00}}, + {!"SF Airport", {-1315.40, -405.30, 15.40, -1264.40, -209.50, 25.40}}, + {!"SF Airport", {-1354.30, -287.30, 15.40, -1315.40, -209.50, 25.40}}, + {!"SF Airport", {-1490.30, -209.50, 15.40, -1264.40, -148.30, 25.40}}, + {!"LV Airport", {1236.60, 1203.20, -89.00, 1457.30, 1883.10, 110.90}}, + {!"LV Airport", {1457.30, 1203.20, -89.00, 1777.30, 1883.10, 110.90}}, + {!"LV Airport", {1457.30, 1143.20, -89.00, 1777.40, 1203.20, 110.90}}, + {!"LV Airport", {1515.80, 1586.40, -12.50, 1729.90, 1714.50, 87.50}}, + {!"LS Airport", {1249.60, -2394.30, -89.00, 1852.00, -2179.20, 110.90}}, + {!"LS Airport", {1852.00, -2394.30, -89.00, 2089.00, -2179.20, 110.90}}, + {!"LS Airport", {1382.70, -2730.80, -89.00, 2201.80, -2394.30, 110.90}}, + {!"LS Airport", {1974.60, -2394.30, -39.00, 2089.00, -2256.50, 60.90}}, + {!"LS Airport", {1400.90, -2669.20, -39.00, 2189.80, -2597.20, 60.90}}, + {!"LS Airport", {2051.60, -2597.20, -39.00, 2152.40, -2394.30, 60.90}}, + {!"Verdant Meadows", {37.00, 2337.10, -3.00, 435.90, 2677.90, 200.00}} + }; + new + szName[32] = "No-where"; + + for (new i = 0; i != sizeof(g_arrZoneData); i ++) if ((fX >= g_arrZoneData[i][e_ZoneArea][0] && fX <= g_arrZoneData[i][e_ZoneArea][3]) && (fY >= g_arrZoneData[i][e_ZoneArea][1] && fY <= g_arrZoneData[i][e_ZoneArea][4]) && (fZ >= g_arrZoneData[i][e_ZoneArea][2] && fZ <= g_arrZoneData[i][e_ZoneArea][5])) { + strunpack(szName, g_arrZoneData[i][e_ZoneName]); + + break; + } + + return szName; +} + +UpdatePilotTask(playerid) +{ + new index = playerTask[playerid]; + + switch (playerTaskProgress[playerid]) + { + case 0: pTaskDistance{playerid} = floatround(GetPlayerDistanceFromPoint(playerid, taskInfo[index][taskStart][0], taskInfo[index][taskStart][1], taskInfo[index][taskStart][2])); + case 1: pTaskDistance{playerid} = floatround(GetPlayerDistanceFromPoint(playerid, taskInfo[index][taskFinish][0], taskInfo[index][taskFinish][1], taskInfo[index][taskFinish][2])); + } + + format(szNormalString, sizeof(szNormalString), "~b~Location:~w~ %s~n~~b~Distance:~w~ %dm", (playerTaskProgress[playerid] == 1 ? (ShowAirportLocation(taskInfo[index][taskFinish][0], taskInfo[index][taskFinish][1], taskInfo[index][taskFinish][2])) : (ShowAirportLocation(taskInfo[index][taskStart][0], taskInfo[index][taskStart][1], taskInfo[index][taskStart][2]))), pTaskDistance{playerid}); + TextDrawSetString(p_TruckingTD[playerid], szNormalString); + + return 1; +} diff --git a/pawno/include/irresistible/features/visage/boxing.inc b/pawno/include/irresistible/features/visage/boxing.inc index ede9c5f..2d79179 100644 --- a/pawno/include/irresistible/features/visage/boxing.inc +++ b/pawno/include/irresistible/features/visage/boxing.inc @@ -72,7 +72,8 @@ hook OnPlayerDeathEx( playerid, killerid, reason, Float: damage, bodypart ) hook OnPlayerDeath( playerid, killerid, reason ) #endif { - printf("BOXING MATCH DEATH BY %s -> RETURN %d", ReturnPlayerName(playerid), boxing_ForfeitMatch( playerid, g_boxingPlayerData[ playerid ] [ E_OPPONENT ] )); + boxing_ForfeitMatch( playerid, g_boxingPlayerData[ playerid ] [ E_OPPONENT ] ); + // printf("BOXING MATCH DEATH BY %s -> RETURN %d", ReturnPlayerName(playerid), ); return 1; } diff --git a/pawno/include/irresistible/main.inc b/pawno/include/irresistible/main.inc index 5d56d80..e039e32 100644 --- a/pawno/include/irresistible/main.inc +++ b/pawno/include/irresistible/main.inc @@ -15,6 +15,7 @@ #include < irresistible\attachments > #include < irresistible\lookup > #include < irresistible\servervars > +#include < irresistible\sampac > // #include // gta related variables @@ -33,6 +34,9 @@ #include < irresistible\features\cash_cards > #include < irresistible\features\furniture > #include < irresistible\features\weapon_drop > +#include < irresistible\features\ammunation > +// #include < irresistible\features\pilot > +// #include < irresistible\features\fishing > // #include < irresistible\features\vote > // gangs and facilities diff --git a/pawno/include/irresistible/sampac.inc b/pawno/include/irresistible/sampac.inc new file mode 100644 index 0000000..927398f --- /dev/null +++ b/pawno/include/irresistible/sampac.inc @@ -0,0 +1,48 @@ +/* + * Irresistible Gaming (c) 2018 + * Developed by Lorenc Pekaj + * Module: + * Purpose: + */ + +/* ** Includes ** */ +#include < YSI\y_hooks > +#include < sampcac > + +/* ** Definitions ** */ +#define AC_WEBSITE "www.sampcac.xyz" +#define IsPlayerUsingSampAC CAC_GetStatus + +/* ** Variables ** */ +new const + g_szCheatNames [ ] [ ] = + { + "Aimbot (1)", "Aimbot (2)", "Triggerbot (1)", "Triggerbot (2)", "Nametag wallhack (1)", "ESP wallhack (1)", "Macro keybind (1)", + "Fake ping (1)", "Weapon info (1)", "No recoil (1)", "No recoil (2)", "Aimbot (3)", "Aimbot (4)", "CLEO" + } +; + +/* ** Hooks ** */ +hook OnGameModeInit( ) +{ + CAC_SetGameOptionStatus( CAC_GAMEOPTION__SPRINT, CAC_GAMEOPTION_STATUS__SPRINT_ALLSURFACES ); + // CAC_SetGameOptionStatus( CAC_GAMEOPTION__INFINITESPRINT, 1 ); + return 1; +} + +/* ** Callbacks ** */ +function OnPlayerCheat( player_id, cheat_id ) +{ + new + playerName[MAX_PLAYER_NAME] = "*not connected*"; + + if ( IsPlayerConnected( player_id ) ) { + GetPlayerName( player_id, playerName, sizeof( playerName ) ); + } + + // AdvancedBan( player_id, "Server", g_szCheatNames[ cheat_id ], ReturnPlayerIP( player_id ) ); + format( szNormalString, sizeof( szNormalString ), "[ANTI-CHEAT]{FFFFFF} %s(%d) has been detected using %s.", playerName, player_id, g_szCheatNames[ cheat_id ] ); + SendClientMessageToAdmins( COLOR_PINK, szNormalString ); + print( szNormalString ); + return 1; +} diff --git a/scriptfiles/updates.txt b/scriptfiles/updates.txt index 14ed82d..6b51d07 100644 --- a/scriptfiles/updates.txt +++ b/scriptfiles/updates.txt @@ -1,3 +1,17 @@ -(+) Total V.I.P restructure please see /vip for a full list of features with all V.I.P packages. -(+) You will now get 2 wanted if you are starting to take over a turf. -(/) Hits amounts will be now more random every 24 minutes. +(+) Private ammunation added for gang facilities. Higher the respect, cheaper the weapons/gear. +(+) You can now access the inside of a gang facility so long as you're in the gang / own the facility's turf. +(+) New Alcatraz Map thanks to Gal. You can now mine ores at the Alcatraz prison also. +(+) You can now edit your toy color through toys. +(+) Public gangs can now be joined by anyone simply by accessing their facility's checkpoint. +(+) There are now pages to the list of gang members shown. +(*) Fixes issue with many toys not being able to be selected. +(-) /breakcuff command removed. Breaking cuffs are now automatically done, as soon as you are cuffed. +(-) /detain command removed. The feature was rather abused than used. +(-) /cuttie command removed. Cutting ties are now automatically done, as soon as you are tied. +(/) /taze, /cuff, /ar no longer require id parameters. Can use MMB as a bind. +(/) Breaking cuffs will keep repeating until it successfully breaks cuffs. +(/) If you break your cuffs you will have 6 seconds of immunity to taze/cuff/arrest. +(/) Players are now tazed half a second shorter. +(/) /hitlist now can be accessed by all classes. +(/) Break cuff has an 80% success rate. +(/) Safe loot increased by 20%. diff --git a/server.cfg b/server.cfg index c1de16b..4c9bda1 100644 --- a/server.cfg +++ b/server.cfg @@ -5,7 +5,7 @@ maxplayers 334 port 7777 hostname » Call of Duty For SA-MP (0.3.7) « gamemode0 sf-cnr 1 -filterscripts +filterscripts sampcac_testscript announce 0 query 1 weburl www.sa-mp.com @@ -14,7 +14,7 @@ incar_rate 40 weapon_rate 40 stream_distance 300.0 stream_rate 1000 -plugins crashdetect mysql Whirlpool regex gvar FileManager FCNPC mapandreas sscanf streamer sampac RouteConnectorPlugin TPoker MerRandom +plugins crashdetect mysql gvar regex sscanf streamer Whirlpool FCNPC RouteConnectorPlugin sampcac_server MapAndreas TPoker MerRandom maxnpc 209 logtimeformat [%H:%M:%S] language All