/* ----- 2020, gamemode sold to Ice, all rights to him. /* Drakey: WARNING: IF PEOPLE ARE FALLING THROUGH FLOORS / NOT LOADING PROPERLY SEARCH SetTimerEx("UnFreezePlayer", 2000 CHANGE TO SetTimerEx("UnFreezePlayer", 8000 --------------------------------------------------------------------- */ #include #pragma unused g_TrashPickups #pragma dynamic 50000 #undef MAX_PLAYERS #define MAX_PLAYERS (100) #undef MAX_VEHICLES #define MAX_VEHICLES (1500) #undef INVALID_3DTEXT_ID #define INVALID_3DTEXT_ID (Text3D:0xFFFF) #undef INVALID_TEXT_DRAW #define INVALID_TEXT_DRAW (Text:0xFFFF) #define MaxFire 80 //gsf = GetPlayerSkin(playerid); new gsfskin1; new gsfskin2; new gsfskin3; new fd_wall[52]; new ReviewQuiz[MAX_PLAYERS] = -1; new retexture; // variable for admin jail mapping new msg[2056]; new currentQuestion[MAX_PLAYERS]; new quizIndexes[MAX_PLAYERS][50]; new Float:vehicleStartingHealth[MAX_PLAYERS]; new oldWeapon[MAX_PLAYERS], newWeapon[MAX_PLAYERS], oldAmmo[MAX_PLAYERS], newAmmo[MAX_PLAYERS]; new questionResponse[MAX_PLAYERS][11][500]; new Text3D:FireText[MaxFire]; /*--------------------------------------------------------------------------- Dependencies These are the includes which will be used for this gamemode. Make sure you add a link to the release topic! ---------------------------------------------------------------------------*/ #include // http://forum.sa-mp.com/showthread.php?t=56564 #include // http://forum.sa-mp.com/showthread.php?t=102865 #include // http://forum.sa-mp.com/showthread.php?t=120356 #include // http://forum.sa-mp.com/showthread.php?t=475838 #include // http://forum.sa-mp.com/showthread.php?t=92679 #include // http://forum.sa-mp.com/showthread.php?t=537468 #include // http://forum.sa-mp.com/showthread.php?t=120013 #include // http://forum.sa-mp.com/showthread.php?t=91354 #include // http://forum.sa-mp.com/showthread.php?t=474196 #include #include #include #include #include #include /*-------------------------------------------------------------- SQL information This script utilizes the MySQL plugin for data storage. SQL_HOSTNAME - The hostname to connect to. SQL_DATABASE - The name of the database. SQL_USERNAME - The username to authenticate to. SQL_PASSWORD - The password for the user. ---------------------------------------------------------------------------*/ #define SQL_HOSTNAME "localhost" #define SQL_DATABASE "crp" #define SQL_USERNAME "root" #define SQL_PASSWORD "" //4vDYb6Gg /*#define SQL_HOSTNAME "127.0.0.1" #define SQL_DATABASE "core-db" #define SQL_USERNAME "root" #define SQL_PASSWORD ""*/ /*--------------------------------------------------------------------------- Definitions The colors, limits, settings, etc are all here! Please be cautious when changing any values. ---------------------------------------------------------------------------*/ // MAJOR.MINOR.PATCH #define SERVER_REVISION "1.0.0" #define SERVER_WEBSITE "" #include "utils/def_color.pwn" #include "utils/def_max.pwn" #include "utils/def_time.pwn" #include "utils/def_fade.pwn" // Add to def_max.pwn when you get time. (lazy) #define MAX_FACTION_EQUIPMENT 20 #define MAX_FACTION_ACCESSORIES 20 #define BODY_PART_TORSO 3 #define BODY_PART_GROIN 4 #define BODY_PART_LEFT_ARM 5 #define BODY_PART_RIGHT_ARM 6 #define BODY_PART_LEFT_LEG 7 #define BODY_PART_RIGHT_LEG 8 #define BODY_PART_HEAD 9 #define COMPANY_STORE 1 #define COMPANY_CLOTHES 2 #define COMPANY_RESTAURANT 3 #define COMPANY_RENTALS 4 #define COMPANY_PHONE 5 #define COMPANY_DEALERSHIP 6 #define COMPANY_GYM 7 #define COMPANY_AMMO 8 #define COMPANY_BAR 9 #define FACTION_LEO 1 #define FACTION_MEDICAL 2 #define FACTION_GOVERNMENT 3 #define FACTION_ILLEGAL 4 #define FACTION_NEWS 5 #define DONATOR_BASIC 1 #define DONATOR_STANDARD 2 #define DONATOR_INVESTOR 3 #define DONATOR_PREMIUM 4 #define ATTACHED_SLOT_MISC 5 #define ATTACHED_SLOT_MELEE 6 #define ATTACHED_SLOT_PRIMARY 7 #define ATTACHED_SLOT_SECONDARY 8 #define ATTACHED_SLOT_TERTIARY 9 #define INVALID_ID -1 #define SendInfoMessage(%0,%1) SendFormatMessage((%0), COLOR_WHITE, ""%1) #define SendSyntaxMessage(%0,%1) SendFormatMessage((%0), COLOR_LIGHTGREY, "Usage: "%1) #define SendErrorMessage(%0,%1) ShowErrorToPlayer((%0), "~r~"%1) #define percent(%0,%1) (((%0) / 100) * (%1)) #define FADE_START_QUIZ 555 forward SetIntVar(playerid, varname[], value); forward SetFloatVar(playerid, varname[], Float:value); forward GetIntVar(playerid, varname[]); forward Float:GetFloatVar(playerid, varname[]); //PVar Updating - useful as fuck #define UpdateIntVar(%0,%1,%2) SetIntVar(%0,%1,(GetIntVar(%0, %1) + %2)) #define UpdateFloatVar(%0,%1,%2) SetFloatVar(%0, %1, (GetFloatVar(%0, %1) + %2)) #define EMBED_RED "{FF0000}" #define EMBED_WHITE "{FFFFFF}" #define COLOR_LIGHTRED 0xFF6347AA #define SCM SendClientMessage #define SCMALL SendClientMessageToAll #define Holding(%0) \ ((newkeys & (%0)) == (%0)) // How many fires max.? forward OnFireKill(ID, killerid); forward f_OnPlayerUpdate(playerid); forward VehicleToPoint(Float:radi, vehicleid, Float:x, Float:y, Float:z); forward HealthDown(); forward f_init(); /*--------------------------------------------------------------------------- Enums These enumerators are later used for array indexing. ---------------------------------------------------------------------------*/ new TaxiObject[MAX_VEHICLES+1] = {INVALID_OBJECT_ID, ...}; // start of enumerators for matical's setstation new FireObj[MaxFire], Float:FirePos[MaxFire][3], TotalFires = 0, FireHealth[MaxFire], FireHealthMax[MaxFire]; #if defined Labels #endif enum BOOMBOX_INFO { boomboxUrlName[128], boomboxURL[128] } new DRPStations[][BOOMBOX_INFO] = { // OTHER DIALOG {"Los Santos Country", "http://country.lsfm.us:8342/stream"}, {"RC Rock", "http://188.165.192.5:8007/stream"}, {"Red County FM ( RCFM )", "http://91.134.169.6:8224"}, {"Trace FM", "http://178.32.62.172:9284"}, {"Drill House Entertainment", "http://myradiostream.com/4/8182.pls"} }; new PunkStations[][BOOMBOX_INFO] = { // ROCK DIALOG {"Punk Rock - ROCKRADIO.com", "http://tunein.com/embed/player/s253015/"} }; new ClassicStations[][BOOMBOX_INFO] = { // ROCK DIALOG {"Jamm FM", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=563458"}, {"CLASSICAL 102", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=324044"}, {"CLASSICAL Hits", "http://tunein.com/embed/player/s249942/"} }; new MetalStations[][BOOMBOX_INFO] = { // ROCK DIALOG {"Metalcore Kingdom", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=901777"} }; new RaggaeStations[][BOOMBOX_INFO] = { // URBAN DIALOG {"420 FM - Hippie Radio", "http://tunein.com/radio/Roots-Reggae-s249978/"} }; new DanceStations[][BOOMBOX_INFO] = { // OTHER DIALOG {"Deep House Lounge", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=186925"}, {"Trap Lounge", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=916108"}, {"GotRadio - Mash Ups", "http://206.217.213.236:8530/"}, {"Noise FM", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=379239"} }; new RapStations[][BOOMBOX_INFO] = { // URBAN DIALOG {"Flow 103", "http://173.245.71.186:8000"}, {"Powerhitz.com", "http://108.61.30.179:5000"}, {"Urban Hitz Radio", "http://176.31.244.83:4418"}, {"Capital Tune FM", "http://69.175.94.98:8328/"}, {"Bates FM - 104.3 Jamz", "http://174.36.42.110:8630"}, {"TrueHipHop.FM", "http://culturefm.dynds.org:9020"}, {"AAZO Radio Rap", "http://77.67.46.74:8000/aazoradio-raphiphop.mp3/"}, {"Street Style Radio", "http://174.37.16.73:5709/StreetStyleRadio"} }; new HHStations[][BOOMBOX_INFO] = { // URBAN DIALOG {"Got Radio - Urban Jams", "http://206.217.213.235:8150"}, {"181.FM - Old School Hip Hop & RNB", "http://108.61.73.118:8068"}, {"HOT 108 JamZ", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=8318"}, {"181.FM - The BOX - #1 For Hip-Hop", "http://108.61.73.119:8024"}, {"Radio Los Santos", "http://91.134.169.6:8222/"}, {"AceRadio.Net", "http://174.36.42.110:8370"} }; new Top40Stations[][BOOMBOX_INFO] = { // POP DIALOG {"ChartHits.FM Top 40 Radio", "http://193.34.51.49:80"}, {"#1 Mega Hits", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=424867"}, {"Party Vibe Radio", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=99179841"} }; new TalkStations[][BOOMBOX_INFO] = { // OTHER DIALOG {"ChartHits.FM - Your HITZ More MUSIC!", "http://79.141.174.206:22000"}, {"Top Hits Music - SKY.FM", "http://stream-67.shoutcast.com:80/tophits_skyfm_mp3_96kbps"}, {"181.fm - The Office", "http://108.61.73.117:8002"} }; // end of matical's setstation enumerators /*new MaterialIDs[][matLIST] = { {0, "none", "none", "{6EF83C}Reset Material", "None"}, {1649, "wglass", "carshowwin2", "Glass", "Glass Textures"}, {5722, "sunrise01_lawn", "plainglass", "Glass 1", "Glass Textures"}, {3857, "ottos_glass", "carshowroom1", "Glass 2", "Glass Textures"}, {3979, "civic01_lan", "sl_laglasswall2", "Glass 3", "Glass Textures"}, {10871, "blacksky_sfse", "ws_glass_balustrade", "Glass 4", "Glass Textures"}, {16640, "a51", "a51_glass", "51 Glass", "Glass Textures"}, {10789, "xenon_sfse", "newindow4", "Green Window", "Windows"}, {3925, "weemap", "sw_shedwindow1", "Blue Window", "Windows"}, {18200, "w_town2cs_t", "inwindow1128", "White Window", "Windows"}, {5870, "sunst18_lawn", "inwindow4", "Gate Window", "Windows"}, {18200, "w_town2cs_t", "Bow_door_graffiti_128", "Graffiti", "Misc."}, {5716, "sunrise02_lawn", "manndoor_law", "Chinese paint", "Misc."}, {1229, "signs", "phonesign_128", "Phone Sign", "Misc."}, {1229, "signs", "NoParking2_128", "Parking Sign", "Misc."}, {6351, "rodeo02_law2", "prolsign01_LA", "Pro Laps", "Misc."}, {5771, "melrose11_lawn", "melrsign08_LA", "SPAVCEY", "Misc."}, {9593, "hosbibalsfw", "dt_cops_US_flag", "US Flag", "Misc."}, {9259, "presidio01_sfn", "stainwin_law", "Presidio", "Misc."} };*/ enum matLIST { Name[128], ModelID, TxdName[64], TextureName[64], Resource[32] }; new MaterialIDs[][matLIST] = { {"{6EF83C}Reset Material", 0, "none", "none", "None"}, #define PCOLORS "Material Colors" {"Purple", 8839, "vgsecarshow", "lightpurple2_32", PCOLORS}, {"Blue", 5774, "garag3_lawn", "bluestucco1", PCOLORS}, {"Bright Blue", 8839, "vgsecarshow", "lightblue2_32", PCOLORS}, {"Bright Green", 8839, "vgsecarshow", "lightgreen2_32", PCOLORS}, {"Green", 19271, "MapMarkers", "green-2", PCOLORS}, {"Lime Green", 18749, "MatTextures", "lime", PCOLORS}, {"Yellow", 5168, "lashops6_las2", "yellow2_128", PCOLORS}, {"Brighter Yellow", 18245, "cw_junkyardmachin", "Was_scrpyd_light_yellow", PCOLORS}, {"Orange", 18250, "cw_junkbuildcs_t", "Was_scrpyd_baler_locker", PCOLORS}, {"Orange 2", 18749, "MatTextures", "SAMPOrange", PCOLORS}, {"Pink", 3267, "milbase", "lightred2_32", PCOLORS}, {"Red", 18856, "MatTextures", "SAMPRed", PCOLORS}, {"Darker Red", 19184, "MapMarkers", "red-2", PCOLORS}, {"Deep Red", 5142, "lashops1b_las2", "snpdwhit2", PCOLORS}, {"Pitch Black", 13816, "lahills_safe1", "black16", PCOLORS}, {"Smoky Black", 11088, "crackfactdem_sfs", "ws_altz_wall7_top_burn", PCOLORS}, {"Light Gray", 8839, "vgsecarshow", "lightblue_64", PCOLORS}, {"Happy Gray", 16109, "des_se1", "parking2plain", PCOLORS}, {"Eggshell", 8675, "wddngchpl02", "vgschapelwall01_64", PCOLORS}, {"White", 4833, "airprtrunway_las", "white", PCOLORS}, #define PFABRICS "Printed Fabrics" {"Varied Green Stripes", 17511, "stadium_lae2", "stadt_banner1", PFABRICS}, {"Varied Purple and Green Stripes", 17511, "stadium_lae2", "stadt_banner2", PFABRICS}, {"Varied White, Brown and Green Stripes", 17511, "stadium_lae2", "stadt_banner3", PFABRICS}, {"Blue, White and Red Stripes", 9583, "bigshap_sfw", "boatfunnel1_128", PFABRICS}, {"Blue and White Stripes", 12850, "cunte_block1", "ablusrip", PFABRICS}, {"Blue, Green, White and Yellow Stripes", 5142, "lashops1b_las2", "sanpedshpito", PFABRICS}, {"Red And White Stripes", 3039, "ct_salx", "ct_stall1", PFABRICS}, {"Black, Gray, Yellow, Red", 3990, "lanroad", "lakerbcol", PFABRICS}, {"Red and Green Tartan", 3060, "paracx", "parachute_e", PFABRICS}, {"Multi-colored Squares", 3922, "bistro", "Tablecloth", PFABRICS}, {"Spongy Red", 10412, "hotel1", "carpet_red_256", PFABRICS}, {"Spongy Maroon", 14808, "lee_strip2", "WH_carpet1", PFABRICS}, {"Spongy Blue", 5392, "eastshops1_lae", "blueshop2_LAe", PFABRICS}, {"Yellow Tartan", 13003, "ce_racestart", "CJ_TARTAN", PFABRICS}, {"Blue Camouflage", 10631, "queensammo_sfs", "ammu_camo1", PFABRICS}, {"Blue Patterns", 10226, "sfeship1", "CJ_CUSHION2", PFABRICS}, {"Blue Patterns 2", 19447, "all_walls", "vgsn_scrollsgn256", PFABRICS}, {"Brown Flower Pattern", 15034, "genhotelsave", "cj_cushion1", PFABRICS}, {"Brown Sheets", 16150, "ufo_bar", "Gen_Sacki", PFABRICS}, {"Floral Print", 2680, "cj_chris", "CJ_Floral", PFABRICS}, {"White and Blue Mattress", 12954, "sw_furniture", "CJ_MATRESS2", PFABRICS}, {"Used Mattress", 1637, "od_beachstuff", "lounger_matress", PFABRICS}, {"Plain Matress", 2575, "cj_hotel_poor", "CJ_mattress", PFABRICS}, {"Rainbow Stripes", 3853, "gay_xref", "ws_gayflag1", PFABRICS}, {"American Flag", 12853, "cunte_gas01", "starspangban1_256", PFABRICS}, {"American Flag 2", 14782, "intring_gymint3", "star_spang", PFABRICS}, {"Confederate Flag", 12853, "cunte_gas01", "cj_flag2", PFABRICS}, {"Italian Flag", 5111, "ground2_las2", "sanpedpawn1a", PFABRICS}, {"Black Carpet", 17946, "carter_mainmap", "mp_carter_carpet", PFABRICS}, {"Gray Carpet", 14475, "ganghoos", "mp_burn_carpet", PFABRICS}, {"Red Carpet", 14506, "imy_motel", "mp_motel_carpet1", PFABRICS}, {"Red Carpet 2", 8463, "vgseland", "triadcarpet2", PFABRICS}, {"Black Carpet 2", 14700, "vgshs2int2", "carpet-tile", PFABRICS}, {"Dark Carpet", 14838, "lee_stripclub", "cl_floornew_256", PFABRICS}, {"Worn Gray Carpet", 14701, "lahss2int2", "HS1_carpet1", PFABRICS}, {"Blue Rug", 11704, "bdupsnew", "Bdup2_carpet", PFABRICS}, {"Light Blue Fabric", 14707, "labig3int2", "HS2_3Wall10", PFABRICS}, {"Light Purple Fabric", 14707, "labig3int2", "HS2_3Wall7", PFABRICS}, {"Pink Fabric", 14707, "labig3int2", "HS2_3Wall9", PFABRICS}, {"Old White Fabric", 14756, "smallsfhs", "wall6", PFABRICS}, {"White Carpet", 14672, "genintintsex", "mp_cop_floor2", PFABRICS}, {"Black Carpet 3", 14808, "lee_strip2", "strip_carpet2", PFABRICS}, {"Yellow Carpet", 14590, "mafcastopfoor", "ab_carpet01", PFABRICS}, {"Old Black Carpet", 18028, "cj_bar2", "GB_nastybar10", PFABRICS}, {"Dark Carpet 2", 14431, "dr_gsnew", "mp_gs_carpet", PFABRICS}, {"Light Carpet", 14581, "ab_mafiasuitea", "carp01S", PFABRICS}, {"Zebra Stripes", 14838, "lee_stripclub", "zebra_skin", PFABRICS}, {"Light Blue Carpet", 14708, "labig1int2", "GB_rug01", PFABRICS}, {"Fancy Rug", 11704, "bdupsnew", "Bdup2_Rug", PFABRICS}, {"Pink Curtain", 11707, "cuntcuts", "AH_pinkcurtain", PFABRICS}, {"Brown Curtain", 14710, "vgshm3int2", "ah_curtains1", PFABRICS}, {"Blue Curtain", 14701, "lahss2int2", "HS2_Curt1", PFABRICS}, {"Light Blue Curtain", 14702, "masmall3int2", "HS2_Curt2", PFABRICS}, {"Light Blue Curtain 2", 2559, "hospital", "CJ_H_CURTAIN1", PFABRICS}, {"Orange Curtain", 14701, "lahss2int2", "HS2_Curt4", PFABRICS}, {"Purple Curtain", 14701, "lahss2int2", "HS2_Curt5", PFABRICS}, {"Red Curtain", 14808, "lee_strip2", "Strip_curtain", PFABRICS}, #define WOODS "Wood" {"The Standard", 19400, "all_walls", "mp_diner_woodwall", WOODS}, {"Classy Wood", 16150, "ufo_bar", "sa_wood08_128", WOODS}, {"Brown Wood", 14581, "ab_mafiasuitea", "walp45S", WOODS}, {"Red Wood", 13681, "lahillshilhs1e", "woodboards2", WOODS}, {"Reclaimed Wood", 6094, "canalsg_law", "ws_sheetwood_clean", WOODS}, {"Light Wood 1", 3881, "apsecurity_sfxrf", "CJ_WOOD1", WOODS}, {"Light Wood 2", 13003, "ce_racestart", "sa_wood07_128", WOODS}, {"Light Wood 3", 16377, "des_byofficeint", "CJ_LIGHTWOOD", WOODS}, {"Dark Wood 1", 1515, "dsfs", "CJ_WOOD6", WOODS}, {"Dark Wood 2", 11631, "mp_ranchcut", "mpCJ_WOOD_DARK", WOODS}, {"Dark, Ugly Wood", 18250, "cw_junkbuildcs_t", "Was_scrpyd_shack_wall", WOODS}, {"Dull, Dark Wood", 17925, "lae2fake_int", "ab_wood1", WOODS}, {"Rotting Painted Wood 1", 17566, "contachou1_lae2", "comptwall26", WOODS}, {"Rotting Painted Wood 2", 3193, "cxref_desert", "des_bywall1", WOODS}, {"Rotting Painted Wood 3", 3355, "cxref_savhus", "des_bywall2", WOODS}, {"Rotting Painted Wood 4", 14700, "vgshs2int2", "ah_CRAKPLNK", WOODS}, {"Very Old Wood", 12976, "sw_diner1", "telepole128", WOODS}, {"Tatty Wood", 5149, "lasground2_las2", "tatty_wood_1", WOODS}, {"'Fence' Wood", 5122, "ground3_las2", "fence1", WOODS}, {"Fancy Diner Flooring", 3919, "librest", "DinerFloor", WOODS}, {"Sleek Wood Flooring", 14771, "int_brothelint3", "GB_nastybar12", WOODS}, {"Cheap Wood Flooring", 14825, "genintint2_gym", "gym_floor5", WOODS}, {"Cheap, Scratched Flooring", 14709, "lamidint2", "mp_apt1_floor", WOODS}, {"Fine Parquet", 14581, "ab_mafiasuitea", "wood02S", WOODS}, {"Wooden Mosaic", 4004, "civic07_lan", "cityhallroof", WOODS}, {"Wood Square Panels", 13007, "sw_bankint", "woodfloor1", WOODS}, {"Wood Planks", 16322, "a51_stores", "des_ghotwood1", WOODS}, {"Aged Planks", 1219, "woodpanels", "planks01", WOODS}, {"White Planks", 10152, "sfvictorian2", "pier69_ground1", WOODS}, {"White Planks 2", 12960, "sw_church", "ws_vic_wood1", WOODS}, {"White Planks 3", 12911, "sw_farm1", "sw_barnwood1", WOODS}, {"Old White Planks", 12911, "sw_farm1", "sw_barnwood2", WOODS}, {"Old White Planks 2", 4849, "ground3_las", "pierboards_la", WOODS}, {"Gray Planks", 3310, "sw_poorhouse", "GB_nastybar08", WOODS}, {"Old Gray Planks", 4820, "ground4_las", "adet", WOODS}, {"Boardwalk", 13809, "lahillsground4", "boardwalk_la" , WOODS}, {"Wood Boards", 5134, "wasteland_las2", "floorboard256128" , WOODS}, {"Light Wood Pattern", 3306, "cunte_house1", "des_ntwnwall1", WOODS}, {"Dark Brown Planks", 17298, "weefarmcuntw", "sjmbigold2", WOODS}, {"Creepy Planks", 12937, "sw_oldshack", "sw_cabinwall01", WOODS}, {"Blue Planks", 5766, "capitol_lawn", "lasjmscruffwall3", WOODS}, {"Bright Blue Planks", 5135, "groundb_las2", "sanpedock8", WOODS}, {"Bright Yellow Planks", 5113, "lasground_las2", "sanpedpawn1", WOODS}, {"White and Red Wood", 4830, "airport2", "sw_shedwall02", WOODS}, {"White and Blue Wood", 12925, "sw_sheds", "sw_shedwall03", WOODS}, {"Dull Wood Logs", 17067, "cw2_logcabins", "cw2_logwall", WOODS}, {"Light Wood Logs", 11490, "des_ranch", "des_logwall", WOODS}, {"Flat Logs", 13711, "mullho03_lahills", "des_flatlogs", WOODS}, {"Wood Slats", 11501, "des_farmstuff", "des_woodslats1", WOODS}, {"Walnut 1", 14581, "ab_mafiasuitea", "ab_walnut", WOODS}, {"Walnut 2", 14581, "ab_mafiasuitea", "ab_walnutLite", WOODS}, {"Brown Wood Paneling", 9583, "bigshap_sfw", "bridge_walls2_sfw", WOODS}, {"Tiki Reed", 8536, "tikisign", "tikireed01_128", WOODS}, {"Bamboo", 3595, "dingbat01_la", "bambowal1_LA", WOODS}, {"Old Barn", 16146, "des_ufoinn", "shackdoor01", WOODS}, {"Bloody wood", 12937, "sw_oldshack", "sw_woodflloorsplat", WOODS}, #define TILES "Tiles" {"Shiny White", 10023, "bigwhitesfe", "recessed_light_SF", TILES}, {"White and Blue", 12841, "cos_pizzaplace", "swimpoolside1_128", TILES}, {"Yellow and Blue", 5408, "tempstuff_lae", "examball1_LAe", TILES}, {"Blue Pool Tiles", 13675, "lahillsgrounds", "bevpool", TILES}, {"Better Times", 4004, "civic07_lan", "Bow_sub_wallshine", TILES}, {"Small White Tiles", 12853, "cunte_gas01", "sw_floor1", TILES}, {"Thin Wall Tiles", 17049, "cuntwf", "sw_walltile", TILES}, {"Thick Wall Tiles", 4558, "lanlacmab_lan2", "sl_gallerywall1", TILES}, {"Dirty Wall Tiles", 14700, "vgshs2int2", "ah_whitiles", TILES}, {"The Classic", 3961, "lee_kitch", "dinerfloor01_128", TILES}, {"The Classic 2", 14771, "int_brothelint3", "bwtilebroth", TILES}, {"The Classic 3", 18082, "cj_barb", "CJ_TILES_5", TILES}, {"Aged Classic", 13724, "docg01_lahills", "marbletile8b", TILES}, {"Classy Blue", 10871, "blacksky_sfse", "ws_slatetiles", TILES}, {"Dark Blue", 6351, "rodeo02_law2", "helmutwall1_LAw", TILES}, {"Classic White", 3904, "libertyfar", "subplat", TILES}, {"Aged Fancy Tiles", 5772, "stationtunnel", "mp_apt1_bathfloor1", TILES}, {"Fancy Black Tiles", 14388, "dr_gsnew", "mp_gs_kitchfloor", TILES}, {"Modern White Tiles", 10932, "station_sfse", "ws_stationfloor", TILES}, {"Modern Yellow Tiles", 10973, "mall_sfse", "mallfloor3", TILES}, {"Blue And Yellow Tiles", 1594, "chairsntable", "mallfloor6", TILES}, {"Tile Stone", 1677, "wshxrefhse2", "tilestone256", TILES}, {"Dirty Tiles", 11389, "hubint1_sfse", "ab_ceiling1", TILES}, {"Stone Tiles", 16639, "a51_labs", "dam_terazzo" , TILES}, {"Old Black Tiles", 5815, "lawngrnd", "man_cellarfloor128", TILES}, {"Dark Tiles", 14700, "vgshs2int2", "AH_rykitiles", TILES}, {"Terra Cotta Tile", 18020, "genintintfastb2", "ws_terratiles", TILES}, {"Gray Tiles", 14706, "labig2int2", "ab_tile1", TILES}, {"Brown/Olive Green Bricks", 14756, "smallsfhs", "mp_carter_tilewall", TILES}, {"Brown Tiles", 14709, "lamidint2", "mp_apt1_kitchfloor", TILES}, {"Brown Tiles 2", 18029, "genintintsmallrest", "GB_restaursmll06", TILES}, {"Light Green Tiles", 18029, "genintintsmallrest", "GB_restaursmll07", TILES}, {"Dull Red Tiles", 14388, "dr_gsnew", "AH_flroortile12", TILES}, {"Red Stones", 13675, "lahillsgrounds", "sjmlahus29", TILES}, {"Blue Mosaic", 17562, "coast_apts", "otb_floor1", TILES}, {"Green Mosaic", 3595, "dingbat01_la", "mosaic1_LAwn", TILES}, {"Hexagon Tile Pattern", 14506, "imy_motel", "ab_tilehex2", TILES}, {"Green Formica", 11704, "cj_kitchen", "FORMICA2", TILES}, #define MARB "Building" {"Black Marble", 3922, "bistro", "Marble", MARB}, {"Black Marble 2", 10969, "scum_sfse", "Was_scrpyd_floor_hangar", MARB}, {"Gray Marble", 4830, "airport2", "LASLACMA96", MARB}, {"White Marble", 3922, "bistro", "Marble2", MARB}, {"Yellow Marble", 3922, "bistro", "rest_wall4", MARB}, {"White Marble Block", 16023, "des_trainstuff", "ws_stoneblock", MARB}, {"Stone Wall 1", 18202, "w_towncs_t", "hatwall256hi", MARB}, {"Stone Wall 2", 13724, "docg01_lahills", "des_ranchwall1", MARB}, {"Stone Wall 3", 8839, "vgsecarshow", "sw_wallbrick_06", MARB}, {"Stone Wall 4", 8565, "vgsebuild01", "ws_stonewall", MARB}, {"Stone Wall 5", 6056, "venice_law", "stonewall_la", MARB}, {"Stone Wall 6", 6057, "venicegb02_law", "stonewall3_la", MARB}, {"Fancy Stones", 5113, "lasground_las2", "adeta", MARB}, {"Dark Stones", 18029, "genintintsmallrest", "GB_restaursmll05", MARB}, {"Yellow Stones", 16136, "des_telescopestuff", "stoneclad1", MARB}, {"White Brick Wall", 8399, "vgs_shops", "vgsclubwall05_128", MARB}, {"Gray Stone Wall", 8645, "vegashsetx", "badhousewall01_128", MARB}, {"Concrete Pattern", 4849, "ground3_las", "ws_bigstones", MARB}, {"Gray Brick Wall", 13823, "lahillsground4cye", "GB_nastybar03", MARB}, {"Fancy White Bricks", 13675, "lahillsgrounds", "bevr03b_law", MARB}, {"Red Brick Wall", 8531, "officeground", "ws_redbrickold", MARB}, {"Old Red Brick Wall", 5180, "lashops93_las2", "ws_oldredbrick", MARB}, {"Old Red Brick Wall 2", 10864, "bridgeland_sfse", "ws_altz_wall1", MARB}, {"Brick Wall 1", 8839, "vgsecarshow", "sw_brewbrick01", MARB}, {"Brick Wall 2", 8390, "vegasemulticar", "ws_mixedbrick", MARB}, {"Brick Wall 3", 13015, "sw_genstore", "sw_wallbrick_03", MARB}, {"Brick Wall 4", 12959, "sw_library", "sw_brick05", MARB}, {"Brick Wall 5", 17049, "cuntwf", "sw_brick04", MARB}, {"Brick Wall 6", 12853, "cunte_gas01", "sw_brick03", MARB}, {"Brick Wall 7", 4552, "ammu_lan2", "sl_lavicdtwall1", MARB}, {"Brick Wall 8", 10769, "docks2_sfse", "ws_sandstone1", MARB}, {"Brick Wall 9", 9683, "goldengate_sfw", "stonesandkb2_128", MARB}, {"Brick Wall 10", 5418, "idlewood3_lae", "ws_sandstone2", MARB}, {"Brick Wall 11", 12988, "sw_fact02", "ws_sandstone2b", MARB}, {"Brick Wall 12", 18018, "genintintbarb", "GB_midbar01", MARB}, {"Black Concrete", 3975, "lanbloke", "p_floor3", MARB}, {"Black Concrete 2", 14771, "int_brothelint3", "GB_midbar15", MARB}, {"Dark Stone Wall", 17545, "burnsground", "newall1-1128", MARB}, {"White Concrete", 11089, "cf_metals_sfse", "ws_altz_wall8_top", MARB}, {"Gray Concrete", 6052, "law_doontoon", "carpark_256128", MARB}, {"Gray Concrete 2", 14783, "intgarage2aint3", "Bow_Abattoir_Conc2", MARB}, {"Concrete Block", 1214, "metal", "BLOCK2low", MARB}, {"Cracked Yellow Concrete", 14700, "vgshs2int2", "ah_yelbadwall", MARB}, {"Metal Pattern", 12984, "sw_block11", "sw_stairs1", MARB}, {"Rusted Concrete", 10375, "subshops_sfs", "ws_rooftarmac1", MARB}, #define METALS "Metals" {"Silver Metal", 1560, "7_11_door", "cj_sheetmetal2", METALS}, {"Red Metal", 2130, "cj_kitchen", "CJ_RED", METALS}, {"Scratched Metal", 16640, "a51", "scratchedmetal", METALS}, {"Blue Paneling", 16067, "des_stownmots1", "corugwall1", METALS}, {"Red Paneling", 16067, "des_stownmots1", "corugwallnew6_128", METALS}, {"Yellow Paneling", 18265, "w_town3cs_t", "corugwall_sandy", METALS}, {"Old Purple Metal", 5126, "imrancomp_las2", "ws_oldpaintedblue", METALS}, {"Old Gray Metal", 12858, "wiresnshit", "ws_oldpainted", METALS}, {"Old White Metal", 10820, "roadbridge_sfse", "ws_oldpainted2", METALS}, {"Rusty White Metal", 10820, "roadbridge_sfse", "ws_oldpainted2rusty", METALS}, {"Dull Green Metal", 1257, "bustopm", "CJ_GREENMETAL", METALS}, {"Green Metal", 10770, "carrier_sfse", "ws_floor2", METALS}, {"Gray Metal", 10770, "carrier_sfse", "ws_shipmetal1", METALS}, {"Black Metal", 10770, "carrier_sfse", "ws_shipmetal3", METALS}, {"White Metal", 10770, "carrier_sfse", "ws_shipmetal4", METALS}, {"Light Blue Metal", 11145, "carrierint_sfs", "ws_shipmetal5", METALS}, {"White Metal Tiles", 3262, "privatesign", "ws_metalpanel1", METALS}, {"Black Metal Tiles", 9362, "sfn_byofficeint", "CJ_Black_metal", METALS}, {"Dark Metal", 970, "fences", "blackmetal", METALS}, {"Light Metal Banding", 12960, "sw_church", "banding3_64HV", METALS}, {"Brown Metal Banding", 5408, "tempstuff_lae", "sl_metalbndrust1", METALS}, {"Scratched Metal 2", 3961, "lee_kitch", "metal5", METALS}, {"Scratched Metal 3", 3961, "lee_kitch", "metal6", METALS}, {"Clean Metal Plate", 9361, "sfn_office", "des_facmetal", METALS}, {"Silver Metal 2", 1214, "metal", "CJ_FRAME_Glass", METALS}, {"Sleek Metal", 14581, "ab_mafiasuitea", "barbersmir1", METALS}, {"Metal Door", 13022, "sw_block11a", "Bow_abbmetaldoor", METALS}, {"Metal Door 2", 12980, "sw_block10", "Was_scrpyd_door_dbl_grey", METALS}, {"Bolted White Metal Panel", 10820, "roadbridge_sfse", "banding9_64HV", METALS}, {"Bolted Yellow Metal Panel", 5126, "imrancomp_las2", "banding5_64HV", METALS}, {"Bolted Brown Metal Panel", 3080, "adjumpx", "rustyboltpanel", METALS}, {"Bolted Black Metal", 16322, "a51_stores", "girder2_grey_64HV", METALS}, {"Bolted Red Metal", 5126, "imrancomp_las2", "girder2_red_64HV", METALS}, {"New Bolted White Metal Panel", 16322, "a51_stores", "dish_panel_a", METALS}, {"Metal Plate", 915, "airconext", "CJ_plating", METALS}, {"Gray Metal 2", 4833, "airprtrunway_las", "cj_sheetmetal", METALS}, {"Old Red Metal", 5123, "chemgrnd_las2", "redmetal", METALS}, {"Old Dark Red Metal", 946, "bskball_standext", "drkbrownmetal", METALS}, {"Old Brown Metal", 11145, "carrierint_sfs", "Metalox64", METALS}, {"Brown Rust", 12937, "sw_oldshack", "rustc256128", METALS}, {"Orange Rust", 11395, "corvinsign_sfse", "rustb256128", METALS}, {"Red Rust 1", 18247, "cw_junkyarddigcs_t", "Was_scrpyd_rustmetal", METALS}, {"Red Rust 2", 10844, "genwhse_sfse", "Gen_Gantry_Rust", METALS}, {"Rusty Sheet", 10140, "frieghter2sfe", "sw_olddrum1", METALS}, {"Old Light Blue Metal", 4821, "union_las", "bluemetal03", METALS}, {"Old Dark Blue Metal", 5126, "imrancomp_las2", "bluemetal02", METALS}, {"Old Gray Metal 2", 9029, "vgetrainfnce", "Metal1_128", METALS}, {"Rusty Gray Metal", 17001, "factorycuntw", "Gen_Metal", METALS}, {"Corrugated Sheet", 3246, "cxref_oldwest", "corr_roof1", METALS}, {"Corrugated Sheet 2", 3925, "weemap", "corrRoof_64HV", METALS}, {"Old Corrugated Sheet", 5775, "sunset01_lawn", "ws_corr_metal2", METALS}, {"Rusty Corrugated Sheet", 9680, "tramstatsfw", "ws_corr_metal1", METALS}, {"Tin Roof Pattern", 16071, "des_quarrybelts", "des_oldtinroof", METALS}, {"Strange Metal Pattern", 16322, "a51_stores", "a51_metal1", METALS}, {"Rusty Metal Pattern", 16322, "a51_stores", "Gen_Freight", METALS}, {"Rusty Metal Pattern 2", 10281, "michgar", "Metal2_256128", METALS}, {"White and Blue Metal", 3961, "lee_kitch", "metal2", METALS}, {"Metal Walkway Pattern", 16640, "a51", "sl_metalwalk", METALS}, {"Perforated Metal Plate", 8954, "vgsespras", "sf_spray_floor2", METALS}, {"Checker Plate", 9583, "bigshap_sfw", "shipfloor_sfw", METALS}, {"Checker Plate 2", 5138, "ground_las2", "metpat64" , METALS}, {"Checker Plate 3", 964, "cj_crate_will", "CJ_FLIGHT_CASE", METALS}, #define POSTERS "Paintings" {"The Discharger", 13761, "lahills_whisky", "discharger", POSTERS}, {"Slam It In", 4833, "airprtrunway_las", "bobo_2", POSTERS}, {"MC Club", 5733, "melrose08_lawn", "base5_1", POSTERS}, {"Mad Dog", 6357, "sunstrans_law2", "dogbill01", POSTERS}, {"Love Fist Poster", 6354, "sunset03_law2", "billLA01", POSTERS}, {"Dandell Poster", 6354, "sunset03_law2", "billLA02", POSTERS}, {"Map of San Andreas", 16644, "a51_detailstuff", "a51_map", POSTERS}, {"Candy Suxxx", 6357, "sunstrans_law2", "SunBillB05", POSTERS}, {"Candy Suxxx 2", 2254, "picture_frame_clip", "CJ_PAINTING9", POSTERS}, {"Inquisitive Man", 1583, "targets", "target1", POSTERS}, {"Inquisitive Woman", 1583, "targets", "target2", POSTERS}, {"Inquisitive Woman 2", 1583, "targets", "target3", POSTERS}, {"Summer Sky", 3925, "weemap", "skyclouds", POSTERS}, {"Jesus Saves", 17700, "gangblok1_lae2", "mural01_LA", POSTERS}, {"Gant Bridge", 10434, "hashblock2b_sfs", "ws_mural2", POSTERS}, {"San Fierro Skyline", 10439, "hashblock3_sfs", "ws_mural1", POSTERS}, {"Black And White Mural", 5142, "lashops1b_las2", "mural03_LA", POSTERS}, {"Colored Mural", 5134, "wasteland_las2", "mural05_LA", POSTERS}, {"Gant Bridge 2", 2254, "picture_frame_clip", "CJ_PAINTING24", POSTERS}, {"SF Pointy Building", 11631, "mp_ranchcut", "CJ_PAINTING20", POSTERS}, {"Santa Maria Lifeguard", 2254, "picture_frame_clip", "CJ_PAINTING12", POSTERS}, {"Seaside Painting", 11631, "mp_ranchcut", "CJ_PAINTING6", POSTERS}, {"Bone County", 2254, "picture_frame_clip", "CJ_PAINTING26", POSTERS}, {"Aircraft Photos", 16407, "des_airfieldhus", "plane_photos1", POSTERS}, {"Yellow Car", 2254, "picture_frame_clip", "CJ_PAINTING2", POSTERS}, {"Los Santos", 2254, "picture_frame_clip", "CJ_PAINTING3", POSTERS}, {"Pier Lights", 2254, "picture_frame_clip", "CJ_PAINTING4", POSTERS}, {"San Fierro", 2267, "picture_frame", "CJ_PAINTING14", POSTERS}, {"Sunset Bridge", 2267, "picture_frame", "CJ_PAINTING30", POSTERS}, {"San Fierro Bridge", 2267, "picture_frame", "CJ_PAINTING28", POSTERS}, {"Landscape 1", 2267, "picture_frame", "CJ_PAINTING11", POSTERS}, {"Landscape 2", 2267, "picture_frame", "CJ_PAINTING23", POSTERS}, {"Landscape 3", 2267, "picture_frame", "CJ_PAINTING35", POSTERS}, {"Landscape 4", 2267, "picture_frame", "CJ_PAINTING37", POSTERS}, {"Palms", 2254, "picture_frame_clip", "CJ_PAINTING8", POSTERS}, {"Bowling", 2254, "picture_frame_clip", "CJ_PAINTING27", POSTERS}, {"Sailships", 2267, "picture_frame", "CJ_PAINTING34", POSTERS}, {"Ship", 2267, "picture_frame", "CJ_PAINTING19", POSTERS}, {"Ship 2", 2267, "picture_frame", "CJ_PAINTING36", POSTERS}, {"Beach Sunset", 14803, "BDupsNew", "Bdup2_poster", POSTERS}, {"Tropical 1", 11707, "cuntcuts", "GB_canvas17", POSTERS}, {"Tropical 2", 11707, "cuntcuts", "GB_canvas18", POSTERS}, {"Water Droplet", 14708, "labig1int2", "GB_restaursmll53", POSTERS}, {"College Friends", 14708, "labig1int2", "GB_photo01", POSTERS}, {"Casually Dressed Woman", 14708, "labig1int2", "GB_photo02", POSTERS}, {"Cat 1", 2267, "picture_frame", "CJ_PAINTING1", POSTERS}, {"Cat 2", 2267, "picture_frame", "CJ_PAINTING7", POSTERS}, {"Flowers 1", 2267, "picture_frame", "CJ_PAINTING18", POSTERS}, {"Flowers 2", 2267, "picture_frame", "CJ_PAINTING29", POSTERS}, {"Leafs", 2267, "picture_frame", "CJ_PAINTING21", POSTERS}, {"Strange Mosaic Art", 2267, "picture_frame", "CJ_PAINTING16", POSTERS}, {"Modern Art", 2254, "picture_frame_clip", "CJ_PAINTING15", POSTERS}, {"Modern Art 2", 14708, "labig1int2", "HS_art", POSTERS}, {"Unknown Text", 11631, "mp_ranchcut", "CJ_PAINTING22", POSTERS}, #define WALLPAPERS "Wallpapers" {"Purple Wallpaper", 17925, "lae2fake_int", "burglry_wall4", WALLPAPERS}, {"Turquoise Wallpaper", 5706, "ci_studio5", "tw@t_wall1", WALLPAPERS}, {"White Wall With Blue Border", 8391, "ballys01", "ballywall01_64", WALLPAPERS}, {"Dirty White Wall", 5135, "groundb_las2", "snpedwar2", WALLPAPERS}, {"Yellow and Orange Wall", 8639, "chinatownmall", "ctmall15_128", WALLPAPERS}, {"Cheap Blue Paint", 5787, "melrose02_lawn", "LAbluewall", WALLPAPERS}, {"Cheap Green Paint", 5787, "melrose02_lawn", "LAgreenwall", WALLPAPERS}, {"Cheap Red Paint", 5787, "melrose02_lawn", "LAredwall", WALLPAPERS}, {"White Concrete Wall", 8675, "wddngchpl02", "vgschapelwall01_64", WALLPAPERS}, {"Pink Concrete wall", 8401, "vgshpground", "vegaspawnwall_128", WALLPAPERS}, {"Brown Concrete wall", 16150, "ufo_bar", "brwall_128", WALLPAPERS}, {"Grey Concrete wall", 6286, "santamonhus1", "studwalltop_law", WALLPAPERS}, {"Light Gray Concrete Wall", 4981, "wiresetc2_las", "lasunion7", WALLPAPERS}, {"Peeling Paint 1", 11389, "hubint1_sfse", "ws_peeling_ceiling1_BIG", WALLPAPERS}, {"Peeling Paint 2", 17566, "contachou1_lae2", "comptwall27", WALLPAPERS}, {"Peeling Paint 3", 17566, "contachou1_lae2", "ws_peeling2", WALLPAPERS}, {"Peeling Paint 4", 11092, "burgalrystore_sfse", "ws_peeling_ceiling2", WALLPAPERS}, {"Painted Concrete 1", 14783, "intgarage2aint3", "comptwall3", WALLPAPERS}, {"Painted Concrete 2", 14700, "vgshs2int2", "ah_BADCEIL", WALLPAPERS}, {"Painted Concrete 3", 14700, "vgshs2int2", "ah_RFPLSTR", WALLPAPERS}, {"Painted Concrete 4", 14700, "vgshs2int2", "ah_grnplstr", WALLPAPERS}, {"Painted Tiles", 14701, "lahss2int2", "HS1_Kwall2", WALLPAPERS}, {"Low Wood Paneling", 14708, "labig1int2", "GB_restaursmll32", WALLPAPERS}, {"Low Green Tile Paneling", 14709, "lamidint2", "mp_apt1_bathtiles", WALLPAPERS}, {"Wood Paneling 1", 14709, "lamidint2", "mp_apt1_roomwall", WALLPAPERS}, {"Wood Paneling 2", 14709, "lamidint2", "mp_apt1_woodpanel", WALLPAPERS}, {"Wood Paneling 3", 14777, "int_casinoint3", "GB_midbar09", WALLPAPERS}, {"Wood Paneling 4", 18029, "genintintsmallrest", "GB_restaursmll09", WALLPAPERS}, {"Crosses w/ Wood Border", 18018, "genintintbarb", "GB_midbar07", WALLPAPERS}, {"Fancy Paneling", 14431, "dr_gsnew", "mp_gs_wall", WALLPAPERS}, {"Painted Concrete 5", 14388, "dr_gsnew", "mp_gs_wall1", WALLPAPERS}, {"Dark Bordered Wallpaper", 14388, "dr_gsnew", "mp_gs_libwall", WALLPAPERS}, {"Orange Wallaper", 14710, "vgshm3int2", "HSV_2carpet1", WALLPAPERS}, {"Red Wallpaper", 14703, "vghsb3int2", "HS2_3Carpet1", WALLPAPERS}, {"Bright Artex Pattern", 11704, "bdupsnew", "Bdup2_Artex", WALLPAPERS}, {"Fancy Red Dragon Design", 3533, "triadprops_lvs", "walpaper_dragn", WALLPAPERS}, {"Slight Purple Artex Pattern", 14710, "vgshm3int2", "HS2_Artex2", WALLPAPERS}, {"Green Artex Pattern", 14701, "lahss2int2", "HS2_Artex6", WALLPAPERS}, {"White Artex Pattern", 14701, "lahss2int2", "HS2_Artex3", WALLPAPERS}, {"Green Stripes", 1675, "wshxrefhse", "washdecowall3256", WALLPAPERS}, {"Wallpaper 1", 11704, "bdupsnew", "Bdup2_wallpaper", WALLPAPERS}, {"Wallpaper 2", 11704, "bdupsnew", "Bdup2_wallpaperB", WALLPAPERS}, {"Wallpaper 3", 11707, "cuntcuts", "GB_tile01", WALLPAPERS}, {"Wallpaper 4", 14710, "vgshm3int2", "HSV_3wall3", WALLPAPERS}, {"Wallpaper 5", 14701, "lahss2int2", "HS1_wall2", WALLPAPERS}, {"Wallpaper 6", 14701, "lahss2int2", "HS1_wall3", WALLPAPERS}, {"Wallpaper 7", 14701, "lahss2int2", "HS1_wall4", WALLPAPERS}, {"Wallpaper 8", 14712, "lahss2bint2", "HS3_wall2", WALLPAPERS}, {"Wallpaper 9", 14712, "lahss2bint2", "HS1_2Wall2", WALLPAPERS}, {"Wallpaper 10", 14702, "masmall3int2", "HS3_wall3", WALLPAPERS}, {"Wallpaper 11", 14702, "masmall3int2", "HS3_wall5", WALLPAPERS}, {"Wallpaper 12", 14702, "masmall3int2", "HS3_wall6", WALLPAPERS}, {"Wallpaper 13", 14703, "vghsb3int2", "HS2_2Wall2", WALLPAPERS}, {"Wallpaper 14", 14703, "vghsb3int2", "HS2_3Wall1", WALLPAPERS}, {"Wallpaper 15", 14703, "vghsb3int2", "HS4_Wall7", WALLPAPERS}, {"Wallpaper 16", 14709, "lamidint2", "mp_apt1_kitchwallpaper", WALLPAPERS}, {"Wallpaper 17", 14707, "labig3int2", "WH_walls", WALLPAPERS}, {"Wallpaper 18", 14711, "vgshm2int2", "HS2_4wall1", WALLPAPERS}, {"Wallpaper 19", 15034, "genhotelsave", "HS2_2Wall4", WALLPAPERS}, {"Wallpaper 20", 14590, "mafcastopfoor", "donut_wall1", WALLPAPERS}, {"Wallpaper 21", 5727, "sunrise04_lawn", "fredwall2_LAwN", WALLPAPERS}, {"Wallpaper 22", 14702, "masmall3int2", "HS3_wall4", WALLPAPERS}, #define MISC "Misc" {"Graffiti", 18200, "w_town2cs_t", "Bow_door_graffiti_128", MISC}, {"Chinese paint", 5716, "sunrise02_lawn", "manndoor_law", MISC}, {"Phone Sign", 1229, "signs", "phonesign_128", MISC}, {"Parking Sign", 1229, "signs", "NoParking2_128", MISC}, {"Pro Laps", 6351, "rodeo02_law2", "prolsign01_LA", MISC}, {"SPAVCEY", 5771, "melrose11_lawn", "melrsign08_LA", MISC}, {"US Flag", 9593, "hosbibalsfw", "dt_cops_US_flag", MISC}, {"Presidio", 9259, "presidio01_sfn", "stainwin_law", MISC}, {"Fading Yellow", 9494, "chinatownsfe", "chtown4_sf", MISC}, {"Fading Blue", 9494, "chinatownsfe", "chtown6_sf", MISC}, {"Fading Green", 9494, "chinatownsfe", "chtown8_sf", MISC}, {"Hay", 12911, "sw_farm1", "forestfloorbranch256", MISC}, {"Hay and Wood", 12911, "sw_farm1", "sw_barnfloor1", MISC}, {"Garage Door", 5138, "ground_las2", "alleydoor8", MISC}, {"Flamingos", 8488, "flamingo1", "flmngo01_256", MISC}, {"Wood Framed Windows", 14771, "int_brothelint3", "GB_nastybar13", MISC}, {"White Framed Windows", 14710, "vgshm3int2", "kit_windo_12", MISC}, {"Creepy Old Window", 14700, "vgshs2int2", "ah_FLKWIN", MISC}, {"Fancy Window", 14710, "vgshm3int2", "windo_blinds", MISC}, {"Blue Material", 14770, "genintgenintint3", "GB_midbar04", MISC}, {"Blue Material 2", 14771, "int_brothelint3", "GB_midbar10", MISC}, {"Black Material", 15046, "svcunthoose", "csGarageTrolley01psd", MISC}, {"Bordered Black Material", 15046, "svcunthoose", "csheistbox01", MISC}, {"Red Cushions", 14838, "lee_stripclub", "Strip_bar_wall1", MISC}, {"Funky 1", 14808, "lee_strip2", "strip_neon_Curtain", MISC}, {"Funky 2", 14808, "lee_strip2", "strip_neon_flat", MISC}, {"Glass Wall 1", 16639, "a51_labs", "ws_trainstationwin1", MISC}, {"Glass Wall 2", 10973, "mall_sfse", "ws_trainstationwin2", MISC}, {"Glass 1", 1649, "wglass", "carshowwin2", MISC}, {"Glass 2", 5722, "sunrise01_lawn", "plainglass", MISC}, {"Water", 3947, "rczero_track", "waterclear256", MISC}, {"Snow", 3914, "snow", "mp_snow", MISC}, {"Blank", 1337, "none", "none", MISC}, {"Classic Window", 15048, "labigsave", "AH_windows", MISC}, {"Wood Framed Simple Window", 14661, "int_tatoo", "mp_shop_window", MISC}, {"Metal Framed Window", 14495, "sweetshall", "mcstraps_window", MISC}, {"Metal Framed Black Windows", 14736, "whorerooms", "AH_cheapwindow", MISC}, {"Door 'Males Only'", 18008, "intclothesa", "CJ_VICT_DOOR", MISC}, {"Door 'Females Only'", 18008, "intclothesa", "CJ_VICT_DOOR2", MISC}, {"Gold", 14707, "labig3int2", "gold128", MISC}, {"Gold 2", 14607, "triad_main", "buddha_gold", MISC}, {"Booger Green ", 19527, "Cauldron1", "AlienLiquid1", MISC}, {"Fading Dark Blue", 14639, "traidman", "ab_aquarium", MISC}, {"Glass 3", 14755, "sfhss2", "CJ_FRAME_Glass", MISC}, {"Glass 4", 1978, "kbroul1", "shelf_glas", MISC}, {"Dirty Glass", 914, "industrialext", "CJ_GEN_GLASS2", MISC}, {"Dirty Glass 2", 10713, "gayclub_sfs", "CJ_GEN_GLASS2", MISC}, {"Black Rubber", 18018, "genintintbarb", "CJ_BLACK_RUB2", MISC}, {"White Formica", 1770, "cj_tables", "FORMICA1", MISC}, {"Water 2", 18742, "MatTextures", "waterclear256", MISC}, {"Water 3", 19841, "vegaswaterfall", "newaterfal1_256", MISC}, {"Unnamed Mesh", 3280, "country_breakable", "ws_castironwalk", MISC}, {"Camouflage Net", 2068, "cj_ammo_net", "CJ_cammonet", MISC}, {"Fading Yellow Glass" , 19197,"EnExMarkers", "enex", MISC}, {"Basket Pattern 1", 8534, "tikimotel", "sa_wood01_128", MISC}, {"Basket Pattern 2", 8534, "tikimotel", "sa_wood03_128", MISC}, {"Basket Pattern 3", 8534, "tikimotel", "sa_wood04_128", MISC}, {"Transperancy", 18888, "ForceFields", "white", MISC}, {"Unnamed Ceiling 1", 11312, "carshow_sfse", "ws_officy_ceiling", MISC}, {"Unnamed Ceiling 2", 18007, "int_cutbar3", "ceilingtile1_128", MISC}, {"Unnamed Ceiling 3", 18026, "scummy", "ceiling_256", MISC}, {"Unnamed Ceiling 4", 18038, "vegas_munation", "gun_ceiling1", MISC}, {"Unnamed Ceiling 5", 18038, "vegas_munation", "gun_ceiling2", MISC}, {"Unnamed Ceiling 6", 18038, "vegas_munation", "gun_ceiling3", MISC}, {"Unnamed Ceiling 7", 14534, "ab_wooziea", "dt_office_roof", MISC}, {"Unnamed Ceiling 8", 14526, "sweetsmain", "ah_whitpanelceil", MISC}, {"Unnamed Ceiling 9", 15042, "svsfsm", "AH_walltile2", MISC}, {"Unnamed Ceiling 10", 18045, "gen_munation", "mp_diner_ceilingdirt", MISC}, {"Dark Wood Border", 14431, "dr_gsnew", "mp_gs_border", MISC}, {"Light Wood Border", 14431, "dr_gsnew", "mp_gs_border1", MISC}, {"Old Wood Panel", 14700, "vgshs2int2", "AH_oldwdpan", MISC}, {"Wood Panel", 14431, "dr_gsnew", "mp_gs_woodpanel", MISC}, {"Wood Panel 2", 14750, "sfhsm2", "ah_pnwainscot3", MISC}, {"Wood Panel 3", 15048, "labigsave", "AH_barpanelM", MISC}, {"Wood Panel 4", 14748, "sfhsm1", "ah_pnwainscot", MISC}, {"Wood Panel 5", 14735, "newcrak", "AH_wdpanscum", MISC}, {"Wood Panel 6", 14853, "gen_pol_vegas", "mp_cop_panel", MISC}, {"Wood Panel 7", 14789, "ab_sfgymmain", "ab_panelWall1", MISC}, {"Wood Panel 8", 14789, "ab_sfgymmain", "ab_panelWall2", MISC}, {"Perforated Wood", 18026, "scummy", "CJ_BACK_BOARD", MISC}, {"Funky 3", 14832, "lee_stripclub", "mirror_ref1", MISC}, {"Unnamed something 2", 1389, "cranes_dyn2", "ws_sheetsteel", MISC}, {"Unnamed something 3", 1824, "gamingtble", "crapside_128", MISC}, {"Unnamed Something 4", 2788, "pizza_furn", "CJ_CORD", MISC}, {"Black Leather", 1753, "cj_sofa", "CJ-COUCHL2", MISC}, {"Brown Leather", 1753, "cj_sofa", "CJ-COUCHL1", MISC}, {"Red Leather", 1770, "cj_tables", "CJ_RED_LEATHER", MISC}, {"Pink 'Leather'", 2487, "rc_shop_hanger", "CJ_kite2", MISC}, {"Blue 'Leather'", 2487, "rc_shop_hanger", "CJ_kite3", MISC}, {"Unnamed Concrete Wall 1", 17925, "lae2fake_int", "ab_wall3", MISC}, {"Unnamed Concrete Wall 2", 18060, "mp_diner2", "mp_diner_wall", MISC}, {"Unnamed Material", 13594, "kickstart", "ah_bluBADWL", MISC}, {"Red Square", 1898, "kb_wheel1", "wheel_o_2", MISC}, {"Green Square", 1898, "kb_wheel1", "wheel_o_2f", MISC}, {"Light Green Square", 1898, "kb_wheel1", "wheel_o_2b", MISC}, {"Blue Square", 1898, "kb_wheel1", "wheel_o_2c", MISC}, {"Light Blue Square", 1898, "kb_wheel1", "wheel_o_2d", MISC}, {"Yellow Square", 1898, "kb_wheel1", "wheel_o_2e", MISC}, {"Unnamed Asian Wall", 14620, "triad_bar", "triad_decor1", MISC}, {"Unnamed Red Something", 6989, "vgnfremnt1", "casinolights4_128", MISC}, {"Unnamed Blue Something", 6989, "vgnfremnt1", "casinolightsblu_128", MISC}, {"Unnamed Yellow Something", 6989, "vgnfremnt1", "casinolightsyel_128", MISC}, {"Funky Red Tiles", 6989, "vgnfremnt1", "casinolights9_256", MISC}, {"Unnamed PC Screen 1", 9822, "ship_brijsfw", "ship_screen1sfw", MISC}, {"Unnamed PC Screen 2", 9822, "ship_brijsfw", "ship_greenscreen1", MISC}, {"TV Screen", 1781, "cj_tv", "CJ_TV_SCREEN", MISC}, {"TV Noise", 14640, "chinese_furn", "ab_tv_noise", MISC}, {"Empty Golden Frame", 6989, "vgnfremnt1", "goldframe_256", MISC}, {"Blood", 19836, "particle", "bloodpool_64", MISC}, {"Blood 2", 18067, "intclothes_acc", "mp_cloth_vicrug", MISC}, {"Unnamed Creepy Concrete", 14888, "gf6", "mp_gimp_basewall", MISC}, {"Seeing Eye", 14839, "lee_strippriv", "Strip_Sign12", MISC}, {"Unnamed Glass 1", 2176, "casino_props", "flameOptic", MISC}, {"Unnamed Glass 2", 2176, "casino_props", "tubelite", MISC} }; #define MaterialRes Dialog_Show(playerid, TextureResources, DIALOG_STYLE_LIST, "Texture Category:", "Material Colors\nPrinted Fabrics\nWooden\nTiles\nBuilding\nMetals\nPaintings\nWallpapers\nMisc", "Select", "Exit"); enum MAT_COLORS { ColorHex, ColorName[32] }; new MaterialColors[][MAT_COLORS] = { {0, "none"}, {0xFFF0F8FF, "Alice Blue"}, {0xFFFAEBD7, "Antique White"}, {0xFF00FFFF, "Aqua"}, {0xFF7FFFD4, "Aquamarine"}, {0xFFF0FFFF, "Azure"}, {0xFFF5F5DC, "Beige"}, {0xFFFFE4C4, "Bisque"}, {0xFF000000, "Black"}, {0xFFFFEBCD, "Blanched Almond"}, {0xFF0000FF, "Blue"}, {0xFF8A2BE2, "Blue Violet"}, {0xFFA52A2A, "Brown"}, {0xFFDEB887, "Burly Wood"}, {0xFF5F9EA0, "Cadet Blue"}, {0xFF7FFF00, "Chartreuse"}, {0xFFD2691E, "Chocolate"}, {0xFFFF7F50, "Coral"}, {0xFF6495ED, "Cornflower Blue"}, {0xFFFFF8DC, "Cornsilk"}, {0xFFDC143C, "Crimson"}, {0xFF00FFFF, "Cyan"}, {0xFF00008B, "Dark Blue"}, {0xFF008B8B, "Dark Cyan"}, {0xFFB8860B, "Dark Goldenrod"}, {0xFFA9A9A9, "Dark Gray"}, {0xFF006400, "Dark Green"}, {0xFFBDB76B, "Dark Khaki"}, {0xFF8B008B, "Dark Magenta"}, {0xFF556B2F, "Dark Olive Green"}, {0xFFFF8C00, "Dark Orange"}, {0xFF9932CC, "Dark Orchid"}, {0xFF8B0000, "Dark Red"}, {0xFFE9967A, "Dark Salmon"}, {0xFF8FBC8F, "Dark Sea Green"}, {0xFF483D8B, "Dark Slate Blue"}, {0xFF2F4F4F, "Dark Slate Gray"}, {0xFF00CED1, "Dark Turquoise"}, {0xFF9400D3, "Dark Violet"}, {0xFFFF1493, "Deep Pink"}, {0xFF00BFFF, "Deep Sky Blue"}, {0xFF696969, "Dim Gray"}, {0xFF1E90FF, "Dodger Blue"}, {0xFFB22222, "Firebrick"}, {0xFFFFFAF0, "Floral White"}, {0xFF228B22, "Forest Green"}, {0xFFFF00FF, "Fuchsia"}, {0xFFDCDCDC, "Gainsboro"}, {0xFFF8F8FF, "Ghost White"}, {0xFFFFD700, "Gold"}, {0xFFDAA520, "Goldenrod"}, {0xFF808080, "Gray"}, {0xFF008000, "Green"}, {0xFFADFF2F, "Green Yellow"}, {0xFFF0FFF0, "Honeydew"}, {0xFFFF69B4, "Hot Pink"}, {0xFFCD5C5C, "Indian Red"}, {0xFF4B0082, "Indigo"}, {0xFFFFFFF0, "Ivory"}, {0xFFF0E68C, "Khaki"}, {0xFFE6E6FA, "Lavender"}, {0xFFFFF0F5, "Lavender Blush"}, {0xFF7CFC00, "Lawn Green"}, {0xFFFFFACD, "Lemon Chiffon"}, {0xFFADD8E6, "Light Blue"}, {0xFFF08080, "Light Coral"}, {0xFFE0FFFF, "Light Cyan"}, {0xFFFAFAD2, "Light Goldenrod Yellow"}, {0xFFD3D3D3, "Light Gray"}, {0xFF90EE90, "Light Green"}, {0xFFFFB6C1, "Light Pink"}, {0xFFFFA07A, "Light Salmon"}, {0xFF20B2AA, "Light Sea Green"}, {0xFF87CEFA, "Light Sky Blue"}, {0xFF778899, "Light Slate Gray"}, {0xFFB0C4DE, "Light Steel Blue"}, {0xFFFFFFE0, "Light Yellow"}, {0xFF00FF00, "Lime"}, {0xFF32CD32, "Lime Green"}, {0xFFFAF0E6, "Linen"}, {0xFFFF00FF, "Magenta"}, {0xFF800000, "Maroon"}, {0xFF66CDAA, "Medium Aquamarine"}, {0xFF0000CD, "Medium Blue"}, {0xFFBA55D3, "Medium Orchid"}, {0xFF9370DB, "Medium Purple"}, {0xFF3CB371, "Medium Sea Green"}, {0xFF7B68EE, "Medium Slate Blue"}, {0xFF00FA9A, "Medium Spring Green"}, {0xFF48D1CC, "Medium Turquoise"}, {0xFFC71585, "Medium Violet Red"}, {0xFF191970, "Midnight Blue"}, {0xFFF5FFFA, "Mint Cream"}, {0xFFFFE4E1, "Misty Rose"}, {0xFFFFE4B5, "Moccasin"}, {0xFFFFDEAD, "Navajo White"}, {0xFF000080, "Navy"}, {0xFFFDF5E6, "Old Lace"}, {0xFF808000, "Olive"}, {0xFF6B8E23, "Olive Drab"}, {0xFFFFA500, "Orange"}, {0xFFFF4500, "Orange Red"}, {0xFFDA70D6, "Orchid"}, {0xFFEEE8AA, "Pale Goldenrod"}, {0xFF98FB98, "Pale Green"}, {0xFFAFEEEE, "Pale Turquoise"}, {0xFFDB7093, "Pale Violet Red"}, {0xFFFFEFD5, "Papaya Whip"}, {0xFFFFDAB9, "Peach Puff"}, {0xFFCD853F, "Peru"}, {0xFFFFC0CB, "Pink"}, {0xFFDDA0DD, "Plum"}, {0xFFB0E0E6, "Powder Blue"}, {0xFF800080, "Purple"}, {0xFFFF0000, "Red"}, {0xFFBC8F8F, "Rosy Brown"}, {0xFF4169E1, "Royal Blue"}, {0xFF8B4513, "Saddle Brown"}, {0xFFFA8072, "Salmon"}, {0xFFF4A460, "Sandy Brown"}, {0xFF2E8B57, "Sea Green"}, {0xFFFFF5EE, "SeaShell"}, {0xFFA0522D, "Sienna"}, {0xFFC0C0C0, "Silver"}, {0xFF87CEEB, "Sky Blue"}, {0xFF6A5ACD, "Slate Blue"}, {0xFF708090, "Slate Gray"}, {0xFFFFFAFA, "Snow"}, {0xFF00FF7F, "Spring Green"}, {0xFF4682B4, "Steel Blue"}, {0xFFD2B48C, "Tan"}, {0xFF008080, "Teal"}, {0xFFD8BFD8, "Thistle"}, {0xFFFF6347, "Tomato"}, {0xFF40E0D0, "Turquoise"}, {0xFFEE82EE, "Violet"}, {0xFFF5DEB3, "Wheat"}, {0xFFFFFFFF, "White"}, {0xFFF5F5F5, "White Smoke"}, {0xFFFFFF00, "Yellow"}, {0xFF9ACD32, "Yellow Green"} }; new const componentSlotNames[][] = { {"Spoiler"}, {"Hood"}, {"Roof"}, {"Sideskirt"}, {"Lamps"}, {"Nitro"}, {"Exhaust"}, {"Wheels"}, {"Stereo"}, {"Hydraulics"}, {"Front Bumper"}, {"Rear Bumper"}, {"Vent Right"}, {"Vent Left"} }; enum e_Players { PlayerText:pText[103], PlayerBar:pBars[2], pIgnoreTD, pFooter, pID, pIP[16], pLoggedIn, pSetupInfo, pRegistered[32], pOrigin[24], pGender, pAge, pSkin, pUniform, pOutfit, pOutfitIndex, pOutfitTick, Float:pSpawn[4], Float:pHealth, Float:pArmor, pInterior, pWorld, Float:pTraveled, pPocketMoney, pSavingsMoney, pBankMoney, pAdmin, pMapper, pMapperDuty, pJailType, pJailTime, pMuted, pFitness, pMinutes, pSeconds, pHoursOnline, pJob, pJobPaycheck, pPaycheck, pWorkoutTime, pGymMembership, pPhoneLastKnown, pPhone, pPhoneOff, pPhoneSMS, pDeathState, pDeathTime, pHospital, pShowPM, pShowSpeed, pShowFuel, pSpawnedCar, pShowTime, pShowOOC, pShowReports, pShowAdmin, pShowSupporter, pBleeding, pBleedingTime, pPaymentType, pBankAccount, pSupporter, pVeteran, pFactionMod, pFaction, pFactionID, pFactionRank, pFactionLeader, pFactionOffer, pFriskOffer, pTazer, pTazed, pHandcuffed, pCuffedBy, pWarrants, pCharges, pAdminName[24], pAdminTitle[24], pPackageOrder, pPackageType, pPackageGrams, pPackageTime, pCarLicense, pGunLicense, pPilotLicense, pCDL, // Trucker License pAdTime, pRentHouse, pMaskID, pMaskTag, pHideAdmin, pBrokenLeg, pChatStyle, pWalkStyle, pChannel, pCamera, pDonator, pExpiryDate, pNameChanges, pNameChange[MAX_PLAYER_NAME], pBlind, pNicks, pSession, pSessionCaller, pSpawnType, pSpawnExtra, pCrashed, Float:pDistance[3], Text3D:pPausedText, Text3D:pInjuredText, pFurnitureMenu, pAccessoryMenu, pEditJob, pEditRank, pSafeMenu, pTrashbin, pSelected, pEditUniform, pEditEquipment, pEditAccessory, pAccessoryName[32], pAccessoryModel, pSelectedItem, pNotebookID, pSendText, pBank, pCategory, pPreviewIndex, pHouse, pCompany, pProduct, pProductName[24], pFoodType, pFoodPrice, pTarget, pSetStaff, pHotwire, pHotwireTime, pStartEngine, pSpectate, pLastReport, pSupportTime, pBanPage, pLights, pHouseInfo, pCompanyInfo, pBuildingInfo, pSetPosition, pFlashOn, pPaused, pLastUpdate, pFireTime, pWorkout, pWeight, pReps, pSpeedLevel, pDistanceRan, pGoods, pMining, pJobStage, pObject, pWorking, pWorkVehicle, pBuyOutfit, pSitting, pCarConfirm, pAdjustSpawn, pRental, pViewStats, pStatsPage, pParkTime, pChoose, pEdit, pEditID, pHouseEdit, pTransfer, pCalling, pCaller, pPayphone, pInsideTaxi, pPassenger, pTaxiMeter, pTaxiTime, bool:pTaxiDuty, pTaxiFare, pRefuel, pGasPrice, pMedicKit, pPainkillers, pPicking, pPickID, pPickTime, pFainted, pUnfairDeath, pAdminDuty, pSupporterDuty, pHelpRequest, pCheatFlags, pCheckpoint, pAnticheat, pAnimation, pDuty, pBadge, pSelectUniform, pUniformIndex, pUniformTick, pChangeRank, pDispatch, pDealershipMenu, pDealershipIndex, pVehicleColor, pColorID, pEmergency, pCallTaxi, pPackage, pStoned, pStonedTime, pSetBank, pGiveDrugs, pDrivingTest, pDrivingCP, pTestTime, pRepairCar, pHouseOffer, pHousePrice, pHouseSell, pCompanyOffer, pCompanyPrice, pCompanySell, pCarOffer, pCarPrice, pCarSell, pShakeOffer, pShakeType, pSprayTag, pTrashPickup, pTrash, pModShop, pStereoPlayerID, pVehicleStream, pChatting, pAddVehicle, pVehiclePrice, pVehicleCompany, pVehicleRental, pVehicleFaction, pAutoShop, pAutoTime, Float:pAutoX, Float:pAutoY, Float:pAutoZ, Float:pAutoA, pEnterTime, pCommandSpam, pCommandMuted, pConfirmBackdoor, pBackdoorType, pFurniturePerms, pFactionCallsign, pCallsign[128], pAddCharges, // bool:pFakelicense, pDrugOrderType, pBigEars, pWarnTimer, pWarnWeapon, pWarnHealth, pWarnArmor, pWarnAirbreak, pWarnSpeedhack, pWarnMoneyHack, pWarnAmmoHack, pWarnFlyHack, pWarnDialogHack, pWarnGodMode, pWarnRapidFire, pWarnTeleport, pActivated, pGPCI[41], pBeingReported, pReportReason[64], // Added by Grime, 10-03-2017. pModPreview, pOldComponent, pVehicleParams[7], pRepairShop, pRepairTime }; enum e_Weapons { wMelee, wPrimary, wPrimaryAmmo, wPrimarySerial, wSecondary, wSecondaryAmmo, wSecondarySerial, wTertiary, wTertiaryAmmo, wTertiarySerial }; enum e_WeaponOffsets { wBoneID, wHidden, Float:wOffsetX, Float:wOffsetY, Float:wOffsetZ, Float:wOffsetRX, Float:wOffsetRY, Float:wOffsetRZ }; enum e_Server { Accounts, PlayerRecord, RecordDate[24], TaxRate, TaxVault, Motd[128] }; enum e_Statistics { sHotwired, // Total vehicles hotwired sRentals, // Total vehicles rented sHospitalFees, // Total hospital fees sItemsUsed, // Total items used sItemsDropped, // Total items dropped sItemsPicked, // Total items picked up sDistanceRan, // Total distance ran on treadmill sTotalReps, // Total weights lifted sHouses, // Total houses purchased sCompanies, // Total companies purchased sVehicles, // Total vehicles purchased sFurnitureFees, // Total money spent on furniture, sTotalWarrants, // Total warrants issued sReports, // Total accepted reports sHelpRequests // Total accepted help requests }; enum e_Timers { tFooter, tWorkout, tHospital, tRefuel, tRepair }; enum e_VehicleInfo { vInit, vFuel, vWindows, vWindowFL, vWindowFR, vWindowBL, vWindowBR, vAdmin, vGoods, vObject, vColor[2], vStream[128 char] }; enum e_Inventory { invExists, invID, invName[MAX_ITEM_NAME], invValue, invSerial, Float:invOffset[6] }; enum e_DropItems { dExists, dID, dName[MAX_ITEM_NAME], dValue, dSerial, Float:dSpawn[4], dInterior, dWorld, dObject, //Text3D:dText, Float:dOffset[6] }; enum e_ReportQueue { rExists, rReportTime, rReporter, rText[128] }; enum e_EmergencyCalls { ecExists, ecTime, ecName[128], ecService[32], ecNumber, ecLocation[128], ecSituation[128] }; enum e_ApbList { apbExists, apbReporter, apbDesc1[128] }; enum e_Houses { hID, hExists, hOwner, hOwnerName[MAX_PLAYER_NAME], hValue, hAddress[32], Float:hSpawn[4], Float:hInt[4], Float:hBackdoor[4], Float:hBackdoorInt[4], hExterior, hExteriorWorld, hInterior, hWorld, hLocked, hAlarm, hRentPrice, hLights, hEdit, hCheckpoint, //Text3D:hText, Text3D:hBackdoorText[2], hFaction }; enum e_Companies { cID, cExists, cOwner, cOwnerName[MAX_PLAYER_NAME], cValue, cType, cName[32], Float:cSpawn[4], Float:cVehicle[4], Float:cInt[4], cExterior, cExteriorWorld, cInterior, cWorld, cLocked, cSafe, cStock, cCheckpoint, cIcon, //Text3D:cText, Text3D:cDeliverText, cFee, cStream[256], cFaction }; enum e_Products { prStock, prPrice }; enum e_RestaurantItems { rtID, rtExists, rtName[24], rtStock, rtPrice, rtType, rtHealth }; enum e_Vehicles { vID, vExists, vCompany, vOwner, vModel, vRegistered[32], vPrice, vRentable, Float:vSpawn[4], vColor1, vColor2, vPaintjob, vLocked, vTrunkMoney, vFaction, vSiren, vAlarm, vPlate[32], vImpound, vDespawned, vMods[14], vRenter, vVehicle, Text3D:vText }; enum e_Buildings { bID, bExists, bName[32], bIconType, bLocked, Float:bSpawn[4], Float:bInt[4], bExterior, bExteriorWorld, bInterior, bWorld, bPickup, Text3D:bText, bIcon }; enum e_Furniture { fID, fExists, fHouseID, fModel, Float:fSpawn[6], fInterior, fWorld, fCode, // Safe code fMoney, // Safe money fSafeOpen, fDoorOpen, fObject, fEdit, Text3D:fText, fMaterial[3], fMatColour[3], }; enum e_StoredItems { stID, stExists, stVehicle, stFurniture, stTrashbin, stName[MAX_ITEM_NAME char], stValue, stSerial, Float:stOffset[6], vehicleItem, Float:vehicleOffset[6] }; enum e_BankAccounts { bankID, bankExists, bankName[32], bankBalance }; enum e_Accessories { aID, aExists, aAttached, aName[32], aModel, aBone, Float:aOffset[9] }; enum e_GasPumps { gpID, gpExists, gpCompany, Float:gpSpawn[4], Float:gpFuel, gpObject, Text3D:gpText }; enum e_ATM { atmID, atmExists, Float:atmSpawn[4], atmInterior, atmWorld, atmObject, Text3D:atmText }; enum e_Dealership { dcID, dcExists, dcCompany, dcModel, dcPrice }; enum e_Casings { scID, scExists, scSerial, scWeapon, scTime, Float:scSpawn[3], scInterior, scWorld, scObject }; enum e_Bloods { blID, blExists, blType, blOwner[24], Float:blSpawn[3], blInterior, blWorld, blObject, blTime }; enum e_WeedPlants { wpID, wpExists, wpOwner[24], Float:wpSpawn[3], wpInterior, wpWorld, wpObject, wpTime }; enum e_Factions { fcID, fcExists, fcName[32], fcType, fcColor, fcMaxRanks, Float:fcLockerX, Float:fcLockerY, Float:fcLockerZ, fcLockerInt, fcLockerWorld, fcUniforms[MAX_FACTION_UNIFORMS], fcPaycheck[MAX_FACTION_RANKS], fcWeaponRights[6], fcDrugRights, fcSprayRights, Float:fcSpawnX, // Emmet 09/27/2017 Float:fcSpawnY, Float:fcSpawnZ, Float:fcSpawnA, fcSpawnInt, fcSpawnWorld, // fcPickup, Text3D:fcText }; enum e_FactionItems { fcItemExists, fcItemName[MAX_ITEM_NAME], fcItemValue }; enum e_FactionAccessories { fcAccessoryExists, fcAccessoryName[32], fcAccessoryModel, fcAccessoryBone }; enum e_FactionGuns { fcWeapon, fcAmmo, fcRank }; enum e_ArrestPoints { apID, apExists, Float:apX, Float:apY, Float:apZ, apInterior, apWorld, Text3D:apText, apPickup }; enum e_Teleports { tpID, tpExists, tpName[32], Float:tpX, Float:tpY, Float:tpZ, Float:tpA, tpInterior, tpWorld }; enum e_Gates { gID, gExists, gModel, gPassword[64], Float:gSpeed, Float:gRadius, gFactionID, gLinkID, Float:gSpawn[6], Float:gMove[6], gInterior, gWorld, gOpened, gObject }; enum e_Labels { lID, lExists, lColor, lText[144], Float:lX, Float:lY, Float:lZ, Float:lDistance, lInterior, lWorld, Text3D:lText3D }; enum e_AutoShops { asID, asExists, Float:asX, Float:asY, Float:asZ, asPickup, asIcon, Text3D:asText }; enum e_Deploys { dpExists, dpType, dpFaction, Float:dpX, Float:dpY, Float:dpZ, Float:dpA, dpObject }; enum e_Objects { oID, oExists, oModel, Float:oX, Float:oY, Float:oZ, Float:oRX, Float:oRY, Float:oRZ, Float:oDistance, oInterior, oWorld, gDebug, oObjectID, Text3D:oText }; enum e_Trashbins { tID, tExists, Float:tX, Float:tY, Float:tZ, Float:tA, tInterior, tWorld, Text3D:tText, tObject }; enum e_SprayTags { sID, sExists, sColor, sText[64], Float:sX, Float:sY, Float:sZ, Float:sA, sObject }; enum e_Tags { tagID, tagExists, tagColor, tagText[64], Float:tagX, Float:tagY, Float:tagZ, Float:tagA, tagObject, tagFontSize, tagBold }; enum e_Payphones { phID, phExists, phNumber, phOccupied, phCaller, Float:phX, Float:phY, Float:phZ, Float:phA, phInterior, phWorld, phObject, Text3D:phText }; enum e_JobVehicles { Transporter[11], Forklifter[6], TaxiDriver[6], Pizzaboy[5], Trashman[5] }; enum e_Stereo { pStereoID, Float:pStereoX, Float:pStereoY, Float:pStereoZ, pStereoInterior, pStereoWorld, pStereoURL[255 char], pStereoObject, Text3D:pStereoText }; enum e_Checkpoints { cpEmployment, cpPolice }; enum e_LastShots { lWeaponID, lWeaponShots }; new Players[MAX_PLAYERS][e_Players], pSpecLimit[MAX_PLAYERS], Weapons[MAX_PLAYERS][e_Weapons], WeaponOffsets[MAX_PLAYERS][6][e_WeaponOffsets], Stereos[MAX_PLAYERS][e_Stereo], Statistics[MAX_PLAYERS][e_Statistics], Timers[MAX_PLAYERS][e_Timers], Inventory[MAX_PLAYERS][MAX_INVENTORY_ITEMS][e_Inventory], LastShots[MAX_PLAYERS][10][e_LastShots], DropItems[MAX_DROPPED_ITEMS][e_DropItems], Houses[MAX_HOUSES][e_Houses], Companies[MAX_COMPANIES][e_Companies], Products[MAX_COMPANIES][MAX_PRODUCTS][e_Products], RestaurantItems[MAX_COMPANIES][MAX_RESTAURANT_ITEMS][e_RestaurantItems], VehicleInformation[MAX_VEHICLES][e_VehicleInfo], Reports[MAX_REPORTS][e_ReportQueue], Emergency[MAX_EMERGENCY][e_EmergencyCalls], Apbs[MAX_APBS][e_ApbList], Vehicles[MAX_CARS][e_Vehicles], Buildings[MAX_BUILDINGS][e_Buildings], Furniture[MAX_FURNITURE][e_Furniture], StoredItems[MAX_STORED_ITEMS][e_StoredItems], BankAccounts[MAX_PLAYERS][MAX_BANK_ACCOUNTS][e_BankAccounts], Accessories[MAX_PLAYERS][MAX_ACCESSORIES][e_Accessories], GasPumps[MAX_GAS_PUMPS][e_GasPumps], ATM[MAX_ATMS][e_ATM], DealershipCars[MAX_DEALERSHIP_CARS][e_Dealership], ShellCasings[MAX_SHELL_CASINGS][e_Casings], Bloods[MAX_BLOOD][e_Bloods], WeedPlants[MAX_WEEDPLANTS][e_WeedPlants], Factions[MAX_FACTIONS][e_Factions], FactionEquipment[MAX_FACTIONS][MAX_FACTION_EQUIPMENT][e_FactionItems], FactionAccessories[MAX_FACTIONS][MAX_FACTION_ACCESSORIES][e_FactionAccessories], Ranks[MAX_FACTIONS][MAX_FACTION_RANKS][MAX_RANK_NAME], ArrestPoints[MAX_ARREST_POINTS][e_ArrestPoints], Teleports[MAX_ADMIN_TELEPORTS][e_Teleports], Gates[MAX_GATES][e_Gates], Labels[MAX_DYNAMIC_LABELS][e_Labels], AutoShops[MAX_AUTO_SHOPS][e_AutoShops], DeployedItems[MAX_DEPLOYED_ITEMS][e_Deploys], Objects[MAX_SCRIPT_OBJECTS][e_Objects], Trashbins[MAX_TRASH_BINS][e_Trashbins], SprayTags[MAX_SPRAY_TAGS][e_SprayTags], Tags[MAX_TAGS][e_Tags], Payphones[MAX_PAYPHONES][e_Payphones], PoliceObjects[MAX_PLAYERS][MAX_PLAYER_ATTACHED_OBJECTS], bool:BlockedPM[MAX_PLAYERS][MAX_PLAYERS]; new Server[e_Server], Float:WeaponDamages[47], JobVehicles[e_JobVehicles], Checkpoints[e_Checkpoints], gMinutes, gCallsHour, gArrestsHour, gConnection, gTestVehicles[4], gVehicleBlacklist[212], gListString[16384], gWeatherID = 5, gEnabledOOC = 0, gObjectDebug, gExecute[512], Text3D:playerNametag[MAX_PLAYERS], gListedItems[MAX_PLAYERS][100], gWeights[MAX_PLAYERS][2], gLastVehicleID[MAX_PLAYERS], gPlayerKicked[MAX_PLAYERS], gSeatData[MAX_PLAYERS] = {-1, ...}, gPreviewFurniture[MAX_PLAYERS] = {-1, ...}, gPreviewDeploy[MAX_PLAYERS] = {-1, ...}, gPreviewDeployID[MAX_PLAYERS], gTargetName[MAX_PLAYERS][MAX_PLAYER_NAME], gHelpRequest[MAX_PLAYERS][128 char], gTemporaryText[MAX_PLAYERS][64 char], gAdvertisement[MAX_PLAYERS][128 char], gSirenObject[MAX_VEHICLES] = {INVALID_OBJECT_ID, ...}, Text3D:gCallsignText[MAX_VEHICLES] = {INVALID_3DTEXT_ID, ...}, Text:gGlobalTextdraws[3]; //gListitemSelected[MAX_PLAYERS] = {-1, ...}, //gPrisonDoors[6], //gPrisonDoorStatus[3]; enum { SPAWN_TYPE_LAST = 0, SPAWN_TYPE_AIRPORT, SPAWN_TYPE_HOUSE, SPAWN_TYPE_COMPANY, SPAWN_TYPE_FACTION }; enum { JOB_NONE, JOB_TRANSPORTER, JOB_FORKLIFTER, JOB_MINER, JOB_TAXI, JOB_PIZZA, JOB_TRASHMAN, JOB_MECHANIC, JOB_GUNDEALER }; enum { WEAPON_MELEE, WEAPON_PRIMARY, WEAPON_SECONDARY, WEAPON_TERTIARY }; enum { WORKOUT_NONE, WORKOUT_DUMBELLS, WORKOUT_TREADMILL }; enum { CHECKPOINT_NONE, CHECKPOINT_GPS, CHECKPOINT_PACKAGE, CHECKPOINT_JOB }; enum { ITEM_INFO_MODEL = 1, ITEM_INFO_WEIGHT, ITEM_INFO_VALUE, ITEM_INFO_WEAPON_ID, ITEM_INFO_ILLEGAL, ITEM_INFO_STACKABLE, ITEM_INFO_DRUG }; enum { DEATH_STATE_NONE, DEATH_STATE_INJURED, DEATH_STATE_HOSPITAL//, //DEATH_STATE_MELEE }; enum { GENDER_MALE = 1, GENDER_FEMALE }; enum { HOSPITAL_NONE = -1, HOSPITAL_COUNTY_GENERAL, HOSPITAL_ALL_SAINTS, HOSPITAL_MONTGOMERY, HOSPITAL_LAS_VENTURAS, HOSPITAL_SAN_FIERRO, HOSPITAL_FORT_CARSON, HOSPITAL_EL_QUEBRADOS, HOSPITAL_ANGEL_PINE }; enum { EDIT_TYPE_NONE, EDIT_TYPE_PREVIEW, EDIT_TYPE_FURNITURE, EDIT_TYPE_ACCESSORY, EDIT_TYPE_PUMP, EDIT_TYPE_ATM, EDIT_TYPE_GATE, EDIT_TYPE_GATE_MOVE, EDIT_TYPE_OBJECT, EDIT_TYPE_TRASHBIN, EDIT_TYPE_TAG, EDIT_TYPE_SPRAY, EDIT_TYPE_PAYPHONE, EDIT_TYPE_WEAPON, EDIT_TYPE_DEPLOY, EDIT_TYPE_TRUNK }; enum { FURNITURE_KITCHEN, FURNITURE_TABLES, FURNITURE_CHAIRS, FURNITURE_SHELVES, FURNITURE_BATHROOM, FURNITURE_BEDROOM, FURNITURE_CABINETS, FURNITURE_ELECTRIC, FURNITURE_PLANTS, FURNITURE_TRASH, FURNITURE_DOORS, FURNITURE_CARPETS, FURNITURE_FRAMES, FURNITURE_MISC, FURNITURE_WALL, FURNITURE_SPECIAL, FURNITURE_EFFECT }; enum { ACCESSORY_GLASSES, ACCESSORY_BANDANAS, ACCESSORY_HATS, ACCESSORY_CHEST, ACCESSORY_BAGS }; enum { CHOOSE_TYPE_NONE, CHOOSE_TYPE_TRUNK, CHOOSE_TYPE_SAFE, CHOOSE_TYPE_TRASH }; enum { STORED_TYPE_TRUNK, STORED_TYPE_SAFE, STORED_TYPE_TRASH }; enum { PICK_LOCK_NONE, PICK_LOCK_HOUSE, PICK_LOCK_SAFE, PICK_LOCK_COMPANY, PICK_LOCK_VEHICLE }; enum { PAYMENT_TYPE_CASH, PAYMENT_TYPE_BANK }; enum { BANK_ACCESS_MENU, BANK_ATM_MENU, BANK_PAYMENT_TYPE }; enum { TRANSFER_TO_SAFE, TRANSFER_TO_TRUNK, TRANSFER_TO_TRASH, TRANSFER_TO_PLAYER, TRANSFER_TO_GROUND }; enum { TRANSFER_FROM_SAFE, TRANSFER_FROM_TRUNK, TRANSFER_FROM_TRASH, TRANSFER_FROM_GROUND }; enum { DEPLOY_TYPE_CONE, DEPLOY_TYPE_SPIKES, DEPLOY_TYPE_ROADBLOCK, DEPLOY_TYPE_FLARE, DEPLOY_TYPE_BARREL, DEPLOY_TYPE_TAPE }; /* {"Steroids", 2891, 1, true, true, true}, {"Heroin", 2891, 1, true, true, true}, {"LSD", 2891, 1, true, true, true}, {"Ecstasy", 2891, 1, true, true, true}, {"Marijuana", 2891, 1, true, true, true}, {"Crack", 2891, 1, true, true, true}, {"Cocaine", 2891, 1, true, true, true}, {"Methamphetamine", 2891, 1, true, true, true}, {"PCP", 2891, 1, true, true, true}, */ enum { PACKAGE_TYPE_NONE, PACKAGE_TYPE_MELEE, PACKAGE_TYPE_PISTOLS, PACKAGE_TYPE_SHOTGUNS, PACKAGE_TYPE_SMGS, PACKAGE_TYPE_RIFLES, PACKAGE_TYPE_EXPLOSIVES, PACKAGE_TYPE_MARIJUANA, PACKAGE_TYPE_COCAINE, PACKAGE_TYPE_HEROIN, PACKAGE_TYPE_STEROIDS, PACKAGE_TYPE_LSD, PACKAGE_TYPE_ECSTASY, PACKAGE_TYPE_CRACK, PACKAGE_TYPE_METH, PACKAGE_TYPE_PCP, PACKAGE_TYPE_AMMO_1, PACKAGE_TYPE_AMMO_2, PACKAGE_TYPE_AMMO_3, PACKAGE_TYPE_AMMO_4, PACKAGE_TYPE_AMMO_5, PACKAGE_TYPE_AMMO_6 }; enum { STONED_TYPE_NONE, STONED_TYPE_MARIJUANA, STONED_TYPE_COCAINE, STONED_TYPE_HEROIN, STONED_TYPE_STEROIDS, STONED_TYPE_LSD, STONED_TYPE_ECSTASY, STONED_TYPE_CRACK, STONED_TYPE_METH, STONED_TYPE_PCP }; enum { WEAPON_TYPE_MELEE, WEAPON_TYPE_PISTOL, WEAPON_TYPE_SHOTGUN, WEAPON_TYPE_SMG, WEAPON_TYPE_ASSAULT, WEAPON_TYPE_RIFLE }; /*--------------------------------------------------------------------------- Array data The arrays below contain data used by the server. Arrays that use "const" cannot be modified. ---------------------------------------------------------------------------*/ enum e_Callsigns { e_CallsignID, e_CallsignTakenBy, // 1-LSPD e_CallsignFaction, // Text of the callsign e_CallsignTextShort[32], // Text of the callsign e_CallsignTextFull[64] }; new g_Callsigns[][e_Callsigns] = { {1, -1, 1, "1-A-1", "1-Adam-1"}, {2, -1, 1, "1-A-2", "1-Adam-2"}, {3, -1, 1, "1-A-3", "1-Adam-3"}, {4, -1, 1, "1-A-4", "1-Adam-4"}, {5, -1, 1, "1-A-5", "1-Adam-5"}, {6, -1, 1, "2-A-1", "2-Adam-1"}, {7, -1, 1, "2-A-2", "2-Adam-2"}, {8, -1, 1, "2-A-3", "2-Adam-3"}, {9, -1, 1, "2-A-4", "2-Adam-4"}, {10, -1, 1, "2-A-5", "2-Adam-5"}, {11, -1, 1, "3-A-1", "3-Adam-1"}, {12, -1, 1, "3-A-2", "3-Adam-2"}, {13, -1, 1, "3-A-3", "3-Adam-3"}, {14, -1, 1, "3-A-4", "3-Adam-4"}, {15, -1, 1, "3-A-5", "3-Adam-5"}, {16, -1, 1, "1-L-1", "1-Lincoln-1"}, {17, -1, 1, "1-L-2", "1-Lincoln-2"}, {18, -1, 1, "1-L-3", "1-Lincoln-3"}, {19, -1, 1, "1-L-4", "1-Lincoln-4"}, {20, -1, 1, "1-L-5", "1-Lincoln-5"}, {21, -1, 1, "2-L-1", "2-Lincoln-1"}, {22, -1, 1, "2-L-2", "2-Lincoln-2"}, {23, -1, 1, "2-L-3", "2-Lincoln-3"}, {24, -1, 1, "2-L-4", "2-Lincoln-4"}, {25, -1, 1, "2-L-5", "2-Lincoln-5"}, {26, -1, 1, "3-L-1", "3-Lincoln-1"}, {27, -1, 1, "3-L-2", "3-Lincoln-2"}, {28, -1, 1, "3-L-3", "3-Lincoln-3"}, {29, -1, 1, "3-L-4", "3-Lincoln-4"}, {30, -1, 1, "3-L-5", "3-Lincoln-5"}, {31, -1, 1, "1-D-1", "1-David-1"}, {32, -1, 1, "1-D-2", "1-David-2"}, {33, -1, 1, "2-D-1", "2-David-1"}, {34, -1, 1, "2-D-2", "2-David-2"}, {35, -1, 1, "3-D-1", "3-David-1"}, {36, -1, 1, "3-D-2", "3-David-2"}, {37, -1, 1, "1-M-1", "1-Mary-1"}, {38, -1, 1, "1-M-2", "1-Mary-2"}, {39, -1, 1, "2-M-1", "2-Mary-1"}, {40, -1, 1, "2-M-2", "2-Mary-2"}, {41, -1, 1, "3-M-1", "3-Mary-1"}, {42, -1, 1, "3-M-2", "3-Mary-2"}, {43, -1, 1, "1-T-1", "1-Tom-1"}, {44, -1, 1, "1-T-2", "1-Tom-2"}, {45, -1, 1, "1-T-3", "1-Tom-3"}, {46, -1, 1, "1-T-4", "1-Tom-4"}, {47, -1, 1, "1-T-5", "1-Tom-5"}, {48, -1, 1, "2-T-1", "2-Tom-1"}, {49, -1, 1, "2-T-2", "2-Tom-2"}, {50, -1, 1, "2-T-3", "2-Tom-3"}, {51, -1, 1, "2-T-4", "2-Tom-4"}, {52, -1, 1, "2-T-5", "2-Tom-5"}, {53, -1, 1, "3-T-1", "3-Tom-1"}, {54, -1, 1, "3-T-2", "3-Tom-2"}, {55, -1, 1, "3-T-3", "3-Tom-3"}, {56, -1, 1, "3-T-4", "3-Tom-4"}, {57, -1, 1, "3-T-5", "3-Tom-5"}, {58, -1, 1, "1-TL-1", "1-TL-1"}, {59, -1, 1, "1-TL-2", "1-TL-2"}, {60, -1, 1, "1-TL-3", "1-TL-3"}, {61, -1, 1, "2-TL-1", "2-TL-1"}, {62, -1, 1, "2-TL-2", "2-TL-2"}, {63, -1, 1, "2-TL-3", "2-TL-3"}, {64, -1, 1, "3-TL-1", "3-TL-1"}, {65, -1, 1, "3-TL-2", "3-TL-2"}, {66, -1, 1, "3-TL-3", "3-TL-3"}, {67, -1, 1, "1-G-1", "1-George-1"}, {68, -1, 1, "1-G-2", "1-George-2"}, {69, -1, 1, "1-G-3", "1-George-3"}, {70, -1, 1, "1-G-4", "1-George-4"}, {71, -1, 1, "2-G-1", "2-George-1"}, {72, -1, 1, "2-G-2", "2-George-2"}, {73, -1, 1, "2-G-3", "2-George-3"}, {74, -1, 1, "2-G-4", "2-George-4"}, {75, -1, 1, "3-G-1", "3-George-1"}, {76, -1, 1, "3-G-2", "3-George-2"}, {77, -1, 1, "3-G-3", "3-George-3"}, {78, -1, 1, "3-G-4", "3-George-4"}, {79, -1, 1, "1-H-1", "1-Henry-1"}, {80, -1, 1, "1-H-2", "1-Henry-2"}, {81, -1, 1, "2-H-1", "2-Henry-1"}, {82, -1, 1, "2-H-2", "2-Henry-2"}, {83, -1, 1, "3-H-1", "3-Henry-1"}, {84, -1, 1, "3-H-2", "3-Henry-2"} }; enum e_CompanyItems { // Type of company that offers this item. e_CompanyType, // Name of the product. e_ItemName[32], // Default price for this item. e_DefaultPrice, // Does this item have to be stocked before it can be bought? bool:e_IsStockable }; // List of all buyable items for each company. new g_CompanyItems[][e_CompanyItems] = { {COMPANY_STORE, "Toolbox", 1500, true}, {COMPANY_STORE, "Stereo", 700, true}, {COMPANY_STORE, "Bandages", 500, true}, {COMPANY_STORE, "Medical Kit", 1000, true}, {COMPANY_STORE, "Notebook", 250, true}, {COMPANY_STORE, "Gasoline", 500, true}, {COMPANY_STORE, "Cigarettes", 200, true}, {COMPANY_STORE, "Screwdriver", 500, true}, {COMPANY_STORE, "Mask", 5000, true}, {COMPANY_STORE, "Beer", 50, true}, {COMPANY_STORE, "Wine", 70, true}, {COMPANY_STORE, "Baseball Bat", 300, true}, {COMPANY_STORE, "Spraycan", 200, true}, //{COMPANY_STORE, "Walkie Talkie", 50, true}, {COMPANY_STORE, "Portable Radio", 2500, true}, {COMPANY_STORE, "Camera", 1000, true}, {COMPANY_STORE, "SIM Card", 100, false}, {COMPANY_STORE, "Mobile Phone", 250, true}, {COMPANY_CLOTHES, "Glasses", 100, true}, {COMPANY_CLOTHES, "Bandanas", 100, true}, {COMPANY_CLOTHES, "Hats", 100, true}, {COMPANY_CLOTHES, "Bags", 150, true}, //{COMPANY_CLOTHES, "Chest", 500, true}, {COMPANY_GYM, "Membership", 2500, false}, {COMPANY_GYM, "Protein Shake", 500, true}, {COMPANY_PHONE, "SIM Card", 200, false}, {COMPANY_PHONE, "Mobile Phone", 350, true}, //{COMPANY_AMMO, "Kevlar Vest", 6000, true}, {COMPANY_AMMO, "Armor", 7500, true}, {COMPANY_AMMO, "Pepper Spray", 1250, true}, {COMPANY_AMMO, "Desert Eagle", 10000, true}, {COMPANY_AMMO, "Shotgun", 12000, true}, {COMPANY_AMMO, "Rifle", 15000, true}, {COMPANY_AMMO, "9x19mm Ammo", 1500, true}, {COMPANY_AMMO, ".50cal Ammo", 1500, true}, {COMPANY_AMMO, "12 Gauge Ammo", 1500, true}, {COMPANY_AMMO, "5.56x45mm Ammo", 1500, true}, {COMPANY_AMMO, "7.62x39mm Ammo", 1500, true}, {COMPANY_AMMO, "7.62x51mm Ammo", 1500, true}, {COMPANY_BAR, "Cigarette", 150, true}, {COMPANY_BAR, "Sprunk", 250, true}, {COMPANY_BAR, "Beer", 250, true}, {COMPANY_BAR, "Wine", 250, true} }; new const g_CompanyTypes[][] = { "Corner Store", "Clothing Store", "Restaurant", "Car Rentals", "Phone Company", "Dealership", "Gym", "Ammunition", "Bar" }; new const g_FurnitureTypes[][] = { "Kitchen", "Tables", "Chairs/Couches", "Shelves", "Bathroom", "Bedroom", "Cabinets", "Electronics", "Plants", "Trashcans", "Doors", "Carpets", "Frames", "Miscellaneous", "Wall", "Special" }; enum e_AccessoryList { e_AccessoryCategory, e_AccessoryName[32], e_AccessoryModel }; new const g_AccessoryList[][e_AccessoryList] = { {ACCESSORY_GLASSES, "GlassesType1", 19006}, {ACCESSORY_GLASSES, "GlassesType2", 19007}, {ACCESSORY_GLASSES, "GlassesType3", 19008}, {ACCESSORY_GLASSES, "GlassesType4", 19009}, {ACCESSORY_GLASSES, "GlassesType5", 19010}, {ACCESSORY_GLASSES, "GlassesType6", 19011}, {ACCESSORY_GLASSES, "GlassesType7", 19012}, {ACCESSORY_GLASSES, "GlassesType8", 19013}, {ACCESSORY_GLASSES, "GlassesType9", 19014}, {ACCESSORY_GLASSES, "GlassesType10", 19015}, {ACCESSORY_GLASSES, "GlassesType11", 19016}, {ACCESSORY_GLASSES, "GlassesType12", 19017}, {ACCESSORY_GLASSES, "GlassesType13", 19018}, {ACCESSORY_GLASSES, "GlassesType14", 19019}, {ACCESSORY_GLASSES, "GlassesType15", 19020}, {ACCESSORY_GLASSES, "GlassesType16", 19021}, {ACCESSORY_GLASSES, "GlassesType17", 19022}, {ACCESSORY_GLASSES, "GlassesType18", 19023}, {ACCESSORY_GLASSES, "GlassesType19", 19024}, {ACCESSORY_GLASSES, "GlassesType20", 19025}, {ACCESSORY_GLASSES, "GlassesType21", 19026}, {ACCESSORY_GLASSES, "GlassesType22", 19027}, {ACCESSORY_GLASSES, "GlassesType23", 19028}, {ACCESSORY_GLASSES, "GlassesType24", 19029}, {ACCESSORY_GLASSES, "GlassesType25", 19030}, {ACCESSORY_GLASSES, "GlassesType26", 19031}, {ACCESSORY_GLASSES, "GlassesType27", 19032}, {ACCESSORY_GLASSES, "GlassesType28", 19033}, {ACCESSORY_GLASSES, "GlassesType29", 19034}, {ACCESSORY_GLASSES, "GlassesType30", 19035}, {ACCESSORY_BANDANAS, "Balaclava1", 19801}, {ACCESSORY_BANDANAS, "Mask1", 18911}, {ACCESSORY_BANDANAS, "Mask2", 18912}, {ACCESSORY_BANDANAS, "Mask3", 18913}, {ACCESSORY_BANDANAS, "Mask4", 18914}, {ACCESSORY_BANDANAS, "Mask5", 18915}, {ACCESSORY_BANDANAS, "Mask6", 18916}, {ACCESSORY_BANDANAS, "Mask7", 18917}, {ACCESSORY_BANDANAS, "Mask8", 18918}, {ACCESSORY_BANDANAS, "Mask9", 18919}, {ACCESSORY_BANDANAS, "Mask10", 18920}, {ACCESSORY_BANDANAS, "Bandana1", 18891}, {ACCESSORY_BANDANAS, "Bandana2", 18892}, {ACCESSORY_BANDANAS, "Bandana3", 18893}, {ACCESSORY_BANDANAS, "Bandana4", 18894}, {ACCESSORY_BANDANAS, "Bandana5", 18895}, {ACCESSORY_BANDANAS, "Bandana6", 18896}, {ACCESSORY_BANDANAS, "Bandana7", 18897}, {ACCESSORY_BANDANAS, "Bandana8", 18898}, {ACCESSORY_BANDANAS, "Bandana9", 18899}, {ACCESSORY_BANDANAS, "Bandana10", 18900}, {ACCESSORY_BANDANAS, "Bandana11", 18901}, {ACCESSORY_BANDANAS, "Bandana12", 18902}, {ACCESSORY_BANDANAS, "Bandana13", 18903}, {ACCESSORY_BANDANAS, "Bandana14", 18904}, {ACCESSORY_BANDANAS, "Bandana15", 18905}, {ACCESSORY_BANDANAS, "Bandana16", 18906}, {ACCESSORY_BANDANAS, "Bandana17", 18907}, {ACCESSORY_BANDANAS, "Bandana18", 18908}, {ACCESSORY_BANDANAS, "Bandana19", 18909}, {ACCESSORY_BANDANAS, "Bandana20", 18910}, {ACCESSORY_BANDANAS, "gasmask01", 19472}, {ACCESSORY_BANDANAS, "MaskZorro1", 18974}, {ACCESSORY_BANDANAS, "BDupsMask1", 11704}, {ACCESSORY_HATS, "HardHat1", 18638}, {ACCESSORY_HATS, "BlackHat1", 18639}, {ACCESSORY_HATS, "Hat1", 18926}, {ACCESSORY_HATS, "Hat2", 18927}, {ACCESSORY_HATS, "Hat3", 18928}, {ACCESSORY_HATS, "Hat4", 18929}, {ACCESSORY_HATS, "Hat5", 18930}, {ACCESSORY_HATS, "Hat6", 18931}, {ACCESSORY_HATS, "Hat7", 18932}, {ACCESSORY_HATS, "Hat8", 18933}, {ACCESSORY_HATS, "Hat9", 18934}, {ACCESSORY_HATS, "Hat10", 18935}, {ACCESSORY_HATS, "HatBoater1", 18944}, {ACCESSORY_HATS, "HatBoater2", 18945}, {ACCESSORY_HATS, "HatBoater3", 18946}, {ACCESSORY_HATS, "HatBowler1", 18947}, {ACCESSORY_HATS, "HatBowler2", 18948}, {ACCESSORY_HATS, "HatBowler3", 18949}, {ACCESSORY_HATS, "HatBowler4", 18950}, {ACCESSORY_HATS, "HatBowler5", 18951}, {ACCESSORY_HATS, "CowboyHat2", 18962}, {ACCESSORY_HATS, "HatMan1", 18967}, {ACCESSORY_HATS, "HatMan2", 18968}, {ACCESSORY_HATS, "HatMan3", 18969}, {ACCESSORY_HATS, "HatTiger1", 18970}, {ACCESSORY_HATS, "HatCool1", 18971}, {ACCESSORY_HATS, "HatCool2", 18972}, {ACCESSORY_HATS, "HatCool3", 18973}, {ACCESSORY_HATS, "SantaHat1", 19064}, {ACCESSORY_HATS, "SantaHat2", 19065}, {ACCESSORY_HATS, "SantaHat3", 19066}, {ACCESSORY_HATS, "HoodyHat1", 19067}, {ACCESSORY_HATS, "HoodyHat2", 19068}, {ACCESSORY_HATS, "HoodyHat3", 19069}, {ACCESSORY_HATS, "HardHat2", 19093}, {ACCESSORY_HATS, "BurgerShotHat1", 19094}, {ACCESSORY_HATS, "CowboyHat1", 19095}, {ACCESSORY_HATS, "CowboyHat3", 19096}, {ACCESSORY_HATS, "CowboyHat4", 19097}, {ACCESSORY_HATS, "CowboyHat5", 19098}, {ACCESSORY_HATS, "CluckinBellHat1", 19137}, {ACCESSORY_HATS, "HardHat3", 19160}, {ACCESSORY_BAGS, "Nike Bag", -2000}, {ACCESSORY_BAGS, "McDonalds Bag", -2001} // {ACCESSORY_LEO, "GunHolster1", 19773}, // {ACCESSORY_LEO, "ConstructionVest1", 19160}, // {ACCESSORY_LEO, "SWATHelmet1", 19141}, // {ACCESSORY_LEO, "policeHat01", 19521}, // {ACCESSORY_LEO, "PoliceHat2", 19162}, // {ACCESSORY_LEO, "PoliceCap2", 19099}, // {ACCESSORY_LEO, "PoliceCap3", 19100} //maticalfinishwhenback }; /*enum { FURNITURE_FRIDGE, FURNITURE_STOVE, FURNITURE_TRASHCAN, FURNITURE_BED, FURNITURE_CHAIR, FURNITURE_ARMCHAIR, FURNITURE_COUCH, FURNITURE_STOOL, FURNITURE_CURTAIN, FURNITURE_FLAG, FURNITURE_RUG, FURNITURE_STATUE, FURNITURE_TOWEL, FURNITURE_PAINTING, FURNITURE_POSTER, FURNITURE_PLANT, FURNITURE_SPORT, FURNITURE_TV, FURNITURE_GAMING, FURNITURE_MEDIA, FURNITURE_LAMP, FURNITURE_BATHROOM, FURNITURE_STORAGE, FURNITURE_DINETABLE, FURNITURE_COFFEETABLE, FURNITURE_COUNTER, FURNITURE_CABINET, FURNITURE_SHELF, FURNITURE_MESS, FURNITURE_MISC, FURNITURE_OFFICE, FURNITURE_PILLAR, FURNITURE_DOOR, FURNITURE_TOY, FURNITURE_GAMBLE, FURNITURE_TAG, FURNITURE_PARTY, FURNITURE_EFFECT, FURNITURE_WALLDOORWAY, FURNITURE_WALLWINDOW, FURNITURE_WALLSHORT, FURNITURE_WALLLONG, FURNITURE_GLASS };*/ /*new const g_FurnitureTypes[][] = { "Refridgerators", "Stoves", "Trashcans", "Beds", "Chairs", "Arm chairs", "Couches", "Stools", "Curtains", "Flags", "Rugs", "Statues", "Towels", "Paintings", "Posters", "Plants", "Sport equipment", "Televisions", "Gaming equipment", "Media", "Lamp", "Bathroom", "Storage", "Dining tables", "Coffee tables", "Counters", "Cabinets", "Shelves", "Mess", "Misc", "Office", "Pillars", "Doors", "Toys", "Gambling", "Gang tags", "Party", "Effects", "Wall (Doorway)", "Wall (Window)", "Wall (Short)", "Wall (Long)", "Glass" };*/ enum e_FurnitureList { e_ModelCategory, e_ModelName[32], e_ModelID, e_ModelPrice }; new const g_FurnitureList[][e_FurnitureList] = { {FURNITURE_KITCHEN, "CJ_KITCH1_FRIDGE", 2147, 2000}, {FURNITURE_KITCHEN, "CJ_KITCH1_COOKER", 2170, 1000}, {FURNITURE_KITCHEN, "CJ_KITCH1_SINK", 2336, 550}, {FURNITURE_KITCHEN, "CJ_KITCH1_WASHER", 2337, 400}, {FURNITURE_KITCHEN, "CJ_KITCH1_L", 2158, 550}, {FURNITURE_KITCHEN, "CJ_KITCH1_M", 2334, 550}, {FURNITURE_KITCHEN, "CJ_KITCH1_R", 2335, 550}, {FURNITURE_KITCHEN, "CJ_KITCH1_CORNER", 2338, 550}, {FURNITURE_KITCHEN, "CJ_KITCH2_FRIDGE", 2131, 450}, {FURNITURE_KITCHEN, "CJ_KITCH2_SINK", 2132, 550}, {FURNITURE_KITCHEN, "CJ_KITCH2_COOKER", 2339, 1000}, {FURNITURE_KITCHEN, "CJ_KITCH2_WASHER", 2340, 400}, {FURNITURE_KITCHEN, "CJ_KITCH2_L", 2141, 1000}, {FURNITURE_KITCHEN, "CJ_KITCH2_M", 2134, 1000}, {FURNITURE_KITCHEN, "CJ_KITCH2_R", 2133, 1000}, {FURNITURE_KITCHEN, "CJ_KITCH2_CORNER", 2341, 550}, {FURNITURE_KITCHEN, "CJ_K3_COOKER", 2135, 2000}, {FURNITURE_KITCHEN, "CJ_K3_SINK", 2136, 450}, {FURNITURE_KITCHEN, "CJ_K3_LOW_UNIT1", 2138, 1000}, {FURNITURE_KITCHEN, "CJ_K3_LOW_UNIT2", 2139, 1000}, {FURNITURE_KITCHEN, "CJ_K3_LOW_UNIT3", 2137, 1000}, {FURNITURE_KITCHEN, "CJ_K3_TALL_UNIT1", 2140, 400}, {FURNITURE_KITCHEN, "CJ_K3_C_UNIT", 2305, 400}, {FURNITURE_KITCHEN, "CJ_K3_WASH_MAC", 2303, 550}, {FURNITURE_KITCHEN, "CJ_K3_UNIT06", 2145, 450}, {FURNITURE_KITCHEN, "CJ_K1_FRIDGE_UNIT", 2127, 400}, {FURNITURE_KITCHEN, "CJ_K1_SINK", 2130, 1000}, {FURNITURE_KITCHEN, "CJ_K1_TALL_UNIT", 2128, 1000}, {FURNITURE_KITCHEN, "CJ_K1_LOW_UNIT", 2129, 550}, {FURNITURE_KITCHEN, "CJ_K1_LOW_CORNER", 2304, 550}, {FURNITURE_KITCHEN, "CJ_THIN_FRIGE", 1780, 550}, {FURNITURE_KITCHEN, "CJ_FF_CONTER_5", 2446, 600}, {FURNITURE_KITCHEN, "CJ_FF_CONTER_5c", 2447, 600}, {FURNITURE_KITCHEN, "CJ_FF_CONTER_5d", 2448, 600}, {FURNITURE_KITCHEN, "CJ_FF_CONTER_5e", 2449, 2000}, {FURNITURE_KITCHEN, "CJ_FF_CONTER_5b", 2450, 450}, {FURNITURE_KITCHEN, "CJ_FF_CONTER_8b", 2454, 400}, {FURNITURE_KITCHEN, "CJ_FF_CONTER_8c", 2457, 400}, {FURNITURE_KITCHEN, "CJ_FF_COFFEE", 2500, 250}, {FURNITURE_KITCHEN, "CJ_FF_FRYER", 2415, 550}, {FURNITURE_KITCHEN, "CJ_FF_COOKER", 2417, 550}, {FURNITURE_KITCHEN, "CJ_FF_MICROW", 2421, 250}, {FURNITURE_KITCHEN, "CJ_MICROWAVE1", 2149, 800}, {FURNITURE_KITCHEN, "CJ_FF_PIZZA_OVEN", 2426, 1500}, {FURNITURE_KITCHEN, "CJ_FF_FRIDGE2", 2452, 400}, {FURNITURE_KITCHEN, "CJ_FF_DISP", 2416, 9000}, {FURNITURE_KITCHEN, "CJ_FF_JUICE_L", 2427, 550}, {FURNITURE_KITCHEN, "CJ_FF_CUP_DISP", 2429, 2000}, {FURNITURE_KITCHEN, "CJ_OFF2_LIC_2_R", 2530, 550}, {FURNITURE_KITCHEN, "CJ_OFF2_LIC_1_R", 2532, 550}, {FURNITURE_KITCHEN, "MarcosFryingPan1", 19581, 500}, {FURNITURE_KITCHEN, "MarcosSteak1", 19582, 500}, {FURNITURE_KITCHEN, "MarcosKnife1", 19583, 500}, {FURNITURE_KITCHEN, "MarcosSaucepan1", 19584, 500}, {FURNITURE_KITCHEN, "MarcosPan1", 19585, 500}, {FURNITURE_KITCHEN, "MarcosSpatula1", 19586, 500}, {FURNITURE_TABLES, "parktable1", 1281, 600}, {FURNITURE_TABLES, "DYN_TABLE_1", 1433, 600}, {FURNITURE_TABLES, "DYN_TABLE_2", 1432, 7500}, {FURNITURE_TABLES, "craps_table", 1824, 9000}, {FURNITURE_TABLES, "wheel_table", 1896, 6500}, {FURNITURE_TABLES, "k_pooltablesm", 2964, 2000}, {FURNITURE_TABLES, "pokertable01", 19474, 400}, {FURNITURE_TABLES, "officedesk1l", 1998, 2000}, {FURNITURE_TABLES, "officedesk2", 1999, 400}, {FURNITURE_TABLES, "officedesk1", 2008, 4500}, {FURNITURE_TABLES, "officedesk2l", 2009, 2000}, {FURNITURE_TABLES, "MED_OFFICE_DESK_1", 2165, 400}, {FURNITURE_TABLES, "MED_OFFICE_DESK_2", 2166, 4500}, {FURNITURE_TABLES, "MED_OFFICE_DESK_3", 2173, 400}, {FURNITURE_TABLES, "MED_OFFICE2_DESK_1", 2172, 400}, {FURNITURE_TABLES, "MED_OFFICE3_DESK_1", 2169, 1000}, {FURNITURE_TABLES, "MED_OFFICE4_DESK_1", 2171, 4500}, {FURNITURE_TABLES, "MED_OFFICE4_DESK_2", 2174, 400}, {FURNITURE_TABLES, "MED_OFFICE4_DESK_3", 2175, 400}, {FURNITURE_TABLES, "MED_OFFICE5_DESK_3", 2180, 2500}, {FURNITURE_TABLES, "MED_OFFICE5_DESK_2", 2181, 550}, {FURNITURE_TABLES, "MED_OFFICE5_DESK_1", 2182, 400}, {FURNITURE_TABLES, "MED_OFFICE3_DESK_09", 2183, 6000}, {FURNITURE_TABLES, "MED_OFFICE6_DESK_2", 2184, 6500}, {FURNITURE_TABLES, "MED_OFFICE6_DESK_1", 2185, 2000}, {FURNITURE_TABLES, "MED_OFFICE2_DESK_2", 2193, 7000}, {FURNITURE_TABLES, "MED_OFFICE2_DESK_3", 2198, 2000}, {FURNITURE_TABLES, "MED_OFFICE8_DESK_1", 2205, 550}, {FURNITURE_TABLES, "MED_OFFICE8_DESK_02", 2206, 2500}, {FURNITURE_TABLES, "MED_OFFICE7_DESK_1", 2207, 550}, {FURNITURE_TABLES, "MED_OFFICE9_DESK_1", 2209, 5500}, {FURNITURE_TABLES, "MED_OFFICE4_DESK_4", 2308, 6000}, {FURNITURE_TABLES, "CJ_FF_WORKTOP", 2418, 400}, {FURNITURE_TABLES, "CJ_FF_WORKTOP_2", 2419, 400}, {FURNITURE_TABLES, "CJ_FF_WORKTOP_3", 2451, 2000}, {FURNITURE_TABLES, "CJ_DF_WORKTOP_2", 936, 1000}, {FURNITURE_TABLES, "CJ_DF_WORKTOP", 937, 400}, {FURNITURE_TABLES, "CJ_DF_WORKTOP_3", 941, 1000}, {FURNITURE_TABLES, "CJ_TV_TABLE2", 2311, 2000}, {FURNITURE_TABLES, "CJ_TV_TABLE1", 2313, 2500}, {FURNITURE_TABLES, "CJ_TV_TABLE3", 2314, 550}, {FURNITURE_TABLES, "CJ_TV_TABLE4", 2315, 550}, {FURNITURE_TABLES, "CJ_TV_TABLE5", 2319, 2500}, {FURNITURE_TABLES, "CJ_TV_TABLE6", 2321, 2000}, {FURNITURE_TABLES, "CJ_HIFI_TABLE", 2346, 2500}, {FURNITURE_TABLES, "Shop_set_1_Table", 2370, 1000}, {FURNITURE_TABLES, "POLCE_DESK1", 2605, 1500}, {FURNITURE_TABLES, "POLCE_DESK2", 2607, 2000}, {FURNITURE_TABLES, "CJ_PIZZA_TABLE", 2635, 2500}, {FURNITURE_TABLES, "CJ_PIZZA_TABLE2", 2637, 2500}, {FURNITURE_TABLES, "CJ_BURG_TABLE", 2644, 2500}, {FURNITURE_TABLES, "CJ_donut_TABLE", 2747, 2000}, {FURNITURE_TABLES, "CJ_CHICK_TABLE", 2762, 2000}, {FURNITURE_TABLES, "CJ_CHICK_TABLE_2", 2763, 2000}, {FURNITURE_TABLES, "CJ_PIZZA_TABLE03", 2764, 2500}, {FURNITURE_TABLES, "MED_DINNING_6", 2119, 2500}, {FURNITURE_TABLES, "SWANK_DINNING_6", 2118, 2000}, {FURNITURE_TABLES, "SWANK_DINNING_5", 2117, 2500}, {FURNITURE_TABLES, "LOW_DINNING_6", 2116, 1500}, {FURNITURE_TABLES, "LOW_DINNING_1", 2115, 1500}, {FURNITURE_TABLES, "castable1", 2802, 400}, {FURNITURE_TABLES, "a51_labtable1_", 3383, 2000}, {FURNITURE_CHAIRS, "Stonebench1", 1256, 2000}, {FURNITURE_CHAIRS, "parkbench1", 1280, 2500}, {FURNITURE_CHAIRS, "CJ_BLOCKER_BENCH", 1368, 2500}, {FURNITURE_CHAIRS, "swivelchair_B", 1663, 1500}, {FURNITURE_CHAIRS, "swivelchair_A", 1671, 1500}, {FURNITURE_CHAIRS, "kb_swivelchair1", 1714, 1500}, {FURNITURE_CHAIRS, "kb_swivelchair2", 1715, 1500}, {FURNITURE_CHAIRS, "kb_slot_stool", 1716, 1000}, {FURNITURE_CHAIRS, "est_chair1", 1721, 1000}, {FURNITURE_CHAIRS, "kb_chair03", 1704, 2000}, {FURNITURE_CHAIRS, "kb_chair04", 1705, 2000}, {FURNITURE_CHAIRS, "kb_chair02", 1708, 2000}, {FURNITURE_CHAIRS, "kb_chair01", 1711, 2000}, {FURNITURE_CHAIRS, "mrk_seating1", 1723, 550}, {FURNITURE_CHAIRS, "mrk_seating1b", 1724, 200}, {FURNITURE_CHAIRS, "mrk_seating2", 1726, 550}, {FURNITURE_CHAIRS, "mrk_seating2b", 1727, 2000}, {FURNITURE_CHAIRS, "mrk_seating3", 1728, 1000}, {FURNITURE_CHAIRS, "mrk_seating3b", 1729, 2500}, {FURNITURE_CHAIRS, "CJ_EASYCHAIR1", 1735, 2000}, {FURNITURE_CHAIRS, "SWANK_DIN_CHAIR_5", 1739, 1000}, {FURNITURE_CHAIRS, "SWANK_1_FootStool", 1746, 500}, {FURNITURE_CHAIRS, "CJ_BARSTOOL", 1805, 1000}, {FURNITURE_CHAIRS, "MED_OFFICE_CHAIR", 1806, 2500}, {FURNITURE_CHAIRS, "CJ_FOLDCHAIR", 1810, 500}, {FURNITURE_CHAIRS, "MED_DIN_CHAIR_5", 1811, 1500}, {FURNITURE_CHAIRS, "SWANK_DIN_CHAIR_2", 2079, 1000}, {FURNITURE_CHAIRS, "MED_DIN_CHAIR_4", 2120, 1500}, {FURNITURE_CHAIRS, "LOW_DIN_CHAIR_2", 2121, 500}, {FURNITURE_CHAIRS, "SWANK_DIN_CHAIR_4", 2123, 1000}, {FURNITURE_CHAIRS, "SWANK_DIN_CHAIR_1", 2124, 1500}, {FURNITURE_CHAIRS, "MED_DIN_CHAIR_1", 2125, 500}, {FURNITURE_CHAIRS, "MED_OFFICE_CHAIR2", 2309, 1000}, {FURNITURE_CHAIRS, "CJ_PIZZA_CHAIR2", 2638, 400}, {FURNITURE_CHAIRS, "CJ_PIZZA_CHAIR3", 2639, 550}, {FURNITURE_CHAIRS, "LEE_stripCHAIR2", 2776, 1000}, {FURNITURE_CHAIRS, "CJ_BURG_CHAIR", 2788, 1000}, {FURNITURE_CHAIRS, "SWK_COUCH_1", 2290, 400}, {FURNITURE_CHAIRS, "LOW_COUCH_3", 1768, 400}, {FURNITURE_CHAIRS, "MED_COUCH_1", 1766, 400}, {FURNITURE_CHAIRS, "LOW_COUCH_2", 1764, 400}, {FURNITURE_CHAIRS, "LOW_COUCH_1", 1763, 400}, {FURNITURE_CHAIRS, "SWANK_COUCH_2", 1761, 400}, {FURNITURE_CHAIRS, "MED_COUCH_2", 1760, 400}, {FURNITURE_CHAIRS, "LOW_COUCH_5", 1757, 400}, {FURNITURE_CHAIRS, "LOW_COUCH_4", 1756, 400}, {FURNITURE_CHAIRS, "SWANK_COUCH_1", 1753, 2000}, {FURNITURE_CHAIRS, "kb_couch04", 1713, 400}, {FURNITURE_CHAIRS, "kb_couch05", 1712, 400}, {FURNITURE_CHAIRS, "kb_couch07", 1710, 6000}, {FURNITURE_CHAIRS, "kb_couch08", 1709, 8000}, {FURNITURE_CHAIRS, "kb_couch01", 1707, 400}, {FURNITURE_CHAIRS, "kb_couch03", 1706, 400}, {FURNITURE_CHAIRS, "kb_couch02", 1703, 400}, {FURNITURE_CHAIRS, "kb_couch06", 1702, 400}, {FURNITURE_SHELVES, "CJ_BEDROOM1", 2323, 2000}, {FURNITURE_SHELVES, "CJ_BEDROOM1_W", 2330, 6000}, {FURNITURE_SHELVES, "mrk_wrobe_tmp", 2025, 5500}, {FURNITURE_SHELVES, "MED_SHELF", 1744, 1500}, {FURNITURE_SHELVES, "DYN_CUPBOARD", 1417, 1000}, {FURNITURE_SHELVES, "MED_OFFICE_UNIT_4", 2161, 400}, {FURNITURE_SHELVES, "MED_OFFICE_UNIT_1", 2162, 400}, {FURNITURE_SHELVES, "MED_OFFICE_UNIT_2", 2163, 4500}, {FURNITURE_SHELVES, "MED_OFFICE_UNIT_5", 2164, 400}, {FURNITURE_SHELVES, "MED_OFFICE_UNIT_7", 2167, 400}, {FURNITURE_SHELVES, "MED_OFFICE6_MC_1", 2199, 2500}, {FURNITURE_SHELVES, "CJ_HOBBY_SHELF", 2462, 550}, {FURNITURE_SHELVES, "CJ_HOBBY_SHELF_2", 2463, 550}, {FURNITURE_SHELVES, "CJ_HOBBY_SHELF_3", 2475, 1000}, {FURNITURE_SHELVES, "CJ_HOBBY_SHELF_4", 2482, 400}, {FURNITURE_SHELVES, "CJ_HOBBY_SHELF_5", 2502, 550}, {FURNITURE_SHELVES, "CJ_HOBBY_SHELF_6", 2509, 550}, {FURNITURE_SHELVES, "Med_BOOKSHELF", 1742, 2500}, {FURNITURE_SHELVES, "CJ_M_FILEING1", 2065, 1000}, {FURNITURE_SHELVES, "CJ_M_FILEING2", 2066, 1000}, {FURNITURE_SHELVES, "CJ_M_FILEING3", 2067, 1000}, {FURNITURE_BATHROOM, "CJ_TOILET_BS", 2738, 2000}, {FURNITURE_BATHROOM, "CJ_TOILET1", 2514, 2000}, {FURNITURE_BATHROOM, "CJ_TOILET2", 2521, 2500}, {FURNITURE_BATHROOM, "CJ_TOILET3", 2528, 2000}, {FURNITURE_BATHROOM, "CJ_TOILET4", 2525, 550}, {FURNITURE_BATHROOM, "CJ_SHOWER1", 2517, 1000}, {FURNITURE_BATHROOM, "CJ_SHOWER2", 2520, 550}, {FURNITURE_BATHROOM, "CJ_SHOWER4", 2527, 550}, {FURNITURE_BATHROOM, "CJ_BATH1", 2516, 550}, {FURNITURE_BATHROOM, "CJ_BATH2", 2519, 2500}, {FURNITURE_BATHROOM, "CJ_BATH3", 2522, 400}, {FURNITURE_BATHROOM, "CJ_BATH4", 2526, 550}, {FURNITURE_BATHROOM, "CJ_BATH5", 2097, 2000}, {FURNITURE_BATHROOM, "CJ_B_SINK1", 2739, 2000}, {FURNITURE_BATHROOM, "CJ_B_SINK2", 2518, 2000}, {FURNITURE_BATHROOM, "CJ_B_SINK3", 2523, 550}, {FURNITURE_BATHROOM, "CJ_B_SINK4", 2524, 2500}, {FURNITURE_BEDROOM, "kb_bed_test1", 1700, 550}, {FURNITURE_BEDROOM, "kb_bed_test2", 1701, 550}, {FURNITURE_BEDROOM, "MED_BED_3", 1745, 550}, {FURNITURE_BEDROOM, "LOW_BED_2", 1793, 550}, {FURNITURE_BEDROOM, "LOW_BED_3", 1794, 550}, {FURNITURE_BEDROOM, "SWANK_BED_2", 1795, 550}, {FURNITURE_BEDROOM, "LOW_BED_4", 1796, 550}, {FURNITURE_BEDROOM, "SWANK_BED_3", 1797, 550}, {FURNITURE_BEDROOM, "SWANK_BED_1", 1798, 550}, {FURNITURE_BEDROOM, "MED_BED_4", 1799, 550}, {FURNITURE_BEDROOM, "LOW_BED_1", 1800, 550}, {FURNITURE_BEDROOM, "SWANK_BED_4", 1801, 550}, {FURNITURE_BEDROOM, "MED_BED_2", 1802, 550}, {FURNITURE_BEDROOM, "LOW_BED_5", 1812, 550}, {FURNITURE_BEDROOM, "SWANK_BED_5", 2090, 550}, {FURNITURE_BEDROOM, "SWANK_BED_7", 2298, 550}, {FURNITURE_BEDROOM, "SWANK_BED_6", 2299, 550}, {FURNITURE_BEDROOM, "MED_BED_8", 2300, 550}, {FURNITURE_BEDROOM, "MED_BED_9", 2301, 550}, {FURNITURE_BEDROOM, "LOW_BED_06", 2302, 550}, {FURNITURE_CABINETS, "SWANK_CABINET_3", 1730, 550}, {FURNITURE_CABINETS, "LOW_CABINET_3", 1740, 1000}, {FURNITURE_CABINETS, "LOW_CABINET_1", 1741, 1000}, {FURNITURE_CABINETS, "MED_CABINET_3", 1743, 550}, {FURNITURE_CABINETS, "SWANK_CABINET_1", 2078, 550}, {FURNITURE_CABINETS, "MED_CABINET_1", 2084, 2000}, {FURNITURE_CABINETS, "MED_CABINET_2", 2087, 2500}, {FURNITURE_CABINETS, "LOW_CABINET_4", 2088, 550}, {FURNITURE_CABINETS, "SWANK_CABINET_2", 2089, 400}, {FURNITURE_CABINETS, "SWANK_CABINET_4", 2094, 1000}, {FURNITURE_CABINETS, "LOW_CABINET_2", 2095, 550}, {FURNITURE_CABINETS, "MED_OFFICE8_CABINET", 2204, 1000}, {FURNITURE_CABINETS, "SWANK_CABINET_4D", 2306, 550}, {FURNITURE_CABINETS, "SWANK_CABINET_4b", 2307, 550}, {FURNITURE_CABINETS, "LOW_CABINET_1_S", 2328, 550}, {FURNITURE_CABINETS, "LOW_CABINET_1_L", 2329, 400}, {FURNITURE_CABINETS, "ZEROWARDROBE", 14556, 2000}, {FURNITURE_ELECTRIC, "LCDTVBig1", 19786, 10000}, {FURNITURE_ELECTRIC, "LCDTV1", 19787, 8000}, {FURNITURE_ELECTRIC, "Telephone1", 19807, 500}, {FURNITURE_ELECTRIC, "Keyboard1", 19808, 500}, {FURNITURE_ELECTRIC, "TV_WARD_Low", 2093, 6000}, {FURNITURE_ELECTRIC, "TV_UNIT_1", 2296, 5500}, {FURNITURE_ELECTRIC, "TV_UNIT_1", 2297, 2000}, {FURNITURE_ELECTRIC, "tv_stand_driv", 14532, 550}, {FURNITURE_ELECTRIC, "DYN_TV", 1429, 550}, {FURNITURE_ELECTRIC, "LOW_TV_2", 1747, 550}, {FURNITURE_ELECTRIC, "LOW_TV_3", 1748, 550}, {FURNITURE_ELECTRIC, "MED_TV_3", 1749, 550}, {FURNITURE_ELECTRIC, "MED_TV_2", 1750, 550}, {FURNITURE_ELECTRIC, "MED_TV_4", 1751, 550}, {FURNITURE_ELECTRIC, "SWANK_TV_3", 1752, 550}, {FURNITURE_ELECTRIC, "SWANK_TV_4", 1786, 550}, {FURNITURE_ELECTRIC, "CJ_Sphere_TV", 2224, 550}, {FURNITURE_ELECTRIC, "PHOTOCOPIER_1", 2186, 2000}, {FURNITURE_ELECTRIC, "PHOTOCOPIER_2", 2202, 4500}, {FURNITURE_ELECTRIC, "DYN_FF_TILL", 1514, 400}, {FURNITURE_ELECTRIC, "CJ_FF_TILL", 2422, 4500}, {FURNITURE_ELECTRIC, "PC_1", 2190, 550}, {FURNITURE_ELECTRIC, "CJ_WATERCOOLER2", 1808, 400}, {FURNITURE_ELECTRIC, "water_coolnu", 2002, 1000}, {FURNITURE_ELECTRIC, "washer", 1208, 550}, {FURNITURE_ELECTRIC, "DYN_BAR_B_Q", 1481, 400}, {FURNITURE_ELECTRIC, "gym_treadmill", 2627, 12000}, {FURNITURE_ELECTRIC, "gym_bench2", 2628, 400}, {FURNITURE_ELECTRIC, "gym_bench1", 2629, 400}, {FURNITURE_ELECTRIC, "gym_bike", 2630, 400}, {FURNITURE_ELECTRIC, "snesish", 1718, 2000}, {FURNITURE_ELECTRIC, "LOW_CONSOLE", 1719, 2000}, {FURNITURE_ELECTRIC, "SWANK_CONSOLE", 2028, 550}, {FURNITURE_ELECTRIC, "MED_VIDEO_2", 1782, 1000}, {FURNITURE_ELECTRIC, "SWANK_VIDEO_2", 1783, 1000}, {FURNITURE_ELECTRIC, "LOW_VIDEO_1", 1785, 1000}, {FURNITURE_ELECTRIC, "SWANK_VIDEO_1", 1788, 1000}, {FURNITURE_ELECTRIC, "SWANK_VIDEO_3", 1790, 1000}, {FURNITURE_ELECTRIC, "LOW_HI_FI_2", 2102, 550}, {FURNITURE_ELECTRIC, "LOW_HI_FI_1", 2103, 550}, {FURNITURE_ELECTRIC, "LOW_HI_FI_3", 2226, 2500}, {FURNITURE_ELECTRIC, "MED_HI_FI_1", 2099, 400}, {FURNITURE_ELECTRIC, "MED_HI_FI_2", 2100, 400}, {FURNITURE_ELECTRIC, "MED_HI_FI_3", 2101, 400}, {FURNITURE_ELECTRIC, "SWANK_SPEAKER", 2229, 4500}, {FURNITURE_ELECTRIC, "SWANK_SPEAKER_2", 2230, 400}, {FURNITURE_ELECTRIC, "SWANK_SPEAKER_3", 2231, 400}, {FURNITURE_ELECTRIC, "MED_SPEAKER_4", 2232, 400}, {FURNITURE_PLANTS, "veg_palmkb1", 625, 2000}, {FURNITURE_PLANTS, "veg_palmkb2", 626, 2000}, {FURNITURE_PLANTS, "veg_palmkb3", 627, 2000}, {FURNITURE_PLANTS, "veg_palmkb4", 628, 2000}, {FURNITURE_PLANTS, "veg_palmkb8", 630, 2000}, {FURNITURE_PLANTS, "veg_palmkb9", 631, 2000}, {FURNITURE_PLANTS, "veg_palmkb7", 632, 2000}, {FURNITURE_PLANTS, "veg_palmkb10", 633, 2000}, {FURNITURE_PLANTS, "kb_planter+bush", 638, 2000}, {FURNITURE_PLANTS, "pot_02", 644, 2000}, {FURNITURE_PLANTS, "veg_palmkb14", 646, 2000}, {FURNITURE_PLANTS, "Plant_Pot_10", 948, 2000}, {FURNITURE_PLANTS, "Plant_Pot_4", 949, 2000}, {FURNITURE_PLANTS, "Plant_Pot_12", 950, 2000}, {FURNITURE_PLANTS, "CJ_BUSH_PROP3", 1360, 2000}, {FURNITURE_PLANTS, "CJ_BUSH_PROP2", 1361, 2000}, {FURNITURE_PLANTS, "CJ_BUSH_PROP", 1364, 2000}, {FURNITURE_PLANTS, "nu_plant_ofc", 2001, 200}, {FURNITURE_PLANTS, "nu_plant3_ofc", 2010, 200}, {FURNITURE_PLANTS, "nu_plant2_ofc", 2011, 200}, {FURNITURE_PLANTS, "Plant_Pot_2", 2194, 200}, {FURNITURE_PLANTS, "Plant_Pot_3", 2195, 200}, {FURNITURE_PLANTS, "Plant_Pot_1", 2203, 100}, {FURNITURE_PLANTS, "Plant_Pot_8", 2240, 500}, {FURNITURE_PLANTS, "Plant_Pot_5", 2241, 200}, {FURNITURE_PLANTS, "Plant_Pot_7", 2242, 200}, {FURNITURE_PLANTS, "Plant_Pot_9", 2244, 200}, {FURNITURE_PLANTS, "Plant_Pot_11", 2245, 200}, {FURNITURE_PLANTS, "Plant_Pot_14", 2246, 200}, {FURNITURE_PLANTS, "Plant_Pot_16", 2248, 200}, {FURNITURE_PLANTS, "Plant_Pot_21", 2252, 200}, {FURNITURE_PLANTS, "Plant_Pot_22", 2253, 2000}, {FURNITURE_PLANTS, "GB_romanpot01", 2811, 2000}, {FURNITURE_PLANTS, "sfx_plant03", 3802, 2000}, {FURNITURE_PLANTS, "sfx_winplant07", 3806, 2000}, {FURNITURE_PLANTS, "sfx_plant04", 3810, 2000}, {FURNITURE_TRASH, "CJ_Dump1_LOW01", 1430, 1500}, {FURNITURE_TRASH, "DYN_DUMPSTER", 1415, 1000}, {FURNITURE_TRASH, "CJ_HIPPO_BIN", 1371, 2000}, {FURNITURE_TRASH, "CJ_BIN1", 1359, 1500}, {FURNITURE_TRASH, "CJ_WASTEBIN", 1347, 500}, {FURNITURE_TRASH, "BinNt09_LA", 1339, 1500}, {FURNITURE_TRASH, "BinNt07_LA", 1337, 1500}, {FURNITURE_TRASH, "bin1", 1300, 1500}, {FURNITURE_TRASH, "wastebin", 1235, 1000}, {FURNITURE_TRASH, "BinNt14_LA", 1330, 1000}, {FURNITURE_TRASH, "BinNt13_LA", 1329, 1000}, {FURNITURE_TRASH, "BinNt10_LA", 1328, 1500}, {FURNITURE_TRASH, "dump1", 1227, 400}, {FURNITURE_TRASH, "BinNt06_LA", 1336, 2000}, {FURNITURE_TRASH, "BinNt04_LA", 1334, 2000}, {FURNITURE_TRASH, "BinNt03_LA", 1333, 2000}, {FURNITURE_TRASH, "TrashcanChicken", 2770, 2000}, {FURNITURE_TRASH, "CJ_FF_BUCKET", 2420, 2000}, {FURNITURE_TRASH, "gunbox", 1271, 400}, {FURNITURE_TRASH, "k_smashboxes", 2971, 550}, {FURNITURE_TRASH, "temp_cardbox", 2900, 500}, {FURNITURE_TRASH, "cardboardbox4", 1221, 500}, {FURNITURE_TRASH, "cardboardbox2", 1220, 500}, {FURNITURE_DOORS, "GenDoorINT04Static", 19802, 1000}, {FURNITURE_DOORS, "Gen_doorEXT03", 1498, 1600}, {FURNITURE_DOORS, "chinaTgate", 2930, 1400}, {FURNITURE_DOORS, "kmb_petroldoor", 2911, 1600}, {FURNITURE_DOORS, "ad_flatdoor", 3061, 500}, {FURNITURE_DOORS, "Gen_wardrobe", 1567, 600}, {FURNITURE_DOORS, "Gen_doorINT01", 1491, 400}, {FURNITURE_DOORS, "Gen_doorINT02", 1492, 400}, {FURNITURE_DOORS, "Gen_doorSHOP01", 1493, 400}, {FURNITURE_DOORS, "Gen_doorINT03", 1494, 400}, {FURNITURE_DOORS, "Gen_doorEXT01", 1495, 400}, {FURNITURE_DOORS, "Gen_doorSHOP02", 1496, 400}, {FURNITURE_DOORS, "Gen_doorEXT02", 1497, 400}, {FURNITURE_DOORS, "Gen_doorEXT03", 1498, 400}, {FURNITURE_DOORS, "Gen_doorINT05", 1499, 400}, {FURNITURE_DOORS, "Gen_doorEXT05", 1500, 400}, {FURNITURE_DOORS, "Gen_doorEXT04", 1501, 400}, {FURNITURE_DOORS, "Gen_doorINT04", 1502, 400}, {FURNITURE_DOORS, "Gen_doorEXT06", 1504, 400}, {FURNITURE_DOORS, "Gen_doorEXT07", 1505, 400}, {FURNITURE_DOORS, "Gen_doorEXT08", 1506, 400}, {FURNITURE_DOORS, "Gen_doorEXT09", 1507, 400}, {FURNITURE_DOORS, "Gen_doorEXT10", 1523, 400}, {FURNITURE_DOORS, "vgsEspdr01", 8957, 2500}, {FURNITURE_DOORS, "vgwspry1", 7891, 2000}, {FURNITURE_DOORS, "imy_la_door", 3109, 400}, {FURNITURE_DOORS, "ab_casdorLok", 3089, 3000}, {FURNITURE_DOORS, "ad_flatdoor", 3061, 550}, {FURNITURE_DOORS, "warehouse_door2b", 3037, 2000}, {FURNITURE_DOORS, "cr1_door", 3029, 550}, {FURNITURE_DOORS, "dts_bbdoor", 2970, 550}, {FURNITURE_DOORS, "kmb_lockeddoor", 2949, 400}, {FURNITURE_DOORS, "cr_door_02", 2948, 400}, {FURNITURE_DOORS, "cr_door_01", 2947, 400}, {FURNITURE_DOORS, "cr_door_03", 2946, 400}, {FURNITURE_DOORS, "freight_SFW_door", 2944, 550}, {FURNITURE_DOORS, "newtowerdoor1", 977, 550}, {FURNITURE_CARPETS, "man_sdr_rug", 1828, 1000}, {FURNITURE_CARPETS, "gb_livingrug01", 2815, 1000}, {FURNITURE_CARPETS, "gb_bedrug01", 2817, 1000}, {FURNITURE_CARPETS, "gb_bedrug02", 2818, 1000}, {FURNITURE_CARPETS, "gb_livingrug02", 2833, 1000}, {FURNITURE_CARPETS, "gb_livingrug03", 2834, 1000}, {FURNITURE_CARPETS, "gb_livingrug04", 2835, 1000}, {FURNITURE_CARPETS, "gb_livingrug05", 2836, 1000}, {FURNITURE_CARPETS, "gb_bedrug03", 2841, 1000}, {FURNITURE_CARPETS, "gb_bedrug04", 2842, 1000}, {FURNITURE_CARPETS, "gb_bedrug05", 2847, 1000}, {FURNITURE_CARPETS, "gym_mat1", 2631, 1000}, {FURNITURE_CARPETS, "gym_mat02", 2632, 1000}, {FURNITURE_FRAMES, "SAMPPicture1", 19172, 500}, {FURNITURE_FRAMES, "Frame_2", 2289, 1000}, {FURNITURE_FRAMES, "Frame_3", 2288, 1000}, {FURNITURE_FRAMES, "Frame_4", 2287, 1000}, {FURNITURE_FRAMES, "Frame_5", 2286, 1000}, {FURNITURE_FRAMES, "Frame_1", 2285, 1000}, {FURNITURE_FRAMES, "Frame_6", 2284, 1000}, {FURNITURE_FRAMES, "Frame_Thick_3", 2283, 100}, {FURNITURE_FRAMES, "Frame_Thick_4", 2282, 100}, {FURNITURE_FRAMES, "Frame_Thick_5", 2281, 100}, {FURNITURE_FRAMES, "Frame_Thick_1", 2280, 100}, {FURNITURE_FRAMES, "Frame_Thick_6", 2279, 100}, {FURNITURE_FRAMES, "Frame_Thick_2", 2278, 100}, {FURNITURE_FRAMES, "Frame_Fab_2", 2277, 100}, {FURNITURE_FRAMES, "Frame_Fab_3", 2276, 100}, {FURNITURE_FRAMES, "Frame_Fab_4", 2275, 100}, {FURNITURE_FRAMES, "Frame_Fab_6", 2274, 100}, {FURNITURE_FRAMES, "Frame_Fab_1", 2273, 100}, {FURNITURE_FRAMES, "Frame_Fab_5", 2272, 100}, {FURNITURE_FRAMES, "Frame_WOOD_1", 2271, 100}, {FURNITURE_FRAMES, "Frame_WOOD_6", 2270, 100}, {FURNITURE_FRAMES, "Frame_WOOD_4", 2269, 100}, {FURNITURE_FRAMES, "Frame_WOOD_2", 2268, 100}, {FURNITURE_FRAMES, "Frame_WOOD_3", 2267, 100}, {FURNITURE_FRAMES, "Frame_WOOD_5", 2266, 100}, {FURNITURE_FRAMES, "Frame_SLIM_6", 2265, 100}, {FURNITURE_FRAMES, "Frame_SLIM_5", 2264, 100}, {FURNITURE_FRAMES, "Frame_SLIM_4", 2263, 100}, {FURNITURE_FRAMES, "Frame_SLIM_3", 2262, 100}, {FURNITURE_FRAMES, "Frame_SLIM_2", 2261, 100}, {FURNITURE_FRAMES, "Frame_SLIM_1", 2260, 100}, {FURNITURE_FRAMES, "Frame_Clip_6", 2259, 100}, {FURNITURE_FRAMES, "Frame_Clip_5", 2258, 100}, {FURNITURE_FRAMES, "Frame_Clip_4", 2257, 100}, {FURNITURE_FRAMES, "Frame_Clip_3", 2256, 100}, {FURNITURE_FRAMES, "Frame_Clip_2", 2255, 100}, {FURNITURE_FRAMES, "Frame_Clip_1", 2254, 100}, //Spraytag {FURNITURE_MISC, "Tag [GSF]", 18659, 100}, {FURNITURE_MISC, "Tag [SBF]", 18660, 100}, {FURNITURE_MISC, "Tag [VLA]", 18661, 100}, {FURNITURE_MISC, "Tag [KTB]", 18662, 100}, {FURNITURE_MISC, "Tag [SFR]", 18663, 100}, {FURNITURE_MISC, "Tag [TBD]", 18664, 100}, {FURNITURE_MISC, "Tag [LSV]", 18665, 100}, {FURNITURE_MISC, "Tag [FYB]", 18666, 100}, {FURNITURE_MISC, "Tag [RHB]", 18667, 100}, // {FURNITURE_MISC, "Wine Glass", 19818, 300}, {FURNITURE_MISC, "Cocktail Glass", 19819, 300}, {FURNITURE_MISC, "Propbeer Glass", 1666, 300}, {FURNITURE_MISC, "Big Cock", 19823, 300}, {FURNITURE_MISC, "Red rum", 19820, 300}, {FURNITURE_MISC, "Vodka", 19821, 300}, {FURNITURE_MISC, "X.O", 19824, 300}, {FURNITURE_MISC, "Damaged crate", 924, 300}, {FURNITURE_MISC, "Top crate", 1355, 300}, {FURNITURE_MISC, "Empty crate", 19639, 300}, {FURNITURE_MISC, "Paper Messes", 2674, 300}, {FURNITURE_MISC, "Fisinh Rod", 18632, 600}, {FURNITURE_MISC, "Rope1", 19087, 100}, {FURNITURE_MISC, "CJ_FLAG1", 2047, 100}, {FURNITURE_MISC, "kmb_packet", 2891, 500}, {FURNITURE_MISC, "craigpackage", 1279, 1000}, {FURNITURE_MISC, "drug_white", 1575, 500}, {FURNITURE_MISC, "drug_orange", 1576, 500}, {FURNITURE_MISC, "drug_yellow", 1577, 500}, {FURNITURE_MISC, "drug_green", 1578, 500}, {FURNITURE_MISC, "drug_blue", 1579, 500}, {FURNITURE_MISC, "drug_red", 1580, 500}, {FURNITURE_MISC, "kmb_marijuana", 2901, 2000}, {FURNITURE_MISC, "grassplant", 3409, 1000}, {FURNITURE_MISC, "DYN_ASHTRY", 1510, 500}, {FURNITURE_MISC, "propashtray1", 1665, 500}, {FURNITURE_MISC, "WoodenStage1", 19608, 2000}, {FURNITURE_MISC, "DrumKit1", 19609, 1000}, {FURNITURE_MISC, "Microphone1", 19610, 1000}, {FURNITURE_MISC, "MicrophoneStand1", 19611, 2000}, {FURNITURE_MISC, "GuitarAmp1", 19612, 1000}, {FURNITURE_MISC, "GuitarAmp2", 19613, 2000}, {FURNITURE_MISC, "GuitarAmp3", 19614, 2000}, {FURNITURE_MISC, "GuitarAmp4", 19615, 1000}, {FURNITURE_MISC, "GuitarAmp5", 19616, 1000}, {FURNITURE_MISC, "GoldRecord1", 19617, 550}, {FURNITURE_MISC, "CJ_Stags_head", 1736, 2000}, {FURNITURE_MISC, "CJ_Radiator_old", 1738, 1000}, {FURNITURE_MISC, "CJ_MOP_PAIL", 1778, 1000}, {FURNITURE_MISC, "CJ_chambermaid", 1789, 2000}, {FURNITURE_MISC, "cj_bucket", 2713, 1000}, {FURNITURE_MISC, "des_blackbags", 16444, 2000}, {FURNITURE_MISC, "nf_blackboard", 3077, 2000}, {FURNITURE_MISC, "kmb_dumbbell_L", 3072, 1000}, {FURNITURE_MISC, "kmb_dumbbell_R", 3071, 1000}, {FURNITURE_MISC, "portaloo", 2984, 550}, {FURNITURE_MISC, "CJ_TARGET6", 2056, 500}, {FURNITURE_MISC, "CJ_TARGET5", 2055, 500}, {FURNITURE_MISC, "CJ_TARGET4", 2051, 500}, {FURNITURE_MISC, "CJ_TARGET2", 2050, 500}, {FURNITURE_MISC, "CJ_TARGET1", 2049, 500}, {FURNITURE_MISC, "hos_trolley", 1997, 1000}, {FURNITURE_MISC, "shop_sec_cam", 1886, 1000}, {FURNITURE_MISC, "nt_firehose_01", 1613, 1000}, {FURNITURE_MISC, "lsmall_window01", 19325, 2000}, {FURNITURE_MISC, "window001", 19466, 550}, {FURNITURE_MISC, "wglasssmash", 1649, 1000}, {FURNITURE_MISC, "Orange1", 19574, 500}, {FURNITURE_MISC, "Apple1", 19575, 500}, {FURNITURE_MISC, "Apple2", 19576, 500}, {FURNITURE_MISC, "Tomato1", 19577, 500}, {FURNITURE_MISC, "Banana1", 19578, 500}, {FURNITURE_MISC, "gb_bedclothes01", 2819, 100}, {FURNITURE_MISC, "gb_bedclothes02", 2843, 100}, {FURNITURE_MISC, "gb_bedclothes03", 2844, 100}, {FURNITURE_MISC, "gb_bedclothes04", 2845, 100}, {FURNITURE_MISC, "gb_bedclothes05", 2846, 100}, {FURNITURE_MISC, "GB_platedirty01", 2812, 100}, {FURNITURE_MISC, "GB_kitchplatecln01", 2822, 100}, {FURNITURE_MISC, "GB_platedirty02", 2829, 100}, {FURNITURE_MISC, "GB_platedirty04", 2830, 100}, {FURNITURE_MISC, "GB_platedirty03", 2831, 100}, {FURNITURE_MISC, "GB_platedirty05", 2832, 100}, {FURNITURE_MISC, "GB_kitchplatecln02", 2862, 100}, {FURNITURE_MISC, "GB_kitchplatecln03", 2863, 100}, {FURNITURE_MISC, "GB_kitchplatecln04", 2864, 100}, {FURNITURE_MISC, "GB_kitchplatecln05", 2865, 100}, {FURNITURE_MISC, "Angel", 3935, 5000}, {FURNITURE_MISC, "Carter Statue", 14467, 5000}, {FURNITURE_MISC, "Broken Statue", 2743, 5000}, {FURNITURE_MISC, "Rocking Horse", 11733, 5000}, {FURNITURE_MISC, "Clothes Hanger", 2373, 500}, {FURNITURE_WALL, "wall016", 19368, 450}, {FURNITURE_WALL, "wall087", 19447, 550}, {FURNITURE_WALL, "wall015", 19367, 450}, {FURNITURE_WALL, "wall014", 19366, 550}, {FURNITURE_WALL, "wall018", 19370, 450}, {FURNITURE_WALL, "wall010", 19362, 550}, {FURNITURE_WALL, "wall035", 19387, 450}, {FURNITURE_WALL, "wall059", 19411, 550}, {FURNITURE_WALL, "wall017", 19369, 450}, {FURNITURE_WALL, "wall073", 19433, 550}, {FURNITURE_WALL, "wall077", 19437, 450}, {FURNITURE_WALL, "wall040", 19392, 550}, {FURNITURE_WALL, "wall096", 19456, 450}, {FURNITURE_WALL, "wall043", 19395, 550}, {FURNITURE_WALL, "wall037", 19389, 450}, {FURNITURE_WALL, "wall038", 19390, 550}, {FURNITURE_WALL, "wall039", 19391, 450}, {FURNITURE_WALL, "wall041", 19393, 550}, {FURNITURE_WALL, "wall042", 19394, 450}, {FURNITURE_WALL, "wall042", 19397, 550}, {FURNITURE_WALL, "wall044", 19396, 450}, {FURNITURE_WALL, "wall102", 19462, 550}, {FURNITURE_WALL, "wall046", 19398, 450}, {FURNITURE_WALL, "wall024", 19376, 550}, {FURNITURE_WALL, "wall105", 19465, 450}, {FURNITURE_WALL, "wall020", 19372, 550}, {FURNITURE_WALL, "wall104", 19464, 450}, {FURNITURE_SPECIAL, "Chemistry Dryer", 3287, 1200}, {FURNITURE_SPECIAL, "Centrifuge", 19830, 3500}, {FURNITURE_SPECIAL, "Mixer", 19585, 2500}, {FURNITURE_SPECIAL, "Reactor", 2360, 2000}, {FURNITURE_SPECIAL, "Dehydrater", 2002, 900}, {FURNITURE_SPECIAL, "Pickup Pump", 1244, 6000}, {FURNITURE_SPECIAL, "Pickup Pump (Small)", 1008, 1000}, {FURNITURE_SPECIAL, "Bike Pedal", 2798, 500}, {FURNITURE_SPECIAL, "Long Exhaust", 1114, 700}, {FURNITURE_EFFECT, "Smoke Flare", 18728, 3000}, {FURNITURE_EFFECT, "Puke", 18722, 3000}, {FURNITURE_EFFECT, "Molotov Fire", 18701, 3000}, {FURNITURE_EFFECT, "Coke Trail", 18676, 3000}, {FURNITURE_EFFECT, "Cam Flash (Once)", 18670, 3000}, {FURNITURE_EFFECT, "Flasher", 345, 3000} }; enum e_WeaponInfo { e_WeaponSlot, e_WeaponClip, e_WeaponModel }; new const g_WeaponInfo[47][e_WeaponInfo] = { {0, 0, 0}, {0, 0, 331}, {1, 0, 333}, {1, 0, 334}, {1, 0, 335}, {1, 0, 336}, {1, 0, 337}, {1, 0, 338}, {1, 0, 339}, {1, 0, 341}, {10, 0, 321}, {10, 0, 322}, {10, 0, 323}, {10, 0, 324}, {10, 0, 325}, {10, 0, 326}, {8, 0, 342}, {8, 0, 343}, {8, 0, 344}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {2, 17, 346}, {2, 17, 347}, {2, 7, 348}, {3, 0, 349}, {3, 2, 350}, {3, 7, 351}, {4, 50, 352}, {4, 30, 353}, {5, 30, 355}, {5, 50, 356}, {4, 50, 372}, {6, 0, 357}, {6, 0, 358}, {7, 0, 359}, {7, 0, 360}, {7, 500, 361}, {7, 500, 362}, {8, 0, 363}, {9, 0, 364}, {9, 0, 365}, {9, 0, 366}, {11, 0, 367}, {11, 0, 368}, {11, 0, 368}, {11, 0, 371} }; new const g_AnimationLibraries[][] = { !"AIRPORT", !"ATTRACTORS", !"BAR", !"BASEBALL", !"BD_FIRE", !"BEACH", !"BENCHPRESS", !"BF_INJECTION", !"BIKED", !"BIKEH", !"BIKELEAP", !"BIKES", !"BIKEV", !"BIKE_DBZ", !"BMX", !"BOMBER", !"BOX", !"BSKTBALL", !"BUDDY", !"BUS", !"CAMERA", !"CAR", !"CARRY", !"CAR_CHAT", !"CASINO", !"CHAINSAW", !"CHOPPA", !"CLOTHES", !"COACH", !"COLT45", !"COP_AMBIENT", !"COP_DVBYZ", !"CRACK", !"CRIB", !"DAM_JUMP", !"DANCING", !"DEALER", !"DILDO", !"DODGE", !"DOZER", !"DRIVEBYS", !"FAT", !"FIGHT_B", !"FIGHT_C", !"FIGHT_D", !"FIGHT_E", !"FINALE", !"FINALE2", !"FLAME", !"FLOWERS", !"FOOD", !"FREEWEIGHTS", !"GANGS", !"GHANDS", !"GHETTO_DB", !"GOGGLES", !"GRAFFITI", !"GRAVEYARD", !"GRENADE", !"GYMNASIUM", !"HAIRCUTS", !"HEIST9", !"INT_HOUSE", !"INT_OFFICE", !"INT_SHOP", !"JST_BUISNESS", !"KART", !"KISSING", !"KNIFE", !"LAPDAN1", !"LAPDAN2", !"LAPDAN3", !"LOWRIDER", !"MD_CHASE", !"MD_END", !"MEDIC", !"MISC", !"MTB", !"MUSCULAR", !"NEVADA", !"ON_LOOKERS", !"OTB", !"PARACHUTE", !"PARK", !"PAULNMAC", !"PED", !"PLAYER_DVBYS", !"PLAYIDLES", !"POLICE", !"POOL", !"POOR", !"PYTHON", !"QUAD", !"QUAD_DBZ", !"RAPPING", !"RIFLE", !"RIOT", !"ROB_BANK", !"ROCKET", !"RUSTLER", !"RYDER", !"SCRATCHING", !"SHAMAL", !"SHOP", !"SHOTGUN", !"SILENCED", !"SKATE", !"SMOKING", !"SNIPER", !"SPRAYCAN", !"STRIP", !"SUNBATHE", !"SWAT", !"SWEET", !"SWIM", !"SWORD", !"TANK", !"TATTOOS", !"TEC", !"TRAIN", !"TRUCK", !"UZI", !"VAN", !"VENDING", !"VORTEX", !"WAYFARER", !"WEAPONS", !"WUZI", !"WOP", !"GFUNK", !"RUNNINGMAN", !"BLOWJOBZ" }; new const g_VehicleNames[212][] = { "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana", "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat", "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife", "Trailer", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo", "Seasparrow", "Pizzaboy", "Tram", "Trailer", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair", "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow", "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito", "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring", "Sandking", "Blista Compact", "Police Maverick", "Boxville", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B", "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster", "Stunt", "Tanker", "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune", "Cadrona", "SWAT Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Streak", "Freight", "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit", "Utility", "Nevada", "Yosemite", "Windsor", "Monster", "Monster", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance", "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway", "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer", "Emperor", "Wayfarer", "Euros", "Hotdog", "Club", "Freight Box", "Trailer", "Andromada", "Dodo", "RC Cam", "Launch", "LSPD Car", "SFPD Car", "LVPD Car", "Police Rancher", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville", "Tiller", "Utility Trailer" }; new const Float:g_LightSwitches[][] = { {1364.983886, -2146.622314, 1051.249267, 180.0000}, {1750.794799, -1823.229003, 1001.000976, 180.0000}, {1283.106079, -1141.087524, 980.765502, 180.0000}, {2009.972900, -1699.866210, 1166.380493, 270.0000}, {1179.235839, -418.864257, 1235.295532, 270.0000}, {2183.259277, -1131.408813, 1129.336059, 90.0000}, {1433.186401, -1833.914184, 1314.197875, 90.0000}, {925.934936, -497.943176, 844.603149, 270.0000}, {827.491210, -1014.966735, 800.616577, 90.0000}, {1321.020996, -166.627578, 1088.712036, 270.0000}, {1832.481689, -1277.765502, 832.790344, 0.0000}, {2655.479736, -1022.791198, 930.556945, 0.0000} }; new const Float:g_HospitalLocations[][] = { {2034.1500, -1402.7036, 17.2946, 180.0000}, {1172.4954, -1321.4164, 15.3988, 270.0000}, {1240.7651, 326.6705, 19.7555, 335.0000}, {1607.3220, 1815.8779, 10.8203, 0.0000}, {-2655.1208, 639.3203, 14.4531, 180.0000}, {-318.6898, 1048.6490, 20.3403, 0.0000}, {-1514.7906, 2519.4641, 56.0703, 0.0000}, {-2203.7671, -2309.6816, 31.3750, 225.0000} }; new const Float:g_TestCheckpoints[][] = { /*{1964.1777, -1985.2305, 13.2617}, {1964.0260, -1929.5844, 13.2583}, {1963.9639, -1859.5959, 13.2579}, {1964.3365, -1794.9149, 13.2578}, {1976.9269, -1754.8848, 13.2578}, {2003.8291, -1732.9901, 13.2578}, {2012.5283, -1675.0514, 13.2578}, {2071.8647, -1674.4196, 13.2655}, {2078.9463, -1708.5052, 13.2656}, {2086.4880, -1764.8125, 13.2704}, {2079.3931, -1822.3281, 13.2578}, {2079.0554, -1893.4973, 13.2179}, {2034.7793, -1929.5000, 13.2169}, {1976.3959, -1929.3317, 13.2578}, {1958.6281, -1961.4639, 13.5750}, {1974.5994, -1990.2570, 13.4266}*/ {1202.1882, -1849.4520, 13.2621}, {1143.1660, -1849.5922, 13.2566}, {1071.2588, -1849.8652, 13.2682}, {1036.1475, -1795.2440, 13.5767}, {1040.1671, -1726.2327, 13.2578}, {1040.2419, -1668.0111, 13.2578}, {1039.9519, -1614.0441, 13.2578}, {1026.0361, -1570.0818, 13.2653}, {983.8574, -1569.9839, 13.2578}, {915.2708, -1584.9355, 13.2578}, {914.9992, -1626.3933, 13.2578}, {914.7863, -1688.9620, 13.2556}, {914.9989, -1762.4529, 13.2578}, {953.0164, -1781.2417, 13.9314}, {1006.2765, -1795.0682, 13.9239}, {1050.8878, -1824.5197, 13.4472}, {1075.3669, -1855.0442, 13.2660}, {1125.2623, -1854.6885, 13.2578}, {1187.8931, -1855.5801, 13.2734}, {1214.0253, -1839.7546, 13.2569} }; new const Float:g_TrashPickups[][] = { {2233.970458, -1963.004638, 13.004289, 280.663208}, {2326.081054, -1935.369628, 13.035931, 90.000000}, {2183.682128, -1884.950927, 13.006871, 180.000000}, {2070.470947, -1796.343872, 13.006866, 86.331871}, {2005.668457, -1761.876342, 13.009079, 90.000000}, {1796.317626, -1720.861938, 12.956867, 6.284942}, {1613.645874, -1897.403076, 13.028025, 182.839935}, {1403.755126, -1882.066162, 12.992812, 181.006591}, {1321.991943, -1666.734008, 13.016869, 267.994384}, {1249.822998, -1581.848632, 13.006018, -178.084884} }; new gTrashObjects[MAX_PLAYERS][sizeof(g_TrashPickups)]; enum e_StaticBuildings { e_BuildingName[32], e_IconModel, e_Interior, e_VirtualWorld, Float:e_SpawnX, Float:e_SpawnY, Float:e_SpawnZ, Float:e_InsideX, Float:e_InsideY, Float:e_InsideZ, Float:e_InsideA, bool:e_Freeze // Freeze the player after entering to stream objects }; enum { BUILDING_POLICE, BUILDING_PRISON, BUILDING_DMV, BUILDING_CITYHALL }; new const g_StaticBuildings[][e_StaticBuildings] = { {"Police Station", 1247, 10, 1, 1555.1296, -1675.5555, 16.1954, 126.0735, 1138.7159, 527.4651, 0.0000, true}, {"County Jail", 1247, 7, 2, 1059.3806, -321.3055, 73.9956, 2574.9722, -1475.3905, -48.8995, 0.0000, true}, {"Los Santos DMV", 1239, 3, 3, 1219.2091, -1812.2405, 16.5938, 1494.4213, 1304.1852, 1093.2891, 0.0000, true}, {"City Hall", 1314, 3, 4, 1479.3539, -1771.4526, 18.7958, 389.6911, 173.8717, 1008.3828, 90.0000, true} }; enum e_ItemArray { e_ItemName[MAX_ITEM_NAME], e_ItemModel, e_ItemWeight, bool:e_ItemValue, // Does this item have a quantity (e.g. ammunition, drug grams, quantity) bool:e_ItemIllegal, // Is this an illegal item? bool:e_ItemStackable // Does this item stack inside your inventory? }; new const g_ItemList[][e_ItemArray] = { {"Mobile Phone", 330, 2, true, false}, {"Stereo", 2102, 6, false, false}, {"Screwdriver", 18644, 1, false, false}, {"Toolbox", 2969, 4, false, false}, {"Bandages", 11748, 2, true, false}, {"Medical Kit", 11738, 3, false, false}, {"Notebook", 2894, 2, false, false}, {"Cigarettes", 19896, 1, true, false}, {"Painkillers", 2709, 2, true, false}, {"Gasoline", 19621, 3, true, false}, {"Kevlar Vest", 19515, 3, true, false}, {"Armor", 19515, 3, true, true}, {"Mask", 19801, 1, true, false}, {"Beer", 1543, 2, false, false}, {"Wine", 1487, 2, false, false}, {"Spraycan", 2749, 2, true, false}, {"Walkie Talkie", 19942, 2, true, false}, {"Portable Radio", 19942, 2, true, false}, {"Camera", 367, 2, false, false}, {"Car Key", 11746, 1, true, false}, //name, model, weight, value, illegal, stack {"Cuffs", 19418, 1, false, true}, {"Cuff Keys", 11746, 1, false, true}, // Faction items {"Fire Extinguisher", 366, 2, true, true}, // Weapon packages {"Melee Package", 3014, 2, false, true}, {"Pistol Package", 3014, 3, false, true}, {"Shotgun Package", 3014, 3, false, true}, {"SMG Package", 3014, 3, false, true}, {"Rifle Package", 3014, 3, false, true}, {"Materials", 3014, 3, true, true, true}, // Drugs //{"Marijuana", 2891, 1, true, true, true}, //{"Cocaine", 2891, 1, true, true, true}, //{"Heroin", 2891, 1, true, true, true}, {"Steroids", 2891, 1, true, true, true}, {"Heroin", 2891, 1, true, true, true}, {"LSD", 2891, 1, true, true, true}, {"Ecstasy", 2891, 1, true, true, true}, {"Marijuana", 2891, 1, true, true, true}, {"Crack", 2891, 1, true, true, true}, {"Cocaine", 2891, 1, true, true, true}, {"Methamphetamine", 2891, 1, true, true, true}, {"PCP", 2891, 1, true, true, true}, {"Baking Soda", 2891, 1, true, true, true}, {"Morning Glory Seeds", 2891, 1, true, true, true}, {"Opium Poppies", 2891, 1, true, true, true}, {"Marijuana Seeds", 2891, 1, true, true, true}, {"Muriatic Acid", 2891, 1, true, true, true}, {"Lye", 2891, 1, true, true, true}, {"Ether", 2891, 1, true, true, true}, {"Ephedrine", 2891, 1, true, true, true}, {"Diethyl", 2891, 1, true, true, true}, {"Hydrogen Peroxide", 2891, 1, true, true, true}, {"Formic Acid", 2891, 1, true, true, true}, {"Isosafrole", 2891, 1, true, true, true}, // Weapons {"Golf Club", 333, 3, false, true}, {"Nightstick", 334, 2, false, true}, {"Knife", 335, 1, false, true}, {"Baseball Bat", 336, 3, false, true}, {"Shovel", 337, 3, false, true}, {"Pool Cue", 338, 2, false, true}, {"Katana", 339, 4, false, true}, {"Colt 45", 346, 3, true, true}, {"Silenced 45", 347, 4, true, true}, {"Desert Eagle", 348, 3, true, true}, {"Shotgun", 349, 6, true, true}, {"SPAS-12", 351, 6, true, true}, {"UZI", 352, 4, true, true}, {"Tec-9", 372, 4, true, true}, {"MP5", 353, 5, true, true}, {"AK-47", 355, 7, true, true}, {"M16", 356, 7, true, true}, {"Rifle", 357, 6, true, true}, {"Sniper Rifle", 358, 7, true, true}, {"Pepper Spray", 365, 2, true, true}, //{"Taser", 347, 1, false, true}, // Ammunition {".50cal", 2061, 2, true, true}, {"9x19mm", 2061, 2, true, true}, {"5.56x45mm", 2061, 2, true, true}, {"7.62x39mm", 2061, 2, true, true}, {"7.62x51mm", 2061, 2, true, true}, {"12 Gauge", 2061, 2, true, true} }; enum e_DropOffsets { e_Item[MAX_ITEM_NAME], Float:e_OffsetZ, Float:e_OffsetRX, Float:e_OffsetRY }; /* {"Steroids", 2891, 1, true, true, true}, {"Heroin", 2891, 1, true, true, true}, {"LSD", 2891, 1, true, true, true}, {"Ecstasy", 2891, 1, true, true, true}, {"Marijuana", 2891, 1, true, true, true}, {"Crack", 2891, 1, true, true, true}, {"Cocaine", 2891, 1, true, true, true}, {"Methamphetamine", 2891, 1, true, true, true}, {"PCP", 2891, 1, true, true, true}, */ new const g_GroundOffsets[][e_DropOffsets] = { {"Mobile Phone", 1.0, 90.0, 0.0}, {"Stereo", 1.0, 0.0, 0.0}, {"Screwdriver", 0.95, 0.0, 90.0}, {"Toolbox", 0.9, 0.0, 0.0}, {"Bandages", 0.95, 0.0, 0.0}, {"Medical Kit", 0.9, 0.0, 0.0}, {"Notebook", 1.0, 0.0, 0.0}, {"Cigarettes", 0.95, 0.0, 0.0}, {"Painkillers", 0.85, 0.0, 0.0}, {"Gasoline", 0.9, 0.0, 0.0}, {"Kevlar Vest", 0.7, 0.0, -90.0}, {"Armor", 0.7, 0.0, -90.0}, {"Mask", 0.9, 0.0, 0.0}, {"Beer", 1.0, 0.0, 0.0}, {"Wine", 0.8, 0.0, 0.0}, {"Spraycan", 1.0, 0.0, 0.0}, {"Walkie Talkie", 0.95, -90.0, 0.0}, {"Portable Radio", 0.95, -90.0, 0.0}, {"Car Key", 0.95, 90.0, 0.0}, {"Cuffs", 0.95, 90.0, 0.0}, {"Cuff Keys", 0.95, 90.0, 0.0}, {"Melee Package", 0.7, 0.0, 0.0}, {"Pistol Package", 0.7, 0.0, 0.0}, {"Shotgun Package", 0.7, 0.0, 0.0}, {"SMG Package", 0.7, 0.0, 0.0}, {"Rifle Package", 0.7, 0.0, 0.0}, {"Steroids", 1.0, 0.0, 0.0}, {"Heroin", 1.0, 0.0, 0.0}, {"LSD", 1.0, 0.0, 0.0}, {"Ecstasy", 1.0, 0.0, 0.0}, {"Marijuana", 1.0, 0.0, 0.0}, {"Crack", 1.0, 0.0, 0.0}, {"Cocaine", 1.0, 0.0, 0.0}, {"Methamphetamine", 1.0, 0.0, 0.0}, {"PCP", 1.0, 0.0, 0.0}, {".50cal", 0.7, 0.0, 0.0}, {"9x19mm", 0.7, 0.0, 0.0}, {"5.56x45mm", 0.7, 0.0, 0.0}, {"7.62x39mm", 0.7, 0.0, 0.0}, {"7.62x51mm", 0.7, 0.0, 0.0}, {"12 Gauge", 0.7, 0.0, 0.0} }; enum e_InteriorList { e_Interior, Float: e_InteriorX, Float: e_InteriorY, Float: e_InteriorZ, Float: e_InteriorA }; new const Float:g_HouseInteriors[][e_InteriorList] = { {0, 0000.0000, 0000.0000, 0000.0000, 000.0000}, {3, 1363.7614, -2145.6965, 1050.5886, 356.4167}, {6, 1749.6356, -1822.4457, 1000.3405, 355.5393}, {4, 1282.0646, -1140.2067, 980.0524, 1.5357}, {8, 2008.8319, -1698.8461, 1165.7001, 88.6156}, {9, 1178.3398, -419.0833, 1234.7045, 177.8144}, {11, 2184.1011, -1130.3905, 1128.7655, 265.1024}, {2, 1434.0806, -1832.7854, 1313.5573, 267.1467}, {7, 925.0102, -496.8101, 843.8953, 88.8976}, {3, 828.6323, -1014.0038, 799.9664, 266.5594}, {5, 1320.1091, -167.6174, 1088.0741, 89.3401}, {1, 1834.2408, -1278.7684, 832.1602, 177.6579}, {5, 2654.4524, -1023.7827, 929.9266, 180.4350}, {1, 244.0626, 304.9826, 999.1484, 270.4359}, {1, 1417.2693,-18.4743,1000.9266,89.4260}, {10, 2259.7542,-1136.0293,1050.6328,271.4703}, {3, 2495.9561,-1692.3522,1014.7422,179.3060}, {3, 235.2513,1187.0618,1080.2578,1.5732}, {2, 225.3744,1239.9326,1082.1406,91.4331}, {5, 226.9044,1114.2283,1080.9961,270.5323}, {4, 310.8174,313.8372,1003.3047,90.7227}, {5, 1298.8762,-796.5984,1084.0078,359.3316} }; new const Float:g_CompanyInteriors[][e_InteriorList] = { {0, 0000.0000, 0000.0000, 0000.0000, 000.0000}, {17, -25.8827, -187.3007, 1003.5469, 0.0000}, // COMPANY_STORE {18, 161.3682, -96.3227, 1001.8047, 0.0000}, // COMPANY_CLOTHES {17, 377.1490, -192.6511, 1000.6401, 0.0000}, // COMPANY_RESTAURANT {3, -2026.8729, -104.1907, 1035.1719, 180.0000}, // COMPANY_RENTALS {3, 833.9849, 7.4472, 1004.1797, 90.0000}, // COMPANY_PHONE {3, 1494.4321, 1304.0353, 1093.2891, 0.0000}, // COMPANY_DEALERSHIP {5, 772.4077, -4.7408, 1000.7291, 0.0000}, // COMPANY_GYM {7, 315.7720, -142.9962, 999.6016, 0.0000}, // COMPANY_AMMO {11, 501.9501, -68.5032, 998.7578, 180.0000} // COMPANY_BAR }; new const Float:g_HospitalDeliverPoints[6][3] = { {-2692.6580, 635.4608, 14.4531}, {-334.9757, 1063.0171, 19.7392}, {1579.9666, 1767.1462, 10.8203}, {1177.8599, -1308.3982, 13.8301}, {2024.4246, -1404.1580, 17.2020}, {1243.9304, 331.4186, 19.5547} }; new const Float:g_HospitalSpawns[16][3] = { {2507.6208, -1698.1387, 2105.4109}, {2507.5833, -1695.3528, 2105.4109}, {2507.6140, -1692.8528, 2105.4109}, {2507.6499, -1690.3484, 2105.4109}, {2513.5959, -1698.1089, 2105.4109}, {2513.5156, -1695.3512, 2105.4109}, {2513.5745, -1692.7902, 2105.4109}, {2513.6406, -1690.2950, 2105.4109}, {2513.5474, -1714.5375, 2105.4109}, {2513.5000, -1717.0905, 2105.4109}, {2513.5068, -1719.7252, 2105.4109}, {2513.4722, -1722.4310, 2105.4109}, {2507.4583, -1714.5662, 2105.4109}, {2513.4426, -1717.0591, 2105.4109}, {2513.4963, -1719.7118, 2105.4109}, {2507.4795, -1722.3256, 2105.4109} }; new const Float:g_RepairShops[][] = { {2074.7122, -1831.3906, 13.5469, 2065.4092, -1831.4474, 13.3643, 90.0000, 2076.0828, -1831.3698, 13.2777, 270.0000}, {1025.1017, -1032.9968, 31.8545, 1024.9688, -1023.1215, 31.9303, 0.0000, 1024.9032, -1033.9376, 31.6534, 180.0000}, {488.5583, -1731.2819, 11.2464, 487.3807, -1741.6285, 11.0107, 170.0000, 489.1483, -1730.7385, 11.0434, 350.0000}, {720.2086, -465.7499, 16.3437, 720.0692, -456.0589, 17.0412, 0.0000, 720.1885, -469.6240, 17.0489, 180.0000}, {-99.8833, 1109.2959, 19.7422, -100.0493, 1116.5676, 20.3480, 0.0000, -99.8743, 1105.2859, 20.4476, 180.0000}, {-1420.7378, 2594.0757, 55.7505, -1420.5433, 2585.7573, 56.5724, 180.0000, -1420.6559, 2595.4070, 56.4271, 0.0000} }; new g_ValidSkinModels[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 68, 69, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 140, 141, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 167, 168, 169, 170, 171, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 268, 272, 273, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299 }; new g_MaleSkins[185] = { 1, 2, 3, 4, 5, 6, 7, 8, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 34, 35, 36, 37, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 57, 58, 59, 60, 61, 62, 66, 68, 72, 73, 78, 79, 80, 81, 82, 83, 84, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 132, 133, 134, 135, 136, 137, 142, 143, 144, 146, 147, 153, 154, 155, 156, 158, 159, 160, 161, 162, 167, 168, 170, 171, 173, 174, 175, 176, 177, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 200, 202, 203, 204, 206, 208, 209, 210, 212, 213, 217, 220, 221, 222, 223, 228, 229, 230, 234, 235, 236, 239, 240, 241, 242, 247, 248, 249, 250, 253, 254, 255, 258, 259, 260, 261, 262, 268, 272, 273, 289, 290, 291, 292, 293, 294, 295, 296, 297, 299 }; new g_FemaleSkins[77] = { 9, 10, 11, 12, 13, 31, 38, 39, 40, 41, 53, 54, 55, 56, 63, 64, 65, 69, 75, 76, 77, 85, 88, 89, 90, 91, 92, 93, 129, 130, 131, 138, 140, 141, 145, 148, 150, 151, 152, 157, 169, 178, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 201, 205, 207, 211, 214, 215, 216, 219, 224, 225, 226, 231, 232, 233, 237, 238, 243, 244, 245, 246, 251, 256, 257, 263, 298 }; /*new g_VehicleColors[256] = { 0x000000FF, 0xF5F5F5FF, 0x2A77A1FF, 0x840410FF, 0x263739FF, 0x86446EFF, 0xD78E10FF, 0x4C75B7FF, 0xBDBEC6FF, 0x5E7072FF, 0x46597AFF, 0x656A79FF, 0x5D7E8DFF, 0x58595AFF, 0xD6DAD6FF, 0x9CA1A3FF, 0x335F3FFF, 0x730E1AFF, 0x7B0A2AFF, 0x9F9D94FF, 0x3B4E78FF, 0x732E3EFF, 0x691E3BFF, 0x96918CFF, 0x515459FF, 0x3F3E45FF, 0xA5A9A7FF, 0x635C5AFF, 0x3D4A68FF, 0x979592FF, 0x421F21FF, 0x5F272BFF, 0x8494ABFF, 0x767B7CFF, 0x646464FF, 0x5A5752FF, 0x252527FF, 0x2D3A35FF, 0x93A396FF, 0x6D7A88FF, 0x221918FF, 0x6F675FFF, 0x7C1C2AFF, 0x5F0A15FF, 0x193826FF, 0x5D1B20FF, 0x9D9872FF, 0x7A7560FF, 0x989586FF, 0xADB0B0FF, 0x848988FF, 0x304F45FF, 0x4D6268FF, 0x162248FF, 0x272F4BFF, 0x7D6256FF, 0x9EA4ABFF, 0x9C8D71FF, 0x6D1822FF, 0x4E6881FF, 0x9C9C98FF, 0x917347FF, 0x661C26FF, 0x949D9FFF, 0xA4A7A5FF, 0x8E8C46FF, 0x341A1EFF, 0x6A7A8CFF, 0xAAAD8EFF, 0xAB988FFF, 0x851F2EFF, 0x6F8297FF, 0x585853FF, 0x9AA790FF, 0x601A23FF, 0x20202CFF, 0xA4A096FF, 0xAA9D84FF, 0x78222BFF, 0x0E316DFF, 0x722A3FFF, 0x7B715EFF, 0x741D28FF, 0x1E2E32FF, 0x4D322FFF, 0x7C1B44FF, 0x2E5B20FF, 0x395A83FF, 0x6D2837FF, 0xA7A28FFF, 0xAFB1B1FF, 0x364155FF, 0x6D6C6EFF, 0x0F6A89FF, 0x204B6BFF, 0x2B3E57FF, 0x9B9F9DFF, 0x6C8495FF, 0x4D8495FF, 0xAE9B7FFF, 0x406C8FFF, 0x1F253BFF, 0xAB9276FF, 0x134573FF, 0x96816CFF, 0x64686AFF, 0x105082FF, 0xA19983FF, 0x385694FF, 0x525661FF, 0x7F6956FF, 0x8C929AFF, 0x596E87FF, 0x473532FF, 0x44624FFF, 0x730A27FF, 0x223457FF, 0x640D1BFF, 0xA3ADC6FF, 0x695853FF, 0x9B8B80FF, 0x620B1CFF, 0x5B5D5EFF, 0x624428FF, 0x731827FF, 0x1B376DFF, 0xEC6AAEFF, 0x000000FF, 0x177517FF, 0x210606FF, 0x125478FF, 0x452A0DFF, 0x571E1EFF, 0x010701FF, 0x25225AFF, 0x2C89AAFF, 0x8A4DBDFF, 0x35963AFF, 0xB7B7B7FF, 0x464C8DFF, 0x84888CFF, 0x817867FF, 0x817A26FF, 0x6A506FFF, 0x583E6FFF, 0x8CB972FF, 0x824F78FF, 0x6D276AFF, 0x1E1D13FF, 0x1E1306FF, 0x1F2518FF, 0x2C4531FF, 0x1E4C99FF, 0x2E5F43FF, 0x1E9948FF, 0x1E9999FF, 0x999976FF, 0x7C8499FF, 0x992E1EFF, 0x2C1E08FF, 0x142407FF, 0x993E4DFF, 0x1E4C99FF, 0x198181FF, 0x1A292AFF, 0x16616FFF, 0x1B6687FF, 0x6C3F99FF, 0x481A0EFF, 0x7A7399FF, 0x746D99FF, 0x53387EFF, 0x222407FF, 0x3E190CFF, 0x46210EFF, 0x991E1EFF, 0x8D4C8DFF, 0x805B80FF, 0x7B3E7EFF, 0x3C1737FF, 0x733517FF, 0x781818FF, 0x83341AFF, 0x8E2F1CFF, 0x7E3E53FF, 0x7C6D7CFF, 0x020C02FF, 0x072407FF, 0x163012FF, 0x16301BFF, 0x642B4FFF, 0x368452FF, 0x999590FF, 0x818D96FF, 0x99991EFF, 0x7F994CFF, 0x839292FF, 0x788222FF, 0x2B3C99FF, 0x3A3A0BFF, 0x8A794EFF, 0x0E1F49FF, 0x15371CFF, 0x15273AFF, 0x375775FF, 0x060820FF, 0x071326FF, 0x20394BFF, 0x2C5089FF, 0x15426CFF, 0x103250FF, 0x241663FF, 0x692015FF, 0x8C8D94FF, 0x516013FF, 0x090F02FF, 0x8C573AFF, 0x52888EFF, 0x995C52FF, 0x99581EFF, 0x993A63FF, 0x998F4EFF, 0x99311EFF, 0x0D1842FF, 0x521E1EFF, 0x42420DFF, 0x4C991EFF, 0x082A1DFF, 0x96821DFF, 0x197F19FF, 0x3B141FFF, 0x745217FF, 0x893F8DFF, 0x7E1A6CFF, 0x0B370BFF, 0x27450DFF, 0x071F24FF, 0x784573FF, 0x8A653AFF, 0x732617FF, 0x319490FF, 0x56941DFF, 0x59163DFF, 0x1B8A2FFF, 0x38160BFF, 0x041804FF, 0x355D8EFF, 0x2E3F5BFF, 0x561A28FF, 0x4E0E27FF, 0x706C67FF, 0x3B3E42FF, 0x2E2D33FF, 0x7B7E7DFF, 0x4A4442FF, 0x28344EFF };*/ enum e_SittingPositions { e_SittingIn[24], e_SittingOut[24], Float:e_SittingX, Float:e_SittingY, Float:e_SittingZ, Float:e_SittingA }; new const g_SittingPositions[][e_SittingPositions] = { {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 374.0676, -181.0147, 1000.6328, 180.0000}, {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 374.0782, -184.1134, 1000.6328, 180.0000}, {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 373.8982, -187.0960, 1000.6401, 180.0000}, {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 373.9221, -190.0732, 1000.6401, 180.0000}, {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 375.1001, -189.6535, 1000.6401, 0.0000}, {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 375.0905, -187.1382, 1000.6401, 0.0000}, {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 375.0905, -184.6665, 1000.6328, 0.0000}, {"FF_SIT_IN_L", "FF_SIT_OUT_L_180", 375.0905, -182.2018, 1000.6328, 0.0000}, {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 373.9148, -182.6303, 1000.6328, 0.0000}, {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 373.8991, -185.7240, 1000.6401, 0.0000}, {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 373.9482, -188.6557, 1000.6401, 0.0000}, {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 374.0638, -191.7607, 1000.6328, 0.0000}, {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 375.1168, -188.4465, 1000.6401, 180.0000}, {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 375.0603, -185.9716, 1000.6401, 180.0000}, {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 375.1057, -183.4811, 1000.6328, 180.0000}, {"FF_SIT_IN_R", "FF_SIT_OUT_R_180", 375.0972, -180.9725, 1000.6328, 180.0000} }; new const g_ValidObjectModels[] = { 320, 321, 322, 323, 324, 325, 326, 327, 328, 330, 331, 333, 334, 335, 336, 337, 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 664, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 700, 701, 702, 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 789, 790, 791, 792, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 930, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1262, 1263, 1264, 1265, 1267, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1572, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1675, 1676, 1677, 1679, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239, 2240, 2241, 2242, 2243, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 2255, 2256, 2257, 2258, 2259, 2260, 2261, 2262, 2263, 2264, 2265, 2266, 2267, 2268, 2269, 2270, 2271, 2272, 2273, 2274, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2384, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2416, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487, 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507, 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526, 2527, 2528, 2529, 2530, 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545, 2546, 2547, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556, 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2601, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634, 2635, 2636, 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2644, 2645, 2646, 2647, 2648, 2649, 2650, 2651, 2652, 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2677, 2678, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2702, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2729, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738, 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2748, 2749, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765, 2766, 2767, 2768, 2769, 2770, 2771, 2772, 2773, 2774, 2775, 2776, 2777, 2778, 2779, 2780, 2781, 2782, 2783, 2784, 2785, 2788, 2789, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2800, 2801, 2802, 2803, 2804, 2805, 2806, 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2814, 2815, 2816, 2817, 2818, 2819, 2820, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2829, 2830, 2831, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2857, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2865, 2866, 2867, 2868, 2869, 2870, 2871, 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2880, 2881, 2882, 2885, 2886, 2887, 2888, 2889, 2890, 2891, 2892, 2893, 2894, 2895, 2896, 2897, 2898, 2899, 2900, 2901, 2902, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911, 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941, 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951, 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961, 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971, 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2981, 2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 3006, 3007, 3008, 3009, 3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033, 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043, 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063, 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073, 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133, 3134, 3135, 3167, 3168, 3169, 3170, 3171, 3172, 3173, 3174, 3175, 3178, 3187, 3193, 3214, 3221, 3241, 3242, 3243, 3244, 3246, 3249, 3250, 3252, 3253, 3255, 3256, 3257, 3258, 3259, 3260, 3261, 3262, 3263, 3264, 3265, 3267, 3268, 3269, 3270, 3271, 3272, 3273, 3274, 3275, 3276, 3277, 3278, 3279, 3280, 3281, 3282, 3283, 3284, 3285, 3286, 3287, 3292, 3293, 3294, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3312, 3313, 3314, 3315, 3316, 3317, 3330, 3331, 3334, 3335, 3336, 3337, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3359, 3361, 3362, 3363, 3364, 3374, 3375, 3378, 3379, 3380, 3381, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3414, 3415, 3417, 3418, 3419, 3425, 3426, 3427, 3428, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3446, 3447, 3448, 3449, 3450, 3451, 3452, 3453, 3454, 3455, 3456, 3457, 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3491, 3493, 3494, 3496, 3497, 3498, 3499, 3501, 3502, 3503, 3504, 3505, 3506, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3516, 3517, 3518, 3519, 3520, 3521, 3522, 3524, 3525, 3526, 3528, 3529, 3530, 3531, 3532, 3533, 3534, 3550, 3554, 3555, 3556, 3557, 3558, 3564, 3565, 3566, 3567, 3568, 3569, 3570, 3571, 3572, 3573, 3574, 3575, 3576, 3577, 3578, 3580, 3582, 3583, 3584, 3585, 3586, 3587, 3588, 3589, 3590, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3643, 3644, 3646, 3648, 3649, 3651, 3653, 3655, 3657, 3658, 3659, 3660, 3661, 3663, 3664, 3665, 3666, 3671, 3673, 3674, 3675, 3676, 3677, 3678, 3684, 3689, 3694, 3697, 3698, 3700, 3702, 3704, 3707, 3711, 3713, 3715, 3717, 3722, 3724, 3741, 3743, 3749, 3752, 3753, 3754, 3755, 3757, 3759, 3761, 3762, 3763, 3764, 3765, 3771, 3776, 3781, 3783, 3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3816, 3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 3829, 3830, 3842, 3843, 3844, 3845, 3850, 3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 3862, 3863, 3864, 3865, 3866, 3867, 3872, 3873, 3875, 3876, 3877, 3878, 3879, 3881, 3882, 3884, 3885, 3886, 3887, 3890, 3891, 3892, 3893, 3894, 3895, 3897, 3898, 3899, 3900, 3902, 3903, 3905, 3906, 3907, 3910, 3911, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3973, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 3994, 3995, 3996, 3997, 3998, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4027, 4028, 4029, 4030, 4032, 4033, 4034, 4048, 4058, 4059, 4060, 4079, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4099, 4100, 4101, 4102, 4103, 4106, 4107, 4108, 4109, 4110, 4112, 4113, 4114, 4117, 4120, 4121, 4122, 4123, 4125, 4127, 4128, 4129, 4131, 4133, 4139, 4141, 4142, 4144, 4146, 4148, 4150, 4152, 4154, 4156, 4158, 4160, 4163, 4165, 4168, 4170, 4171, 4172, 4173, 4174, 4175, 4176, 4178, 4180, 4182, 4183, 4184, 4185, 4186, 4188, 4189, 4190, 4192, 4193, 4195, 4196, 4197, 4198, 4199, 4201, 4202, 4203, 4205, 4206, 4207, 4209, 4212, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4227, 4230, 4231, 4232, 4233, 4235, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4533, 4535, 4538, 4540, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4562, 4563, 4564, 4565, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4656, 4658, 4660, 4662, 4664, 4666, 4679, 4681, 4682, 4683, 4684, 4685, 4690, 4691, 4692, 4694, 4695, 4697, 4700, 4701, 4702, 4703, 4708, 4710, 4711, 4712, 4714, 4715, 4716, 4717, 4718, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4806, 4807, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4884, 4885, 4886, 4887, 4888, 4889, 4890, 4891, 4892, 4894, 4895, 4896, 4897, 4898, 4981, 4982, 4983, 4984, 4985, 4986, 4988, 4990, 4991, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5009, 5013, 5016, 5017, 5020, 5021, 5023, 5024, 5025, 5026, 5028, 5030, 5031, 5032, 5033, 5034, 5036, 5038, 5040, 5042, 5043, 5044, 5046, 5051, 5052, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5064, 5066, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5086, 5087, 5088, 5089, 5105, 5106, 5107, 5108, 5109, 5110, 5111, 5112, 5113, 5114, 5115, 5116, 5117, 5118, 5119, 5120, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5160, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5231, 5232, 5233, 5234, 5243, 5244, 5250, 5259, 5260, 5261, 5262, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5301, 5302, 5306, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5333, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5347, 5349, 5351, 5353, 5355, 5358, 5363, 5364, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5456, 5457, 5458, 5459, 5461, 5462, 5463, 5464, 5465, 5467, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5518, 5519, 5520, 5521, 5522, 5528, 5532, 5565, 5624, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5650, 5652, 5654, 5655, 5656, 5660, 5661, 5662, 5663, 5665, 5668, 5674, 5676, 5677, 5678, 5679, 5681, 5682, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5741, 5742, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5760, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5787, 5788, 5789, 5790, 5791, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5835, 5836, 5837, 5838, 5844, 5845, 5846, 5847, 5848, 5853, 5854, 5855, 5856, 5857, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5868, 5870, 5871, 5872, 5873, 5874, 5875, 5876, 5877, 5878, 5881, 5882, 5885, 5886, 5887, 5888, 5891, 5892, 5893, 5896, 5986, 5987, 5990, 5991, 5992, 5993, 5994, 5995, 5998, 5999, 6001, 6006, 6007, 6010, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6087, 6088, 6094, 6095, 6096, 6098, 6099, 6100, 6101, 6102, 6103, 6104, 6110, 6111, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6122, 6123, 6124, 6125, 6126, 6127, 6128, 6129, 6130, 6132, 6133, 6134, 6135, 6136, 6137, 6138, 6145, 6148, 6150, 6151, 6152, 6157, 6158, 6159, 6160, 6165, 6186, 6187, 6188, 6189, 6192, 6193, 6194, 6195, 6196, 6199, 6203, 6204, 6205, 6209, 6210, 6211, 6212, 6213, 6214, 6217, 6223, 6225, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6248, 6249, 6250, 6251, 6252, 6257, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6313, 6314, 6315, 6316, 6317, 6318, 6319, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6336, 6337, 6338, 6340, 6341, 6342, 6343, 6344, 6345, 6347, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6362, 6363, 6364, 6366, 6368, 6369, 6370, 6371, 6372, 6373, 6385, 6386, 6387, 6388, 6389, 6390, 6391, 6393, 6397, 6398, 6399, 6400, 6403, 6404, 6405, 6406, 6407, 6411, 6412, 6413, 6416, 6417, 6421, 6422, 6427, 6428, 6430, 6431, 6436, 6443, 6444, 6448, 6449, 6450, 6451, 6457, 6458, 6461, 6462, 6466, 6487, 6488, 6489, 6490, 6497, 6499, 6501, 6502, 6507, 6508, 6509, 6513, 6514, 6516, 6517, 6518, 6519, 6520, 6521, 6522, 6524, 6863, 6864, 6865, 6866, 6867, 6868, 6869, 6871, 6872, 6873, 6874, 6875, 6876, 6877, 6878, 6879, 6880, 6881, 6882, 6883, 6884, 6885, 6886, 6887, 6888, 6897, 6898, 6899, 6900, 6907, 6908, 6909, 6910, 6912, 6913, 6914, 6915, 6916, 6917, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 6988, 6989, 6990, 6991, 6993, 6994, 6997, 6999, 7009, 7010, 7011, 7012, 7013, 7014, 7015, 7016, 7017, 7018, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7028, 7029, 7030, 7031, 7032, 7033, 7034, 7035, 7036, 7037, 7038, 7039, 7040, 7041, 7042, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7064, 7069, 7071, 7072, 7073, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7086, 7087, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7153, 7172, 7184, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7196, 7197, 7198, 7200, 7201, 7202, 7203, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7212, 7213, 7217, 7218, 7220, 7221, 7222, 7223, 7224, 7226, 7227, 7228, 7229, 7230, 7231, 7232, 7233, 7234, 7236, 7238, 7240, 7242, 7243, 7244, 7245, 7246, 7247, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7263, 7264, 7265, 7266, 7268, 7269, 7271, 7272, 7273, 7276, 7277, 7280, 7287, 7288, 7289, 7290, 7291, 7292, 7294, 7295, 7296, 7297, 7298, 7299, 7300, 7301, 7302, 7303, 7304, 7305, 7306, 7307, 7308, 7309, 7310, 7311, 7312, 7313, 7314, 7315, 7317, 7319, 7320, 7321, 7324, 7326, 7327, 7331, 7332, 7333, 7334, 7335, 7336, 7337, 7344, 7347, 7353, 7355, 7357, 7359, 7361, 7362, 7364, 7366, 7367, 7368, 7369, 7370, 7371, 7377, 7378, 7379, 7380, 7381, 7383, 7387, 7388, 7389, 7390, 7391, 7392, 7415, 7416, 7417, 7418, 7419, 7420, 7421, 7422, 7423, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7681, 7692, 7696, 7707, 7708, 7709, 7729, 7730, 7731, 7755, 7832, 7834, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7849, 7852, 7854, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7878, 7880, 7881, 7882, 7884, 7885, 7889, 7891, 7892, 7893, 7894, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7929, 7930, 7931, 7932, 7933, 7934, 7938, 7939, 7940, 7942, 7943, 7944, 7945, 7947, 7950, 7952, 7953, 7954, 7955, 7956, 7963, 7965, 7967, 7969, 7971, 7972, 7973, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, 8010, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8062, 8063, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8091, 8128, 8130, 8131, 8132, 8133, 8134, 8135, 8136, 8137, 8147, 8148, 8149, 8150, 8151, 8152, 8153, 8154, 8155, 8165, 8167, 8168, 8169, 8171, 8172, 8173, 8174, 8175, 8176, 8177, 8178, 8185, 8186, 8187, 8188, 8189, 8194, 8198, 8199, 8200, 8201, 8202, 8206, 8207, 8208, 8209, 8210, 8212, 8213, 8214, 8215, 8216, 8217, 8218, 8219, 8228, 8229, 8230, 8231, 8232, 8236, 8237, 8240, 8242, 8244, 8245, 8246, 8247, 8249, 8251, 8253, 8254, 8255, 8256, 8260, 8262, 8263, 8264, 8281, 8283, 8285, 8286, 8287, 8288, 8290, 8292, 8293, 8294, 8300, 8302, 8305, 8306, 8308, 8310, 8311, 8313, 8314, 8315, 8319, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8330, 8331, 8332, 8333, 8335, 8337, 8339, 8341, 8342, 8343, 8344, 8345, 8350, 8351, 8352, 8353, 8354, 8355, 8356, 8357, 8368, 8369, 8370, 8371, 8372, 8373, 8375, 8377, 8378, 8380, 8382, 8383, 8386, 8388, 8390, 8391, 8392, 8393, 8394, 8395, 8396, 8397, 8398, 8399, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 8433, 8434, 8435, 8436, 8437, 8438, 8439, 8440, 8441, 8442, 8443, 8444, 8445, 8446, 8447, 8448, 8449, 8450, 8451, 8452, 8453, 8454, 8455, 8456, 8457, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8468, 8469, 8470, 8471, 8472, 8473, 8474, 8475, 8476, 8477, 8480, 8481, 8482, 8483, 8484, 8485, 8486, 8487, 8488, 8489, 8490, 8491, 8492, 8493, 8494, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8506, 8507, 8508, 8509, 8510, 8511, 8512, 8513, 8514, 8515, 8516, 8517, 8518, 8519, 8520, 8521, 8522, 8523, 8524, 8525, 8526, 8527, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8579, 8580, 8581, 8582, 8583, 8584, 8585, 8586, 8587, 8588, 8589, 8590, 8591, 8592, 8593, 8594, 8595, 8596, 8597, 8607, 8608, 8609, 8610, 8611, 8612, 8613, 8614, 8615, 8616, 8617, 8618, 8619, 8620, 8621, 8622, 8623, 8624, 8625, 8626, 8627, 8628, 8629, 8630, 8631, 8632, 8633, 8634, 8635, 8636, 8637, 8638, 8639, 8640, 8641, 8642, 8643, 8644, 8645, 8646, 8647, 8648, 8649, 8650, 8651, 8652, 8653, 8654, 8655, 8656, 8657, 8658, 8659, 8660, 8661, 8662, 8663, 8664, 8665, 8666, 8667, 8668, 8669, 8670, 8671, 8672, 8673, 8674, 8675, 8676, 8677, 8678, 8679, 8680, 8681, 8682, 8683, 8684, 8685, 8686, 8687, 8688, 8689, 8710, 8824, 8825, 8826, 8827, 8828, 8832, 8833, 8834, 8835, 8836, 8837, 8838, 8839, 8840, 8841, 8842, 8843, 8844, 8845, 8846, 8849, 8850, 8851, 8852, 8853, 8854, 8855, 8856, 8857, 8858, 8859, 8860, 8865, 8866, 8867, 8868, 8869, 8870, 8871, 8872, 8873, 8874, 8875, 8876, 8877, 8878, 8879, 8880, 8881, 8882, 8883, 8884, 8885, 8886, 8887, 8888, 8889, 8932, 8947, 8948, 8954, 8955, 8957, 8969, 8979, 8980, 8981, 8982, 8983, 8989, 8990, 8991, 9000, 9001, 9002, 9003, 9004, 9005, 9006, 9007, 9008, 9019, 9020, 9021, 9022, 9023, 9024, 9025, 9026, 9027, 9028, 9029, 9030, 9031, 9032, 9033, 9034, 9035, 9036, 9037, 9039, 9041, 9042, 9043, 9044, 9045, 9046, 9047, 9052, 9054, 9055, 9056, 9057, 9062, 9064, 9065, 9066, 9070, 9071, 9072, 9076, 9078, 9080, 9082, 9083, 9086, 9087, 9088, 9089, 9090, 9093, 9094, 9095, 9098, 9099, 9100, 9101, 9104, 9106, 9108, 9109, 9110, 9111, 9112, 9113, 9114, 9115, 9116, 9117, 9118, 9119, 9120, 9121, 9122, 9123, 9124, 9125, 9126, 9127, 9128, 9129, 9131, 9132, 9135, 9136, 9137, 9138, 9139, 9140, 9150, 9152, 9153, 9154, 9159, 9162, 9163, 9164, 9165, 9166, 9167, 9168, 9169, 9171, 9173, 9174, 9175, 9184, 9185, 9186, 9187, 9188, 9189, 9190, 9191, 9192, 9193, 9205, 9206, 9207, 9208, 9209, 9210, 9211, 9212, 9213, 9214, 9215, 9216, 9217, 9218, 9219, 9220, 9221, 9222, 9223, 9224, 9225, 9226, 9227, 9228, 9229, 9230, 9231, 9232, 9233, 9234, 9235, 9236, 9237, 9238, 9239, 9240, 9241, 9242, 9243, 9244, 9245, 9246, 9247, 9248, 9249, 9250, 9251, 9252, 9253, 9254, 9255, 9256, 9257, 9258, 9259, 9260, 9261, 9262, 9264, 9265, 9266, 9267, 9269, 9270, 9271, 9272, 9273, 9274, 9275, 9276, 9277, 9278, 9279, 9280, 9281, 9282, 9283, 9284, 9285, 9286, 9287, 9288, 9289, 9290, 9291, 9292, 9293, 9294, 9295, 9296, 9297, 9298, 9299, 9300, 9301, 9302, 9303, 9304, 9305, 9306, 9307, 9308, 9309, 9310, 9311, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9361, 9362, 9437, 9438, 9439, 9440, 9476, 9482, 9483, 9484, 9485, 9486, 9487, 9488, 9489, 9490, 9491, 9492, 9493, 9494, 9495, 9496, 9497, 9498, 9499, 9500, 9501, 9502, 9503, 9504, 9505, 9506, 9507, 9508, 9509, 9510, 9511, 9512, 9513, 9514, 9515, 9516, 9517, 9518, 9519, 9520, 9521, 9522, 9523, 9524, 9525, 9526, 9527, 9528, 9529, 9530, 9547, 9549, 9550, 9551, 9552, 9553, 9554, 9555, 9556, 9557, 9558, 9559, 9560, 9561, 9562, 9563, 9564, 9565, 9566, 9567, 9568, 9569, 9570, 9571, 9572, 9573, 9575, 9576, 9577, 9578, 9579, 9580, 9581, 9582, 9583, 9584, 9585, 9586, 9587, 9588, 9589, 9590, 9591, 9592, 9593, 9594, 9595, 9596, 9597, 9598, 9599, 9600, 9601, 9602, 9603, 9604, 9605, 9606, 9607, 9608, 9609, 9610, 9611, 9612, 9613, 9614, 9615, 9616, 9617, 9618, 9623, 9624, 9625, 9652, 9653, 9680, 9682, 9683, 9685, 9689, 9690, 9693, 9694, 9696, 9697, 9698, 9699, 9700, 9701, 9702, 9703, 9704, 9705, 9706, 9707, 9708, 9709, 9710, 9711, 9712, 9713, 9714, 9715, 9716, 9717, 9718, 9719, 9720, 9721, 9722, 9723, 9724, 9725, 9726, 9727, 9728, 9729, 9730, 9731, 9732, 9733, 9734, 9735, 9736, 9737, 9738, 9739, 9740, 9741, 9742, 9743, 9744, 9745, 9746, 9747, 9748, 9749, 9750, 9751, 9752, 9753, 9754, 9761, 9762, 9763, 9764, 9765, 9766, 9767, 9812, 9814, 9815, 9816, 9817, 9818, 9819, 9820, 9821, 9822, 9823, 9824, 9825, 9827, 9829, 9830, 9831, 9832, 9833, 9834, 9835, 9836, 9837, 9838, 9858, 9859, 9860, 9863, 9864, 9885, 9886, 9889, 9891, 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9925, 9926, 9927, 9928, 9929, 9930, 9931, 9932, 9933, 9934, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10083, 10084, 10086, 10087, 10101, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10142, 10143, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10165, 10166, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10193, 10194, 10195, 10196, 10197, 10226, 10227, 10228, 10229, 10230, 10231, 10233, 10234, 10235, 10236, 10242, 10244, 10245, 10246, 10247, 10248, 10249, 10250, 10252, 10255, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10270, 10271, 10273, 10274, 10275, 10276, 10278, 10280, 10281, 10282, 10287, 10288, 10289, 10290, 10294, 10295, 10296, 10300, 10301, 10305, 10306, 10308, 10309, 10310, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441, 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10558, 10559, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10601, 10606, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, 10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639, 10649, 10651, 10671, 10672, 10675, 10676, 10682, 10683, 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10716, 10718, 10722, 10734, 10735, 10736, 10737, 10738, 10739, 10740, 10741, 10742, 10743, 10744, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, 10772, 10773, 10774, 10775, 10776, 10777, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10806, 10807, 10808, 10809, 10810, 10811, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10854, 10855, 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10885, 10889, 10890, 10891, 10903, 10904, 10905, 10917, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, 10983, 10984, 10985, 10986, 10987, 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, 11096, 11097, 11098, 11099, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11145, 11146, 11147, 11148, 11149, 11150, 11223, 11224, 11225, 11226, 11228, 11229, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11280, 11283, 11285, 11287, 11288, 11289, 11290, 11292, 11293, 11295, 11297, 11299, 11301, 11302, 11303, 11305, 11306, 11308, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11324, 11326, 11327, 11332, 11334, 11335, 11337, 11340, 11342, 11343, 11345, 11351, 11352, 11353, 11359, 11360, 11362, 11363, 11364, 11365, 11367, 11374, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11400, 11401, 11406, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11416, 11417, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564, 11565, 11566, 11567, 11568, 11571, 11572, 11579, 11580, 11581, 11607, 11608, 11609, 11610, 11611, 11615, 11623, 11625, 11626, 11627, 11628, 11629, 11631, 11647, 11663, 11664, 11665, 11666, 11674, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807, 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821, 12822, 12823, 12824, 12825, 12826, 12827, 12828, 12829, 12830, 12831, 12832, 12833, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 12842, 12843, 12844, 12845, 12846, 12847, 12848, 12849, 12850, 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12858, 12859, 12860, 12861, 12862, 12863, 12864, 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920, 12921, 12922, 12923, 12924, 12925, 12926, 12927, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12938, 12939, 12940, 12941, 12942, 12943, 12944, 12945, 12946, 12947, 12948, 12949, 12950, 12951, 12952, 12953, 12954, 12955, 12956, 12957, 12958, 12959, 12960, 12961, 12962, 12963, 12964, 12965, 12966, 12967, 12968, 12969, 12970, 12971, 12972, 12973, 12974, 12975, 12976, 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, 12992, 12993, 12994, 12995, 12996, 12997, 12998, 12999, 13000, 13001, 13002, 13003, 13004, 13005, 13006, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 13014, 13015, 13016, 13017, 13018, 13019, 13020, 13021, 13022, 13023, 13024, 13025, 13027, 13028, 13030, 13033, 13034, 13035, 13036, 13038, 13039, 13040, 13041, 13042, 13043, 13044, 13045, 13049, 13050, 13051, 13058, 13059, 13060, 13061, 13065, 13066, 13070, 13071, 13072, 13077, 13078, 13081, 13082, 13083, 13084, 13088, 13092, 13095, 13096, 13097, 13098, 13099, 13100, 13101, 13102, 13103, 13104, 13105, 13106, 13107, 13109, 13118, 13119, 13120, 13121, 13122, 13123, 13124, 13125, 13126, 13127, 13128, 13129, 13131, 13132, 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13143, 13144, 13145, 13146, 13147, 13148, 13149, 13150, 13153, 13156, 13157, 13158, 13163, 13165, 13167, 13168, 13169, 13170, 13171, 13172, 13173, 13174, 13175, 13176, 13177, 13178, 13179, 13180, 13181, 13187, 13188, 13190, 13198, 13205, 13206, 13207, 13208, 13209, 13210, 13211, 13212, 13213, 13214, 13235, 13236, 13237, 13295, 13296, 13297, 13312, 13321, 13323, 13324, 13325, 13332, 13336, 13342, 13345, 13347, 13348, 13349, 13360, 13361, 13363, 13364, 13367, 13368, 13369, 13370, 13371, 13374, 13375, 13422, 13435, 13436, 13437, 13438, 13439, 13440, 13441, 13442, 13443, 13444, 13445, 13447, 13448, 13449, 13450, 13451, 13452, 13461, 13470, 13484, 13485, 13486, 13489, 13490, 13491, 13493, 13494, 13495, 13496, 13497, 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 13511, 13512, 13513, 13514, 13515, 13516, 13517, 13518, 13519, 13520, 13521, 13522, 13523, 13524, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13534, 13535, 13536, 13537, 13538, 13539, 13540, 13541, 13542, 13543, 13544, 13545, 13546, 13547, 13548, 13549, 13550, 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563, 13590, 13591, 13592, 13593, 13594, 13595, 13596, 13597, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606, 13607, 13608, 13609, 13610, 13611, 13612, 13613, 13614, 13615, 13616, 13617, 13618, 13619, 13620, 13621, 13622, 13623, 13624, 13625, 13626, 13627, 13628, 13629, 13630, 13631, 13632, 13633, 13634, 13635, 13636, 13637, 13638, 13639, 13640, 13641, 13642, 13643, 13644, 13645, 13646, 13647, 13648, 13649, 13650, 13651, 13652, 13653, 13654, 13655, 13656, 13657, 13658, 13659, 13660, 13661, 13662, 13663, 13664, 13665, 13666, 13667, 13672, 13673, 13674, 13675, 13676, 13677, 13678, 13679, 13680, 13681, 13682, 13683, 13684, 13685, 13686, 13687, 13688, 13689, 13690, 13691, 13692, 13693, 13694, 13695, 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703, 13704, 13705, 13706, 13707, 13708, 13709, 13710, 13711, 13712, 13713, 13714, 13715, 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726, 13727, 13728, 13729, 13730, 13731, 13732, 13733, 13734, 13735, 13736, 13737, 13738, 13739, 13740, 13741, 13742, 13743, 13744, 13746, 13747, 13748, 13749, 13751, 13752, 13753, 13754, 13755, 13756, 13757, 13758, 13761, 13784, 13789, 13795, 13801, 13802, 13804, 13805, 13806, 13809, 13810, 13813, 13814, 13816, 13817, 13818, 13820, 13821, 13823, 13824, 13825, 13826, 13831, 13845, 13861, 13862, 13863, 13864, 13865, 13871, 13872, 13882, 13887, 13890, 14383, 14384, 14385, 14386, 14387, 14388, 14389, 14390, 14391, 14392, 14393, 14394, 14395, 14396, 14397, 14398, 14399, 14400, 14401, 14402, 14403, 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413, 14414, 14415, 14416, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 14426, 14427, 14428, 14429, 14430, 14431, 14432, 14433, 14434, 14435, 14436, 14437, 14438, 14439, 14440, 14441, 14442, 14443, 14444, 14445, 14446, 14447, 14448, 14449, 14450, 14451, 14452, 14453, 14454, 14455, 14456, 14457, 14458, 14459, 14460, 14461, 14462, 14463, 14464, 14465, 14466, 14467, 14468, 14469, 14470, 14471, 14472, 14473, 14474, 14475, 14476, 14477, 14478, 14479, 14480, 14481, 14482, 14483, 14484, 14485, 14486, 14487, 14488, 14489, 14490, 14491, 14492, 14493, 14494, 14495, 14496, 14497, 14498, 14499, 14500, 14501, 14502, 14503, 14504, 14505, 14506, 14507, 14508, 14509, 14510, 14511, 14512, 14513, 14514, 14515, 14516, 14517, 14518, 14519, 14520, 14521, 14522, 14523, 14524, 14525, 14526, 14527, 14528, 14530, 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14538, 14539, 14540, 14541, 14542, 14543, 14544, 14545, 14546, 14547, 14548, 14549, 14550, 14551, 14552, 14553, 14554, 14556, 14558, 14559, 14560, 14561, 14562, 14563, 14564, 14565, 14566, 14567, 14568, 14569, 14570, 14571, 14572, 14573, 14574, 14575, 14576, 14577, 14578, 14579, 14580, 14581, 14582, 14583, 14584, 14585, 14586, 14587, 14588, 14589, 14590, 14591, 14592, 14593, 14594, 14595, 14596, 14597, 14598, 14599, 14600, 14601, 14602, 14603, 14604, 14605, 14606, 14607, 14608, 14609, 14610, 14611, 14612, 14613, 14614, 14615, 14616, 14617, 14618, 14619, 14620, 14621, 14622, 14623, 14624, 14625, 14626, 14627, 14628, 14629, 14630, 14631, 14632, 14633, 14634, 14635, 14636, 14637, 14638, 14639, 14640, 14641, 14642, 14643, 14650, 14651, 14652, 14653, 14654, 14655, 14656, 14657, 14660, 14661, 14662, 14663, 14664, 14665, 14666, 14667, 14668, 14669, 14670, 14671, 14672, 14673, 14674, 14675, 14676, 14677, 14678, 14679, 14680, 14681, 14682, 14683, 14684, 14685, 14686, 14687, 14688, 14689, 14690, 14691, 14692, 14693, 14694, 14695, 14699, 14700, 14701, 14702, 14703, 14704, 14705, 14706, 14707, 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14715, 14716, 14717, 14718, 14719, 14720, 14721, 14722, 14723, 14724, 14725, 14726, 14727, 14728, 14735, 14736, 14737, 14738, 14739, 14740, 14741, 14742, 14743, 14744, 14745, 14746, 14747, 14748, 14749, 14750, 14751, 14752, 14753, 14754, 14755, 14756, 14757, 14758, 14759, 14760, 14761, 14762, 14763, 14764, 14765, 14770, 14771, 14772, 14773, 14774, 14775, 14776, 14777, 14778, 14779, 14780, 14781, 14782, 14783, 14784, 14785, 14786, 14787, 14788, 14789, 14790, 14791, 14792, 14793, 14794, 14795, 14796, 14797, 14798, 14799, 14800, 14801, 14802, 14803, 14804, 14805, 14806, 14807, 14808, 14809, 14810, 14811, 14812, 14813, 14814, 14815, 14816, 14817, 14818, 14819, 14820, 14821, 14822, 14823, 14824, 14825, 14826, 14827, 14828, 14829, 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14837, 14838, 14839, 14840, 14841, 14842, 14843, 14844, 14845, 14846, 14847, 14848, 14849, 14850, 14851, 14852, 14853, 14854, 14855, 14856, 14858, 14859, 14860, 14861, 14862, 14863, 14864, 14865, 14866, 14867, 14868, 14869, 14870, 14871, 14872, 14873, 14874, 14875, 14876, 14877, 14878, 14879, 14880, 14881, 14882, 14883, 14885, 14886, 14887, 14888, 14889, 14890, 14891, 14892, 14893, 14894, 14895, 14896, 14897, 14898, 14900, 14901, 14902, 14903, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, 15049, 15050, 15051, 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, 15061, 15062, 15063, 15064, 16000, 16001, 16002, 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028, 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, 16041, 16042, 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, 16055, 16056, 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069, 16070, 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084, 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, 16095, 16096, 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16265, 16266, 16267, 16268, 16269, 16270, 16271, 16272, 16273, 16274, 16275, 16276, 16277, 16278, 16279, 16280, 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16292, 16293, 16294, 16295, 16296, 16297, 16298, 16299, 16300, 16301, 16302, 16303, 16304, 16305, 16306, 16307, 16308, 16309, 16310, 16311, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16337, 16338, 16339, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, 16349, 16350, 16351, 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363, 16364, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377, 16378, 16384, 16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, 16397, 16398, 16399, 16400, 16401, 16402, 16403, 16404, 16405, 16406, 16407, 16408, 16409, 16410, 16411, 16420, 16421, 16422, 16423, 16424, 16430, 16434, 16436, 16437, 16438, 16439, 16442, 16444, 16445, 16446, 16448, 16475, 16477, 16479, 16480, 16481, 16498, 16500, 16501, 16502, 16503, 16530, 16531, 16532, 16533, 16534, 16535, 16562, 16563, 16564, 16568, 16571, 16593, 16599, 16601, 16605, 16610, 16613, 16622, 16623, 16627, 16628, 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638, 16639, 16640, 16641, 16642, 16643, 16644, 16645, 16646, 16647, 16648, 16649, 16650, 16651, 16652, 16653, 16654, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16673, 16675, 16676, 16677, 16678, 16681, 16682, 16683, 16684, 16685, 16689, 16690, 16692, 16693, 16694, 16700, 16701, 16702, 16705, 16706, 16707, 16708, 16731, 16732, 16733, 16734, 16735, 16736, 16737, 16738, 16739, 16740, 16741, 16742, 16743, 16744, 16745, 16746, 16747, 16753, 16754, 16756, 16757, 16758, 16759, 16760, 16766, 16767, 16769, 16770, 16771, 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783, 16784, 16785, 16786, 16787, 16788, 16789, 16790, 17000, 17001, 17002, 17003, 17004, 17005, 17006, 17007, 17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015, 17016, 17017, 17018, 17019, 17020, 17021, 17022, 17023, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 17080, 17081, 17082, 17083, 17084, 17085, 17086, 17087, 17088, 17089, 17090, 17091, 17092, 17093, 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17103, 17104, 17105, 17106, 17107, 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119, 17120, 17121, 17122, 17123, 17124, 17125, 17126, 17127, 17128, 17129, 17130, 17131, 17132, 17133, 17134, 17135, 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 17148, 17150, 17152, 17154, 17156, 17158, 17160, 17162, 17164, 17166, 17168, 17170, 17172, 17174, 17176, 17178, 17180, 17182, 17184, 17186, 17188, 17190, 17192, 17194, 17196, 17198, 17200, 17202, 17204, 17208, 17210, 17212, 17214, 17216, 17218, 17220, 17222, 17224, 17226, 17228, 17230, 17232, 17234, 17236, 17238, 17240, 17242, 17244, 17246, 17248, 17250, 17252, 17254, 17256, 17258, 17260, 17262, 17267, 17269, 17271, 17273, 17275, 17277, 17279, 17281, 17283, 17284, 17285, 17286, 17287, 17288, 17289, 17290, 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299, 17300, 17301, 17302, 17303, 17305, 17307, 17308, 17309, 17310, 17323, 17324, 17326, 17327, 17329, 17331, 17333, 17334, 17335, 17426, 17427, 17428, 17429, 17430, 17431, 17432, 17433, 17434, 17436, 17437, 17438, 17439, 17440, 17441, 17442, 17443, 17444, 17448, 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459, 17460, 17461, 17462, 17463, 17464, 17465, 17466, 17467, 17468, 17469, 17470, 17471, 17472, 17474, 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511, 17513, 17514, 17515, 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528, 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539, 17540, 17541, 17542, 17543, 17544, 17545, 17546, 17547, 17548, 17549, 17550, 17551, 17552, 17553, 17554, 17555, 17556, 17557, 17558, 17559, 17560, 17561, 17562, 17563, 17564, 17565, 17566, 17567, 17568, 17573, 17574, 17575, 17576, 17577, 17578, 17579, 17582, 17583, 17585, 17586, 17588, 17589, 17591, 17592, 17594, 17595, 17596, 17597, 17598, 17599, 17600, 17601, 17602, 17603, 17604, 17605, 17606, 17607, 17608, 17609, 17610, 17611, 17612, 17613, 17614, 17615, 17616, 17617, 17618, 17619, 17620, 17621, 17622, 17623, 17624, 17625, 17626, 17627, 17628, 17629, 17630, 17631, 17632, 17633, 17634, 17635, 17636, 17637, 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17645, 17646, 17647, 17648, 17649, 17650, 17651, 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17664, 17665, 17666, 17667, 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678, 17679, 17680, 17681, 17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690, 17691, 17692, 17693, 17694, 17695, 17696, 17697, 17698, 17699, 17700, 17804, 17805, 17807, 17809, 17829, 17841, 17848, 17849, 17851, 17852, 17853, 17854, 17859, 17860, 17862, 17863, 17864, 17865, 17866, 17867, 17872, 17874, 17875, 17876, 17877, 17878, 17879, 17880, 17881, 17886, 17887, 17888, 17891, 17892, 17893, 17894, 17897, 17898, 17899, 17901, 17902, 17904, 17905, 17906, 17907, 17911, 17912, 17913, 17915, 17916, 17917, 17918, 17919, 17920, 17921, 17922, 17925, 17926, 17927, 17928, 17933, 17934, 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17946, 17947, 17950, 17951, 17953, 17954, 17955, 17956, 17957, 17958, 17968, 17969, 17971, 17972, 17973, 17974, 17976, 17978, 18000, 18001, 18002, 18003, 18004, 18005, 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014, 18015, 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028, 18029, 18030, 18031, 18032, 18033, 18034, 18035, 18036, 18038, 18039, 18040, 18041, 18042, 18043, 18044, 18045, 18046, 18047, 18048, 18049, 18050, 18051, 18052, 18053, 18054, 18055, 18056, 18057, 18058, 18059, 18060, 18061, 18062, 18063, 18064, 18065, 18066, 18067, 18068, 18069, 18070, 18071, 18072, 18073, 18074, 18075, 18076, 18077, 18078, 18079, 18080, 18081, 18082, 18083, 18084, 18085, 18086, 18087, 18088, 18089, 18090, 18091, 18092, 18093, 18094, 18095, 18096, 18097, 18098, 18099, 18100, 18101, 18102, 18104, 18105, 18109, 18112, 18200, 18201, 18202, 18203, 18204, 18205, 18206, 18207, 18208, 18209, 18210, 18211, 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219, 18220, 18221, 18222, 18223, 18224, 18225, 18226, 18227, 18228, 18229, 18230, 18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 18240, 18241, 18242, 18243, 18244, 18245, 18246, 18247, 18248, 18249, 18250, 18251, 18252, 18253, 18254, 18255, 18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264, 18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304, 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315, 18316, 18317, 18318, 18319, 18320, 18321, 18322, 18323, 18324, 18325, 18326, 18327, 18328, 18329, 18330, 18331, 18332, 18333, 18334, 18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343, 18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352, 18353, 18354, 18355, 18356, 18357, 18358, 18359, 18360, 18361, 18362, 18363, 18364, 18365, 18366, 18367, 18368, 18369, 18370, 18371, 18372, 18373, 18374, 18375, 18376, 18377, 18378, 18379, 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387, 18388, 18389, 18390, 18391, 18392, 18393, 18394, 18432, 18433, 18434, 18435, 18436, 18437, 18438, 18439, 18440, 18441, 18442, 18443, 18444, 18445, 18446, 18447, 18448, 18449, 18450, 18451, 18452, 18453, 18454, 18455, 18456, 18457, 18458, 18459, 18460, 18461, 18462, 18463, 18464, 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18472, 18473, 18474, 18475, 18476, 18477, 18478, 18479, 18480, 18481, 18482, 18483, 18484, 18485, 18496, 18518, 18551, 18552, 18553, 18561, 18563, 18565, 18566, 18567, 18568, 18569, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10182, 10183, 10184, 10185, 10186, 10187, 10188, 10189, 10190, 10191, 10192, 10193, 10194, 10195, 10196, 10197, 10198, 10199, 10200, 10201, 10202, 10203, 10204, 10205, 10206, 10207, 10208, 10209, 10210, 10211, 10212, 10213, 10214, 10215, 10216, 10217, 10218, 10219, 10220, 10221, 10222, 10223, 10224, 10225, 10226, 10227, 10228, 10229, 10230, 10231, 10232, 10233, 10234, 10235, 10236, 10237, 10238, 10239, 10240, 10241, 10242, 10243, 10244, 10245, 10246, 10247, 10248, 10249, 10250, 10251, 10252, 10253, 10254, 10255, 10256, 10257, 10258, 10259, 10260, 10261, 10262, 10263, 10264, 10265, 10266, 10267, 10268, 10269, 10270, 10271, 10272, 10273, 10274, 10275, 10276, 10277, 10278, 10279, 10280, 10281, 10282, 10283, 10284, 10285, 10286, 10287, 10288, 10289, 10290, 10291, 10292, 10293, 10294, 10295, 10296, 10297, 10298, 10299, 10300, 10301, 10302, 10303, 10304, 10305, 10306, 10307, 10308, 10309, 10310, 10311, 10312, 10313, 10314, 10315, 10316, 10317, 10318, 10319, 10320, 10321, 10322, 10323, 10324, 10325, 10326, 10327, 10328, 10329, 10330, 10331, 10332, 10333, 10334, 10335, 10336, 10337, 10338, 10339, 10340, 10341, 10342, 10343, 10344, 10345, 10346, 10347, 10348, 10349, 10350, 10351, 10352, 10353, 10354, 10355, 10356, 10357, 10358, 10359, 10360, 10361, 10362, 10363, 10364, 10365, 10366, 10367, 10368, 10369, 10370, 10371, 10372, 10373, 10374, 10375, 10376, 10377, 10378, 10379, 10380, 10381, 10382, 10383, 10384, 10385, 10386, 10387, 10388, 10389, 10390, 10391, 10392, 10393, 10394, 10395, 10396, 10397, 10398, 10399, 10400, 10401, 10402, 10403, 10404, 10405, 10406, 10407, 10408, 10409, 10410, 10411, 10412, 10413, 10414, 10415, 10416, 10417, 10418, 10419, 10420, 10421, 10422, 10423, 10424, 10425, 10426, 10427, 10428, 10429, 10430, 10431, 10432, 10433, 10434, 10435, 10436, 10437, 10438, 10439, 10440, 10441, 10442, 10443, 10444, 10445, 10446, 10447, 10448, 10449, 10450, 10451, 10452, 10453, 10454, 10455, 10456, 10457, 10458, 10459, 10460, 10461, 10462, 10463, 10464, 10465, 10466, 10467, 10468, 10469, 10470, 10471, 10472, 10473, 10474, 10475, 10476, 10477, 10478, 10479, 10480, 10481, 10482, 10483, 10484, 10485, 10486, 10487, 10488, 10489, 10490, 10491, 10492, 10493, 10494, 10495, 10496, 10497, 10498, 10499, 10500, 10501, 10502, 10503, 10504, 10505, 10506, 10507, 10508, 10509, 10510, 10511, 10512, 10513, 10514, 10515, 10516, 10517, 10518, 10519, 10520, 10521, 10522, 10523, 10524, 10525, 10526, 10527, 10528, 10529, 10530, 10531, 10532, 10533, 10534, 10535, 10536, 10537, 10538, 10539, 10540, 10541, 10542, 10543, 10544, 10545, 10546, 10547, 10548, 10549, 10550, 10551, 10552, 10553, 10554, 10555, 10556, 10557, 10558, 10559, 10560, 10561, 10562, 10563, 10564, 10565, 10566, 10567, 10568, 10569, 10570, 10571, 10572, 10573, 10574, 10575, 10576, 10577, 10578, 10579, 10580, 10581, 10582, 10583, 10584, 10585, 10586, 10587, 10588, 10589, 10590, 10591, 10592, 10593, 10594, 10595, 10596, 10597, 10598, 10599, 10600, 10601, 10602, 10603, 10604, 10605, 10606, 10607, 10608, 10609, 10610, 10611, 10612, 10613, 10614, 10615, 10616, 10617, 10618, 10619, 10620, 10621, 10622, 10623, 10624, 10625, 10626, 10627, 10628, 10629, 10630, 10631, 10632, 10633, 10634, 10635, 10636, 10637, 10638, 10639, 10640, 10641, 10642, 10643, 10644, 10645, 10646, 10647, 10648, 10649, 10650, 10651, 10652, 10653, 10654, 10655, 10656, 10657, 10658, 10659, 10660, 10661, 10662, 10663, 10664, 10665, 10666, 10667, 10668, 10669, 10670, 10671, 10672, 10673, 10674, 10675, 10676, 10677, 10678, 10679, 10680, 10681, 10682, 10683, 10684, 10685, 10686, 10687, 10688, 10689, 10690, 10691, 10692, 10693, 10694, 10695, 10696, 10697, 10698, 10699, 10700, 10701, 10702, 10703, 10704, 10705, 10706, 10707, 10708, 10709, 10710, 10711, 10712, 10713, 10714, 10715, 10716, 10717, 10718, 10719, 10720, 10721, 10722, 10723, 10724, 10725, 10726, 10727, 10728, 10729, 10730, 10731, 10732, 10733, 10734, 10735, 10736, 10737, 10738, 10739, 10740, 10741, 10742, 10743, 10744, 10745, 10746, 10747, 10748, 10749, 10750, 10751, 10752, 10753, 10754, 10755, 10756, 10757, 10758, 10759, 10760, 10761, 10762, 10763, 10764, 10765, 10766, 10767, 10768, 10769, 10770, 10771, 10772, 10773, 10774, 10775, 10776, 10777, 10778, 10779, 10780, 10781, 10782, 10783, 10784, 10785, 10786, 10787, 10788, 10789, 10790, 10791, 10792, 10793, 10794, 10795, 10796, 10797, 10798, 10799, 10800, 10801, 10802, 10803, 10804, 10805, 10806, 10807, 10808, 10809, 10810, 10811, 10812, 10813, 10814, 10815, 10816, 10817, 10818, 10819, 10820, 10821, 10822, 10823, 10824, 10825, 10826, 10827, 10828, 10829, 10830, 10831, 10832, 10833, 10834, 10835, 10836, 10837, 10838, 10839, 10840, 10841, 10842, 10843, 10844, 10845, 10846, 10847, 10848, 10849, 10850, 10851, 10852, 10853, 10854, 10855, 10856, 10857, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, 10879, 10880, 10881, 10882, 10883, 10884, 10885, 10886, 10887, 10888, 10889, 10890, 10891, 10892, 10893, 10894, 10895, 10896, 10897, 10898, 10899, 10900, 10901, 10902, 10903, 10904, 10905, 10906, 10907, 10908, 10909, 10910, 10911, 10912, 10913, 10914, 10915, 10916, 10917, 10918, 10919, 10920, 10921, 10922, 10923, 10924, 10925, 10926, 10927, 10928, 10929, 10930, 10931, 10932, 10933, 10934, 10935, 10936, 10937, 10938, 10939, 10940, 10941, 10942, 10943, 10944, 10945, 10946, 10947, 10948, 10949, 10950, 10951, 10952, 10953, 10954, 10955, 10956, 10957, 10958, 10959, 10960, 10961, 10962, 10963, 10964, 10965, 10966, 10967, 10968, 10969, 10970, 10971, 10972, 10973, 10974, 10975, 10976, 10977, 10978, 10979, 10980, 10981, 10982, 10983, 10984, 10985, 10986, 10987, 10988, 10989, 10990, 10991, 10992, 10993, 10994, 10995, 10996, 10997, 10998, 10999, 11000, 11001, 11002, 11003, 11004, 11005, 11006, 11007, 11008, 11009, 11010, 11011, 11012, 11013, 11014, 11015, 11016, 11017, 11018, 11019, 11020, 11021, 11022, 11023, 11024, 11025, 11026, 11027, 11028, 11029, 11030, 11031, 11032, 11033, 11034, 11035, 11036, 11037, 11038, 11039, 11040, 11041, 11042, 11043, 11044, 11045, 11046, 11047, 11048, 11049, 11050, 11051, 11052, 11053, 11054, 11055, 11056, 11057, 11058, 11059, 11060, 11061, 11062, 11063, 11064, 11065, 11066, 11067, 11068, 11069, 11070, 11071, 11072, 11073, 11074, 11075, 11076, 11077, 11078, 11079, 11080, 11081, 11082, 11083, 11084, 11085, 11086, 11087, 11088, 11089, 11090, 11091, 11092, 11093, 11094, 11095, 11096, 11097, 11098, 11099, 11100, 11101, 11102, 11103, 11104, 11105, 11106, 11107, 11108, 11109, 11110, 11111, 11112, 11113, 11114, 11115, 11116, 11117, 11118, 11119, 11120, 11121, 11122, 11123, 11124, 11125, 11126, 11127, 11128, 11129, 11130, 11131, 11132, 11133, 11134, 11135, 11136, 11137, 11138, 11139, 11140, 11141, 11142, 11143, 11144, 11145, 11146, 11147, 11148, 11149, 11150, 11151, 11152, 11153, 11154, 11155, 11156, 11157, 11158, 11159, 11160, 11161, 11162, 11163, 11164, 11165, 11166, 11167, 11168, 11169, 11170, 11171, 11172, 11173, 11174, 11175, 11176, 11177, 11178, 11179, 11180, 11181, 11182, 11183, 11184, 11185, 11186, 11187, 11188, 11189, 11190, 11191, 11192, 11193, 11194, 11195, 11196, 11197, 11198, 11199, 11200, 11201, 11202, 11203, 11204, 11205, 11206, 11207, 11208, 11209, 11210, 11211, 11212, 11213, 11214, 11215, 11216, 11217, 11218, 11219, 11220, 11221, 11222, 11223, 11224, 11225, 11226, 11227, 11228, 11229, 11230, 11231, 11232, 11233, 11234, 11235, 11236, 11237, 11238, 11239, 11240, 11241, 11242, 11243, 11244, 11245, 11246, 11247, 11248, 11249, 11250, 11251, 11252, 11253, 11254, 11255, 11256, 11257, 11258, 11259, 11260, 11261, 11262, 11263, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11311, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11359, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11493, 11494, 11495, 11496, 11497, 11498, 11499, 11500, 11501, 11502, 11503, 11504, 11505, 11506, 11507, 11508, 11509, 11510, 11511, 11512, 11513, 11514, 11515, 11516, 11517, 11518, 11519, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11558, 11559, 11560, 11561, 11562, 11563, 11564, 11565, 11566, 11567, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11624, 11625, 11626, 11627, 11628, 11629, 11630, 11631, 11632, 11633, 11634, 11635, 11636, 11637, 11638, 11639, 11640, 11641, 11642, 11643, 11644, 11645, 11646, 11647, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11671, 11672, 11673, 11674, 11675, 11676, 11677, 11678, 11679, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11687, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11695, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11703, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11711, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11719, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11727, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11735, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11743, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 11776, 11777, 11778, 11779, 11780, 11781, 11782, 11783, 11784, 11785, 11786, 11787, 11788, 11789, 11790, 11791, 11792, 11793, 11794, 11795, 11796, 11797, 11798, 11799, 11800, 11801, 11802, 11803, 11804, 11805, 11806, 11807, 11808, 11809, 11810, 11811, 11812, 11813, 11814, 11815, 11816, 11817, 11818, 11819, 11820, 11821, 11822, 11823, 11824, 11825, 11826, 11827, 11828, 11829, 11830, 11831, 11832, 11833, 11834, 11835, 11836, 11837, 11838, 11839, 11840, 11841, 11842, 11843, 11844, 11845, 11846, 11847, 11848, 11849, 11850, 11851, 11852, 11853, 11854, 11855, 11856, 11857, 11858, 11859, 11860, 11861, 11862, 11863, 11864, 11865, 11866, 11867, 11868, 11869, 11870, 11871, 11872, 11873, 11874, 11875, 11876, 11877, 11878, 11879, 11880, 11881, 11882, 11883, 11884, 11885, 11886, 11887, 11888, 11889, 11890, 11891, 11892, 11893, 11894, 11895, 11896, 11897, 11898, 11899, 11900, 11901, 11902, 11903, 11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919, 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11930, 11931, 11932, 11933, 11934, 11935, 11936, 11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952, 11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968, 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984, 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009, 12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, 12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12068, 12069, 12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079, 12080, 12081, 12082, 12083, 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093, 12094, 12095, 12096, 12097, 12098, 12099, 12100, 12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116, 12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132, 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148, 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159, 12160, 12161, 12162, 12163, 12164, 12165, 12166, 12167, 12168, 12169, 12170, 12171, 12172, 12173, 12174, 12175, 12176, 12177, 12178, 12179, 12180, 12181, 12182, 12183, 12184, 12185, 12186, 12187, 12188, 12189, 12190, 12191, 12192, 12193, 12194, 12195, 12196, 12197, 12198, 12199, 12200, 12201, 12202, 12203, 12204, 12205, 12206, 12207, 12208, 12209, 12210, 12211, 12212, 12213, 12214, 12215, 12216, 12217, 12218, 12219, 12220, 12221, 12222, 12223, 12224, 12225, 12226, 12227, 12228, 12229, 12230, 12231, 12232, 12233, 12234, 12235, 12236, 12237, 12238, 12239, 12240, 12241, 12242, 12243, 12244, 12245, 12246, 12247, 12248, 12249, 12250, 12251, 12252, 12253, 12254, 12255, 12256, 12257, 12258, 12259, 12260, 12261, 12262, 12263, 12264, 12265, 12266, 12267, 12268, 12269, 12270, 12271, 12272, 12273, 12274, 12275, 12276, 12277, 12278, 12279, 12280, 12281, 12282, 12283, 12284, 12285, 12286, 12287, 12288, 12289, 12290, 12291, 12292, 12293, 12294, 12295, 12296, 12297, 12298, 12299, 12300, 12301, 12302, 12303, 12304, 12305, 12306, 12307, 12308, 12309, 12310, 12311, 12312, 12313, 12314, 12315, 12316, 12317, 12318, 12319, 12320, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12330, 12331, 12332, 12333, 12334, 12335, 12336, 12337, 12338, 12339, 12340, 12341, 12342, 12343, 12344, 12345, 12346, 12347, 12348, 12349, 12350, 12351, 12352, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12439, 12440, 12441, 12442, 12443, 12444, 12445, 12446, 12447, 12448, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12539, 12540, 12541, 12542, 12543, 12544, 12545, 12546, 12547, 12548, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, 12588, 12589, 12590, 12591, 12592, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12687, 12688, 12689, 12690, 12691, 12692, 12693, 12694, 12695, 12696, 12697, 12698, 12699, 12700, 12701, 12702, 12703, 12704, 12705, 12706, 12707, 12708, 12709, 12710, 12711, 12712, 12713, 12714, 12715, 12716, 12717, 12718, 12719, 12720, 12721, 12722, 12723, 12724, 12725, 12726, 12727, 12728, 12729, 12730, 12731, 12732, 12733, 12734, 12735, 12736, 12737, 12738, 12739, 12740, 12741, 12742, 12743, 12744, 12745, 12746, 12747, 12748, 12749, 12750, 12751, 12752, 12753, 12754, 12755, 12756, 12757, 12758, 12759, 12760, 12761, 12762, 12763, 12764, 12765, 12766, 12767, 12768, 12769, 12770, 12771, 12772, 12773, 12774, 12775, 12776, 12777, 12778, 12779, 12780, 12781, 12782, 12783, 12784, 12785, 12786, 12787, 12788, 12789, 12790, 12791, 12792, 12793, 12794, 12795, 12796, 12797, 12798, 12799, 12800, 12801, 12802, 12803, 12804, 12805, 12806, 12807, 12808, 12809, 12810, 12811, 12812, 12813, 12814, 12815, 12816, 12817, 12818, 12819, 12820, 12821, 12822, 12823, 12824, 12825, 12826, 12827, 12828, 12829, 12830, 12831, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 12842, 12843, 12844, 12845, 12846, 12847, 12848, 12849, 12850, 12851, 12852, 12853, 12854, 12855, 12856, 12857, 12858, 12859, 12860, 12861, 12862, 12863, 12864, 12865, 12866, 12867, 12868, 12869, 12870, 12871, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12880, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12896, 12897, 12898, 12899, 12900, 12901, 12902, 12903, 12904, 12905, 12906, 12907, 12908, 12909, 12910, 12911, 12912, 12913, 12914, 12915, 12916, 12917, 12918, 12919, 12920, 12921, 12922, 12923, 12924, 12925, 12926, 12927, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12938, 12939, 12940, 12941, 12942, 12943, 12944, 12945, 12946, 12947, 12948, 12949, 12950, 12951, 12952, 12953, 12954, 12955, 12956, 12957, 12958, 12959, 12960, 12961, 12962, 12963, 12964, 12965, 12966, 12967, 12968, 12969, 12970, 12971, 12972, 12973, 12974, 12975, 12976, 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, 12992, 12993, 12994, 12995, 12996, 12997, 12998, 12999, 13000, 13001, 13002, 13003, 13004, 13005, 13006, 13007, 13008, 13009, 13010, 13011, 13012, 13013, 13014, 13015, 13016, 13017, 13018, 13019, 13020, 13021, 13022, 13023, 13024, 13025, 13026, 13027, 13028, 13029, 13030, 13031, 13032, 13033, 13034, 13035, 13036, 13037, 13038, 13039, 13040, 13041, 13042, 13043, 13044, 13045, 13046, 13047, 13048, 13049, 13050, 13051, 13052, 13053, 13054, 13055, 13056, 13057, 13058, 13059, 13060, 13061, 13062, 13063, 13064, 13065, 13066, 13067, 13068, 13069, 13070, 13071, 13072, 13073, 13074, 13075, 13076, 13077, 13078, 13079, 13080, 13081, 13082, 13083, 13084, 13085, 13086, 13087, 13088, 13089, 13090, 13091, 13092, 13093, 13094, 13095, 13096, 13097, 13098, 13099, 13100, 13101, 13102, 13103, 13104, 13105, 13106, 13107, 13108, 13109, 13110, 13111, 13112, 13113, 13114, 13115, 13116, 13117, 13118, 13119, 13120, 13121, 13122, 13123, 13124, 13125, 13126, 13127, 13128, 13129, 13130, 13131, 13132, 13133, 13134, 13135, 13136, 13137, 13138, 13139, 13140, 13141, 13142, 13143, 13144, 13145, 13146, 13147, 13148, 13149, 13150, 13151, 13152, 13153, 13154, 13155, 13156, 13157, 13158, 13159, 13160, 13161, 13162, 13163, 13164, 13165, 13166, 13167, 13168, 13169, 13170, 13171, 13172, 13173, 13174, 13175, 13176, 13177, 13178, 13179, 13180, 13181, 13182, 13183, 13184, 13185, 13186, 13187, 13188, 13189, 13190, 13191, 13192, 13193, 13194, 13195, 13196, 13197, 13198, 13199, 13200, 13201, 13202, 13203, 13204, 13205, 13206, 13207, 13208, 13209, 13210, 13211, 13212, 13213, 13214, 13215, 13216, 13217, 13218, 13219, 13220, 13221, 13222, 13223, 13224, 13225, 13226, 13227, 13228, 13229, 13230, 13231, 13232, 13233, 13234, 13235, 13236, 13237, 13238, 13239, 13240, 13241, 13242, 13243, 13244, 13245, 13246, 13247, 13248, 13249, 13250, 13251, 13252, 13253, 13254, 13255, 13256, 13257, 13258, 13259, 13260, 13261, 13262, 13263, 13264, 13265, 13266, 13267, 13268, 13269, 13270, 13271, 13272, 13273, 13274, 13275, 13276, 13277, 13278, 13279, 13280, 13281, 13282, 13283, 13284, 13285, 13286, 13287, 13288, 13289, 13290, 13291, 13292, 13293, 13294, 13295, 13296, 13297, 13298, 13299, 13300, 13301, 13302, 13303, 13304, 13305, 13306, 13307, 13308, 13309, 13310, 13311, 13312, 13313, 13314, 13315, 13316, 13317, 13318, 13319, 13320, 13321, 13322, 13323, 13324, 13325, 13326, 13327, 13328, 13329, 13330, 13331, 13332, 13333, 13334, 13335, 13336, 13337, 13338, 13339, 13340, 13341, 13342, 13343, 13344, 13345, 13346, 13347, 13348, 13349, 13350, 13351, 13352, 13353, 13354, 13355, 13356, 13357, 13358, 13359, 13360, 13361, 13362, 13363, 13364, 13365, 13366, 13367, 13368, 13369, 13370, 13371, 13372, 13373, 13374, 13375, 13376, 13377, 13378, 13379, 13380, 13381, 13382, 13383, 13384, 13385, 13386, 13387, 13388, 13389, 13390, 13391, 13392, 13393, 13394, 13395, 13396, 13397, 13398, 13399, 13400, 13401, 13402, 13403, 13404, 13405, 13406, 13407, 13408, 13409, 13410, 13411, 13412, 13413, 13414, 13415, 13416, 13417, 13418, 13419, 13420, 13421, 13422, 13423, 13424, 13425, 13426, 13427, 13428, 13429, 13430, 13431, 13432, 13433, 13434, 13435, 13436, 13437, 13438, 13439, 13440, 13441, 13442, 13443, 13444, 13445, 13446, 13447, 13448, 13449, 13450, 13451, 13452, 13453, 13454, 13455, 13456, 13457, 13458, 13459, 13460, 13461, 13462, 13463, 13464, 13465, 13466, 13467, 13468, 13469, 13470, 13471, 13472, 13473, 13474, 13475, 13476, 13477, 13478, 13479, 13480, 13481, 13482, 13483, 13484, 13485, 13486, 13487, 13488, 13489, 13490, 13491, 13492, 13493, 13494, 13495, 13496, 13497, 13498, 13499, 13500, 13501, 13502, 13503, 13504, 13505, 13506, 13507, 13508, 13509, 13510, 13511, 13512, 13513, 13514, 13515, 13516, 13517, 13518, 13519, 13520, 13521, 13522, 13523, 13524, 13525, 13526, 13527, 13528, 13529, 13530, 13531, 13532, 13533, 13534, 13535, 13536, 13537, 13538, 13539, 13540, 13541, 13542, 13543, 13544, 13545, 13546, 13547, 13548, 13549, 13550, 13551, 13552, 13553, 13554, 13555, 13556, 13557, 13558, 13559, 13560, 13561, 13562, 13563, 13564, 13565, 13566, 13567, 13568, 13569, 13570, 13571, 13572, 13573, 13574, 13575, 13576, 13577, 13578, 13579, 13580, 13581, 13582, 13583, 13584, 13585, 13586, 13587, 13588, 13589, 13590, 13591, 13592, 13593, 13594, 13595, 13596, 13597, 13598, 13599, 13600, 13601, 13602, 13603, 13604, 13605, 13606, 13607, 13608, 13609, 13610, 13611, 13612, 13613, 13614, 13615, 13616, 13617, 13618, 13619, 13620, 13621, 13622, 13623, 13624, 13625, 13626, 13627, 13628, 13629, 13630, 13631, 13632, 13633, 13634, 13635, 13636, 13637, 13638, 13639, 13640, 13641, 13642, 13643, 13644, 13645, 13646, 13647, 13648, 13649, 13650, 13651, 13652, 13653, 13654, 13655, 13656, 13657, 13658, 13659, 13660, 13661, 13662, 13663, 13664, 13665, 13666, 13667, 13668, 13669, 13670, 13671, 13672, 13673, 13674, 13675, 13676, 13677, 13678, 13679, 13680, 13681, 13682, 13683, 13684, 13685, 13686, 13687, 13688, 13689, 13690, 13691, 13692, 13693, 13694, 13695, 13696, 13697, 13698, 13699, 13700, 13701, 13702, 13703, 13704, 13705, 13706, 13707, 13708, 13709, 13710, 13711, 13712, 13713, 13714, 13715, 13716, 13717, 13718, 13719, 13720, 13721, 13722, 13723, 13724, 13725, 13726, 13727, 13728, 13729, 13730, 13731, 13732, 13733, 13734, 13735, 13736, 13737, 13738, 13739, 13740, 13741, 13742, 13743, 13744, 13745, 13746, 13747, 13748, 13749, 13750, 13751, 13752, 13753, 13754, 13755, 13756, 13757, 13758, 13759, 13760, 13761, 13762, 13763, 13764, 13765, 13766, 13767, 13768, 13769, 13770, 13771, 13772, 13773, 13774, 13775, 13776, 13777, 13778, 13779, 13780, 13781, 13782, 13783, 13784, 13785, 13786, 13787, 13788, 13789, 13790, 13791, 13792, 13793, 13794, 13795, 13796, 13797, 13798, 13799, 13800, 13801, 13802, 13803, 13804, 13805, 13806, 13807, 13808, 13809, 13810, 13811, 13812, 13813, 13814, 13815, 13816, 13817, 13818, 13819, 13820, 13821, 13822, 13823, 13824, 13825, 13826, 13827, 13828, 13829, 13830, 13831, 13832, 13833, 13834, 13835, 13836, 13837, 13838, 13839, 13840, 13841, 13842, 13843, 13844, 13845, 13846, 13847, 13848, 13849, 13850, 13851, 13852, 13853, 13854, 13855, 13856, 13857, 13858, 13859, 13860, 13861, 13862, 13863, 13864, 13865, 13866, 13867, 13868, 13869, 13870, 13871, 13872, 13873, 13874, 13875, 13876, 13877, 13878, 13879, 13880, 13881, 13882, 13883, 13884, 13885, 13886, 13887, 13888, 13889, 13890, 13891, 13892, 13893, 13894, 13895, 13896, 13897, 13898, 13899, 13900, 13901, 13902, 13903, 13904, 13905, 13906, 13907, 13908, 13909, 13910, 13911, 13912, 13913, 13914, 13915, 13916, 13917, 13918, 13919, 13920, 13921, 13922, 13923, 13924, 13925, 13926, 13927, 13928, 13929, 13930, 13931, 13932, 13933, 13934, 13935, 13936, 13937, 13938, 13939, 13940, 13941, 13942, 13943, 13944, 13945, 13946, 13947, 13948, 13949, 13950, 13951, 13952, 13953, 13954, 13955, 13956, 13957, 13958, 13959, 13960, 13961, 13962, 13963, 13964, 13965, 13966, 13967, 13968, 13969, 13970, 13971, 13972, 13973, 13974, 13975, 13976, 13977, 13978, 13979, 13980, 13981, 13982, 13983, 13984, 13985, 13986, 13987, 13988, 13989, 13990, 13991, 13992, 13993, 13994, 13995, 13996, 13997, 13998, 13999, 14000, 14001, 14002, 14003, 14004, 14005, 14006, 14007, 14008, 14009, 14010, 14011, 14012, 14013, 14014, 14015, 14016, 14017, 14018, 14019, 14020, 14021, 14022, 14023, 14024, 14025, 14026, 14027, 14028, 14029, 14030, 14031, 14032, 14033, 14034, 14035, 14036, 14037, 14038, 14039, 14040, 14041, 14042, 14043, 14044, 14045, 14046, 14047, 14048, 14049, 14050, 14051, 14052, 14053, 14054, 14055, 14056, 14057, 14058, 14059, 14060, 14061, 14062, 14063, 14064, 14065, 14066, 14067, 14068, 14069, 14070, 14071, 14072, 14073, 14074, 14075, 14076, 14077, 14078, 14079, 14080, 14081, 14082, 14083, 14084, 14085, 14086, 14087, 14088, 14089, 14090, 14091, 14092, 14093, 14094, 14095, 14096, 14097, 14098, 14099, 14100, 14101, 14102, 14103, 14104, 14105, 14106, 14107, 14108, 14109, 14110, 14111, 14112, 14113, 14114, 14115, 14116, 14117, 14118, 14119, 14120, 14121, 14122, 14123, 14124, 14125, 14126, 14127, 14128, 14129, 14130, 14131, 14132, 14133, 14134, 14135, 14136, 14137, 14138, 14139, 14140, 14141, 14142, 14143, 14144, 14145, 14146, 14147, 14148, 14149, 14150, 14151, 14152, 14153, 14154, 14155, 14156, 14157, 14158, 14159, 14160, 14161, 14162, 14163, 14164, 14165, 14166, 14167, 14168, 14169, 14170, 14171, 14172, 14173, 14174, 14175, 14176, 14177, 14178, 14179, 14180, 14181, 14182, 14183, 14184, 14185, 14186, 14187, 14188, 14189, 14190, 14191, 14192, 14193, 14194, 14195, 14196, 14197, 14198, 14199, 14200, 14201, 14202, 14203, 14204, 14205, 14206, 14207, 14208, 14209, 14210, 14211, 14212, 14213, 14214, 14215, 14216, 14217, 14218, 14219, 14220, 14221, 14222, 14223, 14224, 14225, 14226, 14227, 14228, 14229, 14230, 14231, 14232, 14233, 14234, 14235, 14236, 14237, 14238, 14239, 14240, 14241, 14242, 14243, 14244, 14245, 14246, 14247, 14248, 14249, 14250, 14251, 14252, 14253, 14254, 14255, 14256, 14257, 14258, 14259, 14260, 14261, 14262, 14263, 14264, 14265, 14266, 14267, 14268, 14269, 14270, 14271, 14272, 14273, 14274, 14275, 14276, 14277, 14278, 14279, 14280, 14281, 14282, 14283, 14284, 14285, 14286, 14287, 14288, 14289, 14290, 14291, 14292, 14293, 14294, 14295, 14296, 14297, 14298, 14299, 14300, 14301, 14302, 14303, 14304, 14305, 14306, 14307, 14308, 14309, 14310, 14311, 14312, 14313, 14314, 14315, 14316, 14317, 14318, 14319, 14320, 14321, 14322, 14323, 14324, 14325, 14326, 14327, 14328, 14329, 14330, 14331, 14332, 14333, 14334, 14335, 14336, 14337, 14338, 14339, 14340, 14341, 14342, 14343, 14344, 14345, 14346, 14347, 14348, 14349, 14350, 14351, 14352, 14353, 14354, 14355, 14356, 14357, 14358, 14359, 14360, 14361, 14362, 14363, 14364, 14365, 14366, 14367, 14368, 14369, 14370, 14371, 14372, 14373, 14374, 14375, 14376, 14377, 14378, 14379, 14380, 14381, 14382, 14383, 14384, 14385, 14386, 14387, 14388, 14389, 14390, 14391, 14392, 14393, 14394, 14395, 14396, 14397, 14398, 14399, 14400, 14401, 14402, 14403, 14404, 14405, 14406, 14407, 14408, 14409, 14410, 14411, 14412, 14413, 14414, 14415, 14416, 14417, 14418, 14419, 14420, 14421, 14422, 14423, 14424, 14425, 14426, 14427, 14428, 14429, 14430, 14431, 14432, 14433, 14434, 14435, 14436, 14437, 14438, 14439, 14440, 14441, 14442, 14443, 14444, 14445, 14446, 14447, 14448, 14449, 14450, 14451, 14452, 14453, 14454, 14455, 14456, 14457, 14458, 14459, 14460, 14461, 14462, 14463, 14464, 14465, 14466, 14467, 14468, 14469, 14470, 14471, 14472, 14473, 14474, 14475, 14476, 14477, 14478, 14479, 14480, 14481, 14482, 14483, 14484, 14485, 14486, 14487, 14488, 14489, 14490, 14491, 14492, 14493, 14494, 14495, 14496, 14497, 14498, 14499, 14500, 14501, 14502, 14503, 14504, 14505, 14506, 14507, 14508, 14509, 14510, 14511, 14512, 14513, 14514, 14515, 14516, 14517, 14518, 14519, 14520, 14521, 14522, 14523, 14524, 14525, 14526, 14527, 14528, 14529, 14530, 14531, 14532, 14533, 14534, 14535, 14536, 14537, 14538, 14539, 14540, 14541, 14542, 14543, 14544, 14545, 14546, 14547, 14548, 14549, 14550, 14551, 14552, 14553, 14554, 14555, 14556, 14557, 14558, 14559, 14560, 14561, 14562, 14563, 14564, 14565, 14566, 14567, 14568, 14569, 14570, 14571, 14572, 14573, 14574, 14575, 14576, 14577, 14578, 14579, 14580, 14581, 14582, 14583, 14584, 14585, 14586, 14587, 14588, 14589, 14590, 14591, 14592, 14593, 14594, 14595, 14596, 14597, 14598, 14599, 14600, 14601, 14602, 14603, 14604, 14605, 14606, 14607, 14608, 14609, 14610, 14611, 14612, 14613, 14614, 14615, 14616, 14617, 14618, 14619, 14620, 14621, 14622, 14623, 14624, 14625, 14626, 14627, 14628, 14629, 14630, 14631, 14632, 14633, 14634, 14635, 14636, 14637, 14638, 14639, 14640, 14641, 14642, 14643, 14644, 14645, 14646, 14647, 14648, 14649, 14650, 14651, 14652, 14653, 14654, 14655, 14656, 14657, 14658, 14659, 14660, 14661, 14662, 14663, 14664, 14665, 14666, 14667, 14668, 14669, 14670, 14671, 14672, 14673, 14674, 14675, 14676, 14677, 14678, 14679, 14680, 14681, 14682, 14683, 14684, 14685, 14686, 14687, 14688, 14689, 14690, 14691, 14692, 14693, 14694, 14695, 14696, 14697, 14698, 14699, 14700, 14701, 14702, 14703, 14704, 14705, 14706, 14707, 14708, 14709, 14710, 14711, 14712, 14713, 14714, 14715, 14716, 14717, 14718, 14719, 14720, 14721, 14722, 14723, 14724, 14725, 14726, 14727, 14728, 14729, 14730, 14731, 14732, 14733, 14734, 14735, 14736, 14737, 14738, 14739, 14740, 14741, 14742, 14743, 14744, 14745, 14746, 14747, 14748, 14749, 14750, 14751, 14752, 14753, 14754, 14755, 14756, 14757, 14758, 14759, 14760, 14761, 14762, 14763, 14764, 14765, 14766, 14767, 14768, 14769, 14770, 14771, 14772, 14773, 14774, 14775, 14776, 14777, 14778, 14779, 14780, 14781, 14782, 14783, 14784, 14785, 14786, 14787, 14788, 14789, 14790, 14791, 14792, 14793, 14794, 14795, 14796, 14797, 14798, 14799, 14800, 14801, 14802, 14803, 14804, 14805, 14806, 14807, 14808, 14809, 14810, 14811, 14812, 14813, 14814, 14815, 14816, 14817, 14818, 14819, 14820, 14821, 14822, 14823, 14824, 14825, 14826, 14827, 14828, 14829, 14830, 14831, 14832, 14833, 14834, 14835, 14836, 14837, 14838, 14839, 14840, 14841, 14842, 14843, 14844, 14845, 14846, 14847, 14848, 14849, 14850, 14851, 14852, 14853, 14854, 14855, 14856, 14857, 14858, 14859, 14860, 14861, 14862, 14863, 14864, 14865, 14866, 14867, 14868, 14869, 14870, 14871, 14872, 14873, 14874, 14875, 14876, 14877, 14878, 14879, 14880, 14881, 14882, 14883, 14884, 14885, 14886, 14887, 14888, 14889, 14890, 14891, 14892, 14893, 14894, 14895, 14896, 14897, 14898, 14899, 14900, 14901, 14902, 14903, 14904, 14905, 14906, 14907, 14908, 14909, 14910, 14911, 14912, 14913, 14914, 14915, 14916, 14917, 14918, 14919, 14920, 14921, 14922, 14923, 14924, 14925, 14926, 14927, 14928, 14929, 14930, 14931, 14932, 14933, 14934, 14935, 14936, 14937, 14938, 14939, 14940, 14941, 14942, 14943, 14944, 14945, 14946, 14947, 14948, 14949, 14950, 14951, 14952, 14953, 14954, 14955, 14956, 14957, 14958, 14959, 14960, 14961, 14962, 14963, 14964, 14965, 14966, 14967, 14968, 14969, 14970, 14971, 14972, 14973, 14974, 14975, 14976, 14977, 14978, 14979, 14980, 14981, 14982, 14983, 14984, 14985, 14986, 14987, 14988, 14989, 14990, 14991, 14992, 14993, 14994, 14995, 14996, 14997, 14998, 14999, 15000, 15001, 15002, 15003, 15004, 15005, 15006, 15007, 15008, 15009, 15010, 15011, 15012, 15013, 15014, 15015, 15016, 15017, 15018, 15019, 15020, 15021, 15022, 15023, 15024, 15025, 15026, 15027, 15028, 15029, 15030, 15031, 15032, 15033, 15034, 15035, 15036, 15037, 15038, 15039, 15040, 15041, 15042, 15043, 15044, 15045, 15046, 15047, 15048, 15049, 15050, 15051, 15052, 15053, 15054, 15055, 15056, 15057, 15058, 15059, 15060, 15061, 15062, 15063, 15064, 15065, 15066, 15067, 15068, 15069, 15070, 15071, 15072, 15073, 15074, 15075, 15076, 15077, 15078, 15079, 15080, 15081, 15082, 15083, 15084, 15085, 15086, 15087, 15088, 15089, 15090, 15091, 15092, 15093, 15094, 15095, 15096, 15097, 15098, 15099, 15100, 15101, 15102, 15103, 15104, 15105, 15106, 15107, 15108, 15109, 15110, 15111, 15112, 15113, 15114, 15115, 15116, 15117, 15118, 15119, 15120, 15121, 15122, 15123, 15124, 15125, 15126, 15127, 15128, 15129, 15130, 15131, 15132, 15133, 15134, 15135, 15136, 15137, 15138, 15139, 15140, 15141, 15142, 15143, 15144, 15145, 15146, 15147, 15148, 15149, 15150, 15151, 15152, 15153, 15154, 15155, 15156, 15157, 15158, 15159, 15160, 15161, 15162, 15163, 15164, 15165, 15166, 15167, 15168, 15169, 15170, 15171, 15172, 15173, 15174, 15175, 15176, 15177, 15178, 15179, 15180, 15181, 15182, 15183, 15184, 15185, 15186, 15187, 15188, 15189, 15190, 15191, 15192, 15193, 15194, 15195, 15196, 15197, 15198, 15199, 15200, 15201, 15202, 15203, 15204, 15205, 15206, 15207, 15208, 15209, 15210, 15211, 15212, 15213, 15214, 15215, 15216, 15217, 15218, 15219, 15220, 15221, 15222, 15223, 15224, 15225, 15226, 15227, 15228, 15229, 15230, 15231, 15232, 15233, 15234, 15235, 15236, 15237, 15238, 15239, 15240, 15241, 15242, 15243, 15244, 15245, 15246, 15247, 15248, 15249, 15250, 15251, 15252, 15253, 15254, 15255, 15256, 15257, 15258, 15259, 15260, 15261, 15262, 15263, 15264, 15265, 15266, 15267, 15268, 15269, 15270, 15271, 15272, 15273, 15274, 15275, 15276, 15277, 15278, 15279, 15280, 15281, 15282, 15283, 15284, 15285, 15286, 15287, 15288, 15289, 15290, 15291, 15292, 15293, 15294, 15295, 15296, 15297, 15298, 15299, 15300, 15301, 15302, 15303, 15304, 15305, 15306, 15307, 15308, 15309, 15310, 15311, 15312, 15313, 15314, 15315, 15316, 15317, 15318, 15319, 15320, 15321, 15322, 15323, 15324, 15325, 15326, 15327, 15328, 15329, 15330, 15331, 15332, 15333, 15334, 15335, 15336, 15337, 15338, 15339, 15340, 15341, 15342, 15343, 15344, 15345, 15346, 15347, 15348, 15349, 15350, 15351, 15352, 15353, 15354, 15355, 15356, 15357, 15358, 15359, 15360, 15361, 15362, 15363, 15364, 15365, 15366, 15367, 15368, 15369, 15370, 15371, 15372, 15373, 15374, 15375, 15376, 15377, 15378, 15379, 15380, 15381, 15382, 15383, 15384, 15385, 15386, 15387, 15388, 15389, 15390, 15391, 15392, 15393, 15394, 15395, 15396, 15397, 15398, 15399, 15400, 15401, 15402, 15403, 15404, 15405, 15406, 15407, 15408, 15409, 15410, 15411, 15412, 15413, 15414, 15415, 15416, 15417, 15418, 15419, 15420, 15421, 15422, 15423, 15424, 15425, 15426, 15427, 15428, 15429, 15430, 15431, 15432, 15433, 15434, 15435, 15436, 15437, 15438, 15439, 15440, 15441, 15442, 15443, 15444, 15445, 15446, 15447, 15448, 15449, 15450, 15451, 15452, 15453, 15454, 15455, 15456, 15457, 15458, 15459, 15460, 15461, 15462, 15463, 15464, 15465, 15466, 15467, 15468, 15469, 15470, 15471, 15472, 15473, 15474, 15475, 15476, 15477, 15478, 15479, 15480, 15481, 15482, 15483, 15484, 15485, 15486, 15487, 15488, 15489, 15490, 15491, 15492, 15493, 15494, 15495, 15496, 15497, 15498, 15499, 15500, 15501, 15502, 15503, 15504, 15505, 15506, 15507, 15508, 15509, 15510, 15511, 15512, 15513, 15514, 15515, 15516, 15517, 15518, 15519, 15520, 15521, 15522, 15523, 15524, 15525, 15526, 15527, 15528, 15529, 15530, 15531, 15532, 15533, 15534, 15535, 15536, 15537, 15538, 15539, 15540, 15541, 15542, 15543, 15544, 15545, 15546, 15547, 15548, 15549, 15550, 15551, 15552, 15553, 15554, 15555, 15556, 15557, 15558, 15559, 15560, 15561, 15562, 15563, 15564, 15565, 15566, 15567, 15568, 15569, 15570, 15571, 15572, 15573, 15574, 15575, 15576, 15577, 15578, 15579, 15580, 15581, 15582, 15583, 15584, 15585, 15586, 15587, 15588, 15589, 15590, 15591, 15592, 15593, 15594, 15595, 15596, 15597, 15598, 15599, 15600, 15601, 15602, 15603, 15604, 15605, 15606, 15607, 15608, 15609, 15610, 15611, 15612, 15613, 15614, 15615, 15616, 15617, 15618, 15619, 15620, 15621, 15622, 15623, 15624, 15625, 15626, 15627, 15628, 15629, 15630, 15631, 15632, 15633, 15634, 15635, 15636, 15637, 15638, 15639, 15640, 15641, 15642, 15643, 15644, 15645, 15646, 15647, 15648, 15649, 15650, 15651, 15652, 15653, 15654, 15655, 15656, 15657, 15658, 15659, 15660, 15661, 15662, 15663, 15664, 15665, 15666, 15667, 15668, 15669, 15670, 15671, 15672, 15673, 15674, 15675, 15676, 15677, 15678, 15679, 15680, 15681, 15682, 15683, 15684, 15685, 15686, 15687, 15688, 15689, 15690, 15691, 15692, 15693, 15694, 15695, 15696, 15697, 15698, 15699, 15700, 15701, 15702, 15703, 15704, 15705, 15706, 15707, 15708, 15709, 15710, 15711, 15712, 15713, 15714, 15715, 15716, 15717, 15718, 15719, 15720, 15721, 15722, 15723, 15724, 15725, 15726, 15727, 15728, 15729, 15730, 15731, 15732, 15733, 15734, 15735, 15736, 15737, 15738, 15739, 15740, 15741, 15742, 15743, 15744, 15745, 15746, 15747, 15748, 15749, 15750, 15751, 15752, 15753, 15754, 15755, 15756, 15757, 15758, 15759, 15760, 15761, 15762, 15763, 15764, 15765, 15766, 15767, 15768, 15769, 15770, 15771, 15772, 15773, 15774, 15775, 15776, 15777, 15778, 15779, 15780, 15781, 15782, 15783, 15784, 15785, 15786, 15787, 15788, 15789, 15790, 15791, 15792, 15793, 15794, 15795, 15796, 15797, 15798, 15799, 15800, 15801, 15802, 15803, 15804, 15805, 15806, 15807, 15808, 15809, 15810, 15811, 15812, 15813, 15814, 15815, 15816, 15817, 15818, 15819, 15820, 15821, 15822, 15823, 15824, 15825, 15826, 15827, 15828, 15829, 15830, 15831, 15832, 15833, 15834, 15835, 15836, 15837, 15838, 15839, 15840, 15841, 15842, 15843, 15844, 15845, 15846, 15847, 15848, 15849, 15850, 15851, 15852, 15853, 15854, 15855, 15856, 15857, 15858, 15859, 15860, 15861, 15862, 15863, 15864, 15865, 15866, 15867, 15868, 15869, 15870, 15871, 15872, 15873, 15874, 15875, 15876, 15877, 15878, 15879, 15880, 15881, 15882, 15883, 15884, 15885, 15886, 15887, 15888, 15889, 15890, 15891, 15892, 15893, 15894, 15895, 15896, 15897, 15898, 15899, 15900, 15901, 15902, 15903, 15904, 15905, 15906, 15907, 15908, 15909, 15910, 15911, 15912, 15913, 15914, 15915, 15916, 15917, 15918, 15919, 15920, 15921, 15922, 15923, 15924, 15925, 15926, 15927, 15928, 15929, 15930, 15931, 15932, 15933, 15934, 15935, 15936, 15937, 15938, 15939, 15940, 15941, 15942, 15943, 15944, 15945, 15946, 15947, 15948, 15949, 15950, 15951, 15952, 15953, 15954, 15955, 15956, 15957, 15958, 15959, 15960, 15961, 15962, 15963, 15964, 15965, 15966, 15967, 15968, 15969, 15970, 15971, 15972, 15973, 15974, 15975, 15976, 15977, 15978, 15979, 15980, 15981, 15982, 15983, 15984, 15985, 15986, 15987, 15988, 15989, 15990, 15991, 15992, 15993, 15994, 15995, 15996, 15997, 15998, 15999, 16000, 16001, 16002, 16003, 16004, 16005, 16006, 16007, 16008, 16009, 16010, 16011, 16012, 16013, 16014, 16015, 16016, 16017, 16018, 16019, 16020, 16021, 16022, 16023, 16024, 16025, 16026, 16027, 16028, 16029, 16030, 16031, 16032, 16033, 16034, 16035, 16036, 16037, 16038, 16039, 16040, 16041, 16042, 16043, 16044, 16045, 16046, 16047, 16048, 16049, 16050, 16051, 16052, 16053, 16054, 16055, 16056, 16057, 16058, 16059, 16060, 16061, 16062, 16063, 16064, 16065, 16066, 16067, 16068, 16069, 16070, 16071, 16072, 16073, 16074, 16075, 16076, 16077, 16078, 16079, 16080, 16081, 16082, 16083, 16084, 16085, 16086, 16087, 16088, 16089, 16090, 16091, 16092, 16093, 16094, 16095, 16096, 16097, 16098, 16099, 16100, 16101, 16102, 16103, 16104, 16105, 16106, 16107, 16108, 16109, 16110, 16111, 16112, 16113, 16114, 16115, 16116, 16117, 16118, 16119, 16120, 16121, 16122, 16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131, 16132, 16133, 16134, 16135, 16136, 16137, 16138, 16139, 16140, 16141, 16142, 16143, 16144, 16145, 16146, 16147, 16148, 16149, 16150, 16151, 16152, 16153, 16154, 16155, 16156, 16157, 16158, 16159, 16160, 16161, 16162, 16163, 16164, 16165, 16166, 16167, 16168, 16169, 16170, 16171, 16172, 16173, 16174, 16175, 16176, 16177, 16178, 16179, 16180, 16181, 16182, 16183, 16184, 16185, 16186, 16187, 16188, 16189, 16190, 16191, 16192, 16193, 16194, 16195, 16196, 16197, 16198, 16199, 16200, 16201, 16202, 16203, 16204, 16205, 16206, 16207, 16208, 16209, 16210, 16211, 16212, 16213, 16214, 16215, 16216, 16217, 16218, 16219, 16220, 16221, 16222, 16223, 16224, 16225, 16226, 16227, 16228, 16229, 16230, 16231, 16232, 16233, 16234, 16235, 16236, 16237, 16238, 16239, 16240, 16241, 16242, 16243, 16244, 16245, 16246, 16247, 16248, 16249, 16250, 16251, 16252, 16253, 16254, 16255, 16256, 16257, 16258, 16259, 16260, 16261, 16262, 16263, 16264, 16265, 16266, 16267, 16268, 16269, 16270, 16271, 16272, 16273, 16274, 16275, 16276, 16277, 16278, 16279, 16280, 16281, 16282, 16283, 16284, 16285, 16286, 16287, 16288, 16289, 16290, 16291, 16292, 16293, 16294, 16295, 16296, 16297, 16298, 16299, 16300, 16301, 16302, 16303, 16304, 16305, 16306, 16307, 16308, 16309, 16310, 16311, 16312, 16313, 16314, 16315, 16316, 16317, 16318, 16319, 16320, 16321, 16322, 16323, 16324, 16325, 16326, 16327, 16328, 16329, 16330, 16331, 16332, 16333, 16334, 16335, 16336, 16337, 16338, 16339, 16340, 16341, 16342, 16343, 16344, 16345, 16346, 16347, 16348, 16349, 16350, 16351, 16352, 16353, 16354, 16355, 16356, 16357, 16358, 16359, 16360, 16361, 16362, 16363, 16364, 16365, 16366, 16367, 16368, 16369, 16370, 16371, 16372, 16373, 16374, 16375, 16376, 16377, 16378, 16379, 16380, 16381, 16382, 16383, 16384, 16385, 16386, 16387, 16388, 16389, 16390, 16391, 16392, 16393, 16394, 16395, 16396, 16397, 16398, 16399, 16400, 16401, 16402, 16403, 16404, 16405, 16406, 16407, 16408, 16409, 16410, 16411, 16412, 16413, 16414, 16415, 16416, 16417, 16418, 16419, 16420, 16421, 16422, 16423, 16424, 16425, 16426, 16427, 16428, 16429, 16430, 16431, 16432, 16433, 16434, 16435, 16436, 16437, 16438, 16439, 16440, 16441, 16442, 16443, 16444, 16445, 16446, 16447, 16448, 16449, 16450, 16451, 16452, 16453, 16454, 16455, 16456, 16457, 16458, 16459, 16460, 16461, 16462, 16463, 16464, 16465, 16466, 16467, 16468, 16469, 16470, 16471, 16472, 16473, 16474, 16475, 16476, 16477, 16478, 16479, 16480, 16481, 16482, 16483, 16484, 16485, 16486, 16487, 16488, 16489, 16490, 16491, 16492, 16493, 16494, 16495, 16496, 16497, 16498, 16499, 16500, 16501, 16502, 16503, 16504, 16505, 16506, 16507, 16508, 16509, 16510, 16511, 16512, 16513, 16514, 16515, 16516, 16517, 16518, 16519, 16520, 16521, 16522, 16523, 16524, 16525, 16526, 16527, 16528, 16529, 16530, 16531, 16532, 16533, 16534, 16535, 16536, 16537, 16538, 16539, 16540, 16541, 16542, 16543, 16544, 16545, 16546, 16547, 16548, 16549, 16550, 16551, 16552, 16553, 16554, 16555, 16556, 16557, 16558, 16559, 16560, 16561, 16562, 16563, 16564, 16565, 16566, 16567, 16568, 16569, 16570, 16571, 16572, 16573, 16574, 16575, 16576, 16577, 16578, 16579, 16580, 16581, 16582, 16583, 16584, 16585, 16586, 16587, 16588, 16589, 16590, 16591, 16592, 16593, 16594, 16595, 16596, 16597, 16598, 16599, 16600, 16601, 16602, 16603, 16604, 16605, 16606, 16607, 16608, 16609, 16610, 16611, 16612, 16613, 16614, 16615, 16616, 16617, 16618, 16619, 16620, 16621, 16622, 16623, 16624, 16625, 16626, 16627, 16628, 16629, 16630, 16631, 16632, 16633, 16634, 16635, 16636, 16637, 16638, 16639, 16640, 16641, 16642, 16643, 16644, 16645, 16646, 16647, 16648, 16649, 16650, 16651, 16652, 16653, 16654, 16655, 16656, 16657, 16658, 16659, 16660, 16661, 16662, 16663, 16664, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16672, 16673, 16674, 16675, 16676, 16677, 16678, 16679, 16680, 16681, 16682, 16683, 16684, 16685, 16686, 16687, 16688, 16689, 16690, 16691, 16692, 16693, 16694, 16695, 16696, 16697, 16698, 16699, 16700, 16701, 16702, 16703, 16704, 16705, 16706, 16707, 16708, 16709, 16710, 16711, 16712, 16713, 16714, 16715, 16716, 16717, 16718, 16719, 16720, 16721, 16722, 16723, 16724, 16725, 16726, 16727, 16728, 16729, 16730, 16731, 16732, 16733, 16734, 16735, 16736, 16737, 16738, 16739, 16740, 16741, 16742, 16743, 16744, 16745, 16746, 16747, 16748, 16749, 16750, 16751, 16752, 16753, 16754, 16755, 16756, 16757, 16758, 16759, 16760, 16761, 16762, 16763, 16764, 16765, 16766, 16767, 16768, 16769, 16770, 16771, 16772, 16773, 16774, 16775, 16776, 16777, 16778, 16779, 16780, 16781, 16782, 16783, 16784, 16785, 16786, 16787, 16788, 16789, 16790, 16791, 16792, 16793, 16794, 16795, 16796, 16797, 16798, 16799, 16800, 16801, 16802, 16803, 16804, 16805, 16806, 16807, 16808, 16809, 16810, 16811, 16812, 16813, 16814, 16815, 16816, 16817, 16818, 16819, 16820, 16821, 16822, 16823, 16824, 16825, 16826, 16827, 16828, 16829, 16830, 16831, 16832, 16833, 16834, 16835, 16836, 16837, 16838, 16839, 16840, 16841, 16842, 16843, 16844, 16845, 16846, 16847, 16848, 16849, 16850, 16851, 16852, 16853, 16854, 16855, 16856, 16857, 16858, 16859, 16860, 16861, 16862, 16863, 16864, 16865, 16866, 16867, 16868, 16869, 16870, 16871, 16872, 16873, 16874, 16875, 16876, 16877, 16878, 16879, 16880, 16881, 16882, 16883, 16884, 16885, 16886, 16887, 16888, 16889, 16890, 16891, 16892, 16893, 16894, 16895, 16896, 16897, 16898, 16899, 16900, 16901, 16902, 16903, 16904, 16905, 16906, 16907, 16908, 16909, 16910, 16911, 16912, 16913, 16914, 16915, 16916, 16917, 16918, 16919, 16920, 16921, 16922, 16923, 16924, 16925, 16926, 16927, 16928, 16929, 16930, 16931, 16932, 16933, 16934, 16935, 16936, 16937, 16938, 16939, 16940, 16941, 16942, 16943, 16944, 16945, 16946, 16947, 16948, 16949, 16950, 16951, 16952, 16953, 16954, 16955, 16956, 16957, 16958, 16959, 16960, 16961, 16962, 16963, 16964, 16965, 16966, 16967, 16968, 16969, 16970, 16971, 16972, 16973, 16974, 16975, 16976, 16977, 16978, 16979, 16980, 16981, 16982, 16983, 16984, 16985, 16986, 16987, 16988, 16989, 16990, 16991, 16992, 16993, 16994, 16995, 16996, 16997, 16998, 16999, 17000, 17001, 17002, 17003, 17004, 17005, 17006, 17007, 17008, 17009, 17010, 17011, 17012, 17013, 17014, 17015, 17016, 17017, 17018, 17019, 17020, 17021, 17022, 17023, 17024, 17025, 17026, 17027, 17028, 17029, 17030, 17031, 17032, 17033, 17034, 17035, 17036, 17037, 17038, 17039, 17040, 17041, 17042, 17043, 17044, 17045, 17046, 17047, 17048, 17049, 17050, 17051, 17052, 17053, 17054, 17055, 17056, 17057, 17058, 17059, 17060, 17061, 17062, 17063, 17064, 17065, 17066, 17067, 17068, 17069, 17070, 17071, 17072, 17073, 17074, 17075, 17076, 17077, 17078, 17079, 17080, 17081, 17082, 17083, 17084, 17085, 17086, 17087, 17088, 17089, 17090, 17091, 17092, 17093, 17094, 17095, 17096, 17097, 17098, 17099, 17100, 17101, 17102, 17103, 17104, 17105, 17106, 17107, 17108, 17109, 17110, 17111, 17112, 17113, 17114, 17115, 17116, 17117, 17118, 17119, 17120, 17121, 17122, 17123, 17124, 17125, 17126, 17127, 17128, 17129, 17130, 17131, 17132, 17133, 17134, 17135, 17136, 17137, 17138, 17139, 17140, 17141, 17142, 17143, 17144, 17145, 17146, 17147, 17148, 17149, 17150, 17151, 17152, 17153, 17154, 17155, 17156, 17157, 17158, 17159, 17160, 17161, 17162, 17163, 17164, 17165, 17166, 17167, 17168, 17169, 17170, 17171, 17172, 17173, 17174, 17175, 17176, 17177, 17178, 17179, 17180, 17181, 17182, 17183, 17184, 17185, 17186, 17187, 17188, 17189, 17190, 17191, 17192, 17193, 17194, 17195, 17196, 17197, 17198, 17199, 17200, 17201, 17202, 17203, 17204, 17205, 17206, 17207, 17208, 17209, 17210, 17211, 17212, 17213, 17214, 17215, 17216, 17217, 17218, 17219, 17220, 17221, 17222, 17223, 17224, 17225, 17226, 17227, 17228, 17229, 17230, 17231, 17232, 17233, 17234, 17235, 17236, 17237, 17238, 17239, 17240, 17241, 17242, 17243, 17244, 17245, 17246, 17247, 17248, 17249, 17250, 17251, 17252, 17253, 17254, 17255, 17256, 17257, 17258, 17259, 17260, 17261, 17262, 17263, 17264, 17265, 17266, 17267, 17268, 17269, 17270, 17271, 17272, 17273, 17274, 17275, 17276, 17277, 17278, 17279, 17280, 17281, 17282, 17283, 17284, 17285, 17286, 17287, 17288, 17289, 17290, 17291, 17292, 17293, 17294, 17295, 17296, 17297, 17298, 17299, 17300, 17301, 17302, 17303, 17304, 17305, 17306, 17307, 17308, 17309, 17310, 17311, 17312, 17313, 17314, 17315, 17316, 17317, 17318, 17319, 17320, 17321, 17322, 17323, 17324, 17325, 17326, 17327, 17328, 17329, 17330, 17331, 17332, 17333, 17334, 17335, 17336, 17337, 17338, 17339, 17340, 17341, 17342, 17343, 17344, 17345, 17346, 17347, 17348, 17349, 17350, 17351, 17352, 17353, 17354, 17355, 17356, 17357, 17358, 17359, 17360, 17361, 17362, 17363, 17364, 17365, 17366, 17367, 17368, 17369, 17370, 17371, 17372, 17373, 17374, 17375, 17376, 17377, 17378, 17379, 17380, 17381, 17382, 17383, 17384, 17385, 17386, 17387, 17388, 17389, 17390, 17391, 17392, 17393, 17394, 17395, 17396, 17397, 17398, 17399, 17400, 17401, 17402, 17403, 17404, 17405, 17406, 17407, 17408, 17409, 17410, 17411, 17412, 17413, 17414, 17415, 17416, 17417, 17418, 17419, 17420, 17421, 17422, 17423, 17424, 17425, 17426, 17427, 17428, 17429, 17430, 17431, 17432, 17433, 17434, 17435, 17436, 17437, 17438, 17439, 17440, 17441, 17442, 17443, 17444, 17445, 17446, 17447, 17448, 17449, 17450, 17451, 17452, 17453, 17454, 17455, 17456, 17457, 17458, 17459, 17460, 17461, 17462, 17463, 17464, 17465, 17466, 17467, 17468, 17469, 17470, 17471, 17472, 17473, 17474, 17475, 17476, 17477, 17478, 17479, 17480, 17481, 17482, 17483, 17484, 17485, 17486, 17487, 17488, 17489, 17490, 17491, 17492, 17493, 17494, 17495, 17496, 17497, 17498, 17499, 17500, 17501, 17502, 17503, 17504, 17505, 17506, 17507, 17508, 17509, 17510, 17511, 17512, 17513, 17514, 17515, 17516, 17517, 17518, 17519, 17520, 17521, 17522, 17523, 17524, 17525, 17526, 17527, 17528, 17529, 17530, 17531, 17532, 17533, 17534, 17535, 17536, 17537, 17538, 17539, 17540, 17541, 17542, 17543, 17544, 17545, 17546, 17547, 17548, 17549, 17550, 17551, 17552, 17553, 17554, 17555, 17556, 17557, 17558, 17559, 17560, 17561, 17562, 17563, 17564, 17565, 17566, 17567, 17568, 17569, 17570, 17571, 17572, 17573, 17574, 17575, 17576, 17577, 17578, 17579, 17580, 17581, 17582, 17583, 17584, 17585, 17586, 17587, 17588, 17589, 17590, 17591, 17592, 17593, 17594, 17595, 17596, 17597, 17598, 17599, 17600, 17601, 17602, 17603, 17604, 17605, 17606, 17607, 17608, 17609, 17610, 17611, 17612, 17613, 17614, 17615, 17616, 17617, 17618, 17619, 17620, 17621, 17622, 17623, 17624, 17625, 17626, 17627, 17628, 17629, 17630, 17631, 17632, 17633, 17634, 17635, 17636, 17637, 17638, 17639, 17640, 17641, 17642, 17643, 17644, 17645, 17646, 17647, 17648, 17649, 17650, 17651, 17652, 17653, 17654, 17655, 17656, 17657, 17658, 17659, 17660, 17661, 17662, 17663, 17664, 17665, 17666, 17667, 17668, 17669, 17670, 17671, 17672, 17673, 17674, 17675, 17676, 17677, 17678, 17679, 17680, 17681, 17682, 17683, 17684, 17685, 17686, 17687, 17688, 17689, 17690, 17691, 17692, 17693, 17694, 17695, 17696, 17697, 17698, 17699, 17700, 17701, 17702, 17703, 17704, 17705, 17706, 17707, 17708, 17709, 17710, 17711, 17712, 17713, 17714, 17715, 17716, 17717, 17718, 17719, 17720, 17721, 17722, 17723, 17724, 17725, 17726, 17727, 17728, 17729, 17730, 17731, 17732, 17733, 17734, 17735, 17736, 17737, 17738, 17739, 17740, 17741, 17742, 17743, 17744, 17745, 17746, 17747, 17748, 17749, 17750, 17751, 17752, 17753, 17754, 17755, 17756, 17757, 17758, 17759, 17760, 17761, 17762, 17763, 17764, 17765, 17766, 17767, 17768, 17769, 17770, 17771, 17772, 17773, 17774, 17775, 17776, 17777, 17778, 17779, 17780, 17781, 17782, 17783, 17784, 17785, 17786, 17787, 17788, 17789, 17790, 17791, 17792, 17793, 17794, 17795, 17796, 17797, 17798, 17799, 17800, 17801, 17802, 17803, 17804, 17805, 17806, 17807, 17808, 17809, 17810, 17811, 17812, 17813, 17814, 17815, 17816, 17817, 17818, 17819, 17820, 17821, 17822, 17823, 17824, 17825, 17826, 17827, 17828, 17829, 17830, 17831, 17832, 17833, 17834, 17835, 17836, 17837, 17838, 17839, 17840, 17841, 17842, 17843, 17844, 17845, 17846, 17847, 17848, 17849, 17850, 17851, 17852, 17853, 17854, 17855, 17856, 17857, 17858, 17859, 17860, 17861, 17862, 17863, 17864, 17865, 17866, 17867, 17868, 17869, 17870, 17871, 17872, 17873, 17874, 17875, 17876, 17877, 17878, 17879, 17880, 17881, 17882, 17883, 17884, 17885, 17886, 17887, 17888, 17889, 17890, 17891, 17892, 17893, 17894, 17895, 17896, 17897, 17898, 17899, 17900, 17901, 17902, 17903, 17904, 17905, 17906, 17907, 17908, 17909, 17910, 17911, 17912, 17913, 17914, 17915, 17916, 17917, 17918, 17919, 17920, 17921, 17922, 17923, 17924, 17925, 17926, 17927, 17928, 17929, 17930, 17931, 17932, 17933, 17934, 17935, 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17945, 17946, 17947, 17948, 17949, 17950, 17951, 17952, 17953, 17954, 17955, 17956, 17957, 17958, 17959, 17960, 17961, 17962, 17963, 17964, 17965, 17966, 17967, 17968, 17969, 17970, 17971, 17972, 17973, 17974, 17975, 17976, 17977, 17978, 17979, 17980, 17981, 17982, 17983, 17984, 17985, 17986, 17987, 17988, 17989, 17990, 17991, 17992, 17993, 17994, 17995, 17996, 17997, 17998, 17999, 18000, 18001, 18002, 18003, 18004, 18005, 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014, 18015, 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023, 18024, 18025, 18026, 18027, 18028, 18029, 18030, 18031, 18032, 18033, 18034, 18035, 18036, 18037, 18038, 18039, 18040, 18041, 18042, 18043, 18044, 18045, 18046, 18047, 18048, 18049, 18050, 18051, 18052, 18053, 18054, 18055, 18056, 18057, 18058, 18059, 18060, 18061, 18062, 18063, 18064, 18065, 18066, 18067, 18068, 18069, 18070, 18071, 18072, 18073, 18074, 18075, 18076, 18077, 18078, 18079, 18080, 18081, 18082, 18083, 18084, 18085, 18086, 18087, 18088, 18089, 18090, 18091, 18092, 18093, 18094, 18095, 18096, 18097, 18098, 18099, 18100, 18101, 18102, 18103, 18104, 18105, 18106, 18107, 18108, 18109, 18110, 18111, 18112, 18113, 18114, 18115, 18116, 18117, 18118, 18119, 18120, 18121, 18122, 18123, 18124, 18125, 18126, 18127, 18128, 18129, 18130, 18131, 18132, 18133, 18134, 18135, 18136, 18137, 18138, 18139, 18140, 18141, 18142, 18143, 18144, 18145, 18146, 18147, 18148, 18149, 18150, 18151, 18152, 18153, 18154, 18155, 18156, 18157, 18158, 18159, 18160, 18161, 18162, 18163, 18164, 18165, 18166, 18167, 18168, 18169, 18170, 18171, 18172, 18173, 18174, 18175, 18176, 18177, 18178, 18179, 18180, 18181, 18182, 18183, 18184, 18185, 18186, 18187, 18188, 18189, 18190, 18191, 18192, 18193, 18194, 18195, 18196, 18197, 18198, 18199, 18200, 18201, 18202, 18203, 18204, 18205, 18206, 18207, 18208, 18209, 18210, 18211, 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219, 18220, 18221, 18222, 18223, 18224, 18225, 18226, 18227, 18228, 18229, 18230, 18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 18240, 18241, 18242, 18243, 18244, 18245, 18246, 18247, 18248, 18249, 18250, 18251, 18252, 18253, 18254, 18255, 18256, 18257, 18258, 18259, 18260, 18261, 18262, 18263, 18264, 18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272, 18273, 18274, 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282, 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292, 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302, 18303, 18304, 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312, 18313, 18314, 18315, 18316, 18317, 18318, 18319, 18320, 18321, 18322, 18323, 18324, 18325, 18326, 18327, 18328, 18329, 18330, 18331, 18332, 18333, 18334, 18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342, 18343, 18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352, 18353, 18354, 18355, 18356, 18357, 18358, 18359, 18360, 18361, 18362, 18363, 18364, 18365, 18366, 18367, 18368, 18369, 18370, 18371, 18372, 18373, 18374, 18375, 18376, 18377, 18378, 18379, 18380, 18381, 18382, 18383, 18384, 18385, 18386, 18387, 18388, 18389, 18390, 18391, 18392, 18393, 18394, 18395, 18396, 18397, 18398, 18399, 18400, 18401, 18402, 18403, 18404, 18405, 18406, 18407, 18408, 18409, 18410, 18411, 18412, 18413, 18414, 18415, 18416, 18417, 18418, 18419, 18420, 18421, 18422, 18423, 18424, 18425, 18426, 18427, 18428, 18429, 18430, 18431, 18432, 18433, 18434, 18435, 18436, 18437, 18438, 18439, 18440, 18441, 18442, 18443, 18444, 18445, 18446, 18447, 18448, 18449, 18450, 18451, 18452, 18453, 18454, 18455, 18456, 18457, 18458, 18459, 18460, 18461, 18462, 18463, 18464, 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18472, 18473, 18474, 18475, 18476, 18477, 18478, 18479, 18480, 18481, 18482, 18483, 18484, 18485, 18486, 18487, 18488, 18489, 18490, 18491, 18492, 18493, 18494, 18495, 18496, 18497, 18498, 18499, 18500, 18501, 18502, 18503, 18504, 18505, 18506, 18507, 18508, 18509, 18510, 18511, 18512, 18513, 18514, 18515, 18516, 18517, 18518, 18519, 18520, 18521, 18522, 18523, 18524, 18525, 18526, 18527, 18528, 18529, 18530, 18531, 18532, 18533, 18534, 18535, 18536, 18537, 18538, 18539, 18540, 18541, 18542, 18543, 18544, 18545, 18546, 18547, 18548, 18549, 18550, 18551, 18552, 18553, 18554, 18555, 18556, 18557, 18558, 18559, 18560, 18561, 18562, 18563, 18564, 18565, 18566, 18567, 18568, 18569, 18570, 18571, 18572, 18573, 18574, 18575, 18576, 18577, 18578, 18579, 18580, 18581, 18582, 18583, 18584, 18585, 18586, 18587, 18588, 18589, 18590, 18591, 18592, 18593, 18594, 18595, 18596, 18597, 18598, 18599, 18600, 18601, 18602, 18603, 18604, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612, 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622, 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 18631, 18632, 18633, 18634, 18635, 18636, 18637, 18638, 18639, 18640, 18641, 18642, 18643, 18644, 18645, 18646, 18647, 18648, 18649, 18650, 18651, 18652, 18653, 18654, 18655, 18656, 18657, 18658, 18659, 18660, 18661, 18662, 18663, 18664, 18665, 18666, 18667, 18668, 18669, 18670, 18671, 18672, 18673, 18674, 18675, 18676, 18677, 18678, 18679, 18680, 18681, 18682, 18683, 18684, 18685, 18686, 18687, 18688, 18689, 18690, 18691, 18692, 18693, 18694, 18695, 18696, 18697, 18698, 18699, 18700, 18701, 18702, 18703, 18704, 18705, 18706, 18707, 18708, 18709, 18710, 18711, 18712, 18713, 18714, 18715, 18716, 18717, 18718, 18719, 18720, 18721, 18722, 18723, 18724, 18725, 18726, 18727, 18728, 18729, 18730, 18731, 18732, 18733, 18734, 18735, 18736, 18737, 18738, 18739, 18740, 18741, 18742, 18743, 18744, 18745, 18746, 18747, 18748, 18749, 18750, 18751, 18752, 18753, 18754, 18755, 18756, 18757, 18758, 18759, 18760, 18761, 18762, 18763, 18764, 18765, 18766, 18767, 18768, 18769, 18770, 18771, 18772, 18773, 18774, 18775, 18776, 18777, 18778, 18779, 18780, 18781, 18782, 18783, 18784, 18785, 18786, 18787, 18788, 18789, 18790, 18791, 18792, 18793, 18794, 18795, 18796, 18797, 18798, 18799, 18800, 18801, 18802, 18803, 18804, 18805, 18806, 18807, 18808, 18809, 18810, 18811, 18812, 18813, 18814, 18815, 18816, 18817, 18818, 18819, 18820, 18821, 18822, 18823, 18824, 18825, 18826, 18827, 18828, 18829, 18830, 18831, 18832, 18833, 18834, 18835, 18836, 18837, 18838, 18839, 18840, 18841, 18842, 18843, 18844, 18845, 18846, 18847, 18848, 18849, 18850, 18851, 18852, 18853, 18854, 18855, 18856, 18857, 18858, 18859, 18860, 18861, 18862, 18863, 18864, 18865, 18866, 18867, 18868, 18869, 18870, 18871, 18872, 18873, 18874, 18875, 18876, 18877, 18878, 18879, 18880, 18881, 18882, 18883, 18884, 18885, 18886, 18887, 18888, 18889, 18890, 18891, 18892, 18893, 18894, 18895, 18896, 18897, 18898, 18899, 18900, 18901, 18902, 18903, 18904, 18905, 18906, 18907, 18908, 18909, 18910, 18911, 18912, 18913, 18914, 18915, 18916, 18917, 18918, 18919, 18920, 18921, 18922, 18923, 18924, 18925, 18926, 18927, 18928, 18929, 18930, 18931, 18932, 18933, 18934, 18935, 18936, 18937, 18938, 18939, 18940, 18941, 18942, 18943, 18944, 18945, 18946, 18947, 18948, 18949, 18950, 18951, 18952, 18953, 18954, 18955, 18956, 18957, 18958, 18959, 18960, 18961, 18962, 18963, 18964, 18965, 18966, 18967, 18968, 18969, 18970, 18971, 18972, 18973, 18974, 18975, 18976, 18977, 18978, 18979, 18980, 18981, 18982, 18983, 18984, 18985, 18986, 18987, 18988, 18989, 18990, 18991, 18992, 18993, 18994, 18995, 18996, 18997, 18998, 18999, 19000, 19001, 19002, 19003, 19004, 19005, 19006, 19007, 19008, 19009, 19010, 19011, 19012, 19013, 19014, 19015, 19016, 19017, 19018, 19019, 19020, 19021, 19022, 19023, 19024, 19025, 19026, 19027, 19028, 19029, 19030, 19031, 19032, 19033, 19034, 19035, 19036, 19037, 19038, 19039, 19040, 19041, 19042, 19043, 19044, 19045, 19046, 19047, 19048, 19049, 19050, 19051, 19052, 19053, 19054, 19055, 19056, 19057, 19058, 19059, 19060, 19061, 19062, 19063, 19064, 19065, 19066, 19067, 19068, 19069, 19070, 19071, 19072, 19073, 19074, 19075, 19076, 19077, 19078, 19079, 19080, 19081, 19082, 19083, 19084, 19085, 19086, 19087, 19088, 19089, 19090, 19091, 19092, 19093, 19094, 19095, 19096, 19097, 19098, 19099, 19100, 19101, 19102, 19103, 19104, 19105, 19106, 19107, 19108, 19109, 19110, 19111, 19112, 19113, 19114, 19115, 19116, 19117, 19118, 19119, 19120, 19121, 19122, 19123, 19124, 19125, 19126, 19127, 19128, 19129, 19130, 19131, 19132, 19133, 19134, 19135, 19136, 19137, 19138, 19139, 19140, 19141, 19142, 19143, 19144, 19145, 19146, 19147, 19148, 19149, 19150, 19151, 19152, 19153, 19154, 19155, 19156, 19157, 19158, 19159, 19160, 19161, 19162, 19163, 19164, 19165, 19166, 19167, 19168, 19169, 19170, 19171, 19172, 19173, 19174, 19175, 19176, 19177, 19178, 19179, 19180, 19181, 19182, 19183, 19184, 19185, 19186, 19187, 19188, 19189, 19190, 19191, 19192, 19193, 19194, 19195, 19196, 19197, 19198, 19199, 19200, 19201, 19202, 19203, 19204, 19205, 19206, 19207, 19208, 19209, 19210, 19211, 19212, 19213, 19214, 19215, 19216, 19217, 19218, 19219, 19220, 19221, 19222, 19223, 19224, 19225, 19226, 19227, 19228, 19229, 19230, 19231, 19232, 19233, 19234, 19235, 19236, 19237, 19238, 19239, 19240, 19241, 19242, 19243, 19244, 19245, 19246, 19247, 19248, 19249, 19250, 19251, 19252, 19253, 19254, 19255, 19256, 19257, 19258, 19259, 19260, 19261, 19262, 19263, 19264, 19265, 19266, 19267, 19268, 19269, 19270, 19271, 19272, 19273, 19274, 19275, 19276, 19277, 19278, 19279, 19280, 19281, 19282, 19283, 19284, 19285, 19286, 19287, 19288, 19289, 19290, 19291, 19292, 19293, 19294, 19295, 19296, 19297, 19298, 19299, 19300, 19301, 19302, 19303, 19304, 19305, 19306, 19307, 19308, 19309, 19310, 19311, 19312, 19313, 19314, 19315, 19316, 19317, 19318, 19319, 19320, 19321, 19322, 19323, 19324, 19325, 19326, 19327, 19328, 19329, 19330, 19331, 19332, 19333, 19334, 19335, 19336, 19337, 19338, 19339, 19340, 19341, 19342, 19343, 19344, 19345, 19346, 19347, 19348, 19349, 19350, 19351, 19352, 19353, 19354, 19355, 19356, 19357, 19358, 19359, 19360, 19361, 19362, 19363, 19364, 19365, 19366, 19367, 19368, 19369, 19370, 19371, 19372, 19373, 19374, 19375, 19376, 19377, 19378, 19379, 19380, 19381, 19382, 19383, 19384, 19385, 19386, 19387, 19388, 19389, 19390, 19391, 19392, 19393, 19394, 19395, 19396, 19397, 19398, 19399, 19400, 19401, 19402, 19403, 19404, 19405, 19406, 19407, 19408, 19409, 19410, 19411, 19412, 19413, 19414, 19415, 19416, 19417, 19418, 19419, 19420, 19421, 19422, 19423, 19424, 19425, 19426, 19427, 19428, 19429, 19430, 19431, 19432, 19433, 19434, 19435, 19436, 19437, 19438, 19439, 19440, 19441, 19442, 19443, 19444, 19445, 19446, 19447, 19448, 19449, 19450, 19451, 19452, 19453, 19454, 19455, 19456, 19457, 19458, 19459, 19460, 19461, 19462, 19463, 19464, 19465, 19466, 19467, 19468, 19469, 19470, 19471, 19472, 19473, 19474, 19475, 19476, 19477, 19478, 19479, 19480, 19481, 19482, 19483, 19484, 19485, 19486, 19487, 19488, 19489, 19490, 19491, 19492, 19493, 19494, 19495, 19496, 19497, 19498, 19499, 19500, 19501, 19502, 19503, 19504, 19505, 19506, 19507, 19508, 19509, 19510, 19511, 19512, 19513, 19514, 19515, 19516, 19517, 19518, 19519, 19520, 19521, 19522, 19523, 19524, 19525, 19526, 19527, 19528, 19529, 19530, 19531, 19532, 19533, 19534, 19535, 19536, 19537, 19538, 19539, 19540, 19541, 19542, 19543, 19544, 19545, 19546, 19547, 19548, 19549, 19550, 19551, 19552, 19553, 19554, 19555, 19556, 19557, 19558, 19559, 19560, 19561, 19562, 19563, 19564, 19565, 19566, 19567, 19568, 19569, 19570, 19571, 19572, 19573, 19574, 19575, 19576, 19577, 19578, 19579, 19580, 19581, 19582, 19583, 19584, 19585, 19586, 19587, 19588, 19589, 19590, 19591, 19592, 19593, 19594, 19595, 19596, 19597, 19598, 19599, 19600, 19601, 19602, 19603, 19604, 19605, 19606, 19607, 19608, 19609, 19610, 19611, 19612, 19613, 19614, 19615, 19616, 19617, 19618, 19619, 19620, 19621, 19622, 19623, 19624, 19625, 19626, 19627, 19628, 19629, 19630, 19631, 19632, 19633, 19634, 19635, 19636, 19637, 19638, 19639, 19640, 19641, 19642, 19643, 19644, 19645, 19646, 19647, 19648, 19649, 19650, 19651, 19652, 19653, 19654, 19655, 19656, 19657, 19658, 19659, 19660, 19661, 19662, 19663, 19664, 19665, 19666, 19667, 19668, 19669, 19670, 19671, 19672, 19673, 19674, 19675, 19676, 19677, 19678, 19679, 19680, 19681, 19682, 19683, 19684, 19685, 19686, 19687, 19688, 19689, 19690, 19691, 19692, 19693, 19694, 19695, 19696, 19697, 19698, 19699, 19700, 19701, 19702, 19703, 19704, 19705, 19706, 19707, 19708, 19709, 19710, 19711, 19712, 19713, 19714, 19715, 19716, 19717, 19718, 19719, 19720, 19721, 19722, 19723, 19724, 19725, 19726, 19727, 19728, 19729, 19730, 19731, 19732, 19733, 19734, 19735, 19736, 19737, 19738, 19739, 19740, 19741, 19742, 19743, 19744, 19745, 19746, 19747, 19748, 19749, 19750, 19751, 19752, 19753, 19754, 19755, 19756, 19757, 19758, 19759, 19760, 19761, 19762, 19763, 19764, 19765, 19766, 19767, 19768, 19769, 19770, 19771, 19772, 19773, 19774, 19775, 19776, 19777, 19778, 19779, 19780, 19781, 19782, 19783, 19784, 19785, 19786, 19787, 19788, 19789, 19790, 19791, 19792, 19793, 19794, 19795, 19796, 19797, 19798, 19799, 19800, 19801, 19802, 19803, 19804, 19805, 19806, 19807, 19808, 19809, 19810, 19811, 19812, 19813, 19814, 19815, 19816, 19817, 19818, 19819, 19820, 19821, 19822, 19823, 19824, 19825, 19826, 19827, 19828, 19829, 19830, 19831, 19832, 19833, 19834, 19835, 19836, 19837, 19838, 19839, 19840, 19841, 19842, 19843, 19844, 19845, 19846, 19847, 19848, 19849, 19850, 19851, 19852, 19853, 19854, 19855, 19856, 19857, 19858, 19859, 19860, 19861, 19862, 19863, 19864, 19865, 19866, 19867, 19868, 19869, 19870, 19871, 19872, 19873, 19874, 19875, 19876, 19877, 19878, 19879, 19880, 19881, 19882, 19883, 19884, 19885, 19886, 19887, 19888, 19889, 19890, 19891, 19892, 19893, 19894, 19895, 19896, 19897, 19898, 19899, 19900, 19901, 19902, 19903, 19904, 19905, 19906, 19907, 19908, 19909, 19910, 19911, 19912, 19913, 19914, 19915, 19916, 19917, 19918, 19919, 19920, 19921, 19922, 19923, 19924, 19925, 19926, 19927, 19928, 19929, 19930, 19931, 19932, 19933, 19934, 19935, 19936, 19937, 19938, 19939, 19940, 19941, 19942, 19943, 19944, 19945, 19946, 19947, 19948, 19949, 19950, 19951, 19952, 19953, 19954, 19955, 19956, 19957, 19958, 19959, 19960, 19961, 19962, 19963, 19964, 19965, 19966, 19967, 19968, 19969, 19970, 19971, 19972, 19973, 19974, 19975, 19976, 19977, 19978, 19979, 19980, 19981, 19982, 19983, 19984, 19985, 19986, 19987, 19988, 19989, 19990, 19991, 19992, 19993, 19994, 19995, 19996, 19997, 19998, 19999 }; enum e_Interiors { e_InteriorName[32], e_Interior, Float: e_InteriorX, Float: e_InteriorY, Float: e_InteriorZ, Float: e_InteriorA }; new EnteringVehicle[MAX_PLAYERS]; new EnteringVeh_Timer[MAX_PLAYERS]; // interiors.txt new const g_Interiors[][e_Interiors] = { {"Ganton Gym", 5, 770.8033, -0.7033, 1000.7267, 22.8599}, {"Brothel 1", 3, 974.0177, -9.5937, 1001.1484, 22.6045}, {"Brothel 2", 3, 961.9308, -51.9071, 1001.1172, 95.5381}, {"Inside Track Betting", 3, 830.6016, 5.9404, 1004.1797, 125.8149}, {"Blastin' Fools Records", 3, 1037.8276, 0.397, 1001.2845, 353.9335}, {"The Big Spread Ranch", 3, 1212.1489, -28.5388, 1000.9531, 170.5692}, {"Warehouse 1", 18, 1290.4106, 1.9512, 1001.0201, 179.9419}, {"Warehouse 2", 1, 1412.1472, -2.2836, 1000.9241, 114.661}, {"B Dup's Apartment", 3, 1527.0468, -12.0236, 1002.0971, 350.0013}, {"B Dup's Crack Palace", 2, 1523.5098, -47.8211, 1002.2699, 262.7038}, {"Wheel Arch Angels", 3, 612.2191, -123.9028, 997.9922, 266.5704}, {"OG Loc's House", 3, 512.9291, -11.6929, 1001.5653, 198.7669}, {"Barber Shop", 3, 418.4666, -80.4595, 1001.8047, 343.2358}, {"Planning Department", 3, 386.5259, 173.6381, 1008.3828, 63.7399}, {"Las Venturas Police Department", 3, 288.4723, 170.0647, 1007.1794, 22.0477}, {"Pro-Laps", 3, 206.4627, -137.7076, 1003.0938, 10.9347}, {"Sex Shop", 3, -100.2674, -22.9376, 1000.7188, 17.285}, {"Las Venturas Tattoo parlor", 3, -201.2236, -43.2465, 1002.2734, 45.8613}, {"Lost San Fierro Tattoo parlor", 17, -202.9381, -6.7006, 1002.2734, 204.2693}, {"24/7 (version 1)", 17, -25.7220, -187.8216, 1003.5469, 5.0760}, {"Diner 1", 5, 454.9853, -107.2548, 999.4376, 309.0195}, {"Pizza Stack", 5, 372.5565, -131.3607, 1001.4922, 354.2285}, {"Rusty Brown's Donuts", 17, 378.026, -190.5155, 1000.6328, 141.0245}, {"Ammu-nation", 7, 315.244, -140.8858, 999.6016, 7.4226}, {"Victim", 5, 225.0306, -9.1838, 1002.218, 85.5322}, {"Loco Low Co", 2, 611.3536, -77.5574, 997.9995, 320.9263}, {"San Fierro Police Department", 10, 246.0688, 108.9703, 1003.2188, 0.2922}, {"24/7 (version 2 - large)", 10, 6.0856, -28.8966, 1003.5494, 5.0365}, {"Las Venturas Gym", 7, 773.7318, -74.6957, 1000.6542, 5.2304}, {"Transfenders", 1, 621.4528, -23.7289, 1000.9219, 15.6789}, {"World of Coq", 1, 445.6003, -6.9823, 1000.7344, 172.2105}, {"Ammu-nation (version 2)", 1, 285.8361, -39.0166, 1001.5156, 0.7529}, {"SubUrban", 1, 204.1174, -46.8047, 1001.8047, 357.5777}, {"Denise's Bedroom", 1, 245.2307, 304.7632, 999.1484, 273.4364}, {"Helena's Barn", 3, 290.623, 309.0622, 999.1484, 89.9164}, {"Barbara's Love nest", 5, 322.5014, 303.6906, 999.1484, 8.1747}, {"San Fierro Garage", 1, -2041.2334, 178.3969, 28.8465, 156.2153}, {"Oval Stadium", 1, -1402.6613, 106.3897, 1032.2734, 105.1356}, {"8-Track Stadium", 7, -1403.0116, -250.4526, 1043.5341, 355.8576}, {"The Pig Pen (strip club 2)", 2, 1204.6689, -13.5429, 1000.9219, 350.0204}, {"Four Dragons", 10, 2016.1156, 1017.1541, 996.875, 88.0055}, {"Liberty City", 1, -741.8495, 493.0036, 1371.9766, 71.7782}, {"Ryder's house", 2, 2447.8704, -1704.4509, 1013.5078, 314.5253}, {"Sweet's House", 1, 2527.0176, -1679.2076, 1015.4986, 260.9709}, {"RC Battlefield", 10, -1129.8909, 1057.5424, 1346.4141, 274.5268}, {"The Johnson House", 3, 2496.0549, -1695.1749, 1014.7422, 179.2174}, {"Burger shot", 10, 366.0248, -73.3478, 1001.5078, 292.0084}, {"Caligula's Casino", 1, 2233.9363, 1711.8038, 1011.6312, 184.3891}, {"Katie's Lovenest", 2, 269.6405, 305.9512, 999.1484, 215.6625}, {"Barber Shop 2 (Reece's)", 2, 414.2987, -18.8044, 1001.8047, 41.4265}, {"Angel Pine Trailer", 2, 1.1853, -3.2387, 999.4284, 87.5718}, {"24/7 (version 3)", 18, -30.9875, -89.6806, 1003.5469, 359.8401}, {"Zip", 18, 161.4048, -94.2416, 1001.8047, 0.7938}, {"The Pleasure Domes", 3, -2638.8232, 1407.3395, 906.4609, 94.6794}, {"Madd Dogg's Mansion", 5, 1267.8407, -776.9587, 1091.9063, 231.3418}, {"Big Smoke's Crack Palace", 2, 2536.5322, -1294.8425, 1044.125, 254.9548}, {"Burning Desire Building", 5, 2350.1597, -1181.0658, 1027.9766, 99.1864}, {"Wu-Zi Mu's", 1, -2158.6731, 642.09, 1052.375, 86.5402}, {"Abandoned AC tower", 10, 419.8936, 2537.1155, 10.0000, 67.6537}, {"Wardrobe/Changing room", 14, 256.9047, -41.6537, 1002.0234, 85.8774}, {"Didier Sachs", 14, 204.1658, -165.7678, 1000.5234, 181.7583}, {"Casino (Redsands West)", 12, 1133.35, -7.8462, 1000.6797, 165.8482}, {"Kickstart Stadium", 14, -1420.4277, 1616.9221, 1052.5313, 159.1255}, {"Club", 17, 493.1443, -24.2607, 1000.6797, 356.9864}, {"Atrium", 18, 1727.2853, -1642.9451, 20.2254, 172.4193}, {"Los Santos Tattoo Parlor", 16, -202.842, -24.0325, 1002.2734, 252.8154}, {"Safe House group 1", 5, 2233.6919, -1112.8107, 1050.8828, 8.6483}, {"Safe House group 2", 6, 1211.2484, 1049.0234, 359.941, 170.9341}, {"Safe House group 3", 9, 2319.1272, -1023.9562, 1050.2109, 167.3959}, {"Safe House group 4", 10, 2261.0977, -1137.8833, 1050.6328, 266.88}, {"Sherman Dam", 17, -944.2402, 1886.1536, 5.0051, 179.8548}, {"24/7 (version 4)", 16, -26.1856, -140.9164, 1003.5469, 2.9087}, {"Jefferson Motel", 15, 2217.281, -1150.5349, 1025.7969, 273.7328}, {"Jet Interior", 1, 1.5491, 23.3183, 1199.5938, 359.9054}, {"The Welcome Pump", 1, 681.6216, -451.8933, -25.6172, 166.166}, {"Burglary House X1", 3, 234.6087, 1187.8195, 1080.2578, 349.4844}, {"Burglary House X2", 2, 225.5707, 1240.0643, 1082.1406, 96.2852}, {"Burglary House X3", 1, 224.288, 1289.1907, 1082.1406, 359.868}, {"Burglary House X4", 5, 239.2819, 1114.1991, 1080.9922, 270.2654}, {"Binco", 15, 207.5219, -109.7448, 1005.1328, 358.62}, {"4 Burglary houses", 15, 295.1391, 1473.3719, 1080.2578, 352.9526}, {"Blood Bowl Stadium", 15, -1417.8927, 932.4482, 1041.5313, 0.7013}, {"Budget Inn Motel Room", 12, 446.3247, 509.9662, 1001.4195, 330.5671}, {"Palamino Bank", 0, 2306.3826, -15.2365, 26.7496, 274.49}, {"Palamino Diner", 0, 2331.8984, 6.7816, 26.5032, 100.2357}, {"Dillimore Gas Station", 0, 663.0588, -573.6274, 16.3359, 264.9829}, {"Lil' Probe Inn", 18, -227.5703, 1401.5544, 27.7656, 269.2978}, {"Torreno's Ranch", 0, -688.1496, 942.0826, 13.6328, 177.6574}, {"Zombotech - lobby area", 0, -1916.1268, 714.8617, 46.5625, 152.2839}, {"Crypt in LS cemetery (temple)", 0, 818.7714, -1102.8689, 25.794, 91.1439}, {"Blueberry Liquor Store", 0, 255.2083, -59.6753, 1.5703, 1.4645}, {"Pair of Burglary Houses", 2, 446.626, 1397.738, 1084.3047, 343.9647}, {"Crack Den", 5, 227.3922, 1114.6572, 1080.9985, 267.459}, {"Burglary House X11", 5, 227.7559, 1114.3844, 1080.9922, 266.2624}, {"Burglary House X12", 4, 261.1165, 1287.2197, 1080.2578, 178.9149}, {"Ammu-nation (version 3)", 4, 291.7626, -80.1306, 1001.5156, 290.2195}, {"Jay's Diner", 4, 449.0172, -88.9894, 999.5547, 89.6608}, {"24/7 (version 5)", 4, -27.844, -26.6737, 1003.5573, 184.3118}, {"Warehouse 3", 0, 2135.2004, -2276.2815, 20.6719, 318.59}, {"Michelle's Love Nest*", 4, 306.1966, 307.819, 1003.3047, 203.1354}, {"Burglary House X14", 10, 24.3769, 1341.1829, 1084.375, 8.3305}, {"Sindacco Abatoir", 1, 963.0586, 2159.7563, 1011.0303, 175.313}, {"K.A.C.C. Military Fuels Depot", 0, 2548.4807, 2823.7429, 10.8203, 270.6003}, {"Area 69", 0, 215.1515, 1874.0579, 13.1406, 177.5538}, {"Burglary House X13", 4, 221.6766, 1142.4962, 1082.6094, 184.9618}, {"Unused Safe House", 12, 2323.7063, -1147.6509, 1050.7101, 206.5352}, {"Millie's Bedroom", 6, 344.9984, 307.1824, 999.1557, 193.643}, {"Barber Shop", 12, 411.9707, -51.9217, 1001.8984, 173.3449}, {"Dirtbike Stadium", 4, -1421.5618, -663.8262, 1059.5569, 170.9341}, {"Cobra Gym", 6, 773.8887, -47.7698, 1000.5859, 10.7161}, {"Los Santos Police Department", 6, 246.6695, 65.8039, 1003.6406, 7.9562}, {"Los Santos Airport", 14, -1864.9434, 55.7325, 1055.5276, 85.8541}, {"Burglary House X15", 4, -262.1759, 1456.6158, 1084.3672, 82.459}, {"Burglary House X16", 5, 22.861, 1404.9165, 1084.4297, 349.6158}, {"Burglary House X17", 5, 140.3679, 1367.8837, 1083.8621, 349.2372}, {"Bike School", 3, 1494.8589, 1306.48, 1093.2953, 196.065}, {"Francis International Airport", 14, -1813.213, -58.012, 1058.9641, 335.3199}, {"Vice Stadium", 16, -1401.067, 1265.3706, 1039.8672, 178.6483}, {"Burglary House X18", 6, 234.2826, 1065.229, 1084.2101, 4.3864}, {"Burglary House X19", 6, -68.5145, 1353.8485, 1080.2109, 3.5742}, {"Zero's RC Shop", 6, -2240.1028, 136.973, 1035.4141, 269.0954}, {"Ammu-nation (version 4)", 6, 297.144, -109.8702, 1001.5156, 20.2254}, {"Ammu-nation (version 5)", 6, 316.5025, -167.6272, 999.5938, 10.3031}, {"Burglary House X20", 15, -285.2511, 1471.197, 1084.375, 85.6547}, {"24/7 (version 6)", 6, -26.8339, -55.5846, 1003.5469, 3.9528}, {"Secret Valley Diner", 6, 442.1295, -52.4782, 999.7167, 177.9394}, {"Rosenberg's Office in Caligulas", 2, 2182.2017, 1628.5848, 1043.8723, 224.8601}, {"Fanny Batter's Whore House", 6, 748.4623, 1438.2378, 1102.9531, 0.6069}, {"Colonel Furhberger's", 8, 2807.3604, -1171.7048, 1025.5703, 193.7117}, {"Cluckin' Bell", 9, 366.0002, -9.4338, 1001.8516, 160.528}, {"The Camel's Toe Safehouse", 1, 2216.1282, -1076.3052, 1050.4844, 86.428}, {"Caligula's Roof", 1, 2268.5156, 1647.7682, 1084.2344, 99.7331}, {"Old Venturas Strip Casino", 2, 2236.6997, -1078.9478, 1049.0234, 2.5706}, {"Driving School", 3, -2031.1196, -115.8287, 1035.1719, 190.1877}, {"Verdant Bluffs Safehouse", 8, 2365.1089, -1133.0795, 1050.875, 177.3947}, {"Bike School", 0, 1168.512, 1360.1145, 10.9293, 196.5933}, {"Andromada", 9, 315.4544, 976.5972, 1960.8511, 359.6368}, {"Four Dragons' Janitor's Office", 10, 1893.0731, 1017.8958, 31.8828, 86.1044}, {"Bar", 11, 501.9578, -70.5648, 998.7578, 171.5706}, {"Burglary House X21", 8, -42.5267, 1408.23, 1084.4297, 172.068}, {"Willowfield Safehouse", 11, 2283.3118, 1139.307, 1050.8984, 19.7032}, {"Burglary House X22", 9, 84.9244, 1324.2983, 1083.8594, 159.5582}, {"Burglary House X23", 9, 260.7421, 1238.2261, 1084.2578, 84.3084}, {"Otto's Autos", 0, -1658.1656, 1215.0002, 7.25, 103.9074}, {"Wang Cars", 0, -1961.6281, 295.2378, 35.4688, 264.4891} }; main(){} // Whirlpool by Y_Less. native WP_Hash(buffer[], len, const str[]); // IsValidVehicle function. Undefined by default. native IsValidVehicle(vehicleid); native gpci(playerid, serial[], len); /* CreateDynamic3DTextLabel( const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1 ); */ /*--------------------------------------------------------------------------- Functions The functions below are used for this gamemode. Any functions not created by me will contain credits. ---------------------------------------------------------------------------*/ mysql_isnull(const string[]) { return (!strcmp(string, "NULL")); } mysql_escaped(const string[]) { new retString[300]; mysql_real_escape_string(string, retString, gConnection); return retString; } /*Random(min, max) { return random(max - min) + min; }*/ RGBAToARGB(rgba) { return (rgba >>> 8 | rgba << 24); } KickPlayer(playerid) { gPlayerKicked[playerid] = 1; return SetTimerEx("DelayKick", 400, false, "i", playerid); } ReturnElapsed(total) { new string[16], hours, minutes, seconds ; seconds = total; hours = seconds / 3600; seconds -= hours * 3600; minutes = seconds / 60; seconds -= minutes * 60; if (total >= 3600) { format(string, sizeof(string), "%02d:%02d:%02d", hours, minutes, seconds); } else { format(string, sizeof(string), "%02d:%02d", minutes, seconds); } return string; } GetHelpRequest(playerid) { new string[128]; strunpack(string, gHelpRequest[playerid]); return string; } GetPrisonInterior() { return g_StaticBuildings[BUILDING_PRISON][e_Interior]; } GetPrisonVirtualWorld() { return g_StaticBuildings[BUILDING_PRISON][e_VirtualWorld]; } Float:GetPlayerHealthEx(playerid) { new Float:health; GetPlayerHealth(playerid, health); return health; } Float:GetPlayerArmourEx(playerid) { new Float:health; GetPlayerArmour(playerid, health); return health; } Float:GetVehicleHealthEx(vehicleid) { new Float:health; GetVehicleHealth(vehicleid, health); return health; } DestroyVehicleEx(vehicleid) { if (IsValidVehicle(vehicleid)) { ClearVehicleObjects(vehicleid); ResetVehicleStream(vehicleid); } return DestroyVehicle(vehicleid); } GetRepairCost(vehicleid) { return (1000 - floatround(GetVehicleHealthEx(vehicleid))) / 2; } /*GetCurrentWeaponSerial(playerid) { new weaponid = GetPlayerWeapon(playerid); if (weaponid == Weapons[playerid][wPrimary]) { return Weapons[playerid][wPrimarySerial]; } else if (weaponid == Weapons[playerid][wSecondary]) { return Weapons[playerid][wSecondarySerial]; } else if (weaponid == Weapons[playerid][wTertiary]) { return Weapons[playerid][wTertiarySerial]; } return 0; }*/ ApplyChatAnimation(playerid, name[]) { if (IsPlayerInAnyVehicle(playerid)) ApplyAnimation(playerid, "GANGS", name, 4.1, 1, 0, 0, 0, 0, 1); else ApplyAnimation(playerid, "GANGS", name, 4.1, 1, 1, 1, 1, 1, 1); } PlayChatStyle(playerid, const text[]) { switch (Players[playerid][pChatStyle]) { case 1: ApplyChatAnimation(playerid, "prtial_gngtlkA"); case 2: ApplyChatAnimation(playerid, "prtial_gngtlkB"); case 3: ApplyChatAnimation(playerid, "prtial_gngtlkC"); case 4: ApplyChatAnimation(playerid, "prtial_gngtlkD"); case 5: ApplyChatAnimation(playerid, "prtial_gngtlkE"); case 6: ApplyChatAnimation(playerid, "prtial_gngtlkF"); case 7: ApplyChatAnimation(playerid, "prtial_gngtlkG"); case 8: ApplyChatAnimation(playerid, "prtial_gngtlkH"); default: ApplyChatAnimation(playerid, "prtial_gngtlkC"); } if (!Players[playerid][pChatting]) { SetTimerEx("StopChatting", strlen(text) * 100, false, "i", playerid); Players[playerid][pChatting] = 1; } } PlayAnimation(playerid, library[], name[], Float:speed, loop, lockx, locky, freeze, time, forcesync) { ApplyAnimation(playerid, library, "null", 0.0, 0, 0, 0, 0, 0, 1); ApplyAnimation(playerid, library, name, speed, loop, lockx, locky, freeze, time, forcesync); if (loop > 0 || freeze > 0) { Players[playerid][pAnimation] = 1; ShowFooterText(playerid, "Press ~r~~k~~PED_SPRINT~~w~ to stop the animation."); } } IsValidSkin(skin) { return (0 <= skin <= 311) && skin != 74; } IsVehicleOccupied(vehicleid) { return GetVehicleDriver(vehicleid) != INVALID_PLAYER_ID; } IsAnimationPermitted(playerid) { return (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT && !Players[playerid][pTazed] && !Players[playerid][pDeathState] && !Players[playerid][pMining]); } IsPlayerHoldingTazer(playerid) { return (GetPlayerWeapon(playerid) == WEAPON_SILENCED && Players[playerid][pTazer]); } IsPlayerInRangeOfLocker(playerid) { return (Players[playerid][pFaction] != INVALID_ID && IsPlayerNearPoint(playerid, 2.0, Factions[Players[playerid][pFaction]][fcLockerX], Factions[Players[playerid][pFaction]][fcLockerY], Factions[Players[playerid][pFaction]][fcLockerZ], Factions[Players[playerid][pFaction]][fcLockerInt], Factions[Players[playerid][pFaction]][fcLockerWorld])); } IsPlayerInFaction(playerid, type) { return (Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] == type); } IsPlayerInAir(playerid) { switch (GetPlayerAnimationIndex(playerid)) { case 958..979, 1130, 1195, 1197, 1198: return 1; } return 0; } IsPlayerSprinting(playerid) { new keys, ud, lr; GetPlayerKeys(playerid, keys, ud, lr); if ((keys & KEY_SPRINT) && (1222 <= GetPlayerAnimationIndex(playerid) <= 1236)) return 1; return 0; } IsPlayerInside(playerid) { return GetPlayerInterior(playerid) > 0 && GetPlayerVirtualWorld(playerid) > 0; } IsPlayerInBank(playerid) { return GetPlayerInterior(playerid) > 0 && IsPlayerInRangeOfPoint(playerid, 5.0, 196.8612, 1723.2732, 1231.4624); } IsPlayerSelectingOutfit(playerid) { return Players[playerid][pBuyOutfit] != INVALID_ID || Players[playerid][pOutfitIndex] != INVALID_ID; } IsPlayerInjured(playerid) { return Players[playerid][pDeathState] != DEATH_STATE_NONE; } IsPlayerBugged(playerid) { return (IsPlayerAtInvalidCoords(playerid) && GetPlayerHealthEx(playerid) == 0.0); } IsPlayerSpectating(playerid) { return (GetPlayerState(playerid) == PLAYER_STATE_SPECTATING); } IsPlayerLoggedIn(playerid) { return (Players[playerid][pLoggedIn]); } IsPlayerPaused(playerid) { return (Players[playerid][pPaused]); } IsPlayerJailed(playerid) { return (Players[playerid][pJailType] > 0); } IsWeaponHideable(weaponid) { return (22 <= weaponid <= 24) || (weaponid == 28 || weaponid == 32) || (weaponid == 4) || (weaponid == 3); } IsHolsterWeapon(weaponid) { return (weaponid == 2) || (2 <= weaponid <= 9) || (22 <= weaponid <= 34); } IsDrivebyWeapon(weaponid) { return (28 <= weaponid <= 32) || weaponid == 22 || weaponid == 25; } GetPausedTime(playerid) { if (IsPlayerPaused(playerid)) { return (gettime() - Players[playerid][pLastUpdate]); } return 0; } IsValidPayphoneID(id) { return (id >= 0 && id < MAX_PAYPHONES) && Payphones[id][phExists]; } IsValidSprayTagID(id) { return (id >= 0 && id < MAX_SPRAY_TAGS) && SprayTags[id][sExists]; } IsValidTagID(id) { return (id >= 0 && id < MAX_TAGS) && Tags[id][tagExists]; } IsValidAutoShopID(id) { return (id >= 0 && id < MAX_AUTO_SHOPS) && AutoShops[id][asExists]; } IsValidObjectID(id) { return (id >= 0 && id < MAX_SCRIPT_OBJECTS) && Objects[id][oExists]; } IsValidGateID(id) { return (id >= 0 && id < MAX_GATES) && Gates[id][gExists]; } IsValidLabelID(id) { return (id >= 0 && id < MAX_DYNAMIC_LABELS) && Labels[id][lExists]; } IsValidArrestPointID(id) { return (id >= 0 && id < MAX_ARREST_POINTS) && ArrestPoints[id][apExists]; } IsValidFactionID(id) { return (id >= 0 && id < MAX_FACTIONS) && Factions[id][fcExists]; } IsValidFurnitureID(id) { return (id >= 0 && id < MAX_FURNITURE) && Furniture[id][fExists]; } IsValidVehicleID(id) { return (id >= 0 && id < MAX_CARS) && Vehicles[id][vExists]; } IsValidHouseID(id) { return (id >= 0 && id < MAX_HOUSES) && Houses[id][hExists]; } IsValidCompanyID(id) { return (id >= 0 && id < MAX_COMPANIES) && Companies[id][cExists]; } IsValidBuildingID(id) { return (id >= 0 && id < MAX_BUILDINGS) && Buildings[id][bExists]; } IsValidPumpID(id) { return (id >= 0 && id < MAX_GAS_PUMPS) && GasPumps[id][gpExists]; } IsValidATMID(id) { return (id >= 0 && id < MAX_ATMS) && ATM[id][atmExists]; } IsValidTrashbinID(id) { return (id >= 0 && id < MAX_TRASH_BINS) && Trashbins[id][tExists]; } IsTestVehicle(vehicleid) { //return (gTestVehicles[0] <= vehicleid <= gTestVehicles[3]); return (vehicleid == gTestVehicles[0] || vehicleid == gTestVehicles[1] || vehicleid == gTestVehicles[2] || vehicleid == gTestVehicles[3]); } GetDonatorLevel(level) { new str[12]; if (level == 0) str = "None"; else if (level == DONATOR_BASIC) str = "Basic"; else if (level == DONATOR_STANDARD) str = "Standard"; else if (level == DONATOR_INVESTOR) str = "Investor"; else if (level == DONATOR_PREMIUM) str = "Premium"; return str; } GetSupporterLevel(level) { new str[24]; if (level == 0) str = "None"; else if (level == 1) str = "Supporter"; else if (level == 2) str = "Head Supporter"; return str; } GetMapperLevel(level) { new str[12]; if (level == 0) str = "None"; else if (level == 1) str = "Mapper"; else if (level == 2) str = "Head Mapper"; return str; } GetFactionModLevel(level) { new str[20]; if (level == 0) str = "None"; else if (level == 1) str = "Faction Mod"; else if (level == 2) str = "Head of Factions"; return str; } GetBoneName(boneid) { new str[16]; switch (boneid) { case 1: str = "Spine"; case 2: str = "Head"; case 3: str = "Left upper arm"; case 4: str = "Right upper arm"; case 5: str = "Left hand"; case 6: str = "Right hand"; case 7: str = "Left thigh"; case 8: str = "Right thigh"; case 9: str = "Left foot"; case 10: str = "Right foot"; case 11: str = "Right calf"; case 12: str = "Left calf"; case 13: str = "Left forearm"; case 14: str = "Right forearm"; case 15: str = "Left shoulder"; case 16: str = "Right shoulder"; case 17: str = "Neck"; case 18: str = "Jaw"; } return str; } /*GetRadioStation(stationid) { new str[128]; switch (stationid) { case 0: str = "none"; case 1: str = "http://listen.181fm.com/181-office_128k.mp3"; } return str; } */ GetBodypartName(bodypartid) { new str[12]; if (bodypartid == BODY_PART_TORSO) str = "torso"; else if (bodypartid == BODY_PART_GROIN) str = "groin"; else if (bodypartid == BODY_PART_LEFT_ARM) str = "left arm"; else if (bodypartid == BODY_PART_RIGHT_ARM) str = "right arm"; else if (bodypartid == BODY_PART_LEFT_LEG) str = "left leg"; else if (bodypartid == BODY_PART_RIGHT_LEG) str = "right leg"; else if (bodypartid == BODY_PART_HEAD) str = "head"; return str; } GetJobName(type) { new str[16]; if (type == JOB_NONE) str = "Unemployed"; else if (type == JOB_TRANSPORTER) str = "Transporter"; else if (type == JOB_FORKLIFTER) str = "Forklifter"; else if (type == JOB_MINER) str = "Miner"; else if (type == JOB_TAXI) str = "Taxi Driver"; else if (type == JOB_PIZZA) str = "Pizzaboy"; else if (type == JOB_TRASHMAN) str = "Trashman"; else if (type == JOB_MECHANIC) str = "Mechanic"; return str; } GetMonth(month) { new string[12]; if (month == 1) string = "January"; else if (month == 2) string = "February"; else if (month == 3) string = "March"; else if (month == 4) string = "April"; else if (month == 5) string = "May"; else if (month == 6) string = "June"; else if (month == 7) string = "July"; else if (month == 8) string = "August"; else if (month == 9) string = "September"; else if (month == 10) string = "October"; else if (month == 11) string = "November"; else if (month == 12) string = "December"; return string; } GetWeapon(weaponid) { new name[24]; if (weaponid == 0) name = "No Weapon"; else if (weaponid == 18) name = "Molotov Cocktail"; else if (weaponid == 44) name = "Nightvision Goggles"; else if (weaponid == 45) name = "Infrared Goggles"; else GetWeaponName(weaponid, name, sizeof(name)); return name; } GetCompanyType(type) { new string[16]; if (1 <= type <= sizeof(g_CompanyTypes)) strcat(string, g_CompanyTypes[--type]); else string = "None"; return string; } GetFactionType(type) { new string[16]; switch (type) { case FACTION_LEO: string = "Law Enforcement"; case FACTION_MEDICAL: string = "Medical"; case FACTION_GOVERNMENT: string = "Government"; case FACTION_ILLEGAL: string = "Illegal"; case FACTION_NEWS: string = "News"; } return string; } GetFitnessLevel(playerid) { new string[16]; if (0 <= Players[playerid][pFitness] <= 29) string = "Weak"; else if (30 <= Players[playerid][pFitness] <= 59) string = "Moderate"; else if (60 <= Players[playerid][pFitness] <= 79) string = "Strong"; else if (80 <= Players[playerid][pFitness] <= 100) string = "Very Strong"; return string; } GetGenderForPlayer(playerid) { new str[8]; if (Players[playerid][pGender] == 1) str = "Male"; else if (Players[playerid][pGender] == 2) str = "Female"; return str; } GetClipCapacity(weaponid) { switch (weaponid) { case 22, 23: return 17; case 24: return 7; case 28, 31, 32: return 50; case 29, 30: return 30; } return 0; } GetNextPayphoneID() { for (new i = 0; i < MAX_PAYPHONES; i ++) { if (!Payphones[i][phExists]) { return i; } } return INVALID_ID; } GetNextTagID() { for (new i = 0; i < MAX_TAGS; i ++) { if (!Tags[i][tagExists]) { return i; } } return INVALID_ID; } GetNextSprayTagID() { for (new i = 0; i < MAX_SPRAY_TAGS; i ++) { if (!SprayTags[i][sExists]) { return i; } } return INVALID_ID; } GetNextTrashbinID() { for (new i = 0; i < MAX_TRASH_BINS; i ++) { if (!Trashbins[i][tExists]) { return i; } } return INVALID_ID; } GetNextObjectID() { for (new i = 0; i < MAX_SCRIPT_OBJECTS; i ++) { if (!Objects[i][oExists]) { return i; } } return INVALID_ID; } GetNextDeployID() { for (new i = 0; i < MAX_DEPLOYED_ITEMS; i ++) { if (!DeployedItems[i][dpExists]) { return i; } } return INVALID_ID; } /*GetNextAutoShopID() { for (new i = 0; i < MAX_AUTO_SHOPS; i ++) { if (!AutoShops[i][asExists]) { return i; } } return INVALID_ID; }*/ GetNextGateID() { for (new i = 0; i < MAX_GATES; i ++) { if (!Gates[i][gExists]) { return i; } } return INVALID_ID; } GetNextLabelID() { for (new i = 0; i < MAX_DYNAMIC_LABELS; i ++) { if (!Labels[i][lExists]) { return i; } } return INVALID_ID; } GetNextTeleportID() { for (new i = 0; i < MAX_ADMIN_TELEPORTS; i ++) { if (!Teleports[i][tpExists]) { return i; } } return INVALID_ID; } GetNextArrestPointID() { for (new i = 0; i < MAX_ARREST_POINTS; i ++) { if (!ArrestPoints[i][apExists]) { return i; } } return INVALID_ID; } GetNextFactionID() { for (new i = 0; i < MAX_FACTIONS; i ++) { if (!Factions[i][fcExists]) { return i; } } return INVALID_ID; } /*GetNextShellCasingID() { for (new i = 0; i < MAX_SHELL_CASINGS; i ++) { if (!ShellCasings[i][scExists]) { return i; } } return INVALID_ID; }*/ /*GetNextBloodID() { for (new i = 0; i < MAX_BLOOD; i ++) { if (!Bloods[i][blExists]) { return i; } } return INVALID_ID; } */ GetNextWeedPlantID() { for (new i = 0; i < MAX_WEEDPLANTS; i ++) { if (!WeedPlants[i][wpExists]) { return i; } } return INVALID_ID; } GetNextDealershipCarID() { for (new i = 0; i < MAX_DEALERSHIP_CARS; i ++) { if (!DealershipCars[i][dcExists]) { return i; } } return INVALID_ID; } GetNextATMID() { for (new i = 0; i < MAX_ATMS; i ++) { if (!ATM[i][atmExists]) { return i; } } return INVALID_ID; } GetNextGasPumpID() { for (new i = 0; i < MAX_GAS_PUMPS; i ++) { if (!GasPumps[i][gpExists]) { return i; } } return INVALID_ID; } GetNextFurnitureID() { for (new i = 0; i < MAX_FURNITURE; i ++) { if (!Furniture[i][fExists]) { return i; } } return INVALID_ID; } GetNextStoredItemID() { for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (!StoredItems[i][stExists]) { return i; } } return INVALID_ID; } GetNextVehicleID() { for (new i = 0; i < MAX_CARS; i ++) { if (!Vehicles[i][vExists]) { return i; } } return INVALID_ID; } GetNextHouseID() { for (new i = 0; i < MAX_HOUSES; i ++) { if (!Houses[i][hExists]) { return i; } } return INVALID_ID; } GetNextRestaurantItemID(company) { for (new i = 0; i < MAX_RESTAURANT_ITEMS; i ++) { if (!RestaurantItems[company][i][rtExists]) { return i; } } return INVALID_ID; } GetNextCompanyID() { for (new i = 0; i < MAX_COMPANIES; i ++) { if (!Companies[i][cExists]) { return i; } } return INVALID_ID; } GetNextBuildingID() { for (new i = 0; i < MAX_BUILDINGS; i ++) { if (!Buildings[i][bExists]) { return i; } } return INVALID_ID; } GetNextAccessoryID(playerid) { for (new i = 0; i < MAX_ACCESSORIES; i ++) { if (!Accessories[playerid][i][aExists]) { return i; } } return INVALID_ID; } GetNextBankAccountID(playerid) { for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++) { if (!BankAccounts[playerid][i][bankExists]) { return i; } } return INVALID_ID; } GetNextItemID(playerid) { for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++) { if (!Inventory[playerid][i][invExists]) { return i; } } return INVALID_ID; } GetNextDropID() { for (new i = 0; i < MAX_DROPPED_ITEMS; i ++) { if (!DropItems[i][dExists]) { return i; } } return INVALID_ID; } ShowPlayerTextDraws(playerid, start, end) { for (new i = start; i < end + 1; i ++) { PlayerTextDrawShow(playerid, Players[playerid][pText][i]); } } HidePlayerTextDraws(playerid, start, end) { for (new i = start; i < end + 1; i ++) { PlayerTextDrawHide(playerid, Players[playerid][pText][i]); } } ShowWeaponRights(playerid, faction) { new string[160]; if (IsValidFactionID(faction)) { format(string, sizeof(string), "Melee Weapons\t%s", (Factions[faction][fcWeaponRights][0]) ? ("Yes") : ("No")); format(string, sizeof(string), "%s\nPistols\t%s", string, (Factions[faction][fcWeaponRights][1]) ? ("Yes") : ("No")); format(string, sizeof(string), "%s\nShotguns\t%s", string, (Factions[faction][fcWeaponRights][2]) ? ("Yes") : ("No")); format(string, sizeof(string), "%s\nSMGs\t\t%s", string, (Factions[faction][fcWeaponRights][3]) ? ("Yes") : ("No")); format(string, sizeof(string), "%s\nRifles\t\t%s", string, (Factions[faction][fcWeaponRights][4]) ? ("Yes") : ("No")); format(string, sizeof(string), "%s\nExplosives\t\t%s", string, (Factions[faction][fcWeaponRights][5]) ? ("Yes") : ("No")); Dialog_Show(playerid, WeaponRights, DIALOG_STYLE_LIST, "{FFFFFF}Weapon Rights", string, "Toggle", "Back"); } } ShowFactionRights(playerid, faction) { if (IsValidFactionID(faction)) { Dialog_Show(playerid, FactionRights, DIALOG_STYLE_LIST, "{FFFFFF}Faction Rights", "Weapon Rights\nDrug Rights\t\t%s\nSpray Rights\t\t%s", "Toggle", "Back", (Factions[faction][fcDrugRights]) ? ("Yes") : ("No"), (Factions[faction][fcSprayRights]) ? ("Yes") : ("No")); } } ShowFactionRoster(playerid) { format(gExecute, sizeof(gExecute), "SELECT Username, LoginDate, FactionRank FROM rp_accounts WHERE FactionID = %i ORDER BY FactionRank", Players[playerid][pFactionID]); mysql_tquery(gConnection, gExecute, "OnPlayerViewRoster", "i", playerid); } ShowAdminRoster(playerid) { format(gExecute, sizeof(gExecute), "SELECT Username, LoginDate, Admin FROM rp_accounts WHERE Admin > 0"); mysql_tquery(gConnection, gExecute, "OnPlayerViewAdminRoster", "i", playerid); } ShowPlayerNotebook(playerid, itemid) { new id = Inventory[playerid][itemid][invID]; Players[playerid][pNotebookID] = itemid; format(gExecute, sizeof(gExecute), "SELECT * FROM rp_notes WHERE itemID = %i", id); mysql_tquery(gConnection, gExecute, "OnPlayerViewNotes", "i", playerid); } ShowTicketList(playerid) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_tickets WHERE Player = %i ORDER BY ID DESC", Players[playerid][pID]); mysql_tquery(gConnection, gExecute, "OnPlayerShowTickets", "i", playerid); } ShowFineList(playerid) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_tickets WHERE Player = %i ORDER BY ID DESC", Players[playerid][pID]); mysql_tquery(gConnection, gExecute, "OnPlayerShowFines", "i", playerid); } ShowANoteList(playerid, targetid) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_anotes WHERE Player = %i ORDER BY ID DESC", Players[playerid][pID]); mysql_tquery(gConnection, gExecute, "OnPlayerShowANotes", "ii", playerid, targetid); } ShowDeathLogs(playerid) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_deathlogs ORDER BY ID DESC LIMIT 20"); mysql_tquery(gConnection, gExecute, "OnPlayerShowDeathLogs", "i", playerid); } ShowBanLogs(playerid) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_banlogs ORDER BY ID DESC"); mysql_tquery(gConnection, gExecute, "OnPlayerShowBanLogs", "i", playerid); } GetOwnedCompanies(playerid) { new count = 0; for (new i = 0; i < MAX_COMPANIES; i ++) { if (IsValidCompanyID(i) && IsCompanyOwner(playerid, i)) { count++; } } return count; } GetCompanyLimit(playerid) { switch (Players[playerid][pDonator]) { case DONATOR_BASIC: return 2; case DONATOR_STANDARD: return 3; case DONATOR_INVESTOR: return 4; case DONATOR_PREMIUM: return 0; } return 1; } GetOwnedHouses(playerid) { new count = 0; for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && IsHouseOwner(playerid, i)) { count++; } } return count; } GetHouseLimit(playerid) { switch (Players[playerid][pDonator]) { case DONATOR_BASIC: return 3; case DONATOR_STANDARD: return 4; case DONATOR_INVESTOR: return 5; case DONATOR_PREMIUM: return 0; } return 2; } GetOwnedVehicles(playerid) { new count = 0; for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i)) { count ++; } } return count; } /*GetVehicleLimit(playerid) { switch (Players[playerid][pDonator]) { case DONATOR_BASIC: return 3; case DONATOR_STANDARD: return 4; case DONATOR_INVESTOR: return 5; case DONATOR_PREMIUM: return 0; } return 2; }*/ GetVehicleLimit(playerid) { switch (Players[playerid][pDonator]) { case DONATOR_BASIC: return 6; case DONATOR_STANDARD: return 8; case DONATOR_INVESTOR: return 10; case DONATOR_PREMIUM: return 12; } return 4; } GetVehicleSpawnLimit(playerid) { switch (Players[playerid][pDonator]) { case DONATOR_BASIC: return 3; case DONATOR_STANDARD: return 4; case DONATOR_INVESTOR: return 5; case DONATOR_PREMIUM: return 6; } return 2; } ShowSpawnedVehicleList(playerid) { new index = 0 ; gListString = "Model\tPlate"; for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i) && !Vehicles[i][vDespawned]) { format(gListString, sizeof(gListString), "%s\n%s\t%s", gListString, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); gListedItems[playerid][index++] = i; } } if (index) { return Dialog_Show(playerid, DespawnVehicle, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Despawn Vehicle", gListString, "Despawn", "Close"); } return 0; } ShowDespawnedVehicleList(playerid) { new index = 0 ; gListString = "Model\tPlate"; for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i) && Vehicles[i][vDespawned]) { format(gListString, sizeof(gListString), "%s\n%s\t%s", gListString, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); gListedItems[playerid][index++] = i; } } if (index) { return Dialog_Show(playerid, SpawnVehicle, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Spawn Vehicle", gListString, "Spawn", "Close"); } return 0; } ShowVehicleTrackList(playerid) { new index = 0 ; gListString = "Model\tPlate"; for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i)) { format(gListString, sizeof(gListString), "%s\n%s\t%s", gListString, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); gListedItems[playerid][index++] = i; } } if (index) { return Dialog_Show(playerid, FindVehicle, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Find Car", gListString, "Find", "Close"); } return 0; } ShowImpoundList(playerid) { new index = 0 ; gListString = "Model\tPlate\tPrice"; for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i) && Vehicles[i][vImpound] > 0) { format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s", gListString, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate], FormatNumber(Vehicles[i][vImpound])); gListedItems[playerid][index++] = i; } } if (index) { return Dialog_Show(playerid, ReleaseCar, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Release Vehicle", gListString, "Pay", "Cancel"); } return 0; } SavePayphone(id) { static queryString[512]; if (!Payphones[id][phExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_payphones SET phNumber = %i, phX = %.4f, phY = %.4f, phZ = %.4f, phA = %.4f, phInterior = %i, phWorld = %i WHERE phID = %i", Payphones[id][phNumber], Payphones[id][phX], Payphones[id][phY], Payphones[id][phZ], Payphones[id][phA], Payphones[id][phInterior], Payphones[id][phWorld], Payphones[id][phID] ); return mysql_tquery(gConnection, queryString); } CallPayphone(playerid, payphone) { foreach (new i : Player) { if (IsPlayerNearPoint(i, 20.0, Payphones[payphone][phX], Payphones[payphone][phY], Payphones[payphone][phZ], Payphones[payphone][phInterior], Payphones[payphone][phWorld])) { SendClientMessage(i, COLOR_PURPLE, "* The payphone is ringing. (( /answer ))"); } } Payphones[payphone][phCaller] = playerid; UpdatePayphoneText(payphone); } AssignPayphone(playerid, payphone) { if (IsValidPayphoneID(payphone)) { Players[playerid][pPayphone] = payphone; Payphones[payphone][phOccupied] = true; Payphones[payphone][phCaller] = INVALID_PLAYER_ID; UpdatePayphoneText(payphone); } } UpdatePayphoneText(id) { new string[64]; if (!Payphones[id][phExists]) return 0; if (IsPlayerConnected(Payphones[id][phCaller])) { format(string, sizeof(string), "ID: %i\nNumber: %i\n{FFD000}Ringing (/answer)", id, Payphones[id][phNumber]); } else if (Payphones[id][phOccupied]) { format(string, sizeof(string), "ID: %i\nNumber: %i\n{FF5030}Occupied", id, Payphones[id][phNumber]); } else { format(string, sizeof(string), "ID: %i\nNumber: %i\n{33CC33}Available (/call)", id, Payphones[id][phNumber]); } UpdateDynamic3DTextLabelText(Payphones[id][phText], COLOR_GREY, string); return 1; } UpdatePayphone(id) { if (!Payphones[id][phExists]) return 0; DestroyDynamicObject(Payphones[id][phObject]); DestroyDynamic3DTextLabel(Payphones[id][phText]); Payphones[id][phObject] = CreateDynamicObject(1216, Payphones[id][phX], Payphones[id][phY], Payphones[id][phZ], 0.0, 0.0, Payphones[id][phA], Payphones[id][phWorld], Payphones[id][phInterior]); Payphones[id][phText] = CreateDynamic3DTextLabel("Payphone", COLOR_GREY, Payphones[id][phX], Payphones[id][phY], Payphones[id][phZ] + 0.5, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Payphones[id][phWorld], Payphones[id][phInterior]); UpdatePayphoneText(id); return 1; } IsPhoneBusy(number) { new targetid = GetPhonePlayerID(number); return (targetid != INVALID_PLAYER_ID && Players[targetid][pCalling] > 0); } GetPhonePayphoneID(number) { for (new i = 0; i < MAX_PAYPHONES; i ++) { if (IsValidPayphoneID(i) && Payphones[i][phNumber] == number) { return i; } } return INVALID_ID; } GetPhonePlayerID(number) { foreach (new i : Player) { if (Players[i][pPhone] == number) { return i; } } return INVALID_PLAYER_ID; } IsVehicleBlacklisted(modelid) { if (400 <= modelid <= 611) { modelid -= 400; return gVehicleBlacklist[modelid]; } return 0; } BlacklistVehicle(modelid) { if ((400 <= modelid <= 611) && !IsVehicleBlacklisted(modelid)) { format(gExecute, sizeof(gExecute), "INSERT INTO rp_carblacklist (Model) VALUES(%i)", modelid); mysql_tquery(gConnection, gExecute); modelid -= 400; gVehicleBlacklist[modelid] = true; } } UnBlacklistVehicle(modelid) { if ((400 <= modelid <= 611) && IsVehicleBlacklisted(modelid)) { format(gExecute, sizeof(gExecute), "DELETE FROM rp_carblacklist WHERE Model = %i", modelid); mysql_tquery(gConnection, gExecute); modelid -= 400; gVehicleBlacklist[modelid] = false; } } IsValidDamageWeapon(weaponid) { if(!(0 <= weaponid <= 46)) return false; switch(weaponid) { case 0, 19..21, WEAPON_DILDO..WEAPON_FLOWER, WEAPON_GRENADE..WEAPON_MOLTOV, WEAPON_ROCKETLAUNCHER..WEAPON_MINIGUN, WEAPON_SATCHEL..WEAPON_PARACHUTE: return false; } return true; } ShowWeaponDamageEditMenu(playerid) { static string[512]; string = "Weapon\tDamage"; for(new i = 0; i < sizeof(WeaponDamages); i ++) { if(IsValidDamageWeapon(i)) { if (WeaponDamages[i] != 0.0) format(string, sizeof(string), "%s\n%s\t%.1f%c", string, GetWeapon(i), WeaponDamages[i], '%'); else format(string, sizeof(string), "%s\n%s\tDefault", string, GetWeapon(i)); } } Dialog_Show(playerid, WeaponDamages, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Select Weapon", string, "Change", "Cancel"); } ProcessDamage(playerid, weaponid) { new Float:damage = WeaponDamages[weaponid], Float:health, Float:armor; if (damage != 0.0) { GetPlayerHealth(playerid, health); GetPlayerArmour(playerid, armor); if (armor >= damage) { armor -= damage; } else if (armor < damage) { health -= (damage - armor), armor = 0; } else if (health >= damage) { health -= damage; } else { health = 0; } SetPlayerHealth(playerid, health); SetPlayerArmour(playerid, armor); } } SetPlayerToFacePlayer(playerid, targetid) { new Float:x, Float:y, Float:z, Float:tx, Float:ty, Float:tz ; GetPlayerPos(playerid, x, y, z); GetPlayerPos(targetid, tx, ty, tz); SetPlayerFacingAngle(playerid, (180.0 - atan2(x - tx, y - ty))); } SetWeaponDamage(weaponid, Float:damage) // Edited by Grime (09-27-2017) { if(IsValidDamageWeapon(weaponid)) { format(gExecute, sizeof(gExecute), "INSERT INTO rp_gundamages (Weapon, Damage) VALUES(%i, %.4f) ON DUPLICATE KEY UPDATE Damage = %.4f", weaponid, damage, damage); mysql_tquery(gConnection, gExecute); WeaponDamages[weaponid] = damage; } } GetTotalPaycheckAmount(playerid) { new total = 0; if (Players[playerid][pJobPaycheck] > 0) { total += Players[playerid][pJobPaycheck]; } if (Players[playerid][pFaction] != INVALID_ID && GetFactionRankPay(Players[playerid][pFaction], Players[playerid][pFactionRank]) > 0) { total += GetFactionRankPay(Players[playerid][pFaction], Players[playerid][pFactionRank]); } if (Players[playerid][pPaycheck] > 0) { total += Players[playerid][pPaycheck]; } return total; } UpdateTag(tag) { if (!Tags[tag][tagExists]) return 0; DestroyDynamicObject(Tags[tag][tagObject]); Tags[tag][tagObject] = CreateDynamicObject(19482, Tags[tag][tagX], Tags[tag][tagY], Tags[tag][tagZ], 0.0, 0.0, Tags[tag][tagA]); SetDynamicObjectMaterial(Tags[tag][tagObject], 0, 0, "none", "none", 0); SetDynamicObjectMaterialText(Tags[tag][tagObject], 0, Tags[tag][tagText], OBJECT_MATERIAL_SIZE_512x256, "Arial", Tags[tag][tagFontSize], Tags[tag][tagBold], Tags[tag][tagColor], 0, 0); //OBJECT_MATERIAL_SIZE_256x128 return 1; } SaveTag(tag) { static queryString[512]; if (!Tags[tag][tagExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_tags SET stText = '%s', stColor = %i, stX = %.4f, stY = %.4f, stZ = %.4f, stA = %.4f, stFontSize = %i, stBold = %i WHERE stID = %i", mysql_escaped(Tags[tag][tagText]), Tags[tag][tagColor], Tags[tag][tagX], Tags[tag][tagY], Tags[tag][tagZ], Tags[tag][tagA], Tags[tag][tagFontSize], Tags[tag][tagBold], Tags[tag][tagID] ); return mysql_tquery(gConnection, queryString); } UpdateSprayTag(spray) { if (!SprayTags[spray][sExists]) return 0; DestroyDynamicObject(SprayTags[spray][sObject]); SprayTags[spray][sObject] = CreateDynamicObject(19482, SprayTags[spray][sX], SprayTags[spray][sY], SprayTags[spray][sZ], 0.0, 0.0, SprayTags[spray][sA]); SetDynamicObjectMaterial(SprayTags[spray][sObject], 0, 0, "none", "none", 0); SetDynamicObjectMaterialText(SprayTags[spray][sObject], 0, SprayTags[spray][sText], OBJECT_MATERIAL_SIZE_256x128, "Arial", 24, 1, SprayTags[spray][sColor], 0, 0); return 1; } SaveSprayTag(spray) { static queryString[512]; if (!SprayTags[spray][sExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_spraytags SET stText = '%s', stColor = %i, stX = %.4f, stY = %.4f, stZ = %.4f, stA = %.4f WHERE stID = %i", mysql_escaped(SprayTags[spray][sText]), SprayTags[spray][sColor], SprayTags[spray][sX], SprayTags[spray][sY], SprayTags[spray][sZ], SprayTags[spray][sA], SprayTags[spray][sID] ); return mysql_tquery(gConnection, queryString); } GetClosestSprayTag(playerid) { for (new i = 0; i < MAX_SPRAY_TAGS; i ++) { if (SprayTags[i][sExists] && IsPlayerInRangeOfPoint(playerid, 3.0, SprayTags[i][sX], SprayTags[i][sY], SprayTags[i][sZ])) { return i; } } return INVALID_ID; } GetClosestTag(playerid) { for (new i = 0; i < MAX_TAGS; i ++) { if (Tags[i][tagExists] && IsPlayerInRangeOfPoint(playerid, 3.0, Tags[i][tagX], Tags[i][tagY], Tags[i][tagZ])) { return i; } } return INVALID_ID; } AddTag(Float:x, Float:y, Float:z, Float:angle, const tag[]) { new id = GetNextTagID(); if (id != INVALID_ID) { strcpy(Tags[id][tagText], tag, 64); Tags[id][tagExists] = 1; Tags[id][tagColor] = 0xFFFFFFFF; Tags[id][tagX] = x; Tags[id][tagY] = y; Tags[id][tagZ] = z; Tags[id][tagA] = angle - 90.0; Tags[id][tagObject] = INVALID_OBJECT_ID; Tags[id][tagFontSize] = 24; Tags[id][tagBold] = 1; format(gExecute, sizeof(gExecute), "INSERT INTO rp_tags (stColor) VALUES(%i)", SprayTags[id][sColor]); mysql_tquery(gConnection, gExecute, "OnTagAdded", "i", id); UpdateTag(id); } return id; } AddSprayTag(Float:x, Float:y, Float:z, Float:angle) { new id = GetNextSprayTagID(); if (id != INVALID_ID) { strcpy(SprayTags[id][sText], "/spray to spray\nthis point", 64); SprayTags[id][sExists] = 1; SprayTags[id][sColor] = 0xFFFFFFFF; SprayTags[id][sX] = x; SprayTags[id][sY] = y; SprayTags[id][sZ] = z; SprayTags[id][sA] = angle - 90.0; SprayTags[id][sObject] = INVALID_OBJECT_ID; format(gExecute, sizeof(gExecute), "INSERT INTO rp_spraytags (stColor) VALUES(%i)", SprayTags[id][sColor]); mysql_tquery(gConnection, gExecute, "OnSprayTagAdded", "i", id); UpdateSprayTag(id); } return id; } IsCallIncoming(playerid) { return (Players[playerid][pCalling] == 1 && Players[playerid][pCaller] != INVALID_PLAYER_ID); } IsPlayerNearRingingPayphone(playerid) { new payphone = GetClosestPayphone(playerid); return (IsValidPayphoneID(payphone) && Payphones[payphone][phCaller] != INVALID_PLAYER_ID); } GetClosestPayphone(playerid) { for (new i = 0; i < MAX_PAYPHONES; i ++) { if (Payphones[i][phExists] && IsPlayerNearPoint(playerid, 2.0, Payphones[i][phX], Payphones[i][phY], Payphones[i][phZ], Payphones[i][phInterior], Payphones[i][phWorld])) { return i; } } return INVALID_ID; } AddPayphone(Float:x, Float:y, Float:z, Float:angle, interior, world) { new id = GetNextPayphoneID(); if (id != INVALID_ID) { Payphones[id][phExists] = 1; Payphones[id][phNumber] = Random(1000000, 9999999); Payphones[id][phOccupied] = 0; Payphones[id][phCaller] = INVALID_PLAYER_ID; Payphones[id][phX] = x; Payphones[id][phY] = y; Payphones[id][phZ] = z; Payphones[id][phA] = angle; Payphones[id][phInterior] = interior; Payphones[id][phWorld] = world; Payphones[id][phObject] = INVALID_OBJECT_ID; Payphones[id][phText] = INVALID_3DTEXT_ID; UpdatePayphone(id); format(gExecute, sizeof(gExecute), "INSERT INTO rp_payphones (phInterior) VALUES(%i)", interior); mysql_tquery(gConnection, gExecute, "OnPayphoneAdded", "i", id); } return id; } UseAmmunition(playerid, itemid) { new string[128]; if (Weapons[playerid][wPrimary] > 0 && Weapons[playerid][wPrimaryAmmo] > 0) { format(string, sizeof(string), "%s\n%s (%i)", string, GetWeapon(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo]); } else { format(string, sizeof(string), "%s\n%s", string, GetWeapon(Weapons[playerid][wPrimary])); } if (Weapons[playerid][wSecondary] > 0 && Weapons[playerid][wSecondaryAmmo] > 0) { format(string, sizeof(string), "%s\n%s (%i)", string, GetWeapon(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo]); } else { format(string, sizeof(string), "%s\n%s", string, GetWeapon(Weapons[playerid][wSecondary])); } if (Players[playerid][pDonator] >= DONATOR_STANDARD) { if (Weapons[playerid][wTertiary] > 0 && Weapons[playerid][wTertiaryAmmo] > 0) { format(string, sizeof(string), "%s\n%s (%i)", string, GetWeapon(Weapons[playerid][wTertiary]), Weapons[playerid][wTertiaryAmmo]); } else { format(string, sizeof(string), "%s\n%s", string, GetWeapon(Weapons[playerid][wTertiary])); } } Players[playerid][pSelected] = itemid; Dialog_Show(playerid, UseAmmunition, DIALOG_STYLE_LIST, "{FFFFFF}Use ammunition", string, "Load", "Cancel"); } AddTrashbin(Float:x, Float:y, Float:z, Float:angle, interior, world) { new id = GetNextTrashbinID(); if (id != INVALID_ID) { Trashbins[id][tExists] = 1; Trashbins[id][tX] = x; Trashbins[id][tY] = y; Trashbins[id][tZ] = z; Trashbins[id][tA] = angle; Trashbins[id][tInterior] = interior; Trashbins[id][tWorld] = world; Trashbins[id][tText] = INVALID_3DTEXT_ID; Trashbins[id][tObject] = INVALID_OBJECT_ID; UpdateTrashbin(id); format(gExecute, sizeof(gExecute), "INSERT INTO rp_trashbins (tInterior) VALUES(%i)", interior); mysql_tquery(gConnection, gExecute, "OnTrashbinAdded", "i", id); } return id; } SaveTrashbin(trashbin) { static queryString[192]; if (!Trashbins[trashbin][tExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_trashbins SET tX = %.4f, tY = %.4f, tZ = %.4f, tA = %.4f, tInterior = %i, tWorld = %i WHERE tID = %i", Trashbins[trashbin][tX], Trashbins[trashbin][tY], Trashbins[trashbin][tZ], Trashbins[trashbin][tA], Trashbins[trashbin][tInterior], Trashbins[trashbin][tWorld], Trashbins[trashbin][tID]); return mysql_tquery(gConnection, queryString); } UpdateTrashbin(trashbin) { new string[64]; if (!Trashbins[trashbin][tExists]) return 0; DestroyDynamic3DTextLabel(Trashbins[trashbin][tText]); DestroyDynamicObject(Trashbins[trashbin][tObject]); format(string, sizeof(string), "ID: %i\nPress Y to look inside", trashbin); Trashbins[trashbin][tText] = CreateDynamic3DTextLabel(string, COLOR_GREY, Trashbins[trashbin][tX], Trashbins[trashbin][tY], Trashbins[trashbin][tZ], 2.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Trashbins[trashbin][tWorld], Trashbins[trashbin][tInterior]); Trashbins[trashbin][tObject] = CreateDynamicObject(1337, Trashbins[trashbin][tX], Trashbins[trashbin][tY], Trashbins[trashbin][tZ], 0.0, 0.0, Trashbins[trashbin][tA], Trashbins[trashbin][tWorld], Trashbins[trashbin][tInterior]); return 1; } ShowTrashbinItems(playerid, trashbin) { if (!IsValidTrashbinID(trashbin)) { return 0; } else { new title[64], index = 0; gListString = "Item\tWeight\nStore Item"; for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (StoredItems[i][stExists] && StoredItems[i][stTrashbin] == Trashbins[trashbin][tID]) { format(gListString, sizeof(gListString), "%s\n%s\t%i lbs", gListString, GetStoredItemName(i), GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT)); gListedItems[playerid][index++] = i; } } Players[playerid][pTrashbin] = trashbin; format(title, sizeof(title), "{FFFFFF}Trashbin - Capacity: %i/%i", GetTrashbinTotalWeight(trashbin), MAX_TRASHBIN_WEIGHT); Dialog_Show(playerid, TrashbinMenu, DIALOG_STYLE_TABLIST_HEADERS, title, gListString, "Select", "Back"); } return 1; } SaveObject(object) { static queryString[512]; if (!Objects[object][oExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_objects SET oModel = %i, oX = %.4f, oY = %.4f, oZ = %.4f, oRX = %.4f, oRY = %.4f, oRZ = %.4f, oDistance = %.4f, oInterior = %i, oWorld = %i WHERE oID = %i", Objects[object][oModel], Objects[object][oX], Objects[object][oY], Objects[object][oZ], Objects[object][oRX], Objects[object][oRY], Objects[object][oRZ], Objects[object][oDistance], Objects[object][oInterior], Objects[object][oWorld], Objects[object][oID] ); return mysql_tquery(gConnection, queryString); } AddObject(modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:distance, interior, worldid) { new id = GetNextObjectID(); if (id != INVALID_ID) { Objects[id][oExists] = 1; Objects[id][oModel] = modelid; Objects[id][oX] = x; Objects[id][oY] = y; Objects[id][oZ] = z; Objects[id][oRX] = rx; Objects[id][oRY] = ry; Objects[id][oRZ] = rz; Objects[id][oDistance] = distance; Objects[id][oInterior] = interior; Objects[id][oWorld] = worldid; Objects[id][oObjectID] = INVALID_OBJECT_ID; Objects[id][oText] = INVALID_3DTEXT_ID; UpdateObject(id); format(gExecute, sizeof(gExecute), "INSERT INTO rp_objects (oModel) VALUES(%i)", modelid); mysql_tquery(gConnection, gExecute, "OnObjectAdded", "i", id); } return id; } UpdateObjectLabel(object) { new string[32]; if (!Objects[object][oExists]) return 0; DestroyDynamic3DTextLabel(Objects[object][oText]); if (gObjectDebug) { format(string, sizeof(string), "ID: %i\nModel ID: %i", object, Objects[object][oModel]); Objects[object][oText] = CreateDynamic3DTextLabel(string, COLOR_GREY, Objects[object][oX], Objects[object][oY], Objects[object][oZ] + 0.5, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Objects[object][oWorld], Objects[object][oInterior]); } else { Objects[object][oText] = INVALID_3DTEXT_ID; } return 1; } UpdateObject(object) { if (!Objects[object][oExists]) return 0; DestroyDynamicObject(Objects[object][oObjectID]); Objects[object][oObjectID] = CreateDynamicObject(Objects[object][oModel], Objects[object][oX], Objects[object][oY], Objects[object][oZ], Objects[object][oRX], Objects[object][oRY], Objects[object][oRZ], Objects[object][oWorld], Objects[object][oInterior], -1, Objects[object][oDistance], Objects[object][oDistance]); if (gObjectDebug) { UpdateObjectLabel(object); } return 1; } UpdateLabel(label) { if (!Labels[label][lExists]) return 0; DestroyDynamic3DTextLabel(Labels[label][lText3D]); Labels[label][lText3D] = CreateDynamic3DTextLabel(Labels[label][lText], Labels[label][lColor], Labels[label][lX], Labels[label][lY], Labels[label][lZ], Labels[label][lDistance], INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Labels[label][lWorld], Labels[label][lInterior]); return 1; } SaveLabel(label) { static queryString[512]; if (!Labels[label][lExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_dynamiclabels SET lColor = %i, lText = '%s', lX = %.4f, lY = %.4f, lZ = %.4f, lDistance = %.4f, lInterior = %i, lWorld = %i WHERE lID = %i", Labels[label][lColor], mysql_escaped(Labels[label][lText]), Labels[label][lX], Labels[label][lY], Labels[label][lZ], Labels[label][lDistance], Labels[label][lInterior], Labels[label][lWorld], Labels[label][lID] ); return mysql_tquery(gConnection, queryString); } IsPlayerInRangeOfHospital(playerid) { for (new i = 0; i < sizeof(g_HospitalDeliverPoints); i ++) { if (IsPlayerInRangeOfPoint(playerid, 5.0, g_HospitalDeliverPoints[i][0], g_HospitalDeliverPoints[i][1], g_HospitalDeliverPoints[i][2])) { return 1; } } return 0; } GetPlayerZoneNameEx(playerid) { new Float:x, Float:y, Float:z, zone[MAX_ZONE_NAME]; if (GetPlayerPosEx(playerid, x, y, z)) { strcpy(zone, GetZoneName(x, y, z)); } else { zone = "Interior"; } return zone; } GetPlayerPosEx(playerid, &Float:x, &Float:y, &Float:z) { new insideid = INVALID_ID ; if ((insideid = GetCurrentCompany(playerid)) != INVALID_ID) { x = Companies[insideid][cSpawn][0]; y = Companies[insideid][cSpawn][1]; z = Companies[insideid][cSpawn][2]; return 1; } else if ((insideid = GetCurrentHouse(playerid)) != INVALID_ID) { x = Houses[insideid][hSpawn][0]; y = Houses[insideid][hSpawn][1]; z = Houses[insideid][hSpawn][2]; return 1; } else if ((insideid = GetCurrentBuilding(playerid)) != INVALID_ID) { x = Buildings[insideid][bSpawn][0]; y = Buildings[insideid][bSpawn][1]; z = Buildings[insideid][bSpawn][2]; return 1; } else if (IsPlayerInside(playerid)) { return 0; } return GetPlayerPos(playerid, x, y, z); } Float:GetDeployedItemRange(id) { switch (DeployedItems[id][dpType]) { case DEPLOY_TYPE_CONE, DEPLOY_TYPE_FLARE, DEPLOY_TYPE_BARREL, DEPLOY_TYPE_TAPE: return 2.0; case DEPLOY_TYPE_SPIKES: return 3.0; case DEPLOY_TYPE_ROADBLOCK: return 7.0; } return 0.0; } GetClosestTrashbin(playerid) { for (new i = 0; i < MAX_TRASH_BINS; i ++) { if (Trashbins[i][tExists] && IsPlayerNearPoint(playerid, 2.0, Trashbins[i][tX], Trashbins[i][tY], Trashbins[i][tZ], Trashbins[i][tInterior], Trashbins[i][tWorld])) { return i; } } return INVALID_ID; } GetClosestDeployedItem(playerid) { for (new i = 0; i < MAX_DEPLOYED_ITEMS; i ++) { if (DeployedItems[i][dpExists] && IsPlayerInRangeOfPoint(playerid, GetDeployedItemRange(i), DeployedItems[i][dpX], DeployedItems[i][dpY], DeployedItems[i][dpZ])) { return i; } } return INVALID_ID; } GetClosestLabel(playerid) { for (new i = 0; i < MAX_DYNAMIC_LABELS; i ++) { if (Labels[i][lExists] && IsPlayerNearPoint(playerid, 2.0, Labels[i][lX], Labels[i][lY], Labels[i][lZ], Labels[i][lInterior], Labels[i][lWorld])) { return i; } } return INVALID_ID; } IsAutoShopInUse(id) { foreach (new i : Player) { if (Players[i][pAutoShop] == id) { return 1; } } return 0; } GetClosestAutoShop(playerid) { for (new i = 0; i < MAX_AUTO_SHOPS; i ++) { if (IsValidAutoShopID(i) && IsPlayerInRangeOfPoint(playerid, 5.0, AutoShops[i][asX], AutoShops[i][asY], AutoShops[i][asZ])) { return i; } } return INVALID_ID; } UpdateAutoShop(id) { new string[64]; if (!AutoShops[id][asExists]) return 0; DestroyDynamicPickup(AutoShops[id][asPickup]); DestroyDynamicMapIcon(AutoShops[id][asIcon]); DestroyDynamic3DTextLabel(AutoShops[id][asText]); format(string, sizeof(string), "ID: %i\nUse /repair to repair vehicle", id); AutoShops[id][asPickup] = CreateDynamicPickup(1239, 23, AutoShops[id][asX], AutoShops[id][asY], AutoShops[id][asZ]); AutoShops[id][asIcon] = CreateDynamicMapIcon(AutoShops[id][asX], AutoShops[id][asY], AutoShops[id][asZ], 27, 0); AutoShops[id][asText] = CreateDynamic3DTextLabel(string, COLOR_GREY, AutoShops[id][asX], AutoShops[id][asY], AutoShops[id][asZ], 15.0); return 1; } GetFactionOnlineMembers(faction) { new count = 0; foreach (new i : Player) { if (IsPlayerLoggedIn(i) && Players[i][pFaction] == faction) { count++; } } return count; } GetFactionIDName(id) { new string[32] = "Not Specified", faction ; faction = GetFactionID(id); if (IsValidFactionID(faction)) { strcpy(string, Factions[faction][fcName]); } return string; } enum SAZONE_MAIN { SAZONE_NAME[28], Float:SAZONE_AREA[6] }; static const gSAZones[][SAZONE_MAIN] = { // NAME AREA (Xmin,Ymin,Zmin,Xmax,Ymax,Zmax) {"The Big Ear", {-410.00,1403.30,-3.00,-137.90,1681.20,200.00}}, {"Aldea Malvada", {-1372.10,2498.50,0.00,-1277.50,2615.30,200.00}}, {"Angel Pine", {-2324.90,-2584.20,-6.10,-1964.20,-2212.10,200.00}}, {"Arco del Oeste", {-901.10,2221.80,0.00,-592.00,2571.90,200.00}}, {"Avispa Country Club", {-2646.40,-355.40,0.00,-2270.00,-222.50,200.00}}, {"Avispa Country Club", {-2831.80,-430.20,-6.10,-2646.40,-222.50,200.00}}, {"Avispa Country Club", {-2361.50,-417.10,0.00,-2270.00,-355.40,200.00}}, {"Avispa Country Club", {-2667.80,-302.10,-28.80,-2646.40,-262.30,71.10}}, {"Avispa Country Club", {-2470.00,-355.40,0.00,-2270.00,-318.40,46.10}}, {"Avispa Country Club", {-2550.00,-355.40,0.00,-2470.00,-318.40,39.70}}, {"Back o Beyond", {-1166.90,-2641.10,0.00,-321.70,-1856.00,200.00}}, {"Battery Point", {-2741.00,1268.40,-4.50,-2533.00,1490.40,200.00}}, {"Bayside", {-2741.00,2175.10,0.00,-2353.10,2722.70,200.00}}, {"Bayside Marina", {-2353.10,2275.70,0.00,-2153.10,2475.70,200.00}}, {"Beacon Hill", {-399.60,-1075.50,-1.40,-319.00,-977.50,198.50}}, {"Blackfield", {964.30,1203.20,-89.00,1197.30,1403.20,110.90}}, {"Blackfield", {964.30,1403.20,-89.00,1197.30,1726.20,110.90}}, {"Blackfield Chapel", {1375.60,596.30,-89.00,1558.00,823.20,110.90}}, {"Blackfield Chapel", {1325.60,596.30,-89.00,1375.60,795.00,110.90}}, {"Blackfield Intersection", {1197.30,1044.60,-89.00,1277.00,1163.30,110.90}}, {"Blackfield Intersection", {1166.50,795.00,-89.00,1375.60,1044.60,110.90}}, {"Blackfield Intersection", {1277.00,1044.60,-89.00,1315.30,1087.60,110.90}}, {"Blackfield Intersection", {1375.60,823.20,-89.00,1457.30,919.40,110.90}}, {"Blueberry", {104.50,-220.10,2.30,349.60,152.20,200.00}}, {"Blueberry", {19.60,-404.10,3.80,349.60,-220.10,200.00}}, {"Blueberry Acres", {-319.60,-220.10,0.00,104.50,293.30,200.00}}, {"Pershing Apartments", {2087.30,1543.20,-89.00,2437.30,1703.20,110.90}}, {"Pershing Apartments", {2137.40,1703.20,-89.00,2437.30,1783.20,110.90}}, {"Calton Heights", {-2274.10,744.10,-6.10,-1982.30,1358.90,200.00}}, {"Chinatown", {-2274.10,578.30,-7.60,-2078.60,744.10,200.00}}, {"City Hall", {-2867.80,277.40,-9.10,-2593.40,458.40,200.00}}, {"Come-A-Lot", {2087.30,943.20,-89.00,2623.10,1203.20,110.90}}, {"Commerce", {1323.90,-1842.20,-89.00,1701.90,-1722.20,110.90}}, {"Commerce", {1323.90,-1722.20,-89.00,1440.90,-1577.50,110.90}}, {"Commerce", {1370.80,-1577.50,-89.00,1463.90,-1384.90,110.90}}, {"Commerce", {1463.90,-1577.50,-89.00,1667.90,-1430.80,110.90}}, {"Commerce", {1583.50,-1722.20,-89.00,1758.90,-1577.50,110.90}}, {"Commerce", {1667.90,-1577.50,-89.00,1812.60,-1430.80,110.90}}, {"Conference Center", {1046.10,-1804.20,-89.00,1323.90,-1722.20,110.90}}, {"Conference Center", {1073.20,-1842.20,-89.00,1323.90,-1804.20,110.90}}, {"Cranberry Station", {-2007.80,56.30,0.00,-1922.00,224.70,100.00}}, {"Creek", {2749.90,1937.20,-89.00,2921.60,2669.70,110.90}}, {"Dillimore", {580.70,-674.80,-9.50,861.00,-404.70,200.00}}, {"Doherty", {-2270.00,-324.10,-0.00,-1794.90,-222.50,200.00}}, {"Doherty", {-2173.00,-222.50,-0.00,-1794.90,265.20,200.00}}, {"Downtown", {-1982.30,744.10,-6.10,-1871.70,1274.20,200.00}}, {"Downtown", {-1871.70,1176.40,-4.50,-1620.30,1274.20,200.00}}, {"Downtown", {-1700.00,744.20,-6.10,-1580.00,1176.50,200.00}}, {"Downtown", {-1580.00,744.20,-6.10,-1499.80,1025.90,200.00}}, {"Downtown", {-2078.60,578.30,-7.60,-1499.80,744.20,200.00}}, {"Downtown", {-1993.20,265.20,-9.10,-1794.90,578.30,200.00}}, {"Downtown Los Santos", {1463.90,-1430.80,-89.00,1724.70,-1290.80,110.90}}, {"Downtown Los Santos", {1724.70,-1430.80,-89.00,1812.60,-1250.90,110.90}}, {"Downtown Los Santos", {1463.90,-1290.80,-89.00,1724.70,-1150.80,110.90}}, {"Downtown Los Santos", {1370.80,-1384.90,-89.00,1463.90,-1170.80,110.90}}, {"Downtown Los Santos", {1724.70,-1250.90,-89.00,1812.60,-1150.80,110.90}}, {"Downtown Los Santos", {1370.80,-1170.80,-89.00,1463.90,-1130.80,110.90}}, {"Downtown Los Santos", {1378.30,-1130.80,-89.00,1463.90,-1026.30,110.90}}, {"Downtown Los Santos", {1391.00,-1026.30,-89.00,1463.90,-926.90,110.90}}, {"Downtown Los Santos", {1507.50,-1385.20,110.90,1582.50,-1325.30,335.90}}, {"East Beach", {2632.80,-1852.80,-89.00,2959.30,-1668.10,110.90}}, {"East Beach", {2632.80,-1668.10,-89.00,2747.70,-1393.40,110.90}}, {"East Beach", {2747.70,-1668.10,-89.00,2959.30,-1498.60,110.90}}, {"East Beach", {2747.70,-1498.60,-89.00,2959.30,-1120.00,110.90}}, {"East Los Santos", {2421.00,-1628.50,-89.00,2632.80,-1454.30,110.90}}, {"East Los Santos", {2222.50,-1628.50,-89.00,2421.00,-1494.00,110.90}}, {"East Los Santos", {2266.20,-1494.00,-89.00,2381.60,-1372.00,110.90}}, {"East Los Santos", {2381.60,-1494.00,-89.00,2421.00,-1454.30,110.90}}, {"East Los Santos", {2281.40,-1372.00,-89.00,2381.60,-1135.00,110.90}}, {"East Los Santos", {2381.60,-1454.30,-89.00,2462.10,-1135.00,110.90}}, {"East Los Santos", {2462.10,-1454.30,-89.00,2581.70,-1135.00,110.90}}, {"Easter Basin", {-1794.90,249.90,-9.10,-1242.90,578.30,200.00}}, {"Easter Basin", {-1794.90,-50.00,-0.00,-1499.80,249.90,200.00}}, {"Easter Bay Airport", {-1499.80,-50.00,-0.00,-1242.90,249.90,200.00}}, {"Easter Bay Airport", {-1794.90,-730.10,-3.00,-1213.90,-50.00,200.00}}, {"Easter Bay Airport", {-1213.90,-730.10,0.00,-1132.80,-50.00,200.00}}, {"Easter Bay Airport", {-1242.90,-50.00,0.00,-1213.90,578.30,200.00}}, {"Easter Bay Airport", {-1213.90,-50.00,-4.50,-947.90,578.30,200.00}}, {"Easter Bay Airport", {-1315.40,-405.30,15.40,-1264.40,-209.50,25.40}}, {"Easter Bay Airport", {-1354.30,-287.30,15.40,-1315.40,-209.50,25.40}}, {"Easter Bay Airport", {-1490.30,-209.50,15.40,-1264.40,-148.30,25.40}}, {"Easter Bay Chemicals", {-1132.80,-768.00,0.00,-956.40,-578.10,200.00}}, {"Easter Bay Chemicals", {-1132.80,-787.30,0.00,-956.40,-768.00,200.00}}, {"El Castillo del Diablo", {-464.50,2217.60,0.00,-208.50,2580.30,200.00}}, {"El Castillo del Diablo", {-208.50,2123.00,-7.60,114.00,2337.10,200.00}}, {"El Castillo del Diablo", {-208.50,2337.10,0.00,8.40,2487.10,200.00}}, {"El Corona", {1812.60,-2179.20,-89.00,1970.60,-1852.80,110.90}}, {"El Corona", {1692.60,-2179.20,-89.00,1812.60,-1842.20,110.90}}, {"El Quebrados", {-1645.20,2498.50,0.00,-1372.10,2777.80,200.00}}, {"Esplanade East", {-1620.30,1176.50,-4.50,-1580.00,1274.20,200.00}}, {"Esplanade East", {-1580.00,1025.90,-6.10,-1499.80,1274.20,200.00}}, {"Esplanade East", {-1499.80,578.30,-79.60,-1339.80,1274.20,20.30}}, {"Esplanade North", {-2533.00,1358.90,-4.50,-1996.60,1501.20,200.00}}, {"Esplanade North", {-1996.60,1358.90,-4.50,-1524.20,1592.50,200.00}}, {"Esplanade North", {-1982.30,1274.20,-4.50,-1524.20,1358.90,200.00}}, {"Fallen Tree", {-792.20,-698.50,-5.30,-452.40,-380.00,200.00}}, {"Fallow Bridge", {434.30,366.50,0.00,603.00,555.60,200.00}}, {"Fern Ridge", {508.10,-139.20,0.00,1306.60,119.50,200.00}}, {"Financial", {-1871.70,744.10,-6.10,-1701.30,1176.40,300.00}}, {"Fisher's Lagoon", {1916.90,-233.30,-100.00,2131.70,13.80,200.00}}, {"Flint Intersection", {-187.70,-1596.70,-89.00,17.00,-1276.60,110.90}}, {"Flint Range", {-594.10,-1648.50,0.00,-187.70,-1276.60,200.00}}, {"Fort Carson", {-376.20,826.30,-3.00,123.70,1220.40,200.00}}, {"Foster Valley", {-2270.00,-430.20,-0.00,-2178.60,-324.10,200.00}}, {"Foster Valley", {-2178.60,-599.80,-0.00,-1794.90,-324.10,200.00}}, {"Foster Valley", {-2178.60,-1115.50,0.00,-1794.90,-599.80,200.00}}, {"Foster Valley", {-2178.60,-1250.90,0.00,-1794.90,-1115.50,200.00}}, {"Frederick Bridge", {2759.20,296.50,0.00,2774.20,594.70,200.00}}, {"Gant Bridge", {-2741.40,1659.60,-6.10,-2616.40,2175.10,200.00}}, {"Gant Bridge", {-2741.00,1490.40,-6.10,-2616.40,1659.60,200.00}}, {"Ganton", {2222.50,-1852.80,-89.00,2632.80,-1722.30,110.90}}, {"Ganton", {2222.50,-1722.30,-89.00,2632.80,-1628.50,110.90}}, {"Garcia", {-2411.20,-222.50,-0.00,-2173.00,265.20,200.00}}, {"Garcia", {-2395.10,-222.50,-5.30,-2354.00,-204.70,200.00}}, {"Garver Bridge", {-1339.80,828.10,-89.00,-1213.90,1057.00,110.90}}, {"Garver Bridge", {-1213.90,950.00,-89.00,-1087.90,1178.90,110.90}}, {"Garver Bridge", {-1499.80,696.40,-179.60,-1339.80,925.30,20.30}}, {"Glen Park", {1812.60,-1449.60,-89.00,1996.90,-1350.70,110.90}}, {"Glen Park", {1812.60,-1100.80,-89.00,1994.30,-973.30,110.90}}, {"Glen Park", {1812.60,-1350.70,-89.00,2056.80,-1100.80,110.90}}, {"Green Palms", {176.50,1305.40,-3.00,338.60,1520.70,200.00}}, {"Greenglass College", {964.30,1044.60,-89.00,1197.30,1203.20,110.90}}, {"Greenglass College", {964.30,930.80,-89.00,1166.50,1044.60,110.90}}, {"Hampton Barns", {603.00,264.30,0.00,761.90,366.50,200.00}}, {"Hankypanky Point", {2576.90,62.10,0.00,2759.20,385.50,200.00}}, {"Harry Gold Parkway", {1777.30,863.20,-89.00,1817.30,2342.80,110.90}}, {"Hashbury", {-2593.40,-222.50,-0.00,-2411.20,54.70,200.00}}, {"Hilltop Farm", {967.30,-450.30,-3.00,1176.70,-217.90,200.00}}, {"Hunter Quarry", {337.20,710.80,-115.20,860.50,1031.70,203.70}}, {"Idlewood", {1812.60,-1852.80,-89.00,1971.60,-1742.30,110.90}}, {"Idlewood", {1812.60,-1742.30,-89.00,1951.60,-1602.30,110.90}}, {"Idlewood", {1951.60,-1742.30,-89.00,2124.60,-1602.30,110.90}}, {"Idlewood", {1812.60,-1602.30,-89.00,2124.60,-1449.60,110.90}}, {"Idlewood", {2124.60,-1742.30,-89.00,2222.50,-1494.00,110.90}}, {"Idlewood", {1971.60,-1852.80,-89.00,2222.50,-1742.30,110.90}}, {"Jefferson", {1996.90,-1449.60,-89.00,2056.80,-1350.70,110.90}}, {"Jefferson", {2124.60,-1494.00,-89.00,2266.20,-1449.60,110.90}}, {"Jefferson", {2056.80,-1372.00,-89.00,2281.40,-1210.70,110.90}}, {"Jefferson", {2056.80,-1210.70,-89.00,2185.30,-1126.30,110.90}}, {"Jefferson", {2185.30,-1210.70,-89.00,2281.40,-1154.50,110.90}}, {"Jefferson", {2056.80,-1449.60,-89.00,2266.20,-1372.00,110.90}}, {"Julius Thruway East", {2623.10,943.20,-89.00,2749.90,1055.90,110.90}}, {"Julius Thruway East", {2685.10,1055.90,-89.00,2749.90,2626.50,110.90}}, {"Julius Thruway East", {2536.40,2442.50,-89.00,2685.10,2542.50,110.90}}, {"Julius Thruway East", {2625.10,2202.70,-89.00,2685.10,2442.50,110.90}}, {"Julius Thruway North", {2498.20,2542.50,-89.00,2685.10,2626.50,110.90}}, {"Julius Thruway North", {2237.40,2542.50,-89.00,2498.20,2663.10,110.90}}, {"Julius Thruway North", {2121.40,2508.20,-89.00,2237.40,2663.10,110.90}}, {"Julius Thruway North", {1938.80,2508.20,-89.00,2121.40,2624.20,110.90}}, {"Julius Thruway North", {1534.50,2433.20,-89.00,1848.40,2583.20,110.90}}, {"Julius Thruway North", {1848.40,2478.40,-89.00,1938.80,2553.40,110.90}}, {"Julius Thruway North", {1704.50,2342.80,-89.00,1848.40,2433.20,110.90}}, {"Julius Thruway North", {1377.30,2433.20,-89.00,1534.50,2507.20,110.90}}, {"Julius Thruway South", {1457.30,823.20,-89.00,2377.30,863.20,110.90}}, {"Julius Thruway South", {2377.30,788.80,-89.00,2537.30,897.90,110.90}}, {"Julius Thruway West", {1197.30,1163.30,-89.00,1236.60,2243.20,110.90}}, {"Julius Thruway West", {1236.60,2142.80,-89.00,1297.40,2243.20,110.90}}, {"Juniper Hill", {-2533.00,578.30,-7.60,-2274.10,968.30,200.00}}, {"Juniper Hollow", {-2533.00,968.30,-6.10,-2274.10,1358.90,200.00}}, {"K.A.C.C. Military Fuels", {2498.20,2626.50,-89.00,2749.90,2861.50,110.90}}, {"Kincaid Bridge", {-1339.80,599.20,-89.00,-1213.90,828.10,110.90}}, {"Kincaid Bridge", {-1213.90,721.10,-89.00,-1087.90,950.00,110.90}}, {"Kincaid Bridge", {-1087.90,855.30,-89.00,-961.90,986.20,110.90}}, {"King's", {-2329.30,458.40,-7.60,-1993.20,578.30,200.00}}, {"King's", {-2411.20,265.20,-9.10,-1993.20,373.50,200.00}}, {"King's", {-2253.50,373.50,-9.10,-1993.20,458.40,200.00}}, {"LVA Freight Depot", {1457.30,863.20,-89.00,1777.40,1143.20,110.90}}, {"LVA Freight Depot", {1375.60,919.40,-89.00,1457.30,1203.20,110.90}}, {"LVA Freight Depot", {1277.00,1087.60,-89.00,1375.60,1203.20,110.90}}, {"LVA Freight Depot", {1315.30,1044.60,-89.00,1375.60,1087.60,110.90}}, {"LVA Freight Depot", {1236.60,1163.40,-89.00,1277.00,1203.20,110.90}}, {"Las Barrancas", {-926.10,1398.70,-3.00,-719.20,1634.60,200.00}}, {"Las Brujas", {-365.10,2123.00,-3.00,-208.50,2217.60,200.00}}, {"Las Colinas", {1994.30,-1100.80,-89.00,2056.80,-920.80,110.90}}, {"Las Colinas", {2056.80,-1126.30,-89.00,2126.80,-920.80,110.90}}, {"Las Colinas", {2185.30,-1154.50,-89.00,2281.40,-934.40,110.90}}, {"Las Colinas", {2126.80,-1126.30,-89.00,2185.30,-934.40,110.90}}, {"Las Colinas", {2747.70,-1120.00,-89.00,2959.30,-945.00,110.90}}, {"Las Colinas", {2632.70,-1135.00,-89.00,2747.70,-945.00,110.90}}, {"Las Colinas", {2281.40,-1135.00,-89.00,2632.70,-945.00,110.90}}, {"Las Payasadas", {-354.30,2580.30,2.00,-133.60,2816.80,200.00}}, {"Las Venturas Airport", {1236.60,1203.20,-89.00,1457.30,1883.10,110.90}}, {"Las Venturas Airport", {1457.30,1203.20,-89.00,1777.30,1883.10,110.90}}, {"Las Venturas Airport", {1457.30,1143.20,-89.00,1777.40,1203.20,110.90}}, {"Las Venturas Airport", {1515.80,1586.40,-12.50,1729.90,1714.50,87.50}}, {"Last Dime Motel", {1823.00,596.30,-89.00,1997.20,823.20,110.90}}, {"Leafy Hollow", {-1166.90,-1856.00,0.00,-815.60,-1602.00,200.00}}, {"Liberty City", {-1000.00,400.00,1300.00,-700.00,600.00,1400.00}}, {"Lil' Probe Inn", {-90.20,1286.80,-3.00,153.80,1554.10,200.00}}, {"Linden Side", {2749.90,943.20,-89.00,2923.30,1198.90,110.90}}, {"Linden Station", {2749.90,1198.90,-89.00,2923.30,1548.90,110.90}}, {"Linden Station", {2811.20,1229.50,-39.50,2861.20,1407.50,60.40}}, {"Little Mexico", {1701.90,-1842.20,-89.00,1812.60,-1722.20,110.90}}, {"Little Mexico", {1758.90,-1722.20,-89.00,1812.60,-1577.50,110.90}}, {"Los Flores", {2581.70,-1454.30,-89.00,2632.80,-1393.40,110.90}}, {"Los Flores", {2581.70,-1393.40,-89.00,2747.70,-1135.00,110.90}}, {"Los Santos International", {1249.60,-2394.30,-89.00,1852.00,-2179.20,110.90}}, {"Los Santos International", {1852.00,-2394.30,-89.00,2089.00,-2179.20,110.90}}, {"Los Santos International", {1382.70,-2730.80,-89.00,2201.80,-2394.30,110.90}}, {"Los Santos International", {1974.60,-2394.30,-39.00,2089.00,-2256.50,60.90}}, {"Los Santos International", {1400.90,-2669.20,-39.00,2189.80,-2597.20,60.90}}, {"Los Santos International", {2051.60,-2597.20,-39.00,2152.40,-2394.30,60.90}}, {"Marina", {647.70,-1804.20,-89.00,851.40,-1577.50,110.90}}, {"Marina", {647.70,-1577.50,-89.00,807.90,-1416.20,110.90}}, {"Marina", {807.90,-1577.50,-89.00,926.90,-1416.20,110.90}}, {"Market", {787.40,-1416.20,-89.00,1072.60,-1310.20,110.90}}, {"Market", {952.60,-1310.20,-89.00,1072.60,-1130.80,110.90}}, {"Market", {1072.60,-1416.20,-89.00,1370.80,-1130.80,110.90}}, {"Market", {926.90,-1577.50,-89.00,1370.80,-1416.20,110.90}}, {"Market Station", {787.40,-1410.90,-34.10,866.00,-1310.20,65.80}}, {"Martin Bridge", {-222.10,293.30,0.00,-122.10,476.40,200.00}}, {"Missionary Hill", {-2994.40,-811.20,0.00,-2178.60,-430.20,200.00}}, {"Montgomery", {1119.50,119.50,-3.00,1451.40,493.30,200.00}}, {"Montgomery", {1451.40,347.40,-6.10,1582.40,420.80,200.00}}, {"Montgomery Intersection", {1546.60,208.10,0.00,1745.80,347.40,200.00}}, {"Montgomery Intersection", {1582.40,347.40,0.00,1664.60,401.70,200.00}}, {"Mulholland", {1414.00,-768.00,-89.00,1667.60,-452.40,110.90}}, {"Mulholland", {1281.10,-452.40,-89.00,1641.10,-290.90,110.90}}, {"Mulholland", {1269.10,-768.00,-89.00,1414.00,-452.40,110.90}}, {"Mulholland", {1357.00,-926.90,-89.00,1463.90,-768.00,110.90}}, {"Mulholland", {1318.10,-910.10,-89.00,1357.00,-768.00,110.90}}, {"Mulholland", {1169.10,-910.10,-89.00,1318.10,-768.00,110.90}}, {"Mulholland", {768.60,-954.60,-89.00,952.60,-860.60,110.90}}, {"Mulholland", {687.80,-860.60,-89.00,911.80,-768.00,110.90}}, {"Mulholland", {737.50,-768.00,-89.00,1142.20,-674.80,110.90}}, {"Mulholland", {1096.40,-910.10,-89.00,1169.10,-768.00,110.90}}, {"Mulholland", {952.60,-937.10,-89.00,1096.40,-860.60,110.90}}, {"Mulholland", {911.80,-860.60,-89.00,1096.40,-768.00,110.90}}, {"Mulholland", {861.00,-674.80,-89.00,1156.50,-600.80,110.90}}, {"Mulholland Intersection", {1463.90,-1150.80,-89.00,1812.60,-768.00,110.90}}, {"North Rock", {2285.30,-768.00,0.00,2770.50,-269.70,200.00}}, {"Ocean Docks", {2373.70,-2697.00,-89.00,2809.20,-2330.40,110.90}}, {"Ocean Docks", {2201.80,-2418.30,-89.00,2324.00,-2095.00,110.90}}, {"Ocean Docks", {2324.00,-2302.30,-89.00,2703.50,-2145.10,110.90}}, {"Ocean Docks", {2089.00,-2394.30,-89.00,2201.80,-2235.80,110.90}}, {"Ocean Docks", {2201.80,-2730.80,-89.00,2324.00,-2418.30,110.90}}, {"Ocean Docks", {2703.50,-2302.30,-89.00,2959.30,-2126.90,110.90}}, {"Ocean Docks", {2324.00,-2145.10,-89.00,2703.50,-2059.20,110.90}}, {"Ocean Flats", {-2994.40,277.40,-9.10,-2867.80,458.40,200.00}}, {"Ocean Flats", {-2994.40,-222.50,-0.00,-2593.40,277.40,200.00}}, {"Ocean Flats", {-2994.40,-430.20,-0.00,-2831.80,-222.50,200.00}}, {"Octane Springs", {338.60,1228.50,0.00,664.30,1655.00,200.00}}, {"Old Venturas Strip", {2162.30,2012.10,-89.00,2685.10,2202.70,110.90}}, {"Palisades", {-2994.40,458.40,-6.10,-2741.00,1339.60,200.00}}, {"Palomino Creek", {2160.20,-149.00,0.00,2576.90,228.30,200.00}}, {"Paradiso", {-2741.00,793.40,-6.10,-2533.00,1268.40,200.00}}, {"Pershing Square", {1440.90,-1722.20,-89.00,1583.50,-1577.50,110.90}}, {"Pilgrim", {2437.30,1383.20,-89.00,2624.40,1783.20,110.90}}, {"Pilgrim", {2624.40,1383.20,-89.00,2685.10,1783.20,110.90}}, {"Pilson Intersection", {1098.30,2243.20,-89.00,1377.30,2507.20,110.90}}, {"Pirates in Men's Pants", {1817.30,1469.20,-89.00,2027.40,1703.20,110.90}}, {"Playa Del Seville", {2703.50,-2126.90,-89.00,2959.30,-1852.80,110.90}}, {"Prickle Pine", {1534.50,2583.20,-89.00,1848.40,2863.20,110.90}}, {"Prickle Pine", {1117.40,2507.20,-89.00,1534.50,2723.20,110.90}}, {"Prickle Pine", {1848.40,2553.40,-89.00,1938.80,2863.20,110.90}}, {"Prickle Pine", {1938.80,2624.20,-89.00,2121.40,2861.50,110.90}}, {"Queens", {-2533.00,458.40,0.00,-2329.30,578.30,200.00}}, {"Queens", {-2593.40,54.70,0.00,-2411.20,458.40,200.00}}, {"Queens", {-2411.20,373.50,0.00,-2253.50,458.40,200.00}}, {"Randolph Industrial Estate", {1558.00,596.30,-89.00,1823.00,823.20,110.90}}, {"Redsands East", {1817.30,2011.80,-89.00,2106.70,2202.70,110.90}}, {"Redsands East", {1817.30,2202.70,-89.00,2011.90,2342.80,110.90}}, {"Redsands East", {1848.40,2342.80,-89.00,2011.90,2478.40,110.90}}, {"Redsands West", {1236.60,1883.10,-89.00,1777.30,2142.80,110.90}}, {"Redsands West", {1297.40,2142.80,-89.00,1777.30,2243.20,110.90}}, {"Redsands West", {1377.30,2243.20,-89.00,1704.50,2433.20,110.90}}, {"Redsands West", {1704.50,2243.20,-89.00,1777.30,2342.80,110.90}}, {"Regular Tom", {-405.70,1712.80,-3.00,-276.70,1892.70,200.00}}, {"Richman", {647.50,-1118.20,-89.00,787.40,-954.60,110.90}}, {"Richman", {647.50,-954.60,-89.00,768.60,-860.60,110.90}}, {"Richman", {225.10,-1369.60,-89.00,334.50,-1292.00,110.90}}, {"Richman", {225.10,-1292.00,-89.00,466.20,-1235.00,110.90}}, {"Richman", {72.60,-1404.90,-89.00,225.10,-1235.00,110.90}}, {"Richman", {72.60,-1235.00,-89.00,321.30,-1008.10,110.90}}, {"Richman", {321.30,-1235.00,-89.00,647.50,-1044.00,110.90}}, {"Richman", {321.30,-1044.00,-89.00,647.50,-860.60,110.90}}, {"Richman", {321.30,-860.60,-89.00,687.80,-768.00,110.90}}, {"Richman", {321.30,-768.00,-89.00,700.70,-674.80,110.90}}, {"Robada Intersection", {-1119.00,1178.90,-89.00,-862.00,1351.40,110.90}}, {"Roca Escalante", {2237.40,2202.70,-89.00,2536.40,2542.50,110.90}}, {"Roca Escalante", {2536.40,2202.70,-89.00,2625.10,2442.50,110.90}}, {"Rockshore East", {2537.30,676.50,-89.00,2902.30,943.20,110.90}}, {"Rockshore West", {1997.20,596.30,-89.00,2377.30,823.20,110.90}}, {"Rockshore West", {2377.30,596.30,-89.00,2537.30,788.80,110.90}}, {"Rodeo", {72.60,-1684.60,-89.00,225.10,-1544.10,110.90}}, {"Rodeo", {72.60,-1544.10,-89.00,225.10,-1404.90,110.90}}, {"Rodeo", {225.10,-1684.60,-89.00,312.80,-1501.90,110.90}}, {"Rodeo", {225.10,-1501.90,-89.00,334.50,-1369.60,110.90}}, {"Rodeo", {334.50,-1501.90,-89.00,422.60,-1406.00,110.90}}, {"Rodeo", {312.80,-1684.60,-89.00,422.60,-1501.90,110.90}}, {"Rodeo", {422.60,-1684.60,-89.00,558.00,-1570.20,110.90}}, {"Rodeo", {558.00,-1684.60,-89.00,647.50,-1384.90,110.90}}, {"Rodeo", {466.20,-1570.20,-89.00,558.00,-1385.00,110.90}}, {"Rodeo", {422.60,-1570.20,-89.00,466.20,-1406.00,110.90}}, {"Rodeo", {466.20,-1385.00,-89.00,647.50,-1235.00,110.90}}, {"Rodeo", {334.50,-1406.00,-89.00,466.20,-1292.00,110.90}}, {"Royal Casino", {2087.30,1383.20,-89.00,2437.30,1543.20,110.90}}, {"San Andreas Sound", {2450.30,385.50,-100.00,2759.20,562.30,200.00}}, {"Santa Flora", {-2741.00,458.40,-7.60,-2533.00,793.40,200.00}}, {"Santa Maria Beach", {342.60,-2173.20,-89.00,647.70,-1684.60,110.90}}, {"Santa Maria Beach", {72.60,-2173.20,-89.00,342.60,-1684.60,110.90}}, {"Shady Cabin", {-1632.80,-2263.40,-3.00,-1601.30,-2231.70,200.00}}, {"Shady Creeks", {-1820.60,-2643.60,-8.00,-1226.70,-1771.60,200.00}}, {"Shady Creeks", {-2030.10,-2174.80,-6.10,-1820.60,-1771.60,200.00}}, {"Sobell Rail Yards", {2749.90,1548.90,-89.00,2923.30,1937.20,110.90}}, {"Spinybed", {2121.40,2663.10,-89.00,2498.20,2861.50,110.90}}, {"Starfish Casino", {2437.30,1783.20,-89.00,2685.10,2012.10,110.90}}, {"Starfish Casino", {2437.30,1858.10,-39.00,2495.00,1970.80,60.90}}, {"Starfish Casino", {2162.30,1883.20,-89.00,2437.30,2012.10,110.90}}, {"Temple", {1252.30,-1130.80,-89.00,1378.30,-1026.30,110.90}}, {"Temple", {1252.30,-1026.30,-89.00,1391.00,-926.90,110.90}}, {"Temple", {1252.30,-926.90,-89.00,1357.00,-910.10,110.90}}, {"Temple", {952.60,-1130.80,-89.00,1096.40,-937.10,110.90}}, {"Temple", {1096.40,-1130.80,-89.00,1252.30,-1026.30,110.90}}, {"Temple", {1096.40,-1026.30,-89.00,1252.30,-910.10,110.90}}, {"The Camel's Toe", {2087.30,1203.20,-89.00,2640.40,1383.20,110.90}}, {"The Clown's Pocket", {2162.30,1783.20,-89.00,2437.30,1883.20,110.90}}, {"The Emerald Isle", {2011.90,2202.70,-89.00,2237.40,2508.20,110.90}}, {"The Farm", {-1209.60,-1317.10,114.90,-908.10,-787.30,251.90}}, {"The Four Dragons Casino", {1817.30,863.20,-89.00,2027.30,1083.20,110.90}}, {"The High Roller", {1817.30,1283.20,-89.00,2027.30,1469.20,110.90}}, {"The Mako Span", {1664.60,401.70,0.00,1785.10,567.20,200.00}}, {"The Panopticon", {-947.90,-304.30,-1.10,-319.60,327.00,200.00}}, {"The Pink Swan", {1817.30,1083.20,-89.00,2027.30,1283.20,110.90}}, {"The Sherman Dam", {-968.70,1929.40,-3.00,-481.10,2155.20,200.00}}, {"The Strip", {2027.40,863.20,-89.00,2087.30,1703.20,110.90}}, {"The Strip", {2106.70,1863.20,-89.00,2162.30,2202.70,110.90}}, {"The Strip", {2027.40,1783.20,-89.00,2162.30,1863.20,110.90}}, {"The Strip", {2027.40,1703.20,-89.00,2137.40,1783.20,110.90}}, {"The Visage", {1817.30,1863.20,-89.00,2106.70,2011.80,110.90}}, {"The Visage", {1817.30,1703.20,-89.00,2027.40,1863.20,110.90}}, {"Unity Station", {1692.60,-1971.80,-20.40,1812.60,-1932.80,79.50}}, {"Valle Ocultado", {-936.60,2611.40,2.00,-715.90,2847.90,200.00}}, {"Verdant Bluffs", {930.20,-2488.40,-89.00,1249.60,-2006.70,110.90}}, {"Verdant Bluffs", {1073.20,-2006.70,-89.00,1249.60,-1842.20,110.90}}, {"Verdant Bluffs", {1249.60,-2179.20,-89.00,1692.60,-1842.20,110.90}}, {"Verdant Meadows", {37.00,2337.10,-3.00,435.90,2677.90,200.00}}, {"Verona Beach", {647.70,-2173.20,-89.00,930.20,-1804.20,110.90}}, {"Verona Beach", {930.20,-2006.70,-89.00,1073.20,-1804.20,110.90}}, {"Verona Beach", {851.40,-1804.20,-89.00,1046.10,-1577.50,110.90}}, {"Verona Beach", {1161.50,-1722.20,-89.00,1323.90,-1577.50,110.90}}, {"Verona Beach", {1046.10,-1722.20,-89.00,1161.50,-1577.50,110.90}}, {"Vinewood", {787.40,-1310.20,-89.00,952.60,-1130.80,110.90}}, {"Vinewood", {787.40,-1130.80,-89.00,952.60,-954.60,110.90}}, {"Vinewood", {647.50,-1227.20,-89.00,787.40,-1118.20,110.90}}, {"Vinewood", {647.70,-1416.20,-89.00,787.40,-1227.20,110.90}}, {"Whitewood Estates", {883.30,1726.20,-89.00,1098.30,2507.20,110.90}}, {"Whitewood Estates", {1098.30,1726.20,-89.00,1197.30,2243.20,110.90}}, {"Willowfield", {1970.60,-2179.20,-89.00,2089.00,-1852.80,110.90}}, {"Willowfield", {2089.00,-2235.80,-89.00,2201.80,-1989.90,110.90}}, {"Willowfield", {2089.00,-1989.90,-89.00,2324.00,-1852.80,110.90}}, {"Willowfield", {2201.80,-2095.00,-89.00,2324.00,-1989.90,110.90}}, {"Willowfield", {2541.70,-1941.40,-89.00,2703.50,-1852.80,110.90}}, {"Willowfield", {2324.00,-2059.20,-89.00,2541.70,-1852.80,110.90}}, {"Willowfield", {2541.70,-2059.20,-89.00,2703.50,-1941.40,110.90}}, {"Yellow Bell Station", {1377.40,2600.40,-21.90,1492.40,2687.30,78.00}}, // Main Zones {"Los Santos", {44.60,-2892.90,-242.90,2997.00,-768.00,900.00}}, {"Las Venturas", {869.40,596.30,-242.90,2997.00,2993.80,900.00}}, {"Bone County", {-480.50,596.30,-242.90,869.40,2993.80,900.00}}, {"Tierra Robada", {-2997.40,1659.60,-242.90,-480.50,2993.80,900.00}}, {"Tierra Robada", {-1213.90,596.30,-242.90,-480.50,1659.60,900.00}}, {"San Fierro", {-2997.40,-1115.50,-242.90,-1213.90,1659.60,900.00}}, {"Red County", {-1213.90,-768.00,-242.90,2997.00,596.30,900.00}}, {"Flint County", {-1213.90,-2892.90,-242.90,44.60,-768.00,900.00}}, {"Whetstone", {-2997.40,-2892.90,-242.90,-1213.90,-1115.50,900.00}} }; ShowGateEditMenu(playerid, gate) { new string[32]; if (IsValidGateID(gate)) { Players[playerid][pSelected] = gate; format(string, sizeof(string), "{FFFFFF}Edit gate: %i", gate); if (Gates[gate][gLinkID]) { Dialog_Show(playerid, EditGate, DIALOG_STYLE_LIST, string, "Gate Location\nGate Position\nGate Destination\nGate Password\t\t%s\nGate Faction\t\t%s\nGate Speed\t\t%.1f\nGate Radius\t\t%.1f\nGate Linker\t\tID: %i", "Select", "Cancel", Gates[gate][gPassword], GetFactionIDName(Gates[gate][gFactionID]), Gates[gate][gSpeed], Gates[gate][gRadius], GetGateID(Gates[gate][gLinkID])); } else { Dialog_Show(playerid, EditGate, DIALOG_STYLE_LIST, string, "Gate Location\nGate Position\nGate Destination\nGate Password\t\t%s\nGate Faction\t\t%s\nGate Speed\t\t%.1f\nGate Radius\t\t%.1f\nGate Linker\t\tNot Specified", "Select", "Cancel", Gates[gate][gPassword], GetFactionIDName(Gates[gate][gFactionID]), Gates[gate][gSpeed], Gates[gate][gRadius]); } } return 1; } GateCheck(playerid) { new gate = GetClosestGate(playerid); /*if ((IsPlayerInFaction(playerid, FACTION_LEO)) && (IsPlayerInRangeOfPoint(playerid, 1.5, 1812.0830, -1545.2319, 1700.4287) || IsPlayerInRangeOfPoint(playerid, 1.5, 1810.3752, -1548.3003, 1700.4287))) { if (!gPrisonDoorStatus[0]) { gPrisonDoorStatus[0] = 1; SendInfoMessage(playerid, "You have opened the doors."); MoveDynamicObject(gPrisonDoors[0], 1807.76147461, -1547.63208008, 1699.42480469, 0.50); MoveDynamicObject(gPrisonDoors[1], 1812.76184082, -1547.60510254, 1699.42480469, 0.50); } else { gPrisonDoorStatus[0] = 0; SendInfoMessage(playerid, "You have closed the doors."); MoveDynamicObject(gPrisonDoors[0], 1808.76147461, -1547.63208008, 1699.42480469, 0.50); MoveDynamicObject(gPrisonDoors[1], 1811.76184082, -1547.60510254, 1699.42480469, 0.50); } ShowActionBubble(playerid, "* %s uses their key to control the doors.", ReturnNameEx(playerid)); return 1; } else if ((IsPlayerInFaction(playerid, FACTION_LEO)) && (IsPlayerInRangeOfPoint(playerid, 2.0, 1812.0830,-1545.2319,1700.4287))) { if (!gPrisonDoorStatus[1]) { gPrisonDoorStatus[1] = 1; SendInfoMessage(playerid, "You have opened the doors."); MoveDynamicObject(gPrisonDoors[2], 1812.73828125, -1545.82873535, 1699.42480469, 0.50); MoveDynamicObject(gPrisonDoors[3], 1807.73071289, -1545.87463379, 1699.42480469, 0.50); } else { gPrisonDoorStatus[1] = 0; SendInfoMessage(playerid, "You have closed the doors."); MoveDynamicObject(gPrisonDoors[2], 1811.73828125, -1545.82873535, 1699.42480469, 0.50); MoveDynamicObject(gPrisonDoors[3], 1808.73071289, -1545.87463379, 1699.42480469, 0.50); } ShowActionBubble(playerid, "* %s uses their key to control the doors.", ReturnNameEx(playerid)); return 1; } else if ((IsPlayerInFaction(playerid, FACTION_LEO)) && (IsPlayerInRangeOfPoint(playerid, 3.0, 1797.00830078, -1525.15258789, 1699.42480469) || IsPlayerInRangeOfPoint(playerid, 3.0, 1793.6631, -1523.9191, 1700.4287))) { if (!gPrisonDoorStatus[2]) { gPrisonDoorStatus[2] = 1; SendInfoMessage(playerid, "You have opened the doors."); MoveDynamicObject(gPrisonDoors[4], 1798.00830078, -1525.15258789, 1699.42480469, 0.50); MoveDynamicObject(gPrisonDoors[5], 1793.00976562, -1525.18676758, 1699.42480469, 0.50); } else { gPrisonDoorStatus[2] = 0; SendInfoMessage(playerid, "You have closed the doors."); MoveDynamicObject(gPrisonDoors[4], 1797.00830078, -1525.15258789, 1699.42480469, 0.50); MoveDynamicObject(gPrisonDoors[5], 1794.00976562, -1525.18676758, 1699.42480469, 0.50); } ShowActionBubble(playerid, "* %s uses their key to control the doors.", ReturnNameEx(playerid)); return 1; } else */ if (IsValidGateID(gate)) { if (!isnull(Gates[gate][gPassword]) && !Gates[gate][gOpened]) { Dialog_Show(playerid, OpenGate, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Password", "Please input the password of this gate:", "Submit", "Cancel"); } else if (Gates[gate][gFactionID] > 0 && GetFactionID(Gates[gate][gFactionID]) != Players[playerid][pFaction]) { SendErrorMessage(playerid, "You don't have the remote to this gate."); } else { OpenGate(playerid, gate); } return 1; } return 0; } OpenGate(playerid, gate) { if (IsValidGateID(gate)) { GateHandler(gate); if (Gates[gate][gLinkID] > 0) GateHandler(GetGateID(Gates[gate][gLinkID])); if (Gates[gate][gOpened]) { SendInfoMessage(playerid, "You have opened the gate."); } else { SendInfoMessage(playerid, "You have closed the gate."); } //ShowActionBubble(playerid, "* %s presses a button to control the gate.", ReturnNameEx(playerid)); } } GateHandler(gate) { if (IsValidGateID(gate)) { Gates[gate][gOpened] = !Gates[gate][gOpened]; if (Gates[gate][gOpened]) { MoveDynamicObject(Gates[gate][gObject], Gates[gate][gMove][0], Gates[gate][gMove][1], Gates[gate][gMove][2], Gates[gate][gSpeed], Gates[gate][gMove][3], Gates[gate][gMove][4], Gates[gate][gMove][5]); } else { MoveDynamicObject(Gates[gate][gObject], Gates[gate][gSpawn][0], Gates[gate][gSpawn][1], Gates[gate][gSpawn][2], Gates[gate][gSpeed], Gates[gate][gSpawn][3], Gates[gate][gSpawn][4], Gates[gate][gSpawn][5]); } } } UpdateGate(gate) { if (!Gates[gate][gExists]) return 0; DestroyDynamicObject(Gates[gate][gObject]); Gates[gate][gObject] = CreateDynamicObject(Gates[gate][gModel], Gates[gate][gSpawn][0], Gates[gate][gSpawn][1], Gates[gate][gSpawn][2], Gates[gate][gSpawn][3], Gates[gate][gSpawn][4], Gates[gate][gSpawn][5], Gates[gate][gWorld], Gates[gate][gInterior]); Gates[gate][gOpened] = 0; if (Gates[gate][gLinkID] > 0) { UpdateGate(GetGateID(Gates[gate][gLinkID])); } return 1; } GetGateID(id) // id = SQL id { for (new i = 0; i < MAX_GATES; i ++) { if (IsValidGateID(i) && Gates[i][gID] == id) { return i; } } return INVALID_ID; } SaveGate(gate) { static queryString[1024]; if (!Gates[gate][gExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_gates SET gModel = %i, gPassword = '%s', gSpeed = %.4f, gRadius = %.4f, gFactionID = %i, gLinkID = %i, gX = %.4f, gY = %.4f, gZ = %.4f, gRX = %.4f, gRY = %.4f, gRZ = %.4f", Gates[gate][gModel], mysql_escaped(Gates[gate][gPassword]), Gates[gate][gSpeed], Gates[gate][gRadius], Gates[gate][gFactionID], Gates[gate][gLinkID], Gates[gate][gSpawn][0], Gates[gate][gSpawn][1], Gates[gate][gSpawn][2], Gates[gate][gSpawn][3], Gates[gate][gSpawn][4], Gates[gate][gSpawn][5] ); format(queryString, sizeof(queryString), "%s, gMoveX = %.4f, gMoveY = %.4f, gMoveZ = %.4f, gMoveRX = %.4f, gMoveRY = %.4f, gMoveRZ = %.4f, gInterior = %i, gWorld = %i WHERE gID = %i", queryString, Gates[gate][gMove][0], Gates[gate][gMove][1], Gates[gate][gMove][2], Gates[gate][gMove][3], Gates[gate][gMove][4], Gates[gate][gMove][5], Gates[gate][gInterior], Gates[gate][gWorld], Gates[gate][gID] ); return mysql_tquery(gConnection, queryString); } GetClosestGate(playerid) { for (new i = 0; i < MAX_GATES; i ++) { if (Gates[i][gExists] && IsPlayerNearPoint(playerid, Gates[i][gRadius], Gates[i][gSpawn][0], Gates[i][gSpawn][1], Gates[i][gSpawn][2], Gates[i][gInterior], Gates[i][gWorld])) { return i; } } return INVALID_ID; } strreplace(string[], const search[], const replace[], max_len = sizeof(string)) { new pos = -1; while ((pos = strfind(string, search)) != -1) { strdel(string, pos, pos + strlen(search)); strins(string, replace, pos, max_len); } } ShowTeleportList(playerid, delete=0) { new index; gListString[0] = 0; for (new i = 0; i < MAX_ADMIN_TELEPORTS; i ++) { if (Teleports[i][tpExists]) { format(gListString, sizeof(gListString), "%s\n%s", gListString, Teleports[i][tpName]); gListedItems[playerid][index++] = i; } } if (index) { if (delete) { return Dialog_Show(playerid, DeleteTeleports, DIALOG_STYLE_LIST, "{FFFFFF}Delete Teleports", gListString, "Delete", "Cancel"); } else { return Dialog_Show(playerid, Teleports, DIALOG_STYLE_LIST, "{FFFFFF}List of Teleports", gListString, "Teleport", "Cancel"); } } return 0; } ShowInteriorList(playerid) { static s_InteriorList[4096] ; if (!strlen(s_InteriorList)) { for (new i = 0; i < sizeof(g_Interiors); i ++) { strcat(s_InteriorList, g_Interiors[i][e_InteriorName]); strcat(s_InteriorList, "\n"); } } Dialog_Show(playerid, TeleportInt, DIALOG_STYLE_LIST, "{FFFFFF}Teleport to interior", s_InteriorList, "Teleport", "Cancel"); } ShowFAQMenu(playerid) { Dialog_Show(playerid, FAQ, DIALOG_STYLE_LIST, "{FFFFFF}FAQ and Guide", "Fitness system\nWeapon management\nItem management\nBank accounts\nBuying a vehicle\nFinding a job\nAuto shops\nInteractive keys\nDrug system", "Select", "Back"); } ShowAnimationList(playerid) { SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------"); SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /bar, /kiss, /wash, /lay, /blowjob, /bomb, /basketball, /camera."); SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /carry, /crack, /chat, /think, /dance, /deal, /eat, /lean, /facepalm."); SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /gsign, /spraycan, /throw, /boxing, /cpr, /swipe, /sit, /point."); SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /taichi, /wank, /cover, /fucku, /getup, /tired, /wave, /doorkick."); SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /laugh, /cry, /what, /rap, /riot, /injured, /fall, /crossarms."); SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /reload, /aim, /salute, /scratch, /dodge, /showoff, /hitch, /puke."); SendClientMessage(playerid, COLOR_GREY, "Animations:{FFFFFF} /come, /walk, /drunk, /handsup, /checktime, /piss, /stopanim."); SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------"); } /* enum e_Callsigns { e_CallsignID, // 1-LSPD e_CallsignFaction, // Text of the callsign e_CallsignTextShort[32], // Text of the callsign e_CallsignTextFull[64] }; new g_Callsigns[][e_Callsigns] = { {0, 1, "1-A-1", "1-Adam-1"}, g_CompanyItems[i][e_ItemName] for (new i = 0; i < sizeof(g_CompanyItems); i ++) { if (Companies[company][cType] == g_CompanyItems[i][e_CompanyType]) { if (g_CompanyItems[i][e_IsStockable]) { if (Products[company][index][prStock] > 0) { format(string, sizeof(string), "%s\nIn Stock\tItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice])); */ /*ShowCallsignMenu(playerid) { new string[2048]; format(string, sizeof(string), "In use by\tShort\tLong"); for (new i = 0; i < sizeof(g_Callsigns); i ++) { if(g_Callsigns[i][e_CallsignFaction] == 1) { if (g_Callsigns[i][e_CallsignTakenBy] == INVALID_ID) { format(string, sizeof(string), "%s\nNobody\t%s\t%s", string, g_Callsigns[i][e_CallsignTextShort], g_Callsigns[i][e_CallsignTextFull]); } else { format(string, sizeof(string), "%s\n%s\t%s\t%s", string, ReturnNameEx(g_Callsigns[i][e_CallsignTakenBy], 0), g_Callsigns[i][e_CallsignTextShort], g_Callsigns[i][e_CallsignTextFull]); } } } Dialog_Show(playerid, MDC_CallsignMenu, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}MDC - Callsigns", string, "Select", "Cancel"); }*/ ShowNewMDCMenu(playerid) { Dialog_Show(playerid, MDC_MainMenu, DIALOG_STYLE_LIST, "{FFFFFF}Mobile Data Computer - Main Menu", "MAIN SCREEN\nNAME SEARCH\nPLATE SEARCH\nSERIAL SEARCH\nADDRESS SEARCH\nLAST 911\nCALLSIGNS", "Login", "Exit"); } ShowNewMDC(playerid) { new string[256]; format(string, sizeof(string), "%s %s\n\nOFFICERS ON DUTY: %i\nCALLS LAST HOUR: %i\nARRESTS LAST HOUR: %i", GetPlayerFactionRank(playerid), ReturnNameEx(playerid), GetFactionOnlineMembers(Players[playerid][pFaction]), gCallsHour, gArrestsHour); Dialog_Show(playerid, MDC_Login, DIALOG_STYLE_MSGBOX, "{FFFFFF}Mobile Data Computer", string, "Login", "Exit"); } ShowMDCMainMenu(playerid) { Dialog_Show(playerid, MDC, DIALOG_STYLE_LIST, "{FFFFFF}Mobile Data Computer", "Search Player\nList APBs\nTrace Plate\nTrace Serial\nFind Address", "Select", "Cancel"); } ShowMDCLookupPlayer(playerid) { if (!isnull(gTargetName[playerid])) { format(gExecute, sizeof(gExecute), "SELECT ID, Age, Origin, Warrants, Charges, PhoneLastKnown, CarLicense, GunLicense, TotalWarrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute, "OnMDCViewInformationNew", "i", playerid); } } ShowMDCPlayerMenu(playerid) { if (!isnull(gTargetName[playerid])) { new string[MAX_PLAYER_NAME + 8]; format(string, sizeof(string), "{FFFFFF}%s", gTargetName[playerid]); Dialog_Show(playerid, MDCPlayer, DIALOG_STYLE_LIST, string, "Add Warrant\nList Warrants\nClear Warrants\nInformation", "Select", "Cancel"); } } ShowMDCPlayerMenuNew(playerid) { if (!isnull(gTargetName[playerid])) { new string[MAX_PLAYER_NAME + 8]; format(string, sizeof(string), "{FFFFFF}%s", gTargetName[playerid]); Dialog_Show(playerid, MDCPlayerNew, DIALOG_STYLE_LIST, string, "View Information\nPrint Information\nManage Warrants\nManage Licenses\nManage Charges\nArrest Record", "Select", "Cancel"); } } GetHouseOwnerID(house) { foreach (new i : Player) { if (IsPlayerLoggedIn(i) && Players[i][pID] == Houses[house][hOwner]) { return i; } } return INVALID_PLAYER_ID; } ResetHotwiring(playerid) { if (Players[playerid][pHotwire] != INVALID_VEHICLE_ID) { SetAlarmStatus(Players[playerid][pHotwire], false); HideFooterText(playerid); Players[playerid][pHotwire] = INVALID_VEHICLE_ID; Players[playerid][pHotwireTime] = 0; } } ResetLastShots(playerid) { for (new i = BODY_PART_TORSO; i <= BODY_PART_HEAD; i ++) { LastShots[playerid][i][lWeaponID] = 0; LastShots[playerid][i][lWeaponShots] = 0; } } GetNextUniform(faction, index) { index++; if (index >= MAX_FACTION_UNIFORMS) { index = 0; } for (new i = index; i < MAX_FACTION_UNIFORMS; i ++) { if (Factions[faction][fcUniforms][i] > 0) { return i; } } return 0; } GetPreviousUniform(faction, index) { if (index - 1 < 0) { index = MAX_FACTION_UNIFORMS; } for (new i = index; --i >= 0; ) { if (Factions[faction][fcUniforms][i] > 0) { return i; } } return 0; } HandleOutfitNavigation(playerid, lr) { if (lr == KEY_LEFT) { if (--Players[playerid][pOutfitIndex] < 0) { Players[playerid][pOutfitIndex] = sizeof(g_ValidSkinModels) - 1; } PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0); UpdateOutfitSelection(playerid); } else if (lr == KEY_RIGHT) { if (++Players[playerid][pOutfitIndex] == sizeof(g_ValidSkinModels)) { Players[playerid][pOutfitIndex] = 0; } PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); UpdateOutfitSelection(playerid); } } HandleUniformNavigation(playerid, lr) { if (lr == KEY_LEFT) { Players[playerid][pUniformIndex] = GetPreviousUniform(Players[playerid][pFaction], Players[playerid][pUniformIndex]); SetPlayerSkin(playerid, Factions[Players[playerid][pFaction]][fcUniforms][Players[playerid][pUniformIndex]]); PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0); } else if (lr == KEY_RIGHT) { Players[playerid][pUniformIndex] = GetNextUniform(Players[playerid][pFaction], Players[playerid][pUniformIndex]); SetPlayerSkin(playerid, Factions[Players[playerid][pFaction]][fcUniforms][Players[playerid][pUniformIndex]]); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } } IsLockerSetup(faction) { return !(Factions[faction][fcLockerX] == 0.0 && Factions[faction][fcLockerY] == 0.0 && Factions[faction][fcLockerZ] == 0.0); } SetupUniformSelection(playerid) { if (Players[playerid][pFaction] != INVALID_ID) { new index = GetFirstUniform(Players[playerid][pFaction]); if (index == INVALID_ID) return 0; Players[playerid][pSelectUniform] = 1; Players[playerid][pUniformIndex] = index; Players[playerid][pUniformTick] = 0; SetPlayerSkin(playerid, Factions[Players[playerid][pFaction]][fcUniforms][index]); TogglePlayerControllable(playerid, false); } return 1; } GetFirstUniform(faction) { for (new i = 0; i < MAX_FACTION_UNIFORMS; i ++) { if (Factions[faction][fcUniforms][i] > 0) { return i; } } return INVALID_ID; } GetFactionWeaponRights(faction, type) { new package, string[32]; if (type == 0) { package = PACKAGE_TYPE_MELEE; } else if (type == 1) { package = PACKAGE_TYPE_PISTOLS; } else if (type == 2) { package = PACKAGE_TYPE_SHOTGUNS; } else if (type == 3) { package = PACKAGE_TYPE_SMGS; } else if (type == 4) { package = PACKAGE_TYPE_RIFLES; } else if (type == 5) { package = PACKAGE_TYPE_EXPLOSIVES; } if (Factions[faction][fcWeaponRights][type]) format(string, sizeof(string), "{33CC33}%s{FFFFFF}", FormatNumber(GetPackagePrice(package))); else string = "{FF5030}Not Available{FFFFFF}"; return string; } GetFactionEmbedColor(faction) { new string[32], color; color = Factions[faction][fcColor] >>> 8; if (color) { format(string, sizeof(string), "{%06x}#%06x", color, color); } else { string = "N/A"; } return string; } UpdateFaction(faction) { if (!IsValidFactionID(faction)) return 0; new string[32]; DestroyDynamicPickup(Factions[faction][fcPickup]); DestroyDynamic3DTextLabel(Factions[faction][fcText]); if (IsLockerSetup(faction)) { format(string, sizeof(string), "(ID) %i\nPress Y to access locker", faction); Factions[faction][fcPickup] = CreateDynamicPickup(1239, 23, Factions[faction][fcLockerX], Factions[faction][fcLockerY], Factions[faction][fcLockerZ], Factions[faction][fcLockerWorld], Factions[faction][fcLockerInt]); Factions[faction][fcText] = CreateDynamic3DTextLabel(string, -1, Factions[faction][fcLockerX], Factions[faction][fcLockerY], Factions[faction][fcLockerZ], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Factions[faction][fcLockerWorld], Factions[faction][fcLockerInt]); } return 1; } SaveFactionEquipment(faction, index) { static queryString[192]; if(!IsValidFactionID(faction)) return 0; mysql_format(gConnection, queryString, sizeof(queryString), "INSERT INTO rp_factionequipment (itemFactionID, itemSlot, itemName, itemValue) VALUES(%i, %i, '%e', %i) ON DUPLICATE KEY UPDATE itemName = '%e', itemValue = %i", Factions[faction][fcID], index, FactionEquipment[faction][index][fcItemName], FactionEquipment[faction][index][fcItemValue], FactionEquipment[faction][index][fcItemName], FactionEquipment[faction][index][fcItemValue]); mysql_tquery(gConnection, queryString); return 1; } SaveFactionAccessory(faction, index) { static queryString[256]; if(!IsValidFactionID(faction)) return 0; mysql_format(gConnection, queryString, sizeof(queryString), "INSERT INTO rp_factionaccessories (accessoryFactionID, accessorySlot, accessoryName, accessoryModel, accessoryBone) VALUES(%i, %i, '%e', %i, %i) ON DUPLICATE KEY UPDATE accessoryName = '%e', accessoryModel = %i, accessoryBone = %i", Factions[faction][fcID], index, FactionAccessories[faction][index][fcAccessoryName], FactionAccessories[faction][index][fcAccessoryModel], FactionAccessories[faction][index][fcAccessoryBone], FactionAccessories[faction][index][fcAccessoryName], FactionAccessories[faction][index][fcAccessoryModel], FactionAccessories[faction][index][fcAccessoryBone]); mysql_tquery(gConnection, queryString); return 1; } SaveFactionUniform(faction, index) { static queryString[192]; if (!IsValidFactionID(faction)) return 0; format(queryString, sizeof(queryString), "INSERT INTO rp_factionskins (uniformFactionID, uniformNumber, uniformSkin) VALUES(%i, %i, %i) ON DUPLICATE KEY UPDATE uniformSkin = %i", Factions[faction][fcID], index, Factions[faction][fcUniforms][index], Factions[faction][fcUniforms][index]); mysql_tquery(gConnection, queryString); return 1; } SaveFactionRank(faction, index) { static queryString[512]; if (!IsValidFactionID(faction)) return 0; format(queryString, sizeof(queryString), "INSERT INTO rp_factionranks (rankFactionID, rankNumber, rankName, rankPaycheck) VALUES(%i, %i, '%s', %i) ON DUPLICATE KEY UPDATE rankName = '%s', rankPaycheck = %i", Factions[faction][fcID], index, Ranks[faction][index], Factions[faction][fcPaycheck][index], Ranks[faction][index], Factions[faction][fcPaycheck][index]); mysql_tquery(gConnection, queryString); return 1; } SaveFaction(faction) { static queryString[1024]; if (!IsValidFactionID(faction)) return 0; format(queryString, sizeof(queryString), "UPDATE rp_factions SET fcName = '%s', fcType = %i, fcColor = %i, fcMaxRanks = %i, fcLockerX = %.f, fcLockerY = %.4f, fcLockerZ = %.4f, fcLockerInt = %i, fcLockerWorld = %i, fcMeleeRights = %i, fcPistolRights = %i, fcShotgunRights = %i, fcSMGRights = %i, fcRifleRights = %i, fcDrugRights = %i, fcSprayRights = %i, fcSpawnX = '%f', fcSpawnY = '%f', fcSpawnZ = '%f', fcSpawnA = '%f', fcSpawnInt = %i, fcSpawnWorld = %i WHERE fcID = %i", mysql_escaped(Factions[faction][fcName]), Factions[faction][fcType], Factions[faction][fcColor], Factions[faction][fcMaxRanks], Factions[faction][fcLockerX], Factions[faction][fcLockerY], Factions[faction][fcLockerZ], Factions[faction][fcLockerInt], Factions[faction][fcLockerWorld], Factions[faction][fcWeaponRights][0], Factions[faction][fcWeaponRights][1], Factions[faction][fcWeaponRights][2], Factions[faction][fcWeaponRights][3], Factions[faction][fcWeaponRights][4], Factions[faction][fcDrugRights], Factions[faction][fcSprayRights], Factions[faction][fcSpawnX], Factions[faction][fcSpawnY], Factions[faction][fcSpawnZ], Factions[faction][fcSpawnA], Factions[faction][fcSpawnInt], Factions[faction][fcSpawnWorld], Factions[faction][fcID] ); return mysql_tquery(gConnection, queryString); } GetFactionRankPay(faction, rank) { if (IsValidFactionID(faction) && (1 <= rank <= Factions[faction][fcMaxRanks])) { return Factions[faction][fcPaycheck][--rank]; } return 0; } GetFactionRank(faction, rank) { new name[MAX_RANK_NAME]; name = "Unspecified"; if (IsValidFactionID(faction) && (1 <= rank <= Factions[faction][fcMaxRanks])) { rank--; if (!isnull(Ranks[faction][rank])) { strcpy(name, Ranks[faction][rank]); } } return name; } GetPlayerFactionName(playerid) { new name[32]; if (Players[playerid][pFaction] != INVALID_ID) { strcpy(name, Factions[Players[playerid][pFaction]][fcName]); } else { name = "No Faction"; } return name; } GetPlayerFactionType(playerid) { if (Players[playerid][pFaction] != INVALID_ID) { return Factions[Players[playerid][pFaction]][fcType]; } return 0; } GetPlayerFactionRank(playerid) { new name[MAX_RANK_NAME] = "Unspecified"; if (Players[playerid][pFaction] != INVALID_ID) { strcpy(name, Ranks[Players[playerid][pFaction]][Players[playerid][pFactionRank] - 1]); if (isnull(name)) { name = "Unspecified"; } } return name; } GetPlayerFactionID(playerid) { for (new i = 0; i < MAX_FACTIONS; i ++) { if (IsValidFactionID(i) && Factions[i][fcID] == Players[playerid][pFactionID]) { return i; } } return INVALID_ID; } GetFactionID(id) // id = SQL id { for (new i = 0; i < MAX_FACTIONS; i ++) { if (IsValidFactionID(i) && Factions[i][fcID] == id) { return i; } } return INVALID_ID; } ClearTrunkItems(vehicle) { for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (StoredItems[i][stExists] && StoredItems[i][stVehicle] == Vehicles[vehicle][vID]) { StoredItems[i][stExists] = 0; StoredItems[i][stVehicle] = 0; } } format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemVehicleID = %i", Vehicles[vehicle][vID]); mysql_tquery(gConnection, gExecute); } ClearTrashbinItems(trashbin) { for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (StoredItems[i][stExists] && StoredItems[i][stTrashbin] == Trashbins[trashbin][tID]) { StoredItems[i][stExists] = 0; StoredItems[i][stTrashbin] = 0; } } format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemTrashbinID = %i", Trashbins[trashbin][tID]); mysql_tquery(gConnection, gExecute); } ClearSafeItems(safe) { for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (StoredItems[i][stExists] && StoredItems[i][stFurniture] == Furniture[safe][fID]) { StoredItems[i][stExists] = 0; StoredItems[i][stFurniture] = 0; } } format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemFurnitureID = %i", Furniture[safe][fID]); mysql_tquery(gConnection, gExecute); } ClearFactionVehicles(faction) { for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && Vehicles[i][vFaction] == Factions[faction][fcID]) { DestroyVehicleEx(Vehicles[i][vVehicle]); Vehicles[i][vExists] = 0; Vehicles[i][vVehicle] = INVALID_VEHICLE_ID; } } format(gExecute, sizeof(gExecute), "DELETE FROM rp_vehicles WHERE vFaction = %i", Factions[faction][fcID]); mysql_tquery(gConnection, gExecute); } RespawnFactionVehicles(faction) { for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && Vehicles[i][vFaction] == Factions[faction][fcID]) { SetVehicleToRespawn(Vehicles[i][vVehicle]); } } } ClearFactionGates(faction) { for (new i = 0; i < MAX_GATES; i ++) { if (IsValidGateID(i) && Gates[i][gFactionID] == Factions[faction][fcID]) { DestroyDynamicObject(Gates[i][gObject]); Gates[i][gExists] = 0; Gates[i][gObject] = INVALID_OBJECT_ID; } } format(gExecute, sizeof(gExecute), "DELETE FROM rp_gates WHERE gFactionID = %i", Factions[faction][fcID]); mysql_tquery(gConnection, gExecute); } ResetFaction(faction) { for (new i = 0; i < 5; i ++) { Factions[faction][fcWeaponRights][i] = 0; } for (new i = 0; i < MAX_FACTION_RANKS; i ++) { Factions[faction][fcPaycheck][i] = 0; } for (new i = 0; i < MAX_FACTION_UNIFORMS; i ++) { Factions[faction][fcUniforms][i] = 0; } DestroyDynamicPickup(Factions[faction][fcPickup]); DestroyDynamic3DTextLabel(Factions[faction][fcText]); Factions[faction][fcID] = 0; Factions[faction][fcExists] = 0; Factions[faction][fcType] = 0; Factions[faction][fcColor] = -1; Factions[faction][fcMaxRanks] = 5; Factions[faction][fcLockerX] = 0.0; Factions[faction][fcLockerY] = 0.0; Factions[faction][fcLockerZ] = 0.0; Factions[faction][fcLockerInt] = 0; Factions[faction][fcLockerWorld] = 0; Factions[faction][fcDrugRights] = 0; Factions[faction][fcSprayRights] = 0; Factions[faction][fcSpawnX] = 0.0; Factions[faction][fcSpawnY] = 0.0; Factions[faction][fcSpawnZ] = 0.0; Factions[faction][fcSpawnA] = 0.0; Factions[faction][fcSpawnInt] = 0; Factions[faction][fcSpawnWorld] = 0; Factions[faction][fcPickup] = INVALID_ID; Factions[faction][fcText] = INVALID_3DTEXT_ID; } FormatSerial(serial) { new string[8]; if (serial) { format(string, sizeof(string), "%i", serial); } else { string = "XXXXX"; } return string; } SetPlayerValidArmor(playerid, Float:amount) { if (IsPlayerConnected(playerid)) { Players[playerid][pArmor] = amount; Players[playerid][pAnticheat] = 2; if (amount >= 100.0) { amount = 99.0; } else if (amount < 0.0) { amount = 0.0; } return SetPlayerArmour(playerid, amount); } return 0; } UpdateMaskForPlayer(playerid) { foreach (new i : Player) { //if (Players[playerid][pMaskID] > 0) UpdateNameTag(playerid, 2); //ShowPlayerNameTagForPlayer(i, playerid, 0); //else // UpdateNameTag(playerid, 1); //ShowPlayerNameTagForPlayer(i, playerid, 1); } } UpdateColorForPlayer(playerid) { if(CheckAdmin(playerid, 1) && Players[playerid][pAdminDuty]) { switch (Players[playerid][pAdmin]) { case 1..2: SetPlayerColor(playerid, 0xE8AF0EFF); case 3..4: SetPlayerColor(playerid, 0xE8AF0EFF); default: SetPlayerColor(playerid, 0xE8AF0EFF); } } else if (Players[playerid][pSupporter] > 0 && Players[playerid][pSupporterDuty]) { SetPlayerColor(playerid, COLOR_TESTER); } else if (Players[playerid][pFaction] != INVALID_ID && Players[playerid][pDuty]) { SetPlayerColor(playerid, Factions[Players[playerid][pFaction]][fcColor]); } else { SetPlayerColor(playerid, COLOR_PLAYER); } } IsVehicleInDealership(company, model) { if (!IsValidCompanyID(company) || Companies[company][cType] != COMPANY_DEALERSHIP) { return 0; } for (new i = 0; i < MAX_DEALERSHIP_CARS; i ++) { if (DealershipCars[i][dcExists] && DealershipCars[i][dcCompany] == Companies[company][cID] && DealershipCars[i][dcModel] == model) { return 1; } } return 0; } AddVehicleToDealership(company, model, price) { if (!IsValidCompanyID(company) || Companies[company][cType] != COMPANY_DEALERSHIP) { return INVALID_ID; } new id = GetNextDealershipCarID(); if (id != INVALID_ID) { DealershipCars[id][dcExists] = 1; DealershipCars[id][dcCompany] = Companies[company][cID]; DealershipCars[id][dcModel] = model; DealershipCars[id][dcPrice] = price; format(gExecute, sizeof(gExecute), "INSERT INTO rp_dealercars (Company) VALUES(%i)", DealershipCars[id][dcCompany]); mysql_tquery(gConnection, gExecute, "OnDealershipCarAdded", "i", id); } return id; } GetPackedString(const string[]) { new retString[200]; if (ispacked(string)) strunpack(retString, string); else strcat(retString, string); return retString; } GetDeathReason(reason) { new string[24]; switch (reason) { case 0: string = "Fist"; case 1..46: GetWeaponName(reason, string, sizeof(string)); case 47: string = "Fake Pistol"; case 49: string = "Vehicle"; case 50: string = "Helicopter Blades"; case 51: string = "Explosion"; case 53: string = "Drowned"; case 54: string = "Splat"; } return string; } GetVehicleFromPlate(const plate[]) { for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && !strcmp(Vehicles[i][vPlate], plate, true)) { return i; } } return INVALID_ID; } GetPlayerID(const name[]) { foreach (new i : Player) { if (IsPlayerLoggedIn(i) && !strcmp(ReturnName(i), name)) { return i; } } return INVALID_PLAYER_ID; } IsWeaponCheater(playerid) { new weaponid = GetPlayerWeapon(playerid); if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { return 0; } else if (PlayerHasWeapon(playerid, weaponid)) { return 0; } return 1; } GetRandomHouse() { new houses[MAX_HOUSES], index = 0; for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && !Houses[i][hExterior] && !Houses[i][hExteriorWorld] && !strcmp(GetRegionName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]), "Los Santos")) { houses[index++] = i; } } if (index) return houses[random(index)]; else return INVALID_ID; } GetRandomTrash() { new trash[MAX_TRASH_BINS], index = 0; for (new i = 0; i < MAX_TRASH_BINS; i ++) { if (IsValidTrashbinID(i) && !strcmp(GetRegionName(Trashbins[i][tX], Trashbins[i][tY], Trashbins[i][tZ]), "Los Santos")) { trash[index++] = i; } } if (index) return trash[random(index)]; else return INVALID_ID; } /* enum e_Trashbins { tID, tExists, Float:tX, Float:tY, Float:tZ, Float:tA, tInterior, tWorld, Text3D:tText, tObject }; */ GetVehicleComponentTypeCount(vehicleid, type) { new count; for(new i = MIN_COMPONENT_ID; i <= MAX_COMPONENT_ID; i ++) { if(IsValidComponentForVehicle(vehicleid, i) && GetVehicleComponentType(i) == type) { count++; } } return count; } IsVehicleModifiable(vehicleid) { for(new i = CARMODTYPE_SPOILER; i <= CARMODTYPE_VENT_LEFT; i ++) { if(GetVehicleComponentTypeCount(vehicleid, i) > 0) { return 1; } } return 0; } GetVehicleComponentPriceEx(componentid) { new price = GetVehicleComponentPrice(componentid); return price > 0 ? price : 500; } GetVehicleComponentName(componentid) { new name[32]; GetComponentName(componentid, name, sizeof(name)); return name; } CancelComponentPreview(playerid) { if(Players[playerid][pModPreview] >= 1000) { RemoveVehicleComponent(GetPlayerVehicleID(playerid), Players[playerid][pModPreview]); AddVehicleComponent(GetPlayerVehicleID(playerid), Players[playerid][pOldComponent]); } Players[playerid][pModPreview] = 0; } IsPlayerInModdingShop(playerid) { return IsPlayerInRangeOfPoint(playerid, 30.0, 1041.2220, -1028.3320, 32.1016); } ExitModdingShop(playerid) { if(IsPlayerInModdingShop(playerid)) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { CancelComponentPreview(playerid); SetVehiclePos(GetPlayerVehicleID(playerid), 1041.4913, -1031.0121, 32.0686); SetVehicleZAngle(GetPlayerVehicleID(playerid), 180.0000); SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), 0); LinkVehicleToInterior(GetPlayerVehicleID(playerid), 0); SetVehicleParamsEx(GetPlayerVehicleID(playerid), Players[playerid][pVehicleParams][0], Players[playerid][pVehicleParams][1], Players[playerid][pVehicleParams][2], Players[playerid][pVehicleParams][3], Players[playerid][pVehicleParams][4], Players[playerid][pVehicleParams][5], Players[playerid][pVehicleParams][6]); } else { SetPlayerPos(playerid, 1041.4913, -1031.0121, 32.0686); SetPlayerFacingAngle(playerid, 180.0000); } SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); } return 1; } ShowModMainMenu(playerid) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid), string[256]; for(new i = CARMODTYPE_SPOILER; i <= CARMODTYPE_VENT_LEFT; i ++) { if(GetVehicleComponentTypeCount(vehicleid, i) > 0) { format(string, sizeof(string), "%s\n%s", string, componentSlotNames[i]); } } if(isnull(string)) { SendErrorMessage(playerid, "This vehicle cannot be modified."); } else { Dialog_Show(playerid, ModdingMenu, DIALOG_STYLE_LIST, "{33AA33}Modding - Main Menu", string, "Select", "Exit"); } } return 1; } ShowModBrowseMenu(playerid) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid), string[512], count; string = "Component\tPrice"; for(new i = MIN_COMPONENT_ID; i <= MAX_COMPONENT_ID; i ++) { if(GetVehicleComponentType(i) == Players[playerid][pSelected] && IsValidComponentForVehicle(vehicleid, i)) { format(string, sizeof(string), "%s\n%s\t($%i)", string, GetVehicleComponentName(i), GetVehicleComponentPriceEx(i)); count++; } } if(isnull(string)) { SendErrorMessage(playerid, "There are no mods in this category available for your vehicle."); ShowModMainMenu(playerid); } else { strcat(string, "\n{FFFF00}<< Go Back"); Dialog_Show(playerid, ModdingBrowse, DIALOG_STYLE_TABLIST_HEADERS, "{33AA33}Modding - Select Mod", string, "Select", "Exit"); } } return 1; } IsRepairShopInUse(id) { foreach(new i : Player) { if(Players[i][pRepairShop] == id && IsPlayerInRangeOfPoint(i, 10.0, g_RepairShops[id][3], g_RepairShops[id][4], g_RepairShops[id][5])) { return 1; } } return 0; } GetAmmunitionType(weaponid) { new type[16]; switch (weaponid) { case 22, 23, 28, 29, 32: type = "9x19mm"; case 24: type = ".50cal"; case 25, 26, 27: type = "12 Gauge"; case 30: type = "7.62x39mm"; case 31: type = "5.56x45mm"; case 33, 34: type = "7.62x51mm"; default: type = "Unknown"; } return type; } stock randomEx(min, max) { new rand = random(max-min)+min; return rand; } stock GSF(playerid, skinid) { new pName[MAX_PLAYER_NAME]; GetPlayerName(playerid, pName, sizeof(pName)); //If the player has the [TM] tag in his name... if(strfind(pName, "[GSF]", true) != -1) { switch(skinid) { //Add your own private skin ids here... case 105, 106, 107: return 1; } } return 0; } stock NotAuthMSG(playerid) { return SCM(playerid, COLOR_LIGHTRED, " You Are Not An Admin"); } stock PlayPlayerBoomBoxURL(playerid, urlname[], url[]) { new vehicle = GetPlayerVehicleID(playerid); if(IsPlayerInVehicle(playerid, vehicle)) { format(msg, sizeof(msg), "> %s has tuned the radio station to %s.", ReturnNameEx(playerid), urlname); SetPlayerChatBubble(playerid, msg, COLOR_GREEN, 15.0, 10000); SCM(playerid, COLOR_GREEN, msg); Players[playerid][pVehicleStream] = vehicle; strpack(VehicleInformation[vehicle][vStream], urlname, 128 char); StartMusicInVehicle(vehicle, url); } return 1; } stock StartMusicInVehicle(vehicle, url[]) { foreach(new i : Player) { if(GetPlayerVehicleID(i) == vehicle) { StopAudioStreamForPlayer(i); PlayAudioStreamForPlayer(i, url); } } return 1; } Float:DistanceCameraTargetToLocation(Float:CamX, Float:CamY, Float:CamZ, Float:ObjX, Float:ObjY, Float:ObjZ, Float:FrX, Float:FrY, Float:FrZ) { new Float:TGTDistance; TGTDistance = floatsqroot((CamX - ObjX) * (CamX - ObjX) + (CamY - ObjY) * (CamY - ObjY) + (CamZ - ObjZ) * (CamZ - ObjZ)); new Float:tmpX, Float:tmpY, Float:tmpZ; tmpX = FrX * TGTDistance + CamX; tmpY = FrY * TGTDistance + CamY; tmpZ = FrZ * TGTDistance + CamZ; return floatsqroot((tmpX - ObjX) * (tmpX - ObjX) + (tmpY - ObjY) * (tmpY - ObjY) + (tmpZ - ObjZ) * (tmpZ - ObjZ)); } PlayerFaces(playerid, Float:x, Float:y, Float:z, Float:radius) { new Float:cx,Float:cy,Float:cz,Float:fx,Float:fy,Float:fz; GetPlayerCameraPos(playerid, cx, cy, cz); GetPlayerCameraFrontVector(playerid, fx, fy, fz); return (radius >= DistanceCameraTargetToLocation(cx, cy, cz, x, y, z, fx, fy, fz)); } DeleteFire(ID) { DestroyDynamicObject(FireObj[ID]); TotalFires--; FirePos[ID][0] = 0, FirePos[ID][1] = 0, FirePos[ID][2] = 0; } DeleteAllFire() { new ID; for(ID = 0; ID 32) { new pos = 32; if(pos < 32-1) pos = 32; format(msg, sizeof(msg), "%.*s\n%s", pos, callsign, callsign[pos]); gCallsignText[vehicleid] = Create3DTextLabel(msg, COLOR_WHITE, 0.0, 0.0, 0.0, 15.0, 0); Attach3DTextLabelToVehicle(gCallsignText[vehicleid], vehicleid, -0.7, -2.4, -0.3); } else { gCallsignText[vehicleid] = Create3DTextLabel(callsign, COLOR_WHITE, 0.0, 0.0, 0.0, 15.0, 0); Attach3DTextLabelToVehicle(gCallsignText[vehicleid], vehicleid, -0.7, -2.4, -0.3); } return 1; } stock RemoveCallsign(vehicleid) { Delete3DTextLabel(gCallsignText[vehicleid]); gCallsignText[vehicleid] = INVALID_3DTEXT_ID; return 1; } stock CheckAdmin(playerid, level) { if (Players[playerid][pAdmin] >= level) return true; else return false; } stock GetPlayer2DZone(playerid, zone[], len) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x,y,z); for(new i = 0; i != sizeof(gSAZones); i++) { if(x >= gSAZones[i][SAZONE_AREA][0] && x <= gSAZones[i][SAZONE_AREA][3] && y >= gSAZones[i][SAZONE_AREA][1] && y <= gSAZones[i][SAZONE_AREA][4]) { return format(zone, len, gSAZones[i][SAZONE_NAME], 0); } } return 0; } stock RemoveEquipment(playerid) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) return 0; ResetWeapons(playerid); SetPlayerValidArmor(playerid, 0.0); new itemid; while((itemid = GetInventoryItemID(playerid, "Desert Eagle")) >= 0) { RemoveItemFromInventory(playerid, itemid); } while((itemid = GetInventoryItemID(playerid, "Shotgun")) >= 0) { RemoveItemFromInventory(playerid, itemid); } while((itemid = GetInventoryItemID(playerid, "Cuffs")) >= 0) { RemoveItemFromInventory(playerid, itemid); } while((itemid = GetInventoryItemID(playerid, "Cuff Keys")) >= 0) { RemoveItemFromInventory(playerid, itemid); } while((itemid = GetInventoryItemID(playerid, "Medical Kit")) >= 0) { RemoveItemFromInventory(playerid, itemid); } while((itemid = GetInventoryItemID(playerid, "Nightstick")) >= 0) { RemoveItemFromInventory(playerid, itemid); } while((itemid = GetInventoryItemID(playerid, "Pepper Spray")) >= 0) { RemoveItemFromInventory(playerid, itemid); } while((itemid = GetInventoryItemID(playerid, "MP5")) >= 0) { RemoveItemFromInventory(playerid, itemid); } while((itemid = GetInventoryItemID(playerid, "M16")) >= 0) { RemoveItemFromInventory(playerid, itemid); } while((itemid = GetInventoryItemID(playerid, "Sniper Rifle")) >= 0) { RemoveItemFromInventory(playerid, itemid); } while((itemid = GetInventoryItemID(playerid, "Armor")) >= 0) { RemoveItemFromInventory(playerid, itemid); } return 1; } stock GetInitials(const string[]) { new ret[32], index = 0; for (new i = 0, l = strlen(string); i != l; i ++) { if (('A' <= string[i] <= 'Z') && (i == 0 || string[i - 1] == ' ')) ret[index++] = string[i]; } return ret; } stock FaintPlayer(playerid) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if (!Players[playerid][pFainted]) { if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SetPlayerPos(playerid, x, y, z + 1.5); } Players[playerid][pFainted] = 1; TogglePlayerControllable(playerid, 0); SetTimerEx("ResetFaint", 5000, false, "i", playerid); if (!IsPlayerInAnyVehicle(playerid)) { ApplyAnimation(playerid, "PED", "KO_skid_back", 4.1, 0, 0, 0, 1, 0, 1); } } return 1; } IsVehicleSeatOccupied(vehicleid, seatid) { if (!GetVehicleModel(vehicleid)) { return 0; } else { for (new i = 0; i < MAX_PLAYERS; i ++) { if (IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == seatid) { return 1; } } } return 0; } GetVehicleNextSeat(vehicleid, seat = 1) { new seats = GetVehicleSeats(vehicleid); if (seats > 1) { for (new i = seat; i < seats; i ++) { if (!IsVehicleSeatOccupied(vehicleid, i)) { return i; } } } return INVALID_ID; } GetVehicleSeats(vehicleid) { new modelid = GetVehicleModel(vehicleid); static const s_VehicleSeats[] = { 4, 2, 2, 2, 4, 4, 1, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, 4, 4, 2, 2, 2, 1, 4, 4, 4, 2, 1, 7, 1, 2, 2, 0, 2, 7, 4, 2, 4, 1, 2, 2, 2, 4, 1, 2, 1, 0, 0, 2, 1, 1, 1, 2, 2, 2, 4, 4, 2, 2, 2, 2, 1, 1, 4, 4, 2, 2, 4, 2, 1, 1, 2, 2, 1, 2, 2, 4, 2, 1, 4, 3, 1, 1, 1, 4, 2, 2, 4, 2, 4, 1, 2, 2, 2, 4, 4, 2, 2, 1, 2, 2, 2, 2, 2, 4, 2, 1, 1, 2, 1, 1, 2, 2, 4, 2, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4, 1, 1, 1, 2, 2, 2, 2, 7, 7, 1, 4, 2, 2, 2, 2, 2, 4, 4, 2, 2, 4, 4, 2, 1, 2, 2, 2, 2, 2, 2, 4, 4, 2, 2, 1, 2, 4, 4, 1, 0, 0, 1, 1, 2, 1, 2, 2, 1, 2, 4, 4, 2, 4, 1, 0, 4, 2, 2, 2, 2, 0, 0, 7, 2, 2, 1, 4, 4, 4, 2, 2, 2, 2, 2, 4, 2, 0, 0, 0, 4, 0, 0 }; return (modelid < 400 || modelid > 611) ? (0) : (s_VehicleSeats[(modelid - 400)]); } UpdateArrestPoint(point) { new string[64]; if (!ArrestPoints[point][apExists]) return 0; format(string, sizeof(string), "ID: %i\nUse /arrest to turn in a suspect.", point); DestroyDynamicPickup(ArrestPoints[point][apPickup]); DestroyDynamic3DTextLabel(ArrestPoints[point][apText]); ArrestPoints[point][apPickup] = CreateDynamicPickup(1247, 23, ArrestPoints[point][apX], ArrestPoints[point][apY], ArrestPoints[point][apZ], ArrestPoints[point][apWorld], ArrestPoints[point][apInterior]); ArrestPoints[point][apText] = CreateDynamic3DTextLabel(string, COLOR_GREY, ArrestPoints[point][apX], ArrestPoints[point][apY], ArrestPoints[point][apZ], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, ArrestPoints[point][apWorld], ArrestPoints[point][apInterior]); return 1; } GetClosestArrestPoint(playerid) { for (new i = 0; i < MAX_ARREST_POINTS; i ++) { if (ArrestPoints[i][apExists] && IsPlayerNearPoint(playerid, 5.0, ArrestPoints[i][apX], ArrestPoints[i][apY], ArrestPoints[i][apZ], ArrestPoints[i][apInterior], ArrestPoints[i][apWorld])) { return i; } } return INVALID_ID; } GetClosestShell(playerid) { for (new i = 0; i < MAX_SHELL_CASINGS; i ++) { if (ShellCasings[i][scExists] && IsPlayerNearPoint(playerid, 1.5, ShellCasings[i][scSpawn][0], ShellCasings[i][scSpawn][1], ShellCasings[i][scSpawn][2], ShellCasings[i][scInterior], ShellCasings[i][scWorld])) { return i; } } return INVALID_ID; } /*GetClosestBlood(playerid) { for (new i = 0; i < MAX_BLOOD; i ++) { if (Bloods[i][blExists] && IsPlayerNearPoint(playerid, 1.5, Bloods[i][blSpawn][0], Bloods[i][blSpawn][1], Bloods[i][blSpawn][2], Bloods[i][blInterior], Bloods[i][blWorld])) { return i; } } return INVALID_ID; }*/ GetClosestWeedPlant(playerid) { for (new i = 0; i < MAX_WEEDPLANTS; i ++) { if (WeedPlants[i][wpExists] && IsPlayerNearPoint(playerid, 1.5, WeedPlants[i][wpSpawn][0], WeedPlants[i][wpSpawn][1], WeedPlants[i][wpSpawn][2], WeedPlants[i][wpInterior], WeedPlants[i][wpWorld])) { return i; } } return INVALID_ID; } DeleteShellCasing(id) { if (id != INVALID_ID) { DestroyDynamicObject(ShellCasings[id][scObject]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_casings WHERE scID = %i", ShellCasings[id][scID]); mysql_tquery(gConnection, gExecute); ShellCasings[id][scExists] = 0; ShellCasings[id][scID] = 0; ShellCasings[id][scObject] = INVALID_OBJECT_ID; } return 1; } DeleteWeedPlant(id) { if (id != INVALID_ID) { DestroyDynamicObject(WeedPlants[id][wpObject]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_weedplants WHERE wpID = %i", WeedPlants[id][wpID]); mysql_tquery(gConnection, gExecute); WeedPlants[id][wpExists] = 0; WeedPlants[id][wpID] = 0; WeedPlants[id][wpObject] = INVALID_OBJECT_ID; } return 1; } /* enum e_Bloods { blID, blExists, blType, blOwner[24], Float:blSpawn[3], blInterior, blWorld, blObject, blTime } */ /* if (!IsPlayerInAnyVehicle(playerid) && GetPlayerPos(playerid, x, y, z)) { if (!IsPlayerInAir(playerid)) { SetTimerEx("DeleteObject", 300000, false, "i", CreateDynamicObject(19836, x, y, z - 0.95, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid))); } //SetTimerEx("DeleteObject", 1000, false, "i", CreateDynamicObject(18668, x, y, z - 1.7, 0.0, 0.0, 0.0)); } */ /*AddBlood(playerid, Float:x, Float:y, Float:z, interior, world) { new id = GetNextBloodID(); if(IsPlayerInAnyVehicle(playerid)) return 0; if(IsPlayerInAir(playerid)) return 0; if (id != INVALID_ID) { Bloods[id][blExists] = 1; Bloods[id][blType] = 1; Bloods[id][blTime] = gettime(); Bloods[id][blSpawn][0] = x; Bloods[id][blSpawn][1] = y; Bloods[id][blSpawn][2] = z; Bloods[id][blInterior] = interior; Bloods[id][blWorld] = world; strcpy(Bloods[id][blOwner], ReturnName(playerid), 24); UpdateBlood(id); //format(gExecute, sizeof(gExecute), "INSERT INTO rp_blood (blType, blTime, blX, blY, blZ, blInterior, blWorld, blOwner) VALUES(%i, %i, %.4f, %.4f, %.4f, %i, %i, '%s')", Bloods[id][blType], Bloods[id][blTime], x, y, z, interior, world, Bloods[id][blOwner]); //mysql_tquery(gConnection, gExecute, "OnBloodAdded", "i", id); } return id; }*/ AddWeedPlant(playerid, Float:x, Float:y, Float:z, interior, world) { new id = GetNextWeedPlantID(); if (IsPlayerInAnyVehicle(playerid)) return 0; if (IsPlayerInAir(playerid)) return 0; if (id != INVALID_ID) { WeedPlants[id][wpExists] = 1; WeedPlants[id][wpTime] = 0; WeedPlants[id][wpSpawn][0] = x; WeedPlants[id][wpSpawn][1] = y; WeedPlants[id][wpSpawn][2] = z; WeedPlants[id][wpInterior] = interior; WeedPlants[id][wpWorld] = world; strcpy(WeedPlants[id][wpOwner], ReturnName(playerid), 24); UpdateWeedPlant(id); format(gExecute, sizeof(gExecute), "INSERT INTO rp_weedplants (wpTime, wpX, wpY, wpZ, wpInterior, wpWorld, wpOwner) VALUES(%i, %.4f, %.4f, %.4f, %i, %i, '%s')", WeedPlants[id][wpTime], x, y, z, interior, world, WeedPlants[id][wpOwner]); mysql_tquery(gConnection, gExecute, "OnWeedPlantAdded", "i", id); } return id; } /*AddShellCasing(serial, weaponid, Float:x, Float:y, Float:z, interior, world) { new id = GetNextShellCasingID(); if (id != INVALID_ID) { ShellCasings[id][scExists] = 1; ShellCasings[id][scSerial] = serial; ShellCasings[id][scWeapon] = weaponid; ShellCasings[id][scTime] = gettime(); ShellCasings[id][scSpawn][0] = x; ShellCasings[id][scSpawn][1] = y; ShellCasings[id][scSpawn][2] = z; ShellCasings[id][scInterior] = interior; ShellCasings[id][scWorld] = world; ShellCasings[id][scObject] = INVALID_OBJECT_ID; UpdateShellCasing(id); format(gExecute, sizeof(gExecute), "INSERT INTO rp_casings (scSerial, scWeapon, scTime, scX, scY, scZ, scInterior, scWorld) VALUES(%i, %i, %i, %.4f, %.4f, %.4f, %i, %i)", serial, weaponid, ShellCasings[id][scTime], x, y, z, interior, world); mysql_tquery(gConnection, gExecute, "OnShellCasingAdded", "i", id); } return id; }*/ UpdateShellCasing(id) { if (!ShellCasings[id][scExists]) return 0; DestroyDynamicObject(ShellCasings[id][scObject]); ShellCasings[id][scObject] = CreateDynamicObject(3027, ShellCasings[id][scSpawn][0], ShellCasings[id][scSpawn][1], ShellCasings[id][scSpawn][2] - 0.95, 0.0, 90.0, 0.0, ShellCasings[id][scWorld], ShellCasings[id][scInterior], .streamdistance = 20.0); SetDynamicObjectMaterial(ShellCasings[id][scObject], 0, 2061, "cj_ammo", "CJ_BULLETBRASS"); return 1; } /*UpdateBlood(id) { if (!Bloods[id][blExists]) return 0; DestroyDynamicObject(Bloods[id][blObject]); Bloods[id][blObject] = CreateDynamicObject(19836, Bloods[id][blSpawn][0], Bloods[id][blSpawn][1], Bloods[id][blSpawn][2] - 0.95, 0.0, 0.0, 0.0, Bloods[id][blWorld], Bloods[id][blInterior], .streamdistance = 20.0); return 1; }*/ UpdateWeedPlant(id) { if (!WeedPlants[id][wpExists]) return 0; DestroyDynamicObject(WeedPlants[id][wpObject]); WeedPlants[id][wpObject] = CreateDynamicObject(19473, WeedPlants[id][wpSpawn][0], WeedPlants[id][wpSpawn][1], WeedPlants[id][wpSpawn][2] - 0.95, 0.0, 0.0, 0.0, WeedPlants[id][wpWorld], WeedPlants[id][wpInterior], .streamdistance = 20.0); return 1; } SaveDealershipCar(id) { static queryString[128]; if (!DealershipCars[id][dcExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_dealercars SET Model = %i, Price = %i WHERE ID = %i", DealershipCars[id][dcModel], DealershipCars[id][dcPrice], DealershipCars[id][dcID]); return mysql_tquery(gConnection, queryString); } GetClosestATM(playerid) { for (new i = 0; i < MAX_ATMS; i ++) { if (ATM[i][atmExists] && IsPlayerNearPoint(playerid, 2.0, ATM[i][atmSpawn][0], ATM[i][atmSpawn][1], ATM[i][atmSpawn][2], ATM[i][atmInterior], ATM[i][atmWorld])) { return i; } } return INVALID_ID; } SaveATM(id) { static queryString[192]; if (!ATM[id][atmExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_atms SET atmX = %.4f, atmY = %.4f, atmZ = %.4f, atmA = %.4f, atmInterior = %i, atmWorld = %i WHERE atmID = %i", ATM[id][atmSpawn][0], ATM[id][atmSpawn][1], ATM[id][atmSpawn][2], ATM[id][atmSpawn][3], ATM[id][atmInterior], ATM[id][atmWorld], ATM[id][atmID] ); return mysql_tquery(gConnection, queryString); } UpdateATM(id) { new string[64]; if (!ATM[id][atmExists]) { return 0; } DestroyDynamic3DTextLabel(ATM[id][atmText]); DestroyDynamicObject(ATM[id][atmObject]); format(string, sizeof(string), "ID: %i\nPress Y to use machine", id); ATM[id][atmObject] = CreateDynamicObject(19526, ATM[id][atmSpawn][0], ATM[id][atmSpawn][1], ATM[id][atmSpawn][2], 0.0, 0.0, ATM[id][atmSpawn][3], ATM[id][atmWorld], ATM[id][atmInterior]); ATM[id][atmText] = CreateDynamic3DTextLabel(string, COLOR_GREY, ATM[id][atmSpawn][0], ATM[id][atmSpawn][1], ATM[id][atmSpawn][2] + 0.9, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, ATM[id][atmWorld], ATM[id][atmInterior]); return 1; } StopRepairing(playerid) { if (Players[playerid][pRepairCar]) { KillTimer(Timers[playerid][tRepair]); Players[playerid][pRepairCar] = 0; } } StopWorking(playerid) { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_CARRY) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC); } if (IsValidVehicle(Players[playerid][pWorkVehicle]) && IsValidDynamicObject(VehicleInformation[Players[playerid][pWorkVehicle]][vObject])) { DestroyDynamicObject(VehicleInformation[Players[playerid][pWorkVehicle]][vObject]); VehicleInformation[Players[playerid][pWorkVehicle]][vObject] = INVALID_OBJECT_ID; } if (Players[playerid][pJob] == JOB_TRASHMAN) { ClearTrashBags(playerid); } Players[playerid][pWorking] = 0; Players[playerid][pWorkVehicle] = INVALID_VEHICLE_ID; Players[playerid][pTrash] = 0; Players[playerid][pTrashPickup] = 0; ResetCheckpoint(playerid); } StartWorking(playerid) { switch (Players[playerid][pJob]) { case JOB_FORKLIFTER: { switch (random(5)) { case 0: SetCheckpoint(playerid, CHECKPOINT_JOB, 2756.0898, -2568.1514, 13.3329, 2.0); case 1: SetCheckpoint(playerid, CHECKPOINT_JOB, 2396.0554, -2507.3931, 13.6478, 2.0); case 2: SetCheckpoint(playerid, CHECKPOINT_JOB, 2350.6902, -2329.9878, 13.5469, 2.0); case 3: SetCheckpoint(playerid, CHECKPOINT_JOB, 2204.1365, -2592.5439, 13.5409, 2.0); case 4: SetCheckpoint(playerid, CHECKPOINT_JOB, 2450.6052, -2628.4292, 13.6645, 2.0); } Players[playerid][pJobStage] = 0; Players[playerid][pWorking] = 1; } } } StopPicking(playerid) { if (Players[playerid][pPicking] == PICK_LOCK_VEHICLE) { SetAlarmStatus(Vehicles[Players[playerid][pPickID]][vVehicle], false); } Players[playerid][pPicking] = PICK_LOCK_NONE; Players[playerid][pPickID] = INVALID_ID; Players[playerid][pPickTime] = 0; PlayerPlaySound(playerid, 9202, 0.0, 0.0, 0.0); PlayerPlaySound(playerid, 1036, 0.0, 0.0, 0.0); } ClearTrashBags(playerid) { for (new i = 0; i < sizeof(g_TrashPickups); i ++) { if (IsValidPlayerObject(playerid, gTrashObjects[playerid][i])) { DestroyPlayerObject(playerid, gTrashObjects[playerid][i]); gTrashObjects[playerid][i] = INVALID_OBJECT_ID; } } } PickLock(playerid, type, id) { Players[playerid][pPicking] = type; Players[playerid][pPickID] = id; switch (type) { case PICK_LOCK_HOUSE: { if (Houses[id][hAlarm]) { foreach (new i : Player) { if (GetCurrentHouse(i) == id) { PlayerPlaySound(i, 9200, Houses[id][hInt][0], Houses[id][hInt][1], Houses[id][hInt][2]); } if (IsHouseOwner(i, id)) { SendFormatMessage(i, COLOR_YELLOW, "* Text from Home Security: The alarm has been activated at %s from a possible intruder!", Houses[id][hAddress]); } if (GetPlayerFactionType(i) == FACTION_LEO) { SendFormatMessage(i, COLOR_RED, "* [DISPATCH] House Alarm has been Activated any available units please respond."); SendFormatMessage(i, COLOR_RED, "* [DISPATCH] House located in %s, address: '%s' *", GetZoneName(Houses[id][hSpawn][0], Houses[id][hSpawn][1], Houses[id][hSpawn][2]), Houses[id][hAddress]); //break; } } /*foreach (new j : Player) { if (GetPlayerFactionType(j) == FACTION_LEO) { SendFormatMessage(j, COLOR_RED, "* [ALARM] House located in %s, address: '%s' *", GetZoneName(Houses[id][hSpawn][0], Houses[id][hSpawn][1], Houses[id][hSpawn][2]), Houses[id][hAddress]); //break; } }*/ PlayerPlaySound(playerid, 9200, Houses[id][hSpawn][0], Houses[id][hSpawn][1], Houses[id][hSpawn][2]); } Players[playerid][pPickTime] = 45; } case PICK_LOCK_SAFE: { new hid = GetNearbyHouse(playerid); if (Houses[hid][hAlarm]) { foreach (new i : Player) { /*if (GetCurrentHouse(i) == hid) { PlayerPlaySound(i, 9200, Houses[hid][hInt][0], Houses[hid][hInt][1], Houses[hid][hInt][2]); }*/ if (IsHouseOwner(i, hid)) { SendFormatMessage(i, COLOR_YELLOW, "* Text from Home Security: The alarm has been activated at %s from a possible intruder!", Houses[hid][hAddress]); } if (GetPlayerFactionType(i) == FACTION_LEO) { SendFormatMessage(i, COLOR_RED, "* [DISPATCH] House SAFE Alarm has been Activated any available units please respond."); SendFormatMessage(i, COLOR_RED, "* [DISPATCH] House located in %s, address: '%s' *", GetZoneName(Houses[hid][hSpawn][0], Houses[hid][hSpawn][1], Houses[hid][hSpawn][2]), Houses[hid][hAddress]); //break; } } //PlayerPlaySound(playerid, 9200, Houses[hid][hSpawn][0], Houses[hid][hSpawn][1], Houses[hid][hSpawn][2]); } Players[playerid][pPickTime] = 45; } case PICK_LOCK_COMPANY: { foreach (new i : Player) { /*if (GetCurrentCompany(i) == id) { PlayerPlaySound(i, 9200, Companies[id][cInt][0], Companies[id][cInt][1], Companies[id][cInt][2]); }*/ if (IsCompanyOwner(i, id)) { SendFormatMessage(i, COLOR_YELLOW, "* Text from CompSec: The alarm has been activated at %s from a possible intruder!", Companies[id][cName]); } if (GetPlayerFactionType(i) == FACTION_LEO) { SendFormatMessage(i, COLOR_DARKGREEN, "* [DISPATCH] Company Alarm has been Activated any available units please respond, CODE-3."); SendFormatMessage(i, COLOR_DARKGREEN, "* [DISPATCH] Company located in %s, company name: '%s' *", GetZoneName(Companies[id][cSpawn][0], Companies[id][cSpawn][1], Companies[id][cSpawn][2]), Companies[id][cName]); } } Players[playerid][pPickTime] = 50; } case PICK_LOCK_VEHICLE: { Players[playerid][pPickTime] = 40; if (Vehicles[id][vAlarm]) { SetAlarmStatus(Vehicles[id][vVehicle], true); } } } } /*SpawnBloodObject(playerid) { new Float:x, Float:y, Float:z; if (!IsPlayerInAnyVehicle(playerid) && GetPlayerPos(playerid, x, y, z)) { if (!IsPlayerInAir(playerid)) { SetTimerEx("DeleteObject", 300000, false, "i", CreateDynamicObject(19836, x, y, z - 0.95, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid))); } //SetTimerEx("DeleteObject", 1000, false, "i", CreateDynamicObject(18668, x, y, z - 1.7, 0.0, 0.0, 0.0)); } }*/ ShowSettings(playerid) { new string[512]; string = "Name\tStatus"; if (Players[playerid][pShowPM]) { format(string, sizeof(string), "%s\nPrivate Messages\t{33CC33}Enabled", string); } else { format(string, sizeof(string), "%s\nPrivate Messages\t{FF5030}Disabled", string); } if (Players[playerid][pShowSpeed]) { format(string, sizeof(string), "%s\nSpeedometer\t\t{33CC33}Enabled", string); } else { format(string, sizeof(string), "%s\nSpeedometer\t\t{FF5030}Disabled", string); } if (Players[playerid][pShowFuel]) { format(string, sizeof(string), "%s\nFuel Gauge\t\t{33CC33}Enabled", string); } else { format(string, sizeof(string), "%s\nFuel Gauge\t\t{FF5030}Disabled", string); } if (Players[playerid][pShowTime]) { format(string, sizeof(string), "%s\nTime Textdraw\t\t{33CC33}Enabled", string); } else { format(string, sizeof(string), "%s\nTime Textdraw\t\t{FF5030}Disabled", string); } if (Players[playerid][pShowOOC]) { format(string, sizeof(string), "%s\nOOC Chat\t\t{33CC33}Enabled", string); } else { format(string, sizeof(string), "%s\nOOC Chat\t\t{FF5030}Disabled", string); } if (Players[playerid][pAdmin] > 0 || Players[playerid][pSupporter] > 0) { if (Players[playerid][pShowSupporter]) { format(string, sizeof(string), "%s\nSupporter Chat\t\t{33CC33}Enabled", string); } else { format(string, sizeof(string), "%s\nSupporter Chat\t\t{FF5030}Disabled", string); } } if (Players[playerid][pAdmin] > 0) { if (Players[playerid][pShowReports]) { format(string, sizeof(string), "%s\nReports\t\t{33CC33}Enabled", string); } else { format(string, sizeof(string), "%s\nReports\t\t{FF5030}Disabled", string); } if (Players[playerid][pShowAdmin]) { format(string, sizeof(string), "%s\nAdmin Chat\t\t{33CC33}Enabled", string); } else { format(string, sizeof(string), "%s\nAdmin Chat\t\t{FF5030}Disabled", string); } } Dialog_Show(playerid, MySettings, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Settings", string, "Switch", "Cancel"); return 1; } /*stock GetComponentName(componentid) { new modname[64]; switch (componentid) { case 1000: modname = "Pro Spoiler"; case 1001: modname = "Win Spoiler"; case 1002: modname = "Drag Spoiler"; case 1003: modname = "Alpha Spoiler"; case 1004: modname = "Champ Scoop"; case 1005: modname = "Fury Scoop"; case 1006: modname = "Roof Scoop"; case 1007: modname = "Right Sideskirt"; case 1008: modname = "5x Nitrous"; case 1009: modname = "2x Nitrous"; case 1010: modname = "10x Nitrous"; case 1011: modname = "Race Scoop"; case 1012: modname = "Worx Scoop"; case 1013: modname = "Round Fog Lamp"; case 1014: modname = "Champ Spoiler"; case 1015: modname = "Race Spoiler"; case 1016: modname = "Worx Spoiler"; case 1017: modname = "Left Sideskirt"; case 1018: modname = "Upswept Exhaust"; case 1019: modname = "Twin Exhaust"; case 1020: modname = "Large Exhaust"; case 1021: modname = "Medium Exhaust"; case 1022: modname = "Small Exhaust"; case 1023: modname = "Fury Spoiler"; case 1024: modname = "Square Fog Lights"; case 1025: modname = "Offroad"; case 1026, 1036, 1047, 1056, 1069, 1090: modname = "Right Alien Sideskirt"; case 1027, 1040, 1051, 1062, 1071, 1094: modname = "Left Alien Sideskirt"; case 1028, 1034, 1046, 1064, 1065, 1092: modname = "Alien Exhaust"; case 1029, 1037, 1045, 1059, 1066, 1089: modname = "X-Flow Exhaust"; case 1030, 1039, 1048, 1057, 1070, 1095: modname = "Right X-Flow Sideskirt"; case 1031, 1041, 1052, 1063, 1072, 1093: modname = "Left X-Flow Sideskirt"; case 1032, 1038, 1054, 1055, 1067, 1088: modname = "Alien Roof Vent"; case 1033, 1035, 1053, 1061, 1068, 1091: modname = "X-Flow Roof Vent"; case 1042: modname = "Right Chrome Sideskirt"; case 1099: modname = "Left Chrome Sideskirt"; case 1043, 1105, 1114, 1127, 1132, 1135: modname = "Slamin Exhaust"; case 1044, 1104, 1113, 1126, 1129, 1136: modname = "Chrome Exhaust"; case 1050, 1058, 1139, 1146, 1158, 1163: modname = "X-Flow Spoiler"; case 1049, 1060, 1138, 1147, 1162, 1164: modname = "Alien Spoiler"; case 1073: modname = "Shadow"; case 1074: modname = "Mega"; case 1075: modname = "Rimshine"; case 1076: modname = "Wires"; case 1077: modname = "Classic"; case 1078: modname = "Twist"; case 1079: modname = "Cutter"; case 1080: modname = "Stitch"; case 1081: modname = "Grove"; case 1082: modname = "Import"; case 1083: modname = "Dollar"; case 1084: modname = "Trance"; case 1085: modname = "Atomic"; case 1086: modname = "Stereo"; case 1087: modname = "Hydraulics"; case 1096: modname = "Ahab"; case 1097: modname = "Virtual"; case 1098: modname = "Access"; case 1100: modname = "Chrome Grill"; case 1101: modname = "Left Chrome Flames Sideskirt"; case 1102, 1107: modname = "Left Chrome Strip Sideskirt"; case 1103: modname = "Convertible Roof"; case 1106, 1124: modname = "Left Chrome Arches Sideskirt"; case 1108, 1133, 1134: modname = "Right Chrome Strip Sideskirt"; case 1109: modname = "Chrome Rear Bullbars"; case 1110: modname = "Slamin Rear Bullbars"; case 1111, 1112: modname = "Front Sign"; case 1115: modname = "Chrome Front Bullbars"; case 1116: modname = "Slamin Front Bullbars"; case 1117, 1174, 1179, 1182, 1189, 1191: modname = "Chrome Front Bumper"; case 1175, 1181, 1185, 1188, 1190: modname = "Slamin Front Bumper"; case 1176, 1180, 1184, 1187, 1192: modname = "Chrome Rear Bumper"; case 1177, 1178, 1183, 1186, 1193: modname = "Slamin Rear Bumper"; case 1118: modname = "Right Chrome Trim Sideskirt"; case 1119: modname = "Right Wheelcovers Sideskirt"; case 1120: modname = "Left Chrome Trim Sideskirt"; case 1121: modname = "Left Wheelcovers Sideskirt"; case 1122: modname = "Right Chrome Flames Sideskirt"; case 1123: modname = "Bullbar Chrome Bars"; case 1125: modname = "Bullbar Chrome Lights"; case 1128: modname = "Vinyl Hardtop Roof"; case 1130: modname = "Hardtop Roof"; case 1131: modname = "Softtop Roof"; case 1140, 1148, 1151, 1156, 1161, 1167: modname = "X-Flow Rear Bumper"; case 1141, 1149, 1150, 1154, 1159, 1168: modname = "Alien Rear Bumper"; case 1142: modname = "Left Oval Vent"; case 1143: modname = "Right Oval Vent"; case 1144: modname = "Left Square Vent"; case 1145: modname = "Right Square Vent"; case 1152, 1157, 1165, 1170, 1172, 1173: modname = "X-Flow Front Bumper"; case 1153, 1155, 1160, 1166, 1169, 1171: modname = "Alien Front Bumper"; } return modname; }*/ SaveComponent(id, slot) { static queryString[200]; if (!Vehicles[id][vExists]) return 0; format(queryString, sizeof(queryString), "INSERT INTO rp_vehiclemods VALUES(%i, %i, %i) ON DUPLICATE KEY UPDATE vComponent = %i", Vehicles[id][vID], slot, Vehicles[id][vMods][slot], Vehicles[id][vMods][slot]); return mysql_tquery(gConnection, queryString); } SaveVehicle(id) { static queryString[1024]; if (!Vehicles[id][vExists]) { return 0; } format(queryString, sizeof(queryString), "UPDATE rp_vehicles SET vPlate = '%s', vRegistered = '%s', vCompany = %i, vOwner = %i, vModel = %i, vPrice = %i, vRentable = %i, vX = %.4f, vY = %.4f, vZ = %.4f, vA = %.4f, vColor1 = %i, vColor2 = %i, vPaintjob = %i, vLocked = %i, vTrunkMoney = %i", mysql_escaped(Vehicles[id][vPlate]), Vehicles[id][vRegistered], Vehicles[id][vCompany], Vehicles[id][vOwner], Vehicles[id][vModel], Vehicles[id][vPrice], Vehicles[id][vRentable], Vehicles[id][vSpawn][0], Vehicles[id][vSpawn][1], Vehicles[id][vSpawn][2], Vehicles[id][vSpawn][3], Vehicles[id][vColor1], Vehicles[id][vColor2], Vehicles[id][vPaintjob], Vehicles[id][vLocked], Vehicles[id][vTrunkMoney] ); format(queryString, sizeof(queryString), "%s, vFaction = %i, vSiren = %i, vAlarm = %i, vImpound = %i, vDespawned = %i WHERE vID = %i", queryString, Vehicles[id][vFaction], Vehicles[id][vSiren], Vehicles[id][vAlarm], Vehicles[id][vImpound], Vehicles[id][vDespawned], Vehicles[id][vID] ); return mysql_tquery(gConnection, queryString); } UpdateVehicle(id) { new string[48]; if (Vehicles[id][vRentable]) { if (Vehicles[id][vLocked]) { Vehicles[id][vLocked] = 0; } if (Vehicles[id][vRenter] != INVALID_PLAYER_ID) { Players[Vehicles[id][vRenter]][pRental] = INVALID_ID; Vehicles[id][vRenter] = INVALID_PLAYER_ID; } } DestroyVehicleEx(Vehicles[id][vVehicle]); DestroyDynamic3DTextLabel(Vehicles[id][vText]); if (!Vehicles[id][vImpound] && !Vehicles[id][vDespawned]) { Vehicles[id][vVehicle] = SpawnVehicle(Vehicles[id][vModel], Vehicles[id][vSpawn][0], Vehicles[id][vSpawn][1], Vehicles[id][vSpawn][2], Vehicles[id][vSpawn][3], Vehicles[id][vColor1], Vehicles[id][vColor2], (Vehicles[id][vFaction] > 0) ? (1800) : (0), Vehicles[id][vSiren]); if (Vehicles[id][vVehicle] != INVALID_VEHICLE_ID) { SetVehicleNumberPlate(Vehicles[id][vVehicle], Vehicles[id][vPlate]); ResyncVehicle(Vehicles[id][vVehicle]); if (Vehicles[id][vRentable]) { format(string, sizeof(string), "You can rent this vehicle!\nPrice: {33AA33}%s", FormatNumber(Vehicles[id][vPrice])); Vehicles[id][vText] = CreateDynamic3DTextLabel(string, COLOR_GREY, 0.0, 0.0, 0.0, 10.0, INVALID_PLAYER_ID, Vehicles[id][vVehicle]); } ApplyModifications(id); } } else { Vehicles[id][vVehicle] = INVALID_VEHICLE_ID; } return 1; } ApplyModifications(id) { if (IsValidVehicleID(id) && IsValidVehicle(Vehicles[id][vVehicle])) { ChangeVehicleColor(Vehicles[id][vVehicle], Vehicles[id][vColor1], Vehicles[id][vColor2]); if (Vehicles[id][vPaintjob] != INVALID_ID) { ChangeVehiclePaintjob(Vehicles[id][vVehicle], Vehicles[id][vPaintjob]); } for (new i = 0; i < 14; i ++) { if (Vehicles[id][vMods][i] > 0) { AddVehicleComponent(Vehicles[id][vVehicle], Vehicles[id][vMods][i]); } } SetLockStatus(Vehicles[id][vVehicle], Vehicles[id][vLocked]); } } ToggleVehicleSiren(vehicleid) { new Float:x, Float:y, Float:z, Float:tmp; if (gSirenObject[vehicleid] == INVALID_OBJECT_ID) { GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, z, z, z); GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_FRONTSEAT, x, y, tmp); gSirenObject[vehicleid] = CreateDynamicObject(18646, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); AttachDynamicObjectToVehicle(gSirenObject[vehicleid], vehicleid, -x, y, z / 1.9, 0.0, 0.0, 0.0); } else { AttachDynamicObjectToVehicle(gSirenObject[vehicleid], INVALID_VEHICLE_ID, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); DestroyDynamicObject(gSirenObject[vehicleid]); gSirenObject[vehicleid] = INVALID_OBJECT_ID; } } GetVehicleJobType(vehicleid) { if (JobVehicles[Transporter][0] <= vehicleid <= JobVehicles[Transporter][10]) { return JOB_TRANSPORTER; } else if (JobVehicles[Forklifter][0] <= vehicleid <= JobVehicles[Forklifter][5]) { return JOB_FORKLIFTER; } else if (JobVehicles[TaxiDriver][0] <= vehicleid <= JobVehicles[TaxiDriver][5]) { return JOB_TAXI; } else if (JobVehicles[Pizzaboy][0] <= vehicleid <= JobVehicles[Pizzaboy][4]) { return JOB_PIZZA; } else if (JobVehicles[Trashman][0] <= vehicleid <= JobVehicles[Trashman][4]) { return JOB_TRASHMAN; } return JOB_NONE; } PlayerHasKeys(playerid, vehicle) { for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++) { if (Inventory[playerid][i][invExists] && !strcmp(Inventory[playerid][i][invName], "Car Key") && Inventory[playerid][i][invValue] == Vehicles[vehicle][vID]) { return 1; } } return 0; } GetVehicleKeys(playerid, vehicleid) { new id; if(CheckAdmin(playerid, 1) && Players[playerid][pAdminDuty]) { return 1; } else if (VehicleInformation[vehicleid][vAdmin]) { return 1; } else if (IsTestVehicle(vehicleid) && Players[playerid][pDrivingTest]) { return 1; } else if (GetVehicleJobType(vehicleid) != JOB_NONE && Players[playerid][pJob] == GetVehicleJobType(vehicleid)) { return 1; } else if ((id = GetVehicleID(vehicleid)) != INVALID_ID) { if (Vehicles[id][vRenter] == playerid || IsVehicleOwner(playerid, id)) { return 1; } else if (Vehicles[id][vFaction] != 0 && GetFactionID(Vehicles[id][vFaction]) == Players[playerid][pFaction]) { return 1; } else if (Vehicles[id][vOwner] != 0 && PlayerHasKeys(playerid, id)) { return 1; } } return 0; } IsRentalCar(vehicleid) { new id = GetVehicleID(vehicleid); if (id == INVALID_ID) { return 0; } return Vehicles[id][vRentable]; } GetVehicleID(vehicleid) { new modelid = GetVehicleModel(vehicleid); if (!IsValidVehicle(vehicleid)) { return INVALID_ID; } else { for (new i = 0; i < MAX_CARS; i ++) { if (Vehicles[i][vExists] && Vehicles[i][vModel] == modelid && Vehicles[i][vVehicle] == vehicleid) { return i; } } } return INVALID_ID; } RespawnRentalCar(playerid) { new vehicle = Players[playerid][pRental]; if (vehicle != INVALID_ID && Vehicles[vehicle][vRentable]) { Vehicles[vehicle][vRenter] = INVALID_PLAYER_ID; Players[playerid][pRental] = INVALID_ID; SetVehicleToRespawn(Vehicles[vehicle][vVehicle]); UpdateVehicle(vehicle); } return 1; } GetVehicleCompany(id) { for (new i = 0; i < MAX_COMPANIES; i ++) { if (IsValidCompanyID(i) && Companies[i][cID] == Vehicles[id][vCompany]) { return i; } } return INVALID_ID; } IsVehicleOwner(playerid, vehicle) { return (IsValidVehicleID(vehicle)) && (Vehicles[vehicle][vOwner] == Players[playerid][pID]); } ShowTrunkItems(playerid, vehicle) { if (!IsValidVehicleID(vehicle)) { return 0; } else { new title[64], index = 0; gListString = "Item\tWeight\nStore Item"; for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (StoredItems[i][stExists] && StoredItems[i][stVehicle] == Vehicles[vehicle][vID]) { format(gListString, sizeof(gListString), "%s\n%s\t%i lbs", gListString, GetStoredItemName(i), GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT)); gListedItems[playerid][index++] = i; } } format(title, sizeof(title), "{FFFFFF}Trunk - Capacity: %i/%i", GetTrunkTotalWeight(vehicle), GetTrunkCapacity(vehicle)); Dialog_Show(playerid, TrunkItems, DIALOG_STYLE_TABLIST_HEADERS, title, gListString, "Select", "Back"); } return 1; } SetPlayerCellphoneAction(playerid, enable) { if (Players[playerid][pDeathState] != DEATH_STATE_NONE || Players[playerid][pHandcuffed]) { return 0; } else { if (VehicleHasDoors(GetPlayerVehicleID(playerid)) && Players[playerid][pChatting]) { Players[playerid][pChatting] = 0; } if (enable) { if (VehicleHasDoors(GetPlayerVehicleID(playerid))) { ApplyAnimation(playerid, "CAR_CHAT", "carfone_in", 4.1, 0, 0, 0, 1, 0, 1); } else { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE); SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 330, 6); } } else { if (VehicleHasDoors(GetPlayerVehicleID(playerid))) { ApplyAnimation(playerid, "CAR_CHAT", "carfone_out", 4.1, 0, 0, 0, 0, 0, 1); } else { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE); RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC); } } } return 1; } HangupCall(playerid) { if (Players[playerid][pCalling] > 0) { for (new i = 0; i < MAX_PAYPHONES; i ++) { if (IsValidPayphoneID(i) && Payphones[i][phCaller] == playerid) { Payphones[i][phCaller] = INVALID_PLAYER_ID; UpdatePayphoneText(i); } } if (Players[playerid][pCaller] != INVALID_PLAYER_ID) { SetPlayerCellphoneAction(Players[playerid][pCaller], false); SendInfoMessage(Players[playerid][pCaller], "The other line has ended the call."); PlayerPlaySound(Players[playerid][pCaller], 20601, 0.0, 0.0, 0.0); if (Players[Players[playerid][pCaller]][pPayphone] != INVALID_ID) { ResetPayphone(Players[playerid][pCaller]); ShowActionBubble(Players[playerid][pCaller], "* %s hangs up the payphone.", ReturnNameEx(Players[playerid][pCaller])); } else { ShowActionBubble(Players[playerid][pCaller], "* %s hangs up the phone and puts it in their pocket.", ReturnNameEx(Players[playerid][pCaller])); } Players[Players[playerid][pCaller]][pCalling] = 0; Players[Players[playerid][pCaller]][pCaller] = INVALID_PLAYER_ID; } SetPlayerCellphoneAction(playerid, false); PlayerPlaySound(playerid, 20601, 0.0, 0.0, 0.0); Players[playerid][pDispatch] = 0; Players[playerid][pCalling] = 0; Players[playerid][pCaller] = INVALID_PLAYER_ID; if (Players[playerid][pPayphone] != INVALID_ID) { ResetPayphone(playerid); ShowActionBubble(playerid, "* %s hangs up the payphone.", ReturnNameEx(playerid)); } else { ShowActionBubble(playerid, "* %s hangs up the phone and puts it in their pocket.", ReturnNameEx(playerid)); } } } SendTextMessage(playerid, number, const text[]) { foreach (new i : Player) { if (number != 0 && Players[i][pPhone] == number) { if (Players[i][pPhoneOff]) { return SendErrorMessage(playerid, "That player's phone is turned off."); } else { SendFormatMessage(i, COLOR_YELLOW, "* Text from %i: %s", Players[playerid][pPhone], text); SendFormatMessage(playerid, COLOR_YELLOW, "* Text to %i: %s", number, text); return 1; } } } return SendErrorMessage(playerid, "The specified number is not in service."); } CallNumber(playerid, number, payphone = INVALID_ID) { if (Players[playerid][pCalling] > 0) { return SendErrorMessage(playerid, "You are already on a call."); } else if (Players[playerid][pPhone] == number) { return SendErrorMessage(playerid, "You can't dial your own number."); } else { new targetid = GetPhonePlayerID(number); if (IsValidPayphoneID(payphone)) { ShowActionBubble(playerid, "* %s inserts a coin and picks up the payphone.", ReturnNameEx(playerid)); AssignPayphone(playerid, payphone); } else { ShowActionBubble(playerid, "* %s takes out their phone and dials a number.", ReturnNameEx(playerid)); } if (IsPlayerConnected(targetid)) { if (Players[targetid][pPhoneOff]) { return SendClientMessage(playerid, COLOR_LIGHTGREY, "** The phone is switched off. The number would automatically forward to voicemail. **"); } else if (Players[targetid][pCalling] > 0) { return SendClientMessage(playerid, COLOR_LIGHTGREY, "** The other line is currently busy. **"); } else { Players[playerid][pCalling] = 1; Players[playerid][pCaller] = targetid; Players[targetid][pCalling] = 1; Players[targetid][pCaller] = playerid; if (IsValidPayphoneID(payphone)) { SendInfoMessage(targetid, "Payphone (%i) is attempting to call you (use /answer to answer).", Payphones[payphone][phNumber]); } else { SendInfoMessage(targetid, "Number %i is attempting to call you (use /answer to answer).", Players[playerid][pPhone]); } ShowActionBubble(targetid, "* %s's phone starts to ring.", ReturnNameEx(targetid)); HandlePhoneRing(targetid); } } else { new id = GetPhonePayphoneID(number); if (IsValidPayphoneID(id) && !Payphones[id][phOccupied]) { CallPayphone(playerid, id); } else { SetTimerEx("OnPhoneResponse", 3000, false, "ii", playerid, number); } Players[playerid][pCalling] = 1; } SetPlayerCellphoneAction(playerid, true); HandlePhoneDial(playerid); SendInfoMessage(playerid, "You have dialed number: %i. Please wait for a connection...", number); PlayerPlaySound(playerid, 16001, 0.0, 0.0, 0.0); } return 1; } ListContacts(playerid) { if (Players[playerid][pPhone] > 0) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_contacts WHERE Phone = %i", Players[playerid][pPhone]); mysql_tquery(gConnection, gExecute, "OnPlayerListContacts", "i", playerid); } } OpenPhone(playerid) { new strHead[128]; if (Players[playerid][pPhone] > 0) { format(strHead,sizeof(strHead),"{FFFFFF}Phone: %i",Players[playerid][pPhone]); Dialog_Show(playerid, PhoneMenu, DIALOG_STYLE_LIST, strHead, "Call\nSMS\nContacts\nMusic\nBank\nSettings", "Select", "Cancel"); } } EditAttachedObjectEx(playerid, type, index) { Players[playerid][pEdit] = type; return EditAttachedObject(playerid, index); } EditDynamicObjectEx(playerid, type, objectid, extraid = INVALID_ID) { Players[playerid][pEdit] = type; Players[playerid][pEditID] = extraid; return EditDynamicObject(playerid, objectid); } CancelObjectEdit(playerid) { Players[playerid][pEdit] = EDIT_TYPE_NONE; Players[playerid][pEditID] = INVALID_ID; return CancelEdit(playerid); } UpdateGasPump(id) { new string[128]; if (GasPumps[id][gpExists]) { DestroyDynamicObject(GasPumps[id][gpObject]); DestroyDynamic3DTextLabel(GasPumps[id][gpText]); format(string, sizeof(string), "{2B89DB}[Gas Station]:\n ID: %i\nGasoline: %.1f gallons\nUse /refuel to refill vehicle", id, GasPumps[id][gpFuel]); GasPumps[id][gpObject] = CreateDynamicObject(3465, GasPumps[id][gpSpawn][0], GasPumps[id][gpSpawn][1], GasPumps[id][gpSpawn][2], 0.0, 0.0, GasPumps[id][gpSpawn][3]); GasPumps[id][gpText] = CreateDynamic3DTextLabel(string, -1, GasPumps[id][gpSpawn][0], GasPumps[id][gpSpawn][1], GasPumps[id][gpSpawn][2], 3.0); } return 1; } SaveGasPump(id) { static queryString[200]; if (!GasPumps[id][gpExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_gaspumps SET gpX = %.4f, gpY = %.4f, gpZ = %.4f, gpA = %.4f, gpFuel = %.4f WHERE gpID = %i", GasPumps[id][gpSpawn][0], GasPumps[id][gpSpawn][1], GasPumps[id][gpSpawn][2], GasPumps[id][gpSpawn][3], GasPumps[id][gpFuel], GasPumps[id][gpID]); return mysql_tquery(gConnection, queryString); } GetClosestPump(playerid) { for (new i = 0; i < MAX_GAS_PUMPS; i ++) { if (GasPumps[i][gpExists] && IsPlayerInRangeOfPoint(playerid, 6.0, GasPumps[i][gpSpawn][0], GasPumps[i][gpSpawn][1], GasPumps[i][gpSpawn][2])) { return i; } } return INVALID_ID; } StopRefuel(playerid) { if (Players[playerid][pRefuel] != INVALID_ID) { new company = GetPumpCompany(Players[playerid][pRefuel]); if (IsValidCompanyID(company)) { GiveCompanyMoney(company, Players[playerid][pGasPrice]); } KillTimer(Timers[playerid][tRefuel]); SaveGasPump(Players[playerid][pRefuel]); RemoveMoney(playerid, Players[playerid][pGasPrice]); SendInfoMessage(playerid, "You have filled your vehicle for {33CC33}%s{FFFFFF}.", FormatNumber(Players[playerid][pGasPrice])); Players[playerid][pRefuel] = INVALID_ID; Players[playerid][pGasPrice] = 0; } return 1; } GetPumpCompany(id) { for (new i = 0; i < MAX_COMPANIES; i ++) { if (IsValidCompanyID(i) && Companies[i][cID] == GasPumps[id][gpCompany]) { return i; } } return INVALID_ID; } AddATMMachine(Float:x, Float:y, Float:z, Float:angle, interior, world) { new id = GetNextATMID(); if (id != INVALID_ID) { ATM[id][atmExists] = 1; ATM[id][atmSpawn][0] = x; ATM[id][atmSpawn][1] = y; ATM[id][atmSpawn][2] = z; ATM[id][atmSpawn][3] = angle; ATM[id][atmInterior] = interior; ATM[id][atmWorld] = world; ATM[id][atmObject] = INVALID_OBJECT_ID; ATM[id][atmText] = INVALID_3DTEXT_ID; UpdateATM(id); format(gExecute, sizeof(gExecute), "INSERT INTO rp_atms (atmInterior) VALUES(%i)", interior); mysql_tquery(gConnection, gExecute, "OnATMAdded", "i", id); } return id; } AddGasPump(company, Float:x, Float:y, Float:z, Float:angle) { new id = GetNextGasPumpID(); if (id != INVALID_ID) { GasPumps[id][gpExists] = 1; GasPumps[id][gpCompany] = Companies[company][cID]; GasPumps[id][gpSpawn][0] = x; GasPumps[id][gpSpawn][1] = y; GasPumps[id][gpSpawn][2] = z; GasPumps[id][gpSpawn][3] = angle + 90.0; GasPumps[id][gpFuel] = 5000.0; GasPumps[id][gpObject] = INVALID_OBJECT_ID; GasPumps[id][gpText] = INVALID_3DTEXT_ID; UpdateGasPump(id); format(gExecute, sizeof(gExecute), "INSERT INTO rp_gaspumps (gpCompany) VALUES(%i)", GasPumps[id][gpCompany]); mysql_tquery(gConnection, gExecute, "OnGasPumpAdded", "i", id); } return id; } ShowTrunkMenu(playerid, vehicle) { new string[128]; if (!IsValidVehicleID(vehicle)) return 0; format(string, sizeof(string), "Money: {00FF00}%s{FFFFFF}\nView Items", FormatNumber(Vehicles[vehicle][vTrunkMoney])); Dialog_Show(playerid, VehicleTrunk, DIALOG_STYLE_LIST, "{FFFFFF}Trunk menu", string, "Select", "Cancel"); return 1; } DeleteVehicle(id) { if (!IsValidVehicleID(id)) { return 0; } format(gExecute, sizeof(gExecute), "DELETE FROM rp_vehicles WHERE vID = %i", Vehicles[id][vID]); mysql_tquery(gConnection, gExecute); ClearTrunkItems(id); ResetVehicle(id); return 1; } AddVehicle(company, model, price, Float:x, Float:y, Float:z, Float:angle, color1, color2, playerid = INVALID_PLAYER_ID, faction = INVALID_ID, bool:rentable = false, bool:despawned = false) { new id = GetNextVehicleID(); if (id != INVALID_ID) { if(rentable == true) { format(Vehicles[id][vPlate], 45, "RENTAL%i", id); } else format(Vehicles[id][vPlate], 32, "%c%c%c %i", Random('A', 'Z'), Random('A', 'Z'), Random('A', 'Z'), Random(100, 999)); format(Vehicles[id][vRegistered], 32, GetDateAndTime()); for (new i = 0; i < 14; i ++) { Vehicles[id][vMods][i] = 0; } Vehicles[id][vExists] = 1; Vehicles[id][vCompany] = 0; Vehicles[id][vModel] = model; Vehicles[id][vPrice] = price; Vehicles[id][vRentable] = 0; Vehicles[id][vOwner] = 0; Vehicles[id][vSpawn][0] = x; Vehicles[id][vSpawn][1] = y; Vehicles[id][vSpawn][2] = z; Vehicles[id][vSpawn][3] = angle; Vehicles[id][vColor1] = color1; Vehicles[id][vColor2] = color2; Vehicles[id][vPaintjob] = INVALID_ID; Vehicles[id][vLocked] = 0; Vehicles[id][vTrunkMoney] = 0; Vehicles[id][vFaction] = 0; Vehicles[id][vSiren] = 0; Vehicles[id][vAlarm] = 0; Vehicles[id][vImpound] = 0; Vehicles[id][vDespawned] = despawned; Vehicles[id][vRentable] = rentable; Vehicles[id][vText] = INVALID_3DTEXT_ID; Vehicles[id][vVehicle] = INVALID_VEHICLE_ID; Vehicles[id][vRenter] = INVALID_PLAYER_ID; if (IsPlayerConnected(playerid) && IsPlayerLoggedIn(playerid)) { Vehicles[id][vOwner] = Players[playerid][pID]; } if (IsValidCompanyID(company) && Companies[company][cType] == COMPANY_RENTALS) { Vehicles[id][vCompany] = Companies[company][cID]; } if (IsValidFactionID(faction)) { Vehicles[id][vFaction] = Factions[faction][fcID]; } UpdateVehicle(id); format(gExecute, sizeof(gExecute), "INSERT INTO rp_vehicles (vModel) VALUES(%i)", model); mysql_tquery(gConnection, gExecute, "OnVehicleAdded", "i", id); } return id; } DiscardWeapon(playerid, type) { if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { return SendErrorMessage(playerid, "You must be onfoot to discard weapons."); } switch (type) { case WEAPON_MELEE: { if (!Weapons[playerid][wMelee]) { SendErrorMessage(playerid, "You don't have a weapon in that slot."); } else { SendInfoMessage(playerid, "You have dropped your %s.", GetWeapon(Weapons[playerid][wMelee])); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); if (Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) { SetPlayerWeapon(playerid, WEAPON_MELEE, 0); SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground."); } else { DropWeapon(playerid, Weapons[playerid][wMelee]); } } } case WEAPON_PRIMARY: { if (!Weapons[playerid][wPrimary]) { SendErrorMessage(playerid, "You don't have a weapon in that slot."); } else { SendInfoMessage(playerid, "You have dropped your %s (%i ammo).", GetWeapon(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo]); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); if (Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) { SetPlayerWeapon(playerid, WEAPON_PRIMARY, 0); SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground."); } else { DropWeapon(playerid, Weapons[playerid][wPrimary], Weapons[playerid][wPrimaryAmmo]); } } } case WEAPON_SECONDARY: { if (!Weapons[playerid][wSecondary]) { SendErrorMessage(playerid, "You don't have a weapon in that slot."); } else { SendInfoMessage(playerid, "You have dropped your %s (%i ammo).", GetWeapon(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo]); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); if (Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) { SetPlayerWeapon(playerid, WEAPON_SECONDARY, 0); SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground."); } else { DropWeapon(playerid, Weapons[playerid][wSecondary], Weapons[playerid][wSecondaryAmmo]); } } } case WEAPON_TERTIARY: { if (!Weapons[playerid][wTertiary]) { SendErrorMessage(playerid, "You don't have a weapon in that slot."); } else { SendInfoMessage(playerid, "You have dropped your %s (%i ammo).", GetWeapon(Weapons[playerid][wTertiary]), Weapons[playerid][wTertiaryAmmo]); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); if (Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) { SetPlayerWeapon(playerid, WEAPON_TERTIARY, 0); SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground."); } else { DropWeapon(playerid, Weapons[playerid][wTertiary], Weapons[playerid][wTertiaryAmmo]); } } } } return 1; } ListBankTransfers(playerid) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_transfers WHERE Player = %i", Players[playerid][pID]); mysql_tquery(gConnection, gExecute, "OnPlayerViewTransfers", "i", playerid); } ShowBankAccountMenu(playerid, id) { new string[64]; if (!BankAccounts[playerid][id][bankExists]) { return 0; } Players[playerid][pBank] = id; format(string, sizeof(string), "{FFFFFF}%s", BankAccounts[playerid][id][bankName]); Dialog_Show(playerid, BankMenu, DIALOG_STYLE_LIST, string, "Withdraw (%s)\nDeposit\nTransfer\nPaycheck (%s)\nCollect Transfers\nClose Account", "Select", "Cancel", FormatNumber(BankAccounts[playerid][id][bankBalance]), FormatNumber(Players[playerid][pPaycheck])); return 1; } ShowBankAccounts(playerid, type) { new displayString[MAX_BANK_ACCOUNTS * 50], index = 0 ; displayString = "Name\tBalance\n"; if (type == BANK_ACCESS_MENU) { strcat(displayString, "New Account"); } for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++) { if (BankAccounts[playerid][i][bankExists]) { format(displayString, sizeof(displayString), "%s\n%s\t%s", displayString, BankAccounts[playerid][i][bankName], FormatNumber(BankAccounts[playerid][i][bankBalance])); gListedItems[playerid][index++] = i; } } switch (type) { case BANK_ACCESS_MENU: { return Dialog_Show(playerid, BankAccounts, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Bank accounts", displayString, "Select", "Cancel"); } case BANK_ATM_MENU: { if (index) { return Dialog_Show(playerid, ATMSelect, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Bank accounts", displayString, "Select", "Cancel"); } } case BANK_PAYMENT_TYPE: { if (index) { return Dialog_Show(playerid, PaymentAccount, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Select account", displayString, "Select", "Cancel"); } } } return 0; } CheckBank(playerid, targetid) { new displayString[MAX_BANK_ACCOUNTS * 50], index = 0 ; displayString = "Name\tBalance\n"; for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++) { if (BankAccounts[targetid][i][bankExists]) { format(displayString, sizeof(displayString), "%s\n%s\t%s", displayString, BankAccounts[targetid][i][bankName], FormatNumber(BankAccounts[targetid][i][bankBalance])); gListedItems[playerid][index++] = i; } } return Dialog_Show(playerid, aBankAccounts, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Bank accounts", displayString, "","Exit"); } SaveBankAccount(playerid, id) { static queryString[200]; if (!BankAccounts[playerid][id][bankExists]) { return 0; } format(queryString, sizeof(queryString), "UPDATE rp_bankaccounts SET bankName = '%s', bankBalance = %i WHERE bankID = %i", mysql_escaped(BankAccounts[playerid][id][bankName]), BankAccounts[playerid][id][bankBalance], BankAccounts[playerid][id][bankID]); return mysql_tquery(gConnection, queryString); } GetPrimaryBankAccount(playerid) { for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++) { if (BankAccounts[playerid][i][bankExists] && BankAccounts[playerid][i][bankID] == Players[playerid][pBankAccount]) { return i; } } return INVALID_ID; } AddBankAccount(playerid, const name[]) { new id = GetNextBankAccountID(playerid); if (id != INVALID_ID) { strcpy(BankAccounts[playerid][id][bankName], name, 32); BankAccounts[playerid][id][bankExists] = 1; BankAccounts[playerid][id][bankBalance] = 0; format(gExecute, sizeof(gExecute), "INSERT INTO rp_bankaccounts (ID) VALUES(%i)", Players[playerid][pID]); mysql_tquery(gConnection, gExecute, "OnBankAccountAdded", "ii", playerid, id); } return id; } OnPlayerExitTaxi(playerid) { if (Players[playerid][pInsideTaxi] != INVALID_PLAYER_ID) { SendInfoMessage(playerid, "You have arrived to your destination for {33CC33}%s{FFFFFF}.", FormatNumber(Players[playerid][pTaxiMeter]*Players[Players[playerid][pInsideTaxi]][pTaxiFare])); SendInfoMessage(Players[playerid][pInsideTaxi], "You have received {33CC33}%s{FFFFFF} on your paycheck.", FormatNumber(Players[playerid][pTaxiMeter]*Players[Players[playerid][pInsideTaxi]][pTaxiFare])); RemoveMoney(playerid, Players[playerid][pTaxiMeter]*Players[Players[playerid][pInsideTaxi]][pTaxiFare]); Players[Players[playerid][pInsideTaxi]][pJobPaycheck] += Players[playerid][pTaxiMeter]*Players[Players[playerid][pInsideTaxi]][pTaxiFare]; ResetTaxi(playerid); } } ResetTaxi(playerid) { if (Players[playerid][pInsideTaxi] != INVALID_PLAYER_ID) { Players[Players[playerid][pInsideTaxi]][pPassenger] = 0; Players[playerid][pInsideTaxi] = INVALID_PLAYER_ID; Players[playerid][pTaxiMeter] = 0; Players[playerid][pTaxiTime] = 0; } } IsAdvertisementActive(playerid) { return ispacked(gAdvertisement[playerid]); } IsHelpRequestActive(playerid) { return ispacked(gHelpRequest[playerid]); } ResetAdvertisement(playerid) { gAdvertisement[playerid]{0} = 0; } ResetHelpRequest(playerid) { gHelpRequest[playerid]{0} = 0; } PlayerHasLeadership(playerid) { return (Players[playerid][pFactionRank] >= Factions[Players[playerid][pFaction]][fcMaxRanks] - 1 || Players[playerid][pFactionLeader]); } SetPlayerFaction(playerid, faction, rank) { if (IsValidFactionID(faction)) { Players[playerid][pFaction] = faction; Players[playerid][pFactionID] = Factions[faction][fcID]; Players[playerid][pFactionRank] = rank; if (rank >= Factions[faction][fcMaxRanks] - 1) { Players[playerid][pFactionLeader] = 1; } else { Players[playerid][pFactionLeader] = 0; } if(GetPlayerFactionType(playerid) == FACTION_LEO) { //Players[playerid][pBadge] = 100 + random(999) + Players[playerid][pID]; Players[playerid][pBadge] = Random(100, 9999); } else { Players[playerid][pBadge] = 0; } SaveAccount(playerid); } } ResetFactionInfo(playerid) { RemoveEquipment(playerid); Players[playerid][pFaction] = INVALID_ID; Players[playerid][pFactionID] = 0; Players[playerid][pFactionRank] = 0; Players[playerid][pFactionLeader] = 0; } SetCheckpoint(playerid, type, Float:x, Float:y, Float:z, Float:size) { Players[playerid][pCheckpoint] = type; SetCheckpointsForPlayer(playerid); DisablePlayerCheckpoint(playerid); SetPlayerCheckpoint(playerid, x, y, z, size); } ResetCheckpoint(playerid) { Players[playerid][pCheckpoint] = CHECKPOINT_NONE; DisablePlayerCheckpoint(playerid); } SetCheckpointsForPlayer(playerid) { if (Players[playerid][pWorking] || Players[playerid][pCheckpoint] != CHECKPOINT_NONE || Players[playerid][pDrivingTest]) TogglePlayerAllDynamicCPs(playerid, false); else TogglePlayerAllDynamicCPs(playerid, true); } VehicleStereoUpdate(playerid) { new vehicleid = GetPlayerVehicleID(playerid), string[255] ; if (Players[playerid][pStereoPlayerID] != INVALID_PLAYER_ID) { Players[playerid][pStereoPlayerID] = INVALID_PLAYER_ID; StopAudioStreamForPlayer(playerid); } if (IsValidVehicle(vehicleid) && Players[playerid][pVehicleStream] != vehicleid) { strunpack(string, VehicleInformation[vehicleid][vStream]); if (strcmp(string, "Not Specified") != 0) { PlayAudioStreamForPlayer(playerid, string); Players[playerid][pVehicleStream] = vehicleid; } } else if (Players[playerid][pVehicleStream] != INVALID_PLAYER_ID && !IsPlayerInVehicle(playerid, Players[playerid][pVehicleStream])) { Players[playerid][pVehicleStream] = INVALID_VEHICLE_ID; StopAudioStreamForPlayer(playerid); } } StereoUpdate(playerid) { new targetid = GetNearbyStereoPlayerID(playerid), string[255] ; if (Players[playerid][pVehicleStream] != INVALID_VEHICLE_ID) { Players[playerid][pVehicleStream] = INVALID_VEHICLE_ID; StopAudioStreamForPlayer(playerid); } if (targetid != INVALID_PLAYER_ID && Players[playerid][pStereoPlayerID] != targetid) { strunpack(string, Stereos[targetid][pStereoURL]); if (strcmp(string, "Not Specified") != 0) { PlayAudioStreamForPlayer(playerid, string, Stereos[targetid][pStereoX], Stereos[targetid][pStereoY], Stereos[targetid][pStereoZ], 50.0, true); Players[playerid][pStereoPlayerID] = targetid; } } else if (Players[playerid][pStereoPlayerID] != INVALID_PLAYER_ID && Players[playerid][pStereoPlayerID] != targetid) { Players[playerid][pStereoPlayerID] = INVALID_PLAYER_ID; StopAudioStreamForPlayer(playerid); } } ResetPayphone(playerid) { if (Players[playerid][pPayphone] != INVALID_ID) { Payphones[Players[playerid][pPayphone]][phOccupied] = 0; UpdatePayphoneText(Players[playerid][pPayphone]); } Players[playerid][pPayphone] = INVALID_ID; } GetNearbyStereoPlayerID(playerid) { foreach (new i : Player) { if (Stereos[i][pStereoID] != INVALID_ID && IsPlayerNearPoint(playerid, 50.0, Stereos[i][pStereoX], Stereos[i][pStereoY], Stereos[i][pStereoZ], Stereos[i][pStereoInterior], Stereos[i][pStereoWorld])) { return i; } } return INVALID_PLAYER_ID; } PickupStereo(playerid) { ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); ShowActionBubble(playerid, "* %s picks up their stereo and turns it off.", ReturnNameEx(playerid)); ResetStereo(playerid); SendInfoMessage(playerid, "You have picked up your stereo."); } ResetStereo(playerid) { if (Stereos[playerid][pStereoID] != INVALID_ID) { DestroyDynamic3DTextLabel(Stereos[playerid][pStereoText]); DestroyDynamicObject(Stereos[playerid][pStereoObject]); } Stereos[playerid][pStereoID] = INVALID_ID; Stereos[playerid][pStereoX] = 0.0; Stereos[playerid][pStereoY] = 0.0; Stereos[playerid][pStereoZ] = 0.0; Stereos[playerid][pStereoInterior] = 0; Stereos[playerid][pStereoWorld] = 0; Stereos[playerid][pStereoObject] = INVALID_OBJECT_ID; Stereos[playerid][pStereoText] = INVALID_3DTEXT_ID; } ResetPlayer(playerid) { Players[playerid][pSession] = 0; Players[playerid][pSessionCaller] = -1; if (Players[playerid][pWorkout] != WORKOUT_NONE) { StopWorkout(playerid); } if (Players[playerid][pHotwire] != INVALID_VEHICLE_ID) { Players[playerid][pHotwire] = INVALID_VEHICLE_ID; Players[playerid][pHotwireTime] = 0; } if (Players[playerid][pSetPosition]) { Players[playerid][pSetPosition] = 0; } if (Players[playerid][pFurnitureMenu]) { HideFurniturePreviewer(playerid); } if (Players[playerid][pAccessoryMenu]) { HideAccessoryPreviewer(playerid); } if (Players[playerid][pOutfitIndex] != INVALID_ID) { CancelOutfitSelection(playerid); } if (Players[playerid][pHouseEdit] != INVALID_ID) { SetFurnitureEditMode(Players[playerid][pHouseEdit], false); Players[playerid][pHouseEdit] = INVALID_ID; } if (Players[playerid][pCarConfirm] != INVALID_ID) { Players[playerid][pCarConfirm] = INVALID_ID; } if (Players[playerid][pRefuel] != INVALID_ID) { StopRefuel(playerid); } if (Players[playerid][pHandcuffed]) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); } if (Players[playerid][pCalling] > 0) { HangupCall(playerid); } if (Players[playerid][pMaskID] > 0) { Players[playerid][pMaskID] = 0; UpdateMaskForPlayer(playerid); } for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) PoliceObjects[playerid][i] = INVALID_OBJECT_ID; StopWorking(playerid); StopPicking(playerid); StopRepairing(playerid); ResetWeapons(playerid); ResetPayphone(playerid); CancelEdit(playerid); SetPlayerArmedWeapon(playerid, 0); Players[playerid][pFlashOn] = 0; Players[playerid][pSitting] = 0; Players[playerid][pEdit] = EDIT_TYPE_NONE; Players[playerid][pBleeding] = 0; Players[playerid][pBleedingTime] = 0; Players[playerid][pMedicKit] = 0; Players[playerid][pPainkillers] = 0; Players[playerid][pTazer] = 0; Players[playerid][pTazed] = 0; Players[playerid][pHandcuffed] = 0; Players[playerid][pCuffedBy] = INVALID_PLAYER_ID; Players[playerid][pAnimation] = 0; Players[playerid][pSelectUniform] = 0; Players[playerid][pDealershipMenu] = INVALID_ID; Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pCallTaxi] = 0; Players[playerid][pSprayTag] = INVALID_ID; Players[playerid][pBrokenLeg] = 0; Players[playerid][pChatting] = 0; Players[playerid][pAutoShop] = INVALID_ID; Players[playerid][pMining] = 0; } SetAttachedObject(playerid, modelid, bone, Float:x = 0.0, Float:y = 0.0, Float:z = 0.0, Float:rx = 0.0, Float:ry = 0.0, Float:rz = 0.0, Float:sx = 1.0, Float:sy = 1.0, Float:sz = 1.0, materialcolor1 = 0, materialcolor2 = 0) { for (new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i ++) { if (!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, modelid, bone, x, y, z, rx, ry, rz, sx, sy, sz, materialcolor1, materialcolor2); return i; } } return INVALID_ID; } StopWorkout(playerid) { if (Players[playerid][pWorkout] != WORKOUT_NONE) { HidePlayerProgressBar(playerid, Players[playerid][pBars][0]); HidePlayerTextDraws(playerid, 58, 62); SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1); KillTimer(Timers[playerid][tWorkout]); switch (Players[playerid][pWorkout]) { case WORKOUT_DUMBELLS: { Players[playerid][pWeight] = 0; Players[playerid][pReps] = 0; PlayerPlaySound(playerid, 17807, 0.0, 0.0, 0.0); RemovePlayerAttachedObject(playerid, gWeights[playerid][0]); RemovePlayerAttachedObject(playerid, gWeights[playerid][1]); } case WORKOUT_TREADMILL: { Players[playerid][pSpeedLevel] = 0; Players[playerid][pDistanceRan] = 0; PlayerPlaySound(playerid, 17808, 0.0, 0.0, 0.0); } } Players[playerid][pWorkout] = WORKOUT_NONE; } return 1; } WorkoutUpdate(playerid) { if (Players[playerid][pWorkout] != WORKOUT_NONE) { new Float:value = GetPlayerProgressBarValue(playerid, Players[playerid][pBars][0]); switch (Players[playerid][pWorkout]) { case WORKOUT_DUMBELLS: { switch (Players[playerid][pWeight]) { case 20..60: { ApplyAnimation(playerid, "Freeweights", "gym_free_A", 4.1, 0, 0, 0, 0, 0, 1); } case 70..110: { ApplyAnimation(playerid, "Freeweights", "gym_free_B", 4.1, 0, 0, 0, 0, 0, 1); } } if (value < 90.0) { AddPowerToMeter(playerid); } else { Players[playerid][pReps]++; Statistics[playerid][sTotalReps]++; if (Players[playerid][pFitness] < 100 && (Players[playerid][pReps] % ((120 - Players[playerid][pWeight]) / 5)) == 0) { AddFitnessForPlayer(playerid); } SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], 0.0); PlayerTextDrawFormatString(playerid, Players[playerid][pText][60], "%i", Players[playerid][pReps]); ApplyAnimation(playerid, "Freeweights", "gym_free_down", 4.1, 0, 0, 0, 0, 0, 1); ApplyAnimation(playerid, "Freeweights", "gym_free_down", 4.1, 0, 0, 0, 0, 0, 1); if (Players[playerid][pReps] == 50 && !Players[playerid][pGymMembership]) { Players[playerid][pWorkoutTime] = gettime() + 43200; StopWorkout(playerid); ShowFooterText(playerid, "You have reached your limit for today!"); ApplyAnimation(playerid, "Freeweights", "gym_free_putdown", 4.1, 0, 0, 0, 0, 0, 1); } } } case WORKOUT_TREADMILL: { Players[playerid][pDistanceRan] = Players[playerid][pDistanceRan] + 1; Statistics[playerid][sDistanceRan]++; SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + (Players[playerid][pSpeedLevel] + 12)); PlayerTextDrawFormatString(playerid, Players[playerid][pText][62], "%i", Players[playerid][pDistanceRan]); if (Players[playerid][pFitness] < 100 && (Players[playerid][pDistanceRan] % 100) == 0) { AddFitnessForPlayer(playerid); } if (Players[playerid][pDistanceRan] == 200 && !Players[playerid][pGymMembership]) { Players[playerid][pWorkoutTime] = gettime() + 43200; StopWorkout(playerid); ShowFooterText(playerid, "You have reached your limit for today!"); ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_getoff", 4.1, 0, 0, 0, 0, 0, 1); } } } } return 1; } AddPowerToMeter(playerid) { new Float:value = GetPlayerProgressBarValue(playerid, Players[playerid][pBars][0]); switch (Players[playerid][pWeight]) { case 20: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 22.0); case 30: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 20.5); case 40: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 19.0); case 50: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 18.0); case 60: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 16.0); case 70: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 14.0); case 80: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 12.0); case 90: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 10.0); case 100: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 8.0); case 110: SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value + 6.0); } } SetReloadAnimation(playerid, weaponid) { switch (weaponid) { case 22: { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) ApplyAnimation(playerid, "COLT45", "colt45_crouchreload", 4.1, 0, 0, 0, 0, 0, 1); else ApplyAnimation(playerid, "COLT45", "colt45_reload", 4.1, 0, 0, 0, 0, 0, 1); } case 23: { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) ApplyAnimation(playerid, "SILENCED", "CrouchReload", 4.1, 0, 0, 0, 0, 0, 1); else ApplyAnimation(playerid, "SILENCED", "Silence_reload", 4.1, 0, 0, 0, 0, 0, 1); } case 24: { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) ApplyAnimation(playerid, "PYTHON", "python_crouchreload", 4.1, 0, 0, 0, 0, 0, 1); else ApplyAnimation(playerid, "PYTHON", "python_reload", 4.1, 0, 0, 0, 0, 0, 1); } case 25: { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) ApplyAnimation(playerid, "BUDDY", "buddy_crouchreload", 4.1, 0, 0, 0, 0, 0, 1); else ApplyAnimation(playerid, "BUDDY", "buddy_reload", 4.1, 0, 0, 0, 0, 0, 1); } case 26: { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) ApplyAnimation(playerid, "COLT45", "colt45_crouchreload", 4.1, 0, 0, 0, 0, 0, 1); else ApplyAnimation(playerid, "COLT45", "sawnoff_reload", 4.1, 0, 0, 0, 0, 0, 1); } case 27: { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) ApplyAnimation(playerid, "BUDDY", "buddy_crouchreload", 4.1, 0, 0, 0, 0, 0, 1); else ApplyAnimation(playerid, "BUDDY", "buddy_reload", 4.1, 0, 0, 0, 0, 0, 1); } case 28: { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) ApplyAnimation(playerid, "UZI", "UZI_crouchreload", 4.1, 0, 0, 0, 0, 0, 1); else ApplyAnimation(playerid, "UZI", "UZI_reload", 4.1, 0, 0, 0, 0, 0, 1); } case 29, 30, 31, 33, 34: { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) ApplyAnimation(playerid, "RIFLE", "RIFLE_crouchload", 4.1, 0, 0, 0, 0, 0, 1); else ApplyAnimation(playerid, "RIFLE", "RIFLE_load", 4.1, 0, 0, 0, 0, 0, 1); } case 32: { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) ApplyAnimation(playerid, "TEC", "TEC_crouchreload", 4.1, 0, 0, 0, 0, 0, 1); else ApplyAnimation(playerid, "TEC", "TEC_reload", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } SetCheckpointForPackage(playerid) { if (IsValidPlayerObject(playerid, Players[playerid][pPackage])) { DestroyPlayerObject(playerid, Players[playerid][pPackage]); } Players[playerid][pPackage] = INVALID_OBJECT_ID; SendInfoMessage(playerid, "The package can be found at the checkpoint on your mini-map."); ShowFooterText(playerid, "Go to the marker to pickup your ~r~package~w~."); switch (random(3)) { case 0: { SetCheckpoint(playerid, CHECKPOINT_PACKAGE, 1550.09, -27.9456, 20.5695, 1.5); Players[playerid][pPackage] = CreatePlayerObject(playerid, 3014, 1550.09, -27.9456, 20.5695, 0.0, 0.0, 0.0); } case 1: { SetCheckpoint(playerid, CHECKPOINT_PACKAGE, 1357.66, 1042.88, 10.0403, 1.5); Players[playerid][pPackage] = CreatePlayerObject(playerid, 3014, 1357.66, 1042.88, 10.0403, 0.0, 0.0, 0.0); } case 2: { SetCheckpoint(playerid, CHECKPOINT_PACKAGE, -124.091, 1077.85, 19.009, 1.5); Players[playerid][pPackage] = CreatePlayerObject(playerid, 3014, -124.091, 1077.85, 19.009, 0.0, 0.0, 0.0); } } } IsItemWeapon(item[]) { new modelid = GetItemInformation(item, ITEM_INFO_MODEL); if(modelid) { for(new i = 0; i < sizeof(g_WeaponInfo); i ++) { if(g_WeaponInfo[i][e_WeaponModel] == modelid) { return true; } } } return false; } GetWeaponItemName(weaponid) { new string[32]; for (new i = 0; i < sizeof(g_ItemList); i ++) { if (g_ItemList[i][e_ItemModel] == g_WeaponInfo[weaponid][e_WeaponModel]) { strcpy(string, g_ItemList[i][e_ItemName]); } } return string; } UpdateWeaponOffset(playerid, slot) { new index = 0; if (slot == WEAPON_MELEE) { index = ATTACHED_SLOT_MELEE; } else if (slot == WEAPON_PRIMARY) { index = ATTACHED_SLOT_PRIMARY; } else if (slot == WEAPON_SECONDARY) { index = ATTACHED_SLOT_SECONDARY; } else if (slot == WEAPON_TERTIARY) { index = ATTACHED_SLOT_TERTIARY; } RemovePlayerAttachedObject(playerid, index); UpdateWeaponHolster(playerid); } UpdateWeaponHolster(playerid) { new weaponid = GetPlayerWeapon(playerid), type; if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_MELEE) && weaponid == Weapons[playerid][wMelee]) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MELEE); } else if (weaponid != Weapons[playerid][wMelee] && !IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_MELEE) && IsHolsterWeapon(Weapons[playerid][wMelee])) { type = GetWeaponOffsetType(Weapons[playerid][wMelee]); if (!WeaponOffsets[playerid][type][wBoneID]) { SetDefaultWeaponOffset(playerid, Weapons[playerid][wMelee]); } if (!WeaponOffsets[playerid][type][wHidden]) { SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MELEE, g_WeaponInfo[Weapons[playerid][wMelee]][e_WeaponModel], WeaponOffsets[playerid][type][wBoneID], WeaponOffsets[playerid][type][wOffsetX], WeaponOffsets[playerid][type][wOffsetY], WeaponOffsets[playerid][type][wOffsetZ], WeaponOffsets[playerid][type][wOffsetRX], WeaponOffsets[playerid][type][wOffsetRY], WeaponOffsets[playerid][type][wOffsetRZ]); } } if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_PRIMARY) && weaponid == Weapons[playerid][wPrimary]) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_PRIMARY); } else if (weaponid != Weapons[playerid][wPrimary] && !IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_PRIMARY) && IsHolsterWeapon(Weapons[playerid][wPrimary])) { type = GetWeaponOffsetType(Weapons[playerid][wPrimary]); if (!WeaponOffsets[playerid][type][wBoneID]) { SetDefaultWeaponOffset(playerid, Weapons[playerid][wPrimary]); } if (!WeaponOffsets[playerid][type][wHidden]) { SetPlayerAttachedObject(playerid, ATTACHED_SLOT_PRIMARY, g_WeaponInfo[Weapons[playerid][wPrimary]][e_WeaponModel], WeaponOffsets[playerid][type][wBoneID], WeaponOffsets[playerid][type][wOffsetX], WeaponOffsets[playerid][type][wOffsetY], WeaponOffsets[playerid][type][wOffsetZ], WeaponOffsets[playerid][type][wOffsetRX], WeaponOffsets[playerid][type][wOffsetRY], WeaponOffsets[playerid][type][wOffsetRZ]); } } if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_SECONDARY) && weaponid == Weapons[playerid][wSecondary]) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_SECONDARY); } else if (weaponid != Weapons[playerid][wSecondary] && !IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_SECONDARY) && IsHolsterWeapon(Weapons[playerid][wSecondary])) { type = GetWeaponOffsetType(Weapons[playerid][wSecondary]); if (!WeaponOffsets[playerid][type][wBoneID]) { SetDefaultWeaponOffset(playerid, Weapons[playerid][wSecondary]); } if (!WeaponOffsets[playerid][type][wHidden]) { SetPlayerAttachedObject(playerid, ATTACHED_SLOT_SECONDARY, g_WeaponInfo[Weapons[playerid][wSecondary]][e_WeaponModel], WeaponOffsets[playerid][type][wBoneID], WeaponOffsets[playerid][type][wOffsetX], WeaponOffsets[playerid][type][wOffsetY], WeaponOffsets[playerid][type][wOffsetZ], WeaponOffsets[playerid][type][wOffsetRX], WeaponOffsets[playerid][type][wOffsetRY], WeaponOffsets[playerid][type][wOffsetRZ]); } } if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_TERTIARY) && weaponid == Weapons[playerid][wTertiary]) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_TERTIARY); } else if (weaponid != Weapons[playerid][wTertiary] && !IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_TERTIARY) && IsHolsterWeapon(Weapons[playerid][wTertiary])) { type = GetWeaponOffsetType(Weapons[playerid][wTertiary]); if (!WeaponOffsets[playerid][type][wBoneID]) { SetDefaultWeaponOffset(playerid, Weapons[playerid][wTertiary]); } if (!WeaponOffsets[playerid][type][wHidden]) { SetPlayerAttachedObject(playerid, ATTACHED_SLOT_TERTIARY, g_WeaponInfo[Weapons[playerid][wTertiary]][e_WeaponModel], WeaponOffsets[playerid][type][wBoneID], WeaponOffsets[playerid][type][wOffsetX], WeaponOffsets[playerid][type][wOffsetY], WeaponOffsets[playerid][type][wOffsetZ], WeaponOffsets[playerid][type][wOffsetRX], WeaponOffsets[playerid][type][wOffsetRY], WeaponOffsets[playerid][type][wOffsetRZ]); } } return 1; } OnPlayerPurchaseItem(playerid, item[], company, product) { new price = Products[company][product][prPrice]; if (!IsValidCompanyID(company)) { return 0; } else if (Products[company][product][prStock] == 0) { return SendErrorMessage(playerid, "This item is out of stock."); } else if (!PlayerCanAfford(playerid, Products[company][product][prPrice])) { return SendErrorMessage(playerid, "You cannot afford this item."); } else { if (!strcmp(item, "SIM Card")) { new number = (100000 + random(899999)); for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++) { if (Inventory[playerid][i][invExists] && !strcmp(Inventory[playerid][i][invName], "Mobile Phone") && !Inventory[playerid][i][invValue]) { SetItemValue(playerid, i, number); SendInfoMessage(playerid, "Your new number is %i. You can find your phone in your inventory.", number); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a SIM Card, number %i.", ReturnName(playerid), number); CreateLog("purchase", log); return 1; } } SendErrorMessage(playerid, "You must purchase a mobile phone first."); } else if (!strcmp(item, "Mobile Phone")) { if (!IsSufficientSpace(playerid, "Mobile Phone")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Mobile Phone"); SendInfoMessage(playerid, "You have purchased a mobile phone for {33CC33}%s{FFFFFF}. Buy a SIM card to activate it.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a phone.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Membership")) { if (Players[playerid][pGymMembership]) { SendErrorMessage(playerid, "You already have one!"); } else { Players[playerid][pGymMembership] = 1; Players[playerid][pWorkoutTime] = 0; SendInfoMessage(playerid, "You have purchased a membership! You now have unlimited access to the equipment."); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a Gym Membership.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Protein Shake")) { if (GetPlayerHealthEx(playerid) >= 100.0) { SendErrorMessage(playerid, "You don't need this right now."); } else { GivePlayerHealth(playerid, 20.0); ApplyAnimation(playerid, "BAR", "dnk_stndM_loop", 4.1, 0, 0, 0, 0, 0); SendInfoMessage(playerid, "You have purchased a protein shake for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a Protein Shake.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Outfit")) { if (IsPlayerSelectingOutfit(playerid)) { SendErrorMessage(playerid, "You are already selecting an outfit."); } else { Players[playerid][pBuyOutfit] = company; TogglePlayerControllable(playerid, 0); SavePositionAndHealth(playerid); FadeScreenForPlayer(playerid, FADE_BUY_OUTFIT); } } else if (!strcmp(item, "Glasses")) { ShowAccessoryPreviewer(playerid, ACCESSORY_GLASSES); Players[playerid][pSelected] = product; } else if (!strcmp(item, "Bandanas")) { ShowAccessoryPreviewer(playerid, ACCESSORY_BANDANAS); Players[playerid][pSelected] = product; } else if (!strcmp(item, "Hats")) { ShowAccessoryPreviewer(playerid, ACCESSORY_HATS); Players[playerid][pSelected] = product; } else if (!strcmp(item, "Bags")) { ShowAccessoryPreviewer(playerid, ACCESSORY_BAGS); Players[playerid][pSelected] = product; } else if (!strcmp(item, "Toolbox")) { if (!IsSufficientSpace(playerid, "Toolbox")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Toolbox"); SendInfoMessage(playerid, "You have purchased a toolbox for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a toolbox.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Stereo")) { if (!IsSufficientSpace(playerid, "Stereo")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else if (Players[playerid][pHoursOnline] < 4) { SendErrorMessage(playerid, "You need at least 4 playing hours to buy this item."); } else { AddItemToInventory(playerid, "Stereo"); SendInfoMessage(playerid, "You have purchased a stereo for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a stereo.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Bandages")) { if (!IsSufficientSpace(playerid, "Bandages")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Bandages", 5); SendInfoMessage(playerid, "You have purchased a pack of 5 bandage rolls for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased bandages.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Medical Kit")) { if (!IsSufficientSpace(playerid, "Medical Kit")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Medical Kit"); SendInfoMessage(playerid, "You have purchased a medical kit for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a medical kit.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Water")) { if (Companies[company][cType] == COMPANY_GYM) { if (GetPlayerHealthEx(playerid) >= 100.0) { SendErrorMessage(playerid, "You don't need this right now."); } else { GivePlayerHealth(playerid, 15.0); ApplyAnimation(playerid, "BAR", "dnk_stndM_loop", 4.1, 0, 0, 0, 0, 0); SendInfoMessage(playerid, "You have purchased some water for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased water.", ReturnName(playerid)); CreateLog("purchase", log); } } } else if (!strcmp(item, "Notebook")) { if (!IsSufficientSpace(playerid, "Notebook")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Notebook"); SendInfoMessage(playerid, "You have purchased a notebook for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a notebook.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Gasoline")) { if (!IsSufficientSpace(playerid, "Gasoline")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Gasoline", 10); SendInfoMessage(playerid, "You have purchased a can of gasoline for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a can of gasoline.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Cigarettes")) { if (!IsSufficientSpace(playerid, "Cigarettes")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Cigarettes", 20); SendInfoMessage(playerid, "You have purchased a pack of 20 cigarettes for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a pack of cigarettes.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Screwdriver")) { if (!IsSufficientSpace(playerid, "Screwdriver")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Screwdriver"); SendInfoMessage(playerid, "You have purchased a screwdriver for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a screwdriver.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Mask")) { if (!IsSufficientSpace(playerid, "Mask")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else if (Players[playerid][pHoursOnline] < 10) { SendErrorMessage(playerid, "There is a 10 hour playing requirement for this item."); } else { AddItemToInventory(playerid, "Mask", Random(10000, 99999)); SendInfoMessage(playerid, "You have purchased a mask for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a mask.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Cigarette")) { if (Companies[company][cType] == COMPANY_BAR) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY); SendInfoMessage(playerid, "You have purchased a cigarette for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a cigarette.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Sprunk")) { if (Companies[company][cType] == COMPANY_BAR) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK); SendInfoMessage(playerid, "You have purchased a can of sprunk for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a sprunk.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Beer")) { if (Companies[company][cType] == COMPANY_BAR) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER); SendInfoMessage(playerid, "You have purchased a bottle of beer for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); } else if (!IsSufficientSpace(playerid, "Beer")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Beer"); SendInfoMessage(playerid, "You have purchased a bottle of beer for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a bottle of beer.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Wine")) { if (Companies[company][cType] == COMPANY_BAR) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE); SendInfoMessage(playerid, "You have purchased a bottle of wine for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); } else if (!IsSufficientSpace(playerid, "Wine")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Wine"); SendInfoMessage(playerid, "You have purchased a bottle of wine for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a bottle of wine.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Spraycan")) { if (!IsSufficientSpace(playerid, "Spraycan")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Spraycan", 5); SendInfoMessage(playerid, "You have purchased a 5 liter spraycan for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a 5 liter spraycan.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Baseball Bat")) { if (!IsSufficientSpace(playerid, "Baseball Bat")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Baseball Bat"); SendInfoMessage(playerid, "You have purchased a baseball bat for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a baseball bat.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Walkie Talkie")) { if (!IsSufficientSpace(playerid, "Walkie Talkie")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Walkie Talkie"); SendInfoMessage(playerid, "You have purchased a walkie talkie for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a walkie talkie.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Portable Radio")) { if (!IsSufficientSpace(playerid, "Portable Radio")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Portable Radio"); SendInfoMessage(playerid, "You have purchased a portable radio for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a portable radio.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Camera")) { if (!IsSufficientSpace(playerid, "Camera")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Camera"); SendInfoMessage(playerid, "You have purchased a camera for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a camera.", ReturnName(playerid)); CreateLog("purchase", log); } } /*else if (!strcmp(item, "Kevlar Vest")) { if (!IsSufficientSpace(playerid, "Kevlar Vest")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Kevlar Vest", 50); SendInfoMessage(playerid, "You have purchased a kevlar vest for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); } }*/ else if (!strcmp(item, "Armor")) { if (!Players[playerid][pGunLicense]) { SendErrorMessage(playerid, "You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, "Armor")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Armor", 50); SendInfoMessage(playerid, "You have purchased armor for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased armor.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Pepper Spray")) { if (!Players[playerid][pGunLicense]) { SendErrorMessage(playerid, "You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, "Pepper Spray")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Pepper Spray", 2000); SendInfoMessage(playerid, "You have purchased a can of pepper spray for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased a pepper spray.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "Desert Eagle")) { new serial = Random(10000, 99999); if (!Players[playerid][pGunLicense]) { SendErrorMessage(playerid, "You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, "Desert Eagle")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Desert Eagle", 0, serial); PurchaseProduct(playerid, company, product); SendInfoMessage(playerid, "You have purchased a Desert Eagle for {33CC33}%s{FFFFFF}.", FormatNumber(price)); AddSerialToRegistry(serial, "Desert Eagle", ReturnName(playerid), Companies[company][cName]); new log[128]; format(log, sizeof(log), "%s purchased a desert eagle, serial: %i.", ReturnName(playerid), serial); CreateLog("purchase", log); } } else if (!strcmp(item, "Shotgun")) { new serial = Random(10000, 99999); if(!Players[playerid][pGunLicense]) { SendErrorMessage(playerid,"You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, "Shotgun")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Shotgun", 0, serial); PurchaseProduct(playerid, company, product); SendInfoMessage(playerid, "You have purchased a Shotgun for {33CC33}%s{FFFFFF}.", FormatNumber(price)); AddSerialToRegistry(serial, "Shotgun", ReturnName(playerid), Companies[company][cName]); new log[128]; format(log, sizeof(log), "%s purchased a shotgun, serial: %i.", ReturnName(playerid), serial); CreateLog("purchase", log); } } else if (!strcmp(item, "Rifle")) { new serial = Random(10000, 99999); if (!Players[playerid][pGunLicense]) { SendErrorMessage(playerid, "You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, "Rifle")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Rifle", 0, serial); PurchaseProduct(playerid, company, product); SendInfoMessage(playerid, "You have purchased a Rifle for {33CC33}%s{FFFFFF}.", FormatNumber(price)); AddSerialToRegistry(serial, "Rifle", ReturnName(playerid), Companies[company][cName]); new log[128]; format(log, sizeof(log), "%s purchased a rifle, serial: %i.", ReturnName(playerid), serial); CreateLog("purchase", log); } } else if (!strcmp(item, "9x19mm Ammo")) { if (!Players[playerid][pGunLicense]) { SendErrorMessage(playerid, "You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, "9x19mm")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "9x19mm", 50); SendInfoMessage(playerid, "You have purchased a 50 pack of 9x19mm ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased 9x19mm.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, ".50cal Ammo")) { if (!Players[playerid][pGunLicense]) { SendErrorMessage(playerid, "You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, ".50cal")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, ".50cal", 50); SendInfoMessage(playerid, "You have purchased a 50 pack of ammunation from ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased .50cal.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "12 Gauge Ammo")) { if (!Players[playerid][pGunLicense]) { SendErrorMessage(playerid, "You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, "12 Gauge")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "12 Gauge", 20); SendInfoMessage(playerid, "You have purchased a 20 pack of 12 Gauge ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased 12 Gauge.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "5.56x45mm Ammo")) { if (!Players[playerid][pGunLicense]) { SendErrorMessage(playerid, "You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, "5.56x45mm")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "5.56x45mm", 75); SendInfoMessage(playerid, "You have purchased a 75 pack of 5.56x45mm ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased 5.56x45mm.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "7.62x39mm Ammo")) { if (!Players[playerid][pGunLicense]) { SendErrorMessage(playerid, "You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, "7.62x39mm")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "7.62x39mm", 50); SendInfoMessage(playerid, "You have purchased a 50 pack of 7.62x39mm ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased 7.62x39mm.", ReturnName(playerid)); CreateLog("purchase", log); } } else if (!strcmp(item, "7.62x51mm Ammo")) { if (!Players[playerid][pGunLicense]) { SendErrorMessage(playerid, "You haven't been issued a gun license."); } else if (!IsSufficientSpace(playerid, "7.62x51mm")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "7.62x51mm", 25); SendInfoMessage(playerid, "You have purchased a 25 pack of 7.62x51mm ammunition for {33CC33}%s{FFFFFF}.", FormatNumber(price)); PurchaseProduct(playerid, company, product); new log[128]; format(log, sizeof(log), "%s purchased 7x62x51mm.", ReturnName(playerid)); CreateLog("purchase", log); } } } return 1; } ShowStatsForPlayer(playerid, targetid) // "targetid" is the player to show the dialog to. { /*static statString[1024]; if (!IsPlayerLoggedIn(playerid) || !IsPlayerLoggedIn(targetid)) { return 0; } switch (page) { case 1: { format(statString, sizeof(statString), "{6688FF}Username:{FFFFFF} %s\n{6688FF}Register date:{FFFFFF} %s", ReturnNameEx(playerid, 0), Players[playerid][pRegistered]); format(statString, sizeof(statString), "%s\n{6688FF}Gender:{FFFFFF} %s\n{6688FF}Age:{FFFFFF} %i years old\n{6688FF}Origin:{FFFFFF} %s\n{6688FF}Playing hours:{FFFFFF} %i hours", statString, GetGenderForPlayer(playerid), Players[playerid][pAge], Players[playerid][pOrigin], Players[playerid][pHoursOnline]); format(statString, sizeof(statString), "%s\n{6688FF}Pocket money:{FFFFFF} %s\n{6688FF}Paycheck:{FFFFFF} %s (%i minutes)", statString, FormatNumber(Players[playerid][pPocketMoney]), FormatNumber(Players[playerid][pPaycheck]), (60 - Players[playerid][pMinutes])); format(statString, sizeof(statString), "%s\n{6688FF}Payment type:{FFFFFF} %s\n{6688FF}Total weight:{FFFFFF} %i/%i\n{6688FF}Fitness:{FFFFFF} %s", statString, GetPaymentType(playerid), GetInventoryTotalWeight(playerid), GetInventoryMaxWeight(playerid), GetFitnessLevel(playerid)); format(statString, sizeof(statString), "%s\n{6688FF}Car license:{FFFFFF} %s\n{6688FF}Gun license:{FFFFFF} %s\n{6688FF}Distance traveled:{FFFFFF} %.2f km", statString, (Players[playerid][pCarLicense]) ? ("Yes") : ("No"), (Players[playerid][pGunLicense]) ? ("Yes") : ("No"), Players[playerid][pTraveled]); Dialog_Show(targetid, Stats, DIALOG_STYLE_MSGBOX, "{FFFFFF}Statistics", statString, "Next", "Close"); } case 2: { format(statString, sizeof(statString), "{6688FF}Vehicles hotwired:{FFFFFF} %i\n{6688FF}Vehicles rented:{FFFFFF} %i\n{6688FF}Total hospital fees:{FFFFFF} %s\n{6688FF}Items used:{FFFFFF} %i\n{6688FF}Items dropped:{FFFFFF} %i\n{6688FF}Items picked up:{FFFFFF} %i", Statistics[playerid][sHotwired], Statistics[playerid][sRentals], FormatNumber(Statistics[playerid][sHospitalFees]), Statistics[playerid][sItemsUsed], Statistics[playerid][sItemsDropped], Statistics[playerid][sItemsPicked]); format(statString, sizeof(statString), "%s\n{6688FF}Distance ran:{FFFFFF} %i\n{6688FF}Total weights lifted:{FFFFFF} %i\n{6688FF}Houses purchased:{FFFFFF} %i\n{6688FF}Companies purchased:{FFFFFF} %i", statString, Statistics[playerid][sDistanceRan], Statistics[playerid][sTotalReps], Statistics[playerid][sHouses], Statistics[playerid][sCompanies]); format(statString, sizeof(statString), "%s\n{6688FF}Vehicles purchased:{FFFFFF} %i\n{6688FF}Furniture purchased:{FFFFFF} %s\n{6688FF}Warrants issued:{FFFFFF} %i", statString, Statistics[playerid][sVehicles], FormatNumber(Statistics[playerid][sFurnitureFees]), Statistics[playerid][sTotalWarrants]); Dialog_Show(targetid, Stats, DIALOG_STYLE_MSGBOX, "{FFFFFF}Statistics", statString, "Back", "Close"); } } Players[targetid][pViewStats] = playerid; Players[targetid][pStatsPage] = page;*/ SendClientMessage(targetid, COLOR_DARKGREEN, "____________________________________________________________________________"); //SendClientMessage(targetid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------------"); SendFormatMessage(targetid, COLOR_LIGHTGREY, "** Stats for %s **", ReturnNameEx(playerid, 0)); SendFormatMessage(targetid, COLOR_WHITE, "Hours: %i hours | Capacity: %i/%i", Players[playerid][pHoursOnline], GetInventoryTotalWeight(playerid), GetInventoryMaxWeight(playerid)); SendFormatMessage(targetid, COLOR_LIGHTGREY, "Money: %s | Paycheck: %s | Savings: %s | Payment: %s | Fitness: %s | Job: %s", FormatNumber(Players[playerid][pPocketMoney]), FormatNumber(Players[playerid][pPaycheck]), FormatNumber(Players[playerid][pSavingsMoney]), GetPaymentType(playerid), GetFitnessLevel(playerid), GetJobName(Players[playerid][pJob])); SendFormatMessage(targetid, COLOR_WHITE, "Melee: %s | Primary: %s | Ammo: %i | Secondary: %s | Ammo: %i", GetWeapon(Weapons[playerid][wMelee]), GetWeapon(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo], GetWeapon(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo]); SendFormatMessage(targetid, COLOR_LIGHTGREY, "Phone: %i | Channel: %i | Faction: %s | Rank: %s", Players[playerid][pPhone], Players[playerid][pChannel], GetPlayerFactionName(playerid), GetPlayerFactionRank(playerid)); SendFormatMessage(targetid, COLOR_WHITE, "Name Changes: %i | Jail Time: %i seconds | Health: %.1f | Armor: %.1f", Players[playerid][pNameChanges], Players[playerid][pJailTime], GetPlayerHealthEx(playerid), GetPlayerArmourEx(playerid)); SendFormatMessage(targetid, COLOR_LIGHTGREY, "Car License: %s | Gun License: %s | Traveled: %.2f km | Registered: %s | Donator: %s", (Players[playerid][pCarLicense]) ? ("Yes") : ("No"), (Players[playerid][pGunLicense]) ? ("Yes") : ("No"), Players[playerid][pTraveled], Players[playerid][pRegistered], GetDonatorLevel(Players[playerid][pDonator])); //SendClientMessage(targetid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------------"); SendClientMessage(targetid, COLOR_DARKGREEN, "____________________________________________________________________________"); /*SendClientMessage(targetid, COLOR_DARKGREEN, "____________________________________________________________________________"); //SendClientMessage(targetid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------------"); SendFormatMessage(targetid, COLOR_LIGHTGREY, "** Stats for %s **", ReturnNameEx(playerid, 0)); SendFormatMessage(targetid, COLOR_WHITE, "Gender: %s | Age: %i | Origin: %s | Fitness: %s"); SendFormatMessage(targetid, COLOR_WHITE, "Faction: %s | Rank: %s | Job: %s | Phone: %i | Channel: %i"); SendFormatMessage(targetid, COLOR_WHITE, "Melee: %s | Primary: %s | Ammo: %i | Secondary: %s | Ammo: %i"); SendFormatMessage(targetid, COLOR_WHITE, "Level: %i | Experience: %i/%i | Donator Level: %s"); SendFormatMessage(targetid, COLOR_WHITE, "Health: %.0f | Armor: %.0f | Hours Played: %i"); SendFormatMessage(targetid, COLOR_WHITE, "Cash: %s | Paycheck: %s | Savings: %s | Payment: %s"); SendFormatMessage(targetid, COLOR_WHITE, ""); SendFormatMessage(targetid, COLOR_WHITE, ""); SendFormatMessage(targetid, COLOR_WHITE, ""); //SendClientMessage(targetid, COLOR_GREY, "-------------------------------------------------------------------------------------------------------------------------------------"); SendClientMessage(targetid, COLOR_DARKGREEN, "____________________________________________________________________________");*/ return 1; } ShowRentalEditMenu(playerid, company) { if (Companies[company][cType] != COMPANY_RENTALS) { return 0; } else { new index = 0; gListString = "Model\tPrice"; for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && Vehicles[i][vCompany] == Companies[company][cID]) { format(gListString, sizeof(gListString), "%s\n%s\t%s", gListString, GetVehicleModelName(Vehicles[i][vModel]), FormatNumber(Vehicles[i][vPrice])); gListedItems[playerid][index++] = i; } } Players[playerid][pCompany] = company; Dialog_Show(playerid, RentalEdit, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Change prices", gListString, "Change", "Back"); } return 1; } ShowRestaurantEditMenu(playerid, company) { static string[(MAX_RESTAURANT_ITEMS * 32)]; if (Companies[company][cType] != COMPANY_RESTAURANT) { return 0; } else { new index = 0; string = "Add to Menu"; for (new i = 0; i < MAX_RESTAURANT_ITEMS; i ++) { if (RestaurantItems[company][i][rtExists]) { format(string, sizeof(string), "%s\nStock: %i\tItem: %s (%s)", string, RestaurantItems[company][i][rtStock], RestaurantItems[company][i][rtName], FormatNumber(RestaurantItems[company][i][rtPrice])); gListedItems[playerid][index++] = i; } } Dialog_Show(playerid, RestaurantEdit, DIALOG_STYLE_LIST, "{FFFFFF}Select item to edit", string, "Edit", "Back"); } return 1; } ShowDealershipEditMenu(playerid, company) { static string[3072]; if (Companies[company][cType] != COMPANY_DEALERSHIP) { return 0; } else { new index = 0; string = "Add Vehicle"; for (new i = 0; i < MAX_DEALERSHIP_CARS; i ++) { if (DealershipCars[i][dcExists] && DealershipCars[i][dcCompany] == Companies[company][cID]) { format(string, sizeof(string), "%s\n%s (price: %s)", string, GetVehicleModelName(DealershipCars[i][dcModel]), FormatNumber(DealershipCars[i][dcPrice])); gListedItems[playerid][index++] = i; } } Players[playerid][pCompany] = company; Dialog_Show(playerid, DealerList, DIALOG_STYLE_LIST, "{FFFFFF}Dealership cars", string, "Select", "Back"); } return 1; } ShowProductEditMenu(playerid, company) { new string[(MAX_PRODUCTS * 64)], index = 0 ; switch (Companies[company][cType]) { case COMPANY_RESTAURANT: { ShowRestaurantEditMenu(playerid, company); } case COMPANY_RENTALS: { ShowRentalEditMenu(playerid, company); } default: { for (new i = 0; i < sizeof(g_CompanyItems); i ++) { if (Companies[company][cType] == g_CompanyItems[i][e_CompanyType]) { if (g_CompanyItems[i][e_IsStockable]) { format(string, sizeof(string), "%s\nStock: %i\tItem: %s (%s)", string, Products[company][index][prStock], g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice])); } else { format(string, sizeof(string), "%s\nItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice])); } gListedItems[playerid][index++] = i; } } if (strlen(string)) { return Dialog_Show(playerid, EditProducts, DIALOG_STYLE_LIST, "{FFFFFF}Select product to edit", string, "Edit", "Back"); } return 0; } } return 1; } ShowRestaurantMenu(playerid, company) { new string[(MAX_RESTAURANT_ITEMS * 64)], index = 0; for (new i = 0; i < MAX_RESTAURANT_ITEMS; i ++) { if (RestaurantItems[company][i][rtExists]) { if (RestaurantItems[company][i][rtStock] > 0) { format(string, sizeof(string), "%s\nIn Stock\tItem: %s (%s)", string, RestaurantItems[company][i][rtName], FormatNumber(RestaurantItems[company][i][rtPrice])); } else { format(string, sizeof(string), "%s\nOut of Stock\tItem: %s (%s)", string, RestaurantItems[company][i][rtName], FormatNumber(RestaurantItems[company][i][rtPrice])); } gListedItems[playerid][index++] = i; } } if (strlen(string)) { Dialog_Show(playerid, BuyFood, DIALOG_STYLE_LIST, "{FFFFFF}Restaurant menu", string, "Purchase", "Back"); } else { SendErrorMessage(playerid, "The owner of this restaurant has not added any food items."); } return 1; } ShowProductsForSale(playerid, company) { new string[(MAX_PRODUCTS * 64)], index = 0; if (Companies[company][cType] == COMPANY_DEALERSHIP) { SendInfoMessage(playerid, "Use the arrows to browse between vehicles. Press ESC to cancel."); return ShowDealershipPreviewMenu(playerid, company); } for (new i = 0; i < sizeof(g_CompanyItems); i ++) { if (Companies[company][cType] == g_CompanyItems[i][e_CompanyType]) { if (g_CompanyItems[i][e_IsStockable]) { if (Products[company][index][prStock] > 0) { format(string, sizeof(string), "%s\nIn Stock\tItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice])); } else { format(string, sizeof(string), "%s\nOut of Stock\tItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice])); } } else { format(string, sizeof(string), "%s\nIn Stock\tItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice])); } gListedItems[playerid][index++] = i; } } if (strlen(string)) { return Dialog_Show(playerid, BuyItem, DIALOG_STYLE_LIST, "{FFFFFF}Select product to buy", string, "Purchase", "Back"); } return 0; } ShowHouseEditMenu(playerid, house) { new string[32]; if (IsValidHouseID(house)) { Players[playerid][pSelected] = house; format(string, sizeof(string), "{FFFFFF}Edit house: %i", house); Dialog_Show(playerid, EditHouse, DIALOG_STYLE_LIST, string, "House Location\nHouse Interior\nHouse Owner\t\t%s\nHouse Price\t\t%s\nHouse Address\t\t%s", "Edit", "Cancel", GetHouseOwner(house), FormatNumber(Houses[house][hValue]), Houses[house][hAddress]); } return 1; } ShowPaycheckEditMenu(playerid, faction) { if (IsValidFactionID(faction)) { gListString[0] = 0; for (new i = 1; i <= Factions[faction][fcMaxRanks]; i ++) { format(gListString, sizeof(gListString), "%s\n%i) %s (%s)", gListString, i, GetFactionRank(faction, i), FormatNumber(GetFactionRankPay(faction, i))); } Players[playerid][pSelected] = faction; Dialog_Show(playerid, EditPaychecks, DIALOG_STYLE_LIST, "{FFFFFF}Faction Paychecks", gListString, "Change", "Cancel"); } return 1; } ShowRankEditMenu(playerid, faction) { if (IsValidFactionID(faction)) { gListString[0] = 0; for (new i = 1; i <= Factions[faction][fcMaxRanks]; i ++) { format(gListString, sizeof(gListString), "%s\n%i) %s", gListString, i, GetFactionRank(faction, i)); } Players[playerid][pSelected] = faction; Dialog_Show(playerid, EditRanks, DIALOG_STYLE_LIST, "{FFFFFF}Faction Ranks", gListString, "Change", "Cancel"); } return 1; } ShowEquipmentEditMenu(playerid, faction) { if(IsValidFactionID(faction)) { gListString[0] = 0; for(new i = 0; i < MAX_FACTION_EQUIPMENT; i ++) { if(!FactionEquipment[faction][i][fcItemExists]) format(gListString, sizeof(gListString), "%s\n%i) Empty Slot", gListString, i + 1); else if(FactionEquipment[faction][i][fcItemValue] > 0) format(gListString, sizeof(gListString), "%s\n%i) %s (%i)", gListString, i + 1, FactionEquipment[faction][i][fcItemName], FactionEquipment[faction][i][fcItemValue]); else format(gListString, sizeof(gListString), "%s\n%i) %s", gListString, i + 1, FactionEquipment[faction][i][fcItemName]); } Dialog_Show(playerid, EditEquipment, DIALOG_STYLE_LIST, "{FFFFFF}Faction Equipment", gListString, "Edit", "Cancel"); } return 1; } ShowAccessoryEditMenu(playerid, faction) { if(IsValidFactionID(faction)) { gListString[0] = 0; for(new i = 0; i < MAX_FACTION_ACCESSORIES; i ++) { if(!FactionAccessories[faction][i][fcAccessoryExists]) format(gListString, sizeof(gListString), "%s\n%i) Empty Slot", gListString, i + 1); else format(gListString, sizeof(gListString), "%s\n%i) %s", gListString, i + 1, FactionAccessories[faction][i][fcAccessoryName]); } Dialog_Show(playerid, EditAccessories, DIALOG_STYLE_LIST, "{FFFFFF}Faction Accessories", gListString, "Edit", "Cancel"); } return 1; } ShowUniformEditMenu(playerid, faction) { if (IsValidFactionID(faction)) { gListString[0] = 0; for (new i = 0; i < MAX_FACTION_UNIFORMS; i ++) { if (!Factions[faction][fcUniforms][i]) { format(gListString, sizeof(gListString), "%s\n%i) Empty Slot", gListString, i + 1); } else { format(gListString, sizeof(gListString), "%s\n%i) Skin: %i", gListString, i + 1, Factions[faction][fcUniforms][i]); } } Dialog_Show(playerid, EditUniforms, DIALOG_STYLE_LIST, "{FFFFFF}Faction Uniforms", gListString, "Edit", "Cancel"); } return 1; } ShowFactionEditMenu(playerid, faction) { if (IsValidFactionID(faction)) { Players[playerid][pSelected] = faction; Dialog_Show(playerid, EditFaction, DIALOG_STYLE_LIST, "{FFFFFF}Edit Faction", "Faction Name\t\t%s\nFaction Type\t\t%s\nFaction Color\t\t%s{FFFFFF}\nFaction Ranks\t\t%i\nFaction Rights\nRank Names\nRank Paychecks\nFaction Spawn\nLocker Spawn\nLocker Uniforms\nLocker Equipment\nLocker Accessories", "Change", "Cancel", Factions[faction][fcName], GetFactionType(Factions[faction][fcType]), GetFactionEmbedColor(faction), Factions[faction][fcMaxRanks]); } return 1; } ShowBuildingEditMenu(playerid, building) { new string[32]; if (IsValidBuildingID(building)) { Players[playerid][pSelected] = building; format(string, sizeof(string), "{FFFFFF}Edit building: %i", building); Dialog_Show(playerid, EditBuilding, DIALOG_STYLE_LIST, string, "Building Location\nBuilding Interior\nBuilding Status\t\t%s\nBuilding Name\t\t%s\nBuilding World\t\t%i\nBuilding Icon\t\t%i", "Edit", "Cancel", (Buildings[building][bLocked]) ? ("Locked") : ("Unlocked"), Buildings[building][bName], Buildings[building][bWorld], Buildings[building][bIconType]); } return 1; } ShowCompanyEditMenu(playerid, company) { new string[32]; if (IsValidCompanyID(company)) { Players[playerid][pSelected] = company; format(string, sizeof(string), "{FFFFFF}Edit company: %i", company); if (Companies[company][cType] == COMPANY_DEALERSHIP) { Dialog_Show(playerid, EditCompany, DIALOG_STYLE_LIST, string, "Company Location\nCompany Interior\nVehicle Spawn\nCompany Owner\t%s\nCompany Price\t\t%s\nCompany Name\t\t%s\nCompany Type\t\t%s\nCompany Stock\t\t%i", "Edit", "Cancel", GetCompanyOwner(company), FormatNumber(Companies[company][cValue]), Companies[company][cName], GetCompanyType(Companies[company][cType]), Companies[company][cStock]); } else { Dialog_Show(playerid, EditCompany, DIALOG_STYLE_LIST, string, "Company Location\nCompany Interior\nDelivery Point\nCompany Owner\t%s\nCompany Price\t\t%s\nCompany Name\t\t%s\nCompany Type\t\t%s\nCompany Stock\t\t%i", "Edit", "Cancel", GetCompanyOwner(company), FormatNumber(Companies[company][cValue]), Companies[company][cName], GetCompanyType(Companies[company][cType]), Companies[company][cStock]); } } return 1; } UpdateLightsForPlayer(playerid) { new id = GetCurrentHouse(playerid); if (id != INVALID_ID) { if (Houses[id][hLights]) TextDrawHideForPlayer(playerid, gGlobalTextdraws[0]); else TextDrawShowForPlayer(playerid, gGlobalTextdraws[0]); Players[playerid][pLights] = Houses[id][hLights]; } else { TextDrawHideForPlayer(playerid, gGlobalTextdraws[0]); Players[playerid][pLights] = 0; } return 1; } EnterCaller(playerid) { new id; if (Players[playerid][pSetPosition] || Players[playerid][pTazed] || Players[playerid][pJailType] > 0) { return 0; } if ((id = GetClosestHouse(playerid)) != INVALID_ID) { if (Houses[id][hLocked]) { SendErrorMessage(playerid, "The doors are locked."); } else if (Houses[id][hInt][0] == 0.0 && Houses[id][hInt][1] == 0.0 && Houses[id][hInt][2] == 0.0) { SendErrorMessage(playerid, "This house doesn't have an interior set."); } else if (IsPlayerNearBackdoor(playerid, id) && !IsBackdoorExitSetup(id)) { return SendErrorMessage(playerid, "The backdoor exit is not setup yet."); } else { TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); // was 8000 before if (IsPlayerNearBackdoor(playerid, id)) { SetPlayerFadePos(playerid, Houses[id][hBackdoorInt][0], Houses[id][hBackdoorInt][1], Houses[id][hBackdoorInt][2], Houses[id][hInt][3], Houses[id][hInterior], Houses[id][hWorld]); } else { SetPlayerFadePos(playerid, Houses[id][hInt][0], Houses[id][hInt][1], Houses[id][hInt][2], Houses[id][hInt][3], Houses[id][hInterior], Houses[id][hWorld]); } ShowActionBubble(playerid, "* %s opens the door and enters the house.", ReturnNameEx(playerid)); return 1; } } else if ((id = GetClosestCompany(playerid)) != INVALID_ID) { if (Companies[id][cLocked]) { SendErrorMessage(playerid, "The doors are locked."); } else if (Companies[id][cInt][0] == 0.0 && Companies[id][cInt][1] == 0.0 && Companies[id][cInt][2] == 0.0) { SendErrorMessage(playerid, "This company doesn't have an interior set."); } else if (!PlayerCanAfford(playerid, Companies[id][cFee])) { return SendErrorMessage(playerid, "You can't afford the entrance fee."); } else { TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); SetPlayerFadePos(playerid, Companies[id][cInt][0], Companies[id][cInt][1], Companies[id][cInt][2], Companies[id][cInt][3], Companies[id][cInterior], Companies[id][cWorld]); ShowActionBubble(playerid, "* %s opens the door and enters the company.", ReturnNameEx(playerid)); GiveCompanyMoney(id, Companies[id][cFee]); RemoveMoney(playerid, Companies[id][cFee]); if(!isnull(Companies[id][cStream])) { PlayAudioStreamForPlayer(playerid, Companies[id][cStream]); } return 1; } } else if ((id = GetClosestBuilding(playerid)) != INVALID_ID) { if (Buildings[id][bLocked]) { SendErrorMessage(playerid, "The doors are locked."); } else if (Buildings[id][bInt][0] == 0.0 && Buildings[id][bInt][1] == 0.0 && Buildings[id][bInt][2] == 0.0) { SendErrorMessage(playerid, "This building doesn't have an interior set."); } else { TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); SetPlayerFadePos(playerid, Buildings[id][bInt][0], Buildings[id][bInt][1], Buildings[id][bInt][2], Buildings[id][bInt][3], Buildings[id][bInterior], Buildings[id][bWorld]); ShowActionBubble(playerid, "* %s opens the door and enters the building.", ReturnNameEx(playerid)); return 1; } } for (new i = 0; i < sizeof(g_StaticBuildings); i ++) { if (IsPlayerInRangeOfPoint(playerid, 2.0, g_StaticBuildings[i][e_SpawnX], g_StaticBuildings[i][e_SpawnY], g_StaticBuildings[i][e_SpawnZ])) { TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); SetPlayerFadePos(playerid, g_StaticBuildings[i][e_InsideX], g_StaticBuildings[i][e_InsideY], g_StaticBuildings[i][e_InsideZ], g_StaticBuildings[i][e_InsideA], g_StaticBuildings[i][e_Interior], g_StaticBuildings[i][e_VirtualWorld], g_StaticBuildings[i][e_Freeze]); ShowActionBubble(playerid, "* %s opens the door and enters the building.", ReturnNameEx(playerid)); return 1; } } for (new i = 0; i < sizeof(g_HospitalLocations); i ++) { if (IsPlayerInRangeOfPoint(playerid, 2.0, g_HospitalLocations[i][0], g_HospitalLocations[i][1], g_HospitalLocations[i][2])) { TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); SetPlayerFadePos(playerid, 2502.0286, -1706.2908, 2104.7358, 270.0000, 8, i); ShowActionBubble(playerid, "* %s opens the door and enters the building.", ReturnNameEx(playerid)); return 1; } } if(IsPlayerInRangeOfPoint(playerid, 5.0, 1041.2220, -1028.3320, 32.1016) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid); if(!IsVehicleModifiable(vehicleid)) { return SendErrorMessage(playerid, "This vehicle cannot be modified."); } Players[playerid][pModPreview] = 0; SetVehiclePos(vehicleid, 614.8823, -125.0021, 998.0926); SetVehicleZAngle(vehicleid, 90.0000); //SetVehicleVirtualWorld(vehicleid, 9999); LinkVehicleToInterior(vehicleid, 3); GetVehicleParamsEx(vehicleid, Players[playerid][pVehicleParams][0], Players[playerid][pVehicleParams][1], Players[playerid][pVehicleParams][2], Players[playerid][pVehicleParams][3], Players[playerid][pVehicleParams][4], Players[playerid][pVehicleParams][5], Players[playerid][pVehicleParams][6]); SetVehicleParamsEx(vehicleid, 0, 0, 0, 0, 0, 0, 0); SetPlayerInterior(playerid, 3); //SetPlayerVirtualWorld(playerid, 9999); SetCameraBehindPlayer(playerid); ShowModMainMenu(playerid); return 1; } if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && !Players[playerid][pRepairTime]) { for(new i = 0; i < sizeof(g_RepairShops); i ++) { if(IsPlayerInRangeOfPoint(playerid, 5.0, g_RepairShops[i][0], g_RepairShops[i][1], g_RepairShops[i][2])) { if(IsRepairShopInUse(i)) { return SendErrorMessage(playerid, "This Pay n' Spray is currently in use."); } if((!PlayerCanAfford(playerid, 500)) && (GetPlayerFactionType(playerid) != FACTION_LEO && GetPlayerFactionType(playerid) != FACTION_MEDICAL)) { return SendErrorMessage(playerid, "You can't afford the entry cost."); } SetVehiclePos(GetPlayerVehicleID(playerid), g_RepairShops[i][3], g_RepairShops[i][4], g_RepairShops[i][5]); SetVehicleZAngle(GetPlayerVehicleID(playerid), g_RepairShops[i][6]); /*foreach(new p : Player) { if(IsPlayerInVehicle(p, GetPlayerVehicleID(playerid))) { SetPlayerCameraPos(p, repairShopCameras[i][0], repairShopCameras[i][1], repairShopCameras[i][2]); SetPlayerCameraLookAt(p, repairShopCameras[i][3], repairShopCameras[i][4], repairShopCameras[i][5]); } }*/ TogglePlayerControllable(playerid, 0); SendClientMessage(playerid, COLOR_WHITE, "Garage: You will be moved out the garage in 8 seconds."); if(GetPlayerFactionType(playerid) == FACTION_LEO || GetPlayerFactionType(playerid) == FACTION_MEDICAL) { SendClientMessage(playerid, COLOR_GREEN, "Your vehicle is fixed free of charge due to being in a government faction!"); } else { RemoveMoney(playerid, -500); } Players[playerid][pRepairTime] = 8; Players[playerid][pRepairShop] = i; return 1; } } return 1; } return 0; } ExitCaller(playerid) { new id; if (Players[playerid][pSetPosition] || Players[playerid][pTazed] || Players[playerid][pJailType] > 0) { return 0; } if (IsPlayerInRangeOfPoint(playerid, 3.0, 1725.3818, -2242.7742, 2039.3804)) { TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); SetPlayerFadePos(playerid, 1685.8079, -2333.4343, 13.5469, 0.0000, 0, 0); RemovePlayerMapIcon(playerid, 0); HideFooterText(playerid); return 1; } if ((id = GetCurrentHouse(playerid)) != INVALID_ID) { if (IsPlayerNearBackdoorExit(playerid, id) && !IsBackdoorSetup(id)) { return SendErrorMessage(playerid, "The backdoor entrance is not setup yet."); } if (IsPlayerInRangeOfPoint(playerid, 3.0, Houses[id][hInt][0], Houses[id][hInt][1], Houses[id][hInt][2])) { TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); SetPlayerFadePos(playerid, Houses[id][hSpawn][0], Houses[id][hSpawn][1], Houses[id][hSpawn][2], Houses[id][hSpawn][3], Houses[id][hExterior], Houses[id][hExteriorWorld]); ShowActionBubble(playerid, "* %s opens the door and exits the house.", ReturnNameEx(playerid)); } else if (IsPlayerNearBackdoorExit(playerid, id)) { TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); SetPlayerFadePos(playerid, Houses[id][hBackdoor][0], Houses[id][hBackdoor][1], Houses[id][hBackdoor][2], 0.0, Houses[id][hExterior], Houses[id][hExteriorWorld]); ShowActionBubble(playerid, "* %s opens the door and exits the house.", ReturnNameEx(playerid)); } return 1; } else if ((id = GetCurrentCompany(playerid)) != INVALID_ID && IsPlayerInRangeOfPoint(playerid, 3.0, Companies[id][cInt][0], Companies[id][cInt][1], Companies[id][cInt][2])) { TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); SetPlayerFadePos(playerid, Companies[id][cSpawn][0], Companies[id][cSpawn][1], Companies[id][cSpawn][2], Companies[id][cSpawn][3], Companies[id][cExterior], Companies[id][cExteriorWorld]); ShowActionBubble(playerid, "* %s opens the door and exits the company.", ReturnNameEx(playerid)); if(!isnull(Companies[id][cStream])) { StopAudioStreamForPlayer(playerid); } return 1; } else if ((id = GetCurrentBuilding(playerid)) != INVALID_ID && IsPlayerInRangeOfPoint(playerid, 3.0, Buildings[id][bInt][0], Buildings[id][bInt][1], Buildings[id][bInt][2])) { SetPlayerFadePos(playerid, Buildings[id][bSpawn][0], Buildings[id][bSpawn][1], Buildings[id][bSpawn][2], Buildings[id][bSpawn][3], Buildings[id][bExterior], Buildings[id][bExteriorWorld]); ShowActionBubble(playerid, "* %s opens the door and exits the building.", ReturnNameEx(playerid)); TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); return 1; } for (new i = 0; i < sizeof(g_StaticBuildings); i ++) { if (IsPlayerNearPoint(playerid, 3.0, g_StaticBuildings[i][e_InsideX], g_StaticBuildings[i][e_InsideY], g_StaticBuildings[i][e_InsideZ], g_StaticBuildings[i][e_Interior], g_StaticBuildings[i][e_VirtualWorld])) { TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); SetPlayerFadePos(playerid, g_StaticBuildings[i][e_SpawnX], g_StaticBuildings[i][e_SpawnY], g_StaticBuildings[i][e_SpawnZ], 0.0, 0, 0); ShowActionBubble(playerid, "* %s opens the door and exits the building.", ReturnNameEx(playerid)); return 1; } } for (new i = 0; i < sizeof(g_HospitalLocations); i ++) { if (IsPlayerNearPoint(playerid, 3.0, 2502.0286, -1706.2908, 2104.7358) && GetPlayerVirtualWorld(playerid) == i) { SetPlayerFadePos(playerid, g_HospitalLocations[i][0], g_HospitalLocations[i][1], g_HospitalLocations[i][2], 0.0, 0, 0); ShowActionBubble(playerid, "* %s opens the door and exits the building.", ReturnNameEx(playerid)); TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); return 1; } } if(IsPlayerInModdingShop(playerid)) { return ExitModdingShop(playerid); } return 0; } PlayerCanAfford(playerid, amount) { switch (Players[playerid][pPaymentType]) { case PAYMENT_TYPE_CASH: { return Players[playerid][pPocketMoney] >= amount; } case PAYMENT_TYPE_BANK: { new bank = GetPrimaryBankAccount(playerid); if (bank != INVALID_ID) { return BankAccounts[playerid][bank][bankBalance] >= amount; } } } return 0; } RemoveMoney(playerid, amount) { switch (Players[playerid][pPaymentType]) { case PAYMENT_TYPE_CASH: { Players[playerid][pPocketMoney] -= amount; GivePlayerMoney(playerid, -amount); } case PAYMENT_TYPE_BANK: { new bank = GetPrimaryBankAccount(playerid); if (bank != INVALID_ID) { BankAccounts[playerid][bank][bankBalance] -= amount; SaveBankAccount(playerid, bank); } } } return 0; } /*GetCurrentHouse(playerid) { new world = GetPlayerVirtualWorld(playerid); for (new i = 0; i < MAX_HOUSES; i ++) { if ((Houses[i][hExists]) && Houses[i][hInterior] == GetPlayerInterior(playerid) && Houses[i][hWorld] == world) { return i; } } return INVALID_ID; }*///knulla2 GetCurrentHouse(playerid) { for (new i = 0; i < MAX_HOUSES; i ++) { if ((Houses[i][hExists]) && Houses[i][hInterior] == GetPlayerInterior(playerid) && Houses[i][hWorld] == GetPlayerVirtualWorld(playerid)) { return i; } } return INVALID_ID; } GetNearbyHouse(playerid) { new id = GetClosestHouse(playerid); if (id == INVALID_ID) { id = GetCurrentHouse(playerid); } return id; } IsPlayerNearBackdoorExit(playerid, house) { return (IsBackdoorSetup(house) && IsPlayerNearPoint(playerid, 3.0, Houses[house][hBackdoorInt][0], Houses[house][hBackdoorInt][1], Houses[house][hBackdoorInt][2], Houses[house][hInterior], Houses[house][hWorld])); } IsPlayerNearBackdoor(playerid, house) { return (IsBackdoorSetup(house) && IsPlayerNearPoint(playerid, 3.0, Houses[house][hBackdoor][0], Houses[house][hBackdoor][1], Houses[house][hBackdoor][2], Houses[house][hExterior], Houses[house][hExteriorWorld])); } GetClosestHouse(playerid) { for (new i = 0; i < MAX_HOUSES; i ++) { if (!Houses[i][hExists]) { continue; } else if (IsPlayerNearPoint(playerid, 2.0, Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2], Houses[i][hExterior], Houses[i][hExteriorWorld]) || IsPlayerNearBackdoor(playerid, i)) { return i; } } return INVALID_ID; } GetClosestFurniture(playerid, Float:range, model) { for (new i = 0; i < MAX_FURNITURE; i ++) { if (Furniture[i][fExists] && Furniture[i][fModel] == model && IsPlayerNearPoint(playerid, range, Furniture[i][fSpawn][0], Furniture[i][fSpawn][1], Furniture[i][fSpawn][2], Furniture[i][fInterior], Furniture[i][fWorld])) { return i; } } return INVALID_ID; } GetClosestFridge(playerid, Float:range) { for (new i = 0; i < MAX_FURNITURE; i ++) { if (Furniture[i][fExists] && ((Furniture[i][fModel] == 19916) || (Furniture[i][fModel] == 2147) || (Furniture[i][fModel] == 2131) || (Furniture[i][fModel] == 2127) || (Furniture[i][fModel] == 2452)) && IsPlayerNearPoint(playerid, range, Furniture[i][fSpawn][0], Furniture[i][fSpawn][1], Furniture[i][fSpawn][2], Furniture[i][fInterior], Furniture[i][fWorld])) { return i; } } return INVALID_ID; } GetClosestDoor(playerid, Float:range) { for (new i = 0; i < MAX_FURNITURE; i ++) { //if (Furniture[i][fExists] && ((Furniture[i][fModel] == 19802 || Furniture[i][fModel] == 1498) && IsPlayerNearPoint(playerid, range, Furniture[i][fSpawn][0], Furniture[i][fSpawn][1], Furniture[i][fSpawn][2], Furniture[i][fInterior], Furniture[i][fWorld])) if (Furniture[i][fExists] && ((Furniture[i][fModel] == 19802) || (Furniture[i][fModel] == 1498)) && IsPlayerNearPoint(playerid, range, Furniture[i][fSpawn][0], Furniture[i][fSpawn][1], Furniture[i][fSpawn][2], Furniture[i][fInterior], Furniture[i][fWorld])) { return i; } } return INVALID_ID; } SetHouseInteriorType(house, type) { if (1 <= type <= sizeof(g_HouseInteriors) - 1) { Houses[house][hInt][0] = g_HouseInteriors[type][e_InteriorX]; Houses[house][hInt][1] = g_HouseInteriors[type][e_InteriorY]; Houses[house][hInt][2] = g_HouseInteriors[type][e_InteriorZ]; Houses[house][hInt][3] = g_HouseInteriors[type][e_InteriorA]; Houses[house][hInterior] = g_HouseInteriors[type][e_Interior]; } } SaveBuilding(building) { static queryString[512]; if (!Buildings[building][bExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_buildings SET bName = '%s', bIconType = %i, bLocked = %i, bSpawnX = %.4f, bSpawnY = %.4f, bSpawnZ = %.4f, bSpawnA = %.4f, bIntX = %.4f, bIntY = %.4f, bIntZ = %.4f, bIntA = %.4f, bExterior = %i, bExteriorWorld = %i, bInterior = %i, bWorld = %i WHERE bID = %i", mysql_escaped(Buildings[building][bName]), Buildings[building][bIconType], Buildings[building][bLocked], Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2], Buildings[building][bSpawn][3], Buildings[building][bInt][0], Buildings[building][bInt][1], Buildings[building][bInt][2], Buildings[building][bInt][3], Buildings[building][bExterior], Buildings[building][bExteriorWorld], Buildings[building][bInterior], Buildings[building][bWorld], Buildings[building][bID] ); return mysql_tquery(gConnection, queryString); } UpdateBuilding(building) { if (!Buildings[building][bExists]) return 0; DestroyDynamicPickup(Buildings[building][bPickup]); DestroyDynamicMapIcon(Buildings[building][bIcon]); DestroyDynamic3DTextLabel(Buildings[building][bText]); Buildings[building][bPickup] = CreateDynamicPickup(19198, 23, Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2] + 0.5, Buildings[building][bExteriorWorld], Buildings[building][bExterior]); if (Buildings[building][bIconType] != 0) { Buildings[building][bIcon] = CreateDynamicMapIcon(Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2], Buildings[building][bIconType], 0, Buildings[building][bExteriorWorld], Buildings[building][bExterior]); } Buildings[building][bText] = CreateDynamic3DTextLabel(Buildings[building][bName], COLOR_GREY, Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2], 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Buildings[building][bExteriorWorld], Buildings[building][bExterior]); return 1; } /*GetCurrentBuilding(playerid) { new world = GetPlayerVirtualWorld(playerid); for (new i = 0; i < MAX_BUILDINGS; i ++) { if (Buildings[i][bExists] && Buildings[i][bInterior] == GetPlayerInterior(playerid) && Buildings[i][bWorld] == world) { return i; } } return INVALID_ID; }*///knulla3 GetCurrentBuilding(playerid) { for (new i = 0; i < MAX_BUILDINGS; i ++) { if (Buildings[i][bExists] && Buildings[i][bInterior] == GetPlayerInterior(playerid) && Buildings[i][bWorld] == GetPlayerVirtualWorld(playerid)) { return i; } } return INVALID_ID; } GetClosestBuilding(playerid) { for (new i = 0; i < MAX_BUILDINGS; i ++) { if (Buildings[i][bExists] && IsPlayerNearPoint(playerid, 2.0, Buildings[i][bSpawn][0], Buildings[i][bSpawn][1], Buildings[i][bSpawn][2], Buildings[i][bExterior], Buildings[i][bExteriorWorld])) { return i; } } return INVALID_ID; } ResetBuilding(building) { DestroyDynamicPickup(Buildings[building][bPickup]); DestroyDynamicMapIcon(Buildings[building][bIcon]); DestroyDynamic3DTextLabel(Buildings[building][bText]); Buildings[building][bID] = 0; Buildings[building][bExists] = 0; Buildings[building][bIconType] = 0; Buildings[building][bLocked] = 0; Buildings[building][bInt][0] = 0.0; Buildings[building][bInt][1] = 0.0; Buildings[building][bInt][2] = 0.0; Buildings[building][bInt][3] = 0.0; Buildings[building][bInterior] = 0; Buildings[building][bWorld] = 0; Buildings[building][bExterior] = 0; Buildings[building][bExteriorWorld] = 0; Buildings[building][bPickup] = INVALID_ID; Buildings[building][bIcon] = INVALID_ID; Buildings[building][bText] = INVALID_3DTEXT_ID; } ClearPumps(company) { if (!IsValidCompanyID(company)) { return 0; } for (new i = 0; i < MAX_GAS_PUMPS; i ++) { if (GasPumps[i][gpExists] && GasPumps[i][gpCompany] == Companies[company][cID]) { DestroyDynamicObject(GasPumps[i][gpObject]); DestroyDynamic3DTextLabel(GasPumps[i][gpText]); GasPumps[i][gpExists] = 0; GasPumps[i][gpID] = 0; } } format(gExecute, sizeof(gExecute), "DELETE FROM rp_gaspumps WHERE gpCompany = %i", Companies[company][cID]); mysql_tquery(gConnection, gExecute); return 1; } ClearFurniture(house) { if (!IsValidHouseID(house)) { return 0; } for (new i = 0; i < MAX_FURNITURE; i ++) { if (Furniture[i][fExists] && Furniture[i][fHouseID] == Houses[house][hID]) { if (Furniture[i][fModel] == 2332) { ClearSafeItems(i); } DestroyDynamicObject(Furniture[i][fObject]); DestroyDynamic3DTextLabel(Furniture[i][fText]); Furniture[i][fExists] = 0; Furniture[i][fID] = 0; } } format(gExecute, sizeof(gExecute), "DELETE FROM rp_furniture WHERE fHouseID = %i", Houses[house][hID]); mysql_tquery(gConnection, gExecute); return 1; } ClearOutsideFurniture(house) { if (!IsValidHouseID(house)) { return 0; } for (new i = 0; i < MAX_FURNITURE; i ++) { if (Furniture[i][fExists] && Furniture[i][fHouseID] == Houses[house][hID] && Furniture[i][fInterior] == Houses[house][hInterior] && Furniture[i][fWorld] == Houses[house][hWorld]) { if (Furniture[i][fModel] == 2332) { ClearSafeItems(i); } DeleteFurniture(i); } } return 1; } ResetHouse(house) { DestroyDynamicCP(Houses[house][hCheckpoint]); //DestroyDynamic3DTextLabel(Houses[house][hText]); DestroyDynamic3DTextLabel(Houses[house][hBackdoorText][0]); DestroyDynamic3DTextLabel(Houses[house][hBackdoorText][1]); strcpy(Houses[house][hOwnerName], "Nobody", MAX_PLAYER_NAME); Houses[house][hID] = 0; Houses[house][hExists] = 0; Houses[house][hOwner] = 0; Houses[house][hValue] = 0; Houses[house][hLocked] = 0; Houses[house][hAlarm] = 0; Houses[house][hLights] = 0; Houses[house][hEdit] = 0; Houses[house][hInt][0] = 0.0; Houses[house][hInt][1] = 0.0; Houses[house][hInt][2] = 0.0; Houses[house][hInt][3] = 0.0; Houses[house][hBackdoor][0] = 0.0; Houses[house][hBackdoor][1] = 0.0; Houses[house][hBackdoor][2] = 0.0; Houses[house][hBackdoorInt][0] = 0.0; Houses[house][hBackdoorInt][1] = 0.0; Houses[house][hBackdoorInt][2] = 0.0; Houses[house][hInterior] = 0; Houses[house][hWorld] = 0; Houses[house][hRentPrice] = 0; Houses[house][hExterior] = 0; Houses[house][hExteriorWorld] = 0; Houses[house][hCheckpoint] = INVALID_ID; //Houses[house][hText] = INVALID_3DTEXT_ID; Houses[house][hBackdoorText][0] = INVALID_3DTEXT_ID; Houses[house][hBackdoorText][1] = INVALID_3DTEXT_ID; Houses[house][hFaction] = 0; } IsRentingHouse(playerid, house) { return (IsValidHouseID(house)) && Houses[house][hID] == Players[playerid][pRentHouse]; } IsHouseOwner(playerid, house) { return (IsValidHouseID(house)) && (Houses[house][hOwner] == Players[playerid][pID]); } UpdateFurniture(furniture) { if (!IsValidFurnitureID(furniture)) { return 0; } DestroyDynamicObject(Furniture[furniture][fObject]); Furniture[furniture][fObject] = CreateDynamicObject(Furniture[furniture][fModel], Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], Furniture[furniture][fSpawn][3], Furniture[furniture][fSpawn][4], Furniture[furniture][fSpawn][5], Furniture[furniture][fWorld], Furniture[furniture][fInterior]); for(new i = 0; i != 3; i ++) { if(MaterialIDs[Furniture[furniture][fMaterial][i]][ModelID] != 0) { SetDynamicObjectMaterial(Furniture[furniture][fObject], i, MaterialIDs[Furniture[furniture][fMaterial][i]][ModelID], MaterialIDs[Furniture[furniture][fMaterial][i]][TxdName], MaterialIDs[Furniture[furniture][fMaterial][i]][TextureName], MaterialColors[Furniture[furniture][fMatColour][i]][ColorHex]); } else if(Furniture[furniture][fMatColour][i] != 0) { SetDynamicObjectMaterial(Furniture[furniture][fObject], i, -1, MaterialIDs[Furniture[furniture][fMaterial][i]][TxdName], MaterialIDs[Furniture[furniture][fMaterial][i]][TextureName], MaterialColors[Furniture[furniture][fMatColour][i]][ColorHex]); } } UpdateFurnitureText(furniture); return 1; } UpdateFurnitureText(furniture) { new string[64]; if (!IsValidFurnitureID(furniture)) { return 0; } DestroyDynamic3DTextLabel(Furniture[furniture][fText]); if (Furniture[furniture][fEdit]) { format(string, sizeof(string), "ID: {00FF00}%i{FFFFFF}\n/edit, /delete.", furniture); Furniture[furniture][fText] = CreateDynamic3DTextLabel(string, COLOR_WHITE, Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], 50.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Furniture[furniture][fWorld], Furniture[furniture][fInterior]); } else { if (Furniture[furniture][fModel] == 2332) { if (Furniture[furniture][fSafeOpen]) { Furniture[furniture][fText] = CreateDynamic3DTextLabel("Status: {00FF00}Opened{AFAFAF}\nPress Y to use safe", COLOR_GREY, Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], 3.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Furniture[furniture][fWorld], Furniture[furniture][fInterior]); } else { Furniture[furniture][fText] = CreateDynamic3DTextLabel("Status: {FF5030}Closed{AFAFAF}\nPress Y to use safe", COLOR_GREY, Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], 3.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Furniture[furniture][fWorld], Furniture[furniture][fInterior]); } } /*if ((Furniture[furniture][fModel] == 19916) || (Furniture[furniture][fModel] == 2147) || (Furniture[furniture][fModel] == 2131) || (Furniture[furniture][fModel] == 2127) || (Furniture[furniture][fModel] == 2452)) { Furniture[furniture][fText] = CreateDynamic3DTextLabel("Refridgerator\n'/heal' to heal", COLOR_GREY, Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Furniture[furniture][fWorld], Furniture[furniture][fInterior]); }*/ else { Furniture[furniture][fText] = INVALID_3DTEXT_ID; } } return 1; } SaveFurniture(furniture) { static queryString[512]; if (!IsValidFurnitureID(furniture)) return 0; format(queryString, sizeof(queryString), "UPDATE rp_furniture SET fModel = %i, fX = %.4f, fY = %.4f, fZ = %.4f, fRX = %.4f, fRY = %.4f, fRZ = %.4f, fInterior = %i, fWorld = %i, fCode = %i, fMoney = %i, Mat1 = %i, Mat2 = %i, Mat3 = %i, MatColor1 = %i, MatColor2 = %i, MatColor3 = %i WHERE fID = %i", Furniture[furniture][fModel], Furniture[furniture][fSpawn][0], Furniture[furniture][fSpawn][1], Furniture[furniture][fSpawn][2], Furniture[furniture][fSpawn][3], Furniture[furniture][fSpawn][4], Furniture[furniture][fSpawn][5], Furniture[furniture][fInterior], Furniture[furniture][fWorld], Furniture[furniture][fCode], Furniture[furniture][fMoney], Furniture[furniture][fMaterial][0], Furniture[furniture][fMaterial][1], Furniture[furniture][fMaterial][2], Furniture[furniture][fMatColour][0], Furniture[furniture][fMatColour][1], Furniture[furniture][fMatColour][2], Furniture[furniture][fID] ); return mysql_tquery(gConnection, queryString); } DeleteFurniture(furniture) { if (!IsValidFurnitureID(furniture)) { return 0; } if (Furniture[furniture][fModel] == 2332) { ClearSafeItems(furniture); } DestroyDynamicObject(Furniture[furniture][fObject]); DestroyDynamic3DTextLabel(Furniture[furniture][fText]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_furniture WHERE fID = %i", Furniture[furniture][fID]); mysql_tquery(gConnection, gExecute); Furniture[furniture][fID] = 0; Furniture[furniture][fExists] = 0; Furniture[furniture][fObject] = INVALID_OBJECT_ID; Furniture[furniture][fText] = INVALID_3DTEXT_ID; return 1; } ShowFurnitureCategories(playerid) { new string[192]; for (new i = 0; i < sizeof(g_FurnitureTypes); i ++) { strcat(string, g_FurnitureTypes[i]); strcat(string, "\n"); } Dialog_Show(playerid, BuyFurniture, DIALOG_STYLE_LIST, "{FFFFFF}Select category", string, "Select", "Cancel"); } SetFurnitureEditMode(house, enable) { Houses[house][hEdit] = enable; for (new i = 0; i < MAX_FURNITURE; i ++) { if (Furniture[i][fExists] && Furniture[i][fHouseID] == Houses[house][hID]) { Furniture[i][fEdit] = enable; UpdateFurnitureText(i); } } } AddFurniture(house, modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, interior, worldid) { new id = GetNextFurnitureID(); if (id != INVALID_ID) { Furniture[id][fExists] = 1; Furniture[id][fHouseID] = Houses[house][hID]; Furniture[id][fEdit] = Houses[house][hEdit]; Furniture[id][fModel] = modelid; Furniture[id][fSpawn][0] = x; Furniture[id][fSpawn][1] = y; Furniture[id][fSpawn][2] = z; Furniture[id][fSpawn][3] = rx; Furniture[id][fSpawn][4] = ry; Furniture[id][fSpawn][5] = rz; Furniture[id][fInterior] = interior; Furniture[id][fWorld] = worldid; Furniture[id][fCode] = 0; Furniture[id][fMoney] = 0; Furniture[id][fSafeOpen] = 0; Furniture[id][fDoorOpen] = 0; Furniture[id][fObject] = INVALID_OBJECT_ID; Furniture[id][fText] = INVALID_3DTEXT_ID; for(new i = 0; i != 3; i ++) { Furniture[id][fMaterial][i] = 0; Furniture[id][fMatColour][i] = 0; } UpdateFurniture(id); format(gExecute, sizeof(gExecute), "INSERT INTO rp_furniture (fHouseID) VALUES(%i)", Furniture[id][fHouseID]); mysql_tquery(gConnection, gExecute, "OnFurnitureAdded", "i", id); } return id; } /*GetCurrentCompany(playerid) { new world = GetPlayerVirtualWorld(playerid); for (new i = 0; i < MAX_COMPANIES; i ++) { if (Companies[i][cExists] && Companies[i][cInterior] == GetPlayerInterior(playerid) && Companies[i][cWorld] == world) { return i; } } return INVALID_ID; }*///knulla1 GetCurrentCompany(playerid) { for (new i = 0; i < MAX_COMPANIES; i ++) { if (Companies[i][cExists] && Companies[i][cInterior] == GetPlayerInterior(playerid) && Companies[i][cWorld] == GetPlayerVirtualWorld(playerid)) { return i; } } return INVALID_ID; } GetNearbyCompany(playerid) { new id = GetClosestCompany(playerid); if (id == INVALID_ID) { id = GetCurrentCompany(playerid); } return id; } GetClosestCompany(playerid) { new Float:range; if (IsPlayerInAnyVehicle(playerid)) { range = 5.0; } else { range = 2.0; } for (new i = 0; i < MAX_COMPANIES; i ++) { if (Companies[i][cExists] && IsPlayerNearPoint(playerid, range, Companies[i][cSpawn][0], Companies[i][cSpawn][1], Companies[i][cSpawn][2], Companies[i][cExterior], Companies[i][cExteriorWorld])) { return i; } } return INVALID_ID; } GetClosestDeliveryPoint(playerid) { for (new i = 0; i < MAX_COMPANIES; i ++) { if (Companies[i][cExists] && IsPlayerInRangeOfPoint(playerid, 5.0, Companies[i][cVehicle][0], Companies[i][cVehicle][1], Companies[i][cVehicle][2])) { return i; } } return GetClosestCompany(playerid); } SaveRestaurantItem(company, id) { static queryString[255]; if (!IsValidCompanyID(company)) return 0; format(queryString, sizeof(queryString), "UPDATE rp_fooditems SET Name = '%s', Stock = %i, Price = %i, Type = %i, Health = %i WHERE ID = %i", RestaurantItems[company][id][rtName], RestaurantItems[company][id][rtStock], RestaurantItems[company][id][rtPrice], RestaurantItems[company][id][rtType], RestaurantItems[company][id][rtHealth], RestaurantItems[company][id][rtID]); mysql_tquery(gConnection, queryString); return 1; } SaveProduct(company, product) { static queryString[255]; if (!IsValidCompanyID(company)) return 0; format(queryString, sizeof(queryString), "INSERT INTO rp_products (cID, ID, Price, Stock) VALUES(%i, %i, %i, %i) ON DUPLICATE KEY UPDATE Price = %i, Stock = %i", Companies[company][cID], product, Products[company][product][prPrice], Products[company][product][prStock], Products[company][product][prPrice], Products[company][product][prStock]); mysql_tquery(gConnection, queryString); return 1; } CheckCompanyItems(company) { for (new i = 0, index = 0; i < sizeof(g_CompanyItems); i ++) { if (Companies[company][cType] == g_CompanyItems[i][e_CompanyType]) { if (!Products[company][index][prPrice]) { Products[company][index][prPrice] = g_CompanyItems[i][e_DefaultPrice]; if (g_CompanyItems[i][e_IsStockable]) Products[company][index][prStock] = 200; else Products[company][index][prStock] = -1; SaveProduct(company, index); } index++; } } } GetCompanyOwner(company) { new playername[MAX_PLAYER_NAME]; if (Companies[company][cOwner]) strcpy(playername, Companies[company][cOwnerName]); else playername = "Nobody"; return playername; } SetCompanyOwner(company, playerid) { if (playerid == INVALID_PLAYER_ID) { strcpy(Companies[company][cOwnerName], "Nobody", MAX_PLAYER_NAME); Companies[company][cOwner] = 0; } else if (IsPlayerLoggedIn(playerid)) { GetPlayerName(playerid, Companies[company][cOwnerName], MAX_PLAYER_NAME); Companies[company][cOwner] = Players[playerid][pID]; } UpdateCompany(company); SaveCompany(company); } UpdateCompany(company) { new string[128]; if (!Companies[company][cExists]) return 0; DestroyDynamicCP(Companies[company][cCheckpoint]); //DestroyDynamicMapIcon(Companies[company][cIcon]); //DestroyDynamic3DTextLabel(Companies[company][cText]); DestroyDynamic3DTextLabel(Companies[company][cDeliverText]); if (Companies[company][cOwner]) { if (Companies[company][cLocked]) format(string, sizeof(string), "Status: {AA3333}Closed{AFAFAF}\n%s", Companies[company][cName]); else format(string, sizeof(string), "Status: {33AA33}Opened{AFAFAF}\n%s", Companies[company][cName]); } else { format(string, sizeof(string), "Price: {33CC33}%s{AFAFAF}\n%s", FormatNumber(Companies[company][cValue]), Companies[company][cName]); } Companies[company][cCheckpoint] = CreateDynamicCP(Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], 2.0, Companies[company][cExteriorWorld], Companies[company][cExterior], .streamdistance = 10.0); //Companies[company][cText] = CreateDynamic3DTextLabel(string, COLOR_GREY, Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Companies[company][cExteriorWorld], Companies[company][cExterior]); /*switch (Companies[company][cType]) { case COMPANY_STORE: type = 17; case COMPANY_CLOTHES: type = 45; case COMPANY_RESTAURANT: type = 10; case COMPANY_RENTALS: type = 55; case COMPANY_PHONE: type = 56; case COMPANY_DEALERSHIP: type = 55; case COMPANY_GYM: type = 54; case COMPANY_AMMO: type = 18; case COMPANY_BAR: type = 49; }*/ //Companies[company][cIcon] = CreateDynamicMapIcon(Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], type, 0, Companies[company][cExteriorWorld], Companies[company][cExterior]); if (Companies[company][cType] != COMPANY_DEALERSHIP) { Companies[company][cDeliverText] = CreateDynamic3DTextLabel("/deliver", COLOR_GREY, Companies[company][cVehicle][0], Companies[company][cVehicle][1], Companies[company][cVehicle][2], 10.0); } return 1; } SaveCompany(company) { static queryString[1024]; if (!Companies[company][cExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_companies SET `cOwner` = %i, `cOwnerName` = '%s', `cValue` = %i, `cType` = %i, `cName` = '%s', `cSpawnX` = %.4f, `cSpawnY` = %.4f, `cSpawnZ` = %.4f, `cSpawnA` = %.4f, `cVehicleX` = %.4f, `cVehicleY` = %.4f, `cVehicleZ` = %.4f, `cVehicleA` = %.4f, `cIntX` = %.4f, `cIntY` = %.4f, `cIntZ` = %.4f, `cIntA` = %.4f", Companies[company][cOwner], Companies[company][cOwnerName], Companies[company][cValue], Companies[company][cType], mysql_escaped(Companies[company][cName]), Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], Companies[company][cSpawn][3], Companies[company][cVehicle][0], Companies[company][cVehicle][1], Companies[company][cVehicle][2], Companies[company][cVehicle][3], Companies[company][cInt][0], Companies[company][cInt][1], Companies[company][cInt][2], Companies[company][cInt][3] ); format(queryString, sizeof(queryString), "%s, `cExterior` = %i, `cExteriorWorld` = %i, `cInterior` = %i, `cWorld` = %i, `cLocked` = %i, `cSafe` = %i, `cStock` = %i WHERE `cID` = %i", queryString, Companies[company][cExterior], Companies[company][cExteriorWorld], Companies[company][cInterior], Companies[company][cWorld], Companies[company][cLocked], Companies[company][cSafe], Companies[company][cStock], Companies[company][cID] ); return mysql_tquery(gConnection, queryString); } SetCompanyType(company, type) { if (1 <= type <= sizeof(g_CompanyInteriors) - 1) { Companies[company][cInt][0] = g_CompanyInteriors[type][e_InteriorX]; Companies[company][cInt][1] = g_CompanyInteriors[type][e_InteriorY]; Companies[company][cInt][2] = g_CompanyInteriors[type][e_InteriorZ]; Companies[company][cInt][3] = g_CompanyInteriors[type][e_InteriorA]; Companies[company][cInterior] = g_CompanyInteriors[type][e_Interior]; Companies[company][cType] = type; } } PurchaseProduct(playerid, company, product) { if (Products[company][product][prStock] > 0) { Products[company][product][prStock]--; SaveProduct(company, product); } RemoveMoney(playerid, Products[company][product][prPrice]); if (!IsCompanyOwner(playerid, company)) { GiveCompanyMoney(company, Products[company][product][prPrice]); } } GiveCompanyMoney(company, money) { new tax = percent(money, Server[TaxRate]); if (IsValidCompanyID(company)) { Companies[company][cSafe] += money - tax; SaveCompany(company); Server[TaxVault] += tax; SaveInformation(); } } /*GetBootOffset(vehicleid, &Float:x, &Float:y, &Float:z) { new Float:fX, Float:fY, Float:fZ, Float:fA, Float:fSX, Float:fSY, Float:fSZ; if (!IsValidVehicle(vehicleid)) { x = 0.0; y = 0.0; z = 0.0; return 0; } else { GetVehiclePos(vehicleid, fX, fY, fZ); GetVehicleZAngle(vehicleid, fA); GetVehicleModelInfo(GetVehicleModel(vehicleid), VEHICLE_MODEL_INFO_SIZE, fSX, fSY, fSZ); x = fX - (floatsqroot(fSY + fSY) * floatsin(-fA, degrees)); y = fY - (floatsqroot(fSY + fSY) * floatcos(-fA, degrees)); z = fZ; } return 1; } GetClosestBoot(playerid) { new vehicleid = GetClosestVehicle(playerid); if (vehicleid != INVALID_VEHICLE_ID && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { new Float:x, Float:y, Float:z; GetBootOffset(vehicleid, x, y, z); if (IsPlayerInRangeOfPoint(playerid, 3.0, x, y, z)) { return vehicleid; } } return INVALID_VEHICLE_ID; }*/ GetClosestVehicle(playerid) { new Float:x, Float:y, Float:z; for (new i = 1; i < MAX_VEHICLES; i ++) { if (!IsValidVehicle(i) || !IsVehicleStreamedIn(i, playerid)) { continue; } else { GetVehiclePos(i, x, y, z); if (IsPlayerInRangeOfPoint(playerid, 3.7, x, y, z)) { return i; } } } return INVALID_VEHICLE_ID; } ClearVehicleObjects(vehicleid) { if (!IsValidVehicle(vehicleid)) return 0; if (IsValidDynamicObject(VehicleInformation[vehicleid][vObject])) { DestroyDynamicObject(VehicleInformation[vehicleid][vObject]); VehicleInformation[vehicleid][vObject] = INVALID_OBJECT_ID; } if (IsValidDynamicObject(gSirenObject[vehicleid])) { DestroyDynamicObject(gSirenObject[vehicleid]); gSirenObject[vehicleid] = INVALID_OBJECT_ID; } if (gCallsignText[vehicleid] != INVALID_3DTEXT_ID) { Delete3DTextLabel(gCallsignText[vehicleid]); gCallsignText[vehicleid] = INVALID_3DTEXT_ID; } if(TaxiObject[vehicleid] != INVALID_OBJECT_ID) { DestroyDynamicObject(TaxiObject[vehicleid]); TaxiObject[vehicleid] = INVALID_OBJECT_ID; } return 1; } ResyncVehicle(vehicleid) { new worldid = GetVehicleVirtualWorld(vehicleid); SetVehicleVirtualWorld(vehicleid, worldid + 1); SetVehicleVirtualWorld(vehicleid, worldid); } ResetVehicle(vehicle) { for (new i = 0; i < 14; i ++) { Vehicles[vehicle][vMods][i] = 0; } strcpy(Vehicles[vehicle][vPlate], "XYZSR998"); DestroyVehicleEx(Vehicles[vehicle][vVehicle]); DestroyDynamic3DTextLabel(Vehicles[vehicle][vText]); Vehicles[vehicle][vID] = 0; Vehicles[vehicle][vExists] = 0; Vehicles[vehicle][vCompany] = 0; Vehicles[vehicle][vOwner] = 0; Vehicles[vehicle][vModel] = 0; Vehicles[vehicle][vPrice] = 0; Vehicles[vehicle][vRentable] = 0; Vehicles[vehicle][vSpawn][0] = 0.0; Vehicles[vehicle][vSpawn][1] = 0.0; Vehicles[vehicle][vSpawn][2] = 0.0; Vehicles[vehicle][vSpawn][3] = 0.0; Vehicles[vehicle][vColor1] = 0; Vehicles[vehicle][vColor2] = 0; Vehicles[vehicle][vPaintjob] = INVALID_ID; Vehicles[vehicle][vLocked] = 0; Vehicles[vehicle][vTrunkMoney] = 0; Vehicles[vehicle][vFaction] = 0; Vehicles[vehicle][vSiren] = 0; Vehicles[vehicle][vAlarm] = 0; Vehicles[vehicle][vImpound] = 0; Vehicles[vehicle][vDespawned] = 0; Vehicles[vehicle][vVehicle] = INVALID_VEHICLE_ID; Vehicles[vehicle][vText] = INVALID_3DTEXT_ID; Vehicles[vehicle][vRenter] = INVALID_PLAYER_ID; } IsAdminNameSetup(playerid) { return (strcmp(Players[playerid][pAdminName], "none", true)); } IsAdminTitleSetup(playerid) { return (strcmp(Players[playerid][pAdminTitle], "none", true)); } IsVehicleSpawnSetup(company) { return (Companies[company][cVehicle][0] != 0.0 && Companies[company][cVehicle][1] != 0.0 && Companies[company][cVehicle][2] != 0.0); } ResetCompany(company) { for (new i = 0; i < MAX_PRODUCTS; i ++) { Products[company][i][prStock] = 0; Products[company][i][prPrice] = 0; } DestroyDynamicCP(Companies[company][cCheckpoint]); DestroyDynamicMapIcon(Companies[company][cIcon]); //DestroyDynamic3DTextLabel(Companies[company][cText]); DestroyDynamic3DTextLabel(Companies[company][cDeliverText]); strcpy(Companies[company][cOwnerName], "Nobody", MAX_PLAYER_NAME); Companies[company][cID] = 0; Companies[company][cExists] = 0; Companies[company][cOwner] = 0; Companies[company][cValue] = 0; Companies[company][cType] = 0; Companies[company][cLocked] = 0; Companies[company][cSafe] = 0; Companies[company][cStock] = 0; Companies[company][cVehicle][0] = 0.0; Companies[company][cVehicle][1] = 0.0; Companies[company][cVehicle][2] = 0.0; Companies[company][cVehicle][3] = 0.0; Companies[company][cInterior] = 0; Companies[company][cWorld] = 0; Companies[company][cExterior] = 0; Companies[company][cExteriorWorld] = 0; Companies[company][cCheckpoint] = INVALID_ID; Companies[company][cIcon] = INVALID_ID; //Companies[company][cText] = INVALID_3DTEXT_ID; Companies[company][cDeliverText] = INVALID_3DTEXT_ID; } IsCompanyOwner(playerid, company) { return (IsValidCompanyID(company)) && (Companies[company][cOwner] == Players[playerid][pID]); } GetPaymentType(playerid) { new ret[16]; if (Players[playerid][pPaymentType] == PAYMENT_TYPE_CASH) ret = "Cash"; else if (Players[playerid][pPaymentType] == PAYMENT_TYPE_BANK) ret = "Bank Account"; return ret; } IsPlayerAtInvalidCoords(playerid) { new Float:fX, Float:fY, Float:fZ; if (GetPlayerPos(playerid, fX, fY, fZ)) { return (fX == 0.0 && fY == 0.0 && fZ == 0.0); } return 0; } IsWeaponModel(model) { for (new i = 0; i < sizeof(g_WeaponInfo); i ++) { if (g_WeaponInfo[i][e_WeaponModel] == model) return 1; } return 0; } IsPlayerNearPoint(playerid, Float:range, Float:x, Float:y, Float:z, interior = -1, world = -1) { if (interior == -1) interior = GetPlayerInterior(playerid); if (world == -1) world = GetPlayerVirtualWorld(playerid); return (IsPlayerInRangeOfPoint(playerid, range, x, y, z)) && (GetPlayerInterior(playerid) == interior && GetPlayerVirtualWorld(playerid) == world); } ResetVehicleStream(vehicleid) { strpack(VehicleInformation[vehicleid][vStream], "Not Specified", 128); } SetupVehicle(vehicleid, color1 = -1, color2 = -1) { if (vehicleid != INVALID_VEHICLE_ID) { ResetVehicleStream(vehicleid); VehicleInformation[vehicleid][vInit] = 1; VehicleInformation[vehicleid][vFuel] = 100; VehicleInformation[vehicleid][vAdmin] = 0; VehicleInformation[vehicleid][vGoods] = 0; VehicleInformation[vehicleid][vObject] = INVALID_OBJECT_ID; VehicleInformation[vehicleid][vColor][0] = color1; VehicleInformation[vehicleid][vColor][1] = color2; VehicleInformation[vehicleid][vWindows] = 1; VehicleInformation[vehicleid][vWindowFL] = 1; VehicleInformation[vehicleid][vWindowFR] = 1; VehicleInformation[vehicleid][vWindowBL] = 1; VehicleInformation[vehicleid][vWindowBR] = 1; gSirenObject[vehicleid] = INVALID_OBJECT_ID; gCallsignText[vehicleid] = INVALID_3DTEXT_ID; } } SpawnConfirmationVehicle(playerid, company, faction, price, modelid, color1, color2, bool:rental = false) { new Float:x, Float:y, Float:z, Float:angle ; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); Players[playerid][pAddVehicle] = SpawnVehicle(modelid, x, y, z, angle, color1, color2, -1, 0); if (IsValidVehicle(Players[playerid][pAddVehicle])) { Players[playerid][pVehiclePrice] = price; Players[playerid][pVehicleCompany] = company; Players[playerid][pVehicleRental] = rental; Players[playerid][pVehicleFaction] = faction; PutPlayerInVehicle(playerid, Players[playerid][pAddVehicle], 0); SetVehicleParamsEx(Players[playerid][pAddVehicle], 1, 1, 0, 0, 0, 0, 0); } return 1; } SpawnVehicle(modelid, Float:fX, Float:fY, Float:fZ, Float:fA, color1, color2, respawn = -1, addsiren = 0) { new vehicleid = INVALID_VEHICLE_ID; if (400 <= modelid <= 611) { vehicleid = AddStaticVehicleEx(modelid, fX, fY, fZ, fA, color1, color2, respawn, addsiren); SetupVehicle(vehicleid, color1, color2); CallLocalFunction("OnVehicleSpawn", "i", vehicleid); } return vehicleid; } GetVehicleModelName(modelid) { new string[32]; if (400 <= modelid <= 611) strcpy(string, g_VehicleNames[modelid - 400]); else string = "Unknown"; return string; } GetVehicleName(vehicleid) { new modelid, string[32]; if (400 <= (modelid = GetVehicleModel(vehicleid)) <= 611) strcpy(string, g_VehicleNames[modelid - 400]); else string = "Unknown"; return string; } GetVehicleModelFromName(const string[]) { new modelid = strval(string); if (400 <= modelid <= 611) { return modelid; } else { for (new i = 0; i < sizeof(g_VehicleNames); i ++) { if (strfind(g_VehicleNames[i], string, true) != -1) { modelid = i + 400; return modelid; } } } return 0; } GetWeaponOffsetType(weaponid) { if (weaponid == 2 || (2 <= weaponid <= 9)) { return WEAPON_TYPE_MELEE; } else if (22 <= weaponid <= 24) { return WEAPON_TYPE_PISTOL; } else if (25 <= weaponid <= 27) { return WEAPON_TYPE_SHOTGUN; } else if (weaponid == 28 || weaponid == 29 || weaponid == 32) { return WEAPON_TYPE_SMG; } else if (weaponid == 30 || weaponid == 31) { return WEAPON_TYPE_ASSAULT; } else if (weaponid == 33 || weaponid == 34) { return WEAPON_TYPE_RIFLE; } return INVALID_ID; } GetPlayerWeaponID(playerid, slot) { if (slot == WEAPON_MELEE) { return Weapons[playerid][wMelee]; } else if (slot == WEAPON_PRIMARY) { return Weapons[playerid][wPrimary]; } else if (slot == WEAPON_SECONDARY) { return Weapons[playerid][wSecondary]; } else if (slot == WEAPON_TERTIARY) { return Weapons[playerid][wTertiary]; } return 0; } GetPlayerWeaponAmmo(playerid, slot) { if (slot == WEAPON_PRIMARY) { return Weapons[playerid][wPrimaryAmmo]; } else if (slot == WEAPON_SECONDARY) { return Weapons[playerid][wSecondaryAmmo]; } else if (slot == WEAPON_TERTIARY) { return Weapons[playerid][wTertiaryAmmo]; } return 0; } PlayerHasWeapon(playerid, weaponid) { if (Weapons[playerid][wMelee] == weaponid || Weapons[playerid][wPrimary] == weaponid || Weapons[playerid][wSecondary] == weaponid || Weapons[playerid][wTertiary] == weaponid) { return 1; } else if (weaponid == 23 && Players[playerid][pTazer]) { return 1; } else if (weaponid == 0 || weaponid == 40 || weaponid == 43 || weaponid == 46) { return 1; } return 0; } SetWeaponHidden(playerid, slot, enable) { if (!(WEAPON_TYPE_MELEE <= slot <= WEAPON_TYPE_RIFLE)) { return 0; } WeaponOffsets[playerid][slot][wHidden] = enable; format(gExecute, sizeof(gExecute), "UPDATE rp_weaponoffsets SET Hidden = %i WHERE ID = %i AND Slot = %i", enable, Players[playerid][pID], slot); mysql_tquery(gConnection, gExecute); return 1; } SetDefaultWeaponOffset(playerid, weaponid) { switch (weaponid) { case 2, 5..9: SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 1, -0.254000, 0.186999, -0.066999, 9.699998, 57.799995, -2.400001); // 0 case 22..24: SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 8, 0.000000, -0.010999, 0.143000, -96.400016, 0.000000, 0.000000); case 25: SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 1, -0.182000, -0.265999, 0.037999, -8.600000, 3.800007, 3.799999); // 1 shotgun case 27: SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 1, -0.286000, -0.170999, 0.001000, 0.000000, 6.199998, 2.999999); case 28, 29, 32: SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 7, 0.041999, -0.068999, -0.131999, -75.299995, 6.900000, 0.100000); // 3 mp5 case 30, 31: SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 1, -0.121999, -0.174998, 0.088999, 0.000000, 35.400012, 0.000000); // 0 m4 case 33, 34: SetWeaponOffset(playerid, GetWeaponOffsetType(weaponid), 1, -0.095000, -0.238999, -0.174999, -3.100000, -25.399997, 3.899999); } } SetWeaponOffset(playerid, slot, bone, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) { if (!(WEAPON_TYPE_MELEE <= slot <= WEAPON_TYPE_RIFLE)) { return 0; } WeaponOffsets[playerid][slot][wBoneID] = bone; WeaponOffsets[playerid][slot][wHidden] = false; WeaponOffsets[playerid][slot][wOffsetX] = x; WeaponOffsets[playerid][slot][wOffsetY] = y; WeaponOffsets[playerid][slot][wOffsetZ] = z; WeaponOffsets[playerid][slot][wOffsetRX] = rx; WeaponOffsets[playerid][slot][wOffsetRY] = ry; WeaponOffsets[playerid][slot][wOffsetRZ] = rz; format(gExecute, sizeof(gExecute), "INSERT INTO rp_weaponoffsets VALUES(%i, %i, %i, 0, %.4f, %.4f, %.4f, %.4f, %.4f, %.4f) ON DUPLICATE KEY UPDATE Bone = %i, Hidden = 0, OffsetX = %.4f, OffsetY = %.4f, OffsetZ = %.4f, OffsetRX = %.4f, OffsetRY = %.4f, OffsetRZ = %.4f", Players[playerid][pID], slot, bone, x, y, z, rx, ry, rz, bone, x, y, z, rx, ry, rz); mysql_tquery(gConnection, gExecute); return 1; } GiveWeaponAmmo(playerid, slot, ammo) { switch (slot) { case WEAPON_PRIMARY: { Weapons[playerid][wPrimaryAmmo] += ammo; GivePlayerWeapon(playerid, Weapons[playerid][wPrimary], ammo); if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { SetPlayerArmedWeapon(playerid, Weapons[playerid][wPrimary]); } else if (GetPlayerState(playerid) != PLAYER_STATE_PASSENGER && !IsDrivebyWeapon(Weapons[playerid][wPrimary])) { SetPlayerArmedWeapon(playerid, 0); } } case WEAPON_SECONDARY: { Weapons[playerid][wSecondaryAmmo] += ammo; GivePlayerWeapon(playerid, Weapons[playerid][wSecondary], ammo); if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { SetPlayerArmedWeapon(playerid, Weapons[playerid][wSecondary]); } else if (GetPlayerState(playerid) != PLAYER_STATE_PASSENGER && !IsDrivebyWeapon(Weapons[playerid][wSecondary])) { SetPlayerArmedWeapon(playerid, 0); } } case WEAPON_TERTIARY: { Weapons[playerid][wTertiaryAmmo] += ammo; GivePlayerWeapon(playerid, Weapons[playerid][wTertiary], ammo); if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { SetPlayerArmedWeapon(playerid, Weapons[playerid][wTertiary]); } else if (GetPlayerState(playerid) != PLAYER_STATE_PASSENGER && !IsDrivebyWeapon(Weapons[playerid][wTertiary])) { SetPlayerArmedWeapon(playerid, 0); } } } } ShowMenuForWeapon(playerid, slot) { new weaponid = GetPlayerWeaponID(playerid, slot); if (weaponid) { new type = GetWeaponOffsetType(weaponid); if (IsWeaponHideable(weaponid)) { if (WeaponOffsets[playerid][type][wHidden]) { Dialog_Show(playerid, AdjustWeapon, DIALOG_STYLE_LIST, "{FFFFFF}Adjust Weapon", "Adjust Bone (%s)\nAdjust Offset\nShow Weapon", "Select", "Cancel", GetBoneName(WeaponOffsets[playerid][type][wBoneID])); } else { Dialog_Show(playerid, AdjustWeapon, DIALOG_STYLE_LIST, "{FFFFFF}Adjust Weapon", "Adjust Bone (%s)\nAdjust Offset\nHide Weapon", "Select", "Cancel", GetBoneName(WeaponOffsets[playerid][type][wBoneID])); } } else { Dialog_Show(playerid, AdjustWeapon, DIALOG_STYLE_LIST, "{FFFFFF}Adjust Weapon", "Adjust Bone (%s)\nAdjust Offset", "Select", "Cancel", GetBoneName(WeaponOffsets[playerid][type][wBoneID])); } } } SetPlayerWeapon(playerid, slot, weaponid, ammo=0, serial=0) { Players[playerid][pAnticheat] = 2; if (!((22 <= weaponid <= 24) && Players[playerid][pTazer])) { SetPlayerArmedWeapon(playerid, 0); ResetPlayerWeapons(playerid); } switch (slot) { case WEAPON_MELEE: { Weapons[playerid][wMelee] = weaponid; } case WEAPON_PRIMARY: { Weapons[playerid][wPrimary] = weaponid; Weapons[playerid][wPrimaryAmmo] = ammo; Weapons[playerid][wPrimarySerial] = serial; } case WEAPON_SECONDARY: { Weapons[playerid][wSecondary] = weaponid; Weapons[playerid][wSecondaryAmmo] = ammo; Weapons[playerid][wSecondarySerial] = serial; } case WEAPON_TERTIARY: { Weapons[playerid][wTertiary] = weaponid; Weapons[playerid][wTertiaryAmmo] = ammo; Weapons[playerid][wTertiarySerial] = serial; } } if (!weaponid) { if (slot == WEAPON_MELEE) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MELEE); } else if (slot == WEAPON_PRIMARY) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_PRIMARY); } else if (slot == WEAPON_SECONDARY) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_SECONDARY); } else if (slot == WEAPON_TERTIARY) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_TERTIARY); } } if (!((22 <= weaponid <= 24) && Players[playerid][pTazer])) { SetWeaponsForPlayer(playerid); if (IsDrivebyWeapon(weaponid) && IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SetPlayerArmedWeapon(playerid, 0); } } } SetWeaponsForPlayer(playerid) { ResetPlayerWeapons(playerid); if (Weapons[playerid][wMelee]) { GivePlayerWeapon(playerid, Weapons[playerid][wMelee], 0); } if (Weapons[playerid][wPrimary] && Weapons[playerid][wPrimaryAmmo]) { GivePlayerWeapon(playerid, Weapons[playerid][wPrimary], Weapons[playerid][wPrimaryAmmo]); } if (Weapons[playerid][wSecondary] && Weapons[playerid][wSecondaryAmmo]) { GivePlayerWeapon(playerid, Weapons[playerid][wSecondary], Weapons[playerid][wSecondaryAmmo]); } if (Weapons[playerid][wTertiary] && Weapons[playerid][wTertiaryAmmo]) { GivePlayerWeapon(playerid, Weapons[playerid][wTertiary], Weapons[playerid][wTertiaryAmmo]); } if (Players[playerid][pCamera] != 0) { GivePlayerWeapon(playerid, 43, 99999); } if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { SetPlayerArmedWeapon(playerid, 0); } return 1; } ResetWeapons(playerid) { Players[playerid][pAnticheat] = 2; SetPlayerArmedWeapon(playerid, 0); ResetPlayerWeapons(playerid); if (Players[playerid][pCamera]) { Players[playerid][pCamera] = 0; } if (Players[playerid][pTazer]) { Players[playerid][pTazer] = 0; } Weapons[playerid][wMelee] = 0; Weapons[playerid][wPrimary] = 0; Weapons[playerid][wPrimaryAmmo] = 0; Weapons[playerid][wPrimarySerial] = 0; Weapons[playerid][wSecondary] = 0; Weapons[playerid][wSecondaryAmmo] = 0; Weapons[playerid][wSecondarySerial] = 0; Weapons[playerid][wTertiary] = 0; Weapons[playerid][wTertiaryAmmo] = 0; Weapons[playerid][wTertiarySerial] = 0; if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_PRIMARY)) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_PRIMARY); } if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_SECONDARY)) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_SECONDARY); } if (IsPlayerAttachedObjectSlotUsed(playerid, ATTACHED_SLOT_TERTIARY)) { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_TERTIARY); } return 1; } IsPlayerSpawned(playerid) { switch (GetPlayerState(playerid)) { case PLAYER_STATE_NONE, PLAYER_STATE_WASTED: return 0; } return 1; } TeleportToPlayer(playerid, targetid) { if (!IsPlayerConnected(playerid) || !IsPlayerConnected(targetid)) { return 0; } else { new Float:x, Float:y, Float:z, Float:a; GetPlayerPos(targetid, x, y, z); GetPlayerFacingAngle(targetid, a); if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SetVehiclePos(GetPlayerVehicleID(playerid), x - (1.0 * floatsin(-a, degrees)), y - (1.0 * floatcos(-a, degrees)), z); LinkVehicleToInterior(GetPlayerVehicleID(playerid), GetPlayerInterior(targetid)); SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(targetid)); } else { SetPlayerPos(playerid, x - (1.0 * floatsin(-a, degrees)), y - (1.0 * floatcos(-a, degrees)), z); } SetPlayerInterior(playerid, GetPlayerInterior(targetid)); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid)); } return 1; } AddIPToBlacklist(ip[], admin[], reason[]) { format(gExecute, sizeof(gExecute), "INSERT INTO rp_blacklist (Player, IP, BannedBy, Date, Reason) VALUES(NULL, '%s', '%s', NOW(), '%s')", ip, admin, mysql_escaped(reason)); mysql_tquery(gConnection, gExecute); foreach (new i : Player) { if (!strcmp(ReturnIP(i), ip)) { SendInfoMessage(i, "Your IP '%s' has been banned.", ip); KickPlayer(i); } } return 1; } AddToBlacklist(playerid, admin[], reason[]) { AddPunishment(playerid, admin, "Ban", reason); format(gExecute, sizeof(gExecute), "INSERT INTO rp_banlogs (Admin, Player, Reason, Date) VALUES('%s', '%s', '%s', NOW())", admin, ReturnName(playerid), mysql_escaped(reason)); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "INSERT INTO rp_blacklist (Player, IP, BannedBy, Date, Reason) VALUES('%s', '%s', '%s', NOW(), '%s')", ReturnName(playerid), ReturnIP(playerid), admin, mysql_escaped(reason)); mysql_tquery(gConnection, gExecute); return KickPlayer(playerid); } AddPunishment(playerid, admin[], type[], reason[]) { if (!IsPlayerNPC(playerid) && Players[playerid][pLoggedIn]) { format(gExecute, sizeof(gExecute), "INSERT INTO rp_punishments (Player, Admin, Type, Date, Reason) VALUES(%i, '%s', '%s', NOW(), '%s')", Players[playerid][pID], admin, type, mysql_escaped(reason)); mysql_tquery(gConnection, gExecute); } return 1; } AddChatLog(playerid, command[], text[]) { if (!IsPlayerNPC(playerid) && Players[playerid][pLoggedIn]) { format(gExecute, sizeof(gExecute), "INSERT INTO rp_chatlogs (Player, Command, Text, Date) VALUES('%s', '%s', '%s', NOW())", ReturnName(playerid), mysql_escaped(command), mysql_escaped(text)); mysql_tquery(gConnection, gExecute); } return 1; } GetNextReportID() { for (new i = 0; i < MAX_REPORTS; i ++) { if (!Reports[i][rExists]) { return i; } } return INVALID_ID; } GetNextEmergencyID() { for (new i = 0; i < MAX_EMERGENCY; i ++) { if (!Emergency[i][ecExists]) { return i; } } return INVALID_ID; } GetNextApbID() { for (new i = 0; i < MAX_APBS; i ++) { if(!Apbs[i][apbExists]) { return i; } } return INVALID_ID; } ReviewReport(playerid, id) { if (!Players[playerid][pAdmin]) return 0; Players[playerid][pSelected] = id; return Dialog_Show(playerid, ReportReview, DIALOG_STYLE_MSGBOX, "{FFFFFF}Review Report", "{6688FF}Reported By:{FFFFFF}\n%s (ID: %i)\n\n{6688FF}Time Left:{FFFFFF}\n%i minutes\n\n{6688FF}Report Text:{FFFFFF}\n%s", "Options", "Back", ReturnNameEx(Reports[id][rReporter]), Reports[id][rReporter], Reports[id][rReportTime], Reports[id][rText]); } ReviewEmergency(playerid, id) { Players[playerid][pSelected] = id; return Dialog_Show(playerid, EmergencyReview, DIALOG_STYLE_MSGBOX, "{FFFFFF}Review Emergency Call", "{6688FF}Service:{FFFFFF}\n%s\n\n{6688FF}Reported By:{FFFFFF}\n%s (%i)\n\n{6688FF}Situation:{FFFFFF}\n%s\n\n{6688FF}Location:{FFFFFF}\n%s", "Handle", "Back", Emergency[id][ecService], Emergency[id][ecName], Emergency[id][ecNumber], Emergency[id][ecSituation], Emergency[id][ecLocation]); } /* { ecExists, ecTime, ecName[128], ecService[32], ecNumber, ecLocation[128], ecSituation[128] }; */ ReviewApb(playerid, id) { if(GetPlayerFactionType(playerid) != FACTION_LEO) return 0; Players[playerid][pSelected] = id; return Dialog_Show(playerid, ApbReview, DIALOG_STYLE_MSGBOX, "{FFFFFF}Review APB", "{6688FF}Reported By:{FFFFFF}\n%s (ID: %i)\n\n{6688FF}Description:{FFFFFF}\n%s","Options","Back",ReturnNameEx(Apbs[id][apbReporter]), Apbs[id][apbReporter], Apbs[id][apbDesc1]); } AddApbToQueue(playerid, const text[]) { new id = GetNextApbID(); if (id != INVALID_ID) { strcpy(Apbs[id][apbDesc1], text, 128); Apbs[id][apbExists] = 1; Apbs[id][apbReporter] = playerid; foreach (new i : Player) { if (GetPlayerFactionType(i) == FACTION_LEO) { SendFormatMessage(i, COLOR_FACTION, "[APB] %s reports: \"%s\"",ReturnNameEx(playerid,0),text); } } } return id; } AddReportToQueue(playerid, const text[]) { new id = GetNextReportID(); if (id != INVALID_ID) { strcpy(Reports[id][rText], text, 128); Reports[id][rExists] = 1; Reports[id][rReportTime] = REPORT_EXPIRE_TIME; Reports[id][rReporter] = playerid; foreach (new i : Player) { if(CheckAdmin(i, 1) && Players[i][pShowReports]) { SendFormatMessage(i, COLOR_YELLOW, "(REPORT) %s (ID: %i) reports: \"%s\"", ReturnNameEx(playerid, 0), playerid, text); } } } return id; } AddEmergency(const name[], const service[], number, const location[], const situation[]) { new id = GetNextEmergencyID(); if (id != INVALID_ID) { strcpy(Emergency[id][ecName], name, 128); strcpy(Emergency[id][ecService], service, 32); strcpy(Emergency[id][ecLocation], location, 128); strcpy(Emergency[id][ecSituation], situation, 128); Emergency[id][ecNumber] = number; Emergency[id][ecExists] = 1; Emergency[id][ecTime] = EMERGENCY_EXPIRE_TIME; } return id; } /* enum e_EmergencyCalls { ecExists, ecTime ecName[128], ecService[32], ecNumber, ecLocation[128], ecSituation[128] }; */ /*ListEmergency(playerid) { static displayString[2048]; new index = 0; displayString = "Service\tLocation\tName\tNumber"; for (new i = 0; i < MAX_EMERGENCY; i ++) { if (Emergency[i][ecExists]) { format(displayString, sizeof(displayString), "%s\n%s\t%s\t%s\t%i", Emergency[i][ecService], Emergency[i][ecLocation], Emergency[i][ecName], Emergency[i][ecNumber]); gListedItems[playerid][index++] = i; } } Dialog_Show(playerid, SafeItems, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Last Emergency Calls", displayString, "Select", "Back"); return 1; }*/ ListEmergency(playerid) { new index = 0; gListString[0] = 0; for (new i = 0; i < MAX_EMERGENCY; i ++) { if (Emergency[i][ecExists]) { format(gListString, sizeof(gListString), "%s\n%s, %s (%s) -> %.24s...", gListString, Emergency[i][ecService], Emergency[i][ecName], Emergency[i][ecLocation], Emergency[i][ecSituation]); gListedItems[playerid][index++] = i; } } if (strlen(gListString)) { return Dialog_Show(playerid, EmergencyList, DIALOG_STYLE_LIST, "{FFFFFF}Last Emergency Calls", gListString, "Review", "Cancel"); } return 0; } ListReports(playerid) { new index = 0; gListString[0] = 0; for (new i = 0; i < MAX_REPORTS; i ++) { if (Reports[i][rExists]) { format(gListString, sizeof(gListString), "%s\n%s (%i) -> %.24s...", gListString, ReturnNameEx(Reports[i][rReporter]), Reports[i][rReporter], Reports[i][rText]); gListedItems[playerid][index++] = i; } } if (strlen(gListString)) { return Dialog_Show(playerid, ReportList, DIALOG_STYLE_LIST, "{FFFFFF}Report List", gListString, "Review", "Cancel"); } return 0; } ListApbs(playerid) { new index = 0; gListString[0] = 0; for (new i = 0; i < MAX_APBS; i ++) { if (Apbs[i][apbExists]) { format(gListString, sizeof(gListString), "%s\n%s -> %.24s...",gListString, ReturnNameEx(Apbs[i][apbReporter]),Apbs[i][apbDesc1]); gListedItems[playerid][index++] = i; } } if(strlen(gListString)) { return Dialog_Show(playerid, ApbList, DIALOG_STYLE_LIST, "{FFFFFF}APB List", gListString, "Review", "Cancel"); } return 0; } UpdateSkinSelection(playerid, index) { new size; if (Players[playerid][pGender] == GENDER_MALE) { size = sizeof(g_MaleSkins); } else if (Players[playerid][pGender] == GENDER_FEMALE) { size = sizeof(g_FemaleSkins); } if (index < 0) { index = --size; } else if (index >= size) { index = 0; } Players[playerid][pOutfit] = index; if (Players[playerid][pGender] == GENDER_MALE) { Players[playerid][pSkin] = g_MaleSkins[index]; } else if (Players[playerid][pGender] == GENDER_FEMALE) { Players[playerid][pSkin] = g_FemaleSkins[index]; } SetPlayerSkin(playerid, Players[playerid][pSkin]); } ResetCharacterSetup(playerid) { if (!Players[playerid][pSetupInfo]) { Players[playerid][pSkin] = g_MaleSkins[0]; Players[playerid][pAge] = 13; Players[playerid][pGender] = GENDER_MALE; Players[playerid][pOutfit] = 0; SetPlayerSkin(playerid, Players[playerid][pSkin]); UpdateCharacterSetup(playerid); } } UpdateCharacterSetup(playerid) { new string[64]; if (Players[playerid][pGender] == GENDER_MALE) { PlayerTextDrawSetString(playerid, Players[playerid][pText][89], "Male"); PlayerTextDrawSetString(playerid, Players[playerid][pText][90], "Female"); } else if (Players[playerid][pGender] == GENDER_FEMALE) { PlayerTextDrawSetString(playerid, Players[playerid][pText][89], "Male"); PlayerTextDrawSetString(playerid, Players[playerid][pText][90], "Female"); } format(string, sizeof(string), "%i years old", Players[playerid][pAge]); PlayerTextDrawSetString(playerid, Players[playerid][pText][92], string); format(string, sizeof(string), "Skin: %i/%i", Players[playerid][pOutfit] + 1, (Players[playerid][pGender] == GENDER_MALE ? sizeof(g_MaleSkins) : sizeof(g_FemaleSkins))); PlayerTextDrawSetString(playerid, Players[playerid][pText][96], string); } IsValidOrigin(const str[]) { new len = strlen(str); for (new i = 0; i < len; i ++) { if (('A' <= str[i] <= 'Z') || ('a' <= str[i] <= 'z') || ('0' <= str[i] <= '9') || (str[i] == ' ')) continue; else return 0; } return 1; } IsValidIP(const ip[]) { new part[4]; if (sscanf(ip, "p<.>dddd", part[0], part[1], part[2], part[3])) { return 0; } return (0 <= part[0] <= 255) && (0 <= part[1] <= 255) && (0 <= part[2] <= 255) && (0 <= part[3] <= 255); } IsRoleplayName(const name[]) { if (!('A' <= name[0] <= 'Z') || strfind(name, "_") == -1) return 0; for (new i = 0, l = strlen(name); i < l; i ++) { if ('a' <= name[i] <= 'z' || 'A' <= name[i] <= 'Z') continue; else if (name[i] == '_') { if (!('A' <= name[i + 1] <= 'Z')) return 0; else continue; } } return 1; } IsValidName(name[], length_check = 1) { new i = 0; if ((length_check) && !(3 <= strlen(name) <= MAX_PLAYER_NAME)) return 0; while (name[i]) { switch (name[i++]) { case 'A'..'Z', 'a'..'z', '0'..'9', '@', '$', '(', ')', '[', ']', '=', '_': continue; default: return 0; } } return 1; } SendToDefaultSpawn(playerid) { SetCameraBehindPlayer(playerid); SetPlayerPos(playerid, 1641.8969,-2333.1714,13.5469); SetPlayerFacingAngle(playerid, 0.0000); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); } SetPlayerSpawn(playerid) { if (Players[playerid][pJailType] > 0) { SpawnPlayerInJail(playerid); SendInfoMessage(playerid, "You have %i more minutes to serve in jail.", Players[playerid][pJailTime] / 60); } else { if (Players[playerid][pDeathState] == DEATH_STATE_INJURED) { if (IsValidDynamic3DTextLabel(Players[playerid][pInjuredText])) { DestroyDynamic3DTextLabel(Players[playerid][pInjuredText]); } Players[playerid][pInjuredText] = CreateDynamic3DTextLabel("Injured Player\n(( /damages ))", COLOR_GREY, 0.0, 0.0, 0.4, 20.0, playerid); Players[playerid][pDeathTime] = gettime() + 120; SetPlayerPosEx(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], Players[playerid][pSpawn][3], Players[playerid][pInterior], Players[playerid][pWorld]); //TogglePlayerControllable(playerid, 0); ApplyAnimation(playerid, "CRACK", "crckdeth4", 4.1, 0, 0, 0, 1, 0, 1); SendInfoMessage(playerid, "{CFCFCF}(Deathmode) You are wounded. You must wait {FF5030}120{CFCFCF} seconds before accepting death. /acceptdeath"); } /*else if (Players[playerid][pDeathState] == DEATH_STATE_MELEE) { //SetPlayerPosEx(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], Players[playerid][pSpawn][3], Players[playerid][pInterior], Players[playerid][pWorld]); SetFreezePos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], 5000); SetPlayerVirtualWorld(playerid, Players[playerid][pWorld]); SetPlayerInterior(playerid, Players[playerid][pInterior]); ApplyAnimation(playerid, "SWAT", "gnstwall_injurd", 4.1, 1, 0, 0, 0, 0, 1); SendInfoMessage(playerid, "You have been beaten in a melee fight. Please roleplay your injuries."); }*/ else if (Players[playerid][pDeathState] == DEATH_STATE_HOSPITAL) { SpawnInsideHospital(playerid); } else if (Players[playerid][pSpawn][0] == 0.0 && Players[playerid][pSpawn][1] == 0.0 && Players[playerid][pSpawn][2] == 0.0) { SendToDefaultSpawn(playerid); } else { if(Players[playerid][pCrashed]) { Players[playerid][pCrashed] = 0; SendInfoMessage(playerid, "{CFCFCF}(Crashed) You was sent back to your original position before the crash."); SetFreezePos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], 3000); SetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]); SetPlayerInterior(playerid, Players[playerid][pInterior]); SetPlayerVirtualWorld(playerid, Players[playerid][pWorld]); } else { switch(Players[playerid][pSpawnType]) // Spawn types - added by Grime/Emmet (09-27-2017) { case SPAWN_TYPE_LAST: { if (Players[playerid][pInterior] > 0 || Players[playerid][pWorld] > 0) { SetFreezePos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], 3000); } else { SetPlayerPos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2]); } SetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]); SetPlayerInterior(playerid, Players[playerid][pInterior]); SetPlayerVirtualWorld(playerid, Players[playerid][pWorld]); } case SPAWN_TYPE_AIRPORT: { //SendToDefaultSpawn(playerid); } case SPAWN_TYPE_HOUSE: { new houseid = -1; for(new i = 0; i < MAX_HOUSES; i ++) { if(IsValidHouseID(i) && IsHouseOwner(playerid, i) && Houses[i][hID] == Players[playerid][pSpawnExtra]) { houseid = i; break; } } if(houseid == -1) { SendToDefaultSpawn(playerid); SendClientMessage(playerid, COLOR_RED, "The house you've chosen to spawn at doesn't exist - you spawned at the airport."); } else { SetFreezePos(playerid, Houses[houseid][hSpawn][0], Houses[houseid][hSpawn][1], Houses[houseid][hSpawn][2], 3000); SetPlayerFacingAngle(playerid, Houses[houseid][hSpawn][3]); SetPlayerInterior(playerid, Houses[houseid][hExterior]); SetPlayerVirtualWorld(playerid, Houses[houseid][hExteriorWorld]); } } case SPAWN_TYPE_COMPANY: { new companyid = -1; for(new i = 0; i < MAX_COMPANIES; i ++) { if(IsValidCompanyID(i) && IsCompanyOwner(playerid, i) && Companies[i][cID] == Players[playerid][pSpawnExtra]) { companyid = i; break; } } if(companyid == -1) { SendToDefaultSpawn(playerid); SendClientMessage(playerid, COLOR_RED, "The company you've chosen to spawn at doesn't exist - you spawned at the airport."); } else { SetFreezePos(playerid, Companies[companyid][cSpawn][0], Companies[companyid][cSpawn][1], Companies[companyid][cSpawn][2], 3000); SetPlayerFacingAngle(playerid, Companies[companyid][cInt][3]); SetPlayerInterior(playerid, Companies[companyid][cExterior]); SetPlayerVirtualWorld(playerid, Companies[companyid][cExteriorWorld]); } } case SPAWN_TYPE_FACTION: { if(Players[playerid][pFaction] == INVALID_ID) { SendToDefaultSpawn(playerid); SendClientMessage(playerid, COLOR_RED, "You are not apart of the faction you've chosen to spawn at - you spawned at the airport."); } else if(Factions[Players[playerid][pFaction]][fcSpawnX] == 0.0 && Factions[Players[playerid][pFaction]][fcSpawnY] == 0.0 && Factions[Players[playerid][pFaction]][fcSpawnZ] == 0.0) { SendToDefaultSpawn(playerid); SendErrorMessage(playerid, "Your faction's spawn is not set up currently - you spawned at the airport."); } else { SetFreezePos(playerid, Factions[Players[playerid][pFaction]][fcSpawnX], Factions[Players[playerid][pFaction]][fcSpawnY], Factions[Players[playerid][pFaction]][fcSpawnZ], 3000); SetPlayerFacingAngle(playerid, Factions[Players[playerid][pFaction]][fcSpawnA]); SetPlayerInterior(playerid, Factions[Players[playerid][pFaction]][fcSpawnInt]); SetPlayerVirtualWorld(playerid, Factions[Players[playerid][pFaction]][fcSpawnWorld]); } } default: { SendToDefaultSpawn(playerid); SendClientMessage(playerid, COLOR_RED, "Invalid spawn type - you spawned at the airport."); } } } SetCameraBehindPlayer(playerid); SetPlayerHealth(playerid, Players[playerid][pHealth]); SetPlayerValidArmor(playerid, Players[playerid][pArmor]); } SetWeaponsForPlayer(playerid); } AttachObjectsToPlayer(playerid); ShowTimeForPlayer(playerid, Players[playerid][pShowTime]); Players[playerid][pUnfairDeath] = 0; return 1; } SpawnInsideHospital(playerid) { new index = random(sizeof(g_HospitalSpawns)); DestroyDynamic3DTextLabel(Players[playerid][pInjuredText]); if (Players[playerid][pHospital] == HOSPITAL_NONE) { SetPlayerVirtualWorld(playerid, HOSPITAL_COUNTY_GENERAL); } else { SetPlayerVirtualWorld(playerid, Players[playerid][pHospital]); } Players[playerid][pInjuredText] = INVALID_3DTEXT_ID; Players[playerid][pHospital] = HOSPITAL_NONE; SetPlayerPosEx(playerid, g_HospitalSpawns[index][0], g_HospitalSpawns[index][1], g_HospitalSpawns[index][2], 180.0000, 8, Players[playerid][pHospital]); ResetWeapons(playerid); TogglePlayerControllable(playerid, 0); ApplyAnimation(playerid, "CRACK", "crckidle4", 4.1, 1, 0, 0, 1, 0, 1); SendInfoMessage(playerid, "You must spend some time in the hospital to recover."); KillTimer(Timers[playerid][tHospital]); Timers[playerid][tHospital] = SetTimerEx("PlayerRecover", 15000, false, "i", playerid); return 1; } ResetSpawnInfo(playerid) { Players[playerid][pSpawn][0] = 0.0; Players[playerid][pSpawn][1] = 0.0; Players[playerid][pSpawn][2] = 0.0; Players[playerid][pSpawn][3] = 0.0; Players[playerid][pInterior] = 0; Players[playerid][pWorld] = 0; } SpawnPlayerInJail(playerid) { switch (Players[playerid][pJailType]) { case 1: // Admin jail { SetPlayerPosEx(playerid, 198.6772, 161.8068, 1003.0300, 180.0000, .interior = 3, .world = playerid); } case 2: // IC prison { new cell = randomEx(1, 13); switch(cell) { case 1: { SetFreezePos(playerid, 2592.0857,-1504.0573,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 2: { SetFreezePos(playerid, 2592.1113,-1506.9465,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 3: { SetFreezePos(playerid, 2592.0310,-1511.2773,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 4: { SetFreezePos(playerid, 2591.2156,-1514.5721,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 5: { SetFreezePos(playerid, 2592.0066,-1518.1298,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 6: { SetFreezePos(playerid, 2587.5442,-1527.0267,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 7: { SetFreezePos(playerid, 2583.5703,-1526.7782,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 8: { SetFreezePos(playerid, 2580.3545,-1526.7935,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 9: { SetFreezePos(playerid, 2574.7024,-1516.4629,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 10: { SetFreezePos(playerid, 2573.2253,-1512.4327,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 11: { SetFreezePos(playerid, 2573.2837,-1509.4783,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 12: { SetFreezePos(playerid, 2573.1831,-1505.6473,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } case 13: { SetFreezePos(playerid, 2573.3062,-1502.3737,-48.9141, 3000); SetPlayerInterior(playerid, GetPrisonInterior()); SetPlayerVirtualWorld(playerid, GetPrisonVirtualWorld()); } } } } ResetWeapons(playerid); RemoveAttachedObjects(playerid); return 1; } SpectatePlayer(playerid, targetid) { if (targetid == INVALID_PLAYER_ID) { TogglePlayerSpectating(playerid, false); SpawnPlayer(playerid); } else { TogglePlayerSpectating(playerid, true); SetPlayerInterior(playerid, GetPlayerInterior(targetid)); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid)); if (IsPlayerInAnyVehicle(targetid)) { PlayerSpectateVehicle(playerid, GetPlayerVehicleID(targetid)); } else { PlayerSpectatePlayer(playerid, targetid); } } Players[playerid][pSpectate] = targetid; return 1; } INI_GetInteger(File:file, name[]) { new retString[16]; INI_GetValue(file, name, retString, sizeof(retString)); return strval(retString); } INI_WriteInt(File:file, name[], value) { new writeString[64]; format(writeString, sizeof(writeString), "%s = %i\r\n", name, value); return fwrite(file, writeString); } INI_WriteValue(File:file, name[], value[]) { new writeString[128]; format(writeString, sizeof(writeString), "%s = %s\r\n", name, value); return fwrite(file, writeString); } INI_GetValue(File:file, name[], dest[], size = sizeof(dest)) { if (file) { new str[128], pos; fseek(file, 0, seek_start); while (fread(file, str, sizeof(str))) { if (strfind(str, name, false) == 0) { if (str[(pos = strlen(name))] == ' ') strmid(dest, str, pos + 3, strlen(str), size); else strmid(dest, str, pos + 1, strlen(str), size); if ((pos = strfind(dest, "\r")) != -1) dest[pos] = '\0'; if ((pos = strfind(dest, "\n")) != -1) dest[pos] = '\0'; } } } return 1; } FormatNumber(number, money = true) { new value[32], length; format(value, sizeof(value), "%i", (number < 0) ? (-number) : (number)); length = strlen(value); if (length > 3) { for (new l = 0, i = length; --i >= 0; l ++) { if ((l % 3 == 0) && l > 0) strins(value, ",", i + 1); } } if (money) strins(value, "$", 0); if (number < 0) strins(value, "-", 0); return value; } GetItemDropOffset(name[], &Float:z, &Float:rx, &Float:ry) { new model = GetItemInformation(name, ITEM_INFO_MODEL); if (IsWeaponModel(model)) { z = 1.0; rx = 93.0; ry = 90.0; } else { z = 0.9; rx = 0.0; ry = 0.0; } for (new i = 0; i < sizeof(g_GroundOffsets); i ++) { if (!strcmp(g_GroundOffsets[i][e_Item], name)) { z = g_GroundOffsets[i][e_OffsetZ]; rx = g_GroundOffsets[i][e_OffsetRX]; ry = g_GroundOffsets[i][e_OffsetRY]; } } return 1; } RemoveAttachedObjects(playerid) { for (new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i ++) { if (IsPlayerAttachedObjectSlotUsed(playerid, i)) { RemovePlayerAttachedObject(playerid, i); } } return 1; } UpdateAttachedObjects(playerid) { UpdateWeaponHolster(playerid); } GetAccessoryListStart(category) { for (new i = 0; i < sizeof(g_AccessoryList); i ++) { if (g_AccessoryList[i][e_AccessoryCategory] == category) { return i; } } return INVALID_ID; } GetAccessoryListEnd(category) { new start = GetAccessoryListStart(category); for (new i = start; i < sizeof(g_AccessoryList); i ++) { if (i + 1 == sizeof(g_AccessoryList) || g_AccessoryList[i + 1][e_AccessoryCategory] != category) { return i; } } return INVALID_ID; } HideAccessoryPreviewer(playerid) { Players[playerid][pAccessoryMenu] = 0; HidePlayerTextDraws(playerid, 63, 69); CancelSelectTextDraw(playerid); } UpdateAccessoryPreviewer(playerid) { new index = Players[playerid][pPreviewIndex]; PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][66], g_AccessoryList[index][e_AccessoryModel]); PlayerTextDrawHide(playerid, Players[playerid][pText][66]); PlayerTextDrawShow(playerid, Players[playerid][pText][66]); } PreviewAccessory(playerid, index) { switch (g_AccessoryList[index][e_AccessoryCategory]) { case ACCESSORY_GLASSES: { SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, g_AccessoryList[index][e_AccessoryModel], 2, 0.102999, 0.041000, 0.000999, 0.000000, 88.500030, 86.300010); } case ACCESSORY_BANDANAS: { /*if (g_AccessoryList[index][e_AccessoryModel] == 19521) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) SendErrorMessage(playerid, "You are not allowed to purchase this item."); }*/ SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, g_AccessoryList[index][e_AccessoryModel], 2, 0.078534, 0.041857, -0.001727, 268.970458, 1.533374, 269.223754); } case ACCESSORY_HATS: { SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, g_AccessoryList[index][e_AccessoryModel], 2, 0.181000, -0.015000, 0.000000, 0.000000, 0.000000, 0.000000); } case ACCESSORY_BAGS: { SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, g_AccessoryList[index][e_AccessoryModel], 6, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); } } EditAttachedObjectEx(playerid, EDIT_TYPE_PREVIEW, ATTACHED_SLOT_MISC); SendInfoMessage(playerid, "Click the disk icon to save changes or press ESC to cancel."); } ShowAccessoryPreviewer(playerid, category) { new start = GetAccessoryListStart(category); Players[playerid][pPreviewIndex] = start; Players[playerid][pAccessoryMenu] = 1; Players[playerid][pCategory] = category; PlayerTextDrawSetString(playerid, Players[playerid][pText][65], "Accessories"); PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][66], g_AccessoryList[start][e_AccessoryModel]); switch (category) { case ACCESSORY_GLASSES: { PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][66], 0.0, 0.0, 90.0); } case ACCESSORY_BANDANAS: { PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][66], 0.0, 0.0, -90.0); } case ACCESSORY_HATS: { PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][66], 0.0, -90.0, 0.0); } case ACCESSORY_BAGS: { PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][66], 0.0, 0.0, 0.0); } } ShowPlayerTextDraws(playerid, 63, 69); SelectTextDrawEx(playerid, -1); return 1; } GetAccessoryNameFromModel(modelid) { new name[32] = "Unknown"; for (new i = 0; i < sizeof(g_AccessoryList); i ++) { if (g_AccessoryList[i][e_AccessoryModel] == modelid) { strcpy(name, g_AccessoryList[i][e_AccessoryName]); break; } } return name; } GetAccessoryName(playerid, id) { new name[32] = "Unknown"; if(isnull(Accessories[playerid][id][aName]) || !strcmp(Accessories[playerid][id][aName], "None", true)) { for (new i = 0; i < sizeof(g_AccessoryList); i ++) { if (g_AccessoryList[i][e_AccessoryModel] == Accessories[playerid][id][aModel]) { strcpy(name, g_AccessoryList[i][e_AccessoryName]); break; } } } else { strcpy(name, Accessories[playerid][id][aName]); } return name; } ListAccessories(playerid) { new index = 0; gListString[0] = 0; for (new i = 0; i < MAX_ACCESSORIES; i ++) { if (Accessories[playerid][i][aExists]) { if (Accessories[playerid][i][aAttached]) format(gListString, sizeof(gListString), "%s\n%s (Attached) (model ID: %i)", gListString, GetAccessoryName(playerid, i), Accessories[playerid][i][aModel]); else format(gListString, sizeof(gListString), "%s\n%s (model ID: %i)", gListString, GetAccessoryName(playerid, i), Accessories[playerid][i][aModel]); gListedItems[playerid][index++] = i; } } if (index > 0) { return Dialog_Show(playerid, Accessories, DIALOG_STYLE_LIST, "{FFFFFF}My accessories", gListString, "Select", "Cancel"); } return 0; } DeleteAccessory(playerid, id) { if (Accessories[playerid][id][aExists]) { RemovePlayerAttachedObject(playerid, id); format(gExecute, sizeof(gExecute), "DELETE FROM rp_accessories WHERE aID = %i", Accessories[playerid][id][aID]); mysql_tquery(gConnection, gExecute); Accessories[playerid][id][aExists] = 0; Accessories[playerid][id][aID] = 0; } return 1; } AddAccessory(playerid, name[], modelid, bone, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:sx, Float:sy, Float:sz) { new id = GetNextAccessoryID(playerid); if (id != INVALID_ID) { strcpy(Accessories[playerid][id][aName], name, 32); Accessories[playerid][id][aExists] = 1; Accessories[playerid][id][aAttached] = 0; Accessories[playerid][id][aModel] = modelid; Accessories[playerid][id][aBone] = bone; Accessories[playerid][id][aOffset][0] = x; Accessories[playerid][id][aOffset][1] = y; Accessories[playerid][id][aOffset][2] = z; Accessories[playerid][id][aOffset][3] = rx; Accessories[playerid][id][aOffset][4] = ry; Accessories[playerid][id][aOffset][5] = rz; Accessories[playerid][id][aOffset][6] = sx; Accessories[playerid][id][aOffset][7] = sy; Accessories[playerid][id][aOffset][8] = sz; AttachObjectsToPlayer(playerid); format(gExecute, sizeof(gExecute), "INSERT INTO rp_accessories (ID) VALUES(%i)", Players[playerid][pID]); mysql_tquery(gConnection, gExecute, "OnAccessoryAdded", "ii", playerid, id); } return id; } SaveAccessory(playerid, id) { static queryString[512]; if (!Accessories[playerid][id][aExists]) return 0; mysql_format(gConnection, queryString, sizeof(queryString), "UPDATE rp_accessories SET aName = '%e', aModel = %i, aBone = %i, aX = '%f', aY = '%f', aZ = '%f', aRX = '%f', aRY = '%f', aRZ = '%f', aSX = '%f', aSY = '%f', aSZ = '%f' WHERE aID = %i", Accessories[playerid][id][aName], Accessories[playerid][id][aModel], Accessories[playerid][id][aBone], Accessories[playerid][id][aOffset][0], Accessories[playerid][id][aOffset][1], Accessories[playerid][id][aOffset][2], Accessories[playerid][id][aOffset][3], Accessories[playerid][id][aOffset][4], Accessories[playerid][id][aOffset][5], Accessories[playerid][id][aOffset][6], Accessories[playerid][id][aOffset][7], Accessories[playerid][id][aOffset][8], Accessories[playerid][id][aID] ); return mysql_tquery(gConnection, queryString); } AttachObjectsToPlayer(playerid) { for (new i = 0; i < MAX_ACCESSORIES; i ++) { if (Accessories[playerid][i][aExists]) { if (!Accessories[playerid][i][aAttached]) { RemovePlayerAttachedObject(playerid, i); } else { SetPlayerAttachedObject(playerid, i, Accessories[playerid][i][aModel], Accessories[playerid][i][aBone], Accessories[playerid][i][aOffset][0], Accessories[playerid][i][aOffset][1], Accessories[playerid][i][aOffset][2], Accessories[playerid][i][aOffset][3], Accessories[playerid][i][aOffset][4], Accessories[playerid][i][aOffset][5], Accessories[playerid][i][aOffset][6], Accessories[playerid][i][aOffset][7], Accessories[playerid][i][aOffset][8] ); } } } return 1; } GetWeaponIDFromModel(model) { for (new i = 0; i < sizeof(g_WeaponInfo); i ++) { if (g_WeaponInfo[i][e_WeaponModel] == model) { return i; } } return 0; } /* {"Steroids", 2891, 1, true, true, true}, {"Heroin", 2891, 1, true, true, true}, {"LSD", 2891, 1, true, true, true}, {"Ecstasy", 2891, 1, true, true, true}, {"Marijuana", 2891, 1, true, true, true}, {"Crack", 2891, 1, true, true, true}, {"Cocaine", 2891, 1, true, true, true}, {"Methamphetamine", 2891, 1, true, true, true}, {"PCP", 2891, 1, true, true, true}, */ GetPackagePrice(type) { if (type == PACKAGE_TYPE_MELEE) return 3000; else if (type == PACKAGE_TYPE_PISTOLS) return 22500; else if (type == PACKAGE_TYPE_SHOTGUNS) return 21000; else if (type == PACKAGE_TYPE_SMGS) return 10500; else if (type == PACKAGE_TYPE_RIFLES) return 42000; else if (type == PACKAGE_TYPE_EXPLOSIVES) return 150000; else if (type == PACKAGE_TYPE_STEROIDS) return 2000; else if (type == PACKAGE_TYPE_HEROIN) return 6100; else if (type == PACKAGE_TYPE_LSD) return 4100; else if (type == PACKAGE_TYPE_ECSTASY) return 4100; else if (type == PACKAGE_TYPE_MARIJUANA) return 4100; else if (type == PACKAGE_TYPE_CRACK) return 4100; else if (type == PACKAGE_TYPE_COCAINE) return 4100; else if (type == PACKAGE_TYPE_METH) return 4100; else if (type == PACKAGE_TYPE_PCP) return 4100; else if (type == PACKAGE_TYPE_AMMO_1) return 4100; else if (type == PACKAGE_TYPE_AMMO_2) return 4000; else if (type == PACKAGE_TYPE_AMMO_3) return 2500; else if (type == PACKAGE_TYPE_AMMO_4) return 5000; else if (type == PACKAGE_TYPE_AMMO_5) return 5000; else if (type == PACKAGE_TYPE_AMMO_6) return 5000; return 0; } IsWeaponPackage(const item[]) { if (!strcmp(item, "Melee Package")) return 1; else if (!strcmp(item, "Pistol Package")) return 1; else if (!strcmp(item, "Shotgun Package")) return 1; else if (!strcmp(item, "SMG Package")) return 1; else if (!strcmp(item, "Rifle Package")) return 1; return 0; } GetItemInformation(const item[], type) { for (new i = 0; i < sizeof(g_ItemList); i ++) { if (!strcmp(g_ItemList[i][e_ItemName], item)) { if (type == ITEM_INFO_MODEL) return g_ItemList[i][e_ItemModel]; else if (type == ITEM_INFO_WEIGHT) return g_ItemList[i][e_ItemWeight]; else if (type == ITEM_INFO_VALUE) return g_ItemList[i][e_ItemValue]; else if (type == ITEM_INFO_WEAPON_ID) { new weaponid = GetWeaponIDFromModel(g_ItemList[i][e_ItemModel]); if (weaponid == 43 || weaponid == 46) return 0; return weaponid; } else if (type == ITEM_INFO_ILLEGAL) return g_ItemList[i][e_ItemIllegal]; else if (type == ITEM_INFO_STACKABLE) return g_ItemList[i][e_ItemStackable]; else if (type == ITEM_INFO_DRUG) return g_ItemList[i][e_ItemModel] == 2891; } } return 0; } ShowTimeForPlayer(playerid, show) { if (show) { TextDrawShowForPlayer(playerid, gGlobalTextdraws[1]); } else { TextDrawHideForPlayer(playerid, gGlobalTextdraws[1]); } } ShowSpeedometer(playerid, show) { if (show) { PlayerTextDrawShow(playerid, Players[playerid][pText][26]); } else { PlayerTextDrawHide(playerid, Players[playerid][pText][26]); } } ShowFuelGauge(playerid, show) { if (show) { ShowPlayerTextDraws(playerid, 27, 32); if (IsPlayerInAnyVehicle(playerid) && IsPoweredVehicle(GetPlayerVehicleID(playerid))) { UpdateFuelGauge(GetPlayerVehicleID(playerid)); } } else { HidePlayerTextDraws(playerid, 27, 32); } return 1; } GivePlayerHealth(playerid, Float:amount) { new Float:health; GetPlayerHealth(playerid, health); health += amount; if (health > 100.0) { SetPlayerHealth(playerid, 100.0); } else { SetPlayerHealth(playerid, health); } } AddFitnessForPlayer(playerid) { if (Players[playerid][pFitness] < 100) { Players[playerid][pFitness]++; } } Float:GetVehicleKMH(vehicleid) { new Float:fX, Float:fY, Float:fZ; if (GetVehicleVelocity(vehicleid, fX, fY, fZ)) { return floatsqroot((fX * fX) + (fY * fY) + (fZ * fZ)) * 181.5; } return 0.0; } Float:GetVehicleMPH(vehicleid) { new Float:fX, Float:fY, Float:fZ; if (GetVehicleVelocity(vehicleid, fX, fY, fZ)) { return floatsqroot( fX*fX + fY*fY + fZ*fZ ) * 180 / 1.609344; // Mph } return 0.0; } SetAlarmStatus(vehicleid, enable) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehicleid, engine, lights, enable, doors, bonnet, boot, objective); } SetEngineStatus(vehicleid, enable) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehicleid, enable, lights, alarm, doors, bonnet, boot, objective); } GetEngineStatus(vehicleid) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); return (engine == VEHICLE_PARAMS_ON); } SetLightsStatus(vehicleid, enable) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehicleid, engine, enable, alarm, doors, bonnet, boot, objective); } GetLightsStatus(vehicleid) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); return (lights == VEHICLE_PARAMS_ON); } SetLockStatus(vehicleid, enable) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehicleid, engine, lights, alarm, enable, bonnet, boot, objective); } SetHoodStatus(vehicleid, enable) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, enable, boot, objective); } GetHoodStatus(vehicleid) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); return (bonnet == VEHICLE_PARAMS_ON); } SetBootStatus(vehicleid, enable) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, enable, objective); } GetBootStatus(vehicleid) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); return (boot == VEHICLE_PARAMS_ON); } /*GetLockStatus(vehicleid) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); return (doors == VEHICLE_PARAMS_ON); }*/ EngineCaller(playerid) // Code for starting the vehicle's engine. { new vehicleid = GetPlayerVehicleID(playerid); if (IsPoweredVehicle(vehicleid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { if (GetEngineStatus(vehicleid)) { SetEngineStatus(vehicleid, 0); SendInfoMessage(playerid, "You have turned off the engine."); } else { new id = GetVehicleID(vehicleid); if (!VehicleInformation[vehicleid][vFuel]) { SendErrorMessage(playerid, "This vehicle cannot start as it has no fuel."); } else if (GetVehicleHealthEx(vehicleid) <= 300.0) { SendErrorMessage(playerid, "This vehicle is totalled and can't be started."); } else if(!GetVehicleKeys(playerid, vehicleid)) { if(IsRentalCar(vehicleid)) { return SendErrorMessage(playerid, "You can't hotwire a rental vehicle."); } if (Players[playerid][pHotwire] == vehicleid) { Players[playerid][pHotwire] = INVALID_VEHICLE_ID; Players[playerid][pHotwireTime] = 0; SendInfoMessage(playerid, "You have stopped hotwiring this vehicle."); HideFooterText(playerid); } else { ShowActionBubble(playerid, "* %s takes off the ignition cover and begins hotwiring the vehicle.", ReturnNameEx(playerid)); if (IsValidVehicleID(id) && Vehicles[id][vAlarm]) { SetAlarmStatus(vehicleid, true); foreach (new i : Player) { if (IsVehicleOwner(i, id)) { SendFormatMessage(i, COLOR_YELLOW, "* Text from OnStar: The alarm has been activated on your %s with the license plate '%s'.", GetVehicleModelName(Vehicles[id][vModel]), Vehicles[id][vPlate]); } if (GetPlayerFactionType(i) == FACTION_LEO) { new Float:x, Float:y, Float:z; GetVehiclePos( Vehicles[id][vVehicle] , x, y, z); SendFormatMessage(i, COLOR_GREEN, "* [DISPATCH] Vehicle Alarm has been Activated any available units in the area please respond."); SendFormatMessage(i, COLOR_GREEN, "* [DISPATCH] %s located in %s, plate: '%s' *", GetVehicleModelName(Vehicles[id][vModel]), GetZoneName(x, y, z), Vehicles[id][vPlate]); //break; } } } Players[playerid][pHotwire] = vehicleid; Players[playerid][pHotwireTime] = 90; ShowFooterText(playerid, "~w~Hotwiring... 90 seconds remaining.", 1500); SendInfoMessage(playerid, "You are attempting to hotwire this vehicle..."); } } else { if (!Players[playerid][pStartEngine]) { Players[playerid][pStartEngine] = 1; SetTimerEx("StartEngine", 1000, false, "ii", playerid, vehicleid); SendInfoMessage(playerid, "You are starting the engine of the vehicle..."); } } } } return 1; } IsPlayerDrivingVehicle(playerid, vehicleid) { return (GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetPlayerVehicleID(playerid) == vehicleid); } IsPlayerInTaxi(playerid) { if(!Players[playerid][pTaxiDuty]) return 1; new modelid = GetVehicleModel(GetPlayerVehicleID(playerid)); if(modelid == 420) return true; //Taxi if(modelid == 438) return true; //Cabbie if(modelid == 426) return true; //Premier if(modelid == 418) return true; //Moonbeam if(modelid == 445) return true; //Admiral return false; } stock IsSuitableTaxiCar(vehicleid) { if(vehicleid == 0) return false; new modelid = GetVehicleModel(vehicleid); if(modelid == 420) return true; //Taxi if(modelid == 438) return true; //Cabbie if(modelid == 426) return true; //Premier if(modelid == 418) return true; //Moonbeam if(modelid == 445) return true; //Admiral return false; } stock CreateVehicleObject(objectid, vehicleid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) { new object = CreateDynamicObject(objectid, 0, 0, 0, 0, 0, 0); AttachDynamicObjectToVehicle(object, vehicleid, x, y, z, rx, ry, rz); return object; } IsTransportVehicle(vehicleid) { switch (GetVehicleModel(vehicleid)) { case 413, 414, 418, 422, 440, 459, 478, 482, 498, 499, 543, 554, 609: { return 1; } } return 0; } VehicleHasDoors(vehicleid) { switch (GetVehicleModel(vehicleid)) { case 400..424, 426..429, 431..440, 442..445, 451, 455, 456, 458, 459, 466, 467, 470, 474, 475, 477..480, 482, 483, 486, 489, 490..492, 494..496, 498..500, 502..508, 514..518, 524..529, 533..536, 540..547, 549..552, 554..562, 565..568, 573, 575, 576, 578..580, 582, 585, 587..589, 596..605, 609: return 1; } return 0; } IsValidNOSVehicle(vehicleid) { if (!IsValidVehicle(vehicleid) || IsAircraftVehicle(vehicleid)) return 0; switch (GetVehicleModel(vehicleid)) { case 581, 523, 462, 521, 463, 522, 461, 448, 468, 586, 509, 481, 510, 472, 473, 493, 595, 484, 430, 453, 452, 446, 454, 590, 569, 537, 538, 570, 449: return 0; } return 1; } IsAircraftVehicle(vehicleid) { switch (GetVehicleModel(vehicleid)) { case 417, 425, 447, 460, 464, 469, 476, 487, 488, 497, 501, 511..513, 519, 520, 548, 553, 563, 577, 592, 593: return 1; } return 0; } IsWindowedVehicle(vehicleid) { new model = GetVehicleModel(vehicleid); if (400 <= model <= 611) { static const g_WindowInfo[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0 }; return g_WindowInfo[model - 400]; } return 0; } IsPoweredVehicle(vehicleid) { new model = GetVehicleModel(vehicleid); if (400 <= model <= 611) { static const g_EngineInfo[] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0 }; return g_EngineInfo[model - 400]; } return 0; } ResetInventoryItem(playerid, itemid) { Inventory[playerid][itemid][invID] = 0; Inventory[playerid][itemid][invExists] = 0; Inventory[playerid][itemid][invName] = 0; Inventory[playerid][itemid][invValue] = 0; Inventory[playerid][itemid][invSerial] = 0; for (new i = 0; i < 6; i ++) { Inventory[playerid][itemid][invOffset][i] = 0.0; } } OnItemDelete(playerid, item) { if (!strcmp(Inventory[playerid][item][invName], "Mobile Phone") && Inventory[playerid][item][invValue] > 0 && Inventory[playerid][item][invValue] == Players[playerid][pPhone]) { HangupCall(playerid); Players[playerid][pPhone] = 0; } if (!strcmp(Inventory[playerid][item][invName], "Stereo") && Stereos[playerid][pStereoID] == item) { ResetStereo(playerid); } if (!strcmp(Inventory[playerid][item][invName], "Mask") && Players[playerid][pMaskID] == Inventory[playerid][item][invValue]) { Players[playerid][pMaskID] = 0; } if (!strcmp(Inventory[playerid][item][invName], "Walkie Talkie") && Players[playerid][pChannel] == Inventory[playerid][item][invValue]) { Players[playerid][pChannel] = 0; } if (!strcmp(Inventory[playerid][item][invName], "Portable Radio") && Players[playerid][pChannel] == Inventory[playerid][item][invValue]) { Players[playerid][pChannel] = 0; } if (!strcmp(Inventory[playerid][item][invName], "Camera") && Players[playerid][pCamera] == Inventory[playerid][item][invID]) { Players[playerid][pCamera] = 0; SetWeaponsForPlayer(playerid); } } RemoveItemFromInventory(playerid, item) { if (Inventory[playerid][item][invExists]) { OnItemDelete(playerid, item); format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", Inventory[playerid][item][invID]); mysql_tquery(gConnection, gExecute); Inventory[playerid][item][invExists] = 0; Inventory[playerid][item][invValue] = 0; Inventory[playerid][item][invSerial] = 0; } return 1; } RemoveItemValue(playerid, item, amount) { if (Inventory[playerid][item][invExists]) { Inventory[playerid][item][invValue] = Inventory[playerid][item][invValue] - amount; if (Inventory[playerid][item][invValue] <= 0) { RemoveItemFromInventory(playerid, item); } else { SaveItem(playerid, item); } } } SetItemValue(playerid, item, value) { if (Inventory[playerid][item][invExists]) { Inventory[playerid][item][invValue] = value; SaveItem(playerid, item); } } SaveItem(playerid, item) { if (Inventory[playerid][item][invExists]) { format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemValue = %i, itemSerial = %i WHERE itemID = %i", Inventory[playerid][item][invValue], Inventory[playerid][item][invSerial], Inventory[playerid][item][invID] ); mysql_tquery(gConnection, gExecute); } return 1; } /*GetVehModel(vehicle) { return GetVehicleModel(Vehicles[vehicle][vModel]); } GetVehModel2(vehicle) { return Vehicles[vehicle][vModel]; }*/ GetTrunkCapacity(vehicle) { if (!IsValidVehicleID(vehicle)) { return 0; } else if (!VehicleHasDoors(Vehicles[vehicle][vVehicle])) { return 0; } /*switch (Vehicles[vehicle][vModel]) { case 403, 415, 429, 434, 443, 451, 457, 477, 480, 491, 496, 506: return 10; case 401, 402, 410, 411, 412, 419, 436, 439, 445, 458, 466, 467, 474, 475, 492, 507: return 20; case 405, 420, 421, 426, 438, 479: return 30; case 404, 470: return 40; case 400, 407, 409, 422, 442, 478, 489: return 50; case 413, 416, 418, 440, 459, 482, 483, 490, 508: return 70; case 414, 427, 428, 456: return 100; case 433, 455, 498, 499: return 150; case 431, 437, 435, 450: return 200; default: return 5; }*/ switch (Vehicles[vehicle][vModel]) { case 400, 404, 413, 418, 423, 440, 442, 458, 459, 470, 478, 479, 482, 483, 489..491, 495, 505, 543, 552, 554, 561, 579, 580, 582, 599: return 30; case 406, 407, 408, 414, 427, 428, 433, 455, 456, 498, 499, 508, 544, 573, 578, 609: return 50; case 435, 450, 591: return 100; default: return 20; } return 0; } GetSafeTotalWeight(id) { new total; for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (StoredItems[i][stExists] && StoredItems[i][stFurniture] == Furniture[id][fID]) { total = total + GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT); } } return total; } GetTrunkTotalWeight(vehicle) { new total; for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (StoredItems[i][stExists] && StoredItems[i][stVehicle] == Vehicles[vehicle][vID]) { total = total + GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT); } } return total; } GetTrashbinTotalWeight(id) { new total; for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (StoredItems[i][stExists] && StoredItems[i][stTrashbin] == Trashbins[id][tID]) { total = total + GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT); } } return total; } AddItemToTrunk(playerid, vehicle, itemid) { if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_WEIGHT) + GetTrunkTotalWeight(vehicle) > GetTrunkCapacity(vehicle)) return INVALID_ID; else return SetPVarInt(playerid, "tempVehicle", vehicle), TransferItem(playerid, itemid, TRANSFER_TO_TRUNK, Vehicles[vehicle][vID]); } AddItemToSafe(playerid, safe, itemid) { if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_WEIGHT) + GetSafeTotalWeight(safe) > MAX_SAFE_WEIGHT) return INVALID_ID; else return TransferItem(playerid, itemid, TRANSFER_TO_SAFE, Furniture[safe][fID]); } AddItemToTrashbin(playerid, trashbin, itemid) { if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_WEIGHT) + GetTrashbinTotalWeight(trashbin) > MAX_TRASHBIN_WEIGHT) return INVALID_ID; else return TransferItem(playerid, itemid, TRANSFER_TO_TRASH, Trashbins[trashbin][tID]); } TransferItemToPlayer(playerid, targetid, itemid) { if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_WEIGHT) + GetInventoryTotalWeight(targetid) > GetInventoryMaxWeight(targetid)) return INVALID_ID; else return TransferItem(playerid, itemid, TRANSFER_TO_PLAYER, targetid); } AddSerialToRegistry(serial, weapon[], owner[], registrar[]) { format(gExecute, sizeof(gExecute), "INSERT INTO rp_serials (Serial, Weapon, Owner, Registrar, Date) VALUES(%i, '%s', '%s', '%s', NOW())", serial, mysql_escaped(weapon), mysql_escaped(owner), mysql_escaped(registrar)); mysql_tquery(gConnection, gExecute); } IsSufficientSpace(playerid, const item[]) { if (GetNextItemID(playerid) == INVALID_ID || GetItemInformation(item, ITEM_INFO_WEIGHT) + GetInventoryTotalWeight(playerid) > GetInventoryMaxWeight(playerid)) { return 0; } return 1; } GetInventoryItemID(playerid, const item[], value = -1) { for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++) { if (Inventory[playerid][i][invExists] && !strcmp(Inventory[playerid][i][invName], item)) { if (value != -1 && Inventory[playerid][i][invValue] != value) continue; return i; } } return INVALID_ID; } stock IsItemInInventory(playerid, const item[]) { new item = GetInventoryItemID(playerid, item); if (item == INVALID_ID) return 0; return 1; } stock ItemID(playerid, const item[]) { new item = GetInventoryItemID(playerid, item); if (item == INVALID_ID) return 0; return item; } AddItemToInventory(playerid, const item[], value = 0, serial = 0) { new id = GetNextItemID(playerid); if (isnull(item)) { return INVALID_ID; } else if (id != INVALID_ID && IsSufficientSpace(playerid, item)) { if (GetItemInformation(item, ITEM_INFO_STACKABLE)) { new itemid = GetInventoryItemID(playerid, item); if (itemid != INVALID_ID) { SetItemValue(playerid, itemid, Inventory[playerid][itemid][invValue] + value); return itemid; } } if (ispacked(item)) { strunpack(Inventory[playerid][id][invName], item, MAX_ITEM_NAME); } else { strcpy(Inventory[playerid][id][invName], item, MAX_ITEM_NAME); } Inventory[playerid][id][invExists] = 1; Inventory[playerid][id][invValue] = value; Inventory[playerid][id][invSerial] = serial; format(gExecute, sizeof(gExecute), "INSERT INTO rp_items (itemName, itemValue, itemOwner, itemSerial) VALUES('%s', %i, %i, %i)", Inventory[playerid][id][invName], value, Players[playerid][pID], serial); mysql_tquery(gConnection, gExecute, "OnItemInsertion", "ii", playerid, id); return id; } return INVALID_ID; } GetTotalNearbyItems(playerid) { new count = 0; for (new i = 0; i < MAX_DROPPED_ITEMS; i ++) { if (DropItems[i][dExists] && IsPlayerNearPoint(playerid, 1.0, DropItems[i][dSpawn][0], DropItems[i][dSpawn][1], DropItems[i][dSpawn][2], DropItems[i][dInterior], DropItems[i][dWorld])) { count++; } } return count; } GetClosestDropItem(playerid) { for (new i = 0; i < MAX_DROPPED_ITEMS; i ++) { if (DropItems[i][dExists] && IsPlayerNearPoint(playerid, 1.0, DropItems[i][dSpawn][0], DropItems[i][dSpawn][1], DropItems[i][dSpawn][2], DropItems[i][dInterior], DropItems[i][dWorld])) { return i; } } return INVALID_ID; } IsWeightsInUse(playerid) { foreach (new i : Player) { if (Players[i][pWorkout] == WORKOUT_DUMBELLS && IsPlayerInRangeOfPlayer(i, playerid, 10.0)) { return 1; } } return 0; } IsTreadmillInUse(playerid) { foreach (new i : Player) { if (Players[i][pWorkout] == WORKOUT_TREADMILL && IsPlayerInRangeOfPlayer(i, playerid, 10.0)) { return 1; } } return 0; } LoadCheck(playerid) { /*if (Players[playerid][pJob] == JOB_TRANSPORTER && Players[playerid][pWorking] && Players[playerid][pGoods]) { for (new i = 0; i < MAX_VEHICLES; i ++) { if (IsValidVehicle(i) && IsPlayerInRangeOfVehicle(playerid, i, 5.0)) { if (!IsTransportVehicle(i)) { SendErrorMessage(playerid, "You can't load goods into this vehicle."); } else if (VehicleInformation[i][vGoods] > 0) { SendErrorMessage(playerid, "This vehicle is already loaded. Please find another vehicle."); } else { VehicleInformation[i][vGoods] = Players[playerid][pGoods]; VehicleInformation[i][vObject] = CreateDynamicObject(1220, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); Players[playerid][pWorking] = 0; Players[playerid][pGoods] = 0; AttachDynamicObjectToVehicle(VehicleInformation[i][vObject], i, 0.0, -1.5, 0.0, 0.0, 0.0, 0.0); ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC); SendInfoMessage(playerid, "You have loaded the goods. Use /deliver at any %s to get paid.", GetCompanyType(VehicleInformation[i][vGoods])); return 1; } } } }*/ if (Players[playerid][pWorking]) { switch (Players[playerid][pJob]) { case JOB_TRANSPORTER: { if (Players[playerid][pGoods]) { for (new i = 0; i < MAX_VEHICLES; i ++) { if (IsValidVehicle(i) && IsPlayerInRangeOfVehicle(playerid, i, 5.0)) { if (!IsTransportVehicle(i)) { SendErrorMessage(playerid, "You can't load goods into this vehicle."); } else if (VehicleInformation[i][vGoods] > 0) { SendErrorMessage(playerid, "This vehicle is already loaded. Please find another vehicle."); } else { VehicleInformation[i][vGoods] = Players[playerid][pGoods]; VehicleInformation[i][vObject] = CreateDynamicObject(1220, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); Players[playerid][pWorking] = 0; Players[playerid][pGoods] = 0; AttachDynamicObjectToVehicle(VehicleInformation[i][vObject], i, 0.0, -1.5, 0.0, 0.0, 0.0, 0.0); ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC); SendInfoMessage(playerid, "You have loaded the goods. Use /deliver at any %s to get paid.", GetCompanyType(VehicleInformation[i][vGoods])); return 1; } } } } } case JOB_TRASHMAN: { if (Players[playerid][pTrash]) { for (new i = 0; i < MAX_VEHICLES; i ++) { if (IsValidVehicle(i) && IsPlayerInRangeOfVehicle(playerid, i, 5.0)) { if (GetVehicleModel(i) != 408) { SendErrorMessage(playerid, "You can't load trash into this vehicle."); } else { Players[playerid][pTrash] = 0; ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC); if (Players[playerid][pTrashPickup] < sizeof(g_TrashPickups)) { //SetCheckpoint(playerid, CHECKPOINT_JOB, g_TrashPickups[Players[playerid][pTrashPickup]][0], g_TrashPickups[Players[playerid][pTrashPickup]][1], g_TrashPickups[Players[playerid][pTrashPickup]][2], 2.0); new trash = GetRandomTrash(); if (trash == INVALID_ID) return SendErrorMessage(playerid, "There are no available trash bins in Los Santos - contact an admin!"); SetCheckpoint(playerid, CHECKPOINT_JOB, Trashbins[trash][tX], Trashbins[trash][tY], Trashbins[trash][tZ], 3.0); //SendInfoMessage(playerid, "Make your way to the trash bin and pick up the garbage."); SendInfoMessage(playerid, "You have loaded the trash. You have %i more bags to pickup.", (sizeof(g_TrashPickups) - Players[playerid][pTrashPickup])); } else { SetCheckpoint(playerid, CHECKPOINT_JOB, 2179.2222, -1980.5339, 13.5519, 3.0);//hora SendInfoMessage(playerid, "You have loaded the trash. Deliver it to the {FF0000}checkpoint{FFFFFF} to complete the job."); } return 1; } } } } } } } return 0; } SitCheck(playerid) { for (new i = 0; i < sizeof(g_SittingPositions); i ++) { if (IsPlayerInRangeOfPoint(playerid, 1.0, g_SittingPositions[i][e_SittingX], g_SittingPositions[i][e_SittingY], g_SittingPositions[i][e_SittingZ])) { Players[playerid][pSitting] = !Players[playerid][pSitting]; if (Players[playerid][pSitting]) { SetPlayerPos(playerid, g_SittingPositions[i][e_SittingX], g_SittingPositions[i][e_SittingY], g_SittingPositions[i][e_SittingZ]); SetPlayerFacingAngle(playerid, g_SittingPositions[i][e_SittingA]); ApplyAnimation(playerid, "FOOD", g_SittingPositions[i][e_SittingIn], 4.1, 0, 0, 0, 1, 0, 1); SendInfoMessage(playerid, "You must use '/t' to speak otherwise you'll stand up from the table."); } else { ApplyAnimation(playerid, "FOOD", g_SittingPositions[i][e_SittingOut], 4.1, 0, 0, 0, 0, 0, 1); } return 1; } } return 0; } TrashbinCheck(playerid) { new id = GetClosestTrashbin(playerid); if (id != INVALID_ID) { ShowTrashbinItems(playerid, id); ShowActionBubble(playerid, "* %s opens the trashbin and looks inside.", ReturnNameEx(playerid)); } } ShellCheck(playerid) { new id = GetClosestShell(playerid); if (id != INVALID_ID) { if (gettime() - ShellCasings[id][scTime] < 86400) { //Dialog_Show(playerid, ExamineShell, DIALOG_STYLE_MSGBOX, "{FFFFFF}Shell casing", "This shell casing was dropped just recently.\n\nThe ammunition type for this casing is %s (serial: %s).", "Pickup", "Close", GetAmmunitionType(ShellCasings[id][scWeapon]), FormatSerial(ShellCasings[id][scSerial])); Dialog_Show(playerid, ExamineShell, DIALOG_STYLE_MSGBOX, "{FFFFFF}Shell Casing", "{6688FF}Type:\n{FFFFFF}%s\n\n{6688FF}Serial:\n{FFFFFF}%s\n\n{6688FF}Time:\n{FFFFFF}Recent", "Pickup", "Close", GetAmmunitionType(ShellCasings[id][scWeapon]), FormatSerial(ShellCasings[id][scSerial]) ); } else { //Dialog_Show(playerid, ExamineShell, DIALOG_STYLE_MSGBOX, "{FFFFFF}Shell casing", "This shell casing was dropped a while ago.\n\nThe ammunition type for this casing is %s (serial: %s).", "Pickup", "Close", GetAmmunitionType(ShellCasings[id][scWeapon]), FormatSerial(ShellCasings[id][scSerial])); Dialog_Show(playerid, ExamineShell, DIALOG_STYLE_MSGBOX, "{FFFFFF}Shell Casing", "{6688FF}Type:\n{FFFFFF}%s\n\n{6688FF}Serial:\n{FFFFFF}%s\n\n{6688FF}Time:\n{FFFFFF}Old", "Pickup", "Close", GetAmmunitionType(ShellCasings[id][scWeapon]), FormatSerial(ShellCasings[id][scSerial]) ); } } } /*BloodCheck(playerid) { new id = GetClosestBlood(playerid); if(id != INVALID_ID) { if(gettime() - Bloods[id][blTime] < 86400) { Dialog_Show(playerid, ExamineBlood, DIALOG_STYLE_MSGBOX, "{FFFFFF}Blood", "{6688FF}Owner:\n{FFFFFF}%s\n\n{6688FF}Type:\n{FFFFFF}%i\n\n{6688FF}Time:\n{FFFFFF}Recent","Pickup","Close", Bloods[id][blOwner], Bloods[id][blType] ); } else { Dialog_Show(playerid, ExamineBlood, DIALOG_STYLE_MSGBOX, "{FFFFFF}Blood", "{6688FF}Owner:\n{FFFFFF}%s\n\n{6688FF}Type:\n{FFFFFF}%i\n\n{6688FF}Time:\n{FFFFFF}Old","Pickup","Close", Bloods[id][blOwner], Bloods[id][blType] ); } } }*/ WeedCheck(playerid) { new id = GetClosestWeedPlant(playerid); if (id != INVALID_ID) { if (0 <= WeedPlants[id][wpTime] <= 899) { Dialog_Show(playerid, ExamineWeedPlant, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weed Plant", "{6688FF}Stage:\n{FFFFFF}Growing", "Pick up", "Close"); } else { Dialog_Show(playerid, ExamineWeedPlant, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weed Plant", "{6688FF}Stage:\n{FFFFFF}Ready", "Pick up", "Close"); } } } ATMCheck(playerid) { new id = GetClosestATM(playerid); if (IsValidATMID(id)) { new success = ShowBankAccounts(playerid, BANK_ATM_MENU); if (!success) { SendErrorMessage(playerid, "You need a registered bank account to do this."); } } } SafeCheck(playerid) { new id = GetClosestFurniture(playerid, 2.0, 2332); if (IsValidFurnitureID(id)) { if (!Furniture[id][fSafeOpen]) { if (Furniture[id][fCode] != 0) { return Dialog_Show(playerid, SafeCode, DIALOG_STYLE_INPUT, "{FFFFFF}Safe code", "Please input the code to unlock this safe:", "Submit", "Cancel"); } else { Furniture[id][fSafeOpen] = 1; ShowActionBubble(playerid, "* %s opens the safe and looks inside.", ReturnNameEx(playerid)); UpdateDynamic3DTextLabelText(Furniture[id][fText], COLOR_GREY, "Status: {33CC33}Opened{AFAFAF}\nPress Y to use safe"); SendInfoMessage(playerid, "You have opened the safe."); } } ShowSafeMenu(playerid, id); } return 1; } FridgeCheck(playerid) { new id = GetClosestFridge(playerid, 2.0); if (IsValidFurnitureID(id)) { SetPlayerHealth(playerid, 100); ShowActionBubble(playerid, "* %s grabs something to eat from the fridge.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have healed to full health."); } return 1; } DoorCheck(playerid) { new id = GetClosestDoor(playerid, 2.0); if (IsValidFurnitureID(id)) { if (Furniture[id][fDoorOpen] == 1) { Furniture[id][fSpawn][5] = Furniture[id][fSpawn][5] + 90.0; Furniture[id][fDoorOpen] = 0; UpdateFurniture(id); } else { Furniture[id][fSpawn][5] = Furniture[id][fSpawn][5] - 90.0; Furniture[id][fDoorOpen] = 1; UpdateFurniture(id); } } return 1; } ShowSafeItems(playerid, id) { static displayString[1024]; if (!IsValidFurnitureID(id)) { return 0; } else { new title[64], index = 0; displayString = "Item\tWeight\nStore Item"; for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (StoredItems[i][stExists] && StoredItems[i][stFurniture] == Furniture[id][fID]) { format(displayString, sizeof(displayString), "%s\n%s\t%i lbs", displayString, GetStoredItemName(i), GetItemInformation(StoredItems[i][stName], ITEM_INFO_WEIGHT)); gListedItems[playerid][index++] = i; } } format(title, sizeof(title), "{FFFFFF}Safe - Capacity: %i/%i", GetSafeTotalWeight(id), MAX_SAFE_WEIGHT); Dialog_Show(playerid, SafeItems, DIALOG_STYLE_TABLIST_HEADERS, title, displayString, "Select", "Back"); } return 1; } ShowSafeMenu(playerid, id) { new string[128]; if (!IsValidFurnitureID(id)) { return 0; } if (!Furniture[id][fCode]) { format(string, sizeof(string), "Stored Money\t\t{00FF00}%s{FFFFFF}\nSecurity Code\t\t{FF5030}Not Setup\nView Items\nClose Safe", FormatNumber(Furniture[id][fMoney])); } else { format(string, sizeof(string), "Stored Money\t\t{00FF00}%s{FFFFFF}\nSecurity Code\t\t{00FF00}%i\nView Items\nClose Safe", FormatNumber(Furniture[id][fMoney]), Furniture[id][fCode]); } Players[playerid][pSafeMenu] = id; Dialog_Show(playerid, SafeMenu, DIALOG_STYLE_LIST, "{FFFFFF}Safe menu", string, "Select", "Close"); return 1; } IsPlayerNearGymEquipment(playerid) { return (IsPlayerInRangeOfPoint(playerid, 2.0, 771.7793, 5.4092, 1000.7802) || IsPlayerInRangeOfPoint(playerid, 2.0, 773.5131, -2.1218, 1000.8479)); } GymCheck(playerid) { new company = GetCurrentCompany(playerid); if (company == INVALID_ID || Companies[company][cType] != COMPANY_GYM) { return 0; } else if (IsPlayerInRangeOfPoint(playerid, 2.0, 771.7793, 5.4092, 1000.7802)) { if (!Players[playerid][pWorkout]) { if (Players[playerid][pWorkoutTime] > gettime()) { SendErrorMessage(playerid, "You have reached your limit for the day."); } else if (IsWeightsInUse(playerid)) { SendErrorMessage(playerid, "The weights are already being used."); } else if (Players[playerid][pWeight]) { SendErrorMessage(playerid, "Please wait before using this command."); } else { SetPlayerPos(playerid, 771.7793, 5.4092, 1000.7802); SetPlayerFacingAngle(playerid, 270.0000); SetPlayerCameraPos(playerid, 775.425048, 5.364191, 1001.295227); SetPlayerCameraLookAt(playerid, 772.279235, 5.403525, 1000.780212); Dialog_Show(playerid, LiftWeights, DIALOG_STYLE_LIST, "{FFFFFF}Select weight", "20 lbs\n30 lbs\n40 lbs\n50 lbs\n60 lbs\n70 lbs\n80 lbs\n90 lbs\n100 lbs\n110 lbs", "Begin", "Cancel"); } } else { StopWorkout(playerid); ApplyAnimation(playerid, "Freeweights", "gym_free_putdown", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } else if (IsPlayerInRangeOfPoint(playerid, 2.0, 773.5131, -2.1218, 1000.8479)) { if (!Players[playerid][pWorkout]) { if (Players[playerid][pWorkoutTime] > gettime()) { SendErrorMessage(playerid, "You have reached your limit for the day."); } else if (IsTreadmillInUse(playerid)) { SendErrorMessage(playerid, "The treadmill is already being used."); } else if (Players[playerid][pSpeedLevel]) { SendErrorMessage(playerid, "Please wait before using this command."); } else { SetPlayerPos(playerid, 773.4777, -1.3239, 1000.7260); SetPlayerFacingAngle(playerid, 180.0000); SetPlayerCameraPos(playerid, 774.571166, -6.172124, 1001.582763); SetPlayerCameraLookAt(playerid, 773.482116, -3.338384, 1000.847900); Dialog_Show(playerid, Treadmill, DIALOG_STYLE_LIST, "{FFFFFF}Select level", "Level 1 (slowest)\nLevel 2\nLevel 3\nLevel 4\nLevel 5\nLevel 6\nLevel 7\nLevel 8\nLevel 9\nLevel 10 (fastest)", "Begin", "Cancel"); } } else { StopWorkout(playerid); ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_getoff", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } return 0; } /*CompanyCheck(playerid) { new company = GetCurrentCompany(playerid); if (company != INVALID_ID) { if (Companies[company][cType] == COMPANY_RESTAURANT) { ShowRestaurantMenu(playerid, company); } else if (Companies[company][cType] == COMPANY_AMMO && Players[playerid][pHoursOnline] < 4) { return SendErrorMessage(playerid, "You must play at least 4 hours to buy items here."); } else if (Companies[company][cType] == COMPANY_AMMO && Players[playerid][pWarrants] > 0) { return SendErrorMessage(playerid, "You can't purchase items here if you have an active warrant."); } else { if (Companies[company][cType] == COMPANY_GYM && IsPlayerNearGymEquipment(playerid)) { GymCheck(playerid); } else { ShowProductsForSale(playerid, company); } } return 1; } return 0; }*/ ShowLockerMenu(playerid) { if(GetPlayerFactionType(playerid) == FACTION_ILLEGAL) { Dialog_Show(playerid, LockerUniform, DIALOG_STYLE_MSGBOX, "{FFFFFF}Uniforms", "Would you like to change your uniform?", "Yes", "No"); } else { if(!Players[playerid][pDuty]) { Dialog_Show(playerid, Locker, DIALOG_STYLE_LIST, "{FFFFFF}Faction Locker", "Clock In\nUniforms\nEquipment\nAccessories\nReturn Equipment", "Select", "Cancel"); } else { Dialog_Show(playerid, Locker, DIALOG_STYLE_LIST, "{FFFFFF}Faction Locker", "Clock Out\nUniforms\nEquipment\nAccessories\nReturn Equipment", "Select", "<<<"); } } return 1; } ShowLockerEquipmentMenu(playerid) { /*switch (Factions[Players[playerid][pFaction]][fcType]) { case FACTION_LEO: { //Dialog_Show(playerid, PoliceEquipment, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Equipment", "Item\tPrice\nTazer\t\t$50\nKevlar Vest\t\t$50\nNightstick\t\t$75\nDesert Eagle\t$150\nShotgun\t\t$200\nMP5\t\t$400\nM16\t\t$800\nSniper\t\t$1,000", "Select", "Cancel"); Dialog_Show(playerid, PoliceEquipment, DIALOG_STYLE_LIST, "{FFFFFF}Equipment", "Medical Kit\nArmor\nNightstick\nPepper Spray\nDesert Eagle\nShotgun\nMP5\nM4\nSniper Rifle\nPortable Radio\nCuffs\nKeys", "Select", "Cancel"); } case FACTION_MEDICAL: { //Dialog_Show(playerid, MedicEquipment, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Equipment", "Item\tPrice\nBandages\t\t$20\nMedical Kit\t$40\nFire Extinguisher\t$50\nPainkillers\t\t$60", "Select", "Cancel"); Dialog_Show(playerid, MedicEquipment, DIALOG_STYLE_LIST, "{FFFFFF}Equipment", "Bandages\nMedical Kit\nKevlar Vest\nFire Extinguisher\nPainkillers\nPepper Spray", "Select", "Cancel"); } }*/ gListString[0] = 0; for(new i = 0; i < MAX_FACTION_EQUIPMENT; i ++) { if(FactionEquipment[Players[playerid][pFaction]][i][fcItemExists]) { if(FactionEquipment[Players[playerid][pFaction]][i][fcItemValue] > 0) format(gListString, sizeof(gListString), "%s\n%s (%i)", gListString, FactionEquipment[Players[playerid][pFaction]][i][fcItemName], FactionEquipment[Players[playerid][pFaction]][i][fcItemValue]); else format(gListString, sizeof(gListString), "%s\n%s", gListString, FactionEquipment[Players[playerid][pFaction]][i][fcItemName]); } } if(isnull(gListString)) return SendErrorMessage(playerid, "There is no equipment added for this faction."); Dialog_Show(playerid, LockerEquipment, DIALOG_STYLE_LIST, "{FFFFFF}Equipment", gListString, "Equip", "Back"); return 1; } ShowLockerAccessoryMenu(playerid) { gListString[0] = 0; for(new i = 0; i < MAX_FACTION_ACCESSORIES; i ++) { if(FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryExists]) { format(gListString, sizeof(gListString), "%s\n%s", gListString, FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryName]); } } if(isnull(gListString)) return SendErrorMessage(playerid, "There are no accessories added for this faction."); Dialog_Show(playerid, LockerAccessories, DIALOG_STYLE_LIST, "{FFFFFF}Accessories", gListString, "Select", "Back"); return 1; } IsPlayerNearSwitch(playerid) { new house = GetCurrentHouse(playerid); if (house == INVALID_ID) { return 0; } for (new i = 0; i < sizeof(g_LightSwitches); i ++) { if (IsPlayerInRangeOfPoint(playerid, 1.0, g_LightSwitches[i][0], g_LightSwitches[i][1], g_LightSwitches[i][2])) { return 1; } } return 0; } LightSwitch(playerid) { new id = GetCurrentHouse(playerid); if (id == INVALID_ID) { return 0; } for (new i = 0; i < sizeof(g_LightSwitches); i ++) { if (IsPlayerInRangeOfPoint(playerid, 1.0, g_LightSwitches[i][0], g_LightSwitches[i][1], g_LightSwitches[i][2])) { ApplyAnimation(playerid, "HEIST9", "Use_SwipeCard", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerFacingAngle(playerid, g_LightSwitches[i][3]); PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0); return Houses[id][hLights] = !Houses[id][hLights]; } } return 0; } PickupNearestItem(playerid) { new count = GetTotalNearbyItems(playerid); if (count == 1) { new id = GetClosestDropItem(playerid); if (IsPlayerInAnyVehicle(playerid)) { return SendErrorMessage(playerid, "You can't pickup items in a vehicle."); } else { if (!IsSufficientSpace(playerid, DropItems[id][dName])) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { Statistics[playerid][sItemsPicked]++; format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Picked Up', NOW())", ReturnName(playerid), GetDropItemName(id)); mysql_tquery(gConnection, gExecute); ShowActionBubble(playerid, "* %s reaches down and picks up an item.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "{CFCFCF}You have picked up an item:{33AA33} %s.", GetDropItemName(id)); if(DropItems[id][dSerial] != 0 && GetPlayerFactionType(playerid) == FACTION_LEO) { SendInfoMessage(playerid,"Serial number: %d",DropItems[id][dSerial]); } ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); RetrieveItem(playerid, TRANSFER_FROM_GROUND, id); } } } else if (count > 1) { new buffer[1024], index ; for (new i = 0; i < MAX_DROPPED_ITEMS; i ++) { if (DropItems[i][dExists] && IsPlayerNearPoint(playerid, 1.0, DropItems[i][dSpawn][0], DropItems[i][dSpawn][1], DropItems[i][dSpawn][2], DropItems[i][dInterior], DropItems[i][dWorld])) { format(buffer, sizeof(buffer), "%s\n%s", buffer, GetDropItemName(i)); gListedItems[playerid][index++] = i; } } if (index > 0) { Dialog_Show(playerid, PickupItems, DIALOG_STYLE_LIST, "{FFFFFF}Pickup nearby items", buffer, "Pickup", "Close"); } } return count; } DeleteDropItem(id) { if (!DropItems[id][dExists]) return 0; DestroyDynamicObject(DropItems[id][dObject]); //DestroyDynamic3DTextLabel(DropItems[id][dText]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemDropped = 1 AND itemID = %i", DropItems[id][dID]); mysql_tquery(gConnection, gExecute); DropItems[id][dExists] = 0; DropItems[id][dID] = 0; DropItems[id][dName] = 0; DropItems[id][dValue] = 0; DropItems[id][dObject] = INVALID_OBJECT_ID; //DropItems[id][dText] = INVALID_3DTEXT_ID; return 1; } UpdateDropItem(id) { if (!DropItems[id][dExists]) return 0; new Float:z, Float:rx, Float:ry, string[128]; GetItemDropOffset(DropItems[id][dName], z, rx, ry); DestroyDynamicObject(DropItems[id][dObject]); //DestroyDynamic3DTextLabel(DropItems[id][dText]); format(string, sizeof(string), "%s\nPress Y to pickup item", GetDropItemName(id)); DropItems[id][dObject] = CreateDynamicObject(GetItemInformation(DropItems[id][dName], ITEM_INFO_MODEL), DropItems[id][dSpawn][0], DropItems[id][dSpawn][1], DropItems[id][dSpawn][2] - z, rx, ry, 0.0, DropItems[id][dWorld], DropItems[id][dInterior]); //DropItems[id][dText] = CreateDynamic3DTextLabel(string, COLOR_GREY, DropItems[id][dSpawn][0], DropItems[id][dSpawn][1], DropItems[id][dSpawn][2] - z, 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, DropItems[id][dWorld], DropItems[id][dInterior]); if (!strcmp(DropItems[id][dName], "Toolbox")) SetDynamicObjectMaterial(DropItems[id][dObject], 0, 14796, "genintintgarage2", "tool_store"); else if (!strcmp(DropItems[id][dName], "Painkillers")) SetDynamicObjectMaterial(DropItems[id][dObject], 0, 1950, "kbeer", "bottles_kb2"); else if (!strcmp(DropItems[id][dName], "Marijuana")) SetDynamicObjectMaterial(DropItems[id][dObject], 0, -1, "none", "none", 0xFF33CC33); else if (!strcmp(DropItems[id][dName], "Heroin")) SetDynamicObjectMaterial(DropItems[id][dObject], 0, -1, "none", "none", 0xFFFFDD00); return 1; } RetrieveItem(playerid, type, itemid) { new id = GetNextItemID(playerid); if (id == INVALID_ID) { return id; } switch (type) { case TRANSFER_FROM_SAFE, TRANSFER_FROM_TRUNK, TRANSFER_FROM_TRASH: { if (!IsSufficientSpace(playerid, StoredItems[itemid][stName])) { return INVALID_ID; } strunpack(Inventory[playerid][id][invName], StoredItems[itemid][stName], MAX_ITEM_NAME); Inventory[playerid][id][invExists] = 1; Inventory[playerid][id][invID] = StoredItems[itemid][stID]; Inventory[playerid][id][invValue] = StoredItems[itemid][stValue]; Inventory[playerid][id][invSerial] = StoredItems[itemid][stSerial]; for (new i = 0; i < 6; i ++) { Inventory[playerid][id][invOffset][i] = StoredItems[itemid][stOffset][i]; } for ( new a = 0; a < 6; a ++) { StoredItems[itemid][vehicleOffset][a] = 0.0; } StoredItems[itemid][stID] = 0; StoredItems[itemid][stExists] = 0; StoredItems[itemid][stValue] = 0; StoredItems[itemid][stSerial] = 0; if(IsValidDynamicObject(StoredItems[itemid][vehicleItem])) DestroyDynamicObject(StoredItems[itemid][vehicleItem]); format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemOwner = %i, itemFurnitureID = 0, itemVehicleID = 0, itemTrashbinID = 0, vehOffsetX = 0.0, vehOffsetY = 0.0, vehOffsetZ = 0.0, vehRotX = 0.0, vehRotY = 0.0, vehRotZ = 0.0 WHERE itemID = %i", Players[playerid][pID], Inventory[playerid][id][invID]); mysql_tquery(gConnection, gExecute); } case TRANSFER_FROM_GROUND: { new item = GetInventoryItemID(playerid, DropItems[itemid][dName]); if (!IsSufficientSpace(playerid, DropItems[itemid][dName])) { return INVALID_ID; } if (GetItemInformation(DropItems[itemid][dName], ITEM_INFO_STACKABLE) && item != INVALID_ID) { SetItemValue(playerid, item, Inventory[playerid][item][invValue] + DropItems[itemid][dValue]); return DeleteDropItem(itemid); } else { strcpy(Inventory[playerid][id][invName], DropItems[itemid][dName], MAX_ITEM_NAME); Inventory[playerid][id][invExists] = 1; Inventory[playerid][id][invID] = DropItems[itemid][dID]; Inventory[playerid][id][invValue] = DropItems[itemid][dValue]; Inventory[playerid][id][invSerial] = DropItems[itemid][dSerial]; for (new i = 0; i < 6; i ++) { Inventory[playerid][id][invOffset][i] = DropItems[itemid][dOffset][i]; } format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemOwner = %i, itemDropped = 0, itemX = 0.0, itemY = 0.0, itemZ = 0.0, itemA = 0.0, itemInt = 0, itemWorld = 0 WHERE itemID = %i", Players[playerid][pID], Inventory[playerid][id][invID]); mysql_tquery(gConnection, gExecute); } //DestroyDynamic3DTextLabel(DropItems[itemid][dText]); DestroyDynamicObject(DropItems[itemid][dObject]); DropItems[itemid][dID] = 0; DropItems[itemid][dExists] = 0; DropItems[itemid][dValue] = 0; DropItems[itemid][dSerial] = 0; DropItems[itemid][dObject] = INVALID_OBJECT_ID; //DropItems[itemid][dText] = INVALID_3DTEXT_ID; } } return id; } GetStoredItemID(const name[], type, extraid) { for (new i = 0; i < MAX_STORED_ITEMS; i ++) { if (StoredItems[i][stExists] && !strcmp(StoredItems[i][stName], name)) { if ((type == STORED_TYPE_TRUNK && StoredItems[i][stVehicle] == extraid) || (type == STORED_TYPE_SAFE && StoredItems[i][stFurniture] == extraid) || (type == STORED_TYPE_TRASH && StoredItems[i][stTrashbin] == extraid)) { return i; } } } return INVALID_ID; } AddStoredItem(type, extraid, const name[], value = 0, serial = 0) { new id = GetNextStoredItemID(); if (id != INVALID_ID) { strpack(StoredItems[id][stName], name, MAX_ITEM_NAME); StoredItems[id][stExists] = 1; StoredItems[id][stValue] = value; StoredItems[id][stSerial] = serial; StoredItems[id][stFurniture] = 0; StoredItems[id][stVehicle] = 0; StoredItems[id][stTrashbin] = 0; if (type == TRANSFER_TO_SAFE) { StoredItems[id][stFurniture] = extraid; } else if (type == TRANSFER_TO_TRUNK) { StoredItems[id][stVehicle] = extraid; } else if (type == TRANSFER_TO_TRASH) { StoredItems[id][stTrashbin] = extraid; } format(gExecute, sizeof(gExecute), "INSERT INTO rp_items (itemName, itemValue, itemSerial, itemVehicleID, itemFurnitureID, itemTrashbinID, vehOffsetX, vehOffsetY, vehOffsetZ, vehRotX, vehRotY, vehRotZ) VALUES('%s', %i, %i, %i, %i, %i, '0.0', '0.0', '0.0', '0.0', '0.0', '0.0')", name, StoredItems[id][stValue], StoredItems[id][stSerial], StoredItems[id][stVehicle], StoredItems[id][stFurniture], StoredItems[id][stTrashbin]); mysql_tquery(gConnection, gExecute, "OnStoredItemAdded", "i", id); } return id; } TransferItem(playerid, itemid, type, extraid = -1) { new id = INVALID_ID, item = INVALID_ID ; switch (type) { case TRANSFER_TO_SAFE, TRANSFER_TO_TRUNK, TRANSFER_TO_TRASH: { id = GetNextStoredItemID(); if (id != INVALID_ID) { if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_STACKABLE)) { if (type == TRANSFER_TO_SAFE) { item = GetStoredItemID(Inventory[playerid][itemid][invName], STORED_TYPE_SAFE, extraid); } else if (type == TRANSFER_TO_TRUNK) { item = GetStoredItemID(Inventory[playerid][itemid][invName], STORED_TYPE_TRUNK, extraid); } else if (type == TRANSFER_TO_TRASH) { item = GetStoredItemID(Inventory[playerid][itemid][invName], STORED_TYPE_TRASH, extraid); } } if (item != INVALID_ID) { StoredItems[item][stValue] += Inventory[playerid][itemid][invValue]; format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemValue = itemValue + %i WHERE itemID = %i", Inventory[playerid][itemid][invValue], StoredItems[item][stID]); mysql_tquery(gConnection, gExecute); RemoveItemFromInventory(playerid, itemid); return item; } else { OnItemDelete(playerid, itemid); strpack(StoredItems[id][stName], Inventory[playerid][itemid][invName], MAX_ITEM_NAME); StoredItems[id][stExists] = 1; StoredItems[id][stID] = Inventory[playerid][itemid][invID]; StoredItems[id][stValue] = Inventory[playerid][itemid][invValue]; StoredItems[id][stSerial] = Inventory[playerid][itemid][invSerial]; StoredItems[id][stFurniture] = 0; StoredItems[id][stVehicle] = 0; StoredItems[id][stTrashbin] = 0; for (new i = 0; i < 6; i ++) { StoredItems[id][stOffset][i] = Inventory[playerid][itemid][invOffset][i]; } if (type == TRANSFER_TO_SAFE) { StoredItems[id][stFurniture] = extraid; } else if (type == TRANSFER_TO_TRUNK) { StoredItems[id][stVehicle] = extraid; for(new Addr = 0; Addr < 6; Addr ++) { StoredItems[id][vehicleOffset][Addr] = 0.0; // empty it's value } new Float: thisSpot[3]; GetPlayerPos(playerid, thisSpot[0], thisSpot[1], thisSpot[2]); StoredItems[id][vehicleItem] = CreateDynamicObject(GetItemInformation(StoredItems[id][stName], ITEM_INFO_MODEL), thisSpot[0], thisSpot[1], thisSpot[2], 0.0, 0.0, 0.0); EditDynamicObjectEx(playerid, EDIT_TYPE_TRUNK, StoredItems[id][vehicleItem], id); } else if (type == TRANSFER_TO_TRASH) { StoredItems[id][stTrashbin] = extraid; } ResetInventoryItem(playerid, itemid); format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemOwner = 0, itemFurnitureID = %i, itemVehicleID = %i, itemTrashbinID = %i WHERE itemID = %i", StoredItems[id][stFurniture], StoredItems[id][stVehicle], StoredItems[id][stTrashbin], StoredItems[id][stID]); mysql_tquery(gConnection, gExecute); } } } case TRANSFER_TO_PLAYER: { if ((id = GetNextItemID(extraid)) != INVALID_ID) { OnItemDelete(playerid, itemid); strcpy(Inventory[extraid][id][invName], Inventory[playerid][itemid][invName], MAX_ITEM_NAME); Inventory[extraid][id][invExists] = 1; Inventory[extraid][id][invID] = Inventory[playerid][itemid][invID]; Inventory[extraid][id][invValue] = Inventory[playerid][itemid][invValue]; Inventory[extraid][id][invSerial] = Inventory[playerid][itemid][invSerial]; for (new i = 0; i < 6; i ++) { Inventory[extraid][id][invOffset][i] = Inventory[playerid][itemid][invOffset][i]; } ResetInventoryItem(playerid, itemid); format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemOwner = %i WHERE itemID = %i", Players[extraid][pID], Inventory[extraid][id][invID]); mysql_tquery(gConnection, gExecute); } } case TRANSFER_TO_GROUND: { id = GetNextDropID(); if (id != INVALID_ID) { OnItemDelete(playerid, itemid); strcpy(DropItems[id][dName], Inventory[playerid][itemid][invName], MAX_ITEM_NAME); GetPlayerPos(playerid, DropItems[id][dSpawn][0], DropItems[id][dSpawn][1], DropItems[id][dSpawn][2]); GetPlayerFacingAngle(playerid, DropItems[id][dSpawn][3]); DropItems[id][dExists] = 1; DropItems[id][dID] = Inventory[playerid][itemid][invID]; DropItems[id][dValue] = Inventory[playerid][itemid][invValue]; DropItems[id][dSerial] = Inventory[playerid][itemid][invSerial]; DropItems[id][dInterior] = GetPlayerInterior(playerid); DropItems[id][dWorld] = GetPlayerVirtualWorld(playerid); DropItems[id][dObject] = INVALID_OBJECT_ID; //DropItems[id][dText] = INVALID_3DTEXT_ID; for (new i = 0; i < 6; i ++) { DropItems[id][dOffset][i] = Inventory[playerid][itemid][invOffset][i]; } UpdateDropItem(id); ResetInventoryItem(playerid, itemid); format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemOwner = 0, itemDropped = 1, itemX = %.4f, itemY = %.4f, itemZ = %.4f, itemA = %.4f, itemInt = %i, itemWorld = %i WHERE itemID = %i", DropItems[id][dSpawn][0], DropItems[id][dSpawn][1], DropItems[id][dSpawn][2], DropItems[id][dSpawn][3], DropItems[id][dInterior], DropItems[id][dWorld], DropItems[id][dID]); mysql_tquery(gConnection, gExecute); } } } return id; } AddDropItem(const item[], value, serial, Float:x, Float:y, Float:z, Float:angle, interior, worldid) { new id = GetNextDropID(); if (isnull(item)) { return INVALID_ID; } if (id != INVALID_ID) { strcpy(DropItems[id][dName], item, MAX_ITEM_NAME); DropItems[id][dExists] = 1; DropItems[id][dValue] = value; DropItems[id][dSerial] = serial; DropItems[id][dSpawn][0] = x; DropItems[id][dSpawn][1] = y; DropItems[id][dSpawn][2] = z; DropItems[id][dSpawn][3] = angle; DropItems[id][dInterior] = interior; DropItems[id][dWorld] = worldid; format(gExecute, sizeof(gExecute), "INSERT INTO rp_items (itemName, itemValue, itemSerial, itemDropped, itemX, itemY, itemZ, itemA, itemInt, itemWorld) VALUES('%s', %i, %i, 1, %.4f, %.4f, %.4f, %.4f, %i, %i)", DropItems[id][dName], DropItems[id][dValue], DropItems[id][dSerial], DropItems[id][dSpawn][0], DropItems[id][dSpawn][1], DropItems[id][dSpawn][2], DropItems[id][dSpawn][3], DropItems[id][dInterior], DropItems[id][dWorld]); mysql_tquery(gConnection, gExecute, "OnDropItemAdded", "i", id); UpdateDropItem(id); } return id; } DropWeapon(playerid, weaponid, ammo = 0) { new Float:x, Float:y, Float:z, Float:angle, serial; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); if (weaponid == Weapons[playerid][wPrimary]) { serial = Weapons[playerid][wPrimarySerial]; } else if (weaponid == Weapons[playerid][wSecondary]) { serial = Weapons[playerid][wSecondarySerial]; } else if (weaponid == Weapons[playerid][wTertiary]) { serial = Weapons[playerid][wTertiarySerial]; } AddDropItem(GetWeaponItemName(weaponid), ammo, serial, x, y, z, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); if (weaponid == Weapons[playerid][wMelee]) { SetPlayerWeapon(playerid, WEAPON_MELEE, 0); } else if (weaponid == Weapons[playerid][wPrimary]) { SetPlayerWeapon(playerid, WEAPON_PRIMARY, 0); } else if (weaponid == Weapons[playerid][wSecondary]) { SetPlayerWeapon(playerid, WEAPON_SECONDARY, 0); } else if (weaponid == Weapons[playerid][wTertiary]) { SetPlayerWeapon(playerid, WEAPON_TERTIARY, 0); } return 1; } DiscardItem(playerid, itemid) { TransferItem(playerid, itemid, TRANSFER_TO_GROUND); return 1; } LoadTextDraws() { // House lights textdraw gGlobalTextdraws[0] = TextDrawCreate(650.000000, -5.000000, "_"); TextDrawBackgroundColor(gGlobalTextdraws[0], 255); TextDrawFont(gGlobalTextdraws[0], 1); TextDrawLetterSize(gGlobalTextdraws[0], 0.500000, 55.000000); TextDrawColor(gGlobalTextdraws[0], -1); TextDrawSetOutline(gGlobalTextdraws[0], 0); TextDrawSetProportional(gGlobalTextdraws[0], 1); TextDrawSetShadow(gGlobalTextdraws[0], 1); TextDrawUseBox(gGlobalTextdraws[0], 1); TextDrawBoxColor(gGlobalTextdraws[0], 136); TextDrawTextSize(gGlobalTextdraws[0], -10.000000, 0.000000); // Time textdraw gGlobalTextdraws[1] = TextDrawCreate(576.000000, 21.000000, "00:00"); TextDrawAlignment(gGlobalTextdraws[1], 2); TextDrawBackgroundColor(gGlobalTextdraws[1], 255); TextDrawFont(gGlobalTextdraws[1], 3); TextDrawLetterSize(gGlobalTextdraws[1], 0.550000, 1.700000); TextDrawColor(gGlobalTextdraws[1], -1); TextDrawSetOutline(gGlobalTextdraws[1], 1); TextDrawSetProportional(gGlobalTextdraws[1], 1); // Black screen textdraw gGlobalTextdraws[2] = TextDrawCreate(650.000000, -5.000000, "_"); TextDrawBackgroundColor(gGlobalTextdraws[2], 255); TextDrawFont(gGlobalTextdraws[2], 1); TextDrawLetterSize(gGlobalTextdraws[2], 0.500000, 55.000000); TextDrawColor(gGlobalTextdraws[2], -1); TextDrawSetOutline(gGlobalTextdraws[2], 0); TextDrawSetProportional(gGlobalTextdraws[2], 1); TextDrawSetShadow(gGlobalTextdraws[2], 1); TextDrawUseBox(gGlobalTextdraws[2], 1); TextDrawBoxColor(gGlobalTextdraws[2], 0x000000ff); TextDrawTextSize(gGlobalTextdraws[2], -10.000000, 0.000000); } LoadStaticBuildings() { for (new i = 0; i < sizeof(g_StaticBuildings); i ++) { CreateDynamicPickup(g_StaticBuildings[i][e_IconModel], 23, g_StaticBuildings[i][e_SpawnX], g_StaticBuildings[i][e_SpawnY], g_StaticBuildings[i][e_SpawnZ]); CreateDynamic3DTextLabel(g_StaticBuildings[i][e_BuildingName], COLOR_GREY, g_StaticBuildings[i][e_SpawnX], g_StaticBuildings[i][e_SpawnY], g_StaticBuildings[i][e_SpawnZ], 10.0); } for (new i = 0; i < sizeof(g_HospitalLocations); i ++) { CreateDynamicPickup(19198, 23, g_HospitalLocations[i][0], g_HospitalLocations[i][1], g_HospitalLocations[i][2] + 0.5); CreateDynamic3DTextLabel("Press H to enter hospital", COLOR_GREY, g_HospitalLocations[i][0], g_HospitalLocations[i][1], g_HospitalLocations[i][2], 10.0); } } LoadDynamicObjects() { // Inglewood Gas Station CreateDynamicObject(1257, 1954.156494, -1767.254882, 13.792809, 0.000000, 0.000000, 180.000000); CreateDynamicObject(970, 1942.256469, -1767.598266, 13.092811, 0.000000, 0.000000, 90.000000); CreateDynamicObject(970, 1942.256469, -1771.718627, 13.092811, 0.000000, 0.000000, 90.000000); CreateDynamicObject(970, 1942.256469, -1775.848876, 13.092811, 0.000000, 0.000000, 90.000000); CreateDynamicObject(970, 1942.256469, -1777.948974, 13.092811, 0.000000, 0.000000, 90.000000); CreateDynamicObject(970, 1941.095825, -1777.948974, 13.092811, 0.000000, 0.000000, 90.000000); CreateDynamicObject(970, 1941.096191, -1775.848876, 13.092811, 0.000000, 0.000000, 90.000000); CreateDynamicObject(970, 1941.096679, -1771.718627, 13.092811, 0.000000, 0.000000, 90.000000); CreateDynamicObject(970, 1941.095703, -1767.598266, 13.092811, 0.000000, 0.000000, 90.000000); CreateDynamicObject(1215, 1941.625610, -1780.841918, 13.160593, 0.000000, 0.000000, 95.991020); CreateDynamicObject(1215, 1941.636230, -1765.047241, 13.160593, 0.000000, 0.000000, 95.991020); CreateDynamicObject(1291, 1928.692382, -1767.511352, 13.032809, 0.000000, 0.000000, 90.000000); CreateDynamicObject(1287, 1928.503662, -1768.784423, 13.076869, 0.000000, 0.000000, -90.000000); CreateDynamicObject(1289, 1928.507202, -1769.368896, 13.092813, 0.000000, 0.000000, -90.228660); //CreateDynamicObject(1216, 1928.558593, -1785.416381, 13.242809, 0.000000, 0.000000, 90.000000); CreateDynamicObject(1250, 1908.817138, -1782.609863, 13.582806, 0.000000, 0.000000, 90.000000); //lspd interior2 CreateDynamicObject(19379, 127.86078, 1135.12048, 526.37921, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 117.57440, 1135.16626, 526.38123, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 128.02011, 1128.01392, 526.37720, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 117.61464, 1128.00610, 526.37921, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19450, 128.41344, 1139.85852, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 133.13857, 1135.13562, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 118.96809, 1139.86719, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 122.09531, 1135.04700, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19458, 133.12823, 1136.35120, 525.85760, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19458, 119.86307, 1139.84583, 525.85760, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1536, 124.66843, 1139.78503, 526.44818, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1536, 127.65437, 1139.81555, 526.44818, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19458, 132.41571, 1139.83948, 525.85760, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19458, 122.11882, 1135.07520, 525.85760, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 133.16109, 1131.60010, 525.92493, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 130.39549, 1130.58801, 525.92291, 0.00000, 0.00000, 130.16800); CreateDynamicObject(19431, 129.19858, 1128.81836, 525.92493, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2169, 132.11578, 1131.13257, 526.46643, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2169, 130.84669, 1130.22217, 526.46503, 0.00000, 0.00000, 40.16050); CreateDynamicObject(2169, 129.91870, 1129.44458, 526.46442, 0.00000, 0.00000, 40.16050); CreateDynamicObject(2169, 129.62215, 1128.10730, 526.46637, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19431, 129.20044, 1128.29749, 525.92291, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2190, 129.69472, 1129.83899, 527.23822, 0.00000, 0.00000, 40.00000); CreateDynamicObject(19388, 133.13324, 1128.82117, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 133.13043, 1125.87024, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 130.72435, 1126.50049, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19431, 129.19862, 1127.22180, 525.92493, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 133.35988, 1126.50269, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 134.53226, 1131.59460, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2169, 129.61507, 1126.94189, 526.46442, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2190, 129.26579, 1127.07520, 527.23822, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2164, 132.49529, 1126.62976, 526.46252, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19513, 129.54300, 1128.15002, 527.25421, 0.00000, 0.00000, 45.00000); CreateDynamicObject(2611, 132.98639, 1130.60254, 528.35309, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2356, 131.20386, 1128.90100, 526.46552, 0.00000, 0.00000, 37.00000); CreateDynamicObject(2612, 122.21997, 1137.31628, 528.43170, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2356, 132.63315, 1130.37341, 526.46552, 0.00000, 0.00000, 135.00000); CreateDynamicObject(2356, 130.88228, 1127.41321, 526.46552, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1721, 129.95886, 1139.60193, 526.46417, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1721, 130.64236, 1139.59973, 526.46417, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1721, 131.31886, 1139.59790, 526.46417, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1721, 131.99246, 1139.59460, 526.46417, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1721, 132.89439, 1138.72046, 526.46417, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1721, 132.88988, 1138.05505, 526.46417, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1721, 132.88197, 1137.37195, 526.46417, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2854, 132.66000, 1139.39026, 526.98291, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2209, 132.77827, 1139.48816, 526.17407, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 133.15997, 1131.60742, 531.34406, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 130.38956, 1130.60095, 531.34412, 0.00000, 0.00000, 130.16800); CreateDynamicObject(19358, 129.19667, 1128.02588, 531.34412, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19466, 132.67456, 1131.59009, 528.87982, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19466, 130.73343, 1130.86206, 528.87982, 0.00000, 0.00000, 130.16800); CreateDynamicObject(19466, 130.07275, 1130.29126, 528.87982, 0.00000, 0.00000, 130.16800); CreateDynamicObject(19466, 129.21117, 1128.45630, 528.87982, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19466, 129.20494, 1126.27002, 528.87982, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 129.21419, 1124.81445, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 129.64127, 1123.28308, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19388, 127.26681, 1123.27673, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19388, 123.65508, 1123.27258, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 122.09448, 1127.87793, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19431, 125.38683, 1123.28088, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19439, 125.69112, 1123.29248, 525.85760, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19439, 128.80530, 1123.29688, 525.85760, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19439, 129.20062, 1124.04504, 525.85760, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19439, 129.20180, 1125.62695, 525.85760, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19439, 125.19050, 1123.28931, 525.85760, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19458, 122.11900, 1128.18408, 525.85760, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19458, 118.06525, 1123.28918, 525.85760, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2886, 128.26689, 1123.35132, 528.10840, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2886, 122.54852, 1123.34033, 528.10840, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2611, 122.23282, 1135.57751, 528.43170, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2011, 122.70470, 1139.35327, 526.42072, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1549, 129.22298, 1139.57593, 526.37823, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2412, 124.79014, 1139.64636, 526.46570, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2412, 128.20688, 1139.63660, 526.46588, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2688, 133.06993, 1127.75256, 528.23529, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2690, 123.52813, 1139.72498, 527.11108, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2961, 124.14986, 1139.77234, 528.08264, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2261, 132.48260, 1138.41125, 528.27228, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2262, 132.56378, 1135.51196, 528.27228, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2264, 132.54478, 1132.67273, 528.27228, 0.00000, 0.00000, 270.00000); CreateDynamicObject(19450, 137.88420, 1130.76587, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19388, 135.74176, 1126.50525, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 137.27266, 1127.41260, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19388, 131.19031, 1121.67798, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 135.92627, 1120.17273, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 137.26620, 1124.91907, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 131.59143, 1124.35205, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 131.19286, 1124.45386, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 136.40410, 1127.89185, 526.37518, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 136.35280, 1121.61792, 526.35522, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19450, 117.34834, 1123.14880, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 120.83286, 1120.00720, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 126.00430, 1118.56348, 526.35321, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 126.00710, 1114.51001, 526.34918, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19358, 131.18378, 1118.60645, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 131.18018, 1115.43103, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 131.19102, 1113.94202, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19366, 125.57810, 1118.22913, 528.14392, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 124.04066, 1116.72290, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 127.09470, 1116.71899, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 127.09979, 1114.06091, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 124.04125, 1114.05273, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19366, 125.57174, 1112.56445, 528.14392, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 120.82690, 1113.90955, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2614, 125.58346, 1118.36316, 528.86505, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2614, 125.53983, 1112.40186, 528.86511, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19388, 132.70236, 1112.39661, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 141.42851, 1112.37512, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 140.34441, 1108.21594, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 116.09457, 1112.37366, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 140.03827, 1117.17700, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 136.50000, 1117.20544, 526.35321, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 116.49130, 1114.53735, 526.35120, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 136.47391, 1114.50964, 526.35120, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 142.11330, 1105.17847, 526.35321, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 125.61120, 1109.78027, 526.69269, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 122.12870, 1109.77466, 526.69470, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 129.09680, 1109.76733, 526.69470, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 132.47932, 1109.75732, 526.69269, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 135.13850, 1109.76782, 526.69470, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 118.67280, 1109.77686, 526.69269, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 115.94530, 1109.78259, 526.69470, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19454, 112.46471, 1108.96716, 526.35321, 0.00000, 90.00000, 0.00000); CreateDynamicObject(1536, 117.59206, 1112.31213, 526.35492, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19454, 138.60808, 1098.81006, 526.35522, 0.00000, 90.00000, 0.00000); CreateDynamicObject(14877, 141.86850, 1099.50378, 524.35712, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2191, 133.68246, 1125.46155, 526.46252, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2204, 137.17787, 1125.03723, 526.46118, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2737, 133.89690, 1120.30957, 528.38220, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2182, 136.68703, 1121.71301, 526.45947, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2190, 137.09000, 1121.60791, 527.25787, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1536, 131.11464, 1120.86609, 526.42352, 0.00000, 0.00000, 20.52520); CreateDynamicObject(1330, 132.39899, 1120.70972, 526.75928, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2011, 131.62309, 1123.81348, 526.45740, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1722, 133.34651, 1124.60852, 526.46259, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1806, 135.58820, 1121.36292, 526.45648, 0.00000, 0.00000, 307.22849); CreateDynamicObject(2010, 136.87805, 1125.93713, 526.46216, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1536, 133.15187, 1129.61304, 526.45752, 0.00000, 0.00000, 12.11936); CreateDynamicObject(2256, 135.08641, 1130.65771, 528.70770, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2258, 137.15707, 1128.67090, 528.65802, 0.00000, 0.00000, 269.69696); CreateDynamicObject(2690, 133.26740, 1130.38123, 527.15887, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1722, 134.50121, 1126.67163, 526.46228, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1722, 133.79807, 1126.65308, 526.46222, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2205, 136.08499, 1117.84949, 526.45868, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19325, 137.56654, 1112.37195, 527.85474, 0.00000, 0.00000, 90.00000); CreateDynamicObject(14455, 139.99011, 1114.04700, 528.09216, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1722, 134.87361, 1116.13501, 526.43964, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1722, 135.92680, 1116.13586, 526.45947, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2611, 133.11266, 1120.04382, 528.52368, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2204, 131.35355, 1113.01428, 526.43878, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2162, 131.32373, 1116.18311, 528.17126, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2612, 135.37790, 1120.04858, 528.52368, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2737, 138.35339, 1120.02527, 528.52368, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2615, 138.15709, 1120.01147, 528.69427, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2894, 134.89040, 1117.84570, 527.39203, 0.00000, 0.00000, 332.81030); CreateDynamicObject(2196, 134.66370, 1118.03210, 527.38831, 0.00000, 0.00000, 22.75634); CreateDynamicObject(2190, 136.18956, 1117.44397, 527.38831, 0.00000, 0.00000, 220.00000); CreateDynamicObject(18870, 135.70641, 1117.98608, 527.39209, 0.00000, 0.00000, 200.00000); CreateDynamicObject(2606, 131.41156, 1118.94824, 528.36499, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2010, 139.58926, 1119.63770, 526.44238, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2011, 139.51135, 1113.02698, 526.43896, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1330, 131.64388, 1115.89709, 526.74182, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1708, 135.09679, 1112.80481, 526.44012, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1708, 138.28033, 1113.82666, 526.44092, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1714, 135.60278, 1119.42688, 526.43811, 0.00000, 0.00000, 344.77161); CreateDynamicObject(1822, 136.19110, 1112.79016, 526.43884, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19454, 112.45860, 1099.36975, 526.35120, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19454, 135.50690, 1093.47217, 526.35321, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19454, 125.93092, 1093.45447, 526.35522, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19454, 116.40486, 1093.46167, 526.35718, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19454, 109.46172, 1093.44653, 526.35522, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19444, 136.78610, 1108.07617, 526.69269, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 136.78461, 1104.66504, 526.69470, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 136.78720, 1101.24780, 526.69269, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 136.79449, 1097.75964, 526.69470, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 136.78951, 1096.97217, 526.69269, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 135.11729, 1095.30383, 526.69470, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 131.70110, 1095.29980, 526.69269, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 128.26730, 1095.29834, 526.69470, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 124.84230, 1095.30347, 526.69269, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 121.39020, 1095.29907, 526.69470, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 117.95600, 1095.28748, 526.69269, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 114.28280, 1108.09314, 526.69269, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 114.25240, 1104.68054, 526.69470, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 114.23370, 1101.21851, 526.69269, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 114.22680, 1097.79871, 526.69470, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 115.89910, 1095.28357, 526.69470, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 114.22220, 1096.95386, 526.69269, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 111.37985, 1107.63342, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 111.38427, 1098.07153, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 111.38670, 1089.84912, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18756, 113.27636, 1098.83459, 528.43286, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18757, 113.27254, 1098.81433, 528.43292, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18756, 113.26991, 1105.07324, 528.43292, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18757, 113.25907, 1105.04565, 528.43292, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2010, 111.79386, 1111.89648, 526.43835, 0.00000, 0.00000, 345.26868); CreateDynamicObject(19450, 140.27351, 1095.55518, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19388, 112.93038, 1091.72949, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19379, 115.76257, 1086.75574, 526.35321, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19325, 117.73980, 1091.73083, 528.19171, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2357, 116.70911, 1088.50146, 526.77863, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 121.02410, 1086.94360, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 116.12797, 1085.07898, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1714, 119.77950, 1088.46509, 526.40222, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1671, 118.46954, 1089.92505, 526.85437, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1671, 117.28407, 1089.92969, 526.85437, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1671, 116.15219, 1089.93604, 526.85437, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1671, 115.10846, 1089.94739, 526.85437, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1671, 118.45634, 1087.13391, 526.85437, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1671, 117.36018, 1087.12891, 526.85437, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1671, 116.15527, 1087.15271, 526.85437, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1671, 115.05414, 1087.15967, 526.85437, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2737, 111.52480, 1088.78040, 528.27179, 0.00000, 0.00000, 90.00000); CreateDynamicObject(14604, 112.01170, 1085.64783, 527.32050, 0.00000, 0.00000, 311.34229); CreateDynamicObject(1455, 118.05880, 1088.92456, 527.25232, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1455, 116.17137, 1088.16382, 527.25232, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2894, 118.48130, 1088.46375, 527.18390, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2161, 120.38039, 1085.16174, 528.04303, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2002, 111.98170, 1092.22778, 526.44098, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2011, 111.82670, 1091.19421, 526.43658, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1330, 120.52814, 1085.52783, 526.74475, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2288, 118.26725, 1085.69128, 528.27216, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2288, 113.80272, 1085.66016, 528.27222, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19450, 139.56389, 1091.73572, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19366, 134.82491, 1090.20447, 528.14392, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19366, 134.81180, 1087.08533, 528.14789, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19366, 133.30695, 1085.41980, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19366, 130.14590, 1085.43359, 528.14789, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19431, 128.62367, 1084.70020, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 129.46500, 1086.96521, 526.35120, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 125.91820, 1086.97253, 526.34918, 0.00000, 90.00000, 0.00000); CreateDynamicObject(1713, 131.95149, 1086.21045, 526.43347, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1713, 132.90269, 1088.75122, 526.43347, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2010, 134.30821, 1085.90833, 526.43738, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1775, 134.35789, 1091.14221, 527.52203, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1776, 134.35620, 1089.94055, 527.51801, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2082, 130.69630, 1087.53809, 526.43719, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2852, 131.14174, 1088.06909, 526.93237, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1549, 129.10576, 1086.14331, 526.43652, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19225, 127.12206, 1082.65051, 526.43390, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19325, 128.60576, 1082.03406, 528.35968, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19388, 128.65894, 1077.93237, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 123.37313, 1077.45435, 526.35321, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19450, 123.24889, 1073.73486, 528.14587, 0.00000, 0.00000, 45.00000); CreateDynamicObject(19450, 125.56961, 1072.72607, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 133.39168, 1076.40552, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 135.73665, 1081.16174, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 133.41606, 1085.22180, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19379, 133.84380, 1080.66089, 526.35919, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 133.79469, 1071.60303, 526.36121, 0.00000, 90.00000, 0.00000); CreateDynamicObject(2165, 133.11618, 1082.18774, 526.43860, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1714, 134.51045, 1082.76270, 526.43060, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1722, 131.52663, 1083.32080, 526.43988, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1722, 131.51898, 1082.16638, 526.43988, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2010, 129.19586, 1084.72717, 526.43927, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2164, 130.03203, 1076.50342, 526.43958, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2167, 130.94780, 1076.48743, 526.44019, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1742, 133.52155, 1076.36609, 526.43951, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2611, 135.61458, 1079.95618, 528.61853, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2612, 135.59764, 1077.76465, 528.61853, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1330, 135.27205, 1076.87073, 526.74207, 0.00000, 0.00000, 0.00000); CreateDynamicObject(14604, 135.09319, 1084.59290, 527.37329, 0.00000, 0.00000, 131.09131); CreateDynamicObject(2260, 131.79678, 1084.62195, 528.47632, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2002, 129.20558, 1079.10645, 526.43970, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19388, 131.86816, 1072.72595, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 130.17386, 1067.83179, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 138.23438, 1072.72717, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 135.75153, 1077.51001, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 134.93445, 1066.40051, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 138.87886, 1068.02002, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 134.65723, 1067.95557, 526.35718, 0.00000, 90.00000, 0.00000); CreateDynamicObject(3077, 138.69243, 1069.44690, 526.13965, 0.00000, 0.00000, 90.00000); CreateDynamicObject(14604, 138.19545, 1071.98853, 527.25476, 0.00000, 0.00000, 115.51939); CreateDynamicObject(1811, 136.20747, 1072.29272, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 136.19643, 1071.29944, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 134.75218, 1072.29626, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 134.77368, 1071.33752, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 133.36150, 1072.35144, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 133.31682, 1071.41089, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 136.12198, 1066.84167, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 136.12402, 1067.77856, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 136.13535, 1068.73511, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 134.73260, 1068.75024, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 134.69025, 1067.75879, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 134.70734, 1066.86731, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 133.33559, 1068.78430, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 133.30193, 1067.76831, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 133.32515, 1066.87988, 527.06049, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2011, 130.54782, 1066.73120, 526.44244, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1330, 130.61829, 1072.21741, 526.74847, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2262, 135.15402, 1074.61951, 528.36896, 0.00000, 0.00000, 270.00000); CreateDynamicObject(19450, 121.02251, 1077.49500, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(14877, 141.87305, 1108.05750, 528.16107, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19377, 131.63106, 1114.61804, 530.15784, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 139.73129, 1114.63342, 530.15979, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19454, 138.55641, 1105.10388, 530.16180, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19378, 127.24680, 1135.48657, 529.91479, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19378, 127.26780, 1127.97620, 529.91882, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19378, 137.31441, 1135.49072, 529.91681, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19378, 137.50050, 1128.01025, 529.91278, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 126.02420, 1118.75073, 529.91479, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19378, 136.39461, 1124.86157, 529.91479, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 133.77930, 1080.69104, 529.91681, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 123.94470, 1080.68713, 529.91278, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 135.44540, 1071.05615, 529.91479, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 125.79240, 1074.95581, 529.91882, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 116.08100, 1087.01868, 529.91882, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 136.26430, 1117.10559, 529.91681, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 126.48530, 1087.06067, 529.91083, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 131.38940, 1087.10059, 529.91479, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 125.84450, 1117.11646, 529.91681, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19454, 138.53020, 1095.95715, 530.15778, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19454, 132.67810, 1093.54395, 530.15979, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19454, 123.07740, 1093.54980, 530.16180, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19454, 113.53893, 1093.53662, 530.15778, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19454, 112.54580, 1098.87085, 530.15582, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19454, 112.55270, 1108.42798, 530.15778, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19454, 121.63480, 1111.54858, 530.15582, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19454, 114.24620, 1111.54163, 530.15979, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19444, 134.94830, 1109.84155, 530.61499, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 131.51460, 1109.83362, 530.61700, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 128.05809, 1109.84094, 530.61499, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 124.58686, 1109.82886, 530.61499, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 121.11240, 1109.83362, 530.61298, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 117.65174, 1109.82898, 530.61499, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 116.05900, 1109.82178, 530.61700, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 114.36700, 1108.12878, 530.61499, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 114.38530, 1104.65454, 530.61700, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 114.38590, 1101.19116, 530.61499, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 114.38820, 1097.69788, 530.61700, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 114.40220, 1096.99829, 530.61902, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19454, 141.66440, 1113.54224, 530.15778, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 116.08480, 1095.34558, 530.62097, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 119.57096, 1095.35339, 530.61902, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 123.01680, 1095.35278, 530.62097, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 126.46865, 1095.33594, 530.61902, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 129.93410, 1095.33057, 530.61700, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 133.37680, 1095.32898, 530.61902, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 135.18970, 1095.32666, 530.62097, 90.00000, 90.00000, 0.00000); CreateDynamicObject(19444, 136.86742, 1097.01819, 530.61902, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 136.86099, 1100.41992, 530.62097, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 136.86174, 1103.87610, 530.61902, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 136.87041, 1107.34583, 530.62097, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19444, 135.21918, 1109.83801, 530.61902, 90.00000, 0.00000, 90.00000); CreateDynamicObject(19444, 136.88350, 1108.15576, 530.62299, 90.00000, 0.00000, 0.00000); CreateDynamicObject(19462, 112.69556, 1096.55469, 529.91479, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19462, 112.62840, 1106.10645, 529.91278, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19462, 112.33601, 1111.62097, 529.91479, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19462, 121.68850, 1111.61267, 529.91278, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19462, 130.72701, 1111.54761, 529.91882, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19462, 138.96800, 1111.54187, 529.91479, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19462, 138.61723, 1105.10620, 529.91278, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19462, 138.57025, 1095.76221, 529.91479, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19462, 132.49710, 1093.56824, 529.91278, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19462, 123.22495, 1093.50879, 529.91479, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19462, 114.56200, 1093.60425, 529.91681, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19388, 140.34053, 1101.93823, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 140.28880, 1103.91687, 531.60571, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 140.29112, 1094.44104, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 145.02670, 1100.66614, 531.60571, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 129.96780, 1087.15955, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 111.58964, 1096.60803, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 111.58822, 1106.23401, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 111.58785, 1115.74939, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 116.37499, 1113.31738, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19325, 136.24066, 1091.88831, 532.21271, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 141.36540, 1116.48499, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 143.44580, 1113.48291, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18756, 113.47980, 1098.88000, 532.21948, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18757, 113.46759, 1098.85889, 532.21948, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18756, 113.46564, 1105.14160, 532.21948, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18757, 113.46570, 1105.09106, 532.21948, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2010, 139.85884, 1092.50354, 530.23560, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 125.82520, 1116.18567, 530.15979, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19450, 136.62334, 1121.22974, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 134.95810, 1115.57117, 531.97791, 0.00000, 0.00000, 298.09003); CreateDynamicObject(19450, 125.93468, 1113.31970, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19388, 131.48174, 1091.88867, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19325, 126.89705, 1091.92029, 532.21271, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19388, 122.14970, 1091.87549, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19325, 117.70520, 1091.87073, 532.21271, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19388, 113.00563, 1091.83191, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 134.76254, 1086.60999, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 125.27247, 1086.61072, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 120.62556, 1087.12634, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 115.72308, 1086.61133, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 111.54620, 1087.20276, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 139.49138, 1087.04407, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 124.42427, 1087.07080, 530.16382, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 115.33568, 1087.04480, 530.16577, 0.00000, 90.00000, 0.00000); CreateDynamicObject(2165, 137.57381, 1088.74829, 530.24573, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2165, 127.95204, 1088.84363, 530.24573, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2165, 118.61790, 1088.83020, 530.24573, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2612, 111.69997, 1089.28882, 532.43109, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2204, 114.13966, 1086.77905, 530.25262, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1722, 116.92688, 1089.94971, 530.25269, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1722, 116.95602, 1088.77759, 530.25262, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1806, 120.13129, 1089.28381, 530.25342, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2010, 111.95350, 1091.20374, 530.25269, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2288, 116.08520, 1087.20911, 532.12488, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2288, 119.47620, 1087.23804, 532.12488, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2204, 123.21225, 1086.70837, 530.25262, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2612, 120.74992, 1089.23096, 532.43109, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2010, 121.13047, 1091.35425, 530.25031, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2288, 125.32215, 1087.19531, 532.12488, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2288, 128.70610, 1087.19165, 532.12488, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1722, 126.37733, 1089.83777, 530.25043, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1722, 126.38070, 1088.81104, 530.25018, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1806, 129.45699, 1089.26892, 530.25128, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2162, 129.84070, 1088.24731, 532.02911, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2162, 120.51205, 1088.25647, 532.02911, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2162, 139.41263, 1088.26233, 532.02911, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2288, 138.35809, 1087.20105, 532.12488, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2288, 134.09587, 1087.22839, 532.12488, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2204, 132.50148, 1086.68408, 530.25262, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2612, 130.12473, 1089.21899, 532.43109, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2010, 130.54945, 1091.37976, 530.24780, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 134.88551, 1087.09924, 530.16180, 0.00000, 90.00000, 0.00000); CreateDynamicObject(1722, 135.97946, 1089.82288, 530.24792, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1722, 135.97874, 1088.71265, 530.24780, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1806, 139.01837, 1089.03369, 530.24902, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1330, 139.01315, 1087.08191, 530.55060, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1330, 129.52734, 1087.09998, 530.55060, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1330, 120.19865, 1087.10083, 530.55060, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1536, 113.75910, 1091.90076, 530.20190, 0.00000, 0.00000, 256.70200); CreateDynamicObject(1536, 122.90400, 1091.92590, 530.20190, 0.00000, 0.00000, 256.70200); CreateDynamicObject(1536, 132.24448, 1091.88440, 530.20190, 0.00000, 0.00000, 256.70200); CreateDynamicObject(1775, 137.40103, 1116.03918, 531.36017, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1776, 138.67079, 1116.17371, 531.29559, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1536, 114.49542, 1113.25586, 530.27441, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1536, 127.30031, 1113.21472, 530.27441, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 142.08961, 1096.71240, 533.76501, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 142.11040, 1106.17957, 533.77100, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 142.10101, 1115.62122, 533.77301, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 132.30190, 1114.64856, 533.77502, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 121.99330, 1114.64441, 533.77301, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 111.87560, 1114.64026, 533.77502, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 109.17750, 1107.13855, 533.77301, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 109.18620, 1097.55298, 533.77502, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 117.32070, 1090.59680, 533.77301, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 127.82350, 1090.58374, 533.77502, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 135.60220, 1090.58838, 533.77100, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19454, 115.62560, 1101.58276, 534.97791, 0.00000, 45.00000, 0.00000); CreateDynamicObject(19454, 115.62793, 1111.15210, 534.97791, 0.00000, 45.00000, 0.00000); CreateDynamicObject(19454, 115.62869, 1092.26245, 534.97791, 0.00000, 45.00000, 0.00000); CreateDynamicObject(19454, 119.26988, 1096.59265, 534.97791, 0.00000, 45.00000, 90.00000); CreateDynamicObject(19454, 128.86475, 1096.59167, 534.97791, 0.00000, 45.00000, 90.00000); CreateDynamicObject(19454, 138.40860, 1096.57214, 534.97791, 0.00000, 45.00000, 90.00000); CreateDynamicObject(19454, 135.64600, 1100.10974, 534.97791, 0.00000, 134.00000, 0.00000); CreateDynamicObject(19454, 135.63617, 1109.42273, 534.97791, 0.00000, 134.00000, 0.00000); CreateDynamicObject(19454, 132.16199, 1108.62390, 534.97791, 0.00000, 134.00000, 90.00000); CreateDynamicObject(19454, 122.63538, 1108.62158, 534.97791, 0.00000, 134.00000, 90.00000); CreateDynamicObject(19454, 113.23528, 1108.62549, 534.97791, 0.00000, 134.00000, 90.00000); CreateDynamicObject(3851, 122.49400, 1099.75952, 536.20520, 0.00000, 90.00000, 90.00000); CreateDynamicObject(3851, 122.49060, 1103.74939, 536.20319, 0.00000, 90.00000, 90.00000); CreateDynamicObject(3851, 122.46804, 1107.65796, 536.20520, 0.00000, 90.00000, 90.00000); CreateDynamicObject(3851, 133.76593, 1099.80408, 536.20923, 0.00000, 90.00000, 270.00000); CreateDynamicObject(3851, 133.69357, 1103.72632, 536.20721, 0.00000, 90.00000, 90.00000); CreateDynamicObject(3851, 133.77928, 1107.68640, 536.20319, 0.00000, 90.00000, 90.00000); CreateDynamicObject(14604, 129.49469, 1091.40381, 531.14410, 0.00000, 0.00000, 90.00000); CreateDynamicObject(14604, 139.02293, 1091.41394, 531.14410, 0.00000, 0.00000, 90.00000); CreateDynamicObject(14604, 120.19371, 1091.40466, 531.14410, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1722, 143.20032, 1113.64319, 530.24573, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1722, 143.19011, 1114.44873, 530.24628, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1722, 143.20047, 1115.30127, 530.24622, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1722, 142.26004, 1116.34290, 530.24579, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1722, 141.35948, 1116.30200, 530.24579, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2082, 142.62309, 1115.68152, 530.24670, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2854, 142.94212, 1116.10400, 530.74310, 0.00000, 0.00000, 341.63055); CreateDynamicObject(2011, 139.88695, 1115.98315, 530.24506, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1549, 143.02838, 1112.83582, 530.24652, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2010, 111.97650, 1112.83801, 530.24548, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 140.33904, 1096.14893, 528.14587, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19377, 142.11330, 1105.17847, 526.35321, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19450, 143.44560, 1103.92468, 531.60571, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 143.43307, 1104.31189, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 143.43233, 1095.75171, 528.14587, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 112.94600, 1087.97253, 533.77698, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 145.44911, 1095.91614, 529.95880, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 145.25360, 1093.57092, 529.96082, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19450, 140.27440, 1103.93079, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 140.27980, 1096.92285, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 144.21477, 1091.81763, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 143.44524, 1104.04932, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 145.14032, 1100.67163, 531.97791, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 140.29176, 1103.91882, 531.97791, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 140.28751, 1099.33887, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19388, 142.01030, 1100.68762, 528.14587, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2886, 140.85306, 1100.70117, 528.07343, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1536, 142.78467, 1100.68640, 526.44043, 0.00000, 0.00000, 75.00000); CreateDynamicObject(19388, 140.28903, 1093.00366, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 138.24370, 1092.36133, 522.83350, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 138.24451, 1101.89868, 522.83148, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 138.26080, 1111.43579, 522.83350, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 128.06461, 1109.92236, 522.82953, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 128.07579, 1100.29578, 522.83551, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 128.07312, 1091.23816, 522.83148, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19450, 135.54425, 1091.48877, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 143.40021, 1088.80066, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 125.92052, 1091.49451, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19388, 141.97325, 1091.68042, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 138.67682, 1087.18726, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19388, 138.68344, 1084.03223, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19385, 140.28984, 1085.25476, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19385, 143.47412, 1085.25293, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19385, 146.64734, 1085.24963, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19385, 138.69080, 1084.03247, 524.66248, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 138.69785, 1087.13940, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19447, 143.54721, 1088.74988, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19355, 141.68327, 1086.77551, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 141.67004, 1087.09839, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19447, 143.52057, 1082.50903, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19355, 148.16312, 1086.85205, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 148.16469, 1088.76746, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 144.96552, 1086.84717, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 144.95012, 1087.26794, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19447, 148.18352, 1087.19287, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19302, 140.18980, 1085.21912, 524.15747, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19302, 143.38164, 1085.24597, 524.15747, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19302, 146.55701, 1085.25659, 524.15747, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 143.75160, 1083.44604, 522.83148, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 148.67390, 1090.22339, 522.82953, 0.00000, 90.00000, 0.00000); CreateDynamicObject(1771, 143.26036, 1087.97412, 523.32465, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1771, 140.20673, 1087.95862, 523.32458, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1771, 146.60081, 1087.96973, 523.32458, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2602, 145.53918, 1085.67456, 523.36853, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2602, 142.34212, 1085.69116, 523.36853, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2602, 139.24156, 1085.70129, 523.36853, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1495, 138.72729, 1083.30469, 522.91858, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19377, 133.31830, 1083.48254, 522.82953, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19388, 133.77499, 1088.80090, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 136.98422, 1088.79785, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19359, 133.91905, 1081.94104, 521.99481, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19359, 131.98703, 1081.96216, 521.99280, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1722, 135.03220, 1082.08691, 522.91711, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1722, 134.31194, 1082.10254, 522.91705, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1722, 133.63879, 1082.11487, 522.91705, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1722, 132.14066, 1082.13123, 522.91693, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2010, 132.93507, 1082.44189, 522.91675, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1722, 131.43916, 1082.12134, 522.91669, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1722, 130.77658, 1082.11987, 522.91687, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 130.60133, 1088.80103, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 128.77126, 1088.79529, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 127.24265, 1087.27637, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19388, 127.24377, 1084.09473, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 130.63762, 1079.06775, 524.66052, 0.00000, 0.00000, 45.00000); CreateDynamicObject(19450, 135.27208, 1078.98413, 524.66052, 0.00000, 0.00000, 135.00000); CreateDynamicObject(19450, 132.39598, 1078.92346, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19379, 139.86205, 1086.73352, 526.35522, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 143.18819, 1083.98682, 526.35498, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 129.75432, 1086.60962, 526.34723, 0.00000, 90.00000, 0.00000); CreateDynamicObject(2191, 138.09259, 1088.18298, 522.91998, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2198, 135.08080, 1086.37158, 522.91553, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2198, 136.94574, 1085.53943, 522.91699, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2162, 138.59955, 1086.56250, 524.52618, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1806, 136.55389, 1087.21790, 522.91748, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1806, 136.36046, 1086.26489, 522.91791, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1495, 127.22569, 1083.35547, 522.91858, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19385, 127.22547, 1084.09802, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19447, 122.34933, 1082.73865, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19385, 125.62576, 1085.35486, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19385, 122.59427, 1085.34717, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19385, 119.60833, 1085.33813, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19447, 122.36819, 1088.57544, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19355, 118.08986, 1087.00342, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 121.20937, 1086.87244, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 127.17812, 1087.03943, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 124.09195, 1086.87817, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 118.10075, 1083.70496, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 122.89516, 1083.72327, 522.82550, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19302, 125.52569, 1085.38574, 524.15747, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19302, 122.50881, 1085.33984, 524.15747, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19302, 119.50971, 1085.33813, 524.15747, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1771, 122.69280, 1087.83594, 523.32458, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1771, 125.63544, 1087.78369, 523.32458, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1771, 119.58060, 1087.82861, 523.32458, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2602, 118.56097, 1085.76880, 523.31781, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2602, 118.56097, 1085.76880, 523.31781, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2602, 123.66084, 1085.91602, 523.31781, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2602, 124.59685, 1085.78748, 523.31781, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19379, 122.76500, 1083.81946, 526.34723, 0.00000, 90.00000, 0.00000); CreateDynamicObject(2164, 127.83847, 1088.66809, 522.91803, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2198, 131.05338, 1085.50879, 522.91669, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2198, 131.88240, 1087.34937, 522.91791, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1806, 130.38409, 1086.01379, 522.91882, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 130.60435, 1086.75427, 522.91901, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2162, 129.82295, 1088.66077, 524.44781, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1235, 129.51157, 1088.33447, 523.42841, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2186, 132.19023, 1079.52148, 522.91211, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2611, 134.25023, 1079.12964, 525.20880, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2612, 131.57513, 1079.06165, 525.20880, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2612, 141.33829, 1088.95300, 525.00580, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2002, 133.03841, 1079.39392, 522.91150, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19377, 120.45150, 1092.68396, 522.82751, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19450, 119.22319, 1091.50220, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 122.49615, 1088.80066, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 122.38882, 1088.80640, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19447, 109.78014, 1088.71851, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19447, 107.40337, 1087.01196, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19447, 109.78036, 1082.78894, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19350, 117.54076, 1086.52673, 523.06812, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19385, 114.58030, 1086.91223, 524.66248, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 114.57392, 1084.34558, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19355, 114.57330, 1089.78906, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 113.61063, 1087.70313, 522.82349, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19455, 109.76550, 1086.96875, 522.83551, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19455, 109.80690, 1083.82361, 522.83752, 0.00000, 90.00000, 90.00000); CreateDynamicObject(19379, 106.59776, 1086.73401, 526.35120, 0.00000, 90.00000, 0.00000); CreateDynamicObject(2509, 113.90943, 1082.88464, 524.90875, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2509, 112.58274, 1082.87439, 524.90881, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2509, 111.23864, 1082.88440, 524.90881, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2509, 109.89198, 1082.88013, 524.90881, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2509, 108.54980, 1082.87830, 524.90881, 0.00000, 0.00000, 180.00000); CreateDynamicObject(356, 113.62602, 1082.92297, 525.36688, 0.00000, 0.00000, 0.00000); CreateDynamicObject(356, 113.69150, 1082.91870, 524.85394, 0.00000, 0.00000, 0.00000); CreateDynamicObject(356, 113.67495, 1082.92761, 524.36243, 0.00000, 0.00000, 0.00000); CreateDynamicObject(353, 112.42621, 1082.93323, 525.30804, 0.00000, 0.00000, 0.00000); CreateDynamicObject(353, 112.42774, 1082.94812, 524.75189, 0.00000, 0.00000, 0.00000); CreateDynamicObject(353, 112.43629, 1082.93494, 524.25012, 0.00000, 0.00000, 0.00000); CreateDynamicObject(346, 111.39957, 1082.89844, 525.51910, 0.00000, 0.00000, 0.00000); CreateDynamicObject(346, 110.87761, 1082.89294, 525.51910, 0.00000, 0.00000, 0.00000); CreateDynamicObject(346, 111.34773, 1082.93823, 524.97650, 0.00000, 0.00000, 0.00000); CreateDynamicObject(346, 110.83324, 1082.89844, 524.97650, 0.00000, 0.00000, 0.00000); CreateDynamicObject(348, 111.33148, 1082.91931, 524.55145, 0.00000, 0.00000, 0.00000); CreateDynamicObject(348, 110.77611, 1082.88245, 524.55151, 0.00000, 0.00000, 0.00000); CreateDynamicObject(348, 111.31147, 1082.89697, 524.24365, 0.00000, 0.00000, 0.00000); CreateDynamicObject(348, 110.75915, 1082.90479, 524.24371, 0.00000, 0.00000, 0.00000); CreateDynamicObject(349, 109.61875, 1082.95581, 525.41864, 0.00000, 0.00000, 0.00000); CreateDynamicObject(349, 109.63561, 1082.95593, 524.90588, 0.00000, 0.00000, 0.00000); CreateDynamicObject(349, 109.57643, 1082.95569, 524.42761, 0.00000, 0.00000, 0.00000); CreateDynamicObject(358, 108.33376, 1082.92090, 525.32642, 0.00000, 0.00000, 0.00000); CreateDynamicObject(358, 108.34093, 1082.92822, 524.81311, 0.00000, 0.00000, 0.00000); CreateDynamicObject(358, 108.32735, 1082.95239, 524.29095, 0.00000, 0.00000, 0.00000); CreateDynamicObject(941, 107.61217, 1083.73694, 523.31549, 0.00000, 0.00000, 90.00000); CreateDynamicObject(941, 107.60360, 1086.05933, 523.31348, 0.00000, 0.00000, 90.00000); CreateDynamicObject(365, 107.61600, 1083.12244, 523.87091, 0.00000, 90.00000, 180.00000); CreateDynamicObject(365, 107.60783, 1083.42773, 523.87091, 0.00000, 90.00000, 180.00000); CreateDynamicObject(365, 107.63793, 1083.69971, 523.87091, 0.00000, 90.00000, 180.00000); CreateDynamicObject(365, 107.66192, 1083.97290, 523.87091, 0.00000, 90.00000, 180.00000); CreateDynamicObject(334, 107.93712, 1084.30762, 523.76257, 90.00000, 90.00000, 180.00000); CreateDynamicObject(334, 107.93470, 1084.59167, 523.76257, 90.00000, 90.00000, 180.00000); CreateDynamicObject(334, 107.94098, 1084.88391, 523.76257, 90.00000, 90.00000, 180.00000); CreateDynamicObject(334, 107.94121, 1085.15076, 523.76257, 90.00000, 90.00000, 180.00000); CreateDynamicObject(1672, 107.58466, 1085.35498, 523.88739, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1672, 107.61528, 1085.57410, 523.88739, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1672, 107.86807, 1085.35779, 523.88739, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1672, 107.87142, 1085.58337, 523.88739, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1672, 107.61620, 1085.82019, 523.88739, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1672, 107.87934, 1085.82117, 523.88739, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18673, 108.70865, 1086.39771, 525.41656, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18637, 107.47650, 1085.98010, 524.39148, 90.00000, 0.00000, 90.00000); CreateDynamicObject(18637, 107.47083, 1086.50732, 524.39148, 90.00000, 0.00000, 90.00000); CreateDynamicObject(2949, 114.60330, 1086.18176, 522.91071, 0.00000, 0.00000, 265.00000); CreateDynamicObject(2164, 129.76744, 1088.91943, 522.91681, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2162, 127.90387, 1088.91638, 524.31885, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19379, 132.05751, 1102.08972, 522.83948, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 121.96914, 1102.09583, 522.83752, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 120.28329, 1102.09827, 522.83948, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 120.45150, 1092.68396, 19377.00000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 117.69498, 1111.59216, 522.82751, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19450, 140.30443, 1108.88367, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 139.04089, 1112.40698, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 129.47171, 1112.41052, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2183, 131.65504, 1098.90417, 522.92242, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2183, 124.81044, 1098.81653, 522.92242, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2183, 131.51552, 1103.80627, 522.92242, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2183, 124.93020, 1103.76660, 522.92242, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2183, 118.27032, 1098.91064, 522.92242, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2183, 118.16262, 1103.81274, 522.92242, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 119.97842, 1112.41125, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 110.36918, 1112.41296, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 111.33980, 1097.14661, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 111.33373, 1106.62268, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 111.32936, 1110.53687, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 114.61030, 1097.12939, 522.82550, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 115.36610, 1106.18958, 522.82147, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 116.35430, 1111.23169, 522.82349, 0.00000, 90.00000, 0.00000); CreateDynamicObject(2190, 133.50935, 1104.44312, 523.72797, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2190, 132.51724, 1104.48755, 523.72961, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2190, 133.01036, 1104.88794, 523.72961, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2190, 132.94148, 1103.97461, 523.72961, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2190, 133.65422, 1099.54834, 523.72821, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2190, 133.12120, 1100.05347, 523.72961, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2190, 132.62589, 1099.55652, 523.72968, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2190, 133.14821, 1099.00549, 523.72961, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2190, 126.89330, 1104.46387, 523.72980, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2190, 126.41243, 1104.96570, 523.72980, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2190, 125.89957, 1104.39526, 523.72968, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2190, 126.45559, 1103.82300, 523.72961, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2190, 126.77824, 1099.50549, 523.72888, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2190, 126.33763, 1099.97217, 523.72931, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2190, 125.79580, 1099.50891, 523.72931, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2190, 126.35437, 1098.98938, 523.72961, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2190, 120.12819, 1104.46716, 523.72858, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2190, 119.61075, 1104.94983, 523.72852, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2190, 119.18522, 1104.43079, 523.72858, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2190, 119.63222, 1103.97913, 523.72852, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2190, 120.29862, 1099.61438, 523.72894, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2190, 119.72598, 1100.12378, 523.72882, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2190, 119.25583, 1099.55176, 523.72913, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2190, 119.75493, 1099.06812, 523.72888, 0.00000, 0.00000, 270.00000); CreateDynamicObject(19450, 109.66398, 1091.50818, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 111.32271, 1096.33679, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 112.34518, 1086.75513, 522.83148, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19388, 117.62875, 1089.92566, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 117.61053, 1083.55151, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19397, 117.60355, 1077.75562, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19397, 114.59400, 1086.91138, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 114.59531, 1080.87073, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19397, 117.61980, 1089.91467, 524.66248, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 114.59068, 1089.92932, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 115.93106, 1091.49622, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19379, 122.78049, 1086.60803, 526.34521, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 112.33240, 1081.18127, 522.82953, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19461, 119.47045, 1076.34277, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19455, 119.29734, 1077.90198, 522.83148, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19455, 122.54670, 1077.84192, 522.82751, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19455, 125.42399, 1077.89221, 522.82953, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19461, 126.05796, 1077.89453, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 121.36431, 1076.33752, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19461, 122.34753, 1082.18201, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(14842, 125.07040, 1077.98047, 524.24432, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19369, 123.82243, 1077.27954, 523.11548, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 123.81551, 1078.30652, 523.11548, 0.00000, 0.00000, 0.00000); CreateDynamicObject(14782, 120.76030, 1081.72729, 523.92371, 0.00000, 0.00000, 0.00000); CreateDynamicObject(14401, 129.59520, 1062.60181, 522.92242, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2844, 118.44782, 1079.69006, 522.91913, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 123.37051, 1076.98132, 526.34320, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 112.87190, 1078.56494, 526.34918, 0.00000, 90.00000, 0.00000); CreateDynamicObject(3109, 116.86426, 1076.45776, 524.03528, 0.00000, 0.00000, 90.00000); CreateDynamicObject(640, 134.47305, 1107.18835, 523.92700, 0.00000, 0.00000, 90.00000); CreateDynamicObject(640, 129.20180, 1107.18445, 523.92902, 0.00000, 0.00000, 90.00000); CreateDynamicObject(640, 123.85225, 1107.18494, 523.92700, 0.00000, 0.00000, 90.00000); CreateDynamicObject(640, 118.50583, 1107.18713, 523.92700, 0.00000, 0.00000, 90.00000); CreateDynamicObject(640, 137.25410, 1104.83179, 523.92499, 0.00000, 0.00000, 0.00000); CreateDynamicObject(640, 137.24770, 1099.99646, 523.92902, 0.00000, 0.00000, 0.00000); CreateDynamicObject(640, 115.52139, 1104.82532, 523.92902, 0.00000, 0.00000, 0.00000); CreateDynamicObject(640, 115.49360, 1099.91638, 523.92499, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19458, 120.60987, 1106.85046, 521.93335, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19458, 130.16440, 1106.85352, 521.93530, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19458, 136.91629, 1102.13611, 521.93329, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19458, 132.17490, 1106.85583, 521.93127, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19458, 115.88650, 1102.05762, 521.93127, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19458, 132.80293, 1107.50037, 521.93329, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19458, 123.22170, 1107.49023, 521.93127, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19458, 119.85920, 1107.45935, 521.93329, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19458, 115.13110, 1102.73181, 521.93127, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19458, 115.13950, 1102.04370, 521.93530, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19458, 137.59819, 1102.78137, 521.93127, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19458, 137.58470, 1102.13293, 521.93127, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19439, 137.24181, 1097.37561, 521.92932, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19439, 115.56210, 1097.28723, 521.92932, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2010, 139.84850, 1092.20276, 526.44379, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2186, 121.58313, 1089.31726, 526.43542, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2164, 121.19000, 1087.27039, 526.43542, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2161, 121.13370, 1085.92786, 526.92352, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2167, 121.12644, 1084.99695, 526.43591, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1721, 121.32310, 1082.57239, 526.43561, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1721, 121.33524, 1081.85022, 526.43982, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1721, 121.32806, 1081.14038, 526.43982, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2288, 121.65150, 1076.76404, 528.26093, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2288, 121.64648, 1080.19482, 528.26093, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2288, 121.62092, 1083.69287, 528.26093, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2163, 126.13692, 1088.92883, 524.31708, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2611, 139.28130, 1088.93518, 525.00586, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1536, 115.02440, 1112.32153, 522.84723, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1536, 124.52151, 1112.33472, 522.84723, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1536, 135.28743, 1112.30444, 522.84723, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 120.46580, 1103.44873, 522.92572, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 118.54528, 1102.86108, 522.92633, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 125.29755, 1103.42285, 522.92450, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 127.17112, 1102.85657, 522.92651, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 131.85538, 1102.62451, 522.92645, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 134.11975, 1102.70569, 522.92651, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1494, 117.61360, 1077.02429, 522.91479, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1806, 134.39928, 1098.24060, 522.92682, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 132.04057, 1097.80676, 522.92676, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 127.34973, 1098.48083, 522.92499, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 125.24721, 1098.57507, 522.92694, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 120.78054, 1097.81726, 522.92700, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 118.61246, 1097.92798, 522.91486, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1806, 118.83954, 1100.65100, 522.92670, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 120.68443, 1101.28748, 522.92651, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 120.53580, 1106.16870, 522.92712, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 118.61662, 1105.83459, 522.92719, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 127.45905, 1105.63965, 522.92719, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 125.43990, 1105.97021, 522.92517, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 132.01773, 1105.47009, 522.92657, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 133.85490, 1106.18787, 522.92657, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 125.46176, 1100.56982, 522.92603, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 127.15005, 1100.57532, 522.92603, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 132.23492, 1101.26782, 522.92603, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1806, 134.19078, 1100.52246, 522.92609, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1893, 127.79394, 1122.01599, 530.12433, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 121.90017, 1119.07129, 530.12433, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 136.46642, 1111.21460, 530.12433, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 138.22479, 1094.21094, 530.12433, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 112.61430, 1093.88098, 530.12433, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 112.33164, 1110.95923, 530.12433, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 128.07291, 1091.25818, 522.82953, 0.00000, 90.00000, 0.00000); CreateDynamicObject(1893, 115.61887, 1077.37854, 526.35510, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 115.54539, 1090.51758, 526.35510, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19377, 135.01331, 1087.05396, 526.35718, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 115.49480, 1086.95300, 526.36121, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19358, 143.49193, 1093.16736, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 148.15970, 1090.46484, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 149.74225, 1091.98328, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19388, 152.30147, 1091.98096, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 148.36438, 1087.25635, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 153.18039, 1085.63928, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19404, 153.81474, 1090.34680, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19388, 153.81126, 1087.21033, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 155.47127, 1091.98291, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 158.63158, 1091.97644, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 158.65688, 1087.20190, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 157.47470, 1085.63818, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 149.55676, 1095.09998, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 152.72308, 1095.10168, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 154.29224, 1095.10022, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19431, 156.39772, 1095.63220, 524.66052, 0.00000, 0.00000, 135.00000); CreateDynamicObject(19358, 156.94632, 1097.73291, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 160.05165, 1096.58350, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19388, 156.94150, 1100.07361, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 156.93982, 1102.65613, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19431, 156.40536, 1104.76636, 524.66052, 0.00000, 0.00000, 45.00000); CreateDynamicObject(19358, 154.30132, 1105.29602, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 148.03619, 1099.99170, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 151.17171, 1105.28809, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 148.03619, 1099.99170, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 149.56276, 1105.28821, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19358, 148.03302, 1103.76416, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 143.45268, 1096.16895, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 143.45113, 1099.32642, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 153.34775, 1090.41516, 522.83350, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 148.67390, 1090.22339, 522.82953, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 153.37360, 1100.02271, 522.83148, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 153.36803, 1107.65918, 522.83350, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 163.74850, 1096.60425, 522.83551, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 163.76160, 1106.05566, 522.82953, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 142.83791, 1099.51770, 522.82550, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 145.50880, 1105.20056, 522.82349, 0.00000, 90.00000, 0.00000); CreateDynamicObject(14633, 159.39264, 1092.22693, 522.93939, 0.00000, 0.00000, 0.00000); CreateDynamicObject(14633, 156.95302, 1092.24011, 522.93939, 0.00000, 0.00000, 0.00000); CreateDynamicObject(14633, 154.77795, 1092.19080, 522.93939, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2004, 148.26164, 1105.25488, 524.62860, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2004, 149.06619, 1105.26880, 524.62860, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2004, 149.87918, 1105.25769, 524.62860, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2004, 150.65648, 1105.25610, 524.62860, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2162, 153.90099, 1105.20703, 524.39233, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2164, 152.11411, 1105.12085, 522.96771, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1502, 153.84804, 1086.45325, 522.92029, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19466, 153.75325, 1090.38513, 524.86115, 0.00000, 0.00000, 0.00000); CreateDynamicObject(941, 156.25655, 1089.56860, 523.22882, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1810, 157.42293, 1091.03418, 522.92065, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1810, 156.35863, 1091.00659, 522.92078, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1810, 157.04457, 1088.21655, 522.92059, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1810, 155.84166, 1088.19531, 522.92078, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2395, 153.92993, 1089.02515, 525.39313, 0.00000, 90.00000, 90.00000); CreateDynamicObject(2616, 153.97124, 1090.58081, 524.64349, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1502, 151.49146, 1091.96423, 522.92017, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 160.05551, 1106.15039, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 155.39815, 1108.15234, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 152.97398, 1108.15649, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19388, 147.13269, 1108.15125, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 143.44354, 1105.62732, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19358, 144.06485, 1108.13904, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2132, 149.62859, 1108.74207, 522.91803, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2339, 150.63507, 1108.75708, 522.91827, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2341, 151.63144, 1108.75806, 522.91962, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2131, 151.65384, 1110.73352, 522.91870, 0.00000, 0.00000, 270.00000); CreateDynamicObject(19379, 148.74100, 1112.94019, 522.83148, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19450, 152.17758, 1113.07324, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19450, 148.49275, 1114.75769, 524.66052, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19450, 143.83797, 1112.95959, 524.66052, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2357, 145.82921, 1113.27588, 523.31128, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1811, 147.55078, 1112.39380, 523.53900, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1811, 147.53619, 1113.27075, 523.53900, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1811, 147.54543, 1114.17981, 523.53900, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1811, 147.55481, 1111.40552, 523.53900, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1811, 144.58090, 1114.25549, 523.53900, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 144.60440, 1113.33557, 523.53900, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 144.63412, 1112.41809, 523.53900, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 144.63850, 1111.50366, 523.53900, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2011, 151.59322, 1114.35168, 522.91968, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2339, 151.63832, 1111.72083, 522.91827, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2339, 151.64465, 1112.72668, 522.91827, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2171, 153.24712, 1088.99829, 522.96661, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1811, 148.88960, 1090.63098, 523.53900, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 148.86800, 1089.62524, 523.53900, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1811, 148.86447, 1088.70398, 523.53900, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2010, 149.00334, 1091.42139, 522.91956, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2164, 148.43547, 1086.90527, 522.91937, 0.00000, 0.00000, 89.00000); CreateDynamicObject(1235, 148.80070, 1086.06372, 523.42200, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1811, 152.00299, 1088.48083, 523.53900, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1841, 153.59280, 1085.98755, 525.61072, 0.00000, 0.00000, 315.29449); CreateDynamicObject(1841, 148.71240, 1091.65930, 525.61072, 0.00000, 0.00000, 135.00000); CreateDynamicObject(2011, 158.21964, 1086.07996, 522.91998, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2010, 144.44936, 1108.62146, 522.91840, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2258, 159.91444, 1104.97144, 525.14484, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2256, 159.93555, 1099.32312, 525.14478, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2254, 159.91310, 1093.68604, 525.14478, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2010, 147.72517, 1089.30408, 522.91620, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1753, 144.00346, 1096.37036, 522.90839, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1753, 143.99747, 1100.11182, 522.91278, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2011, 144.06058, 1099.22278, 522.91302, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 137.27281, 1093.72888, 533.99402, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 112.30385, 1093.55640, 533.99402, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 112.73598, 1111.78076, 533.99402, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 134.01772, 1113.13757, 533.99402, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1893, 138.06387, 1108.88831, 533.99402, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2002, 144.06509, 1095.40369, 522.91278, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2204, 147.86580, 1101.56238, 522.86481, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2011, 143.93982, 1107.59778, 522.90900, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2202, 147.45024, 1097.82983, 522.91229, 0.00000, 0.00000, 270.00000); CreateDynamicObject(19377, 148.68404, 1096.53174, 526.35120, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 153.02440, 1087.25476, 526.36121, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 155.11079, 1096.62878, 526.35522, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 155.12457, 1106.17920, 526.35120, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 147.45889, 1106.17224, 526.34918, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 147.98711, 1112.87793, 526.35321, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 143.17439, 1086.93591, 526.35999, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 163.16487, 1087.24902, 526.35120, 0.00000, 90.00000, 0.00000); CreateDynamicObject(1753, 136.20561, 1091.93652, 522.91937, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1753, 133.12901, 1091.93201, 522.91699, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2164, 130.10321, 1091.59192, 522.91302, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2161, 128.35020, 1091.58850, 523.40619, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2204, 126.99130, 1091.64771, 522.90680, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1753, 123.97480, 1091.99524, 522.91107, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1753, 120.39085, 1091.99854, 522.91162, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2010, 121.13172, 1092.05566, 522.91211, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2011, 137.29774, 1092.03491, 522.91406, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1775, 117.32044, 1091.99011, 524.02850, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2186, 139.67596, 1096.39502, 522.90942, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2961, 140.21208, 1094.22070, 524.51532, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2961, 131.99838, 1088.88831, 524.46216, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2961, 117.21534, 1076.44763, 524.19275, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2961, 158.71095, 1108.06311, 524.59766, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2961, 140.18350, 1107.41309, 531.76611, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2607, 156.48082, 1102.62085, 523.31061, 0.00000, 0.00000, 90.00000); // Unity Station CreateDynamicObject(970, 1833.556396, -1852.723266, 13.028117, 0.000000, 0.000000, 90.000000); CreateDynamicObject(970, 1833.556396, -1856.843872, 13.028117, 0.000000, 0.000000, 90.000000); CreateDynamicObject(1346, 1849.468627, -1865.735839, 13.859744, 0.000000, 0.000000, -180.000000); CreateDynamicObject(1256, 1852.849853, -1866.003417, 13.212806, 0.000000, 0.000000, -90.000000); CreateDynamicObject(19121, 1847.915161, -1866.747680, 13.129741, 0.000000, 0.000000, 178.599319); CreateDynamicObject(1258, 1847.487304, -1860.316406, 13.198123, 0.000000, 0.000000, 0.000000); CreateDynamicObject(1288, 1848.786743, -1860.206298, 13.125104, 0.000000, 0.000000, 180.000000); CreateDynamicObject(1285, 1849.481201, -1860.200317, 13.135103, 0.000000, 0.000000, 180.000000); CreateDynamicObject(19121, 1844.551879, -1874.999511, 13.169745, 0.000000, 0.000000, 178.450714); CreateDynamicObject(19121, 1841.112548, -1874.906616, 13.169745, 0.000000, 0.000000, 178.450714); CreateDynamicObject(19121, 1837.823486, -1874.817749, 13.169745, 0.000000, 0.000000, 178.450714); CreateDynamicObject(19121, 1834.584472, -1874.730346, 13.169745, 0.000000, 0.000000, 178.450714); CreateDynamicObject(1256, 1852.848266, -1860.393310, 13.212806, 0.000000, 0.000000, 90.000000); //palomino bank retexture = CreateDynamicObject(19461, 2304.015380, -13.456198, 14.093700, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2304.015380, -3.824898, 14.093700, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2308.761718, -18.217369, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2318.395019, -18.217399, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2322.743652, -10.143440, 14.093700, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2321.097412, -3.824898, 14.093700, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2309.296386, -7.428558, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2322.203857, -10.283679, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2325.335693, -14.866700, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2306.836914, -8.693730, 14.093700, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2302.108154, -13.425000, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19368, 2309.261230, -10.110300, 12.311800, 0.000000, 90.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFC8C8C8); retexture = CreateDynamicObject(18762, 2307.234863, -14.007300, 11.432498, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000); retexture = CreateDynamicObject(18762, 2307.234863, -14.989298, 10.772488, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000); retexture = CreateDynamicObject(18762, 2307.232910, -15.748398, 10.770500, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000); retexture = CreateDynamicObject(19940, 2307.262695, -16.700099, 13.155798, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19940, 2307.262695, -16.698099, 13.674698, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19940, 2307.262695, -17.700099, 13.155798, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19940, 2307.262695, -17.698099, 13.674698, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19939, 2307.260742, -17.191600, 14.659600, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2313.744140, -10.137398, 11.892378, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19397, 2313.744140, -16.558300, 14.093850, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19442, 2314.460449, -15.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19442, 2314.460449, -13.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19442, 2314.460449, -11.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2313.742187, -6.310400, 14.093700, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2317.396728, -10.137398, 14.093700, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19442, 2316.063232, -11.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19442, 2316.583984, -11.041700, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2314.226562, -10.137398, 11.892398, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19173, 2314.031250, -12.181400, 13.637100, 90.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19173, 2314.031250, -13.981498, 13.639100, 90.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19461, 2313.744140, -10.137398, 16.960859, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19174, 2309.594970, -7.550260, 14.277540, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 15041, "bigsfsave", "windo_blinds", 0x00000000); retexture = CreateDynamicObject(19174, 2306.932373, -9.973990, 14.277500, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 15041, "bigsfsave", "windo_blinds", 0x00000000); retexture = CreateDynamicObject(1502, 2313.752929, -17.306100, 12.336000, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19461, 2321.995605, -19.693540, 14.093700, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 14.225938, 0.000000, 0.000000, 180.000000, 65005); SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000); SetDynamicObjectMaterialText(retexture, 0, "Bank of Palomino", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1); retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 13.875939, 0.000000, 0.000000, 180.000000, 65005); SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000); SetDynamicObjectMaterialText(retexture, 0, "Serving Los Santos since 1984", 80, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1); retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 14.885942, 0.000000, 0.000000, 180.000000, 65005); SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000); SetDynamicObjectMaterialText(retexture, 0, "____________", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1); retexture = CreateDynamicObject(19893, 2307.321777, -15.362000, 13.271288, 0.000000, 0.000000, 64.620010, 65005); SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000); retexture = CreateDynamicObject(19893, 2314.061767, -14.599988, 13.645588, 0.000000, 0.000000, 115.499977, 65005); SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000); retexture = CreateDynamicObject(19893, 2314.102539, -11.831728, 13.645588, 0.000000, 0.000000, 66.599983, 65005); SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000); retexture = CreateDynamicObject(19397, 2318.914306, -14.866700, 14.093898, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2321.072021, -21.123249, 14.093700, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2325.801757, -16.393199, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19922, 2321.909179, -14.049817, 12.355939, 0.000000, 0.000000, 360.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.826800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.826800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.826800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.524800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.524800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.222800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.920800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.618800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.316800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.222800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.920800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.618800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.316800, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2319.126953, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.645507, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19461, 2318.071289, -10.137398, 14.093700, 0.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19397, 2318.916259, -14.862700, 14.091898, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2322.203857, -10.291700, 11.558710, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19940, 2319.641113, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.155029, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.669189, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2321.183105, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2321.697021, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.211181, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19448, 2323.946044, -10.289698, 13.087598, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFEEEEEE); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.826800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.524800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.524800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(1210, 2319.374267, -10.209368, 13.526000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.222800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.920800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.618800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(18981, 2311.482910, -12.007800, 16.271999, 0.000000, 90.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8396, "sphinx01", "luxorceiling01_128", 0x00000000); retexture = CreateDynamicObject(19379, 2322.732666, -10.037758, 12.312000, 0.000000, 90.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 13.865940, 0.000000, 0.000000, 180.000000, 65005); SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000); SetDynamicObjectMaterialText(retexture, 0, "____________", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1); retexture = CreateDynamicObject(19461, 2325.335693, -14.866700, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2325.335693, -14.876697, 14.093700, 0.000000, 0.000000, 90.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19379, 2322.732666, -10.037758, 15.851999, 0.000000, 90.000000, 0.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.316800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.222800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.920800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.618800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.316800, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -10.444310, 13.843000, 89.999992, 135.000000, -135.000045, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -13.962864, 13.843000, 89.999992, 135.000000, -135.000045, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -10.958470, 13.843000, 89.999992, 135.000000, -135.000045, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -11.472386, 13.843000, 89.999992, 135.000000, -135.000045, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -11.986546, 13.843000, 89.999992, 135.000000, -135.000045, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -12.500462, 13.843000, 89.999992, 135.000000, -135.000045, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -13.014378, 13.843000, 89.999992, 135.000000, -135.000045, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -13.528538, 13.843000, 89.999992, 135.000000, -135.000045, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19448, 2322.721679, -15.263401, 13.087598, 0.000015, 0.000000, -0.000091, 65005); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFEEEEEE); retexture = CreateDynamicObject(19461, 2322.704345, -10.291700, 11.558710, 0.000000, 0.000000, 180.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2322.705322, -18.780698, 13.108711, 0.000000, 0.000000, 180.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 13.526000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 13.526000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 13.526000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 13.526000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 13.526000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 13.526000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 13.826998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.128000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.428998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.729998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 13.826998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.128000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.428998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.729998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 13.526000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 13.826998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.128000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.428998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.729998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 13.826998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 13.826998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 13.826998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 13.826998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.128000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.428998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.729998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.128000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.428998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.729998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.128000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.428998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.729998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.128000, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.428998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.729998, 89.999992, 6.774093, -96.773956, 65005); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19922, 2323.969726, -14.049817, 12.354939, 0.000000, 0.000000, 360.000000, 65005); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); CreateDynamicObject(13606, 2310.724365, -19.926231, 11.935937, 0.000000, 0.000000, 0.000000, 65005); CreateDynamicObject(19379, 2317.870605, -2.693160, 12.310000, 0.000000, 90.000000, 0.000000, 65005); CreateDynamicObject(19379, 2317.870605, -12.324298, 12.310000, 0.000000, 90.000000, 0.000000, 65005); CreateDynamicObject(19379, 2317.870605, -21.957300, 12.310000, 0.000000, 90.000000, 0.000000, 65005); CreateDynamicObject(19379, 2307.370361, -21.957300, 12.310000, 0.000000, 90.000000, 0.000000, 65005); CreateDynamicObject(19379, 2307.370361, -12.324298, 12.310000, 0.000000, 90.000000, 0.000000, 65005); CreateDynamicObject(1569, 2304.051025, -17.241100, 12.385298, 0.000000, 0.000000, 90.000000, 65005); CreateDynamicObject(1569, 2304.047119, -14.240598, 12.385298, 0.000000, 0.000000, -90.000000, 65005); CreateDynamicObject(1726, 2307.623535, -11.034440, 12.395198, 0.000000, 0.000000, 90.000000, 65005); CreateDynamicObject(1726, 2308.566894, -8.201950, 12.395198, 0.000000, 0.000000, 0.000000, 65005); CreateDynamicObject(1727, 2308.963134, -12.525600, 12.396730, 0.000000, 0.000000, 150.719955, 65005); CreateDynamicObject(970, 2307.293212, -18.360799, 11.179100, 0.000000, 90.000000, 90.000000, 65005); CreateDynamicObject(970, 2307.293212, -16.061700, 11.179120, 0.000000, 90.000000, -90.000000, 65005); CreateDynamicObject(2010, 2307.401855, -13.061030, 12.396068, 0.000000, 0.000000, -25.739999, 65005); CreateDynamicObject(2069, 2307.278320, -7.887370, 12.447038, 0.000000, 0.000000, 0.000000, 65005); CreateDynamicObject(2069, 2313.256591, -7.887400, 12.446998, 0.000000, 0.000000, 0.000000, 65005); CreateDynamicObject(2069, 2320.595458, -17.775049, 12.446998, 0.000000, 0.000000, 0.000000, 65005); CreateDynamicObject(2315, 2313.155029, -10.554498, 12.396800, 0.000000, 0.000000, 90.000000, 65005); CreateDynamicObject(2257, 2313.626708, -9.788000, 14.419300, 0.000000, 0.000000, -90.000000, 65005); CreateDynamicObject(3859, 2313.679931, -12.683818, 16.811540, 0.000000, 0.000000, 17.239999, 65005); CreateDynamicObject(2855, 2312.943847, -10.647218, 12.453289, 0.000000, 0.000000, -103.860000, 65005); CreateDynamicObject(2854, 2313.014404, -9.262160, 12.891150, 0.000000, 0.000000, -37.619998, 65005); CreateDynamicObject(2253, 2313.319824, -10.674360, 13.125280, 0.000000, 0.000000, -44.099990, 65005); CreateDynamicObject(11745, 2307.162597, -15.873900, 13.326148, 0.000000, 0.000000, -103.260002, 65005); CreateDynamicObject(2253, 2307.050537, -14.793028, 13.521638, 0.000000, 0.000000, -84.839996, 65005); CreateDynamicObject(2202, 2319.861572, -17.576759, 12.396400, 0.000000, 0.000000, 180.000000, 65005); CreateDynamicObject(2202, 2316.835693, -17.576799, 12.396400, 0.000000, 0.000000, 180.000000, 65005); CreateDynamicObject(2007, 2317.843261, -17.663129, 12.366900, 0.000000, 0.000000, 180.000000, 65005); CreateDynamicObject(2167, 2317.345947, -12.186658, 12.371560, 0.000000, 0.000000, -90.000000, 65005); CreateDynamicObject(2167, 2317.345947, -14.043700, 12.371600, 0.000000, 0.000000, -90.000000, 65005); CreateDynamicObject(2069, 2316.930175, -13.091210, 12.446998, 0.000000, 0.000000, 0.000000, 65005); CreateDynamicObject(1886, 2316.864013, -11.405098, 15.872598, 10.000000, 0.000000, -76.860000, 65005); CreateDynamicObject(1886, 2316.864013, -14.726498, 15.872598, 10.000000, 0.000000, -96.599998, 65005); CreateDynamicObject(1886, 2304.690429, -17.776500, 15.955100, 10.000000, 0.000000, 121.379997, 65005); CreateDynamicObject(2634, 2320.315917, -15.724633, 13.810798, 0.000000, 0.000000, -59.700019, 65005); CreateDynamicObject(11745, 2320.764892, -14.015052, 13.266149, 0.000000, 0.000000, 164.039993, 65005); //angel pine bank retexture = CreateDynamicObject(19461, 2304.015380, -13.456198, 14.093700, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2304.015380, -3.824898, 14.093700, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2308.761718, -18.217369, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2318.395019, -18.217399, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2322.743652, -10.143440, 14.093700, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2321.097412, -3.824898, 14.093700, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2309.296386, -7.428558, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2322.203857, -10.283679, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2325.335693, -14.866700, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2306.836914, -8.693730, 14.093700, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2302.108154, -13.425000, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19368, 2309.261230, -10.110300, 12.311800, 0.000000, 90.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFC8C8C8); retexture = CreateDynamicObject(18762, 2307.234863, -14.007300, 11.432498, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000); retexture = CreateDynamicObject(18762, 2307.234863, -14.989298, 10.772488, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000); retexture = CreateDynamicObject(18762, 2307.232910, -15.748398, 10.770500, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 12855, "cunte_cop", "sw_brick05", 0x00000000); retexture = CreateDynamicObject(19940, 2307.262695, -16.700099, 13.155798, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19940, 2307.262695, -16.698099, 13.674698, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19940, 2307.262695, -17.700099, 13.155798, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19940, 2307.262695, -17.698099, 13.674698, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19939, 2307.260742, -17.191600, 14.659600, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2313.744140, -10.137398, 11.892378, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19397, 2313.744140, -16.558300, 14.093850, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19442, 2314.460449, -15.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19442, 2314.460449, -13.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19442, 2314.460449, -11.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2313.742187, -6.310400, 14.093700, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2317.396728, -10.137398, 14.093700, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19442, 2316.063232, -11.039698, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19442, 2316.583984, -11.041700, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2314.226562, -10.137398, 11.892398, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19173, 2314.031250, -12.181400, 13.637100, 90.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19173, 2314.031250, -13.981498, 13.639100, 90.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19461, 2313.744140, -10.137398, 16.960859, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19174, 2309.594970, -7.550260, 14.277540, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 15041, "bigsfsave", "windo_blinds", 0x00000000); retexture = CreateDynamicObject(19174, 2306.932373, -9.973990, 14.277500, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 15041, "bigsfsave", "windo_blinds", 0x00000000); retexture = CreateDynamicObject(1502, 2313.752929, -17.306100, 12.336000, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19461, 2321.995605, -19.693540, 14.093700, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 14.225938, 0.000000, 0.000000, 180.000000, 65003); SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000); SetDynamicObjectMaterialText(retexture, 0, "Bank of Blueberry", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1); retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 13.875939, 0.000000, 0.000000, 180.000000, 65003); SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000); SetDynamicObjectMaterialText(retexture, 0, "Serving Los Santos since 1996", 80, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1); retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 14.885942, 0.000000, 0.000000, 180.000000, 65003); SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000); SetDynamicObjectMaterialText(retexture, 0, "____________", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1); retexture = CreateDynamicObject(19893, 2307.321777, -15.362000, 13.271288, 0.000000, 0.000000, 64.620010, 65003); SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000); retexture = CreateDynamicObject(19893, 2314.061767, -14.599988, 13.645588, 0.000000, 0.000000, 115.499977, 65003); SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000); retexture = CreateDynamicObject(19893, 2314.102539, -11.831728, 13.645588, 0.000000, 0.000000, 66.599983, 65003); SetDynamicObjectMaterial(retexture, 1, 3925, "weemap", "skyclouds", 0x00000000); retexture = CreateDynamicObject(19397, 2318.914306, -14.866700, 14.093898, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2321.072021, -21.123249, 14.093700, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19461, 2325.801757, -16.393199, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19922, 2321.909179, -14.049817, 12.355939, 0.000000, 0.000000, 360.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.826800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.826800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.826800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.524800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.524800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 14.222800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.920800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.618800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.108398, -10.161700, 13.316800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 14.222800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.920800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.618800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.109863, -10.161700, 13.316800, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2319.126953, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.645507, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19461, 2318.071289, -10.137398, 14.093700, 0.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19397, 2318.916259, -14.862700, 14.091898, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2322.203857, -10.291700, 11.558710, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19940, 2319.641113, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.155029, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2320.669189, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2321.183105, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2321.697021, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.211181, -10.159700, 13.843000, 90.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19448, 2323.946044, -10.289698, 13.087598, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFEEEEEE); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.826800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.524800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.524800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(1210, 2319.374267, -10.209368, 13.526000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.418945, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.959960, -10.209400, 13.526000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.374267, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 13.826998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2321.441406, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.922363, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2320.402343, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.128000, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.428998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2319.901367, -10.209400, 14.729998, 90.000000, 0.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 14.222800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.920800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.618800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(18981, 2311.482910, -12.007800, 16.271999, 0.000000, 90.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8396, "sphinx01", "luxorceiling01_128", 0x00000000); retexture = CreateDynamicObject(19379, 2322.732666, -10.037758, 12.312000, 0.000000, 90.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19175, 2310.539062, -18.132589, 13.865940, 0.000000, 0.000000, 180.000000, 65003); SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000); SetDynamicObjectMaterialText(retexture, 0, "____________", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1); retexture = CreateDynamicObject(19461, 2325.335693, -14.866700, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2325.335693, -14.876697, 14.093700, 0.000000, 0.000000, 90.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0x00000000); retexture = CreateDynamicObject(19379, 2322.732666, -10.037758, 15.851999, 0.000000, 90.000000, 0.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19940, 2322.849609, -13.425755, 13.316800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 14.222800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.920800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.618800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.849609, -11.427220, 13.316800, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -10.444310, 13.843000, 89.999992, 135.000000, -135.000045, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -13.962864, 13.843000, 89.999992, 135.000000, -135.000045, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -10.958470, 13.843000, 89.999992, 135.000000, -135.000045, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -11.472386, 13.843000, 89.999992, 135.000000, -135.000045, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -11.986546, 13.843000, 89.999992, 135.000000, -135.000045, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -12.500462, 13.843000, 89.999992, 135.000000, -135.000045, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -13.014378, 13.843000, 89.999992, 135.000000, -135.000045, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19940, 2322.851562, -13.528538, 13.843000, 89.999992, 135.000000, -135.000045, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFF333333); retexture = CreateDynamicObject(19448, 2322.721679, -15.263401, 13.087598, 0.000015, 0.000000, -0.000091, 65003); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFEEEEEE); retexture = CreateDynamicObject(19461, 2322.704345, -10.291700, 11.558710, 0.000000, 0.000000, 180.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(19461, 2322.705322, -18.780698, 13.108711, 0.000000, 0.000000, 180.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 3820, "boxhses_sfsx", "ws_mixedbrick", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 13.526000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 13.526000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 13.526000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 13.526000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 13.526000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 13.526000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 13.826998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.128000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.428998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.736610, 14.729998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 13.826998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.128000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.428998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 14.729998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -13.277626, 13.526000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 13.826998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.128000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.428998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -10.691932, 14.729998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 13.826998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 13.826998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 13.826998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 13.826998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.128000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.428998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.759071, 14.729998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.128000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.428998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -12.240028, 14.729998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.128000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.428998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.720008, 14.729998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.128000, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.428998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(1210, 2322.796386, -11.219032, 14.729998, 89.999992, 6.774093, -96.773956, 65003); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19922, 2323.969726, -14.049817, 12.354939, 0.000000, 0.000000, 360.000000, 65003); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); CreateDynamicObject(13606, 2310.724365, -19.926231, 11.935937, 0.000000, 0.000000, 0.000000, 65003); CreateDynamicObject(19379, 2317.870605, -2.693160, 12.310000, 0.000000, 90.000000, 0.000000, 65003); CreateDynamicObject(19379, 2317.870605, -12.324298, 12.310000, 0.000000, 90.000000, 0.000000, 65003); CreateDynamicObject(19379, 2317.870605, -21.957300, 12.310000, 0.000000, 90.000000, 0.000000, 65003); CreateDynamicObject(19379, 2307.370361, -21.957300, 12.310000, 0.000000, 90.000000, 0.000000, 65003); CreateDynamicObject(19379, 2307.370361, -12.324298, 12.310000, 0.000000, 90.000000, 0.000000, 65003); CreateDynamicObject(1569, 2304.051025, -17.241100, 12.385298, 0.000000, 0.000000, 90.000000, 65003); CreateDynamicObject(1569, 2304.047119, -14.240598, 12.385298, 0.000000, 0.000000, -90.000000, 65003); CreateDynamicObject(1726, 2307.623535, -11.034440, 12.395198, 0.000000, 0.000000, 90.000000, 65003); CreateDynamicObject(1726, 2308.566894, -8.201950, 12.395198, 0.000000, 0.000000, 0.000000, 65003); CreateDynamicObject(1727, 2308.963134, -12.525600, 12.396730, 0.000000, 0.000000, 150.719955, 65003); CreateDynamicObject(970, 2307.293212, -18.360799, 11.179100, 0.000000, 90.000000, 90.000000, 65003); CreateDynamicObject(970, 2307.293212, -16.061700, 11.179120, 0.000000, 90.000000, -90.000000, 65003); CreateDynamicObject(2010, 2307.401855, -13.061030, 12.396068, 0.000000, 0.000000, -25.739999, 65003); CreateDynamicObject(2069, 2307.278320, -7.887370, 12.447038, 0.000000, 0.000000, 0.000000, 65003); CreateDynamicObject(2069, 2313.256591, -7.887400, 12.446998, 0.000000, 0.000000, 0.000000, 65003); CreateDynamicObject(2069, 2320.595458, -17.775049, 12.446998, 0.000000, 0.000000, 0.000000, 65003); CreateDynamicObject(2315, 2313.155029, -10.554498, 12.396800, 0.000000, 0.000000, 90.000000, 65003); CreateDynamicObject(2257, 2313.626708, -9.788000, 14.419300, 0.000000, 0.000000, -90.000000, 65003); CreateDynamicObject(3859, 2313.679931, -12.683818, 16.811540, 0.000000, 0.000000, 17.239999, 65003); CreateDynamicObject(2855, 2312.943847, -10.647218, 12.453289, 0.000000, 0.000000, -103.860000, 65003); CreateDynamicObject(2854, 2313.014404, -9.262160, 12.891150, 0.000000, 0.000000, -37.619998, 65003); CreateDynamicObject(2253, 2313.319824, -10.674360, 13.125280, 0.000000, 0.000000, -44.099990, 65003); CreateDynamicObject(11745, 2307.162597, -15.873900, 13.326148, 0.000000, 0.000000, -103.260002, 65003); CreateDynamicObject(2253, 2307.050537, -14.793028, 13.521638, 0.000000, 0.000000, -84.839996, 65003); CreateDynamicObject(2202, 2319.861572, -17.576759, 12.396400, 0.000000, 0.000000, 180.000000, 65003); CreateDynamicObject(2202, 2316.835693, -17.576799, 12.396400, 0.000000, 0.000000, 180.000000, 65003); CreateDynamicObject(2007, 2317.843261, -17.663129, 12.366900, 0.000000, 0.000000, 180.000000, 65003); CreateDynamicObject(2167, 2317.345947, -12.186658, 12.371560, 0.000000, 0.000000, -90.000000, 65003); CreateDynamicObject(2167, 2317.345947, -14.043700, 12.371600, 0.000000, 0.000000, -90.000000, 65003); CreateDynamicObject(2069, 2316.930175, -13.091210, 12.446998, 0.000000, 0.000000, 0.000000, 65003); CreateDynamicObject(1886, 2316.864013, -11.405098, 15.872598, 10.000000, 0.000000, -76.860000, 65003); CreateDynamicObject(1886, 2316.864013, -14.726498, 15.872598, 10.000000, 0.000000, -96.599998, 65003); CreateDynamicObject(1886, 2304.690429, -17.776500, 15.955100, 10.000000, 0.000000, 121.379997, 65003); CreateDynamicObject(2634, 2320.315917, -15.724633, 13.810798, 0.000000, 0.000000, -59.700019, 65003); CreateDynamicObject(11745, 2320.764892, -14.015052, 13.266149, 0.000000, 0.000000, 164.039993, 65003); //SMB COMPLEX retexture = CreateDynamicObject(19377, 609.362121, -1528.669677, -1.255939, 0.000000, 90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19377, 601.231506, -1528.669677, -1.256899, 0.000000, 90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19377, 601.231506, -1538.299560, -1.256899, 0.000000, 90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19377, 609.362121, -1538.299560, -1.255900, 0.000000, 90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19461, 610.543579, -1523.824096, 0.555100, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 609.486083, -1535.462524, 0.550000, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 596.228210, -1532.013671, 0.550000, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 614.316711, -1530.694335, 0.550000, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 614.315673, -1521.060546, 0.550000, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 599.871887, -1535.464355, 0.550000, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 600.909179, -1523.824096, 0.555100, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 596.228271, -1522.383422, 0.550000, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 614.315673, -1521.060546, 4.048799, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 614.316711, -1530.694335, 4.048799, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 609.505981, -1535.464355, 4.048799, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 599.871887, -1535.464355, 4.048799, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 596.282226, -1532.013671, 4.048799, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 596.228271, -1522.383422, 4.048799, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 600.909179, -1523.824096, 4.048799, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 610.543579, -1523.824096, 4.048799, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 610.543579, -1523.824096, 4.048799, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 610.543579, -1523.824096, 4.048799, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(2134, 612.073486, -1533.615600, -1.169999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(2134, 611.073486, -1533.615600, -1.169999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(2134, 610.093566, -1533.615600, -1.169999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(2134, 610.103454, -1533.155273, -1.171000, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(2134, 611.083740, -1533.155273, -1.171000, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(2134, 612.083557, -1533.155273, -1.171000, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 2, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 3, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 4, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(retexture, 5, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19427, 610.399047, -1532.932739, -2.039999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19427, 611.779296, -1532.931762, -2.039999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19427, 611.779296, -1533.842529, -2.039999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19427, 610.399169, -1533.843505, -2.039999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19427, 610.399169, -1533.843505, -2.039999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19427, 610.399169, -1533.843505, -2.039999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19427, 610.399169, -1533.843505, -2.039999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19427, 610.399169, -1533.843505, -2.039999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 2, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 3, 10765, "airportgnd_sfse", "black64", 0x00000000); retexture = CreateDynamicObject(19579, 609.942932, -1533.407348, -0.259959, 0.000000, 0.000000, 22.399999, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(19610, 609.942321, -1533.419921, -0.016279, -81.899978, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(2269, 610.181213, -1533.877441, 0.115290, -13.500000, 0.000000, 30.299999, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(2269, 609.739074, -1533.077392, -0.103929, 13.600000, 0.000000, 210.300003, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(2269, 610.186096, -1533.885742, 0.117619, -13.500000, 0.000000, 30.299999, 85001); SetDynamicObjectMaterial(retexture, 1, 19297, "matlights", "invisible", 0x00000000); SetDynamicObjectMaterialText(retexture, 0, "Santa Maria Apartments", 90, "Ariel", 20, 1, 0xFFFF0000, 0x00000000, 1); retexture = CreateDynamicObject(1761, 613.730224, -1528.623779, -1.169999, 0.000000, 0.000000, 270.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(19461, 614.285644, -1530.694335, -2.799999, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 604.305725, -1533.014038, 0.550000, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 614.285644, -1519.754516, -2.799999, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 614.285644, -1523.855468, -2.799999, 0.000000, 0.000000, 270.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 612.715576, -1535.436157, -2.799999, 0.000000, 0.000000, 270.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 603.124633, -1535.436157, -2.799999, 0.000000, 0.000000, 270.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 593.487487, -1535.436157, -2.799999, 0.000000, 0.000000, 270.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 604.649719, -1523.856201, -2.799999, 0.000000, 0.000000, 270.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 595.016174, -1523.856201, -2.799999, 0.000000, 0.000000, 270.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 596.265808, -1523.856201, -2.801000, 0.000000, 0.000000, 360.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 596.265808, -1533.475952, -2.801000, 0.000000, 0.000000, 360.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 604.292480, -1533.003051, -2.789000, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19355, 596.285217, -1526.604370, -0.021999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19355, 596.284179, -1525.694091, -0.020999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(18756, 598.159729, -1526.093994, 0.718999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(18756, 594.353515, -1526.170043, 0.718999, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19461, 597.741577, -1533.198242, 0.550000, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 607.805725, -1533.014038, 0.550000, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 607.815673, -1533.004028, -2.789999, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19355, 596.284179, -1530.439086, -0.020999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19355, 596.285217, -1531.349365, -0.021999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(18756, 594.353515, -1530.915039, 0.718999, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(18756, 598.159729, -1530.838989, 0.718999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19461, 597.755615, -1533.178222, -2.801000, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 597.753601, -1533.214233, -2.802999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19369, 605.826599, -1528.284301, 0.550000, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19369, 606.287170, -1528.282348, 0.550000, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19369, 605.810607, -1528.274291, -2.790999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19369, 606.297180, -1528.272338, -2.786999, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0xFFF5F5DC); retexture = CreateDynamicObject(19579, 596.358276, -1528.733764, 0.133460, 0.000000, -90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(19579, 596.358276, -1528.315795, 0.133499, 0.000000, -90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(19579, 596.264282, -1526.166137, 1.773499, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(19579, 596.264282, -1530.897460, 1.773499, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(1761, 608.397277, -1530.636474, -1.169999, 0.000000, 0.000000, -270.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "black64", 0x00000000); SetDynamicObjectMaterial(retexture, 1, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(19377, 601.254394, -1528.469604, 2.199399, 0.000000, 90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19377, 611.755004, -1528.469604, 2.199399, 0.000000, 90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19377, 611.755004, -1538.101318, 2.201400, 0.000000, 90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 16640, "a51", "ws_stationfloor", 0x00000000); retexture = CreateDynamicObject(19461, 604.302612, -1533.033813, 4.048799, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 602.545776, -1533.198242, 4.048799, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19461, 607.805725, -1533.014038, 4.048799, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19369, 606.287170, -1528.282348, 4.048799, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19369, 603.082092, -1528.284301, 4.048799, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19369, 601.565307, -1529.801513, 4.048799, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19369, 601.563293, -1531.662963, 4.048799, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19355, 596.285217, -1531.349365, 3.977999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19355, 596.284179, -1530.439086, 3.979000, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19579, 596.348327, -1530.897460, 5.273499, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(19579, 596.384277, -1528.733764, 3.633500, 0.000000, -90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(19579, 596.384277, -1528.315795, 3.633500, 0.000000, -90.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(18756, 594.353515, -1530.915039, 4.218999, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(18756, 598.159729, -1530.838989, 4.218999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19355, 596.285217, -1526.604370, 3.977999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(18756, 598.159729, -1526.093994, 4.218999, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(18756, 594.353515, -1526.170043, 4.218999, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19355, 596.284179, -1525.694091, 3.979000, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); retexture = CreateDynamicObject(19579, 596.348327, -1526.166137, 5.273499, 0.000000, 0.000000, 90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 10765, "airportgnd_sfse", "white", 0x00000000); retexture = CreateDynamicObject(19461, 596.288208, -1528.139648, 6.968800, 0.000000, 0.000000, 0.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 8130, "vgsschurch", "vgschapelwall01_64", 0xFFF5F5DC); retexture = CreateDynamicObject(19175, 614.235229, -1529.649291, 0.711199, 0.000000, 0.000000, -90.000000, 85001); SetDynamicObjectMaterial(retexture, 0, 15041, "bigsfsave", "windo_blinds", 0x00000000); retexture = CreateDynamicObject(19174, 611.170593, -1535.375854, 0.688799, 0.000000, 0.000000, 180.000000, 85001); SetDynamicObjectMaterialText(retexture, 0, "Santa Maria Beach\nApartment Complex", 40, "Ariel", 15, 1, 0xFF000000, 0x00000000, 1); CreateDynamicObject(18981, 604.461608, -1534.509155, -1.702280, 0.000000, 90.000000, 0.000000, 85001); CreateDynamicObject(1569, 614.253967, -1527.479858, -1.169999, 0.000000, 0.000000, 90.000000, 85001); CreateDynamicObject(1569, 614.243957, -1524.478637, -1.169999, 0.000000, 0.000000, 270.000000, 85001); CreateDynamicObject(2000, 608.483703, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001); CreateDynamicObject(2000, 608.953674, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001); CreateDynamicObject(2000, 609.423645, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001); CreateDynamicObject(2000, 613.833618, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001); CreateDynamicObject(2000, 613.373535, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001); CreateDynamicObject(2000, 612.903442, -1535.360229, 0.039999, 0.000000, 0.000000, 180.000000, 85001); CreateDynamicObject(19808, 610.493896, -1533.598632, -0.109959, 0.000000, 0.000000, 14.500000, 85001); CreateDynamicObject(2253, 612.330932, -1533.148925, 0.140000, 0.000000, 0.000000, 0.000000, 85001); CreateDynamicObject(2894, 611.673522, -1533.333862, -0.119999, 0.000000, 0.000000, -173.799987, 85001); CreateDynamicObject(19792, 611.086486, -1533.293823, -0.109959, 0.000000, 0.000000, -23.299999, 85001); CreateDynamicObject(19792, 610.810974, -1533.175292, -0.109959, 0.000000, 0.000000, -112.999992, 85001); CreateDynamicObject(19378, 610.079711, -1535.509277, -1.169999, 0.000000, 0.000000, 90.000000, 85001); CreateDynamicObject(2270, 613.739013, -1531.452514, 0.310000, 0.000000, 0.000000, 270.000000, 85001); CreateDynamicObject(14410, 599.558593, -1535.186767, -0.884299, 0.000000, 0.000000, 90.000000, 85001); CreateDynamicObject(19379, 601.254394, -1528.467895, 2.213399, 0.000000, 90.000000, 0.000000, 85001); CreateDynamicObject(19379, 611.755004, -1528.467895, 2.213399, 0.000000, 90.000000, 0.000000, 85001); CreateDynamicObject(19379, 609.468200, -1538.101318, 2.213399, 0.000000, 90.000000, 0.000000, 85001); CreateDynamicObject(1504, 601.829956, -1528.244018, 2.269320, 0.000000, 0.000000, 0.000000, 85001); CreateDynamicObject(1504, 607.889770, -1529.920410, 2.269299, 0.000000, 0.000000, 90.000000, 85001); CreateDynamicObject(1504, 610.292907, -1535.408569, 2.269299, 0.000000, 0.000000, 0.000000, 85001); CreateDynamicObject(1504, 614.260620, -1534.509521, 2.269299, 0.000000, 0.000000, 90.000000, 85001); CreateDynamicObject(1504, 612.210815, -1523.908935, 2.269299, 0.000000, 0.000000, 0.000000, 85001); CreateDynamicObject(1504, 608.272888, -1523.908935, 2.269299, 0.000000, 0.000000, 0.000000, 85001); CreateDynamicObject(1504, 614.260620, -1529.920410, 2.269299, 0.000000, 0.000000, 90.000000, 85001); CreateDynamicObject(1504, 607.889770, -1534.509521, 2.269299, 0.000000, 0.000000, 90.000000, 85001); CreateDynamicObject(1504, 601.830017, -1523.908935, 2.269299, 0.000000, 0.000000, 0.000000, 85001); CreateDynamicObject(18981, 604.461608, -1534.509155, 6.229360, 0.000000, 90.000000, 0.000000, 85001); CreateDynamicObject(2270, 608.39471, -1531.40259, 0.31000, 0.00000, 0.00000, 90.00000, 85001); CreateDynamicObject(19174, 607.88068, -1529.61597, 0.68880, 0.00000, 0.00000, 90.00000, 85001); CreateDynamicObject(2257, 601.13458, -1533.04004, 0.65192, 0.00000, 0.00000, 180.00000, 85001); CreateDynamicObject(1726, 600.04333, -1532.53369, 2.29980, 0.00000, 0.00000, 180.00000, 85001); CreateDynamicObject(1726, 600.80865, -1529.65161, 2.29980, 0.00000, 0.00000, -90.00000, 85001); CreateDynamicObject(2010, 600.96014, -1532.60376, 2.29910, 0.00000, 0.00000, 0.00000, 85001); CreateDynamicObject(1827, 598.86340, -1530.68237, 2.30008, 0.00000, 0.00000, 0.00000, 85001); CreateDynamicObject(2256, 609.1511, -1535.35425, 4.1013, 0.00000, 0.00000, 180.00000, 85001); CreateDynamicObject(2254, 612.94708, -1535.35425, 4.10130, 0.00000, 0.00000, 180.00000, 85001); CreateDynamicObject(2260, 608.36841, -1531.47961, 4.14680, 0.00000, 0.00000, 90.00000, 85001); CreateDynamicObject(2264, 613.73242, -1531.48535, 4.14680, 0.00000, 0.00000, -90.00000, 85001); CreateDynamicObject(2010, 608.48383, -1534.80164, 2.29910, 0.00000, 0.00000, 0.00000, 85001); CreateDynamicObject(2010, 613.80621, -1534.91443, 2.29910, 0.00000, 0.00000, 53.46000, 85001); CreateDynamicObject(2257, 605.82928, -1528.17200, 4.14700, 0.00000, 0.00000, 180.00000, 85001); CreateDynamicObject(2835, 610.55408, -1535.08630, 2.30027, 0.00000, 0.00000, 0.00000, 85001); CreateDynamicObject(2835, 609.17139, -1534.14648, 2.30030, 0.00000, 0.00000, 90.00000, 85001); CreateDynamicObject(2835, 609.19354, -1529.66650, 2.30030, 0.00000, 0.00000, 90.00000, 85001); CreateDynamicObject(2835, 613.94513, -1534.28809, 2.30030, 0.00000, 0.00000, 90.00000, 85001); CreateDynamicObject(2835, 613.90796, -1529.72852, 2.30030, 0.00000, 0.00000, 90.00000, 85001); CreateDynamicObject(2835, 612.55695, -1525.25928, 2.30027, 0.00000, 0.00000, 0.00000, 85001); CreateDynamicObject(2835, 608.73480, -1525.28967, 2.30027, 0.00000, 0.00000, 0.00000, 85001); CreateDynamicObject(2835, 602.10596, -1525.19360, 2.30027, 0.00000, 0.00000, 0.00000, 85001); CreateDynamicObject(2835, 602.15741, -1527.78870, 2.30027, 0.00000, 0.00000, 0.00000, 85001); //admin jail retexture = CreateDynamicObject(19370, 217.351898, -157.537399, 1001.065185, 0.000000, 0.000000, 0.000000, 99999); SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000); retexture = CreateDynamicObject(19370, 217.337493, -153.480499, 1001.065185, 0.000000, 0.000000, 0.000000, 99999); SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000); retexture = CreateDynamicObject(19370, 217.334503, -155.677505, 998.143188, 0.000000, 0.000000, 0.000000, 99999); SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000); retexture = CreateDynamicObject(19370, 217.334503, -155.677505, 1003.339172, 0.000000, 0.000000, 0.000000, 99999); SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000); retexture = CreateDynamicObject(19370, 215.903823, -157.592285, 1001.065185, 0.000000, 0.000000, 90.000000, 99999); SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000); retexture = CreateDynamicObject(19370, 215.754928, -154.478637, 1001.065185, 0.000000, 0.000000, 90.000000, 99999); SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000); retexture = CreateDynamicObject(19370, 214.442123, -156.057479, 1001.065185, 0.000000, 0.000000, 0.000000, 99999); SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000); retexture = CreateDynamicObject(19370, 215.558242, -156.146926, 999.455444, 0.000000, 90.000000, 0.000000, 99999); SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000); retexture = CreateDynamicObject(19370, 215.558242, -156.146926, 1002.631713, 0.000000, 90.000000, 0.000000, 99999); SetDynamicObjectMaterial(retexture, 0, 6094, "canalsg_law", "sw_brewbrick01", 0x00000000); retexture = CreateDynamicObject(19372, 217.420059, -156.136169, 1000.266662, 0.000000, 0.000000, 0.000000, 99999); SetDynamicObjectMaterial(retexture, 0, 19297, "matlights", "invisible", 0x00000000); // NEW FIRE DEPARTMENT CreateDynamicObject(19791, 2328.77686, -1515.69995, 13.91983, 0.00000, 10.00000, 0.00000); CreateDynamicObject(19791, 2328.77686, -1525.69995, 13.91980, 0.00000, 10.00000, 0.00000); CreateDynamicObject(19791, 2328.77686, -1535.69995, 13.91980, 0.00000, 10.00000, 0.00000); CreateDynamicObject(19791, 2328.77686, -1545.69995, 13.91980, 0.00000, 10.00000, 0.00000); CreateDynamicObject(19791, 2320.58667, -1515.69995, 14.63260, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2320.58667, -1525.69995, 14.63260, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2320.58667, -1535.69995, 14.63260, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2320.58667, -1545.69995, 14.63260, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2310.58667, -1515.69995, 14.63260, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2310.56665, -1525.70129, 14.63260, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2310.58667, -1535.69995, 14.63260, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2310.58667, -1545.69995, 14.63260, 0.00000, 0.00000, 0.20100); CreateDynamicObject(8581, 2294.63599, -1528.11401, 30.95190, 0.00000, 0.00000, -90.00000); CreateDynamicObject(8581, 2294.65967, -1528.10889, 30.93190, 0.00000, 0.00000, 90.00000); CreateDynamicObject(8581, 2283.95581, -1530.46667, 30.97190, 0.00000, 0.00000, -90.00000); CreateDynamicObject(8581, 2283.99023, -1530.45947, 30.93190, 0.00000, 0.00000, 90.00000); CreateDynamicObject(621, 2295.69116, -1549.05127, 22.58316, 0.00000, 0.00000, 0.00000); CreateDynamicObject(621, 2303.25464, -1546.98718, 20.38125, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2948, 2297.01294, -1510.59912, 25.85350, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2948, 2298.92529, -1510.58911, 25.85350, 0.00000, 0.00000, -90.00000); CreateDynamicObject(14469, 2282.78760, -1511.90234, 26.44890, 0.00000, 0.00000, 0.00000); CreateDynamicObject(14469, 2277.68579, -1511.59106, 26.44890, 0.00000, 0.00000, 0.00000); CreateDynamicObject(3034, 2300.63574, -1510.56189, 31.77940, 0.00000, 0.00000, 180.00000); CreateDynamicObject(3034, 2288.03564, -1510.56189, 31.77940, 0.00000, 0.00000, 180.00000); CreateDynamicObject(3034, 2294.23560, -1510.56189, 31.77940, 0.00000, 0.00000, 180.00000); CreateDynamicObject(11245, 2297.49170, -1509.08801, 32.12990, 0.00000, -14.00000, 90.00000); CreateDynamicObject(3034, 2280.22168, -1512.91675, 31.77940, 0.00000, 0.00000, 180.00000); CreateDynamicObject(14469, 2329.98071, -1496.44055, 23.34250, 0.00000, 0.00000, 45.18060); CreateDynamicObject(19791, 2298.07788, -1540.33923, 26.05730, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2288.07788, -1540.33923, 26.05730, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2280.17798, -1540.33923, 26.04730, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2298.07788, -1530.33923, 26.05730, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2298.07788, -1520.33923, 26.05730, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2288.07788, -1530.33923, 26.05730, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2288.07788, -1520.33923, 26.05730, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2280.17798, -1530.33923, 26.04730, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2280.17798, -1520.33923, 26.04730, 0.00000, 0.00000, 0.20100); CreateDynamicObject(19791, 2290.70435, -1515.67468, 26.06730, 0.00000, 0.00000, 0.20100); CreateDynamicObject(1635, 2298.39600, -1546.23438, 32.79228, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1687, 2301.00879, -1513.10242, 35.72760, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1687, 2297.74756, -1513.13660, 35.72760, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1232, 2319.98535, -1507.09509, 28.30576, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1232, 2309.39136, -1507.09314, 28.30576, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1232, 2286.28760, -1507.06726, 28.30576, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1232, 2276.57129, -1507.26489, 28.30576, 0.00000, 0.00000, 0.00000); fd_wall[36] = CreateDynamicObject(19428, 2321.45898, -1548.51868, 23.16800, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[37] = CreateDynamicObject(19428, 2321.45898, -1548.51868, 26.66840, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[38] = CreateDynamicObject(19447, 2316.72412, -1549.23633, 26.66840, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[39] = CreateDynamicObject(19428, 2321.45898, -1542.38269, 26.66840, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[40] = CreateDynamicObject(19428, 2321.45898, -1542.38269, 23.16800, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[41] = CreateDynamicObject(19447, 2316.72412, -1549.23633, 23.16800, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[42] = CreateDynamicObject(19355, 2323.14160, -1541.67249, 26.66840, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[43] = CreateDynamicObject(19355, 2323.14160, -1541.67249, 23.16800, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[44] = CreateDynamicObject(19428, 2324.66064, -1540.78320, 26.66840, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[45] = CreateDynamicObject(19428, 2324.66064, -1540.78320, 23.16800, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[46] = CreateDynamicObject(19428, 2324.66064, -1534.64917, 26.66840, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[47] = CreateDynamicObject(19428, 2324.66064, -1534.64917, 23.16800, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[48] = CreateDynamicObject(19428, 2324.66064, -1528.51917, 26.66840, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[49] = CreateDynamicObject(19428, 2324.66064, -1528.51917, 23.16800, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[50] = CreateDynamicObject(19447, 2319.92700, -1519.89856, 26.66840, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[51] = CreateDynamicObject(19355, 2324.66064, -1521.58447, 26.66840, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[1] = CreateDynamicObject(19355, 2324.66064, -1521.58447, 23.16800, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[2] = CreateDynamicObject(19447, 2319.92700, -1519.89856, 23.16800, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[3] = CreateDynamicObject(19447, 2310.29688, -1549.23804, 26.66840, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[4] = CreateDynamicObject(19447, 2310.29688, -1549.23804, 23.16800, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[5] = CreateDynamicObject(19447, 2310.29688, -1519.89856, 26.66840, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[6] = CreateDynamicObject(19447, 2310.29688, -1519.89856, 23.16800, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[7] = CreateDynamicObject(19447, 2305.57520, -1544.34424, 26.66840, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[8] = CreateDynamicObject(19447, 2305.57520, -1544.34424, 23.16800, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[9] = CreateDynamicObject(19447, 2305.57593, -1534.71423, 26.66840, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[10] = CreateDynamicObject(19447, 2305.57520, -1534.71423, 23.16800, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[11] = CreateDynamicObject(19447, 2305.57593, -1525.08423, 26.66840, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[12] = CreateDynamicObject(19447, 2305.57520, -1525.08423, 23.16800, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[13] = CreateDynamicObject(19428, 2305.57690, -1520.67566, 23.16800, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[14] = CreateDynamicObject(19428, 2305.57690, -1520.67566, 26.66840, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[15] = CreateDynamicObject(19447, 2300.66699, -1519.89856, 30.16760, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[16] = CreateDynamicObject(19447, 2300.66699, -1519.89856, 23.16800, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[17] = CreateDynamicObject(19447, 2300.66699, -1519.89856, 26.66840, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[18] = CreateDynamicObject(19447, 2305.57593, -1525.08423, 30.16760, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[19] = CreateDynamicObject(19428, 2305.57690, -1520.67566, 30.16760, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[20] = CreateDynamicObject(19447, 2305.57593, -1534.71423, 30.16760, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[21] = CreateDynamicObject(19447, 2305.57520, -1544.34424, 30.16760, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[22] = CreateDynamicObject(19447, 2310.29688, -1549.23804, 30.16760, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[23] = CreateDynamicObject(19447, 2316.72412, -1549.23633, 30.16760, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[24] = CreateDynamicObject(19447, 2310.29688, -1519.89856, 30.16760, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[25] = CreateDynamicObject(19447, 2319.92700, -1519.89856, 30.16760, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[26] = CreateDynamicObject(19447, 2324.66064, -1524.63086, 30.16760, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[27] = CreateDynamicObject(19447, 2324.66064, -1534.26086, 30.16760, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[28] = CreateDynamicObject(19355, 2324.67065, -1540.14746, 30.16760, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[29] = CreateDynamicObject(19355, 2323.14160, -1541.67249, 30.16760, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[30] = CreateDynamicObject(19355, 2321.45898, -1546.11389, 30.16760, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[31] = CreateDynamicObject(19428, 2321.45898, -1548.51868, 30.16760, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[32] = CreateDynamicObject(19355, 2321.46899, -1543.19385, 30.16760, 0.00000, 0.00000, 0.00000, -1, -1, -1, 250.00, 250.00); fd_wall[33] = CreateDynamicObject(19447, 2300.72168, -1545.56250, 26.66840, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[34] = CreateDynamicObject(19447, 2300.72168, -1545.56250, 23.16800, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); fd_wall[35] = CreateDynamicObject(19447, 2300.72168, -1545.56250, 30.16760, 0.00000, 0.00000, 90.00000, -1, -1, -1, 250.00, 250.00); CreateDynamicObject(1635, 2313.83496, -1549.91479, 29.24914, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1635, 2308.19507, -1549.91479, 29.24910, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19377, 2319.34521, -1524.79724, 31.83230, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 2319.34521, -1536.78870, 31.83230, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 2308.84521, -1524.79724, 31.83230, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 2308.84521, -1536.78870, 31.83230, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 2308.84521, -1530.85376, 31.85230, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 2319.34521, -1530.85376, 31.85230, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 2316.20996, -1544.38257, 31.85230, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 2310.74683, -1544.39502, 31.84230, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19377, 2300.26099, -1540.75269, 31.84230, 0.00000, 90.00000, 0.00000); CreateDynamicObject(1687, 2313.67969, -1539.58594, 32.63800, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1687, 2313.67969, -1528.29187, 32.63803, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2653, 2313.88916, -1523.94604, 31.07910, 0.00000, 180.00000, 0.00000); CreateDynamicObject(2653, 2309.58057, -1534.14294, 31.07910, 0.00000, 180.00000, 90.00000); CreateDynamicObject(2653, 2313.89111, -1531.83008, 31.07910, 0.00000, 180.00000, 0.00000); CreateDynamicObject(2653, 2313.89111, -1539.69897, 31.07910, 0.00000, 180.00000, 0.00000); CreateDynamicObject(2653, 2313.88110, -1545.38000, 31.07910, 0.00000, 180.00000, 0.00000); CreateDynamicObject(2986, 2314.22070, -1534.18335, 30.35590, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1498, 2306.27686, -1519.97217, 24.62630, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1498, 2306.27686, -1519.87219, 24.62630, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1535, 2305.67065, -1534.95227, 24.62750, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2567, 2306.75439, -1546.52576, 26.49260, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2567, 2306.75439, -1541.18579, 26.49260, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1348, 2306.81421, -1538.14966, 25.30640, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19815, 2305.67407, -1530.04773, 26.35043, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19816, 2305.83667, -1532.14099, 24.88290, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19816, 2305.83667, -1532.32104, 24.88290, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19816, 2305.83667, -1532.50098, 24.88290, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19816, 2305.83667, -1532.68103, 24.88290, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19816, 2305.99658, -1532.60095, 24.88290, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19816, 2305.99658, -1532.40100, 24.88290, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19816, 2305.99658, -1532.22095, 24.88290, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19810, 2308.11328, -1519.80835, 25.96690, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1211, 2334.97778, -1506.10352, 23.49794, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1211, 2334.96191, -1552.42346, 23.49794, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1211, 2320.79199, -1491.60645, 23.29790, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1211, 2287.17798, -1491.61401, 22.48780, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1297, 2335.71387, -1518.95435, 26.26371, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1297, 2335.69067, -1534.75537, 26.26371, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1297, 2335.62891, -1550.61890, 26.26371, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19430, 2312.20679, -1518.43408, 23.84390, 90.00000, 90.00000, 55.91340); CreateDynamicObject(19430, 2308.65869, -1518.46179, 23.84390, 90.00000, 90.00000, 55.91340); CreateDynamicObject(19430, 2315.57837, -1518.44092, 23.84390, 90.00000, 90.00000, 55.91340); CreateDynamicObject(19430, 2319.10620, -1518.41028, 23.84390, 90.00000, 90.00000, 55.91340); CreateDynamicObject(19430, 2322.70239, -1518.41040, 23.84390, 90.00000, 90.00000, 55.91340); CreateDynamicObject(19430, 2309.79956, -1516.78125, 23.83390, 90.00000, 90.00000, 55.91340); CreateDynamicObject(19430, 2313.28467, -1516.84106, 23.83390, 90.00000, 90.00000, 55.91340); CreateDynamicObject(19430, 2316.67578, -1516.82520, 23.83390, 90.00000, 90.00000, 55.91340); CreateDynamicObject(19430, 2320.18359, -1516.81641, 23.83390, 90.00000, 90.00000, 55.91340); CreateDynamicObject(19430, 2323.71069, -1516.92285, 23.83390, 90.00000, 90.00000, 55.91340); CreateDynamicObject(19865, 2329.81226, -1550.73352, 22.58390, 6.00000, 0.00000, 90.00000); CreateDynamicObject(19865, 2324.97241, -1550.73645, 22.90490, 2.00000, 0.00000, 90.00000); CreateDynamicObject(19865, 2320.03223, -1550.73450, 22.98490, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19865, 2315.03223, -1550.73450, 22.98490, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19865, 2310.03223, -1550.73450, 22.98490, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19865, 2305.03223, -1550.73450, 22.98490, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19865, 2300.06909, -1550.27942, 22.98490, 0.00000, 0.00000, 79.53068); //CreateDynamicObject(11453, 2330.52515, -1496.05225, 24.93609, 0.00000, 0.00000, 42.91982); CreateDynamicObject(8990, 2305.16675, -1511.45337, 25.22185, 0.00000, 0.00000, 0.00000); CreateDynamicObject(8990, 2304.09375, -1518.61133, 25.22190, 0.00000, 0.00000, 90.00000); CreateDynamicObject(8990, 2304.77881, -1518.87524, 24.91490, 0.00000, 0.00000, -90.00000); new fdst9sign = CreateDynamicObject(11453, 2330.52515, -1496.05225, 24.93609, 0.00000, 0.00000, 42.91982); SetDynamicObjectMaterialText(fdst9sign, 1, "{FFFFFF}LOS SANTOS\nFIRE DEPARTMENT\n\n{8F6B00}- STATION 9 -\n\n\n\n\n\n\n", 140, "Arial", 48, 1, 0xFF800000, 0xFF800000, 1); for(new i=0; i < sizeof(fd_wall); i++) { SetDynamicObjectMaterial(fd_wall[i], 0, 8581, "vgsebuild02", "newall11-1"); } // Fire Department /* CreateDynamicObject(1649, 1737.09998, -1102.50000, 24.00000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(942, 1721.09998, -1114.80005, 25.50000, 0.00000, 0.25000, 91.25000); CreateDynamicObject(930, 1721.19995, -1111.19995, 23.54000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(931, 1720.90002, -1121.00000, 24.10000, 0.00000, 0.00000, 92.00000); CreateDynamicObject(2567, 1707.80005, -1130.19995, 25.00000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(3800, 1712.69995, -1130.00000, 23.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(3800, 1711.09998, -1130.19995, 23.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1736.42004, -1094.81995, 28.18000, 0.00000, 0.00000, 0.24000); CreateDynamicObject(2165, 1752.69995, -1104.59998, 23.12000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2165, 1750.80005, -1104.59998, 23.12000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1671, 1751.50000, -1105.90002, 23.52000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1671, 1753.40002, -1105.90002, 23.52000, 0.00000, 0.00000, 179.99001); CreateDynamicObject(1723, 1740.30005, -1095.59998, 23.12000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1723, 1744.59998, -1095.59998, 23.12000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2315, 1740.50000, -1097.40002, 23.12000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2315, 1744.90002, -1097.40002, 23.12000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1723, 1742.30005, -1099.40002, 23.12000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1723, 1746.59998, -1099.40002, 23.12000, 0.00000, 0.00000, 179.99001); CreateDynamicObject(1649, 1714.78003, -1142.39001, 28.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1722.90002, -1142.40002, 28.10000, 0.00000, 0.00000, 180.24001); CreateDynamicObject(925, 1720.90002, -1123.59998, 24.10000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2700, 1743.19995, -1108.00000, 26.50000, 0.00000, 0.00000, 89.75000); CreateDynamicObject(2700, 1755.93994, -1101.44995, 26.30000, 0.00000, 0.00000, 179.99001); CreateDynamicObject(2631, 1735.40002, -1113.90002, 23.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2632, 1735.40002, -1115.90002, 23.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2631, 1735.40002, -1117.90002, 23.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2632, 1735.40002, -1119.90002, 23.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2631, 1735.40002, -1121.90002, 23.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2632, 1735.40002, -1123.90002, 23.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1211, 1729.69995, -1140.59998, 23.50000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1211, 1712.50000, -1140.59998, 23.50000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1211, 1746.80005, -1140.59998, 23.50000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1211, 1729.57996, -1096.68005, 23.50000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1211, 1712.40002, -1096.80005, 23.50000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1238, 1713.80005, -1129.69995, 23.40000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1238, 1713.80005, -1129.69995, 23.60000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1238, 1714.50000, -1129.69995, 23.40000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1238, 1714.50000, -1129.69995, 23.60000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(7090, 1728.40002, -1095.50000, 35.30000, 0.00000, 0.00000, 92.00000); CreateDynamicObject(1502, 1737.14001, -1106.19995, 23.06000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1729.69995, -1137.30005, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1729.69995, -1134.30005, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1712.50000, -1137.30005, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1704.82996, -1137.38000, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1738.29004, -1135.20996, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1746.80005, -1136.90002, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1746.80005, -1127.19995, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1238, 1740.53003, -1130.07996, 24.60000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1238, 1740.54004, -1130.06995, 24.68000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1238, 1741.40002, -1129.95996, 24.60000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2627, 1735.57996, -1113.58997, 23.15000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2627, 1735.58997, -1114.73999, 23.15000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2630, 1735.69995, -1116.56006, 23.15000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2630, 1735.68005, -1117.78003, 23.15000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2628, 1736.14001, -1119.76001, 23.15000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2628, 1736.14001, -1121.45996, 23.15000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1808, 1736.88000, -1125.26001, 23.09000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2223, 1744.93994, -1097.45996, 23.68000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2342, 1746.51001, -1097.40002, 23.72000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(3578, 1712.40002, -1101.00000, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1704.77002, -1101.10999, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1736.80005, -1099.97998, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1736.80005, -1101.19995, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1729.59998, -1101.00000, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1721.09998, -1100.90002, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1649, 1737.08997, -1102.53003, 27.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1649, 1737.09998, -1106.83997, 27.22000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1649, 1737.09998, -1098.09998, 27.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1649, 1737.09998, -1098.16003, 24.00000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1615, 1754.19995, -1095.80005, 28.00000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1615, 1754.19995, -1130.00000, 28.00000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1615, 1705.09998, -1107.50000, 27.90000, 0.00000, 0.00000, 184.50000); CreateDynamicObject(1615, 1705.09998, -1130.09998, 27.90000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(638, 1701.50000, -1096.50000, 23.80000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(638, 1701.59998, -1100.30005, 23.80000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2774, 1730.19995, -1095.57996, 20.50000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2774, 1729.09998, -1095.57996, 20.50000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2774, 1713.19995, -1095.57996, 20.50000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1752.40002, -1094.80005, 27.90000, 0.00000, 0.00000, 0.25000); CreateDynamicObject(1649, 1748.00000, -1094.80005, 27.90000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1743.59998, -1094.80005, 27.90000, 0.00000, 0.00000, 180.24001); CreateDynamicObject(1649, 1739.30005, -1094.80005, 27.90000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1732.09998, -1094.83984, 28.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1739.30005, -1094.81995, 24.70000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2774, 1712.00000, -1095.57996, 20.50000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1702.97009, -1097.71997, 27.22000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1649, 1702.96997, -1097.68005, 30.48000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1712.51294, -1127.09998, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1704.84399, -1127.19995, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1754.50000, -1136.00000, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1649, 1727.50000, -1094.80005, 28.20000, 0.18000, 0.00000, 0.00000); CreateDynamicObject(1649, 1723.19995, -1094.80005, 28.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1719.40002, -1094.80005, 28.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1715.09998, -1094.80005, 28.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1710.30005, -1094.80005, 28.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1706.00000, -1094.83997, 28.20000, 0.00000, 0.00000, 0.99000); CreateDynamicObject(2774, 1747.27002, -1141.64001, 20.38000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2774, 1746.23999, -1141.69995, 20.00000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2774, 1730.18005, -1141.69995, 18.70000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2774, 1728.88000, -1141.69995, 18.70000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2774, 1711.97998, -1141.69995, 19.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2774, 1713.12000, -1141.69995, 19.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1740.19995, -1142.40002, 28.20000, 0.00000, 0.00000, 180.50000); CreateDynamicObject(1649, 1744.50000, -1142.38000, 28.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1749.09998, -1142.38000, 28.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1753.40002, -1142.38000, 28.10000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1736.30005, -1142.40002, 28.20000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1731.90002, -1142.42004, 28.20000, 0.00000, 0.00000, 180.24001); CreateDynamicObject(1649, 1727.19995, -1142.40002, 28.10000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1719.18005, -1142.40002, 28.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1710.30005, -1142.40002, 28.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1705.95996, -1142.39001, 28.20000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19461, 1703.01001, -1104.71997, 24.82000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1756.32996, -1135.59998, 28.28000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1702.98999, -1135.85999, 24.80000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1703.00000, -1135.82996, 28.28000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1756.32996, -1135.62000, 24.82000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1756.31006, -1101.70996, 28.34000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1737.12000, -1102.46997, 24.00000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1649, 1752.38000, -1094.81995, 24.68000, 0.00000, 0.00000, 0.25000); CreateDynamicObject(1649, 1736.39001, -1094.81995, 28.18000, 0.00000, 0.00000, 180.36000); CreateDynamicObject(1649, 1714.81995, -1142.39001, 28.10000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(3578, 1712.50000, -1137.30005, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1746.80005, -1127.19995, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(931, 1741.21997, -1130.07996, 24.14000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1428, 1742.60999, -1130.43005, 24.65000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1428, 1742.60999, -1129.76001, 24.65000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1502, 1756.29004, -1099.26001, 23.06000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1712.50000, -1137.30005, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1746.80005, -1127.19995, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1238, 1740.54004, -1130.06995, 24.68000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1737.10999, -1102.45996, 27.30000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1649, 1737.10999, -1106.75000, 27.22000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1649, 1737.09998, -1098.14001, 27.30000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1649, 1737.10999, -1098.14001, 24.00000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1649, 1752.40002, -1094.81006, 27.90000, 0.00000, 0.00000, 180.25000); CreateDynamicObject(1649, 1748.00000, -1094.77002, 27.90000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1743.59998, -1094.81995, 27.90000, 0.00000, 0.00000, 0.02000); CreateDynamicObject(1649, 1739.30005, -1094.80005, 27.90000, 0.00000, 0.00000, 179.74001); CreateDynamicObject(1649, 1732.07996, -1094.81995, 28.20000, 0.00000, 0.00000, 179.99001); CreateDynamicObject(1649, 1739.26001, -1094.81995, 24.70000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1702.97986, -1098.45996, 27.22000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1649, 1702.97009, -1098.31006, 30.42000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1649, 1727.47998, -1094.80005, 28.20000, 0.00000, 0.00000, 179.99001); CreateDynamicObject(1649, 1723.19995, -1094.80005, 28.20000, 0.00000, 0.06000, 179.99001); CreateDynamicObject(1649, 1719.38000, -1094.80005, 28.20000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1715.00000, -1094.80005, 28.20000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1710.30005, -1094.80005, 28.20000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1705.95996, -1094.80005, 28.20000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2774, 1747.27002, -1141.64001, 20.00000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1740.28003, -1142.40002, 28.20000, 0.00000, 0.00000, 0.50000); CreateDynamicObject(1649, 1753.45996, -1142.38000, 28.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1736.26001, -1142.40002, 28.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1727.18005, -1142.40002, 28.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1719.19995, -1142.40002, 28.10000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1710.33997, -1142.35999, 28.20000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1705.97998, -1142.39001, 28.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1756.30005, -1104.88000, 24.83000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1765.79004, -1094.87000, 24.68000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(7090, 1728.57996, -1142.33997, 35.40000, 0.00000, 0.00000, 272.00000); CreateDynamicObject(3578, 1712.50000, -1137.30005, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(3578, 1746.80005, -1127.19995, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1428, 1742.60999, -1129.76001, 24.65000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1649, 1743.65002, -1094.81006, 24.68000, 0.00000, 0.00000, 179.95000); CreateDynamicObject(1649, 1743.63000, -1094.81995, 24.70000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1703.01001, -1104.69995, 28.32000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1790.56006, -1099.70996, 28.30000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(616, 840.28003, -923.78003, 52.09000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1536, 1737.10999, -1108.27002, 23.02000, 0.00000, 0.00000, 269.98001); CreateDynamicObject(2737, 1751.96997, -1108.23999, 24.51000, 0.00000, 0.00000, 540.32001); CreateDynamicObject(6973, 1742.70996, -1113.82996, 43.62000, 0.00000, 0.00000, 90.54000); CreateDynamicObject(1649, 1748.06006, -1094.81995, 24.70000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1752.37000, -1094.81006, 24.68000, 0.00000, 0.00000, 179.95000); CreateDynamicObject(1649, 1748.04004, -1094.80005, 24.68000, 0.00000, 0.00000, 179.95000); CreateDynamicObject(1536, 1752.80005, -1122.04004, 45.53000, 0.00000, 0.00000, 269.98001); CreateDynamicObject(19486, -755.09998, 1637.62000, 28.51000, 0.00000, 0.00000, -179.52000); CreateDynamicObject(19330, 1773.79797, -1114.10522, 25.07000, -4.00000, -91.00000, -76.00000); CreateDynamicObject(19171, 1748.63000, -1108.31006, 25.71000, -90.00000, 0.00000, 0.00000); CreateDynamicObject(19169, 1748.63000, -1108.31006, 24.22000, -90.00000, 0.00000, 0.00000); CreateDynamicObject(19170, 1747.14001, -1108.31006, 25.71000, -90.00000, 0.00000, 0.00000); CreateDynamicObject(19168, 1747.13000, -1108.31006, 24.22000, -90.00000, 0.00000, 0.00000); CreateDynamicObject(19172, 1756.23999, -1101.45996, 25.05000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(18870, 1740.82996, -1097.39001, 23.61000, 0.00000, 0.00000, 23.40000); CreateDynamicObject(2690, 1742.15002, -1130.68994, 23.57000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2690, 1740.47998, -1130.18005, 23.57000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2690, 1741.50000, -1130.60999, 23.57000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2690, 1740.96997, -1130.64001, 23.57000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2690, 1736.84998, -1125.85999, 23.41000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1368, 1702.41003, -1102.06995, 23.78000, 0.00000, 0.00000, -89.88000); CreateDynamicObject(1368, 1702.41003, -1104.59998, 23.78000, 0.00000, 0.00000, -89.88000); CreateDynamicObject(18075, 1728.70996, -1117.10999, 29.08000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(18075, 1716.81006, -1135.50000, 29.08000, 0.00000, 0.00000, -90.18000); CreateDynamicObject(18075, 1742.42004, -1135.51001, 29.08000, 0.00000, 0.00000, -90.18000); CreateDynamicObject(18075, 1716.77002, -1103.60999, 29.08000, 0.00000, 0.00000, -90.18000); CreateDynamicObject(18075, 1742.64001, -1102.77002, 29.08000, 0.00000, 0.00000, -90.18000); CreateDynamicObject(1215, 1752.56995, -1141.26001, 45.87000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1215, 1704.16003, -1141.27002, 45.87000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1215, 1704.18005, -1096.01001, 45.87000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1215, 1752.56006, -1096.07996, 45.87000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1432, 819.85999, -946.59998, 49.75000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1790.56006, -1111.21997, 24.81000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19415, 1779.42004, -1094.87000, 24.82000, 0.00000, 0.00000, -90.12000); CreateDynamicObject(19461, 1783.62000, -1094.87000, 28.32000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1773.00000, -1094.87000, 24.83000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1764.38000, -1094.87000, 28.32000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19415, 1766.66003, -1094.87000, 24.82000, 0.00000, 0.00000, -90.12000); CreateDynamicObject(19461, 1760.23999, -1094.87000, 28.33000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19397, 1756.29004, -1098.51001, 24.83000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1790.56006, -1099.60010, 24.81000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1790.52002, -1111.19995, 28.30000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1787.89001, -1117.12000, 28.31000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1778.28003, -1116.10999, 28.31000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1787.89001, -1117.12000, 24.83000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1778.28015, -1116.10999, 24.83000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19331, 1782.14478, -1115.72253, 25.07000, 0.00000, 265.00000, -25.00000); CreateDynamicObject(19461, 1774.00000, -1094.87000, 28.32000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1760.23999, -1094.87000, 24.83000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1785.79004, -1094.87000, 24.83000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1785.63000, -1108.41003, 24.81000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1773.12000, -1108.41003, 28.31000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19397, 1779.20996, -1108.41003, 24.81000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1502, 1778.43005, -1108.41003, 23.06000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1773.12000, -1108.41003, 24.81000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1782.75000, -1108.41003, 28.31000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1792.39001, -1108.41003, 28.31000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(941, 1774.47998, -1107.72998, 23.53000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(937, 1776.84998, -1107.75000, 23.53000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(936, 1780.97998, -1107.70996, 23.55000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2135, 1787.87000, -1095.43994, 23.07000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2136, 1785.93994, -1095.43994, 23.07000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2139, 1784.96997, -1095.44995, 23.06000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2149, 1785.10999, -1095.28003, 24.28000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2529, 1783.96997, -1095.43994, 23.07000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2139, 1782.96997, -1095.44995, 23.06000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2140, 1788.56995, -1096.38000, 22.93000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2139, 1781.98999, -1095.44995, 23.06000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2867, 1782.64001, -1095.27002, 24.12000, 0.00000, 0.00000, -32.46000); CreateDynamicObject(2219, 1786.15002, -1095.43005, 24.18000, -25.00000, 25.00000, 47.00000); CreateDynamicObject(18075, 1766.96997, -1101.21997, 29.08000, 0.00000, 0.00000, -90.18000); CreateDynamicObject(18075, 1782.82996, -1107.08997, 29.08000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1968, 1786.25000, -1098.68005, 23.59000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1968, 1786.25000, -1100.67004, 23.59000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1968, 1786.25000, -1102.64001, 23.59000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1968, 1783.16003, -1102.64001, 23.59000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1968, 1783.16003, -1100.67004, 23.59000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1968, 1783.16003, -1098.68005, 23.59000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1969, 1783.16003, -1104.00000, 23.59000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1969, 1786.25000, -1104.00000, 23.59000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1764.50000, -1107.96997, 24.81000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1764.50000, -1107.96997, 28.30000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1671, 1758.31006, -1107.78003, 23.52000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1671, 1768.80005, -1105.14001, 23.52000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1766.44995, -1094.80005, 24.68000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1779.47998, -1094.85999, 24.68000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1779.60999, -1094.82996, 24.68000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(3578, 1729.60999, -1101.35999, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1255, 816.98999, -943.64001, 50.30000, 0.00000, 0.00000, -85.74000); CreateDynamicObject(19461, 1764.27002, -1103.18994, 24.83000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19397, 1757.84998, -1103.18005, 24.83000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19397, 1770.68994, -1103.18994, 24.83000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19461, 1772.20996, -1108.04004, 24.83000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1772.20996, -1108.04004, 28.33000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1767.48999, -1103.20996, 28.33000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1761.19995, -1103.19995, 28.33000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1764.29004, -1103.18994, 28.33000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(1502, 1769.92004, -1103.19995, 23.06000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1502, 1757.06006, -1103.18994, 23.06000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1546, 1787.18994, -1095.23999, 24.21000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2342, 1783.16003, -1100.62000, 23.98000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2342, 1786.27002, -1104.04004, 23.98000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2223, 1786.21997, -1098.59998, 23.92000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2223, 1783.06006, -1102.64001, 23.92000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1459, 1744.47998, -1130.51001, 23.69000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1423, 1744.47998, -1129.46997, 23.77000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1424, 1748.28003, -1130.15002, 23.60000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1425, 1746.46997, -1129.51001, 23.49000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1422, 1748.42004, -1129.47998, 23.47000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1282, 1746.40002, -1130.34998, 23.58000, 0.00000, 0.00000, -89.94000); CreateDynamicObject(2605, 1758.29004, -1106.38000, 23.46000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1794, 1763.89001, -1104.80005, 23.07000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1794, 1766.04004, -1104.80005, 23.07000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2605, 1768.78003, -1103.82996, 23.46000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1235, 1781.09998, -1095.32996, 23.58000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1742, 1763.44995, -1103.16003, 23.07000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1742, 1765.08997, -1103.15002, 23.07000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1997, 1720.56995, -1126.44995, 23.06000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2007, 1756.94995, -1107.78003, 23.06000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2007, 1771.59998, -1105.64001, 23.06000, 0.00000, 0.00000, -90.90000); CreateDynamicObject(2425, 1782.05005, -1095.04004, 24.12000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1722.87000, -1142.39001, 28.10000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1731.90002, -1142.40002, 28.20000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1749.12000, -1142.38000, 28.10000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1744.57996, -1142.38000, 28.20000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(7092, 1752.81006, -1134.68994, 81.86000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1663, 1753.37000, -1103.12000, 23.54000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1663, 1751.51001, -1103.12000, 23.54000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(11665, 1775.58997, -1096.62000, 23.76000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1704, 1777.53003, -1097.71997, 23.07000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1704, 1774.69995, -1097.69995, 23.07000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2700, 1775.56995, -1095.23999, 25.03000, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2108, 1762.59998, -1103.52002, 23.06000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2108, 1766.37000, -1103.56995, 23.06000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 1742.34998, -1099.65002, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1742.34998, -1109.26001, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1752.84998, -1109.26001, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1752.84998, -1099.65002, 23.03000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1763.34998, -1099.65002, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1773.82996, -1099.65002, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1784.30005, -1099.65002, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1784.30005, -1109.25000, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1773.82996, -1109.25000, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1763.34998, -1109.25000, 22.99000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1788.68005, -1106.73999, 22.99000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1788.69995, -1103.55005, 22.99000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1788.70996, -1100.37000, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1788.68005, -1097.22998, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1791.21997, -1110.05005, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1791.20996, -1113.19995, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1789.25000, -1115.56995, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1785.76001, -1115.54004, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1782.29004, -1115.56006, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1778.81006, -1114.57996, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1775.32996, -1114.57996, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19370, 1771.84998, -1114.57996, 22.99000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(2835, 1765.06995, -1105.68994, 23.08000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2836, 1757.30005, -1104.31995, 23.08000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1807.62122, -1099.60059, 24.81000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19415, 1807.62122, -1105.47998, 24.81000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1807.62122, -1111.21997, 24.81000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1807.62122, -1105.76001, 24.68000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19461, 1807.62122, -1101.58997, 28.30000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1807.62122, -1111.19995, 28.30000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19461, 1795.09143, -1094.87000, 28.32000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1760.23999, -1094.87000, 28.33000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19415, 1803.93176, -1094.87000, 24.82000, 0.00000, 0.00000, -90.12000); CreateDynamicObject(19461, 1798.12207, -1094.87000, 24.83000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1801.95825, -1094.87000, 28.32000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(1649, 1803.07300, -1094.87000, 24.68000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1649, 1803.07300, -1094.87000, 24.68000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1807.62122, -1105.76001, 24.68000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(19397, 1790.56006, -1105.46411, 24.81000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19379, 1795.51477, -1104.55017, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1795.51477, -1099.67505, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1802.34436, -1104.48071, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(19379, 1802.39673, -1099.67505, 23.01000, 0.00000, 90.00000, 0.00000); CreateDynamicObject(1502, 1790.53430, -1106.21399, 23.06000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19369, 1792.19299, -1103.87488, 22.50000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1796, 1794.13123, -1103.24817, 23.07000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1796, 1794.13123, -1099.53174, 23.07000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2087, 1790.83545, -1101.83203, 23.07000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2087, 1790.83545, -1098.07202, 23.07000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1796, 1794.13123, -1095.70630, 23.07000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19461, 1790.56006, -1108.24719, 28.30000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1797.53296, -1103.87488, 22.50000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19369, 1799.13416, -1102.34753, 22.76000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1800.73315, -1103.87488, 22.50000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19369, 1805.95313, -1103.87488, 22.50000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19369, 1799.13416, -1099.17432, 22.76000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1799.13416, -1096.54956, 22.76000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1796, 1802.69116, -1103.24817, 23.07000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1796, 1802.69116, -1099.53174, 23.07000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1796, 1802.69116, -1095.70630, 23.07000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2087, 1799.39539, -1101.83203, 23.07000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2087, 1799.39539, -1098.07202, 23.07000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1796, 1795.57117, -1103.02820, 23.07000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1796, 1795.57117, -1099.31165, 23.07000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1796, 1795.57190, -1095.48389, 23.07000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(2087, 1798.87354, -1100.77197, 23.07000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(2087, 1798.87756, -1097.01599, 23.07000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1796, 1804.05115, -1103.02820, 23.07000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1796, 1804.05115, -1099.31165, 23.07000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(2087, 1807.37354, -1100.77197, 23.07000, 0.00000, 0.00000, -90.00000); CreateDynamicObject(18075, 1798.90942, -1101.48120, 29.08000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(3578, 1721.18005, -1135.05005, 22.30000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19415, 1791.93530, -1094.87000, 24.82000, 0.00000, 0.00000, -90.12000); CreateDynamicObject(1649, 1792.76953, -1094.87000, 24.68000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1649, 1792.76953, -1094.87000, 24.68000, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1498, 1703.01855, -1099.90955, 23.05900, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1498, 1702.99060, -1096.89185, 23.05900, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1498, 1750.65540, -1094.84595, 23.04510, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1498, 1753.67786, -1094.81897, 23.04510, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2200, 1775.28821, -1115.87366, 23.07780, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2200, 1777.51404, -1115.87366, 23.07780, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2200, 1779.73682, -1115.87366, 23.07780, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2200, 1781.96082, -1115.87366, 23.07780, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2200, 1781.25183, -1112.36035, 23.07780, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2200, 1779.02954, -1112.36035, 23.07780, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2200, 1776.80957, -1112.36035, 23.07780, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2200, 1782.51294, -1112.05347, 23.07780, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2200, 1780.28796, -1112.05347, 23.07780, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2200, 1778.07104, -1112.05347, 23.07780, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2200, 1773.64246, -1113.97485, 23.07780, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2200, 1773.64246, -1111.74939, 23.07780, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1208, 1777.53979, -1108.78809, 23.08890, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1208, 1776.83984, -1108.78809, 23.08890, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1208, 1776.13977, -1108.78809, 23.08890, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1208, 1775.41980, -1108.78809, 23.08890, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1208, 1774.71985, -1108.78809, 23.08890, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19331, 1781.52966, -1115.71790, 25.07000, 0.00000, 265.00000, -4.00000); CreateDynamicObject(19331, 1781.00073, -1115.69910, 25.07000, 0.00000, 265.00000, -33.00000); CreateDynamicObject(19331, 1780.49707, -1115.77954, 25.07000, 0.00000, 265.00000, -4.00000); CreateDynamicObject(19331, 1779.88684, -1115.64880, 25.07000, 0.00000, 265.00000, -40.00000); CreateDynamicObject(19331, 1779.37720, -1115.62659, 25.07000, 0.00000, 265.00000, 40.00000); CreateDynamicObject(19331, 1778.76819, -1115.71338, 25.07000, 0.00000, 265.00000, -6.00000); CreateDynamicObject(19331, 1778.26331, -1115.70239, 25.07000, 0.00000, 265.00000, 4.00000); CreateDynamicObject(19331, 1777.65649, -1115.68921, 25.07000, 0.00000, 265.00000, -25.00000); CreateDynamicObject(19331, 1777.14661, -1115.70398, 25.07000, 0.00000, 265.00000, 47.00000); CreateDynamicObject(19331, 1776.52551, -1115.72192, 25.07000, 0.00000, 265.00000, -11.00000); CreateDynamicObject(19331, 1776.01550, -1115.72620, 25.07000, 0.00000, 265.00000, 4.00000); CreateDynamicObject(19331, 1775.50549, -1115.73047, 25.07000, 0.00000, 265.00000, -55.00000); CreateDynamicObject(19331, 1774.97852, -1115.63733, 25.07000, 0.00000, 265.00000, -25.00000); CreateDynamicObject(19331, 1774.36487, -1115.74731, 25.07000, 0.00000, 265.00000, -55.00000); CreateDynamicObject(19330, 1773.77942, -1113.69958, 25.07000, -4.00000, -91.00000, -113.00000); CreateDynamicObject(19330, 1773.85120, -1113.08044, 25.07000, -4.00000, -91.00000, -55.00000); CreateDynamicObject(19330, 1773.80261, -1112.64807, 25.07000, -4.00000, -91.00000, -85.00000); CreateDynamicObject(19330, 1773.81299, -1111.98816, 25.07000, -4.00000, -91.00000, -53.00000); CreateDynamicObject(19330, 1773.81091, -1111.32727, 25.07000, -4.00000, -91.00000, -127.00000); CreateDynamicObject(19330, 1773.87378, -1110.18103, 25.07000, -4.00000, -91.00000, -62.00000); CreateDynamicObject(19330, 1773.91455, -1110.68677, 25.07000, -4.00000, -91.00000, -125.00000); CreateDynamicObject(19331, 1773.86304, -1115.73877, 25.07000, 0.00000, 265.00000, 11.00000); CreateDynamicObject(19330, 1782.68787, -1111.86804, 25.07000, -4.00000, -91.00000, 10.00000); CreateDynamicObject(19330, 1782.23010, -1111.83459, 25.07000, -4.00000, -91.00000, 18.00000); CreateDynamicObject(19330, 1781.61719, -1111.82056, 25.07000, -4.00000, -91.00000, -40.00000); CreateDynamicObject(19330, 1781.08679, -1111.93933, 25.07000, -4.00000, -91.00000, -16.00000); CreateDynamicObject(19330, 1780.49768, -1111.90503, 25.07000, -4.00000, -91.00000, 25.00000); CreateDynamicObject(19330, 1779.99109, -1111.83813, 25.07000, -4.00000, -91.00000, -40.00000); CreateDynamicObject(19330, 1779.38184, -1111.77942, 25.07000, -4.00000, -91.00000, 47.00000); CreateDynamicObject(19330, 1778.78003, -1111.78455, 25.07000, -4.00000, -91.00000, -40.00000); CreateDynamicObject(19330, 1778.15027, -1111.89075, 25.07000, -4.00000, -91.00000, -12.00000); CreateDynamicObject(19330, 1777.64539, -1111.88013, 25.07000, -4.00000, -91.00000, -25.00000); CreateDynamicObject(19330, 1777.14551, -1111.87158, 25.07000, -4.00000, -91.00000, 9.00000); CreateDynamicObject(19330, 1776.63965, -1111.85986, 25.07000, -4.00000, -91.00000, 47.00000); CreateDynamicObject(19330, 1776.53137, -1112.47644, 25.07000, -4.00000, -91.00000, 178.00000); CreateDynamicObject(19330, 1777.14514, -1112.58252, 25.07000, -4.00000, -91.00000, 149.00000); CreateDynamicObject(19330, 1777.56812, -1112.50891, 25.07000, -4.00000, -91.00000, -178.00000); CreateDynamicObject(19330, 1778.16846, -1112.60168, 25.07000, -4.00000, -91.00000, -193.00000); CreateDynamicObject(19369, 1783.08862, -1113.25757, 24.81000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19397, 1783.08862, -1110.05676, 24.81000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1783.08862, -1116.44299, 24.81000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1783.08862, -1116.44495, 28.31000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1783.08862, -1113.25757, 28.31000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1783.08862, -1110.05676, 28.31000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1502, 1783.10864, -1110.81006, 23.04000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19461, 1786.61902, -1119.57288, 24.83000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1777.52209, -1119.56335, 24.83000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1777.52209, -1119.56335, 28.31000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19461, 1786.61902, -1119.57288, 28.31000, 0.00000, 0.00000, -90.06000); CreateDynamicObject(19369, 1786.79395, -1111.62354, 24.81000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2527, 1784.63379, -1113.18726, 23.08350, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2527, 1785.65552, -1113.18616, 23.08350, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2527, 1786.68213, -1113.18616, 23.08350, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2523, 1788.06995, -1108.98718, 23.10110, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2523, 1787.06995, -1108.98718, 23.10110, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2523, 1786.06995, -1108.98718, 23.10110, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2523, 1785.06995, -1108.98718, 23.10110, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2523, 1789.06995, -1108.98718, 23.10110, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1784.76855, -1115.98303, 24.07000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1502, 1783.15796, -1114.48438, 23.04000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1502, 1784.83777, -1114.48438, 23.04000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1786.44861, -1115.98303, 24.07000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1502, 1786.51782, -1114.48438, 23.04000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1788.10864, -1115.98303, 24.07000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1791.33118, -1114.46082, 24.83000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(19369, 1791.33118, -1114.46082, 28.31000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2525, 1787.29626, -1116.51965, 23.09340, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2525, 1785.65625, -1116.51965, 23.09340, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2525, 1783.95630, -1116.51965, 23.09340, 0.00000, 0.00000, 180.00000); CreateDynamicObject(2523, 1784.06995, -1108.98718, 23.10110, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1784.75403, -1111.62354, 24.81000, 0.00000, 0.00000, 90.00000); CreateDynamicObject(2527, 1783.61401, -1113.18726, 23.08350, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2527, 1787.70215, -1113.18616, 23.08350, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1502, 1788.17786, -1114.48438, 23.04000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1789.80859, -1115.98303, 24.83000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(19369, 1789.80859, -1115.98303, 28.31000, 0.00000, 0.00000, 0.00000); CreateDynamicObject(2525, 1788.95630, -1116.51965, 23.09340, 0.00000, 0.00000, 180.00000); CreateDynamicObject(19330, 1778.75940, -1112.54224, 25.07000, -4.00000, -91.00000, -156.00000); CreateDynamicObject(19330, 1779.34583, -1112.48743, 25.07000, -4.00000, -91.00000, -193.00000); CreateDynamicObject(19330, 1779.88721, -1112.52405, 25.07000, -4.00000, -91.00000, -178.00000); CreateDynamicObject(19330, 1780.56470, -1112.51501, 25.07000, -4.00000, -91.00000, -229.00000); CreateDynamicObject(19330, 1781.07898, -1112.59021, 25.07000, -4.00000, -91.00000, -120.00000); CreateDynamicObject(19330, 1781.59680, -1112.56604, 25.07000, -4.00000, -91.00000, -185.00000); CreateDynamicObject(19330, 1782.11133, -1112.54016, 25.07000, -4.00000, -91.00000, -135.00000); CreateDynamicObject(19330, 1782.72241, -1112.61157, 25.07000, -4.00000, -91.00000, -200.00000);*/ // Inglewood Stacks CreateDynamicObject(19121, 2124.371093, -1765.267456, 13.145559, 0.000000, 0.000000, 267.547332); CreateDynamicObject(19121, 2124.381347, -1769.873168, 13.145559, 0.000000, 0.000000, 267.547332); CreateDynamicObject(19121, 2124.396484, -1774.649047, 13.145559, 0.000000, 0.000000, 267.547332); CreateDynamicObject(19121, 2124.419677, -1779.435668, 13.145559, 0.000000, 0.000000, 267.547332); CreateDynamicObject(19121, 2124.382568, -1784.029174, 13.145559, 0.000000, 0.000000, 267.547332); CreateDynamicObject(1257, 2080.262207, -1769.403686, 13.800909, 0.000000, 0.000000, 165.000000); CreateDynamicObject(1346, 2122.608886, -1790.332153, 13.887385, 0.000000, 0.000000, 180.000000); CreateDynamicObject(1256, 2119.659667, -1790.556152, 13.200844, 0.000000, 0.000000, -90.000000); CreateDynamicObject(1285, 2106.148193, -1790.754638, 13.098064, 0.000000, 0.000000, 0.000000); CreateDynamicObject(1287, 2106.840820, -1790.747070, 13.090840, 0.000000, 0.000000, 359.374725); CreateDynamicObject(970, 2098.605224, -1784.011840, 13.037828, 0.000000, 0.000000, 80.976753); CreateDynamicObject(970, 2099.258789, -1779.893310, 13.037828, 0.000000, 0.000000, 80.976753); CreateDynamicObject(970, 2099.906738, -1775.825195, 13.037828, 0.000000, 0.000000, 80.976753); CreateDynamicObject(970, 2100.548583, -1771.775146, 13.037828, 0.000000, 0.000000, 80.976753); CreateDynamicObject(970, 2101.199462, -1767.676147, 13.037828, 0.000000, 0.000000, 80.976753); CreateDynamicObject(970, 2100.351318, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000); CreateDynamicObject(970, 2104.491455, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000); CreateDynamicObject(970, 2108.612792, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000); CreateDynamicObject(970, 2112.732666, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000); CreateDynamicObject(970, 2116.863769, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000); CreateDynamicObject(970, 2120.975830, -1786.065185, 13.037828, 0.000000, 0.000000, 180.000000); // Police Station CreateDynamicObject(1257, 1522.465332, -1681.823730, 13.770749, 0.000000, 0.000000, 180.000000); CreateDynamicObject(970, 1551.633422, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000); CreateDynamicObject(970, 1555.783447, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000); CreateDynamicObject(970, 1559.933471, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000); CreateDynamicObject(970, 1564.074096, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000); CreateDynamicObject(970, 1568.224609, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000); CreateDynamicObject(970, 1572.365112, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000); CreateDynamicObject(970, 1576.505249, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000); CreateDynamicObject(970, 1580.645019, -1617.501953, 12.936862, 0.000000, 0.000000, 0.000000); CreateDynamicObject(970, 1582.715698, -1615.421997, 12.936862, 0.000000, 0.000000, 90.000000); CreateDynamicObject(970, 1582.715698, -1604.718017, 12.936862, 0.000000, 0.000000, 90.000000); CreateDynamicObject(997, 1544.565063, -1617.910156, 12.636869, 0.000000, 0.000000, 269.882934); CreateDynamicObject(997, 1544.561523, -1619.519531, 12.636869, 0.000000, 0.000000, 269.882934); CreateDynamicObject(19121, 1541.145751, -1616.433227, 12.972808, 0.000000, 0.000000, 86.229026); CreateDynamicObject(19121, 1541.965332, -1604.001220, 12.972808, 0.000000, 0.000000, 86.229026); // Gym objects CreateDynamicObject(2916, 772.496765, 5.770771, 999.879760, 0.000000, 0.000000, -90.000000); CreateDynamicObject(2916, 772.527404, 5.051626, 999.879760, 0.000000, 0.000000, -90.000000); } LoadJobs() { // Transporter JobVehicles[Transporter][0] = SpawnVehicle(554, 2182.5713, -2322.6948, 13.6338, 45.0000, 43, 32, 600); // truck 1 JobVehicles[Transporter][1] = SpawnVehicle(554, 2185.3015, -2320.1089, 13.6460, 45.0000, 12, 32, 600); // truck 2 JobVehicles[Transporter][2] = SpawnVehicle(554, 2187.9258, -2317.3552, 13.6310, 45.0000, 14, 32, 600); // truck 3 JobVehicles[Transporter][3] = SpawnVehicle(554, 2156.8408, -2297.3008, 13.5454, 225.0000, 53, 32, 600); // truck 4 JobVehicles[Transporter][4] = SpawnVehicle(554, 2159.5317, -2294.3271, 13.5573, 225.0000, 15, 32, 600); // truck 5 JobVehicles[Transporter][5] = SpawnVehicle(554, 2162.3831, -2291.3997, 13.5747, 225.0000, 45, 32, 600); // truck 6 JobVehicles[Transporter][6] = SpawnVehicle(554, 2189.1882, -2298.8201, 13.6304, 44.6955, 45, 32, 600); JobVehicles[Transporter][7] = SpawnVehicle(554, 2185.9622, -2301.6887, 13.6331, 44.8988, 45, 32, 600); JobVehicles[Transporter][8] = SpawnVehicle(554, 2182.6394, -2305.4114, 13.6295, 45.4527, 45, 32, 600); JobVehicles[Transporter][9] = SpawnVehicle(554, 2165.9766, -2308.4241, 13.6300, 314.1117, 45, 32, 600); JobVehicles[Transporter][10] = SpawnVehicle(554, 2163.0237, -2305.6199, 13.6351, 313.9506, 45, 32, 600); CreateDynamicPickup(1318, 23, 2175.3335, -2266.9937, 13.3891); CreateDynamic3DTextLabel("Use /load to begin delivery", COLOR_GREY, 2175.3335, -2266.9937, 13.3891, 15.0); // Forklifter JobVehicles[Forklifter][0] = SpawnVehicle(530, 2778.5310, -2425.0867, 13.3935, 0.0000, 6, 6, 600); // forklift 1 JobVehicles[Forklifter][1] = SpawnVehicle(530, 2778.6404, -2410.1257, 13.4024, 180.0000, 6, 6, 600); // forklift 2 JobVehicles[Forklifter][2] = SpawnVehicle(530, 2787.8252, -2425.3438, 13.3990, 0.0000, 6, 6, 600); // forklift 3 JobVehicles[Forklifter][3] = SpawnVehicle(530, 2788.1560, -2410.3755, 13.3962, 180.0000, 6, 6, 600); // forklift 4 JobVehicles[Forklifter][4] = SpawnVehicle(530, 2795.1589, -2425.3408, 13.3954, 0.0000, 6, 6, 600); // forklift 5 JobVehicles[Forklifter][5] = SpawnVehicle(530, 2795.1826, -2409.9617, 13.3972, 180.0000, 6, 6, 600); // forklift 6 // Miner CreateDynamic3DTextLabel("Use /work to begin mining", COLOR_GREY, -1858.5516, -1651.3812, 26.0788, 15.0); CreateDynamic3DTextLabel("Use /work to begin mining", COLOR_GREY, -1790.7683, -1649.2581, 32.86813, 15.0); CreateDynamic3DTextLabel("Use /work to begin mining", COLOR_GREY, -1775.1649, -1643.3854, 29.5218, 15.0); CreateDynamic3DTextLabel("Use /work to begin mining", COLOR_GREY, -1801.5831, -1649.7592, 26.5446, 15.0); // Taxi Driver /*JobVehicles[TaxiDriver][0] = SpawnVehicle(420, 1777.6617, -1886.1866, 13.1629, 270.0000, 6, 6, 600); // taxi 1 JobVehicles[TaxiDriver][1] = SpawnVehicle(420, 1777.6617, -1890.7469, 13.1629, 270.0000, 6, 6, 600); // taxi 2 JobVehicles[TaxiDriver][2] = SpawnVehicle(420, 1777.6617, -1895.3072, 13.1629, 270.0000, 6, 6, 600); // taxi 3 JobVehicles[TaxiDriver][3] = SpawnVehicle(420, 1777.6617, -1899.8675, 13.1629, 270.0000, 6, 6, 600); // taxi 4 JobVehicles[TaxiDriver][4] = SpawnVehicle(420, 1777.6617, -1904.4278, 13.1629, 270.0000, 6, 6, 600); // taxi 5 JobVehicles[TaxiDriver][5] = SpawnVehicle(420, 1777.6617, -1908.9881, 13.1629, 270.0000, 6, 6, 600); // taxi 6*/ // Pizzaboy JobVehicles[Pizzaboy][0] = SpawnVehicle(448, 2097.8745, -1800.4648, 12.9810, 90.0000, 3, 6, 600); // pizza 1 JobVehicles[Pizzaboy][1] = SpawnVehicle(448, 2097.8745, -1798.5289, 12.9810, 90.0000, 3, 6, 600); // pizza 2 JobVehicles[Pizzaboy][2] = SpawnVehicle(448, 2097.8745, -1796.5930, 12.9810, 90.0000, 3, 6, 600); // pizza 3 JobVehicles[Pizzaboy][3] = SpawnVehicle(448, 2097.8745, -1794.6535, 12.9810, 90.0000, 3, 6, 600); // pizza 4 JobVehicles[Pizzaboy][4] = SpawnVehicle(448, 2097.8745, -1792.7140, 12.9810, 90.0000, 3, 6, 600); // pizza 5 //2092.8154,-1796.5688,13.3828 CreateDynamicPickup(1582, 23, 2092.8154,-1796.5688,13.3828); CreateDynamic3DTextLabel("Use /work to begin delivering", COLOR_GREY, 2092.8154,-1796.5688,13.3828, 10.0); /*CreateDynamicPickup(1582, 23, 2103.0977, -1804.2975, 13.5547); CreateDynamic3DTextLabel("Use /work to begin delivering", COLOR_GREY, 2103.0977, -1804.2975, 13.5547, 10.0);*/ // Trashman JobVehicles[Trashman][0] = SpawnVehicle(408, 2189.9836, -1991.2726, 14.0007, 90.0000, 26, 26, 600); // trash 1 JobVehicles[Trashman][1] = SpawnVehicle(408, 2189.9897, -1986.3273, 14.1235, 90.0000, 26, 26, 600); // trash 2 JobVehicles[Trashman][2] = SpawnVehicle(408, 2157.7324, -1970.5673, 14.0034, 270.0000, 26, 26, 600); // trash 3 JobVehicles[Trashman][3] = SpawnVehicle(408, 2146.7019, -1970.3008, 14.1220, 270.0000, 26, 26, 600); // trash 4 JobVehicles[Trashman][4] = SpawnVehicle(408, 2134.6724, -1969.9525, 14.1239, 270.0000, 26, 26, 600); // trash 5 /*// Transportation Airline pilot JobVehicles[Tairline][0] = SpawnVehicle(553, 1975.0724, -2382.0010, 14.8804, 0.0000, 6, 6, 600); // Airline 1 JobVehicles[Tairline][1] = SpawnVehicle(553, 1972.8947, -2316.1907, 14.8827, 180.0000, 6, 6, 600); // Airline 2 JobVehicles[Tairline][2] = SpawnVehicle(553, 1921.6256, -2250.4507, 14.8808, 0.0000, 6, 6, 600); // Airline 3*/ CreateDynamicPickup(1265, 23, 2184.9795, -1976.9451, 13.5528); CreateDynamic3DTextLabel("Use /work to begin trash job", COLOR_GREY, 2184.9795, -1976.9451, 13.5528, 10.0); } LoadActors() { new act1; // City Hall act1 = CreateActor(147, 359.7125, 173.5390, 1008.3828, 270.0000); SetActorVirtualWorld(act1, g_StaticBuildings[BUILDING_CITYHALL][e_VirtualWorld]); } LoadElements() // Pickups, labels and checkpoints { // Deliver points for (new i = 0; i < sizeof(g_HospitalDeliverPoints); i ++) { CreateDynamicPickup(1240, 23, g_HospitalDeliverPoints[i][0], g_HospitalDeliverPoints[i][1], g_HospitalDeliverPoints[i][2]); CreateDynamic3DTextLabel("Use /deliverpatients to deliver patients.", COLOR_GREY, g_HospitalDeliverPoints[i][0], g_HospitalDeliverPoints[i][1], g_HospitalDeliverPoints[i][2], 15.0); } //IllegalOrder CreateDynamic3DTextLabel("Black Market", COLOR_GREY, 2525.4495,-2221.1128,13.5469, 5.0); // Gym Labels CreateDynamic3DTextLabel("Press Y to use weights", COLOR_GREY, 772.4859, 5.3462, 999.9802, 10.0); CreateDynamic3DTextLabel("Press Y to use treadmill", COLOR_GREY, 773.5106, -2.8392, 1000.1479, 10.0); // Impounding CreateDynamic3DTextLabel("Impound Yard", COLOR_GREY, 1624.3313,-1819.2130,13.5258, 20.0); // City Hall CreateDynamic3DTextLabel("Job Employment", COLOR_GREY, 362.2840, 173.6001, 1008.3828, 10.0); Checkpoints[cpEmployment] = CreateDynamicCP(363.4342, 173.5729, 1008.3828, 2.0, g_StaticBuildings[BUILDING_CITYHALL][e_VirtualWorld], -1, -1, 10.0); // Release impounded vehicles CreateDynamic3DTextLabel("Front Desk", -1, 130.0626, 1130.8778, 527.4651, 5.0); Checkpoints[cpPolice] = CreateDynamicCP(130.0626, 1130.8778, 527.4651, 1.5, g_StaticBuildings[BUILDING_POLICE][e_VirtualWorld], -1, -1, 10.0); //mdc CreateDynamic3DTextLabel("MDC",COLOR_GREY,132.1223,1129.2015,527.2257,1.0); CreateDynamicCP(132.1223, 1129.2015, 527.2257, 1.5,g_StaticBuildings[BUILDING_POLICE][e_VirtualWorld],-1,-1,1.0); // Bank label CreateDynamic3DTextLabel("Use /bank to open menu", COLOR_GREY, 196.8612, 1723.2732, 1231.4624, 20.0); // Hospital CreateDynamic3DTextLabel("Press H to exit hospital", COLOR_GREY, 2501.6003, -1706.2878, 2104.7358, 10.0); // Restaurant labels CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 373.0000, -181.9000, 1000.5688, 10.0); CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 373.0000, -184.9000, 1000.5688, 10.0); CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 373.0000, -187.9000, 1000.5688, 10.0); CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 373.0000, -190.9000, 1000.5688, 10.0); CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 376.1000, -189.1153, 1000.5688, 10.0); CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 376.1000, -186.6022, 1000.5688, 10.0); CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 376.1000, -184.1463, 1000.5688, 10.0); CreateDynamic3DTextLabel("Press H to sit down", COLOR_GREY, 376.1000, -181.7247, 1000.5688, 10.0); } #undef MAX_OBJECTS #define MAX_OBJECTS (80000) LoadObjects() { new tmpobjid, objects = 0; // Destroy the other objects first. for (new i = 0; i < MAX_OBJECTS; i ++) { if (IsValidObject(i)) DestroyObject(i); } #include "maps/school.map" #include "maps/court.map" #include "maps/bahamas.map" //WillowField tmpobjid = CreateDynamicObjectEx(19544,2451.455,-1886.743,12.543,0.000,0.000,90.900,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0); tmpobjid = CreateDynamicObjectEx(19544,2451.695,-1901.739,12.543,0.000,0.000,90.889,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0); tmpobjid = CreateDynamicObjectEx(19544,2451.935,-1916.735,12.543,0.000,0.000,90.900,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0); tmpobjid = CreateDynamicObjectEx(19544,2431.378,-1970.649,12.543,0.000,0.000,0.000,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0); tmpobjid = CreateDynamicObjectEx(19544,2446.378,-1970.648,12.543,0.000,0.000,0.000,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0); tmpobjid = CreateDynamicObjectEx(19544,2461.378,-1970.648,12.543,0.000,0.000,0.000,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 5404, "stormdra1_lae", "lasrmd4_sjm", 0); tmpobjid = CreateDynamicObjectEx(3661,2460.362,-1905.423,16.016,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(3651,2433.995,-1888.527,15.300,0.000,0.000,310.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(3651,2446.164,-1915.273,15.300,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(3651,2428.749,-1915.265,15.300,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.733,-1875.399,13.821,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.736,-1880.677,13.821,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.743,-1885.999,13.821,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.747,-1891.295,13.821,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.826,-1900.877,13.817,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2434.070,-1922.069,13.817,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2439.259,-1922.046,13.817,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2452.729,-1922.305,13.817,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1422,2425.087,-1879.756,12.954,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1422,2427.785,-1879.754,12.954,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1422,2430.483,-1879.756,12.954,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(655,2457.426,-1880.687,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(655,2436.995,-1918.267,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(655,2424.336,-1880.338,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(672,2471.572,-1888.925,14.270,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(688,2450.304,-1881.215,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(727,2446.353,-1892.524,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(770,2424.857,-1900.607,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(770,2464.594,-1882.541,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(631,2440.685,-1892.931,13.442,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1712,2436.830,-1895.993,12.543,0.000,0.000,40.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1712,2450.694,-1912.875,12.543,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1712,2451.281,-1910.301,12.543,0.000,0.000,40.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2821,2452.304,-1915.391,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2840,2454.464,-1914.855,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(926,2454.791,-1919.250,12.791,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(849,2439.883,-1921.037,12.843,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1440,2429.037,-1923.233,13.065,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1439,2423.314,-1911.681,12.546,0.000,0.000,270.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1369,2454.288,-1896.446,13.164,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2675,2453.497,-1918.357,12.607,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2675,2441.690,-1885.826,12.607,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2675,2439.747,-1917.211,12.607,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(947,2447.366,-1907.248,14.746,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1433,2452.222,-1912.177,12.722,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1670,2452.145,-1912.144,13.230,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1429,2454.208,-1913.202,13.746,0.000,0.000,230.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(941,2454.027,-1913.826,13.017,0.000,0.000,56.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1647,2454.941,-1890.692,12.784,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1741,2440.377,-1885.131,12.543,350.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1820,2440.643,-1883.598,12.609,350.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1765,2436.966,-1882.478,12.543,0.000,0.000,45.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1712,2438.312,-1885.292,12.543,0.000,0.000,130.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(18691,2440.944,-1883.432,10.142,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(18689,2440.606,-1883.272,10.977,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1946,2448.097,-1907.780,12.748,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1946,2452.089,-1919.083,12.748,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1946,2438.293,-1894.656,12.748,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(3588,2437.725,-1964.106,15.217,0.000,0.000,270.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(3651,2455.408,-1959.230,15.199,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2453.264,-1942.376,13.817,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.903,-1950.362,13.817,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.931,-1964.076,13.817,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.912,-1975.567,13.817,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.912,-1980.857,13.817,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.899,-1986.157,13.817,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.865,-1997.016,13.826,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2426.483,-1999.682,13.821,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2431.690,-1999.645,13.821,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2469.058,-1978.692,13.722,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2458.415,-1999.665,13.821,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2453.850,-1981.270,13.817,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(3655,2445.280,-1992.708,15.145,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(12957,2453.153,-1985.020,13.432,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(12957,2444.229,-1882.291,13.420,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1358,2456.635,-1967.371,13.746,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(703,2455.746,-1976.293,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(729,2425.461,-1996.676,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(770,2444.539,-1943.457,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(647,2426.565,-1944.443,13.975,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(698,2433.614,-1992.828,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(669,2453.215,-1943.494,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1712,2448.949,-1966.838,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1712,2451.657,-1969.112,12.543,0.000,0.000,240.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2031,2449.295,-1968.713,12.442,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2821,2445.509,-1966.418,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(928,2445.445,-1972.142,12.802,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(928,2444.783,-1972.275,12.802,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(928,2445.017,-1971.663,12.802,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(851,2451.382,-1973.362,12.855,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(851,2449.212,-1973.756,12.855,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(851,2450.468,-1972.761,12.855,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(3005,2442.060,-1949.951,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1355,2450.371,-1973.392,12.739,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(18689,2451.188,-1974.332,11.192,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2843,2450.043,-1971.779,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2423.889,-1945.113,13.817,0.000,0.000,90.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2447.957,-1942.395,13.817,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2442.698,-1942.391,13.821,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2430.990,-1942.345,13.821,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1412,2426.436,-1942.338,13.821,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2856,2428.429,-1975.350,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2859,2429.224,-1967.760,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2859,2428.520,-1968.489,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2859,2427.545,-1968.166,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2859,2428.375,-1967.541,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2859,2450.145,-1968.761,13.241,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2859,2442.457,-1949.905,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(2859,2442.180,-1948.855,12.543,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(3860,2441.641,-1943.937,13.715,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1526,2443.415,-1951.246,15.715,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1528,2443.415,-1951.284,15.727,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(874,2479.928,-1892.337,14.140,0.000,0.000,0.000,300.000,300.000); tmpobjid = CreateDynamicObjectEx(1712,2442.815,-1953.172,12.543,0.000,0.000,270.000,300.000,300.000); // Pay 'n' Spray Custom Map CreateDynamicObject(5532, 1779.065795, -2305.489501, 910.238525, 0.000000, 0.000000, 0.000000); CreateDynamicObject(3055, 1793.636230, -2306.422119, 903.954589, 0.000000, 0.000000, 270.000000); // Blocks for Pay 'n' Sprays, Bomb Shops and Tuning Shops CreateDynamicObject(3055,2071.4614250,-1831.1199950,13.6828150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(3055,1843.3538810,-1855.8150630,13.0935230,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(3055,1025.1224360,-1029.3433830,32.2767100,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,719.8192130,-462.4778740,16.3437040,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,-99.9452740,1111.4724120,16.6241970,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,-99.9452740,1111.4724120,21.6441910,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,-1420.7982170,2591.2302240,52.7928000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,-1420.7982170,2591.2302240,57.7727810,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,-2425.9394530,1028.2551260,47.4976840,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,-2425.9394530,1028.2551260,52.4776870,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,-1904.7259520,277.8039850,38.0199620,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,-1904.7259520,277.8039850,43.0199500,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,1968.2154540,2162.3403320,11.3503170,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(3055,2386.8173820,1043.4774160,10.5473860,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,488.7078240,-1735.2413330,11.6313780,0.0000000,0.0000000,170.0000000); // CreateDynamicObject(3055,2004.6600340,2303.5166010,10.8203120,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3055,2004.6600340,2317.9389640,10.8203120,0.0000000,0.0000000,0.0000000); // // Housing maps CreateDynamicObject(14748,1365.3616940,-2141.6516110,1051.5886230,0.0000000,0.0000000,270.0000000); // 1 CreateDynamicObject(1506,1364.5468750,-2146.7316890,1049.6186520,0.0000000,0.0000000,180.0000000); // 1 CreateDynamicObject(14750,1752.9875480,-1814.0000000,1005.8405150,0.0000000,0.0000000,0.0000000); // 2 CreateDynamicObject(1506,1750.4439690,-1823.3640130,999.3404540,0.0000000,0.0000000,180.0000000); // 2 CreateDynamicObject(14754,1284.7003170,-1132.0966790,982.9908440,0.0000000,0.0000000,0.0000000); // 3 CreateDynamicObject(1506,1282.7630610,-1141.2866210,979.0519400,0.0000000,0.0000000,180.0000000); // 3 CreateDynamicObject(14718,2005.2022700,-1701.8310540,1164.6922600,0.0000000,0.0000000,90.0000000); // 4 CreateDynamicObject(1506,2010.1152340,-1698.0543210,1164.7016600,0.0000000,0.0000000,-90.0000000); // 4 CreateDynamicObject(14713,1183.4338370,-422.9811400,1235.5091550,0.0000000,0.0000000,180.0000000); // 5 CreateDynamicObject(1506,1177.5120840,-418.1002500,1233.7343750,0.0000000,0.0000000,0.0000000); // 5 CreateDynamicObject(14712,2190.7031250,-1127.3596190,1129.3358150,0.0000000,0.0000000,270.0000000); // 6 CreateDynamicObject(1506,2183.2023920,-1131.0895990,1127.7854000,0.0000000,0.0000000,90.0000000); // 6 CreateDynamicObject(14700,1437.1691890,-1832.8457030,1314.0572500,0.0000000,0.0000000,270.0000000); // 7 CreateDynamicObject(1506,1433.0982660,-1833.5679930,1312.5968010,0.0000000,0.0000000,90.0000000); // 7 CreateDynamicObject(14707,911.3341060,-484.4251700,847.4813840,0.0000000,0.0000000,90.0000000); // 8 CreateDynamicObject(14710,836.9762570,-1017.0670770,800.4819940,0.0000000,0.0000000,180.0000000); // 9 CreateDynamicObject(1506,827.4833370,-1014.6065060,798.9961540,0.0000000,0.0000000,90.0000000); // 9 CreateDynamicObject(14711,1312.1368400,-175.0750730,1088.6756590,0.0000000,0.0000000,0.0000000); // 10 CreateDynamicObject(1506,1321.4031980,-166.8761740,1087.1315910,0.0000000,0.0000000,270.0000000); // 10 CreateDynamicObject(14706,1834.5144040,-1290.1430660,834.3630370,0.0000000,0.0000000,180.0000000); // 11 CreateDynamicObject(14701,2654.0761710,-1032.9993890,930.9969480,0.0000000,0.0000000,180.0000000); // 12 CreateDynamicObject(1506,2653.6835930,-1022.5356440,928.9262690,0.0000000,0.0000000,0.0000000); // 12 // Prison Interior CreateDynamicObject(19377,2604.6955600,-1479.2165500,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2594.2417000,-1479.1915300,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.7534200,-1479.2049600,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2573.2517100,-1479.2049600,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.7365700,-1488.8303200,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.7365700,-1498.4482400,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.7341300,-1508.0662800,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.7365700,-1517.6828600,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.7165500,-1527.3006600,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2594.2375500,-1488.8303200,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2594.2375500,-1498.4482400,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2594.2375500,-1508.0759300,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2594.2375500,-1517.7028800,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2594.2214400,-1527.3326400,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.7534200,-1488.8303200,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.7534200,-1498.4482400,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.7534200,-1508.0759300,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.7534200,-1517.7028800,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.7534200,-1527.3187300,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2573.2517100,-1488.8303200,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2573.2517100,-1498.4482400,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2573.2517100,-1508.0759300,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2573.2517100,-1517.7028800,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2573.2517100,-1527.3206800,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19457,2567.9824200,-1488.8475300,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2567.9824200,-1498.4682600,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2567.9824200,-1508.0865500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2567.9824200,-1517.7161900,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2567.9824200,-1527.3437500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19377,2573.2382800,-1536.9274900,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.7534200,-1536.9422600,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2594.2375500,-1536.9422600,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.7365700,-1536.9222400,-50.0000000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19457,2567.9824200,-1536.9768100,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2572.7351100,-1541.6134000,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2582.3513200,-1541.6134000,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2591.9802200,-1541.6134000,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2601.5991200,-1541.6134000,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2611.2236300,-1541.6134000,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2609.6467300,-1536.9768100,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2609.6467300,-1527.3437500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2609.6467300,-1517.7161900,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2609.6467300,-1508.0865500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2609.6467300,-1498.4682600,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2609.6467300,-1488.8475300,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19394,2577.5341800,-1485.6203600,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2578.3332500,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19411,2580.7294900,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19394,2582.3925800,-1487.1534400,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2588.8015100,-1487.1534400,-48.1570000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19365,2579.2011700,-1487.1534400,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19394,2595.2063000,-1487.1534400,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2601.6276900,-1487.1534400,-48.1570000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19457,2585.5222200,-1491.9006300,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2596.7343800,-1491.9605700,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2585.5361300,-1483.9497100,-48.1570000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19394,2579.1298800,-1483.9497100,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19394,2591.9558100,-1483.9497100,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2598.3610800,-1483.9497100,-48.1570000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19394,2607.9790000,-1483.9497100,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2604.7751500,-1483.9497100,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2606.3679200,-1491.8909900,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2596.7343800,-1501.5871600,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2583.9421400,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19411,2575.9389600,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2573.5485800,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19411,2571.1586900,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2568.7641600,-1491.9337200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19394,2588.7111800,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19394,2606.3679200,-1498.3006600,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2595.1235400,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19394,2593.5007300,-1498.2564700,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2591.9223600,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19394,2579.1084000,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2572.6975100,-1496.6490500,-48.1570000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19457,2593.5007300,-1504.6635700,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2606.3679200,-1504.7165500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2596.7343800,-1536.8515600,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19394,2596.7343800,-1511.1977500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2579.1049800,-1532.1666300,-48.1570000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19394,2572.6879900,-1532.1666300,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2593.5007300,-1514.2963900,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2593.5007300,-1523.9256600,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2580.1787100,-1537.0216100,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19394,2592.8403300,-1533.5225800,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2588.7324200,-1532.1666300,-48.1570000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19365,2569.4929200,-1532.1666300,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2593.5007300,-1530.3308100,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2592.8405800,-1536.7275400,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2592.8405800,-1539.9294400,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2606.3679200,-1514.3342300,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19394,2581.7158200,-1535.0980200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19394,2588.1276900,-1535.0980200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2591.3181200,-1535.1016800,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2586.5991200,-1539.9289600,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2596.7343800,-1527.2297400,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2596.7343800,-1517.6079100,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2596.7343800,-1508.0009800,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2601.6232900,-1538.2376700,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19394,2606.3679200,-1523.9216300,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14410,2603.1806600,-1540.2266800,-49.4211000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2606.3679200,-1533.5040300,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2601.4643600,-1522.8201900,-48.1570000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19365,2606.3679200,-1527.1081500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2606.3679200,-1520.7421900,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19377,2580.9077100,-1537.0592000,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19457,2567.9824200,-1527.3437500,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2567.9824200,-1517.7161900,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2567.9824200,-1508.0865500,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2567.9824200,-1498.4682600,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2579.1049800,-1532.1666300,-44.6656000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19457,2588.7324200,-1532.1666300,-44.6656000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19365,2569.4929200,-1532.1666300,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2569.5012200,-1496.6490500,-44.6656000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19365,2591.9223600,-1496.6490500,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2588.7211900,-1496.6490500,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2575.8852500,-1496.6490500,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2572.6774900,-1532.1666300,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2611.2236300,-1541.6134000,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2601.5991200,-1541.6134000,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2591.9802200,-1541.6134000,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2609.6467300,-1536.9768100,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2601.4633800,-1538.2376700,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2593.4606900,-1536.8286100,-44.6456000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19303,2588.8239700,-1518.8553500,-48.6639000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(14410,2574.2595200,-1498.6186500,-49.4211000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2572.7238800,-1504.1412400,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2585.5117200,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2582.3090800,-1496.6490500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14410,2591.6364700,-1525.8955100,-49.4211000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19457,2589.6608900,-1527.4282200,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2590.3869600,-1519.8120100,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2592.7836900,-1519.8120100,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2590.3869600,-1516.1462400,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2588.8239700,-1515.1954300,-48.6639000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19365,2590.3869600,-1512.4995100,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2588.8239700,-1511.5518800,-48.6639000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19365,2590.3869600,-1508.8383800,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2588.8239700,-1507.8676800,-48.6639000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19365,2590.3869600,-1505.1771200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2588.8239700,-1504.2251000,-48.6639000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19365,2590.3869600,-1501.5087900,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2592.7836900,-1516.1462400,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2592.7836900,-1508.8383800,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2592.7836900,-1512.4995100,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2592.7836900,-1505.1771200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2592.7836900,-1501.5087900,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2592.7836900,-1501.5087900,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2590.3869600,-1501.5087900,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2590.3869600,-1519.8120100,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2592.7836900,-1519.8120100,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2577.4909700,-1501.4527600,-48.6639000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2572.7238800,-1500.4847400,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2577.4909700,-1505.0980200,-48.6639000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2572.7238800,-1507.7819800,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2577.4909700,-1508.7457300,-48.6639000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2572.7238800,-1511.4622800,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2577.4909700,-1512.4062500,-48.6639000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2572.7238800,-1515.1044900,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2577.4909700,-1516.0721400,-48.6639000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2572.7238800,-1518.7784400,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2586.9597200,-1522.6436800,-48.6639000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19457,2585.9934100,-1527.4282200,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19303,2583.2768600,-1522.6436800,-48.6639000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19457,2582.3120100,-1527.4282200,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19303,2579.6264600,-1522.6436800,-48.6639000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19365,2584.9216300,-1535.0980200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2578.6672400,-1527.4282200,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2583.4438500,-1529.0803200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2589.8520500,-1529.0803200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2571.3576700,-1513.9243200,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2571.3576700,-1504.3065200,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1533,2596.3134800,-1541.4964600,-49.9154000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1537,2593.3034700,-1541.5025600,-49.9152000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19365,2593.4990200,-1530.6500200,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19273,2587.6838400,-1496.7015400,-48.5737000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2591.5705600,-1500.7053200,-49.5159000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2592.6901900,-1500.9884000,-49.9166000,0.0000000,0.0000000,-120.0000000); // CreateDynamicObject(2202,2568.6152300,-1485.0954600,-49.9186000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2602,2572.8051800,-1503.6680900,-49.3503000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2718,2583.2966300,-1496.8648700,-47.3391000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2713,2586.6293900,-1496.7429200,-47.0757900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19394,2604.7678200,-1530.6458700,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2596.7329100,-1501.5073200,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2593.5007300,-1500.7863800,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2593.5007300,-1496.6726100,-44.6456000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2588.8679200,-1503.1925000,-46.6081000,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(3278,-1502.8717000,-44.7334000,-44.7334000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2578.6672400,-1527.4278600,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2572.7238800,-1518.7784400,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2580.8847700,-1491.9346900,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2575.9939000,-1491.9556900,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2571.2666000,-1491.9328600,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2571.2666000,-1491.9328600,-48.0739000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1649,2575.9939000,-1491.9556900,-48.0739000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1649,2580.8847700,-1491.9346900,-48.0739000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19438,2578.3186000,-1492.6512500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2573.6147500,-1492.6512500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2597.5397900,-1530.6458700,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2602.3591300,-1530.6450200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19365,2599.9484900,-1530.6450200,-50.7967000,0.0000000,180.0000000,90.0000000); // CreateDynamicObject(19450,2572.7417000,-1487.1138900,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,2577.5210000,-1485.6270800,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2577.5210000,-1479.2235100,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2568.0485800,-1482.2811300,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2568.0485800,-1472.6855500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2572.7021500,-1474.3736600,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19376,2572.3090800,-1482.2480500,-49.9854000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19376,2572.2968800,-1472.6307400,-49.9854000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19376,2585.4975600,-1479.1419700,-49.9854000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19376,2582.8513200,-1479.1435500,-49.9860000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(1491,2581.6093800,-1487.1654100,-49.9291500,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1491,2578.3442400,-1483.9614300,-49.9291500,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1491,2591.1740700,-1483.9705800,-49.9291500,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1491,2607.1940900,-1483.9592300,-49.9291500,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1491,2606.3859900,-1499.0465100,-49.9291000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1491,2606.3671900,-1524.6527100,-49.9291000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1491,2596.7407200,-1511.9392100,-49.9291000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19394,2596.7343800,-1535.1143800,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2596.7343800,-1537.5069600,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2596.7150900,-1528.7030000,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19394,2596.7343800,-1522.2900400,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2596.7343800,-1515.8817100,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19394,2596.7343800,-1507.9480000,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2596.7363300,-1510.2811300,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1491,2596.7463400,-1508.7010500,-46.4122000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1491,2596.7426800,-1523.0285600,-46.3922000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1491,2596.7385300,-1535.8548600,-46.4122000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19383,2596.7424300,-1511.1893300,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19389,2607.9851100,-1483.9314000,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19451,2600.0488300,-1479.1715100,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19459,2568.0004900,-1487.0660400,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19413,2580.7287600,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19395,2582.3989300,-1487.1638200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19440,2578.3371600,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19445,2601.6257300,-1519.3200700,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19390,2596.7451200,-1522.2963900,-44.6456000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19453,2596.7451200,-1515.8820800,-44.6456000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19446,2601.5786100,-1503.6179200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19384,2606.3642600,-1498.3037100,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19453,2577.6452600,-1479.1212200,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19390,2579.1315900,-1483.9487300,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19453,2590.3767100,-1479.1684600,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19451,2590.7097200,-1479.0387000,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19451,2595.5939900,-1474.4404300,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19451,2604.8786600,-1476.2733200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19451,2609.6379400,-1479.1217000,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19453,2585.5358900,-1483.9487300,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19453,2586.3601100,-1474.3365500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19453,2576.7392600,-1474.3365500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19445,2606.3122600,-1514.4314000,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19445,2601.5261200,-1509.5289300,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19445,2596.7424300,-1517.6065700,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19451,2601.5695800,-1483.9314000,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19446,2606.3642600,-1491.8995400,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19446,2601.5065900,-1487.1972700,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19446,2596.8144500,-1492.0570100,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19446,2596.8139600,-1501.6905500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19446,2606.3642600,-1504.7126500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19460,2605.1777300,-1523.8084700,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19396,2596.7424300,-1507.9394500,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19441,2596.7522000,-1537.4886500,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19459,2575.9934100,-1487.1638200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19459,2566.3720700,-1487.1638200,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,2585.5217300,-1490.3896500,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19440,2584.7812500,-1487.1698000,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19440,2585.5217300,-1488.0059800,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19367,2583.9301800,-1491.9178500,-48.1570000,0.0000000,0.0000000,990.0000000); // CreateDynamicObject(19413,2575.9465300,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19440,2573.5397900,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19413,2571.1557600,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19440,2568.7524400,-1491.9178500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19440,2573.6147500,-1491.2341300,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19440,2578.3186000,-1491.2341300,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19453,2601.4990200,-1523.9281000,-44.6456000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19453,2604.4018600,-1519.2180200,-44.6456000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19453,2604.4072300,-1514.3641400,-44.6456000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19453,2601.5288100,-1509.5534700,-44.6456000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19460,2605.1835900,-1533.4110100,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19460,2601.5468800,-1538.2264400,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19460,2606.3493700,-1504.7169200,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19460,2601.6123000,-1499.8158000,-44.6456000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19460,2601.5661600,-1509.5328400,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19460,2596.7424300,-1501.5295400,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19460,2596.7522000,-1528.6767600,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19396,2596.7522000,-1535.0933800,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19460,2601.5805700,-1524.0114700,-44.6456000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19434,2596.7451200,-1510.2794200,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19389,2591.9553200,-1483.9314000,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19359,2595.1445300,-1483.9314000,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2583.4099100,-1522.6989700,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2588.9470200,-1522.6994600,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2577.4726600,-1505.2242400,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2589.6608900,-1527.4061300,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2589.6608900,-1524.2182600,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2585.9934100,-1527.4061300,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2585.9934100,-1524.2182600,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2582.3120100,-1524.2182600,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2582.3120100,-1527.4061300,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2575.9494600,-1500.4847400,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2572.7597700,-1500.4847400,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2572.7597700,-1504.1412400,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2575.9494600,-1504.1412400,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2572.7597700,-1507.7819800,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2575.9494600,-1507.7819800,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2572.7597700,-1511.4622800,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2575.9494600,-1511.4622800,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2572.7597700,-1515.1044900,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2575.9494600,-1515.1044900,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2583.4099100,-1522.6999500,-45.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2588.9470200,-1522.7002000,-45.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2577.4668000,-1514.0482200,-45.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2577.4628900,-1505.2241200,-45.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19377,2584.4929200,-1527.4469000,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.9729000,-1527.4469000,-46.3232000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.3952600,-1533.4248000,-46.3432000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.3762200,-1523.7962600,-46.3432000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.3762200,-1514.2016600,-46.3232000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.3762200,-1504.5864300,-46.3232000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2591.3874500,-1536.8941700,-46.3232000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19457,2611.0893600,-1538.2376700,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19377,2572.1840800,-1513.9453100,-46.3232000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2572.1840800,-1505.2279100,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19303,2571.1882300,-1503.1977500,-44.9858000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19303,2571.1882300,-1506.8543700,-44.9858000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19303,2571.1882300,-1510.4953600,-44.9858000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19303,2571.1882300,-1514.1390400,-44.9858000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19303,2571.1882300,-1517.8060300,-44.9858000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19457,2571.2272900,-1505.2242400,-41.9868000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2571.2275400,-1514.0482200,-41.9868000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19303,2581.3505900,-1528.9715600,-44.9858000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2583.4099100,-1528.9423800,-41.9868000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19303,2585.0329600,-1528.9715600,-44.9858000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19303,2588.6933600,-1528.9715600,-44.9858000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2588.9470200,-1528.9420200,-41.9868000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19438,2588.8664600,-1506.4571500,-46.6081000,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2588.8659700,-1509.7370600,-46.6081000,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2588.8654800,-1513.0338100,-46.6081000,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2588.8649900,-1516.3359400,-46.6081000,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2588.8654800,-1518.1480700,-46.6081000,90.0000000,0.0000000,180.0000000); // CreateDynamicObject(19438,2588.8664600,-1516.4140600,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2588.8813500,-1504.9034400,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2588.8664600,-1508.9973100,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2588.8701200,-1512.3344700,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2590.4292000,-1500.5133100,-49.9166000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1810,2586.6823700,-1497.3075000,-49.9166000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2602,2572.1464800,-1504.5993700,-49.3503000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2602,2573.2241200,-1511.0128200,-49.3503000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2602,2573.2226600,-1511.9268800,-49.3503000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2602,2572.7985800,-1515.5651900,-49.3503000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2602,2591.2797900,-1516.6300000,-49.3503000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2602,2591.7448700,-1512.9747300,-49.3503000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2602,2592.3857400,-1512.0372300,-49.3503000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2602,2591.8483900,-1505.6694300,-49.3503000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2602,2591.3774400,-1504.7100800,-49.3503000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2602,2582.7678200,-1527.4909700,-49.3503000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2602,2589.1862800,-1526.1425800,-49.3503000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2602,2581.8627900,-1526.6735800,-49.3503000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2602,2581.8606000,-1523.8981900,-45.6161000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2602,2585.5263700,-1524.7492700,-45.6161000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2602,2586.4472700,-1524.8424100,-45.6161000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2602,2576.5747100,-1518.3262900,-45.6161000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2602,2576.4353000,-1514.6389200,-45.6161000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2602,2575.4777800,-1508.2396200,-45.6161000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2602,2576.3315400,-1507.3170200,-45.6161000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2602,2576.1120600,-1503.6669900,-45.6161000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2718,2568.1943400,-1527.0000000,-47.3391000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2635,2569.7751500,-1530.2347400,-49.5159000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2569.9243200,-1529.1588100,-49.9166000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2569.3713400,-1531.2939500,-49.9166000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1810,2568.6267100,-1530.0194100,-49.9166000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1810,2570.7819800,-1530.4863300,-49.9166000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19273,2594.0835000,-1487.1978800,-48.5737000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19273,2594.1801800,-1487.1099900,-48.5737000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19273,2589.6960400,-1496.6012000,-48.5737000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19273,2573.7114300,-1532.0683600,-48.5737000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19273,2571.6086400,-1532.2152100,-48.5737000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19273,2593.4191900,-1497.2303500,-48.5737000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19273,2593.5554200,-1499.2341300,-48.5737000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19273,2577.5898400,-1486.5747100,-48.5737000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19273,2577.4421400,-1484.6507600,-48.5737000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2602,2587.0730000,-1539.9328600,-49.3503000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2602,2580.6462400,-1539.8723100,-49.3503000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19377,2598.6626000,-1533.3522900,-46.3227000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2598.6626000,-1523.7504900,-46.3227000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2598.6626000,-1514.1256100,-46.3227000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2598.6626000,-1504.5008500,-46.3227000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2598.6626000,-1494.8833000,-46.3227000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2593.6318400,-1506.6837200,-46.3232000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19377,2593.6318400,-1514.6474600,-46.3223000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(638,2568.4836400,-1477.8515600,-49.1983000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2245,2572.4194300,-1481.8790300,-48.6835000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2252,2572.4213900,-1485.1136500,-48.6835000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2253,2568.6240200,-1481.6076700,-48.7235000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19175,2585.8527800,-1474.4294400,-47.3535000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19174,2574.5610400,-1487.0332000,-47.6135000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19173,2570.7285200,-1474.4753400,-47.6028000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19172,2568.1372100,-1479.8991700,-47.6135000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(18070,2569.5061000,-1483.4416500,-49.4718600,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1806,2586.9096700,-1488.7535400,-49.9170400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2161,2596.9821800,-1492.3110400,-49.9170000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2162,2596.8776900,-1490.8690200,-48.7218000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2163,2606.3737800,-1499.9134500,-48.5220300,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2164,2602.2189900,-1487.3179900,-49.9170400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2165,2605.7746600,-1496.2883300,-49.9170000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2167,2596.9567900,-1493.4010000,-49.9170000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2169,2597.3354500,-1490.9279800,-49.9170000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2172,2597.4206500,-1500.9627700,-49.9170000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2174,2599.3772000,-1487.7653800,-49.9170400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2181,2603.7265600,-1502.9697300,-49.9170000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2182,2605.7280300,-1502.0267300,-49.9170000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2183,2601.3540000,-1497.8933100,-49.9170000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2184,2599.8276400,-1527.0439500,-46.2566000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2185,2602.9746100,-1531.8485100,-46.2366000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2193,2598.4145500,-1503.0168500,-49.9170000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2198,2601.6931200,-1503.0426000,-49.9170000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2199,2597.5620100,-1524.1832300,-46.2566000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2200,2604.1384300,-1487.3872100,-49.9170400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2204,2604.6284200,-1509.3776900,-46.2566000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2205,2597.3642600,-1502.9668000,-46.2566000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2206,2603.7165500,-1505.1082800,-46.2566000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2308,2597.3955100,-1488.7730700,-49.9170400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1714,2605.2094700,-1504.2469500,-46.2165000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1721,2569.6325700,-1474.6068100,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2611,2591.4240700,-1487.2963900,-48.2687000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2606,2591.7890600,-1496.3067600,-47.6941000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2604,2596.1335400,-1494.6384300,-49.1135000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2616,2574.7910200,-1518.9211400,-48.6063500,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1742,2598.4848600,-1538.2462200,-46.2566000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1671,2600.9877900,-1524.8969700,-45.7923500,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2894,2591.6357400,-1500.6967800,-49.0887000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1998,2586.0878900,-1488.7437700,-49.9187500,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1523,2600.1047400,-1479.1350100,-49.9295200,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2742,2600.3142100,-1482.1848100,-48.6037000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2741,2605.6401400,-1483.7628200,-48.4637000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1775,2579.5859400,-1474.8783000,-48.8251300,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(956,2580.9555700,-1474.8044400,-49.4968500,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1789,2588.8095700,-1486.7639200,-49.3512000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1363,2583.8710900,-1493.3021200,-49.0842100,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2596,2568.3549800,-1525.7310800,-47.3702000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1713,2584.9064900,-1481.5022000,-49.9045800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2000,2586.1176800,-1494.9056400,-49.9142000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2523,2601.5485800,-1483.3241000,-49.8146000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2525,2607.5393100,-1476.8806200,-49.9146000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14401,2587.7666000,-1469.1503900,-49.6243000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1363,2582.2939500,-1495.1070600,-49.0842100,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14455,2577.3176300,-1481.9769300,-48.3849900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14455,2590.1669900,-1481.4779100,-48.3849900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2611,2603.2045900,-1524.1508800,-44.8705900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14455,2604.0329600,-1509.7628200,-48.2850000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2165,2569.6740700,-1481.6840800,-49.7570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14455,2598.9716800,-1535.7523200,-48.2850000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14455,2598.6355000,-1523.7868700,-44.6818000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14455,2603.7163100,-1500.0107400,-44.7018000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1806,2600.4116200,-1488.7002000,-49.9170400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2010,2568.5241700,-1486.6673600,-49.9010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2010,2577.0793500,-1474.7706300,-49.9010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2946,2576.4492200,-1474.4408000,-49.9004000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2946,2573.2705100,-1474.4172400,-49.9004000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2614,2570.6667500,-1486.9841300,-47.6304000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2010,2568.4746100,-1474.8962400,-49.9010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1721,2570.2485400,-1474.6068100,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2570.8606000,-1474.6068100,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2571.4729000,-1474.6068100,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2583.8786600,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2585.2509800,-1488.8809800,-49.9059000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2570.8227500,-1490.8732900,-49.9170000,0.0000000,0.0000000,200.0000000); // CreateDynamicObject(14455,2596.4338400,-1517.4725300,-44.7218000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2606,2578.6794400,-1490.7675800,-43.6139000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2606,2597.1027800,-1505.0880100,-44.0526000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2819,2599.0327100,-1480.3831800,-49.2967000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2596,2585.7766100,-1483.5604200,-47.8843000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1806,2594.9531300,-1495.6949500,-49.9170000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1806,2580.7763700,-1490.7659900,-49.9170000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1806,2576.0896000,-1490.7462200,-49.9170000,0.0000000,0.0000000,170.0000000); // CreateDynamicObject(14401,2613.7136200,-1470.6944600,-49.6243000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14401,2596.1933600,-1474.9610600,-49.6243000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(14782,2591.1206100,-1478.6848100,-48.9104000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19359,2601.7041000,-1477.5789800,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1523,2601.7658700,-1479.1350100,-49.9295000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19359,2603.3667000,-1477.5789800,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1523,2603.4340800,-1479.1350100,-49.9295000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19359,2605.0510300,-1477.5789800,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1523,2605.1118200,-1479.1350100,-49.9295000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19359,2606.7207000,-1477.5789800,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1523,2606.7800300,-1479.1350100,-49.9295000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19359,2608.3811000,-1477.5789800,-48.1570000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19359,2609.9060100,-1479.1053500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19379,2605.3469200,-1479.1879900,-49.9138000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(2525,2605.9138200,-1476.8806200,-49.9146000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2525,2604.1682100,-1476.8806200,-49.9146000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2525,2602.5439500,-1476.8806200,-49.9146000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2525,2600.8977100,-1476.8806200,-49.9146000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2523,2603.1684600,-1483.3241000,-49.8146000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2523,2606.6323200,-1483.3241000,-49.8146000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2523,2604.8488800,-1483.3241000,-49.8146000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2741,2603.8586400,-1483.7628200,-48.4637000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2741,2600.6052200,-1483.7628200,-48.4637000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2741,2602.2099600,-1483.7628200,-48.4637000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2742,2600.3142100,-1480.6223100,-48.6037000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2742,2609.4304200,-1480.5280800,-48.6037000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2742,2609.4304200,-1482.3486300,-48.6037000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1789,2609.2482900,-1492.5957000,-49.3512000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1789,2609.2446300,-1510.8991700,-49.3512000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2185,2598.7150900,-1529.3413100,-46.2366000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2185,2598.6997100,-1531.7718500,-46.2366000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2185,2604.9284700,-1529.3912400,-46.2366000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2185,2604.9284700,-1534.4104000,-46.2366000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2180,2604.5805700,-1526.7252200,-46.2366000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2185,2604.9284700,-1531.8485100,-46.2366000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2185,2602.9746100,-1534.4104000,-46.2366000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2185,2602.9746100,-1529.3929400,-46.2366000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2844,2594.8034700,-1475.4740000,-49.2963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2843,2593.6518600,-1483.9461700,-49.2765000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2852,2599.4382300,-1483.1309800,-49.9160000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2855,2593.1616200,-1474.9517800,-49.9158000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1789,2593.9035600,-1529.3818400,-49.3512000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2635,2590.4077100,-1535.8212900,-49.5159000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2580.6840800,-1536.7833300,-49.9166000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1810,2588.7021500,-1541.0133100,-49.9166000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1810,2591.7172900,-1536.1645500,-49.9166000,0.0000000,0.0000000,-100.0000000); // CreateDynamicObject(1713,2600.7138700,-1508.9155300,-46.2867000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2010,2578.3303200,-1475.0185500,-49.9010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2010,2589.8076200,-1475.0542000,-49.9010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2010,2589.8147000,-1483.4173600,-49.9010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2010,2580.6652800,-1483.3403300,-49.9010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1721,2584.4821800,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2585.0856900,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2585.7009300,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2586.3110400,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2586.9326200,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2587.5380900,-1474.5422400,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2587.5380900,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2586.9326200,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2586.3110400,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2585.7009300,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2585.0856900,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2584.4821800,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2583.8786600,-1478.0679900,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2587.5380900,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1721,2586.9326200,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1721,2586.3110400,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1721,2585.7009300,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1721,2585.0856900,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1721,2584.4821800,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1721,2583.8786600,-1477.8079800,-49.9059000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1721,2577.8586400,-1477.0039100,-49.9059000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1721,2577.8586400,-1477.6159700,-49.9059000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1721,2577.8586400,-1478.2240000,-49.9059000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1721,2577.8586400,-1478.8396000,-49.9059000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1721,2577.8586400,-1479.4498300,-49.9059000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1721,2577.8586400,-1480.0535900,-49.9059000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1721,2577.8586400,-1480.6656500,-49.9059000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19173,2577.7417000,-1478.7891800,-47.3428000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1721,2568.2429200,-1488.4895000,-49.9059000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1721,2568.2580600,-1489.1009500,-49.9059000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1721,2572.5534700,-1487.3387500,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2573.1618700,-1487.3460700,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2573.7697800,-1487.3536400,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2577.8925800,-1487.3885500,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2578.4934100,-1487.3758500,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2579.0942400,-1487.3631600,-49.9059000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1721,2585.2509800,-1489.4814500,-49.9059000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1721,2585.2509800,-1490.0819100,-49.9059000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1810,2580.5219700,-1492.9643600,-49.9166000,0.0000000,0.0000000,190.0000000); // CreateDynamicObject(1810,2575.7763700,-1492.7585400,-49.9166000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1810,2570.6904300,-1492.8303200,-49.9166000,0.0000000,0.0000000,160.0000000); // CreateDynamicObject(1363,2569.6970200,-1494.9207800,-49.0842100,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2000,2586.1176800,-1494.3918500,-49.9142000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,2586.1176800,-1493.8665800,-49.9142000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,2605.4843800,-1518.7618400,-49.9142000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2000,2605.0043900,-1518.7506100,-49.9142000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2615,2588.2688000,-1487.2829600,-48.5264000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2615,2574.3835400,-1518.9327400,-48.4471000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2615,2601.3872100,-1538.0926500,-44.9337000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2184,2599.5585900,-1512.5191700,-46.2566000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2573.2365700,-1503.4947500,-46.2409000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1810,2585.3693800,-1526.9633800,-46.2409000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2165,2605.7790500,-1493.6700400,-49.9170000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2165,2605.8168900,-1491.1554000,-49.9170000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2183,2601.3535200,-1493.9669200,-49.9170000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2598.3850100,-1488.6002200,-49.9170400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1806,2600.8967300,-1502.0003700,-49.9170000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1806,2603.2055700,-1502.2303500,-49.9170000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1806,2598.5227100,-1502.0858200,-49.9170000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2598.1582000,-1500.1571000,-49.9170000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2605.0200200,-1502.1398900,-49.9170000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1806,2604.9179700,-1495.1814000,-49.9170000,0.0000000,0.0000000,190.0000000); // CreateDynamicObject(1806,2605.1430700,-1492.2131300,-49.9170000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1806,2605.4191900,-1490.0889900,-49.9170000,0.0000000,0.0000000,160.0000000); // CreateDynamicObject(1806,2601.6726100,-1497.3433800,-49.9170000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2602.0322300,-1491.7270500,-49.9170000,0.0000000,0.0000000,100.0000000); // CreateDynamicObject(1806,2601.8017600,-1495.7104500,-49.9170000,0.0000000,0.0000000,100.0000000); // CreateDynamicObject(1806,2601.7348600,-1493.2697800,-49.9170000,0.0000000,0.0000000,80.0000000); // CreateDynamicObject(1806,2599.1750500,-1491.6322000,-49.9170000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1806,2599.1113300,-1497.3595000,-49.9170000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1806,2599.2121600,-1493.3472900,-49.9170000,0.0000000,0.0000000,-80.0000000); // CreateDynamicObject(1806,2599.1191400,-1494.9537400,-49.9170000,0.0000000,0.0000000,-860.0000000); // CreateDynamicObject(2202,2597.3864700,-1497.2932100,-49.9186000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2202,2605.8469200,-1501.2639200,-46.2566000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2202,2604.2683100,-1537.7445100,-46.2566000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2635,2601.4875500,-1515.6564900,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2199,2599.0681200,-1509.6723600,-46.2566000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1742,2597.6015600,-1509.6586900,-46.2566000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2611,2602.5202600,-1509.7048300,-44.8705900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1714,2600.6855500,-1510.3908700,-46.2165000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2600.5988800,-1515.6569800,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2599.7106900,-1515.6579600,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2599.7124000,-1516.5822800,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2599.7180200,-1517.5152600,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2599.7138700,-1518.4399400,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2599.7111800,-1519.3651100,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2599.7085000,-1520.2902800,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2600.5883800,-1520.2825900,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2601.4772900,-1520.2891800,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2601.4797400,-1519.3676800,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2601.4755900,-1518.4410400,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2601.4755900,-1517.5152600,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2601.4755900,-1516.5822800,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2600.5988800,-1516.5822800,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2600.5988800,-1517.5152600,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2600.5988800,-1518.4399400,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2600.5988800,-1519.3651100,-45.8177000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1806,2601.1892100,-1521.7436500,-46.2379000,0.0000000,0.0000000,10.0000000); // CreateDynamicObject(1806,2604.1508800,-1530.7949200,-46.2379000,0.0000000,0.0000000,15.0000000); // CreateDynamicObject(1806,2604.0944800,-1535.7404800,-46.2379000,0.0000000,0.0000000,15.0000000); // CreateDynamicObject(1806,2603.9375000,-1533.2757600,-46.2379000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1806,2602.1814000,-1530.7065400,-46.2379000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1806,2601.8159200,-1535.8094500,-46.2379000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1806,2602.2214400,-1533.1846900,-46.2379000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1806,2598.3608400,-1530.7644000,-46.2379000,0.0000000,0.0000000,15.0000000); // CreateDynamicObject(1806,2597.8642600,-1533.2653800,-46.2379000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1806,2599.8586400,-1521.5395500,-46.2379000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1806,2602.9240700,-1518.6063200,-46.2379000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2602.8144500,-1516.0059800,-46.2379000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2602.8195800,-1517.3098100,-46.2379000,0.0000000,0.0000000,100.0000000); // CreateDynamicObject(1806,2602.7719700,-1520.1145000,-46.2379000,0.0000000,0.0000000,80.0000000); // CreateDynamicObject(1806,2598.4768100,-1517.2092300,-46.2379000,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(1806,2598.5957000,-1520.4061300,-46.2379000,0.0000000,0.0000000,290.0000000); // CreateDynamicObject(1806,2598.3249500,-1515.8558300,-46.2379000,0.0000000,0.0000000,260.0000000); // CreateDynamicObject(1806,2598.4614300,-1518.5614000,-46.2379000,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2894,2600.3703600,-1512.1228000,-45.4858000,0.0000000,0.0000000,-10.0000000); // CreateDynamicObject(2894,2603.7981000,-1504.2194800,-45.3255000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2894,2598.1040000,-1529.4681400,-45.4278100,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2894,2604.3789100,-1531.9533700,-45.4307300,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2894,2602.4685100,-1534.5537100,-45.4303300,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2001,2597.2937000,-1500.3668200,-46.2361300,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2001,2605.6723600,-1500.4362800,-46.2371300,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2001,2605.8635300,-1509.0075700,-46.2371900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2001,2597.5178200,-1509.2005600,-46.2385300,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2245,2597.2915000,-1501.5553000,-45.1054000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2252,2600.5856900,-1519.0944800,-45.1054000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2252,2600.6355000,-1516.6296400,-45.1054000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2253,2601.6511200,-1512.4017300,-45.1254000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2894,2600.8615700,-1526.7185100,-45.4858000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2008,2605.7390100,-1512.5202600,-49.9147000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2009,2598.3503400,-1518.6682100,-49.9138000,0.0000000,0.0000000,18090.0000000); // CreateDynamicObject(1806,2598.5595700,-1517.7027600,-49.9133000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2604.5385700,-1513.0424800,-49.9133000,0.0000000,0.0000000,-120.0000000); // CreateDynamicObject(1999,2597.3371600,-1516.6875000,-49.9133000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2598.6662600,-1515.9505600,-49.9133000,0.0000000,0.0000000,80.0000000); // CreateDynamicObject(1806,2601.0986300,-1529.5788600,-49.9133000,0.0000000,0.0000000,170.0000000); // CreateDynamicObject(1806,2599.1257300,-1529.5543200,-49.9133000,0.0000000,0.0000000,210.0000000); // CreateDynamicObject(2635,2599.4648400,-1532.5314900,-49.5330000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2600.3393600,-1532.5319800,-49.5330000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2599.4626500,-1533.4585000,-49.5330000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2600.3471700,-1533.4628900,-49.5330000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2601.2180200,-1533.4627700,-49.5330000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2635,2601.2282700,-1532.5290500,-49.5330000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2601.5039100,-1535.9614300,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2602.6416000,-1532.9386000,-49.9133000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1806,2597.9692400,-1532.9288300,-49.9133000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1808,2606.1430700,-1532.0273400,-49.9139000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2611,2606.2165500,-1534.0605500,-48.5011000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2615,2596.8742700,-1534.1274400,-48.2696900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2604,2598.7758800,-1523.3715800,-49.1603900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1742,2606.3889200,-1527.5459000,-49.9140000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2894,2601.3823200,-1533.0022000,-49.0992000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2245,2600.2897900,-1532.9880400,-48.9283000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1806,2599.8776900,-1524.6007100,-49.9133000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2008,2601.1918900,-1523.5106200,-49.9136900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1806,2602.0930200,-1524.6508800,-49.9133000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2289,2602.7368200,-1530.5147700,-48.1921800,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2287,2597.3271500,-1528.7041000,-48.4945000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19173,2606.2644000,-1505.4093000,-44.3331000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19174,2604.3193400,-1516.8465600,-44.2091000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19377,2570.4843800,-1536.9881600,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2609.0515100,-1495.0102500,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2588.2619600,-1491.9165000,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2577.7651400,-1491.9165000,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2567.3024900,-1491.8570600,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2609.0488300,-1485.3820800,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2609.0537100,-1475.8142100,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2598.5903300,-1485.2595200,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2598.6052200,-1475.7821000,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2588.2255900,-1482.3092000,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2577.7500000,-1482.2838100,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2567.3049300,-1482.2768600,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2588.3283700,-1472.8222700,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2577.9736300,-1472.7617200,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2567.4975600,-1472.7314500,-46.3228000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2573.0664100,-1501.3026100,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.5532200,-1501.2769800,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2593.9868200,-1501.2622100,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.4689900,-1501.2351100,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2573.2128900,-1510.9345700,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2573.1948200,-1520.4831500,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2573.1726100,-1530.0907000,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.7856400,-1539.1341600,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2594.3378900,-1539.1627200,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.6110800,-1527.3887900,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.5959500,-1517.8198200,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2583.5747100,-1508.3823200,-43.1410000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2594.0112300,-1510.6833500,-43.1410000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.4348100,-1510.6649200,-43.1410000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2593.8420400,-1520.2587900,-43.1410000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2593.9189500,-1529.7855200,-43.1410000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.2793000,-1520.2287600,-43.1410000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2604.2434100,-1529.5528600,-43.1410000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(16779,2573.0314900,-1480.8862300,-46.4124700,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16779,2583.5673800,-1479.2124000,-46.4126600,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16779,2602.0376000,-1504.9757100,-43.2316100,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16779,2600.7199700,-1519.1566200,-43.2310900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16779,2600.7434100,-1513.9146700,-43.2324000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2597.8898900,-1481.6718800,-48.0116200,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2607.0622600,-1479.5544400,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2587.0349100,-1483.6640600,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2606.7116700,-1483.4869400,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2594.3361800,-1494.3674300,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2590.1740700,-1494.0651900,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2602.6525900,-1530.0367400,-44.7783900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2602.6538100,-1536.2995600,-44.7784000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2594.7836900,-1517.2777100,-44.7784000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2594.7326700,-1510.1825000,-44.7784000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2576.1723600,-1487.5322300,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2580.8786600,-1487.4672900,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2580.8437500,-1492.3625500,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2576.2780800,-1492.7199700,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2578.0752000,-1539.4305400,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2585.7050800,-1536.4309100,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2591.8112800,-1536.1340300,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2587.9064900,-1531.5764200,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2596.6257300,-1538.7545200,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2596.8950200,-1525.8818400,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2596.8776900,-1517.5083000,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2596.8820800,-1508.7966300,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2602.6577100,-1516.5947300,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2603.0200200,-1529.1019300,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2603.2465800,-1535.4953600,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2602.7775900,-1501.3593800,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2602.9150400,-1494.9841300,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2609.9011200,-1492.4538600,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2597.3073700,-1483.5406500,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2597.3073700,-1483.5406500,-48.0116000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2610.0634800,-1504.1438000,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2609.7841800,-1530.5344200,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2609.7812500,-1516.3975800,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2603.1699200,-1542.3142100,-44.7784000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2596.6804200,-1535.3389900,-44.7784000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14438,2582.8979500,-1509.6868900,-41.5591400,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14680,2574.8679200,-1527.9997600,-44.8502000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2615,2591.4856000,-1501.6391600,-44.8764000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2604,2596.1655300,-1503.9307900,-45.4877000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19394,2595.0214800,-1495.9495800,-44.6456000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2596.7329100,-1495.0878900,-44.6456000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2579.0932600,-1496.6490500,-44.6656000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2595.2004400,-1493.5389400,-44.6456000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2588.9255400,-1490.4744900,-44.6456000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2593.6689500,-1492.0153800,-44.6456000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2579.2919900,-1490.4744900,-44.6456000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19457,2574.5461400,-1491.7663600,-44.6456000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3394,2591.6040000,-1491.1533200,-46.2364000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(3395,2578.1774900,-1496.0119600,-46.2363000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(3389,2575.1106000,-1492.3238500,-46.2384000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(3388,2575.1106000,-1491.2801500,-46.2384000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(3387,2575.1106000,-1493.3591300,-46.2384000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(3386,2575.1106000,-1494.4021000,-46.2384000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2606,2578.6794400,-1490.7675800,-44.0636000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2606,2578.6794400,-1490.7675800,-44.5139000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14391,2583.9582500,-1491.3961200,-45.2827000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1671,2585.7983400,-1493.3293500,-45.7924000,0.0000000,0.0000000,200.0000000); // CreateDynamicObject(1671,2583.0380900,-1493.3790300,-45.7924000,0.0000000,0.0000000,170.0000000); // CreateDynamicObject(1671,2591.2573200,-1491.8951400,-45.7924000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1671,2578.3745100,-1495.5946000,-45.7924000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2606,2589.8054200,-1496.3299600,-43.8191000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2606,2589.8054200,-1496.3299600,-44.2591000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19377,2592.1425800,-1491.7126500,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2581.7634300,-1491.6795700,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19377,2571.3378900,-1491.6276900,-43.1414000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(14680,2590.6557600,-1496.5316200,-44.7784000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14680,2583.7631800,-1496.5090300,-44.7784000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2593.4606900,-1523.8531500,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2593.4606900,-1528.1684600,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2593.4606900,-1526.5645800,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19438,2593.4599600,-1525.1040000,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19325,2583.9807100,-1496.6344000,-44.2213000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19325,2593.4733900,-1521.8675500,-43.0151300,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19325,2593.5068400,-1530.3964800,-42.9704400,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19325,2588.8864700,-1517.6917700,-42.5072000,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19325,2588.8864700,-1514.4276100,-42.5072000,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19325,2588.8864700,-1510.7181400,-42.5072000,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19325,2588.8864700,-1506.7559800,-42.5072000,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19325,2588.8864700,-1503.5051300,-42.5072000,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19325,2593.4528800,-1499.0168500,-43.1128800,90.0000000,0.0000000,0.0000000); // CreateDynamicObject(19457,2577.4826700,-1514.0682400,-44.6656000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1649,2600.2255900,-1530.6411100,-48.0739000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2886,2593.9692400,-1495.8798800,-44.9318000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2886,2596.1491700,-1496.0199000,-44.9318000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2576.2270500,-1515.7629400,-45.7963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2576.2270500,-1515.7629400,-44.8963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2576.2270500,-1512.1229200,-45.7963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2576.2270500,-1510.8228800,-45.7963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2576.2270500,-1504.8028600,-45.7963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2576.2270500,-1501.1429400,-45.7963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2576.2270500,-1512.1229200,-44.8963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2576.2270500,-1510.8228800,-44.8963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2576.2270500,-1504.8028600,-44.8963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2576.2270500,-1501.1429400,-44.8963000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19623,2590.8703600,-1491.5803200,-48.5721000,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(19611,2590.8898900,-1491.5876500,-50.2325000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19805,2585.5915500,-1491.6254900,-48.2970000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(2603,2572.6291500,-1501.1352500,-49.4719000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2572.6291500,-1501.1352500,-48.5719000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2572.6291500,-1507.1552700,-49.4719000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2572.6291500,-1508.4553200,-49.4719000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2572.6291500,-1514.4753400,-49.4719000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2572.6291500,-1518.1352500,-49.4719000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2572.6291500,-1507.1552700,-48.5719000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2572.6291500,-1508.4553200,-48.5719000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2572.6291500,-1514.4753400,-48.5719000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2572.6291500,-1518.1352500,-48.5719000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2579.3000500,-1527.8254400,-49.4719000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2585.3400900,-1527.8254400,-49.4719000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2586.6401400,-1527.8254400,-49.4719000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2579.3000500,-1527.8254400,-48.5719000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2585.3400900,-1527.8254400,-48.5719000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2586.6401400,-1527.8254400,-48.5719000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2592.2568400,-1519.1870100,-49.4720000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2592.2568400,-1515.5069600,-49.4720000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2592.2568400,-1509.5069600,-49.4720000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2592.2568400,-1508.2070300,-49.4720000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2592.2568400,-1502.1669900,-49.4720000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2592.2568400,-1519.1870100,-48.5720000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2592.2568400,-1515.5069600,-48.5720000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2592.2568400,-1509.5069600,-48.5720000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2592.2568400,-1508.2070300,-48.5720000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2592.2568400,-1502.1669900,-48.5720000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2603,2589.0036600,-1523.9759500,-45.7953000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2582.9436000,-1523.9759500,-45.7953000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2579.3037100,-1523.9759500,-45.7953000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2589.0036600,-1523.9759500,-44.8953000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2582.9436000,-1523.9759500,-44.8953000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2579.3037100,-1523.9759500,-44.8953000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2592.1731000,-1540.3665800,-49.4725000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2585.9340800,-1540.3540000,-49.4720000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2600.5983900,-1518.0709200,-49.4730000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2603,2603.5983900,-1518.0709200,-49.4730000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19903,2602.3610800,-1518.9064900,-49.9127000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19903,2599.4411600,-1518.9064900,-49.9127000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2635,2574.9751000,-1530.2347400,-49.5159000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2424,2574.1289100,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2423,2575.0581100,-1522.0683600,-50.0125000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2424,2573.1977500,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2424,2572.2678200,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2424,2571.3378900,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2424,2570.4082000,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2424,2569.4780300,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2424,2568.5481000,-1522.0684800,-50.0126000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2424,2575.1394000,-1521.0246600,-50.0126000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19916,2572.4670400,-1519.2710000,-49.9330000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19927,2570.9765600,-1519.2983400,-49.9120000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19923,2569.0290500,-1519.4265100,-49.9707000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19924,2569.0524900,-1519.4639900,-46.6631000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19584,2569.3942900,-1519.5428500,-48.8379000,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(1810,2573.9121100,-1530.0063500,-49.9166000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1810,2574.7519500,-1531.4062500,-49.9166000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1810,2575.2319300,-1529.1263400,-49.9166000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2576.0319800,-1530.4863300,-49.9166000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2635,2569.7751500,-1526.2827100,-49.5159000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2569.3713400,-1527.4459200,-49.9166000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1810,2570.7819800,-1526.4303000,-49.9166000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1810,2569.9243200,-1525.1027800,-49.9166000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2568.6267100,-1525.9633800,-49.9166000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2635,2574.9751000,-1526.2827100,-49.5159000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2575.2319300,-1525.1743200,-49.9166000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1810,2574.7519500,-1527.4543500,-49.9166000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1810,2573.9121100,-1526.0543200,-49.9166000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1810,2576.0319800,-1526.4303000,-49.9166000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1997,2605.2043500,-1515.3354500,-49.9202000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1997,2596.1901900,-1508.9066200,-49.9137000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(14842,2578.5271000,-1533.1315900,-48.2976000,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(19365,2578.4846200,-1535.1501500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14842,2578.5271000,-1536.1125500,-48.2976000,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(19365,2578.4846200,-1538.5042700,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14842,2578.5271000,-1539.4676500,-48.2976000,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(14680,2573.2351100,-1539.4305400,-48.0116000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19365,2569.6765100,-1538.5042700,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19365,2569.6765100,-1535.1501500,-48.1570000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14842,2569.6191400,-1537.5405300,-48.2976000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14842,2569.6191400,-1540.6505100,-48.2976000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14842,2569.6191400,-1534.1865200,-48.2976000,0.0000000,0.0000000,90.0000000); // // Prison Exterior CreateDynamicObject(8409,1051.6384300,-305.1238100,75.6597000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1006.7338300,-281.1673000,72.0763000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(987,1006.7509200,-293.1014100,72.0763000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(987,1006.7512800,-305.0224900,72.0763000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(987,1006.7883900,-316.9641100,72.0763000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(987,1006.7653800,-328.9065900,72.0763000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(987,1006.7589700,-340.8125900,72.0763000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(987,1006.7280900,-351.4917900,72.0763000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(987,1018.6674200,-281.2257100,72.0763000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(987,1030.6190200,-281.2063900,72.0763000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(987,1042.5738500,-281.2612900,72.0763000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(987,1054.5336900,-281.2466100,72.0763000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(987,1066.4863300,-281.2507000,72.0763000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(987,1078.4506800,-281.2804900,72.0763000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(987,1090.3525400,-281.2598000,72.0763000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(987,1102.2935800,-281.2839100,72.0763000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(987,1114.2308300,-281.2777100,72.0763000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(987,1126.1154800,-281.2632100,72.0763000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(987,1126.0527300,-293.1776100,72.0763000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(987,1126.0731200,-305.0831000,72.0763000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(987,1114.1897000,-324.9497100,72.0763000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1126.0559100,-328.9296000,72.0763000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(987,1126.0184300,-340.8891900,72.0763000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(987,1125.9973100,-352.8109100,72.0763000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(987,1125.9708300,-364.7377000,72.0763000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(987,1117.5273400,-373.1181900,72.0763000,0.0000000,0.0000000,45.0000000); // CreateDynamicObject(987,1105.6164600,-373.1328100,72.0763000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1093.6861600,-373.1198100,72.0763000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1081.7950400,-373.0947000,72.0763000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1070.0300300,-371.0546000,72.0763000,0.0000000,0.0000000,-10.0000000); // CreateDynamicObject(987,1058.2489000,-369.0120800,72.0763000,0.0000000,0.0000000,-10.0000000); // CreateDynamicObject(987,1046.5335700,-366.9283100,72.0763000,0.0000000,0.0000000,-10.0000000); // CreateDynamicObject(987,1034.6412400,-365.8577900,72.0763000,0.0000000,0.0000000,-5.0000000); // CreateDynamicObject(987,1006.4794900,-363.3366100,72.0763000,0.0000000,0.0000000,-5.0000000); // CreateDynamicObject(3279,1051.5618900,-359.9487900,72.7722000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(3279,1011.7888800,-358.8762200,72.7298100,0.0000000,0.0000000,87.1200000); // CreateDynamicObject(3279,1118.2645300,-365.7728600,72.7722000,0.0000000,0.0000000,-136.2002100); // CreateDynamicObject(3279,1011.4205300,-285.6388200,72.7124400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16093,1039.5813000,-359.9994500,72.8645100,0.0000000,0.0000000,-361.6197500); // CreateDynamicObject(19355,1043.5573700,-320.0099800,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1046.7154500,-320.0057700,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1049.8767100,-319.9982000,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1053.0660400,-319.9687800,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1056.2421900,-319.9711000,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1059.4404300,-319.9816900,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1062.6545400,-320.0116300,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1060.0958300,-290.2352000,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1056.9331100,-290.2487800,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1053.7752700,-290.2612900,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1050.1574700,-290.2242400,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1046.9608200,-290.2124000,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1043.7858900,-290.2101700,74.3098000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1622,1019.8917800,-320.5111400,78.6747000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1622,1038.0201400,-321.6866500,78.6747000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1622,1036.8071300,-321.4718600,78.6747000,0.0000000,0.0000000,30.0000000); // CreateDynamicObject(16101,1037.0231900,-321.1698300,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16101,1037.9133300,-321.2878400,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16101,1056.1444100,-321.2292200,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16101,1057.2806400,-321.1459400,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1622,1055.9282200,-321.4786400,78.6747000,0.0000000,0.0000000,30.0000000); // CreateDynamicObject(1622,1057.4071000,-321.4988700,78.6747000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(16101,1074.4205300,-324.6236600,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16101,1083.7751500,-324.7861900,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1622,1074.1602800,-324.8924900,78.6747000,0.0000000,0.0000000,30.0000000); // CreateDynamicObject(1622,1083.9221200,-325.0259100,78.6547000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(16101,1075.0775100,-324.6909200,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1622,1075.1510000,-325.0651900,78.6547000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(16101,1088.1776100,-321.3161000,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16101,1088.2324200,-320.5411100,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1622,1088.4893800,-321.4796100,78.6547000,0.0000000,0.0000000,135.0000000); // CreateDynamicObject(1622,1088.6467300,-320.3887300,78.6547000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(16101,1084.7561000,-309.4369200,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16101,1084.6909200,-301.2693800,72.9906800,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1622,1085.1862800,-309.2865300,78.6547000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1622,1085.0564000,-301.4556900,78.6547000,0.0000000,0.0000000,135.0000000); // CreateDynamicObject(16093,1045.8453400,-323.8139300,72.9379500,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16638,1045.9252900,-324.7939100,71.1780000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1671,1045.8418000,-321.6994000,73.5106000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1999,1047.3835400,-324.9479100,73.0670000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1999,1045.2065400,-324.9479100,73.0670000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1714,1046.5422400,-323.9178800,73.0669300,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1714,1044.4267600,-323.7554600,73.0669300,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19513,1045.2143600,-324.7684600,73.8791000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19513,1047.0964400,-324.7039800,73.8791000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2606,1045.8776900,-320.1041900,75.0676000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2606,1045.8728000,-320.1041900,74.6076000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1126.0813000,-317.0194100,72.0763000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(987,1082.4907200,-281.2186900,72.0763000,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(1508,1084.1590600,-306.0553600,74.4104000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19355,1085.2603800,-310.6680900,74.7081000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19355,1083.7463400,-309.1201200,74.7081000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1085.2489000,-313.8921500,74.7081000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19355,1085.0794700,-301.4071400,74.7081000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19355,1083.5406500,-302.9167500,74.7081000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19355,1083.5673800,-299.8870500,74.7081000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2181,1039.7152100,-361.1472800,72.9334800,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(18868,1039.8808600,-360.9388100,73.7275000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1714,1039.1252400,-359.7112400,73.0676700,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2961,1038.4023400,-361.5658900,73.9285000,180.0000000,0.0000000,0.0000000); // CreateDynamicObject(2961,1038.6230500,-361.5685100,73.9285000,180.0000000,0.0000000,0.0000000); // CreateDynamicObject(2629,1106.2559800,-321.0431800,72.9843000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2629,1097.1146200,-320.8481800,72.9843000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2628,1101.4129600,-321.0011600,72.9845000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2628,1093.1590600,-321.0201700,72.9845000,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2627,1088.3604700,-318.7762100,72.9858000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2627,1088.3114000,-316.6084600,72.9858000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2627,1088.3093300,-314.2240600,72.9858000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(946,1119.5811800,-301.8781400,75.1646000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1946,1117.3304400,-301.8545200,73.1657000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(8417,1101.5238000,-305.1337300,73.0240900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1102.2214400,-324.9497100,72.0763000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1090.2802700,-324.9497100,72.0763000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1078.3151900,-324.9497100,72.0763000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1066.3739000,-324.9497100,72.0763000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(987,1066.4185800,-313.0105900,72.0763000,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(946,1119.7354700,-310.8417100,75.1646000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(946,1119.5004900,-321.8526900,75.1646000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1946,1117.5816700,-310.8921500,73.1657000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1946,1117.3553500,-321.8556500,73.1657000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(16638,1039.6213400,-360.9595000,71.1045000,0.0000000,0.0000000,-361.6198100); // CreateDynamicObject(987,1028.6655300,-365.3374900,72.0763000,0.0000000,0.0000000,-5.0000000); // CreateDynamicObject(19444,1084.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1087.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1091.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1094.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1098.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1101.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1105.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1108.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1112.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1115.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1119.2685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1122.7685500,-282.0979900,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1125.3226300,-283.0463900,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-286.5463900,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-290.0454100,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-293.5404100,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-297.0354000,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-300.5304000,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-304.0253900,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-307.5203900,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-311.0154100,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-314.5104100,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-318.0054000,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1125.3226300,-321.5004000,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1124.3736600,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1120.8786600,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1117.3836700,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1113.8886700,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1110.3936800,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1106.8986800,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1103.4036900,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1099.9086900,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1096.4137000,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1092.9187000,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1089.4237100,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1085.9287100,-324.0541100,77.0468000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19444,1084.9783900,-321.5020100,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19444,1086.2164300,-321.5020100,77.0468000,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(970,1084.7116700,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1088.8817100,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1093.0517600,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1097.2218000,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1101.3918500,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1105.5617700,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1109.7318100,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1113.9018600,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1118.0719000,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1122.2419400,-282.8826900,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1214,1124.6804200,-282.7643100,76.9547000,0.0000000,0.0000000,43.2600000); // CreateDynamicObject(970,1124.5468800,-285.1465100,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(970,1124.5468800,-289.3165000,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(970,1124.5468800,-293.4865100,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(970,1124.5468800,-297.6564900,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(970,1124.5468800,-301.8265100,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(970,1124.5468800,-305.9964900,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(970,1124.5468800,-310.1665000,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(970,1124.5468800,-314.3364900,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(970,1124.5468800,-318.5065000,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(970,1124.5468800,-321.0795000,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(970,1122.3023700,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1214,1124.6374500,-323.4166600,76.9547000,0.0000000,0.0000000,43.2600000); // CreateDynamicObject(970,1118.1324500,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1113.9624000,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1109.7923600,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1105.6224400,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1101.4523900,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1097.2823500,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1093.1123000,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1089.0323500,-323.2746000,77.5987000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(970,1086.9610600,-321.1805100,77.5987000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19859,1084.1761500,-320.1037900,78.3887000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19859,1087.0178200,-320.1012000,78.3887000,0.0000000,0.0000000,180.0600000); // // Bank map CreateDynamicObject(19379,201.5671380,1722.7216790,1230.3764640,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,201.5671380,1712.2412100,1230.3764640,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,191.9769890,1712.2412100,1230.3764640,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,191.9769890,1722.7235100,1230.3764640,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19367,206.2837060,1726.3665770,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,206.2837060,1723.1772460,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,206.2837060,1719.9880370,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,206.2837060,1716.7983390,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,206.2837060,1713.6093750,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19379,201.5671380,1701.8016350,1230.3764640,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19367,198.2953940,1711.9692380,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19379,182.3769370,1722.7235100,1230.3764640,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,182.3772580,1712.2412100,1230.3764640,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19367,204.6253810,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,201.4453120,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,198.2652740,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(14877,195.4231260,1728.8912350,1228.2916250,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19367,191.8951720,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,188.7351220,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,185.5650930,1727.8085930,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,186.5137320,1723.1080320,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,186.5137320,1719.9381100,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,186.5137320,1716.8582760,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,186.5137320,1713.7176510,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,191.4236600,1710.4572750,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,191.4236600,1707.2773430,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,195.1654050,1711.9692380,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,189.1352690,1711.9692380,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,186.5137320,1726.2784420,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,204.6253810,1711.9692380,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,193.0653990,1705.7086180,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,185.9752960,1711.9692380,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19395,201.4829550,1711.9741210,1232.2232660,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19379,191.9769890,1701.7900390,1230.3764640,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19367,206.2836910,1710.3790280,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,196.2054290,1705.7086180,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,206.2837060,1707.2091060,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,204.6253810,1705.7086180,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,201.4453430,1705.7086180,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19379,201.5671380,1712.2412100,1233.7687980,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,192.0170280,1712.2412100,1233.7687980,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,182.4767600,1712.2412100,1233.7687980,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,182.4767600,1722.6208490,1233.7687980,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,191.8568720,1722.6208490,1233.7687980,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,201.4269400,1722.6208490,1233.7687980,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(1569,206.2316580,1720.7021480,1230.4020990,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(1569,206.2316580,1717.7319330,1230.4020990,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2435,200.9705200,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2434,201.8877250,1724.1008300,1230.4222410,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2435,202.0570980,1725.2229000,1230.4221190,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2435,202.0570980,1726.1228020,1230.4221190,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2435,200.0505370,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19325,199.0018610,1724.3676750,1234.2432860,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2435,199.1504970,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2435,198.2404630,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2435,197.3404380,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2435,196.4403530,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2435,195.5403280,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19325,192.3717650,1724.3676750,1234.2432860,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2435,194.6203000,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2435,193.7102810,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2435,192.7902670,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2435,191.8702230,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2435,190.9701840,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2435,190.0701590,1724.1082760,1230.4215080,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2434,188.9477080,1724.2709960,1230.4222410,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2435,188.9472350,1725.2020260,1230.4221190,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2435,188.9472350,1726.1018060,1230.4221190,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2198,200.7633360,1725.2581780,1230.5422360,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(2198,197.7233120,1725.2581780,1230.5422360,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(2198,194.8033290,1725.2581780,1230.5422360,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(2198,191.9735260,1725.2581780,1230.5422360,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(1671,200.1740570,1726.2779540,1230.9121090,0.0000000,0.0000000,1.0178450); // CreateDynamicObject(1671,197.1845390,1726.2244870,1230.9121090,0.0000000,0.0000000,1.0178450); // CreateDynamicObject(1671,194.2648920,1726.1738280,1230.9121090,0.0000000,0.0000000,1.0178450); // CreateDynamicObject(1671,191.3053740,1726.1213370,1230.9121090,0.0000000,0.0000000,1.0178450); // CreateDynamicObject(2773,201.2277670,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2773,199.6277610,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2773,197.7978210,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2773,195.9278710,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2773,193.8578640,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2773,191.8778990,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2773,189.8679650,1722.4520260,1230.9719230,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1704,205.6363370,1715.8189690,1230.4421380,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1704,205.6363370,1714.0794670,1230.4421380,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2346,204.1364130,1714.8452140,1230.4616690,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2852,204.1497340,1714.3817130,1230.9722900,0.0000000,0.0000000,-5.3020940); // CreateDynamicObject(19466,189.0863490,1725.4837640,1233.1520990,0.0000000,0.0000000,178.4300680); // CreateDynamicObject(19466,202.3514090,1725.4803460,1233.1520990,0.0000000,0.0000000,178.4300680); // CreateDynamicObject(19367,196.7736960,1732.6473380,1225.9726560,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,196.7437280,1729.4769280,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,196.7637320,1729.4769280,1229.0927730,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,196.7637320,1732.6473380,1228.9826660,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,196.7437280,1732.6470940,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,193.8237450,1732.6473380,1226.5524900,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,193.8337860,1732.6473380,1228.9826660,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19367,193.8436730,1732.6470940,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,193.8636770,1729.4769280,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,193.8537750,1729.4769280,1229.0927730,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,192.3452600,1727.8286130,1232.2023920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2634,194.9219360,1734.8510740,1227.8919670,0.0000000,0.0000000,-122.2431560); // CreateDynamicObject(19379,191.8568720,1733.0714110,1233.7686760,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19367,195.2351680,1734.1983640,1231.1102290,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19379,194.0768890,1737.5737300,1226.3156730,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19367,196.7537380,1735.8372800,1228.1414790,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,198.2437890,1739.0070800,1228.1414790,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,198.2438500,1742.1669920,1228.1414790,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,193.7637020,1735.8372800,1228.1414790,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,192.2252500,1737.3492430,1228.1414790,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19379,194.0768890,1747.9835200,1226.3156730,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,194.0768890,1749.4938960,1229.8155510,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,194.0768890,1739.5352780,1229.8155510,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19367,195.2351680,1734.1978750,1232.2523190,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,192.7851400,1734.2684320,1228.1414790,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,197.9752340,1734.2684320,1228.1414790,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,198.4252310,1737.3492430,1228.1414790,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,192.2637480,1739.0070800,1228.1414790,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,192.2637480,1742.1866450,1228.1414790,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,192.2637480,1745.3469230,1228.1414790,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,198.2438500,1745.2769770,1228.1414790,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,196.7151480,1746.7908930,1228.1414790,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,193.5450430,1746.7908930,1228.1414790,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,197.7419580,1738.3524160,1226.4010000,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7419890,1738.3524160,1227.7905270,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7523650,1739.3117670,1227.7905270,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7523040,1739.3123770,1226.3909910,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7524870,1740.2917480,1227.7905270,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7626340,1740.2924800,1226.4010000,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7527310,1741.2718500,1227.7905270,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7629390,1741.2717280,1226.4003900,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7731930,1742.2617180,1226.3903800,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7732840,1743.2514640,1226.3903800,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7734830,1744.2216790,1226.3903800,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7738340,1745.2022700,1226.3903800,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7630310,1742.2618400,1227.7902830,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7633660,1743.2514640,1227.7902830,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7634880,1744.2218010,1227.7905270,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.7638850,1745.1922600,1227.7904050,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,192.8427120,1738.3803710,1226.4010000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1739.3707270,1226.4010000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1740.3509520,1226.4010000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1741.3306880,1226.4010000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1742.3107910,1226.4010000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1743.2810050,1226.4010000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1744.2506100,1226.4010000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1745.2006830,1226.4010000,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1738.3803710,1227.8017570,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1739.3702390,1227.8017570,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1740.3503410,1227.8017570,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1741.3303220,1227.8017570,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1742.3101800,1227.8017570,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1743.2902830,1227.8017570,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1744.2401120,1227.8017570,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,192.8427120,1745.2005610,1227.8017570,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,193.3572080,1745.6674800,1226.4010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,194.3371580,1745.6774900,1226.4010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,195.3271020,1745.6676020,1226.4010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,196.2971030,1745.6674800,1226.4010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,197.2871550,1745.6574700,1226.4010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,197.2871550,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,196.2971640,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,195.3271630,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,194.3472130,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,193.3671720,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,192.3772270,1745.6674800,1226.4010000,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2007,192.3871300,1745.6574700,1227.7912590,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1550,193.2837820,1745.2631830,1226.7711180,0.0000000,0.0000000,1.4982850); // CreateDynamicObject(1550,193.9535060,1745.2802730,1226.7711180,0.0000000,0.0000000,1.4982850); // CreateDynamicObject(1550,193.3020470,1744.5629880,1226.7711180,0.0000000,0.0000000,1.4982850); // CreateDynamicObject(1550,193.9696040,1744.6596670,1226.7711180,0.0000000,0.0000000,1.4982850); // CreateDynamicObject(1550,194.6631770,1745.2980950,1226.7711180,0.0000000,0.0000000,1.4982850); // CreateDynamicObject(1550,194.6593620,1744.6776120,1226.7711180,0.0000000,0.0000000,1.4982850); // CreateDynamicObject(1550,195.3812250,1744.6164550,1226.7711180,0.0000000,0.0000000,1.4982850); // CreateDynamicObject(1550,195.3630060,1745.3171380,1226.7711180,-23.0999940,0.5000000,1.4982850); // CreateDynamicObject(19379,201.5671380,1701.8817130,1233.7687980,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19379,191.9868160,1701.8803710,1233.7687980,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19367,197.7936850,1707.2773430,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,200.6237790,1710.4472650,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19367,200.6237790,1707.3071280,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(2165,204.4668120,1708.0975340,1230.4715570,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1671,205.4828180,1708.5615230,1230.9018550,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1811,203.1873320,1708.6151120,1230.9218750,0.0000000,0.0000000,179.6782070); // CreateDynamicObject(1502,202.2334440,1711.9927970,1230.4715570,0.0000000,0.0000000,179.2057340); // CreateDynamicObject(2007,205.8848410,1710.1146240,1230.4616690,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,205.8848410,1709.1243890,1230.4616690,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,205.8848410,1708.1436760,1230.4616690,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,205.8848410,1707.1638180,1230.4616690,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2608,202.3477020,1705.9230950,1231.9626460,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2608,204.7976530,1705.9230950,1231.9626460,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1742,200.6117850,1707.8582760,1230.4420160,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1886,205.7757720,1712.4664300,1233.9833980,0.0000000,0.0000000,235.3553310); // CreateDynamicObject(1742,200.6117850,1709.2985830,1230.4420160,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1886,205.8392790,1727.3499750,1234.0135490,0.0000000,0.0000000,-28.9344120); // CreateDynamicObject(2961,206.1583090,1717.3371580,1232.1329340,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2690,200.2171630,1712.1156000,1231.7927240,0.0000000,0.0000000,178.7670890); // CreateDynamicObject(1713,199.2151940,1712.5573730,1230.4720450,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19395,192.2829430,1711.9741210,1232.2232660,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19367,197.7936850,1710.4378660,1232.2023920,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(1742,191.4119110,1709.2985830,1230.4420160,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1742,191.4018240,1707.8582760,1230.4420160,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2608,193.3277430,1705.9230950,1231.9626460,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2608,195.8977500,1705.9230950,1231.9626460,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2165,195.6570890,1708.0975340,1230.4715570,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2007,197.3048850,1710.1146240,1230.4616690,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.3048850,1709.1243890,1230.4616690,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.3048850,1708.1241450,1230.4616690,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2007,197.3048850,1707.1439200,1230.4616690,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(1671,196.6629180,1708.5615230,1230.9018550,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1811,194.5475460,1708.6640620,1230.9218750,0.0000000,0.0000000,179.6782070); // CreateDynamicObject(1502,193.0331260,1712.0292960,1230.4715570,0.0000000,0.0000000,179.2057340); // CreateDynamicObject(1704,196.2358850,1712.4985350,1230.4313960,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1704,194.6858060,1712.4985350,1230.4313960,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1742,204.1006310,1711.9713130,1230.4420160,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1704,190.4158320,1712.4985350,1230.4313960,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1704,188.5358120,1712.4985350,1230.4313960,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1713,187.0903470,1717.4448240,1230.4720450,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(963,186.5992430,1720.8250730,1231.4919430,90.0000000,0.0000000,90.0000000); // // Hospital map CreateDynamicObject(19379,2516.6882320,-1711.1119380,2103.6499020,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2516.6882320,-1701.5023190,2103.6499020,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2506.2287590,-1711.1119380,2103.6499020,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2506.2341300,-1701.5023190,2103.6499020,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19358,2501.1433100,-1698.3096920,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,2501.1433100,-1701.4598380,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,2501.1433100,-1707.7290030,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,2501.1433100,-1704.5781250,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,2501.1433100,-1710.8990470,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,2501.1433100,-1714.0694580,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1569,2501.1892080,-1707.7211910,2103.7248530,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1569,2501.1892080,-1704.7503660,2103.7248530,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19379,2506.2341300,-1701.5023190,2107.1826170,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2506.2341300,-1711.0618890,2107.1826170,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2516.6469720,-1711.0618890,2107.1826170,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2516.6469720,-1701.4824210,2107.1826170,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19358,2506.6308590,-1699.0745840,2105.4160150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,2503.4597160,-1699.0745840,2105.4160150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19450,2503.4250480,-1713.4067380,2105.4165030,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,2509.8281250,-1713.3765860,2105.4169920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19450,2517.7238760,-1720.6984860,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2512.0747070,-1718.2618400,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2517.7224120,-1701.4890130,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2517.7238760,-1711.1087640,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1704,2501.7597650,-1703.8385000,2103.6748040,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1704,2501.7597650,-1701.5883780,2103.6748040,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1704,2501.7597650,-1709.5299070,2103.6748040,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1704,2501.7597650,-1711.8608390,2103.6748040,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,2508.1528320,-1711.7366940,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19388,2508.1628410,-1700.7659910,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,2509.8408200,-1702.2832030,2105.4160150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,2509.8408200,-1710.2252190,2105.4160150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,2516.0520010,-1702.2851560,2105.4169920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,2513.0317380,-1702.2832030,2105.4160150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,2513.0317380,-1710.2226560,2105.4160150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,2516.0520010,-1710.2246090,2105.4169920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1671,2510.4946280,-1707.6137690,2104.1655270,0.0000000,0.0000000,-90.4175560); // CreateDynamicObject(1671,2510.4946280,-1706.2337640,2104.1655270,0.0000000,0.0000000,-90.4175560); // CreateDynamicObject(1671,2510.5239250,-1704.9739990,2104.1655270,0.0000000,0.0000000,-90.4175560); // CreateDynamicObject(2190,2508.8859860,-1704.7230220,2104.7358390,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2190,2508.8859860,-1705.9930410,2104.7358390,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(18070,2510.9077140,-1706.2512200,2104.2355950,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(2190,2508.8859860,-1707.4334710,2104.7358390,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2066,2517.0820310,-1703.4481200,2103.7231440,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2066,2517.0820310,-1702.8876950,2103.7231440,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2066,2517.0820310,-1704.0086660,2103.7231440,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2066,2517.0820310,-1704.5487060,2103.7231440,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2066,2517.0820310,-1709.7690420,2103.7231440,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2066,2517.0820310,-1709.2186270,2103.7231440,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2066,2517.0820310,-1708.6585690,2103.7231440,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2066,2517.0820310,-1708.0994870,2103.7231440,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2199,2517.3588860,-1706.1834710,2103.7451170,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(19388,2509.8281250,-1699.0742180,2105.4169920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,2500.2807610,-1699.0745840,2105.4160150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,2513.0202630,-1699.0745840,2105.4160150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,2516.0476070,-1699.0742180,2105.4169920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19379,2506.2341300,-1691.9427490,2103.6499020,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2516.6882320,-1691.9420160,2103.6499020,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19450,2517.7224120,-1691.9107660,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2501.1418450,-1691.9107660,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19379,2506.2341300,-1691.9223630,2107.1826170,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2516.6469720,-1691.9200430,2107.1826170,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19450,2505.9541010,-1687.1076660,2105.4165030,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19450,2515.5532220,-1687.1075430,2105.4165030,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19450,2512.0747070,-1694.2009270,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2506.2338860,-1694.2009270,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1800,2505.4172360,-1690.1856680,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2505.3771970,-1692.6860350,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2505.3471670,-1695.2764890,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2505.3571770,-1698.0367430,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2845,2508.1633300,-1697.2145990,2103.7348630,0.0000000,0.0000000,97.2192760); // CreateDynamicObject(2846,2508.0500480,-1694.8189690,2103.7648920,0.0000000,0.0000000,89.7618780); // CreateDynamicObject(2843,2508.0983880,-1692.1384270,2103.7448730,0.0000000,0.0000000,89.7618780); // CreateDynamicObject(2132,2509.2404780,-1687.6722410,2103.7248530,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2512.0747070,-1684.6018060,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2506.2338860,-1684.5908200,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1417,2509.7429190,-1687.4229730,2105.4062500,0.0000000,0.0000000,0.2321950); // CreateDynamicObject(2131,2507.0119620,-1687.5440670,2103.6647940,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1337,2511.3764640,-1687.7445060,2104.3754880,0.0000000,0.0000000,-0.2307840); // CreateDynamicObject(1800,2511.3286130,-1698.0367430,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2511.2888180,-1695.2764890,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2511.2783200,-1692.6860350,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2511.2880850,-1690.1856680,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2131,2512.8122550,-1687.5440670,2103.6647940,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2132,2515.0815420,-1687.6722410,2103.7248530,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1417,2515.5742180,-1687.3999020,2105.4062500,0.0000000,0.0000000,0.2321950); // CreateDynamicObject(1337,2517.2189940,-1687.7680660,2104.3754880,0.0000000,0.0000000,-0.2307840); // CreateDynamicObject(2845,2514.1508780,-1697.1512450,2103.7348630,0.0000000,0.0000000,97.2192760); // CreateDynamicObject(2846,2514.0202630,-1694.6436760,2103.7648920,0.0000000,0.0000000,89.7618780); // CreateDynamicObject(2843,2514.0402830,-1692.1029050,2103.7448730,0.0000000,0.0000000,89.7618780); // CreateDynamicObject(19358,2513.0317380,-1713.3729240,2105.4160150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,2516.1013180,-1713.3762200,2105.4169920,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19379,2506.2287590,-1720.7119140,2103.6499020,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2516.6469720,-1720.6434320,2107.1826170,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2506.2553710,-1720.6434320,2107.1826170,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19379,2516.6882320,-1720.7131340,2103.6499020,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19450,2512.0725090,-1727.8636470,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2501.1428220,-1720.4716790,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1800,2511.2084960,-1714.4691160,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2511.2084960,-1717.0183100,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2511.2084960,-1719.6589350,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2511.2084960,-1722.2691650,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(19450,2515.5532220,-1725.5183100,2105.4165030,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1337,2517.0710440,-1724.9570310,2104.3754880,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(2132,2515.9624020,-1724.9178460,2103.7248530,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(1417,2515.5300290,-1725.3859860,2105.4062500,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2131,2513.8022460,-1724.9726560,2103.6647940,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19450,2505.9526360,-1725.5183100,2105.4165030,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19450,2506.0388180,-1718.2618400,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19450,2506.0388180,-1727.8914790,2105.4165030,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1800,2505.1352530,-1714.4691160,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2505.1650390,-1717.0183100,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2505.1860350,-1719.6589350,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1800,2505.1965330,-1722.2691650,2103.6447750,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2131,2508.1398920,-1724.9726560,2103.6647940,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2132,2510.3410640,-1724.9178460,2103.7248530,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(1337,2511.4008780,-1724.9570310,2104.3754880,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(1417,2509.8701170,-1725.3859860,2105.4062500,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1523,2510.5837400,-1713.3168940,2103.6347650,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1523,2516.8366690,-1713.3669430,2103.6347650,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1523,2515.2414550,-1699.0969230,2103.6347650,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1523,2509.0278320,-1699.0969230,2103.6347650,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1523,2508.0637200,-1710.9403070,2103.6848140,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1523,2508.0732420,-1699.9881590,2103.6848140,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1704,2503.3427730,-1699.7674560,2103.6748040,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1704,2505.3842770,-1699.7705070,2103.6748040,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1704,2505.9648430,-1712.8300780,2103.6748040,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1704,2504.0146480,-1712.8300780,2103.6748040,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(2961,2501.2487790,-1704.4854730,2105.2763670,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2690,2504.8154290,-1699.2531730,2105.3662100,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1997,2511.5332030,-1721.0379630,2103.6948240,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1997,2511.5332030,-1718.0487060,2103.6948240,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1997,2517.1733390,-1695.1639400,2103.6948240,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1997,2517.1833490,-1691.7325430,2103.6948240,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1997,2511.4997550,-1695.1639400,2103.6948240,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1997,2511.4685050,-1691.7325430,2103.6948240,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1997,2517.1564940,-1718.0487060,2103.6948240,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1997,2517.0854490,-1721.0379630,2103.6948240,0.0000000,0.0000000,180.0000000); // //lannister LSPD interior //Objects//////////////////////////////////////////////////////////////////////////////////////////////////////// tmpobjid = CreateDynamicObject(19448,1625.552,1596.649,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1624.012,1587.018,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1620.512,1587.018,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1617.013,1587.018,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1627.503,1587.018,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1622.052,1596.649,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1618.553,1596.649,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1625.552,1577.385,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1622.052,1577.399,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1618.553,1577.390,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19459,1629.311,1587.010,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(948,1628.776,1589.037,9.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(948,1628.776,1584.995,9.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(2818,1628.014,1587.561,9.826,0.000,0.000,-90.199,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19352, "classy", "moustache01", 0x00000000); tmpobjid = CreateDynamicObject(19482,1629.309,1589.078,9.849,0.000,-90.199,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); SetDynamicObjectMaterialText(tmpobjid, 0, "WELCOME", 90, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000000, 0); tmpobjid = CreateDynamicObject(19482,1629.537,1589.359,9.838,0.000,-89.400,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); SetDynamicObjectMaterialText(tmpobjid, 0, "L.S.P.D", 80, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000000, 0); tmpobjid = CreateDynamicObject(19459,1627.371,1596.651,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1632.100,1591.890,11.546,0.000,0.000,-90.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1632.100,1582.118,11.546,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1627.371,1577.380,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1616.729,1577.380,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1616.729,1596.651,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1612.776,1591.872,11.546,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1612.794,1582.270,11.546,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1615.538,1586.981,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(19930,1617.362,1582.634,9.836,0.000,0.000,-89.799,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19930,1619.369,1582.551,9.836,0.000,0.000,90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19930,1616.181,1582.630,9.836,0.000,0.000,-89.799,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19925,1620.389,1582.559,9.836,0.000,0.000,90.200,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19929,1620.384,1584.419,9.836,0.000,0.000,179.999,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19929,1620.384,1587.269,9.836,0.000,0.000,179.999,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19930,1620.391,1590.468,9.836,0.000,0.000,179.699,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19930,1617.343,1591.526,9.836,0.000,0.000,89.600,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19925,1620.394,1591.488,9.836,0.000,0.000,179.799,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19930,1619.375,1591.493,9.836,0.000,0.000,-90.399,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19930,1620.386,1589.287,9.836,0.000,0.000,179.699,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19930,1616.172,1591.536,9.836,0.000,0.000,89.600,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 18641, "flashlight1", "metalblack1-2", 0x00000000); tmpobjid = CreateDynamicObject(19482,1620.748,1587.221,10.276,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 12853, "cunte_gas01", "postcards_law", 0x00000000); SetDynamicObjectMaterialText(tmpobjid, 0, "RECEPTION", 80, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000000, 1); tmpobjid = CreateDynamicObject(2048,1615.631,1585.605,11.836,0.000,0.000,90.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 12853, "cunte_gas01", "starspangban1_256", 0x00000000); tmpobjid = CreateDynamicObject(19482,1615.638,1587.467,11.686,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterialText(tmpobjid, 0, "Los Santos", 50, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000000, 0); tmpobjid = CreateDynamicObject(19482,1615.636,1589.422,11.166,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterialText(tmpobjid, 0, "Police Department", 80, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000000, 0); tmpobjid = CreateDynamicObject(2190,1620.731,1589.372,10.756,0.000,0.000,-89.199,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000); tmpobjid = CreateDynamicObject(2190,1620.678,1585.991,10.756,0.000,0.000,-90.699,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000); tmpobjid = CreateDynamicObject(19807,1620.348,1589.997,10.816,0.000,0.000,-80.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 19627, "wrench1", "wrench1", 0x00000000); tmpobjid = CreateDynamicObject(19807,1620.230,1586.650,10.816,0.000,0.000,-62.999,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 19627, "wrench1", "wrench1", 0x00000000); tmpobjid = CreateDynamicObject(19386,1618.416,1594.695,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1624.802,1594.694,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(2605,1625.155,1595.835,10.226,0.000,0.000,90.399,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 2, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 4, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 5, 19627, "wrench1", "wrench1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1626.651,1595.634,9.836,0.000,0.000,73.300,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1624.368,1596.795,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2605,1625.123,1600.368,10.226,0.000,0.000,90.399,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 2, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 4, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 5, 19627, "wrench1", "wrench1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1626.619,1600.417,9.836,0.000,0.000,98.200,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1624.312,1599.463,9.836,0.000,0.000,0.500,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1624.789,1601.515,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(2610,1626.910,1598.290,10.666,0.000,0.000,-90.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 19627, "wrench1", "wrench1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 2, 19513, "whitephone", "whitephone", 0x00000000); tmpobjid = CreateDynamicObject(2610,1626.907,1597.770,10.666,0.000,0.000,-90.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 19627, "wrench1", "wrench1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 2, 19513, "whitephone", "whitephone", 0x00000000); tmpobjid = CreateDynamicObject(2192,1626.505,1597.619,11.496,0.000,0.000,149.800,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000); tmpobjid = CreateDynamicObject(2191,1621.650,1600.496,9.816,0.000,0.000,90.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2191,1621.650,1595.235,9.816,0.000,0.000,90.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2191,1621.650,1597.865,9.816,0.000,0.000,90.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(19386,1618.429,1601.506,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19448,1618.553,1606.274,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1615.052,1606.274,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1611.560,1606.274,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19459,1619.514,1604.335,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1612.017,1601.500,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1620.080,1606.412,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19386,1614.806,1602.809,11.536,0.000,0.000,0.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1611.336,1599.464,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19448,1618.553,1615.906,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1615.071,1615.906,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1611.571,1615.906,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19459,1614.788,1609.212,11.566,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14842, "genintintpolicea", "copcell_bars", 0x00000000); tmpobjid = CreateDynamicObject(19459,1614.668,1609.222,14.016,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1614.839,1609.222,14.016,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1620.080,1616.041,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1610.066,1613.957,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1611.336,1609.084,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1615.721,1617.686,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1614.796,1618.712,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1613.545,1614.371,9.186,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1617.368,1619.272,8.136,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19448,1608.068,1606.274,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(948,1617.204,1593.346,9.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(948,1617.204,1580.754,9.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(948,1626.864,1594.157,9.766,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(1722,1626.040,1594.430,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1625.159,1594.452,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1624.278,1594.474,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1623.396,1594.526,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1622.526,1594.519,9.836,0.000,0.000,-179.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1627.152,1593.118,9.836,0.000,0.000,90.500,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1627.160,1592.208,9.836,0.000,0.000,88.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(19386,1622.492,1565.924,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1624.787,1579.303,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(948,1626.864,1579.776,9.786,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 3, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(1722,1627.152,1580.510,9.836,0.000,0.000,91.600,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1627.135,1581.480,9.836,0.000,0.000,88.900,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1625.909,1579.486,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1624.918,1579.491,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1623.968,1579.495,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1623.007,1579.500,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1622.077,1579.504,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(19329,1618.468,1594.598,12.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterialText(tmpobjid, 0, "PROCESSING", 40, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000500, 1); tmpobjid = CreateDynamicObject(19329,1618.468,1579.384,12.816,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterialText(tmpobjid, 0, "ADMINISTRATION", 40, "Calibri", 20, 0, 0xFFFFFFFF, 0x00000500, 1); tmpobjid = CreateDynamicObject(19448,1625.552,1567.752,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1622.062,1567.772,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1618.571,1567.772,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19459,1627.371,1567.751,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(2198,1626.772,1572.945,9.836,0.000,0.000,179.599,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 4, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2193,1620.447,1577.689,9.826,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 3, 19598, "sfbuilding1", "darkwood1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 5, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2172,1622.437,1578.680,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 6, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2172,1624.438,1578.680,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 6, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2172,1626.756,1577.541,9.836,0.000,0.000,-89.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 6, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2193,1621.461,1574.490,9.826,0.000,0.000,89.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 3, 19598, "sfbuilding1", "darkwood1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 5, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2198,1622.459,1573.452,9.836,0.000,0.000,-0.200,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 4, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2193,1620.428,1572.498,9.826,0.000,0.000,-1.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 3, 19598, "sfbuilding1", "darkwood1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 5, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2193,1621.414,1569.099,9.826,0.000,0.000,89.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 3, 19598, "sfbuilding1", "darkwood1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 5, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2172,1623.402,1569.076,9.836,0.000,0.000,179.600,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 6, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2172,1626.734,1569.051,9.836,0.000,0.000,179.600,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 6, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2198,1625.745,1571.911,9.836,0.000,0.000,-0.200,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 4, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2198,1623.472,1574.499,9.836,0.000,0.000,179.599,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 2, 19598, "sfbuilding1", "darkwood1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 4, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2610,1626.398,1578.479,10.666,0.000,0.000,-40.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19627, "wrench1", "wrench1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 19627, "wrench1", "wrench1", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 2, 19513, "whitephone", "whitephone", 0x00000000); tmpobjid = CreateDynamicObject(2356,1620.902,1575.061,9.836,0.000,0.000,73.300,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1620.963,1578.285,9.836,0.000,0.000,-5.999,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1622.887,1578.163,9.836,0.000,0.000,22.300,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1624.977,1578.283,9.836,0.000,0.000,-4.799,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1626.401,1577.069,9.836,0.000,0.000,-89.199,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1625.794,1573.754,9.836,0.000,0.000,-132.800,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1622.285,1575.149,9.836,0.000,0.000,-64.399,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1622.875,1572.973,9.836,0.000,0.000,-7.799,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1620.917,1572.658,9.836,0.000,0.000,-26.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1622.391,1569.541,9.836,0.000,0.000,-157.600,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1620.937,1569.509,9.836,0.000,0.000,84.400,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1626.176,1569.490,9.836,0.000,0.000,-157.600,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(2356,1627.028,1571.150,9.836,0.000,0.000,87.199,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(19329,1622.387,1574.422,10.706,0.000,0.000,79.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterialText(tmpobjid, 0, "Sgt. McDuffy", 120, "Ariel", 15, 1, 0xFFF70000, 0x00000000, 1); tmpobjid = CreateDynamicObject(19386,1616.734,1570.971,11.536,0.000,0.000,0.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19448,1615.078,1567.772,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1611.578,1567.772,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19459,1616.080,1565.915,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19411,1625.694,1565.912,11.536,0.000,0.000,89.999,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19448,1625.552,1558.119,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1622.069,1558.150,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19459,1620.389,1561.019,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1625.274,1558.970,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(19459,1627.371,1558.140,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19482,1622.308,1559.071,11.536,0.000,0.000,90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterialText(tmpobjid, 0, "To serve and protect.", 120, "Calibri", 30, 1, 0xFFFFFFFF, 0x00000000, 0); tmpobjid = CreateDynamicObject(19386,1618.390,1579.294,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1616.749,1564.550,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19448,1611.578,1577.403,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1615.078,1577.392,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1608.097,1577.403,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1608.085,1567.772,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19459,1611.844,1582.150,11.546,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(19386,1615.046,1572.649,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19411,1611.861,1572.653,11.536,0.000,0.000,89.999,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1610.217,1577.380,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(2491,1613.896,1580.439,9.336,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1610.680,1572.844,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1611.381,1572.841,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1612.072,1572.838,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1612.802,1572.835,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1613.523,1572.832,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1613.532,1574.583,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1613.539,1576.234,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1613.546,1577.985,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1612.906,1577.988,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1612.897,1576.237,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1612.889,1574.576,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1610.628,1574.585,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1610.635,1576.287,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1610.614,1578.058,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1611.245,1578.055,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1611.236,1576.285,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1611.227,1574.594,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1616.248,1577.972,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1616.241,1576.160,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1616.233,1574.529,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1616.225,1572.839,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(19482,1614.074,1582.040,11.726,0.000,0.000,-90.100,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterialText(tmpobjid, 0, "The Los Santos", 80, "Ariel", 20, 1, 0xFFFFFFFF, 0x00000000, 0); tmpobjid = CreateDynamicObject(19482,1615.134,1582.038,11.226,0.000,0.000,-90.100,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterialText(tmpobjid, 0, "Police Department", 80, "Ariel", 15, 1, 0xFFFFFFFF, 0x00000000, 0); tmpobjid = CreateDynamicObject(19482,1616.966,1582.055,11.506,0.000,0.000,-90.100,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterialText(tmpobjid, 0, "To serve and protect.", 90, "Calibri", 15, 1, 0xFFFFFFFF, 0x00000000, 0); tmpobjid = CreateDynamicObject(19448,1608.085,1558.152,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19448,1611.566,1558.152,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19386,1609.664,1565.898,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1613.378,1561.030,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19411,1608.140,1564.228,11.536,0.000,0.000,179.699,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1612.732,1557.728,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19411,1608.123,1561.017,11.536,0.000,0.000,179.699,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1608.116,1554.601,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19386,1606.464,1565.904,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19448,1604.584,1562.434,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19459,1604.765,1561.023,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1603.123,1557.711,11.536,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1610.667,1559.954,9.836,0.000,0.000,-0.299,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(1722,1610.714,1563.517,9.836,0.000,0.000,179.200,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 19598, "sfbuilding1", "darkwood1", 0x00000000); tmpobjid = CreateDynamicObject(19366,1615.212,1568.892,11.536,0.000,0.000,-72.500,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19366,1612.780,1567.158,11.536,0.000,0.000,-36.400,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19448,1604.604,1572.045,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19366,1604.830,1567.293,11.536,0.000,0.000,-0.800,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19386,1608.535,1572.660,11.536,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19366,1606.158,1573.982,11.536,0.000,0.000,31.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19459,1605.315,1580.111,11.546,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19448,1604.596,1581.674,9.750,0.000,90.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 7555, "bballcpark1", "ws_carparknew2", 0x00000000); tmpobjid = CreateDynamicObject(19366,1606.981,1582.113,11.536,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19366,1608.561,1582.138,11.536,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(2319,1609.808,1580.955,9.666,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(2319,1609.812,1578.495,9.666,0.000,0.000,-90.599,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(2319,1609.786,1576.065,9.666,0.000,0.000,-90.599,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(19366,1606.107,1571.332,11.536,0.000,0.000,-30.500,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(19366,1605.127,1569.215,11.536,0.000,0.000,-16.900,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 4552, "ammu_lan2", "sl_lavicdtwall1", 0x00000000); tmpobjid = CreateDynamicObject(1502,1607.785,1572.616,9.776,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(1502,1614.296,1572.616,9.776,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(1502,1605.714,1565.895,9.776,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(1502,1610.458,1565.929,9.776,0.000,0.000,179.400,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObject(1502,1623.281,1565.954,9.776,0.000,0.000,179.400,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); ///////////////////////////////////////////////////////////////////////////////////////////////////////////xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx /////////////////////////////////////////////////////////////////////////////////////////////////////////// tmpobjid = CreateDynamicObject(1495,1617.676,1594.660,9.776,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 1560, "7_11_door", "cj_sheetmetal2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 2, 1560, "7_11_door", "cj_sheetmetal2", 0x00000000); /////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////// tmpobjid = CreateDynamicObject(1495,1617.656,1579.298,9.776,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 1560, "7_11_door", "cj_sheetmetal2", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 2, 1560, "7_11_door", "cj_sheetmetal2", 0x00000000); /////////////////////////////////////////////////////////////////////////////////////////////////////////// tmpobjid = CreateDynamicObject(18981,1615.890,1569.804,13.777,0.000,90.000,-0.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "dam_terazzo", 0x00000000); tmpobjid = CreateDynamicObject(18981,1617.100,1594.782,13.777,0.000,90.000,-0.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "dam_terazzo", 0x00000000); tmpobjid = CreateDynamicObject(18981,1617.318,1619.781,13.777,0.000,90.000,-0.499,-1,-1,-1,300.000,300.000); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "dam_terazzo", 0x00000000); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// tmpobjid = CreateDynamicObject(1569,1629.274,1588.549,9.836,0.000,0.000,-90.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1569,1629.269,1585.548,9.836,0.000,0.000,89.900,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19808,1620.127,1585.654,10.776,0.000,0.000,-80.699,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19808,1620.117,1589.260,10.776,0.000,0.000,-80.699,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2604,1616.074,1584.160,10.406,0.000,0.000,90.400,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2186,1616.153,1589.718,9.806,0.000,0.000,90.600,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2616,1623.136,1594.826,11.336,0.000,0.000,-179.900,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2616,1623.365,1601.377,11.336,0.000,0.000,0.299,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(14842,1615.765,1616.525,11.686,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1800,1621.080,1604.883,9.616,0.000,0.000,89.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(10444,1610.187,1629.515,9.866,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1800,1621.080,1604.883,10.626,0.000,0.000,89.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1800,1621.077,1607.655,9.616,0.000,0.000,89.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1800,1621.076,1610.507,9.616,0.000,0.000,89.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1800,1621.078,1607.653,10.626,0.000,0.000,89.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1800,1621.076,1610.505,10.626,0.000,0.000,89.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1808,1627.009,1575.532,9.836,0.000,0.000,-88.699,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2737,1627.242,1573.973,11.466,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2611,1627.243,1570.377,11.256,0.000,0.000,-89.899,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19780,1627.265,1574.931,12.034,89.500,0.299,-89.599,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2186,1625.729,1567.991,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19521,1623.054,1574.356,10.674,-4.300,-87.300,22.300,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19942,1626.667,1572.056,10.726,0.000,0.000,-33.699,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11749,1626.506,1572.018,10.626,0.000,0.000,-28.400,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2342,1622.811,1574.601,10.736,0.000,0.000,-7.799,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2769,1623.455,1574.631,10.636,0.000,0.000,-35.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2206,1622.749,1561.922,9.796,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19999,1623.584,1560.328,9.816,0.000,0.000,176.800,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19893,1624.466,1561.958,10.716,0.000,0.000,-23.299,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2161,1626.761,1559.028,9.826,0.000,0.000,179.799,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(14532,1626.660,1565.211,10.806,0.000,0.000,132.900,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19466,1625.616,1565.983,11.786,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19466,1625.616,1565.833,11.786,0.000,0.000,-90.099,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19942,1622.924,1562.068,10.826,0.000,0.000,26.399,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19807,1622.862,1561.863,10.776,0.000,0.000,30.500,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2267,1623.834,1559.088,11.746,0.000,0.000,179.800,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2258,1620.486,1561.208,11.926,0.000,0.000,89.799,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2259,1620.947,1563.758,11.106,0.000,0.000,90.500,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19167,1623.443,1561.771,10.736,0.000,0.000,-28.100,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1727,1624.956,1565.217,9.796,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1727,1623.745,1565.217,9.796,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19466,1611.762,1572.605,11.596,0.000,0.000,-90.599,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19466,1611.764,1572.725,11.596,0.000,0.000,-90.599,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19466,1608.036,1561.041,11.596,0.000,0.000,179.600,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19466,1608.059,1564.281,11.596,0.000,0.000,179.600,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2616,1608.253,1561.232,11.476,0.000,0.000,89.900,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2616,1608.279,1564.444,11.476,0.000,0.000,89.800,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(1963,1610.729,1561.718,10.216,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(2607,1606.352,1558.243,10.196,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19805,1604.819,1559.942,11.556,0.000,0.000,90.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(19805,1604.819,1563.511,11.556,0.000,0.000,90.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1606.303,1581.710,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1605.737,1580.427,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1606.974,1581.710,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1607.654,1581.710,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1608.335,1581.710,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1608.995,1581.710,9.836,0.000,0.000,0.000,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1605.735,1581.107,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1605.739,1579.756,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1605.741,1579.095,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1605.744,1578.425,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1605.746,1577.744,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1605.748,1577.064,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1605.751,1576.393,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(11729,1605.753,1575.713,9.836,0.000,0.000,90.199,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(18757,1607.008,1569.159,11.736,0.000,0.000,-30.600,-1,-1,-1,300.000,300.000); tmpobjid = CreateDynamicObject(18756,1607.218,1569.644,11.736,0.000,0.000,-16.799,-1,-1,-1,300.000,300.000); // quvin's shitty LSPD map CreateDynamicObject(19375,-55.4991000,-859.6187700,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-55.4991000,-869.2407800,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-65.9854000,-869.2407800,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-65.9854000,-859.6187700,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-65.9854000,-850.0120800,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-55.4991000,-850.0120800,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19358,-50.4067000,-862.6350700,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19388,-50.4067000,-859.4309100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-50.4067000,-856.2363300,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-52.0865000,-854.7153900,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-52.0865000,-864.1629000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-53.7159000,-859.4309100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19404,-53.7159000,-862.6350700,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19404,-53.7159000,-856.2363300,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-53.7159000,-853.0357100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-53.7159000,-865.8270900,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19404,-55.3771400,-867.3451500,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-55.3795000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-58.5742000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-58.5748000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-61.7580000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-60.1388700,-853.1887800,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19404,-60.1389000,-856.3840900,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19404,-60.1389000,-859.5734300,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19404,-60.1389000,-862.7564100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-61.7793000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-61.7783400,-864.2678800,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-61.6251000,-865.8040200,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19375,-55.4991000,-840.3895300,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-65.9854000,-840.3895300,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19358,-55.5029000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-61.8013000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-53.7154800,-849.8743900,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-53.7155000,-846.7511000,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19388,-63.4032000,-849.8555900,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-63.4032000,-846.7036100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19388,-64.9464000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-64.9464000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-58.6595000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-66.5758000,-846.7036100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-66.5758000,-849.9157100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-66.5758000,-853.1630900,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19388,-64.8959000,-854.6749300,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-61.7742000,-854.6749300,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-66.5758000,-856.3463700,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-66.5758000,-862.7531100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-64.9721000,-864.2678800,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-68.1711000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-71.3646000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-72.8805000,-853.1472200,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19375,-76.4492000,-850.0120800,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19358,-64.9721000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-66.5758000,-868.8665200,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-66.5758000,-872.0509000,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-65.0581000,-873.7241200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-61.8742000,-873.7241200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-58.6941000,-873.7241200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-55.4891000,-873.7241200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-52.3060000,-873.7241200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-53.7159000,-868.9809000,1036.7172900,0.0000000,0.0000000,0.0600000); // CreateDynamicObject(19358,-53.7159000,-872.1502100,1036.7172900,0.0000000,0.0000000,0.0600000); // CreateDynamicObject(19358,-53.7155000,-843.6253100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-53.7155000,-840.4467200,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-55.3590000,-838.9138200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-58.5471000,-838.9138200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-66.5758000,-843.6428200,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-66.5758000,-840.4404300,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-61.7472000,-838.9138200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-64.9317000,-838.9138200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-68.2264000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-68.2264000,-838.9138200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-69.8834000,-840.5034200,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-69.8834000,-843.6851200,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19375,-76.4492000,-869.2407800,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-76.4492000,-859.6187700,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19388,-70.0828000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-68.5665000,-870.6110800,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19431,-68.5665000,-868.2218000,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-70.1980100,-872.1177400,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19375,-65.9854000,-878.8668200,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-76.4492000,-878.8668200,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-55.4991000,-878.8668200,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19388,-68.2204000,-864.2678800,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-72.8805000,-856.3516800,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19388,-72.8805000,-859.5463900,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-72.8805000,-862.7338900,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-71.3661000,-864.2678800,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-76.3091700,-853.1917100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-77.8276000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-80.9757000,-851.5246000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19375,-86.9047000,-850.0120800,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-86.9047000,-859.6187700,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19358,-82.4969000,-853.1989100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-82.4969000,-856.3911100,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-82.4969000,-859.5875200,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-76.3092000,-856.3828700,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-76.3092000,-859.5571900,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-78.4213600,-849.8753700,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-82.4969000,-849.8900800,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-81.1198000,-848.2882100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-76.3092000,-862.7381000,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-82.4969000,-862.7334000,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-77.9849000,-864.2548800,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-81.1514000,-864.2548800,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-77.8952900,-860.7139900,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-81.0266000,-860.7139900,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-73.2722000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-74.7944900,-868.9923700,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19388,-76.4556000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-74.7945000,-872.1652800,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-76.4403500,-873.6803600,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-79.6019000,-873.6804200,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19388,-82.7388000,-865.7885700,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-82.7388000,-868.9622800,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19375,-86.9047000,-869.2407800,1034.8949000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19358,-81.9922900,-871.9318200,1036.7172900,0.0000000,0.0000000,28.1999200); // CreateDynamicObject(19358,-80.4896900,-874.7400500,1036.7172900,0.0000000,0.0000000,28.1999200); // CreateDynamicObject(19358,-73.1990000,-872.1176800,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-79.6219000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19431,-68.5665000,-873.0000000,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19388,-67.5522000,-873.8595000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-70.6959000,-873.8595000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-73.8556000,-873.8595000,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-65.8972000,-875.4549000,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-75.5093000,-875.4549000,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-75.5052000,-878.6154800,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-65.8972000,-878.6143800,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-67.5091000,-880.2332800,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-70.6868000,-880.2332800,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-73.8646200,-880.2333400,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-52.3525000,-845.1937900,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-71.5768000,-848.2882100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-69.8834000,-846.7659300,1036.7172900,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19358,-74.7497000,-848.2882100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-77.9523000,-848.2882100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19358,-82.8037000,-867.3452100,1036.7172900,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1566,-50.3711700,-860.2108800,1036.1434300,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19375,-55.4991000,-840.3895300,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-55.4991000,-850.0120800,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-55.4991000,-859.6187700,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-55.4991000,-869.2407800,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-65.9854000,-869.2407800,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-65.9854000,-878.8668200,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-76.4492000,-878.8668200,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-76.4492000,-869.2407800,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-76.4492000,-859.6187700,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-65.9854000,-859.6187700,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-86.9047000,-859.6187700,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-86.9047000,-869.2407800,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-65.9854000,-850.0120800,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-76.4492000,-850.0120800,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-65.9854000,-840.3895300,1038.4967000,0.0000000,90.0000000,0.0000000); // CreateDynamicObject(19375,-86.9047000,-850.0120800,1038.4967000,0.0000000,90.0000000,0.0000000); // // Apartment complexes CreateDynamicObject(19456,1286.8387450,-1970.9818110,1858.3143310,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19456,1286.8387450,-1961.3817130,1858.3143310,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19378,1291.5527340,-1961.8082270,1856.5080560,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19378,1291.5527340,-1972.3103020,1856.5080560,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19456,1296.2694090,-1955.4439690,1858.3243400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19456,1296.2694090,-1965.0627440,1858.3243400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19456,1291.4799800,-1956.6035150,1858.3143310,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1281.8898920,-1956.6035150,1858.3143310,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19377,1291.3582760,-1955.4737540,1859.7727050,0.0000000,90.0000000,180.1341700); // CreateDynamicObject(19377,1291.3815910,-1965.0534660,1859.7727050,0.0000000,90.0000000,180.1341700); // CreateDynamicObject(1569,1290.0749510,-1956.6640620,1856.5233150,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1569,1293.0756830,-1956.6530760,1856.5233150,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(14596,1293.5512690,-1970.9888910,1867.2731930,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(19456,1285.1213370,-1969.8734130,1858.3143310,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1297.7989500,-1969.8446040,1858.3143310,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1300,1287.7456050,-1957.3218990,1856.9833980,0.0000000,0.0000000,-1.8891780); // CreateDynamicObject(2000,1286.9505610,-1959.9287100,1857.5635980,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,1286.9505610,-1960.4095450,1857.5635980,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,1286.9505610,-1960.8896480,1857.5635980,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,1286.9505610,-1961.3704830,1857.5635980,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,1286.9505610,-1961.8511960,1857.5635980,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,1286.9505610,-1962.3305660,1857.5635980,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,1286.9505610,-1962.8105460,1857.5635980,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,1286.9505610,-1963.2911370,1857.5635980,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,1286.9505610,-1963.7708740,1857.5635980,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(2000,1286.9505610,-1964.2510980,1857.5635980,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1756,1295.7011710,-1958.6499020,1856.5433340,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(1756,1295.7011710,-1962.0902090,1856.5433340,0.0000000,0.0000000,-90.0000000); // CreateDynamicObject(2289,1296.1312250,-1961.2714840,1858.6140130,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(1738,1296.0211180,-1965.7048330,1857.1837150,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1767,1287.3675530,-1968.8149410,1856.6032710,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1767,1287.3675530,-1967.0848380,1856.6032710,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(1209,1295.8861080,-1967.5371090,1856.5839840,0.0000000,0.0000000,270.0000000); // CreateDynamicObject(1775,1296.0007320,-1968.8223870,1857.6740720,0.0000000,0.0000000,271.9678340); // CreateDynamicObject(19456,1275.0395500,-1964.4108880,1864.0137930,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19378,1282.3737790,-1968.8480220,1862.3002920,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19456,1284.6390380,-1970.1315910,1864.0137930,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1287.1677240,-1973.1013180,1864.0137930,0.0000000,0.0000000,179.9999840); // CreateDynamicObject(19456,1287.1677240,-1961.4114990,1864.0137930,0.0000000,0.0000000,179.9999840); // CreateDynamicObject(19378,1272.7440180,-1968.8480220,1862.3002920,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19456,1284.6290280,-1964.4108880,1864.0137930,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19377,1283.0627440,-1966.0638420,1865.7432860,0.0000000,90.0000000,180.1341700); // CreateDynamicObject(19377,1272.5823970,-1966.0887450,1865.7432860,0.0000000,90.0000000,180.1341700); // CreateDynamicObject(19456,1275.0781250,-1970.1315910,1864.0137930,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1265.4680170,-1970.1315910,1864.0137930,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1265.4298090,-1964.4108880,1864.0137930,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19378,1263.1448970,-1968.8480220,1862.3002920,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19377,1262.1016840,-1966.1123040,1865.7432860,0.0000000,90.0000000,180.1341700); // CreateDynamicObject(1555,1283.5422360,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1278.7216790,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1274.6210930,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1270.0102530,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1265.3599850,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1261.6092520,-1970.1070550,1862.3760980,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1285.1723630,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1280.1916500,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1276.0716550,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1271.6309810,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1266.9803460,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1263.1999510,-1964.4666740,1862.3760980,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(19456,1255.8470450,-1970.1315910,1864.0137930,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1255.8470450,-1964.4204100,1864.0137930,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1259.6102290,-1968.6601560,1864.0137930,0.0000000,0.0000000,179.9999840); // CreateDynamicObject(2949,1259.7264400,-1967.9449460,1862.3663330,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(19456,1287.1677240,-1973.1013180,1869.8757320,0.0000000,0.0000000,179.9999840); // CreateDynamicObject(19378,1282.3737790,-1968.8480220,1868.1317130,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19456,1287.1677240,-1961.3811030,1869.8757320,0.0000000,0.0000000,179.9999840); // CreateDynamicObject(19377,1283.0142820,-1966.0660400,1871.4656980,0.0000000,90.0000000,180.1341700); // CreateDynamicObject(19456,1284.1285400,-1964.4108880,1869.9355460,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1274.5085440,-1964.4108880,1869.9355460,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1259.6102290,-1968.6601560,1869.9051510,0.0000000,0.0000000,179.9999840); // CreateDynamicObject(19378,1272.7752680,-1968.8480220,1868.1417230,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19378,1263.2152090,-1968.8480220,1868.1417230,0.0000000,90.0000000,90.0000000); // CreateDynamicObject(19456,1264.8972160,-1964.4108880,1869.9355460,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1255.2874750,-1964.4108880,1869.9355460,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1284.6390380,-1970.1315910,1869.9257810,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1275.0290520,-1970.1315910,1869.9257810,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1265.4396970,-1970.1315910,1869.9257810,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19456,1255.8597410,-1970.1315910,1869.9257810,0.0000000,0.0000000,90.0000000); // CreateDynamicObject(19377,1272.5142820,-1966.0913080,1871.4656980,0.0000000,90.0000000,180.1341700); // CreateDynamicObject(19377,1262.0538330,-1966.1158440,1871.4656980,0.0000000,90.0000000,180.1341700); // CreateDynamicObject(1555,1285.1723630,-1964.4666740,1868.1966550,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1280.1916500,-1964.4666740,1868.2158200,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1276.0716550,-1964.4666740,1868.2263180,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1271.6309810,-1964.4666740,1868.2257080,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1266.9803460,-1964.4666740,1868.2265620,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1263.1999510,-1964.4666740,1868.2261960,0.0000000,0.0000000,180.0000000); // CreateDynamicObject(1555,1261.6092520,-1970.1070550,1868.2260740,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1265.3599850,-1970.1070550,1868.2161860,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1270.0102530,-1970.1070550,1868.2264400,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1274.6210930,-1970.1070550,1868.2166740,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1278.7216790,-1970.1070550,1868.2058100,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(1555,1283.5422360,-1970.1070550,1868.1956780,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(2949,1259.7264400,-1967.9449460,1868.2369380,0.0000000,0.0000000,-180.0000000); // CreateDynamicObject(18756,1290.4686270,-1967.3747550,1875.9339590,0.0000000,0.0000000,0.0000000); // CreateDynamicObject(18757,1290.4708250,-1967.4128410,1875.9340820,0.0000000,0.0000000,0.0000000); // for (new i = 0; i < MAX_OBJECTS; i ++) { if (IsValidObject(i)) objects++; } printf("(INFO) %i objects loaded.", objects); } IsVehicleInRangeOfPoint(vehicleid, Float:range, Float:x, Float:y, Float:z) { new Float:fX, Float:fY, Float:fZ; GetVehiclePos(vehicleid, fX, fY, fZ); return IsPointInRangeOfPoint(range, fX, fY, fZ, x, y, z); } IsPointInRangeOfPoint(Float:range, Float:fX, Float:fY, Float:fZ, Float:x, Float:y, Float:z) { fX -= x; fY -= y; fZ -= z; return ((fX * fX) + (fY * fY) + (fZ * fZ)) < (range * range); } SetPlayerRecord(amount) { new date[3]; getdate(date[2], date[1], date[0]); Server[PlayerRecord] = amount; format(Server[RecordDate], 24, "%02d/%02d/%i", date[0], date[1], date[2]); SaveInformation(); } stock CreateLog(file[], string[]) { new time[6]; gettime(time[0], time[1], time[2]); getdate(time[3], time[4], time[5]); new timestr[32], data[512]; format(timestr, 32, "[%02d.%02d|%02d:%02d] ", time[5], time[4], time[0], time[1]); format(data, sizeof(data), "%s%s\r\n", timestr, string); new File:hFile, thefile[32]; format(thefile, sizeof(thefile), "/Server/log_%s.log", file); hFile = fopen(thefile, io_append); fwrite(hFile, data); fclose(hFile); return 1; } SaveInformation() { new File:file = fopen("Server/info.ini", io_write); if (file) { INI_WriteInt(file, "Accounts", Server[Accounts]); INI_WriteInt(file, "PlayerRecord", Server[PlayerRecord]); INI_WriteValue(file, "RecordDate", Server[RecordDate]); INI_WriteInt(file, "TaxRate", Server[TaxRate]); INI_WriteInt(file, "TaxVault", Server[TaxVault]); INI_WriteValue(file, "Motd", Server[Motd]); fclose(file); } } LoadInformation() { new File:file = fopen("Server/info.ini", io_read); if (file) { INI_GetValue(file, "RecordDate", Server[RecordDate], 24); Server[Accounts] = INI_GetInteger(file, "Accounts"); Server[PlayerRecord] = INI_GetInteger(file, "PlayerRecord"); Server[TaxRate] = INI_GetInteger(file, "TaxRate"); Server[TaxVault] = INI_GetInteger(file, "TaxVault"); INI_GetValue(file, "Motd", Server[Motd], 128); if (!Server[TaxRate]) { Server[TaxRate] = 5; } fclose(file); } } /*strcpy(dest[], const src[], maxlength = sizeof(dest)) { dest[0] = 0; return strcat(dest, src, maxlength); }*/ cache_fetch_string(row, field_name[]) { new retString[128]; cache_get_field_content(row, field_name, retString, gConnection, sizeof(retString)); return retString; } GetSkinGender(skin) { switch (skin) { case 0..8, 14..30, 32..37, 42..52, 57..62, 66..68, 70..74, 78..84, 86, 94..128, 132..137, 142..144, 146, 147, 149, 153..156, 158..168, 170, 171, 173..177, 179..189, 200, 202..204, 206, 208..210, 212, 213, 217, 220..223, 227..230, 234..236, 239..242, 247..250, 252..255, 258..262, 264..297, 299: return 1; default: return 2; } return 0; } ClearProducts(company) { switch (Companies[company][cType]) { case COMPANY_RESTAURANT: { for (new i = 0; i < MAX_RESTAURANT_ITEMS; i ++) { if (RestaurantItems[company][i][rtExists]) { RestaurantItems[company][i][rtExists] = 0; } } format(gExecute, sizeof(gExecute), "DELETE FROM rp_fooditems WHERE cID = %i", Companies[company][cID]); mysql_tquery(gConnection, gExecute); } case COMPANY_RENTALS: { for (new i = 0; i < MAX_CARS; i ++) { if (Vehicles[i][vExists] && Vehicles[i][vRentable] && Vehicles[i][vCompany] == Companies[company][cID]) { DestroyVehicleEx(Vehicles[i][vVehicle]); DestroyDynamic3DTextLabel(Vehicles[i][vText]); Vehicles[i][vExists] = 0; Vehicles[i][vCompany] = 0; Vehicles[i][vRentable] = 0; Vehicles[i][vRenter] = INVALID_PLAYER_ID; Vehicles[i][vVehicle] = INVALID_VEHICLE_ID; } } format(gExecute, sizeof(gExecute), "DELETE FROM rp_vehicles WHERE vCompany = %i", Companies[company][cID]); mysql_tquery(gConnection, gExecute); } case COMPANY_DEALERSHIP: { for (new i = 0; i < MAX_DEALERSHIP_CARS; i ++) { if (DealershipCars[i][dcExists] && DealershipCars[i][dcCompany] == Companies[company][cID]) { DealershipCars[i][dcExists] = 0; } } format(gExecute, sizeof(gExecute), "DELETE FROM rp_dealercars WHERE Company = %i", Companies[company][cID]); mysql_tquery(gConnection, gExecute); } } } ClearListedItems(playerid) { for (new i = 0; i < sizeof(gListedItems[]); i ++) { gListedItems[playerid][i] = INVALID_ID; } } ClearReports(playerid) { for (new i = 0; i < MAX_REPORTS; i ++) { if (Reports[i][rExists] && Reports[i][rReporter] == playerid) { Reports[i][rExists] = 0; } } } ResetNameChange(playerid) { strcpy(Players[playerid][pNameChange], "Not Specified", MAX_PLAYER_NAME); } ClearData(playerid) { for(new i = 0; i < MAX_PLAYERS; i ++) { BlockedPM[playerid][i] = false; } currentQuestion[playerid] = 0; gPlayerKicked[playerid] = 0; pSpecLimit[playerid] = 0; ClearListedItems(playerid); for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++) { BankAccounts[playerid][i][bankExists] = 0; BankAccounts[playerid][i][bankID] = 0; BankAccounts[playerid][i][bankBalance] = 0; } for (new i = 0; i < MAX_ACCESSORIES; i ++) { Accessories[playerid][i][aExists] = 0; Accessories[playerid][i][aModel] = 0; Accessories[playerid][i][aBone] = 0; Accessories[playerid][i][aAttached] = 0; } for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++) { Inventory[playerid][i][invExists] = 0; Inventory[playerid][i][invID] = 0; } for (new i = 0; i < sizeof(g_TrashPickups); i ++) { gTrashObjects[playerid][i] = INVALID_OBJECT_ID; } strcpy(Players[playerid][pCallsign], "None", 128); strcpy(Players[playerid][pGPCI], "None", 41); Players[playerid][pID] = INVALID_ID; Players[playerid][pIgnoreTD] = 0; Players[playerid][pLoggedIn] = 0; Players[playerid][pSetupInfo] = 0; Players[playerid][pOrigin] = 0; Players[playerid][pGender] = 0; Players[playerid][pAge] = 18; Players[playerid][pSkin] = 1; Players[playerid][pUniform] = INVALID_ID; Players[playerid][pOutfitIndex] = INVALID_ID; Players[playerid][pHealth] = 100.0; Players[playerid][pArmor] = 0.0; Players[playerid][pTraveled] = 0.0; Players[playerid][pPocketMoney] = 3000; Players[playerid][pSendText] = 0; Players[playerid][pSelected] = INVALID_ID; Players[playerid][pEditUniform] = INVALID_ID; Players[playerid][pProduct] = INVALID_ID; Players[playerid][pAdmin] = 0; Players[playerid][pMapper] = 0; Players[playerid][pJailType] = 0; Players[playerid][pJailTime] = 0; Players[playerid][pMuted] = 0; Players[playerid][pFitness] = 0; Players[playerid][pMinutes] = 0; Players[playerid][pHoursOnline] = 0; Players[playerid][pJob] = JOB_NONE; Players[playerid][pJobPaycheck] = 0; Players[playerid][pPaycheck] = 0; Players[playerid][pWorkoutTime] = 0; Players[playerid][pGymMembership] = 0; Players[playerid][pPhone] = 0; Players[playerid][pPhoneOff] = 0; Players[playerid][pDeathState] = DEATH_STATE_NONE; Players[playerid][pDeathTime] = 0; Players[playerid][pHospital] = HOSPITAL_NONE; Players[playerid][pShowPM] = 1; Players[playerid][pShowSpeed] = 1; Players[playerid][pShowFuel] = 1; Players[playerid][pShowTime] = 1; Players[playerid][pShowOOC] = 1; Players[playerid][pShowReports] = 1; Players[playerid][pShowAdmin] = 1; Players[playerid][pShowSupporter] = 1; Players[playerid][pBleeding] = 0; Players[playerid][pBleedingTime] = 0; Players[playerid][pPaymentType] = PAYMENT_TYPE_CASH; Players[playerid][pBankAccount] = 0; Players[playerid][pSupporter] = 0; Players[playerid][pVeteran] = 0; Players[playerid][pFactionMod] = 0; Players[playerid][pAdminName] = 0; Players[playerid][pHideAdmin] = 0; Players[playerid][pBrokenLeg] = 0; Players[playerid][pChatStyle] = 1; Players[playerid][pChannel] = 0; Players[playerid][pDonator] = 0; Players[playerid][pExpiryDate] = 0; Players[playerid][pNameChanges] = 0; Players[playerid][pSpawnType] = SPAWN_TYPE_LAST; Players[playerid][pBadge] = 0; Players[playerid][pModPreview] = 0; Players[playerid][pActivated] = 0; Players[playerid][pBeingReported] = 0; strcpy(Players[playerid][pReportReason], "None", 64); Players[playerid][pBankMoney] = 0; Players[playerid][pSavingsMoney] = 0; Players[playerid][pFurnitureMenu] = 0; Players[playerid][pAccessoryMenu] = 0; Players[playerid][pHotwireTime] = 0; Players[playerid][pStartEngine] = 0; Players[playerid][pLastReport] = 0; Players[playerid][pSupportTime] = 0; Players[playerid][pBanPage] = 0; Players[playerid][pLights] = 0; Players[playerid][pPaused] = 0; Players[playerid][pLastUpdate] = 0; Players[playerid][pFireTime] = 0; Players[playerid][pWeight] = 0; Players[playerid][pReps] = 0; Players[playerid][pSpeedLevel] = 0; Players[playerid][pDistanceRan] = 0; Players[playerid][pJobStage] = 0; Players[playerid][pMining] = 0; Players[playerid][pWorking] = 0; Players[playerid][pGoods] = 0; Players[playerid][pSetPosition] = 0; Players[playerid][pFlashOn] = 0; Players[playerid][pSitting] = 0; Players[playerid][pStatsPage] = 0; Players[playerid][pParkTime] = 0; Players[playerid][pCalling] = 0; Players[playerid][pTaxiTime] = 0; Players[playerid][pTaxiFare] = 0; Players[playerid][pTaxiDuty] = false; Players[playerid][pTaxiMeter] = 0; Players[playerid][pPassenger] = 0; Players[playerid][pGasPrice] = 0; Players[playerid][pMedicKit] = 0; Players[playerid][pPainkillers] = 0; Players[playerid][pPickTime] = 0; Players[playerid][pFainted] = 0; Players[playerid][pUnfairDeath] = 0; Players[playerid][pAdminDuty] = 0; Players[playerid][pSupporterDuty] = 0; Players[playerid][pMapperDuty] = 0; Players[playerid][pCheatFlags] = 0; Players[playerid][pTazer] = 0; Players[playerid][pTazed] = 0; Players[playerid][pHandcuffed] = 0; Players[playerid][pWarrants] = 0; Players[playerid][pCharges] = 0; Players[playerid][pAnticheat] = 0; Players[playerid][pDuty] = 0; Players[playerid][pAnimation] = 0; Players[playerid][pSelectUniform] = 0; Players[playerid][pUniformIndex] = 0; Players[playerid][pDispatch] = 0; Players[playerid][pVehicleColor] = INVALID_ID; Players[playerid][pEmergency] = 0; Players[playerid][pCallTaxi] = 0; Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pPackageGrams] = 0; Players[playerid][pPackageTime] = 0; Players[playerid][pCarLicense] = 0; Players[playerid][pGunLicense] = 0; Players[playerid][pAdTime] = 0; Players[playerid][pDrivingTest] = 0; Players[playerid][pDrivingCP] = 0; Players[playerid][pTestTime] = 0; Players[playerid][pRentHouse] = 0; Players[playerid][pMaskID] = 0; Players[playerid][pRepairCar] = 0; Players[playerid][pRepairShop] = -1; Players[playerid][pRepairTime] = 0; Players[playerid][pTrashPickup] = 0; Players[playerid][pTrash] = 0; Players[playerid][pModShop] = 0; Players[playerid][pChatting] = 0; Players[playerid][pEnterTime] = 0; Players[playerid][pCommandSpam] = 0; Players[playerid][pCommandMuted] = 0; Players[playerid][pBackdoorType] = 0; Players[playerid][pPausedText] = INVALID_3DTEXT_ID; Players[playerid][pInjuredText] = INVALID_3DTEXT_ID; Players[playerid][pCheckpoint] = CHECKPOINT_NONE; Players[playerid][pWorkout] = WORKOUT_NONE; Players[playerid][pBuyOutfit] = INVALID_ID; Players[playerid][pHouseInfo] = INVALID_ID; Players[playerid][pCompanyInfo] = INVALID_ID; Players[playerid][pBuildingInfo] = INVALID_ID; Players[playerid][pCompany] = INVALID_ID; Players[playerid][pHouse] = INVALID_ID; Players[playerid][pSpectate] = INVALID_PLAYER_ID; Players[playerid][pHotwire] = INVALID_VEHICLE_ID; Players[playerid][pTarget] = INVALID_PLAYER_ID; Players[playerid][pSetStaff] = INVALID_PLAYER_ID; Players[playerid][pObject] = INVALID_OBJECT_ID; Players[playerid][pCarConfirm] = INVALID_ID; Players[playerid][pAdjustSpawn] = INVALID_ID; Players[playerid][pRental] = INVALID_ID; Players[playerid][pViewStats] = INVALID_PLAYER_ID; Players[playerid][pEdit] = EDIT_TYPE_NONE; Players[playerid][pEditID] = INVALID_ID; Players[playerid][pHouseEdit] = INVALID_ID; Players[playerid][pCaller] = INVALID_PLAYER_ID; Players[playerid][pPayphone] = INVALID_ID; Players[playerid][pInsideTaxi] = INVALID_PLAYER_ID; Players[playerid][pSafeMenu] = INVALID_ID; Players[playerid][pTrashbin] = INVALID_ID; Players[playerid][pChoose] = CHOOSE_TYPE_NONE; Players[playerid][pRefuel] = INVALID_ID; Players[playerid][pPicking] = PICK_LOCK_NONE; Players[playerid][pPickID] = INVALID_ID; Players[playerid][pHelpRequest] = INVALID_PLAYER_ID; Players[playerid][pCuffedBy] = INVALID_PLAYER_ID; Players[playerid][pFactionOffer] = INVALID_PLAYER_ID; Players[playerid][pFriskOffer] = INVALID_PLAYER_ID; Players[playerid][pDealershipMenu] = INVALID_ID; Players[playerid][pPackageOrder] = PACKAGE_TYPE_NONE; Players[playerid][pPackageType] = PACKAGE_TYPE_NONE; Players[playerid][pPackage] = INVALID_OBJECT_ID; Players[playerid][pSetBank] = INVALID_PLAYER_ID; Players[playerid][pGiveDrugs] = INVALID_PLAYER_ID; Players[playerid][pWorkVehicle] = INVALID_VEHICLE_ID; Players[playerid][pHouseOffer] = INVALID_PLAYER_ID; Players[playerid][pCompanyOffer] = INVALID_PLAYER_ID; Players[playerid][pCarOffer] = INVALID_PLAYER_ID; Players[playerid][pShakeOffer] = INVALID_PLAYER_ID; Players[playerid][pBigEars] = 0; Players[playerid][pSprayTag] = INVALID_ID; Players[playerid][pStereoPlayerID] = INVALID_PLAYER_ID; Players[playerid][pVehicleStream] = INVALID_VEHICLE_ID; Players[playerid][pAddVehicle] = INVALID_VEHICLE_ID; Players[playerid][pAutoShop] = INVALID_ID; Players[playerid][pConfirmBackdoor] = INVALID_ID; Players[playerid][pFurniturePerms] = INVALID_ID; g_Callsigns[ Players[playerid][pFactionCallsign] ][e_CallsignTakenBy] = INVALID_ID; Players[playerid][pFactionCallsign] = 0; Players[playerid][pWarnTimer] = 0; Players[playerid][pWarnWeapon] = 0; Players[playerid][pWarnHealth] = 0; Players[playerid][pWarnArmor] = 0; Players[playerid][pWarnAirbreak] = 0; Players[playerid][pWarnSpeedhack] = 0; Players[playerid][pWarnMoneyHack] = 0; Players[playerid][pWarnAmmoHack] = 0; Players[playerid][pWarnFlyHack] = 0; Players[playerid][pWarnDialogHack] = 0; Players[playerid][pWarnGodMode] = 0; Players[playerid][pWarnRapidFire] = 0; Players[playerid][pWarnTeleport] = 0; /* pWarnTimer, pWarnWeapon, pWarnHealth, pWarnArmor, pWarnAirbreak, pWarnSpeedhack, pWarnMoneyHack, pWarnAmmoHack, pWarnFlyHack, pWarnDialogHack, pWarnGodMode, pWarnRapidFire, pWarnTeleport */ Statistics[playerid][sHotwired] = 0; Statistics[playerid][sRentals] = 0; Statistics[playerid][sHospitalFees] = 0; Statistics[playerid][sItemsUsed] = 0; Statistics[playerid][sItemsDropped] = 0; Statistics[playerid][sItemsPicked] = 0; Statistics[playerid][sDistanceRan] = 0; Statistics[playerid][sTotalReps] = 0; Statistics[playerid][sHouses] = 0; Statistics[playerid][sCompanies] = 0; Statistics[playerid][sVehicles] = 0; Statistics[playerid][sFurnitureFees] = 0; Statistics[playerid][sTotalWarrants] = 0; Statistics[playerid][sReports] = 0; Statistics[playerid][sHelpRequests] = 0; ResetSpawnInfo(playerid); ResetWeapons(playerid); ResetTaxi(playerid); ResetHelpRequest(playerid); ResetFactionInfo(playerid); ResetLastShots(playerid); ResetAdvertisement(playerid); ResetStereo(playerid); ResetNameChange(playerid); } /* pWarnSpeed, pWarnWeapon, pWarnHealth, pWarnArmor, pWarnAirbreak, pWarnSpeedhack, pWarnMoneyHack, pWarnAmmoHack, pWarnFlyHack */ SavePositionAndHealth(playerid) { if (Players[playerid][pAutoShop] != INVALID_ID || IsPlayerInRangeOfPoint(playerid, 20.0, 1903.4791, 1353.9811, 24.5537)) { Players[playerid][pSpawn][0] = Players[playerid][pAutoX]; Players[playerid][pSpawn][1] = Players[playerid][pAutoY]; Players[playerid][pSpawn][2] = Players[playerid][pAutoZ]; Players[playerid][pSpawn][3] = Players[playerid][pAutoA]; Players[playerid][pInterior] = 0; Players[playerid][pWorld] = 0; } else { GetPlayerPos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2]); GetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]); if (Players[playerid][pBuyOutfit] != INVALID_ID) { Players[playerid][pInterior] = Companies[Players[playerid][pBuyOutfit]][cInterior]; Players[playerid][pWorld] = Companies[Players[playerid][pBuyOutfit]][cWorld]; } else { Players[playerid][pInterior] = GetPlayerInterior(playerid); Players[playerid][pWorld] = GetPlayerVirtualWorld(playerid); } } GetPlayerHealth(playerid, Players[playerid][pHealth]); GetPlayerArmour(playerid, Players[playerid][pArmor]); } SaveStatistics(playerid) { new queryString[512]; format(queryString, sizeof(queryString), "UPDATE rp_accounts SET `TotalHotwired` = %i, `TotalRentals` = %i, `HospitalFees` = %i, `ItemsUsed` = %i, `ItemsDropped` = %i, `ItemsPicked` = %i, `DistanceRan` = %i, `TotalReps` = %i, `TotalHouses` = %i, `TotalCompanies` = %i, `TotalVehicles` = %i, `FurnitureFees` = %i, `TotalWarrants` = %i, `Reports` = %i, `HelpRequests` = %i WHERE `ID` = %i", Statistics[playerid][sHotwired], Statistics[playerid][sRentals], Statistics[playerid][sHospitalFees], Statistics[playerid][sItemsUsed], Statistics[playerid][sItemsDropped], Statistics[playerid][sItemsPicked], Statistics[playerid][sDistanceRan], Statistics[playerid][sTotalReps], Statistics[playerid][sHouses], Statistics[playerid][sCompanies], Statistics[playerid][sVehicles], Statistics[playerid][sFurnitureFees], Statistics[playerid][sTotalWarrants], Statistics[playerid][sReports], Statistics[playerid][sHelpRequests], Players[playerid][pID] ); return mysql_tquery(gConnection, queryString); } SaveAccount(playerid) { if (Players[playerid][pLoggedIn] && !IsPlayerNPC(playerid)) { new queryString[2048]; if (!IsPlayerSpectating(playerid) && !IsPlayerBugged(playerid) && Players[playerid][pBuyOutfit] == INVALID_ID) { SavePositionAndHealth(playerid); } format(queryString, sizeof(queryString), "UPDATE rp_accounts SET `SetupInfo` = %i, `Origin` = '%s', `Gender` = %i, `Age` = %i, `Skin` = %i, `Uniform` = %i, `SpawnX` = %.4f, `SpawnY` = %.4f, `SpawnZ` = %.4f, `SpawnA` = %.4f, `Health` = %.4f, `Armor` = %.4f, `Interior` = %i, `World` = %i, `Traveled` = %.4f, `PocketMoney` = %i, `Admin` = %i", Players[playerid][pSetupInfo], Players[playerid][pOrigin], Players[playerid][pGender], Players[playerid][pAge], Players[playerid][pSkin], Players[playerid][pUniform], Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], Players[playerid][pSpawn][3], Players[playerid][pHealth], Players[playerid][pArmor], Players[playerid][pInterior], Players[playerid][pWorld], Players[playerid][pTraveled], Players[playerid][pPocketMoney], Players[playerid][pAdmin] ); format(queryString, sizeof(queryString), "%s, `JailType` = %i, `JailTime` = %i, `Muted` = %i, `Fitness` = %i, `Minutes` = %i, `HoursOnline` = %i, `Melee` = %i, `PrimaryGun` = %i, `PrimaryAmmo` = %i, `PrimarySerial` = %i, `SecondaryGun` = %i, `SecondaryAmmo` = %i, `SecondarySerial` = %i", queryString, Players[playerid][pJailType], Players[playerid][pJailTime], Players[playerid][pMuted], Players[playerid][pFitness], Players[playerid][pMinutes], Players[playerid][pHoursOnline], Weapons[playerid][wMelee], Weapons[playerid][wPrimary], Weapons[playerid][wPrimaryAmmo], Weapons[playerid][wPrimarySerial], Weapons[playerid][wSecondary], Weapons[playerid][wSecondaryAmmo], Weapons[playerid][wSecondarySerial] ); format(queryString, sizeof(queryString), "%s, `Job` = %i, `JobPaycheck` = %i, `Paycheck` = %i, `WorkoutTime` = %i, `GymMembership` = %i, `Phone` = %i, `PhoneOff` = %i, `DeathState` = %i, `Hospital` = %i, `ShowPM` = %i, `ShowSpeed` = %i, `ShowFuel` = %i, `ShowTime` = %i, `ShowOOC` = %i, `ShowReports` = %i, `ShowAdmin` = %i, `ShowSupporter` = %i", queryString, Players[playerid][pJob], Players[playerid][pJobPaycheck], Players[playerid][pPaycheck], Players[playerid][pWorkoutTime], Players[playerid][pGymMembership], Players[playerid][pPhone], Players[playerid][pPhoneOff], Players[playerid][pDeathState], Players[playerid][pHospital], Players[playerid][pShowPM], Players[playerid][pShowSpeed], Players[playerid][pShowFuel], Players[playerid][pShowTime], Players[playerid][pShowOOC], Players[playerid][pShowReports], Players[playerid][pShowAdmin], Players[playerid][pShowSupporter] ); format(queryString, sizeof(queryString), "%s, `Bleeding` = %i, `PaymentType` = %i, `BankAccount` = %i, `Supporter` = %i, `Veteran` = %i, `FactionMod` = %i, `FactionID` = %i, `FactionRank` = %i, `FactionLeader` = %i, `Warrants` = %i, `AdminName` = '%s', `PackageOrder` = %i, `PackageType` = %i, `PackageGrams` = %i, `PackageTime` = %i, `CarLicense` = %i, `GunLicense` = %i, `AdTime` = %i", queryString, Players[playerid][pBleeding], Players[playerid][pPaymentType], Players[playerid][pBankAccount], Players[playerid][pSupporter], Players[playerid][pVeteran], Players[playerid][pFactionMod], Players[playerid][pFactionID], Players[playerid][pFactionRank], Players[playerid][pFactionLeader], Players[playerid][pWarrants], Players[playerid][pAdminName], Players[playerid][pPackageOrder], Players[playerid][pPackageType], Players[playerid][pPackageGrams], Players[playerid][pPackageTime], Players[playerid][pCarLicense], Players[playerid][pGunLicense], Players[playerid][pAdTime] ); format(queryString, sizeof(queryString), "%s, `RentHouse` = %i, `MaskID` = %i, `HideAdmin` = %i, `BrokenLeg` = %i, `ChatStyle` = %i, `WalkStyle` = %i, `Channel` = %i, `Donator` = %i, `ExpiryDate` = %i, `NameChanges` = %i, `Badge` = %i, `BankMoney` = %i, `SavingsMoney` = %i, `Mapper` = %i, `Charges` = %i, `PhoneLastKnown` = %i, `AdminTitle` = '%s', `GPCI` = '%s', `pActivated`='%i', `BeingReported`='%i', `ReportReason`='%s'", queryString, Players[playerid][pRentHouse], Players[playerid][pMaskID], Players[playerid][pHideAdmin], Players[playerid][pBrokenLeg], Players[playerid][pChatStyle], Players[playerid][pWalkStyle], Players[playerid][pChannel], Players[playerid][pDonator], Players[playerid][pExpiryDate], Players[playerid][pNameChanges], Players[playerid][pBadge], Players[playerid][pBankMoney], Players[playerid][pSavingsMoney], Players[playerid][pMapper], Players[playerid][pCharges], Players[playerid][pPhoneLastKnown], Players[playerid][pAdminTitle], Players[playerid][pGPCI], Players[playerid][pActivated], Players[playerid][pBeingReported], Players[playerid][pReportReason] ); format(queryString, sizeof(queryString), "%s, SpawnType = %i, SpawnExtra = %i, Crashed = %i, Duty = %i WHERE ID = %i", queryString, Players[playerid][pSpawnType], Players[playerid][pSpawnExtra], Players[playerid][pCrashed], Players[playerid][pDuty], Players[playerid][pID] ); mysql_tquery(gConnection, queryString); SaveStatistics(playerid); } } GetInventoryMaxWeight(playerid) { new extra; if (Players[playerid][pFitness] > 0) { extra += (Players[playerid][pFitness] / 10); } switch (Players[playerid][pDonator]) { case DONATOR_BASIC: extra = extra + 10; case DONATOR_STANDARD: extra = extra + 20; case DONATOR_INVESTOR: extra = extra + 30; case DONATOR_PREMIUM: extra = extra + 40; } return MAX_POCKET_WEIGHT + extra; } GetInventoryTotalWeight(playerid) { new total; for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++) { if (Inventory[playerid][i][invExists]) { total = total + GetItemInformation(Inventory[playerid][i][invName], ITEM_INFO_WEIGHT); } } return total; } SelectTextDrawEx(playerid, hovercolor) { Players[playerid][pIgnoreTD] = 1; SetTimerEx("ResetIgnoreTD", 300, false, "i", playerid); return SelectTextDraw(playerid, hovercolor); } ShowItemsForPlayer(playerid, targetid) { gListString[0] = 0; if (Players[playerid][pPocketMoney] > 0) { format(gListString, sizeof(gListString), "Wallet (%s)", FormatNumber(Players[targetid][pPocketMoney])); } else { format(gListString, sizeof(gListString), "Wallet (Empty)"); } if (1 <= Weapons[targetid][wMelee] <= 15) { format(gListString, sizeof(gListString), "%s\n%s", gListString, GetWeapon(Weapons[targetid][wMelee])); } if (Weapons[targetid][wPrimary] > 0) { format(gListString, sizeof(gListString), "%s\n%s (%i ammo)", gListString, GetWeapon(Weapons[targetid][wPrimary]), Weapons[targetid][wPrimaryAmmo]); } if (Weapons[targetid][wSecondary] > 0) { format(gListString, sizeof(gListString), "%s\n%s (%i ammo)", gListString, GetWeapon(Weapons[targetid][wSecondary]), Weapons[targetid][wSecondaryAmmo]); } if (Weapons[targetid][wTertiary] > 0) { format(gListString, sizeof(gListString), "%s\n%s (%i ammo)", gListString, GetWeapon(Weapons[targetid][wTertiary]), Weapons[targetid][wTertiaryAmmo]); } for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++) { if (Inventory[targetid][i][invExists]) { format(gListString, sizeof(gListString), "%s\n%s", gListString, GetFullItemName(targetid, i)); } } if (!isnull(gListString)) { return Dialog_Show(playerid, Frisk, DIALOG_STYLE_LIST, "{FFFFFF}Frisk Menu", gListString, "Close", ""); } return 0; } DisplayInventory(playerid) { static displayString[MAX_ITEM_NAME * MAX_INVENTORY_ITEMS], titleString[128] ; new index = 0 ; displayString = "{33AA33}Item\t{33AA33}lbs"; if (Weapons[playerid][wMelee] > 0 || Weapons[playerid][wPrimary] > 0 || Weapons[playerid][wSecondary] > 0) { strcat(displayString, "\nWeapon Menu"); } for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++) { if (Inventory[playerid][i][invExists]) { format(displayString, sizeof(displayString), "%s\n%s\t%i lbs", displayString, GetFullItemName(playerid, i), GetItemInformation(Inventory[playerid][i][invName], ITEM_INFO_WEIGHT)); gListedItems[playerid][index++] = i; } } if ((index) || (strlen(displayString) > 15)) { format(titleString, sizeof(titleString), "{33AA33}Capacity: [%i/%i]", GetInventoryTotalWeight(playerid), GetInventoryMaxWeight(playerid)); return Dialog_Show(playerid, MyInventory, DIALOG_STYLE_TABLIST_HEADERS, titleString, displayString, "Select", "Cancel"); } return 0; } GetStoredItemName(id) { new string[MAX_ITEM_NAME + 12]; if (StoredItems[id][stExists]) { strunpack(string, StoredItems[id][stName]); if (GetItemInformation(StoredItems[id][stName], ITEM_INFO_VALUE) && StoredItems[id][stValue] > 0) { format(string, sizeof(string), "{33AA33}%s (%i)", string, StoredItems[id][stValue]); } } return string; } GetDropItemName(id) { new string[MAX_ITEM_NAME + 12]; if (DropItems[id][dExists]) { if (GetItemInformation(DropItems[id][dName], ITEM_INFO_VALUE) && DropItems[id][dValue] > 0) { format(string, sizeof(string), "%s (%i)", DropItems[id][dName], DropItems[id][dValue]); } else { strcpy(string, DropItems[id][dName]); } } return string; } GetFullItemName(playerid, itemid) { new string[MAX_ITEM_NAME + 12]; if (Inventory[playerid][itemid][invExists]) { if (GetItemInformation(Inventory[playerid][itemid][invName], ITEM_INFO_VALUE) && Inventory[playerid][itemid][invValue] > 0) { format(string, sizeof(string), "%s (%i)", Inventory[playerid][itemid][invName], Inventory[playerid][itemid][invValue]); if(Inventory[playerid][itemid][invSerial] != 0) { format(string,sizeof(string),"%s (%i) (#%i)", Inventory[playerid][itemid][invName], Inventory[playerid][itemid][invValue], Inventory[playerid][itemid][invSerial]); } } else { strcpy(string, Inventory[playerid][itemid][invName]); } } return string; } IsValidInput(const text[]) { /* Checks if an input string is valid. Invalid inputs include: - Empty or null string. - Text consisting of only spaces. */ new length = 0, spaces = 0 ; if ((length = strlen(text)) == 0 || isnull(text)) { return 0; } else { for (new i = 0; i < length; i ++) { if (text[i] == ' ' || text[i] == 255) { spaces++; } } if (length == spaces) { return 0; } } return 1; } IsPlayerInRangeOfVehicle(playerid, vehicleid, Float:range = 4.0) { new Float:x, Float:y, Float:z; GetVehiclePos(vehicleid, x, y, z); if (GetPlayerVirtualWorld(playerid) == GetVehicleVirtualWorld(vehicleid) && IsPlayerInRangeOfPoint(playerid, range, x, y, z)) return 1; else return 0; } IsPlayerInRangeOfPlayer(playerid, targetid, Float:range = 4.0) { new Float:x, Float:y, Float:z; GetPlayerPos(targetid, x, y, z); if (GetPlayerInterior(playerid) == GetPlayerInterior(targetid) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(targetid) && IsPlayerInRangeOfPoint(playerid, range, x, y, z)) return 1; else return 0; } PlayNearbySound(playerid, soundid) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); foreach (new i : Player) { if (i == playerid || IsPlayerStreamedIn(playerid, i)) { PlayerPlaySound(i, soundid, x, y, z); } } } SetupTextdraws(playerid) { Players[playerid][pText][0] = CreatePlayerTextDraw(playerid, 330.000000, 398.000000, "1 ~<~ ~g~~h~2~w~ ~>~ 3"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][0], 2); PlayerTextDrawFont(playerid, Players[playerid][pText][0], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][0], 0.470000, 1.600000); PlayerTextDrawColor(playerid, Players[playerid][pText][0], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][0], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][0], 1); Players[playerid][pText][5] = CreatePlayerTextDraw(playerid, 359.000000, 370.000000, "Text"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][5], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][5], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][5], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][5], 0.339999, 1.300000); PlayerTextDrawColor(playerid, Players[playerid][pText][5], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][5], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][5], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][5], 0); Players[playerid][pText][6] = CreatePlayerTextDraw(playerid, 439.000000, 147.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][6], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][6], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][6], 0.500000, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][6], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][6], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][6], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][6], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][6], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][6], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][6], 210.000000, 0.000000); Players[playerid][pText][7] = CreatePlayerTextDraw(playerid, 439.000000, 147.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][7], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][7], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][7], 0.500000, 17.600006); PlayerTextDrawColor(playerid, Players[playerid][pText][7], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][7], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][7], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][7], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][7], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][7], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][7], 210.000000, 0.000000); Players[playerid][pText][8] = CreatePlayerTextDraw(playerid, 216.000000, 145.000000, "My Items"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][8], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][8], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][8], 0.319999, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][8], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][8], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][8], 1); Players[playerid][pText][9] = CreatePlayerTextDraw(playerid, 217.000000, 162.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][9], 85); PlayerTextDrawFont(playerid, Players[playerid][pText][9], 5); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][9], 0.500000, 6.299999); PlayerTextDrawColor(playerid, Players[playerid][pText][9], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][9], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][9], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][9], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][9], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][9], 0); PlayerTextDrawTextSize(playerid, Players[playerid][pText][9], 61.000000, 49.000000); PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][9], 3026); PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][9], 0.0000, 0.0000, 0.0000, 1.0000); Players[playerid][pText][10] = CreatePlayerTextDraw(playerid, 248.000000, 212.000000, "Backpack"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][10], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][10], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][10], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][10], 0.209999, 0.899999); PlayerTextDrawColor(playerid, Players[playerid][pText][10], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][10], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][10], 1); Players[playerid][pText][11] = CreatePlayerTextDraw(playerid, 217.000000, 232.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][11], 85); PlayerTextDrawFont(playerid, Players[playerid][pText][11], 5); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][11], 0.500000, 6.199998); PlayerTextDrawColor(playerid, Players[playerid][pText][11], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][11], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][11], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][11], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][11], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][11], 0); PlayerTextDrawTextSize(playerid, Players[playerid][pText][11], 61.000000, 49.000000); PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][11], 2916); PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][11], 0.0000, 0.0000, 0.0000, 1.0000); Players[playerid][pText][12] = CreatePlayerTextDraw(playerid, 247.000000, 283.000000, "Weight: 0/10"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][12], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][12], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][12], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][12], 0.200000, 0.899999); PlayerTextDrawColor(playerid, Players[playerid][pText][12], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][12], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][12], 1); Players[playerid][pText][13] = CreatePlayerTextDraw(playerid, 288.000000, 164.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][13], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][13], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][13], 0.209998, 13.599993); PlayerTextDrawColor(playerid, Players[playerid][pText][13], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][13], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][13], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][13], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][13], 68); PlayerTextDrawTextSize(playerid, Players[playerid][pText][13], 430.000000, 40.000000); Players[playerid][pText][14] = CreatePlayerTextDraw(playerid, 290.000000, 165.000000, "Empty Slot"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][14], 428.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][14], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][14], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][14], 0.209999, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][14], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][14], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][14], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][14], 1); Players[playerid][pText][15] = CreatePlayerTextDraw(playerid, 290.000000, 177.000000, "Empty Slot"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][15], 428.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][15], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][15], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][15], 0.209999, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][15], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][15], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][15], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][15], 1); Players[playerid][pText][16] = CreatePlayerTextDraw(playerid, 290.000000, 189.000000, "Empty Slot"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][16], 428.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][16], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][16], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][16], 0.209999, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][16], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][16], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][16], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][16], 1); Players[playerid][pText][17] = CreatePlayerTextDraw(playerid, 290.000000, 201.000000, "Empty Slot"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][17], 428.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][17], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][17], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][17], 0.209999, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][17], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][17], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][17], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][17], 1); Players[playerid][pText][18] = CreatePlayerTextDraw(playerid, 290.000000, 213.000000, "Empty Slot"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][18], 428.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][18], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][18], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][18], 0.209999, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][18], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][18], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][18], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][18], 1); Players[playerid][pText][19] = CreatePlayerTextDraw(playerid, 290.000000, 225.000000, "Empty Slot"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][19], 428.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][19], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][19], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][19], 0.209999, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][19], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][19], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][19], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][19], 1); Players[playerid][pText][20] = CreatePlayerTextDraw(playerid, 290.000000, 237.000000, "Empty Slot"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][20], 428.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][20], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][20], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][20], 0.209999, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][20], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][20], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][20], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][20], 1); Players[playerid][pText][21] = CreatePlayerTextDraw(playerid, 290.000000, 249.000000, "Empty Slot"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][21], 428.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][21], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][21], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][21], 0.209999, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][21], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][21], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][21], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][21], 1); Players[playerid][pText][22] = CreatePlayerTextDraw(playerid, 290.000000, 261.000000, "Empty Slot"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][22], 428.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][22], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][22], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][22], 0.209999, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][22], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][22], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][22], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][22], 1); Players[playerid][pText][23] = CreatePlayerTextDraw(playerid, 290.000000, 273.000000, "Empty Slot"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][23], 428.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][23], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][23], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][23], 0.209999, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][23], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][23], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][23], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][23], 1); Players[playerid][pText][24] = CreatePlayerTextDraw(playerid, 392.000000, 292.000000, "<<"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][24], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][24], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][24], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][24], 0.230000, 1.299998); PlayerTextDrawColor(playerid, Players[playerid][pText][24], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][24], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][24], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][24], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][24], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][24], 15.000000, 21.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][24], 1); Players[playerid][pText][25] = CreatePlayerTextDraw(playerid, 419.000000, 292.000000, ">>"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][25], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][25], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][25], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][25], 0.230000, 1.299998); PlayerTextDrawColor(playerid, Players[playerid][pText][25], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][25], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][25], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][25], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][25], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][25], 15.000000, 21.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][25], 1); Players[playerid][pText][26] = CreatePlayerTextDraw(playerid, 323.0, 412.0, "0 KMH"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][26], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][26], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][26], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][26], 0.559998, 2.099999); PlayerTextDrawColor(playerid, Players[playerid][pText][26], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][26], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][26], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][26], 0); Players[playerid][pText][27] = CreatePlayerTextDraw(playerid, 509.000000, 103.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][27], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][27], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][27], 0.500000, 3.099999); PlayerTextDrawColor(playerid, Players[playerid][pText][27], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][27], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][27], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][27], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][27], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][27], 102); PlayerTextDrawTextSize(playerid, Players[playerid][pText][27], 606.000000, 10.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][27], 0); Players[playerid][pText][28] = CreatePlayerTextDraw(playerid, 522.000000, 106.000000, "E"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][28], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][28], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][28], 0.509999, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][28], -16776961); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][28], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][28], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][28], 0); Players[playerid][pText][29] = CreatePlayerTextDraw(playerid, 579.000000, 106.000000, "F"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][29], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][29], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][29], 0.509999, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][29], 16711935); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][29], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][29], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][29], 0); Players[playerid][pText][30] = CreatePlayerTextDraw(playerid, 531.000000, 106.000000, "-"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][30], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][30], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][30], 3.419998, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][30], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][30], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][30], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][30], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][30], 0); Players[playerid][pText][31] = CreatePlayerTextDraw(playerid, 572.000000, 102.000000, "."); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][31], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][31], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][31], 0.470000, 1.400000); PlayerTextDrawColor(playerid, Players[playerid][pText][31], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][31], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][31], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][31], 0); Players[playerid][pText][32] = CreatePlayerTextDraw(playerid, 558.000000, 118.000000, "100%"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][32], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][32], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][32], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][32], 0.319999, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][32], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][32], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][32], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][32], 0); Players[playerid][pText][33] = CreatePlayerTextDraw(playerid, 34.500000, 277.000000, "hud:radar_burgershot"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][33], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][33], 4); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][33], 0.500000, 0.899999); PlayerTextDrawColor(playerid, Players[playerid][pText][33], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][33], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][33], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][33], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][33], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][33], 255); PlayerTextDrawTextSize(playerid, Players[playerid][pText][33], 21.000000, 17.000000); Players[playerid][pText][34] = CreatePlayerTextDraw(playerid, 35.500000, 298.000000, "hud:radar_datedrink"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][34], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][34], 4); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][34], 0.500000, 0.899999); PlayerTextDrawColor(playerid, Players[playerid][pText][34], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][34], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][34], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][34], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][34], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][34], 255); PlayerTextDrawTextSize(playerid, Players[playerid][pText][34], 20.000000, 17.000000); Players[playerid][pText][37] = CreatePlayerTextDraw(playerid, -10.000000, 435.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][37], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][37], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][37], 0.500000, 1.399999); PlayerTextDrawColor(playerid, Players[playerid][pText][37], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][37], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][37], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][37], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][37], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][37], 286331221); PlayerTextDrawTextSize(playerid, Players[playerid][pText][37], 650.000000, 10.000000); Players[playerid][pText][38] = CreatePlayerTextDraw(playerid, 320.000000, 435.000000, "Accounts: ~y~0~w~ - Player Record: ~y~N/A"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][38], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][38], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][38], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][38], 0.259999, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][38], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][38], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][38], 1); Players[playerid][pText][39] = CreatePlayerTextDraw(playerid, 426.000000, 171.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][39], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][39], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][39], 0.500000, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][39], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][39], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][39], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][39], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][39], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][39], 119); PlayerTextDrawTextSize(playerid, Players[playerid][pText][39], 217.000000, 0.000000); Players[playerid][pText][40] = CreatePlayerTextDraw(playerid, 426.000000, 171.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][40], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][40], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][40], 0.509998, 14.399996); PlayerTextDrawColor(playerid, Players[playerid][pText][40], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][40], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][40], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][40], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][40], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][40], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][40], 217.000000, 0.000000); Players[playerid][pText][41] = CreatePlayerTextDraw(playerid, 222.000000, 170.000000, "My Weapons"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][41], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][41], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][41], 0.280000, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][41], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][41], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][41], 1); Players[playerid][pText][42] = CreatePlayerTextDraw(playerid, 229.000000, 188.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][42], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][42], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][42], 0.500000, 3.299998); PlayerTextDrawColor(playerid, Players[playerid][pText][42], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][42], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][42], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][42], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][42], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][42], 34); PlayerTextDrawTextSize(playerid, Players[playerid][pText][42], 413.000000, 0.000000); Players[playerid][pText][43] = CreatePlayerTextDraw(playerid, 232.000000, 191.000000, "~y~Melee~w~~n~No Weapon"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][43], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][43], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][43], 0.250000, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][43], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][43], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][43], 1); Players[playerid][pText][44] = CreatePlayerTextDraw(playerid, 386.000000, 190.000000, "Unequip"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][44], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][44], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][44], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][44], 0.230000, 1.099998); PlayerTextDrawColor(playerid, Players[playerid][pText][44], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][44], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][44], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][44], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][44], -205); PlayerTextDrawTextSize(playerid, Players[playerid][pText][44], 18.000000, 48.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][44], 1); Players[playerid][pText][45] = CreatePlayerTextDraw(playerid, 386.000000, 205.000000, "Discard"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][45], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][45], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][45], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][45], 0.230000, 1.099998); PlayerTextDrawColor(playerid, Players[playerid][pText][45], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][45], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][45], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][45], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][45], -205); PlayerTextDrawTextSize(playerid, Players[playerid][pText][45], 18.000000, 48.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][45], 1); Players[playerid][pText][46] = CreatePlayerTextDraw(playerid, 229.000000, 226.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][46], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][46], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][46], 0.500000, 3.299998); PlayerTextDrawColor(playerid, Players[playerid][pText][46], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][46], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][46], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][46], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][46], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][46], 51); PlayerTextDrawTextSize(playerid, Players[playerid][pText][46], 413.000000, 0.000000); Players[playerid][pText][47] = CreatePlayerTextDraw(playerid, 232.000000, 229.000000, "~y~Primary~w~~n~No Weapon"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][47], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][47], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][47], 0.250000, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][47], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][47], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][47], 1); Players[playerid][pText][48] = CreatePlayerTextDraw(playerid, 386.000000, 228.000000, "Unequip"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][48], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][48], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][48], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][48], 0.230000, 1.099998); PlayerTextDrawColor(playerid, Players[playerid][pText][48], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][48], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][48], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][48], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][48], -205); PlayerTextDrawTextSize(playerid, Players[playerid][pText][48], 18.000000, 48.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][48], 1); Players[playerid][pText][49] = CreatePlayerTextDraw(playerid, 386.000000, 243.000000, "Discard"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][49], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][49], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][49], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][49], 0.230000, 1.099998); PlayerTextDrawColor(playerid, Players[playerid][pText][49], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][49], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][49], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][49], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][49], -205); PlayerTextDrawTextSize(playerid, Players[playerid][pText][49], 18.000000, 48.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][49], 1); Players[playerid][pText][50] = CreatePlayerTextDraw(playerid, 229.000000, 264.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][50], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][50], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][50], 0.500000, 3.299998); PlayerTextDrawColor(playerid, Players[playerid][pText][50], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][50], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][50], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][50], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][50], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][50], 51); PlayerTextDrawTextSize(playerid, Players[playerid][pText][50], 413.000000, 0.000000); Players[playerid][pText][51] = CreatePlayerTextDraw(playerid, 232.000000, 267.000000, "~y~Secondary~w~~n~No Weapon"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][51], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][51], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][51], 0.250000, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][51], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][51], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][51], 1); Players[playerid][pText][52] = CreatePlayerTextDraw(playerid, 386.000000, 266.000000, "Unequip"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][52], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][52], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][52], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][52], 0.230000, 1.099998); PlayerTextDrawColor(playerid, Players[playerid][pText][52], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][52], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][52], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][52], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][52], -205); PlayerTextDrawTextSize(playerid, Players[playerid][pText][52], 18.000000, 48.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][52], 1); Players[playerid][pText][53] = CreatePlayerTextDraw(playerid, 386.000000, 281.000000, "Discard"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][53], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][53], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][53], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][53], 0.230000, 1.099998); PlayerTextDrawColor(playerid, Players[playerid][pText][53], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][53], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][53], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][53], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][53], -205); PlayerTextDrawTextSize(playerid, Players[playerid][pText][53], 18.000000, 48.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][53], 1); Players[playerid][pText][54] = CreatePlayerTextDraw(playerid, 34.000000, 319.000000, "hud:radar_gym"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][54], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][54], 4); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][54], 0.500000, 0.899999); PlayerTextDrawColor(playerid, Players[playerid][pText][54], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][54], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][54], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][54], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][54], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][54], 255); PlayerTextDrawTextSize(playerid, Players[playerid][pText][54], 22.000000, 17.000000); Players[playerid][pText][55] = CreatePlayerTextDraw(playerid, 630.000000, 182.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][55], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][55], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][55], 0.500000, 12.800000); PlayerTextDrawColor(playerid, Players[playerid][pText][55], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][55], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][55], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][55], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][55], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][55], 102); PlayerTextDrawTextSize(playerid, Players[playerid][pText][55], 492.000000, 0.000000); Players[playerid][pText][56] = CreatePlayerTextDraw(playerid, 492.000000, 171.000000, "Property"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][56], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][56], 0); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][56], 0.659999, 1.899999); PlayerTextDrawColor(playerid, Players[playerid][pText][56], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][56], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][56], 1); Players[playerid][pText][57] = CreatePlayerTextDraw(playerid, 499.000000, 193.000000, "~g~Price~w~~n~$10,000~n~~n~~g~Address:~w~~n~32 Ganton Street~n~~n~~g~Location:~w~~n~Mulholland"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][57], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][57], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][57], 0.210000, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][57], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][57], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][57], 1); Players[playerid][pText][58] = CreatePlayerTextDraw(playerid, 484.000000, 123.000000, "Power"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][58], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][58], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][58], 0.360000, 1.700000); PlayerTextDrawColor(playerid, Players[playerid][pText][58], -1429936641); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][58], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][58], 1); Players[playerid][pText][59] = CreatePlayerTextDraw(playerid, 497.000000, 139.000000, "Reps"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][59], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][59], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][59], 0.360000, 1.700000); PlayerTextDrawColor(playerid, Players[playerid][pText][59], -1429936641); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][59], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][59], 1); Players[playerid][pText][60] = CreatePlayerTextDraw(playerid, 608.000000, 139.000000, "0"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][60], 3); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][60], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][60], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][60], 0.360000, 1.700000); PlayerTextDrawColor(playerid, Players[playerid][pText][60], -1429936641); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][60], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][60], 1); Players[playerid][pText][61] = CreatePlayerTextDraw(playerid, 469.000000, 156.000000, "Distance"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][61], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][61], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][61], 0.360000, 1.700000); PlayerTextDrawColor(playerid, Players[playerid][pText][61], -1429936641); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][61], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][61], 1); Players[playerid][pText][62] = CreatePlayerTextDraw(playerid, 608.000000, 156.000000, "0"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][62], 3); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][62], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][62], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][62], 0.360000, 1.700000); PlayerTextDrawColor(playerid, Players[playerid][pText][62], -1429936641); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][62], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][62], 1); Players[playerid][pText][63] = CreatePlayerTextDraw(playerid, 629.000000, 183.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][63], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][63], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][63], 0.500000, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][63], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][63], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][63], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][63], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][63], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][63], 102); PlayerTextDrawTextSize(playerid, Players[playerid][pText][63], 487.000000, 1.000000); Players[playerid][pText][64] = CreatePlayerTextDraw(playerid, 629.000000, 183.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][64], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][64], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][64], 0.500000, 9.799998); PlayerTextDrawColor(playerid, Players[playerid][pText][64], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][64], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][64], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][64], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][64], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][64], 68); PlayerTextDrawTextSize(playerid, Players[playerid][pText][64], 487.000000, 1.000000); Players[playerid][pText][65] = CreatePlayerTextDraw(playerid, 492.000000, 182.000000, "Glasses"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][65], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][65], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][65], 0.270000, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][65], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][65], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][65], 1); Players[playerid][pText][66] = CreatePlayerTextDraw(playerid, 526.000000, 198.000000, "Preview"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][66], 85); PlayerTextDrawFont(playerid, Players[playerid][pText][66], 5); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][66], 0.500000, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][66], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][66], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][66], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][66], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][66], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][66], 0); PlayerTextDrawTextSize(playerid, Players[playerid][pText][66], 60.000000, 50.000000); PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][66], 19006); PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][66], 0.0000, 0.0000, 90.0000, 1.0000); Players[playerid][pText][67] = CreatePlayerTextDraw(playerid, 513.000000, 255.000000, "<<"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][67], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][67], 102); PlayerTextDrawFont(playerid, Players[playerid][pText][67], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][67], 0.230000, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][67], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][67], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][67], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][67], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][67], 119); PlayerTextDrawTextSize(playerid, Players[playerid][pText][67], 18.000000, 22.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][67], 1); Players[playerid][pText][68] = CreatePlayerTextDraw(playerid, 604.000000, 255.000000, ">>"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][68], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][68], 102); PlayerTextDrawFont(playerid, Players[playerid][pText][68], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][68], 0.230000, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][68], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][68], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][68], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][68], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][68], 119); PlayerTextDrawTextSize(playerid, Players[playerid][pText][68], 18.000000, 22.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][68], 1); Players[playerid][pText][69] = CreatePlayerTextDraw(playerid, 558.000000, 255.000000, "Preview"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][69], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][69], 102); PlayerTextDrawFont(playerid, Players[playerid][pText][69], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][69], 0.209999, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][69], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][69], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][69], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][69], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][69], 119); PlayerTextDrawTextSize(playerid, Players[playerid][pText][69], 18.000000, 54.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][69], 1); Players[playerid][pText][70] = CreatePlayerTextDraw(playerid, 630.000000, 170.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][70], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][70], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][70], 0.500000, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][70], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][70], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][70], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][70], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][70], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][70], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][70], 447.000000, 0.000000); Players[playerid][pText][71] = CreatePlayerTextDraw(playerid, 630.000000, 170.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][71], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][71], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][71], 0.509999, 11.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][71], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][71], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][71], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][71], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][71], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][71], 51); PlayerTextDrawTextSize(playerid, Players[playerid][pText][71], 447.000000, 0.000000); Players[playerid][pText][72] = CreatePlayerTextDraw(playerid, 452.000000, 168.000000, "Kitchen - 1/12"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][72], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][72], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][72], 0.280000, 1.300000); PlayerTextDrawColor(playerid, Players[playerid][pText][72], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][72], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][72], 1); Players[playerid][pText][73] = CreatePlayerTextDraw(playerid, 518.000000, 253.000000, "<<"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][73], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][73], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][73], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][73], 0.260000, 1.400000); PlayerTextDrawColor(playerid, Players[playerid][pText][73], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][73], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][73], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][73], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][73], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][73], 18.000000, 25.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][73], 1); Players[playerid][pText][74] = CreatePlayerTextDraw(playerid, 564.000000, 253.000000, "Preview"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][74], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][74], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][74], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][74], 0.260000, 1.400000); PlayerTextDrawColor(playerid, Players[playerid][pText][74], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][74], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][74], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][74], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][74], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][74], 18.000000, 54.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][74], 1); Players[playerid][pText][75] = CreatePlayerTextDraw(playerid, 610.000000, 253.000000, ">>"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][75], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][75], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][75], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][75], 0.260000, 1.400000); PlayerTextDrawColor(playerid, Players[playerid][pText][75], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][75], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][75], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][75], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][75], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][75], 18.000000, 25.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][75], 1); Players[playerid][pText][76] = CreatePlayerTextDraw(playerid, 455.000000, 184.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][76], 119); PlayerTextDrawFont(playerid, Players[playerid][pText][76], 5); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][76], 0.800000, 5.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][76], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][76], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][76], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][76], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][76], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][76], 0); PlayerTextDrawTextSize(playerid, Players[playerid][pText][76], 70.000000, 59.000000); PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][76], 2131); PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][76], 0.0000, 0.0000, 0.0000, 1.0000); Players[playerid][pText][77] = CreatePlayerTextDraw(playerid, 532.000000, 184.000000, "~g~Model:~w~~n~CJ_KITCH2_MID~n~~n~~g~Price:~w~~n~$25"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][77], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][77], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][77], 0.230000, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][77], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][77], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][77], 1); Players[playerid][pText][78] = CreatePlayerTextDraw(playerid, 633.000000, 168.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][78], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][78], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][78], 0.500000, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][78], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][78], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][78], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][78], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][78], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][78], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][78], 492.000000, 40.000000); Players[playerid][pText][79] = CreatePlayerTextDraw(playerid, 633.000000, 168.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][79], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][79], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][79], 0.500000, 16.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][79], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][79], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][79], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][79], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][79], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][79], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][79], 492.000000, 40.000000); Players[playerid][pText][80] = CreatePlayerTextDraw(playerid, 496.000000, 167.000000, "Dealership"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][80], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][80], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][80], 0.290000, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][80], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][80], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][80], 1); Players[playerid][pText][81] = CreatePlayerTextDraw(playerid, 507.000000, 151.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][81], 0); PlayerTextDrawFont(playerid, Players[playerid][pText][81], 5); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][81], 0.500000, 1.000000); PlayerTextDrawColor(playerid, Players[playerid][pText][81], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][81], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][81], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][81], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][81], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][81], 0); PlayerTextDrawTextSize(playerid, Players[playerid][pText][81], 106.000000, 101.000000); PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][81], 400); PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][81], -16.0000, 0.0000, -55.0000, 1.0000); Players[playerid][pText][82] = CreatePlayerTextDraw(playerid, 500.000000, 234.000000, "~g~Vehicle:~n~~w~Bravura~n~~n~~g~Price:~n~~w~$15,000"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][82], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][82], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][82], 0.230000, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][82], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][82], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][82], 1); Players[playerid][pText][83] = CreatePlayerTextDraw(playerid, 514.000000, 297.000000, "<<"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][83], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][83], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][83], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][83], 0.280000, 1.400000); PlayerTextDrawColor(playerid, Players[playerid][pText][83], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][83], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][83], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][83], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][83], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][83], 60.000000, 22.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][83], 1); Players[playerid][pText][84] = CreatePlayerTextDraw(playerid, 562.000000, 297.000000, "Confirm"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][84], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][84], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][84], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][84], 0.290000, 1.400000); PlayerTextDrawColor(playerid, Players[playerid][pText][84], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][84], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][84], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][84], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][84], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][84], 60.000000, 60.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][84], 1); Players[playerid][pText][85] = CreatePlayerTextDraw(playerid, 610.000000, 297.000000, ">>"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][85], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][85], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][85], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][85], 0.280000, 1.400000); PlayerTextDrawColor(playerid, Players[playerid][pText][85], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][85], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][85], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][85], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][85], 85); PlayerTextDrawTextSize(playerid, Players[playerid][pText][85], 60.000000, 22.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][85], 1); Players[playerid][pText][86] = CreatePlayerTextDraw(playerid, 160.000000, 173.000000, "_"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][86], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][86], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][86], 0.500000, 14.599998); PlayerTextDrawColor(playerid, Players[playerid][pText][86], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][86], 0); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][86], 1); PlayerTextDrawSetShadow(playerid, Players[playerid][pText][86], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][86], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][86], 119); PlayerTextDrawTextSize(playerid, Players[playerid][pText][86], 10.000000, 20.000000); Players[playerid][pText][87] = CreatePlayerTextDraw(playerid, 9.000000, 162.000000, "Character Setup"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][87], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][87], 0); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][87], 0.569999, 1.799998); PlayerTextDrawColor(playerid, Players[playerid][pText][87], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][87], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][87], 1); Players[playerid][pText][88] = CreatePlayerTextDraw(playerid, 18.000000, 184.000000, "~g~~h~Gender:"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][88], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][88], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][88], 0.239999, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][88], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][88], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][88], 1); Players[playerid][pText][89] = CreatePlayerTextDraw(playerid, 19.000000, 195.000000, "Male"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][89], 100.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][89], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][89], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][89], 0.239999, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][89], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][89], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][89], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][89], true); Players[playerid][pText][90] = CreatePlayerTextDraw(playerid, 19.000000, 205.000000, "Female"); PlayerTextDrawTextSize(playerid, Players[playerid][pText][90], 100.000000, 10.000000); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][90], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][90], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][90], 0.240000, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][90], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][90], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][90], 1); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][90], true); Players[playerid][pText][91] = CreatePlayerTextDraw(playerid, 18.000000, 225.000000, "~g~~h~Age:"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][91], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][91], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][91], 0.239999, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][91], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][91], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][91], 1); Players[playerid][pText][92] = CreatePlayerTextDraw(playerid, 19.000000, 235.000000, "13 years old"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][92], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][92], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][92], 0.230000, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][92], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][92], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][92], 1); Players[playerid][pText][93] = CreatePlayerTextDraw(playerid, 123.000000, 235.000000, "-"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][93], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][93], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][93], 0); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][93], 0.589999, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][93], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][93], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][93], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][93], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][93], 68); PlayerTextDrawTextSize(playerid, Players[playerid][pText][93], 20.000000, 15.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][93], true); Players[playerid][pText][94] = CreatePlayerTextDraw(playerid, 143.000000, 235.000000, "+"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][94], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][94], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][94], 0); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][94], 0.389999, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][94], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][94], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][94], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][94], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][94], 68); PlayerTextDrawTextSize(playerid, Players[playerid][pText][94], 20.000000, 15.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][94], true); Players[playerid][pText][95] = CreatePlayerTextDraw(playerid, 18.000000, 256.000000, "~g~~h~Outfit:"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][95], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][95], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][95], 0.239999, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][95], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][95], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][95], 1); Players[playerid][pText][96] = CreatePlayerTextDraw(playerid, 19.000000, 266.000000, "Skin: 299"); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][96], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][96], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][96], 0.230000, 1.100000); PlayerTextDrawColor(playerid, Players[playerid][pText][96], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][96], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][96], 1); Players[playerid][pText][97] = CreatePlayerTextDraw(playerid, 123.000000, 267.000000, "<<"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][97], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][97], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][97], 0); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][97], 0.219999, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][97], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][97], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][97], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][97], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][97], 68); PlayerTextDrawTextSize(playerid, Players[playerid][pText][97], 20.000000, 15.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][97], true); Players[playerid][pText][98] = CreatePlayerTextDraw(playerid, 143.000000, 267.000000, ">>"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][98], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][98], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][98], 0); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][98], 0.219999, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][98], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][98], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][98], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][98], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][98], 68); PlayerTextDrawTextSize(playerid, Players[playerid][pText][98], 20.000000, 15.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][98], true); Players[playerid][pText][99] = CreatePlayerTextDraw(playerid, 37.000000, 290.000000, "Reset"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][99], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][99], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][99], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][99], 0.230000, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][99], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][99], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][99], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][99], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][99], 68); PlayerTextDrawTextSize(playerid, Players[playerid][pText][99], 20.000000, 37.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][99], true); Players[playerid][pText][100] = CreatePlayerTextDraw(playerid, 85.000000, 290.000000, "Confirm"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][100], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][100], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][100], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][100], 0.230000, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][100], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][100], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][100], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][100], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][100], 68); PlayerTextDrawTextSize(playerid, Players[playerid][pText][100], 20.000000, 46.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][100], true); Players[playerid][pText][101] = CreatePlayerTextDraw(playerid, 133.000000, 290.000000, "Help"); PlayerTextDrawAlignment(playerid, Players[playerid][pText][101], 2); PlayerTextDrawBackgroundColor(playerid, Players[playerid][pText][101], 255); PlayerTextDrawFont(playerid, Players[playerid][pText][101], 2); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][101], 0.230000, 1.200000); PlayerTextDrawColor(playerid, Players[playerid][pText][101], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][101], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][101], 1); PlayerTextDrawUseBox(playerid, Players[playerid][pText][101], 1); PlayerTextDrawBoxColor(playerid, Players[playerid][pText][101], 68); PlayerTextDrawTextSize(playerid, Players[playerid][pText][101], 20.000000, 37.000000); PlayerTextDrawSetSelectable(playerid, Players[playerid][pText][101], true); } GetNextDealershipCar(company, index) { index++; if (index >= MAX_DEALERSHIP_CARS) { index = 0; } for (new i = index; i < MAX_DEALERSHIP_CARS; i ++) { if (DealershipCars[i][dcCompany] == Companies[company][cID] && DealershipCars[i][dcModel] > 0) { return i; } } return GetFirstDealershipCar(company); } GetPreviousDealershipCar(company, index) { if (index - 1 < 0) { index = MAX_DEALERSHIP_CARS; } for (new i = index; --i >= 0; ) { if (DealershipCars[i][dcCompany] == Companies[company][cID] && DealershipCars[i][dcModel] > 0) { return i; } } return GetLastDealershipCar(company); } GetFirstDealershipCar(company) { for (new i = 0; i < MAX_DEALERSHIP_CARS; i ++) { if (DealershipCars[i][dcCompany] == Companies[company][cID] && DealershipCars[i][dcModel] > 0) { return i; } } return INVALID_ID; } GetLastDealershipCar(company) { for (new i = MAX_DEALERSHIP_CARS; --i >= 0; ) { if (DealershipCars[i][dcCompany] == Companies[company][cID] && DealershipCars[i][dcModel] > 0) { return i; } } return INVALID_ID; } ShowDealershipPreviewMenu(playerid, company) { if (IsValidCompanyID(company) && Companies[company][cType] == COMPANY_DEALERSHIP) { new index = GetFirstDealershipCar(company); if (index == INVALID_ID) { return 0; } else { Players[playerid][pDealershipMenu] = company; Players[playerid][pDealershipIndex] = index; ShowPlayerTextDraws(playerid, 78, 85); UpdateDealershipPreview(playerid); SelectTextDrawEx(playerid, -1); } } return 1; } HideDealershipPreview(playerid) { HidePlayerTextDraws(playerid, 78, 85); CancelSelectTextDraw(playerid); Players[playerid][pDealershipMenu] = INVALID_ID; Players[playerid][pDealershipIndex] = INVALID_ID; } UpdateDealershipPreview(playerid) { new index = Players[playerid][pDealershipIndex]; PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][81], DealershipCars[index][dcModel]); PlayerTextDrawSetPreviewVehCol(playerid, Players[playerid][pText][81], 11, 11); PlayerTextDrawHide(playerid, Players[playerid][pText][81]); PlayerTextDrawShow(playerid, Players[playerid][pText][81]); PlayerTextDrawFormatString(playerid, Players[playerid][pText][82], "~g~Vehicle:~w~~n~%s~n~~n~~g~Price:~w~~n~%s", GetVehicleModelName(DealershipCars[index][dcModel]), FormatNumber(DealershipCars[index][dcPrice])); } ShowInfoForHouse(playerid, house) { if (Players[playerid][pFurnitureMenu]) { return 0; } if (IsValidHouseID(house)) { new string[128]; new string2[128]; if (!Houses[house][hOwner]) { format(string2, sizeof(string2), "~g~ /house buy ~n~ ~g~Price:~w~~n~%s~n~~n~~g~Address:~w~~n~%s~n~~n~~g~Location:~w~~n~%s", FormatNumber(Houses[house][hValue]), Houses[house][hAddress], GetZoneName(Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2])); ShowFooterText(playerid, string2, 10000); } else { if (Houses[house][hRentPrice] > 0) { format(string, sizeof(string), "~g~For Rent:~w~~n~%s~n~~n~~g~Address:~w~~n~%s~n~~n~~g~Location:~w~~n~%s", FormatNumber(Houses[house][hRentPrice]), Houses[house][hAddress], GetZoneName(Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2])); } else { format(string, sizeof(string), "~g~For Rent:~w~~n~No~n~~n~~g~Address:~w~~n~%s~n~~n~~g~Location:~w~~n~%s", Houses[house][hAddress], GetZoneName(Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2])); } if (!IsFooterTextShown(playerid) && !Players[playerid][pPicking]) { ShowFooterText(playerid, "Press ~g~H~w~ to enter this property.", 10000); } } Players[playerid][pHouseInfo] = house; PlayerTextDrawSetString(playerid, Players[playerid][pText][57], string); //ShowPlayerTextDraws(playerid, 55, 57); } return 1; } ShowInfoForCompany(playerid, company) { if (Players[playerid][pFurnitureMenu]) { return 0; } if (IsValidCompanyID(company)) { new string[128]; new string2[128]; if (!Companies[company][cOwner]) { format(string2, sizeof(string2), "Use ~g~'/company buy'~w~ to purchase ~n~ ~g~Price:~w~ %s~n~~n~~g~Name:~w~ %s~n~~n~~g~Fee:~w~ %s", FormatNumber(Companies[company][cValue]), Companies[company][cName], FormatNumber(Companies[company][cFee])); ShowFooterText(playerid, string2, 10000); } else { format(string, sizeof(string), "~g~Name:~w~~n~%s~n~~n~~g~Location:~w~~n~%s~n~~n~~g~Status:~w~~n~%s~n~~n~~g~Fee:~w~~n~%s", Companies[company][cName], GetZoneName(Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2]), (Companies[company][cLocked]) ? ("Closed") : ("Opened"), FormatNumber(Companies[company][cFee])); if (!IsFooterTextShown(playerid) && !Players[playerid][pPicking]) { ShowFooterText(playerid, "Press ~g~H~w~ to enter this property.", 10000); } } Players[playerid][pCompanyInfo] = company; PlayerTextDrawSetString(playerid, Players[playerid][pText][57], string); //ShowPlayerTextDraws(playerid, 55, 57); } return 1; } ShowWeaponMenu(playerid) { new string[200]; if (Weapons[playerid][wMelee] > 0) format(string, sizeof(string), "%s", GetWeapon(Weapons[playerid][wMelee])); else format(string, sizeof(string), "Empty Slot"); if (Weapons[playerid][wPrimary] > 0) format(string, sizeof(string), "%s\n%s (%i) (#%i)", string, GetWeapon(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo], Weapons[playerid][wPrimarySerial]); else format(string, sizeof(string), "%s\nEmpty Slot", string); if (Weapons[playerid][wSecondary] > 0) format(string, sizeof(string), "%s\n%s (%i) (#%i)", string, GetWeapon(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo], Weapons[playerid][wSecondarySerial]); else format(string, sizeof(string), "%s\nEmpty Slot", string); if (Players[playerid][pDonator] >= DONATOR_STANDARD) { if (Weapons[playerid][wTertiary] > 0) format(string, sizeof(string), "%s\n%s (%i) (#%i)", string, GetWeapon(Weapons[playerid][wTertiary]), Weapons[playerid][wTertiaryAmmo], Weapons[playerid][wTertiarySerial]); else format(string, sizeof(string), "%s\nEmpty Slot", string); } Dialog_Show(playerid, WeaponList, DIALOG_STYLE_LIST, "{FFFFFF}My Weapons", string, "Select", "Cancel"); return 1; } /*UpdateLoginTextDraws(playerid) { new string[128]; if (Server[PlayerRecord] > 0) { format(string, sizeof(string), "Accounts: ~y~%i~w~ - Player Record: ~y~%i (%s)~w~", Server[Accounts], Server[PlayerRecord], Server[RecordDate]); } else { format(string, sizeof(string), "Accounts: ~y~%i~w~ - Player Record: ~y~0", Server[Accounts]); } PlayerTextDrawSetString(playerid, Players[playerid][pText][38], string); } ShowLoginTextDraws(playerid, show) { if (show) { UpdateLoginTextDraws(playerid); ShowPlayerTextDraws(playerid, 37, 38); } else { HidePlayerTextDraws(playerid, 37, 38); } return 1; }*/ IsFooterTextShown(playerid) { return Players[playerid][pFooter]; } ShowFooterText(playerid, text[], time = 5000) { if (Players[playerid][pFooter]) { KillTimer(Timers[playerid][tFooter]); } Players[playerid][pFooter] = 1; Timers[playerid][tFooter] = SetTimerEx("HideFooterText", time, false, "i", playerid); PlayerTextDrawSetString(playerid, Players[playerid][pText][5], text); return PlayerTextDrawShow(playerid, Players[playerid][pText][5]); } SendPlayerSplitMessage(playerid, color, const text[]) { new string[192], parse[12], length ; length = strlen(text); if (length < 100) { SendClientMessage(playerid, color, text); } else { for (new i = 0; i < 100; i ++) { if ((i + 7 < length) && (text[i] == '{' && text[i + 7] == '}')) { strmid(parse, text, i, i + 8); } } strmid(string, text, 0, 100); SendClientMessage(playerid, color, string); strmid(string, text, 100, length); strins(string, "...", 0); if (strlen(parse) > 0) { strins(string, parse, 0); } SendClientMessage(playerid, color, string); } } SendSplitMessage(playerid, color, const text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 3) { SendPlayerSplitMessage(playerid, color, text); } else { while (--args >= 3) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit PUSH.S 8 #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 SendPlayerSplitMessage(playerid, color, str); #emit RETN } return 1; } SendVehicleMessage(vehicleid, color, text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 3) { foreach (new i : Player) { if (IsPlayerInVehicle(i, vehicleid)) SendSplitMessage(i, color, text); } } else { while (--args >= 3) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit PUSH.S 8 #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 foreach (new i : Player) { if (IsPlayerInVehicle(i, vehicleid)) SendSplitMessage(i, color, str); } #emit RETN } return 1; } ShowActionBubble(playerid, text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 2) { SetPlayerChatBubble(playerid, text, COLOR_PURPLE, 25.0, 6000); } else { while (--args >= 2) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit LOAD.S.pri 8 #emit ADD.C 4 #emit PUSH.pri #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 SetPlayerChatBubble(playerid, str, COLOR_PURPLE, 25.0, 6000); #emit RETN } return 1; } /*ShowFormatBubble(playerid, color, text[], {Float, _}:...) { static args, str[192];*/ /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ /*if ((args = numargs()) <= 3) { SetPlayerChatBubble(playerid, text, color, 25.0, 6000); } else { while (--args >= 3) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit PUSH.S 8 #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 SetPlayerChatBubble(playerid, str, color, 25.0, 6000); #emit RETN } return 1; }*/ SendDistanceMessage(playerid, Float:distance, color, const text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 4) { foreach (new i : Player) { if (IsPlayerInRangeOfPlayer(i, playerid, distance)) { SendSplitMessage(i, color, text); } } } else { while (--args >= 4) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit LOAD.S.pri 8 #emit CONST.alt 4 #emit SUB #emit PUSH.pri #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 foreach (new i : Player) { if (IsPlayerInRangeOfPlayer(i, playerid, distance)) { SendSplitMessage(i, color, str); } } #emit RETN } return 1; } ShowErrorToPlayer(playerid, text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if (Players[playerid][pFooter]) { HideFooterText(playerid); } if ((args = numargs()) <= 2) { PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0); ShowFooterText(playerid, text, 5000); } else { while (--args >= 2) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit LOAD.S.pri 8 #emit CONST.alt 4 #emit ADD #emit PUSH.pri #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0); ShowFooterText(playerid, str, 5000); #emit RETN } return 1; } SendFormatMessage(playerid, color, const text[], {Float, _}:...)//neger { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 3) { SendClientMessage(playerid, color, text); } else { while (--args >= 3) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit PUSH.S 8 #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 SendClientMessage(playerid, color, str); #emit RETN } return 1; } SendFormatMessageToAll(color, const text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 2) { SendClientMessageToAll(color, text); } else { while (--args >= 2) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit LOAD.S.pri 8 #emit CONST.alt 4 #emit ADD #emit PUSH.pri #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 SendClientMessageToAll(color, str); #emit RETN } return 1; } AdminDutyMessage(color, const text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 2) { foreach (new i : Player) { if(CheckAdmin(i, 1)) SendClientMessage(i, color, text); } print(text); } else { while (--args >= 2) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit LOAD.S.pri 8 #emit CONST.alt 4 #emit ADD #emit PUSH.pri #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 foreach (new i : Player) { if(CheckAdmin(i, 1) && Players[i][pAdminDuty]) SendClientMessage(i, color, str); } print(str); #emit RETN } return 1; } SendAdminMessage(color, const text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 2) { foreach (new i : Player) { if(CheckAdmin(i, 1)) SendClientMessage(i, color, text); } print(text); } else { while (--args >= 2) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit LOAD.S.pri 8 #emit CONST.alt 4 #emit ADD #emit PUSH.pri #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 foreach (new i : Player) { if(CheckAdmin(i, 1)) SendClientMessage(i, color, str); } print(str); #emit RETN } return 1; } SendVeteranMessage(color, const text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 2) { foreach (new i : Player) { if(Players[i][pVeteran]) SendClientMessage(i, color, text); } print(text); } else { while (--args >= 2) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit LOAD.S.pri 8 #emit CONST.alt 4 #emit ADD #emit PUSH.pri #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 foreach (new i : Player) { if(Players[i][pVeteran]) SendClientMessage(i, color, str); } print(str); #emit RETN } return 1; } SendFactionMessage(faction, color, const text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 3) { foreach (new i : Player) { if (Players[i][pFaction] == faction) SendSplitMessage(i, color, text); } } else { while (--args >= 3) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit PUSH.S 8 #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 foreach (new i : Player) { if (Players[i][pFaction] == faction) SendSplitMessage(i, color, str); } #emit RETN } return 1; } SendSupporterMessage(color, const text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 2) { foreach (new i : Player) { if (Players[i][pSupporter] > 0) SendSplitMessage(i, color, text); } print(text); } else { while (--args >= 2) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit LOAD.S.pri 8 #emit CONST.alt 4 #emit ADD #emit PUSH.pri #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 foreach (new i : Player) { if (Players[i][pSupporter] > 0) SendSplitMessage(i, color, str); } print(str); #emit RETN } return 1; } SendDepartmentMessage(color, const text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 2) { foreach (new i : Player) { if (FACTION_LEO <= GetPlayerFactionType(i) <= FACTION_GOVERNMENT) SendSplitMessage(i, color, text); } } else { while (--args >= 2) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit LOAD.S.pri 8 #emit CONST.alt 4 #emit ADD #emit PUSH.pri #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 foreach (new i : Player) { if (FACTION_LEO <= GetPlayerFactionType(i) <= FACTION_GOVERNMENT) SendSplitMessage(i, color, str); } #emit RETN } return 1; } PlayerTextDrawFormatString(playerid, PlayerText:playertextid, text[], {Float, _}:...) { static args, str[192]; /* * Custom function that uses #emit to format variables into a string. * This code is very fragile; touching any code here will cause crashing! */ if ((args = numargs()) <= 3) { PlayerTextDrawSetString(playerid, playertextid, text); } else { while (--args >= 3) { #emit LCTRL 5 #emit LOAD.alt args #emit SHL.C.alt 2 #emit ADD.C 12 #emit ADD #emit LOAD.I #emit PUSH.pri } #emit PUSH.S text #emit PUSH.C 192 #emit PUSH.C str #emit PUSH.S 8 #emit SYSREQ.C format #emit LCTRL 5 #emit SCTRL 4 PlayerTextDrawSetString(playerid, playertextid, str); #emit RETN } return 1; } PlayerAttemptLogin(playerid, pass[]) { new queryString[255]; WP_Hash(queryString, sizeof(queryString), pass); format(queryString, sizeof(queryString), "SELECT * FROM rp_accounts WHERE Username = '%s' AND Pass = '%s'", ReturnName(playerid), queryString); mysql_tquery(gConnection, queryString, "OnPlayerAttemptLogin", "i", playerid); } CreatePlayerAccount(playerid, pass[]) { new queryString[255]; WP_Hash(queryString, sizeof(queryString), pass); format(queryString, sizeof(queryString), "INSERT INTO rp_accounts (Username, Pass, Registered) VALUES('%s', '%s', NOW())", ReturnName(playerid), queryString); mysql_tquery(gConnection, queryString, "OnPlayerRegister", "i", playerid); } FlushChatForPlayer(playerid) { for (new i = 0; i < 30; i ++) { SendClientMessage(playerid, COLOR_GREY, " "); } } ReturnIP(playerid) { new playerIP[16]; GetPlayerIp(playerid, playerIP,sizeof(playerIP)); return playerIP; } ReturnName(playerid) // Returns the player's name (underscore included). { new playerName[MAX_PLAYER_NAME]; GetPlayerName(playerid, playerName, sizeof(playerName)); return playerName; } ReturnAdminRank(playerid) { new adminRank[16]; if (Players[playerid][pAdmin] == 0 && Players[playerid][pVeteran] > 0) { adminRank = "Veteran"; } else if (Players[playerid][pAdmin] == 1) { adminRank = "Moderator"; } else if (Players[playerid][pAdmin] == 2) { adminRank = "Game Admin"; } else if (Players[playerid][pAdmin] == 3) { adminRank = "Game Admin"; } else if (Players[playerid][pAdmin] == 4) { adminRank = "Senior Admin"; } else if (Players[playerid][pAdmin] == 5) { adminRank = "Lead Admin"; } else if (Players[playerid][pAdmin] >= 6) { adminRank = "Management"; } return adminRank; } ReturnAdminName(playerid) { new playerName[MAX_PLAYER_NAME]; if(CheckAdmin(playerid, 1) && IsAdminNameSetup(playerid)) { strcpy(playerName, Players[playerid][pAdminName]); } else { strcpy(playerName, ReturnNameEx(playerid, 0)); } return playerName; } ReturnAdminTitle(playerid) { new playerName[MAX_PLAYER_NAME]; if(CheckAdmin(playerid, 1) && IsAdminTitleSetup(playerid)) { strcpy(playerName, Players[playerid][pAdminTitle]); } else { strcpy(playerName, ReturnNameEx(playerid, 0)); } return playerName; } ReturnNameEx(playerid, maskcheck=1) // Returns the player's name (underscore removed). { new playerName[MAX_PLAYER_NAME]; if (maskcheck > 0 && Players[playerid][pMaskID] > 0) { format(playerName, sizeof(playerName), "[Mask_%d_%d]", Players[playerid][pMaskID], Players[playerid][pAge]); } else { GetPlayerName(playerid, playerName, sizeof(playerName)); for (new i = 0, l = strlen(playerName); i < l; i ++) { if (playerName[i] == '_') { playerName[i] = ' '; } } } return playerName; } AdjustMenuCamera(playerid) { /* * Spectating must be enabled to hide class selection controls. * Due to a bug in SA-MP, a timer is required to apply the camera settings after spectating. */ TogglePlayerSpectating(playerid, true); SetTimerEx("DelayMenuCamera", 300, false, "i", playerid); } GetNextArrayValue(array[], index, size = sizeof(array)) { if (index + 1 >= size) return array[0]; else return array[++index]; } GetPreviousArrayValue(array[], index, size = sizeof(array)) { if (index == 0) return array[size - 1]; else return array[--index]; } CancelOutfitSelection(playerid) { Players[playerid][pOutfitIndex] = INVALID_ID; SetPlayerPos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2]); SetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]); SetPlayerInterior(playerid, Players[playerid][pInterior]); SetPlayerVirtualWorld(playerid, Players[playerid][pWorld]); SetPlayerSkin(playerid, Players[playerid][pSkin]); SetCameraBehindPlayer(playerid); PlayerTextDrawHide(playerid, Players[playerid][pText][0]); TogglePlayerControllable(playerid, 1); AttachObjectsToPlayer(playerid); } SetupOutfitSelection(playerid) { Players[playerid][pOutfitIndex] = 1; Players[playerid][pOutfitTick] = 0; SetPlayerSkin(playerid, g_ValidSkinModels[Players[playerid][pOutfitIndex]]); UpdateOutfitSelection(playerid); SetPlayerInterior(playerid, 18); SetPlayerPos(playerid, 176.1029, -72.3869, 1001.8047); SetPlayerFacingAngle(playerid, 90.0000); SetPlayerCameraPos(playerid, 172.684814, -72.349136, 1002.249450); SetPlayerCameraLookAt(playerid, 175.603042, -72.376945, 1002.004699); SetPlayerVirtualWorld(playerid, (playerid + 2000)); PlayerTextDrawShow(playerid, Players[playerid][pText][0]); TogglePlayerControllable(playerid, 0); } UpdateOutfitSelection(playerid) { new string[48]; SetPlayerSkin(playerid, g_ValidSkinModels[Players[playerid][pOutfitIndex]]); format(string, sizeof(string), "%i ~<~ ~g~~h~%i~w~ ~>~ %i", GetPreviousArrayValue(g_ValidSkinModels, Players[playerid][pOutfitIndex]), g_ValidSkinModels[Players[playerid][pOutfitIndex]], GetNextArrayValue(g_ValidSkinModels, Players[playerid][pOutfitIndex])); PlayerTextDrawSetString(playerid, Players[playerid][pText][0], string); } SetFreezePos(playerid, Float:x, Float:y, Float:z, delay) { SetPlayerPos(playerid, x, y, z); TogglePlayerControllable(playerid, 0); SetTimerEx("UnfreezePlayer", delay, false, "i", playerid); } SetTeleportPos(playerid, Float:x, Float:y, Float:z, Float:angle, interior, world) { new vehicleid = GetPlayerVehicleID(playerid); if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { SetVehiclePos(vehicleid, x, y, z); SetVehicleZAngle(vehicleid, angle); LinkVehicleToInterior(vehicleid, interior); SetVehicleVirtualWorld(vehicleid, world); } else { SetPlayerPos(playerid, x, y, z); SetPlayerFacingAngle(playerid, angle); } SetPlayerInterior(playerid, interior); SetPlayerVirtualWorld(playerid, world); SetCameraBehindPlayer(playerid); } SetPlayerFadePos(playerid, Float:x, Float:y, Float:z, Float:angle, interior, world, bool:freeze = true) { FadeScreenForPlayer(playerid, FADE_SET_POSITION); TogglePlayerControllable(playerid, 0); Players[playerid][pSetPosition] = 1; SetTimerEx("SetPosition", 1000, false, "iffffiii", playerid, x, y, z, angle, interior, world, freeze); return 1; } SetPlayerPosEx(playerid, Float:x, Float:y, Float:z, Float:angle = -1.0, interior = -1, world = -1) { SetPlayerPos(playerid, x, y, z); if (angle != -1.0) SetPlayerFacingAngle(playerid, angle); if (interior >= 0) SetPlayerInterior(playerid, interior); if (world >= 0) SetPlayerVirtualWorld(playerid, world); Players[playerid][pDistance][0] = x; Players[playerid][pDistance][1] = y; Players[playerid][pDistance][2] = z; return SetCameraBehindPlayer(playerid); } SyncTimeForPlayer(playerid) { new hour, minute; gettime(hour, minute); if (GetPlayerInterior(playerid) > 0 || Players[playerid][pStoned] == STONED_TYPE_HEROIN) { SetPlayerTime(playerid, 12, 12); } else if (!IsPlayerLoggedIn(playerid)) { SetPlayerTime(playerid, 0, 0); } else { SetPlayerTime(playerid, hour, minute); } } GetDateAndTime() { // Returns the date as exactly as it appears in MySQL DATETIME. new string[32], date[6]; getdate(date[2], date[1], date[0]); gettime(date[3], date[4], date[5]); format(string, sizeof(string), "%i-%02d-%02d %02d:%02d:%02d", date[2], date[1], date[0], date[3], date[4], date[5]); return string; } GetVehicleDriver(vehicleid) { foreach (new i : Player) { if (GetPlayerVehicleID(i) == vehicleid && GetPlayerState(i) == PLAYER_STATE_DRIVER) { return i; } } return INVALID_PLAYER_ID; } UpdateFuelGauge(vehicleid) { new playerid = INVALID_PLAYER_ID, string[12]; if (IsPoweredVehicle(vehicleid)) { if ((playerid = GetVehicleDriver(vehicleid)) != INVALID_PLAYER_ID && Players[playerid][pShowFuel]) { new fuel = VehicleInformation[vehicleid][vFuel]; format(string, sizeof(string), "%i%%", fuel); PlayerTextDrawSetString(playerid, Players[playerid][pText][32], string); PlayerTextDrawDestroy(playerid, Players[playerid][pText][31]); Players[playerid][pText][31] = CreatePlayerTextDraw(playerid, (fuel / 2.56) + 534.0, 102.000000, "."); PlayerTextDrawFont(playerid, Players[playerid][pText][31], 1); PlayerTextDrawLetterSize(playerid, Players[playerid][pText][31], 0.470000, 1.400000); PlayerTextDrawColor(playerid, Players[playerid][pText][31], -1); PlayerTextDrawSetOutline(playerid, Players[playerid][pText][31], 1); PlayerTextDrawSetProportional(playerid, Players[playerid][pText][31], 1); PlayerTextDrawShow(playerid, Players[playerid][pText][31]); } } return 1; } ShowBanList(playerid, page = 1) { Players[playerid][pBanPage] = page; format(gExecute, sizeof(gExecute), "SELECT * FROM rp_blacklist ORDER BY ID DESC LIMIT %i, %i", (page - 1) * MAX_LISTED_BANS, MAX_LISTED_BANS); mysql_tquery(gConnection, gExecute, "OnViewBanList", "i", playerid); } ChangeName(playerid, name[]) { new oldname[MAX_PLAYER_NAME]; GetPlayerName(playerid, oldname, MAX_PLAYER_NAME); SetPlayerName(playerid, name); for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && IsHouseOwner(playerid, i)) { SetHouseOwner(i, playerid); } } for (new i = 0; i < MAX_COMPANIES; i ++) { if (IsValidCompanyID(i) && IsCompanyOwner(playerid, i)) { SetCompanyOwner(i, playerid); } } format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Username = '%s' WHERE Username = '%s'", name, oldname); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "INSERT INTO rp_namechanges (Player, OldName, NewName, Date) VALUES(%i, '%s', '%s', NOW())", Players[playerid][pID], oldname, name); mysql_tquery(gConnection, gExecute); } GetClosestCompanyID(playerid, type) { new index = INVALID_ID, Float:fX, Float:fY, Float:fZ, Float:fDist = 0.0, Float:fCurrent = 6000.0 ; GetPlayerPos(playerid, fX, fY, fZ); for (new i = 0; i < MAX_COMPANIES; i ++) { if (IsValidCompanyID(i) && Companies[i][cType] == type && (fDist = GetPlayerDistanceFromPoint(playerid, Companies[i][cSpawn][0], Companies[i][cSpawn][1], Companies[i][cSpawn][2])) < fCurrent) { fCurrent = fDist; index = i; } } return index; } GetClosestAutoShopID(playerid) { new index = INVALID_ID, Float:fX, Float:fY, Float:fZ, Float:fDist = 0.0, Float:fCurrent = 6000.0 ; GetPlayerPos(playerid, fX, fY, fZ); for (new i = 0; i < MAX_AUTO_SHOPS; i ++) { if (IsValidAutoShopID(i) && (fDist = GetPlayerDistanceFromPoint(playerid, AutoShops[i][asX], AutoShops[i][asY], AutoShops[i][asZ])) < fCurrent) { fCurrent = fDist; index = i; } } return index; } GetClosestHospital(playerid) { /* Determines the closest hospital from the player's position. Example: If the player died near Angel Pine, they will spawn at Angel Pine hospital. */ new index, Float:fX, Float:fY, Float:fZ, Float:fDist = 0.0, Float:fCurrent = 6000.0 ; GetPlayerPosEx(playerid, fX, fY, fZ); for (new i = 0; i < sizeof(g_HospitalLocations); i ++) { if ((fDist = GetPlayerDistanceFromPoint(playerid, g_HospitalLocations[i][0], g_HospitalLocations[i][1], g_HospitalLocations[i][2])) < fCurrent) { fCurrent = fDist; index = i; } } return index; } GetFurnitureListStart(category) { for (new i = 0; i < sizeof(g_FurnitureList); i ++) { if (g_FurnitureList[i][e_ModelCategory] == category) { return i; } } return INVALID_ID; } GetFurnitureListEnd(category) { new start = GetFurnitureListStart(category); for (new i = start; i < sizeof(g_FurnitureList); i ++) { if (i + 1 == sizeof(g_FurnitureList) || g_FurnitureList[i + 1][e_ModelCategory] != category) { return i; } } return INVALID_ID; } IsValidModelID(modelid) { for (new i = 0; i < sizeof(g_ValidObjectModels); i ++) { if (g_ValidObjectModels[i] == modelid) { return 1; } } return 0; } PreviewFurniture(playerid, index) { if(!IsPlayerInside(playerid)) return SendErrorMessage(playerid, "You can not place the furniture outside."); new Float:x, Float:y, Float:z, Float:angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); x += 2.0 * floatsin(-angle, degrees); y += 2.0 * floatcos(-angle, degrees); if (IsValidDynamicObject(gPreviewFurniture[playerid])) { DestroyDynamicObject(gPreviewFurniture[playerid]); } gPreviewFurniture[playerid] = CreateDynamicObject(g_FurnitureList[index][e_ModelID], x, y, z, 0.0, 0.0, angle, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_PREVIEW, gPreviewFurniture[playerid]); //EditDynamicObjectEx(playerid, EDIT_TYPE_FURNITURE, Furniture[furniture][fObject], furniture); SendInfoMessage(playerid, "Press ESC to cancel. Click the disk icon to save changes."); return 1; } UpdateFurniturePreviewer(playerid) { new index = Players[playerid][pPreviewIndex]; PlayerTextDrawFormatString(playerid, Players[playerid][pText][77], "~g~Model:~w~~n~%s~n~~n~~g~Price:~w~~n~%s", g_FurnitureList[index][e_ModelName], FormatNumber(g_FurnitureList[index][e_ModelPrice])); PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][76], g_FurnitureList[index][e_ModelID]); PlayerTextDrawHide(playerid, Players[playerid][pText][76]); PlayerTextDrawShow(playerid, Players[playerid][pText][76]); } ShowFurniturePreviewer(playerid, category) { for (new i = 0; i < sizeof(g_FurnitureList); i ++) { if (g_FurnitureList[i][e_ModelCategory] == category) { Players[playerid][pFurnitureMenu] = 1; Players[playerid][pCategory] = category; Players[playerid][pPreviewIndex] = i; PlayerTextDrawSetString(playerid, Players[playerid][pText][72], g_FurnitureTypes[category]); PlayerTextDrawFormatString(playerid, Players[playerid][pText][77], "~g~Model:~w~~n~%s~n~~n~~g~Price:~w~~n~%s", g_FurnitureList[i][e_ModelName], FormatNumber(g_FurnitureList[i][e_ModelPrice])); PlayerTextDrawSetPreviewModel(playerid, Players[playerid][pText][76], g_FurnitureList[i][e_ModelID]); if (category == FURNITURE_KITCHEN) { PlayerTextDrawSetPreviewRot(playerid, Players[playerid][pText][76], 0.0, 0.0, 180.0, 1.0); } HidePlayerTextDraws(playerid, 55, 57); ShowPlayerTextDraws(playerid, 70, 77); SelectTextDrawEx(playerid, -1); return 1; } } return 0; } HideFurniturePreviewer(playerid) { Players[playerid][pFurnitureMenu] = 0; HidePlayerTextDraws(playerid, 70, 77); CancelSelectTextDraw(playerid); } GetHouseOwner(house) { new playername[MAX_PLAYER_NAME]; if (Houses[house][hOwner]) strcpy(playername, Houses[house][hOwnerName]); else playername = "Nobody"; return playername; } SetHouseOwner(house, playerid) { if (playerid == INVALID_PLAYER_ID) { strcpy(Houses[house][hOwnerName], "Nobody", MAX_PLAYER_NAME); Houses[house][hOwner] = 0; } else if (IsPlayerLoggedIn(playerid)) { GetPlayerName(playerid, Houses[house][hOwnerName], MAX_PLAYER_NAME); Houses[house][hOwner] = Players[playerid][pID]; } UpdateHouse(house); SaveHouse(house); } IsBackdoorSetup(house) { return (IsValidHouseID(house) && Houses[house][hBackdoor][0] != 0.0 && Houses[house][hBackdoor][1] != 0.0 && Houses[house][hBackdoor][2] != 0.0); } IsBackdoorExitSetup(house) { return (IsValidHouseID(house) && Houses[house][hBackdoorInt][0] != 0.0 && Houses[house][hBackdoorInt][1] != 0.0 && Houses[house][hBackdoorInt][2] != 0.0); } UpdateHouse(house) { new string[128]; if (!Houses[house][hExists]) return 0; DestroyDynamicCP(Houses[house][hCheckpoint]); //DestroyDynamic3DTextLabel(Houses[house][hText]); DestroyDynamic3DTextLabel(Houses[house][hBackdoorText][0]); DestroyDynamic3DTextLabel(Houses[house][hBackdoorText][1]); if (Houses[house][hOwner]) { if (Houses[house][hRentPrice] > 0) format(string, sizeof(string), "Rent: {33CC33}%s{AFAFAF}\n%s\n(( /rent ))", FormatNumber(Houses[house][hRentPrice]), Houses[house][hAddress]); else format(string, sizeof(string), "%s", Houses[house][hAddress]); } else { format(string, sizeof(string), "Price: {33CC33}%s{AFAFAF}\n%s", FormatNumber(Houses[house][hValue]), Houses[house][hAddress]); } Houses[house][hCheckpoint] = CreateDynamicCP(Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], 2.0, Houses[house][hExteriorWorld], Houses[house][hExterior], .streamdistance = 15.0); //Houses[house][hText] = CreateDynamic3DTextLabel(string, COLOR_GREY, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Houses[house][hExteriorWorld], Houses[house][hExterior]); if (IsBackdoorSetup(house)) { Houses[house][hBackdoorText][0] = CreateDynamic3DTextLabel("House Backdoor\nEntrance Point", -1, Houses[house][hBackdoor][0], Houses[house][hBackdoor][1], Houses[house][hBackdoor][2], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Houses[house][hExteriorWorld], Houses[house][hExterior]); Houses[house][hBackdoorText][1] = CreateDynamic3DTextLabel("House Backdoor\nExit Point", -1, Houses[house][hBackdoorInt][0], Houses[house][hBackdoorInt][1], Houses[house][hBackdoorInt][2], 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Houses[house][hWorld], Houses[house][hInterior]); } return 1; } SaveHouse(house) { static queryString[1024]; if (!Houses[house][hExists]) return 0; format(queryString, sizeof(queryString), "UPDATE rp_houses SET `hOwner` = %i, `hOwnerName` = '%s', `hValue` = %i, `hAddress` = '%s', `hSpawnX` = %.4f, `hSpawnY` = %.4f, `hSpawnZ` = %.4f, `hSpawnA` = %.4f, `hIntX` = %.4f, `hIntY` = %.4f, `hIntZ` = %.4f, `hIntA` = %.4f, `hBackdoorX` = %.4f, `hBackdoorY` = %.4f, `hBackdoorZ` = %.4f", Houses[house][hOwner], Houses[house][hOwnerName], Houses[house][hValue], mysql_escaped(Houses[house][hAddress]), Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], Houses[house][hSpawn][3], Houses[house][hInt][0], Houses[house][hInt][1], Houses[house][hInt][2], Houses[house][hInt][3], Houses[house][hBackdoor][0], Houses[house][hBackdoor][1], Houses[house][hBackdoor][2] ); format(queryString, sizeof(queryString), "%s, `hBackdoorIntX` = %.4f, `hBackdoorIntY` = %.4f, `hBackdoorIntZ` = %.4f, `hExterior` = %i, `hExteriorWorld` = %i, `hInterior` = %i, `hWorld` = %i, `hLocked` = %i, `hAlarm` = %i, `hRentPrice` = %i WHERE `hID` = %i", queryString, Houses[house][hBackdoorInt][0], Houses[house][hBackdoorInt][1], Houses[house][hBackdoorInt][2], Houses[house][hExterior], Houses[house][hExteriorWorld], Houses[house][hInterior], Houses[house][hWorld], Houses[house][hLocked], Houses[house][hAlarm], Houses[house][hRentPrice], Houses[house][hID] ); return mysql_tquery(gConnection, queryString); } UpdateTimeTextDraw() { new string[8], hour, minute; gettime(hour, minute); format(string, sizeof(string), "%02d:%02d", hour, minute); TextDrawSetString(gGlobalTextdraws[1], string); } /*--------------------------------------------------------------------------- Callbacks These are the callbacks called by the SA-MP server. Make sure you add checks for NPCs also! ---------------------------------------------------------------------------*/ /* pWarnWeapon, pWarnHealth, pWarnArmor, pWarnAirbreak, pWarnSpeedhack, pWarnMoneyHack, pWarnAmmoHack, pWarnFlyHack */ forward IsAPlane(vehicle); public IsAPlane(vehicle) { new model = GetVehicleModel(vehicle); if(model == 592 || model == 577 || model == 511 || model == 512 || model == 593 || model == 520 || model == 553 || model == 476 || model == 519 || model == 460 || model == 513 || model == 548 || model == 417 || model == 487 || model == 488 || model == 497 || model == 563 || model == 447 || model == 469 ) { return 1; } return 0; } forward IsAHelicopter(vehicle); public IsAHelicopter(vehicle) { new model = GetVehicleModel(vehicle); if(model == 548 || model == 425 || model == 417 || model == 487 || model == 488 || model == 497 || model == 563 || model == 447 || model == 469) { return 1; } return 0; } forward UnFreezePlayer(playerid); public UnFreezePlayer(playerid) { TogglePlayerControllable(playerid, 1); return 1; } forward OnCheatDetected(playerid, ip_address[], type, code); public OnCheatDetected(playerid, ip_address[], type, code) { switch (code) { case 0 .. 1: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnAirbreak]++; if (Players[playerid][pWarnAirbreak] > 2) { SendAdminMessage(COLOR_RED, "Admin: %s might be airbreaking.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnAirbreak] = 0; } } case 2 .. 6: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnTeleport]++; if (Players[playerid][pWarnTeleport] > 2) { SendAdminMessage(COLOR_RED, "Admin: %s might be teleport hacking.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnTeleport] = 0; } } case 7 .. 8: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnFlyHack]++; if (Players[playerid][pWarnFlyHack] > 2) { SendAdminMessage(COLOR_RED, "Admin: %s might be flying.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnFlyHack] = 0; } } case 9 .. 10: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnSpeedhack]++; if (Players[playerid][pWarnSpeedhack] > 3) { SendAdminMessage(COLOR_RED, "Admin: %s might be speed hacking.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnSpeedhack] = 0; } } case 11 .. 12: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnHealth]++; if (Players[playerid][pWarnHealth] > 2) { SendAdminMessage(COLOR_RED, "Admin: %s might be health hacking.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnHealth] = 0; } } case 13: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnArmor]++; if (Players[playerid][pWarnArmor] > 2) { SendAdminMessage(COLOR_RED, "Admin: %s might be armor hacking.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnArmor] = 0; } } case 14: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnMoneyHack]++; if (Players[playerid][pWarnMoneyHack] > 3) { SendAdminMessage(COLOR_RED, "Admin: %s might be money hacking.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnMoneyHack] = 0; } } case 15: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnWeapon]++; if (Players[playerid][pWarnWeapon] > 2) { SendAdminMessage(COLOR_RED, "Admin: %s might be weapon hacking.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnWeapon] = 0; } } case 16 .. 17: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnAmmoHack]++; if (Players[playerid][pWarnAmmoHack] > 2) { SendAdminMessage(COLOR_RED, "Admin: %s might be ammo hacking.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnAmmoHack] = 0; } } case 19 .. 20: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnGodMode]++; if (Players[playerid][pWarnGodMode] > 1) { SendAdminMessage(COLOR_RED, "Admin: %s might be godmode hacking.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnGodMode] = 0; } } case 26: { if(CheckAdmin(playerid, 5)) return 1; Players[playerid][pWarnRapidFire]++; if (Players[playerid][pWarnRapidFire] > 2) { SendAdminMessage(COLOR_RED, "Admin: %s might be rapidfiring.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnRapidFire] = 0; } } /*case 39: { Players[playerid][pWarnDialogHack]++; if (Players[playerid][pWarnDialogHack] > 10) { SendAdminMessage(COLOR_RED, "Admin: %s might be dialog hacking.", ReturnNameEx(playerid, 0)); Players[playerid][pWarnDialogHack] = 0; } } default: { SendAdminMessage(COLOR_RED, "Admin: %s is hacking (code: %i).", ReturnNameEx(playerid, 0), code); }*/ } return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { new vehicle = GetVehicleID(vehicleid); if (IsValidVehicleID(vehicle) && !Vehicles[vehicle][vRentable]) { Vehicles[vehicle][vColor1] = color1; Vehicles[vehicle][vColor2] = color2; SaveVehicle(vehicle); } return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { new vehicle = GetVehicleID(vehicleid); if (IsValidVehicleID(vehicle) && !Vehicles[vehicle][vRentable]) { Vehicles[vehicle][vPaintjob] = paintjobid; SaveVehicle(vehicle); } return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { //new slot = GetVehicleComponentType(componentid); if (!Players[playerid][pModShop]) { SendAdminMessage(COLOR_RED, "Admin: %s tried to tune a vehicle without being in a mod shop.", ReturnNameEx(playerid)); return 0; } /*else { new vehicle = GetVehicleID(vehicleid); if (IsValidVehicleID(vehicle) && !Vehicles[vehicle][vRentable]) { Vehicles[vehicle][vMods][slot] = componentid; SaveComponent(vehicle, slot); } }*/ return 1; } public OnVehicleDeath(vehicleid, killerid) { ClearVehicleObjects(vehicleid); if (VehicleInformation[vehicleid][vAdmin]) { VehicleInformation[vehicleid][vAdmin] = 0; DestroyVehicleEx(vehicleid); } return 1; } public OnVehicleSpawn(vehicleid) { new id; ClearVehicleObjects(vehicleid); ResetVehicleStream(vehicleid); if (!IsPoweredVehicle(vehicleid)) { SetVehicleParamsEx(vehicleid, 1, 1, 0, 0, 0, 0, 0); } switch (GetVehicleModel(vehicleid)) { case 407, 416, 427, 428, 432, 433, 528, 544, 601: { SetVehicleHealth(vehicleid, 4000.0); } } VehicleInformation[vehicleid][vFuel] = 100; if ((id = GetVehicleID(vehicleid)) != INVALID_ID) { if (Vehicles[id][vRenter] != INVALID_PLAYER_ID) { Players[Vehicles[id][vRenter]][pRental] = INVALID_ID; Vehicles[id][vRenter] = INVALID_PLAYER_ID; UpdateVehicle(id); } else { ApplyModifications(id); } } return 1; } /*public OnPlayerAirbreak(playerid) { if (!Players[playerid][pAdmin]) { SendAdminMessage(COLOR_RED, "Admin: %s may be using airbreak hacks.", ReturnNameEx(playerid)); } return 1; }*/ public OnPlayerStreamIn(playerid, forplayerid) { UpdateNameTag(playerid, 2); /*if (Players[forplayerid][pMaskID] > 0) ShowPlayerNameTagForPlayer(playerid, forplayerid, 0); else ShowPlayerNameTagForPlayer(playerid, forplayerid, 1);*/ return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnRconLoginAttempt(ip[], password[], success) { foreach (new i : Player) { if (!strcmp(ReturnIP(i), ip)) { if (!success) { SendAdminMessage(COLOR_RED, "AdmCmd: %s has attempted to log into RCON.", ReturnNameEx(i, 0)); } else { if (Players[i][pAdmin] < 6) { SendAdminMessage(COLOR_RED, "Admin: %s has been banned for an unauthorized RCON login.", ReturnNameEx(i, 0)); AddToBlacklist(i, "Anticheat", "Unauthorized RCON login"); } } } } return 1; } public OnPlayerDeath(playerid, killerid, reason) { UpdateNameTag(playerid, 2); if (killerid != INVALID_PLAYER_ID) { if (IsWeaponCheater(killerid)) { Players[playerid][pUnfairDeath] = 1; SavePositionAndHealth(playerid); SendInfoMessage(playerid, "You have been killed by a cheater. Your items will be restored."); } format(gExecute, sizeof(gExecute), "INSERT INTO rp_deathlogs (Killer, Target, Reason, Date) VALUES('%s', '%s', '%s', NOW())", ReturnName(killerid), ReturnName(playerid), GetDeathReason(reason)); mysql_tquery(gConnection, gExecute); AdminDutyMessage(COLOR_RED, "Admin: %s (%i) has killed %s (%s).", ReturnNameEx(killerid, 0), killerid, ReturnNameEx(playerid, 0), GetDeathReason(reason)); } if (!Players[playerid][pUnfairDeath]) { SetPlayerValidArmor(playerid, 0.0); /*if (Players[playerid][pDeathState] == DEATH_STATE_NONE) { if ( (0 <= reason <= 3) && (5 <= reason <= 7) ) { SavePositionAndHealth(playerid); Players[playerid][pDeathState] = DEATH_STATE_MELEE; } else { SavePositionAndHealth(playerid); Players[playerid][pDeathState] = DEATH_STATE_INJURED; Players[playerid][pHospital] = HOSPITAL_ALL_SAINTS; } } else if (Players[playerid][pDeathState] == DEATH_STATE_MELEE) { SavePositionAndHealth(playerid); Players[playerid][pDeathState] = DEATH_STATE_INJURED; Players[playerid][pHospital] = HOSPITAL_ALL_SAINTS; } else if (Players[playerid][pDeathState] == DEATH_STATE_INJURED) { Players[playerid][pDeathState] = DEATH_STATE_HOSPITAL; ResetLastShots(playerid); }*/ /*if ( (0 <= reason <= 3) && (5 <= reason <= 7) ) { }*/ if (Players[playerid][pDeathState] == DEATH_STATE_NONE) { SavePositionAndHealth(playerid); Players[playerid][pDeathState] = DEATH_STATE_INJURED; //Players[playerid][pHospital] = GetClosestHospital(playerid); Players[playerid][pHospital] = HOSPITAL_ALL_SAINTS; } else if (Players[playerid][pDeathState] == DEATH_STATE_INJURED) { DestroyDynamic3DTextLabel(Players[playerid][pInjuredText]); Players[playerid][pInjuredText] = INVALID_3DTEXT_ID; Players[playerid][pDeathState] = DEATH_STATE_HOSPITAL; //Players[playerid][pDeathState] = DEATH_STATE_NONE; SendToDefaultSpawn(playerid); ResetPlayer(playerid); ResetLastShots(playerid); } } return 1; } public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) { newAmmo[playerid] = GetPlayerAmmo(playerid); /*if (!(22 <= weaponid <= 38)) { SendAdminMessage(COLOR_RED, "Admin: %s may be using a weapon CLEO (invalid weapon ID).", ReturnNameEx(playerid)); return 0; }*/ if (IsPlayerInAnyVehicle(playerid) && !IsDrivebyWeapon(weaponid)) { return 0; } if (IsWeaponCheater(playerid) && (hittype == BULLET_HIT_TYPE_PLAYER && hitid != INVALID_PLAYER_ID)) { // Prevent hackers from damaging other players. return 0; } if(newAmmo[playerid] < oldAmmo[playerid]) { oldAmmo[playerid] = GetPlayerAmmo(playerid); return 1; } else if(newAmmo[playerid] > oldAmmo[playerid]) //Was a simple mistake. xD { SendAdminMessage(COLOR_RED, "Admin: %s might be ammo-hacking.", ReturnNameEx(playerid, 0)); } new rand = Random(0,10); foreach (new i : Player) { if (rand == 0 && !Players[playerid][pAdminDuty] && i != playerid && IsPlayerInRangeOfPlayer(i, playerid, 200.0) && !IsPlayerInRangeOfPlayer(i, playerid, 70.0)) { SendFormatMessage(i, COLOR_PURPLE, "* You hear a gun shot go off in the distance."); } } if (GetPlayerWeaponState(playerid) == WEAPONSTATE_LAST_BULLET && GetPlayerAmmo(playerid) == 1 && !IsPlayerHoldingTazer(playerid)) { if (Weapons[playerid][wPrimary] == weaponid) { Weapons[playerid][wPrimaryAmmo] = 0; } if (Weapons[playerid][wSecondary] == weaponid) { Weapons[playerid][wSecondaryAmmo] = 0; } } if (22 <= weaponid <= 34) { if (weaponid == 23 && Players[playerid][pTazer]) { PlayNearbySound(playerid, 6003); SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 347, 6); SetTimerEx("RechargeTazer", 2000, false, "i", playerid); ShowFooterText(playerid, "Recharging tazer, please wait...", 2000); } else { // We don't want on-duty admins to drop shells, do we? if (!Players[playerid][pAdminDuty] && !IsPlayerInAnyVehicle(playerid)) { if ((gettime() - Players[playerid][pFireTime]) > 3) { new Float:x, Float:y, Float:z, Float:angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); x += (0.6 * floatsin(-angle, degrees)) + random(2); y += (0.6 * floatcos(-angle, degrees)) - random(2); //AddShellCasing(GetCurrentWeaponSerial(playerid), weaponid, x, y, z, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); Players[playerid][pFireTime] = gettime(); } } } } return 1; } /*public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart) { if ((22 <= weaponid <= 38) && (amount <= 3.0)) { // Most damage scripts don't check for pistol whips... discard any script calls. return 1; } return 1; }*/ public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) { if(Players[playerid][pDeathState] != DEATH_STATE_INJURED) { new hpp = floatround(amount, floatround_round), formatHP[128]; format(formatHP, sizeof(formatHP), "{f70000}-%d", hpp); SetPlayerChatBubble(playerid, formatHP, -1, 10.0, 1000); UpdateNameTag(playerid, 2); } if (Players[playerid][pAdminDuty] > 0) { SetPlayerHealth(playerid, 100); return 1; } if ((22 <= weaponid <= 38) && (amount <= 3.0)) { // Most damage scripts don't check for pistol whips... discard any script calls. return 1; } if ((0 <= weaponid <= 34) && (BODY_PART_TORSO <= bodypart <= BODY_PART_HEAD)) { LastShots[playerid][bodypart][lWeaponID] = weaponid; LastShots[playerid][bodypart][lWeaponShots]++; } if (IsValidDamageWeapon(weaponid) && WeaponDamages[weaponid] != 0.0 && !IsPlayerHoldingTazer(playerid)) { ProcessDamage(playerid, weaponid); } if ((22 <= weaponid <= 38) && (!Players[playerid][pBrokenLeg]) && (bodypart == BODY_PART_LEFT_LEG || bodypart == BODY_PART_RIGHT_LEG)) { SendInfoMessage(playerid, "You have been shot in your leg. You will be unable to jump or sprint."); Players[playerid][pBrokenLeg] = 1; } if (issuerid != INVALID_PLAYER_ID && weaponid <= 1) // Fitness damage. { new Float:health, Float:armor, Float:damage; GetPlayerHealth(playerid, health); GetPlayerArmour(playerid, armor); damage = amount + (0.02 * Players[issuerid][pFitness]); if (armor > 0.0) { armor -= damage; if (armor <= 0.0) SetPlayerValidArmor(playerid, 0.0); else SetPlayerValidArmor(playerid, armor); } else { SetPlayerHealth(playerid, health - damage); } } if (issuerid != INVALID_PLAYER_ID && Players[issuerid][pTazer] && weaponid == 23) { if (!Players[playerid][pTazed] && !Players[playerid][pAdminDuty]) { Players[playerid][pTazed] = 10; TogglePlayerControllable(playerid, false); ApplyAnimation(playerid, "CRACK", "crckdeth4", 4.1, 0, 0, 0, 1, 0, 1); ShowActionBubble(issuerid, "* %s charges his stungun at %s.", ReturnNameEx(issuerid), ReturnNameEx(playerid)); ShowActionBubble(playerid, "* %s falls down after being stunned.", ReturnNameEx(playerid)); SendInfoMessage(issuerid, "You have stunned %s with your taser.", ReturnNameEx(playerid)); GameTextForPlayer(playerid, "~r~Stunned", 10000, 3); } } if (issuerid != INVALID_PLAYER_ID && weaponid == 41) { SetPlayerDrunkLevel(playerid, 4000); ShowActionBubble(issuerid, "* %s hits %s with their pepper spray.", ReturnNameEx(issuerid), ReturnNameEx(playerid)); ShowActionBubble(playerid, "* %s gets hit by %s's pepper spray.", ReturnNameEx(playerid), ReturnNameEx(issuerid)); } if (!Players[playerid][pBleeding]) { switch (weaponid) { case 4, 8, 9, 22..34, 38: { if (!IsPlayerLoggedIn(playerid) || IsPlayerJailed(playerid) || !Players[playerid][pSetupInfo] || GetPlayerArmourEx(playerid) > 0.0) { return 1; } if (weaponid == 23 && Players[issuerid][pTazer]) { return 1; } Players[playerid][pBleeding] = 1; Players[playerid][pBleedingTime] = 0; new Float:x, Float:y, Float:z, Float:angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); //SpawnBloodObject(playerid); //AddBlood(playerid, x, y, z, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); } } } return 1; } Float:DistanceBP(Float:x, Float:y, Float:z, Float:tx, Float:ty, Float:tz) { new Float:temp1, Float:temp2 , Float:temp3; temp1 = x-tx;temp2 = y-ty; temp3 = z-tz; return floatsqroot(temp1*temp1+temp2*temp2+temp3*temp3); } public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) { if (response == EDIT_RESPONSE_CANCEL) { switch (Players[playerid][pEdit]) { case EDIT_TYPE_PREVIEW: { DestroyDynamicObject(gPreviewFurniture[playerid]); gPreviewFurniture[playerid] = INVALID_OBJECT_ID; } case EDIT_TYPE_FURNITURE: { UpdateFurniture(Players[playerid][pEditID]); } case EDIT_TYPE_PUMP: { UpdateGasPump(Players[playerid][pEditID]); } case EDIT_TYPE_ATM: { UpdateATM(Players[playerid][pEditID]); } case EDIT_TYPE_GATE, EDIT_TYPE_GATE_MOVE: { UpdateGate(Players[playerid][pEditID]); } case EDIT_TYPE_OBJECT: { UpdateObject(Players[playerid][pEditID]); } case EDIT_TYPE_TRASHBIN: { UpdateTrashbin(Players[playerid][pEditID]); } case EDIT_TYPE_TAG: { UpdateTag(Players[playerid][pEditID]); } case EDIT_TYPE_SPRAY: { UpdateSprayTag(Players[playerid][pEditID]); } case EDIT_TYPE_PAYPHONE: { UpdatePayphone(Players[playerid][pEditID]); } case EDIT_TYPE_DEPLOY: { SendInfoMessage(playerid, "Cancelled."); DestroyDynamicObject( gPreviewDeploy[playerid] ); } case EDIT_TYPE_TRUNK: { new dataid = Players[playerid][pEditID]; AttachDynamicObjectToVehicle(StoredItems[ dataid ][vehicleItem], GetPVarInt(playerid, "tempVehicle"), 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); StoredItems[ dataid ][vehicleOffset][0] = 0.0; StoredItems[ dataid ][vehicleOffset][1] = 0.0; StoredItems[ dataid ][vehicleOffset][2] = 0.0; StoredItems[ dataid ][vehicleOffset][3] = 0.0; StoredItems[ dataid ][vehicleOffset][4] = 0.0; StoredItems[ dataid ][vehicleOffset][5] = 0.0; format(gExecute, sizeof(gExecute), "UPDATE rp_items SET vehOffsetX = 0.0, vehOffsetY = 0.0, vehOffsetZ = 0.0, vehRotX = 0.0, vehRotY = 0.0, vehRotZ = 0.0 WHERE itemID = %i", StoredItems[ dataid ][stID]); mysql_tquery(gConnection, gExecute); DeletePVar(playerid, "tempVehicle"); } } Players[playerid][pEdit] = EDIT_TYPE_NONE; } else if (response == EDIT_RESPONSE_FINAL) { switch (Players[playerid][pEdit]) { case EDIT_TYPE_DEPLOY: { SendInfoMessage(playerid, "Saved."); DeployedItems[ gPreviewDeployID[playerid] ][dpX] = x; DeployedItems[ gPreviewDeployID[playerid] ][dpY] = y; DeployedItems[ gPreviewDeployID[playerid] ][dpZ] = z; DeployedItems[ gPreviewDeployID[playerid] ][dpA] = rz; SetDynamicObjectPos(objectid, x, y, z); SetDynamicObjectRot(objectid, rx, ry, rz); } case EDIT_TYPE_PREVIEW: // Furniture preview { //if (!IsPointInRangeOfPoint(20.0, x, y, z, Houses[Players[playerid][pHouse]][hSpawn][0], Houses[Players[playerid][pHouse]][hSpawn][1], Houses[Players[playerid][pHouse]][hSpawn][2]) && !IsPointInRangeOfPoint(100.0, x, y, z, Houses[Players[playerid][pHouse]][hInt][0], Houses[Players[playerid][pHouse]][hInt][1], Houses[Players[playerid][pHouse]][hInt][2])) if (GetCurrentHouse(playerid) != Players[playerid][pHouse] && !IsPlayerNearPoint(playerid, 30.0, Houses[Players[playerid][pHouse]][hSpawn][0], Houses[Players[playerid][pHouse]][hSpawn][1], Houses[Players[playerid][pHouse]][hSpawn][2])) { SendErrorMessage(playerid, "The object is out of range from your house."); } else if (!PlayerCanAfford(playerid, g_FurnitureList[Players[playerid][pPreviewIndex]][e_ModelPrice])) { SendErrorMessage(playerid, "You don't have enough money."); } else { new id = AddFurniture(Players[playerid][pHouse], g_FurnitureList[Players[playerid][pPreviewIndex]][e_ModelID], x, y, z, rx, ry, rz, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); if (id == INVALID_ID) { SendErrorMessage(playerid, "There are no available furniture slots."); SendAdminMessage(COLOR_RED, "Admin: %s has failed to add furniture! \"MAX_FURNITURE\" needs to be adjusted.", ReturnNameEx(playerid, 0)); } else { RemoveMoney(playerid, g_FurnitureList[Players[playerid][pPreviewIndex]][e_ModelPrice]); Statistics[playerid][sFurnitureFees] += g_FurnitureList[Players[playerid][pPreviewIndex]][e_ModelPrice]; ShowFurnitureCategories(playerid); SendInfoMessage(playerid, "Furniture purchased for {33CC33}%s{FFFFFF}. Use /house to manage your furniture.", FormatNumber(g_FurnitureList[Players[playerid][pPreviewIndex]][e_ModelPrice])); } } DestroyDynamicObject(gPreviewFurniture[playerid]); gPreviewFurniture[playerid] = INVALID_OBJECT_ID; } case EDIT_TYPE_FURNITURE: // House furniture { Furniture[Players[playerid][pEditID]][fSpawn][0] = x; Furniture[Players[playerid][pEditID]][fSpawn][1] = y; Furniture[Players[playerid][pEditID]][fSpawn][2] = z; Furniture[Players[playerid][pEditID]][fSpawn][3] = rx; Furniture[Players[playerid][pEditID]][fSpawn][4] = ry; Furniture[Players[playerid][pEditID]][fSpawn][5] = rz; UpdateFurniture(Players[playerid][pEditID]); SaveFurniture(Players[playerid][pEditID]); SendInfoMessage(playerid, "You have edited furniture ID: %i.", Players[playerid][pEditID]); } case EDIT_TYPE_PUMP: // Gas pumps { GasPumps[Players[playerid][pEditID]][gpSpawn][0] = x; GasPumps[Players[playerid][pEditID]][gpSpawn][1] = y; GasPumps[Players[playerid][pEditID]][gpSpawn][2] = z; GasPumps[Players[playerid][pEditID]][gpSpawn][3] = rz; UpdateGasPump(Players[playerid][pEditID]); SaveGasPump(Players[playerid][pEditID]); SendInfoMessage(playerid, "You have edited gas pump ID: %i.", Players[playerid][pEditID]); } case EDIT_TYPE_ATM: // ATM machines { ATM[Players[playerid][pEditID]][atmSpawn][0] = x; ATM[Players[playerid][pEditID]][atmSpawn][1] = y; ATM[Players[playerid][pEditID]][atmSpawn][2] = z; ATM[Players[playerid][pEditID]][atmSpawn][3] = rz; UpdateATM(Players[playerid][pEditID]); SaveATM(Players[playerid][pEditID]); SendInfoMessage(playerid, "You have edited ATM machine ID: %i.", Players[playerid][pEditID]); } case EDIT_TYPE_GATE: // Gates { Gates[Players[playerid][pEditID]][gSpawn][0] = x; Gates[Players[playerid][pEditID]][gSpawn][1] = y; Gates[Players[playerid][pEditID]][gSpawn][2] = z; Gates[Players[playerid][pEditID]][gSpawn][3] = rx; Gates[Players[playerid][pEditID]][gSpawn][4] = ry; Gates[Players[playerid][pEditID]][gSpawn][5] = rz; UpdateGate(Players[playerid][pEditID]); SaveGate(Players[playerid][pEditID]); SendInfoMessage(playerid, "You have edited gate ID: %i.", Players[playerid][pEditID]); } case EDIT_TYPE_GATE_MOVE: // Gate destination { Gates[Players[playerid][pEditID]][gMove][0] = x; Gates[Players[playerid][pEditID]][gMove][1] = y; Gates[Players[playerid][pEditID]][gMove][2] = z; Gates[Players[playerid][pEditID]][gMove][3] = rx; Gates[Players[playerid][pEditID]][gMove][4] = ry; Gates[Players[playerid][pEditID]][gMove][5] = rz; UpdateGate(Players[playerid][pEditID]); SaveGate(Players[playerid][pEditID]); SendInfoMessage(playerid, "You have edited the moving destination for gate ID: %i.", Players[playerid][pEditID]); } case EDIT_TYPE_OBJECT: // Script objects { Objects[Players[playerid][pEditID]][oX] = x; Objects[Players[playerid][pEditID]][oY] = y; Objects[Players[playerid][pEditID]][oZ] = z; Objects[Players[playerid][pEditID]][oRX] = rx; Objects[Players[playerid][pEditID]][oRY] = ry; Objects[Players[playerid][pEditID]][oRZ] = rz; UpdateObject(Players[playerid][pEditID]); SaveObject(Players[playerid][pEditID]); SendInfoMessage(playerid, "You have edited object ID: %i.", Players[playerid][pEditID]); } case EDIT_TYPE_TRASHBIN: // Trashbins { Trashbins[Players[playerid][pEditID]][tX] = x; Trashbins[Players[playerid][pEditID]][tY] = y; Trashbins[Players[playerid][pEditID]][tZ] = z; Trashbins[Players[playerid][pEditID]][tA] = rz; UpdateTrashbin(Players[playerid][pEditID]); SaveTrashbin(Players[playerid][pEditID]); SendInfoMessage(playerid, "You have edited trashbin ID: %i.", Players[playerid][pEditID]); } case EDIT_TYPE_TAG: // Spray tags { Tags[Players[playerid][pEditID]][tagX] = x; Tags[Players[playerid][pEditID]][tagY] = y; Tags[Players[playerid][pEditID]][tagZ] = z; Tags[Players[playerid][pEditID]][tagA] = rz; UpdateTag(Players[playerid][pEditID]); SaveTag(Players[playerid][pEditID]); SendInfoMessage(playerid, "You have edited tag ID: %i.", Players[playerid][pEditID]); } case EDIT_TYPE_SPRAY: // Spray tags { SprayTags[Players[playerid][pEditID]][sX] = x; SprayTags[Players[playerid][pEditID]][sY] = y; SprayTags[Players[playerid][pEditID]][sZ] = z; SprayTags[Players[playerid][pEditID]][sA] = rz; UpdateSprayTag(Players[playerid][pEditID]); SaveSprayTag(Players[playerid][pEditID]); SendInfoMessage(playerid, "You have edited spray tag ID: %i.", Players[playerid][pEditID]); } case EDIT_TYPE_PAYPHONE: // Payphones { Payphones[Players[playerid][pEditID]][phX] = x; Payphones[Players[playerid][pEditID]][phY] = y; Payphones[Players[playerid][pEditID]][phZ] = z; Payphones[Players[playerid][pEditID]][phA] = rz; UpdatePayphone(Players[playerid][pEditID]); SavePayphone(Players[playerid][pEditID]); SendInfoMessage(playerid, "You have edited payphone ID: %i.", Players[playerid][pEditID]); } case EDIT_TYPE_TRUNK: { new vehicle = GetPVarInt(playerid, "tempVehicle"), dataid = Players[playerid][pEditID], Float:ofx, Float:ofy, Float:ofz, Float:ofaz, Float:finalx, Float:finaly, Float:px, Float:py, Float:pz, Float:roz; new Float: oldPos[3]; GetXYZOfVehiclePart(vehicle, VEHICLE_PART_HOOD, oldPos[0], oldPos[1], oldPos[2]); new Float: limit = DistanceBP(x, y, z, oldPos[0], oldPos[1], oldPos[2]); GetVehiclePos(vehicle, px, py, pz); GetVehicleZAngle(vehicle, roz); ofx = x-px; ofy = y-py; ofz = z-pz; ofaz = rz-roz; finalx = ofx*floatcos(roz, degrees)+ofy*floatsin(roz, degrees); finaly = -ofx*floatsin(roz, degrees)+ofy*floatcos(roz, degrees); if(limit > 1.8) // over the limit { AttachDynamicObjectToVehicle(StoredItems[ dataid ][vehicleItem], vehicle, 0, 0, 0, 0, 0, 0); StoredItems[ dataid ][vehicleOffset][0] = 0.0; StoredItems[ dataid ][vehicleOffset][1] = 0.0; StoredItems[ dataid ][vehicleOffset][2] = 0.0; StoredItems[ dataid ][vehicleOffset][3] = 0.0; StoredItems[ dataid ][vehicleOffset][4] = 0.0; StoredItems[ dataid ][vehicleOffset][5] = 0.0; format(gExecute, sizeof(gExecute), "UPDATE rp_items SET vehOffsetX = 0.0, vehOffsetY = 0.0, vehOffsetZ = 0.0, vehRotX = 0.0, vehRotY = 0.0, vehRotZ = 0.0 WHERE itemID = %i", StoredItems[ dataid ][stID]); mysql_tquery(gConnection, gExecute); DeletePVar(playerid, "tempVehicle"); } else { AttachDynamicObjectToVehicle(StoredItems[ dataid ][vehicleItem], vehicle, finalx, finaly, ofz, rx, ry, ofaz); StoredItems[ dataid ][vehicleOffset][0] = finalx; StoredItems[ dataid ][vehicleOffset][1] = finaly; StoredItems[ dataid ][vehicleOffset][2] = ofz; StoredItems[ dataid ][vehicleOffset][3] = rx; StoredItems[ dataid ][vehicleOffset][4] = ry; StoredItems[ dataid ][vehicleOffset][5] = ofaz; format(gExecute, sizeof(gExecute), "UPDATE rp_items SET vehOffsetX = %f, vehOffsetY = %f, vehOffsetZ = %f, vehRotX = %f, vehRotY = %f, vehRotZ = %f WHERE itemID = %i", finalx, finaly, ofz, rx, ry, ofaz, StoredItems[ dataid ][stID]); mysql_tquery(gConnection, gExecute); DeletePVar(playerid, "tempVehicle"); } } } if(response == EDIT_RESPONSE_UPDATE) { switch (Players[playerid][pEdit]) { case EDIT_TYPE_TRUNK: { new Float: oldPos[3]; GetXYZOfVehiclePart(GetPVarInt(playerid, "tempVehicle"), VEHICLE_PART_HOOD, oldPos[0], oldPos[1], oldPos[2]); new Float: limit = DistanceBP(x, y, z, oldPos[0], oldPos[1], oldPos[2]); if(limit > 1.8) // over the limit { SendClientMessage(playerid, COLOR_LIGHTRED, "Please adjust your position it's over the vehicle size!"); } } } } Players[playerid][pEdit] = EDIT_TYPE_NONE; Players[playerid][pEditID] = INVALID_ID; } return 1; } 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) { if (fScaleX > 3.0000) fScaleX = 3.0; if (fScaleY > 3.0000) fScaleY = 3.0; if (fScaleZ > 3.0000) fScaleZ = 3.0; if (!response) { switch (Players[playerid][pEdit]) { case EDIT_TYPE_PREVIEW: { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC); } case EDIT_TYPE_ACCESSORY: { AttachObjectsToPlayer(playerid); } case EDIT_TYPE_WEAPON: { UpdateWeaponOffset(playerid, Players[playerid][pSelected]); } } Players[playerid][pEdit] = EDIT_TYPE_NONE; } else { switch (Players[playerid][pEdit]) { case EDIT_TYPE_PREVIEW: { new company = GetCurrentCompany(playerid); if (IsValidCompanyID(company) && Companies[company][cType] == COMPANY_CLOTHES) { if (!PlayerCanAfford(playerid, Products[company][Players[playerid][pSelected]][prPrice])) { SendErrorMessage(playerid, "You don't have enough money."); } else { new id = AddAccessory(playerid, GetAccessoryNameFromModel(modelid), modelid, boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ); if (id == INVALID_ID) { return SendErrorMessage(playerid, "You can't have more than %i accessories.", MAX_ACCESSORIES); } else { RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC); AttachObjectsToPlayer(playerid); //RemoveMoney(playerid, Products[company][Players[playerid][pSelected]][prPrice]); PurchaseProduct(playerid, company, Players[playerid][pSelected]); SendInfoMessage(playerid, "Accessory purchased for {33CC33}%s{FFFFFF}. Use /accessories to edit it.", FormatNumber(Products[company][Players[playerid][pSelected]][prPrice])); SaveAccessory(playerid); } } } } case EDIT_TYPE_ACCESSORY: { Accessories[playerid][Players[playerid][pEditID]][aOffset][0] = fOffsetX; Accessories[playerid][Players[playerid][pEditID]][aOffset][1] = fOffsetY; Accessories[playerid][Players[playerid][pEditID]][aOffset][2] = fOffsetZ; Accessories[playerid][Players[playerid][pEditID]][aOffset][3] = fRotX; Accessories[playerid][Players[playerid][pEditID]][aOffset][4] = fRotY; Accessories[playerid][Players[playerid][pEditID]][aOffset][5] = fRotZ; Accessories[playerid][Players[playerid][pEditID]][aOffset][6] = fScaleX; Accessories[playerid][Players[playerid][pEditID]][aOffset][7] = fScaleY; Accessories[playerid][Players[playerid][pEditID]][aOffset][8] = fScaleZ; SaveAccessory(playerid, Players[playerid][pEditID]); SendInfoMessage(playerid, "Your changes have been saved."); } case EDIT_TYPE_WEAPON: { if (index == ATTACHED_SLOT_MELEE) { SetWeaponOffset(playerid, GetWeaponOffsetType(Weapons[playerid][wMelee]), boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ); UpdateWeaponOffset(playerid, WEAPON_MELEE); } else if (index == ATTACHED_SLOT_PRIMARY) { SetWeaponOffset(playerid, GetWeaponOffsetType(Weapons[playerid][wPrimary]), boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ); UpdateWeaponOffset(playerid, WEAPON_PRIMARY); } else if (index == ATTACHED_SLOT_SECONDARY) { SetWeaponOffset(playerid, GetWeaponOffsetType(Weapons[playerid][wSecondary]), boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ); UpdateWeaponOffset(playerid, WEAPON_SECONDARY); } else if (index == ATTACHED_SLOT_TERTIARY) { SetWeaponOffset(playerid, GetWeaponOffsetType(Weapons[playerid][wTertiary]), boneid, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ); UpdateWeaponOffset(playerid, WEAPON_TERTIARY); } SendInfoMessage(playerid, "Your changes have been saved."); } } Players[playerid][pEdit] = EDIT_TYPE_NONE; } return 1; } public OnPlayerEnterDynamicCP(playerid, checkpointid) { if (IsPlayerSpectating(playerid)) return 1; if (checkpointid == Checkpoints[cpEmployment]) { if (Players[playerid][pWorking]) { return SendErrorMessage(playerid, "You must stop working first - use /stop to do this."); } else { Dialog_Show(playerid, Employment, DIALOG_STYLE_LIST, "{FFFFFF}Select Employment", "Transporter\nForklifter\nMiner\nTaxi Driver\nPizzaboy\nTrashman\nMechanic", "Choose", "Cancel"); } } else if (checkpointid == Checkpoints[cpPolice]) { Dialog_Show(playerid, VehicleMenu, DIALOG_STYLE_LIST, "{FFFFFF}Tickets/Impounding", "Pay Tickets\nRelease Vehicle", "Select", "Cancel"); } for (new i = 0; i < MAX_HOUSES; i ++) { if (Houses[i][hExists] && Houses[i][hCheckpoint] == checkpointid && Players[playerid][pHouseInfo] != i) { ShowInfoForHouse(playerid, i); if(CheckAdmin(playerid, 5)) { SendInfoMessage(playerid, "The house ID is: %i. Use /edithouse to edit it.", i); } else if (IsHouseOwner(playerid, i)) { SendInfoMessage(playerid, "Use /house to access the house menu."); } } } for (new i = 0; i < MAX_COMPANIES; i ++) { if ((Companies[i][cExists] && Companies[i][cCheckpoint] == checkpointid) && Players[playerid][pCompanyInfo] != i) { ShowInfoForCompany(playerid, i); if(CheckAdmin(playerid, 5)) { SendInfoMessage(playerid, "The company ID is: %i. Use /editcompany to edit it.", i); } else if (IsCompanyOwner(playerid, i)) { SendInfoMessage(playerid, "Use /company to access the company menu."); } } } return 1; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { if (Players[playerid][pTazed] || (Players[playerid][pHandcuffed] && !ispassenger) || GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_CARRY) { ClearAnimations(playerid); return 0; } if(ispassenger == 0) { EnteringVehicle[playerid] = 1; EnteringVeh_Timer[playerid] = SetTimerEx("EnteringVehicleTim", 3000, false, "ii", playerid, vehicleid); } return 1; } forward EnteringVehicleTim(playerid, vehicleid); public EnteringVehicleTim(playerid, vehicleid) { EnteringVehicle[playerid] = 0; GetVehicleHealth(vehicleid, vehicleStartingHealth[playerid]); return 1; } public OnPlayerEnterCheckpoint(playerid) { new vehicleid = GetPlayerVehicleID(playerid); if (IsPlayerSpectating(playerid)) return 1; if (Players[playerid][pDrivingTest]) { Players[playerid][pDrivingCP]++; if (Players[playerid][pDrivingCP] >= sizeof(g_TestCheckpoints)) { SetVehicleToRespawn(vehicleid); DisablePlayerCheckpoint(playerid); if (GetVehicleHealthEx(vehicleid) < 980.0) { SendErrorMessage(playerid, "The vehicle has been damaged too much."); } else { Players[playerid][pCarLicense] = 1; SendInfoMessage(playerid, "You have passed the driving test and received your license (time: %s).", ReturnElapsed(Players[playerid][pTestTime])); } Players[playerid][pDrivingTest] = 0; Players[playerid][pDrivingCP] = 0; Players[playerid][pTestTime] = 0; } else { SetPlayerCheckpoint(playerid, g_TestCheckpoints[Players[playerid][pDrivingCP]][0], g_TestCheckpoints[Players[playerid][pDrivingCP]][1], g_TestCheckpoints[Players[playerid][pDrivingCP]][2], 3.0); } } else { switch (Players[playerid][pCheckpoint]) { case CHECKPOINT_GPS: { ResetCheckpoint(playerid); } case CHECKPOINT_PACKAGE: { switch (Players[playerid][pPackageType]) { case PACKAGE_TYPE_MELEE: { if (!IsSufficientSpace(playerid, "Melee Package")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Melee Package"); } } case PACKAGE_TYPE_PISTOLS: { if (!IsSufficientSpace(playerid, "Pistol Package")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Pistol Package"); } } case PACKAGE_TYPE_SHOTGUNS: { if (!IsSufficientSpace(playerid, "Shotgun Package")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Shotgun Package"); } } case PACKAGE_TYPE_SMGS: { if (!IsSufficientSpace(playerid, "SMG Package")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "SMG Package"); } } case PACKAGE_TYPE_RIFLES: { if (!IsSufficientSpace(playerid, "Rifle Package")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Rifle Package"); } } case PACKAGE_TYPE_STEROIDS: { if (!IsSufficientSpace(playerid, "Steroids")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Steroids", Players[playerid][pPackageGrams]); } } case PACKAGE_TYPE_HEROIN: { if (!IsSufficientSpace(playerid, "Heroin")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Opium Poppies", Players[playerid][pPackageGrams]); } } case PACKAGE_TYPE_LSD: { if (!IsSufficientSpace(playerid, "LSD")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "LSD", Players[playerid][pPackageGrams]); } } case PACKAGE_TYPE_ECSTASY: { if (!IsSufficientSpace(playerid, "Ecstasy")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Ecstasy", Players[playerid][pPackageGrams]); } } case PACKAGE_TYPE_MARIJUANA: { if (!IsSufficientSpace(playerid, "Marijuana")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Marijuana Seeds", Players[playerid][pPackageGrams]); } } case PACKAGE_TYPE_CRACK: { if (!IsSufficientSpace(playerid, "Crack")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Crack", Players[playerid][pPackageGrams]); } } case PACKAGE_TYPE_COCAINE: { if (!IsSufficientSpace(playerid, "Cocaine")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Cocaine", Players[playerid][pPackageGrams]); AddItemToInventory(playerid, "Baking Soda", Players[playerid][pPackageGrams]); } } case PACKAGE_TYPE_METH: { if (!IsSufficientSpace(playerid, "Methamphetamine")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "Methamphetamine", Players[playerid][pPackageGrams]); } } case PACKAGE_TYPE_PCP: { if (!IsSufficientSpace(playerid, "PCP")) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "PCP", Players[playerid][pPackageGrams]); } } case PACKAGE_TYPE_AMMO_1: { if ( !IsSufficientSpace(playerid, "9x19mm Ammo") ) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "9x19mm Ammo", 500); } } case PACKAGE_TYPE_AMMO_2: { if ( !IsSufficientSpace(playerid, ".50cal Ammo") ) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, ".50cal Ammo", 500); } } case PACKAGE_TYPE_AMMO_3: { if ( !IsSufficientSpace(playerid, "12 Gauge Ammo") ) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "12 Gauge Ammo", 500); } } case PACKAGE_TYPE_AMMO_4: { if ( !IsSufficientSpace(playerid, "5.56x45mm Ammo") ) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "5.56x45mm Ammo", 500); } } case PACKAGE_TYPE_AMMO_5: { if ( !IsSufficientSpace(playerid, "7.62x39mm Ammo") ) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "7.62x39mm Ammo", 500); } } case PACKAGE_TYPE_AMMO_6: { if ( !IsSufficientSpace(playerid, "7.62x51mm Ammo") ) { return SendErrorMessage(playerid, "You need to clear some room in your inventory."); } else { AddItemToInventory(playerid, "7.62x51mm Ammo", 500); } } } Players[playerid][pPackageOrder] = PACKAGE_TYPE_NONE; Players[playerid][pPackageType] = PACKAGE_TYPE_NONE; DestroyPlayerObject(playerid, Players[playerid][pPackage]); ResetCheckpoint(playerid); SendInfoMessage(playerid, "The package has been added to your inventory."); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); } case CHECKPOINT_JOB: { if (!Players[playerid][pWorking]) { return 0; } if (Players[playerid][pJob] == JOB_FORKLIFTER) { switch (Players[playerid][pJobStage]) { case 0: { if (GetVehicleModel(vehicleid) == 530 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { Players[playerid][pJobStage] = 1; SendInfoMessage(playerid, "You have picked up the crate. Drive to the {FF0000}checkpoint{FFFFFF} for further instructions."); SetCheckpoint(playerid, CHECKPOINT_JOB, 2783.6682, -2417.8679, 13.6347, 3.0); VehicleInformation[vehicleid][vObject] = CreateDynamicObject(1220, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); AttachDynamicObjectToVehicle(VehicleInformation[vehicleid][vObject], vehicleid, 0.0, 0.6, 0.28, 0.0, 0.0, 0.0); } } case 1: { if (GetVehicleModel(vehicleid) == 530 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { switch (random(2)) { case 0: SetCheckpoint(playerid, CHECKPOINT_JOB, 2790.8264, -2410.4639, 13.6329, 3.0); case 1: SetCheckpoint(playerid, CHECKPOINT_JOB, 2790.8264, -2410.4639, 13.6329, 3.0); } Players[playerid][pJobStage] = 2; SendInfoMessage(playerid, "Stack the cargo on the shelf."); RemovePlayerFromVehicle(playerid); DestroyDynamicObject(VehicleInformation[vehicleid][vObject]); VehicleInformation[vehicleid][vObject] = INVALID_OBJECT_ID; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 1220, 5, 0.184000, 0.330999, 0.112999, -84.099983, -9.500001, 20.700000); } } case 2: { new price = Random(90, 150); Players[playerid][pJobPaycheck] += price; SendInfoMessage(playerid, "You have received {33CC33}$%i{FFFFFF} on your paycheck. You can continue working or use /stop to quit.", price); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC); ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1); StartWorking(playerid); } } } else if (Players[playerid][pJob] == JOB_MINER) { if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { return SendErrorMessage(playerid, "You need to be onfoot to enter the checkpoint."); } else { new price = Random(100, 200); Players[playerid][pJobPaycheck] += price; Players[playerid][pWorking] = 0; SendInfoMessage(playerid, "You have received {33CC33}$%i{FFFFFF} on your paycheck.", price); ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC); ResetCheckpoint(playerid); } } else if (Players[playerid][pJob] == JOB_PIZZA) { new price = floatround(GetPlayerDistanceFromPoint(playerid, 2097.8745, -1800.4648, 12.9810)) / 2; Players[playerid][pJobPaycheck] += price; Players[playerid][pWorking] = 0; SendInfoMessage(playerid, "You have received $%i on your paycheck.", price); ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1); ResetCheckpoint(playerid); } else if (Players[playerid][pJob] == JOB_TRASHMAN) { if (Players[playerid][pTrashPickup] + 1 <= sizeof(g_TrashPickups) && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { DestroyPlayerObject(playerid, gTrashObjects[playerid][Players[playerid][pTrashPickup]]); gTrashObjects[playerid][Players[playerid][pTrashPickup]] = INVALID_OBJECT_ID; Players[playerid][pTrash] = 1; Players[playerid][pTrashPickup]++; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 1265, 1, 0.344999, 0.557000, 0.032999, 0.000000, 83.599990, -81.899963); ApplyAnimation(playerid, "CARRY", "liftup", 4.1, 0, 0, 0, 0, 0, 1); SendInfoMessage(playerid, "Press Y to load the trash bag in the truck."); ResetCheckpoint(playerid); new trash = GetClosestTrashbin(playerid); ClearTrashbinItems(trash); } else if (Players[playerid][pTrashPickup] >= sizeof(g_TrashPickups) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 408) { StopWorking(playerid); Players[playerid][pJobPaycheck] += 250; Players[playerid][pWorking] = 0; SendInfoMessage(playerid, "You have received $250 on your paycheck."); ResetCheckpoint(playerid); } } } } } return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { if (IsTestVehicle(vehicleid) && Players[playerid][pDrivingTest]) { Players[playerid][pDrivingTest] = 0; DisablePlayerCheckpoint(playerid); SetVehicleToRespawn(vehicleid); SendInfoMessage(playerid, "You have failed the driving test for leaving the car."); } ResetHotwiring(playerid); return 1; } public OnQueryError(errorid, error[], callback[], query[], connectionHandle) { printf("\a(SQL) %s", error); SendAdminMessage(COLOR_RED, "Admin: A MySQL error has occurred, please check the error logs (error: %i).", errorid); return 1; } #if defined CHEMICAL_SYSTEM #include "script/drug_def.pwn" #include "script/drugs_stock.pwn" #include "script/chemical_stock.pwn" #include "script/interface.pwn" #include "script/chemical_part.pwn" #pragma unused AddChemical #pragma unused GetDistanceBetweenPoints #pragma unused MulStringHandler #pragma unused RemoveDrugs #pragma unused SaveChemical #pragma unused SaveDrugs #endif public OnGameModeInit() { //MapAndreas_Init(MAP_ANDREAS_MODE_MINIMAL); /*EnableAntiCheat(039, 0); EnableAntiCheat(010, 0); EnableAntiCheat(012, 0);*/ AddPlayerClass(105,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // GSFPos1 AddPlayerClass(270,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // Sweet AddPlayerClass(269,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // Ryder AddPlayerClass(271,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // Big_Smoke AddPlayerClass(0,2475.4915,-1694.9734,13.5183,22.2914,0,0,0,0,0,0); // CJ AddPlayerClass(106,2766.4897,-2011.0477,13.5620,227.6935,0,0,0,0,0,0); // camSBF AddPlayerClass(107,915.2412,-1104.8180,24.2969,180.8262,0,0,0,0,0,0); // camTDF1 // AddPlayerClass(102,2175.5786,-1732.3136,13.5339,271.4185,0,0,0,0,0,0); // camFYB2 AddPlayerClass(103,2136.1011,-1391.1796,23.9992,39.3045,0,0,0,0,0,0); // CamRHB2 AddPlayerClass(104,1979.7319,-1157.1125,20.9351,269.4461,0,0,0,0,0,0); // CamKTB2 AddPlayerClass(103,1183.7802,-1258.4663,18.8984,181.0539,0,0,0,0,0,0); // TDB2 AddPlayerClass(272,2686.6853,-2126.4114,13.5597,267.6120,0,0,0,0,0,0); // GDSpawn AddPlayerClass(29,2383.7700,-1467.6337,24.0026,270.6843,0,0,0,0,0,0); // HoodRatSpawn1 AddPlayerClass(23,2383.7700,-1467.6337,24.0026,270.6843,0,0,0,0,0,0); // HoodRatSpawn1 AddPlayerClass(25,2383.7700,-1467.6337,24.0026,270.6843,0,0,0,0,0,0); // HoodRatSpawn1 AddPlayerClass(114,1879.4531,-2038.6274,13.3906,44.1390,0,0,0,0,0,0); // VLAPOS2 AddPlayerClass(108,2434.3467,-1325.1730,25.0269,267.8017,0,0,0,0,0,0); // vagospos1 AddPlayerClass(48,276.4123,-1160.3118,80.9141,131.4480,0,0,0,0,0,0); // ddspawn AddPlayerClass(300,1580.5890,-1634.8744,13.5610,91.8254,0,0,0,0,0,0); // lsspdspawn if (!fexist("Server/")) { print("\aWarning! The \"Server\" folder doesn't exist in scriptfiles."); return GameModeExit(); } gConnection = mysql_connect(SQL_HOSTNAME, SQL_USERNAME, SQL_DATABASE, SQL_PASSWORD, 3306); if (!mysql_errno(gConnection)) { printf("(SQL) Successfully connected to \"%s\".", SQL_HOSTNAME); // Gamemode setup SetWeather(gWeatherID); SetGameModeText("A:RP "#SERVER_REVISION""); ShowNameTags(0); //SetNameTagDrawDistance(15.0); LimitGlobalChatRadius(0.0); DisableInteriorEnterExits(); ManualVehicleEngineAndLights(); EnableStuntBonusForAll(0); ShowPlayerMarkers(PLAYER_MARKERS_MODE_OFF); LoadInformation(); for(new i = 0; i < sizeof(g_RepairShops); i ++) { CreateDynamicPickup(1239, 1, g_RepairShops[i][0], g_RepairShops[i][1], g_RepairShops[i][2]); CreateDynamic3DTextLabel("Repair Shop\nCost: $500\n/enter to repair your vehicle.", COLOR_GREY, g_RepairShops[i][0], g_RepairShops[i][1], g_RepairShops[i][2], 10.0); } CreateDynamicPickup(1239, 2, 1041.2220, -1028.3320, 32.1016); CreateDynamic3DTextLabel("{6DB4F1}[Tune Shop]\n/tune to mod your vehicle.", -1, 1041.2220, -1028.3320, 32.1016, 10.0); Create3DTextLabel("{6DB4F1}[DMV]\nUse /start to get your Driver Licenses", -1, 1490.2839, 1305.6837, 1093.2964, 10.0, 3, 0); CreateDynamicPickup(1239, 23, 1490.2839, 1305.6837, 1093.2964, 3); gTestVehicles[0] = SpawnVehicle(405, 1245.0278, -1834.5586, 13.1675, 0.0000, 1, 1, 20); // car 1 gTestVehicles[1] = SpawnVehicle(405, 1248.8597, -1834.4784, 13.1672, 0.0000, 1, 1, 20); // car 2 gTestVehicles[2] = SpawnVehicle(405, 1252.6323, -1834.2869, 13.1675, 0.0000, 1, 1, 20); // car 3 gTestVehicles[3] = SpawnVehicle(405, 1257.0115, -1834.2378, 13.1673, 0.0000, 1, 1, 20); // car 4 mysql_tquery(gConnection, "UPDATE rp_accounts SET Online = 0"); mysql_tquery(gConnection, "SELECT * FROM rp_items WHERE itemDropped = 1", "OnLoadDropItems"); mysql_tquery(gConnection, "SELECT * FROM rp_items WHERE itemOwner = 0 AND itemDropped = 0", "OnLoadStoredItems"); mysql_tquery(gConnection, "SELECT * FROM rp_gundamages", "OnLoadGunDamages"); mysql_tquery(gConnection, "SELECT * FROM rp_carblacklist", "OnLoadCarBlacklist"); mysql_tquery(gConnection, "SELECT * FROM rp_vehicles", "OnLoadVehicles"); mysql_tquery(gConnection, "SELECT * FROM rp_houses", "OnLoadHouses"); mysql_tquery(gConnection, "SELECT * FROM rp_companies", "OnLoadCompanies"); mysql_tquery(gConnection, "SELECT * FROM rp_buildings", "OnLoadBuildings"); mysql_tquery(gConnection, "SELECT * FROM rp_furniture", "OnLoadFurniture"); mysql_tquery(gConnection, "SELECT * FROM rp_gaspumps", "OnLoadGasPumps"); mysql_tquery(gConnection, "SELECT * FROM rp_atms", "OnLoadATMMachines"); mysql_tquery(gConnection, "SELECT * FROM rp_dealercars", "OnLoadDealershipCars"); mysql_tquery(gConnection, "SELECT * FROM rp_casings", "OnLoadShellCasings"); mysql_tquery(gConnection, "SELECT * FROM rp_weedplants", "OnLoadWeedPlants"); mysql_tquery(gConnection, "SELECT * FROM rp_factions", "OnLoadFactions"); mysql_tquery(gConnection, "SELECT * FROM rp_arrestpoints", "OnLoadArrestPoints"); mysql_tquery(gConnection, "SELECT * FROM rp_teleports", "OnLoadTeleports"); mysql_tquery(gConnection, "SELECT * FROM rp_dynamiclabels", "OnLoadLabels"); mysql_tquery(gConnection, "SELECT * FROM rp_gates", "OnLoadGates"); //mysql_tquery(gConnection, "SELECT * FROM rp_autoshops", "OnLoadAutoShops"); mysql_tquery(gConnection, "SELECT * FROM rp_objects", "OnLoadObjects"); mysql_tquery(gConnection, "SELECT * FROM rp_trashbins", "OnLoadTrashbins"); mysql_tquery(gConnection, "SELECT * FROM rp_spraytags", "OnLoadSprayTags"); mysql_tquery(gConnection, "SELECT * FROM rp_tags", "OnLoadTags"); mysql_tquery(gConnection, "SELECT * FROM rp_payphones", "OnLoadPayphones"); //SetTimer("PublishAds", 20000, true); SetTimer("MinuteSync", 60000, true); SetTimer("SecondSync", 1000, true); SetTimer("DistanceCycle", 2000, true); SetTimer("FuelCycle", (FUEL_TIME_INTERVAL * 1000), true); //PayNSpray CreateDynamicObject(11315,1903.277,1354.053,26.909,0.000,0.000,0.000,-1,-1,-1,1000.000,1000.000); CreateDynamicObject(11319,1903.246,1360.305,26.659,0.000,0.000,90.799,-1,-1,-1,1000.000,1000.000); CreateDynamicObject(19380,1907.744,1356.175,23.718,0.000,0.000,0.000,-1,-1,-1,1000.000,1000.000); CreateDynamicObject(19380,1907.744,1348.125,23.718,0.000,0.000,0.000,-1,-1,-1,1000.000,1000.000); CreateDynamicObject(19380,1898.804,1348.125,23.718,0.000,0.000,0.000,-1,-1,-1,1000.000,1000.000); CreateDynamicObject(19380,1898.804,1356.796,23.718,0.000,0.000,0.000,-1,-1,-1,1000.000,1000.000); CreateDynamicObject(19380,1897.689,1360.572,23.718,0.000,0.000,-91.200,-1,-1,-1,1000.000,1000.000); CreateDynamicObject(19380,1911.347,1360.286,23.718,0.000,0.000,-91.599,-1,-1,-1,1000.000,1000.000); //EndPayNSpray LoadObjects(); LoadActors(); LoadElements(); LoadJobs(); LoadDynamicObjects(); LoadTextDraws(); LoadStaticBuildings(); UpdateTimeTextDraw(); } else { printf("\a(SQL) Failed to connect to \"%s\"!", SQL_HOSTNAME); GameModeExit(); } return 1; } public OnGameModeExit() { return 1; } forward StopChatting(playerid); public StopChatting(playerid) { if (IsPlayerLoggedIn(playerid) && Players[playerid][pChatting] && !Players[playerid][pAnimation]) { ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0, 1); ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0, 1); } Players[playerid][pChatting] = 0; } forward HandlePhoneRing(playerid); public HandlePhoneRing(playerid) { if (Players[playerid][pCalling] != 1) { return 0; } PlayNearbySound(playerid, 20600); SetTimerEx("HandlePhoneRing", 4000, false, "i", playerid); return 1; } forward HandlePhoneDial(playerid); public HandlePhoneDial(playerid) { if (Players[playerid][pCalling] != 1) { return 0; } PlayerPlaySound(playerid, 16001, 0.0, 0.0, 0.0); SetTimerEx("HandlePhoneDial", 4000, false, "i", playerid); return 1; } forward OnPhoneResponse(playerid, number); public OnPhoneResponse(playerid, number) { if ((Players[playerid][pPayphone] != INVALID_ID && GetClosestPayphone(playerid) != Players[playerid][pPayphone]) || Players[playerid][pPhoneOff] || !Players[playerid][pCalling]) { return 0; } switch (number) { case 444: { if (Players[playerid][pAdTime] > gettime()) { SendFormatMessage(playerid, COLOR_YELLOW, "(Phone) Agency: You may publish another advertisement in %i seconds.", Players[playerid][pAdTime] - gettime()); HangupCall(playerid); } else if (IsAdvertisementActive(playerid)) { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Agency: You already have an advertisement queued in our system."); HangupCall(playerid); } else { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Agency: An advertisement costs $200. Please say what you wish to advertise."); Players[playerid][pCalling] = number; } } case 555: { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Taxi: Would you like to request a taxi? Say 'yes' or 'no'."); Players[playerid][pCalling] = number; } case 911: { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: Which service do you require?"); Players[playerid][pCalling] = number; } case 991: { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: This is the police non-emergency line, what can we help you with?"); Players[playerid][pCalling] = number; } /*case 991: { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: This is the police non-emergency line, what can we help you with?"); Players[playerid][pCalling] = number; } case 992: { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: This is the medical non-emergency line, what can we help you with?"); Players[playerid][pCalling] = number; } case 993: { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: This is the government landline, what can we help you with?"); Players[playerid][pCalling] = number; }*/ default: { new targetid = GetPhonePlayerID(number); if (targetid == INVALID_PLAYER_ID) { SendClientMessage(playerid, COLOR_LIGHTGREY, "** This cellphone number is currently not in service. **"); HangupCall(playerid); } else if (IsPhoneBusy(number)) { SendClientMessage(playerid, COLOR_LIGHTGREY, "** You would hear a busy tone. **"); HangupCall(playerid); } } } return 1; } forward TagSprayed(playerid, spray); public TagSprayed(playerid, spray) { if (Players[playerid][pSprayTag] == spray && IsValidSprayTagID(spray) && GetPlayerFactionType(playerid) == FACTION_ILLEGAL) { strunpack(SprayTags[spray][sText], gTemporaryText[playerid], 64); //SprayTags[spray][sColor] = RGBAToARGB(Factions[Players[playerid][pFaction]][fcColor]); SprayTags[spray][sColor] = Factions[Players[playerid][pFaction]][fcColor]; UpdateSprayTag(spray); SaveSprayTag(spray); PlayAnimation(playerid, "GANGS", "Invite_Yes", 4.1, 0, 0, 0, 0, 0, 1); ShowActionBubble(playerid, "* %s puts the spraycan down and looks at their work.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have sprayed the tag! Leave the area before a rival gang shows up."); } ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0); Players[playerid][pSprayTag] = INVALID_ID; } forward MiningFinished(playerid); public MiningFinished(playerid) { if (Players[playerid][pJob] == JOB_MINER && Players[playerid][pWorking] && Players[playerid][pMining]) { if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { Players[playerid][pWorking] = 0; Players[playerid][pMining] = 0; ClearAnimations(playerid); SendInfoMessage(playerid, "Mining job failed. You entered a vehicle during the process."); } else if (!IsPlayerInRangeOfPoint(playerid, 3.0, -1858.5516, -1651.3812, 26.5788) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1790.7683, -1649.2581, 33.3813) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1775.1649, -1643.3854, 29.5218) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1801.5831, -1649.7592, 26.5446)) { Players[playerid][pWorking] = 0; Players[playerid][pMining] = 0; ClearAnimations(playerid); SendInfoMessage(playerid, "Mining job failed. You are not in range of the rocks."); } else { Players[playerid][pMining] = 0; ApplyAnimation(playerid, "CARRY", "liftup", 4.1, 0, 0, 0, 0, 0, 1); SetCheckpoint(playerid, CHECKPOINT_JOB, -1853.7217, -1606.2709, 21.7578, 2.0); SendInfoMessage(playerid, "Deliver this rock to the {FF0000}checkpoint{FFFFFF}."); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 3930, 6, 0.154000, 0.189999, -0.284999, -86.200103, 165.400009, -15.999998); } } TogglePlayerControllable(playerid, true); } forward SetupConfirmed(playerid); public SetupConfirmed(playerid) { if (Players[playerid][pSetupInfo]) { for (new i = 86; i < 102; i ++) { PlayerTextDrawHide(playerid, Players[playerid][pText][i]); } SendToDefaultSpawn(playerid); TogglePlayerControllable(playerid, 1); CancelSelectTextDraw(playerid); SendInfoMessage(playerid, " You have spawned at the default starter spawn. Please type {33AA33}'/spawntype'{FFFFFF} to adjust your spawn location."); SendInfoMessage(playerid, " If you wish to spawn the your desired faction, please re-log after used {33AA33}'/spawntype'"); SendInfoMessage(playerid, " There is rental vehicles nearby you if it's needed."); } } forward RepairEngine(playerid, vehicleid); public RepairEngine(playerid, vehicleid) { new Float:health; if (GetClosestVehicle(playerid) != vehicleid) { StopRepairing(playerid); } else { GetVehicleHealth(vehicleid, health); health += 50.0; if (health >= 1000.0) { StopRepairing(playerid); SetVehicleHealth(vehicleid, 1000.0); SendInfoMessage(playerid, "The engine has been fully repaired."); } else { SetVehicleHealth(vehicleid, health); ShowFooterText(playerid, "Repairing the engine, please wait..."); } } return 1; } forward OnPlayerRequestNameChange(playerid, name[]); public OnPlayerRequestNameChange(playerid, name[]) { if (cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "The specified name is already in use."); } else { strcpy(Players[playerid][pNameChange], name, MAX_PLAYER_NAME); SendAdminMessage(COLOR_RED, "Admin: %s has requested a name change to %s (/approvename %i or /denyname %i).", ReturnNameEx(playerid), name, playerid, playerid); SendInfoMessage(playerid, "You have requested a name change to %s. It will be accepted shortly.", name); } } forward OnPlayerFactionKick(playerid, player[]); public OnPlayerFactionKick(playerid, player[]) { if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "That player doesn't exist or has a higher rank."); } else { format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET FactionID = 0, FactionRank = 0 WHERE Username = '%s'", player); mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "You have removed %s from the faction.", player); } } forward OnPlayerPayTicket(playerid, ticket); public OnPlayerPayTicket(playerid, ticket) { if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "There was an error processing this ticket."); } else { new amount, date[32], reason[128]; amount = cache_get_field_content_int(0, "Amount"); cache_get_field_content(0, "Date", date); cache_get_field_content(0, "Reason", reason); if (!PlayerCanAfford(playerid, amount)) { SendErrorMessage(playerid, "You don't have enough money to pay this ticket."); } else { format(gExecute, sizeof(gExecute), "DELETE FROM rp_tickets WHERE ID = %i", ticket); mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "You have paid a ticket costing %s for \"%s\" (issued on %s).", FormatNumber(amount), reason, date); RemoveMoney(playerid, amount); Server[TaxVault] += amount; SaveInformation(); ShowTicketList(playerid); } } } forward OnPlayerRemoveAnote(playerid, anote); public OnPlayerRemoveAnote(playerid, anote) { if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "There was an error processing this anote."); } else { new issuer[32], date[32], reason[128]; cache_get_field_content(0, "Issuer", issuer); cache_get_field_content(0, "Date", date); cache_get_field_content(0, "Reason", reason); format(gExecute, sizeof(gExecute), "DELETE FROM rp_anotes WHERE ID = %i", anote); mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "You have removed anote ID: %i (issued on %s).", anote, date); SendInfoMessage(playerid, "Anote: \"%s\"", reason); } } forward OnPlayerShowTickets(playerid); public OnPlayerShowTickets(playerid) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "You don't have any tickets to pay."); } else { static reason[128], date[32]; gListString = "Amount\tReason\tDate"; for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Date", date); cache_get_field_content(i, "Reason", reason); format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s", gListString, FormatNumber(cache_get_field_content_int(i, "Amount")), reason, date); gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); } Dialog_Show(playerid, PayTickets, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Tickets to Pay", gListString, "Pay", "Cancel"); } } forward OnPlayerShowFines(playerid); public OnPlayerShowFines(playerid) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "You don't have any tickets."); } else { static reason[128], date[32]; gListString = "Amount\tReason\tDate"; for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Date", date); cache_get_field_content(i, "Reason", reason); format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s", gListString, FormatNumber(cache_get_field_content_int(i, "Amount")), reason, date); gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); } Dialog_Show(playerid, ShowFines, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Tickets", gListString, "Select", "Cancel"); } } forward OnPlayerShowANotes(playerid, targetid); public OnPlayerShowANotes(playerid, targetid) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(targetid, "That player does not have any admin notes."); } else { static reason[128], date[32], issuer[32]; gListString = "Issuer\tReason\tDate"; for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Date", date); cache_get_field_content(i, "Reason", reason); cache_get_field_content(i, "Issuer", issuer); format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s", gListString, issuer, reason, date); gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); } Dialog_Show(targetid, RemoveAnote, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Admin Notes", gListString, "Remove", "Exit"); } } forward OnPlayerShowDeathLogs(playerid); public OnPlayerShowDeathLogs(playerid) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "There are no death logs to show."); } else { static killer[24], target[24], reason[24], date[32]; gListString = "Killer\tTarget\tReason\tDate"; for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Killer", killer); cache_get_field_content(i, "Target", target); cache_get_field_content(i, "Reason", reason); cache_get_field_content(i, "Date", date); format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s\t%s", gListString, killer, target, reason, date); gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); } Dialog_Show(playerid, DeathLogs, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Death Logs", gListString, "Select", "Exit"); } } forward OnPlayerShowBanLogs(playerid); public OnPlayerShowBanLogs(playerid) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "There are no ban logs to be shown."); } else { static admin[24], player[24], reason[128], date[32]; gListString = "Admin\tPlayer\tReason\tDate"; for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Admin", admin); cache_get_field_content(i, "Player", player); cache_get_field_content(i, "Reason", reason); cache_get_field_content(i, "Date", date); format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s\t%s", gListString, admin, player, reason, date); gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); } Dialog_Show(playerid, BanLogs, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Ban Logs", gListString, "Select", "Exit"); } } forward OnPlayerListAliases(playerid, ip[]); public OnPlayerListAliases(playerid, ip[]) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "There are no accounts listed under this IP."); } else { new username[MAX_PLAYER_NAME], date[32]; SendClientMessage(playerid, COLOR_WHITE, "-----------------------------------------------"); SendFormatMessage(playerid, COLOR_YELLOW, "Accounts (%s):", ip); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Username", username); cache_get_field_content(i, "LoginDate", date); SendInfoMessage(playerid, " * %s (last login: %s)", username, date); } SendClientMessage(playerid, COLOR_WHITE, "-----------------------------------------------"); } } forward OnPlayerListGPCI(playerid, gpci[]); public OnPlayerListGPCI(playerid, gpci[]) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "There are no accounts listed under this GPCI."); } else { new username[MAX_PLAYER_NAME], date[32]; SendClientMessage(playerid, COLOR_WHITE, "-----------------------------------------------"); SendFormatMessage(playerid, COLOR_YELLOW, "Accounts (%s):", gpci); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Username", username); cache_get_field_content(i, "LoginDate", date); SendInfoMessage(playerid, " * %s (last login: %s)", username, date); } SendClientMessage(playerid, COLOR_WHITE, "-----------------------------------------------"); } } forward OnPlayerSetSupporter(playerid, player[], level); public OnPlayerSetSupporter(playerid, player[], level) { if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "The specified player doesn't exist."); } else { format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Supporter = %i WHERE Username = '%s'", level, mysql_escaped(player)); mysql_tquery(gConnection, gExecute); SendSupporterMessage(COLOR_SAMP, "(Supporter) %s has offline set %s's Supporter level to %s.", ReturnNameEx(playerid, 0), player, GetSupporterLevel(level)); SendAdminMessage(COLOR_RED, "Admin: %s has offline set %s's Supporter level to %s.", ReturnNameEx(playerid, 0), player, GetSupporterLevel(level)); } } forward OnPlayerSetAdmin(playerid, player[], level); public OnPlayerSetAdmin(playerid, player[], level) { if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "The specified player doesn't exist."); } else { format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Admin = %i WHERE Username = '%s'", level, mysql_escaped(player)); mysql_tquery(gConnection, gExecute); SendAdminMessage(COLOR_RED, "Admin: %s has offline set %s's admin level to %i.", ReturnNameEx(playerid, 0), player, level); } } forward OnPlayerVehicleInfo(playerid, id); public OnPlayerVehicleInfo(playerid, id) { new owner[MAX_PLAYER_NAME]; if (!cache_get_row_count(gConnection)) { owner = "Nobody"; } else { cache_get_field_content(0, "Username", owner); } SendClientMessage(playerid, COLOR_WHITE, "----------------------------------------------------------------------------------------------"); SendFormatMessage(playerid, COLOR_YELLOW, "%s (ID: %i)", GetVehicleModelName(Vehicles[id][vModel]), Vehicles[id][vVehicle]); SendFormatMessage(playerid, COLOR_WHITE, "Model: %s - Owner: %s - Faction: %s - Color 1: %i - Color 2: %i", GetVehicleModelName(Vehicles[id][vModel]), owner, GetFactionIDName(Vehicles[id][vFaction]), Vehicles[id][vColor1], Vehicles[id][vColor2]); SendFormatMessage(playerid, COLOR_WHITE, "Plate: %s - Registered: %s - Rental: %s - Siren: %s - Alarm: %s", Vehicles[id][vPlate], Vehicles[id][vRegistered], (Vehicles[id][vRentable]) ? ("Yes") : ("No"), (Vehicles[id][vSiren]) ? ("Yes") : ("No"), (Vehicles[id][vAlarm]) ? ("Yes") : ("No")); SendClientMessage(playerid, COLOR_WHITE, "----------------------------------------------------------------------------------------------"); } forward OnPlayerGetOfflineIP(playerid, player[]); public OnPlayerGetOfflineIP(playerid, player[]) { new ip[16]; if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "That specified account doesn't exist."); } else { cache_get_field_content(0, "IP", ip); SendInfoMessage(playerid, "%s's IP address is: %s.", player, ip); } } forward OnPlayerJailCheck(playerid, player[], reason[], minutes); public OnPlayerJailCheck(playerid, player[], reason[], minutes) { if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "That player doesn't exist or has a higher admin level."); } else { format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET JailType = 1, JailTime = %i WHERE Username = '%s'", minutes * 60, player); mysql_tquery(gConnection, gExecute); SendAdminMessage(COLOR_RED, "Admin: %s has offline jailed %s for %i minutes, reason: %s", ReturnNameEx(playerid, 0), player, minutes, reason); } } forward OnPlayerBanCheck(playerid, player[], reason[]); public OnPlayerBanCheck(playerid, player[], reason[]) { new ip[16]; if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "That player doesn't exist or has a higher admin level."); } else { cache_get_field_content(0, "IP", ip); format(gExecute, sizeof(gExecute), "INSERT INTO rp_banlogs (Admin, Player, Reason, Date) VALUES('%s', '%s', '%s', NOW())", ReturnName(playerid), player, mysql_escaped(reason)); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "INSERT INTO rp_blacklist (Player, IP, BannedBy, Date, Reason) VALUES('%s', '%s', '%s', NOW(), '%s')", player, ip, ReturnName(playerid), mysql_escaped(reason)); mysql_tquery(gConnection, gExecute); SendAdminMessage(COLOR_RED, "Admin: %s has offline banned %s, reason: %s", ReturnNameEx(playerid, 0), player, reason); } } forward OnFadeSetPosition(playerid); public OnFadeSetPosition(playerid) { if (GetCurrentCompany(playerid) != INVALID_ID) { SendInfoMessage(playerid, "{CFCFCF}Use {33AA33}/buy{CFCFCF} for a list of products for sale."); } } forward PackageReady(playerid, faction, type, price); public PackageReady(playerid, faction, type, price) { if (Players[playerid][pFaction] == INVALID_ID || Players[playerid][pFaction] != faction || Factions[faction][fcType] != FACTION_ILLEGAL) { return 0; } else { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: The package is ready. We have sent you more details."); SendInfoMessage(playerid, "{33AA33}Hint: Use /locatepackage to find the location of your package."); Players[playerid][pPackageType] = type; Players[playerid][pPackageOrder] = PACKAGE_TYPE_NONE; } return 1; } forward RechargeTazer(playerid); public RechargeTazer(playerid) { if (Players[playerid][pTazer]) { GivePlayerWeapon(playerid, 23, 1); } RemovePlayerAttachedObject(playerid, ATTACHED_SLOT_MISC); } forward ResetFaint(playerid); public ResetFaint(playerid) { if (Players[playerid][pFainted]) { Players[playerid][pFainted] = 0; TogglePlayerControllable(playerid, 1); ApplyAnimation(playerid, "PED", "getup_front", 4.1, 0, 0, 0, 0, 0, 1); } } forward DeleteObject(objectid); public DeleteObject(objectid) { DestroyDynamicObject(objectid); } forward UnfreezePlayer(playerid); public UnfreezePlayer(playerid) { TogglePlayerControllable(playerid, 1); } forward RefuelCycle(playerid, vehicleid, pump); public RefuelCycle(playerid, vehicleid, pump) { new string[64]; if (!IsPlayerLoggedIn(playerid)) { return 0; } else if (!IsValidVehicle(vehicleid)) { return 0; } else if (!IsValidPumpID(pump) || !IsVehicleInRangeOfPoint(vehicleid, 10.0, GasPumps[pump][gpSpawn][0], GasPumps[pump][gpSpawn][1], GasPumps[pump][gpSpawn][2])) { return StopRefuel(playerid); } else { Players[playerid][pGasPrice] += 5; GasPumps[pump][gpFuel] -= 0.2; VehicleInformation[vehicleid][vFuel]++; UpdateFuelGauge(vehicleid); format(string, sizeof(string), "ID: %i\nGasoline: %.1f gallons\nUse /refuel to refill vehicle", pump, GasPumps[pump][gpFuel]); UpdateDynamic3DTextLabelText(GasPumps[pump][gpText], COLOR_GREY, string); if (VehicleInformation[vehicleid][vFuel] > 99 || GasPumps[pump][gpFuel] < 1.0) { StopRefuel(playerid); } } return 1; } forward PlayerRecover(playerid); public PlayerRecover(playerid) { if (Players[playerid][pDeathState] != DEATH_STATE_NONE) { if (IsValidDynamic3DTextLabel(Players[playerid][pInjuredText])) { DestroyDynamic3DTextLabel(Players[playerid][pInjuredText]); Players[playerid][pInjuredText] = INVALID_3DTEXT_ID; } Players[playerid][pDeathState] = DEATH_STATE_NONE; RemoveMoney(playerid, 500);//Players[playerid][pPocketMoney] -= 500; SetPlayerPos(playerid, 2507.2341, -1706.3156, 2104.7358); SetPlayerFacingAngle(playerid, 90.0000); SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1); ClearAnimations(playerid, 1); ResetLastShots(playerid); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); SendInfoMessage(playerid, "You have recovered at the hospital for $500."); Statistics[playerid][sHospitalFees] += 500; } return 1; } forward SelectTD(playerid); public SelectTD(playerid) { SelectTextDraw(playerid, -1); } forward BeginWorkout(playerid, type); public BeginWorkout(playerid, type) { PlayerTextDrawSetString(playerid, Players[playerid][pText][60], "0"); PlayerTextDrawSetString(playerid, Players[playerid][pText][62], "0"); switch (type) { case WORKOUT_DUMBELLS: { PlayerTextDrawSetString(playerid, Players[playerid][pText][59], "Reps"); ShowPlayerTextDraws(playerid, 58, 60); gWeights[playerid][0] = SetAttachedObject(playerid, 3072, 5, 0.0, 0.0, 0.0); gWeights[playerid][1] = SetAttachedObject(playerid, 3071, 6, 0.0, 0.0, 0.0); ShowPlayerProgressBar(playerid, Players[playerid][pBars][0]); SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], 0.0); } case WORKOUT_TREADMILL: { PlayerTextDrawSetString(playerid, Players[playerid][pText][59], "Level"); PlayerTextDrawFormatString(playerid, Players[playerid][pText][60], "%i", Players[playerid][pSpeedLevel]); ShowPlayerProgressBar(playerid, Players[playerid][pBars][0]); SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], 50.0); PlayerPlaySound(playerid, 17801, 0.0, 0.0, 0.0); ShowPlayerTextDraws(playerid, 58, 62); } } Players[playerid][pWorkout] = type; Players[playerid][pDistanceRan] = 0; Players[playerid][pReps] = 0; return TogglePlayerControllable(playerid, 0); } forward DecreasePower(playerid); public DecreasePower(playerid) { new Float:value = GetPlayerProgressBarValue(playerid, Players[playerid][pBars][0]); switch (Players[playerid][pWorkout]) { case WORKOUT_DUMBELLS: { if (value > 0.0) { SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value - 3.0); } } case WORKOUT_TREADMILL: { if (value > 0.0) { SetPlayerProgressBarValue(playerid, Players[playerid][pBars][0], value - (Players[playerid][pSpeedLevel] + 8)); } else { StopWorkout(playerid); ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_falloff", 4.1, 0, 0, 0, 0, 0, 1); } } } } forward SetPosition(playerid, Float:x, Float:y, Float:z, Float:angle, interior, world, freeze); public SetPosition(playerid, Float:x, Float:y, Float:z, Float:angle, interior, world, freeze) { if (Players[playerid][pSetPosition]) { SetPlayerPosEx(playerid, x, y, z, angle, interior, world); SetCameraBehindPlayer(playerid); Players[playerid][pSetPosition] = 0; if (!freeze) { TogglePlayerControllable(playerid, true); } else { SetFreezePos(playerid, x, y, z, 4500); } } } forward OnTagAdded(tag); public OnTagAdded(tag) { Tags[tag][tagID] = cache_insert_id(gConnection); SaveTag(tag); } forward OnSprayTagAdded(spray); public OnSprayTagAdded(spray) { SprayTags[spray][sID] = cache_insert_id(gConnection); SaveSprayTag(spray); } forward OnObjectAdded(object); public OnObjectAdded(object) { Objects[object][oID] = cache_insert_id(gConnection); SaveObject(object); } forward OnAutoShopAdded(id); public OnAutoShopAdded(id) { AutoShops[id][asID] = cache_insert_id(gConnection); } forward OnGateAdded(gate); public OnGateAdded(gate) { Gates[gate][gID] = cache_insert_id(gConnection); SaveGate(gate); } forward OnLabelAdded(label); public OnLabelAdded(label) { Labels[label][lID] = cache_insert_id(gConnection); UpdateLabel(label); SaveLabel(label); } forward OnTeleportAdded(teleport); public OnTeleportAdded(teleport) { Teleports[teleport][tpID] = cache_insert_id(gConnection); } forward OnArrestPointAdded(point); public OnArrestPointAdded(point) { ArrestPoints[point][apID] = cache_insert_id(gConnection); } forward OnPlayerTakeGun(playerid, id); public OnPlayerTakeGun(playerid, id) { if (cache_get_row_count(gConnection)) { new weapon = cache_get_field_content_int(0, "gunType"); new quantity = cache_get_field_content_int(0, "gunQuantity"); if (!IsSufficientSpace(playerid, GetWeaponItemName(weapon))) { SendErrorMessage(playerid, "{CFCFCF}There is no more room in your inventory."); } else { quantity--; AddItemToInventory(playerid, GetWeaponItemName(weapon), 100); if (quantity) { format(gExecute, sizeof(gExecute), "UPDATE rp_crateguns SET gunQuantity = gunQuantity - 1 WHERE gunID = %i", id); } else { format(gExecute, sizeof(gExecute), "DELETE FROM rp_crateguns WHERE gunID = %i", id); } mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "{CFCFCF}You have taken a {33AA33}%s{CFCFCF} from the weapon crate.", GetWeaponItemName(weapon)); } } } /* GetAmmunitionType(weaponid) { new type[16]; switch (weaponid) { case 22, 23, 28, 29, 32: type = "9x19mm"; case 24: type = ".50cal"; case 25, 26, 27: type = "12 Gauge"; case 30: type = "7.62x39mm"; case 31: type = "5.56x45mm"; case 33, 34: type = "7.62x51mm"; default: type = "Unknown"; } return type; } */ /* {".50cal", 2061, 2, true, true}, {"9x19mm", 2061, 2, true, true}, {"5.56x45mm", 2061, 2, true, true}, {"7.62x39mm", 2061, 2, true, true}, {"7.62x51mm", 2061, 2, true, true}, {"12 Gauge", 2061, 2, true, true} */ forward OnPlayerOpenCrate(playerid, itemid); public OnPlayerOpenCrate(playerid, itemid) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "This weapon crate is empty."); } else { new string[512]; for (new i = 0; i < rows; i ++) { new weapon = cache_get_field_content_int(i, "gunType"); new quantity = cache_get_field_content_int(i, "gunQuantity"); format(string, sizeof(string), "%s\n%s (%i left)", string, GetWeapon(weapon), quantity); gListedItems[playerid][i] = cache_get_field_content_int(i, "gunID"); } Players[playerid][pSelected] = itemid; Dialog_Show(playerid, ShowGuns, DIALOG_STYLE_LIST, "{FFFFFF}Select Gun", string, "Take", "Cancel"); } } forward OnPlayerCheckPlate(playerid, plate[]); public OnPlayerCheckPlate(playerid, plate[]) { new id = GetVehicleID(GetPlayerVehicleID(playerid)); if (id == INVALID_ID) { return 0; } else if (cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "The specified license plate is already in use."); } else { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(Vehicles[id][vVehicle], engine, lights, alarm, doors, bonnet, boot, objective); strcpy(Vehicles[id][vPlate], plate, 32); SaveVehicle(id); ResyncVehicle(Vehicles[id][vVehicle]); PutPlayerInVehicle(playerid, Vehicles[id][vVehicle], 0); SetVehicleParamsEx(Vehicles[id][vVehicle], engine, lights, alarm, doors, bonnet, boot, objective); SendInfoMessage(playerid, "You have changed your license plate to '%s' for {33CC33}$400{FFFFFF}.", plate); RemoveMoney(playerid, 400); } return 1; } ShowCallsigns(playerid) { gListString = "Callsign\tName"; foreach (new i : Player) { if (Players[playerid][pFaction] == Players[i][pFaction]) { if (Players[i][pDuty]) { format(gListString, sizeof(gListString), "%s\n%s\t%s", gListString, Players[i][pCallsign], ReturnNameEx(i, 0)); } } } Dialog_Show(playerid, CallsignRoster, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Onduty", gListString, "Close", ""); } forward OnPlayerViewRoster(playerid); public OnPlayerViewRoster(playerid) { static username[24], date[32], rows, rank; gListString = "Name\tRank\tLast Seen"; rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { rank = cache_get_field_content_int(i, "FactionRank"); cache_get_field_content(i, "Username", username); cache_get_field_content(i, "LoginDate", date); if (GetPlayerID(username) != INVALID_PLAYER_ID) { format(gListString, sizeof(gListString), "%s\n%s\t%s\t{33CC33}Online{FFFFFF}", gListString, username, GetFactionRank(Players[playerid][pFaction], cache_get_field_content_int(i, "FactionRank")), date); } else { format(gListString, sizeof(gListString), "%s\n%s\t%s\t%s", gListString, username, GetFactionRank(Players[playerid][pFaction], rank), date); } } Dialog_Show(playerid, Roster, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Faction Roster", gListString, "Close", ""); } forward OnPlayerViewAdminRoster(playerid); public OnPlayerViewAdminRoster(playerid) { static username[24], date[32], rows, level; gListString = "Name\tLevel\tLast Seen"; rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { level = cache_get_field_content_int(i, "Admin"); cache_get_field_content(i, "Username", username); cache_get_field_content(i, "LoginDate", date); if (GetPlayerID(username) != INVALID_PLAYER_ID) { format(gListString, sizeof(gListString), "%s\n%s\t%i\t{33CC33}Online{FFFFFF}", gListString, username, level, date); } else { format(gListString, sizeof(gListString), "%s\n%s\t%i\t%s", gListString, username, level, date); } } Dialog_Show(playerid, ARoster, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Admin Roster", gListString, "Close", ""); } forward OnPlayerSelectNote(playerid); public OnPlayerSelectNote(playerid) { if (cache_get_row_count(gConnection)) { new subject[72], text[128]; Players[playerid][pSelected] = cache_get_field_content_int(0, "ID"); cache_get_field_content(0, "noteSubject", subject); cache_get_field_content(0, "noteText", text); format(subject, sizeof(subject), "{FFFFFF}%s", subject); Dialog_Show(playerid, ViewNote, DIALOG_STYLE_MSGBOX, subject, text, "Delete", "Back"); } } forward OnPlayerViewNotes(playerid); public OnPlayerViewNotes(playerid) { static subject[64], rows; rows = cache_get_row_count(gConnection); gListString = "Add Note"; for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "noteSubject", subject); format(gListString, sizeof(gListString), "%s\n%s", gListString, subject); gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); } Dialog_Show(playerid, Notebook, DIALOG_STYLE_LIST, "{FFFFFF}My Notebook", gListString, "Select", "Cancel"); } forward OnPlayerCheckAdminName(playerid, name[]); public OnPlayerCheckAdminName(playerid, name[]) { if (cache_get_row_count(gConnection)) { Dialog_Show(playerid, AdminName, DIALOG_STYLE_INPUT, "{FFFFFF}Admin Name", "That name is already in use, please choose another.\n\nPlease input the admin name that you wish to use:", "Submit", "Cancel"); } else { strcpy(Players[playerid][pAdminName], name, 24); SaveAccount(playerid); SendInfoMessage(playerid, "You have set your admin name to: %s.", name); } return 1; } forward OnPlayerCheckPassword(playerid); public OnPlayerCheckPassword(playerid) { if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "The password you have specified is not correct."); } else { Dialog_Show(playerid, NewPassword, DIALOG_STYLE_INPUT, "{FFFFFF}New Password", "Please input your new password below:", "Submit", "Cancel"); } } forward OnPlayerTraceAddress(playerid, address); public OnPlayerTraceAddress(playerid, address) { if (!cache_get_row_count(gConnection)) { Dialog_Show(playerid, MDC_AddressSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Address Search", "Please enter the full address:", "Submit", "Cancel"); } else { new owner, ownername[MAX_PLAYER_NAME], value, forsale, Float:x, Float:y, Float:z, string[512]; new adr[32]; owner = cache_get_field_content_int(0, "hOwner"); value = cache_get_field_content_int(0, "hValue"); forsale = cache_get_field_content_int(0, "hForSale"); x = cache_get_field_content_float(0, "hSpawnX"); y = cache_get_field_content_float(0, "hSpawnY"); z = cache_get_field_content_float(0, "hSpawnZ"); cache_get_field_content(0, "hOwnerName", ownername); cache_get_field_content(0, "hAddress", adr); if (!owner) { format(string, sizeof(string), "Information on %s:\n\nOwner: Nobody\nValue: %i\nFor sale: %s\n Location: %s", adr, value, (forsale) ? ("Yes") : ("No"), GetZoneName(x,y,z)); } else { format(string, sizeof(string), "Information on %s:\n\nOwner: %s\nValue: %i\nFor sale: %s\n Location: %s", adr, ownername, value, (forsale) ? ("Yes") : ("No"), GetZoneName(x,y,z)); } for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && !strcmp(Houses[i][hAddress], adr, true)) { Players[playerid][pSelected] = i; } } Dialog_Show(playerid, HouseInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}House Information", string, "Trace", "Cancel"); } return 1; } forward OnPlayerTraceSerial(playerid, serial); public OnPlayerTraceSerial(playerid, serial) { if (!cache_get_row_count(gConnection)) { Dialog_Show(playerid, MDC_SerialSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Serial Search", "Please enter the full serial number:", "Submit", "Cancel"); } else { new owner[MAX_PLAYER_NAME], registrar[32], weapon[32], date[32], string[512] ; cache_get_field_content(0, "Weapon", weapon); cache_get_field_content(0, "Owner", owner); cache_get_field_content(0, "Registrar", registrar); cache_get_field_content(0, "Date", date); format(string, sizeof(string), "Serial #%i matches a record in the database:\n\nWeapon: %s\nOwner: %s\nRegistrar: %s\nDate: %s", serial, weapon, owner, registrar, date); Dialog_Show(playerid, SerialInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}Serial Information", string, "Back", ""); } return 1; } forward OnPlayerTracePlate(playerid, vehicle, plate[]); public OnPlayerTracePlate(playerid, vehicle, plate[]) { new owner[MAX_PLAYER_NAME], string[512]; Players[playerid][pSelected] = vehicle; if (cache_get_row_count(gConnection)) { cache_get_field_content(0, "Username", owner); format(string, sizeof(string), "'%s' is registered to the following vehicle:\n\nVehicle: %s\nRegistered By: %s\nLicense Plate: %s\nRegistered On: %s", plate, GetVehicleModelName(Vehicles[vehicle][vModel]), owner, Vehicles[vehicle][vPlate], Vehicles[vehicle][vRegistered]); Dialog_Show(playerid, PlateInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}Result Found", string, "Cancel", "Cancel"); } else { new company = GetVehicleCompany(vehicle); if (IsValidCompanyID(company)) { format(string, sizeof(string), "'%s' is registered to the following vehicle:\n\nVehicle: %s\nRegistered By: %s\nLicense Plate: %s\nRegistered On: %s", plate, GetVehicleModelName(Vehicles[vehicle][vModel]), Companies[company][cName], Vehicles[vehicle][vPlate], Vehicles[vehicle][vRegistered]); Dialog_Show(playerid, PlateInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}Result Found", string, "Cancel", "Cancel"); } else { format(string, sizeof(string), "'%s' is registered to the following vehicle:\n\nVehicle: %s\nRegistered By: N/A\nLicense Plate: %s\nRegistered On: %s", plate, GetVehicleModelName(Vehicles[vehicle][vModel]), Vehicles[vehicle][vPlate], Vehicles[vehicle][vRegistered]); Dialog_Show(playerid, PlateInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}Result Found", string, "Cancel", "Cancel"); } } return 1; } forward OnMDCViewInformationNewPrint(playerid); public OnMDCViewInformationNewPrint(playerid) { if (cache_get_row_count(gConnection)) { new origin[24], id, active, houses, cars, carlic, gunlic; cache_get_field_content(0, "Origin", origin); id = cache_get_field_content_int(0, "ID"); //age = cache_get_field_content_int(0, "Age"); active = cache_get_field_content_int(0, "Warrants");//conejo //charges = cache_get_field_content_int(0, "Charges"); carlic = cache_get_field_content_int(0, "CarLicense"); gunlic = cache_get_field_content_int(0, "GunLicense"); //total = cache_get_field_content_int(0, "TotalWarrants"); //phone = cache_get_field_content_int(0, "Phone"); //format(string, sizeof(string), "{6688FF}NAME:{FFFFFF} %s\n{6688FF}ADDRESS:{FFFFFF}", gTargetName[playerid]); SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}NAME:{FFFFFF} %s", gTargetName[playerid]); SendFormatMessage(playerid, COLOR_WHITE, " "); SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}ADDRESS:{FFFFFF}"); for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && Houses[i][hOwner] == id) { if (houses > 5) { //strcat(string, "\n- Too many addresses. See 'options'."); SendFormatMessage(playerid, COLOR_WHITE, "- Too many addresses to list."); } else { //format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++houses, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2])); SendFormatMessage(playerid, COLOR_WHITE, "%i. %s (%s)", ++houses, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2])); } } } if (!houses) { //strcat(string, "\n- None found."); SendFormatMessage(playerid, COLOR_WHITE, "- None found"); } //strcat(string, "\n\n{6688FF}VEHICLES:{FFFFFF}"); SendFormatMessage(playerid, COLOR_WHITE, " "); SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}VEHICLES:{FFFFFF}"); for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && Vehicles[i][vOwner] == id) { if (cars > 5) { SendFormatMessage(playerid, COLOR_WHITE, "- Too many vehicles to list."); } else { //format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++cars, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); SendFormatMessage(playerid, COLOR_WHITE, "%i. %s (%s)", ++cars, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); } } } if (!cars) { //strcat(string, "\n- No vehicles available."); SendFormatMessage(playerid, COLOR_WHITE, "- None found."); } //format(string, sizeof(string), "%s\n\n{6688FF}LICENSES:{FFFFFF} Drivers: %s, Weapons: %s\n", string, (carlic) ? ("Yes") : ("No"), (gunlic) ? ("Yes") : ("No")); SendFormatMessage(playerid, COLOR_WHITE, " "); SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}LICENSES:{FFFFFF} Drivers: %s, Weapons: %s", (carlic) ? ("Yes") : ("No"), (gunlic) ? ("Yes") : ("No")); if (active > 2) { //format(string, sizeof(string), "%s\n{6688FF}This person is linked to %i warrants, see 'options'.", string, active); SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}This person is linked to %i warrants.", active); } if (active == 1) { //strcat(string, "\n{6688FF}This person is linked to a warrant, see 'options'."); SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}This person is linked to a warrant."); } //strcat(string, "\n\n{6688FF}CHARGES:{FFFFFF}\nThis person have no charges."); SendFormatMessage(playerid, COLOR_WHITE, " "); SendFormatMessage(playerid, COLOR_WHITE, "{6688FF}CHARGES:{FFFFFF}"); SendFormatMessage(playerid, COLOR_WHITE, "This person have no charges."); //Dialog_Show(playerid, MDC_Info, DIALOG_STYLE_MSGBOX, "{FFFFFF}More Information", string, "Options", "Back"); } return 1; } forward OnMDCViewInformationNew(playerid); public OnMDCViewInformationNew(playerid) { if (cache_get_row_count(gConnection)) { new origin[24], string[1024], id, age, active, houses, cars, carlic, gunlic, phone, charges; cache_get_field_content(0, "Origin", origin); id = cache_get_field_content_int(0, "ID"); age = cache_get_field_content_int(0, "Age"); active = cache_get_field_content_int(0, "Warrants"); charges = cache_get_field_content_int(0, "Charges"); carlic = cache_get_field_content_int(0, "CarLicense"); gunlic = cache_get_field_content_int(0, "GunLicense"); // total = cache_get_field_content_int(0, "TotalWarrants"); phone = cache_get_field_content_int(0, "PhoneLastKnown"); format(string, sizeof(string), "{6688FF}NAME:{FFFFFF} %s\n{6688FF}AGE:{FFFFFF} %i\n{6688FF}ORIGIN:{FFFFFF} %s\n{6688FF}PHONE:{FFFFFF} %i\n\n{6688FF}ADDRESS:{FFFFFF}", gTargetName[playerid], age, origin, phone); for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && Houses[i][hOwner] == id) { if (houses > 5) { strcat(string, "\n- Too many addresses. See 'options'."); } else { format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++houses, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2])); } } } if (!houses) { strcat(string, "\n- None found."); } strcat(string, "\n\n{6688FF}VEHICLES:{FFFFFF}"); for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && Vehicles[i][vOwner] == id) { if (cars > 5) { strcat(string, "\n- Too many vehicles. See 'options'."); } else { format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++cars, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); } } } if (!cars) { strcat(string, "\n- No vehicles available."); } format(string, sizeof(string), "%s\n\n{6688FF}LICENSES:{FFFFFF} Drivers: %s, Weapons: %s\n", string, (carlic) ? ("Yes") : ("No"), (gunlic) ? ("Yes") : ("No")); if (active > 2) { format(string, sizeof(string), "%s\n{6688FF}This person is linked to %i warrants, see 'options'.", string, active); } if (active == 1) { strcat(string, "\n{6688FF}This person is linked to a warrant, see 'options'."); } strcat(string, "\n\n{6688FF}CHARGES:{FFFFFF}"); if (charges < 1) { strcat(string, "\nThis person has no charges."); } else if (charges >= 1) { format(string, sizeof(string), "%s\n{6688FF}This person has %i charges. 'options'.", string, charges); } Dialog_Show(playerid, MDC_Info, DIALOG_STYLE_MSGBOX, "{FFFFFF}More Information", string, "Options", "Back"); } return 1; } CMD:charges(playerid, params[]) { SendInfoMessage(playerid, "%i charges", Players[playerid][pCharges]); return 1; } forward OnMDCViewInformation(playerid); public OnMDCViewInformation(playerid) { if (cache_get_row_count(gConnection)) { new origin[24], string[512], id, age, active, total, houses, cars, carlic, gunlic; cache_get_field_content(0, "Origin", origin); id = cache_get_field_content_int(0, "ID"); age = cache_get_field_content_int(0, "Age"); active = cache_get_field_content_int(0, "Warrants"); carlic = cache_get_field_content_int(0, "CarLicense"); gunlic = cache_get_field_content_int(0, "GunLicense"); total = cache_get_field_content_int(0, "TotalWarrants"); format(string, sizeof(string), "{6688FF}Information:{FFFFFF}\nName: %s\nAge: %i years old\nOrigin: %s\nActive Warrants: %i\nTotal Warrants: %i\nCar License: %s\nGun License: %s\n\n{6688FF}Houses:{FFFFFF}", gTargetName[playerid], age, origin, active, total, (carlic) ? ("Yes") : ("No"), (gunlic) ? ("Yes") : ("No")); for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && Houses[i][hOwner] == id) { format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++houses, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2])); } } if (!houses) { strcat(string, "\n- No houses available."); } strcat(string, "\n\n{6688FF}Vehicles:{FFFFFF}"); for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && Vehicles[i][vOwner] == id) { format(string, sizeof(string), "%s\n%i. %s (%s)", string, ++cars, GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); } } if (!cars) { strcat(string, "\n- No vehicles available."); } Dialog_Show(playerid, MDCInfo, DIALOG_STYLE_MSGBOX, "{FFFFFF}More Information", string, "Back", ""); } return 1; } CMD:arrest(playerid, params[]) { new targetid, time; if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else if (sscanf(params, "ui", targetid, time)) { return SendSyntaxMessage(playerid, "/arrest [playerid/name] (minutes)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return SendErrorMessage(playerid, "The specified target is not near you."); } else if (Players[targetid][pJailType] > 0) { return SendErrorMessage(playerid, "The specified target is already in jail."); } else if (time < 1 || time > 120) { return SendErrorMessage(playerid, "The specified time must be between 1 and 120 minutes."); } else if (GetClosestArrestPoint(playerid) == INVALID_ID) { return SendErrorMessage(playerid, "You are not near any arrest point."); } else { format(gExecute, sizeof(gExecute), "SELECT Charges FROM rp_accounts WHERE Username = '%s'", ReturnName(targetid)); mysql_tquery(gConnection, gExecute, "OnPlayerArrest_GetCharges", "ii", playerid, targetid);//h�r } return 1; } forward OnPlayerArrest_GetCharges(playerid, targetid); public OnPlayerArrest_GetCharges(playerid, targetid) { if (cache_get_row_count(gConnection)) { new charges = cache_get_field_content_int(0, "Charges"); if(charges == 0) { SendErrorMessage(playerid, "This player doesn't have any charges."); } else { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_charges WHERE Suspect = '%s' ORDER BY `ChargeID` DESC LIMIT %i", ReturnName(targetid), charges); mysql_tquery(gConnection, gExecute, "OnPlayerArrest_ListCharges", "ii", playerid, targetid); } } return 1; } forward OnPlayerArrest_ListCharges(playerid, targetid); public OnPlayerArrest_ListCharges(playerid, targetid) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "This player doesn't have any active charges."); ShowMDCPlayerMenuNew(playerid); } else { //new reason[128], string[1024]; new reason[128]; new time = 0; for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Reason", reason); new chargeid = cache_get_field_content_int(i, "ChargeID"); new chargecat = cache_get_field_content_int(i, "ChargeCat"); time += GetArrestTime(chargecat, chargeid); } SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has arrested %s at the prison for %i minutes. **", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), time); SendInfoMessage(targetid, "You have been imprisoned at the prison for %i minutes.", time); Players[targetid][pJailType] = 2; Players[targetid][pJailTime] = time * 60; //SendInfoMessage(playerid, "You have cleared %s of all charges.", gTargetName[playerid]); //new targetid = GetPlayerID(gTargetName[playerid]); //ShowMDCPlayerMenu(playerid); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Charges = 0 WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute); if (IsPlayerConnected(targetid)) { Players[targetid][pCharges] = 0; } Players[playerid][pPaycheck] += Random(500,1000); ResetPlayer(targetid); SpawnPlayerInJail(targetid); new notereason[128]; format(notereason, sizeof(notereason), "Arrested: %i minutes", time ); format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, PlayerName, Reason, Date, IssuerID, Issuer) VALUES(%i, '%s', '%s', NOW(), %i, '%s')", Players[targetid][pID], ReturnName(targetid), mysql_escaped(notereason), Players[playerid][pID], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "INSERT INTO rp_arrestlogs (Officer, Player, Date, Time) VALUES('%s', '%s', NOW(), %i)", ReturnName(playerid), ReturnName(targetid), time); mysql_tquery(gConnection, gExecute); new log[128]; format(log, sizeof(log), "%s arrested %s for %i minutes", ReturnName(playerid), gTargetName[playerid], time); CreateLog("arrests", log); gArrestsHour++; } return 1; } forward OnPlayerGetWarrants(playerid); public OnPlayerGetWarrants(playerid) { if (cache_get_row_count(gConnection)) { new warrants = cache_get_field_content_int(0, "Warrants"); if (!warrants) { SendErrorMessage(playerid, "This player doesn't have any active warrants."); ShowMDCPlayerMenuNew(playerid); } else { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_warrantlogs WHERE Suspect = '%s' ORDER BY `ID` DESC LIMIT %i", gTargetName[playerid], warrants); mysql_tquery(gConnection, gExecute, "OnPlayerViewWarrants", "i", playerid); } } return 1; } forward OnPlayerGetCharges(playerid); public OnPlayerGetCharges(playerid) { if (cache_get_row_count(gConnection)) { new charges = cache_get_field_content_int(0, "Charges"); if (!charges) { SendErrorMessage(playerid, "This player doesn't have any active charges."); ShowMDCPlayerMenuNew(playerid); } else { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_charges WHERE Suspect = '%s' ORDER BY `ChargeID` DESC LIMIT %i", gTargetName[playerid], charges); mysql_tquery(gConnection, gExecute, "OnPlayerViewCharges", "i", playerid); } } return 1; } forward OnPlayerViewCharges(playerid); public OnPlayerViewCharges(playerid) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "This player doesn't have any active charges."); ShowMDCPlayerMenuNew(playerid); } else { new reason[128], string[1024]; format(string, sizeof(string), "%s has the following active charges:\n", gTargetName[playerid]); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Reason", reason); new chargecat = cache_get_field_content_int(i, "ChargeCat"); new chargeid = cache_get_field_content_int(i, "ChargeID"); format(string, sizeof(string), "%s\n%s (%i minutes)", string, reason, GetArrestTime(chargecat, chargeid)); } Dialog_Show(playerid, Charges, DIALOG_STYLE_MSGBOX, "{FFFFFF}List Charges", string, "Back", ""); } } forward OnPlayerGetArrestLogs(playerid); public OnPlayerGetArrestLogs(playerid) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "This player doesn't have any arrests."); ShowMDCPlayerMenuNew(playerid); } else { new officer[128], date[32], time, string[2048]; format(string, sizeof(string), "Officer\tDate\tTime"); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Officer", officer); cache_get_field_content(i, "Date", date); time = cache_get_field_content_int(i, "Time"); format(string, sizeof(string), "%s\n%s\t%s\t%i", string, officer, date, time); } Dialog_Show(playerid, ArrestRecord, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Arrest Record", string, "Back", ""); } } forward OnPlayerViewWarrants(playerid); public OnPlayerViewWarrants(playerid) { new rows = cache_get_row_count(gConnection); if (!rows) { SendErrorMessage(playerid, "This player doesn't have any active warrants."); ShowMDCPlayerMenuNew(playerid); } else { new date[32], reason[128], string[1024]; format(string, sizeof(string), "%s has the following active warrants:\n", gTargetName[playerid]); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Date", date); cache_get_field_content(i, "Reason", reason); format(string, sizeof(string), "%s\n%s (%s)", string, reason, date); } Dialog_Show(playerid, Warrants, DIALOG_STYLE_MSGBOX, "{FFFFFF}List Warrants", string, "Back", ""); } } forward OnMdcSearchPlayer(playerid, search[]); public OnMdcSearchPlayer(playerid, search[]) { if (!cache_get_row_count(gConnection)) { Dialog_Show(playerid, MDC_LookUp, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "That player was not found.\n\nPlease input the full name of the player:", "Submit", "Cancel"); } else { strcpy(gTargetName[playerid], search, MAX_PLAYER_NAME); Players[playerid][pSelected] = cache_get_field_content_int(0, "ID"); ShowMDCLookupPlayer(playerid); } } /*{ if (!cache_get_row_count(gConnection)) { Dialog_Show(playerid, MDC_SearchName, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Name Search", "Error: Name wasn't found.\n\nPlease enter the full name of the person:", "Submit", "Cancel"); } else { strcpy(gTargetName[playerid], search, MAX_PLAYER_NAME); Players[playerid][pSelected] = cache_get_field_content_int(0, "ID"); format(gExecute, sizeof(gExecute), "SELECT ID, Age, Origin, Warrants, CarLicense, GunLicense, Phone, TotalWarrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute, "OnMDCViewInformation", "i", playerid); } }*/ forward OnPlayerSearchPlayer(playerid, search[]); public OnPlayerSearchPlayer(playerid, search[]) { if (!cache_get_row_count(gConnection)) { Dialog_Show(playerid, SearchPlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "That player was not found.\n\nPlease input the full name of the player:", "Submit", "Cancel"); } else { strcpy(gTargetName[playerid], search, MAX_PLAYER_NAME); Players[playerid][pSelected] = cache_get_field_content_int(0, "ID"); ShowMDCPlayerMenu(playerid); } } forward OnPlayerCheckActivity(playerid, name[]); public OnPlayerCheckActivity(playerid, name[]) { if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "You have specified an invalid user."); } else { new date[32]; cache_get_field_content(0, "LoginDate", date); SendInfoMessage(playerid, "%s was last active on %s.", name, date); } } forward OnFactionSkinAdded(playerid, faction); public OnFactionSkinAdded(playerid, faction) { ShowUniformEditMenu(playerid, faction); } forward OnPlayerUnbanPlayer(playerid); public OnPlayerUnbanPlayer(playerid) { if (!cache_get_row_count(gConnection)) { SendErrorMessage(playerid, "There was an error unbanning the player."); } else { new player[MAX_PLAYER_NAME], ip[16]; cache_get_field_content(0, "Player", player); cache_get_field_content(0, "IP", ip); format(gExecute, sizeof(gExecute), "DELETE FROM rp_blacklist WHERE ID = %i", Players[playerid][pSelected]); mysql_tquery(gConnection, gExecute); if (mysql_isnull(player)) { SendAdminMessage(COLOR_RED, "Admin: %s has unbanned IP: %s.", ReturnNameEx(playerid, 0), ip); } else { SendAdminMessage(COLOR_RED, "Admin: %s has unbanned %s.", ReturnNameEx(playerid, 0), player); } } return 1; } forward OnPlayerCallContact(playerid); public OnPlayerCallContact(playerid) { new contact[MAX_PLAYER_NAME]; if (!cache_get_row_count(gConnection)) { return 0; } else { new number = cache_get_field_content_int(0, "Number"); cache_get_field_content(0, "Contact", contact, gConnection); CallNumber(playerid, number); } return 1; }//Dialog_Show(playerid, PhoneSMStext, DIALOG_STYLE_INPUT, strHead, "Please type your message:", "Send", "Cancel"); forward OnPlayerTextContact(playerid); public OnPlayerTextContact(playerid) { new contact[MAX_PLAYER_NAME]; if (!cache_get_row_count(gConnection)) { return 0; } else { new number = cache_get_field_content_int(0, "Number"); cache_get_field_content(0, "Contact", contact, gConnection); Players[playerid][pPhoneSMS] = number; new strHead[64]; format(strHead, sizeof(strHead), "{FFFFFF}SMS to %i", number); Dialog_Show(playerid, PhoneSMStext, DIALOG_STYLE_INPUT, strHead, "Please type your message:", "Send", "Cancel"); } return 1; } forward OnPlayerListContacts(playerid); public OnPlayerListContacts(playerid) { new rows = cache_get_row_count(gConnection), contact[MAX_PLAYER_NAME], string[1024]; strcat(string, "Add Contact"); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Contact", contact, gConnection); format(string, sizeof(string), "%s\n%s (%i)", string, contact, cache_get_field_content_int(i, "Number")); gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); } Dialog_Show(playerid, Contacts, DIALOG_STYLE_LIST, "{FFFFFF}My contacts", string, "Select", "Cancel"); } forward OnPlayerCollectTransfer(playerid, id, transferid); public OnPlayerCollectTransfer(playerid, id, transferid) { new sender[MAX_PLAYER_NAME]; if (!cache_get_row_count(gConnection)) { return 0; } else { new amount = cache_get_field_content_int(0, "Amount"); cache_get_field_content(0, "Sender", sender, gConnection); BankAccounts[playerid][id][bankBalance] += amount; SendInfoMessage(playerid, "You have collected a transfer of {33CC33}%s{FFFFFF} from %s.", FormatNumber(amount), sender); format(gExecute, sizeof(gExecute), "DELETE FROM rp_transfers WHERE ID = %i", transferid); mysql_tquery(gConnection, gExecute); SaveBankAccount(playerid, id); ShowBankAccountMenu(playerid, id); } return 1; } forward OnPlayerViewTransfers(playerid); public OnPlayerViewTransfers(playerid) { new rows = cache_get_row_count(gConnection), displayString[1024]; if (!rows) { ShowBankAccountMenu(playerid, Players[playerid][pBank]); SendErrorMessage(playerid, "You don't have any pending bank transfers to collect."); } else { new sender[MAX_PLAYER_NAME], amount = 0; for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Sender", sender, gConnection); amount = cache_get_field_content_int(i, "Amount"); format(displayString, sizeof(displayString), "%s\n%s (sender: %s)", displayString, FormatNumber(amount), sender); gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); } Dialog_Show(playerid, CollectTransfer, DIALOG_STYLE_LIST, "{FFFFFF}Collect transfer", displayString, "Collect", "Back"); } } forward OnTransferCheck(playerid, name[]); public OnTransferCheck(playerid, name[]) { new id = Players[playerid][pBank]; if (!cache_get_row_count(gConnection)) { return Dialog_Show(playerid, BankTransfer, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "The specified player doesn't exist.\n\nPlease input the full name of the player to transfer money to:", "Submit", "Back"); } else { strcpy(gTargetName[playerid], name, MAX_PLAYER_NAME); Players[playerid][pTransfer] = cache_get_field_content_int(0, "ID"); Dialog_Show(playerid, TransferAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to transfer to '%s'.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]), gTargetName[playerid]); } return 1; } forward OnFactionAdded(id); public OnFactionAdded(id) { Factions[id][fcID] = cache_insert_id(gConnection); SaveFaction(id); } forward OnShellCasingAdded(id); public OnShellCasingAdded(id) { ShellCasings[id][scID] = cache_insert_id(gConnection); } forward OnBloodAdded(id); public OnBloodAdded(id) { Bloods[id][blID] = cache_insert_id(gConnection); } forward OnWeedPlantAdded(id); public OnWeedPlantAdded(id) { WeedPlants[id][wpID] = cache_insert_id(gConnection); } forward OnDealershipCarAdded(id); public OnDealershipCarAdded(id) { DealershipCars[id][dcID] = cache_insert_id(gConnection); SaveDealershipCar(id); } forward OnTrashbinAdded(id); public OnTrashbinAdded(id) { Trashbins[id][tID] = cache_insert_id(gConnection); SaveTrashbin(id); } forward OnPayphoneAdded(id); public OnPayphoneAdded(id) { Payphones[id][phID] = cache_insert_id(gConnection); SavePayphone(id); } forward OnATMAdded(id); public OnATMAdded(id) { ATM[id][atmID] = cache_insert_id(gConnection); SaveATM(id); } forward OnGasPumpAdded(id); public OnGasPumpAdded(id) { GasPumps[id][gpID] = cache_insert_id(gConnection); SaveGasPump(id); } forward OnAccessoryAdded(playerid, id); public OnAccessoryAdded(playerid, id) { Accessories[playerid][id][aID] = cache_insert_id(gConnection); SaveAccessory(playerid, id); } forward OnBankAccountAdded(playerid, id); public OnBankAccountAdded(playerid, id) { BankAccounts[playerid][id][bankID] = cache_insert_id(gConnection); SaveBankAccount(playerid, id); } forward OnFurnitureAdded(furniture); public OnFurnitureAdded(furniture) { Furniture[furniture][fID] = cache_insert_id(gConnection); SaveFurniture(furniture); } forward OnVehicleAdded(vehicle); public OnVehicleAdded(vehicle) { Vehicles[vehicle][vID] = cache_insert_id(gConnection); SaveVehicle(vehicle); } forward OnDropItemAdded(item); public OnDropItemAdded(item) { DropItems[item][dID] = cache_insert_id(gConnection); } forward OnStoredItemAdded(item); public OnStoredItemAdded(item) { StoredItems[item][stID] = cache_insert_id(gConnection); } forward OnRestaurantItemAdded(company, id); public OnRestaurantItemAdded(company, id) { RestaurantItems[company][id][rtID] = cache_insert_id(gConnection); SaveRestaurantItem(company, id); } forward OnCompanyAdded(company); public OnCompanyAdded(company) { Companies[company][cID] = cache_insert_id(gConnection); Companies[company][cWorld] = Companies[company][cID] + 25000; UpdateCompany(company); SaveCompany(company); for (new i = 0, index = 0; i < sizeof(g_CompanyItems); i ++) { if (Companies[company][cType] == g_CompanyItems[i][e_CompanyType]) { Products[company][index][prPrice] = g_CompanyItems[i][e_DefaultPrice]; if (g_CompanyItems[i][e_IsStockable]) Products[company][index][prStock] = 200; else Products[company][index][prStock] = -1; SaveProduct(company, index++); } } } forward OnHouseAdded(house); public OnHouseAdded(house) { Houses[house][hID] = cache_insert_id(gConnection); Houses[house][hWorld] = Houses[house][hID] + 10000; UpdateHouse(house); SaveHouse(house); } forward OnBuildingAdded(building); public OnBuildingAdded(building) { Buildings[building][bID] = cache_insert_id(gConnection); Buildings[building][bWorld] = Buildings[building][bID] + 50000; UpdateBuilding(building); SaveBuilding(building); } forward OnChangeName(playerid, targetid, name[]); public OnChangeName(playerid, targetid, name[]) { new rows = cache_get_row_count(gConnection); if (rows) { SendErrorMessage(playerid, "Sorry, that name is already in use!"); } else { SendInfoMessage(playerid, "You have changed %s's name to %s.", ReturnNameEx(targetid, 0), name); SendInfoMessage(targetid, "%s has changed your name to %s.", ReturnNameEx(playerid, 0), name); new log[128]; format(log, sizeof(log), "%s has changed %s's name to %s", ReturnName(playerid), ReturnName(targetid), name); CreateLog("admin", log); ChangeName(targetid, name); } return 1; } forward OnSelectBan(playerid); public OnSelectBan(playerid) { new rows = cache_get_row_count(gConnection); if (rows) { new banPlayer[MAX_PLAYER_NAME]; cache_get_field_content(0, "Player", banPlayer, gConnection); if (mysql_isnull(banPlayer)) { Dialog_Show(playerid, UnbanPlayer, DIALOG_STYLE_MSGBOX, "{FFFFFF}Unban player", "{6688FF}IP:{FFFFFF}\n%s\n\n{6688FF}Banned By:{FFFFFF}\n%s\n\n{6688FF}Date:{FFFFFF}\n%s\n\n{6688FF}Reason:{FFFFFF}\n%s\n\nClick 'Unban' to unban this IP.", "Unban", "Back", cache_fetch_string(0, "IP"), cache_fetch_string(0, "BannedBy"), cache_fetch_string(0, "Date"), cache_fetch_string(0, "Reason")); } else { Dialog_Show(playerid, UnbanPlayer, DIALOG_STYLE_MSGBOX, "{FFFFFF}Unban player", "{6688FF}Player:{FFFFFF}\n%s\n\n{6688FF}IP:{FFFFFF}\n%s\n\n{6688FF}Banned By:{FFFFFF}\n%s\n\n{6688FF}Date:{FFFFFF}\n%s\n\n{6688FF}Reason:{FFFFFF}\n%s\n\nClick 'Unban' to unban this player.", "Unban", "Back", banPlayer, cache_fetch_string(0, "IP"), cache_fetch_string(0, "BannedBy"), cache_fetch_string(0, "Date"), cache_fetch_string(0, "Reason")); } } else { SendErrorMessage(playerid, "The selected player is no longer in the ban list."); } } forward OnViewBanList(playerid); public OnViewBanList(playerid) { new rows = cache_get_row_count(gConnection), player[MAX_PLAYER_NAME], buffer[MAX_LISTED_BANS * 64]; for (new i = 0; i < rows; i ++) { gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); cache_get_field_content(i, "Player", player, gConnection); if (mysql_isnull(player)) { format(buffer, sizeof(buffer), "%s\n* %s (%s)", buffer, cache_fetch_string(i, "IP"), cache_fetch_string(i, "Reason")); } else { format(buffer, sizeof(buffer), "%s\n* %s (%s)", buffer, player, cache_fetch_string(i, "Reason")); } } if (Players[playerid][pBanPage] > 1) { strcat(buffer, "\n<< Go Back"); } if (rows == MAX_LISTED_BANS) { strcat(buffer, "\n>> Next Page"); } if (!strlen(buffer)) { SendErrorMessage(playerid, "There are no banned players to display."); } else { Dialog_Show(playerid, BanList, DIALOG_STYLE_LIST, "{FFFFFF}Select player to unban", buffer, "Select", "Cancel"); } return 1; } forward StartEngine(playerid, vehicleid); public StartEngine(playerid, vehicleid) { if (Players[playerid][pStartEngine] && IsPlayerInVehicle(playerid, vehicleid) && Players[playerid][pAutoShop] == INVALID_ID) { if (Players[playerid][pRefuel] != INVALID_ID) { StopRefuel(playerid); } SetEngineStatus(vehicleid, 1); //SendInfoMessage(playerid, "The engine has started successfully."); ShowActionBubble(playerid, "* %s starts the engine of the vehicle.", ReturnNameEx(playerid)); SendDistanceMessage(playerid, 20.0, COLOR_PURPLE, "** The vehicle's engine starts. (( %s ))", ReturnNameEx(playerid)); } Players[playerid][pStartEngine] = 0; } forward FuelCycle(); public FuelCycle() { for (new i = 1; i < MAX_VEHICLES; i ++) { if (IsValidVehicle(i) && IsPoweredVehicle(i) && GetEngineStatus(i) > 0) { if (VehicleInformation[i][vFuel] > 0) { VehicleInformation[i][vFuel]--; if (!VehicleInformation[i][vFuel]) { SetEngineStatus(i, 0); } UpdateFuelGauge(i); } } } } forward DistanceCycle(); public DistanceCycle() { new Float:distance; foreach (new playerid : Player) { if (Players[playerid][pLoggedIn] && Players[playerid][pSetupInfo]) { distance = GetPlayerDistanceFromPoint(playerid, Players[playerid][pDistance][0], Players[playerid][pDistance][1], Players[playerid][pDistance][2]); if (distance <= 150.0) { Players[playerid][pTraveled] += distance * 0.001; } GetPlayerPos(playerid, Players[playerid][pDistance][0], Players[playerid][pDistance][1], Players[playerid][pDistance][2]); } } return 1; } forward SecondSync(); public SecondSync() { new Float:health, Float:armour, string[128]; if (Iter_Count(Player) > Server[PlayerRecord]) { SetPlayerRecord(Iter_Count(Player)); } for (new i = 0; i < MAX_BLOOD; i ++) { if (Bloods[i][blExists]) { if(gettime() - Bloods[i][blTime] > 5000) { DestroyDynamicObject(Bloods[i][blObject]); Bloods[i][blExists] = 0; Bloods[i][blObject] = INVALID_OBJECT_ID; } } } for (new i = 0; i < MAX_WEEDPLANTS; i ++) { if (WeedPlants[i][wpExists]) { WeedPlants[i][wpTime] ++; } } foreach (new playerid : Player) { if (IsPlayerNPC(playerid)) continue; if (!IsPlayerLoggedIn(playerid)) { //UpdateLoginTextDraws(playerid); } else { new vehicleid = GetPlayerVehicleID(playerid); if ((gettime() - Players[playerid][pLastUpdate]) > 4 && !IsPlayerPaused(playerid)) { Players[playerid][pPaused] = 1; Players[playerid][pPausedText] = CreateDynamic3DTextLabel("Paused\n{FFFFFF}1 second", COLOR_BLUE, 0.0, 0.0, 0.4, 20.0, playerid); } if (IsPlayerPaused(playerid)) { format(string, sizeof(string), "Paused\n{FFFFFF}%i seconds", (gettime() - Players[playerid][pLastUpdate])); UpdateDynamic3DTextLabelText(Players[playerid][pPausedText], COLOR_BLUE, string); } if (Players[playerid][pDonator] > 0 && gettime() >= Players[playerid][pExpiryDate]) { Players[playerid][pDonator] = 0; SendInfoMessage(playerid, "Your donator subscription has expired."); } if (Players[playerid][pPayphone] != INVALID_ID && GetClosestPayphone(playerid) != Players[playerid][pPayphone]) { HangupCall(playerid); } if (Players[playerid][pInsideTaxi] != INVALID_PLAYER_ID) { if(Players[Players[playerid][pInsideTaxi]][pTaxiDuty]) { Players[playerid][pTaxiTime]++; if (Players[playerid][pTaxiTime] > 9) { Players[playerid][pTaxiTime] = 0; Players[playerid][pTaxiMeter]++; } format(string, sizeof(string), "~g~~h~Taxi Meter:~w~ %s / %i seconds", FormatNumber(Players[playerid][pTaxiMeter]*Players[Players[playerid][pInsideTaxi]][pTaxiFare]), Players[playerid][pTaxiTime]); ShowFooterText(playerid, string, 1500); ShowFooterText(Players[playerid][pInsideTaxi], string, 1500); } } if (Players[playerid][pTazed] > 0) { Players[playerid][pTazed]--; if (!Players[playerid][pTazed]) { TogglePlayerControllable(playerid, true); ClearAnimations(playerid, 1); } } if (Players[playerid][pCommandSpam] > 0) { Players[playerid][pCommandSpam]--; } if(Players[playerid][pRepairTime] > 0) { Players[playerid][pRepairTime]--; if(Players[playerid][pRepairTime] <= 0) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { vehicleid = GetPlayerVehicleID(playerid); new vehicle = GetVehicleID(vehicleid); if(vehicle >= 0) { ChangeVehicleColor(vehicleid, Vehicles[vehicleid][vColor1], Vehicles[vehicleid][vColor2]); } foreach(new i : Player) { if(IsPlayerInVehicle(i, vehicleid)) { SetCameraBehindPlayer(i); } } SetVehiclePos(vehicleid, g_RepairShops[Players[playerid][pRepairShop]][7], g_RepairShops[Players[playerid][pRepairShop]][8], g_RepairShops[Players[playerid][pRepairShop]][9]); SetVehicleZAngle(vehicleid, g_RepairShops[Players[playerid][pRepairShop]][10]); SetCameraBehindPlayer(playerid); RepairVehicle(vehicleid); GameTextForPlayer(playerid, "~g~Vehicle Repaired", 5000, 1); TogglePlayerControllable(playerid, 1); } Players[playerid][pRepairShop] = -1; } } Players[playerid][pWarnTimer]++; if (Players[playerid][pWarnTimer] > 5) { Players[playerid][pWarnWeapon] = 0; Players[playerid][pWarnHealth] = 0; Players[playerid][pWarnArmor] = 0; Players[playerid][pWarnAirbreak] = 0; Players[playerid][pWarnSpeedhack] = 0; Players[playerid][pWarnMoneyHack] = 0; Players[playerid][pWarnAmmoHack] = 0; Players[playerid][pWarnFlyHack] = 0; Players[playerid][pWarnDialogHack] = 0; Players[playerid][pWarnGodMode] = 0; Players[playerid][pWarnRapidFire] = 0; Players[playerid][pWarnTeleport] = 0; } /* pWarnTimer, pWarnWeapon, pWarnHealth, pWarnArmor, pWarnAirbreak, pWarnSpeedhack, pWarnMoneyHack, pWarnAmmoHack, pWarnFlyHack, pWarnDialogHack, pWarnGodMode, pWarnRapidFire, pWarnTeleport */ if (Players[playerid][pCommandMuted] > 0) { Players[playerid][pCommandMuted]--; } if (Players[playerid][pAutoShop] != INVALID_ID && Players[playerid][pAutoTime] > 0) { if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { Players[playerid][pAutoShop] = INVALID_ID; Players[playerid][pAutoTime] = 0; } else { Players[playerid][pAutoTime]--; if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER && !IsPlayerInRangeOfPoint(playerid, 20.0, 1903.4791, 1353.9811, 24.5537)) { Players[playerid][pAutoShop] = INVALID_ID; Players[playerid][pAutoTime] = 0; SetPlayerPos(playerid, Players[playerid][pAutoX], Players[playerid][pAutoY], Players[playerid][pAutoZ]); SetPlayerFacingAngle(playerid, Players[playerid][pAutoA]); SetPlayerVirtualWorld(playerid, 0); TogglePlayerControllable(playerid, true); SendInfoMessage(playerid, "You have been removed from the auto shop."); } else if (!Players[playerid][pAutoTime]) { SendInfoMessage(playerid, "Your vehicle has been fully repaired for {33CC33}%s{FFFFFF}.", FormatNumber(GetRepairCost(vehicleid))); PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0); RemoveMoney(playerid, GetRepairCost(vehicleid)); RepairVehicle(vehicleid); SetVehiclePos(vehicleid, Players[playerid][pAutoX], Players[playerid][pAutoY], Players[playerid][pAutoZ]); SetVehicleZAngle(vehicleid, Players[playerid][pAutoA]); SetVehicleVirtualWorld(vehicleid, 0); foreach (new i : Player) { if (IsPlayerInVehicle(i, vehicleid)) { SetPlayerVirtualWorld(i, 0); TogglePlayerControllable(i, true); SetCameraBehindPlayer(i); } } if (VehicleInformation[vehicleid][vFuel] > 0) { SetEngineStatus(vehicleid, true); } Players[playerid][pAutoShop] = INVALID_ID; Players[playerid][pAutoTime] = 0; } else { format(string, sizeof(string), "~g~~h~Repairing... %i seconds remaining.", Players[playerid][pAutoTime]); ShowFooterText(playerid, string, 1500); } } } if (Players[playerid][pSprayTag] != INVALID_ID && GetClosestSprayTag(playerid) != Players[playerid][pSprayTag]) { Players[playerid][pSprayTag] = INVALID_ID; } if (Players[playerid][pDrivingTest] && IsPlayerInAnyVehicle(playerid)) { Players[playerid][pTestTime]++; } if (Players[playerid][pStoned]) { Players[playerid][pStonedTime]--; if (!Players[playerid][pStonedTime]) { Players[playerid][pStoned] = STONED_TYPE_NONE; SyncTimeForPlayer(playerid); SetPlayerWeather(playerid, gWeatherID); SetPlayerDrunkLevel(playerid, 2500); SendInfoMessage(playerid, "The effects from the drugs have faded away."); Players[playerid][pSeconds] = 0; } else { Players[playerid][pSeconds]++; GetPlayerHealth(playerid, health); GetPlayerArmour(playerid, armour); switch (Players[playerid][pStoned]) { case STONED_TYPE_STEROIDS: { if (health >= 100.0) { Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pSeconds] = 0; SendInfoMessage(playerid, "The effects from the drugs have faded away."); } else if (Players[playerid][pSeconds] == 20) { SetPlayerHealth(playerid, (health + 10.0 > 100.0) ? (100.0) : (health + 10.0)); Players[playerid][pSeconds] = 0; } } case STONED_TYPE_HEROIN: { if (health >= 100.0) { Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pSeconds] = 0; SendInfoMessage(playerid, "The effects from the drugs have faded away."); } else if (Players[playerid][pSeconds] == 12) { SetPlayerHealth(playerid, (health + 5.0 > 100.0) ? (100.0) : (health + 5.0)); Players[playerid][pSeconds] = 0; } } case STONED_TYPE_LSD: { if (health >= 100.0) { Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pSeconds] = 0; SendInfoMessage(playerid, "The effects from the drugs have faded away."); } else if (Players[playerid][pSeconds] == 4) { SetPlayerHealth(playerid, (health + 2.0 > 100.0) ? (100.0) : (health + 2.0)); Players[playerid][pSeconds] = 0; } } case STONED_TYPE_ECSTASY: { if (health >= 100.0) { Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pSeconds] = 0; SendInfoMessage(playerid, "The effects from the drugs have faded away."); } else if (Players[playerid][pSeconds] == 8) { SetPlayerHealth(playerid, (health + 5.0 > 100.0) ? (100.0) : (health + 5.0)); Players[playerid][pSeconds] = 0; } } case STONED_TYPE_MARIJUANA: { if (health >= 100.0) { Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pSeconds] = 0; SendInfoMessage(playerid, "The effects from the drugs have faded away."); } else if (Players[playerid][pSeconds] == 15) { SetPlayerHealth(playerid, (health + 3.0 > 100.0) ? (100.0) : (health + 3.0)); Players[playerid][pSeconds] = 0; } } case STONED_TYPE_CRACK: { if (health >= 100.0) { Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pSeconds] = 0; SendInfoMessage(playerid, "The effects from the drugs have faded away."); } else if (Players[playerid][pSeconds] == 5) { SetPlayerHealth(playerid, (health + 15.0 > 100.0) ? (100.0) : (health + 15.0)); Players[playerid][pSeconds] = 0; } } case STONED_TYPE_COCAINE: { if (health >= 100.0) { Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pSeconds] = 0; SendInfoMessage(playerid, "The effects from the drugs have faded away."); } else if (Players[playerid][pSeconds] == 10) { SetPlayerHealth(playerid, (health + 7.0 > 100.0) ? (100.0) : (health + 7.0)); Players[playerid][pSeconds] = 0; } } case STONED_TYPE_METH: { if (health >= 100.0) { Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pSeconds] = 0; SendInfoMessage(playerid, "The effects from the drugs have faded away."); } else if (Players[playerid][pSeconds] == 13) { SetPlayerHealth(playerid, (health + 10.0 > 100.0) ? (100.0) : (health + 10.0)); Players[playerid][pSeconds] = 0; } } case STONED_TYPE_PCP: { if (health >= 100.0) { Players[playerid][pStoned] = STONED_TYPE_NONE; Players[playerid][pStonedTime] = 0; Players[playerid][pSeconds] = 0; SendInfoMessage(playerid, "The effects from the drugs have faded away."); } else if (Players[playerid][pSeconds] == 20) { SetPlayerHealth(playerid, (health + 10.0 > 100.0) ? (100.0) : (health + 10.0)); Players[playerid][pSeconds] = 0; } } } } } if (Players[playerid][pPainkillers] > 0) { GetPlayerHealth(playerid, health); Players[playerid][pPainkillers]--; if (health + 3.0 > 100.0) { SetPlayerHealth(playerid, 100.0); } else { SetPlayerHealth(playerid, health + 3.0); } } if (Players[playerid][pAnticheat] > 0) { Players[playerid][pAnticheat]--; } if (Players[playerid][pJailType] > 0) { Players[playerid][pJailTime]--; if (Players[playerid][pJailTime] < 1) { Players[playerid][pJailType] = 0; Players[playerid][pJailTime] = 0; ResetSpawnInfo(playerid); SetPlayerSpawn(playerid); SendInfoMessage(playerid, "You have been released from jail!"); } } if (Players[playerid][pHotwire] != INVALID_VEHICLE_ID) { Players[playerid][pHotwireTime]--; if (!Players[playerid][pHotwireTime]) { Statistics[playerid][sHotwired]++; SetEngineStatus(Players[playerid][pHotwire], 1); SetAlarmStatus(Players[playerid][pHotwire], 0); SendInfoMessage(playerid, "You have hotwired this vehicle."); Players[playerid][pHotwire] = INVALID_VEHICLE_ID; Players[playerid][pHotwireTime] = 0; } else { format(string, sizeof(string), "~w~Hotwiring... %i seconds remaining.", Players[playerid][pHotwireTime]); ShowFooterText(playerid, string, 1500); } } if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { vehicleid = GetPlayerVehicleID(playerid); if (IsPoweredVehicle(vehicleid) && GetVehicleHealthEx(vehicleid) <= 299.0) { SetVehicleHealth(vehicleid, 300.0); SetEngineStatus(vehicleid, 0); SendInfoMessage(playerid, "This vehicle is totalled!"); } } if (Players[playerid][pBleeding]) { Players[playerid][pBleedingTime]++; if ((Players[playerid][pBleedingTime] % 5) == 0) // Every 5 seconds { //SpawnBloodObject(playerid); new Float:x, Float:y, Float:z, Float:angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); //SpawnBloodObject(playerid); //AddBlood(playerid, x, y, z, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); if (!Players[playerid][pMedicKit] && Players[playerid][pStoned] != STONED_TYPE_COCAINE) { GetPlayerHealth(playerid, health); SetPlayerHealth(playerid, health - 1.0); } } if (Players[playerid][pBleedingTime] >= 40) { Players[playerid][pBleeding] = 0; } } if (Players[playerid][pMedicKit]) { GetPlayerHealth(playerid, health); health = health + 3.0; if (health > 100.0) { Players[playerid][pMedicKit] = 0; SetPlayerHealth(playerid, 100.0); SendInfoMessage(playerid, "Your health has regenerated."); } else { SetPlayerHealth(playerid, health); } } if (Players[playerid][pPicking] != PICK_LOCK_NONE) { Players[playerid][pPickTime]--; format(string, sizeof(string), "Picking lock... %i seconds.", Players[playerid][pPickTime]); ShowFooterText(playerid, string, 1500); switch (Players[playerid][pPicking]) { case PICK_LOCK_HOUSE: { if (GetClosestHouse(playerid) != Players[playerid][pPickID] || !Houses[Players[playerid][pPickID]][hLocked]) { StopPicking(playerid); } else if (Players[playerid][pPickTime] <= 0) { Houses[Players[playerid][pPickID]][hLocked] = 0; SaveHouse(Players[playerid][pPickID]); StopPicking(playerid); SendInfoMessage(playerid, "You have picked open the lock. %i", Players[playerid][pPickID]); } } case PICK_LOCK_SAFE: { //else if ((id = GetClosestFurniture(playerid, 2.0, 2332)) != INVALID_ID) if (GetClosestFurniture(playerid, 2.0, 2332) != Players[playerid][pPickID]) { StopPicking(playerid); } else if (Players[playerid][pPickTime] <= 0) { new safe = GetClosestFurniture(playerid, 2.0, 2332); Furniture[safe][fSafeOpen] = 1; SendInfoMessage(playerid, "You have picked open the lock."); UpdateDynamic3DTextLabelText(Furniture[safe][fText], COLOR_GREY, "Status: {D4993B}Broken{AFAFAF}\nPress Y to use safe"); StopPicking(playerid); } } case PICK_LOCK_COMPANY: { if (GetClosestCompany(playerid) != Players[playerid][pPickID] || !Companies[Players[playerid][pPickID]][cLocked]) { StopPicking(playerid); } else if (Players[playerid][pPickTime] <= 0) { Companies[Players[playerid][pPickID]][cLocked] = 0; SaveCompany(Players[playerid][pPickID]); StopPicking(playerid); SendInfoMessage(playerid, "You have picked open the lock."); } } case PICK_LOCK_VEHICLE: { if (GetVehicleID(GetClosestVehicle(playerid)) != Players[playerid][pPickID] || !Vehicles[Players[playerid][pPickID]][vLocked]) { StopPicking(playerid); } else if (Players[playerid][pPickTime] <= 0) { Vehicles[Players[playerid][pPickID]][vLocked] = 0; SetLockStatus(Vehicles[Players[playerid][pPickID]][vVehicle], false); SaveVehicle(Players[playerid][pPickID]); StopPicking(playerid); SendInfoMessage(playerid, "You have picked open the lock on this vehicle."); } } } } if (Players[playerid][pDonator] == 0 && Weapons[playerid][wTertiary]) { SetPlayerWeapon(playerid, WEAPON_TERTIARY, 0); } if (IsPlayerSpawned(playerid) && Players[playerid][pAnticheat] <= 0) { new Float:armor; GetPlayerArmour(playerid, armor); if (armor >= 100.0 && Players[playerid][pArmor] < 100.0) { Players[playerid][pCheatFlags]++; if (Players[playerid][pCheatFlags] < 3) { SendAdminMessage(COLOR_RED, "Admin: %s may be using hacked armor.", ReturnNameEx(playerid, 0)); } else { SendAdminMessage(COLOR_RED, "Admin: %s was banned for spawning armor.", ReturnNameEx(playerid, 0)); AddToBlacklist(playerid, "Anticheat", "Armor hacks"); } } if (IsWeaponCheater(playerid)) { Players[playerid][pCheatFlags]++; if (Players[playerid][pCheatFlags] < 3) { SendAdminMessage(COLOR_RED, "Admin: %s may be weapon hacking a %s.", ReturnNameEx(playerid, 0), GetWeapon(GetPlayerWeapon(playerid))); } else { format(string, sizeof(string), "Weapon cheats (%s)", GetWeapon(GetPlayerWeapon(playerid))); SendAdminMessage(COLOR_RED, "Admin: %s was banned for weapon cheats (%s).", ReturnNameEx(playerid, 0), GetWeapon(GetPlayerWeapon(playerid))); AddToBlacklist(playerid, "Anticheat", string); } } } /*if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER && GetVehicleKMH(GetPlayerVehicleID(playerid)) > 350.0) { SendAdminMessage(COLOR_RED, "Admin: %s may be speed hacking as their speed is over 350 km/h.", ReturnNameEx(playerid, 0)); }*/ if (IsPlayerHoldingTazer(playerid) && GetPlayerAmmo(playerid) > 2 && !IsPlayerInAnyVehicle(playerid)) { SendAdminMessage(COLOR_RED, "Admin: %s is holding a taser with more than 2 ammo.", ReturnNameEx(playerid, 0)); } /*if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK && Players[playerid][pAdmin] < 2) { SendAdminMessage(COLOR_RED, "Admin: %s may be using a hacked jetpack.", ReturnNameEx(playerid, 0)); }*/ /*if (GetPlayerCameraMode(playerid) == 55 && !PlayerHasWeapon(playerid, GetPlayerWeapon(playerid))) { SendAdminMessage(COLOR_RED, "Admin: %s was kicked for using a desynced weapon in a drive-by.", ReturnNameEx(playerid)); KickPlayer(playerid); }*/ //UpdateColorForPlayer(playerid); UpdateMaskForPlayer(playerid); SetCheckpointsForPlayer(playerid); if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT || !IsPoweredVehicle(GetPlayerVehicleID(playerid))) { StereoUpdate(playerid); } else if (IsPlayerInAnyVehicle(playerid) && IsPoweredVehicle(GetPlayerVehicleID(playerid))) { VehicleStereoUpdate(playerid); } if (Players[playerid][pVehicleStream] != INVALID_PLAYER_ID && !IsPlayerInVehicle(playerid, Players[playerid][pVehicleStream])) { Players[playerid][pVehicleStream] = INVALID_VEHICLE_ID; StopAudioStreamForPlayer(playerid); } else if (Players[playerid][pStereoPlayerID] != INVALID_PLAYER_ID && Players[playerid][pStereoPlayerID] != GetNearbyStereoPlayerID(playerid)) { Players[playerid][pStereoPlayerID] = INVALID_PLAYER_ID; StopAudioStreamForPlayer(playerid); } } } } /*forward PublishAds(); public PublishAds() { foreach (new i : Player) { if (IsAdvertisementActive(i)) { SendFormatMessageToAll(COLOR_GREEN, "(Advertisement) %s - number: %i", GetPackedString(gAdvertisement[i]), Players[i][pPhone]); ResetAdvertisement(i); break; } } }*/ forward MinuteSync(); public MinuteSync() { new minute; static message[128]; gMinutes++; if (gMinutes >= 60) { gCallsHour = 0; gArrestsHour = 0; } gettime(.minute = minute); UpdateTimeTextDraw(); new pendingApps=0; new pendingRequests=0; new pendingReports=0; for(new i = 0; i < MAX_REPORTS; i ++) if(Reports[i][rExists]) pendingReports++; foreach(new i : Player) if(IsHelpRequestActive(i)) pendingRequests++; if(pendingReports) { SendAdminMessage(COLOR_LIGHTRED, "[REPORTS] There are %d pending reports. (/reports)", pendingReports); } if(pendingRequests) { SendSupporterMessage(COLOR_YELLOW, "[REQUEST] There are %d pending help requests. (/listhelp)", pendingRequests); } foreach (new i : Player) { if (!IsPlayerPaused(i)) { SyncTimeForPlayer(i); UpdateNameTag(i, 2); Players[i][pMinutes]++; if ((Players[i][pMinutes] % 10) == 0) { SaveAccount(i); } if (Players[i][pMinutes] >= 60) { Players[i][pHoursOnline] = Players[i][pHoursOnline] + 1; Players[i][pMinutes] = 0; SendFormatMessage(i, COLOR_YELLOW, "-------------------------------------------"); SendFormatMessage(i, COLOR_YELLOW, " LOS SANTOS BANK "); SendFormatMessage(i, COLOR_WHITE, "Paycheck:"); if (GetTotalPaycheckAmount(i) > 0) { if (Players[i][pJobPaycheck] > 0) { Players[i][pPaycheck] += Players[i][pJobPaycheck]; SendFormatMessage(i, COLOR_LIGHTGREY, "Job Paycheck: {33CC33}%s", FormatNumber(Players[i][pJobPaycheck])); } if (Players[i][pFaction] != INVALID_ID && Factions[Players[i][pFaction]][fcType] != FACTION_ILLEGAL) { new amount = GetFactionRankPay(Players[i][pFaction], Players[i][pFactionRank]); if (amount) { Players[i][pPaycheck] += amount; SendFormatMessage(i, COLOR_WHITE, "Faction Pay: {33CC33}%s", FormatNumber(amount)); } } } if (Players[i][pJob] == JOB_MECHANIC) { Players[i][pPaycheck] += 1500; SendFormatMessage(i, COLOR_WHITE, "Mechanic Paycheck: {33CC33}%s", FormatNumber(1500)); } if (Players[i][pHoursOnline] < 10) { Players[i][pPaycheck] += 2000; SendFormatMessage(i, COLOR_WHITE, "Paycheck: {33CC33}%s", FormatNumber(2000)); } if (Players[i][pSavingsMoney] != 0) { if (Players[i][pSavingsMoney] >= 50000000) { SendFormatMessage(i, COLOR_WHITE, "You have reached maximum savings of: {33CC33}%s", FormatNumber(Players[i][pSavingsMoney])); } else { new oldsavings = Players[i][pSavingsMoney]; SendFormatMessage(i, COLOR_WHITE, "Old Savings: {33CC33}%s", FormatNumber(oldsavings)); new newsavings = oldsavings / 100 * 1; SendFormatMessage(i, COLOR_WHITE, "New Savings: {33CC33}%s {FFFFFF}(+{33CC33}%s{FFFFFF})", FormatNumber(oldsavings + newsavings), FormatNumber(newsavings)); Players[i][pSavingsMoney] += newsavings; } } switch (Players[i][pDonator]) { case DONATOR_BASIC: { Players[i][pPaycheck] += 2500; SendFormatMessage(i, COLOR_WHITE, "Donator Bonus: {33CC33}$2,500"); } case DONATOR_STANDARD: { Players[i][pPaycheck] += 3500; SendFormatMessage(i, COLOR_WHITE, "Donator Bonus: {33CC33}$3,500"); } case DONATOR_INVESTOR: { Players[i][pPaycheck] += 5500; SendFormatMessage(i, COLOR_WHITE, "Donator Bonus: {33CC33}$5,500"); } case DONATOR_PREMIUM: { Players[i][pPaycheck] += 7500; SendFormatMessage(i, COLOR_WHITE, "Donator Bonus: {33CC33}$7,500"); } } Players[i][pJobPaycheck] = 0; SendFormatMessage(i, COLOR_GREY, "-------------------------------------------"); GameTextForPlayer(i, "~g~~h~Paycheck", 3000, 1); } } if(currentQuestion[i] == 10 && Players[i][pActivated] == 0) { pendingApps++; } } if (pendingApps > 0) { format(message, sizeof(message), "[QUIZ] There are %d pending applications. (/quizes)", pendingApps); SendSupporterMessage(COLOR_LIGHTRED, message); SendAdminMessage(COLOR_LIGHTRED, message); SendVeteranMessage(COLOR_LIGHTRED, message); } for (new i = 0; i < MAX_REPORTS; i ++) { if (Reports[i][rExists]) { Reports[i][rReportTime]--; if (Reports[i][rReportTime] <= 0) { Reports[i][rExists] = 0; SendInfoMessage(Reports[i][rReporter], "Your report has expired. You can try reporting again later."); } } } for (new i = 0; i < MAX_EMERGENCY; i ++) { if (Emergency[i][ecExists]) { Emergency[i][ecTime]--; if (Emergency[i][ecTime] <= 0) { Emergency[i][ecExists] = 0; } } } return 1; } forward OnLoadCarBlacklist(); public OnLoadCarBlacklist() { new rows = cache_get_row_count(gConnection), modelid ; for (new i = 0; i < rows; i ++) { modelid = cache_get_field_content_int(i, "Model"); if (400 <= modelid <= 611) { modelid -= 400; gVehicleBlacklist[modelid] = true; } } } forward OnLoadGunDamages(); public OnLoadGunDamages() { new rows = cache_get_row_count(gConnection), weaponid ; for (new i = 0; i < rows; i ++) { weaponid = cache_get_field_content_int(i, "Weapon"); if (IsValidDamageWeapon(weaponid)) { WeaponDamages[weaponid] = cache_get_field_content_float(i, "Damage"); } } } forward OnLoadPayphones(); public OnLoadPayphones() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { Payphones[i][phExists] = 1; Payphones[i][phID] = cache_get_field_content_int(i, "phID"); Payphones[i][phNumber] = cache_get_field_content_int(i, "phNumber"); Payphones[i][phX] = cache_get_field_content_float(i, "phX"); Payphones[i][phY] = cache_get_field_content_float(i, "phY"); Payphones[i][phZ] = cache_get_field_content_float(i, "phZ"); Payphones[i][phA] = cache_get_field_content_float(i, "phA"); Payphones[i][phInterior] = cache_get_field_content_int(i, "phInterior"); Payphones[i][phWorld] = cache_get_field_content_int(i, "phWorld"); Payphones[i][phCaller] = INVALID_PLAYER_ID; Payphones[i][phObject] = INVALID_OBJECT_ID; Payphones[i][phText] = INVALID_3DTEXT_ID; UpdatePayphone(i); } } forward OnLoadSprayTags(); public OnLoadSprayTags() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "stText", SprayTags[i][sText], gConnection, 64); SprayTags[i][sExists] = 1; SprayTags[i][sID] = cache_get_field_content_int(i, "stID"); SprayTags[i][sColor] = cache_get_field_content_int(i, "stColor"); SprayTags[i][sX] = cache_get_field_content_float(i, "stX"); SprayTags[i][sY] = cache_get_field_content_float(i, "stY"); SprayTags[i][sZ] = cache_get_field_content_float(i, "stZ"); SprayTags[i][sA] = cache_get_field_content_float(i, "stA"); SprayTags[i][sObject] = INVALID_OBJECT_ID; UpdateSprayTag(i); } } forward OnLoadTags(); public OnLoadTags() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "stText", Tags[i][tagText], gConnection, 64); Tags[i][tagExists] = 1; Tags[i][tagID] = cache_get_field_content_int(i, "stID"); Tags[i][tagColor] = cache_get_field_content_int(i, "stColor"); Tags[i][tagX] = cache_get_field_content_float(i, "stX"); Tags[i][tagY] = cache_get_field_content_float(i, "stY"); Tags[i][tagZ] = cache_get_field_content_float(i, "stZ"); Tags[i][tagA] = cache_get_field_content_float(i, "stA"); Tags[i][tagObject] = INVALID_OBJECT_ID; Tags[i][tagFontSize] = cache_get_field_content_int(i, "stFontSize"); Tags[i][tagBold] = cache_get_field_content_int(i, "stBold"); UpdateTag(i); } } forward OnLoadTrashbins(); public OnLoadTrashbins() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { Trashbins[i][tExists] = 1; Trashbins[i][tID] = cache_get_field_content_int(i, "tID"); Trashbins[i][tX] = cache_get_field_content_float(i, "tX"); Trashbins[i][tY] = cache_get_field_content_float(i, "tY"); Trashbins[i][tZ] = cache_get_field_content_float(i, "tZ"); Trashbins[i][tA] = cache_get_field_content_float(i, "tA"); Trashbins[i][tInterior] = cache_get_field_content_int(i, "tInterior"); Trashbins[i][tWorld] = cache_get_field_content_int(i, "tWorld"); Trashbins[i][tText] = INVALID_3DTEXT_ID; Trashbins[i][tObject] = INVALID_OBJECT_ID; UpdateTrashbin(i); } } forward OnLoadObjects(); public OnLoadObjects() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { Objects[i][oExists] = 1; Objects[i][oID] = cache_get_field_content_int(i, "oID"); Objects[i][oModel] = cache_get_field_content_int(i, "oModel"); Objects[i][oX] = cache_get_field_content_float(i, "oX"); Objects[i][oY] = cache_get_field_content_float(i, "oY"); Objects[i][oZ] = cache_get_field_content_float(i, "oZ"); Objects[i][oRX] = cache_get_field_content_float(i, "oRX"); Objects[i][oRY] = cache_get_field_content_float(i, "oRY"); Objects[i][oRZ] = cache_get_field_content_float(i, "oRZ"); Objects[i][oDistance] = cache_get_field_content_float(i, "oDistance"); Objects[i][oInterior] = cache_get_field_content_int(i, "oInterior"); Objects[i][oWorld] = cache_get_field_content_int(i, "oWorld"); Objects[i][oObjectID] = INVALID_OBJECT_ID; Objects[i][oText] = INVALID_3DTEXT_ID; UpdateObject(i); } } forward OnLoadAutoShops(); public OnLoadAutoShops() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { AutoShops[i][asExists] = 1; AutoShops[i][asID] = cache_get_field_content_int(i, "asID"); AutoShops[i][asX] = cache_get_field_content_float(i, "asX"); AutoShops[i][asY] = cache_get_field_content_float(i, "asY"); AutoShops[i][asZ] = cache_get_field_content_float(i, "asZ"); AutoShops[i][asText] = INVALID_3DTEXT_ID; AutoShops[i][asPickup] = INVALID_ID; AutoShops[i][asIcon] = INVALID_ID; UpdateAutoShop(i); } } forward OnLoadGates(); public OnLoadGates() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "gPassword", Gates[i][gPassword], gConnection, 64); Gates[i][gExists] = 1; Gates[i][gID] = cache_get_field_content_int(i, "gID"); Gates[i][gModel] = cache_get_field_content_int(i, "gModel"); Gates[i][gSpeed] = cache_get_field_content_float(i, "gSpeed"); Gates[i][gRadius] = cache_get_field_content_float(i, "gRadius"); Gates[i][gFactionID] = cache_get_field_content_int(i, "gFactionID"); Gates[i][gLinkID] = cache_get_field_content_int(i, "gLinkID"); Gates[i][gSpawn][0] = cache_get_field_content_float(i, "gX"); Gates[i][gSpawn][1] = cache_get_field_content_float(i, "gY"); Gates[i][gSpawn][2] = cache_get_field_content_float(i, "gZ"); Gates[i][gSpawn][3] = cache_get_field_content_float(i, "gRX"); Gates[i][gSpawn][4] = cache_get_field_content_float(i, "gRY"); Gates[i][gSpawn][5] = cache_get_field_content_float(i, "gRZ"); Gates[i][gMove][0] = cache_get_field_content_float(i, "gMoveX"); Gates[i][gMove][1] = cache_get_field_content_float(i, "gMoveY"); Gates[i][gMove][2] = cache_get_field_content_float(i, "gMoveZ"); Gates[i][gMove][3] = cache_get_field_content_float(i, "gMoveRX"); Gates[i][gMove][4] = cache_get_field_content_float(i, "gMoveRY"); Gates[i][gMove][5] = cache_get_field_content_float(i, "gMoveRZ"); Gates[i][gInterior] = cache_get_field_content_int(i, "gInterior"); Gates[i][gWorld] = cache_get_field_content_int(i, "gWorld"); Gates[i][gObject] = INVALID_OBJECT_ID; Gates[i][gOpened] = 0; UpdateGate(i); } } forward OnLoadLabels(); public OnLoadLabels() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "lText", Labels[i][lText], gConnection, 144); Labels[i][lExists] = 1; Labels[i][lID] = cache_get_field_content_int(i, "lID"); Labels[i][lColor] = cache_get_field_content_int(i, "lColor"); Labels[i][lX] = cache_get_field_content_float(i, "lX"); Labels[i][lY] = cache_get_field_content_float(i, "lY"); Labels[i][lZ] = cache_get_field_content_float(i, "lZ"); Labels[i][lDistance] = cache_get_field_content_float(i, "lDistance"); Labels[i][lInterior] = cache_get_field_content_int(i, "lInterior"); Labels[i][lWorld] = cache_get_field_content_int(i, "lWorld"); Labels[i][lText3D] = INVALID_3DTEXT_ID; UpdateLabel(i); } printf("(SQL) %i labels loaded.", rows); } forward OnLoadTeleports(); public OnLoadTeleports() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "tpName", Teleports[i][tpName], gConnection, 32); Teleports[i][tpExists] = 1; Teleports[i][tpID] = cache_get_field_content_int(i, "tpID"); Teleports[i][tpX] = cache_get_field_content_float(i, "tpX"); Teleports[i][tpY] = cache_get_field_content_float(i, "tpY"); Teleports[i][tpZ] = cache_get_field_content_float(i, "tpZ"); Teleports[i][tpA] = cache_get_field_content_float(i, "tpA"); Teleports[i][tpInterior] = cache_get_field_content_int(i, "tpInterior"); Teleports[i][tpWorld] = cache_get_field_content_int(i, "tpWorld"); } printf("(SQL) %i teleports loaded.", rows); } forward OnLoadArrestPoints(); public OnLoadArrestPoints() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { ArrestPoints[i][apExists] = 1; ArrestPoints[i][apID] = cache_get_field_content_int(i, "apID"); ArrestPoints[i][apX] = cache_get_field_content_float(i, "apX"); ArrestPoints[i][apY] = cache_get_field_content_float(i, "apY"); ArrestPoints[i][apZ] = cache_get_field_content_float(i, "apZ"); ArrestPoints[i][apInterior] = cache_get_field_content_int(i, "apInterior"); ArrestPoints[i][apWorld] = cache_get_field_content_int(i, "apWorld"); ArrestPoints[i][apText] = INVALID_3DTEXT_ID; ArrestPoints[i][apPickup] = INVALID_ID; UpdateArrestPoint(i); } printf("(SQL) %i arrest points loaded.", rows); } forward OnLoadFactionUniforms(faction); public OnLoadFactionUniforms(faction) { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { Factions[faction][fcUniforms][i] = cache_get_field_content_int(i, "uniformSkin"); } } forward OnLoadFactionAccessories(faction); public OnLoadFactionAccessories(faction) { new rows = cache_get_row_count(gConnection); for(new i = 0; i < rows; i ++) { cache_get_field_content(i, "accessoryName", FactionAccessories[faction][i][fcAccessoryName], gConnection, 32); FactionAccessories[faction][i][fcAccessoryModel] = cache_get_field_content_int(i, "accessoryModel"); FactionAccessories[faction][i][fcAccessoryBone] = cache_get_field_content_int(i, "accessoryBone"); FactionAccessories[faction][i][fcAccessoryExists] = 1; } } forward OnLoadFactionEquipment(faction); public OnLoadFactionEquipment(faction) { new rows = cache_get_row_count(gConnection); for(new i = 0; i < rows; i ++) { cache_get_field_content(i, "itemName", FactionEquipment[faction][i][fcItemName], gConnection, MAX_ITEM_NAME); FactionEquipment[faction][i][fcItemValue] = cache_get_field_content_int(i, "itemValue"); FactionEquipment[faction][i][fcItemExists] = 1; } } forward OnLoadFactionRanks(faction); public OnLoadFactionRanks(faction) { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "rankName", Ranks[faction][i], gConnection, MAX_RANK_NAME); Factions[faction][fcPaycheck][i] = cache_get_field_content_int(i, "rankPaycheck"); } } forward OnLoadFactions(); public OnLoadFactions() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "fcName", Factions[i][fcName], gConnection, 32); Factions[i][fcExists] = 1; Factions[i][fcID] = cache_get_field_content_int(i, "fcID"); Factions[i][fcType] = cache_get_field_content_int(i, "fcType"); Factions[i][fcColor] = cache_get_field_content_int(i, "fcColor"); Factions[i][fcMaxRanks] = cache_get_field_content_int(i, "fcMaxRanks"); Factions[i][fcLockerX] = cache_get_field_content_float(i, "fcLockerX"); Factions[i][fcLockerY] = cache_get_field_content_float(i, "fcLockerY"); Factions[i][fcLockerZ] = cache_get_field_content_float(i, "fcLockerZ"); Factions[i][fcLockerInt] = cache_get_field_content_int(i, "fcLockerInt"); Factions[i][fcLockerWorld] = cache_get_field_content_int(i, "fcLockerWorld"); Factions[i][fcWeaponRights][0] = cache_get_field_content_int(i, "fcMeleeRights"); Factions[i][fcWeaponRights][1] = cache_get_field_content_int(i, "fcPistolRights"); Factions[i][fcWeaponRights][2] = cache_get_field_content_int(i, "fcShotgunRights"); Factions[i][fcWeaponRights][3] = cache_get_field_content_int(i, "fcSMGRights"); Factions[i][fcWeaponRights][4] = cache_get_field_content_int(i, "fcRifleRights"); Factions[i][fcDrugRights] = cache_get_field_content_int(i, "fcDrugRights"); Factions[i][fcSprayRights] = cache_get_field_content_int(i, "fcSprayRights"); Factions[i][fcSpawnX] = cache_get_field_content_float(i, "fcSpawnX"); Factions[i][fcSpawnY] = cache_get_field_content_float(i, "fcSpawnY"); Factions[i][fcSpawnZ] = cache_get_field_content_float(i, "fcSpawnZ"); Factions[i][fcSpawnA] = cache_get_field_content_float(i, "fcSpawnA"); Factions[i][fcSpawnInt] = cache_get_field_content_int(i, "fcSpawnInt"); Factions[i][fcSpawnWorld] = cache_get_field_content_int(i, "fcSpawnWorld"); Factions[i][fcPickup] = INVALID_ID; Factions[i][fcText] = INVALID_3DTEXT_ID; UpdateFaction(i); } for (new i = 0; i < rows; i ++) { if (Factions[i][fcExists]) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_factionranks WHERE rankFactionID = %i", Factions[i][fcID]); mysql_tquery(gConnection, gExecute, "OnLoadFactionRanks", "i", i); format(gExecute, sizeof(gExecute), "SELECT * FROM rp_factionskins WHERE uniformFactionID = %i", Factions[i][fcID]); mysql_tquery(gConnection, gExecute, "OnLoadFactionUniforms", "i", i); format(gExecute, sizeof(gExecute), "SELECT * FROM rp_factionequipment WHERE itemFactionID = %i", Factions[i][fcID]); mysql_tquery(gConnection, gExecute, "OnLoadFactionEquipment", "i", i); format(gExecute, sizeof(gExecute), "SELECT * FROM rp_factionaccessories WHERE accessoryFactionID = %i", Factions[i][fcID]); mysql_tquery(gConnection, gExecute, "OnLoadFactionAccessories", "i", i); } } printf("(SQL) %i factions loaded.", rows); } forward OnLoadFoodItems(company); public OnLoadFoodItems(company) { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Name", RestaurantItems[company][i][rtName], gConnection, 24); RestaurantItems[company][i][rtExists] = 1; RestaurantItems[company][i][rtID] = cache_get_field_content_int(i, "ID"); RestaurantItems[company][i][rtStock] = cache_get_field_content_int(i, "Stock"); RestaurantItems[company][i][rtPrice] = cache_get_field_content_int(i, "Price"); RestaurantItems[company][i][rtType] = cache_get_field_content_int(i, "Type"); RestaurantItems[company][i][rtHealth] = cache_get_field_content_int(i, "Health"); } } forward OnLoadProducts(company); public OnLoadProducts(company) { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { Products[company][i][prPrice] = cache_get_field_content_int(i, "Price"); Products[company][i][prStock] = cache_get_field_content_int(i, "Stock"); } } forward OnLoadBuildings(); public OnLoadBuildings() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "bName", Buildings[i][bName], gConnection, 32); Buildings[i][bExists] = 1; Buildings[i][bID] = cache_get_field_content_int(i, "bID"); Buildings[i][bIconType] = cache_get_field_content_int(i, "bIconType"); Buildings[i][bLocked] = cache_get_field_content_int(i, "bLocked"); Buildings[i][bSpawn][0] = cache_get_field_content_float(i, "bSpawnX"); Buildings[i][bSpawn][1] = cache_get_field_content_float(i, "bSpawnY"); Buildings[i][bSpawn][2] = cache_get_field_content_float(i, "bSpawnZ"); Buildings[i][bSpawn][3] = cache_get_field_content_float(i, "bSpawnA"); Buildings[i][bInt][0] = cache_get_field_content_float(i, "bIntX"); Buildings[i][bInt][1] = cache_get_field_content_float(i, "bIntY"); Buildings[i][bInt][2] = cache_get_field_content_float(i, "bIntZ"); Buildings[i][bInt][3] = cache_get_field_content_float(i, "bIntA"); Buildings[i][bExterior] = cache_get_field_content_int(i, "bExterior"); Buildings[i][bExteriorWorld] = cache_get_field_content_int(i, "bExteriorWorld"); Buildings[i][bInterior] = cache_get_field_content_int(i, "bInterior"); Buildings[i][bWorld] = cache_get_field_content_int(i, "bWorld"); Buildings[i][bPickup] = INVALID_ID; Buildings[i][bIcon] = INVALID_ID; Buildings[i][bText] = INVALID_3DTEXT_ID; UpdateBuilding(i); } printf("(SQL) %i buildings loaded.", rows); } forward OnLoadVehicleMods(vehicle); public OnLoadVehicleMods(vehicle) { new rows = cache_get_row_count(gConnection), slot; for (new i = 0; i < rows; i ++) { slot = cache_get_field_content_int(i, "vSlot"); Vehicles[vehicle][vMods][slot] = cache_get_field_content_int(i, "vComponent"); } ApplyModifications(vehicle); } forward OnLoadVehicles(); public OnLoadVehicles() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "vRegistered", Vehicles[i][vRegistered], gConnection, 32); cache_get_field_content(i, "vPlate", Vehicles[i][vPlate], gConnection, 32); Vehicles[i][vExists] = 1; Vehicles[i][vID] = cache_get_field_content_int(i, "vID"); Vehicles[i][vCompany] = cache_get_field_content_int(i, "vCompany"); Vehicles[i][vOwner] = cache_get_field_content_int(i, "vOwner"); Vehicles[i][vModel] = cache_get_field_content_int(i, "vModel"); Vehicles[i][vPrice] = cache_get_field_content_int(i, "vPrice"); Vehicles[i][vRentable] = cache_get_field_content_int(i, "vRentable"); Vehicles[i][vSpawn][0] = cache_get_field_content_float(i, "vX"); Vehicles[i][vSpawn][1] = cache_get_field_content_float(i, "vY"); Vehicles[i][vSpawn][2] = cache_get_field_content_float(i, "vZ"); Vehicles[i][vSpawn][3] = cache_get_field_content_float(i, "vA"); Vehicles[i][vColor1] = cache_get_field_content_int(i, "vColor1"); Vehicles[i][vColor2] = cache_get_field_content_int(i, "vColor2"); Vehicles[i][vPaintjob] = cache_get_field_content_int(i, "vPaintjob"); Vehicles[i][vLocked] = cache_get_field_content_int(i, "vLocked"); Vehicles[i][vTrunkMoney] = cache_get_field_content_int(i, "vTrunkMoney"); Vehicles[i][vFaction] = cache_get_field_content_int(i, "vFaction"); Vehicles[i][vSiren] = cache_get_field_content_int(i, "vSiren"); Vehicles[i][vAlarm] = cache_get_field_content_int(i, "vAlarm"); Vehicles[i][vImpound] = cache_get_field_content_int(i, "vImpound"); Vehicles[i][vDespawned] = cache_get_field_content_int(i, "vDespawned"); Vehicles[i][vText] = INVALID_3DTEXT_ID; Vehicles[i][vVehicle] = INVALID_VEHICLE_ID; Vehicles[i][vRenter] = INVALID_PLAYER_ID; if (Vehicles[i][vRentable] && Vehicles[i][vLocked]) { Vehicles[i][vLocked] = 0; } UpdateVehicle(i); } for (new i = 0; i < rows; i ++) { if (Vehicles[i][vID]) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_vehiclemods WHERE vID = %i AND vComponent > 0", Vehicles[i][vID]); mysql_tquery(gConnection, gExecute, "OnLoadVehicleMods", "i", i); } } printf("(SQL) %i vehicles loaded.", rows); } forward OnLoadCompanies(); public OnLoadCompanies() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "cName", Companies[i][cName], gConnection, 32); cache_get_field_content(i, "cOwnerName", Companies[i][cOwnerName], gConnection, MAX_PLAYER_NAME); Companies[i][cExists] = 1; Companies[i][cID] = cache_get_field_content_int(i, "cID"); Companies[i][cOwner] = cache_get_field_content_int(i, "cOwner"); Companies[i][cValue] = cache_get_field_content_int(i, "cValue"); Companies[i][cType] = cache_get_field_content_int(i, "cType"); Companies[i][cSpawn][0] = cache_get_field_content_float(i, "cSpawnX"); Companies[i][cSpawn][1] = cache_get_field_content_float(i, "cSpawnY"); Companies[i][cSpawn][2] = cache_get_field_content_float(i, "cSpawnZ"); Companies[i][cSpawn][3] = cache_get_field_content_float(i, "cSpawnA"); Companies[i][cVehicle][0] = cache_get_field_content_float(i, "cVehicleX"); Companies[i][cVehicle][1] = cache_get_field_content_float(i, "cVehicleY"); Companies[i][cVehicle][2] = cache_get_field_content_float(i, "cVehicleZ"); Companies[i][cVehicle][3] = cache_get_field_content_float(i, "cVehicleA"); Companies[i][cInt][0] = cache_get_field_content_float(i, "cIntX"); Companies[i][cInt][1] = cache_get_field_content_float(i, "cIntY"); Companies[i][cInt][2] = cache_get_field_content_float(i, "cIntZ"); Companies[i][cInt][3] = cache_get_field_content_float(i, "cIntA"); Companies[i][cExterior] = cache_get_field_content_int(i, "cExterior"); Companies[i][cExteriorWorld] = cache_get_field_content_int(i, "cExteriorWorld"); Companies[i][cInterior] = cache_get_field_content_int(i, "cInterior"); Companies[i][cWorld] = cache_get_field_content_int(i, "cWorld"); Companies[i][cSafe] = cache_get_field_content_int(i, "cSafe"); Companies[i][cStock] = cache_get_field_content_int(i, "cStock"); Companies[i][cLocked] = cache_get_field_content_int(i, "cLocked"); Companies[i][cCheckpoint] = INVALID_ID; //Companies[i][cText] = INVALID_3DTEXT_ID; Companies[i][cDeliverText] = INVALID_3DTEXT_ID; CheckCompanyItems(i); UpdateCompany(i); } for (new i = 0; i < rows; i ++) { if (Companies[i][cType] == COMPANY_RESTAURANT) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_fooditems WHERE cID = %i", Companies[i][cID]); mysql_tquery(gConnection, gExecute, "OnLoadFoodItems", "i", i); } else { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_products WHERE cID = %i", Companies[i][cID]); mysql_tquery(gConnection, gExecute, "OnLoadProducts", "i", i); } } printf("(SQL) %i companies loaded.", rows); } forward OnLoadFurniture(); public OnLoadFurniture() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { Furniture[i][fExists] = 1; Furniture[i][fID] = cache_get_field_content_int(i, "fID"); Furniture[i][fHouseID] = cache_get_field_content_int(i, "fHouseID"); Furniture[i][fModel] = cache_get_field_content_int(i, "fModel"); Furniture[i][fSpawn][0] = cache_get_field_content_float(i, "fX"); Furniture[i][fSpawn][1] = cache_get_field_content_float(i, "fY"); Furniture[i][fSpawn][2] = cache_get_field_content_float(i, "fZ"); Furniture[i][fSpawn][3] = cache_get_field_content_float(i, "fRX"); Furniture[i][fSpawn][4] = cache_get_field_content_float(i, "fRY"); Furniture[i][fSpawn][5] = cache_get_field_content_float(i, "fRZ"); Furniture[i][fInterior] = cache_get_field_content_int(i, "fInterior"); Furniture[i][fWorld] = cache_get_field_content_int(i, "fWorld"); Furniture[i][fCode] = cache_get_field_content_int(i, "fCode"); Furniture[i][fMoney] = cache_get_field_content_int(i, "fMoney"); Furniture[i][fMaterial][0] = cache_get_field_content_int(i, "Mat1"); Furniture[i][fMaterial][1] = cache_get_field_content_int(i, "Mat2"); Furniture[i][fMaterial][2] = cache_get_field_content_int(i, "Mat3"); Furniture[i][fMatColour][0] = cache_get_field_content_int(i, "MatColor1"); Furniture[i][fMatColour][1] = cache_get_field_content_int(i, "MatColor2"); Furniture[i][fMatColour][2] = cache_get_field_content_int(i, "MatColor3"); Furniture[i][fObject] = INVALID_OBJECT_ID; Furniture[i][fText] = INVALID_3DTEXT_ID; UpdateFurniture(i); } printf("(SQL) %i furniture loaded.", rows); } forward OnLoadHouses(); public OnLoadHouses() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "hAddress", Houses[i][hAddress], gConnection, 32); cache_get_field_content(i, "hOwnerName", Houses[i][hOwnerName], gConnection, MAX_PLAYER_NAME); Houses[i][hExists] = 1; Houses[i][hID] = cache_get_field_content_int(i, "hID"); Houses[i][hOwner] = cache_get_field_content_int(i, "hOwner"); Houses[i][hValue] = cache_get_field_content_int(i, "hValue"); Houses[i][hSpawn][0] = cache_get_field_content_float(i, "hSpawnX"); Houses[i][hSpawn][1] = cache_get_field_content_float(i, "hSpawnY"); Houses[i][hSpawn][2] = cache_get_field_content_float(i, "hSpawnZ"); Houses[i][hSpawn][3] = cache_get_field_content_float(i, "hSpawnA"); Houses[i][hInt][0] = cache_get_field_content_float(i, "hIntX"); Houses[i][hInt][1] = cache_get_field_content_float(i, "hIntY"); Houses[i][hInt][2] = cache_get_field_content_float(i, "hIntZ"); Houses[i][hInt][3] = cache_get_field_content_float(i, "hIntA"); Houses[i][hBackdoor][0] = cache_get_field_content_float(i, "hBackdoorX"); Houses[i][hBackdoor][1] = cache_get_field_content_float(i, "hBackdoorY"); Houses[i][hBackdoor][2] = cache_get_field_content_float(i, "hBackdoorZ"); Houses[i][hBackdoorInt][0] = cache_get_field_content_float(i, "hBackdoorIntX"); Houses[i][hBackdoorInt][1] = cache_get_field_content_float(i, "hBackdoorIntY"); Houses[i][hBackdoorInt][2] = cache_get_field_content_float(i, "hBackdoorIntZ"); Houses[i][hExterior] = cache_get_field_content_int(i, "hExterior"); Houses[i][hExteriorWorld] = cache_get_field_content_int(i, "hExteriorWorld"); Houses[i][hInterior] = cache_get_field_content_int(i, "hInterior"); Houses[i][hWorld] = cache_get_field_content_int(i, "hWorld"); Houses[i][hLocked] = cache_get_field_content_int(i, "hLocked"); Houses[i][hAlarm] = cache_get_field_content_int(i, "hAlarm"); Houses[i][hRentPrice] = cache_get_field_content_int(i, "hRentPrice"); Houses[i][hCheckpoint] = INVALID_ID; //Houses[i][hText] = INVALID_3DTEXT_ID; Houses[i][hBackdoorText][0] = INVALID_3DTEXT_ID; Houses[i][hBackdoorText][1] = INVALID_3DTEXT_ID; UpdateHouse(i); } printf("(SQL) %i houses loaded.", rows); } forward OnLoadStoredItems(); public OnLoadStoredItems() { new rows = cache_get_row_count(gConnection), string[MAX_ITEM_NAME]; for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "itemName", string, gConnection, MAX_ITEM_NAME); strpack(StoredItems[i][stName], string, MAX_ITEM_NAME); StoredItems[i][stExists] = 1; StoredItems[i][stID] = cache_get_field_content_int(i, "itemID"); StoredItems[i][stValue] = cache_get_field_content_int(i, "itemValue"); StoredItems[i][stSerial] = cache_get_field_content_int(i, "itemSerial"); StoredItems[i][stVehicle] = cache_get_field_content_int(i, "itemVehicleID"); StoredItems[i][stFurniture] = cache_get_field_content_int(i, "itemFurnitureID"); StoredItems[i][stTrashbin] = cache_get_field_content_int(i, "itemTrashbinID"); StoredItems[i][stOffset][0] = cache_get_field_content_float(i, "itemOffsetX"); StoredItems[i][stOffset][1] = cache_get_field_content_float(i, "itemOffsetY"); StoredItems[i][stOffset][2] = cache_get_field_content_float(i, "itemOffsetZ"); StoredItems[i][stOffset][3] = cache_get_field_content_float(i, "itemOffsetRX"); StoredItems[i][stOffset][4] = cache_get_field_content_float(i, "itemOffsetRY"); StoredItems[i][stOffset][5] = cache_get_field_content_float(i, "itemOffsetRZ"); } return 1; } forward OnLoadShellCasings(); public OnLoadShellCasings() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { ShellCasings[i][scExists] = 1; ShellCasings[i][scID] = cache_get_field_content_int(i, "scID"); ShellCasings[i][scSerial] = cache_get_field_content_int(i, "scSerial"); ShellCasings[i][scWeapon] = cache_get_field_content_int(i, "scWeapon"); ShellCasings[i][scTime] = cache_get_field_content_int(i, "scTime"); ShellCasings[i][scSpawn][0] = cache_get_field_content_float(i, "scX"); ShellCasings[i][scSpawn][1] = cache_get_field_content_float(i, "scY"); ShellCasings[i][scSpawn][2] = cache_get_field_content_float(i, "scZ"); ShellCasings[i][scInterior] = cache_get_field_content_int(i, "scInterior"); ShellCasings[i][scWorld] = cache_get_field_content_int(i, "scWorld"); ShellCasings[i][scObject] = INVALID_OBJECT_ID; UpdateShellCasing(i); } printf("(SQL) %i shell casings loaded.", rows); } forward OnLoadWeedPlants(); public OnLoadWeedPlants() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { WeedPlants[i][wpExists] = 1; WeedPlants[i][wpID] = cache_get_field_content_int(i, "wpID"); cache_get_field_content(i, "wpOwner", WeedPlants[i][wpOwner], gConnection, 24); //cache_get_field_content(i, "Name", RestaurantItems[company][i][rtName], gConnection, 24); WeedPlants[i][wpSpawn][0] = cache_get_field_content_float(i, "wpX"); WeedPlants[i][wpSpawn][1] = cache_get_field_content_float(i, "wpY"); WeedPlants[i][wpSpawn][2] = cache_get_field_content_float(i, "wpZ"); WeedPlants[i][wpInterior] = cache_get_field_content_int(i, "wpInterior"); WeedPlants[i][wpWorld] = cache_get_field_content_int(i, "wpWorld"); WeedPlants[i][wpTime] = cache_get_field_content_int(i, "wpTime"); WeedPlants[i][wpObject] = INVALID_OBJECT_ID; UpdateWeedPlant(i); } printf("(SQL) %i weed plants loaded.", rows); } /* enum e_WeedPlants { wpID, wpExists, wpOwner[24], Float:wpSpawn[3], wpInterior, wpWorld, wpObject, wpTime }; */ forward OnLoadDealershipCars(); public OnLoadDealershipCars() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { DealershipCars[i][dcExists] = 1; DealershipCars[i][dcID] = cache_get_field_content_int(i, "ID"); DealershipCars[i][dcCompany] = cache_get_field_content_int(i, "Company"); DealershipCars[i][dcModel] = cache_get_field_content_int(i, "Model"); DealershipCars[i][dcPrice] = cache_get_field_content_int(i, "Price"); } } forward OnLoadATMMachines(); public OnLoadATMMachines() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { ATM[i][atmExists] = 1; ATM[i][atmID] = cache_get_field_content_int(i, "atmID"); ATM[i][atmSpawn][0] = cache_get_field_content_float(i, "atmX"); ATM[i][atmSpawn][1] = cache_get_field_content_float(i, "atmY"); ATM[i][atmSpawn][2] = cache_get_field_content_float(i, "atmZ"); ATM[i][atmSpawn][3] = cache_get_field_content_float(i, "atmA"); ATM[i][atmInterior] = cache_get_field_content_int(i, "atmInterior"); ATM[i][atmWorld] = cache_get_field_content_int(i, "atmWorld"); ATM[i][atmObject] = INVALID_OBJECT_ID; ATM[i][atmText] = INVALID_3DTEXT_ID; UpdateATM(i); } printf("(SQL) %i ATM machines loaded.", rows); } forward OnLoadGasPumps(); public OnLoadGasPumps() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { GasPumps[i][gpExists] = 1; GasPumps[i][gpID] = cache_get_field_content_int(i, "gpID"); GasPumps[i][gpCompany] = cache_get_field_content_int(i, "gpCompany"); GasPumps[i][gpSpawn][0] = cache_get_field_content_float(i, "gpX"); GasPumps[i][gpSpawn][1] = cache_get_field_content_float(i, "gpY"); GasPumps[i][gpSpawn][2] = cache_get_field_content_float(i, "gpZ"); GasPumps[i][gpSpawn][3] = cache_get_field_content_float(i, "gpA"); GasPumps[i][gpFuel] = cache_get_field_content_float(i, "gpFuel"); GasPumps[i][gpObject] = INVALID_OBJECT_ID; GasPumps[i][gpText] = INVALID_3DTEXT_ID; UpdateGasPump(i); } printf("(SQL) %i gas pumps loaded.", rows); } forward OnLoadDropItems(); public OnLoadDropItems() { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "itemName", DropItems[i][dName], gConnection, MAX_ITEM_NAME); DropItems[i][dExists] = 1; DropItems[i][dObject] = INVALID_OBJECT_ID; //DropItems[i][dText] = INVALID_3DTEXT_ID; DropItems[i][dID] = cache_get_field_content_int(i, "itemID"); DropItems[i][dValue] = cache_get_field_content_int(i, "itemValue"); DropItems[i][dSerial] = cache_get_field_content_int(i, "itemSerial"); DropItems[i][dSpawn][0] = cache_get_field_content_float(i, "itemX"); DropItems[i][dSpawn][1] = cache_get_field_content_float(i, "itemY"); DropItems[i][dSpawn][2] = cache_get_field_content_float(i, "itemZ"); DropItems[i][dSpawn][3] = cache_get_field_content_float(i, "itemA"); DropItems[i][dInterior] = cache_get_field_content_int(i, "itemInt"); DropItems[i][dWorld] = cache_get_field_content_int(i, "itemWorld"); DropItems[i][dOffset][0] = cache_get_field_content_float(i, "itemOffsetX"); DropItems[i][dOffset][1] = cache_get_field_content_float(i, "itemOffsetY"); DropItems[i][dOffset][2] = cache_get_field_content_float(i, "itemOffsetZ"); DropItems[i][dOffset][3] = cache_get_field_content_float(i, "itemOffsetRX"); DropItems[i][dOffset][4] = cache_get_field_content_float(i, "itemOffsetRY"); DropItems[i][dOffset][5] = cache_get_field_content_float(i, "itemOffsetRZ"); UpdateDropItem(i); } } forward OnItemInsertion(playerid, id); public OnItemInsertion(playerid, id) { Inventory[playerid][id][invID] = cache_insert_id(gConnection); if (!strcmp(Inventory[playerid][id][invName], "Melee Package")) { //format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 4, 3), (%i, 5, 3), (%i, 8, 3)", Inventory[playerid][id][invID], Inventory[playerid][id][invID], Inventory[playerid][id][invID]); format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 4, 10)", Inventory[playerid][id][invID], Inventory[playerid][id][invID]); mysql_tquery(gConnection, gExecute); } else if (!strcmp(Inventory[playerid][id][invName], "Pistol Package")) { //format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 22, 3), (%i, 23, 3), (%i, 24, 3)", Inventory[playerid][id][invID], Inventory[playerid][id][invID], Inventory[playerid][id][invID]); format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 24, 6), (%i, 22, 6)", Inventory[playerid][id][invID], Inventory[playerid][id][invID]); mysql_tquery(gConnection, gExecute); } else if (!strcmp(Inventory[playerid][id][invName], "Shotgun Package")) { //format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 25, 3), (%i, 27, 3)", Inventory[playerid][id][invID], Inventory[playerid][id][invID]); format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 25, 5)", Inventory[playerid][id][invID]); mysql_tquery(gConnection, gExecute); } else if (!strcmp(Inventory[playerid][id][invName], "SMG Package")) { //format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 28, 3), (%i, 29, 3), (%i, 32, 3)", Inventory[playerid][id][invID], Inventory[playerid][id][invID], Inventory[playerid][id][invID]); format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 28, 5), (%i, 32, 5)", Inventory[playerid][id][invID], Inventory[playerid][id][invID]); mysql_tquery(gConnection, gExecute); } else if (!strcmp(Inventory[playerid][id][invName], "Rifle Package")) { format(gExecute, sizeof(gExecute), "INSERT INTO rp_crateguns(itemID, gunType, gunQuantity) VALUES(%i, 30, 6), (%i, 31, 2)", Inventory[playerid][id][invID], Inventory[playerid][id][invID]); mysql_tquery(gConnection, gExecute); } } forward HideFooterText(playerid); public HideFooterText(playerid) { if (Players[playerid][pFooter]) { Players[playerid][pFooter] = 0; KillTimer(Timers[playerid][tFooter]); PlayerTextDrawHide(playerid, Players[playerid][pText][5]); } return 1; } forward ResetIgnoreTD(playerid); public ResetIgnoreTD(playerid) { Players[playerid][pIgnoreTD] = 0; } forward OutfitSelected(playerid); public OutfitSelected(playerid) { FadeScreenForPlayer(playerid, FADE_SELECTED_OUTFIT); } forward DelayKick(playerid); public DelayKick(playerid) { if (gPlayerKicked[playerid]) { Kick(playerid); } gPlayerKicked[playerid] = 0; } forward DelayPizzaCP(playerid, house); public DelayPizzaCP(playerid, house) { SetCheckpoint(playerid, CHECKPOINT_JOB, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], 3.0); } forward DelayMenuCamera(playerid); public DelayMenuCamera(playerid) { /*SetPlayerPos(playerid, -2354.936279, 140.997024, 39.962245); SetPlayerCameraPos(playerid, -2354.936279, 140.997024, 59.962245); SetPlayerCameraLookAt(playerid, -2354.436523, 140.980346, 59.866298);*/ /*SetPlayerPos(playerid, 325.083801, -1651.243774, 82.438415); SetPlayerCameraPos(playerid, 325.083801, -1651.243774, 62.438415); SetPlayerCameraLookAt(playerid, 325.086883, -1650.751708, 62.368453);*/ /*SetPlayerPos(playerid, 865.988891, -1446.194458, 89.558654); SetPlayerCameraPos(playerid, 865.988891, -1446.194458, 109.558654); SetPlayerCameraLookAt(playerid, 866.006225, -1445.694702, 109.517868);*/ /*SetPlayerPos(playerid, 1658.507080, -1331.544311, 138.326507); SetPlayerCameraPos(playerid, 1658.507080, -1331.544311, 158.326507); SetPlayerCameraLookAt(playerid, 1657.958374, -1331.390991, 158.264190);*/ // New camera, bitches! Grime 10/03/2017 InterpolateCameraPos(playerid, 2267.293212, -1749.706787, 85.525733, 227.958419, -1991.920410, 31.250833, 60000, CAMERA_MOVE); InterpolateCameraLookAt(playerid, 2266.793212, -1749.701049, 85.525733, 227.473052, -1991.833496, 31.203359, 60000, CAMERA_MOVE); SetPlayerTime(playerid, 0, 0); } forward OnPlayerLoadWeaponOffsets(playerid); public OnPlayerLoadWeaponOffsets(playerid) { new rows = cache_get_row_count(gConnection), slot; for (new i = 0; i < rows; i ++) { slot = cache_get_field_content_int(i, "Slot"); WeaponOffsets[playerid][slot][wBoneID] = cache_get_field_content_int(i, "Bone"); WeaponOffsets[playerid][slot][wHidden] = cache_get_field_content_int(i, "Hidden"); WeaponOffsets[playerid][slot][wOffsetX] = cache_get_field_content_float(i, "OffsetX"); WeaponOffsets[playerid][slot][wOffsetY] = cache_get_field_content_float(i, "OffsetY"); WeaponOffsets[playerid][slot][wOffsetZ] = cache_get_field_content_float(i, "OffsetZ"); WeaponOffsets[playerid][slot][wOffsetRX] = cache_get_field_content_float(i, "OffsetRX"); WeaponOffsets[playerid][slot][wOffsetRY] = cache_get_field_content_float(i, "OffsetRY"); WeaponOffsets[playerid][slot][wOffsetRZ] = cache_get_field_content_float(i, "OffsetRZ"); } UpdateWeaponHolster(playerid); } forward OnPlayerLoadAccessories(playerid); public OnPlayerLoadAccessories(playerid) { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "aName", Accessories[playerid][i][aName], gConnection, 32); Accessories[playerid][i][aExists] = 1; Accessories[playerid][i][aID] = cache_get_field_content_int(i, "aID"); Accessories[playerid][i][aModel] = cache_get_field_content_int(i, "aModel"); Accessories[playerid][i][aBone] = cache_get_field_content_int(i, "aBone"); Accessories[playerid][i][aOffset][0] = cache_get_field_content_float(i, "aX"); Accessories[playerid][i][aOffset][1] = cache_get_field_content_float(i, "aY"); Accessories[playerid][i][aOffset][2] = cache_get_field_content_float(i, "aZ"); Accessories[playerid][i][aOffset][3] = cache_get_field_content_float(i, "aRX"); Accessories[playerid][i][aOffset][4] = cache_get_field_content_float(i, "aRY"); Accessories[playerid][i][aOffset][5] = cache_get_field_content_float(i, "aRZ"); Accessories[playerid][i][aOffset][6] = cache_get_field_content_float(i, "aSX"); Accessories[playerid][i][aOffset][7] = cache_get_field_content_float(i, "aSY"); Accessories[playerid][i][aOffset][8] = cache_get_field_content_float(i, "aSZ"); if(!strcmp(Accessories[playerid][i][aName], "None", true)) { strcpy(Accessories[playerid][i][aName], GetAccessoryName(playerid, i), 32); mysql_format(gConnection, gExecute, sizeof(gExecute), "UPDATE rp_accessories SET aName = '%e' WHERE aID = %i", Accessories[playerid][i][aName], Accessories[playerid][i][aID]); mysql_tquery(gConnection, gExecute); } } } forward OnPlayerLoadBank(playerid); public OnPlayerLoadBank(playerid) { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "bankName", BankAccounts[playerid][i][bankName], gConnection, 32); BankAccounts[playerid][i][bankExists] = 1; BankAccounts[playerid][i][bankID] = cache_get_field_content_int(i, "bankID"); BankAccounts[playerid][i][bankBalance] = cache_get_field_content_int(i, "bankBalance"); } } forward OnPlayerLoadItems(playerid); public OnPlayerLoadItems(playerid) { new rows = cache_get_row_count(gConnection); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "itemName", Inventory[playerid][i][invName], gConnection, MAX_ITEM_NAME); Inventory[playerid][i][invExists] = 1; Inventory[playerid][i][invID] = cache_get_field_content_int(i, "itemID"); Inventory[playerid][i][invValue] = cache_get_field_content_int(i, "itemValue"); Inventory[playerid][i][invSerial] = cache_get_field_content_int(i, "itemSerial"); Inventory[playerid][i][invOffset][0] = cache_get_field_content_float(i, "itemOffsetX"); Inventory[playerid][i][invOffset][1] = cache_get_field_content_float(i, "itemOffsetY"); Inventory[playerid][i][invOffset][2] = cache_get_field_content_float(i, "itemOffsetZ"); Inventory[playerid][i][invOffset][3] = cache_get_field_content_float(i, "itemOffsetRX"); Inventory[playerid][i][invOffset][4] = cache_get_field_content_float(i, "itemOffsetRY"); Inventory[playerid][i][invOffset][5] = cache_get_field_content_float(i, "itemOffsetRZ"); } } forward OnPlayerAttemptLogin(playerid); public OnPlayerAttemptLogin(playerid) { new rows = cache_get_row_count(gConnection); if (rows > 0) { //ShowLoginTextDraws(playerid, false); cache_get_field_content(0, "Registered", Players[playerid][pRegistered], gConnection, 32); cache_get_field_content(0, "Origin", Players[playerid][pOrigin], gConnection, 24); cache_get_field_content(0, "AdminName", Players[playerid][pAdminName], gConnection, 24); cache_get_field_content(0, "AdminTitle", Players[playerid][pAdminTitle], gConnection, 24); cache_get_field_content(0, "GPCI", Players[playerid][pGPCI], gConnection, 24); cache_get_field_content(0, "ReportReason", Players[playerid][pReportReason], gConnection, 64); Players[playerid][pID] = cache_get_field_content_int(0, "ID"); Players[playerid][pSetupInfo] = cache_get_field_content_int(0, "SetupInfo"); Players[playerid][pGender] = cache_get_field_content_int(0, "Gender"); Players[playerid][pAge] = cache_get_field_content_int(0, "Age"); Players[playerid][pSkin] = cache_get_field_content_int(0, "Skin"); Players[playerid][pUniform] = cache_get_field_content_int(0, "Uniform"); Players[playerid][pSpawn][0] = cache_get_field_content_float(0, "SpawnX"); Players[playerid][pSpawn][1] = cache_get_field_content_float(0, "SpawnY"); Players[playerid][pSpawn][2] = cache_get_field_content_float(0, "SpawnZ"); Players[playerid][pSpawn][3] = cache_get_field_content_float(0, "SpawnA"); Players[playerid][pHealth] = cache_get_field_content_float(0, "Health"); Players[playerid][pArmor] = cache_get_field_content_float(0, "Armor"); Players[playerid][pInterior] = cache_get_field_content_int(0, "Interior"); Players[playerid][pWorld] = cache_get_field_content_int(0, "World"); Players[playerid][pTraveled] = cache_get_field_content_float(0, "Traveled"); Players[playerid][pPocketMoney] = cache_get_field_content_int(0, "PocketMoney"); Players[playerid][pBankMoney] = cache_get_field_content_int(0, "BankMoney"); Players[playerid][pSavingsMoney] = cache_get_field_content_int(0, "SavingsMoney"); Players[playerid][pAdmin] = cache_get_field_content_int(0, "Admin"); Players[playerid][pMapper] = cache_get_field_content_int(0, "Mapper"); Players[playerid][pJailType] = cache_get_field_content_int(0, "JailType"); Players[playerid][pJailTime] = cache_get_field_content_int(0, "JailTime"); Players[playerid][pMuted] = cache_get_field_content_int(0, "Muted"); Players[playerid][pFitness] = cache_get_field_content_int(0, "Fitness"); Players[playerid][pMinutes] = cache_get_field_content_int(0, "Minutes"); Players[playerid][pHoursOnline] = cache_get_field_content_int(0, "HoursOnline"); Players[playerid][pJob] = cache_get_field_content_int(0, "Job"); Players[playerid][pJobPaycheck] = cache_get_field_content_int(0, "JobPaycheck"); Players[playerid][pPaycheck] = cache_get_field_content_int(0, "Paycheck"); Players[playerid][pWorkoutTime] = cache_get_field_content_int(0, "WorkoutTime"); Players[playerid][pGymMembership] = cache_get_field_content_int(0, "GymMembership"); Players[playerid][pPhone] = cache_get_field_content_int(0, "Phone"); Players[playerid][pPhoneLastKnown] = cache_get_field_content_int(0, "PhoneLastKnown"); Players[playerid][pPhoneOff] = cache_get_field_content_int(0, "PhoneOff"); Players[playerid][pDeathState] = cache_get_field_content_int(0, "DeathState"); Players[playerid][pHospital] = cache_get_field_content_int(0, "Hospital"); Players[playerid][pShowPM] = cache_get_field_content_int(0, "ShowPM"); Players[playerid][pShowSpeed] = cache_get_field_content_int(0, "ShowSpeed"); Players[playerid][pShowFuel] = cache_get_field_content_int(0, "ShowFuel"); Players[playerid][pShowTime] = cache_get_field_content_int(0, "ShowTime"); Players[playerid][pShowOOC] = cache_get_field_content_int(0, "ShowOOC"); Players[playerid][pShowReports] = cache_get_field_content_int(0, "ShowReports"); Players[playerid][pShowAdmin] = cache_get_field_content_int(0, "ShowAdmin"); Players[playerid][pShowSupporter] = cache_get_field_content_int(0, "ShowSupporter"); Players[playerid][pBleeding] = cache_get_field_content_int(0, "Bleeding"); Players[playerid][pPaymentType] = cache_get_field_content_int(0, "PaymentType"); Players[playerid][pBankAccount] = cache_get_field_content_int(0, "BankAccount"); Players[playerid][pSupporter] = cache_get_field_content_int(0, "Supporter"); Players[playerid][pVeteran] = cache_get_field_content_int(0, "Veteran"); Players[playerid][pFactionMod] = cache_get_field_content_int(0, "FactionMod"); Players[playerid][pFactionID] = cache_get_field_content_int(0, "FactionID"); Players[playerid][pFactionRank] = cache_get_field_content_int(0, "FactionRank"); Players[playerid][pFactionLeader] = cache_get_field_content_int(0, "FactionLeader"); Players[playerid][pWarrants] = cache_get_field_content_int(0, "Warrants"); Players[playerid][pCharges] = cache_get_field_content_int(0, "Charges"); Players[playerid][pPackageOrder] = cache_get_field_content_int(0, "PackageOrder"); Players[playerid][pPackageType] = cache_get_field_content_int(0, "PackageType"); Players[playerid][pPackageGrams] = cache_get_field_content_int(0, "PackageGrams"); Players[playerid][pPackageTime] = cache_get_field_content_int(0, "PackageTime"); Players[playerid][pCarLicense] = cache_get_field_content_int(0, "CarLicense"); Players[playerid][pGunLicense] = cache_get_field_content_int(0, "GunLicense"); Players[playerid][pAdTime] = cache_get_field_content_int(0, "AdTime"); Players[playerid][pRentHouse] = cache_get_field_content_int(0, "RentHouse"); Players[playerid][pMaskID] = cache_get_field_content_int(0, "MaskID"); Players[playerid][pHideAdmin] = cache_get_field_content_int(0, "HideAdmin"); Players[playerid][pBrokenLeg] = cache_get_field_content_int(0, "BrokenLeg"); Players[playerid][pChatStyle] = cache_get_field_content_int(0, "ChatStyle"); Players[playerid][pWalkStyle] = cache_get_field_content_int(0, "WalkStyle"); Players[playerid][pChannel] = cache_get_field_content_int(0, "Channel"); Players[playerid][pDonator] = cache_get_field_content_int(0, "Donator"); Players[playerid][pExpiryDate] = cache_get_field_content_int(0, "ExpiryDate"); Players[playerid][pNameChanges] = cache_get_field_content_int(0, "NameChanges"); Players[playerid][pBadge] = cache_get_field_content_int(0, "Badge"); Players[playerid][pSpawnType] = cache_get_field_content_int(0, "SpawnType"); Players[playerid][pSpawnExtra] = cache_get_field_content_int(0, "SpawnExtra"); Players[playerid][pCrashed] = cache_get_field_content_int(0, "Crashed"); Players[playerid][pDuty] = cache_get_field_content_int(0, "Duty"); Players[playerid][pActivated] = cache_get_field_content_int(0, "pActivated"); Players[playerid][pBeingReported] = cache_get_field_content_int(0, "BeingReported"); Weapons[playerid][wMelee] = cache_get_field_content_int(0, "Melee"); Weapons[playerid][wPrimary] = cache_get_field_content_int(0, "PrimaryGun"); Weapons[playerid][wPrimaryAmmo] = cache_get_field_content_int(0, "PrimaryAmmo"); Weapons[playerid][wPrimarySerial] = cache_get_field_content_int(0, "PrimarySerial"); Weapons[playerid][wSecondary] = cache_get_field_content_int(0, "SecondaryGun"); Weapons[playerid][wSecondaryAmmo] = cache_get_field_content_int(0, "SecondaryAmmo"); Weapons[playerid][wSecondarySerial] = cache_get_field_content_int(0, "SecondarySerial"); Statistics[playerid][sHotwired] = cache_get_field_content_int(0, "TotalHotwired"); Statistics[playerid][sRentals] = cache_get_field_content_int(0, "TotalRentals"); Statistics[playerid][sHospitalFees] = cache_get_field_content_int(0, "HospitalFees"); Statistics[playerid][sItemsUsed] = cache_get_field_content_int(0, "ItemsUsed"); Statistics[playerid][sItemsDropped] = cache_get_field_content_int(0, "ItemsDropped"); Statistics[playerid][sItemsPicked] = cache_get_field_content_int(0, "ItemsPicked"); Statistics[playerid][sDistanceRan] = cache_get_field_content_int(0, "DistanceRan"); Statistics[playerid][sTotalReps] = cache_get_field_content_int(0, "TotalReps"); Statistics[playerid][sHouses] = cache_get_field_content_int(0, "TotalHouses"); Statistics[playerid][sCompanies] = cache_get_field_content_int(0, "TotalCompanies"); Statistics[playerid][sVehicles] = cache_get_field_content_int(0, "TotalVehicles"); Statistics[playerid][sFurnitureFees] = cache_get_field_content_int(0, "FurnitureFees"); Statistics[playerid][sTotalWarrants] = cache_get_field_content_int(0, "TotalWarrants"); Statistics[playerid][sFurnitureFees] = cache_get_field_content_int(0, "FurnitureFees"); Statistics[playerid][sTotalWarrants] = cache_get_field_content_int(0, "TotalWarrants"); Statistics[playerid][sReports] = cache_get_field_content_int(0, "Reports"); Statistics[playerid][sHelpRequests] = cache_get_field_content_int(0, "HelpRequests"); Players[playerid][pLoggedIn] = 1; Players[playerid][pActivated] = 1; Players[playerid][pSetupInfo] = 1; format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Online = 1, LoginDate = NOW(), IP = '%s' WHERE ID = %i", ReturnIP(playerid), Players[playerid][pID]); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "SELECT * FROM rp_items WHERE itemOwner = %i LIMIT %i", Players[playerid][pID], MAX_INVENTORY_ITEMS); mysql_tquery(gConnection, gExecute, "OnPlayerLoadItems", "i", playerid); format(gExecute, sizeof(gExecute), "SELECT * FROM rp_bankaccounts WHERE ID = %i LIMIT %i", Players[playerid][pID], MAX_BANK_ACCOUNTS); mysql_tquery(gConnection, gExecute, "OnPlayerLoadBank", "i", playerid); format(gExecute, sizeof(gExecute), "SELECT * FROM rp_accessories WHERE ID = %i LIMIT %i", Players[playerid][pID], MAX_ACCESSORIES); mysql_tquery(gConnection, gExecute, "OnPlayerLoadAccessories", "i", playerid); format(gExecute, sizeof(gExecute), "SELECT * FROM rp_weaponoffsets WHERE ID = %i", Players[playerid][pID]); mysql_tquery(gConnection, gExecute, "OnPlayerLoadWeaponOffsets", "i", playerid); #if defined CHEMICAL_SYSTEM format(gExecute, sizeof(gExecute), "SELECT * FROM rp_chemical WHERE Owner = %i LIMIT %i", Players[playerid][pID], MAX_CHEMICAL); mysql_tquery(gConnection, gExecute, "Chemical_Load", "i", playerid); format(gExecute, sizeof(gExecute), "SELECT * FROM rp_drugs WHERE Owner = %i LIMIT %i", Players[playerid][pID], MAX_DRUGS); mysql_tquery(gConnection, gExecute, "Drugs_Load", "i", playerid); #endif SyncTimeForPlayer(playerid); if (!Players[playerid][pActivated]) { } else { if(CheckAdmin(playerid, 1)) { SendInfoMessage(playerid, "{CFCFCF}You have logged in as a level %i administrator!", Players[playerid][pAdmin]); if (!IsAdminNameSetup(playerid)) { SendInfoMessage(playerid, "It is recommended that you set your admin name now (/adminname)."); } } if (Players[playerid][pFactionID] > 0 && (Players[playerid][pFaction] = GetPlayerFactionID(playerid)) == INVALID_ID) { SendInfoMessage(playerid, "The faction you were a member of has been deleted."); ResetFactionInfo(playerid); } if (Players[playerid][pFaction] != INVALID_ID && Players[playerid][pFactionRank] > Factions[Players[playerid][pFaction]][fcMaxRanks]) { Players[playerid][pFactionRank] = Factions[Players[playerid][pFaction]][fcMaxRanks]; } if (Players[playerid][pPackageOrder] != PACKAGE_TYPE_NONE) { SetTimerEx("PackageReady", 300000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder])); } else if (Players[playerid][pPackageType] != PACKAGE_TYPE_NONE) { SendInfoMessage(playerid, "Hint: Use /locatepackage to find the location of your package."); } SetSpawnInfo(playerid, NO_TEAM, Players[playerid][pSkin], Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2], Players[playerid][pSpawn][3], 0, 0, 0, 0, 0, 0); TogglePlayerSpectating(playerid, 0); if(Players[playerid][pBeingReported] == 1) { new sendReportInfo[128]; format(sendReportInfo, sizeof(sendReportInfo), "Hello, you are being reported on the forums, the following reason(s) below:\n%s", Players[playerid][pReportReason]); Dialog_Show(playerid, BEINGREPORTED, DIALOG_STYLE_MSGBOX, "You are being reported.", sendReportInfo, "Close", ""); Players[playerid][pBeingReported] = 0; // set it to 0 since he saw this dialog. } new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); //gpci(playerid, Players[playerid][pGPCI], sizeof(Players[playerid][pGPCI])); strcpy(Players[playerid][pGPCI], ReturnGPCI(playerid), 41); //strcpy(Players[playerid][pOrigin], inputtext, 24); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET GPCI = '%s' WHERE Username = '%s'", ReturnGPCI(playerid), ReturnName(playerid)); mysql_tquery(gConnection, gExecute); new log[128]; format(log, sizeof(log), "%s (%s) has joined the server (%.2f, %.2f, %.2f)", ReturnName(playerid), Players[playerid][pIP], x, y, z); CreateLog("logging", log); if(Players[playerid][pDuty] && Players[playerid][pCrashed]) { switch(GetPlayerFactionType(playerid)) { case FACTION_LEO, FACTION_MEDICAL, FACTION_GOVERNMENT, FACTION_NEWS: { SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** HQ: %s %s is now back on duty. (Crashed)", GetPlayerFactionRank(playerid), ReturnNameEx(playerid)); } default: { Players[playerid][pDuty] = 0; } } } else { Players[playerid][pDuty] = 0; } } } else { printf("(SQL) Failed login attempt from %s (IP: %s).", ReturnName(playerid), ReturnIP(playerid)); Dialog_Show(playerid, AccountLogin, DIALOG_STYLE_PASSWORD, "WCRPG", "Incorrect password!\n\n{FFFFFF}This account is {33AA33}registered.\n{FFFFFF}Please enter your password below in order to authenticate:", "Submit", "Quit"); } } ReturnGPCI(playerid) { new szSerial[41]; gpci(playerid, szSerial, sizeof(szSerial)); return szSerial; } forward OnPlayerRegister(playerid); public OnPlayerRegister(playerid) { new iInsertID = cache_insert_id(gConnection); Server[Accounts]++; if (iInsertID) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_accounts WHERE ID = %i", iInsertID); mysql_tquery(gConnection, gExecute, "OnPlayerAttemptLogin", "i", playerid); } SaveInformation(); } forward OnBlacklistCheck(playerid); public OnBlacklistCheck(playerid) { new rows = cache_get_row_count(gConnection); if (rows) { new bannedBy[MAX_PLAYER_NAME], banDate[32], banReason[128]; cache_get_field_content(0, "BannedBy", bannedBy, gConnection); cache_get_field_content(0, "Date", banDate, gConnection); cache_get_field_content(0, "Reason", banReason, gConnection); Dialog_Show(playerid, Banned, DIALOG_STYLE_MSGBOX, "{FFFFFF}You are banned!", "You are banned from this server.\n\nAdmin: %s\nDate: %s\nReason: %s\n\nYou can appeal this ban on our website at %s.", "Close", "", bannedBy, banDate, banReason, SERVER_WEBSITE); KickPlayer(playerid); } else { format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", ReturnName(playerid)); mysql_tquery(gConnection, gExecute, "OnAccountSearch", "i", playerid); } } forward OnAccountSearch(playerid); public OnAccountSearch(playerid) { new rows = cache_get_row_count(gConnection); Players[playerid][pID] = 0; if (rows) { Dialog_Show(playerid, AccountLogin, DIALOG_STYLE_PASSWORD, "WCRPG", "{FFFFFF}This account is {33AA33}registered.\n{FFFFFF}Please enter your password below in order to authenticate:", "Submit", "Quit"); } else { Dialog_Show(playerid, AccountCreate, DIALOG_STYLE_PASSWORD, "WCRPG Registration", "{FFFFFF}Your name is currently not registered!\nPlease enter a safe and secure password below to register with your master account:.", "Submit", "Quit"); } } //ShowLoginTextDraws(playerid, true); public OnPlayerFadeComplete(playerid, extraid) { // Added to fix that annoying "H" bug -> 06/01/2015 StopScreenFade(playerid); if (extraid == FADE_CHOOSE_SKIN) { TogglePlayerSpectating(playerid, 0); SetSpawnInfo(playerid, NO_TEAM, Players[playerid][pSkin], 0.0, 0.0, 1000.0, 0.0, 0, 0, 0, 0, 0, 0); } else if (extraid == FADE_SELECTED_OUTFIT) { Players[playerid][pGender] = GetSkinGender(Players[playerid][pSkin]); FlushChatForPlayer(playerid); SetCameraBehindPlayer(playerid); PlayerTextDrawHide(playerid, Players[playerid][pText][0]); SpawnPlayer(playerid); } else if(extraid == FADE_START_QUIZ) //tobefinished { SetPVarInt(playerid, "Muted", 1); currentQuestion[playerid] = 0; SCM(playerid, COLOR_LIGHTRED, "To be allowed access to WCRPG Roleplay, you must complete a simple and easy quiz."); SCM(playerid, COLOR_LIGHTRED, "This quiz combines basic roleplay terms, and a few basic server rules."); Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 1)", "{FFFFFF}In your own words, how would you define the term roleplay?\n\nYou can make this question as simple, or complex as you'd like.\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); } else if (extraid == FADE_SET_POSITION) { SetTimerEx("OnFadeSetPosition", 200, false, "i", playerid); } else if (extraid == FADE_BUY_OUTFIT) { SetupOutfitSelection(playerid); SendInfoMessage(playerid, "Use the arrow keys to browse between outfits. Press N to cancel and ENTER to purchase."); } return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { foreach (new i : Player) { if (GetPlayerState(i) == PLAYER_STATE_SPECTATING && Players[i][pSpectate] == playerid) { SetPlayerInterior(i, newinteriorid); SetPlayerVirtualWorld(i, GetPlayerVirtualWorld(playerid)); } } if (newinteriorid != 0) { SetPlayerTime(playerid, 12, 12); } else if (newinteriorid == 0) { SyncTimeForPlayer(playerid); } return 1; } public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z) { if (GetVehicleDistanceFromPoint(vehicleid, new_x, new_y, new_z) > 50) { return 0; } return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { if (IsPlayerNPC(playerid)) return 1; if (newstate == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid), id = GetVehicleID(vehicleid); SetPlayerArmedWeapon(playerid, 0); if (!VehicleInformation[vehicleid][vInit]) { SetupVehicle(vehicleid); } if (id != INVALID_ID) { if (Vehicles[id][vRentable] && Vehicles[id][vRenter] == INVALID_PLAYER_ID) { Dialog_Show(playerid, RentVehicle, DIALOG_STYLE_MSGBOX, "{FFFFFF}Rent vehicle", "Would you like to rent this vehicle for {00FF00}%s{AAC4E5}.\nClick on the buttons below to make your decision.", "Yes", "No", FormatNumber(Vehicles[id][vPrice])); } if (Vehicles[id][vFaction] != 0 && Players[playerid][pFactionID] != Vehicles[id][vFaction]) { RemovePlayerFromVehicle(playerid); SendInfoMessage(playerid, "{CFCFCF} This vehicle belongs to an official faction."); return 1; } } if (!IsPoweredVehicle(vehicleid)) { SetEngineStatus(vehicleid, 1); } else { if (IsTestVehicle(vehicleid) && !Players[playerid][pDrivingTest]) { RemovePlayerFromVehicle(playerid); SendInfoMessage(playerid, "You need to be taking the driving test to use this vehicle."); return 1; } if (GetVehicleJobType(vehicleid) != JOB_NONE && Players[playerid][pJob] != GetVehicleJobType(vehicleid)) { RemovePlayerFromVehicle(playerid); SendInfoMessage(playerid, "You need to have the correct job to use this vehicle."); return 1; } if (!GetEngineStatus(vehicleid)) { SendInfoMessage(playerid, "{CFCFCF}The engine is not running. Use {33AA33}/engine{CFCFCF} to turn on the engine."); } if (!Players[playerid][pCarLicense] && !Players[playerid][pDrivingTest]) { SendInfoMessage(playerid, "{CFCFCF}(Warning) You are driving without a license!"); } if (!Players[playerid][pWorking] && ( (Players[playerid][pJob] == JOB_FORKLIFTER && GetVehicleModel(GetPlayerVehicleID(playerid)) == 530) || (Players[playerid][pJob] == JOB_PIZZA && GetVehicleModel(GetPlayerVehicleID(playerid)) == 448) )) { SendInfoMessage(playerid, "Use /work if you wish to begin working."); Players[playerid][pWorkVehicle] = vehicleid; } if (Players[playerid][pShowFuel]) { ShowFuelGauge(playerid, true); } if (Players[playerid][pShowSpeed]) { ShowSpeedometer(playerid, true); } if (Players[playerid][pDrivingTest] && IsTestVehicle(vehicleid)) { SetPlayerCheckpoint(playerid, g_TestCheckpoints[0][0], g_TestCheckpoints[0][1], g_TestCheckpoints[0][2], 3.0); SendInfoMessage(playerid, "Drive through the markers to proceed with the test."); } } SetPlayerArmedWeapon(playerid, 0); } else if (oldstate == PLAYER_STATE_DRIVER) { if (IsValidVehicle(Players[playerid][pAddVehicle])) { DestroyVehicleEx(Players[playerid][pAddVehicle]); Players[playerid][pAddVehicle] = INVALID_VEHICLE_ID; } ResetHotwiring(playerid); ShowFuelGauge(playerid, false); ShowSpeedometer(playerid, false); } else if (newstate == PLAYER_STATE_PASSENGER) { new driverid = GetVehicleDriver(GetPlayerVehicleID(playerid)); if (driverid != INVALID_PLAYER_ID) { if (Players[driverid][pJob] == JOB_TAXI && IsPlayerInTaxi(driverid) && !Players[driverid][pPassenger]) { SendInfoMessage(playerid, "You have entered %s's taxi. Please state your destination.", ReturnNameEx(driverid)); SendInfoMessage(driverid, "%s has entered your taxi.", ReturnNameEx(playerid)); Players[driverid][pPassenger] = 1; Players[playerid][pInsideTaxi] = driverid; Players[playerid][pTaxiMeter] = 1; } } switch (GetPlayerWeapon(playerid)) { case 22, 25, 28, 29, 30, 31, 32: SetPlayerArmedWeapon(playerid, GetPlayerWeapon(playerid)); default: SetPlayerArmedWeapon(playerid, 0); } } else if (oldstate == PLAYER_STATE_PASSENGER) { if (Players[playerid][pInsideTaxi] != INVALID_PLAYER_ID) { OnPlayerExitTaxi(playerid); } } if (newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) { new tick = NetStats_GetConnectedTime(playerid); if ((GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_CARRY) || Players[playerid][pDeathState] == DEATH_STATE_INJURED && GetVehicleModel(GetPlayerVehicleID(playerid)) != 416) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); SetPlayerPos(playerid, x, y, z + 1.0); } foreach (new i : Player) { if (GetPlayerState(i) == PLAYER_STATE_SPECTATING && Players[i][pSpectate] == playerid) { PlayerSpectateVehicle(i, GetPlayerVehicleID(playerid)); } } if (Players[playerid][pEnterTime] > 0 && (tick - Players[playerid][pEnterTime]) < 1000) { SendAdminMessage(COLOR_RED, "Admin: %s was kicked for possible vehicle warping.", ReturnNameEx(playerid)); KickPlayer(playerid); } Players[playerid][pEnterTime] = tick; gLastVehicleID[playerid] = GetPlayerVehicleID(playerid); } else if (oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER) { new vehicle = GetVehicleID(gLastVehicleID[playerid]); if (vehicle != INVALID_ID && Vehicles[vehicle][vRentable] && Vehicles[vehicle][vRenter] == INVALID_PLAYER_ID) { SetVehicleToRespawn(Vehicles[vehicle][vVehicle]); } if (Players[playerid][pHandcuffed]) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CUFFED); } foreach (new i : Player) { if (GetPlayerState(i) == PLAYER_STATE_SPECTATING && Players[i][pSpectate] == playerid) { PlayerSpectatePlayer(i, playerid); } } if (Players[playerid][pVehicleColor] != INVALID_ID) { ChangeVehicleColor(Vehicles[Players[playerid][pVehicleColor]][vID], Vehicles[Players[playerid][pVehicleColor]][vColor1], Vehicles[Players[playerid][pVehicleColor]][vColor2]); Players[playerid][pVehicleColor] = INVALID_ID; } } return 1; } public OnPlayerText(playerid, text[]) { new vehicleid = GetPlayerVehicleID(playerid); new string[128]; if (!IsValidInput(text) || !IsPlayerLoggedIn(playerid) || Players[playerid][pMuted] || Players[playerid][pFainted] || !Players[playerid][pSetupInfo] || Players[playerid][pDeathState] == DEATH_STATE_HOSPITAL) { return 0; } else if (Players[playerid][pSpectate] != INVALID_PLAYER_ID) { return 0; } else { if (!Players[playerid][pCalling] && !Players[playerid][pAnimation] && Players[playerid][pDeathState] == DEATH_STATE_NONE && !Players[playerid][pTazed]) { PlayChatStyle(playerid, text); } if (IsPlayerInAnyVehicle(playerid) && IsWindowedVehicle(vehicleid) && !VehicleInformation[vehicleid][vWindows]) { if (Players[playerid][pCalling] > 1) { //SendVehicleMessage(vehicleid, COLOR_LIGHTGREY, "[Phone] %s says: %s", ReturnNameEx(playerid), text); SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "(Phone) %s says: %s", ReturnNameEx(playerid), text); foreach (new i : Player) { if (Players[i][pBigEars]) { SendSplitMessage(i, COLOR_WHITE, "(Phone) %s says: %s", ReturnNameEx(playerid), text); } } } else { //SendVehicleMessage(vehicleid, COLOR_LIGHTGREY, "[Windows Up] %s says: %s", ReturnNameEx(playerid), text); SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "{%06x}%s{FFFFFF} says: %s",(GetPlayerColor(playerid) >>> 8), ReturnNameEx(playerid), text); foreach (new i : Player) { if (Players[i][pBigEars]) { SendSplitMessage(i, COLOR_WHITE, "{%06x}%s{FFFFFF} says: %s",(GetPlayerColor(playerid) >>> 8), ReturnNameEx(playerid), text); } } } } else if (Players[playerid][pCalling] != 0 && Players[playerid][pCalling] != 1) { SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "(Phone) %s says: %s", ReturnNameEx(playerid), text); foreach (new i : Player) { if (Players[i][pBigEars]) { SendSplitMessage(i, COLOR_WHITE, "(Phone) %s says: %s", ReturnNameEx(playerid), text); } } } else { SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "{%06x}%s{FFFFFF} says: %s",(GetPlayerColor(playerid) >>> 8), ReturnNameEx(playerid), text); foreach (new i : Player) { if (Players[i][pBigEars]) { SendSplitMessage(i, COLOR_WHITE, "{%06x}%s{FFFFFF} says: %s",(GetPlayerColor(playerid) >>> 8), ReturnNameEx(playerid), text); } } } if (Players[playerid][pCalling] > 1) { if (Players[playerid][pCaller] != INVALID_PLAYER_ID) { if (Players[playerid][pPayphone] == INVALID_ID) { SendSplitMessage(Players[playerid][pCaller], COLOR_YELLOW, "(Phone) %s says: %s", ReturnNameEx(playerid), text); } else { SendSplitMessage(Players[playerid][pCaller], COLOR_YELLOW, "(Phone) Unknown says: %s", text); } } else { switch (Players[playerid][pCalling]) { case 444: { if (!PlayerCanAfford(playerid, 200)) { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Agency: You must have at least $200 to complete the transaction."); } else if (Players[playerid][pAdTime] > gettime()) { SendFormatMessage(playerid, COLOR_YELLOW, "(Phone) Agency: You may publish another advertisement in %i seconds.", Players[playerid][pAdTime] - gettime()); } else { RemoveMoney(playerid, 200); Players[playerid][pAdTime] = gettime() + 120; strpack(gAdvertisement[playerid], text, 128); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Agency: Your advertisement has been sent in for review."); SendClientMessage(playerid, COLOR_YELLOW, "(( You will need to wait for an administrator to accept your advertisement. ))"); foreach(new i : Player) { if(Players[i][pAdmin] > 0 || Players[i][pSupporter] > 0) { SendFormatMessage(i, COLOR_RED, "[AD] %s posted: %s", ReturnNameEx(playerid, 0), text); SendFormatMessage(i, COLOR_RED, "[AD] Use /acceptad %i or /denyad %i to handle this advertisement.", playerid, playerid); } } Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone]; format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); } HangupCall(playerid); } case 991: { foreach (new i : Player) { if (GetPlayerFactionType(i) == FACTION_LEO) { /*SendFormatMessage(i, COLOR_RADIO, "** Dispatch: All units, a call came in from %s. **", GetPlayerZoneNameEx(playerid)); SendFormatMessage(i, COLOR_RADIO, "** %s - %s **", text, ReturnNameEx(playerid));*/ SendFormatMessage(i, COLOR_RADIO, "________________[ Non-Emergency ]________________"); if (Players[playerid][pPayphone] != INVALID_ID) { SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]); AddEmergency(ReturnNameEx(playerid), "Police Non-Emergency", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text); } else { SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]); AddEmergency(ReturnNameEx(playerid), "Police Non-Emergency", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text); } //SendFormatMessage(i, COLOR_RADIO, "* Location: %s", GetPlayerZoneNameEx(playerid)); SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text); //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid); } } HangupCall(playerid); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: Thank you, a representative will call you as soon as possible."); Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone]; format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); } case 992: { foreach (new i : Player) { if (GetPlayerFactionType(i) == FACTION_MEDICAL) { /*SendFormatMessage(i, COLOR_RADIO, "** Dispatch: All units, a call came in from %s. **", GetPlayerZoneNameEx(playerid)); SendFormatMessage(i, COLOR_RADIO, "** %s - %s **", text, ReturnNameEx(playerid));*/ SendFormatMessage(i, COLOR_RADIO, "________________[ Non-Emergency ]________________"); if (Players[playerid][pPayphone] != INVALID_ID) { SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]); } else { SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]); } //SendFormatMessage(i, COLOR_RADIO, "* Location: %s", GetPlayerZoneNameEx(playerid)); SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text); //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid); } } HangupCall(playerid); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: Thank you, a representative will call you as soon as possible."); Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone]; format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); } case 993: { foreach (new i : Player) { if (GetPlayerFactionType(i) == FACTION_GOVERNMENT) { /*SendFormatMessage(i, COLOR_RADIO, "** Dispatch: All units, a call came in from %s. **", GetPlayerZoneNameEx(playerid)); SendFormatMessage(i, COLOR_RADIO, "** %s - %s **", text, ReturnNameEx(playerid));*/ SendFormatMessage(i, COLOR_RADIO, "_______________[ Government Call ]_______________"); if (Players[playerid][pPayphone] != INVALID_ID) { SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]); } else { SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]); } //SendFormatMessage(i, COLOR_RADIO, "* Location: %s", GetPlayerZoneNameEx(playerid)); SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text); //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid); } } HangupCall(playerid); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) John Doe: Thank you, a representative will call you as soon as possible."); Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone]; format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); } case 555: { if (!strcmp(text, "yes", true)) { Players[playerid][pCallTaxi] = 1; foreach (new i : Player) { if (Players[i][pJob] == JOB_TAXI && IsPlayerInTaxi(i)) { SendFormatMessage(i, COLOR_YELLOW, "(Taxi) %s (%i) has requested a taxi (use /accepttaxi to accept).", ReturnNameEx(playerid), playerid); } } SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Taxi: All taxi drivers have been notified of your request."); Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone]; format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); } else if (!strcmp(text, "no", true)) { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Taxi: Call back if you would like to request a taxi."); } else { return SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Taxi: Would you like to request a taxi? Say 'yes' or 'no'."); } HangupCall(playerid); } case 911: { switch (Players[playerid][pDispatch]) { case 0: { if (strfind(text, "both", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched to both services. Please tell us the problem."); Players[playerid][pDispatch] = 3; } else if (strfind(text, "police", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the police. Please tell us the problem."); Players[playerid][pDispatch] = 1; } else if (strfind(text, "officer", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the police. Please tell us the problem."); Players[playerid][pDispatch] = 1; } else if (strfind(text, "cop", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the police. Please tell us the problem."); Players[playerid][pDispatch] = 1; } else if (strfind(text, "ems", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the paramedics. Please tell us the problem."); Players[playerid][pDispatch] = 2; } else if (strfind(text, "ambulance", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the paramedics. Please tell us the problem."); Players[playerid][pDispatch] = 2; } else if (strfind(text, "fire", true) != -1) { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: You've been dispatched with the paramedics. Please tell us the problem."); Players[playerid][pDispatch] = 2; } else { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: Which service do you require?"); } } case 1: { foreach (new i : Player) { if (GetPlayerFactionType(i) == FACTION_LEO) { new location[MAX_ZONE_NAME]; GetPlayer2DZone(i, location, MAX_ZONE_NAME); SendFormatMessage(i, COLOR_RADIO, "_________________[Emergency Call]_________________"); if (Players[playerid][pPayphone] != INVALID_ID) { SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]); //AddEmergency(ReturnNameEx(playerid), "Police", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text); } else { SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]); //AddEmergency(ReturnNameEx(playerid), "Police", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text); } SendFormatMessage(i, COLOR_RADIO, "* Location: %s", location); SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text); SendFormatMessage(i, COLOR_RADIO, "* Service: Police"); //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid); } } if (Players[playerid][pPayphone] != INVALID_ID) AddEmergency(ReturnNameEx(playerid), "Police", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text); else AddEmergency(ReturnNameEx(playerid), "Police", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text); HangupCall(playerid); gCallsHour++; Players[playerid][pEmergency] = 1; SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: Thank you for reporting the crime. The authorities have been informed."); Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone]; format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); } case 2: { foreach (new i : Player) { if (GetPlayerFactionType(i) == FACTION_MEDICAL) { /*SendFormatMessage(i, COLOR_MEDICRADIO, "** Dispatch: All units, a call came in from %s. **", GetPlayerZoneNameEx(playerid)); SendFormatMessage(i, COLOR_MEDICRADIO, "** %s - %s **", text, ReturnNameEx(playerid));*/ SendFormatMessage(i, COLOR_RADIO, "_________________[Emergency Call]_________________"); if (Players[playerid][pPayphone] != INVALID_ID) { SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]); //AddEmergency(ReturnNameEx(playerid), "Paramedics", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text); } else { SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]); //AddEmergency(ReturnNameEx(playerid), "Paramedics", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text); } SendFormatMessage(i, COLOR_RADIO, "* Location: %s", GetPlayerZoneNameEx(playerid)); SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text); SendFormatMessage(i, COLOR_RADIO, "* Service: Paramedics"); //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid); } } if (Players[playerid][pPayphone] != INVALID_ID) AddEmergency(ReturnNameEx(playerid), "Paramedics", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text); else AddEmergency(ReturnNameEx(playerid), "Paramedics", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text); HangupCall(playerid); gCallsHour++; Players[playerid][pEmergency] = 1; SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: Thank you for reporting the crime. The paramedics have been informed."); Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone]; format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); } case 3: { foreach (new i : Player) { if (GetPlayerFactionType(i) == FACTION_LEO || GetPlayerFactionType(i) == FACTION_MEDICAL) { /*SendFormatMessage(i, COLOR_MEDICRADIO, "** Dispatch: All units, a call came in from %s. **", GetPlayerZoneNameEx(playerid)); SendFormatMessage(i, COLOR_MEDICRADIO, "** %s - %s **", text, ReturnNameEx(playerid));*/ SendFormatMessage(i, COLOR_RADIO, "_________________[Emergency Call]_________________"); if (Players[playerid][pPayphone] != INVALID_ID) { SendFormatMessage(i, COLOR_RADIO, "* Name: Payphone (ID: %i)", playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Payphones[Players[playerid][pPayphone]][phNumber]); //AddEmergency(ReturnNameEx(playerid), "Both", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text); } else { SendFormatMessage(i, COLOR_RADIO, "* Name: %s (ID: %i)", ReturnNameEx(playerid), playerid); SendFormatMessage(i, COLOR_RADIO, "* Number: %i", Players[playerid][pPhone]); //AddEmergency(ReturnNameEx(playerid), "Both", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text); } SendFormatMessage(i, COLOR_RADIO, "* Location: %s", GetPlayerZoneNameEx(playerid)); SendFormatMessage(i, COLOR_RADIO, "* Situation: %s", text); SendFormatMessage(i, COLOR_RADIO, "* Service: Both"); //SendFormatMessage(i, COLOR_RADIO, "(( Use '/acceptcall %i' to accept this call. ))",playerid); } } if (Players[playerid][pPayphone] != INVALID_ID) AddEmergency(ReturnNameEx(playerid), "Both", Payphones[Players[playerid][pPayphone]][phNumber], GetPlayerZoneNameEx(playerid), text); else AddEmergency(ReturnNameEx(playerid), "Both", Players[playerid][pPhone], GetPlayerZoneNameEx(playerid), text); HangupCall(playerid); gCallsHour++; Players[playerid][pEmergency] = 1; SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Dispatch: Thank you for reporting the crime. The police and paramedics have been informed."); Players[playerid][pPhoneLastKnown] = Players[playerid][pPhone]; format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET PhoneLastKnown = %i WHERE Username = '%s'", Players[playerid][pPhone], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); } } } } } } } return 0; } public OnPlayerCommandPerformed(playerid, cmdtext[], success) { if (!success) SendErrorMessage(playerid, "You have entered an invalid command."); return 1; } public OnPlayerCommandReceived(playerid, cmdtext[]) { if (!IsPlayerLoggedIn(playerid) || !IsPlayerSpawned(playerid) || !Players[playerid][pSetupInfo] || Players[playerid][pDeathState] == DEATH_STATE_HOSPITAL || Players[playerid][pCommandMuted] > 0) { return 0; } if (!Players[playerid][pAdmin] && Players[playerid][pCommandSpam] < 5 && ++ Players[playerid][pCommandSpam] >= 5) { Players[playerid][pCommandSpam] = 0; Players[playerid][pCommandMuted] = 10; SendClientMessage(playerid, COLOR_WHITE, "You have been muted 10 seconds for command spamming."); SendAdminMessage(COLOR_RED, "Admin: %s has been muted for command spamming.", ReturnNameEx(playerid)); return 0; } printf("(CMD) %s (%i): %s", ReturnNameEx(playerid, 0), playerid, cmdtext); return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if (IsPlayerInjured(playerid) || Players[playerid][pFainted] || Players[playerid][pTazed]) { return 1; } if (IsPlayerSelectingOutfit(playerid)) { if (newkeys & KEY_NO && Players[playerid][pSetupInfo]) { CancelOutfitSelection(playerid); Players[playerid][pBuyOutfit] = INVALID_ID; } else if (newkeys & KEY_SECONDARY_ATTACK) { if (!Players[playerid][pSetupInfo]) { Players[playerid][pSkin] = g_ValidSkinModels[Players[playerid][pOutfitIndex]]; Players[playerid][pOutfitIndex] = INVALID_ID; ApplyAnimation(playerid, "FREEWEIGHTS", "gym_free_celebrate", 4.0, 0, 0, 0, 0, 0, 1); SetTimerEx("OutfitSelected", 2000, false, "i", playerid); PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); SendInfoMessage(playerid, "You have selected your outfit."); } else { if (Companies[Players[playerid][pBuyOutfit]][cType] == COMPANY_CLOTHES) { Players[playerid][pSkin] = g_ValidSkinModels[Players[playerid][pOutfitIndex]]; CancelOutfitSelection(playerid); PurchaseProduct(playerid, Players[playerid][pBuyOutfit], 0); SendInfoMessage(playerid, "You have purchased a new outfit for {33CC33}%s{FFFFFF}.", FormatNumber(Products[Players[playerid][pBuyOutfit]][0][prPrice])); Players[playerid][pBuyOutfit] = INVALID_ID; } } } } else { if(newkeys & KEY_FIRE && IsPlayerInModdingShop(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && Players[playerid][pModPreview] >= 1000) { Dialog_Show(playerid, ModdingPurchase, DIALOG_STYLE_MSGBOX, "{33AA33}Modding - Choose Option", "{FFFFFF}Do you want to purchase this {33AA33}%s{FFFFFF} for {33AA33}$%i{FFFFFF}?", "Yes", "No", GetVehicleComponentName(Players[playerid][pModPreview]), GetVehicleComponentPriceEx(Players[playerid][pModPreview])); } if (newkeys & KEY_CTRL_BACK && !IsPlayerSpectating(playerid)) { if (!EnterCaller(playerid)) ExitCaller(playerid); SitCheck(playerid); } if (Players[playerid][pSetupInfo]) { if (newkeys & KEY_NO) { if (Players[playerid][pSelectUniform]) { Players[playerid][pSelectUniform] = 0; TogglePlayerControllable(playerid, true); SetPlayerSkin(playerid, Players[playerid][pSkin]); SendInfoMessage(playerid, "You have cancelled uniform selection."); ShowLockerMenu(playerid); } else if (Players[playerid][pVehicleColor] != INVALID_ID) { ChangeVehicleColor(Vehicles[Players[playerid][pVehicleColor]][vVehicle], Vehicles[Players[playerid][pVehicleColor]][vColor1], Vehicles[Players[playerid][pVehicleColor]][vColor2]); Players[playerid][pVehicleColor] = INVALID_ID; TogglePlayerControllable(playerid, true); SendInfoMessage(playerid, "You have cancelled the color selection."); } else if (IsPlayerJailed(playerid)) { SendErrorMessage(playerid, "You can't access your inventory in jail."); } else if (Players[playerid][pHandcuffed]) { SendErrorMessage(playerid, "You can't access your inventory while cuffed."); } else { /*if (!Players[playerid][pInventory]) { DisplayInventory(playerid); SendInfoMessage(playerid, "Press ESC to close your inventory."); } else { HideInventory(playerid); }*/ new success = DisplayInventory(playerid); if (!success) { SendErrorMessage(playerid, "You don't have any items in your inventory."); } } } if (newkeys & KEY_CROUCH && IsPlayerInAnyVehicle(playerid)) { GateCheck(playerid); } if (newkeys & KEY_YES) { if (Players[playerid][pVehicleColor] != INVALID_ID) { new vehicle = Players[playerid][pVehicleColor]; Vehicles[vehicle][vColor1] = Players[playerid][pColorID]; Vehicles[vehicle][vColor2] = Players[playerid][pColorID]; SaveVehicle(vehicle); RemoveMoney(playerid, 100); TogglePlayerControllable(playerid, true); SendInfoMessage(playerid, "You have changed your vehicle's color for {33CC33}$100{FFFFFF}."); Players[playerid][pVehicleColor] = INVALID_ID; PlayerPlaySound(playerid, 1134, 0.0, 0.0, 0.0); } else if (Players[playerid][pOutfitIndex] == INVALID_ID) { if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { LoadCheck(playerid); GateCheck(playerid); if (GetClosestShell(playerid) != INVALID_ID) ShellCheck(playerid); else if (GetClosestDropItem(playerid) != INVALID_ID) PickupNearestItem(playerid); else if (GetClosestWeedPlant(playerid) != INVALID_ID) WeedCheck(playerid); //else if (GetClosestBlood(playerid) != INVALID_ID) BloodCheck(playerid); else if (IsPlayerNearSwitch(playerid)) LightSwitch(playerid); else if (IsPlayerInRangeOfLocker(playerid)) ShowLockerMenu(playerid); else if (GetClosestFurniture(playerid, 2.0, 2332) != INVALID_ID) SafeCheck(playerid); else if (GetClosestFridge(playerid, 2.0) != INVALID_ID) FridgeCheck(playerid); else if (GetClosestATM(playerid) != INVALID_ID) ATMCheck(playerid); else if (GetClosestTrashbin(playerid) != INVALID_ID) TrashbinCheck(playerid); else if (IsPlayerNearGymEquipment(playerid)) GymCheck(playerid); } } } if (newkeys & KEY_SPRINT) { if (Players[playerid][pAnimation]) { Players[playerid][pAnimation] = 0; ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0); HideFooterText(playerid); } WorkoutUpdate(playerid); } if (newkeys & KEY_SECONDARY_ATTACK) { if (Players[playerid][pSelectUniform] && Players[playerid][pFaction] != INVALID_ID) { Players[playerid][pUniform] = Players[playerid][pSkin]; Players[playerid][pSkin] = Factions[Players[playerid][pFaction]][fcUniforms][Players[playerid][pUniformIndex]]; Players[playerid][pSelectUniform] = 0; SendInfoMessage(playerid, "You have selected your uniform."); TogglePlayerControllable(playerid, true); //ShowLockerMenu(playerid); } } if (Players[playerid][pVehicleColor] != INVALID_ID) { if (newkeys & KEY_LOOK_LEFT) { if (--Players[playerid][pColorID] < 0) { Players[playerid][pColorID] = 255; } ChangeVehicleColor(GetPlayerVehicleID(playerid), Players[playerid][pColorID], Players[playerid][pColorID]); PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0); } else if (newkeys & KEY_LOOK_RIGHT) { if (++Players[playerid][pColorID] > 255) { Players[playerid][pColorID] = 0; } ChangeVehicleColor(GetPlayerVehicleID(playerid), Players[playerid][pColorID], Players[playerid][pColorID]); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } } } } return 1; } public OnPlayerClickTextDraw(playerid, Text:clickedid) { if (Dialog_Opened(playerid)) return 0; if (Players[playerid][pIgnoreTD]) { Players[playerid][pIgnoreTD] = 0; return 0; } if (clickedid == INVALID_TEXT_DRAW) { /*if (!Players[playerid][pSetupInfo]) { SetTimerEx("SelectTD", 200, false, "i", playerid); return 1; }*/ if (!Players[playerid][pSetupInfo]) { return 1; } if (Players[playerid][pFurnitureMenu]) { HideFurniturePreviewer(playerid); } if (Players[playerid][pAccessoryMenu]) { HideAccessoryPreviewer(playerid); } if (Players[playerid][pDealershipMenu] != INVALID_ID) { HideDealershipPreview(playerid); } } return 1; } public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) { if (Dialog_Opened(playerid) || Players[playerid][pIgnoreTD]) return 0; /*if (Players[playerid][pOutfitIndex] != INVALID_ID) { if (playertextid == Players[playerid][pText][1]) { if (Players[playerid][pOutfitIndex] == 0) Players[playerid][pOutfitIndex] = sizeof(g_ValidSkinModels) - 1; else Players[playerid][pOutfitIndex]--; UpdateOutfitSelection(playerid); PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][2]) { if (Players[playerid][pOutfitIndex] == sizeof(g_ValidSkinModels) - 1) Players[playerid][pOutfitIndex] = 0; else Players[playerid][pOutfitIndex]++; UpdateOutfitSelection(playerid); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][3]) { if (!Players[playerid][pSetupInfo]) { Players[playerid][pSkin] = g_ValidSkinModels[Players[playerid][pOutfitIndex]]; Players[playerid][pOutfitIndex] = INVALID_ID; ApplyAnimation(playerid, "FREEWEIGHTS", "gym_free_celebrate", 4.0, 0, 0, 0, 0, 0, 1); SetTimerEx("OutfitSelected", 2000, false, "i", playerid); PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); SendInfoMessage(playerid, "You have selected your outfit."); } else { if (Companies[Players[playerid][pBuyOutfit]][cType] == COMPANY_CLOTHES) { Players[playerid][pSkin] = g_ValidSkinModels[Players[playerid][pOutfitIndex]]; CancelOutfitSelection(playerid); PurchaseProduct(playerid, Players[playerid][pBuyOutfit], 0); SendInfoMessage(playerid, "You have purchased a new outfit for {33CC33}%s{FFFFFF}.", FormatNumber(Products[Players[playerid][pBuyOutfit]][0][prPrice])); Players[playerid][pBuyOutfit] = INVALID_ID; } } } }*/ if (!Players[playerid][pSetupInfo]) { if (playertextid == Players[playerid][pText][89]) { Players[playerid][pGender] = GENDER_MALE; UpdateSkinSelection(playerid, 0); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][90]) { Players[playerid][pGender] = GENDER_FEMALE; UpdateSkinSelection(playerid, 0); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][93] && Players[playerid][pAge] > 13) { Players[playerid][pAge]--; PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][94] && Players[playerid][pAge] < 99) { Players[playerid][pAge]++; PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][97]) { UpdateSkinSelection(playerid, Players[playerid][pOutfit] - 1); PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][98]) { UpdateSkinSelection(playerid, Players[playerid][pOutfit] + 1); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][99]) { ResetCharacterSetup(playerid); } else if (playertextid == Players[playerid][pText][100]) { Dialog_Show(playerid, SetupConfirm, DIALOG_STYLE_MSGBOX, "Confirmation", "Are you sure you would like to save your character?", "Yes", "No"); } else if (playertextid == Players[playerid][pText][101]) { Dialog_Show(playerid, SetupHelp, DIALOG_STYLE_MSGBOX, "More Help", "You can easily setup your character using this simple interface.\n\n- To change your gender, click on {88AA62}Male{A9C4E4} or {88AA62}Female{A9C4E4}.\n- To change your age, click on the minus (-) and plus (+) buttons.\n- To change your outfit, click on the arrows to browse between outfits.\n\nOnce you are ready, just click {88AA62}Confirm{A9C4E4} to save your character!", "Close", ""); } UpdateCharacterSetup(playerid); } if (Players[playerid][pFurnitureMenu]) { if (playertextid == Players[playerid][pText][73]) { if (Players[playerid][pPreviewIndex] > GetFurnitureListStart(Players[playerid][pCategory])) { Players[playerid][pPreviewIndex]--; } UpdateFurniturePreviewer(playerid); PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][74]) { HideFurniturePreviewer(playerid); PreviewFurniture(playerid, Players[playerid][pPreviewIndex]); } else if (playertextid == Players[playerid][pText][75]) { if (Players[playerid][pPreviewIndex] < GetFurnitureListEnd(Players[playerid][pCategory])) { Players[playerid][pPreviewIndex]++; } UpdateFurniturePreviewer(playerid); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } } if (Players[playerid][pAccessoryMenu]) { if (playertextid == Players[playerid][pText][67]) { if (Players[playerid][pPreviewIndex] > GetAccessoryListStart(Players[playerid][pCategory])) { Players[playerid][pPreviewIndex]--; } UpdateAccessoryPreviewer(playerid); PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][68]) { if (Players[playerid][pPreviewIndex] < GetAccessoryListEnd(Players[playerid][pCategory])) { Players[playerid][pPreviewIndex]++; } UpdateAccessoryPreviewer(playerid); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); } else if (playertextid == Players[playerid][pText][69]) { HideAccessoryPreviewer(playerid); PreviewAccessory(playerid, Players[playerid][pPreviewIndex]); } } if (Players[playerid][pDealershipMenu] != INVALID_ID) { if (playertextid == Players[playerid][pText][83]) { Players[playerid][pDealershipIndex] = GetPreviousDealershipCar(Players[playerid][pDealershipMenu], Players[playerid][pDealershipIndex]); PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0); UpdateDealershipPreview(playerid); } else if (playertextid == Players[playerid][pText][85]) { Players[playerid][pDealershipIndex] = GetNextDealershipCar(Players[playerid][pDealershipMenu], Players[playerid][pDealershipIndex]); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); UpdateDealershipPreview(playerid); } else if (playertextid == Players[playerid][pText][84]) { new index = Players[playerid][pDealershipIndex]; if (!PlayerCanAfford(playerid, DealershipCars[index][dcPrice])) { return SendErrorMessage(playerid, "You can't afford to buy this vehicle."); } else if (!IsVehicleSpawnSetup(Players[playerid][pDealershipMenu])) { return SendErrorMessage(playerid, "The vehicle spawn point is not setup."); } else { if (GetVehicleLimit(playerid) != 0 && GetOwnedVehicles(playerid) >= GetVehicleLimit(playerid)) { HideDealershipPreview(playerid); return SendErrorMessage(playerid, "You have reached the limit of owned vehicles."); } new vehicle = AddVehicle(INVALID_ID, DealershipCars[index][dcModel], 0, Companies[Players[playerid][pDealershipMenu]][cVehicle][0], Companies[Players[playerid][pDealershipMenu]][cVehicle][1], Companies[Players[playerid][pDealershipMenu]][cVehicle][2], Companies[Players[playerid][pDealershipMenu]][cVehicle][3], 11, 11, playerid, .despawned = true); if (vehicle == INVALID_ID) { return SendErrorMessage(playerid, "There are no available vehicle slots."); } else { new count = 1; for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i) && !Vehicles[i][vDespawned]) { count++; } } if (count > GetVehicleSpawnLimit(playerid)) { return SendErrorMessage(playerid, "You can only have two vehicles spawned at one time."); } Statistics[playerid][sVehicles]++; RemoveMoney(playerid, DealershipCars[index][dcPrice]); if (!IsCompanyOwner(playerid, Players[playerid][pDealershipMenu])) { GiveCompanyMoney(Players[playerid][pDealershipMenu], DealershipCars[index][dcPrice]); } format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, '%s', %i, NOW())", Players[playerid][pID], GetVehicleModelName(DealershipCars[index][dcModel]), DealershipCars[index][dcPrice]); mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "You have purchased a %s for {33CC33}%s{FFFFFF}. Use '/v spawn' to spawn it.", GetVehicleModelName(DealershipCars[index][dcModel]), FormatNumber(DealershipCars[index][dcPrice])); HideDealershipPreview(playerid); } } } } return 1; } public OnPlayerPickUpDynamicPickup(playerid, pickupid) { for (new i = 0; i < MAX_BUILDINGS; i ++) { if ((Buildings[i][bExists] && Buildings[i][bPickup] == pickupid) && Players[playerid][pBuildingInfo] != i) { if (Players[playerid][pAdmin] > 4) { SendInfoMessage(playerid, "The building ID is: %i. Use /editbuilding to edit it.", i); } else { SendInfoMessage(playerid, "Press H to enter this building."); } Players[playerid][pBuildingInfo] = i; } } return 1; } /*forward CheckAmmo(playerid); public CheckAmmo(playerid) { if(oldAmmo[playerid] > newAmmo[playerid]) { return 1; } return 1; } forward CheckWeapons(playerid); public CheckWeapons(playerid) { if(GetPlayerWeapon(playerid) == 0) { return 1; } else if(GetPlayerWeapon(playerid) != 0) { SetTimer("CheckAmmo", 750, true); } return 1; }*/ forward OnPlayerChangeWeapon(playerid, oldweapon, newweapon); public OnPlayerChangeWeapon(playerid, oldweapon, newweapon) { if(GetPlayerWeapon(playerid) == oldWeapon[playerid] && oldWeapon[playerid] == 0) { return 1; } if(GetPlayerWeapon(playerid) != oldWeapon[playerid]) { oldWeapon[playerid] = GetPlayerWeapon(playerid); oldAmmo[playerid] = GetPlayerAmmo(playerid); return 1; } if(GetPlayerWeapon(playerid) == oldWeapon[playerid] && oldWeapon[playerid] != 0) { oldAmmo[playerid] = GetPlayerAmmo(playerid); newWeapon[playerid] = GetPlayerWeapon(playerid); return 1; } if(GetPlayerWeapon(playerid) != oldWeapon[playerid] && GetPlayerWeapon(playerid) == 0) { oldWeapon[playerid] = GetPlayerWeapon(playerid); return 1; } return 1; } public OnPlayerUpdate(playerid) { //SetTimer("CheckWeapons", 1000, true); /*if(GetPlayerWeapon(playerid) == oldWeapon[playerid] && oldWeapon[playerid] == 0) { oldAmmo[playerid] = GetPlayerAmmo(playerid); return 1; } if(GetPlayerWeapon(playerid) != oldWeapon[playerid]) { oldWeapon[playerid] = GetPlayerWeapon(playerid); newAmmo[playerid] = GetPlayerAmmo(playerid); return 1; } if(GetPlayerWeapon(playerid) == oldWeapon[playerid] && oldWeapon[playerid] != 0) { newWeapon[playerid] = GetPlayerWeapon(playerid); return 1; }*/ new packetkeys, updown, leftright; GetPlayerKeys(playerid, packetkeys, updown, leftright); if(Players[playerid][pSpectate] != INVALID_PLAYER_ID) { if(leftright != 0) { if(GetTickCount()-pSpecLimit[playerid] > 666 || GetTickCount()-pSpecLimit[playerid] < 0) { pSpecLimit[playerid] = GetTickCount(); new i = Players[playerid][pSpectate]; if(leftright == KEY_RIGHT) { i++; if(i == MAX_PLAYERS) i = 0; while(!IsPlayerConnected(i) || Players[i][pSpectate] != INVALID_PLAYER_ID) { i++; if(i == MAX_PLAYERS) i = 0; } } else if(leftright == KEY_LEFT) { i--; if(i == -1) i = MAX_PLAYERS-1; while(!IsPlayerConnected(i) || Players[i][pSpectate] != INVALID_PLAYER_ID) { i--; if(i == -1) i = MAX_PLAYERS-1; } } new val[12]; format(val, 12, "%i", i); cmd_spec(playerid, val); } } else pSpecLimit[playerid] = 0; } new iCurWeap = GetPlayerWeapon(playerid); if(iCurWeap != GetPVarInt(playerid, "iCurrentWeapon")) { OnPlayerChangeWeapon(playerid, GetPVarInt(playerid, "iCurrentWeapon"), iCurWeap); SetPVarInt(playerid, "iCurrentWeapon", iCurWeap); } if (IsPlayerNPC(playerid) || !IsPlayerSpawned(playerid)) return 1; else if (gPlayerKicked[playerid]) return 0; f_OnPlayerUpdate(playerid); new vehicleid = GetPlayerVehicleID(playerid), index = GetPlayerAnimationIndex(playerid), string[32], keys, ud, lr; GetPlayerKeys(playerid, keys, ud, lr); if (Players[playerid][pOutfitIndex] != INVALID_ID && (NetStats_GetConnectedTime(playerid) - Players[playerid][pOutfitTick]) > 100) { if (lr == KEY_LEFT || lr == KEY_RIGHT) { HandleOutfitNavigation(playerid, lr); Players[playerid][pOutfitTick] = NetStats_GetConnectedTime(playerid); } } else if (Players[playerid][pSelectUniform] && (NetStats_GetConnectedTime(playerid) - Players[playerid][pUniformTick]) > 100) { if (lr == KEY_LEFT || lr == KEY_RIGHT) { HandleUniformNavigation(playerid, lr); Players[playerid][pUniformTick] = NetStats_GetConnectedTime(playerid); } } if (Players[playerid][pBrokenLeg] && !Players[playerid][pFainted]) { if (1196 <= GetPlayerAnimationIndex(playerid) <= 1198 || IsPlayerSprinting(playerid)) { ApplyAnimation(playerid, "PED","FALL_collapse", 4.1, 0, 1, 1, 0, 0, 1); ApplyAnimation(playerid, "PED","FALL_collapse", 4.1, 0, 1, 1, 0, 0, 1); ShowActionBubble(playerid, "* %s trips and falls on the ground from a broken leg.", ReturnNameEx(playerid)); } } if (GetPlayerMoney(playerid) != Players[playerid][pPocketMoney]) { ResetPlayerMoney(playerid); GivePlayerMoney(playerid, Players[playerid][pPocketMoney]); } if (GetPlayerScore(playerid) != Players[playerid][pHoursOnline]) { SetPlayerScore(playerid, Players[playerid][pHoursOnline]); } if (GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if (index != 1508 && ((Players[playerid][pDeathState] == DEATH_STATE_INJURED && GetVehicleModel(GetPlayerVehicleID(playerid)) != 416))) { ApplyAnimation(playerid, "CRACK", "crckdeth4", 4.1, 0, 0, 0, 1, 0, 1); } /*if (index != 1508 && ((Players[playerid][pDeathState] == DEATH_STATE_MELEE && GetVehicleModel(GetPlayerVehicleID(playerid)) != 416))) { ApplyAnimation(playerid, "SWAT", "gnstwall_injurd", 4.1, 1, 0, 0, 0, 0, 1); }*/ if (index != 388 && Players[playerid][pTazed] > 0) { ApplyAnimation(playerid, "CRACK", "crckdeth4", 4.1, 0, 0, 0, 1, 0, 1); } } if (IsPlayerDrivingVehicle(playerid, vehicleid)) { if (Players[playerid][pShowSpeed]) { format(string, sizeof(string), "Speed: %.0f", GetVehicleMPH(vehicleid)); PlayerTextDrawSetString(playerid, Players[playerid][pText][26], string); } } if (GetPlayerWeapon(playerid) == Weapons[playerid][wPrimary] && GetPlayerAmmo(playerid) > 0 && !IsPlayerHoldingTazer(playerid)) { Weapons[playerid][wPrimaryAmmo] = GetPlayerAmmo(playerid); } if (GetPlayerWeapon(playerid) == Weapons[playerid][wSecondary] && GetPlayerAmmo(playerid) > 0 && !IsPlayerHoldingTazer(playerid)) { Weapons[playerid][wSecondaryAmmo] = GetPlayerAmmo(playerid); } if (GetPlayerWeapon(playerid) == Weapons[playerid][wTertiary] && GetPlayerAmmo(playerid) > 0 && !IsPlayerHoldingTazer(playerid)) { Weapons[playerid][wTertiaryAmmo] = GetPlayerAmmo(playerid); } if (Players[playerid][pHouseInfo] != INVALID_ID && !IsPlayerInRangeOfPoint(playerid, 2.0, Houses[Players[playerid][pHouseInfo]][hSpawn][0], Houses[Players[playerid][pHouseInfo]][hSpawn][1], Houses[Players[playerid][pHouseInfo]][hSpawn][2])) { Players[playerid][pHouseInfo] = INVALID_ID; HidePlayerTextDraws(playerid, 55, 57); HideFooterText(playerid); } if (Players[playerid][pCompanyInfo] != INVALID_ID && !IsPlayerInRangeOfPoint(playerid, 2.0, Companies[Players[playerid][pCompanyInfo]][cSpawn][0], Companies[Players[playerid][pCompanyInfo]][cSpawn][1], Companies[Players[playerid][pCompanyInfo]][cSpawn][2])) { Players[playerid][pCompanyInfo] = INVALID_ID; HidePlayerTextDraws(playerid, 55, 57); HideFooterText(playerid); } if (Players[playerid][pBuildingInfo] != INVALID_ID && !IsPlayerInRangeOfPoint(playerid, 2.0, Buildings[Players[playerid][pBuildingInfo]][bSpawn][0], Buildings[Players[playerid][pBuildingInfo]][bSpawn][1], Buildings[Players[playerid][pBuildingInfo]][bSpawn][2])) { Players[playerid][pBuildingInfo] = INVALID_ID; } if (Players[playerid][pPaused]) { Players[playerid][pPaused] = 0; SendInfoMessage(playerid, "{CFCFCF}You have been paused for %i seconds.", (gettime() - Players[playerid][pLastUpdate])); DestroyDynamic3DTextLabel(Players[playerid][pPausedText]); } switch (Players[playerid][pWorkout]) { case WORKOUT_DUMBELLS: { if (index < 570 || index > 577) { ApplyAnimation(playerid, "Freeweights", "gym_free_loop", 4.1, 1, 0, 0, 0, 0, 1); } } case WORKOUT_TREADMILL: { if (index < 662 || index > 665) { switch (Players[playerid][pSpeedLevel]) { case 1..3: { ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_walk", 4.1, 1, 0, 0, 0, 0, 1); } case 4..6: { ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_jog", 4.1, 1, 0, 0, 0, 0, 1); } case 7..10: { ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_sprint", 4.1, 1, 0, 0, 0, 0, 1); } } } } } Players[playerid][pLastUpdate] = gettime(); UpdateAttachedObjects(playerid); UpdateLightsForPlayer(playerid); return 1; } public OnPlayerSpawn(playerid) { oldWeapon[playerid] = GetPlayerWeapon(playerid); if (IsPlayerNPC(playerid)) return 1; // Added so players can see objects updating if they drop items. Streamer_ToggleIdleUpdate(playerid, 1); StopAudioStreamForPlayer(playerid); // Preload animations for (new i = 0; i < sizeof(g_AnimationLibraries); i ++) { ApplyAnimation(playerid, g_AnimationLibraries[i], "null", 0.0, 0, 0, 0, 0, 0, 1); } /*ApplyAnimation(playerid, "FREEWEIGHTS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "MUSCULAR", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CRACK", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "PED", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FAT", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BASEBALL", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "GRENADE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BOMBER", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FOOD", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CARRY", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CRACK", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BD_FIRE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "INT_SHOP", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "VENDING", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BAR", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "GYMNASIUM", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "HEIST9", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "COLT45", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SILENCED", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BUDDY", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "UZI", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "TEC", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "RIFLE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SMOKING", "null", 0.0, 0, 0, 0, 0, 0);*/ UpdateNameTag(playerid, 1); // Weapon skills SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 990); SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 990); SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 990); SetPlayerSkillLevel(playerid, WEAPONSKILL_SPAS12_SHOTGUN, 0); if (!Players[playerid][pSetupInfo]) { /*SetPlayerInterior(playerid, 14); SetPlayerPos(playerid, 208.3268, -154.9872, 1000.5234); SetPlayerFacingAngle(playerid, 180.0000); SetPlayerCameraPos(playerid, 208.276733, -158.160308, 1001.734130); SetPlayerCameraLookAt(playerid, 208.316360, -155.487106, 1001.023437); SetPlayerVirtualWorld(playerid, playerid); TogglePlayerControllable(playerid, 0); ResetCharacterSetup(playerid); SelectTextDraw(playerid, -1);*/ for (new i = 86; i < 102; i ++) { PlayerTextDrawShow(playerid, Players[playerid][pText][i]); } } else { SetPlayerSpawn(playerid); //SetPlayerSkin(playerid, Players[playerid][pSkin]); } GetPlayerPos(playerid, Players[playerid][pDistance][0], Players[playerid][pDistance][1], Players[playerid][pDistance][2]); return 1; } public OnPlayerConnect(playerid) { ReviewQuiz[playerid] = -1; EnteringVehicle[playerid] = 0; if (IsPlayerNPC(playerid)) { Players[playerid][pLoggedIn] = 1; } else { RemoveBuildings(playerid); ClearData(playerid); SetupTextdraws(playerid); Streamer_VisibleItems(STREAMER_TYPE_OBJECT, 999); FlushChatForPlayer(playerid); //SendInfoMessage(playerid, "Welcome to Core Roleplay! The server will now fetch your details."); PlayAudioStreamForPlayer(playerid, "http://tinyurl.com/9g6yger"); SendClientMessage(playerid, COLOR_WHITE, "Type{FF9900} /help{FFFFFF} for more information regarding the server."); SendClientMessage(playerid, COLOR_WHITE, "Make sure you're up to date with the{FF9900} server rules{FFFFFF}. "); SendClientMessage(playerid, COLOR_WHITE, "Make sure you're registered on our forums!{FF9900} www.westcoastrpg.com{FFFFFF}."); //SetPlayerColor(playerid, COLOR_PLAYER); } return 1; } public OnPlayerDisconnect(playerid, reason) { ReviewQuiz[playerid] = -1; if(EnteringVehicle[playerid] == 1) { EnteringVehicle[playerid] = 0; KillTimer(EnteringVeh_Timer[playerid]); } if (Players[playerid][pLoggedIn] > 0) { if(reason == 0) { Players[playerid][pCrashed] = true; } else { Players[playerid][pCrashed] = false; } SaveAccount(playerid); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Online = 0 WHERE ID = %i", Players[playerid][pID]); mysql_tquery(gConnection, gExecute); } if (Players[playerid][pPaused]) { DestroyDynamic3DTextLabel(Players[playerid][pPausedText]); } if (Players[playerid][pDeathState] == DEATH_STATE_INJURED) { DestroyDynamic3DTextLabel(Players[playerid][pInjuredText]); } if (Players[playerid][pWorkout]) { KillTimer(Timers[playerid][tWorkout]); } if (Players[playerid][pDeathState] == DEATH_STATE_HOSPITAL) { KillTimer(Timers[playerid][tHospital]); } if (Players[playerid][pRepairCar]) { KillTimer(Timers[playerid][tRepair]); } if (Players[playerid][pCalling] > 0) { HangupCall(playerid); } if (Players[playerid][pHouseEdit] != INVALID_ID) { SetFurnitureEditMode(Players[playerid][pHouseEdit], false); } if (Players[playerid][pInsideTaxi] != INVALID_PLAYER_ID) { OnPlayerExitTaxi(playerid); } if (Players[playerid][pPayphone] != INVALID_ID) { HangupCall(playerid); } if (Players[playerid][pRefuel] != INVALID_ID) { StopRefuel(playerid); } if (Players[playerid][pWorking]) { StopWorking(playerid); } if (Stereos[playerid][pStereoID] != INVALID_ID) { ResetStereo(playerid); } if (IsValidVehicle(Players[playerid][pAddVehicle])) { DestroyVehicleEx(Players[playerid][pAddVehicle]); } if (Players[playerid][pHandcuffed]) { SendAdminMessage(COLOR_RED, "Admin: %s has left the server while handcuffed.", ReturnNameEx(playerid, 0)); } switch (reason) { case 0: { SendDistanceMessage(playerid, 20.0, COLOR_GREY, "** %s has left the server (Timeout).", ReturnNameEx(playerid, 0)); g_Callsigns[ Players[playerid][pFactionCallsign] ][e_CallsignTakenBy] = INVALID_ID; Players[playerid][pFactionCallsign] = 0; new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); new log[128]; format(log, sizeof(log), "%s (%s) has left the server (Timeout) (%.2f, %.2f, %.2f)", ReturnName(playerid), Players[playerid][pIP], x, y, z); CreateLog("logging", log); } case 1: { SendDistanceMessage(playerid, 20.0, COLOR_GREY, "** %s has left the server (Quit).", ReturnNameEx(playerid, 0)); //RemoveEquipment(playerid); g_Callsigns[ Players[playerid][pFactionCallsign] ][e_CallsignTakenBy] = INVALID_ID; Players[playerid][pFactionCallsign] = 0; new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); new log[128]; format(log, sizeof(log), "%s (%s) has left the server (Quit) (%.2f, %.2f, %.2f)", ReturnName(playerid), Players[playerid][pIP], x, y, z); CreateLog("logging", log); } case 2: { SendDistanceMessage(playerid, 20.0, COLOR_GREY, "** %s has left the server (Kicked).", ReturnNameEx(playerid, 0)); //RemoveEquipment(playerid); g_Callsigns[ Players[playerid][pFactionCallsign] ][e_CallsignTakenBy] = INVALID_ID; Players[playerid][pFactionCallsign] = 0; new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); new log[128]; format(log, sizeof(log), "%s (%s) has left the server (Kicked) (%.2f, %.2f, %.2f)", ReturnName(playerid), Players[playerid][pIP], x, y, z); CreateLog("logging", log); } } foreach (new i : Player) { if(ReviewQuiz[i] == playerid) { SendClientMessage(i, COLOR_RED, "The player you were reviewing the quiz for has disconnected."); ReviewQuiz[i] = -1; Dialog_Close(i); } if (Players[i][pSpectate] == playerid) { SpectatePlayer(i, INVALID_PLAYER_ID); SendInfoMessage(i, "%s has logged off. Spectator mode has been disabled.", ReturnNameEx(playerid, 0)); } if (Players[i][pCuffedBy] == playerid) { Players[i][pHandcuffed] = 0; Players[i][pCuffedBy] = INVALID_PLAYER_ID; SetPlayerSpecialAction(i, SPECIAL_ACTION_NONE); SendInfoMessage(i, "The handcuffs were removed as the player left the server."); } if (Players[i][pFactionOffer] == playerid) { Players[i][pFactionOffer] = INVALID_PLAYER_ID; SendInfoMessage(i, "The faction invite has expired."); } if (Players[i][pFriskOffer] == playerid) { Players[i][pFriskOffer] = INVALID_PLAYER_ID; SendInfoMessage(i, "The frisk invite has expired."); } if (Players[i][pHouseOffer] == playerid) { Players[i][pHouseOffer] = INVALID_PLAYER_ID; SendInfoMessage(i, "The house offer has expired."); } if (Players[i][pCompanyOffer] == playerid) { Players[i][pCompanyOffer] = INVALID_PLAYER_ID; SendInfoMessage(i, "The company offer has expired."); } if (Players[i][pCarOffer] == playerid) { Players[i][pCarOffer] = INVALID_PLAYER_ID; SendInfoMessage(i, "The vehicle offer has expired."); } if (Players[i][pShakeOffer] == playerid) { Players[i][pShakeOffer] = INVALID_PLAYER_ID; SendInfoMessage(i, "The handshake offer has expired."); } if (Players[i][pSetStaff] == playerid) { Players[i][pSetStaff] = INVALID_PLAYER_ID; Dialog_Close(i); } } RemoveAttachedObjects(playerid); RespawnRentalCar(playerid); ClearData(playerid); ClearReports(playerid); return 1; } public OnPlayerRequestClass(playerid, classid) { if (IsPlayerNPC(playerid)) return 1; if (Players[playerid][pID] == INVALID_ID) { new queryString[160]; format(queryString, sizeof(queryString), "SELECT BannedBy, Date, Reason FROM rp_blacklist WHERE Player = '%s' OR IP = '%s'", ReturnName(playerid), ReturnIP(playerid)); mysql_tquery(gConnection, queryString, "OnBlacklistCheck", "i", playerid); } /*AdjustMenuCamera(playerid); SyncTimeForPlayer(playerid); SetPlayerColor(playerid, COLOR_PLAYER);*/ switch(classid) { case 0: { SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682); SetPlayerFacingAngle(playerid, 100.0); SetPlayerCameraPos(playerid, 2522.4639,-1667.2499,15.0358); SetPlayerCameraLookAt(playerid, 2527.9763,-1666.6794,15.1682); PlayAnimation(playerid, "GHANDS", "GSIGN1", 4.1, 0, 0, 0, 0, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~G~(GSF)~n~ ~w~Grove Street Families", 2000, 3); SetPlayerColor(playerid, COLOR_GREEN); } case 1: { SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682); SetPlayerFacingAngle(playerid, 100.0); SetPlayerCameraPos(playerid, 2522.4639,-1667.2499,15.0358); PlayAnimation(playerid, "GHANDS", "GSIGN1", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerCameraLookAt(playerid, 2527.9763,-1666.6794,15.1682); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~G~(Sweet)~n~ ~w~Locked for~n~~r~N/A", 2000, 3); SetPlayerColor(playerid, COLOR_GREEN); } case 2: { SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682); SetPlayerFacingAngle(playerid, 100.0); SetPlayerCameraPos(playerid, 2522.4639,-1667.2499,15.0358); PlayAnimation(playerid, "GHANDS", "GSIGN1", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerCameraLookAt(playerid, 2527.9763,-1666.6794,15.1682); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~G~(Big Smoke)~n~ ~w~Locked for~n~~r~N/A", 2000, 3); SetPlayerColor(playerid, COLOR_GREEN); } case 3: { SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682); SetPlayerFacingAngle(playerid, 100.0); SetPlayerCameraPos(playerid, 2522.4639,-1667.2499,15.0358); PlayAnimation(playerid, "GHANDS", "GSIGN1", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerCameraLookAt(playerid, 2527.9763,-1666.6794,15.1682); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~G~(Ryder)~n~ ~w~Locked for~n~~r~N/A", 2000, 3); SetPlayerColor(playerid, COLOR_GREEN); } case 4: { SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682); SetPlayerFacingAngle(playerid, 100.0); SetPlayerCameraPos(playerid, 2522.4639,-1667.2499,15.0358); PlayAnimation(playerid, "GHANDS", "GSIGN1", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerCameraLookAt(playerid, 2527.9763,-1666.6794,15.1682); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~G~(CJ)~n~ ~w~Locked for~n~~r~N/A", 2000, 3); SetPlayerColor(playerid, COLOR_GREEN); } case 5: { SetPlayerPos(playerid, 2770.4014,-2015.1353,13.5547); SetPlayerFacingAngle(playerid, 46.7000); SetPlayerCameraPos(playerid, 2766.4897,-2011.0477,13.5620); SetPlayerCameraLookAt(playerid, 2770.4014,-2015.1353,13.5547); PlayAnimation(playerid, "GHANDS", "GSIGN2", 4.1, 0, 0, 0, 0, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~h~~G~(SBF)~n~ ~w~Seville Boulevard Families", 2000, 3); SetPlayerColor(playerid, 0x9DFFB6FF); } case 6: { SetPlayerPos(playerid, 915.0075,-1108.0718,24.2722); SetPlayerFacingAngle(playerid, 359.5310); SetPlayerCameraPos(playerid, 915.2412,-1104.8180,24.2969); SetPlayerCameraLookAt(playerid, 915.0075,-1108.0718,24.2722); PlayAnimation(playerid, "GHANDS", "GSIGN3", 4.1, 0, 0, 0, 0, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~G~(TDF)~n~ ~w~Temple Drive Families", 2000, 3); SetPlayerColor(playerid, COLOR_DARKGREEN); } case 7: { SetPlayerPos(playerid, 2175.5786,-1732.3136,13.5339); SetPlayerFacingAngle(playerid, 271.4185); SetPlayerCameraPos(playerid, 2179.8755,-1732.6957,13.5469); SetPlayerCameraLookAt(playerid, 2175.5786,-1732.3136,13.5339); PlayAnimation(playerid, "GHANDS", "GSIGN5", 4.1, 0, 0, 0, 0, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~P~(FYB)~n~ ~w~Front Yard Ballas", 2000, 3); SetPlayerColor(playerid, 0xAA00AAFF); } case 8: { SetPlayerPos(playerid, 2136.1011,-1391.1796,23.9992); SetPlayerFacingAngle(playerid, 39.3045); SetPlayerCameraPos(playerid, 2133.7769,-1387.9919,23.8281); SetPlayerCameraLookAt(playerid, 2136.1011,-1391.1796,23.9992); PlayAnimation(playerid, "GHANDS", "GSIGN4", 4.1, 0, 0, 0, 0, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~P~(RHB)~n~ ~w~Rollin' Heightz' Ballas", 2000, 3); SetPlayerColor(playerid, 0xAA00AAFF); } case 9: { SetPlayerPos(playerid, 1983.5040,-1157.2803,20.9567); SetPlayerFacingAngle(playerid, 90.4397); SetPlayerCameraPos(playerid, 1979.7319,-1157.1125,20.9351); SetPlayerCameraLookAt(playerid, 1983.5040,-1157.2803,20.9567); PlayAnimation(playerid, "GANGS", "INVITE_YES", 4.1, 0, 0, 0, 0, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~P~(KTB)~n~ ~w~Kilo Tray Ballas", 2000, 3); SetPlayerColor(playerid, 0xAA00AAFF); } case 10: { SetPlayerPos(playerid, 1183.7802,-1258.4663,18.8984); SetPlayerFacingAngle(playerid, 181.0539); SetPlayerCameraPos(playerid, 1183.9564,-1261.6102,18.8984); SetPlayerCameraLookAt(playerid, 1183.7802,-1258.4663,18.8984); PlayAnimation(playerid, "GANGS", "INVITE_NO", 4.1, 0, 0, 0, 0, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~P~(TDB)~n~ ~w~Temple Drive Ballas", 2000, 3); SetPlayerColor(playerid, 0xFF93FFFF); } case 11: { SetPlayerPos(playerid, 2838.1475,-2355.1714,42.7344); SetPlayerFacingAngle(playerid, 180.6836); SetPlayerCameraPos(playerid, 2838.2375,-2362.5527,42.7344); SetPlayerCameraLookAt(playerid, 2838.1475,-2355.1714,42.7344); PlayAnimation(playerid, "PYTHON", "PYTHON_RELOAD", 4.1, 0, 0, 0, 0, 0, 3); GameTextForPlayer(playerid, " ~n~~n~~n~~n~~n~~n~~n~ ~y~(GD)~n~ ~w~Gun Dealers", 2000, 3); SetPlayerColor(playerid, 0xFF7837FF); } case 12..14: { SetPlayerPos(playerid, 2352.2102,-1539.5930,33.7365); SetPlayerFacingAngle(playerid, 130.4650); SetPlayerCameraPos(playerid, 2349.5562,-1542.0067,33.7365); SetPlayerCameraLookAt(playerid, 2352.2102,-1539.5930,33.7365); PlayAnimation(playerid, "RAPPING", "RAP_A_LOOP", 4.1, 1, 0, 0, 1, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~w~(Non affiliated faction)~n~~w~HOODRATS", 2000, 3); SetPlayerColor(playerid, COLOR_GREY); } case 15: { SetPlayerPos(playerid, 1876.9720,-2036.1689,13.5391); SetPlayerFacingAngle(playerid, 224.9041); SetPlayerCameraPos(playerid, 1879.4531,-2038.6274,13.3906); SetPlayerCameraLookAt(playerid, 1876.9720,-2036.1689,13.5391); PlayAnimation(playerid, "RIOT", "RIOT_FUKU", 4.1, 0, 0, 0, 0, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~b~(VLA)~n~~w~Varrios Los Aztecas", 2000, 3); SetPlayerColor(playerid, 0x00ECECFF); } case 16: { SetPlayerPos(playerid, 2434.3467,-1325.1730,25.0269); SetPlayerFacingAngle(playerid, 267.8017); SetPlayerCameraPos(playerid, 2437.7539,-1325.1948,24.9492); SetPlayerCameraLookAt(playerid, 2434.3467,-1325.1730,25.0269); PlayAnimation(playerid, "RIOT", "RIOT_FUKU", 4.1, 0, 0, 0, 0, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~y~(V)~n~~w~Vagos", 2000, 3); SetPlayerColor(playerid, COLOR_YELLOW); } case 17: { SetPlayerPos(playerid, 300.0962,-1154.6696,81.2754); SetPlayerFacingAngle(playerid, 136.5688); SetPlayerCameraPos(playerid, 297.2060,-1157.5317,81.2754); SetPlayerCameraLookAt(playerid, 300.0962,-1154.6696,81.2754); PlayAnimation(playerid, "GANGS", "INVITE_YES", 4.1, 0, 0, 0, 0, 0, 1); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~r~(LS)~n~~w~Loco Syndicate", 2000, 3); SetPlayerColor(playerid, COLOR_RED); } case 18: { SetPlayerPos(playerid, 1543.8267,-1632.0171,13.3828); SetPlayerFacingAngle(playerid, 89.7918); SetPlayerCameraPos(playerid, 1539.7317,-1631.9980,13.3828); SetPlayerCameraLookAt(playerid, 1543.8267,-1632.0171,13.3828); GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~ ~h~~b~(LSPD)~n~~w~Los Santos Police Department", 2000, 3); SetPlayerColor(playerid, COLOR_BLUE); } } return 1; } public OnPlayerRequestSpawn(playerid) { /*if (IsPlayerNPC(playerid)) return 1; return Players[playerid][pLoggedIn];*/ if(GetPlayerSkin(playerid) == 270) //SWEET { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, MAX_PLAYER_NAME); if(strcmp(name, "[FYB]DoubleMac", false) == 0) { SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682); } else { SendClientMessage(playerid, COLOR_LIGHTGREY, " Sorry, only the user role-playing Sweet can use this skin."); return 0; } } if(GetPlayerSkin(playerid) == 269) //SWEET { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, MAX_PLAYER_NAME); if(strcmp(name, "[FYB]DoubleMac", false) == 0) { SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682); } else { SendClientMessage(playerid, COLOR_LIGHTGREY, " Sorry, only the user role-playing Big Smoke can use this skin."); return 0; } } if(GetPlayerSkin(playerid) == 271) //SWEET { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, MAX_PLAYER_NAME); if(strcmp(name, "[FYB]DoubleMac", false) == 0) { SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682); } else { SendClientMessage(playerid, COLOR_LIGHTGREY, " Sorry, only the user role-playing Ryder can use this skin."); return 0; } } if(GetPlayerSkin(playerid) == 0) //SWEET { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, MAX_PLAYER_NAME); if(strcmp(name, "[FYB]DoubleMac", false) == 0) { SetPlayerPos(playerid, 2527.9763,-1666.6794,15.1682); } else { SendClientMessage(playerid, COLOR_LIGHTGREY, " Sorry, only the user role-playing CJ can use this skin."); return 0; } } return 1; } public OnEnterExitModShop(playerid, enterexit, interiorid) { Players[playerid][pModShop] = enterexit; return 1; } /*--------------------------------------------------------------------------- Dialogs These are the dialog functions used by easyDialog. Use the Dialog: syntax to create new dialogs. ---------------------------------------------------------------------------*/ #include "core/player/dialog_phone.pwn" //Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold\nTag Resolution", "Select", "Cancel"); Dialog:ModdingMenu(playerid, response, listitem, inputtext[]) { if((response) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { for(new i = 0; i < sizeof(componentSlotNames); i ++) { if(!strcmp(componentSlotNames[i], inputtext) && GetVehicleComponentTypeCount(GetPlayerVehicleID(playerid), i) > 0) { Players[playerid][pSelected] = i; ShowModBrowseMenu(playerid); return 1; } } } else { ExitModdingShop(playerid); } return 1; } Dialog:ModdingBrowse(playerid, response, listitem, inputtext[]) { if((response) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new count, vehicleid = GetPlayerVehicleID(playerid); for(new i = MIN_COMPONENT_ID; i <= MAX_COMPONENT_ID; i ++) { if(GetVehicleComponentType(i) == Players[playerid][pSelected] && IsValidComponentForVehicle(vehicleid, i) && count++ == listitem) { Players[playerid][pModPreview] = i; Players[playerid][pOldComponent] = GetVehicleComponentInSlot(vehicleid, GetVehicleComponentType(i)); SetVehicleParamsEx(vehicleid, 0, 0, 0, 0, 0, 0, 0); AddVehicleComponent(vehicleid, Players[playerid][pModPreview]); SendFormatMessage(playerid, COLOR_LIGHTGREY, "You are previewing {33AA33}%s{CFCFCF}. Move your camera with your mouse in order to preview.", GetVehicleComponentName(i)); SendFormatMessage(playerid, COLOR_LIGHTGREY, "Press {33AA33}~k~~VEHICLE_FIREWEAPON~{CFCFCF} if you wish to confirm your purchase, or go back to the previous menu."); return 1; } } ShowModMainMenu(playerid); } else { ExitModdingShop(playerid); } return 1; } Dialog:ModdingPurchase(playerid, response, listitem, inputtext[]) { if((response) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new price = GetVehicleComponentPriceEx(Players[playerid][pModPreview]); if(PlayerCanAfford(playerid, price)) { new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)); if(vehicle >= 0) { new slot = GetVehicleComponentType(Players[playerid][pModPreview]); Vehicles[vehicle][vMods][slot] = Players[playerid][pModPreview]; SaveComponent(vehicle, slot); } RemoveMoney(playerid, price); SendFormatMessage(playerid, COLOR_WHITE, "You have purchased %s for $%i.", GetVehicleComponentName(Players[playerid][pModPreview]), price); ShowModMainMenu(playerid); Players[playerid][pModPreview] = 0; } else { CancelComponentPreview(playerid); ShowModBrowseMenu(playerid); SendErrorMessage(playerid, "You can't afford to purchase this mod."); } } else { CancelComponentPreview(playerid); ShowModBrowseMenu(playerid); } return 1; } Dialog:TagEditMenu(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pEditID]; if (response) { switch (listitem) { case 0: { EditDynamicObjectEx(playerid, EDIT_TYPE_TAG, Tags[id][tagObject], id); SendInfoMessage(playerid, "Click on the disk icon to save changes."); } case 1: { Dialog_Show(playerid, TagText, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Tag Text", "Please enter the text you'd like to set the tag to:", "Select", "Cancel"); } case 2: { Dialog_Show(playerid, TagColor, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag Color", "White\nBlack\nGrey\nBlue\nYellow\nRed\nGreen\nPurple\nOrange", "Select", "Cancel"); } case 3: { Dialog_Show(playerid, TagFontSize, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag Color", "8\n12\n14\n16\n18\n20\n22\n24\n26\n28\n30\n32\n34\n36\n38\n40", "Select", "Cancel"); } case 4: { if (!Tags[id][tagBold]) Tags[id][tagBold] = 1; else Tags[id][tagBold] = 0; UpdateTag(id); SaveTag(id); Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold: %s\nTag Resolution", "Select", "Cancel", (Tags[id][tagBold]) ? ("Yes") : ("No")); } } } return 1; } Dialog:QuizQuestion(playerid, response, listitem, inputtext[]) //tobefinished { if(response) { if(isnull(inputtext)) // Added cause of cunts spamming through quiz questions. -Grime 10/03/2017 { switch(currentQuestion[playerid]) { case 0: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 1)", "{FFFFFF}In your own words, how would you define the term roleplay?\n\nYou can make this question as simple, or complex as you'd like.\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); case 1: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 2)", "{FFFFFF}How would you define the term 'Metagaming'?\n\nYou can make this question as simple, or complex as you'd like.\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); case 2: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 3)", "{FFFFFF}How would you define the term 'Powergaming'?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); case 3: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 4)", "{FFFFFF}What is the difference, between IC and OOC?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); case 4: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 5)", "{FFFFFF}You spot a hacker in-game. What do you do?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); case 5: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 6)", "{FFFFFF}What would be an appropriate '/me' for a heavy weapon? (Shotgun, UMP, etc)\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); case 6: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 7)", "{FFFFFF}What do you do if you get DMed and no admins are online?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); case 7: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 8)", "{FFFFFF}What are the commands /report and /helpme used for?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); case 8: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 9)", "{FFFFFF}How do you roleplay a car crash scene that you get into?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); case 9: Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 10)", "{FFFFFF}Do you understand that this is a Roleplay server?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "I Understand", "Cancel"); } return 1; } switch(currentQuestion[playerid]) { case 0: { format(questionResponse[playerid][0], 500, "%s", inputtext); currentQuestion[playerid] = 1; Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 2)", "{FFFFFF}How would you define the term 'Metagaming'?\n\nYou can make this question as simple, or complex as you'd like.\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); } case 1: { format(questionResponse[playerid][1], 500, "%s", inputtext); currentQuestion[playerid] = 2; Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 3)", "{FFFFFF}How would you define the term 'Powergaming'?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); } case 2: { format(questionResponse[playerid][2], 500, "%s", inputtext); currentQuestion[playerid] = 3; Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 4)", "{FFFFFF}What is the difference, between IC and OOC?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); } case 3: { format(questionResponse[playerid][3], 500, "%s", inputtext); currentQuestion[playerid] = 4; Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 5)", "{FFFFFF}You spot a hacker in-game. What do you do?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); } case 4: { format(questionResponse[playerid][4], 500, "%s", inputtext); currentQuestion[playerid] = 5; Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 6)", "{FFFFFF}What would be an appropriate '/me' for a heavy weapon? (Shotgun, UMP, etc)\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); } case 5: { format(questionResponse[playerid][5], 500, "%s", inputtext); currentQuestion[playerid] = 6; Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 7)", "{FFFFFF}What do you do if you get DMed and no admins are online?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); } case 6: { format(questionResponse[playerid][6], 500, "%s", inputtext); currentQuestion[playerid] = 7; Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 8)", "{FFFFFF}What are the commands /report and /helpme used for?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); } case 7: { format(questionResponse[playerid][7], 500, "%s", inputtext); currentQuestion[playerid] = 8; Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 9)", "{FFFFFF}How do you roleplay a car crash scene that you get into?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "Enter", "Cancel"); } case 8: { format(questionResponse[playerid][8], 500, "%s", inputtext); currentQuestion[playerid] = 9; Dialog_Show(playerid, QuizQuestion, DIALOG_STYLE_INPUT, "{FFFFFF}Server Quiz (Question: 10)", "{FFFFFF}Do you understand that this is a Roleplay server?\n\n{FF0000}WARNING: {FFFFFF}Hitting 'Cancel' will disconnect you from the server.", "I Understand", "Cancel"); } case 9: { for(new i = 0; i != 21; i++) { SCM(playerid, COLOR_GREY, " "); } format(questionResponse[playerid][9], 500, "%s", inputtext); SCM(playerid, COLOR_LIGHTRED, "Your answers was saved. If an admin reviews them and sees you haven't answered correctly, you'll be punished."); SCM(playerid, COLOR_LIGHTRED, "You will now be spawned. Good luck!"); new targetid = -1; currentQuestion[targetid] = 0; Players[targetid][pActivated] = 1; //tobefinished ReviewQuiz[playerid] = -1; SaveAccount(targetid); currentQuestion[playerid] = 10; TogglePlayerControllable(playerid, true); format(msg, sizeof(msg), "{E09C1D}[QUIZ] %s has submitted a server quiz response (/reviewquiz %d to review it).", ReturnName(playerid), playerid); foreach (new i : Player) { if (Players[i][pSupporter] > 0 || Players[i][pAdmin] > 0 || Players[i][pVeteran] > 0) { SendClientMessage(i, -1, msg); } } } default: { } } } else { SCM(playerid, COLOR_LIGHTRED, "You've been kicked for hitting cancel."); } return 1; } CMD:quizes(playerid, params[]) { if(Players[playerid][pAdmin] > 0 || Players[playerid][pSupporter] > 0 || Players[playerid][pVeteran] > 0) { new gString[2000], tmpString[128], idIndex = 0; strcat(gString, "Index\tPlayer ID\tPlayer Name\n", sizeof gString); foreach(new i : Player) { if(currentQuestion[i] == 10) { format(tmpString, sizeof tmpString, "%i)\t[ID: %i - /reviewquiz %i]\t%s\n", idIndex, i, i, ReturnName(i)); quizIndexes[playerid][idIndex] = i; idIndex++; strcat(gString, tmpString, sizeof gString); } } if(idIndex != 0) { Dialog_Show(playerid, PlayerQuizes, DIALOG_STYLE_TABLIST_HEADERS, "Quizes", gString, "Respond", "Close"); } else SendErrorMessage(playerid, "There are no quizes left unanswered."); } return 1; } CMD:reviewquiz(playerid, params[]) { if(Players[playerid][pAdmin] > 0 || Players[playerid][pSupporter] > 0 || Players[playerid][pVeteran] > 0) { new targetid = -1; if(sscanf(params, "i", targetid)) return SendSyntaxMessage(playerid, "/reviewquiz [playerid]"); if(currentQuestion[targetid] != 10) return SendErrorMessage(playerid, "Player has not finished any quiz yet or is not working on one."); if(Players[targetid][pActivated] == 1) return SendErrorMessage(playerid, "Player already passed the quiz."); ReviewQuiz[playerid] = targetid; new regString[2000]; format(regString, sizeof regString, "{FFFFFF}Reviewing registration quiz of: %s (ID:%i)\n\n", ReturnName(targetid), targetid); for(new i=0; i < 10; i++) { new tmpString[300]; format(tmpString, sizeof tmpString, "\n{E09C1D}Question %i answer: \n\t{FFFFFF}%s", i+1, questionResponse[targetid][i]); strcat(regString, tmpString, sizeof regString); } Dialog_Show(playerid, QuizReview, DIALOG_STYLE_MSGBOX, "{FFFFFF}Quiz", regString, "Approve", "Deny"); SendAdminMessage(COLOR_RED, "Admin: %s is now reviewing %s's starter quiz.", ReturnNameEx(playerid), ReturnNameEx(targetid)); } return 1; } CMD:inform(playerid, params[]) { if(Players[playerid][pAdmin] <= 0 || Players[playerid][pSupporter] <= 0) return SendErrorMessage(playerid,"NO PERMISSION!"); new pname[MAX_PLAYER_NAME], playa = -1, amount[64], sqlid = -1; if(sscanf(params, "s[24]s[64]", pname, amount)) return SendSyntaxMessage(playerid, "/inform [playerid OR Full_Name ONLY] [Reason]"); if(IsNumeric(pname)) { if(!IsPlayerConnected(strval(pname))) return SendErrorMessage(playerid, "Player ID was not connected and logged in."); playa = strval(pname); sqlid = Players[playa][pID]; } else { sqlid = IsAccountExist(pname, playerid); if(sqlid <= 0) return SendErrorMessage(playerid, "Name was not found. Please include first name, last name and an underscore OR use there current ingame ID."); } if(sqlid == -1) return SendErrorMessage(playerid, "Name was not found. Please include first name, last name and an underscore OR use there current ingame ID."); if(sqlid == Players[playa][pID] && !IsPlayerAdmin(playerid)) return SendErrorMessage(playerid, "Cannot be yourself."); if(playa >= 0) { new reportreason[128]; format(reportreason, sizeof(reportreason), "Hello, you are being reported on the forums, the following reason(s) below:\n%s", amount); Dialog_Show(playerid, BEINGREPORTED, DIALOG_STYLE_MSGBOX, "You are being reported.", reportreason, "Close", ""); SendClientMessage(playerid, COLOR_LIGHTRED, "You have informed him/her. (Online)"); } else { foreach(new i: Player) if(sqlid == Players[playa][pID]) return SendErrorMessage(playerid, "Full_Name cannot be an online player, use the player ID instead."); static queryString[512]; format(queryString, sizeof(queryString), "UPDATE `rp_accounts` SET `BeingReported` = '1', `ReportReason` = '%s' WHERE `Username` = '%s'", amount, pname); mysql_tquery(gConnection, queryString); SendClientMessage(playerid, COLOR_LIGHTRED, "You have informed him/her. (Offline)"); } return true; } GetNameWithSpace(playerid) { new p_Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, p_Name, MAX_PLAYER_NAME); return p_Name; } Dialog:PlayerQuizes(playerid, response, listitem, inputtext[]) { new targetid = quizIndexes[playerid][listitem]; if(response) { if(currentQuestion[targetid] != 10) return SendErrorMessage(playerid, "Player has not finished any quiz yet or is not working on one."); if(Players[targetid][pActivated] == 1) return SendErrorMessage(playerid, "Player already passed the quiz."); ReviewQuiz[playerid] = targetid; new regString[2000]; format(regString, sizeof regString, "{FFFFFF}Reviewing registration quiz of: %s (ID:%i)\n\n", ReturnName(targetid), targetid); for(new i=0; i < 10; i++) { new tmpString[300]; format(tmpString, sizeof tmpString, "\n{E09C1D}Question %i answer: \n\t{FFFFFF}%s", i+1, questionResponse[targetid][i]); strcat(regString, tmpString, sizeof regString); } Dialog_Show(playerid, QuizReview, DIALOG_STYLE_MSGBOX, "{FFFFFF}Quiz", regString, "Approve", "Deny"); } else { return 1; } return 1; } Dialog:QuizReview(playerid, response, listitem, inputtext[]) { new targetid = ReviewQuiz[playerid]; if(response) { if(currentQuestion[targetid] == 10) { currentQuestion[targetid] = 0; Players[targetid][pActivated] = 1; //tobefinished ReviewQuiz[playerid] = -1; SaveAccount(targetid); format(msg, sizeof(msg), "{E09C1D}[QUIZ] %s has accepted %s's starter quiz.",GetNameWithSpace(playerid),GetNameWithSpace(targetid)); if(Players[playerid][pSupporter] > 0) { SendSupporterMessage(-1, msg); } else if(Players[playerid][pAdmin] > 0) { SendAdminMessage(-1, msg); } else if(Players[playerid][pVeteran] > 0) { SendVeteranMessage(-1, msg); } format(msg, sizeof(msg), "Staff member %s has accepted your starter quiz, you will now be spawned.",GetNameWithSpace(playerid)); SCM(targetid, COLOR_LIGHTRED, msg); SCM(targetid, COLOR_WHITE, " "); SCM(targetid, COLOR_GREEN, "Use /helpme to recieve help from any of our online moderators/admins."); SCM(targetid, COLOR_GREEN, "If you see a rules breaker, do not hesitate to /report them so an admin can deal with them."); SCM(targetid, COLOR_GREEN, "Lost? Use /showlocations to find basic locations throughout the server."); SCM(targetid, COLOR_GREEN, "Teamspeak: {FFFFFF}ts.NA.com"); SCM(targetid, COLOR_GREEN, "Website: {FFFFFF}http://www.NA.com"); SetSpawnInfo(targetid, 0, 0, 208.3268, -154.9872, 1000.5234, 180.0000, 0, 0, 0, 0, 0, 0); TogglePlayerSpectating(targetid, false); } else SendErrorMessage(playerid, "Quiz has already been answered by another staff member."); } else { Dialog_Show(playerid, QuizDeny, DIALOG_STYLE_INPUT, "{FFFFFF}Deny Quiz", "{FFFFFF}Please enter the reason to deny %s (ID: %i)'s quiz:", "Deny", "Back", GetNameWithSpace(targetid), targetid); } return 1; } Dialog:QuizDeny(playerid, response, listitem, inputtext[]) { new targetid = ReviewQuiz[playerid]; if(response && currentQuestion[targetid] == 10) { if(isnull(inputtext)) { return Dialog_Show(playerid, QuizDeny, DIALOG_STYLE_INPUT, "{FFFFFF}Deny Quiz", "{FFFFFF}Please enter the reason to deny %s (ID: %i)'s quiz:", "Deny", "Back", GetNameWithSpace(targetid), targetid); } ReviewQuiz[playerid] = -1; SendFormatMessage(targetid, COLOR_LIGHTRED, "A staff member has denied your quiz. Reason: %s", inputtext); SendFormatMessage(targetid, COLOR_LIGHTRED, "You may relog and attempt the quiz again if you wish."); format(msg, sizeof(msg), "{E09C1D}[QUIZ] %s has denied %s's starter quiz, reason: %s",GetNameWithSpace(playerid), GetNameWithSpace(targetid), inputtext); if(Players[playerid][pSupporter] > 0) { SendSupporterMessage(-1, msg); } else if(Players[playerid][pAdmin] > 0) { SendAdminMessage(-1, msg); } else if(Players[playerid][pVeteran] > 0) { SendVeteranMessage(-1, msg); } currentQuestion[targetid] = -1; // Send an admin message //tobefinished KickPlayer(targetid); } else { new str[8]; format(str, sizeof(str), "%i", targetid); cmd_reviewquiz(playerid, str); } return 1; } // Start of matical's setstation (QA TEST) Dialog:ChangeGenre(playerid, response, listitem, inputtext[]) { new vehicle = GetPlayerVehicleID(playerid); if(response) { switch(listitem) { case 0: { Dialog_Show(playerid, Urban, DIALOG_STYLE_LIST, "SubGenres:", "Hip Hop\nRap\nRaggae", "Select", "<<<"); } case 1: { Dialog_Show(playerid, Rock, DIALOG_STYLE_LIST, "SubGenres:", "Classic Rock\nPunk\nMetal", "Select", "<<<"); } case 2: { Dialog_Show(playerid, Other, DIALOG_STYLE_LIST, "SubGenres:", "C-RP\nDance\nTalk", "Select", "<<<"); } case 3: { Dialog_Show(playerid, PopGenre, DIALOG_STYLE_LIST, "SubGenres:", "Top Hits", "Select", "<<<"); } case 4: { Dialog_Show(playerid, CustomLink, DIALOG_STYLE_INPUT, "Enter Stream Link:", "Please enter the stream you wish to play:", "Submit", "<<<"); } case 5: { StopCarBoomBox(vehicle); } } } return 1; } Dialog:CustomLink(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, "Custom Stream", inputtext); } else { ShowBoomBoxStations(playerid); } return 1; } Dialog:Urban(playerid, response, listitem, inputtext[]) { if(response) { switch(listitem) { case 0: { new str[2000]; for(new x; x < sizeof(HHStations); x++) { format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, HHStations[x][boomboxUrlName]); } Dialog_Show(playerid, HipHop, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<"); return 1; } case 1: { new str[2000]; for(new x; x < sizeof(RapStations); x++) { format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, RapStations[x][boomboxUrlName]); } Dialog_Show(playerid, Rap, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<"); return 1; } case 2: { new str[2000]; for(new x; x < sizeof(RaggaeStations); x++) { format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, RaggaeStations[x][boomboxUrlName]); } Dialog_Show(playerid, Raggae, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<"); return 1; } } } else { Dialog_Show(playerid, ChangeGenre, DIALOG_STYLE_LIST, "Genres:", "URBAN\nROCK\nOTHER\nPOP\n{F2E146}CUSTOM LINK\n{F2E146}OFF - To turn off.", "Select", "<<<"); } return 1; } Dialog:Rap(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, RapStations[listitem][boomboxUrlName], RapStations[listitem][boomboxURL]); } else { Dialog_Show(playerid, Urban, DIALOG_STYLE_LIST, "SubGenres:", "Hip Hop\nRap\nRaggae", "Select", "<<<"); } return 1; } Dialog:Raggae(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, RaggaeStations[listitem][boomboxUrlName], RaggaeStations[listitem][boomboxURL]); } else { Dialog_Show(playerid, Urban, DIALOG_STYLE_LIST, "SubGenres:", "Hip Hop\nRap\nRaggae", "Select", "<<<"); } return 1; } Dialog:HipHop(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, HHStations[listitem][boomboxUrlName], HHStations[listitem][boomboxURL]); } else { Dialog_Show(playerid, Urban, DIALOG_STYLE_LIST, "SubGenres:", "Hip Hop\nRap\nRaggae", "Select", "<<<"); } return 1; } Dialog:Rock(playerid, response, listitem, inputtext[]) { if(response) { switch(listitem) { case 0: { new str[2000]; for(new x; x < sizeof(ClassicStations); x++) { format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, ClassicStations[x][boomboxUrlName]); } Dialog_Show(playerid, Classic, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<"); } case 1: { new str[2000]; for(new x; x < sizeof(PunkStations); x++) { format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, PunkStations[x][boomboxUrlName]); } Dialog_Show(playerid, Punk, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<"); } case 2: { new str[2000]; for(new x; x < sizeof(MetalStations); x++) { format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, MetalStations[x][boomboxUrlName]); } Dialog_Show(playerid, Metal, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<"); } } } else { Dialog_Show(playerid, ChangeGenre, DIALOG_STYLE_LIST, "Genres:", "URBAN\nROCK\nOTHER\nPOP\n{F2E146}CUSTOM LINK\n{F2E146}OFF - To turn off.", "Select", "<<<"); } return 1; } Dialog:Classic(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, ClassicStations[listitem][boomboxUrlName], ClassicStations[listitem][boomboxURL]); } else { Dialog_Show(playerid, Rock, DIALOG_STYLE_LIST, "SubGenres:", "Classic Rock\nPunk\nMetal", "Select", "<<<"); } return 1; } Dialog:Punk(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, PunkStations[listitem][boomboxUrlName], PunkStations[listitem][boomboxURL]); } else { Dialog_Show(playerid, Rock, DIALOG_STYLE_LIST, "SubGenres:", "Classic Rock\nPunk\nMetal", "Select", "<<<"); } return 1; } Dialog:Metal(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, MetalStations[listitem][boomboxUrlName], MetalStations[listitem][boomboxURL]); } else { Dialog_Show(playerid, Rock, DIALOG_STYLE_LIST, "SubGenres:", "Classic Rock\nPunk\nMetal", "Select", "<<<"); } return 1; } Dialog:Other(playerid, response, listitem, inputtext[]) { if(response) { switch(listitem) { case 0: { new str[2000]; for(new x; x < sizeof(DRPStations); x++) { format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, DRPStations[x][boomboxUrlName]); } Dialog_Show(playerid, DRP, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<"); } case 1: { new str[2000]; for(new x; x < sizeof(DanceStations); x++) { format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, DanceStations[x][boomboxUrlName]); } Dialog_Show(playerid, Dance, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<"); } case 2: { new str[2000]; for(new x; x < sizeof(TalkStations); x++) { format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, TalkStations[x][boomboxUrlName]); } Dialog_Show(playerid, Talk, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<"); } } } else { Dialog_Show(playerid, ChangeGenre, DIALOG_STYLE_LIST, "Genres:", "URBAN\nROCK\nOTHER\nPOP\n{F2E146}CUSTOM LINK\n{F2E146}OFF - To turn off.", "Select", "<<<"); } return 1; } Dialog:DRP(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, DRPStations[listitem][boomboxUrlName], DRPStations[listitem][boomboxURL]); } else { Dialog_Show(playerid, Other, DIALOG_STYLE_LIST, "SubGenres:", "C-RP\nDance\nTalk", "Select", "<<<"); } return 1; } Dialog:Dance(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, DanceStations[listitem][boomboxUrlName], DanceStations[listitem][boomboxURL]); } else { Dialog_Show(playerid, Other, DIALOG_STYLE_LIST, "SubGenres:", "C-RP\nDance\nTalk", "Select", "<<<"); } return 1; } Dialog:Talk(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, TalkStations[listitem][boomboxUrlName], TalkStations[listitem][boomboxURL]); } else { Dialog_Show(playerid, Other, DIALOG_STYLE_LIST, "SubGenres:", "C-RP\nDance\nTalk", "Select", "<<<"); } return 1; } Dialog:PopGenre(playerid, response, listitem, inputtext[]) { if(response) { switch(listitem) { case 0: { new str[2000]; for(new x; x < sizeof(Top40Stations); x++) { format(str, sizeof(str), "%s"EMBED_WHITE"%s\n", str, Top40Stations[x][boomboxUrlName]); } Dialog_Show(playerid, TopHits, DIALOG_STYLE_LIST, "Stations:", str, "Select", "<<<"); } } } else { Dialog_Show(playerid, ChangeGenre, DIALOG_STYLE_LIST, "Genres:", "URBAN\nROCK\nOTHER\nPOP\n{F2E146}CUSTOM LINK\n{F2E146}OFF - To turn off.", "Select", "<<<"); } return 1; } Dialog:TopHits(playerid, response, listitem, inputtext[]) { if(response) { PlayPlayerBoomBoxURL(playerid, Top40Stations[listitem][boomboxUrlName], Top40Stations[listitem][boomboxURL]); } else { Dialog_Show(playerid, PopGenre, DIALOG_STYLE_LIST, "SubGenres:", "Top Hits", "Select", "<<<"); } return 1; } // end of matical's setstation (QA TEST) Dialog:TagFontSize(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pEditID]; if (response) { switch (listitem) { case 0: { Tags[id][tagFontSize] = 8; UpdateTag(id); SaveTag(id); } case 1: { Tags[id][tagFontSize] = 12; UpdateTag(id); SaveTag(id); } case 2: { Tags[id][tagFontSize] = 14; UpdateTag(id); SaveTag(id); } case 3: { Tags[id][tagFontSize] = 16; UpdateTag(id); SaveTag(id); } case 4: { Tags[id][tagFontSize] = 18; UpdateTag(id); SaveTag(id); } case 5: { Tags[id][tagFontSize] = 20; UpdateTag(id); SaveTag(id); } case 6: { Tags[id][tagFontSize] = 22; UpdateTag(id); SaveTag(id); } case 7: { Tags[id][tagFontSize] = 24; UpdateTag(id); SaveTag(id); } case 8: { Tags[id][tagFontSize] = 26; UpdateTag(id); SaveTag(id); } case 9: { Tags[id][tagFontSize] = 28; UpdateTag(id); SaveTag(id); } case 10: { Tags[id][tagFontSize] = 30; UpdateTag(id); SaveTag(id); } case 11: { Tags[id][tagFontSize] = 32; UpdateTag(id); SaveTag(id); } case 12: { Tags[id][tagFontSize] = 34; UpdateTag(id); SaveTag(id); } case 13: { Tags[id][tagFontSize] = 36; UpdateTag(id); SaveTag(id); } case 14: { Tags[id][tagFontSize] = 38; UpdateTag(id); SaveTag(id); } case 15: { Tags[id][tagFontSize] = 40; UpdateTag(id); SaveTag(id); } } } else { Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold: %s\nTag Resolution", "Select", "Cancel", (Tags[id][tagBold]) ? ("Yes") : ("No")); } return 1; } Dialog:TagColor(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pEditID]; if (response) { switch (listitem) { case 0://white { Tags[id][tagColor] = RGBAToARGB(COLOR_WHITE); UpdateTag(id); SaveTag(id); } case 1://black { Tags[id][tagColor] = RGBAToARGB(0x000000FF); UpdateTag(id); SaveTag(id); } case 2://grey { Tags[id][tagColor] = RGBAToARGB(COLOR_GREY); UpdateTag(id); SaveTag(id); } case 3://blue { Tags[id][tagColor] = RGBAToARGB(0x6688FFFF); UpdateTag(id); SaveTag(id); } case 4://yeloe { Tags[id][tagColor] = RGBAToARGB(0xFFDD00FF); UpdateTag(id); SaveTag(id); } case 5://red { Tags[id][tagColor] = RGBAToARGB(0xFF5030FF); UpdateTag(id); SaveTag(id); } case 6://COLOR_GREEN { Tags[id][tagColor] = RGBAToARGB(0x33CC33FF); UpdateTag(id); SaveTag(id); } case 7://COLOR_PURPLE { Tags[id][tagColor] = RGBAToARGB(0xD7B6F0FF); UpdateTag(id); SaveTag(id); } case 8://COLOR_ORANGE { Tags[id][tagColor] = RGBAToARGB(0xFFC00CFF); UpdateTag(id); SaveTag(id); } }//Dialog_Show(playerid, TagColor, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag Color", "White\nBlack\nGrey\nBlue\nYellow\nRed\nGreen\nPurple\nOrange", "Select", "Cancel"); } else { Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold: %s\nTag Resolution", "Select", "Cancel", (Tags[id][tagBold]) ? ("Yes") : ("No")); } return 1; } Dialog:TagText(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pEditID]; if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, NoteSubject, DIALOG_STYLE_INPUT, "{FFFFFF}Note Subject", "Please input the subject for the note:", "Submit", "Back"); } else if (strlen(inputtext) > 64) { return Dialog_Show(playerid, NoteSubject, DIALOG_STYLE_INPUT, "{FFFFFF}Note Subject", "Please input the subject for the note:", "Submit", "Back"); } else { new text[64]; format(text, sizeof(text), "%s", inputtext); Tags[id][tagText] = text; UpdateTag(id); SaveTag(id); //strunpack(SprayTags[spray][sText], gTemporaryText[playerid], 64); //SprayTags[spray][sColor] = RGBAToARGB(Factions[Players[playerid][pFaction]][fcColor]); //strpack(gTemporaryText[playerid], inputtext, 64); //Dialog_Show(playerid, NoteText, DIALOG_STYLE_INPUT, "{FFFFFF}Note Text", "Subject:\n%s\n\nPlease input the text for this note. Use \\n for a new line and \\t for tab.", "Submit", "Cancel", inputtext); } } else { Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold: %s\nTag Resolution", "Select", "Cancel", (Tags[id][tagBold]) ? ("Yes") : ("No")); } return 1; } Dialog:SetSupporter(playerid, response, listitem, inputtext[]) { new targetid = Players[playerid][pSetStaff]; Players[playerid][pSetStaff] = INVALID_PLAYER_ID; if (response) { switch (listitem) { case 0: { Players[targetid][pSupporter] = 1; SendAdminMessage(COLOR_RED, "Admin: %s has set %s's Supporter level to Supporter.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(playerid, "You have set %s's Supporter level to Supporter.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has set your Supporter level to Supporter.", ReturnNameEx(playerid)); } case 1: { Players[targetid][pSupporter] = 2; SendAdminMessage(COLOR_RED, "Admin: %s has set %s's Supporter level to Head Supporter.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(playerid, "You have set %s's Supporter level to Head Supporter.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has set your Supporter level to Head Supporter.", ReturnNameEx(playerid)); } case 2: { Players[targetid][pSupporter] = 0; SendAdminMessage(COLOR_RED, "Admin: %s has removed %s's Supporter status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(playerid, "You have removed %s's Supporter status.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has removed your Supporter status.", ReturnNameEx(playerid)); } } } return 1; } Dialog:SetFactionMod(playerid, response, listitem, inputtext[]) { new targetid = Players[playerid][pSetStaff]; Players[playerid][pSetStaff] = INVALID_PLAYER_ID; if (response) { switch (listitem) { case 0: { Players[targetid][pFactionMod] = 1; SendAdminMessage(COLOR_RED, "Admin: %s has granted %s faction management status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(playerid, "You have granted faction management status to %s.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has granted you faction management status.", ReturnNameEx(playerid)); } case 1: { Players[targetid][pFactionMod] = 2; SendAdminMessage(COLOR_RED, "Admin: %s has granted %s head of factions status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(playerid, "You have granted head of factions status to %s.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has granted you head of factions status.", ReturnNameEx(playerid)); } case 2: { Players[targetid][pFactionMod] = 0; SendAdminMessage(COLOR_RED, "Admin: %s has revoked %s's faction management status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(playerid, "You have revoked %s's faction management status.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has revoked your faction management status.", ReturnNameEx(playerid)); } } } return 1; } Dialog:SetStaff(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, SetSupporter, DIALOG_STYLE_LIST, "{FFFFFF}Set Supporter", "Supporter\nHead Supporter\nRevoke Status", "Change", "Cancel"); } case 1: { Dialog_Show(playerid, SetFactionMod, DIALOG_STYLE_LIST, "{FFFFFF}Set Faction Mod", "Faction Mod\nHead of Factions\nRevoke Status", "Change", "Cancel"); } } } else { Players[playerid][pSetStaff] = INVALID_PLAYER_ID; } return 1; } Dialog:WalkieTalkie(playerid, response, listitem, inputtext[]) { new item = Players[playerid][pSelected]; if (response) { switch (listitem) { case 0: { if (!Inventory[playerid][item][invValue]) { return Dialog_Show(playerid, WTChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this walkie talkie:", "Submit", "Cancel"); } else if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue]) { Players[playerid][pChannel] = 0; SendInfoMessage(playerid, "This walkie talkie is no longer set as your primary one."); } else { Players[playerid][pChannel] = Inventory[playerid][item][invValue]; SendInfoMessage(playerid, "You have set this walkie talkie as your primary. Use /wt to communicate."); } } case 1: { Dialog_Show(playerid, WTChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this walkie talkie:", "Submit", "Cancel"); } } } return 1; } Dialog:WTChannel(playerid, response, listitem, inputtext[]) { new item = Players[playerid][pSelected]; if (response) { new channel; if (sscanf(inputtext, "i", channel)) { return Dialog_Show(playerid, WTChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this walkie talkie:", "Submit", "Cancel"); } else if( channel == 911 && GetPlayerFactionType(playerid) != FACTION_LEO) { return SendErrorMessage(playerid, "This is a government only frequency."); } else if (channel < 0 || channel > 9999999) { return Dialog_Show(playerid, WTChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "The channel must be between 0 and 9,999,999.\n\nPlease enter the channel to set for this walkie talkie:", "Submit", "Cancel"); } else { if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue]) { Players[playerid][pChannel] = channel; } Inventory[playerid][item][invValue] = channel; SendInfoMessage(playerid, "You have changed the channel of this walkie talkie to %i.", channel); } } return 1; } Dialog:PortableRadio(playerid, response, listitem, inputtext[]) { new item = Players[playerid][pSelected]; if (response) { switch (listitem) { case 0: { if (!Inventory[playerid][item][invValue]) { return Dialog_Show(playerid, PRChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this portable radio:", "Submit", "Cancel"); } else if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue]) { Players[playerid][pChannel] = 0; SendInfoMessage(playerid, "This portable radio is no longer set as your primary one."); } else { Players[playerid][pChannel] = Inventory[playerid][item][invValue]; SendInfoMessage(playerid, "You have set this portable radio as your primary. Use /r to communicate."); } } case 1: { Dialog_Show(playerid, PRChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this portable radio:", "Submit", "Cancel"); } } } return 1; } Dialog:PRChannel(playerid, response, listitem, inputtext[]) { new item = Players[playerid][pSelected]; if (response) { new channel; if (sscanf(inputtext, "i", channel)) { return Dialog_Show(playerid, PRChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "Please enter the channel to set for this portable radio:", "Submit", "Cancel"); } else if( channel == 911 && GetPlayerFactionType(playerid) != FACTION_LEO) { return SendErrorMessage(playerid, "This is a government only frequency."); } else if (channel < 0 || channel > 9999999) { return Dialog_Show(playerid, PRChannel, DIALOG_STYLE_INPUT, "{FFFFFF}Set Channel", "The channel must be between 0 and 9,999,999.\n\nPlease enter the channel to set for this portable radio:", "Submit", "Cancel"); } else { if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue]) { Players[playerid][pChannel] = channel; } //Inventory[playerid][item][invValue] = channel; SetItemValue(playerid, item, channel); SendInfoMessage(playerid, "You have changed the channel of this portable radio to %i.", channel); } } return 1; } Dialog:RentalPrice(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company) || !IsCompanyOwner(playerid, company)) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, RentalPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Rental Price", "Please enter the price to set for vehicle %s below:", "Submit", "Back", GetVehicleModelName(Vehicles[Players[playerid][pSelected]][vModel])); } else if (amount < 1) { return Dialog_Show(playerid, RentalPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Rental Price", "The specified price can't be below $1.\n\nPlease enter the price to set for vehicle %s below:", "Submit", "Back", GetVehicleModelName(Vehicles[Players[playerid][pSelected]][vModel])); } else { Vehicles[Players[playerid][pSelected]][vPrice] = amount; if (Vehicles[Players[playerid][pSelected]][vRenter] == INVALID_PLAYER_ID) { UpdateVehicle(Players[playerid][pSelected]); } SaveVehicle(Players[playerid][pSelected]); SendInfoMessage(playerid, "You have changed the price of %s to: %s.", GetVehicleModelName(Vehicles[Players[playerid][pSelected]][vModel]), FormatNumber(amount)); ShowRentalEditMenu(playerid, company); } } else { ShowRentalEditMenu(playerid, company); } return 1; } Dialog:RentalEdit(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company) || !IsCompanyOwner(playerid, company)) { return 0; } if (response) { Players[playerid][pSelected] = gListedItems[playerid][listitem]; Dialog_Show(playerid, RentalPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Rental Price", "Please enter the price to set for vehicle %s below:", "Submit", "Back", GetVehicleModelName(Vehicles[Players[playerid][pSelected]][vModel])); } return 1; } Dialog:RemoveItems(playerid, response, listitem, inputtext[]) { new item = gListedItems[playerid][listitem]; if (response) { new targetid = Players[playerid][pTarget]; if (Inventory[targetid][item][invExists]) { SendAdminMessage(COLOR_RED, "Admin: %s has removed a %s from %s's inventory.", ReturnNameEx(playerid, 0), GetFullItemName(targetid, item), ReturnNameEx(targetid, 0)); RemoveItemFromInventory(targetid, item); } } return 1; } Dialog:WeaponBone(playerid, response, listitem, inputtext[]) { if (response) { new slot = GetWeaponOffsetType(GetPlayerWeaponID(playerid, Players[playerid][pSelected])); listitem++; SendInfoMessage(playerid, "You have changed the bone of this weapon to %s (%i).", GetBoneName(listitem), listitem); SetWeaponOffset(playerid, slot, listitem, WeaponOffsets[playerid][slot][wOffsetX], WeaponOffsets[playerid][slot][wOffsetY], WeaponOffsets[playerid][slot][wOffsetZ], WeaponOffsets[playerid][slot][wOffsetRX], WeaponOffsets[playerid][slot][wOffsetRY], WeaponOffsets[playerid][slot][wOffsetRZ]); UpdateWeaponOffset(playerid, Players[playerid][pSelected]); ShowMenuForWeapon(playerid, Players[playerid][pSelected]); } return 1; } Dialog:AdjustWeapon(playerid, response, listitem, inputtext[]) { new weaponid = GetPlayerWeaponID(playerid, Players[playerid][pSelected]); if (!weaponid) { return 0; } if (response) { if (listitem == 0) { new string[200]; for (new i = 1; i <= 18; i ++) { strcat(string, GetBoneName(i)); strcat(string, "\n"); } Dialog_Show(playerid, WeaponBone, DIALOG_STYLE_LIST, "{FFFFFF}Select Bone", string, "Confirm", "Cancel"); } else if (listitem == 1) { if (GetPlayerWeapon(playerid) > 1) { return SendErrorMessage(playerid, "You must put the weapon away before editing it."); } else { if (Players[playerid][pSelected] == WEAPON_MELEE) { EditAttachedObjectEx(playerid, EDIT_TYPE_WEAPON, ATTACHED_SLOT_MELEE); } else if (Players[playerid][pSelected] == WEAPON_PRIMARY) { EditAttachedObjectEx(playerid, EDIT_TYPE_WEAPON, ATTACHED_SLOT_PRIMARY); } else if (Players[playerid][pSelected] == WEAPON_SECONDARY) { EditAttachedObjectEx(playerid, EDIT_TYPE_WEAPON, ATTACHED_SLOT_SECONDARY); } else if (Players[playerid][pSelected] == WEAPON_TERTIARY) { EditAttachedObjectEx(playerid, EDIT_TYPE_WEAPON, ATTACHED_SLOT_TERTIARY); } SendInfoMessage(playerid, "Click on the disk icon to save changes. Press ESC to cancel."); } } else if (listitem == 2) { new slot = GetWeaponOffsetType(weaponid); if (!IsWeaponHideable(weaponid)) { return SendErrorMessage(playerid, "You can only hide small weapons only."); } else { if (!WeaponOffsets[playerid][slot][wHidden]) { SetWeaponHidden(playerid, slot, true); SendInfoMessage(playerid, "You have hidden your %s. It is now hidden from view.", GetWeapon(weaponid)); } else { SetWeaponHidden(playerid, slot, false); SendInfoMessage(playerid, "You have shown your %s. It is no longer hidden from view.", GetWeapon(weaponid)); } UpdateWeaponOffset(playerid, Players[playerid][pSelected]); ShowMenuForWeapon(playerid, Players[playerid][pSelected]); } } } return 1; } Dialog:VehicleColor(playerid, response, listitem, inputtext[]) { new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)); if (!IsValidVehicleID(vehicle) || !GetVehicleKeys(playerid, Vehicles[vehicle][vVehicle])) { return 0; } if (response) { new color1, color2; if (sscanf(inputtext, "p<,>ii", color1, color2)) { return Dialog_Show(playerid, VehicleColor, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Colors", "Please enter the colors to apply for this vehicle below (color1, color2).\n\nExample: If you want to set your car's color to black, use '0, 0'.", "Submit", "Cancel"); } else if (!(0 <= color1 <= 255)) { return Dialog_Show(playerid, VehicleColor, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Colors", "The first color must be between 0 and 255.\n\nPlease enter the colors to apply for this vehicle below (color1, color2).\n\nExample: If you want to set your car's color to black, use '0, 0'.", "Submit", "Cancel"); } else if (!(0 <= color2 <= 255)) { return Dialog_Show(playerid, VehicleColor, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Colors", "The second color must be between 0 and 255.\n\nPlease enter the colors to apply for this vehicle below (color1, color2).\n\nExample: If you want to set your car's color to black, use '0, 0'.", "Submit", "Cancel"); } else { Vehicles[vehicle][vColor1] = color1; Vehicles[vehicle][vColor2] = color2; ChangeVehicleColor(Vehicles[vehicle][vVehicle], color1, color2); SaveVehicle(vehicle); RemoveItemValue(playerid, Players[playerid][pSelected], 1); SendInfoMessage(playerid, "You have changed the colors of this %s to %i, %i.", GetVehicleModelName(Vehicles[vehicle][vModel]), color1, color2); } } return 1; } Dialog:StereoURL(playerid, response, listitem, inputtext[]) { if (response) { if (isnull(inputtext) || strlen(inputtext) < 10) { return Dialog_Show(playerid, StereoURL, DIALOG_STYLE_INPUT, "{FFFFFF}Change URL", "Please enter the URL address of the stream you wish to play.\n\nNote: You cannot directly play .mp3 links. It must be a .pls or a .m3u link.", "Submit", "Cancel"); } else { strpack(Stereos[playerid][pStereoURL], inputtext, 255); SendInfoMessage(playerid, "You have changed the URL that this stereo will play."); ShowActionBubble(playerid, "* %s changes the radio station.", ReturnNameEx(playerid)); foreach (new i : Player) { if (Players[i][pStereoPlayerID] == playerid) { PlayAudioStreamForPlayer(i, inputtext, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ], 50.0, true); } } } } return 1; } Dialog:Stereo(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, StereoURL, DIALOG_STYLE_INPUT, "{FFFFFF}Change URL", "Please enter the URL address of the stream you wish to play.\n\nNote: You cannot directly play .mp3 links. It must be a .pls or a .m3u link.", "Submit", "Cancel"); } case 1: { PickupStereo(playerid); } } } return 1; } Dialog:PayTickets(playerid, response, listitem, inputtext[]) { if (response) { new ticket = gListedItems[playerid][listitem]; format(gExecute, sizeof(gExecute), "SELECT Amount, Date, Reason FROM rp_tickets WHERE ID = %i", ticket); mysql_tquery(gConnection, gExecute, "OnPlayerPayTicket", "ii", playerid, ticket); } return 1; } Dialog:RemoveAnote(playerid, response, listitem, inputtext[]) { if (response) { new anote = gListedItems[playerid][listitem]; format(gExecute, sizeof(gExecute), "SELECT `Issuer`, `Date`, `Reason` FROM rp_anotes WHERE ID = %i", anote); mysql_tquery(gConnection, gExecute, "OnPlayerRemoveAnote", "ii", playerid, anote); } } Dialog:VehicleMenu(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { ShowTicketList(playerid); } case 1: { new success = ShowImpoundList(playerid); if (!success) { SendErrorMessage(playerid, "You don't have any impounded vehicles to release."); } } } } return 1; } Dialog:RemoveMod(playerid, response, listitem, inputtext[]) { new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)); if (!IsValidVehicleID(vehicle) || !IsVehicleOwner(playerid, vehicle)) { return 0; } if (response) { if (!strcmp(inputtext, "Reset Color")) { Vehicles[vehicle][vColor1] = 1; Vehicles[vehicle][vColor2] = 1; SaveVehicle(vehicle); ChangeVehicleColor(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vColor1], Vehicles[vehicle][vColor2]); SendInfoMessage(playerid, "{CFCFCF}You have reset the color of this vehicle to default."); } else if (!strcmp(inputtext, "Reset Paintjob")) { Vehicles[vehicle][vPaintjob] = 10; ChangeVehiclePaintjob(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vPaintjob]); SaveVehicle(vehicle); SendInfoMessage(playerid, "{CFCFCF}You have reset the paintjob of this vehicle to default."); } else { new slot = gListedItems[playerid][listitem]; RemoveVehicleComponent(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vMods][slot]); SendInfoMessage(playerid, "{CFCFCF}You have removed a modification from this vehicle:{33AA33} %s.", GetVehicleComponentName(Vehicles[vehicle][vMods][slot])); Vehicles[vehicle][vMods][slot] = 0; SaveComponent(vehicle, slot); } } return 1; } Dialog:Origin(playerid, response, listitem, inputtext[]) { if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, Origin, DIALOG_STYLE_INPUT, "{FFFFFF}Character Origin", "Enter the place of origin your character is from:", "Submit", ""); } else if (strlen(inputtext) > 24) { return Dialog_Show(playerid, Origin, DIALOG_STYLE_INPUT, "{FFFFFF}Character Origin", "The origin needs to contain less than 24 characters.\n\nEnter the place of origin your character is from:", "Submit", ""); } else if (!IsValidOrigin(inputtext)) { return Dialog_Show(playerid, Origin, DIALOG_STYLE_INPUT, "{FFFFFF}Character Origin", "Enter the place of origin your character is from:", "Submit", ""); } else { strcpy(Players[playerid][pOrigin], inputtext, 24); if(!Players[playerid][pActivated]) { FadeScreenForPlayer(playerid, FADE_START_QUIZ); } } } return 1; } Dialog:Quiz1(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", ""); } case 1: { Dialog_Show(playerid, Quiz2, DIALOG_STYLE_INPUT, "{FFFFFF}What is the correct definition for IC?", "In Character\nIdeal Character\nIndependand Character", "Submit", ""); } case 2: { Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", ""); } } } return 1; } Dialog:Quiz2(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, Quiz3, DIALOG_STYLE_INPUT, "{FFFFFF}What does metagaming mean?", "Forcing actions onto another player\nShooting alot\nUsing OOC information in IC situations", "Submit", ""); } case 1: { Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", ""); } case 2: { Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", ""); } } } return 1; } Dialog:Quiz3(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", ""); } case 1: { Dialog_Show(playerid, Quiz1, DIALOG_STYLE_INPUT, "{FFFFFF}What does RP stand for?", "Real Play\nRole Play\nReal Person", "Submit", ""); } case 2: { //strcpy(Players[playerid][pOrigin], inputtext, 24); SetSpawnInfo(playerid, 0, 0, 208.3268, -154.9872, 1000.5234, 180.0000, 0, 0, 0, 0, 0, 0); TogglePlayerSpectating(playerid, false); } } } return 1; } Dialog:WeaponDamages(playerid, response, listitem, inputtext[]) { if (response) { new count; for(new i = 0; i < sizeof(WeaponDamages); i ++) { if(IsValidDamageWeapon(i)) { if(count++ == listitem) { Players[playerid][pSelected] = i; return Dialog_Show(playerid, SetDamage, DIALOG_STYLE_INPUT, "{FFFFFF}Set Damage", "Please enter the weapon damage to set for %s (use 0 for default).", "Submit", "Back", GetWeapon(Players[playerid][pSelected])); } } } } return 1; } Dialog:SetDamage(playerid, response, listitem, inputtext[]) { if (response) { new Float:damage; if (sscanf(inputtext, "f", damage)) { return Dialog_Show(playerid, SetDamage, DIALOG_STYLE_INPUT, "{FFFFFF}Set Damage", "Please enter the weapon damage to set for %s (use 0 for default).", "Submit", "Back", GetWeapon(Players[playerid][pSelected])); } else if (damage < 0.0 || damage > 100.0) { return Dialog_Show(playerid, SetDamage, DIALOG_STYLE_INPUT, "{FFFFFF}Set Damage", "The specified damage can't be below 0 or above 100.\n\nPlease enter the weapon damage to set for %s (use 0 for default).", "Submit", "Back", GetWeapon(Players[playerid][pSelected])); } else { new weaponid = Players[playerid][pSelected]; SetWeaponDamage(weaponid, damage); if (damage == 0.0) { SendAdminMessage(COLOR_RED, "Admin: %s has set the damage for %s to default.", ReturnNameEx(playerid, 0), GetWeapon(weaponid)); } else { SendAdminMessage(COLOR_RED, "Admin: %s has set the damage for %s to %.1f.", ReturnNameEx(playerid, 0), GetWeapon(weaponid), damage); } } } else { ShowWeaponDamageEditMenu(playerid); } return 1; } Dialog:FindLocation(playerid, response, listitem, inputtext[]) { if (response) { cmd_guide(playerid, "\1"); } return 1; } Dialog:Guide(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { SetCheckpoint(playerid, CHECKPOINT_GPS, g_StaticBuildings[BUILDING_CITYHALL][e_SpawnX], g_StaticBuildings[BUILDING_CITYHALL][e_SpawnY], g_StaticBuildings[BUILDING_CITYHALL][e_SpawnZ], 3.0); SendInfoMessage(playerid, "A waypoint has been placed at City Hall. You can acquire a job there."); } case 1: { SetCheckpoint(playerid, CHECKPOINT_GPS, g_StaticBuildings[BUILDING_DMV][e_SpawnX], g_StaticBuildings[BUILDING_DMV][e_SpawnY], g_StaticBuildings[BUILDING_DMV][e_SpawnZ], 3.0); SendInfoMessage(playerid, "A waypoint has been set to the department of motor vehicles."); } case 2: { Dialog_Show(playerid, GPS, DIALOG_STYLE_LIST, "{FFFFFF}GPS Menu", "Locate Company\nLocate House\nLocate Auto Shop\nLocate DMV\nLocate Mod Shop", "Select", "Cancel"); } case 3: { ShowFAQMenu(playerid); } } } return 1; } Dialog:Objective(playerid, response, listitem, inputtext[]) { if (response) { cmd_jobhelp(playerid, "\1"); } return 1; } Dialog:JobHelp(playerid, response, listitem, inputtext[]) { if (response) { switch (Players[playerid][pJob]) { case JOB_TRANSPORTER: { if (listitem == 0) { Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a transporter. Your objective is to deliver stock to various\ncompanies around the city.\n\nUse {88AA62}/load{A9C4E4} at the work location to start delivering goods. To deliver\nthe stock, use {88AA62}/deliver{A9C4E4} at the deliver point.", "Back", "Close"); } else if (listitem == 1) { SetCheckpoint(playerid, CHECKPOINT_GPS, 2175.3335, -2266.9937, 13.3891, 3.0); SendInfoMessage(playerid, "A waypoint has been placed at the work location."); } } case JOB_FORKLIFTER: { if (listitem == 0) { Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a forklifter. Your objective is to pickup goods and stack\nthem in the warehouse.\n\nUse {88AA62}/jobhelp{A9C4E4} and select {88AA62}Work Location{A9C4E4} to locate the warehouse.\nUse {88AA62}/work{A9C4E4} inside the forklift to begin the job.", "Back", "Close"); } else if (listitem == 1) { SetCheckpoint(playerid, CHECKPOINT_GPS, 2783.6682, -2417.8679, 13.6347, 3.0); SendInfoMessage(playerid, "A waypoint has been placed at the work location."); } } case JOB_MINER: { if (listitem == 0) { Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a miner. Your objective is to mine for several different\ntypes of rocks.\n\nUse {88AA62}/jobhelp{A9C4E4} and select {88AA62}Work Location{A9C4E4} to locate the mining place.\nUse {88AA62}/work{A9C4E4} at the rocks to begin the job.", "Back", "Close"); } else if (listitem == 1) { SetCheckpoint(playerid, CHECKPOINT_GPS, -1858.5516, -1651.3812, 26.0788, 3.0); SendInfoMessage(playerid, "A waypoint has been placed at the work location."); } } case JOB_TAXI: { if (listitem == 0) { Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a taxi driver. Your objective is to offer transportation to\npeople around the city.\n\nAll you need to do is enter a taxi and wait for passengers to\nenter your cab. The meter will turn on automatically.\nAvailable Commands: /taxiduty, /setfare, /acceptcall", "Back", "Close"); } else if (listitem == 1) { //SetCheckpoint(playerid, CHECKPOINT_GPS, 1790.9644, -1890.2183, 13.3973, 3.0); SendInfoMessage(playerid, "This job does not have a specific job location, all you need is a taxi."); } } /*case JOB_MECHANIC: { if (listitem == 0) { Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "As a mechanic your job is to service vehicles around the city.\nEnter a tow truck and wait for somebody to call. Use {88AA62}/acceptcall{A9C4E4}\nto accept the call, and {88AA62}/service{A9C4E4} to service a vehicle.", "Back", "Close"); //Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a mechanic. Your objective is to service vehicles to\nfor people around the city.\n\nAll you need to do is enter a taxi and wait for passengers to\nenter your cab. The meter will turn on automatically.", "Back", "Close"); } else if (listitem == 1) { //SetCheckpoint(playerid, CHECKPOINT_GPS, 1790.9644, -1890.2183, 13.3973, 3.0); SendInfoMessage(playerid, "This job does not have a specific location, all you need is a tow truck."); } }*/ case JOB_PIZZA: { if (listitem == 0) { Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a pizzaboy. Your objective is to deliver pizzas to residents\nto earn some quick money.\n\nUse {88AA62}/jobhelp{A9C4E4} and select {88AA62}Work Location{A9C4E4} to locate the pizza stacks.\nUse {88AA62}/work{A9C4E4} inside the pizza scooter to begin the job.", "Back", "Close"); } else if (listitem == 1) { SetCheckpoint(playerid, CHECKPOINT_GPS, 2097.8745, -1800.4648, 12.9810, 3.0); SendInfoMessage(playerid, "A waypoint has been placed at the work location."); } } case JOB_TRASHMAN: { if (listitem == 0) { Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a trashman. Your objective is to pickup trash around the\ncity and drop it off at the landfill.\n\nUse {88AA62}/jobhelp{A9C4E4} and select {88AA62}Work Location{A9C4E4} to locate the landfill.\nUse {88AA62}/work{A9C4E4} inside a garbage truck to begin the job.", "Back", "Close"); } else if (listitem == 1) { SetCheckpoint(playerid, CHECKPOINT_GPS, 2184.9795, -1976.9451, 13.5528, 3.0); SendInfoMessage(playerid, "A waypoint has been placed at the work location."); } } case JOB_MECHANIC: { if (listitem == 0) { Dialog_Show(playerid, Objective, DIALOG_STYLE_MSGBOX, "{FFFFFF}Objective", "You are a mechanic. Your objective is to respond to mechanic calls\naround the city. You use a toolbox to repair vehicles, and a\nspraycan to respray vehicles.", "Back", "Close"); } else if (listitem == 1) { SendInfoMessage(playerid, "Mechanics don't have a work location."); } } } } return 1; } Dialog:Employment(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { Players[playerid][pJob] = JOB_TRANSPORTER; SendInfoMessage(playerid, "You are now employed as a transporter. Use /jobhelp for more information."); } case 1: { Players[playerid][pJob] = JOB_FORKLIFTER; SendInfoMessage(playerid, "You are now employed as a forklifter. Use /jobhelp for more information."); } case 2: { Players[playerid][pJob] = JOB_MINER; SendInfoMessage(playerid, "You are now employed as a miner. Use /jobhelp for more information."); } case 3: { Players[playerid][pJob] = JOB_TAXI; SendInfoMessage(playerid, "You are now employed as a taxi driver. Use /jobhelp for more information."); } case 4: { Players[playerid][pJob] = JOB_PIZZA; SendInfoMessage(playerid, "You are now employed as a pizzaboy. Use /jobhelp for more information."); } case 5: { Players[playerid][pJob] = JOB_TRASHMAN; SendInfoMessage(playerid, "You are now employed as a trashman. Use /jobhelp for more information."); } case 6: { Players[playerid][pJob] = JOB_MECHANIC; SendInfoMessage(playerid, "You are now employed as a mechanic. Use /jobhelp for more information."); } } } return 1; } /* format(string, sizeof(string), "Melee Packages\t%s", (Factions[faction][fcWeaponRights][0]) ? ("Yes") : ("No")); format(string, sizeof(string), "%s\nPistol Packages\t%s", string, (Factions[faction][fcWeaponRights][1]) ? ("Yes") : ("No")); format(string, sizeof(string), "%s\nShotgun Packages\t%s", string, (Factions[faction][fcWeaponRights][2]) ? ("Yes") : ("No")); format(string, sizeof(string), "%s\nSMG Packages\t\t%s", string, (Factions[faction][fcWeaponRights][3]) ? ("Yes") : ("No")); format(string, sizeof(string), "%s\nRifle Packages\t\t%s", string, (Factions[faction][fcWeaponRights][4]) ? ("Yes") : ("No")); if(GetPlayerArmourEx(playerid) > 0.0) { return SendErrorMessage(playerid, "You have armor already."); } else { new Float:Farmor; new armor = Inventory[playerid][item][invValue]; Farmor = float(armor); SetPlayerValidArmor(playerid, Farmor); ShowActionBubble(playerid, "* %s straps on a kevlar vest.", ReturnNameEx(playerid)); RemoveItemFromInventory(playerid, item); SendInfoMessage(playerid, "You have put armor on."); } Dialog_Show(playerid, CraftWeapon, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Craft Weapon", "Weapon\tMat. Cost\nDesert Eagle\t200\nShotgun\t350\nUZI\t600\nAK-47\t1500\nRifle\t2500\nKnife\t150", "Select", "Cancel"); if (Factions[Players[playerid][pFaction]][fcWeaponRights][0]) { //format(string, sizeof(string), "Melee Weapons\n", string); strcat(string, "Melee Weapons\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][1]) { //format(string, sizeof(string), "Pistols\n", string); strcat(string, "Pistols\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][2]) { //format(string, sizeof(string), "Shotguns\n", string); strcat(string, "Shotguns\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][3]) { //format(string, sizeof(string), "Sub Machine Guns\n", string); strcat(string, "Sub Machine Guns\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][4]) { //format(string, sizeof(string), "Rifles\n", string); strcat(string, "Rifles\n"); } */ /* if (Factions[Players[playerid][pFaction]][fcWeaponRights][0]) { //format(string, sizeof(string), "Melee Weapons\n", string); strcat(string, "Melee Weapons\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][1]) { //format(string, sizeof(string), "Pistols\n", string); strcat(string, "Pistols\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][2]) { //format(string, sizeof(string), "Shotguns\n", string); strcat(string, "Shotguns\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][3]) { //format(string, sizeof(string), "Sub Machine Guns\n", string); strcat(string, "Sub Machine Guns\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][4]) { //format(string, sizeof(string), "Rifles\n", string); strcat(string, "Rifles\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][5]) { //format(string, sizeof(string), "Rifles\n", string); strcat(string, "Explosives\n"); } */ Dialog:OrderIllegal(playerid, response, listitem, inputtext[]) { if (response) { new fac = Players[playerid][pFaction]; new facr[6]; facr[0] = Factions[fac][fcWeaponRights][0]; facr[1] = Factions[fac][fcWeaponRights][1]; facr[2] = Factions[fac][fcWeaponRights][2]; facr[3] = Factions[fac][fcWeaponRights][3]; facr[4] = Factions[fac][fcWeaponRights][4]; facr[5] = Factions[fac][fcWeaponRights][5]; switch (listitem) { /*case 0: { if (!facr[0] && !facr[1] && !facr[2] && !facr[3] && !facr[4] && !facr[5]) { return SendErrorMessage(playerid, "Your faction is not allowed to order this."); } else { //SendInfoMessage(playerid, "mats"); Dialog_Show(playerid, OrderIllegal_Mats, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Order Materials", "Package\tAmount\tPrice\nSmall Package\t500 Mats\t$500\nMedium Package\t1000\t$1000\nLarge Package\t2000\t$2000", "Select", "Cancel"); } }*/ case 0: { Dialog_Show(playerid, OrderIllegal_Weps, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Order Weapons", "Package Type\tPrice\nMelee Package\t$%i\nPistol Package\t$%i\nShotgun Package\t$%i\nSMG Package\t$%i\nRifle Package\t$%i", "Submit", "Cancel", GetPackagePrice(PACKAGE_TYPE_MELEE), GetPackagePrice(PACKAGE_TYPE_PISTOLS), GetPackagePrice(PACKAGE_TYPE_SHOTGUNS), GetPackagePrice(PACKAGE_TYPE_SMGS), GetPackagePrice(PACKAGE_TYPE_RIFLES)); } case 1: { if (!Factions[fac][fcDrugRights]) { return SendErrorMessage(playerid, "Your factions is not allowed to order this."); } else { Dialog_Show(playerid, OrderIllegal_Drugs_Amt, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Order Drugs", "Type\t$/gram\nSteroids\t$200\nHeroin\t$150\nLSD\t$225\nEcstasy\t$350\nMarijuana\t$100\nCrack\t$80\nCocaine\t$500\nMethamphetamine\t$250\nPCP\t$235", "Select", "Cancel"); } } } } return 1; } Dialog:OrderIllegal_Weps(playerid, response, listitem, inputtext[]) { if (response) { new fac = Players[playerid][pFaction]; new facr[5]; facr[0] = Factions[fac][fcWeaponRights][0]; facr[1] = Factions[fac][fcWeaponRights][1]; facr[2] = Factions[fac][fcWeaponRights][2]; facr[3] = Factions[fac][fcWeaponRights][3]; facr[4] = Factions[fac][fcWeaponRights][4]; switch (listitem) { case 0: { if (!facr[0]) return SendErrorMessage(playerid, "Your faction is not privileged to order this package."); if (!PlayerCanAfford(playerid, GetPackagePrice(PACKAGE_TYPE_MELEE))) return SendErrorMessage(playerid, "You can't afford this package."); if (!IsSufficientSpace(playerid, "Melee Package")) return SendErrorMessage(playerid, "There is no more room in your inventory."); AddItemToInventory(playerid, "Melee Package"); SendInfoMessage(playerid, "You have received a Melee Package."); RemoveMoney(playerid, GetPackagePrice(PACKAGE_TYPE_MELEE)); } case 1: { if (!facr[1]) return SendErrorMessage(playerid, "Your faction is not privileged to order this package."); if (!PlayerCanAfford(playerid, GetPackagePrice(PACKAGE_TYPE_PISTOLS))) return SendErrorMessage(playerid, "You can't afford this package."); if (!IsSufficientSpace(playerid, "Pistol Package")) return SendErrorMessage(playerid, "There is no more room in your inventory."); AddItemToInventory(playerid, "Pistol Package"); SendInfoMessage(playerid, "You have received a Pistol Package."); RemoveMoney(playerid, GetPackagePrice(PACKAGE_TYPE_PISTOLS)); } case 2: { if (!facr[2]) return SendErrorMessage(playerid, "Your faction is not privileged to order this package."); if (!PlayerCanAfford(playerid, GetPackagePrice(PACKAGE_TYPE_SHOTGUNS))) return SendErrorMessage(playerid, "You can't afford this package."); if (!IsSufficientSpace(playerid, "Shotgun Package")) return SendErrorMessage(playerid, "There is no more room in your inventory."); AddItemToInventory(playerid, "Shotgun Package"); SendInfoMessage(playerid, "You have received a Shotgun Package."); RemoveMoney(playerid, GetPackagePrice(PACKAGE_TYPE_SHOTGUNS)); } case 3: { if (!facr[3]) return SendErrorMessage(playerid, "Your faction is not privileged to order this package."); if (!PlayerCanAfford(playerid, GetPackagePrice(PACKAGE_TYPE_SMGS))) return SendErrorMessage(playerid, "You can't afford this package."); if (!IsSufficientSpace(playerid, "SMG Package")) return SendErrorMessage(playerid, "There is no more room in your inventory."); AddItemToInventory(playerid, "SMG Package"); SendInfoMessage(playerid, "You have received a SMG Package."); RemoveMoney(playerid, GetPackagePrice(PACKAGE_TYPE_SMGS)); } case 4: { if (!facr[4]) return SendErrorMessage(playerid, "Your faction is not privileged to order this package."); if (!PlayerCanAfford(playerid, GetPackagePrice(PACKAGE_TYPE_RIFLES))) return SendErrorMessage(playerid, "You can't afford this package."); if (!IsSufficientSpace(playerid, "Rifle Package")) return SendErrorMessage(playerid, "There is no more room in your inventory."); AddItemToInventory(playerid, "Rifle Package"); SendInfoMessage(playerid, "You have received a Rifle Package."); RemoveMoney(playerid, GetPackagePrice(PACKAGE_TYPE_RIFLES)); } } } return 1; } /* {"Melee Package", 3014, 2, false, true}, {"Pistol Package", 3014, 3, false, true}, {"Shotgun Package", 3014, 3, false, true}, {"SMG Package", 3014, 3, false, true},6500 {"Rifle Package", 3014, 3, false, true},12500 */ Dialog:Crafting(playerid, response, listitem, inputtext[]) { if (response) { if (!strcmp(inputtext, "Melee Weapons", true)) { Dialog_Show(playerid, CraftMelee, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Melee", "Weapon\tMaterial Cost\nNightstick\t75\nKnife\t50\nKatana\t80\nChainsaw\t320", "Select", "Cancel"); } else if (!strcmp(inputtext, "Pistols", true)) { Dialog_Show(playerid, CraftPistol, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Pistols", "Weapon\tMaterial Cost\nColt 45\t250\nSilenced 45\t350\nDesert Eagle\t500", "Select", "Cancel"); } else if (!strcmp(inputtext, "Shotguns", true)) { Dialog_Show(playerid, CraftShotgun, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Shotguns", "Weapon\tMaterial Cost\nShotgun\t750\nCombat Shotgun\t1200", "Select", "Cancel"); } else if (!strcmp(inputtext, "Sub Machine Guns", true)) { Dialog_Show(playerid, CraftSMG, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Sub Machine Guns", "Weapon\tMaterial Cost\nUZI\t800\nTEC-9\t850\nMP5\t1000", "Select", "Cancel"); } else if (!strcmp(inputtext, "Rifles", true)) { Dialog_Show(playerid, CraftRifle, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Rifles", "Weapon\tMaterial Cost\nAK-47\t1250\nM4\t1500\nCountry Rifle\t1000", "Select", "Cancel"); } else if (!strcmp(inputtext, "Explosives", true)) { Dialog_Show(playerid, CraftExplosive, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Crafting - Explosives", "Weapon\tMaterial Cost\nGrenade\t500\nMolotov\t750", "Select", "Cancel"); } } return 1; } Dialog:CraftExplosive(playerid, response, listitem, inputtext[]) { if (response) { if (!strcmp(inputtext, "Grenade", true)) { new itemname[24] = "Grenade"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 500; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "Molotov", true)) { new itemname[24] = "Molotov"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 750; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } } return 1; } Dialog:CraftRifle(playerid, response, listitem, inputtext[]) { if (response) { if (!strcmp(inputtext, "AK-47", true)) { new itemname[24] = "AK-47"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 1250; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "M4", true)) { new itemname[24] = "M4"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 1500; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "Country Rifle", true)) { new itemname[24] = "Country Rifle"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 1000; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } } return 1; } Dialog:CraftSMG(playerid, response, listitem, inputtext[]) { if (response) { if (!strcmp(inputtext, "UZI", true)) { new itemname[24] = "UZI"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 800; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "TEC-9", true)) { new itemname[24] = "TEC-9"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 850; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "MP5", true)) { new itemname[24] = "MP5"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 1000; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } } return 1; } Dialog:CraftShotgun(playerid, response, listitem, inputtext[]) { if (response) { if (!strcmp(inputtext, "Shotgun", true)) { new itemname[24] = "Shotgun"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 750; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "SPAS-12", true)) { new itemname[24] = "SPAS-12"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 1200; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } } return 1; } Dialog:CraftPistol(playerid, response, listitem, inputtext[]) { if (response) { if (!strcmp(inputtext, "Colt 45", true)) { new itemname[24] = "Colt 45"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 250; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "Silenced 45", true)) { new itemname[24] = "Silenced 45"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 350; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "Desert Eagle", true)) { new itemname[24] = "Desert Eagle"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 500; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } } return 1; } Dialog:CraftMelee(playerid, response, listitem, inputtext[]) { if (response) { if (!strcmp(inputtext, "Nightstick", true)) { new itemname[24] = "Nightstick"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 75; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "Knife", true)) { new itemname[24] = "Knife"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 50; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "Katana", true)) { new itemname[24] = "Katana"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 80; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } else if (!strcmp(inputtext, "Chainsaw", true)) { new itemname[24] = "Chainsaw"; new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; new cost = 320; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < cost) { return SendErrorMessage(playerid, "You don't have %i materials.", cost); } else if (!IsSufficientSpace(playerid, itemname)) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, itemname); SendInfoMessage(playerid, "You have received a %s.", itemname); RemoveItemValue(playerid, item, cost); SetReloadAnimation(playerid, 24); } } } return 1; } Dialog:CraftWeapon(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < 200) { return SendErrorMessage(playerid, "You don't have enough materials for this."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][1]) { return SendErrorMessage(playerid, "Your faction is not allowed to craft these."); } else if (!IsSufficientSpace(playerid, "Desert Eagle")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Desert Eagle", 70); SendInfoMessage(playerid, "You have received a Desert Eagle with 70 ammo for 200 materials."); RemoveItemValue(playerid, item, 200); SetReloadAnimation(playerid, 24); } } case 1: { new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < 350) { return SendErrorMessage(playerid, "You don't have enough materials for this."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][2]) { return SendErrorMessage(playerid, "Your faction is not allowed to craft these."); } else if (!IsSufficientSpace(playerid, "Shotgun")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Shotgun", 50); SendInfoMessage(playerid, "You have received a Shotgun with 50 ammo for 350 materials."); RemoveItemValue(playerid, item, 350); SetReloadAnimation(playerid, 24); } } case 2: { new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < 600) { return SendErrorMessage(playerid, "You don't have enough materials for this."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][3]) { return SendErrorMessage(playerid, "Your faction is not allowed to craft these."); } else if (!IsSufficientSpace(playerid, "UZI")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "UZI", 100); SendInfoMessage(playerid, "You have received a UZI with 100 ammo for 600 materials."); RemoveItemValue(playerid, item, 600); SetReloadAnimation(playerid, 24); } } case 3: { new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < 1500) { return SendErrorMessage(playerid, "You don't have enough materials for this."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][4]) { return SendErrorMessage(playerid, "Your faction is not allowed to craft these."); } else if (!IsSufficientSpace(playerid, "AK-47")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "AK-47", 60); SendInfoMessage(playerid, "You have received a AK-47 with 60 ammo for 1500 materials."); RemoveItemValue(playerid, item, 1500); SetReloadAnimation(playerid, 24); } } case 4: { new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < 2500) { return SendErrorMessage(playerid, "You don't have enough materials for this."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][4]) { return SendErrorMessage(playerid, "Your faction is not allowed to craft these."); } else if (!IsSufficientSpace(playerid, "Rifle")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Rifle", 50); SendInfoMessage(playerid, "You have received a Rifle with 50 ammo for 2500 materials."); RemoveItemValue(playerid, item, 2500); SetReloadAnimation(playerid, 24); } } case 5: { new item = GetInventoryItemID(playerid, "Materials"); new amt = Inventory[playerid][item][invValue]; if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any materials."); } else if (amt < 150) { return SendErrorMessage(playerid, "You don't have enough materials for this."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][0]) { return SendErrorMessage(playerid, "Your faction is not allowed to craft these."); } else if (!IsSufficientSpace(playerid, "Knife")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { AddItemToInventory(playerid, "Knife"); SendInfoMessage(playerid, "You have received a Knife for 150 materials."); RemoveItemValue(playerid, item, 150); SetReloadAnimation(playerid, 24); } } } } return 1; } Dialog:GoodsType(playerid, response, listitem, inputtext[]) { if (response) { if (listitem == 0) { Players[playerid][pGoods] = COMPANY_STORE; } else if (listitem == 1) { Players[playerid][pGoods] = COMPANY_CLOTHES; } else if (listitem == 2) { Players[playerid][pGoods] = COMPANY_RESTAURANT; } else if (listitem == 3) { Players[playerid][pGoods] = COMPANY_PHONE; } else if (listitem == 4) { Players[playerid][pGoods] = COMPANY_GYM; } else if (listitem == 5) { Players[playerid][pGoods] = COMPANY_AMMO; } else if (listitem == 6) { Players[playerid][pGoods] = COMPANY_BAR; } ApplyAnimation(playerid, "CARRY", "liftup", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 1220, 5, 0.184000, 0.330999, 0.112999, -84.099983, -9.500001, 20.700000); SendInfoMessage(playerid, "You have selected '%s'. Press Y near the truck to load the box.", inputtext); Players[playerid][pWorking] = 1; } return 1; } Dialog:SetupConfirm(playerid, response, listitem, inputtext[]) { if (response) { Players[playerid][pSetupInfo] = 1; ApplyAnimation(playerid, "FREEWEIGHTS", "gym_free_celebrate", 4.0, 0, 0, 0, 0, 0, 1); PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); SendInfoMessage(playerid, "You have completed character setup! Your character will spawn in a moment."); SetTimerEx("SetupConfirmed", 3000, false, "i", playerid); } return 1; } Dialog:TrashbinMenu(playerid, response, listitem, inputtext[]) { new trashbin = Players[playerid][pTrashbin]; if (!IsValidTrashbinID(trashbin)) { return 0; } if (response) { if (listitem == 0) { new success = DisplayInventory(playerid); if (!success) { SendErrorMessage(playerid, "You don't have any items in your inventory."); } else { Players[playerid][pChoose] = CHOOSE_TYPE_TRASH; SendInfoMessage(playerid, "Choose an item to add to the trashbin."); } } else { new item = gListedItems[playerid][--listitem]; if (StoredItems[item][stExists]) { Players[playerid][pSelected] = item; if (GetItemInformation(StoredItems[item][stName], ITEM_INFO_STACKABLE)) { Dialog_Show(playerid, TrashAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]); } else { Dialog_Show(playerid, TrashTake, DIALOG_STYLE_MSGBOX, "{FFFFFF}Item information", "Item: %s\nWeight: %i\n\nAre you sure you want to take this item?", "Yes", "No", GetStoredItemName(item), GetItemInformation(StoredItems[item][stName], ITEM_INFO_WEIGHT)); } } else { SendErrorMessage(playerid, "Sorry! Someone else has taken this item."); } } } return 1; } Dialog:TrashAmount(playerid, response, listitem, inputtext[]) { new trashbin = Players[playerid][pTrashbin]; if (!IsValidTrashbinID(trashbin)) { return 0; } if (response) { new item = Players[playerid][pSelected]; if (StoredItems[item][stExists]) { new amount, name[MAX_ITEM_NAME]; strunpack(name, StoredItems[item][stName]); if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, TrashAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]); } else if (amount < 1 || amount > StoredItems[item][stValue]) { return Dialog_Show(playerid, TrashAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "There isn't that much of this item.\n\nItem: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]); } else { new id = AddItemToInventory(playerid, name, amount); if (id == INVALID_ID) { SendErrorMessage(playerid, "There is no more room in the trashbin."); } else { if (amount < StoredItems[item][stValue]) { format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemValue = itemValue - %i WHERE itemID = %i", amount, StoredItems[item][stID]); StoredItems[item][stValue] -= amount; } else { format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", StoredItems[item][stID]); StoredItems[item][stExists] = 0; } mysql_tquery(gConnection, gExecute); ShowTrashbinItems(playerid, trashbin); SendInfoMessage(playerid, "You have withdrawn %s (%i) from the trashbin.", name, amount); } } } } else { ShowTrashbinItems(playerid, trashbin); } return 1; } Dialog:TrashTake(playerid, response, listitem, inputtext[]) { new trashbin = Players[playerid][pTrashbin]; if (!IsValidTrashbinID(trashbin)) { return 0; } if (response) { new item = Players[playerid][pSelected]; if (StoredItems[item][stExists]) { new id = RetrieveItem(playerid, TRANSFER_FROM_TRASH, item); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no more room in your inventory."); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Taken from Trashbin', NOW())", ReturnName(playerid), GetFullItemName(playerid, id)); mysql_tquery(gConnection, gExecute); StoredItems[item][stExists] = 0; ShowActionBubble(playerid, "* %s takes an item from the trashbin.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have taken an item: %s.", GetFullItemName(playerid, id)); ShowTrashbinItems(playerid, trashbin); /*format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", StoredItems[item][stID]); mysql_tquery(gConnection, gExecute);*/ } } } else { ShowTrashbinItems(playerid, trashbin); } return 1; } Dialog:DespawnVehicle(playerid, response, listitem, inputtext[]) { if (response) { listitem = gListedItems[playerid][listitem]; if (!IsValidVehicleID(listitem) || !IsVehicleOwner(playerid, listitem) || Vehicles[listitem][vDespawned]) { return 0; } if (Vehicles[listitem][vImpound] > 0) { return SendErrorMessage(playerid, "You cannot despawn an impounded vehicle."); } if (GetVehicleDriver(Vehicles[listitem][vVehicle]) != INVALID_PLAYER_ID) { return SendErrorMessage(playerid, "The vehicle is occupied and you may not despawn it."); } if (GetVehicleHealthEx(Vehicles[listitem][vVehicle]) < 800.0) { return SendErrorMessage(playerid, "The vehicle needs to be repaired before it can be despawned."); } for (new i = 1; i < MAX_VEHICLES; i ++) { if (GetVehicleModel(i) == 525 && GetVehicleTrailer(i) == Vehicles[listitem][vVehicle]) { return SendErrorMessage(playerid, "The vehicle is currently being towed."); } } ClearVehicleObjects(Vehicles[listitem][vVehicle]); DestroyVehicleEx(Vehicles[listitem][vVehicle]); SendInfoMessage(playerid, "{CFCFCF}You have despawned your {33AA33}%s (%s).{CFCFCF} Use {33AA33}'/v spawn'{CFCFCF} to spawn it.", GetVehicleModelName(Vehicles[listitem][vModel]), Vehicles[listitem][vPlate]); Vehicles[listitem][vVehicle] = INVALID_VEHICLE_ID; Vehicles[listitem][vDespawned] = 1; SaveVehicle(listitem); } return 1; } Dialog:SpawnVehicle(playerid, response, listitem, inputtext[]) { if (response) { listitem = gListedItems[playerid][listitem]; if (!IsValidVehicleID(listitem) || !IsVehicleOwner(playerid, listitem) || !Vehicles[listitem][vDespawned]) { return 0; } if (Vehicles[listitem][vImpound] > 0) { return SendErrorMessage(playerid, "You cannot spawn an impounded vehicle."); } new count = 0; for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i) && !Vehicles[i][vDespawned]) { count++; } } if (count > GetVehicleSpawnLimit(playerid)) { return SendErrorMessage(playerid, "You can only have two vehicles spawned at one time."); } Vehicles[listitem][vDespawned] = 0; SaveVehicle(listitem); UpdateVehicle(listitem); SendInfoMessage(playerid, "{CFCFCF}You have spawned your {33AA33}%s (%s).{CFCFCF} You can find it at the place you parked it.", GetVehicleModelName(Vehicles[listitem][vModel]), Vehicles[listitem][vPlate]); } return 1; } Dialog:FindVehicle(playerid, response, listitem, inputtext[]) { if (response) { listitem = gListedItems[playerid][listitem]; if (!IsValidVehicleID(listitem) || !IsVehicleOwner(playerid, listitem)) { return 0; } if (Vehicles[listitem][vImpound] > 0) { return SendErrorMessage(playerid, "You can't track an impounded vehicle."); } else if (Vehicles[listitem][vDespawned]) { return SendErrorMessage(playerid, "You can't track a despawned vehicle."); } else { new Float:x, Float:y, Float:z; GetVehiclePos(Vehicles[listitem][vVehicle], x, y, z); SetCheckpoint(playerid, CHECKPOINT_GPS, x, y, z, 3.0); SendInfoMessage(playerid, "GPS: A waypoint has been set to the vehicle's last known location."); } } return 1; } Dialog:ReleaseCar(playerid, response, listitem, inputtext[]) { if (response) { listitem = gListedItems[playerid][listitem]; if (!IsValidVehicleID(listitem) || !IsVehicleOwner(playerid, listitem) || !Vehicles[listitem][vImpound]) { return 0; } if (!PlayerCanAfford(playerid, Vehicles[listitem][vImpound])) { return SendErrorMessage(playerid, "You can't afford to release this vehicle."); } else { RemoveMoney(playerid, Vehicles[listitem][vImpound]); SendInfoMessage(playerid, "You have paid {33CC33}%s{FFFFFF} to release your %s (%s).", FormatNumber(Vehicles[listitem][vImpound]), GetVehicleModelName(Vehicles[listitem][vModel]), Vehicles[listitem][vPlate]); Vehicles[listitem][vImpound] = 0; UpdateVehicle(listitem); SaveVehicle(listitem); } } return 1; } Dialog:SetBank(playerid, response, listitem, inputtext[]) { new targetid = Players[playerid][pSetBank]; if (response) { listitem = gListedItems[playerid][listitem]; if (!IsPlayerConnected(Players[playerid][pSetBank]) || !BankAccounts[Players[playerid][pSetBank]][listitem][bankExists]) { return 0; } else { Players[playerid][pSelected] = listitem; Dialog_Show(playerid, BankAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Set Bank Balance", "The current balance for '%s' is %s.\n\nPlease input the amount of money to set as the balance:", "Submit", "Cancel", BankAccounts[targetid][listitem][bankName], FormatNumber(BankAccounts[targetid][listitem][bankBalance])); } } return 1; } Dialog:BankAmount(playerid, response, listitem, inputtext[]) { new targetid = Players[playerid][pSetBank]; listitem = Players[playerid][pSelected]; if (!IsPlayerConnected(targetid) || !BankAccounts[targetid][listitem][bankExists]) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, BankAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Set Bank Balance", "The current balance for '%s' is %s.\n\nPlease input the amount of money to set as the balance:", "Submit", "Cancel", BankAccounts[targetid][listitem][bankName], FormatNumber(BankAccounts[targetid][listitem][bankBalance])); } else { BankAccounts[targetid][listitem][bankBalance] = amount; SaveBankAccount(targetid, listitem); SendInfoMessage(playerid, "You have set the balance of %s's bank account (%s) to %s.", ReturnNameEx(targetid, 0), BankAccounts[targetid][listitem][bankName], FormatNumber(amount)); SendAdminMessage(COLOR_RED, "Admin: %s has set %s's bank account (%s) balance to %s.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), BankAccounts[targetid][listitem][bankName], FormatNumber(amount)); } } return 1; } Dialog:ShowGuns(playerid, response, listitem, inputtext[]) { if (response) { format(gExecute, sizeof(gExecute), "SELECT gunType, gunQuantity FROM rp_crateguns WHERE gunID = %i", gListedItems[playerid][listitem]); mysql_tquery(gConnection, gExecute, "OnPlayerTakeGun", "ii", playerid, gListedItems[playerid][listitem]); } return 1; } Dialog:OrderWeapons(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { if (!PlayerCanAfford(playerid, 2500)) { return SendErrorMessage(playerid, "You have insufficient funds for the purchase."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][0]) { return SendErrorMessage(playerid, "This package is not available for your faction."); } else { RemoveMoney(playerid, 2500); Players[playerid][pPackageOrder] = PACKAGE_TYPE_MELEE; Players[playerid][pPackageType] = PACKAGE_TYPE_NONE; Players[playerid][pPackageTime] = gettime() + 5; SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder])); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch."); SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Melee Package).", ReturnNameEx(playerid, 0)); } } case 1: { if (!PlayerCanAfford(playerid, 3700)) { return SendErrorMessage(playerid, "You have insufficient funds for the purchase."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][1]) { return SendErrorMessage(playerid, "This package is not available for your faction."); } else { RemoveMoney(playerid, 3700); Players[playerid][pPackageOrder] = PACKAGE_TYPE_PISTOLS; Players[playerid][pPackageType] = PACKAGE_TYPE_NONE; Players[playerid][pPackageTime] = gettime() + 5; SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder])); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch."); SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Pistol Package).", ReturnNameEx(playerid, 0)); } } case 2: { if (!PlayerCanAfford(playerid, 8450)) { return SendErrorMessage(playerid, "You have insufficient funds for the purchase."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][2]) { return SendErrorMessage(playerid, "This package is not available for your faction."); } else { RemoveMoney(playerid, 8450); Players[playerid][pPackageOrder] = PACKAGE_TYPE_SHOTGUNS; Players[playerid][pPackageType] = PACKAGE_TYPE_NONE; Players[playerid][pPackageTime] = gettime() + 5; SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder])); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch."); SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Shotgun Package).", ReturnNameEx(playerid, 0)); } } case 3: { if (!PlayerCanAfford(playerid, 12300)) { return SendErrorMessage(playerid, "You have insufficient funds for the purchase."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][3]) { return SendErrorMessage(playerid, "This package is not available for your faction."); } else { RemoveMoney(playerid, 12300); Players[playerid][pPackageOrder] = PACKAGE_TYPE_SMGS; Players[playerid][pPackageType] = PACKAGE_TYPE_NONE; Players[playerid][pPackageTime] = gettime() + 5; SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder])); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch."); SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (SMG Package).", ReturnNameEx(playerid, 0)); } } case 4: { if (!PlayerCanAfford(playerid, 15750)) { return SendErrorMessage(playerid, "You have insufficient funds for the purchase."); } else if (!Factions[Players[playerid][pFaction]][fcWeaponRights][4]) { return SendErrorMessage(playerid, "This package is not available for your faction."); } else { RemoveMoney(playerid, 15750); Players[playerid][pPackageOrder] = PACKAGE_TYPE_RIFLES; Players[playerid][pPackageType] = PACKAGE_TYPE_NONE; Players[playerid][pPackageTime] = gettime() + 5; SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder])); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch."); SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Rifle Package).", ReturnNameEx(playerid, 0)); } } } } else { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Call back if you want to order something."); } return 1; } Dialog:OrderDrugs(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { if (!PlayerCanAfford(playerid, 4530)) { return SendErrorMessage(playerid, "You have insufficient funds for the purchase."); } else { RemoveMoney(playerid, 4530); Players[playerid][pPackageOrder] = PACKAGE_TYPE_MARIJUANA; Players[playerid][pPackageGrams] = 20; Players[playerid][pPackageTime] = gettime() + 5; SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder])); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch."); SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Marijuana Package).", ReturnNameEx(playerid, 0)); } } case 1: { if (!PlayerCanAfford(playerid, 8500)) { return SendErrorMessage(playerid, "You have insufficient funds for the purchase."); } else { RemoveMoney(playerid, 8500); Players[playerid][pPackageOrder] = PACKAGE_TYPE_COCAINE; Players[playerid][pPackageGrams] = 20; Players[playerid][pPackageTime] = gettime() + 5; SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder])); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch."); SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Cocaine Package).", ReturnNameEx(playerid, 0)); } } case 2: { if (!PlayerCanAfford(playerid, 8300)) { return SendErrorMessage(playerid, "You have insufficient funds for the purchase."); } else { RemoveMoney(playerid, 8300); Players[playerid][pPackageOrder] = PACKAGE_TYPE_HEROIN; Players[playerid][pPackageGrams] = 20; Players[playerid][pPackageTime] = gettime() + 5; SetTimerEx("PackageReady", 5000, false, "iiii", playerid, Players[playerid][pFaction], Players[playerid][pPackageOrder], GetPackagePrice(Players[playerid][pPackageOrder])); SendAdminMessage(COLOR_RED, "Admin: %s has ordered a package (Heroin Package).", ReturnNameEx(playerid, 0)); SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Alright, I'll gather up the stuff. We'll keep in touch."); } } } } else { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: Call back if you want to order something."); } return 1; } Dialog:OrderPackage(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: What type of weapon package would you like to order?"); Dialog_Show(playerid, OrderWeapons, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Order Weapons", "Type\tPrice\nMelee Package\t%s\nPistol Package\t%s\nShotgun Package\t%s\nSMG Package\t%s\nRifle Package\t%s", "Order", "Cancel", GetFactionWeaponRights(Players[playerid][pFaction], 0), GetFactionWeaponRights(Players[playerid][pFaction], 1), GetFactionWeaponRights(Players[playerid][pFaction], 2), GetFactionWeaponRights(Players[playerid][pFaction], 3), GetFactionWeaponRights(Players[playerid][pFaction], 4)); } case 1: { if (!Factions[Players[playerid][pFaction]][fcDrugRights]) { SendErrorMessage(playerid, "Your faction is not authorized to do this."); } else { SendClientMessage(playerid, COLOR_YELLOW, "(Phone) Unknown says: What type of drugs would you like to order?"); Dialog_Show(playerid, OrderDrugs, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Order Drugs", "Type\tGrams\tPrice\nMarijuana\t200g\t$2,000\nCocaine\t200g\t$4,000\nHeroin\t200g\t$6,000", "Order", "Cancel"); } } } } return 1; } Dialog:ShowFAQ(playerid, response, listitem, inputtext[]) { if (response) { ShowFAQMenu(playerid); } return 1; } Dialog:OpenGate(playerid, response, listitem, inputtext[]) { new gate = GetClosestGate(playerid); if (!IsValidGateID(gate)) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, OpenGate, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Password", "Please input the password of this gate:", "Submit", "Cancel"); } else if (strcmp(Gates[gate][gPassword], inputtext) != 0) { return Dialog_Show(playerid, OpenGate, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Password", "You have specified the incorrect password.\n\nPlease input the password of this gate:", "Submit", "Cancel"); } else { OpenGate(playerid, gate); } } return 1; } Dialog:ChangePlate(playerid, response, listitem, inputtext[]) { new id = GetVehicleID(GetPlayerVehicleID(playerid)); if (id == INVALID_ID) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, ChangePlate, DIALOG_STYLE_INPUT, "{FFFFFF}Change Plate", "Please input the plate text below. The text must not exceed 12 characters.", "Submit", "Cancel"); } else if (strlen(inputtext) > 12) { return Dialog_Show(playerid, ChangePlate, DIALOG_STYLE_INPUT, "{FFFFFF}Change Plate", "The text can't contain more than 12 characters.\n\nPlease input the plate text below. The text must not exceed 12 characters.", "Submit", "Cancel"); } else { format(gExecute, sizeof(gExecute), "SELECT vPlate FROM rp_vehicles WHERE vPlate = '%s'", mysql_escaped(inputtext)); mysql_tquery(gConnection, gExecute, "OnPlayerCheckPlate", "is", playerid, inputtext); } } return 1; } Dialog:AdminName(playerid, response, listitem, inputtext[]) { if (!Players[playerid][pAdmin]) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, AdminName, DIALOG_STYLE_INPUT, "{FFFFFF}Admin Name", "Please input the admin name that you wish to use:", "Submit", "Cancel"); } else if (strlen(inputtext) > 24) { return Dialog_Show(playerid, AdminName, DIALOG_STYLE_INPUT, "{FFFFFF}Admin Name", "Your admin name can't be above 24 characters.\n\nPlease input the admin name that you wish to use:", "Submit", "Cancel"); } else if (!IsValidName(inputtext, false)) { return Dialog_Show(playerid, AdminName, DIALOG_STYLE_INPUT, "{FFFFFF}Admin Name", "There are invalid characters in your name.\n\nPlease input the admin name that you wish to use:", "Submit", "Cancel"); } else { if (!strcmp(inputtext, "none", true)) { strcpy(Players[playerid][pAdminName], "None", 24); SaveAccount(playerid); SendInfoMessage(playerid, "You have reset your admin name."); } else { format(gExecute, sizeof(gExecute), "SELECT AdminName FROM rp_accounts WHERE Admin > 0 AND AdminName = '%s'", mysql_escaped(inputtext)); mysql_tquery(gConnection, gExecute, "OnPlayerCheckAdminName", "is", playerid, inputtext); } } } return 1; } Dialog:WeaponRights(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { Factions[faction][fcWeaponRights][listitem] = !Factions[faction][fcWeaponRights][listitem]; SaveFaction(faction); ShowWeaponRights(playerid, faction); if (Factions[faction][fcWeaponRights][listitem]) { switch (listitem) { case 0: { SendInfoMessage(playerid, "You have granted this faction permission to order melee packages."); } case 1: { SendInfoMessage(playerid, "You have granted this faction permission to order pistol packages."); } case 2: { SendInfoMessage(playerid, "You have granted this faction permission to order shotgun packages."); } case 3: { SendInfoMessage(playerid, "You have granted this faction permission to order SMG packages."); } case 4: { SendInfoMessage(playerid, "You have granted this faction permission to order rifle packages."); } } } else { switch (listitem) { case 0: { SendInfoMessage(playerid, "You have revoked this faction's permission to order melee packages."); } case 1: { SendInfoMessage(playerid, "You have revoked this faction's permission to order pistol packages."); } case 2: { SendInfoMessage(playerid, "You have revoked this faction's permission to order shotgun packages."); } case 3: { SendInfoMessage(playerid, "You have revoked this faction's permission to order SMG packages."); } case 4: { SendInfoMessage(playerid, "You have revoked this faction's permission to order rifle packages."); } } } } else { ShowFactionRights(playerid, faction); } return 1; } Dialog:FactionRights(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { switch (listitem) { case 0: { ShowWeaponRights(playerid, faction); } case 1: { Factions[faction][fcDrugRights] = !Factions[faction][fcDrugRights]; SaveFaction(faction); ShowFactionRights(playerid, faction); if (Factions[faction][fcDrugRights]) { SendInfoMessage(playerid, "You have granted drug rights for this faction. This faction can now order drugs."); } else { SendInfoMessage(playerid, "You have revoked the drug rights for this faction."); } } case 2: { Factions[faction][fcSprayRights] = !Factions[faction][fcSprayRights]; SaveFaction(faction); ShowFactionRights(playerid, faction); if (Factions[faction][fcSprayRights]) { SendInfoMessage(playerid, "You have granted spray rights for this faction. This faction can now spray tags."); } else { SendInfoMessage(playerid, "You have revoked the spray rights for this faction."); } } } } else { ShowFactionEditMenu(playerid, faction); } return 1; } Dialog:LockerEquipment(playerid, response, listitem, inputtext[]) { if(Players[playerid][pFaction] == INVALID_ID || !IsPlayerInRangeOfPoint(playerid, 5.0, Factions[Players[playerid][pFaction]][fcLockerX], Factions[Players[playerid][pFaction]][fcLockerY], Factions[Players[playerid][pFaction]][fcLockerZ])) { return 0; } if(response) { new count; for(new i = 0; i < MAX_FACTION_EQUIPMENT; i ++) { if(FactionEquipment[Players[playerid][pFaction]][i][fcItemExists] && count++ == listitem) { if(!IsSufficientSpace(playerid, FactionEquipment[Players[playerid][pFaction]][i][fcItemName])) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { if(IsItemWeapon(FactionEquipment[Players[playerid][pFaction]][i][fcItemName])) { new serial = Random(10000, 99999); new fac[32]; format(fac, sizeof(fac), "%s Armory", GetInitials(GetPlayerFactionName(playerid))); AddSerialToRegistry(serial, FactionEquipment[Players[playerid][pFaction]][i][fcItemName], ReturnName(playerid), fac); AddItemToInventory(playerid, FactionEquipment[Players[playerid][pFaction]][i][fcItemName], FactionEquipment[Players[playerid][pFaction]][i][fcItemValue], serial); } else { AddItemToInventory(playerid, FactionEquipment[Players[playerid][pFaction]][i][fcItemName], FactionEquipment[Players[playerid][pFaction]][i][fcItemValue]); } ShowLockerEquipmentMenu(playerid); if(FactionEquipment[Players[playerid][pFaction]][i][fcItemValue] > 0) SendInfoMessage(playerid, "You have received a %s (%i) from the armory.", FactionEquipment[Players[playerid][pFaction]][i][fcItemName], FactionEquipment[Players[playerid][pFaction]][i][fcItemValue]); else SendInfoMessage(playerid, "You have received a %s from the armory.", FactionEquipment[Players[playerid][pFaction]][i][fcItemName]); break; } } } } else { ShowLockerMenu(playerid); } return 1; } Dialog:LockerAccessories(playerid, response, listitem, inputtext[]) { if(Players[playerid][pFaction] == INVALID_ID || !IsPlayerInRangeOfPoint(playerid, 5.0, Factions[Players[playerid][pFaction]][fcLockerX], Factions[Players[playerid][pFaction]][fcLockerY], Factions[Players[playerid][pFaction]][fcLockerZ])) { return 0; } if(response) { new count; for(new i = 0; i < MAX_FACTION_ACCESSORIES; i ++) { if(FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryExists] && count++ == listitem) { new id = AddAccessory(playerid, FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryName], FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryModel], FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryBone], 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0); if(id == INVALID_ID) { SendErrorMessage(playerid, "Your accessory slots are full! (/accessories)"); } else { SendInfoMessage(playerid, "You have taken %s from the armory. (/accessories)", FactionAccessories[Players[playerid][pFaction]][i][fcAccessoryName]); } ShowLockerAccessoryMenu(playerid); break; } } } else { ShowLockerMenu(playerid); } return 1; } Dialog:LockerUniform(playerid, response, listitem, inputtext[]) { if (Players[playerid][pFaction] == INVALID_ID) { return 0; } if (response) { if (GetFirstUniform(Players[playerid][pFaction]) == INVALID_ID) { SendErrorMessage(playerid, "There are no uniforms setup for this faction."); } else { SetupUniformSelection(playerid); SendInfoMessage(playerid, "Use the arrow keys to browse between uniforms. Press ENTER to confirm and N to cancel."); } } return 1; } Dialog:VaultWithdraw(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_GOVERNMENT) && !IsPlayerInBank(playerid)) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, VaultWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Withdraw", "There is currently %s in the tax vault.\n\nPlease input the amount of money you would like to withdraw:", "Submit", "Cancel", FormatNumber(Server[TaxVault])); } else if (amount < 1 || amount > Server[TaxVault]) { return Dialog_Show(playerid, VaultWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Withdraw", "There isn't that much money in the vault.\n\nThere is currently %s in the tax vault.\n\nPlease input the amount of money you would like to withdraw:", "Submit", "Cancel", FormatNumber(Server[TaxVault])); } else { Server[TaxVault] -= amount; Players[playerid][pPocketMoney] += amount; SendInfoMessage(playerid, "You have withdrawn {33CC33}%s{FFFFFF} from the tax vault.", FormatNumber(amount)); AdminDutyMessage(COLOR_RED, "Admin: %s has withdrawn %s from the tax vault.", ReturnNameEx(playerid, 0), FormatNumber(amount)); SaveInformation(); } } return 1; } Dialog:VaultDeposit(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_GOVERNMENT) && !IsPlayerInBank(playerid)) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, VaultDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Deposit", "There is currently %s in the tax vault.\n\nPlease input the amount of money you would like to deposit:", "Submit", "Cancel", FormatNumber(Server[TaxVault])); } else if (amount < 1 || amount > Players[playerid][pPocketMoney]) { return Dialog_Show(playerid, VaultDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Deposit", "You don't have that much money.\n\nThere is currently %s in the tax vault.\n\nPlease input the amount of money you would like to deposit:", "Submit", "Cancel", FormatNumber(Server[TaxVault])); } else { Server[TaxVault] += amount; Players[playerid][pPocketMoney] -= amount; SendInfoMessage(playerid, "You have deposited {33CC33}%s{FFFFFF} in the tax vault.", FormatNumber(amount)); AdminDutyMessage(COLOR_RED, "Admin: %s has deposited %s in the tax vault.", ReturnNameEx(playerid, 0), FormatNumber(amount)); SaveInformation(); } } return 1; } Dialog:GovernmentVault(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_GOVERNMENT) && !IsPlayerInBank(playerid)) { return 0; } if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, VaultWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Withdraw", "There is currently %s in the tax vault.\n\nPlease input the amount of money you would like to withdraw:", "Submit", "Cancel", FormatNumber(Server[TaxVault])); } case 1: { Dialog_Show(playerid, VaultDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Vault Deposit", "There is currently %s in the tax vault.\n\nPlease input the amount of money you would like to deposit:", "Submit", "Cancel", FormatNumber(Server[TaxVault])); } } } return 1; } Dialog:Undeploy(playerid, response, listitem, inputtext[]) { new id = GetNextDeployID(); if ((id == INVALID_ID) || (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL))) { return 0; } if (response) { switch (listitem) { case 0: { new item = GetClosestDeployedItem(playerid); if (item == INVALID_ID) { SendErrorMessage(playerid, "There is no deployed item nearby."); } else if (DeployedItems[item][dpFaction] != Players[playerid][pFaction]) { SendErrorMessage(playerid, "You cannot remove items deployed by another faction."); } else { DestroyDynamicObject(DeployedItems[item][dpObject]); DeployedItems[item][dpExists] = 0; SendInfoMessage(playerid, "You have removed the nearest deployed item."); } } case 1: { for (new i = 0; i < MAX_DEPLOYED_ITEMS; i ++) { if (DeployedItems[i][dpExists] && DeployedItems[i][dpFaction] == Players[playerid][pFaction]) { DestroyDynamicObject(DeployedItems[i][dpObject]); DeployedItems[i][dpExists] = 0; } } SendInfoMessage(playerid, "You have removed all deployed items from your faction."); } } } return 1; } Dialog:Deploy(playerid, response, listitem, inputtext[]) { new id = GetNextDeployID(); if ((id == INVALID_ID) || (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL))) { return 0; } if (response) { GetPlayerPos(playerid, DeployedItems[id][dpX], DeployedItems[id][dpY], DeployedItems[id][dpZ]); GetPlayerFacingAngle(playerid, DeployedItems[id][dpA]); DeployedItems[id][dpExists] = 1; DeployedItems[id][dpFaction] = Players[playerid][pFaction]; switch (listitem) { case 0: { DeployedItems[id][dpType] = DEPLOY_TYPE_CONE; DeployedItems[id][dpObject] = CreateDynamicObject(1238, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 0.7, 0.0, 0.0, DeployedItems[id][dpA]); gPreviewDeploy[playerid] = DeployedItems[id][dpObject]; gPreviewDeployID[playerid] = id; SendInfoMessage(playerid, "You have deployed a traffic cone. Use /undeploy to remove it."); AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a traffic cone at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]); } case 1: { DeployedItems[id][dpType] = DEPLOY_TYPE_SPIKES; DeployedItems[id][dpObject] = CreateDynamicObject(2899, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 0.9, 0.0, 0.0, DeployedItems[id][dpA] + 90.0); gPreviewDeploy[playerid] = DeployedItems[id][dpObject]; gPreviewDeployID[playerid] = id; SendInfoMessage(playerid, "You have deployed a spike strip. Use /undeploy to remove it."); AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a spike strip at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]); } case 2: { DeployedItems[id][dpType] = DEPLOY_TYPE_ROADBLOCK; DeployedItems[id][dpObject] = CreateDynamicObject(979, DeployedItems[id][dpX] + (10.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (10.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] + 1.0, 0.0, 0.0, DeployedItems[id][dpA] + 180.0); gPreviewDeploy[playerid] = DeployedItems[id][dpObject]; gPreviewDeployID[playerid] = id; SendInfoMessage(playerid, "You have deployed a roadblock. Use /undeploy to remove it."); AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a roadblock at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]); } case 3: { DeployedItems[id][dpType] = DEPLOY_TYPE_FLARE; DeployedItems[id][dpObject] = CreateDynamicObject(18728, DeployedItems[id][dpX], DeployedItems[id][dpY], DeployedItems[id][dpZ] - 1.4, 0.0, 0.0, DeployedItems[id][dpA]); gPreviewDeploy[playerid] = DeployedItems[id][dpObject]; gPreviewDeployID[playerid] = id; SendInfoMessage(playerid, "You have deployed a smoke flare. Use /undeploy to remove it."); AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a smoke flare at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]); } case 4: { DeployedItems[id][dpType] = DEPLOY_TYPE_BARREL; DeployedItems[id][dpObject] = CreateDynamicObject(1237, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]); gPreviewDeploy[playerid] = DeployedItems[id][dpObject]; gPreviewDeployID[playerid] = id; SendInfoMessage(playerid, "You have deployed a round barrier. Use /undeploy to remove it."); AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a round barrier at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]); } case 5: { DeployedItems[id][dpType] = DEPLOY_TYPE_TAPE; DeployedItems[id][dpObject] = CreateDynamicObject(19834, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]); gPreviewDeploy[playerid] = DeployedItems[id][dpObject]; gPreviewDeployID[playerid] = id; SendInfoMessage(playerid, "You have deployed a strip of police tape. Use /undeploy to remove it."); AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a strip of police tape at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]); } case 6: { DeployedItems[id][dpType] = DEPLOY_TYPE_TAPE; DeployedItems[id][dpObject] = CreateDynamicObject(1282, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]); gPreviewDeploy[playerid] = DeployedItems[id][dpObject]; gPreviewDeployID[playerid] = id; SendInfoMessage(playerid, "You have deployed a small barrier. Use /undeploy to remove it."); AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a small barrier at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]); } case 7: { DeployedItems[id][dpType] = DEPLOY_TYPE_TAPE; DeployedItems[id][dpObject] = CreateDynamicObject(1425, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]); gPreviewDeploy[playerid] = DeployedItems[id][dpObject]; gPreviewDeployID[playerid] = id; SendInfoMessage(playerid, "You have deployed a detour barrier. Use /undeploy to remove it."); AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a detour barrier at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]); } case 8: { DeployedItems[id][dpType] = DEPLOY_TYPE_TAPE; DeployedItems[id][dpObject] = CreateDynamicObject(1949, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]); gPreviewDeploy[playerid] = DeployedItems[id][dpObject]; gPreviewDeployID[playerid] = id; SendInfoMessage(playerid, "You have deployed a medium barrier. Use /undeploy to remove it."); AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a medium barrier at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]); } case 9: { DeployedItems[id][dpType] = DEPLOY_TYPE_TAPE; DeployedItems[id][dpObject] = CreateDynamicObject(3091, DeployedItems[id][dpX] + (1.0 * floatsin(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpY] + (1.0 * floatcos(-DeployedItems[id][dpA], degrees)), DeployedItems[id][dpZ] - 1.0, 0.0, 0.0, DeployedItems[id][dpA]); gPreviewDeploy[playerid] = DeployedItems[id][dpObject]; gPreviewDeployID[playerid] = id; SendInfoMessage(playerid, "You have deployed a large barrier. Use /undeploy to remove it."); AdminDutyMessage(COLOR_RED, "Admin: %s has deployed a large barrier at %s.", ReturnNameEx(playerid, 0), GetPlayerZoneName(playerid)); EditDynamicObjectEx(playerid, EDIT_TYPE_DEPLOY, DeployedItems[id][dpObject]); } } } return 1; } //Dialog_Show(playerid, Deploy, DIALOG_STYLE_LIST, "{FFFFFF}Deploy Items", "Traffic cone\nSpike strips\nRoadblock\nSmoke flare\nRound barrier\nPolice Tape\nSmall Barrier\nDetour Barrier\nMedium Barrier\nLarge Barrier", "Deploy", "Cancel"); Dialog:NoteText(playerid, response, listitem, inputtext[]) { new subject[64], text[128]; if (response) { strunpack(subject, gTemporaryText[playerid]); if (isnull(inputtext)) { return Dialog_Show(playerid, NoteText, DIALOG_STYLE_INPUT, "{FFFFFF}Note Text", "Subject:\n%s\n\nPlease input the text for this note. Use \\n for a new line and \\t for tab.", "Submit", "Cancel", subject); } else { strcpy(text, inputtext); strreplace(text, "\\n", "\n"); strreplace(text, "\\t", "\t"); format(gExecute, sizeof(gExecute), "INSERT INTO rp_notes (itemID, noteSubject, noteText) VALUES(%i, '%s', '%s')", Inventory[playerid][Players[playerid][pNotebookID]][invID], mysql_escaped(subject), mysql_escaped(text)); mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "You have added a new note to your notebook."); ShowPlayerNotebook(playerid, Players[playerid][pNotebookID]); } } return 1; } Dialog:NoteSubject(playerid, response, listitem, inputtext[]) { if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, NoteSubject, DIALOG_STYLE_INPUT, "{FFFFFF}Note Subject", "Please input the subject for the note:", "Submit", "Back"); } else if (strlen(inputtext) > 64) { return Dialog_Show(playerid, NoteSubject, DIALOG_STYLE_INPUT, "{FFFFFF}Note Subject", "The subject must be under 64 characters.\n\nPlease input the subject for the note:", "Submit", "Back"); } else { strpack(gTemporaryText[playerid], inputtext, 64); Dialog_Show(playerid, NoteText, DIALOG_STYLE_INPUT, "{FFFFFF}Note Text", "Subject:\n%s\n\nPlease input the text for this note. Use \\n for a new line and \\t for tab.", "Submit", "Cancel", inputtext); } } else { ShowPlayerNotebook(playerid, Players[playerid][pNotebookID]); } return 1; } Dialog:ViewNote(playerid, response, listitem, inputtext[]) { if (response) { format(gExecute, sizeof(gExecute), "DELETE FROM rp_notes WHERE ID = %i", Players[playerid][pSelected]); mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "You have deleted the selected note."); ShowPlayerNotebook(playerid, Players[playerid][pNotebookID]); } else { ShowPlayerNotebook(playerid, Players[playerid][pNotebookID]); } return 1; } Dialog:Notebook(playerid, response, listitem, inputtext[]) { if (response) { if (listitem == 0) { Dialog_Show(playerid, NoteSubject, DIALOG_STYLE_INPUT, "{FFFFFF}Note Subject", "Please input the subject for the note:", "Submit", "Back"); } else { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_notes WHERE ID = %i", gListedItems[playerid][--listitem]); mysql_tquery(gConnection, gExecute, "OnPlayerSelectNote", "i", playerid); } } return 1; } Dialog:SetRank(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pFaction]; if (!IsValidFactionID(faction)) { return 0; } if (response) { new targetid = Players[playerid][pChangeRank]; if (!IsPlayerConnected(targetid) || Players[targetid][pFaction] != faction) { return 0; } else { Players[targetid][pFactionRank] = listitem + 1; if (Players[targetid][pFactionRank] >= Factions[faction][fcMaxRanks] - 1) { Players[targetid][pFactionLeader] = 1; } else { Players[targetid][pFactionLeader] = 0; } SendInfoMessage(playerid, "You have changed %s's rank to %s (%i).", ReturnNameEx(targetid), GetFactionRank(faction, Players[targetid][pFactionRank]), Players[targetid][pFactionRank]); SendInfoMessage(targetid, "%s has changed your rank to %s (%i).", ReturnNameEx(playerid), GetFactionRank(faction, Players[targetid][pFactionRank]), Players[targetid][pFactionRank]); } } return 1; } Dialog:GatePassword(playerid, response, listitem, inputtext[]) { new gate = Players[playerid][pSelected]; if (!IsValidGateID(gate)) { return 0; } if (response) { if (isnull(inputtext) || strlen(inputtext) > 64) { return Dialog_Show(playerid, GatePassword, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Password", "Please input the password for this gate (use 'none' to reset):", "Submit", "Back"); } else { if (!strcmp(inputtext, "none", true)) { Gates[gate][gPassword][0] = 0; } else { strcpy(Gates[gate][gPassword], inputtext, 64); } SaveGate(gate); SendInfoMessage(playerid, "You have set the password of gate %i to '%s'.", gate, inputtext); } } else { ShowGateEditMenu(playerid, gate); } return 1; } Dialog:GateFaction(playerid, response, listitem, inputtext[]) { new gate = Players[playerid][pSelected]; if (!IsValidGateID(gate)) { return 0; } if (response) { new faction; if (sscanf(inputtext, "i", faction)) { return Dialog_Show(playerid, GateFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Faction", "Please input the faction ID for this gate (use -1 to reset):", "Submit", "Back"); } else { if (faction != INVALID_ID && !IsValidFactionID(faction)) { return Dialog_Show(playerid, GateFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Faction", "You have specified an invalid faction ID.\n\nPlease input the faction ID for this gate (use -1 to reset):", "Submit", "Back"); } else { if (faction == INVALID_ID) { Gates[gate][gFactionID] = 0; SaveGate(gate); SendInfoMessage(playerid, "You have reset the faction of gate %i.", gate); } else { Gates[gate][gFactionID] = Factions[faction][fcID]; SaveGate(gate); SendInfoMessage(playerid, "You have set the faction of gate %i to %s.", gate, Factions[faction][fcName]); } } } } else { ShowGateEditMenu(playerid, gate); } return 1; } Dialog:GateSpeed(playerid, response, listitem, inputtext[]) { new gate = Players[playerid][pSelected]; if (!IsValidGateID(gate)) { return 0; } if (response) { new Float:speed; if (sscanf(inputtext, "f", speed)) { return Dialog_Show(playerid, GateSpeed, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Speed", "Please input the speed to set for this gate below:", "Submit", "Cancel"); } else if (speed < 0.0 || speed > 20.0) { return Dialog_Show(playerid, GateSpeed, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Speed", "The speed must be between 0.0 and 20.0.\n\nPlease input the speed to set for this gate below:", "Submit", "Cancel"); } else { Gates[gate][gSpeed] = speed; SaveGate(gate); SendInfoMessage(playerid, "You have set the speed of gate %i to %.1f.", gate, speed); } } else { ShowGateEditMenu(playerid, gate); } return 1; } Dialog:GateLink(playerid, response, listitem, inputtext[]) { new gate = Players[playerid][pSelected]; if (!IsValidGateID(gate)) { return 0; } if (response) { new gateid; if (sscanf(inputtext, "i", gateid)) { return Dialog_Show(playerid, GateLink, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Linker", "Please input the ID of the gate to link to this one (use -1 to reset):", "Submit", "Cancel"); } else { if (gateid != INVALID_ID && !IsValidFactionID(gateid)) { return Dialog_Show(playerid, GateLink, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Linker", "You have entered an invalid gate ID.\n\nPlease input the ID of the gate to link to this one (use -1 to reset):", "Submit", "Cancel"); } else { if (gateid == INVALID_ID) { Gates[gate][gLinkID] = 0; SaveGate(gate); SendInfoMessage(playerid, "You have reset the linked ID of gate %i.", gate); } else { Gates[gate][gLinkID] = Gates[gateid][gID]; SaveGate(gate); SendInfoMessage(playerid, "You have set the linked ID of gate %i to ID %i.", gate, gateid); } } } } else { ShowGateEditMenu(playerid, gate); } return 1; } Dialog:GateRadius(playerid, response, listitem, inputtext[]) { new gate = Players[playerid][pSelected]; if (!IsValidGateID(gate)) { return 0; } if (response) { new Float:radius; if (sscanf(inputtext, "f", radius)) { return Dialog_Show(playerid, GateRadius, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Radius", "Please input the radius to set for this gate below:", "Submit", "Cancel"); } else if (radius < 0.0 || radius > 15.0) { return Dialog_Show(playerid, GateRadius, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Radius", "The radius must be between 0.0 and 15.0.\n\nPlease input the radius to set for this gate below:", "Submit", "Cancel"); } else { Gates[gate][gRadius] = radius; SaveGate(gate); SendInfoMessage(playerid, "You have set the radius of gate %i to %.1f.", gate, radius); } } else { ShowGateEditMenu(playerid, gate); } return 1; } Dialog:EditGate(playerid, response, listitem, inputtext[]) { new gate = Players[playerid][pSelected]; if (!IsValidGateID(gate)) { return 0; } if (response) { switch (listitem) { case 0: { GetPlayerPos(playerid, Gates[gate][gSpawn][0], Gates[gate][gSpawn][1], Gates[gate][gSpawn][2]); GetPlayerFacingAngle(playerid, Gates[gate][gSpawn][5]); Gates[gate][gSpawn][3] = 0.0; Gates[gate][gSpawn][4] = 0.0; Gates[gate][gInterior] = GetPlayerInterior(playerid); Gates[gate][gWorld] = GetPlayerVirtualWorld(playerid); UpdateGate(gate); SaveGate(gate); SendAdminMessage(COLOR_RED, "Admin: %s has edited the location of gate %i.", ReturnNameEx(playerid, 0), gate); } case 1: { EditDynamicObjectEx(playerid, EDIT_TYPE_GATE, Gates[gate][gObject], gate); SendInfoMessage(playerid, "Click on the disk icon to save changes."); } case 2: { EditDynamicObjectEx(playerid, EDIT_TYPE_GATE_MOVE, Gates[gate][gObject], gate); SendInfoMessage(playerid, "Click on the disk icon to save changes."); } case 3: { Dialog_Show(playerid, GatePassword, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Password", "Please input the password to set for this gate below (use 'none' to reset):", "Submit", "Back"); } case 4: { Dialog_Show(playerid, GateFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Faction", "Please input the faction ID to set for this gate below (use -1 to reset):", "Submit", "Back"); } case 5: { Dialog_Show(playerid, GateSpeed, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Speed", "Please input the speed to set for this gate below:", "Submit", "Cancel"); } case 6: { Dialog_Show(playerid, GateRadius, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Radius", "Please input the radius to set for this gate below:", "Submit", "Cancel"); } case 7: { Dialog_Show(playerid, GateLink, DIALOG_STYLE_INPUT, "{FFFFFF}Gate Linker", "Please input the ID of the gate to link to this one (use -1 to reset):", "Submit", "Cancel"); } } } return 1; } Dialog:NewPassword(playerid, response, listitem, inputtext[]) { if (response) { static buffer[130] ; if (isnull(inputtext)) { return Dialog_Show(playerid, NewPassword, DIALOG_STYLE_INPUT, "{FFFFFF}New Password", "Please input your new password below:", "Submit", "Cancel"); } else { WP_Hash(buffer, sizeof(buffer), inputtext); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Pass = '%s' WHERE Username = '%s'", buffer, ReturnName(playerid)); mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "Your new password has been saved to your account."); } } return 1; } Dialog:ChangePassword(playerid, response, listitem, inputtext[]) { if (response) { static buffer[130] ; if (isnull(inputtext)) { return Dialog_Show(playerid, ChangePassword, DIALOG_STYLE_INPUT, "{FFFFFF}Change Password", "Please input your current account password:", "Submit", "Cancel"); } else { WP_Hash(buffer, sizeof(buffer), inputtext); format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s' AND Pass = '%s'", ReturnName(playerid), buffer); mysql_tquery(gConnection, gExecute, "OnPlayerCheckPassword", "i", playerid); } } return 1; } Dialog:UseBandage(playerid, response, listitem, inputtext[]) { if (response) { new item = Players[playerid][pSelected]; switch (listitem) { case 0: { if (!Players[playerid][pBleeding]) { SendErrorMessage(playerid, "You don't need to use this right now."); } else { Players[playerid][pBleeding] = 0; ShowActionBubble(playerid, "* %s covers their wounds with a bandage.", ReturnNameEx(playerid)); RemoveItemValue(playerid, item, 1); SendInfoMessage(playerid, "You have bandaged up your wounds."); } } case 1: { Dialog_Show(playerid, BandagePlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Bandage Player", "Please input the ID or name of the player to apply this bandage on:", "Submit", "Cancel"); } } } return 1; } Dialog:BandagePlayer(playerid, response, listitem, inputtext[]) { if (response) { new targetid, item = Players[playerid][pSelected]; if (sscanf(inputtext, "u", targetid)) { return Dialog_Show(playerid, BandagePlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Bandage Player", "Please input the ID or name of the player to apply this bandage on:", "Submit", "Cancel"); } else if (!IsPlayerConnected(targetid)) { return Dialog_Show(playerid, BandagePlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Bandage Player", "You have specified an invalid player.\n\nPlease input the ID or name of the player to apply this bandage on:", "Submit", "Cancel"); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return Dialog_Show(playerid, BandagePlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Bandage Player", "You are not in range of that player.\n\nPlease input the ID or name of the player to apply this bandage on:", "Submit", "Cancel"); } else if (!Players[targetid][pBleeding]) { return Dialog_Show(playerid, BandagePlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Bandage Player", "That player is not bleeding.\n\nPlease input the ID or name of the player to apply this bandage on:", "Submit", "Cancel"); } else { Players[targetid][pBleeding] = 0; ShowActionBubble(playerid, "* %s covers %s's wounds with a bandage.", ReturnNameEx(playerid), ReturnNameEx(targetid)); RemoveItemValue(playerid, item, 1); SendInfoMessage(playerid, "You have bandaged up %s's wounds.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has bandaged up your wounds.", ReturnNameEx(playerid)); } } return 1; } Dialog:Teleports(playerid, response, listitem, inputtext[]) { if (response) { new teleport = gListedItems[playerid][listitem]; GameTextForPlayer(playerid, Teleports[teleport][tpName], 6000, 1); SetTeleportPos(playerid, Teleports[teleport][tpX], Teleports[teleport][tpY], Teleports[teleport][tpZ], Teleports[teleport][tpA], Teleports[teleport][tpInterior], Teleports[teleport][tpWorld]); } return 1; } Dialog:StaticBuildings(playerid, response, listitem, inputtext[]) { if (response) { GameTextForPlayer(playerid, g_StaticBuildings[listitem][e_BuildingName], 6000, 1); SetTeleportPos(playerid, g_StaticBuildings[listitem][e_SpawnX], g_StaticBuildings[listitem][e_SpawnY], g_StaticBuildings[listitem][e_SpawnZ], 0.0, 0, 0); } return 1; } Dialog:Teleport(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { new success = ShowTeleportList(playerid); if (!success) { SendErrorMessage(playerid, "There are no teleports to list."); } } case 1: { static staticBuildings[sizeof(g_StaticBuildings) * 32]; if (isnull(staticBuildings)) { for (new i = 0; i < sizeof(g_StaticBuildings); i ++) { format(staticBuildings, sizeof(staticBuildings), "%s\n%s", staticBuildings, g_StaticBuildings[i][e_BuildingName]); } } Dialog_Show(playerid, StaticBuildings, DIALOG_STYLE_LIST, "{FFFFFF}Static Buildings", staticBuildings, "Teleport", "Cancel"); } case 2: { ShowInteriorList(playerid); } } } return 1; } Dialog:DeleteTeleports(playerid, response, listitem, inputtext[]) { if (response) { new teleport = gListedItems[playerid][listitem]; if (Teleports[teleport][tpExists]) { format(gExecute, sizeof(gExecute), "DELETE FROM rp_teleports WHERE tpID = %i", Teleports[teleport][tpID]); mysql_tquery(gConnection, gExecute); Teleports[teleport][tpExists] = 0; SendInfoMessage(playerid, "You have deleted teleport %s.", Teleports[teleport][tpName]); } } return 1; } Dialog:MedicEquipment(playerid, response, listitem, inputtext[]) { /*if (!IsPlayerInRangeOfLocker(playerid)) { return 0; }*/ if (response) { switch (listitem) { case 0: { if (!IsSufficientSpace(playerid, "Bandages")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Bandages", 10); SendInfoMessage(playerid, "You have taken a pack of 10 bandages from the locker."); } } case 1: { if (!IsSufficientSpace(playerid, "Medical Kit")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Medical Kit"); SendInfoMessage(playerid, "You have taken a medical kit from the locker."); } } case 2: { if (GetPlayerArmourEx(playerid) > 50.0) { SendErrorMessage(playerid, "You are already wearing armor."); } else { ShowLockerEquipmentMenu(playerid); SetPlayerValidArmor(playerid, 50.0); SendInfoMessage(playerid, "You have received a kevlar vest from the armory."); } } case 3: { if (!IsSufficientSpace(playerid, "Fire Extinguisher")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Fire Extinguisher", 2000); SendInfoMessage(playerid, "You have taken a fire extinguisher from the locker."); } } case 4: { if (!IsSufficientSpace(playerid, "Painkillers")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Painkillers", 10); SendInfoMessage(playerid, "You have received a bottle of painkillers from the locker."); } } case 5: { if (!IsSufficientSpace(playerid, "Pepper Spray")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Pepper Spray", 2000); SendInfoMessage(playerid, "You have received a can of pepper spray from the armory."); } } case 6: { if (!IsSufficientSpace(playerid, "Portable Radio")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Portable Radio"); SendInfoMessage(playerid, "You have received a can of pepper spray from the armory."); } } } } else { ShowLockerMenu(playerid); } return 1; } Dialog:LEOClothes(playerid, response, listitem, inputtext[]) { if(response) { switch(listitem) { case 0: { if(HasAttachedObject(playerid, 19773)) return SCM(playerid, COLOR_LIGHTRED, "You already have a Holster!"); for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, 19773, 8, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF); EditAttachedObject(playerid, i); PoliceObjects[playerid][i] = 19773; SetIntVar(playerid, "EditingPolice", 1); } } } case 1: { if(HasAttachedObject(playerid, 18636)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat."); for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, 18636, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF); EditAttachedObject(playerid, i); PoliceObjects[playerid][i] = 18636; SetIntVar(playerid, "EditingPolice", 1); return 1; } } } case 2: { if(HasAttachedObject(playerid, 19099)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat."); for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, 19099, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF); EditAttachedObject(playerid, i); PoliceObjects[playerid][i] = 19099; SetIntVar(playerid, "EditingPolice", 1); return 1; } } } case 3: { if(HasAttachedObject(playerid, 19100)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat."); for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, 19100, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF); EditAttachedObject(playerid, i); PoliceObjects[playerid][i] = 19100; SetIntVar(playerid, "EditingPolice", 1); return 1; } } } case 4: { if(HasAttachedObject(playerid, 19161)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat."); for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, 19161, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF); EditAttachedObject(playerid, i); PoliceObjects[playerid][i] = 19161; SetIntVar(playerid, "EditingPolice", 1); return 1; } } } case 5: { if(HasAttachedObject(playerid, 19162)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat."); for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, 19162, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF); EditAttachedObject(playerid, i); PoliceObjects[playerid][i] = 19162; SetIntVar(playerid, "EditingPolice", 1); return 1; } } } case 6: { if(HasAttachedObject(playerid, 19521)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat."); for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, 19521, 2, 0.152, 0.0, -0.01, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0xFFFFFFFF); EditAttachedObject(playerid, i); PoliceObjects[playerid][i] = 19521; SetIntVar(playerid, "EditingPolice", 1); return 1; } } } case 7: { if(HasAttachedObject(playerid, 19141)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat."); for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, 19141, 1, 0.071999, 0.02, 0.0, 0.0, 0.0, 0.0, 0.881, 1.0, 0.719999); EditAttachedObject(playerid, i); PoliceObjects[playerid][i] = 19141; SetIntVar(playerid, "EditingPolice", 1); return 1; } } } case 8: { if(HasAttachedObject(playerid, 19142)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat."); for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, 19142, 1, 0.071999, 0.02, 0.0, 0.0, 0.0, 0.0, 0.881, 1.0, 0.719999); EditAttachedObject(playerid, i); PoliceObjects[playerid][i] = 19142; SetIntVar(playerid, "EditingPolice", 1); return 1; } } } case 9: { if(HasAttachedObject(playerid, 18637)) return SCM(playerid, COLOR_LIGHTRED, "You already have this hat."); for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(!IsPlayerAttachedObjectSlotUsed(playerid, i)) { SetPlayerAttachedObject(playerid, i, 18637, 6, 0.071999, 0.02, 0.0, 0.0, 0.0, 0.0, 0.881, 1.0, 0.719999); EditAttachedObject(playerid, i); PoliceObjects[playerid][i] = 18637; SetIntVar(playerid, "EditingPolice", 1); return 1; } } } case 10: { for(new i = 0; i < MAX_PLAYER_ATTACHED_OBJECTS; i++) { if(IsPlayerAttachedObjectSlotUsed(playerid, i)) { RemovePlayerAttachedObject(playerid, i); PoliceObjects[playerid][i] = INVALID_OBJECT_ID; } } } } } return 1; } Dialog:PoliceEquipment(playerid, response, listitem, inputtext[]) { /*if (!IsPlayerInRangeOfLocker(playerid)) { return 0; }*/ if (response) { switch (listitem) { case 0: { if (!IsSufficientSpace(playerid, "Medical Kit")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Medical Kit"); SendInfoMessage(playerid, "You have received a medical kit from the armory."); } } /*case 1: { if (GetPlayerArmourEx(playerid) > 99.0) { SendErrorMessage(playerid, "You are already wearing armor."); } else { ShowLockerEquipmentMenu(playerid); SetPlayerValidArmor(playerid, 99.0); SendInfoMessage(playerid, "You have received a kevlar vest from the armory."); } }*/ case 1: { if (!IsSufficientSpace(playerid, "Armor")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else if(GetInventoryItemID(playerid, "Armor") != INVALID_ID) { return SendErrorMessage(playerid, "You already have Armor."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Armor", 100); SendInfoMessage(playerid, "You have received armor from the armory."); } } case 2: { if (!IsSufficientSpace(playerid, "Nightstick")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else if(GetInventoryItemID(playerid, "Nightstick") != INVALID_ID) { return SendErrorMessage(playerid, "You already have a Nightstick."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Nightstick"); SendInfoMessage(playerid, "You have received a nightstick from the armory."); } } case 3: { if (!IsSufficientSpace(playerid, "Pepper Spray")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else if(GetInventoryItemID(playerid, "Pepper Spray") != INVALID_ID) { return SendErrorMessage(playerid, "You already have a Pepper Spray"); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Pepper Spray", 2000); SendInfoMessage(playerid, "You have received a can of pepper spray from the armory."); } } case 4: { if (!IsSufficientSpace(playerid, "Desert Eagle")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else if(GetInventoryItemID(playerid, "Desert Eagle") != INVALID_ID) { return SendErrorMessage(playerid, "You already have a Desert Eagle."); } else { new serial = Random(10000, 99999); new fac[32]; format(fac,sizeof(fac),"%s Armory",GetInitials(GetPlayerFactionName(playerid))); ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Desert Eagle", 100, serial); AddSerialToRegistry(serial, "Desert Eagle", ReturnName(playerid), fac); SendInfoMessage(playerid, "You have received a Desert Eagle with 100 ammo from the armory."); } } case 5: { if (!IsSufficientSpace(playerid, "Shotgun")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else if(GetInventoryItemID(playerid, "Shotgun") != INVALID_ID) { return SendErrorMessage(playerid, "You already have a Shotgun."); } else { new serial = Random(10000, 99999); new fac[32]; format(fac,sizeof(fac),"%s Armory",GetInitials(GetPlayerFactionName(playerid))); ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Shotgun", 75, serial); AddSerialToRegistry(serial, "Shotgun", ReturnName(playerid), fac); SendInfoMessage(playerid, "You have received a Shotgun with 75 ammo from the armory."); } } case 6: { if (!IsSufficientSpace(playerid, "MP5")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else if(GetInventoryItemID(playerid, "MP5") != INVALID_ID) { return SendErrorMessage(playerid, "You already have a MP5."); } else { new serial = Random(10000, 99999); new fac[32]; format(fac,sizeof(fac),"%s Armory",GetInitials(GetPlayerFactionName(playerid))); ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "MP5", 180, serial); AddSerialToRegistry(serial, "MP5", ReturnName(playerid), fac); SendInfoMessage(playerid, "You have received a MP5 with 180 ammo from the armory."); } } case 7: { if (!IsSufficientSpace(playerid, "M16")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else if(GetInventoryItemID(playerid, "M16") != INVALID_ID) { return SendErrorMessage(playerid, "You already have a M16."); } else { new serial = Random(10000, 99999); new fac[32]; format(fac,sizeof(fac),"%s Armory",GetInitials(GetPlayerFactionName(playerid))); ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "M16", 250, serial); AddSerialToRegistry(serial, "M16", ReturnName(playerid), fac); SendInfoMessage(playerid, "You have received a M4 with 250 ammo from the armory."); } } case 8: { if (!IsSufficientSpace(playerid, "Sniper Rifle")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else if(GetInventoryItemID(playerid, "Sniper Rifle") != INVALID_ID) { return SendErrorMessage(playerid, "You already have a Sniper Rifle."); } else { new serial = Random(10000, 99999); new fac[32]; format(fac,sizeof(fac),"%s Armory",GetInitials(GetPlayerFactionName(playerid))); ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Sniper Rifle", 75, serial); AddSerialToRegistry(serial, "Sniper Rifle", ReturnName(playerid), fac); SendInfoMessage(playerid, "You have received a Sniper with 75 ammo from the armory."); } } case 9: { if (!IsSufficientSpace(playerid, "Portable Radio")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid,"Portable Radio", 0); SendInfoMessage(playerid, "You have received a portable radio from the armory."); } } case 10: { if (!IsSufficientSpace(playerid, "Cuffs")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid,"Cuffs"); SendInfoMessage(playerid, "You have received a pair of cuffs from the armory."); } } case 11: { if (!IsSufficientSpace(playerid, "Cuff Keys")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid,"Cuff Keys"); SendInfoMessage(playerid, "You have received a pair of keys from the armory."); } } /*case 12: { if (!IsSufficientSpace(playerid, "Taser")) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { ShowLockerEquipmentMenu(playerid); AddItemToInventory(playerid, "Taser"); SendInfoMessage(playerid, "You have received a taser from the armory."); } }*/ } } else { ShowLockerMenu(playerid); } return 1; } Dialog:Locker(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: //Nightstick, Pepper Spray, MP5, M4, Sniper Rifle { Players[playerid][pDuty] = !Players[playerid][pDuty]; if (Players[playerid][pDuty]) { SendFactionMessage(Players[playerid][pFaction],COLOR_RADIO,"** HQ: %s %s is now on duty.", GetPlayerFactionRank(playerid), ReturnNameEx(playerid,0)); SendInfoMessage(playerid, "You have clocked in and you are now on duty."); ShowLockerMenu(playerid); } else { SetPlayerValidArmor(playerid, 0.0); SendFactionMessage(Players[playerid][pFaction],COLOR_RADIO,"** HQ: %s %s is now off duty.", GetPlayerFactionRank(playerid), ReturnNameEx(playerid,0)); SendInfoMessage(playerid, "You have clocked out and returned all of your equipment to the armory."); RemoveEquipment(playerid); ShowLockerMenu(playerid); } } case 1: { if(Players[playerid][pUniform] != INVALID_ID) { Players[playerid][pSkin] = Players[playerid][pUniform]; Players[playerid][pUniform] = INVALID_ID; SendInfoMessage(playerid, "You have put on your clothes."); ShowActionBubble(playerid, "* %s takes their clothes from the locker.", ReturnNameEx(playerid)); SetPlayerSkin(playerid, Players[playerid][pSkin]); ShowLockerMenu(playerid); } else { new index = GetFirstUniform(Players[playerid][pFaction]); if (index == INVALID_ID) { SendErrorMessage(playerid, "There are no uniforms setup for this faction."); } else { SetupUniformSelection(playerid); SendInfoMessage(playerid, "Use the arrow keys to browse between uniforms. Press ~k~~VEHICLE_ENTER_EXIT~ to confirm and N to cancel."); } } } case 2: { ShowLockerEquipmentMenu(playerid); } case 3: { // YOU'RE NEXT! //Dialog_Show(playerid, LEOClothes, DIALOG_STYLE_LIST, "Police Accessories", "Holster\nPolice Cap 1\nPolice Cap 2\nPolice Cap 3\nPolice Hat 1\nPolice Hat 2\nPolice Hat 3\nPolice Helmet\nPolice Armor\nPolice Shield\nRemove Accessories", "Wear", "Cancel"); ShowLockerAccessoryMenu(playerid); } case 4: { RemoveEquipment(playerid); SendInfoMessage(playerid, "You have returned all of your equipment to the armory."); } } } return 1; } Dialog:ListWarrants(playerid, response, listitem, inputtext[]) { if (response) { new targetid = gListedItems[playerid][listitem], Float:x, Float:y, Float:z; if (IsPlayerConnected(targetid) && Players[targetid][pWarrants] > 0) { if (!GetPlayerPosEx(targetid, x, y, z)) { SendErrorMessage(playerid, "The GPS could not determine their last known location."); } else { SetCheckpoint(playerid, CHECKPOINT_GPS, x, y, z, 3.0); SendInfoMessage(playerid, "A waypoint has been set to %s's last known location.", ReturnNameEx(targetid, 0)); } } } return 1; } Dialog:PlateInfo(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { /*new Float:x, Float:y, Float:z; GetVehiclePos(Vehicles[Players[playerid][pSelected]][vVehicle], x, y, z); SetCheckpoint(playerid, CHECKPOINT_GPS, x, y, z, 3.0); SendInfoMessage(playerid, "A waypoint has been set to the vehicle's last known location.");*/ ShowNewMDCMenu(playerid); } return 1; } Dialog:HouseInfo(playerid, response, listitem, inputtext[]) { if (response) { SetCheckpoint(playerid, CHECKPOINT_GPS, Houses[ Players[playerid][pSelected] ][hSpawn][0], Houses[ Players[playerid][pSelected] ][hSpawn][1], Houses[ Players[playerid][pSelected] ][hSpawn][2], 3.0); SendInfoMessage(playerid, "A waypoint has been set to the house."); } return 1; } Dialog:FindAddress(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { new address[32]; if (sscanf(inputtext, "s[32]", address)) { return Dialog_Show(playerid, FindAddress, DIALOG_STYLE_INPUT, "{FFFFFF}Find Address", "Please input the address of the house to trace:", "Submit", "Cancel"); } else { for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && !strcmp(Houses[i][hAddress], address, true)) { SetCheckpoint(playerid, CHECKPOINT_GPS, Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2], 3.0); SendInfoMessage(playerid, "A waypoint has been set to the house at %s.", Houses[i][hAddress]); return 1; } } Dialog_Show(playerid, FindAddress, DIALOG_STYLE_INPUT, "{FFFFFF}Find Address", "The specified address is not in use.\n\nPlease input the address of the house to trace:", "Submit", "Cancel"); } } else { ShowMDCMainMenu(playerid); } return 1; } Dialog:MDC_AddressSearch(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { new address[32]; if (sscanf(inputtext, "s[32]", address)) { return Dialog_Show(playerid, MDC_AddressSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Address Search", "Please enter the full address:", "Submit", "Cancel"); } else { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_houses WHERE hAddress = '%s'", address); mysql_tquery(gConnection, gExecute, "OnPlayerTraceAddress", "is", playerid, address); } } else { ShowNewMDCMenu(playerid); } return 1; } Dialog:TraceSerial(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { new serial; if (sscanf(inputtext, "i", serial)) { return Dialog_Show(playerid, TraceSerial, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Serial", "Please input the serial number of the weapon to trace:", "Submit", "Cancel"); } else { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_serials WHERE Serial = %i", serial); mysql_tquery(gConnection, gExecute, "OnPlayerTraceSerial", "ii", playerid, serial); } } else { ShowMDCMainMenu(playerid); } return 1; } Dialog:MDC_SerialSearch(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { new serial; if (sscanf(inputtext, "i", serial)) { return Dialog_Show(playerid, MDC_SerialSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Serial Search", "Please enter the full serial number:", "Submit", "Cancel"); } else { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_serials WHERE Serial = %i", serial); mysql_tquery(gConnection, gExecute, "OnPlayerTraceSerial", "ii", playerid, serial); } } else { ShowNewMDCMenu(playerid); } return 1; } Dialog:MDC_PlateSearch(playerid, response, listitem, inputtext[]) { if (response) { new plate[64], vehicle; if(sscanf(inputtext, "s[64]", plate)) return Dialog_Show(playerid, MDC_PlateSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Plate Search", "Please input the license plate of the vehicle to trace:", "Submit", "Cancel"); if(!GetVehicleFromPlate(plate)) return Dialog_Show(playerid, MDCVehicle, DIALOG_STYLE_INPUT, "Moblie Data Computer - Plate Search", "PLATE SEARCH\n\nInsert plate info:\n"EMBED_RED"Plate wasn't found on the database.", "Enter", "Escape"); vehicle = GetVehicleFromPlate(plate); format(msg, sizeof(msg), "PLATE SEARCH RESULT\n\nVehicle plate: %s\nVehicle model: %s\nVehicle owner: %s\n\nAdditional information: No outstanding reports", Vehicles[vehicle][vPlate], GetVehicleModelName(Vehicles[vehicle][vModel]), Vehicles[vehicle][vOwner]); Dialog_Show(playerid, MDCResult, DIALOG_STYLE_MSGBOX, "{FFFFFF}Mobile Data Computer - Plate Search", msg, "Print", ""); } else { ShowNewMDCMenu(playerid); } /*if (isnull(inputtext) || strlen(inputtext) > 32) { return Dialog_Show(playerid, MDC_PlateSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Plate", "Please input the license plate of the vehicle to trace:", "Submit", "Cancel"); } else { new vehicle = GetVehicleFromPlate(inputtext); if (IsValidVehicleID(vehicle)) { format(gExecute, sizeof(gExecute), "SELECT Username FROM rp_accounts WHERE ID = %d", Vehicles[vehicle][vOwner]); mysql_tquery(gConnection, gExecute, "OnPlayerTracePlate", "iis", playerid, vehicle, inputtext); } else { Dialog_Show(playerid, MDC_PlateSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Plate", "The specified plate is not registered to any vehicle.\n\nPlease input the license plate of the vehicle to trace:", "Submit", "Cancel"); } } } else { ShowNewMDCMenu(playerid); }*/ return 1; } Dialog:TracePlate(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { if (isnull(inputtext) || strlen(inputtext) > 32) { return Dialog_Show(playerid, TracePlate, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Plate", "Please input the license plate of the vehicle to trace:", "Submit", "Cancel"); } else { new vehicle = GetVehicleFromPlate(inputtext); if (IsValidVehicleID(vehicle)) { format(gExecute, sizeof(gExecute), "SELECT Username FROM rp_accounts WHERE ID = %i", Vehicles[vehicle][vOwner]); mysql_tquery(gConnection, gExecute, "OnPlayerTracePlate", "iis", playerid, vehicle, inputtext); } else { Dialog_Show(playerid, TracePlate, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Plate", "The specified plate is not registered to any vehicle.\n\nPlease input the license plate of the vehicle to trace:", "Submit", "Cancel"); } } } else { ShowMDCMainMenu(playerid); } return 1; } Dialog:SerialInfo(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } else { ShowMDCMainMenu(playerid); } return 1; } Dialog:MDCInfo(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } else { ShowMDCPlayerMenu(playerid); } return 1; } Dialog:MDC_Info(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } else { ShowMDCPlayerMenuNew(playerid); } return 1; } Dialog:Warrants(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } else { ShowMDCPlayerMenuNew(playerid); } return 1; } Dialog:Charges(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } else { ShowMDCPlayerMenuNew(playerid); } return 1; } /* format(string, sizeof(string), "Charge\tTime\n"); format(string, sizeof(string), "%s(1)01. Intimidation\t5min\n(1)02. Assault\t10min\n(1)03. Assault With A Deadly Weapon\t10min\n(1)04. Mutual Combat\t10min\n(1)05. Battery\t10min\n", string); format(string, sizeof(string), "%s(1)06. Aggravated Battery\t10min\n(1)07. Attempted Murder\t10min\n", string); format(string, sizeof(string), "%s(1)08. Manslaughter\t10min\n(1)09. Murder\t10min\n(1)10. False Imprisonment\t10min\n(1)11. Kidnapping\t10min\n(1)12. Mayhem\t10min\n", string); format(string, sizeof(string), "%s(1)13. Vehicular Murder\t10min\n(2)01. Arson\t10min\n(2)02. Trespassing\t10min\n(2)03. Trespassing within a Restricted Facility\t10min\n", string); format(string, sizeof(string), "%s(2)04. Burglary\t10min\n(2)05. Possession Of Burglary Tools\t10min\n(2)06. Robbery\t10min\n(2)07. Armed Robbery\t10min\n(2)08. Petty Theft\t10min\n", string); format(string, sizeof(string), "%s(2)09. Theft\t10min\n(2)10. Grand Theft\t10min\n(2)11. Grand Theft Auto\t10min\n(2)12. Grand Theft Of A Firearm\t10min\n", string); format(string, sizeof(string), "%s(2)13. Receiving Stolen Property\t10min\n(2)14. Extortion\t10min\n(2)15. Forgery\t10min\n(2)16. Fraud\t10min\n", string); format(string, sizeof(string), "%s(2)17. Vandalism\t10min\n(3)01. Lewd Or Dissolute Conduct In Public\t10min\n(3)02. Indecent Exposure\t10min\n(3)03. Prostitution\t10min\n", string); format(string, sizeof(string), "%s(3)04. Pandering / Pimping\t10min\n(3)05. Sexual Assault\t10min\n(3)06. Sexual Battery\t10min\n(3)07. Rape\t10min\n(3)08. Statutory Rape\t10min\n", string); format(string, sizeof(string), "%s(3)09. Stalking\t10min", string); */ Dialog:AddWarrant(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, AddWarrant, DIALOG_STYLE_INPUT, "{FFFFFF}Add Warrant", "Please input the description of the warrant:", "Submit", "Back"); } else { new targetid = GetPlayerID(gTargetName[playerid]); SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has issued a warrant on %s for: %s **", ReturnNameEx(playerid, 0), gTargetName[playerid], inputtext); ShowMDCPlayerMenu(playerid); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Warrants = Warrants + 1, TotalWarrants = TotalWarrants + 1 WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "INSERT INTO rp_warrantlogs (Player, Suspect, Date, Reason) VALUES('%s', '%s', NOW(), '%s')", ReturnName(playerid), gTargetName[playerid], mysql_escaped(inputtext)); mysql_tquery(gConnection, gExecute); if (IsPlayerConnected(targetid)) { Players[targetid][pWarrants]++; Statistics[targetid][sTotalWarrants]++; } } } else { ShowMDCPlayerMenu(playerid); } return 1; } /* Dialog:AddCharges(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { switch (listitem) { case 0: { new targetid = GetPlayerID(gTargetName[playerid]); SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has placed a charge on %s for: Rape **"); ShowMDCPlayerMenuNew(playerid); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Charges = Charges + 1 WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute); new string[128]; format(string, sizeof(string), "1) Rape"); new chargeid = 1; format(gExecute, sizeof(gExecute), "INSERT INTO rp_charges (Player, Suspect, Reason, ChargeID) VALUES('%s', '%s', '%s', %i)", ReturnName(playerid), gTargetName[playerid], string, chargeid); mysql_tquery(gConnection, gExecute); if (IsPlayerConnected(targetid)) { Players[targetid][pCharges]++; } } case 1: { SendInfoMessage(playerid, "test"); } } } else { ShowMDCPlayerMenu(playerid); } return 1; } */ Dialog:MDCPlayerNew(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { switch (listitem) { case 0: { format(gExecute, sizeof(gExecute), "SELECT ID, Age, Origin, Warrants, PhoneLastKnown, Charges, CarLicense, GunLicense, TotalWarrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute, "OnMDCViewInformationNew", "i", playerid); } case 1: { format(gExecute, sizeof(gExecute), "SELECT ID, Age, Origin, Warrants, CarLicense, GunLicense, TotalWarrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute, "OnMDCViewInformationNewPrint", "i", playerid); } case 2: { Dialog_Show(playerid, ManageWarrants, DIALOG_STYLE_LIST, "{FFFFFF}MDC - Manage Warrants", "List Warrants\nAdd Warrant\nClear Warrants", "Select", "Back"); } case 3: { Dialog_Show(playerid, ManageLicenses, DIALOG_STYLE_LIST, "{FFFFFF}MDC - Manage Licenses", "Add Warnings\nSuspend Licenses", "Select", "Back"); } case 4: { Dialog_Show(playerid, ManageCharges, DIALOG_STYLE_LIST, "{FFFFFF}MDC - Manage Charges", "View Charges\nAdd Charges\nClear All", "Select", "Back"); } case 5: { //Dialog_Show(playerid, ArrestRecord, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}MDC - Arrest Record", "Officer\tDate\tTime\nBilly McKee\t2017/04/02\t53min\nMalcolm Summers\t2017/04/14\t75min", "Select", "Back"); format(gExecute, sizeof(gExecute), "SELECT * FROM rp_arrestlogs WHERE Player = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute, "OnPlayerGetArrestLogs", "i", playerid); } } } return 1; } Dialog:ManageWarrants(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { switch (listitem) { case 0: { format(gExecute, sizeof(gExecute), "SELECT Warrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute, "OnPlayerGetWarrants", "i", playerid); } case 1: { Dialog_Show(playerid, AddWarrant, DIALOG_STYLE_INPUT, "{FFFFFF}Add Warrant", "Please input the description of the warrant:", "Submit", "Back"); } case 2: { new targetid = GetPlayerID(gTargetName[playerid]); SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has cleared %s's active warrants. **", ReturnNameEx(playerid, 0), gTargetName[playerid]); ShowMDCPlayerMenuNew(playerid); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Warrants = 0 WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute); if (IsPlayerConnected(targetid)) { SendInfoMessage(targetid, "%s has cleared your warrants.", ReturnNameEx(playerid)); Players[targetid][pWarrants] = 0; } } } } else { ShowMDCPlayerMenuNew(playerid); } return 1; } Dialog:ManageCharges(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { switch (listitem) { case 0: { format(gExecute, sizeof(gExecute), "SELECT Charges FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute, "OnPlayerGetCharges", "i", playerid);//h�r /*format(gExecute, sizeof(gExecute), "SELECT * FROM rp_charges WHERE Suspect = '%s' ORDER BY `ID` DESC", gTargetName[playerid]); mysql_tquery(gConnection, gExecute, "OnPlayerViewCharges", "i", playerid);*/ /*format(gExecute, sizeof(gExecute), "SELECT * FROM rp_warrantlogs WHERE Suspect = '%s' ORDER BY `ID` DESC LIMIT %i", gTargetName[playerid], warrants); mysql_tquery(gConnection, gExecute, "OnPlayerViewCharges", "i", playerid);*/ } case 1: { /*new string[2048]; format(string, sizeof(string), "Charge\tTime\n");//GetArrestTime(chargeid) format(string, sizeof(string), "%s(1)01. Intimidation\t%i Minutes\n(1)02. Assault\t%i Minutes\n(1)03. Assault With A Deadly Weapon\t%i Minutes\n(1)04. Mutual Combat\t%i Minutes\n(1)05. Battery\t%i Minutes\n", string, GetArrestTime(0), GetArrestTime(1), GetArrestTime(2), GetArrestTime(3), GetArrestTime(4));//anuskuk format(string, sizeof(string), "%s(1)06. Aggravated Battery\t%i Minutes\n(1)07. Attempted Murder\t%i Minutes\n", string, GetArrestTime(5), GetArrestTime(6)); format(string, sizeof(string), "%s(1)08. Manslaughter\t%i Minutes\n(1)09. Murder\t%i Minutes\n(1)10. False Imprisonment\t%i Minutes\n(1)11. Kidnapping\t%i Minutes\n(1)12. Mayhem\t%i Minutes\n", string, GetArrestTime(7), GetArrestTime(8), GetArrestTime(9), GetArrestTime(10), GetArrestTime(11)); format(string, sizeof(string), "%s(1)13. Vehicular Murder\t%i Minutes\n(2)01. Arson\t%i Minutes\n(2)02. Trespassing\t%i Minutes\n(2)03. Trespassing within a Restricted Facility\t%i Minutes\n", string, GetArrestTime(12), GetArrestTime(13), GetArrestTime(14), GetArrestTime(15)); format(string, sizeof(string), "%s(2)04. Burglary\t%i\n(2)05. Possession Of Burglary Tools\t%i\n(2)06. Robbery\t%i\n(2)07. Armed Robbery\t%i\n(2)08. Petty Theft\t%i\n", string, GetArrestTime(16), GetArrestTime(17), GetArrestTime(18), GetArrestTime(19), GetArrestTime(20)); format(string, sizeof(string), "%s(2)09. Theft\t%i Minutes\n(2)10. Grand Theft\t%i Minutes\n(2)11. Grand Theft Auto\t%i Minutes\n(2)12. Grand Theft Of A Firearm\t%i Minutes\n", string, GetArrestTime(21), GetArrestTime(22), GetArrestTime(23), GetArrestTime(24)); format(string, sizeof(string), "%s(2)13. Receiving Stolen Property\t%i Minutes\n(2)14. Extortion\t%i Minutes\n(2)15. Forgery\t%i Minutes\n(2)16. Fraud\t%i Minutes\n", string, GetArrestTime(25), GetArrestTime(26), GetArrestTime(27), GetArrestTime(28)); format(string, sizeof(string), "%s(2)17. Vandalism\t%i Minutes\n(3)01. Lewd Or Dissolute Conduct In Public\t%i Minutes\n(3)02. Indecent Exposure\t%i Minutes\n(3)03. Prostitution\t%i Minutes\n", string, GetArrestTime(29), GetArrestTime(30), GetArrestTime(31), GetArrestTime(32)); format(string, sizeof(string), "%s(3)04. Pandering / Pimping\t%i Minutes\n(3)05. Sexual Assault\t%i Minutes\n(3)06. Sexual Battery\t%i Minutes\n(3)07. Rape\t%i Minutes\n(3)08. Statutory Rape\t%i Minutes\n", string, GetArrestTime(33), GetArrestTime(34), GetArrestTime(35), GetArrestTime(36), GetArrestTime(37)); format(string, sizeof(string), "%s(3)09. Stalking\t%i Minutes", string, GetArrestTime(38)); format(string, sizeof(string), "%s(4)01. Stalking\t%i Minutes", string, GetArrestTime(38)); //format(string, sizeof(string), "%s", string); //format(string, sizeof(string), "%s", string); //format(string, sizeof(string), "%s", string); //format(string, sizeof(string), "%s", string); //format(string, sizeof(string), "%s", string);*/ //Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", string, "Submit", "Back"); Dialog_Show(playerid, ChargesCategory, DIALOG_STYLE_LIST, "{FFFFFF}Add Charges", "1. Crimes Against The Person\n2. Crimes Against Property And Criminal Profiteering\n3. Crimes Against Public Decency\n4. Crimes Against Public Justice\n5. Crimes Against Public Peace\n6. Crimes Against Public Health And Safety\n7. Crimes Against State Dependents\n8. Vehicular Offenses\n9. Control Of Deadly Weapons And Equipment", "Submit", "Back"); } case 2: { SendInfoMessage(playerid, "You have cleared %s of all charges.", gTargetName[playerid]); new targetid = GetPlayerID(gTargetName[playerid]); ShowMDCPlayerMenuNew(playerid); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Charges = 0 WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute); if (IsPlayerConnected(targetid)) { Players[targetid][pCharges] = 0; } } } } else { ShowMDCPlayerMenuNew(playerid); } return 1; } /* Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", "1. Crimes Against The Person\n 2. Crimes Against Property And Criminal Profiteering\n 3. Crimes Against Public Decency\n 4. Crimes Against Public Justice\n 5. Crimes Against Public Peace\n 6. Crimes Against Public Health And Safety\n 7. Crimes Against State Dependents\n 8. Vehicular Offenses\n 9. Conttrol Of Deadly Weapons And Equipment", "Submit", "Back"); */ /* Dialog_Show(playerid, AddCharges0, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", "Penal Code\tTime In Jail\n (1)01. Intimidation\t5 Minutes\n (1)02. Assault\t10 Minutes\n (1)03. Assault With A Deadly Weapon\t10 Minutes\n (1)04. Mutual Combat\t15 Minutes\n (1)05. Battery\t15 Minutes\n (1)06. Aggravated Battery\t20 Minutes\n (1)07. Attempted Murder\t25 Minutes\n (1)08. Manslaughter\t25 Minutes\n (1)09. Murder\t30 Minutes\n (1)10. False Imprisonment\t20 Minutes\n (1)11. Kidnapping\t10 Minutes\n (1)12. Mayhem\t15 Minutes\n (1)13. Vehicular Murder\t30 Minutes ", "Submit", "Back"); */ Dialog:ChargesCategory(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0://Crimes Against The Person { Players[playerid][pAddCharges] = 1; Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", "Penal Code\tTime In Jail\n(1)01. Intimidation\t%i Minutes\n(1)02. Assault\t%i Minutes\n(1)03. Assault With A Deadly Weapon\t%i Minutes\n(1)04. Mutual Combat\t%i Minutes\n(1)05. Battery\t%i Minutes\n(1)06. Aggravated Battery\t%i Minutes\n(1)07. Attempted Murder\t%i Minutes\n(1)08. Manslaughter\t%i Minutes\n(1)09. Murder\t%i Minutes\n(1)10. False Imprisonment\t%i Minutes\n(1)11. Kidnapping\t%i Minutes\n(1)12. Mayhem\t%i Minutes\n(1)13. Vehicular Murder\t%i Minutes", "Submit", "Back", GetArrestTime(1, 1), GetArrestTime(1, 2), GetArrestTime(1, 3), GetArrestTime(1, 4), GetArrestTime(1, 5), GetArrestTime(1, 6), GetArrestTime(1, 7), GetArrestTime(1, 8), GetArrestTime(1, 9), GetArrestTime(1, 10), GetArrestTime(1, 11), GetArrestTime(1, 12), GetArrestTime(1, 13) ); } case 1://Crimes Against Property And Criminal Profiteering { Players[playerid][pAddCharges] = 2; new string[2048]; format(string, sizeof(string), "Penal Code\tTime In Jail\n(2)01. Arson\t%i Minutes\n(2)02. Trespassing\t%i Minutes\n(2)03. Trespassing within a Restricted Facility\t%i Minutes\n(2)04. Burglary\t%i Minutes\n(2)05. Possession Of Burglary Tools\t%i Minutes\n(2)06. Robbery\t%i Minutes\n(2)07. Armed Robbery\t%i Minutes\n(2)08. Petty Theft\t%i Minutes\n(2)09. Theft\t%i Minutes\n", GetArrestTime(2, 1), GetArrestTime(2, 2), GetArrestTime(2, 3), GetArrestTime(2, 4), GetArrestTime(2, 5), GetArrestTime(2, 6), GetArrestTime(2, 7), GetArrestTime(2, 8), GetArrestTime(2, 9) ); format(string, sizeof(string), "%s(2)10. Grand Theft\t%i Minutes\n(2)11. Grand Theft Auto\t%i Minutes\n(2)12. Grand Theft Of A Firearm\t%i Minutes\n(2)13. Receiving Stolen Property\t%i Minutes\n(2)14. Extortion\t%i Minutes\n(2)15. Forgery\t%i Minutes\n(2)16. Fraud\t%i Minutes\n(2)17. Vandalism\t%i Minutes", string, GetArrestTime(2, 10), GetArrestTime(2, 11), GetArrestTime(2, 12), GetArrestTime(2, 13), GetArrestTime(2, 14), GetArrestTime(2, 15), GetArrestTime(2, 16), GetArrestTime(2, 17) ); Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", string, "Submit", "Back"); } case 2://Crimes Against Public Decency { Players[playerid][pAddCharges] = 3; Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", "Penal Code\tTime In Jail\n(3)01. Lewd Or Dissolute Conduct In Public\t%i Minutes\n(3)02. Indecent Exposure\t%i Minutes\n(3)03. Prostitution\t%i Minutes\n(3)04. Pandering / Pimping\t%i Minutes\n(3)05. Sexual Assault\t%i Minutes\n(3)06. Sexual Battery\t%i Minutes\n(3)07. Rape\t%i Minutes\n(3)08. Statutory Rape\t%i Minutes\n(3)09. Stalking\t%i Minutes", "Submit", "Back", GetArrestTime(3, 1), GetArrestTime(3, 2), GetArrestTime(3, 3), GetArrestTime(3, 4), GetArrestTime(3, 5), GetArrestTime(3, 6), GetArrestTime(3, 7), GetArrestTime(3, 8), GetArrestTime(3, 9) ); } case 3://Crimes Against Public Justice { Players[playerid][pAddCharges] = 4; new string[2048]; format(string, sizeof(string), "Penal Code\tTime In Jail\n(4)01. Bribery\t%i Minutes\n(4)02. Failure To Pay A Fine\t%i Minutes\n(4)03. Contempt of Court\t%i Minutes\n(4)04. Subpoena Violation\t%i Minutes\n(4)05. Dissuading A Witness Or Victim\t%i Minutes\n(4)06. False Information To A Government Employee\t%i Minutes\n(4)07. Filing A False Complaint\t%i Minutes\n(4)08. Perjury\t%i Minutes", GetArrestTime(4, 1), GetArrestTime(4, 2), GetArrestTime(4, 3), GetArrestTime(4, 4), GetArrestTime(4, 5), GetArrestTime(4, 6), GetArrestTime(4, 7), GetArrestTime(4, 8) ); format(string, sizeof(string), "%s\n(4)09. Failure To Identify To A Peace Officer\t%i Minutes\n(4)10. Impersonation Of A Government Employee\t%i Minutes\n(4)11. Obstruction Of A Government Employee\t%i Minutes\n", string, GetArrestTime(4, 9), GetArrestTime(4, 10), GetArrestTime(4, 11) ); format(string, sizeof(string), "%s(4)12. Resisting A Peace Officer\t%i Minutes\n(4)13. Escape From Custody\t%i Minutes\n(4)14. Escape\t%i Minutes\n(4)15. Prisoner Brekaout\t%i Minutes\n(4)16. Human Trafficking\t%i Minutes\n(4)17. Misuse Of A Government Hotline\t%i Minutes\n(4)18. Tampering With Evidence\t%i Minutes", string, GetArrestTime(4, 12), GetArrestTime(4, 13), GetArrestTime(4, 14), GetArrestTime(4, 15), GetArrestTime(4, 16), GetArrestTime(4, 17), GetArrestTime(4, 18) ); format(string, sizeof(string), "%s\n(4)19. Introduction Of Contraband\t%i Minutes\n(4)20. Violation Of Parole Or Probation\t%i Minutes\n(4)21. Voter Fraud / Voter Pandering\t%i Minutes\n(4)22. Corruption Of Public Duty\t%i Minutes\n(4)23. Corruption Of Public Office\t%i Minutes", string, GetArrestTime(4, 19), GetArrestTime(4, 20), GetArrestTime(4, 21), GetArrestTime(4, 22), GetArrestTime(4, 23) ); Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", string, "Submit", "Back"); } case 4://Crimes Against Public Peace { Players[playerid][pAddCharges] = 5; Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", "Penal Code\tTime In Jail\n(5)01. Disturbing The Peace\t%i Minutes\n(5)02. Unlawful Assembly\t%i Minutes\n(5)03. Incitement To Riot\t%i Minutes\n(5)04. Vigilantism\t%i Minutes", "Submit", "Back", GetArrestTime(5, 1), GetArrestTime(5, 2), GetArrestTime(5, 3), GetArrestTime(5, 4) ); } case 5://Crimes Against Public Health And Safety { Players[playerid][pAddCharges] = 6; new string[2048]; format(string, sizeof(string), "Penal Code\tTime In Jail\n(6)01. Possession Of A Controlled Substance\t%i Minutes\n(6)02. Possession Of A Controlled Substance With Intent To Sell\t%i Minutes\n(6)03. Possession Of Drug Paraphernalia\t%i Minutes\n(6)04. Maintaining A Place For The Purpose Of Distribution\t%i Minutes\n(6)05. Manufacture Of A Controlled Substance\t%i Minutes\n(6)06. Sale Of A Controlled Substance\t%i Minutes\n", GetArrestTime(6, 1), GetArrestTime(6, 2), GetArrestTime(6, 3), GetArrestTime(6, 4), GetArrestTime(6, 5), GetArrestTime(6, 6) ); format(string, sizeof(string), "%s(6)07. Possession Of An Open Container\t%i Minutes\n(6)08. Public Intoxication\t%i Minutes\n(6)09. Under The Influence Of A Controlled Substance\t%i Minutes\n(6)10. Facial Obstruction While Committing A Crime\t%i Minutes\n(6)11. Terrorism\t%i Minutes\n(6)12. Possession Of Marijuana\t%i Minutes", string, GetArrestTime(6, 7), GetArrestTime(6, 8), GetArrestTime(6, 9), GetArrestTime(6, 10), GetArrestTime(6, 11), GetArrestTime(6, 12) ); Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", string, "Submit", "Back"); } case 6://Crimes Against State Dependents { Players[playerid][pAddCharges] = 7; Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", "Penal Code\tTime In Jail\n(7)01. Animal Abuse / Cruelty\t%i Minutes\n(7)02. Child Abuse\t%i Minutes\n(7)03. Sale Of Alcohol To A Minor\t%i Minutes\n(7)04. Minor Alcohol Violation\t%i Minutes", "Submit", "Back", GetArrestTime(7, 1), GetArrestTime(7, 2), GetArrestTime(7, 3), GetArrestTime(7, 4) ); } case 7://Vehicular Offenses { Players[playerid][pAddCharges] = 8; new string[2048]; format(string, sizeof(string), "Penal Code\tTime In Jail\n(8)01. Driving With A Suspended License\t%i Minutes\n(8)02. Eluding A Peace Officer\t%i Minutes\n(8)03. Flying Without A Pilot's License\t%i Minutes\n(8)04. Hit And Run\t%i Minutes\n(8)05. Reckless Operation Of An Aircraft\t%i Minutes\n", GetArrestTime(8, 1), GetArrestTime(8, 2), GetArrestTime(8, 3), GetArrestTime(8, 4), GetArrestTime(8, 5), GetArrestTime(8, 6), GetArrestTime(8, 7) ); format(string, sizeof(string), "%s(8)06. Reckless Operation Of An Off-Road Or Naval Vehicle\t%i Minutes\n(8)07. Failure To Adhere To ATC Protocols\t%i Minutes\n(8)08. Failure To Adhere To Flight Protocols\t%i Minutes\n(8)09. Aerial Evasion\t%i Minutes\n(8)10. Restricted Airspace Violation\t%i Minutes", string, GetArrestTime(8, 8), GetArrestTime(8, 9), GetArrestTime(8, 10) ); Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", string, "Submit", "Back"); } case 8://Conttrol Of Deadly Weapons And Equipment { Players[playerid][pAddCharges] = 9; new string[2048]; format(string, sizeof(string), "Penal Code\tTime In Jail\n(9)01. Possession Of An Illegal Blade\t%i Minutes\n(9)02. Possession Of An Unlicensed Firearm\t%i Minutes\n(9)03. Possession Of An Illegal Firearm\t%i Minutes\n(9)04. Possession Of An Assault Weapon\t%i Minutes\n(9)05. Unlicensed Sale Of A Firearm\t%i Minutes\n(9)06. Possession Of An Explosive Device\t%i Minutes\n", GetArrestTime(9, 1), GetArrestTime(9, 2), GetArrestTime(9, 3), GetArrestTime(9, 4), GetArrestTime(9, 5), GetArrestTime(9, 6), GetArrestTime(9, 7), GetArrestTime(9, 8) ); format(string, sizeof(string), "%s(9)07. Manufacture or Possession of an Improvised Device\t%i Minutes\n(9)08. Possession of Weaponry With Intent To Sell\t%i Minutes\n(9)09. Possession Of Explosive Devices With Intent To Sell\t%i Minutes\n(9)10. Brandishing A Firearm\t%i Minutes\n(9)11. Weapons Discharge Violation\t%i Minutes\n(9)12. Drive-By Shooting\t%i Minutes\n(9)13. CCW / FPC Violation\t%i Minutes", string, GetArrestTime(9, 9), GetArrestTime(9, 10), GetArrestTime(9, 11), GetArrestTime(9, 12), GetArrestTime(9, 13) ); Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", string, "Submit", "Back"); } } } else { ShowMDCPlayerMenuNew(playerid); } return 1; } Dialog:AddCharges(playerid, response, listitem, inputtext[]) { if (response) { new targetid = GetPlayerID(gTargetName[playerid]); new time = GetArrestTime(Players[playerid][pAddCharges], listitem+1); SendInfoMessage(playerid, "Charge '%s' added to %s for %i minutes.", inputtext, gTargetName[playerid], time); Dialog_Show(playerid, ChargesCategory, DIALOG_STYLE_LIST, "{FFFFFF}Add Charges", "1. Crimes Against The Person\n2. Crimes Against Property And Criminal Profiteering\n3. Crimes Against Public Decency\n4. Crimes Against Public Justice\n5. Crimes Against Public Peace\n6. Crimes Against Public Health And Safety\n7. Crimes Against State Dependents\n8. Vehicular Offenses\n9. Control Of Deadly Weapons And Equipment", "Submit", "Back"); new chargecat; if(strfind(inputtext, "(1)", true) != -1) chargecat = 1; if(strfind(inputtext, "(2)", true) != -1) chargecat = 2; if(strfind(inputtext, "(3)", true) != -1) chargecat = 3; if(strfind(inputtext, "(4)", true) != -1) chargecat = 4; if(strfind(inputtext, "(5)", true) != -1) chargecat = 5; if(strfind(inputtext, "(6)", true) != -1) chargecat = 6; if(strfind(inputtext, "(7)", true) != -1) chargecat = 7; if(strfind(inputtext, "(8)", true) != -1) chargecat = 8; if(strfind(inputtext, "(9)", true) != -1) chargecat = 9; format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Charges = Charges + 1 WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "INSERT INTO rp_charges (Player, Suspect, Reason, ChargeCat, ChargeID, Time) VALUES('%s', '%s', '%s', %i, %i, %i)", ReturnName(playerid), gTargetName[playerid], mysql_escaped(inputtext), chargecat, listitem+1, time); mysql_tquery(gConnection, gExecute); if (IsPlayerConnected(targetid)) { Players[targetid][pCharges]++; } } else { Dialog_Show(playerid, ChargesCategory, DIALOG_STYLE_LIST, "{FFFFFF}Add Charges", "1. Crimes Against The Person\n2. Crimes Against Property And Criminal Profiteering\n3. Crimes Against Public Decency\n4. Crimes Against Public Justice\n5. Crimes Against Public Peace\n6. Crimes Against Public Health And Safety\n7. Crimes Against State Dependents\n8. Vehicular Offenses\n9. Control Of Deadly Weapons And Equipment", "Submit", "Back"); } return 1; } //Dialog_Show(playerid, AddCharges, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Add Charges", "Charge\tTime\n1) Rape\t50min\n2) Not rape\t100min", "Submit", "Back"); /*Dialog:AddCharges(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { new targetid = GetPlayerID(gTargetName[playerid]); new time = GetArrestTime(listitem); SendInfoMessage(playerid, "Charge '%s' added to %s for %i minutes.", inputtext, gTargetName[playerid], time); ShowMDCPlayerMenuNew(playerid); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Charges = Charges + 1 WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "INSERT INTO rp_charges (Player, Suspect, Reason, ChargeID, Time) VALUES('%s', '%s', '%s', %i, %i)", ReturnName(playerid), gTargetName[playerid], mysql_escaped(inputtext), listitem, time); mysql_tquery(gConnection, gExecute); if (IsPlayerConnected(targetid)) { Players[targetid][pCharges]++; } } else { ShowMDCPlayerMenu(playerid); } return 1; }*/ Dialog:ManageLicenses(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, ManageLicenses, DIALOG_STYLE_LIST, "{FFFFFF}MDC - Manage Licenses - Add Warning", "Drivers License\nWeapons License", "Select", "Back"); } case 1: { Dialog_Show(playerid, ManageLicenses, DIALOG_STYLE_LIST, "{FFFFFF}MDC - Manage Licenses - Revoke License", "Drivers License\nWeapons License", "Select", "Back"); } } } else { ShowMDCPlayerMenuNew(playerid); } return 1; } //Dialog_Show(playerid, MDCPlayerNew, DIALOG_STYLE_LIST, string, "View Information\nPrint Information\nManage Warrants\nManage Licenses\nApply Charges\nArrest Record", "Select", "Cancel"); Dialog:MDCPlayer(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, AddWarrant, DIALOG_STYLE_INPUT, "{FFFFFF}Add Warrant", "Please input the description of the warrant:", "Submit", "Back"); } case 1: { format(gExecute, sizeof(gExecute), "SELECT Warrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute, "OnPlayerGetWarrants", "i", playerid); } case 2: { new targetid = GetPlayerID(gTargetName[playerid]); SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has cleared %s's active warrants. **", ReturnNameEx(playerid, 0), gTargetName[playerid]); ShowMDCPlayerMenu(playerid); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Warrants = 0 WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute); if (IsPlayerConnected(targetid)) { SendInfoMessage(targetid, "%s has cleared your warrants.", ReturnNameEx(playerid)); Players[targetid][pWarrants] = 0; } } case 3: { format(gExecute, sizeof(gExecute), "SELECT ID, Age, Origin, Warrants, CarLicense, GunLicense, TotalWarrants FROM rp_accounts WHERE Username = '%s'", gTargetName[playerid]); mysql_tquery(gConnection, gExecute, "OnMDCViewInformation", "i", playerid); } } } else { ShowMDCMainMenu(playerid); } return 1; } Dialog:SearchPlayer(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { if (isnull(inputtext) || strlen(inputtext) > 24) { return Dialog_Show(playerid, SearchPlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "Please input the full name of the player:", "Submit", "Cancel"); } else { format(gExecute, sizeof(gExecute), "SELECT ID, Warrants FROM rp_accounts WHERE Username = '%s'", mysql_escaped(inputtext)); mysql_tquery(gConnection, gExecute, "OnPlayerSearchPlayer", "is", playerid, inputtext); } } else { ShowMDCMainMenu(playerid); } return 1; } Dialog:MDC_LookUp(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { if (isnull(inputtext) || strlen(inputtext) > 24) { return Dialog_Show(playerid, MDC_LookUp, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Name Search", "Error: Please enter a name.\n\nPlease enter the full name of the person:", "Submit", "Cancel"); } else { //format(gExecute, sizeof(gExecute), "SELECT ID, Warrants FROM rp_accounts WHERE Username = '%s'", mysql_escaped(inputtext)); format(gExecute, sizeof(gExecute), "SELECT ID, Warrants FROM rp_accounts WHERE Username = '%s'", mysql_escaped(inputtext)); mysql_tquery(gConnection, gExecute, "OnMdcSearchPlayer", "is", playerid, inputtext); } } else { ShowNewMDCMenu(playerid); //Dialog_Show(playerid, MDC_MainMenu, DIALOG_STYLE_LIST, "{FFFFFF}Mobile Data Computer - Main Menu", "MAIN SCREEN\nNAME SEARCH\nPLATE SEARCH\nSERIAL SEARCH\nADDRESS SEARCH\nLAST 911\nCALLSIGNS", "Login", "Exit"); } return 1; } Dialog:MDC_Login(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { ShowNewMDCMenu(playerid); /*new string[256]; format(string, sizeof(string), "%s %s\n\nOFFICERS ON DUTY: %i\nCALLS LAST HOUR: 0\nARRESTS LAST HOUR: 0", GetPlayerFactionRank(playerid), ReturnNameEx(playerid));*/ //Dialog_Show(playerid, MDC_MainMenu, DIALOG_STYLE_LIST, "{FFFFFF}Mobile Data Computer - Main Menu", "MAIN SCREEN\nNAME SEARCH\nPLATE SEARCH\nSERIAL SEARCH\nADDRESS SEARCH\nLAST 911\nCALLSIGNS", "Login", "Exit"); } } return 1; } Dialog:MDC_MainMenu(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { switch (listitem) { case 0: { ShowNewMDC(playerid); } case 1: { Dialog_Show(playerid, MDC_LookUp, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Name Search", "Please enter the full name of the person:", "Submit", "Cancel"); } case 2: { Dialog_Show(playerid, MDC_PlateSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Plate Search", "Please enter the full plate number:", "Submit", "Cancel"); } case 3: { Dialog_Show(playerid, MDC_SerialSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Serial Search", "Please enter the full serial number:", "Submit", "Cancel"); } case 4: { Dialog_Show(playerid, MDC_AddressSearch, DIALOG_STYLE_INPUT, "{FFFFFF}Mobile Data Computer - Address Search", "Please enter the full address:", "Submit", "Cancel"); } case 5: { //Dialog_Show(playerid, MDC_LastCalls, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Mobile Data Computer - Last 911 Calls", "Number\tMessage\tDate\n12345\t'Test Test Test Test Test..'\t01/01/2001", "Options", "Cancel"); ListEmergency(playerid); } case 6: { //ShowFactionRoster(playerid); //ShowCallsignMenu(playerid); ShowCallsigns(playerid); } } } return 1; } Dialog:MDC_CallsignMenu(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { /*for (new i = 0; i < sizeof(g_Callsigns); i ++) { if(g_Callsigns[i][e_CallsignFaction] == 1) { format(string, sizeof(string), "%s\nNobody\t%s\t%s", string, g_Callsigns[i][e_CallsignTextShort], g_Callsigns[i][e_CallsignTextFull]); } }*/ if (g_Callsigns[listitem][e_CallsignTakenBy] != INVALID_ID && g_Callsigns[listitem][e_CallsignTakenBy] != playerid) { SendErrorMessage(playerid, "This callsign is already taken."); return 1; } if (g_Callsigns[listitem][e_CallsignTakenBy] == playerid) { SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has left callsign %s. **", ReturnNameEx(playerid, 0), g_Callsigns[listitem][e_CallsignTextFull]); Players[playerid][pFactionCallsign] = 0; g_Callsigns[listitem][e_CallsignTakenBy] = INVALID_ID; return 1; } if (Players[playerid][pFactionCallsign] != 0) return SendErrorMessage(playerid, "You already have a callsign."); Players[playerid][pFactionCallsign] = listitem; g_Callsigns[listitem][e_CallsignTakenBy] = playerid; SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has taken callsign %s. **", ReturnNameEx(playerid, 0), g_Callsigns[listitem][e_CallsignTextFull]); } else { ShowNewMDCMenu(playerid); } return 1; } /* Dialog:SearchPlayer(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { if (isnull(inputtext) || strlen(inputtext) > 24) { return Dialog_Show(playerid, SearchPlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "Please input the full name of the player:", "Submit", "Cancel"); } else { format(gExecute, sizeof(gExecute), "SELECT ID, Warrants FROM rp_accounts WHERE Username = '%s'", mysql_escaped(inputtext)); mysql_tquery(gConnection, gExecute, "OnPlayerSearchPlayer", "is", playerid, inputtext); } } else { ShowMDCMainMenu(playerid); } return 1; } */ Dialog:MDC(playerid, response, listitem, inputtext[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return 0; } if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, SearchPlayer, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "Please input the full name of the player:", "Submit", "Cancel"); } case 1: { new success = ListApbs(playerid); if (!success) { return SendErrorMessage(playerid,"There are no APBs active."); } /*new index, displayString[2048]; foreach (new i : Player) { if (Players[i][pWarrants] > 0) { format(displayString, sizeof(displayString), "%s\n%s (%i warrants)", displayString, ReturnNameEx(i, 0), Players[i][pWarrants]); gListedItems[playerid][index++] = i; } } if (index) { Dialog_Show(playerid, ListWarrants, DIALOG_STYLE_LIST, "{FFFFFF}Outstanding Warrants", displayString, "Track", "Cancel"); } else { SendErrorMessage(playerid, "There are no outstanding warrants to list."); }*/ } case 2: { Dialog_Show(playerid, TracePlate, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Plate", "Please input the license plate of the vehicle to trace:", "Submit", "Cancel"); } case 3: { Dialog_Show(playerid, TraceSerial, DIALOG_STYLE_INPUT, "{FFFFFF}Trace Serial", "Please input the serial number of the weapon to trace:", "Submit", "Cancel"); } case 4: { Dialog_Show(playerid, FindAddress, DIALOG_STYLE_INPUT, "{FFFFFF}Find Address", "Please input the address of the house to trace:", "Submit", "Cancel"); } } } return 1; } Dialog:LocateHouse(playerid, response, listitem, inputtext[]) { if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, LocateHouse, DIALOG_STYLE_INPUT, "{FFFFFF}Locate house", "Please input the house address and the GPS system will locate it for you:", "Locate", "Back"); } else { new string[2048], count; format(string,sizeof(string),"Address\tLocation\tOwner\tValue\n"); for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && strfind(Houses[i][hAddress], inputtext, true) != -1) { //format(string, sizeof(string), "%s%s\t%s\t%s\t%s\n", string, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]), (Houses[i][hOwner]) ? ("Yes") : ("No"), FormatNumber(Houses[i][hValue])); if (!Houses[i][hOwner]) { format(string, sizeof(string), "%s%s\t%s\t%s\t%s\n", string, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]), "Nobody", FormatNumber(Houses[i][hValue])); } else { format(string, sizeof(string), "%s%s\t%s\t%s\t%s\n", string, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]), Houses[i][hOwnerName], FormatNumber(Houses[i][hValue])); } count ++; } /*if (IsValidHouseID(i) && !strcmp(Houses[i][hAddress], inputtext, true)) { SetCheckpoint(playerid, CHECKPOINT_GPS, Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2], 3.0); SendInfoMessage(playerid, "GPS: A waypoint has been set to %s.", Houses[i][hAddress]); return 1; }*/ } if (!count) { return SendErrorMessage(playerid, "There isn't any house with the specified address."); } else { Dialog_Show(playerid, LocateHouse_List, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}House List", string, "Locate", "Back"); } //SendErrorMessage(playerid, "There isn't any house with the specified address."); } } return 1; } Dialog:LocateHouse_List(playerid, response, listitem, inputtext[]) { if (response) { //SendInfoMessage(playerid, "%i, %s", listitem, inputtext); for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && !strcmp(Houses[i][hAddress], inputtext, true)) { SetCheckpoint(playerid, CHECKPOINT_GPS, Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2], 3.0); SendInfoMessage(playerid, "GPS: A waypoint has been set to %s.", Houses[i][hAddress]); } } } return 1; } Dialog:LocateCompany(playerid, response, listitem, inputtext[]) { if (response) { new company = GetClosestCompanyID(playerid, ++listitem); if (company == INVALID_ID) { SendErrorMessage(playerid, "The GPS could not locate any company of this type."); } else { SetCheckpoint(playerid, CHECKPOINT_GPS, Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], 3.0); SendInfoMessage(playerid, "GPS: A waypoint has been set to the closest %s.", inputtext); } } return 1; } Dialog:GPS(playerid, response, listitem, inputtext[]) { new string[512]; if (response) { switch (listitem) { case 0: { for (new i = 0; i < sizeof(g_CompanyTypes); i ++) { strcat(string, g_CompanyTypes[i]); strcat(string, "\n"); } Dialog_Show(playerid, LocateCompany, DIALOG_STYLE_LIST, "{FFFFFF}Locate company", string, "Waypoint", "Back"); } case 1: { Dialog_Show(playerid, LocateHouse, DIALOG_STYLE_INPUT, "{FFFFFF}Locate house", "Please input the house address and the GPS system will locate it for you:", "Locate", "Back"); } case 2: { new shop = GetClosestAutoShopID(playerid); if (shop == INVALID_ID) { SendErrorMessage(playerid, "The GPS couldn't locate any nearby auto shops."); } else { SetCheckpoint(playerid, CHECKPOINT_GPS, AutoShops[shop][asX], AutoShops[shop][asY], AutoShops[shop][asZ], 3.0); SendInfoMessage(playerid, "GPS: A waypoint has been set to the closest auto shop."); } } case 3: { SetCheckpoint(playerid, CHECKPOINT_GPS, g_StaticBuildings[BUILDING_DMV][e_SpawnX], g_StaticBuildings[BUILDING_DMV][e_SpawnY], g_StaticBuildings[BUILDING_DMV][e_SpawnZ], 3.0); SendInfoMessage(playerid, "GPS: A waypoint has been set to the department of motor vehicles."); } case 4: { SetCheckpoint(playerid, CHECKPOINT_GPS, 1041.2220, -1028.3320, 32.1016, 3.0); SendInfoMessage(playerid, "GPS: A waypoint has been set to the modding shop."); } } } return 1; } Dialog:Resign(playerid, response, listitem, inputtext[]) { if (response) { if (Players[playerid][pFaction] != INVALID_ID) { SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "(( %s has resigned from the faction. ))", ReturnNameEx(playerid, 0)); ResetFactionInfo(playerid); } } return 1; } Dialog:EditPaychecks(playerid, response, listitem, inputtext[]) { if (response) { new faction = Players[playerid][pSelected]; if (IsValidFactionID(faction)) { Players[playerid][pEditRank] = listitem + 1; Dialog_Show(playerid, ChangePay, DIALOG_STYLE_INPUT, "{FFFFFF}Change Paycheck", "The current paycheck for rank %i is %s.\n\nPlease input the new paycheck amount to set for this rank:", "Change", "Back", Players[playerid][pEditRank], FormatNumber(GetFactionRankPay(faction, Players[playerid][pEditRank]))); } } return 1; } Dialog:ChangePay(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, ChangePay, DIALOG_STYLE_INPUT, "{FFFFFF}Change Paycheck", "The current paycheck for rank %i is %s.\n\nPlease input the new paycheck amount to set for this rank:", "Change", "Back", Players[playerid][pEditRank], FormatNumber(GetFactionRankPay(faction, Players[playerid][pEditRank]))); } else if (amount < 1) { return Dialog_Show(playerid, ChangePay, DIALOG_STYLE_INPUT, "{FFFFFF}Change Paycheck", "The paycheck can't be below $0.\n\nThe current paycheck for rank %i is %s.\n\nPlease input the new paycheck amount to set for this rank:", "Change", "Back", Players[playerid][pEditRank], FormatNumber(GetFactionRankPay(faction, Players[playerid][pEditRank]))); } else { Factions[faction][fcPaycheck][Players[playerid][pEditRank]-1] = amount; SaveFactionRank(faction, Players[playerid][pEditRank]-1); SendInfoMessage(playerid, "You have changed the paycheck of rank %i to: %s.", Players[playerid][pEditRank], FormatNumber(amount)); ShowPaycheckEditMenu(playerid, faction); } } else { ShowPaycheckEditMenu(playerid, faction); } return 1; } Dialog:EditRanks(playerid, response, listitem, inputtext[]) { if (response) { new faction = Players[playerid][pSelected]; if (IsValidFactionID(faction)) { Players[playerid][pEditRank] = listitem + 1; Dialog_Show(playerid, ChangeRank, DIALOG_STYLE_INPUT, "{FFFFFF}Change Rank", "The rank name for rank %i is %s.\n\nPlease input the new name for this rank:", "Change", "Back", Players[playerid][pEditRank], GetFactionRank(faction, Players[playerid][pEditRank])); } } return 1; } Dialog:ChangeRank(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, ChangeRank, DIALOG_STYLE_INPUT, "{FFFFFF}Change Rank", "The rank name for rank %i is %s.\n\nPlease input the new name for this rank:", "Change", "Back", Players[playerid][pEditRank], GetFactionRank(faction, Players[playerid][pEditRank])); } else if (strlen(inputtext) > MAX_RANK_NAME) { return Dialog_Show(playerid, ChangeRank, DIALOG_STYLE_INPUT, "{FFFFFF}Change Rank", "The rank name can't contain over "#MAX_RANK_NAME" characters.\n\nThe rank name for rank %i is %s.\n\nPlease input the new name for this rank:", "Change", "Back", Players[playerid][pEditRank], GetFactionRank(faction, Players[playerid][pEditRank])); } else { strcpy(Ranks[faction][Players[playerid][pEditRank]-1], inputtext, MAX_RANK_NAME); SaveFactionRank(faction, Players[playerid][pEditRank]-1); SendInfoMessage(playerid, "You have changed the name of rank %i to: %s.", Players[playerid][pEditRank], inputtext); ShowRankEditMenu(playerid, faction); } } else { ShowRankEditMenu(playerid, faction); } return 1; } Dialog:Weapon(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { switch (Players[playerid][pSelected]) { case WEAPON_MELEE: { new item = AddItemToInventory(playerid, GetWeaponItemName(Weapons[playerid][wMelee])); if (item == INVALID_ID) { return SendErrorMessage(playerid, "There is no more room in your inventory."); } else { SendInfoMessage(playerid, "You have unequipped your %s.", GetWeapon(Weapons[playerid][wMelee])); SetPlayerWeapon(playerid, WEAPON_MELEE, 0); ShowWeaponMenu(playerid); } } case WEAPON_PRIMARY: { new item = AddItemToInventory(playerid, GetWeaponItemName(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo], Weapons[playerid][wPrimarySerial]); if (item == INVALID_ID) { return SendErrorMessage(playerid, "There is no more room in your inventory."); } else { SendInfoMessage(playerid, "You have unequipped your %s (%i ammo).", GetWeapon(Weapons[playerid][wPrimary]), Weapons[playerid][wPrimaryAmmo]); SetPlayerWeapon(playerid, WEAPON_PRIMARY, 0); ShowWeaponMenu(playerid); } } case WEAPON_SECONDARY: { new item = AddItemToInventory(playerid, GetWeaponItemName(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo], Weapons[playerid][wSecondarySerial]); if (item == INVALID_ID) { return SendErrorMessage(playerid, "There is no more room in your inventory."); } else { SendInfoMessage(playerid, "You have unequipped your %s (%i ammo).", GetWeapon(Weapons[playerid][wSecondary]), Weapons[playerid][wSecondaryAmmo]); SetPlayerWeapon(playerid, WEAPON_SECONDARY, 0); ShowWeaponMenu(playerid); } } case WEAPON_TERTIARY: { new item = AddItemToInventory(playerid, GetWeaponItemName(Weapons[playerid][wTertiary]), Weapons[playerid][wTertiaryAmmo], Weapons[playerid][wTertiarySerial]); if (item == INVALID_ID) { return SendErrorMessage(playerid, "There is no more room in your inventory."); } else { SendInfoMessage(playerid, "You have unequipped your %s (%i ammo).", GetWeapon(Weapons[playerid][wTertiary]), Weapons[playerid][wTertiaryAmmo]); SetPlayerWeapon(playerid, WEAPON_TERTIARY, 0); ShowWeaponMenu(playerid); } } } } case 1: { new weaponid = GetPlayerWeaponID(playerid, Players[playerid][pSelected]); if (!weaponid) { return SendErrorMessage(playerid, "There is no weapon in this slot."); } else if (!IsHolsterWeapon(weaponid)) { return SendErrorMessage(playerid, "This weapon cannot be attached to your body."); } else { ShowMenuForWeapon(playerid, Players[playerid][pSelected]); } } case 2: { new weaponid = GetPlayerWeaponID(playerid, Players[playerid][pSelected]); if (!weaponid) { return SendErrorMessage(playerid, "There is no weapon in this slot."); } DiscardWeapon(playerid, Players[playerid][pSelected]); } } } return 1; } Dialog:WeaponList(playerid, response, listitem, inputtext[]) { new type = Players[playerid][pChoose]; Players[playerid][pChoose] = CHOOSE_TYPE_NONE; if (response) { new weaponid = GetPlayerWeaponID(playerid, listitem), ammo = GetPlayerWeaponAmmo(playerid, listitem); if (!weaponid) { return SendErrorMessage(playerid, "There is no weapon in this slot."); } switch (type) { case CHOOSE_TYPE_NONE: { switch (listitem) { case 0: { Players[playerid][pSelected] = WEAPON_MELEE; Dialog_Show(playerid, Weapon, DIALOG_STYLE_LIST, "{FFFFFF}Melee Weapon", "Add to Inventory\nAdjust Weapon\nDrop Weapon", "Select", "Back"); } case 1: { Players[playerid][pSelected] = WEAPON_PRIMARY; Dialog_Show(playerid, Weapon, DIALOG_STYLE_LIST, "{FFFFFF}Primary Weapon", "Add to Inventory\nAdjust Weapon\nDrop Weapon", "Select", "Back"); } case 2: { Players[playerid][pSelected] = WEAPON_SECONDARY; Dialog_Show(playerid, Weapon, DIALOG_STYLE_LIST, "{FFFFFF}Secondary Weapon", "Add to Inventory\nAdjust Weapon\nDrop Weapon", "Select", "Back"); } case 3: { Players[playerid][pSelected] = WEAPON_TERTIARY; Dialog_Show(playerid, Weapon, DIALOG_STYLE_LIST, "{FFFFFF}Tertiary Weapon", "Add to Inventory\nAdjust Weapon\nDrop Weapon", "Select", "Back"); } } } case CHOOSE_TYPE_TRUNK: { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); Players[playerid][pChoose] = CHOOSE_TYPE_NONE; if (IsValidVehicleID(vehicle)) { if (GetItemInformation(GetWeaponItemName(weaponid), ITEM_INFO_WEIGHT) + GetTrunkTotalWeight(vehicle) > GetTrunkCapacity(vehicle)) { return SendErrorMessage(playerid, "There is no more room in the trunk."); } if (GetNextStoredItemID() == INVALID_ID) { return SendErrorMessage(playerid, "There is no more room in the trunk."); } else { if(Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) { SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You cannot store weapons in the trunk while being in an official faction."); } else { if (ammo > 0) { SendInfoMessage(playerid, "You have stored your %s (%i) in the trunk.", GetWeapon(weaponid), ammo); } else { SendInfoMessage(playerid, "You have stored your %s in the trunk.", GetWeapon(weaponid)); } AddStoredItem(TRANSFER_TO_TRUNK, Vehicles[vehicle][vID], GetWeaponItemName(weaponid), ammo); SetPlayerWeapon(playerid, listitem, 0); ShowActionBubble(playerid, "* %s takes out a weapon and stores it in the trunk.", ReturnNameEx(playerid)); //ShowTrunkItems(playerid, vehicle); } } } } case CHOOSE_TYPE_SAFE: { new safe = Players[playerid][pSafeMenu]; Players[playerid][pChoose] = CHOOSE_TYPE_NONE; if (IsValidFurnitureID(safe) && Furniture[safe][fSafeOpen]) { if (GetItemInformation(GetWeaponItemName(weaponid), ITEM_INFO_WEIGHT) + GetSafeTotalWeight(safe) > MAX_SAFE_WEIGHT) { return SendErrorMessage(playerid, "There is no more room in the safe."); } if (GetNextStoredItemID() == INVALID_ID) { return SendErrorMessage(playerid, "There is no more room in the safe."); } else { if(Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) { SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You cannot store weapons in the trunk while being in an official faction."); } else { if (ammo > 0) { SendInfoMessage(playerid, "You have stored your %s (%i) in the safe.", GetWeapon(weaponid), ammo); } else { SendInfoMessage(playerid, "You have stored your %s in the safe.", GetWeapon(weaponid)); } AddStoredItem(TRANSFER_TO_SAFE, Furniture[safe][fID], GetWeaponItemName(weaponid), ammo); SetPlayerWeapon(playerid, listitem, 0); ShowActionBubble(playerid, "* %s takes out a weapon and stores it in the safe.", ReturnNameEx(playerid)); ShowSafeItems(playerid, safe); } } } } case CHOOSE_TYPE_TRASH: { new trashbin = Players[playerid][pTrashbin]; Players[playerid][pChoose] = CHOOSE_TYPE_NONE; if (IsValidTrashbinID(trashbin)) { if (GetItemInformation(GetWeaponItemName(weaponid), ITEM_INFO_WEIGHT) + GetTrashbinTotalWeight(trashbin) > MAX_TRASHBIN_WEIGHT) { return SendErrorMessage(playerid, "There is no more room in the trashbin."); } if (GetNextStoredItemID() == INVALID_ID) { return SendErrorMessage(playerid, "There is no more room in the trashbin."); } else { if(Players[playerid][pFaction] != INVALID_ID && Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) { SendClientMessage(playerid, -1, "{FF0000}ERROR: {FFFFFF}You cannot store weapons in the trunk while being in an official faction."); } else { if (ammo > 0) { SendInfoMessage(playerid, "You have stored your %s (%i) in the trashbin.", GetWeapon(weaponid), ammo); } else { SendInfoMessage(playerid, "You have stored your %s in the trashbin.", GetWeapon(weaponid)); } AddStoredItem(TRANSFER_TO_TRASH, Trashbins[trashbin][tID], GetWeaponItemName(weaponid), ammo); SetPlayerWeapon(playerid, listitem, 0); ShowActionBubble(playerid, "* %s takes out a weapon and stores it in the trashbin.", ReturnNameEx(playerid)); ShowTrashbinItems(playerid, trashbin); } } } } } } return 1; } Dialog:MyInventory(playerid, response, listitem, inputtext[]) { if (response) { if (!strcmp(inputtext, "Weapon Menu")) { return ShowWeaponMenu(playerid); } if (Weapons[playerid][wMelee] > 0 || Weapons[playerid][wPrimary] > 0 || Weapons[playerid][wSecondary] > 0) { Players[playerid][pSelected] = gListedItems[playerid][listitem - 1]; } else { Players[playerid][pSelected] = gListedItems[playerid][listitem]; } if (!Inventory[playerid][Players[playerid][pSelected]][invExists]) { return 0; } else { switch (Players[playerid][pChoose]) { case CHOOSE_TYPE_NONE: { new string[128]; format(string, sizeof(string), "{33AA33}%s", GetFullItemName(playerid, Players[playerid][pSelected])); if (GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_WEAPON_ID) > 0) { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Equip Item\nGive Item\nDrop Item", "Select", "Close"); } else if (GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_DRUG)) { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Consume\nGive Item\nDrop Item", "Select", "Close"); } else if (!strcmp(Inventory[playerid][Players[playerid][pSelected]][invName], "Mobile Phone") && Inventory[playerid][Players[playerid][pSelected]][invValue] > 0) { if (Players[playerid][pPhone] != Inventory[playerid][Players[playerid][pSelected]][invValue]) { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Set to Primary\nGive Item\nDrop Item", "Select", "Close"); } else { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Unset Primary\nGive Item\nDrop Item", "Select", "Close"); } } else if (!strcmp(Inventory[playerid][Players[playerid][pSelected]][invName], "Mask")) { if (Players[playerid][pMaskID] > 0) { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Put Away\nGive Item\nDrop Item", "Select", "Close"); } else { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Wear Mask\nGive Item\nDrop Item", "Select", "Close"); } } else if (!strcmp(Inventory[playerid][Players[playerid][pSelected]][invName], "Stereo")) { if (Stereos[playerid][pStereoID] != INVALID_ID) { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Put Away\nGive Item\nDrop Item", "Select", "Close"); } else { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Deploy Item\nGive Item\nDrop Item", "Select", "Close"); } } else if (!strcmp(Inventory[playerid][Players[playerid][pSelected]][invName], "Walkie Talkie")) { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Settings\nGive Item\nDrop Item", "Select", "Close"); } else if (!strcmp(Inventory[playerid][Players[playerid][pSelected]][invName], "Portable Radio")) { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Settings\nGive Item\nDrop Item", "Select", "Close"); } else { Dialog_Show(playerid, ItemMenu, DIALOG_STYLE_LIST, string, "Use Item\nGive Item\nDrop Item", "Select", "Close"); } } case CHOOSE_TYPE_TRUNK: { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); Players[playerid][pChoose] = CHOOSE_TYPE_NONE; if (IsValidVehicleID(vehicle)) { new id = AddItemToTrunk(playerid, vehicle, Players[playerid][pSelected]); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no room in the trunk."); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Stored in Trunk', NOW())", ReturnName(playerid), GetStoredItemName(id)); mysql_tquery(gConnection, gExecute); ShowActionBubble(playerid, "* %s stores an item in the trunk.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "{CFCFCF}You have stored an item:{33AA33} %s.", GetStoredItemName(id)); //ShowTrunkItems(playerid, vehicle); } } } case CHOOSE_TYPE_SAFE: { new safe = Players[playerid][pSafeMenu]; Players[playerid][pChoose] = CHOOSE_TYPE_NONE; if (IsValidFurnitureID(safe) && Furniture[safe][fSafeOpen]) { if (GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_WEAPON_ID) >= WEAPON_COLT45 && GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_WEAPON_ID) <= WEAPON_SNIPER) { if (Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) return SendErrorMessage(playerid, "You must be in an illegal faction to store guns in trash bin."); } new id = AddItemToSafe(playerid, safe, Players[playerid][pSelected]); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no room in the safe."); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Stored in Safe', NOW())", ReturnName(playerid), GetStoredItemName(id)); mysql_tquery(gConnection, gExecute); ShowActionBubble(playerid, "* %s stores an item in the safe.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "{CFCFCF}You have stored an item:{33AA33} %s.", GetStoredItemName(id)); ShowSafeItems(playerid, safe); } } } case CHOOSE_TYPE_TRASH: { new trashbin = Players[playerid][pTrashbin]; Players[playerid][pChoose] = CHOOSE_TYPE_NONE; if (IsValidTrashbinID(trashbin)) { if (GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_WEAPON_ID) >= WEAPON_COLT45 && GetItemInformation(Inventory[playerid][Players[playerid][pSelected]][invName], ITEM_INFO_WEAPON_ID) <= WEAPON_SNIPER) { if (Factions[Players[playerid][pFaction]][fcType] != FACTION_ILLEGAL) return SendErrorMessage(playerid, "You must be in an illegal faction to store guns in trash bin."); } new id = AddItemToTrashbin(playerid, trashbin, Players[playerid][pSelected]); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no room in the trashbin."); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Stored in Trashbin', NOW())", ReturnName(playerid), GetStoredItemName(id)); mysql_tquery(gConnection, gExecute); ShowActionBubble(playerid, "* %s stores an item in the trashbin.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "{CFCFCF}You have stored an item:{33AA33} %s.", GetStoredItemName(id)); ShowTrashbinItems(playerid, trashbin); } } } } } } else { Players[playerid][pChoose] = CHOOSE_TYPE_NONE; } return 1; } Dialog:UseCuffs(playerid, response, listitem, inputtext[]) { if (response) { new targetid; if (sscanf(inputtext, "u", targetid)) { return Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "Please input the player that you would like to cuff:", "Cuff", "Cancel"); } else if (!IsPlayerConnected(targetid)) { return Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "You have specified an invalid target.\n\nPlease input the player that you would like to cuff:", "Cuff", "Cancel"); } /*else if (targetid == playerid) { return Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "You can't handcuff yourself!\n\nPlease input the player that you would like to cuff:", "Cuff", "Cancel"); }*/ else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "The target is out of range.\n\nPlease input the player that you would like to cuff:", "Cuff", "Cancel"); } else if (Players[targetid][pHandcuffed]) { return Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "The target is already cuffed.\n\nPlease input the player that you would like to cuff:", "Cuff", "Cancel"); } else { new item = GetInventoryItemID(playerid, "Cuffs"); Players[targetid][pHandcuffed] = 1; Players[targetid][pCuffedBy] = playerid; RemoveItemFromInventory(playerid, item); SetPlayerSpecialAction(targetid, SPECIAL_ACTION_CUFFED); ShowActionBubble(playerid, "* %s secures a pair of cuffs around %s's wrists.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have handcuffed %s. Use /uncuff to remove the cuffs.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "You have been handcuffed by %s.", ReturnNameEx(playerid)); } } return 1; } Dialog:AddEquipment(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { Players[playerid][pSelectedItem] = listitem; Dialog_Show(playerid, AddEquipmentValue, DIALOG_STYLE_INPUT, "{FFFFFF}Equipment Value", "Please enter the value for %s (enter 0 for none):", "Submit", "Back", g_ItemList[Players[playerid][pSelectedItem]][e_ItemName]); } else { ShowEquipmentEditMenu(playerid, faction); } return 1; } Dialog:AddEquipmentValue(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { new value; if(sscanf(inputtext, "i", value) || value < 0) { return Dialog_Show(playerid, AddEquipmentValue, DIALOG_STYLE_INPUT, "{FFFFFF}Equipment Value", "Please enter the value for %s (enter 0 for none):", "Submit", "Back", g_ItemList[Players[playerid][pSelectedItem]][e_ItemName]); } strcpy(FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], g_ItemList[Players[playerid][pSelectedItem]][e_ItemName], MAX_ITEM_NAME); FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue] = value; FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemExists] = 1; SaveFactionEquipment(faction, Players[playerid][pEditEquipment]); if(value) SendInfoMessage(playerid, "You have added %s (%i) to %s's locker.", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue], Factions[faction][fcName]); else SendInfoMessage(playerid, "You have added %s to %s's locker.", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], Factions[faction][fcName]); ShowEquipmentEditMenu(playerid, faction); } else { ShowEquipmentEditMenu(playerid, faction); } return 1; } Dialog:EditEquipmentItem(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { SendInfoMessage(playerid, "You have changed %s in %s's locker to %s.", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], Factions[faction][fcName], g_ItemList[listitem][e_ItemName]); strcpy(FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], g_ItemList[listitem][e_ItemName], MAX_ITEM_NAME); SaveFactionEquipment(faction, Players[playerid][pEditEquipment]); Dialog_Show(playerid, EquipmentEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Equipment", "Edit Item (%s)\nEdit Value (%i)\nDelete from Locker", "Select", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue]); } else { Dialog_Show(playerid, EquipmentEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Equipment", "Edit Item (%s)\nEdit Value (%i)\nDelete from Locker", "Select", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue]); } return 1; } Dialog:EditEquipmentValue(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { new value; if(sscanf(inputtext, "i", value) || value < 0) { return Dialog_Show(playerid, EditEquipmentValue, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Value", "Please enter the new value for %s (enter 0 for none):", "Submit", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName]); } SendInfoMessage(playerid, "You have set the value of %s in %s's locker to %i.", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], Factions[faction][fcName], value); FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue] = value; SaveFactionEquipment(faction, Players[playerid][pEditEquipment]); Dialog_Show(playerid, EquipmentEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Equipment", "Edit Item (%s)\nEdit Value (%i)\nDelete from Locker", "Select", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue]); } else { Dialog_Show(playerid, EquipmentEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Equipment", "Edit Item (%s)\nEdit Value (%i)\nDelete from Locker", "Select", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue]); } return 1; } Dialog:EquipmentEdit(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { switch(listitem) { case 0: { gListString[0] = 0; for(new i = 0; i < sizeof(g_ItemList); i ++) { strcat(gListString, g_ItemList[i][e_ItemName]); strcat(gListString, "\n"); } Dialog_Show(playerid, EditEquipmentItem, DIALOG_STYLE_LIST, "{FFFFFF}Edit Item", gListString, "Select", "Back"); } case 1: { Dialog_Show(playerid, EditEquipmentValue, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Value", "Please enter the new value for %s (enter 0 for none):", "Submit", "Back", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName]); } case 2: { SendInfoMessage(playerid, "You have deleted %s from %s's locker.", FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName], Factions[faction][fcName]); mysql_format(gConnection, gExecute, sizeof(gExecute), "DELETE FROM rp_factionequipment WHERE itemFactionID = %i AND itemSlot = %i", Factions[faction][fcID], Players[playerid][pEditEquipment]); mysql_tquery(gConnection, gExecute); FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemExists] = 0; FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemName] = 0; FactionEquipment[faction][Players[playerid][pEditEquipment]][fcItemValue] = 0; ShowEquipmentEditMenu(playerid, faction); } } } else { ShowEquipmentEditMenu(playerid, faction); } return 1; } Dialog:EditEquipment(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { Players[playerid][pEditEquipment] = listitem; if(!FactionEquipment[faction][listitem][fcItemExists]) { gListString[0] = 0; for(new i = 0; i < sizeof(g_ItemList); i ++) { strcat(gListString, g_ItemList[i][e_ItemName]); strcat(gListString, "\n"); } Dialog_Show(playerid, AddEquipment, DIALOG_STYLE_LIST, "{FFFFFF}Add Equipment to Locker", gListString, "Select", "Back"); } else { Dialog_Show(playerid, EquipmentEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Equipment", "Edit Item (%s)\nEdit Value (%i)\nDelete from Locker", "Select", "Back", FactionEquipment[faction][listitem][fcItemName], FactionEquipment[faction][listitem][fcItemValue]); } } else { ShowFactionEditMenu(playerid, faction); } return 1; } Dialog:AddAccessoryModel(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { new modelid; if(sscanf(inputtext, "i", modelid)) { return Dialog_Show(playerid, AddAccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Add Accessory - Model ID", "Please enter the model ID for the associated accessory:\n(List of objects: http://wiki.sa-mp.com/wiki/Samp_objects)", "Submit", "Back"); } if(!IsValidModelID(modelid)) { return Dialog_Show(playerid, AddAccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Add Accessory - Model ID", "Invalid model ID.\n\nPlease enter the model ID for the associated accessory:\n(List of objects: http://wiki.sa-mp.com/wiki/Samp_objects)", "Submit", "Back"); } new string[200]; for (new i = 1; i <= 18; i ++) { strcat(string, GetBoneName(i)); strcat(string, "\n"); } Players[playerid][pAccessoryModel] = modelid; Dialog_Show(playerid, AddAccessoryBone, DIALOG_STYLE_LIST, "{FFFFFF}Add Accessory - Select Bone", string, "Select", "Back"); } else { ShowAccessoryEditMenu(playerid, faction); } return 1; } Dialog:AddAccessoryBone(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { strcpy(FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], Players[playerid][pAccessoryName], 32); FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryModel] = Players[playerid][pAccessoryModel]; FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryBone] = listitem + 1; FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryExists] = 1; SaveFactionAccessory(faction, Players[playerid][pEditAccessory]); SendInfoMessage(playerid, "You have added %s (model ID: %i) to %s's locker.", FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryModel], Factions[faction][fcName]); ShowAccessoryEditMenu(playerid, faction); } else { ShowAccessoryEditMenu(playerid, faction); } return 1; } Dialog:AddAccessory(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { if(isnull(inputtext)) { return Dialog_Show(playerid, AddAccessory, DIALOG_STYLE_INPUT, "{FFFFFF}Add Accessory", "Please enter the name of the accessory you wish to add:", "Submit", "Back"); } strcpy(Players[playerid][pAccessoryName], inputtext, 32); Dialog_Show(playerid, AddAccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Add Accessory - Model ID", "Please enter the model ID for the associated accessory:\n(List of objects: http://wiki.sa-mp.com/wiki/Samp_objects)", "Submit", "Back"); } else { ShowAccessoryEditMenu(playerid, faction); } return 1; } Dialog:EditAccessories(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { Players[playerid][pEditAccessory] = listitem; if(!FactionAccessories[faction][listitem][fcAccessoryExists]) { Dialog_Show(playerid, AddAccessory, DIALOG_STYLE_INPUT, "{FFFFFF}Add Accessory", "Please enter the name of the accessory you wish to add:", "Submit", "Back"); } else { Dialog_Show(playerid, AccessoryEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit Accessory", "Edit Name (%s)\nEdit Model (%i)\nEdit Bone (%s)\nDelete from Locker", "Select", "Back", FactionAccessories[faction][listitem][fcAccessoryName], FactionAccessories[faction][listitem][fcAccessoryModel], GetBoneName(FactionAccessories[faction][listitem][fcAccessoryBone])); } } else { ShowFactionEditMenu(playerid, faction); } return 1; } Dialog:AccessoryEdit(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { switch(listitem) { case 0: { Dialog_Show(playerid, AccessoryName, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Accessory Name", "Please enter the new name of this accessory:", "Submit", "Back"); } case 1: { Dialog_Show(playerid, AccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Accessory Model", "Please enter the new model ID of this accessory:", "Submit", "Back"); } case 2: { new string[200]; for (new i = 1; i <= 18; i ++) { strcat(string, GetBoneName(i)); strcat(string, "\n"); } Dialog_Show(playerid, AccessoryBone, DIALOG_STYLE_LIST, "{FFFFFF}Edit Accessory Bone", string, "Select", "Back"); } case 3: { SendInfoMessage(playerid, "You have deleted %s (model ID: %i) from %s's locker.", FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryModel], Factions[faction][fcName]); mysql_format(gConnection, gExecute, sizeof(gExecute), "DELETE FROM rp_factionaccessories WHERE accessoryFactionID = %i AND accessorySlot = %i", Factions[faction][fcID], Players[playerid][pEditAccessory]); mysql_tquery(gConnection, gExecute); FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryExists] = 0; FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName] = 0; FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryModel] = 0; FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryBone] = 0; ShowAccessoryEditMenu(playerid, faction); } } } else { ShowAccessoryEditMenu(playerid, faction); } return 1; } Dialog:AccessoryName(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { if(isnull(inputtext) || strlen(inputtext) > 32) { return Dialog_Show(playerid, AccessoryName, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Accessory Name", "Please enter the new name of this accessory:", "Submit", "Back"); } SendInfoMessage(playerid, "You have changed the name of %s in %s's locker to %s.", FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], Factions[faction][fcName], inputtext); strcpy(FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], inputtext, 32); SaveFactionAccessory(faction, Players[playerid][pEditAccessory]); ShowAccessoryEditMenu(playerid, faction); } else { ShowAccessoryEditMenu(playerid, faction); } return 1; } Dialog:AccessoryModel(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { new modelid; if(sscanf(inputtext, "i", modelid)) { return Dialog_Show(playerid, AccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Accessory Model", "Please enter the new model ID of this accessory:", "Submit", "Back"); } if(!IsValidModelID(modelid)) { return Dialog_Show(playerid, AccessoryModel, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Accessory Model", "Invalid model ID.\n\nPlease enter the new model ID of this accessory:", "Submit", "Back"); } SendInfoMessage(playerid, "You have changed the model ID of %s in %s's locker to %i.", FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], Factions[faction][fcName], modelid); FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryModel] = modelid; SaveFactionAccessory(faction, Players[playerid][pEditAccessory]); ShowAccessoryEditMenu(playerid, faction); } else { ShowAccessoryEditMenu(playerid, faction); } return 1; } Dialog:AccessoryBone(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if(!IsValidFactionID(faction)) { return 0; } if(response) { new boneid = listitem + 1; SendInfoMessage(playerid, "You have changed the bone of %s in %s's locker to %s.", FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryName], Factions[faction][fcName], GetBoneName(boneid)); FactionAccessories[faction][Players[playerid][pEditAccessory]][fcAccessoryBone] = boneid; SaveFactionAccessory(faction, Players[playerid][pEditAccessory]); ShowAccessoryEditMenu(playerid, faction); } else { ShowAccessoryEditMenu(playerid, faction); } return 1; } Dialog:EditUniform(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { new skinid; if (sscanf(inputtext, "i", skinid)) { return Dialog_Show(playerid, EditUniform, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Uniform", "Please input a skin ID for uniform %i (use 0 to disable):", "Submit", "Cancel", Players[playerid][pEditUniform] + 1); } else { Factions[faction][fcUniforms][Players[playerid][pEditUniform]] = skinid; SaveFactionUniform(faction, Players[playerid][pEditUniform]); SendInfoMessage(playerid, "You have set the skin ID for uniform %i to %i.", Players[playerid][pEditUniform] + 1, skinid); ShowUniformEditMenu(playerid, faction); } } else { ShowUniformEditMenu(playerid, faction); } return 1; } Dialog:EditUniforms(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { Players[playerid][pEditUniform] = listitem; Dialog_Show(playerid, EditUniform, DIALOG_STYLE_INPUT, "{FFFFFF}Edit Uniform", "Please input a skin ID from 1-311 for uniform %i (use 0 to disable):", "Submit", "Cancel", Players[playerid][pEditUniform] + 1); } else { ShowFactionEditMenu(playerid, faction); } return 1; } Dialog:FactionName(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, FactionName, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Name", "The current name for this faction is %s.\n\nPlease input the new name for this faction below:", "Submit", "Back", Factions[faction][fcName]); } else if (strlen(inputtext) > 32) { return Dialog_Show(playerid, FactionName, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Name", "The faction name must be below 32 characters.\n\nThe current name for this faction is %s.\n\nPlease input the new name for this faction below:", "Submit", "Back", Factions[faction][fcName]); } else { strcpy(Factions[faction][fcName], inputtext, 32); SaveFaction(faction); SendAdminMessage(COLOR_RED, "Admin: %s has changed faction %i's name to \"%s\".", ReturnNameEx(playerid, 0), faction, inputtext); } } else { ShowFactionEditMenu(playerid, faction); } return 1; } Dialog:FactionType(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { Factions[faction][fcType] = listitem + 1; SaveFaction(faction); SendAdminMessage(COLOR_RED, "Admin: %s has changed faction %i's type to %s (%i).", ReturnNameEx(playerid, 0), faction, GetFactionType(Factions[faction][fcType]), Factions[faction][fcType]); } else { ShowFactionEditMenu(playerid, faction); } return 1; } Dialog:FactionColor(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { new color; if (sscanf(inputtext, "h", color)) { return Dialog_Show(playerid, FactionColor, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Color", "The color must be in the 0xRRGGBBAA format.\n\nThe current color for this faction is %s{AAC4E5}.\n\nPlease input the new color for this faction below (0xRRGGBBAA):", "Submit", "Back", GetFactionEmbedColor(faction)); } else { Factions[faction][fcColor] = color & ~0xFF; SaveFaction(faction); SendAdminMessage(COLOR_RED, "Admin: %s has changed faction %i's color to %s.", ReturnNameEx(playerid, 0), faction, GetFactionEmbedColor(faction)); } } else { ShowFactionEditMenu(playerid, faction); } return 1; } Dialog:FactionMaxRanks(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { new maxranks; if (sscanf(inputtext, "i", maxranks)) { return Dialog_Show(playerid, FactionMaxRanks, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Ranks", "The current maximum ranks for this faction is %i.\n\nPlease input the maximum amount of ranks for this faction below:", "Submit", "Back", Factions[faction][fcMaxRanks]); } else if (maxranks < 1 || maxranks > MAX_FACTION_RANKS) { return Dialog_Show(playerid, FactionMaxRanks, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Ranks", "The maximum ranks must range between 1 and %i.\n\nThe current maximum ranks for this faction is %i.\n\nPlease input the maximum amount of ranks for this faction below:", "Submit", "Back", MAX_FACTION_RANKS, Factions[faction][fcMaxRanks]); } else { foreach (new i : Player) { if (Players[i][pFaction] == faction && Players[i][pFactionRank] > maxranks) { Players[i][pFactionRank] = maxranks; } } Factions[faction][fcMaxRanks] = maxranks; SaveFaction(faction); SendAdminMessage(COLOR_RED, "Admin: %s has changed faction %i's maximum rank count to %i.", ReturnNameEx(playerid, 0), faction, maxranks); } } else { ShowFactionEditMenu(playerid, faction); } return 1; } Dialog:EditFaction(playerid, response, listitem, inputtext[]) { new faction = Players[playerid][pSelected]; if (!IsValidFactionID(faction)) { return 0; } if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, FactionName, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Name", "The current name for this faction is %s.\n\nPlease input the new name for this faction below:", "Submit", "Back", Factions[faction][fcName]); } case 1: { new types[128]; for (new i = 1; i <= 5; i ++) { format(types, sizeof(types), "%s\n%s", types, GetFactionType(i)); } Dialog_Show(playerid, FactionType, DIALOG_STYLE_LIST, "{FFFFFF}Faction Type", types, "Select", "Back"); } case 2: { Dialog_Show(playerid, FactionColor, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Color", "The current color for this faction is %s{AAC4E5}.\n\nPlease input the new color for this faction below (0xRRGGBBAA)", "Submit", "Back", GetFactionEmbedColor(faction)); } case 3: { Dialog_Show(playerid, FactionMaxRanks, DIALOG_STYLE_INPUT, "{FFFFFF}Faction Ranks", "The current maximum ranks for this faction is %i.\n\nPlease input the maximum amount of ranks for this faction below:", "Submit", "Back", Factions[faction][fcMaxRanks]); } case 4: { if (Factions[faction][fcType] != FACTION_ILLEGAL) { SendErrorMessage(playerid, "This feature is only available for illegal factions."); } else { ShowFactionRights(playerid, faction); } } case 5: { ShowRankEditMenu(playerid, faction); } case 6: { if (Factions[faction][fcType] == FACTION_ILLEGAL) { SendErrorMessage(playerid, "This feature is not available for illegal factions."); } else { ShowPaycheckEditMenu(playerid, faction); } } case 7: { GetPlayerPos(playerid, Factions[faction][fcSpawnX], Factions[faction][fcSpawnY], Factions[faction][fcSpawnZ]); GetPlayerFacingAngle(playerid, Factions[faction][fcSpawnA]); Factions[faction][fcSpawnInt] = GetPlayerInterior(playerid); Factions[faction][fcSpawnWorld] = GetPlayerVirtualWorld(playerid); SaveFaction(faction); SendAdminMessage(COLOR_RED, "Admin: %s has edited the faction spawn of faction %i.", ReturnNameEx(playerid, 0), faction); } case 8: { GetPlayerPos(playerid, Factions[faction][fcLockerX], Factions[faction][fcLockerY], Factions[faction][fcLockerZ]); Factions[faction][fcLockerInt] = GetPlayerInterior(playerid); Factions[faction][fcLockerWorld] = GetPlayerVirtualWorld(playerid); UpdateFaction(faction); SaveFaction(faction); SendAdminMessage(COLOR_RED, "Admin: %s has edited the locker spawn of faction %i.", ReturnNameEx(playerid, 0), faction); } case 9: { ShowUniformEditMenu(playerid, faction); } case 10: { if(Factions[faction][fcType] == FACTION_ILLEGAL) { return SendErrorMessage(playerid, "You can't edit equipment for illegal faction lockers."); } ShowEquipmentEditMenu(playerid, faction); } case 11: { if(Factions[faction][fcType] == FACTION_ILLEGAL) { return SendErrorMessage(playerid, "You can't edit accessories for illegal faction lockers."); } ShowAccessoryEditMenu(playerid, faction); } } } return 1; } Dialog:PaymentType(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { Players[playerid][pPaymentType] = PAYMENT_TYPE_CASH; Players[playerid][pBankAccount] = 0; SendInfoMessage(playerid, "Your future payments will now be made with cash."); } case 1: { new success = ShowBankAccounts(playerid, BANK_PAYMENT_TYPE); if (!success) { SendErrorMessage(playerid, "You need a registered bank account to do this."); } } } } return 1; } Dialog:UseAmmunition(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pSelected], bullets = Inventory[playerid][id][invValue]; if (response) { switch (listitem) { case 0: { if (22 <= Weapons[playerid][wPrimary] <= 34) { new clip = GetClipCapacity(Weapons[playerid][wPrimary]); if (strcmp(GetAmmunitionType(Weapons[playerid][wPrimary]), Inventory[playerid][id][invName]) != 0) { return SendErrorMessage(playerid, "This weapon doesn't use that type of ammunition."); } else if ((clip == 0) || (bullets <= clip)) { RemoveItemFromInventory(playerid, id); GiveWeaponAmmo(playerid, WEAPON_PRIMARY, bullets); SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", bullets); } else { RemoveItemValue(playerid, id, clip); GiveWeaponAmmo(playerid, WEAPON_PRIMARY, clip); SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", clip); } SetReloadAnimation(playerid, Weapons[playerid][wPrimary]); ShowActionBubble(playerid, "* %s loads some ammunition in their weapon.", ReturnNameEx(playerid)); } } case 1: { if (22 <= Weapons[playerid][wSecondary] <= 34) { new clip = GetClipCapacity(Weapons[playerid][wSecondary]); if (strcmp(GetAmmunitionType(Weapons[playerid][wSecondary]), Inventory[playerid][id][invName]) != 0) { return SendErrorMessage(playerid, "This weapon doesn't use that type of ammunition."); } else if ((clip == 0) || (bullets <= clip)) { RemoveItemFromInventory(playerid, id); GiveWeaponAmmo(playerid, WEAPON_SECONDARY, bullets); SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", bullets); } else { RemoveItemValue(playerid, id, clip); GiveWeaponAmmo(playerid, WEAPON_SECONDARY, clip); SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", clip); } SetReloadAnimation(playerid, Weapons[playerid][wSecondary]); ShowActionBubble(playerid, "* %s loads some ammunition in their weapon.", ReturnNameEx(playerid)); } } case 2: { if (22 <= Weapons[playerid][wTertiary] <= 34) { new clip = GetClipCapacity(Weapons[playerid][wTertiary]); if (strcmp(GetAmmunitionType(Weapons[playerid][wTertiary]), Inventory[playerid][id][invName]) != 0) { return SendErrorMessage(playerid, "This weapon doesn't use that type of ammunition."); } else if ((clip == 0) || (bullets <= clip)) { RemoveItemFromInventory(playerid, id); GiveWeaponAmmo(playerid, WEAPON_TERTIARY, bullets); SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", bullets); } else { RemoveItemValue(playerid, id, clip); GiveWeaponAmmo(playerid, WEAPON_TERTIARY, clip); SendInfoMessage(playerid, "{CFCFCF}You have loaded {33AA33}%i{CFCFCF} ammunition into your weapon.", clip); } SetReloadAnimation(playerid, Weapons[playerid][wTertiary]); ShowActionBubble(playerid, "* %s loads some ammunition in their weapon.", ReturnNameEx(playerid)); } } } } return 1; } /* WeedCheck(playerid) { new id = GetClosestWeedPlant(playerid); if (id != INVALID_ID) { if (0 <= WeedPlants[id][wpTime] <= 19) { Dialog_Show(playerid, ExamineWeedPlant, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weed Plant", "{6688FF}Stage:\n{FFFFFF}Growing", "Pick up", "Close"); } else if (20 <= WeedPlants[id][wpTime] <= 49) { Dialog_Show(playerid, ExamineWeedPlant, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weed Plant", "{6688FF}Stage:\n{FFFFFF}Ready", "Pick up", "Close"); } else if (50 <= WeedPlants[id][wpTime] <= 60) { Dialog_Show(playerid, ExamineWeedPlant, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weed Plant", "{6688FF}Stage:\n{FFFFFF}Dead", "Pick up", "Close"); } } } */ Dialog:ExamineWeedPlant(playerid, response, listitem, inputtext[]) { if (response) { new id = GetClosestWeedPlant(playerid); if (id == INVALID_ID) { return 0; } else { if (0 <= WeedPlants[id][wpTime] <= 899) { ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); SendInfoMessage(playerid, "You pick up the weed plant but it yields nothing."); DeleteWeedPlant(id); } else if (900 <= WeedPlants[id][wpTime] <= 1199) { new weed = Random(1,5); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); SendInfoMessage(playerid, "You harvest %i weed from the plant.", weed); DeleteWeedPlant(id); AddItemToInventory(playerid, "Marijuana", weed); } else if (1200 <= WeedPlants[id][wpTime] <= 1399) { new weed = Random(2,6); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); SendInfoMessage(playerid, "You harvest %i weed from the plant.", weed); DeleteWeedPlant(id); AddItemToInventory(playerid, "Marijuana", weed); } else if (1400 <= WeedPlants[id][wpTime] <= 1599) { new weed = Random(3,7); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); SendInfoMessage(playerid, "You harvest %i weed from the plant.", weed); DeleteWeedPlant(id); AddItemToInventory(playerid, "Marijuana", weed); } else if (WeedPlants[id][wpTime] > 1600) { new weed = Random(4,8); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); SendInfoMessage(playerid, "You harvest %i weed from the plant.", weed); DeleteWeedPlant(id); AddItemToInventory(playerid, "Marijuana", weed); } } } return 1; } Dialog:ExamineShell(playerid, response, listitem, inputtext[]) { if (response) { new id = GetClosestShell(playerid); if (id == INVALID_ID) { return 0; } else { ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); ShowActionBubble(playerid, "* %s picks up the shell casing.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have picked up the shell casing (serial: %s).", FormatSerial(ShellCasings[id][scSerial])); DeleteShellCasing(id); } } return 1; } Dialog:BuyVehicle(playerid, response, listitem, inputtext[]) { new company = GetCurrentCompany(playerid); if (!IsValidCompanyID(company) || Companies[company][cType] != COMPANY_DEALERSHIP) { return 0; } if (response) { Players[playerid][pSelected] = gListedItems[playerid][listitem]; Dialog_Show(playerid, VehicleConfirm, DIALOG_STYLE_MSGBOX, "{FFFFFF}Confirm purchase", "Are you sure you want to purchase a %s for {00FF00}%s{AAC4E5}?", "Yes", "No", GetVehicleModelName(DealershipCars[Players[playerid][pSelected]][dcModel]), FormatNumber(DealershipCars[Players[playerid][pSelected]][dcPrice])); } return 1; } Dialog:EditCar(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pSelected]; if (!IsValidVehicleID(id)) { return 0; } if (response) { switch (listitem) { case 0: { GetPlayerPos(playerid, Vehicles[id][vSpawn][0], Vehicles[id][vSpawn][1], Vehicles[id][vSpawn][2]); GetPlayerFacingAngle(playerid, Vehicles[id][vSpawn][3]); UpdateVehicle(id); SaveVehicle(id); SetFreezePos(playerid, Vehicles[id][vSpawn][0], Vehicles[id][vSpawn][1], Vehicles[id][vSpawn][2] + 2.0, 1000); SendInfoMessage(playerid, "You have adjusted the spawn for vehicle %i.", Vehicles[id][vVehicle]); } case 1: { Dialog_Show(playerid, VehicleFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Faction", "Please input the faction ID for this vehicle (use -1 to reset):", "Submit", "Back"); } case 2: { Dialog_Show(playerid, VehicleColor1, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 1", "Please input the first color to set for this vehicle:", "Submit", "Cancel"); } case 3: { Dialog_Show(playerid, VehicleColor2, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 2", "Please input the second color to set for this vehicle:", "Submit", "Cancel"); } case 4: { if (!Vehicles[id][vSiren]) { Vehicles[id][vSiren] = 1; UpdateVehicle(id); SaveVehicle(id); SendInfoMessage(playerid, "You have enabled the siren for vehicle %i.", Vehicles[id][vVehicle]); } else { Vehicles[id][vSiren] = 0; UpdateVehicle(id); SaveVehicle(id); SendInfoMessage(playerid, "You have removed the siren for vehicle %i.", Vehicles[id][vVehicle]); } } } } return 1; } Dialog:VehicleFaction(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pSelected]; if (!IsValidVehicleID(id)) { return 0; } if (response) { new faction; if (sscanf(inputtext, "i", faction)) { return Dialog_Show(playerid, VehicleFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Faction", "Please input the faction ID for this vehicle (use -1 to reset):", "Submit", "Back"); } else { if (faction != INVALID_ID && !IsValidFactionID(faction)) { return Dialog_Show(playerid, VehicleFaction, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Faction", "You have specified an invalid faction ID.\n\nPlease input the faction ID for this vehicle (use -1 to reset):", "Submit", "Back"); } else { if (faction == INVALID_ID) { Vehicles[id][vFaction] = 0; SaveVehicle(id); SendInfoMessage(playerid, "You have reset the faction of vehicle %i.", Vehicles[id][vVehicle]); } else { Vehicles[id][vFaction] = Factions[faction][fcID]; SaveVehicle(id); SendInfoMessage(playerid, "You have set the faction of vehicle %i to %s.", Vehicles[id][vVehicle], Factions[faction][fcName]); } } } } return 1; } Dialog:VehicleColor1(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pSelected]; if (!IsValidVehicleID(id)) { return 0; } if (response) { new color; if (sscanf(inputtext, "i", color)) { return Dialog_Show(playerid, VehicleColor1, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 1", "Please input the first color to set for this vehicle:", "Submit", "Cancel"); } else if (color < 0 || color > 255) { return Dialog_Show(playerid, VehicleColor1, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 1", "The color must range between 0 and 255.\n\nPlease input the first color to set for this vehicle:", "Submit", "Cancel"); } else { Vehicles[id][vColor1] = color; SaveVehicle(id); ChangeVehicleColor(Vehicles[id][vVehicle], Vehicles[id][vColor1], Vehicles[id][vColor2]); SendInfoMessage(playerid, "You have changed the first color of vehicle %i to: #%i.", Vehicles[id][vVehicle], color); } } return 1; } Dialog:VehicleColor2(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pSelected]; if (!IsValidVehicleID(id)) { return 0; } if (response) { new color; if (sscanf(inputtext, "i", color)) { return Dialog_Show(playerid, VehicleColor2, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 2", "Please input the second color to set for this vehicle:", "Submit", "Cancel"); } else if (color < 0 || color > 255) { return Dialog_Show(playerid, VehicleColor2, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle color 2", "The color must range between 0 and 255.\n\nPlease input the second color to set for this vehicle:", "Submit", "Cancel"); } else { Vehicles[id][vColor2] = color; SaveVehicle(id); ChangeVehicleColor(Vehicles[id][vVehicle], Vehicles[id][vColor1], Vehicles[id][vColor2]); SendInfoMessage(playerid, "You have changed the second color of vehicle %i to: #%i.", Vehicles[id][vVehicle], color); } } return 1; } Dialog:PumpFuel(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pSelected]; if (!IsValidPumpID(id)) { return 0; } if (response) { new Float:amount; if (sscanf(inputtext, "f", amount)) { return Dialog_Show(playerid, PumpFuel, DIALOG_STYLE_INPUT, "{FFFFFF}Pump fuel", "Please input the amount of fuel to set for this pump:", "Submit", "Cancel"); } else if (amount < 0.0) { return Dialog_Show(playerid, PumpFuel, DIALOG_STYLE_INPUT, "{FFFFFF}Pump fuel", "The amount can't be below 0.\n\nPlease input the amount of fuel to set for this pump:", "Submit", "Cancel"); } else { GasPumps[id][gpFuel] = amount; UpdateGasPump(id); SaveGasPump(id); SendInfoMessage(playerid, "You have set the fuel amount for pump %i to: %.2f gallons.", id, amount); } } return 1; } Dialog:EditPump(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pSelected]; if (!IsValidPumpID(id)) { return 0; } if (response) { switch (listitem) { case 0: { EditDynamicObjectEx(playerid, EDIT_TYPE_PUMP, GasPumps[id][gpObject], id); SendInfoMessage(playerid, "Click on the disk icon to save changes."); } case 1: { Dialog_Show(playerid, PumpFuel, DIALOG_STYLE_INPUT, "{FFFFFF}Pump fuel", "Please input the amount of fuel to set for this pump:", "Submit", "Back"); } } } return 1; } Dialog:SafeMenu(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pSafeMenu]; if (!IsValidFurnitureID(id) || !Furniture[id][fSafeOpen]) { return 0; } if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, SafeMoney, DIALOG_STYLE_LIST, "{FFFFFF}Stored money", "Withdraw (%s)\nDeposit", "Select", "Back", FormatNumber(Furniture[id][fMoney])); } case 1: { Dialog_Show(playerid, SetCode, DIALOG_STYLE_INPUT, "{FFFFFF}Security code", "Please input the new security code to set for this safe:", "Submit", "Back"); } case 2: { ShowSafeItems(playerid, id); } case 3: { Furniture[id][fSafeOpen] = 0; UpdateDynamic3DTextLabelText(Furniture[id][fText], COLOR_GREY, "Status: {FF5030}Closed{AFAFAF}\nPress Y to use safe"); SendInfoMessage(playerid, "You have closed the safe."); } } } return 1; } Dialog:SetCode(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pSafeMenu]; if (!IsValidFurnitureID(id) || !Furniture[id][fSafeOpen]) { return 0; } if (response) { new code; if (sscanf(inputtext, "i", code)) { return Dialog_Show(playerid, SetCode, DIALOG_STYLE_INPUT, "{FFFFFF}Security code", "Please input the new security code to set for this safe:", "Submit", "Back"); } else if (code < 0) { return Dialog_Show(playerid, SetCode, DIALOG_STYLE_INPUT, "{FFFFFF}Security code", "The code can't be below 0.\n\nPlease input the new security code to set for this safe:", "Submit", "Back"); } else { Furniture[id][fCode] = code; SaveFurniture(id); ShowSafeMenu(playerid, id); SendInfoMessage(playerid, "You have set the security code to: %i.", code); } } return 1; } Dialog:SafeAmount(playerid, response, listitem, inputtext[]) { new safe = Players[playerid][pSafeMenu]; if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen]) { return 0; } if (response) { new item = Players[playerid][pSelected]; if (StoredItems[item][stExists]) { new amount, name[MAX_ITEM_NAME]; strunpack(name, StoredItems[item][stName]); if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, SafeAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]); } else if (amount < 1 || amount > StoredItems[item][stValue]) { return Dialog_Show(playerid, SafeAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "There isn't that much of this item.\n\nItem: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]); } else { new id = AddItemToInventory(playerid, name, amount); if (id == INVALID_ID) { SendErrorMessage(playerid, "There is no more room in the safe."); } else { if (amount < StoredItems[item][stValue]) { format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemValue = itemValue - %i WHERE itemID = %i", amount, StoredItems[item][stID]); StoredItems[item][stValue] -= amount; } else { format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", StoredItems[item][stID]); StoredItems[item][stExists] = 0; } mysql_tquery(gConnection, gExecute); ShowSafeItems(playerid, safe); SendInfoMessage(playerid, "You have withdrawn %s (%i) from the safe.", name, amount); } } } } else { ShowSafeItems(playerid, safe); } return 1; } Dialog:SafeTake(playerid, response, listitem, inputtext[]) { new safe = Players[playerid][pSafeMenu]; if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen]) { return 0; } if (response) { new item = Players[playerid][pSelected]; if (StoredItems[item][stExists]) { new id = RetrieveItem(playerid, TRANSFER_FROM_SAFE, item); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no more room in your inventory."); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Taken from Safe', NOW())", ReturnName(playerid), GetFullItemName(playerid, id)); mysql_tquery(gConnection, gExecute); StoredItems[item][stExists] = 0; ShowActionBubble(playerid, "* %s takes an item from the safe.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have taken an item: %s.", GetFullItemName(playerid, id)); ShowSafeItems(playerid, safe); format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", StoredItems[item][stID]); mysql_tquery(gConnection, gExecute); } } } else { ShowSafeItems(playerid, safe); } return 1; } Dialog:SafeItems(playerid, response, listitem, inputtext[]) { new safe = Players[playerid][pSafeMenu]; if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen]) { return 0; } if (response) { if (listitem == 0) { new success = DisplayInventory(playerid); if (!success) { SendErrorMessage(playerid, "You don't have any items in your inventory."); } else { Players[playerid][pChoose] = CHOOSE_TYPE_SAFE; SendInfoMessage(playerid, "Choose an item to add to the safe."); } } else { new item = gListedItems[playerid][--listitem]; if (StoredItems[item][stExists]) { Players[playerid][pSelected] = item; if (GetItemInformation(StoredItems[item][stName], ITEM_INFO_STACKABLE)) { Dialog_Show(playerid, SafeAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]); } else { Dialog_Show(playerid, SafeTake, DIALOG_STYLE_MSGBOX, "{FFFFFF}Item information", "Item: %s\nWeight: %i\n\nAre you sure you want to take this item?", "Yes", "No", GetStoredItemName(item), GetItemInformation(StoredItems[item][stName], ITEM_INFO_WEIGHT)); } } else { SendErrorMessage(playerid, "Sorry! Someone else has taken this item."); } } } else { ShowSafeMenu(playerid, safe); } return 1; } Dialog:SafeMoney(playerid, response, listitem, inputtext[]) { new safe = Players[playerid][pSafeMenu]; if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen]) { return 0; } if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, SafeWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There is currently %s stored in the safe.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney])); } case 1: { Dialog_Show(playerid, SafeDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "There is currently %s stored in the safe.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney])); } } } else { ShowSafeMenu(playerid, safe); } return 1; } Dialog:SafeWithdraw(playerid, response, listitem, inputtext[]) { new safe = Players[playerid][pSafeMenu]; if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen]) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, SafeWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There is currently %s stored in the safe.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney])); } else if (amount < 1 || amount > Furniture[safe][fMoney]) { return Dialog_Show(playerid, SafeWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There isn't that much money in the safe.\n\nThere is currently %s stored in the trunk.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney])); } else { Furniture[safe][fMoney] -= amount; Players[playerid][pPocketMoney] += amount; SaveFurniture(safe); ShowSafeMenu(playerid, safe); ShowActionBubble(playerid, "* %s takes some money from the safe.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have withdrawn %s from the safe (%s remaining).", FormatNumber(amount), FormatNumber(Furniture[safe][fMoney])); new log[128]; format(log, sizeof(log), "%s withdrew %s from safe %i.", ReturnName(playerid), FormatNumber(amount), GetClosestFurniture(playerid, 2.0, 2332)); CreateLog("money", log); if (amount > 29999) { AdminDutyMessage(COLOR_RED, "Admin: %s has withdrawn %s from safe %i.", ReturnNameEx(playerid, 0), FormatNumber(amount), GetClosestFurniture(playerid, 2.0, 2332)); } } } return 1; } Dialog:SafeDeposit(playerid, response, listitem, inputtext[]) { new safe = Players[playerid][pSafeMenu]; if (!IsValidFurnitureID(safe) || !Furniture[safe][fSafeOpen]) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, SafeDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "There is currently %s stored in the safe.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney])); } else if (amount < 1 || amount > Players[playerid][pPocketMoney]) { return Dialog_Show(playerid, SafeDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "You don't have that much money in your pocket.\n\nThere is currently %s stored in the safe.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Furniture[safe][fMoney])); } else { Furniture[safe][fMoney] += amount; Players[playerid][pPocketMoney] -= amount; SaveFurniture(safe); ShowSafeMenu(playerid, safe); ShowActionBubble(playerid, "* %s puts some money in the safe.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have deposited %s into the safe (%s remaining).", FormatNumber(amount), FormatNumber(Furniture[safe][fMoney])); /*format(gExecute, sizeof(gExecute), "INSERT INTO rp_paylogs (Player, Target, Price, Date) VALUES('%s', '%s', %i, NOW())", ReturnName(playerid), ReturnName(targetid), amount); mysql_tquery(gConnection, gExecute);*/ new log[128]; format(log, sizeof(log), "%s deposited %s into safe %i.", ReturnName(playerid), FormatNumber(amount), GetClosestFurniture(playerid, 2.0, 2332)); CreateLog("money", log); if (amount > 10000) { AdminDutyMessage(COLOR_RED, "Admin: %s has deposited %s into safe %i.", ReturnNameEx(playerid, 0), FormatNumber(amount), GetClosestFurniture(playerid, 2.0, 2332)); } } } return 1; } Dialog:SafeCode(playerid, response, listitem, inputtext[]) { new safe = GetClosestFurniture(playerid, 2.0, 2332); if (safe == INVALID_ID) { return 0; } if (response) { new code; if (sscanf(inputtext, "i", code)) { return Dialog_Show(playerid, SafeCode, DIALOG_STYLE_INPUT, "{FFFFFF}Safe code", "Please input the code to unlock this safe:", "Submit", "Cancel"); } else if (code != Furniture[safe][fCode]) { return Dialog_Show(playerid, SafeCode, DIALOG_STYLE_INPUT, "{FFFFFF}Safe code", "Incorrect security code.\n\nPlease input the code to unlock this safe:", "Submit", "Cancel"); } else { Furniture[safe][fSafeOpen] = 1; ShowActionBubble(playerid, "* %s opens the safe and looks inside.", ReturnNameEx(playerid)); UpdateDynamic3DTextLabelText(Furniture[safe][fText], COLOR_GREY, "Status: {33CC33}Opened{AFAFAF}\nPress Y to use safe"); ShowSafeMenu(playerid, safe); SendInfoMessage(playerid, "You have opened the safe."); } } return 1; } Dialog:MySettings(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { Players[playerid][pShowPM] = !Players[playerid][pShowPM]; if (Players[playerid][pShowPM]) { SendInfoMessage(playerid, "You have enabled incoming private messages."); } else { SendInfoMessage(playerid, "You have disabled incoming private messages."); } } case 1: { Players[playerid][pShowSpeed] = !Players[playerid][pShowSpeed]; if (Players[playerid][pShowSpeed]) { SendInfoMessage(playerid, "You have enabled the speedometer."); } else { SendInfoMessage(playerid, "You have disabled the speedometer."); } if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER && IsPoweredVehicle(GetPlayerVehicleID(playerid))) { ShowSpeedometer(playerid, Players[playerid][pShowSpeed]); } } case 2: { Players[playerid][pShowFuel] = !Players[playerid][pShowFuel]; if (Players[playerid][pShowFuel]) { SendInfoMessage(playerid, "You have enabled the fuel gauge."); } else { SendInfoMessage(playerid, "You have disabled the fuel gauge."); } if (GetPlayerState(playerid) == PLAYER_STATE_DRIVER && IsPoweredVehicle(GetPlayerVehicleID(playerid))) { ShowFuelGauge(playerid, Players[playerid][pShowFuel]); } } case 3: { Players[playerid][pShowTime] = !Players[playerid][pShowTime]; if (Players[playerid][pShowTime]) { SendInfoMessage(playerid, "You have enabled the time textdraw."); } else { SendInfoMessage(playerid, "You have disabled the time textdraw."); } ShowTimeForPlayer(playerid, Players[playerid][pShowTime]); } case 4: { Players[playerid][pShowOOC] = !Players[playerid][pShowOOC]; if (Players[playerid][pShowOOC]) { SendInfoMessage(playerid, "You have enabled the OOC chat."); } else { SendInfoMessage(playerid, "You have disabled the OOC chat."); } } case 5: { Players[playerid][pShowSupporter] = !Players[playerid][pShowSupporter]; if (Players[playerid][pShowSupporter]) { SendInfoMessage(playerid, "You have enabled the Supporter chat."); } else { SendInfoMessage(playerid, "You have disabled the Supporter chat."); } } case 6: { Players[playerid][pShowReports] = !Players[playerid][pShowReports]; if (Players[playerid][pShowReports]) { SendInfoMessage(playerid, "You have enabled incoming reports."); } else { SendInfoMessage(playerid, "You have disabled incoming reports."); } } case 7: { Players[playerid][pShowAdmin] = !Players[playerid][pShowAdmin]; if (Players[playerid][pShowAdmin]) { SendInfoMessage(playerid, "You have enabled admin chat."); } else { SendInfoMessage(playerid, "You have disabled admin chat."); } } } ShowSettings(playerid); } return 1; } Dialog:ContactNumber(playerid, response, listitem, inputtext[]) { if (response) { new number; if (sscanf(inputtext, "i", number)) { return Dialog_Show(playerid, ContactNumber, DIALOG_STYLE_INPUT, "{FFFFFF}Contact number", "Please input the number for the contact '%s':", "Submit", "Cancel", gTargetName[playerid]); } else if (number < 1) { return Dialog_Show(playerid, ContactNumber, DIALOG_STYLE_INPUT, "{FFFFFF}Contact number", "You have entered an invalid number.\n\nPlease input the number for the contact '%s':", "Submit", "Cancel", gTargetName[playerid]); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_contacts (Phone, Contact, Number) VALUES(%i, '%s', %i)", Players[playerid][pPhone], mysql_escaped(gTargetName[playerid]), number); mysql_tquery(gConnection, gExecute); ListContacts(playerid); SendInfoMessage(playerid, "You have added a contact: %s (%i).", gTargetName[playerid], number); } } return 1; } Dialog:AddContact(playerid, response, listitem, inputtext[]) { if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, AddContact, DIALOG_STYLE_INPUT, "{FFFFFF}Add contact", "Please input the name of the contact to add below:", "Submit", "Cancel"); } else if (strlen(inputtext) > 24) { return Dialog_Show(playerid, AddContact, DIALOG_STYLE_INPUT, "{FFFFFF}Add contact", "The contact name must be below 24 characters.\n\nPlease input the name of the contact to add below:", "Submit", "Cancel"); } else { strcpy(gTargetName[playerid], inputtext, MAX_PLAYER_NAME); Dialog_Show(playerid, ContactNumber, DIALOG_STYLE_INPUT, "{FFFFFF}Contact number", "Please input the number for the contact '%s':", "Submit", "Cancel", gTargetName[playerid]); } } else { ListContacts(playerid); } return 1; } Dialog:ContactOptions(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { format(gExecute, sizeof(gExecute), "SELECT Contact, Number FROM rp_contacts WHERE ID = %i", Players[playerid][pSelected]); mysql_tquery(gConnection, gExecute, "OnPlayerCallContact", "i", playerid); } case 1: { format(gExecute, sizeof(gExecute), "SELECT Contact, Number FROM rp_contacts WHERE ID = %i", Players[playerid][pSelected]); mysql_tquery(gConnection, gExecute, "OnPlayerTextContact", "i", playerid); } case 2: { format(gExecute, sizeof(gExecute), "DELETE FROM rp_contacts WHERE ID = %i", Players[playerid][pSelected]); mysql_tquery(gConnection, gExecute); ListContacts(playerid); SendInfoMessage(playerid, "You have deleted the selected contact."); } } } else { ListContacts(playerid); } return 1; } Dialog:Contacts(playerid, response, listitem, inputtext[]) { if (response) { if (listitem == 0) { Dialog_Show(playerid, AddContact, DIALOG_STYLE_INPUT, "{FFFFFF}Add contact", "Please input the name of the contact to add below:", "Submit", "Cancel"); } else { Players[playerid][pSelected] = gListedItems[playerid][--listitem]; Dialog_Show(playerid, ContactOptions, DIALOG_STYLE_LIST, "{FFFFFF}Contact options", "Call contact\nText Message\nDelete contact", "Select", "Cancel"); } } return 1; } Dialog:EditAccessory(playerid, response, listitem, inputtext[]) { if (response) { switch (listitem) { case 0: { Accessories[playerid][Players[playerid][pSelected]][aAttached] = !Accessories[playerid][Players[playerid][pSelected]][aAttached]; if (Accessories[playerid][Players[playerid][pSelected]][aAttached]) { SendInfoMessage(playerid, "You have attached your %s.", GetAccessoryName(playerid, Players[playerid][pSelected])); } else { SendInfoMessage(playerid, "You have detached your %s.", GetAccessoryName(playerid, Players[playerid][pSelected])); } AttachObjectsToPlayer(playerid); ListAccessories(playerid); } case 1: { EditAttachedObjectEx(playerid, EDIT_TYPE_ACCESSORY, Players[playerid][pSelected]); Players[playerid][pEditID] = Players[playerid][pSelected]; SendInfoMessage(playerid, "Press ESC to cancel. Click the disk icon to save changes."); } case 2: { SendInfoMessage(playerid, "You have deleted your %s.", GetAccessoryName(playerid, Players[playerid][pSelected])); DeleteAccessory(playerid, Players[playerid][pSelected]); } } } else { ListAccessories(playerid); } return 1; } Dialog:Accessories(playerid, response, listitem, inputtext[]) { if (response) { Players[playerid][pSelected] = gListedItems[playerid][listitem]; if (Accessories[playerid][Players[playerid][pSelected]][aAttached]) { Dialog_Show(playerid, EditAccessory, DIALOG_STYLE_LIST, "{FFFFFF}Edit accessory", "Detach accessory\nEdit position\nDelete accessory", "Select", "Back"); } else { Dialog_Show(playerid, EditAccessory, DIALOG_STYLE_LIST, "{FFFFFF}Edit accessory", "Attach accessory\nEdit position\nDelete accessory", "Select", "Back"); } } return 1; } Dialog:GiveItem(playerid, response, listitem, inputtext[]) { if (response) { new id = Players[playerid][pSelected], name[48], targetid; strcpy(name, GetFullItemName(playerid, id)); if (sscanf(inputtext, "u", targetid)) { return Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "Item: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, id)); } else if (!IsPlayerConnected(targetid)) { return Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "The specified player is invalid.\n\nItem: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, id)); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "You are not close to that player.\n\nItem: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, id)); } else if (IsPlayerNPC(targetid)) { return Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "You can't give items to an NPC.\n\nItem: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, id)); } else if (targetid == playerid) { return Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "You can't give items to yourself.\n\nItem: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, id)); } else if (!strcmp(Inventory[playerid][id][invName], "Mask") && Players[targetid][pHoursOnline] < 10) { return SendErrorMessage(playerid, "The specified player needs 10 playing hours first."); } else { if (GetItemInformation(Inventory[playerid][id][invName], ITEM_INFO_STACKABLE)) { Players[playerid][pGiveDrugs] = targetid; Dialog_Show(playerid, GiveAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Give amount", "Item: %s\nAmount: %i\n\nHow much of this item would you like to give to %s?", "Submit", "Cancel", Inventory[playerid][id][invName], Inventory[playerid][id][invValue], ReturnNameEx(targetid)); } else { new item = TransferItemToPlayer(playerid, targetid, id); if (item == INVALID_ID) { return SendErrorMessage(playerid, "That player doesn't have any room."); } else { if (Players[playerid][pFaction] != INVALID_ID) { foreach (new i : Player) { if (Players[i][pAdminDuty]) { //SendAdminMessage(COLOR_RED, "Admin: %s has given %s to %s.", ReturnNameEx(playerid, 0), name, ReturnNameEx(targetid, 0)); SendFormatMessage(i, COLOR_RED, "Admin: %s has given %s to %s.", ReturnNameEx(playerid, 0), name, ReturnNameEx(targetid, 0)); } } } format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Given to %s', NOW())", ReturnName(playerid), name, ReturnName(targetid)); mysql_tquery(gConnection, gExecute); ShowActionBubble(playerid, "* %s takes out an item and gives it to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have given %s an item: %s.", ReturnNameEx(targetid), name); SendInfoMessage(targetid, "%s has given you an item: %s.", ReturnNameEx(playerid), name); } } } } return 1; } Dialog:GiveAmount(playerid, response, listitem, inputtext[]) { if (response) { new targetid = Players[playerid][pGiveDrugs], id = Players[playerid][pSelected], name[48], amount; strcpy(name, GetFullItemName(playerid, id)); if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, GiveAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Give amount", "Item: %s\nAmount: %i\n\nHow much of this item would you like to give to %s?", "Submit", "Cancel", Inventory[playerid][id][invName], Inventory[playerid][id][invValue], ReturnNameEx(targetid)); } else if (amount < 1 || amount > Inventory[playerid][id][invValue]) { return Dialog_Show(playerid, GiveAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Give amount", "There isn't that much of this item.\n\nItem: %s\nAmount: %i\n\nHow much of this item would you like to give to %s?", "Submit", "Cancel", Inventory[playerid][id][invName], Inventory[playerid][id][invValue], ReturnNameEx(targetid)); } else { new item = AddItemToInventory(targetid, Inventory[playerid][id][invName], amount); if (item == INVALID_ID) { return SendErrorMessage(playerid, "That player doesn't have any room."); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s (%i)', 'Given to %s', NOW())", ReturnName(playerid), Inventory[playerid][id][invName], amount, ReturnName(targetid)); mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "You have given %s (%i) to %s.", Inventory[playerid][id][invName], amount, ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has given you %s (%i).", ReturnNameEx(playerid), Inventory[playerid][id][invName], amount); RemoveItemValue(playerid, id, amount); ShowActionBubble(playerid, "* %s takes out an item and gives it to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid, 0)); } } } return 1; } Dialog:CollectTransfer(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pBank]; if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid)) { return 0; } if (response) { format(gExecute, sizeof(gExecute), "SELECT Sender, Amount FROM rp_transfers WHERE Player = %i AND ID = %i", Players[playerid][pID], gListedItems[playerid][listitem]); mysql_tquery(gConnection, gExecute, "OnPlayerCollectTransfer", "iii", playerid, id, gListedItems[playerid][listitem]); } else { ShowBankAccountMenu(playerid, id); } return 1; } Dialog:BankDeposit(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pBank]; if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid)) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, BankDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to deposit below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); } else if (amount < 1 || amount > Players[playerid][pPocketMoney]) { return Dialog_Show(playerid, BankDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "You don't have that much in your pocket.\n\n'%s' contains a balance of %s.\n\nPlease input the amount of money to deposit below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); } else { BankAccounts[playerid][id][bankBalance] += amount; Players[playerid][pPocketMoney] -= amount; SaveBankAccount(playerid, id); ShowBankAccountMenu(playerid, id); SendInfoMessage(playerid, "You have deposited %s into %s (%s remaining).", FormatNumber(amount), BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); new log[128]; format(log, sizeof(log), "%s deposited %s into bank account: %s.", ReturnName(playerid), FormatNumber(amount), BankAccounts[playerid][id][bankName]); CreateLog("money", log); } } else { ShowBankAccountMenu(playerid, id); } return 1; } Dialog:BankWithdraw(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pBank]; if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid)) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, BankWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); } else if (amount < 1 || amount > BankAccounts[playerid][id][bankBalance]) { return Dialog_Show(playerid, BankWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There isn't that much money in the bank account.\n\n'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); } else { BankAccounts[playerid][id][bankBalance] -= amount; Players[playerid][pPocketMoney] += amount; SaveBankAccount(playerid, id); ShowBankAccountMenu(playerid, id); SendInfoMessage(playerid, "You have withdrawn {33CC33}%s{FFFFFF} from %s (%s remaining).", FormatNumber(amount), BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); new log[128]; format(log, sizeof(log), "%s withdrew %s from bank account: %s.", ReturnName(playerid), FormatNumber(amount), BankAccounts[playerid][id][bankName]); CreateLog("money", log); } } else { ShowBankAccountMenu(playerid, id); } return 1; } Dialog:TransferAmount(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pBank]; if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid)) { return 0; } if (response) { new name[MAX_PLAYER_NAME], amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, TransferAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to transfer to '%s'.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]), gTargetName[playerid]); } else if (amount < 1 || amount > BankAccounts[playerid][id][bankBalance]) { return Dialog_Show(playerid, TransferAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "There isn't that much money in this account.\n\n'%s' contains a balance of %s.\n\nPlease input the amount of money to transfer to '%s'.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance]), gTargetName[playerid]); } else { strcpy(name, gTargetName[playerid]); foreach (new i : Player) { if (IsPlayerLoggedIn(i) && !strcmp(ReturnName(i), name)) { SendInfoMessage(i, "%s has tranferred you %s. You can collect it at the bank.", ReturnNameEx(playerid), FormatNumber(amount)); } } BankAccounts[playerid][id][bankBalance] -= amount; SendInfoMessage(playerid, "You have transferred {33CC33}%s{FFFFFF} to %s (%s remaining).", FormatNumber(amount), name, FormatNumber(BankAccounts[playerid][id][bankBalance])); format(gExecute, sizeof(gExecute), "INSERT INTO rp_transferlogs (Sender, Recipient, Date, Amount) VALUES('%s', '%s', NOW(), %i)", ReturnName(playerid), name, amount); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "INSERT INTO rp_transfers (Player, Sender, Amount) VALUES(%i, '%s', %i)", Players[playerid][pTransfer], ReturnNameEx(playerid, 0), amount); mysql_tquery(gConnection, gExecute); SaveBankAccount(playerid, id); ShowBankAccountMenu(playerid, id); } } else { ShowBankAccountMenu(playerid, id); } return 1; } Dialog:BankTransfer(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pBank]; if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid)) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, BankTransfer, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "Please input the full name of the player to transfer money to:", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); } else if (strlen(inputtext) > 24) { return Dialog_Show(playerid, BankTransfer, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "The name can't contain above 24 characters.\n\nPlease input the full name of the player to transfer money to:", "Submit", "Back"); } else if (!IsValidName(inputtext)) { return Dialog_Show(playerid, BankTransfer, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "You have specified an invalid name.\n\nPlease input the full name of the player to transfer money to:", "Submit", "Back"); } else { format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", mysql_escaped(inputtext)); mysql_tquery(gConnection, gExecute, "OnTransferCheck", "ds", playerid, inputtext); } } else { ShowBankAccountMenu(playerid, id); } return 1; } Dialog:BankClose(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pBank]; if (!BankAccounts[playerid][id][bankExists] || !IsPlayerInBank(playerid)) { return 0; } if (response) { if (Players[playerid][pPaymentType] == PAYMENT_TYPE_BANK && GetPrimaryBankAccount(playerid) == id) { SendInfoMessage(playerid, "Your payment type has been switched to cash."); Players[playerid][pPaymentType] = PAYMENT_TYPE_CASH; } format(gExecute, sizeof(gExecute), "DELETE FROM rp_bankaccounts WHERE bankID = %i", BankAccounts[playerid][id][bankID]); mysql_tquery(gConnection, gExecute); BankAccounts[playerid][id][bankExists] = 0; BankAccounts[playerid][id][bankBalance] = 0; SendInfoMessage(playerid, "You have deleted a bank account: %s.", BankAccounts[playerid][id][bankName]); ShowBankAccounts(playerid, BANK_ACCESS_MENU); } else { ShowBankAccountMenu(playerid, id); } return 1; } Dialog:BankMenu(playerid, response, listitem, inputtext[]) { if (!IsPlayerInBank(playerid)) { return 0; } if (response) { new id = Players[playerid][pBank]; switch (listitem) { case 0: { Dialog_Show(playerid, BankWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); } case 1: { Dialog_Show(playerid, BankDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to deposit below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); } case 2: { Dialog_Show(playerid, BankTransfer, DIALOG_STYLE_INPUT, "{FFFFFF}Transfer money", "Please input the full name of the player to transfer money to:", "Submit", "Back"); } case 3: { new amount = Players[playerid][pPaycheck]; if (!amount) { SendErrorMessage(playerid, "You don't have a paycheck to collect."); } else { BankAccounts[playerid][id][bankBalance] += amount; SaveBankAccount(playerid, id); SendInfoMessage(playerid, "You have collected your paycheck: {33CC33}%s{FFFFFF}.", FormatNumber(amount)); Players[playerid][pPaycheck] = 0; } ShowBankAccountMenu(playerid, id); } case 4: { ListBankTransfers(playerid); } case 5: { Dialog_Show(playerid, BankClose, DIALOG_STYLE_MSGBOX, "{FFFFFF}Close account", "Are you sure you want to close this account?\n\nNote: You cannot retrieve your money once this account is deleted.", "Yes", "No"); } } } else { ShowBankAccounts(playerid, BANK_ACCESS_MENU); } return 1; } Dialog:BankNew(playerid, response, listitem, inputtext[]) { if (!IsPlayerInBank(playerid)) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, BankNew, DIALOG_STYLE_INPUT, "{FFFFFF}New account", "Please input the name of your new bank account:", "Submit", "Back"); } else if (strlen(inputtext) > 32) { return Dialog_Show(playerid, BankNew, DIALOG_STYLE_INPUT, "{FFFFFF}New account", "The name can't contain over 32 characters.\n\nPlease input the name of your new bank account:", "Submit", "Back"); } else { AddBankAccount(playerid, inputtext); ShowBankAccounts(playerid, BANK_ACCESS_MENU); SendInfoMessage(playerid, "You have added a new bank account: %s.", inputtext); } } else { ShowBankAccounts(playerid, BANK_ACCESS_MENU); } return 1; } Dialog:ATMWithdraw(playerid, response, listitem, inputtext[]) { new id = Players[playerid][pSelected]; if (GetClosestATM(playerid) == INVALID_ID || !BankAccounts[playerid][id][bankExists]) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, ATMWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); } else if (amount < 1 || amount > BankAccounts[playerid][id][bankBalance]) { return Dialog_Show(playerid, ATMWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There isn't that much money in this account.\n\n'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); } else { BankAccounts[playerid][id][bankBalance] -= amount; Players[playerid][pPocketMoney] += amount; SaveBankAccount(playerid, id); SendInfoMessage(playerid, "You have withdrawn {33CC33}%s{FFFFFF} from %s (%s remaining).", FormatNumber(amount), BankAccounts[playerid][id][bankName], FormatNumber(BankAccounts[playerid][id][bankBalance])); } } else { ShowBankAccounts(playerid, BANK_ATM_MENU); } return 1; } Dialog:PaymentAccount(playerid, response, listitem, inputtext[]) { if (response) { Players[playerid][pPaymentType] = PAYMENT_TYPE_BANK; Players[playerid][pBankAccount] = BankAccounts[playerid][gListedItems[playerid][listitem]][bankID]; SendInfoMessage(playerid, "Your future payments will now be made with this bank account."); } return 1; } Dialog:ATMSelect(playerid, response, listitem, inputtext[]) { if (GetClosestATM(playerid) == INVALID_ID) { return 0; } if (response) { Players[playerid][pSelected] = gListedItems[playerid][listitem]; Dialog_Show(playerid, ATMWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "'%s' contains a balance of %s.\n\nPlease input the amount of money to withdraw below.", "Submit", "Back", BankAccounts[playerid][Players[playerid][pSelected]][bankName], FormatNumber(BankAccounts[playerid][Players[playerid][pSelected]][bankBalance])); } return 1; } Dialog:BankAccounts(playerid, response, listitem, inputtext[]) { if (!IsPlayerInBank(playerid)) { return 0; } if (response) { if (listitem == 0) { if (GetNextBankAccountID(playerid) == INVALID_ID) { return SendErrorMessage(playerid, "You can't have more than %i bank accounts.", MAX_BANK_ACCOUNTS); } else { Dialog_Show(playerid, BankNew, DIALOG_STYLE_INPUT, "{FFFFFF}New account", "Please input the name of your new bank account:", "Submit", "Back"); } } else { ShowBankAccountMenu(playerid, gListedItems[playerid][--listitem]); } } return 1; } Dialog:TrunkAmount(playerid, response, listitem, inputtext[]) { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked]) { return 0; } if (response) { new item = Players[playerid][pSelected]; if (StoredItems[item][stExists]) { new amount, name[MAX_ITEM_NAME]; strunpack(name, StoredItems[item][stName]); if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, TrunkAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]); } else if (amount < 1 || amount > StoredItems[item][stValue]) { return Dialog_Show(playerid, TrunkAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "There isn't that much of this item.\n\nItem: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]); } else { new id = AddItemToInventory(playerid, name, amount); if (id == INVALID_ID) { SendErrorMessage(playerid, "There is no more room in the trunk."); } else { if (amount < StoredItems[item][stValue]) { format(gExecute, sizeof(gExecute), "UPDATE rp_items SET itemValue = itemValue - %i WHERE itemID = %i", amount, StoredItems[item][stID]); StoredItems[item][stValue] -= amount; } else { format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemID = %i", StoredItems[item][stID]); StoredItems[item][stExists] = 0; } mysql_tquery(gConnection, gExecute); ShowTrunkItems(playerid, vehicle); SendInfoMessage(playerid, "You have withdrawn %s (%i) from the trunk.", name, amount); } } } } else { ShowTrunkItems(playerid, vehicle); } return 1; } Dialog:TrunkTake(playerid, response, listitem, inputtext[]) { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked]) { return 0; } if (response) { new item = Players[playerid][pSelected]; if (StoredItems[item][stExists]) { new id = RetrieveItem(playerid, TRANSFER_FROM_TRUNK, item); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no more room in your inventory."); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Taken from Trunk', NOW())", ReturnName(playerid), GetFullItemName(playerid, id)); mysql_tquery(gConnection, gExecute); StoredItems[item][stExists] = 0; ShowActionBubble(playerid, "* %s takes an item from the trunk.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have taken an item: %s.", GetFullItemName(playerid, id)); ShowTrunkItems(playerid, vehicle); } } } else { ShowTrunkItems(playerid, vehicle); } return 1; } Dialog:TrunkItems(playerid, response, listitem, inputtext[]) { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked]) { return 0; } if (response) { if (listitem == 0) { new success = DisplayInventory(playerid); if (!success) { SendErrorMessage(playerid, "You don't have any items in your inventory."); } else { Players[playerid][pChoose] = CHOOSE_TYPE_TRUNK; SendInfoMessage(playerid, "Choose an item to add to the trunk."); } } else { new item = gListedItems[playerid][--listitem]; if (StoredItems[item][stExists]) { Players[playerid][pSelected] = item; if (GetItemInformation(StoredItems[item][stName], ITEM_INFO_STACKABLE)) { Dialog_Show(playerid, TrunkAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Take Amount", "Item: %s\nAmount: %i\n\nPlease input the amount you want to withdraw:", "Submit", "Back", GetStoredItemName(item), StoredItems[item][stValue]); } else { Dialog_Show(playerid, TrunkTake, DIALOG_STYLE_MSGBOX, "{FFFFFF}Item information", "Item: %s\nWeight: %i\n\nAre you sure you want to take this item?", "Yes", "No", GetStoredItemName(item), GetItemInformation(StoredItems[item][stName], ITEM_INFO_WEIGHT)); } } else { SendErrorMessage(playerid, "Sorry! Someone else has taken this item."); } } } else { ShowTrunkMenu(playerid, vehicle); } return 1; } Dialog:TrunkMoney(playerid, response, listitem, inputtext[]) { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked]) { return 0; } if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, TrunkWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There is currently %s stored in the trunk.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney])); } case 1: { Dialog_Show(playerid, TrunkDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "There is currently %s stored in the trunk.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney])); } } } else { ShowTrunkMenu(playerid, vehicle); } return 1; } Dialog:TrunkWithdraw(playerid, response, listitem, inputtext[]) { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked]) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, TrunkWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There is currently %s stored in the trunk.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney])); } else if (amount < 1 || amount > Vehicles[vehicle][vTrunkMoney]) { return Dialog_Show(playerid, TrunkWithdraw, DIALOG_STYLE_INPUT, "{FFFFFF}Withdraw money", "There isn't that much money in the trunk.\n\nThere is currently %s stored in the trunk.\n\nPlease input the amount of money to withdraw below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney])); } else { Vehicles[vehicle][vTrunkMoney] -= amount; Players[playerid][pPocketMoney] += amount; SaveVehicle(vehicle); ShowTrunkMenu(playerid, vehicle); ShowActionBubble(playerid, "* %s takes some money from the trunk.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have withdrawn %s from the trunk (%s remaining).", FormatNumber(amount), FormatNumber(Vehicles[vehicle][vTrunkMoney])); new log[128]; format(log, sizeof(log), "%s withdrew %s from vehicle %i.", ReturnName(playerid), FormatNumber(amount), GetClosestVehicle(playerid)); CreateLog("money", log); if (amount > 29999) { AdminDutyMessage(COLOR_RED, "Admin: %s has withdrawn %s from vehicle %i.", ReturnNameEx(playerid, 0), FormatNumber(amount), GetClosestVehicle(playerid)); } } } return 1; } Dialog:TrunkDeposit(playerid, response, listitem, inputtext[]) { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked]) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, TrunkDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "There is currently %s stored in the trunk.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney])); } else if (amount < 1 || amount > Players[playerid][pPocketMoney]) { return Dialog_Show(playerid, TrunkDeposit, DIALOG_STYLE_INPUT, "{FFFFFF}Deposit money", "You don't have that much money in your pocket.\n\nThere is currently %s stored in the trunk.\n\nPlease input the amount of money to deposit below:", "Submit", "Cancel", FormatNumber(Vehicles[vehicle][vTrunkMoney])); } else { Vehicles[vehicle][vTrunkMoney] += amount; Players[playerid][pPocketMoney] -= amount; SaveVehicle(vehicle); ShowTrunkMenu(playerid, vehicle); ShowActionBubble(playerid, "* %s puts some money in the trunk.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have deposited %s into the trunk (%s remaining).", FormatNumber(amount), FormatNumber(Vehicles[vehicle][vTrunkMoney])); new log[128]; format(log, sizeof(log), "%s deposited %s into vehicle %i.", ReturnName(playerid), FormatNumber(amount), GetClosestVehicle(playerid)); CreateLog("money", log); if (amount > 29999) { AdminDutyMessage(COLOR_RED, "Admin: %s has deposited %s into vehicle %i.", ReturnNameEx(playerid, 0), FormatNumber(amount), GetClosestVehicle(playerid)); } } } return 1; } Dialog:VehicleTrunk(playerid, response, listitem, inputtext[]) { if (response) { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); if (vehicle == INVALID_ID || Vehicles[vehicle][vLocked]) { return 0; } switch (listitem) { case 0: { Dialog_Show(playerid, TrunkMoney, DIALOG_STYLE_LIST, "{FFFFFF}Stored money", "Withdraw (%s)\nDeposit", "Select", "Back", FormatNumber(Vehicles[vehicle][vTrunkMoney])); } case 1: { ShowTrunkItems(playerid, vehicle); } } } return 1; } Dialog:BuyFurniture(playerid, response, listitem, inputtext[]) { if (response) { Players[playerid][pSelected] = listitem; ShowFurniturePreviewer(playerid, listitem); } return 1; } Dialog:HouseFurniture(playerid, response, listitem, inputtext[]) { new house = Players[playerid][pHouse]; if(!IsPlayerInside(playerid)) return SendErrorMessage(playerid, "You can not manage the furniture outside."); if (!IsValidHouseID(house) || GetNearbyHouse(playerid) != house) { return 0; } if (response) { switch (listitem) { case 0: // Buy furniture { ShowFurnitureCategories(playerid); } case 1: // Edit furniture { if (Houses[house][hEdit]) { Players[playerid][pHouseEdit] = INVALID_ID; SetFurnitureEditMode(house, false); SendInfoMessage(playerid, "You are no longer editing your furniture."); } else { if (Players[playerid][pHouseEdit] != INVALID_ID) { SetFurnitureEditMode(Players[playerid][pHouseEdit], false); } Players[playerid][pHouseEdit] = house; SetFurnitureEditMode(house, true); SendInfoMessage(playerid, "You are now in edition mode. Use /cancel to stop editing."); } } case 2: { } } } return 1; } Dialog:Restart(playerid, response, listitem, inputtext[]) { if (response) { if (Players[playerid][pAdmin] < 6) return 0; SendFormatMessageToAll(COLOR_SAMP, "(( %s has initiated a server restart. ))", ReturnNameEx(playerid, 0)); foreach (new i : Player) { if (IsPlayerLoggedIn(i)) { TogglePlayerControllable(i, false); SaveAccount(i); } } GameModeExit(); } return 1; } Dialog:RentVehicle(playerid, response, listitem, inputtext[]) { if (response) { new id = GetVehicleID(GetPlayerVehicleID(playerid)); if (id == INVALID_ID || !Vehicles[id][vRentable]) { return 0; } else if (Vehicles[id][vRenter] != INVALID_PLAYER_ID) { SendErrorMessage(playerid, "This vehicle is already rented by someone else."); RemovePlayerFromVehicle(playerid); } else if (!PlayerCanAfford(playerid, Vehicles[id][vPrice])) { SendErrorMessage(playerid, "You can't afford to rent this vehicle."); RemovePlayerFromVehicle(playerid); } else { if (Players[playerid][pRental] != INVALID_ID) { RespawnRentalCar(playerid); } DestroyDynamic3DTextLabel(Vehicles[id][vText]); if (GetVehicleCompany(id) != INVALID_ID && !IsCompanyOwner(playerid, GetVehicleCompany(id))) { GiveCompanyMoney(GetVehicleCompany(id), Vehicles[id][vPrice]); } RemoveMoney(playerid, Vehicles[id][vPrice]); Vehicles[id][vRenter] = playerid; Vehicles[id][vText] = INVALID_3DTEXT_ID; Players[playerid][pRental] = id; Statistics[playerid][sRentals]++; //SendInfoMessage(playerid, "You have rented this vehicle! It belongs to you until you leave the server."); SendInfoMessage(playerid, "You have rented this vehicle! Use '/v lock' to lock the doors."); } } else { RemovePlayerFromVehicle(playerid); } return 1; } Dialog:RestaurantAdd(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, RestaurantAdd, DIALOG_STYLE_INPUT, "{FFFFFF}Add to menu", "Please input the name of the food item you wish to add:", "Submit", "Cancel"); } else if (strlen(inputtext) > 24) { return Dialog_Show(playerid, RestaurantAdd, DIALOG_STYLE_INPUT, "{FFFFFF}Add to menu", "The item length cannot be over 24 characters.\n\nPlease input the name of the food item you wish to add:", "Submit", "Cancel"); } else { strcpy(Players[playerid][pProductName], inputtext, 24); Dialog_Show(playerid, FoodPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Set price", "Please input the price below for item: %s.", "Submit", "Cancel", Players[playerid][pProductName]); } } else { ShowProductEditMenu(playerid, company); } return 1; } Dialog:FoodPrice(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, FoodPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Set price", "Please input the price below for item: %s.", "Submit", "Cancel", Players[playerid][pProductName]); } else if (amount < 1 || amount > 1000) { return Dialog_Show(playerid, FoodPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Set price", "Please input a price between $1 and $1,000.\n\nPlease input the price below for item: %s.", "Submit", "Cancel", Players[playerid][pProductName]); } else { Players[playerid][pFoodPrice] = amount; Dialog_Show(playerid, FoodType, DIALOG_STYLE_LIST, "{FFFFFF}Select item type", "Food\nBeverage", "Select", "Cancel", Players[playerid][pProductName]); } } return 1; } Dialog:FoodType(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { Players[playerid][pFoodType] = listitem + 1; Dialog_Show(playerid, FoodIncrease, DIALOG_STYLE_LIST, "{FFFFFF}Select health increase", "20 percent\n25 percent\n30 percent\n35 percent\n40 percent\n45 percent\n50 percent", "Select", "Cancel", Players[playerid][pProductName]); } return 1; } Dialog:FoodIncrease(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { new id = GetNextRestaurantItemID(company); if (id == INVALID_ID) { return SendErrorMessage(playerid, "Your restaurant may only contain %i items.", MAX_RESTAURANT_ITEMS); } else { strcpy(RestaurantItems[company][id][rtName], Players[playerid][pProductName], 24); RestaurantItems[company][id][rtExists] = 1; RestaurantItems[company][id][rtPrice] = Players[playerid][pFoodPrice]; RestaurantItems[company][id][rtStock] = 200; RestaurantItems[company][id][rtType] = Players[playerid][pFoodType]; RestaurantItems[company][id][rtHealth] = (listitem + 4) * 5; format(gExecute, sizeof(gExecute), "INSERT INTO rp_fooditems (cID) VALUES(%i)", Companies[company][cID]); mysql_tquery(gConnection, gExecute, "OnRestaurantItemAdded", "ii", company, id); SendInfoMessage(playerid, "You have added '%s' to your restaurant.", Players[playerid][pProductName]); ShowProductEditMenu(playerid, company); } } return 1; } Dialog:CarPrice(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company)) { return 0; } if (response) { new amount, modelid = Players[playerid][pSelected]; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, CarPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "Please input the price to set for '%s' below.", "Submit", "Cancel", GetVehicleModelName(modelid)); } else if (amount < 1) { return Dialog_Show(playerid, CarPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "The price must be above $0.\n\nPlease input the price to set for '%s' below.", "Submit", "Cancel", GetVehicleModelName(modelid)); } else { new id = AddVehicleToDealership(company, modelid, amount); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available dealership car slots."); } else { SendInfoMessage(playerid, "You have added a %s to company %i.", GetVehicleModelName(modelid), company); ShowDealershipEditMenu(playerid, company); } } } return 1; } Dialog:DealerAdd(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company)) { return 0; } if (response) { new model[32], modelid; if (sscanf(inputtext, "s[32]", model)) { return Dialog_Show(playerid, DealerAdd, DIALOG_STYLE_INPUT, "{FFFFFF}Add Vehicle", "Please enter the model ID or name of the vehicle to add:", "Submit", "Back"); } else if (!(modelid = GetVehicleModelFromName(model))) { return SendErrorMessage(playerid, "The specified model doesn't exist."); } else if (IsVehicleInDealership(company, modelid)) { return SendErrorMessage(playerid, "This vehicle is already sold at this dealership."); } else { Players[playerid][pSelected] = modelid; Dialog_Show(playerid, CarPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "Please input the price to set for '%s' below.", "Submit", "Cancel", GetVehicleModelName(modelid)); } } return 1; } Dialog:DealerList(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company)) { return 0; } if (response) { if (listitem == 0) { if (!IsVehicleSpawnSetup(company)) { return SendErrorMessage(playerid, "The vehicle spawn point is not setup."); } else { Dialog_Show(playerid, DealerAdd, DIALOG_STYLE_INPUT, "{FFFFFF}Add Vehicle", "Please enter the model ID or name of the vehicle to add:", "Submit", "Back"); } } else { Players[playerid][pSelected] = gListedItems[playerid][--listitem]; Dialog_Show(playerid, DealerEdit, DIALOG_STYLE_LIST, "{FFFFFF}Edit vehicle", "Price: %s\nDelete Vehicle", "Select", "Back", FormatNumber(DealershipCars[Players[playerid][pSelected]][dcPrice])); } } return 1; } Dialog:DealerEdit(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company)) { return 0; } if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, DealerPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "The current price for this vehicle is %s.\n\nPlease input the new price for this vehicle below.", "Submit", "Cancel", FormatNumber(DealershipCars[Players[playerid][pSelected]][dcPrice])); } case 1: { new vehicle = Players[playerid][pSelected]; format(gExecute, sizeof(gExecute), "DELETE FROM rp_dealercars WHERE ID = %i", DealershipCars[vehicle][dcID]); mysql_tquery(gConnection, gExecute); DealershipCars[vehicle][dcExists] = 0; SendInfoMessage(playerid, "You have deleted a vehicle: %s.", GetVehicleModelName(DealershipCars[vehicle][dcModel])); ShowDealershipEditMenu(playerid, company); } } } else { ShowDealershipEditMenu(playerid, company); } return 1; } Dialog:DealerPrice(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company)) { return 0; } if (response) { new vehicle = Players[playerid][pSelected], amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, DealerPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "The current price for this vehicle is %s.\n\nPlease input the new price for this vehicle below.", "Submit", "Cancel", FormatNumber(DealershipCars[vehicle][dcPrice])); } else if (amount < 0) { return Dialog_Show(playerid, DealerPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle price", "The current price for this vehicle is %s.\n\nPlease input the new price for this vehicle below.", "Submit", "Cancel", FormatNumber(DealershipCars[vehicle][dcPrice])); } else { DealershipCars[vehicle][dcPrice] = amount; SaveDealershipCar(vehicle); SendInfoMessage(playerid, "You have set the price to %s for vehicle: %s.", FormatNumber(amount), GetVehicleModelName(DealershipCars[vehicle][dcModel])); ShowDealershipEditMenu(playerid, company); } } return 1; } Dialog:RestaurantEdit(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { if (listitem == 0) { Dialog_Show(playerid, RestaurantAdd, DIALOG_STYLE_INPUT, "{FFFFFF}Add to menu", "Please input the name of the food item you wish to add:", "Submit", "Cancel"); } else { new id = gListedItems[playerid][--listitem]; Players[playerid][pProduct] = id; Dialog_Show(playerid, RestaurantItem, DIALOG_STYLE_LIST, "{FFFFFF}Edit menu item", "Change Price\t\t%s\nRestock Item\t\t%i/100\nRemove Item", "Select", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtStock]); } } return 1; } Dialog:RestaurantItem(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { new id = Players[playerid][pProduct]; switch (listitem) { case 0: { Dialog_Show(playerid, RestaurantPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit item price", "The current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtName]); } case 1: { Dialog_Show(playerid, RestaurantStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Your company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], RestaurantItems[company][id][rtStock], RestaurantItems[company][id][rtName]); } case 2: { format(gExecute, sizeof(gExecute), "DELETE FROM rp_fooditems WHERE ID = %i", RestaurantItems[company][id][rtID]); mysql_tquery(gConnection, gExecute); RestaurantItems[company][id][rtExists] = 0; RestaurantItems[company][id][rtID] = 0; SendInfoMessage(playerid, "You have removed '%s' from your restaurant.", RestaurantItems[company][id][rtName]); ShowProductEditMenu(playerid, company); } } } else { ShowProductEditMenu(playerid, company); } return 1; } Dialog:RestaurantPrice(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; new id = Players[playerid][pProduct]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, RestaurantPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit item price", "The current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtName]); } else if (amount < 1 || amount > 1000) { return Dialog_Show(playerid, RestaurantPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit item price", "Please input a price between $1 and $1,000.\n\nThe current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtName]); } else { RestaurantItems[company][id][rtPrice] = amount; SaveRestaurantItem(company, id); SendInfoMessage(playerid, "You have changed the price for '%s' to: %s.", RestaurantItems[company][id][rtName], FormatNumber(amount)); ShowProductEditMenu(playerid, company); } } else { Dialog_Show(playerid, RestaurantItem, DIALOG_STYLE_LIST, "{FFFFFF}Edit menu item", "Change Price\t\t%s\nRestock Item\t\t%i/100\nRemove Item", "Select", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtStock]); } return 1; } Dialog:RestaurantStock(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; new id = Players[playerid][pProduct]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, RestaurantStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Your company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], RestaurantItems[company][id][rtStock], RestaurantItems[company][id][rtName]); } else if (amount < 1 || amount > Companies[company][cStock]) { return Dialog_Show(playerid, RestaurantStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "You don't have that much stock.\n\nYour company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], RestaurantItems[company][id][rtStock], RestaurantItems[company][id][rtName]); } else if (Products[company][id][prStock] + amount > 200) { return Dialog_Show(playerid, RestaurantStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Items can only be stocked up to 200.\n\nYour company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], RestaurantItems[company][id][rtStock], RestaurantItems[company][id][rtName]); } else { RestaurantItems[company][id][rtStock] += amount; SaveRestaurantItem(company, id); Companies[company][cStock] -= amount; SaveCompany(company); SendInfoMessage(playerid, "You have added %i stock for '%s' (%i/100).", amount, RestaurantItems[company][id][rtName], RestaurantItems[company][id][rtStock]); ShowProductEditMenu(playerid, company); } } else { Dialog_Show(playerid, RestaurantItem, DIALOG_STYLE_LIST, "{FFFFFF}Edit menu item", "Change Price\t\t%s\nRestock Item\t\t%i/100\nRemove Item", "Select", "Back", FormatNumber(RestaurantItems[company][id][rtPrice]), RestaurantItems[company][id][rtStock]); } return 1; } Dialog:EditProducts(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { new id = gListedItems[playerid][listitem]; strcpy(Players[playerid][pProductName], g_CompanyItems[id][e_ItemName], 24); Players[playerid][pProduct] = listitem; Dialog_Show(playerid, EditProduct, DIALOG_STYLE_LIST, "{FFFFFF}Edit product", "Change Price\t\t%s\nRestock Item\t\t%i/100", "Select", "Back", FormatNumber(Products[company][listitem][prPrice]), Products[company][listitem][prStock]); } return 1; } Dialog:EditProduct(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { new id = Players[playerid][pProduct]; switch (listitem) { case 0: { Dialog_Show(playerid, ProductPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit product price", "The current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(Products[company][id][prPrice]), Players[playerid][pProductName]); } case 1: { Dialog_Show(playerid, ProductStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Your company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], Products[company][id][prStock], Players[playerid][pProductName]); } } } else { ShowProductEditMenu(playerid, company); } return 1; } Dialog:Treadmill(playerid, response, listitem, inputtext[]) { if ((response) && IsPlayerInRangeOfPoint(playerid, 3.0, 773.5131, -2.1218, 1000.8479)) { Players[playerid][pSpeedLevel] = listitem + 1; Timers[playerid][tWorkout] = SetTimerEx("DecreasePower", 150, true, "i", playerid); ApplyAnimation(playerid, "GYMNASIUM", "gym_tread_geton", 4.1, 0, 0, 0, 1, 0, 1); SetTimerEx("BeginWorkout", 2000, false, "ii", playerid, WORKOUT_TREADMILL); } else { SetCameraBehindPlayer(playerid); } return 1; } Dialog:LiftWeights(playerid, response, listitem, inputtext[]) { if ((response) && IsPlayerInRangeOfPoint(playerid, 3.0, 771.7793, 5.4092, 1000.7802)) { Players[playerid][pWeight] = (listitem + 2) * 10; Timers[playerid][tWorkout] = SetTimerEx("DecreasePower", 200, true, "i", playerid); ApplyAnimation(playerid, "Freeweights", "gym_free_pickup", 4.1, 0, 0, 0, 0, 0, 1); SetTimerEx("BeginWorkout", 2500, false, "ii", playerid, WORKOUT_DUMBELLS); } else { SetCameraBehindPlayer(playerid); } return 1; } Dialog:TeleportInt(playerid, response, listitem, inputtext[]) { if (response) { SetPlayerPos(playerid, g_Interiors[listitem][e_InteriorX], g_Interiors[listitem][e_InteriorY], g_Interiors[listitem][e_InteriorZ]); SetPlayerFacingAngle(playerid, g_Interiors[listitem][e_InteriorA]); SetPlayerInterior(playerid, g_Interiors[listitem][e_Interior]); SetCameraBehindPlayer(playerid); SendInfoMessage(playerid, "You have teleported to %s.", inputtext); } return 1; } Dialog:ProductStock(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; new id = Players[playerid][pProduct]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, ProductStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Your company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], Products[company][id][prStock], Players[playerid][pProductName]); } else if (amount < 1 || amount > Companies[company][cStock]) { return Dialog_Show(playerid, ProductStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "You don't have that much stock.\n\nYour company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], Products[company][id][prStock], Players[playerid][pProductName]); } else if (Products[company][id][prStock] + amount > 200) { return Dialog_Show(playerid, ProductStock, DIALOG_STYLE_INPUT, "{FFFFFF}Restock this item", "Products can only be stocked up to 200.\n\nYour company currently has %i products available.\n\nThe current stock for this item is %i/100.\n\nPlease input the amount of products to stock for this item: %s.", "Submit", "Back", Companies[company][cStock], Products[company][id][prStock], Players[playerid][pProductName]); } else { Products[company][id][prStock] = Products[company][id][prStock] + amount; SaveProduct(company, id); Companies[company][cStock] = Companies[company][cStock] - amount; SaveCompany(company); SendInfoMessage(playerid, "You have added %i stock for '%s' (%i/100).", amount, Players[playerid][pProductName], Products[company][id][prStock]); ShowProductEditMenu(playerid, company); } } else { Dialog_Show(playerid, EditProduct, DIALOG_STYLE_LIST, "{FFFFFF}Edit product", "Change Price\t\t%s\nRestock Item\t\t%i/100", "Select", "Back", FormatNumber(Products[company][id][prPrice]), Products[company][id][prStock]); } return 1; } Dialog:ProductPrice(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pCompany]; new id = Players[playerid][pProduct]; if (!IsValidCompanyID(company) || GetNearbyCompany(playerid) != company) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, ProductPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit product price", "The current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(Products[company][id][prPrice]), Players[playerid][pProductName]); } else if (amount < 1 || amount > 50000) { return Dialog_Show(playerid, ProductPrice, DIALOG_STYLE_INPUT, "{FFFFFF}Edit product price", "Please input a price between $1 and $50,000.\n\nThe current price for this item is %s.\n\nPlease input the new price for item: %s.", "Submit", "Back", FormatNumber(Products[company][id][prPrice]), Players[playerid][pProductName]); } else { Products[company][id][prPrice] = amount; SaveProduct(company, id); SendInfoMessage(playerid, "You have changed the price for '%s' to: %s.", Players[playerid][pProductName], FormatNumber(amount)); ShowProductEditMenu(playerid, company); } } else { Dialog_Show(playerid, EditProduct, DIALOG_STYLE_LIST, "{FFFFFF}Edit product", "Change Price\t\t%s\nRestock Item\t\t%i/100", "Select", "Back", FormatNumber(Products[company][id][prPrice]), Products[company][id][prStock]); } return 1; } Dialog:PickupItems(playerid, response, listitem, inputtext[]) { if (response) { new id = gListedItems[playerid][listitem]; if (!DropItems[id][dExists]) { return 0; } else { new item = AddItemToInventory(playerid, DropItems[id][dName], DropItems[id][dValue], DropItems[id][dSerial]); if (item == INVALID_ID) { SendErrorMessage(playerid, "There is no more room in your inventory."); } else { SendInfoMessage(playerid, "You have picked up an item: %s.", GetDropItemName(id)); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); DeleteDropItem(id); } } } return 1; } Dialog:BuyFood(playerid, response, listitem, inputtext[]) { new company = GetCurrentCompany(playerid); if (!IsValidCompanyID(company)) { return 0; } if (response) { new id = gListedItems[playerid][listitem]; if (RestaurantItems[company][id][rtStock] <= 0) { return SendErrorMessage(playerid, "The selected item is out of stock."); } else if (!PlayerCanAfford(playerid, RestaurantItems[company][id][rtPrice])) { return SendErrorMessage(playerid, "You cannot afford this item."); } else if (GetPlayerHealthEx(playerid) >= 100.0) { return SendErrorMessage(playerid, "You don't need this right now."); } else { if (RestaurantItems[company][id][rtType] == 1) { if (GetPlayerAnimationIndex(playerid) == 537) { return SendErrorMessage(playerid, "Please wait until you are finished eating."); } else { if (!Players[playerid][pSitting]) { ApplyAnimation(playerid, "FOOD", "EAT_Chicken", 4.1, 0, 0, 0, 0, 0, 1); } PlayerPlaySound(playerid, 32200, 0.0, 0.0, 0.0); SendInfoMessage(playerid, "You have ordered a %s for {33CC33}%s{FFFFFF}.", RestaurantItems[company][id][rtName], FormatNumber(RestaurantItems[company][id][rtPrice])); } } else if (RestaurantItems[company][id][rtType] == 2) { if (GetPlayerAnimationIndex(playerid) == 16) { return SendErrorMessage(playerid, "Please wait until you are finished drinking."); } else { if (!Players[playerid][pSitting]) { ApplyAnimation(playerid, "BAR", "dnk_stndM_loop", 4.1, 0, 0, 0, 0, 0); } SendInfoMessage(playerid, "You have ordered a %s for {33CC33}%s{FFFFFF}.", RestaurantItems[company][id][rtName], FormatNumber(RestaurantItems[company][id][rtPrice])); } } RestaurantItems[company][id][rtStock]--; SaveRestaurantItem(company, id); if (!IsCompanyOwner(playerid, company)) { GiveCompanyMoney(company, RestaurantItems[company][id][rtPrice]); } RemoveMoney(playerid, RestaurantItems[company][id][rtPrice]); if (0 <= RestaurantItems[company][id][rtHealth] <= 50) { GivePlayerHealth(playerid, RestaurantItems[company][id][rtHealth]); } } } return 1; } Dialog:BuyItem(playerid, response, listitem, inputtext[]) { new company = GetCurrentCompany(playerid); if (!IsValidCompanyID(company)) { return 0; } if (response) { OnPlayerPurchaseItem(playerid, g_CompanyItems[gListedItems[playerid][listitem]][e_ItemName], company, listitem); } return 1; } Dialog:EditBuilding(playerid, response, listitem, inputtext[]) { new building = Players[playerid][pSelected]; if (!IsValidBuildingID(building)) { return 0; } if (response) { switch (listitem) { case 0: { GetPlayerPos(playerid, Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2]); GetPlayerFacingAngle(playerid, Buildings[building][bSpawn][3]); Buildings[building][bExterior] = GetPlayerInterior(playerid); Buildings[building][bExteriorWorld] = GetPlayerVirtualWorld(playerid); UpdateBuilding(building); SaveBuilding(building); SendAdminMessage(COLOR_RED, "Admin: %s has edited the location of building %i.", ReturnNameEx(playerid, 0), building); } case 1: { GetPlayerPos(playerid, Buildings[building][bInt][0], Buildings[building][bInt][1], Buildings[building][bInt][2]); GetPlayerFacingAngle(playerid, Buildings[building][bInt][3]); Buildings[building][bInterior] = GetPlayerInterior(playerid); UpdateBuilding(building); SaveBuilding(building); SendAdminMessage(COLOR_RED, "Admin: %s has edited the interior spawn of building %i.", ReturnNameEx(playerid, 0), building); } case 2: { Buildings[building][bLocked] = !Buildings[building][bLocked]; SaveBuilding(building); if (Buildings[building][bLocked]) { SendAdminMessage(COLOR_RED, "Admin: %s has locked building %i.", ReturnNameEx(playerid, 0), building); } else { SendAdminMessage(COLOR_RED, "Admin: %s has unlocked building %i.", ReturnNameEx(playerid, 0), building); } } case 3: { Dialog_Show(playerid, BuildingName, DIALOG_STYLE_INPUT, "{FFFFFF}Building Name", "The current name for this building is %s.\n\nPlease input the new name for this building below:", "Submit", "Back", Buildings[building][bName]); } case 4: { Dialog_Show(playerid, BuildingWorld, DIALOG_STYLE_INPUT, "{FFFFFF}Building World", "The current virtual world for this building is %i.\n\nPlease input the new virtual world for this building below:", "Submit", "Back", Buildings[building][bWorld]); } case 5: { Dialog_Show(playerid, BuildingIcon, DIALOG_STYLE_INPUT, "{FFFFFF}Building Icon", "The current map icon type for this building is %i.\n\nPlease input the new icon type for this building below (0-63):", "Submit", "Back", Buildings[building][bIconType]); } } } return 1; } Dialog:BuildingWorld(playerid, response, listitem, inputtext[]) { new building = Players[playerid][pSelected]; if (!IsValidBuildingID(building)) { return 0; } if (response) { new vw; if (sscanf(inputtext, "i", vw)) { return Dialog_Show(playerid, BuildingWorld, DIALOG_STYLE_INPUT, "{FFFFFF}Building World", "The current virtual world for this building is %i.\n\nPlease input the new virtual world for this building below:", "Submit", "Back", Buildings[building][bWorld]); } else { Buildings[building][bWorld] = vw; UpdateBuilding(building); SaveBuilding(building); SendAdminMessage(COLOR_RED, "Admin: %s has set the virtual world of building %i to %i.", ReturnNameEx(playerid, 0), building, vw); } } else { ShowBuildingEditMenu(playerid, building); } return 1; } Dialog:BuildingIcon(playerid, response, listitem, inputtext[]) { new building = Players[playerid][pSelected]; if (!IsValidBuildingID(building)) { return 0; } if (response) { new type; if (sscanf(inputtext, "i", type)) { return Dialog_Show(playerid, BuildingIcon, DIALOG_STYLE_INPUT, "{FFFFFF}Building Icon", "The current map icon type for this building is %i.\n\nPlease input the new icon type for this building below (0-63):", "Submit", "Back", Buildings[building][bIconType]); } else if (type < 0 || type > 63) { return Dialog_Show(playerid, BuildingIcon, DIALOG_STYLE_INPUT, "{FFFFFF}Building Icon", "The type must be between 0 and 63.\n\nThe current map icon type for this building is %i.\n\nPlease input the new icon type for this building below (0-63):", "Submit", "Back", Buildings[building][bIconType]); } else { Buildings[building][bIconType] = type; UpdateBuilding(building); SaveBuilding(building); SendAdminMessage(COLOR_RED, "Admin: %s has set the map icon of building %i to %i.", ReturnNameEx(playerid, 0), building, type); } } else { ShowBuildingEditMenu(playerid, building); } return 1; } Dialog:BuildingName(playerid, response, listitem, inputtext[]) { new building = Players[playerid][pSelected]; if (!IsValidBuildingID(building)) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, BuildingName, DIALOG_STYLE_INPUT, "{FFFFFF}Building Name", "The current name for this building is %s.\n\nPlease input the new name for this building below:", "Submit", "Back", Buildings[building][bName]); } else if (strlen(inputtext) > 32) { return Dialog_Show(playerid, BuildingName, DIALOG_STYLE_INPUT, "{FFFFFF}Building Name", "The name can't be above 32 characters.\n\nThe current name for this building is %s.\n\nPlease input the new name for this building below:", "Submit", "Back", Buildings[building][bName]); } else { strcpy(Buildings[building][bName], inputtext, 32); UpdateBuilding(building); SaveBuilding(building); SendAdminMessage(COLOR_RED, "Admin: %s has set the name of building %i to %s.", ReturnNameEx(playerid, 0), building, inputtext); } } else { ShowBuildingEditMenu(playerid, building); } return 1; } Dialog:EditCompany(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pSelected]; if (!IsValidCompanyID(company)) { return 0; } if (response) { switch (listitem) { case 0: { GetPlayerPos(playerid, Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2]); GetPlayerFacingAngle(playerid, Companies[company][cSpawn][3]); Companies[company][cExterior] = GetPlayerInterior(playerid); Companies[company][cExteriorWorld] = GetPlayerVirtualWorld(playerid); UpdateCompany(company); SaveCompany(company); SendAdminMessage(COLOR_RED, "Admin: %s has edited the location of company %i.", ReturnNameEx(playerid, 0), company); } case 1: { GetPlayerPos(playerid, Companies[company][cInt][0], Companies[company][cInt][1], Companies[company][cInt][2]); GetPlayerFacingAngle(playerid, Companies[company][cInt][3]); Companies[company][cInterior] = GetPlayerInterior(playerid); SaveCompany(company); SendAdminMessage(COLOR_RED, "Admin: %s has edited the interior spawn of company %i.", ReturnNameEx(playerid, 0), company); } case 2: { if (Companies[company][cType] == COMPANY_DEALERSHIP) { if (IsPlayerInside(playerid)) { return SendErrorMessage(playerid, "You can't set the vehicle spawn inside."); } else { GetPlayerPos(playerid, Companies[company][cVehicle][0], Companies[company][cVehicle][1], Companies[company][cVehicle][2]); GetPlayerFacingAngle(playerid, Companies[company][cVehicle][3]); UpdateCompany(company); SaveCompany(company); SendAdminMessage(COLOR_RED, "Admin: %s has edited the vehicle spawn of company %i.", ReturnNameEx(playerid, 0), company); } } else { if (IsPlayerInside(playerid)) { return SendErrorMessage(playerid, "You can't set the delivery point inside."); } else { GetPlayerPos(playerid, Companies[company][cVehicle][0], Companies[company][cVehicle][1], Companies[company][cVehicle][2]); GetPlayerFacingAngle(playerid, Companies[company][cVehicle][3]); UpdateCompany(company); SaveCompany(company); SendAdminMessage(COLOR_RED, "Admin: %s has edited the delivery point of company %i.", ReturnNameEx(playerid, 0), company); } } } case 3: { Dialog_Show(playerid, CompanyOwner, DIALOG_STYLE_INPUT, "{FFFFFF}Company Owner", "This company is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetCompanyOwner(company)); } case 4: { Dialog_Show(playerid, CompanyValue, DIALOG_STYLE_INPUT, "{FFFFFF}Company Price", "The current price for this company is %s.\n\nPlease input the new purchase price to set for this company below:", "Submit", "Back", FormatNumber(Companies[company][cValue])); } case 5: { Dialog_Show(playerid, CompanyName, DIALOG_STYLE_INPUT, "{FFFFFF}Company Name", "The current name for this company is %s.\n\nPlease input the new name for this company below:", "Submit", "Back", Companies[company][cName]); } case 6: { new string[512]; for (new i = 0; i < sizeof(g_CompanyTypes); i ++) { strcat(string, g_CompanyTypes[i]); strcat(string, "\n"); } Dialog_Show(playerid, CompanyType, DIALOG_STYLE_LIST, "{FFFFFF}Company Type", string, "Change", "Back"); } case 7: { Dialog_Show(playerid, CompanyStock, DIALOG_STYLE_INPUT, "{FFFFFF}Company Stock", "The current stock for this company is %i.\n\nPlease input the amount of products to set for this company below:", "Submit", "Back", Companies[company][cStock]); } } } return 1; } Dialog:CompanyName(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pSelected]; if (!IsValidCompanyID(company)) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, CompanyName, DIALOG_STYLE_INPUT, "{FFFFFF}Company Name", "The current name for this company is %s.\n\nPlease input the new name for this company below:", "Submit", "Back", Companies[company][cName]); } else if (strlen(inputtext) > 32) { return Dialog_Show(playerid, CompanyName, DIALOG_STYLE_INPUT, "{FFFFFF}Company Name", "The name can't be over 32 characters.\n\nThe current name for this company is %s.\n\nPlease input the new name for this company below:", "Submit", "Back", Companies[company][cName]); } else { strcpy(Companies[company][cName], inputtext, 32); UpdateCompany(company); SaveCompany(company); SendInfoMessage(playerid, "You have set the name of company %i to %s.", company, inputtext); } } else { ShowCompanyEditMenu(playerid, company); } return 1; } Dialog:CompanyType(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pSelected]; if (!IsValidCompanyID(company)) { return 0; } if (response) { listitem = listitem + 1; if ((Companies[company][cType] == COMPANY_RESTAURANT && listitem != COMPANY_RESTAURANT) || (Companies[company][cType] == COMPANY_RENTALS && listitem != COMPANY_RENTALS)) { ClearProducts(company); } SetCompanyType(company, listitem); UpdateCompany(company); SaveCompany(company); SendInfoMessage(playerid, "You have set the type of company %i to %s.", company, GetCompanyType(listitem)); } else { ShowCompanyEditMenu(playerid, company); } return 1; } Dialog:CompanyStock(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pSelected]; if (!IsValidCompanyID(company)) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, CompanyStock, DIALOG_STYLE_INPUT, "{FFFFFF}Company Stock", "The current stock for this company is %i.\n\nPlease input the amount of products to set for this company below:", "Submit", "Back", Companies[company][cStock]); } else if (amount < 0) { return Dialog_Show(playerid, CompanyStock, DIALOG_STYLE_INPUT, "{FFFFFF}Company Stock", "The stock amount must be above 0.\n\nThe current stock for this company is %i.\n\nPlease input the amount of products to set for this company below:", "Submit", "Back", Companies[company][cStock]); } else { Companies[company][cStock] = amount; UpdateCompany(company); SaveCompany(company); SendInfoMessage(playerid, "You have set the stock of company %i to %i products.", company, FormatNumber(amount)); } } else { ShowCompanyEditMenu(playerid, company); } return 1; } Dialog:CompanyValue(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pSelected]; if (!IsValidCompanyID(company)) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, CompanyValue, DIALOG_STYLE_INPUT, "{FFFFFF}Company Price", "The current price for this company is %s.\n\nPlease input the new purchase price to set for this company below:", "Submit", "Back", FormatNumber(Companies[company][cValue])); } else if (amount < 0) { return Dialog_Show(playerid, CompanyValue, DIALOG_STYLE_INPUT, "{FFFFFF}Company Price", "The amount must be above $0.\n\nThe current price for this company is %s.\n\nPlease input the new purchase price to set for this company below:", "Submit", "Back", FormatNumber(Companies[company][cValue])); } else { Companies[company][cValue] = amount; UpdateCompany(company); SaveCompany(company); SendInfoMessage(playerid, "You have set the price of company %i to %s.", company, FormatNumber(amount)); } } else { ShowCompanyEditMenu(playerid, company); } return 1; } Dialog:CompanyOwner(playerid, response, listitem, inputtext[]) { new company = Players[playerid][pSelected]; if (!IsValidCompanyID(company)) { return 0; } if (response) { new targetid; if (!isnull(inputtext) && !strcmp(inputtext, "none", true)) { SendInfoMessage(playerid, "You have removed the owner for company %i.", company); SetCompanyOwner(company, INVALID_PLAYER_ID); } else if (sscanf(inputtext, "u", targetid)) { return Dialog_Show(playerid, CompanyOwner, DIALOG_STYLE_INPUT, "{FFFFFF}Company Owner", "This company is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetCompanyOwner(company)); } else if (!IsPlayerConnected(targetid)) { return Dialog_Show(playerid, CompanyOwner, DIALOG_STYLE_INPUT, "{FFFFFF}Company Owner", "The specified player doesn't exist.\n\nThis company is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetCompanyOwner(company)); } else if (!IsPlayerLoggedIn(targetid)) { return Dialog_Show(playerid, CompanyOwner, DIALOG_STYLE_INPUT, "{FFFFFF}Company Owner", "The specified player is not logged in.\n\nThis company is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetCompanyOwner(company)); } else { SetCompanyOwner(company, targetid); SendInfoMessage(playerid, "You have set the owner of company %i to %s (ID: %i).", company, ReturnNameEx(targetid, 0), targetid); } } else { ShowCompanyEditMenu(playerid, company); } return 1; } Dialog:HouseInterior(playerid, response, listitem, inputtext[]) { new house = Players[playerid][pSelected]; if (!IsValidHouseID(house)) { return 0; } if (response) { new type; if (sscanf(inputtext, "i", type)) { return Dialog_Show(playerid, HouseInterior, DIALOG_STYLE_INPUT, "{FFFFFF}House Interior", "Please input the new interior type for this house below.\n\nUse /houseint to preview the available house interiors.", "Submit", "Back"); } else if (type < 1 || type > sizeof(g_HouseInteriors) - 1) { return Dialog_Show(playerid, HouseInterior, DIALOG_STYLE_INPUT, "{FFFFFF}House Interior", "You must input a number between 1 and %i.\n\nPlease input the new interior type for this house below.\n\nUse /houseint to preview the available house interiors.", "Submit", "Back", sizeof(g_HouseInteriors) - 1); } else { SetHouseInteriorType(house, type); SaveHouse(house); SendInfoMessage(playerid, "You have edited the interior of house %i to %i.", house, type); } } return 1; } Dialog:EditHouse(playerid, response, listitem, inputtext[]) { new house = Players[playerid][pSelected]; if (!IsValidHouseID(house)) { return 0; } if (response) { switch (listitem) { case 0: { GetPlayerPos(playerid, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2]); GetPlayerFacingAngle(playerid, Houses[house][hSpawn][3]); Houses[house][hExterior] = GetPlayerInterior(playerid); Houses[house][hExteriorWorld] = GetPlayerVirtualWorld(playerid); UpdateHouse(house); SaveHouse(house); SendInfoMessage(playerid, "You have edited the location of house %i.", house); } case 1: { Dialog_Show(playerid, HouseInterior, DIALOG_STYLE_INPUT, "{FFFFFF}House Interior", "Please input the new interior type for this house below.\n\nUse /houseint to preview the available house interiors.", "Submit", "Back"); } case 2: { Dialog_Show(playerid, HouseOwner, DIALOG_STYLE_INPUT, "{FFFFFF}House Owner", "This house is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetHouseOwner(house)); } case 3: { Dialog_Show(playerid, HouseValue, DIALOG_STYLE_INPUT, "{FFFFFF}House Price", "The current price for this house is %s.\n\nPlease input the new purchase price to set for this house below:", "Submit", "Back", FormatNumber(Houses[house][hValue])); } case 4: { Dialog_Show(playerid, HouseAddress, DIALOG_STYLE_INPUT, "{FFFFFF}House Address", "The current address for this house is %s.\n\nPlease input the new address for this house below:", "Submit", "Back", Houses[house][hAddress]); } } } return 1; } Dialog:HouseAddress(playerid, response, listitem, inputtext[]) { new house = Players[playerid][pSelected]; if (!IsValidHouseID(house)) { return 0; } if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, HouseAddress, DIALOG_STYLE_INPUT, "{FFFFFF}House Address", "The current address for this house is %s.\n\nPlease input the new address for this house below:", "Submit", "Back", Houses[house][hAddress]); } else if (strlen(inputtext) > 32) { return Dialog_Show(playerid, HouseAddress, DIALOG_STYLE_INPUT, "{FFFFFF}House Address", "The address can't be over 32 characters.\n\nThe current address for this house is %s.\n\nPlease input the new address for this house below:", "Submit", "Back", Houses[house][hAddress]); } else { strcpy(Houses[house][hAddress], inputtext, 32); UpdateHouse(house); SaveHouse(house); SendInfoMessage(playerid, "You have set the address of house %i to %s.", house, inputtext); } } else { ShowHouseEditMenu(playerid, house); } return 1; } Dialog:HouseValue(playerid, response, listitem, inputtext[]) { new house = Players[playerid][pSelected]; if (!IsValidHouseID(house)) { return 0; } if (response) { new amount; if (sscanf(inputtext, "i", amount)) { return Dialog_Show(playerid, HouseValue, DIALOG_STYLE_INPUT, "{FFFFFF}House Price", "The current price for this house is %s.\n\nPlease input the new purchase price to set for this house below:", "Submit", "Back", FormatNumber(Houses[house][hValue])); } else if (amount < 0) { return Dialog_Show(playerid, HouseValue, DIALOG_STYLE_INPUT, "{FFFFFF}House Price", "The amount must be above $0.\n\nThe current price for this house is %s.\n\nPlease input the new purchase price to set for this house below:", "Submit", "Back", FormatNumber(Houses[house][hValue])); } else { Houses[house][hValue] = amount; UpdateHouse(house); SaveHouse(house); SendInfoMessage(playerid, "You have set the price of house %i to %s.", house, FormatNumber(amount)); } } else { ShowHouseEditMenu(playerid, house); } return 1; } Dialog:HouseOwner(playerid, response, listitem, inputtext[]) { new house = Players[playerid][pSelected]; if (!IsValidHouseID(house)) { return 0; } if (response) { new targetid; if (!isnull(inputtext) && !strcmp(inputtext, "none", true)) { SendInfoMessage(playerid, "You have removed the owner for house %i.", house); SetHouseOwner(house, INVALID_PLAYER_ID); } else if (sscanf(inputtext, "u", targetid)) { return Dialog_Show(playerid, HouseOwner, DIALOG_STYLE_INPUT, "{FFFFFF}House Owner", "This house is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetHouseOwner(house)); } else if (!IsPlayerConnected(targetid)) { return Dialog_Show(playerid, HouseOwner, DIALOG_STYLE_INPUT, "{FFFFFF}House Owner", "The specified player doesn't exist.\n\nThis house is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetHouseOwner(house)); } else if (!IsPlayerLoggedIn(targetid)) { return Dialog_Show(playerid, HouseOwner, DIALOG_STYLE_INPUT, "{FFFFFF}House Owner", "The specified player is not logged in.\n\nThis house is currently owned by %s.\n\nPlease enter the ID of a connected player to set as the owner (use 'none' to reset).", "Submit", "Cancel", GetHouseOwner(house)); } else { SetHouseOwner(house, targetid); SendInfoMessage(playerid, "You have set the owner of house %i to %s (ID: %i).", house, ReturnNameEx(targetid, 0), targetid); } } else { ShowHouseEditMenu(playerid, house); } return 1; } Dialog:BuyHouse(playerid, response, listitem, inputtext[]) { if (response) { new house = GetNearbyHouse(playerid); if (!IsValidHouseID(house) || GetClosestHouse(playerid) != house) { return 0; } if (Houses[house][hOwner] != 0) { return SendErrorMessage(playerid, "This house is already owned."); } else if (IsHouseOwner(playerid, house)) { return SendErrorMessage(playerid, "You already own this house!"); } else { if (!PlayerCanAfford(playerid, Houses[house][hValue])) { return SendErrorMessage(playerid, "You cannot afford to buy this property."); } else { RemoveMoney(playerid, Houses[house][hValue]); SetHouseOwner(house, playerid); SendInfoMessage(playerid, "You have purchased %s for {33CC33}%s{FFFFFF}. Use /house to adjust settings.", Houses[house][hAddress], FormatNumber(Houses[house][hValue])); Statistics[playerid][sHouses]++; format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, 'House - #%i', %i, NOW())", Players[playerid][pID], Houses[house][hID], Houses[house][hValue]); mysql_tquery(gConnection, gExecute); ShowFooterText(playerid, "~g~This house is now yours!"); ShowInfoForHouse(playerid, house); } } } return 1; } Dialog:BuyCompany(playerid, response, listitem, inputtext[]) { if (response) { new company = GetNearbyCompany(playerid); if (!IsValidCompanyID(company) || GetClosestCompany(playerid) != company) { return 0; } if (Companies[company][cOwner] > 0) { return SendErrorMessage(playerid, "This company is already owned."); } else if (IsCompanyOwner(playerid, company)) { return SendErrorMessage(playerid, "You already own this company!"); } else { if (!PlayerCanAfford(playerid, Companies[company][cValue])) { return SendErrorMessage(playerid, "You cannot afford to buy this property."); } else { RemoveMoney(playerid, Companies[company][cValue]); SetCompanyOwner(company, playerid); SendInfoMessage(playerid, "You have purchased %s for {33CC33}%s{FFFFFF}. Use /company to adjust settings.", Companies[company][cName], FormatNumber(Companies[company][cValue])); Statistics[playerid][sCompanies]++; format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, 'Company - #%i', %i, NOW())", Players[playerid][pID], Companies[company][cID], Companies[company][cValue]); mysql_tquery(gConnection, gExecute); ShowFooterText(playerid, "~g~This company is now yours!"); ShowInfoForCompany(playerid, company); } } } return 1; } Dialog:AdminItemValue(playerid, response, listitem, inputtext[]) { if (Players[playerid][pAdmin] < 4) return 0; if (response) { new item = Players[playerid][pSelected]; if (isnull(inputtext)) { return Dialog_Show(playerid, AdminItemValue, DIALOG_STYLE_INPUT, "{FFFFFF}Input item value", "Item: %s\n\nPlease input the value for this item below.\n\nFor example, if the item is a mobile phone, enter the number:", "Submit", "Cancel", g_ItemList[item][e_ItemName]); } else { new id = AddItemToInventory(Players[playerid][pTarget], g_ItemList[item][e_ItemName], strval(inputtext)); if (id == INVALID_ID) { return SendErrorMessage(playerid, "The specified target has no more room for items."); } else { SendInfoMessage(playerid, "You have given a %s (%i) to %s.", g_ItemList[item][e_ItemName], strval(inputtext), ReturnNameEx(Players[playerid][pTarget])); SendAdminMessage(COLOR_RED, "Admin: %s has given a %s (%i) to %s.", ReturnNameEx(playerid, 0), g_ItemList[item][e_ItemName], strval(inputtext), ReturnNameEx(Players[playerid][pTarget])); Players[playerid][pTarget] = INVALID_PLAYER_ID; } } } return 1; } Dialog:AdminGiveItem(playerid, response, listitem, inputtext[]) { if (Players[playerid][pAdmin] < 4) return 0; if (response) { if (GetItemInformation(g_ItemList[listitem][e_ItemName], ITEM_INFO_VALUE)) { Players[playerid][pSelected] = listitem; Dialog_Show(playerid, AdminItemValue, DIALOG_STYLE_INPUT, "{FFFFFF}Input item value", "Item: %s\n\nPlease input the value for this item below.\n\nFor example, if the item is a mobile phone, enter the number:", "Submit", "Cancel", g_ItemList[listitem][e_ItemName]); } else { new id = AddItemToInventory(Players[playerid][pTarget], g_ItemList[listitem][e_ItemName]); if (id == INVALID_ID) { return SendErrorMessage(playerid, "The specified target has no more room for items."); } else { SendInfoMessage(playerid, "You have given a %s to %s.", g_ItemList[listitem][e_ItemName], ReturnNameEx(Players[playerid][pTarget])); SendAdminMessage(COLOR_RED, "Admin: %s has given a %s to %s.", ReturnNameEx(playerid, 0), g_ItemList[listitem][e_ItemName], ReturnNameEx(Players[playerid][pTarget], 0)); new log[128]; format(log, sizeof(log), "%s has given a %s to %s", ReturnName(playerid), g_ItemList[listitem][e_ItemName], ReturnName(Players[playerid][pTarget])); CreateLog("admin", log); Players[playerid][pTarget] = INVALID_PLAYER_ID; } } } return 1; } Dialog:VehicleDespawn(playerid, response, listitem, inputtext[]) { if (Players[playerid][pAdmin] < 3) return 0; if (response) { new count; if (!strcmp(inputtext, "Current vehicle")) { new vehicleid = GetPlayerVehicleID(playerid); if (!vehicleid) { return 0; } else if (!VehicleInformation[vehicleid][vAdmin]) { SendErrorMessage(playerid, "You can only destroy admin spawned vehicles."); } else if (DestroyVehicleEx(vehicleid)) { VehicleInformation[vehicleid][vAdmin] = 0; SendInfoMessage(playerid, "You have destroyed this vehicle."); new log[128]; format(log, sizeof(log), "%s has destroyed an admin vehicle: %s, id: %i", ReturnName(playerid), GetVehicleName(vehicleid), vehicleid); CreateLog("admin", log); } } else if (!strcmp(inputtext, "All vehicles")) { for (new i = 1; i < MAX_VEHICLES; i ++) { if (IsValidVehicle(i) && VehicleInformation[i][vAdmin]) { VehicleInformation[i][vAdmin] = 0; DestroyVehicleEx(i); count++; } } if (!count) { SendErrorMessage(playerid, "There are no admin vehicles to destroy."); } else { SendAdminMessage(COLOR_RED, "Admin: %s has destroyed %i admin vehicles.", ReturnNameEx(playerid, 0), count); new log[128]; format(log, sizeof(log), "%s has destroyed %i admin vehicles", ReturnName(playerid), count); CreateLog("admin", log); } } else if (!strcmp(inputtext, "Nearby vehicles")) { for (new i = 1; i < MAX_VEHICLES; i ++) { if (IsValidVehicle(i) && IsVehicleStreamedIn(i, playerid) && VehicleInformation[i][vAdmin]) { VehicleInformation[i][vAdmin] = 0; DestroyVehicleEx(i); count++; } } if (!count) { SendErrorMessage(playerid, "There are no nearby admin vehicles to destroy."); } else { SendInfoMessage(playerid, "You have destroyed %i nearby admin vehicles.", count); new log[128]; format(log, sizeof(log), "%s has destroyed %i nearby admin vehicles", ReturnName(playerid), count); CreateLog("admin", log); } } } return 1; } Dialog:VehicleRespawn(playerid, response, listitem, inputtext[]) { if (Players[playerid][pAdmin] < 2) return 0; if (response) { new count; if (!strcmp(inputtext, "Current vehicle")) { if (SetVehicleToRespawn(GetPlayerVehicleID(playerid))) { if(IsTransportVehicle(GetPlayerVehicleID(playerid))) { DestroyDynamicObject(VehicleInformation[GetPlayerVehicleID(playerid)][vObject]); VehicleInformation[GetPlayerVehicleID(playerid)][vGoods] = 0; VehicleInformation[GetPlayerVehicleID(playerid)][vObject] = INVALID_OBJECT_ID; } SendInfoMessage(playerid, "You have respawned this vehicle."); } } else if (!strcmp(inputtext, "All vehicles")) { for (new i = 1; i < MAX_VEHICLES; i ++) { if (IsValidVehicle(i) && !IsVehicleOccupied(i)) { SetVehicleToRespawn(i); if(IsTransportVehicle(i)) { DestroyDynamicObject(VehicleInformation[i][vObject]); VehicleInformation[i][vGoods] = 0; VehicleInformation[i][vObject] = INVALID_OBJECT_ID; } count++; } } if (!count) SendErrorMessage(playerid, "There are no vehicles to respawn."); else SendFormatMessageToAll(COLOR_SAMP, "(( %s has respawned %i unoccupied vehicles. ))", ReturnNameEx(playerid, 0), count); } else if (!strcmp(inputtext, "Nearby vehicles")) { for (new i = 1; i < MAX_VEHICLES; i ++) { if (IsValidVehicle(i) && IsVehicleStreamedIn(i, playerid) && !IsVehicleOccupied(i)) { SetVehicleToRespawn(i); if(IsTransportVehicle(i)) { DestroyDynamicObject(VehicleInformation[i][vObject]); VehicleInformation[i][vGoods] = 0; VehicleInformation[i][vObject] = INVALID_OBJECT_ID; } count++; } } if (!count) SendErrorMessage(playerid, "There are no nearby vehicles to respawn."); else SendInfoMessage(playerid, "You have respawned %i nearby vehicles.", count); } } return 1; } Dialog:UnbanPlayer(playerid, response, listitem, inputtext[]) { if (Players[playerid][pAdmin] < 2) return 0; if (response) { format(gExecute, sizeof(gExecute), "SELECT Player, IP FROM rp_blacklist WHERE ID = %i", Players[playerid][pSelected]); mysql_tquery(gConnection, gExecute, "OnPlayerUnbanPlayer", "i", playerid); } else { ShowBanList(playerid, Players[playerid][pBanPage]); } return 1; } Dialog:BanList(playerid, response, listitem, inputtext[]) { if (Players[playerid][pAdmin] < 2) return 0; if (response) { if (!strcmp(inputtext, ">> Next Page")) { ShowBanList(playerid, Players[playerid][pBanPage] + 1); } else if (!strcmp(inputtext, "<< Go Back")) { ShowBanList(playerid, Players[playerid][pBanPage] - 1); } else { new id = gListedItems[playerid][listitem]; Players[playerid][pSelected] = id; format(gExecute, sizeof(gExecute), "SELECT * FROM rp_blacklist WHERE ID = %i", id); mysql_tquery(gConnection, gExecute, "OnSelectBan", "i", playerid); } } return 1; } Dialog:ReportMenu(playerid, response, listitem, inputtext[]) { if (!Players[playerid][pAdmin]) return 0; if (!Reports[Players[playerid][pSelected]][rExists]) { return SendErrorMessage(playerid, "This report was already taken by another admin."); } if (response) { switch (listitem) { case 0: { Statistics[playerid][sReports]++; SendInfoMessage(Reports[Players[playerid][pSelected]][rReporter], "%s has accepted your report. It is now being reviewed.", ReturnNameEx(playerid, 0)); SendInfoMessage(playerid, "You have accepted %s's report.", ReturnNameEx(Reports[Players[playerid][pSelected]][rReporter])); SendAdminMessage(COLOR_RED, "Admin: %s has accepted %s's report.", ReturnNameEx(playerid, 0), ReturnNameEx(Reports[Players[playerid][pSelected]][rReporter])); Reports[Players[playerid][pSelected]][rExists] = 0; } case 1: { SendInfoMessage(Reports[Players[playerid][pSelected]][rReporter], "%s has trashed your report. It will not be reviewed.", ReturnNameEx(playerid, 0)); SendInfoMessage(playerid, "You have trashed %s's report.", ReturnNameEx(Reports[Players[playerid][pSelected]][rReporter])); SendAdminMessage(COLOR_RED, "Admin: %s has trashed %s's report.", ReturnNameEx(playerid, 0), ReturnNameEx(Reports[Players[playerid][pSelected]][rReporter])); Reports[Players[playerid][pSelected]][rExists] = 0; } } } else { ReviewReport(playerid, Players[playerid][pSelected]); } return 1; } Dialog:ApbMenu(playerid, response, listitem, inputtext[]) { if (GetPlayerFactionType(playerid) != FACTION_LEO) return 0; if(!Apbs[ Players[playerid][pSelected] ][apbExists]) { return SendErrorMessage(playerid,"This APB has been removed."); } if(response) { switch(listitem) { case 0: { SendInfoMessage(Apbs[ Players[playerid][pSelected] ][apbReporter], "%s has removed your APB.", ReturnNameEx(playerid, 0)); SendInfoMessage(playerid, "You have removed %s's APB.",ReturnNameEx(Apbs[Players[playerid][pSelected]][apbReporter])); Apbs[Players[playerid][pSelected]][apbExists] = 0; } case 1: { SendFormatMessage(playerid,COLOR_YELLOW,"%s's APB:", ReturnNameEx(Apbs[ Players[playerid][pSelected] ][apbReporter], 0) ); SendFormatMessage(playerid,COLOR_WHITE, "Description: %s", Apbs[ Players[playerid][pSelected] ][apbDesc1] ); } } } else { ReviewApb(playerid, Players[playerid][pSelected]); } return 1; } Dialog:ReportReview(playerid, response, listitem, inputtext[]) { if (!Players[playerid][pAdmin]) return 0; if (response) { if (!Reports[Players[playerid][pSelected]][rExists]) { SendErrorMessage(playerid, "This report was already taken by another admin."); } else { Dialog_Show(playerid, ReportMenu, DIALOG_STYLE_LIST, "{FFFFFF}Report Options", "Accept this report\nTrash this report", "Select", "Back"); } } else { ListReports(playerid); } return 1; } Dialog:EmergencyReview(playerid, response, listitem, inputtext[]) { if (response) { new id = Players[playerid][pSelected]; if (!Emergency[id][ecExists]) { SendErrorMessage(playerid, "This call has already been handled."); } else { SendInfoMessage(playerid, "You have marked %s's 911 call as handled.", Emergency[id][ecName]); SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** HQ: %s has marked %s's 911 call as handled.", ReturnNameEx(playerid, 0), Emergency[id][ecName]); Emergency[id][ecExists] = 0; } } else { ListEmergency(playerid); } return 1; } Dialog:ApbReview(playerid, response, listitem, inputtext[]) { if (GetPlayerFactionType(playerid) != FACTION_LEO) return 0; if (response) { if(!Apbs[ Players[playerid][pSelected] ][apbExists]) { SendErrorMessage(playerid,"This report was already removed."); } else { Dialog_Show(playerid, ApbMenu, DIALOG_STYLE_LIST, "{FFFFFF}APB Options", "Remove this APB\nPrint this APB", "Select", "Back"); } } else { ListApbs(playerid); } return 1; } Dialog:EmergencyList(playerid, response, listitem, inputtext[]) { if (response) { new id = gListedItems[playerid][listitem]; if (!Emergency[id][ecExists]) { SendErrorMessage(playerid, "The selected call has already been handled."); } else { ReviewEmergency(playerid, id); } } return 1; } Dialog:ReportList(playerid, response, listitem, inputtext[]) { if (!Players[playerid][pAdmin]) return 0; if (response) { new id = gListedItems[playerid][listitem]; if (!Reports[id][rExists]) { SendErrorMessage(playerid, "The selected report has already been taken."); } else { ReviewReport(playerid, id); } } return 1; } Dialog:ApbList(playerid, response, listitem, inputtext[]) { if (GetPlayerFactionType(playerid) != FACTION_LEO) return 0; if (response) { new id = gListedItems[playerid][listitem]; if(!Apbs[id][apbExists]) { SendErrorMessage(playerid, "The selected APB has already been removed."); } else { ReviewApb(playerid, id); } } return 1; } Dialog:FAQ(playerid, response, listitem, inputtext[]) { static helpInfo[1024] ; if (response) { switch (listitem) { case 0: { Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Fitness system", "Your character also has a fitness ability. You can check your fitness level\nby using the /stats command.\n\nYou can work out at the gym to increase your fitness skill. A higher fitness\nskill means more advantages in fist fights, and the ability to carry more items.", "Back", "Close"); } case 1: { Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Weapon management", "Your character can carry one melee weapon and 2 additional weapons. The\n/weapons command allows you to access the weapons menu.\n\nOnce you find a weapon, select it in your inventory and select 'Use Item'.\nThe weapon will then be equipped to your character.\n\nThere are many different ammo types made for each weapon. You can\npurchase more ammunition at an ammunition store.", "Back", "Close"); } case 2: { Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Item management", "Your character also has an inventory that your items are stored in. Simply\nuse the /items command or press the N key to open your inventory.\n\nThere are many types of items that can be found. Look around and\nmaybe you can find some!", "Back", "Close"); } case 3: { Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Bank accounts", "Your character can only carry so much cash in their pocket. Open a bank\naccount and set it as your primary payment method for easier checkout!\n\nYou can open up to "#MAX_BANK_ACCOUNTS" bank accounts. You can setup your bank account\nas your payment method using the /payment command.", "Back", "Close"); } case 4: { Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Buying a vehicle", "There are many dealerships scattered across the city that you can buy\nyour own vehicle from. You can own an unlimited amount of vehicles!\n\nDealerships are marked on your radar as a blue car icon. If there is any\ndealership nearby then it will be marked on your mini-map.", "Back", "Close"); } case 5: { Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Finding a job", "There are many jobs to choose from. Jobs are the number one source\nof income for your character.\n\nYou can acquire a job at City Hall. Use the /guide command if you want\nto find it.\n\nAfter you have a job, you can use the /jobhelp command for more help relating\nto your new job.", "Back", "Close"); } case 6: { Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Auto shops", "Auto shops are scattered across the city. You can change the vehicle's\ncolor, repair your vehicle, and change the license plate.\n\nAuto shops are marked on your mini-map as a red wrench icon.\nUse the /auto command to open the menu.", "Back", "Close"); } case 7: { helpInfo = "Using keys is one of the many ways to interact with things you will find\naround the city.\n\nThe H key allows you to enter and exit an interior instead of using a\ncommand each time.\n\nThe N key will open your inventory. If you're not carrying any items then\nan error message will be displayed.\n\nThe Y key allows you turn a vehicle's engine on or off, access a gate\nor pickup items, and so much more!\n\n"; strcat(helpInfo, "Additionally, most interactive items will display a text label which will\nshow you how to interactive with that item."); Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Interactive keys", helpInfo, "Back", "Close"); } case 8: { helpInfo = "Drugs can be purchased and consumed by players. Each drug has its own\nbenefits and unique effects.\n\nMarijuana gives you 5 health points per second as it's a medicinal drug and\na slight drunk effect.\n\nCocaine gives you 3 health points per second and temporarily stops you from\nlosing health if you are bleeding.\n\nHeroin gives you 1 health point per second and affects your vision and gives\na significant drunk effect."; Dialog_Show(playerid, ShowFAQ, DIALOG_STYLE_MSGBOX, "{FFFFFF}Drug system", helpInfo, "Back", "Close"); } } } else { cmd_guide(playerid, "\1"); } return 1; } Dialog:ItemMenu(playerid, response, listitem, inputtext[]) { if (response) { new item = Players[playerid][pSelected]; switch (listitem) { case 0: { new weapon, string[64]; if (!strcmp("Camera", Inventory[playerid][item][invName])) { Players[playerid][pCamera] = Inventory[playerid][item][invID]; GivePlayerWeapon(playerid, 43, 99999); ShowActionBubble(playerid, "* %s takes out a camera from their inventory.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have taken out a camera. Hold RMB to view and press LMB to snap a photo."); } else if (!strcmp("Walkie Talkie", Inventory[playerid][item][invName])) { if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue]) { Dialog_Show(playerid, WalkieTalkie, DIALOG_STYLE_LIST, "{FFFFFF}Walkie Talkie", "Unset Primary\nSet Channel (%i)", "Select", "Cancel", Inventory[playerid][item][invValue]); } else { Dialog_Show(playerid, WalkieTalkie, DIALOG_STYLE_LIST, "{FFFFFF}Walkie Talkie", "Set to Primary\nSet Channel (%i)", "Select", "Cancel", Inventory[playerid][item][invValue]); } } else if (!strcmp("Portable Radio", Inventory[playerid][item][invName])) { if (Inventory[playerid][item][invValue] > 0 && Players[playerid][pChannel] == Inventory[playerid][item][invValue]) { Dialog_Show(playerid, PortableRadio, DIALOG_STYLE_LIST, "{FFFFFF}Portable Radio", "Unset Primary\nSet Channel (%i)", "Select", "Cancel", Inventory[playerid][item][invValue]); } else { Dialog_Show(playerid, PortableRadio, DIALOG_STYLE_LIST, "{FFFFFF}Portable Radio", "Set to Primary\nSet Channel (%i)", "Select", "Cancel", Inventory[playerid][item][invValue]); } } else if (!strcmp("Stereo", Inventory[playerid][item][invName])) { if (Stereos[playerid][pStereoID] != INVALID_ID) { if (!IsPlayerNearPoint(playerid, 3.0, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ], Stereos[playerid][pStereoInterior], Stereos[playerid][pStereoWorld])) { return SendErrorMessage(playerid, "You are not in range of your stereo."); } else { PickupStereo(playerid); } } else { if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { return SendErrorMessage(playerid, "You need to be onfoot to place a stereo down."); } else if (GetNearbyStereoPlayerID(playerid) != INVALID_PLAYER_ID) { return SendErrorMessage(playerid, "There is another stereo nearby."); } else { new Float:angle; format(string, sizeof(string), "%s's Stereo\n{CFCFCF}Commands: /stereo", ReturnNameEx(playerid)); strpack(Stereos[playerid][pStereoURL], "Not Specified", 255); GetPlayerPos(playerid, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ]); GetPlayerFacingAngle(playerid, angle); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); Stereos[playerid][pStereoID] = item; Stereos[playerid][pStereoInterior] = GetPlayerInterior(playerid); Stereos[playerid][pStereoWorld] = GetPlayerVirtualWorld(playerid); Stereos[playerid][pStereoObject] = CreateDynamicObject(2102, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ] - 1.0, 0.0, 0.0, angle, Stereos[playerid][pStereoWorld], Stereos[playerid][pStereoInterior]); Stereos[playerid][pStereoText] = CreateDynamic3DTextLabel(string, COLOR_BLUE, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ] - 0.9, 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, Stereos[playerid][pStereoWorld], Stereos[playerid][pStereoInterior]); SendInfoMessage(playerid, "You have deployed your stereo. Use /stereo for settings."); ShowActionBubble(playerid, "* %s takes out a stereo and sets it down.", ReturnNameEx(playerid)); } } } else if (!strcmp(".50cal", Inventory[playerid][item][invName]) || !strcmp("9x19mm", Inventory[playerid][item][invName]) || !strcmp("5.56x45mm", Inventory[playerid][item][invName]) || !strcmp("7.62x39mm", Inventory[playerid][item][invName]) || !strcmp("12 Gauge", Inventory[playerid][item][invName]) || !strcmp("7.62x51mm", Inventory[playerid][item][invName])) { UseAmmunition(playerid, item); } else if (!strcmp("Beer", Inventory[playerid][item][invName])) { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_BEER) { return SendErrorMessage(playerid, "You are already drinking a bottle of beer."); } else { RemoveItemFromInventory(playerid, item); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER); ShowActionBubble(playerid, "* %s opens up a bottle of beer.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "Press LMB to take a sip of the beer. Press F to throw it away."); } } else if (!strcmp("Wine", Inventory[playerid][item][invName])) { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_WINE) { return SendErrorMessage(playerid, "You are already drinking a bottle of wine."); } else { RemoveItemFromInventory(playerid, item); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE); ShowActionBubble(playerid, "* %s opens up a bottle of wine.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "Press LMB to take a sip of the wine. Press F to throw it away."); } } else if (!strcmp("Spraycan", Inventory[playerid][item][invName])) { new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)); if (vehicle == INVALID_ID) { return SendErrorMessage(playerid, "You are not in any vehicle."); } else if (Players[playerid][pJob] != JOB_MECHANIC) { return SendErrorMessage(playerid, "You need to have the mechanic job to do this."); } else if (!GetVehicleKeys(playerid, Vehicles[vehicle][vVehicle])) { return SendErrorMessage(playerid, "You don't have the keys to this vehicle."); } else if (Vehicles[vehicle][vRentable]) { return SendErrorMessage(playerid, "You can't change the color of a rental vehicle."); } else { Dialog_Show(playerid, VehicleColor, DIALOG_STYLE_INPUT, "{FFFFFF}Vehicle Colors", "Please enter the colors to apply for this vehicle below (color1, color2).\n\nExample: If you want to set your car's color to black, use '0, 0'.", "Submit", "Cancel"); } } else if (!strcmp("Mask", Inventory[playerid][item][invName])) { if (Players[playerid][pMaskID] > 0) { Players[playerid][pMaskID] = 0; ShowActionBubble(playerid, "* %s takes off their mask.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have taken off your mask."); } else { ShowActionBubble(playerid, "* %s puts a mask on their face.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have put on a mask."); Players[playerid][pMaskID] = Inventory[playerid][item][invValue]; } } else if (!strcmp("Notebook", Inventory[playerid][item][invName])) { ShowPlayerNotebook(playerid, item); } else if (IsWeaponPackage(Inventory[playerid][item][invName])) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_crateguns WHERE itemID = %i", Inventory[playerid][item][invID]); mysql_tquery(gConnection, gExecute, "OnPlayerOpenCrate", "ii", playerid, item); } else if (!strcmp("Steroids", Inventory[playerid][item][invName])) { if (Players[playerid][pStoned] != STONED_TYPE_NONE) { SendErrorMessage(playerid, "You are stoned already."); } else { RemoveItemValue(playerid, item, 1); Players[playerid][pSeconds] = 0; SetPlayerDrunkLevel(playerid, 4000); ShowActionBubble(playerid, "* %s takes Steroids.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have consumed Steroids."); Players[playerid][pStoned] = STONED_TYPE_STEROIDS; Players[playerid][pStonedTime] = 500; } } else if (!strcmp("Heroin", Inventory[playerid][item][invName])) { if (Players[playerid][pStoned] != STONED_TYPE_NONE) { SendErrorMessage(playerid, "You are stoned already."); } else { RemoveItemValue(playerid, item, 1); Players[playerid][pSeconds] = 0; SetPlayerDrunkLevel(playerid, 4000); ShowActionBubble(playerid, "* %s takes Heroin.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have consumed Heroin."); Players[playerid][pStoned] = STONED_TYPE_HEROIN; Players[playerid][pStonedTime] = 500; } } else if (!strcmp("LSD", Inventory[playerid][item][invName])) { if (Players[playerid][pStoned] != STONED_TYPE_NONE) { SendErrorMessage(playerid, "You are stoned already."); } else { RemoveItemValue(playerid, item, 1); Players[playerid][pSeconds] = 0; SetPlayerDrunkLevel(playerid, 4000); ShowActionBubble(playerid, "* %s takes LSD.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have consumed LSD."); Players[playerid][pStoned] = STONED_TYPE_LSD; Players[playerid][pStonedTime] = 500; } } else if (!strcmp("Ecstasy", Inventory[playerid][item][invName])) { if (Players[playerid][pStoned] != STONED_TYPE_NONE) { SendErrorMessage(playerid, "You are stoned already."); } else { RemoveItemValue(playerid, item, 1); Players[playerid][pSeconds] = 0; SetPlayerDrunkLevel(playerid, 4000); ShowActionBubble(playerid, "* %s takes Ecstasy.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have consumed Ecstasy."); Players[playerid][pStoned] = STONED_TYPE_ECSTASY; Players[playerid][pStonedTime] = 500; } } else if (!strcmp("Marijuana", Inventory[playerid][item][invName])) { if (Players[playerid][pStoned] != STONED_TYPE_NONE) { SendErrorMessage(playerid, "You are stoned already."); } else { RemoveItemValue(playerid, item, 1); Players[playerid][pSeconds] = 0; SetPlayerDrunkLevel(playerid, 4000); ShowActionBubble(playerid, "* %s takes Marijuana.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have consumed Marijuana."); Players[playerid][pStoned] = STONED_TYPE_MARIJUANA; Players[playerid][pStonedTime] = 500; } } else if (!strcmp("Crack", Inventory[playerid][item][invName])) { if (Players[playerid][pStoned] != STONED_TYPE_NONE) { SendErrorMessage(playerid, "You are stoned already."); } else { RemoveItemValue(playerid, item, 1); Players[playerid][pSeconds] = 0; SetPlayerDrunkLevel(playerid, 4000); ShowActionBubble(playerid, "* %s takes Crack.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have consumed Crack."); Players[playerid][pStoned] = STONED_TYPE_CRACK; Players[playerid][pStonedTime] = 500; } } else if (!strcmp("Cocaine", Inventory[playerid][item][invName])) { if (Players[playerid][pStoned] != STONED_TYPE_NONE) { SendErrorMessage(playerid, "You are stoned already."); } else { RemoveItemValue(playerid, item, 1); Players[playerid][pSeconds] = 0; SetPlayerDrunkLevel(playerid, 4000); ShowActionBubble(playerid, "* %s takes Cocaine.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have consumed Cocaine."); Players[playerid][pStoned] = STONED_TYPE_COCAINE; Players[playerid][pStonedTime] = 500; } } else if (!strcmp("Methamphetamine", Inventory[playerid][item][invName])) { if (Players[playerid][pStoned] != STONED_TYPE_NONE) { SendErrorMessage(playerid, "You are stoned already."); } else { RemoveItemValue(playerid, item, 1); Players[playerid][pSeconds] = 0; SetPlayerDrunkLevel(playerid, 4000); ShowActionBubble(playerid, "* %s takes Methamphetamine.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have consumed Methamphetamine."); Players[playerid][pStoned] = STONED_TYPE_METH; Players[playerid][pStonedTime] = 500; } } else if (!strcmp("PCP", Inventory[playerid][item][invName])) { if (Players[playerid][pStoned] != STONED_TYPE_NONE) { SendErrorMessage(playerid, "You are stoned already."); } else { RemoveItemValue(playerid, item, 1); Players[playerid][pSeconds] = 0; SetPlayerDrunkLevel(playerid, 4000); ShowActionBubble(playerid, "* %s takes PCP.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have consumed PCP."); Players[playerid][pStoned] = STONED_TYPE_PCP; Players[playerid][pStonedTime] = 500; } } else if (!strcmp("Gasoline", Inventory[playerid][item][invName])) { new vehicleid = GetClosestVehicle(playerid); if (vehicleid == INVALID_VEHICLE_ID) { SendErrorMessage(playerid, "There is no vehicle nearby."); } else if (!IsPoweredVehicle(vehicleid)) { SendErrorMessage(playerid, "You can't refill this vehicle."); } else if (VehicleInformation[vehicleid][vFuel] > 95) { SendErrorMessage(playerid, "This vehicle is already filled with fuel."); } else if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { SendErrorMessage(playerid, "You must be onfoot to use this item."); } else { RemoveItemValue(playerid, item, 5); VehicleInformation[vehicleid][vFuel] += 5; UpdateFuelGauge(vehicleid); ShowActionBubble(playerid, "* %s pours some gasoline into the gas tank.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have added 5 gallons of gas into the tank."); } } else if (!strcmp("Cigarettes", Inventory[playerid][item][invName])) { if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_SMOKE_CIGGY) { SendErrorMessage(playerid, "You are already smoking a cigarette."); } else { ShowActionBubble(playerid, "* %s takes out a cigarette from their pack.", ReturnNameEx(playerid)); ApplyAnimation(playerid, "SMOKING", "M_smk_in", 4.1, 0, 0, 0, 0, 0, 1); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY); RemoveItemValue(playerid, item, 1); SendInfoMessage(playerid, "You are now smoking a cigarette (press F to remove)."); } } else if (!strcmp("Bandages", Inventory[playerid][item][invName])) { Players[playerid][pSelected] = item; Dialog_Show(playerid, UseBandage, DIALOG_STYLE_LIST, "{FFFFFF}Bandage Options", "Use bandage\nUse on player", "Select", "Cancel"); } else if (!strcmp("Cuffs", Inventory[playerid][item][invName])) { Players[playerid][pSelected] = item; Dialog_Show(playerid, UseCuffs, DIALOG_STYLE_INPUT, "{FFFFFF}Use Cuffs", "Please input the player that you would like to cuff:", "Cuff", "Cancel"); } /*else if (!strcmp("Taser", Inventory[playerid][item][invName])) { cmd_taser(playerid, "\1"); }*/ else if (!strcmp("Marijuana Seeds", Inventory[playerid][item][invName])) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); AddWeedPlant(playerid, x, y, z, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); RemoveItemValue(playerid, item, 1); //AddWeedPlant(playerid, Float:x, Float:y, Float:z, interior, world) } else if (!strcmp("Painkillers", Inventory[playerid][item][invName])) { if (!Players[playerid][pBleeding] && GetPlayerHealthEx(playerid) > 99.0) { SendErrorMessage(playerid, "You don't need to use this right now."); } else if (Players[playerid][pPainkillers] > 0) { SendErrorMessage(playerid, "Please wait until the effect has worn off."); } else { Players[playerid][pPainkillers] = 60; Players[playerid][pBleeding] = 0; Players[playerid][pBrokenLeg] = 0; RemoveItemValue(playerid, item, 1); SetPlayerDrunkLevel(playerid, 5000); ApplyAnimation(playerid, "SMOKING", "M_smkstnd_loop", 4.1, 0, 0, 0, 0, 0, 1); ShowActionBubble(playerid, "* %s opens a bottle of painkillers and takes one.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have taken some painkillers. The effect will wear off in a minute or so."); } } else if (!strcmp("Medical Kit", Inventory[playerid][item][invName])) { if (GetPlayerHealthEx(playerid) > 99.0) { SendErrorMessage(playerid, "You don't need to use this right now."); } else { Players[playerid][pMedicKit] = 1; Players[playerid][pBleeding] = 0; Players[playerid][pBrokenLeg] = 0; RemoveItemFromInventory(playerid, item); ShowActionBubble(playerid, "* %s opens a medical kit.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have opened up a medical kit. Your health is now regenerating."); } } else if (!strcmp("Mobile Phone", Inventory[playerid][item][invName])) { if (!Inventory[playerid][item][invValue]) { SendErrorMessage(playerid, "This phone is not activated! Purchase a SIM card for it."); } else if (Players[playerid][pPhone] == Inventory[playerid][item][invValue]) { Players[playerid][pPhone] = 0; SendInfoMessage(playerid, "This phone is no longer your primary phone."); } else { Players[playerid][pPhone] = Inventory[playerid][item][invValue]; SendInfoMessage(playerid, "You have set this phone as your primary phone (number: %i).", Players[playerid][pPhone]); } } else if (!strcmp("Kevlar Vest", Inventory[playerid][item][invName])) { new value = Inventory[playerid][item][invValue] == 0 ? 50 : Inventory[playerid][item][invValue]; SetPlayerValidArmor(playerid, value); ShowActionBubble(playerid, "* %s straps on a kevlar vest.", ReturnNameEx(playerid)); RemoveItemFromInventory(playerid, item); SendInfoMessage(playerid, "You have strapped on a kevlar vest."); } else if (!strcmp("Armor", Inventory[playerid][item][invName])) { if(GetPlayerArmourEx(playerid) > 0.0) { return SendErrorMessage(playerid, "You have armor already."); } else { new Float:Farmor; new armor = Inventory[playerid][item][invValue]; Farmor = float(armor); SetPlayerValidArmor(playerid, Farmor); ShowActionBubble(playerid, "* %s straps on a kevlar vest.", ReturnNameEx(playerid)); RemoveItemFromInventory(playerid, item); SendInfoMessage(playerid, "You have put armor on."); } } else if (!strcmp("Toolbox", Inventory[playerid][item][invName])) { new vehicleid = GetClosestVehicle(playerid); if (vehicleid == INVALID_VEHICLE_ID) { return SendErrorMessage(playerid, "There is no vehicle nearby."); } else if (Players[playerid][pJob] != JOB_MECHANIC) { return SendErrorMessage(playerid, "You need to have the mechanic job to do this."); } else if (!GetHoodStatus(vehicleid)) { return SendErrorMessage(playerid, "The hood must be opened to perform a repair."); } else if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { return SendErrorMessage(playerid, "You must be onfoot to use this item."); } else if (GetVehicleHealthEx(vehicleid) >= 1000.0) { return SendErrorMessage(playerid, "The engine doesn't need to be repaired."); } else if (Players[playerid][pRepairCar]) { return SendErrorMessage(playerid, "You are already repairing a vehicle."); } else { ShowActionBubble(playerid, "* %s takes out a toolbox and starts repairing the engine.", ReturnNameEx(playerid)); ShowFooterText(playerid, "Repairing the engine, please wait...", 1200); Timers[playerid][tRepair] = SetTimerEx("RepairEngine", 1000, true, "ii", playerid, vehicleid); Players[playerid][pRepairCar] = 1; } } else if (!strcmp("Screwdriver", Inventory[playerid][item][invName])) { new id; if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { return SendErrorMessage(playerid, "You must be onfoot to use this item."); } else if ((id = GetClosestHouse(playerid)) != INVALID_ID) { if (!Houses[id][hLocked]) { return SendErrorMessage(playerid, "The doors are already unlocked."); } else { ShowActionBubble(playerid, "* %s takes out a screwdriver and starts picking the lock.", ReturnNameEx(playerid)); PickLock(playerid, PICK_LOCK_HOUSE, id); SendInfoMessage(playerid, "You are now picking the lock. Leave the area to stop picking."); } }//else if (GetClosestFurniture(playerid, 2.0, 2332) != INVALID_ID) SafeCheck(playerid); /*else if ((id = GetClosestFurniture(playerid, 2.0, 2332)) != INVALID_ID) { if (Furniture[id][fSafeOpen]) { return SendErrorMessage(playerid, "This safe is already open."); } else { ShowActionBubble(playerid, "* %s takes out a screwdriver and starts picking the lock.", ReturnNameEx(playerid)); PickLock(playerid, PICK_LOCK_SAFE, id); SendInfoMessage(playerid, "You are now picking the lock. Leave the area to stop picking."); } }*/ else if ((id = GetClosestCompany(playerid)) != INVALID_ID) { if (!Companies[id][cLocked]) { return SendErrorMessage(playerid, "The doors are already unlocked."); } else { ShowActionBubble(playerid, "* %s takes out a screwdriver and starts picking the lock.", ReturnNameEx(playerid)); PickLock(playerid, PICK_LOCK_COMPANY, id); SendInfoMessage(playerid, "You are now picking the lock. Leave the area to stop picking."); } } else if ((id = GetVehicleID(GetClosestVehicle(playerid))) != INVALID_ID) { if (!Vehicles[id][vLocked]) { return SendErrorMessage(playerid, "This vehicle is already unlocked."); } else { foreach (new i : Player) { if (IsVehicleOwner(i, id)) { SendFormatMessage(i, COLOR_YELLOW, "* Text from OnStar: The alarm has been activated on your %s with the license plate '%s'.", GetVehicleModelName(Vehicles[id][vModel]), Vehicles[id][vPlate]); } if (GetPlayerFactionType(i) == FACTION_LEO) { new Float:x, Float:y, Float:z; GetVehiclePos( Vehicles[id][vVehicle] , x, y, z); SendFormatMessage(i, COLOR_GREEN, "* [DISPATCH] Vehicle Alarm has been Activated any available units please respond."); SendFormatMessage(i, COLOR_GREEN, "* [DISPATCH] %s located in %s, plate: '%s' *", GetVehicleModelName(Vehicles[id][vModel]), GetZoneName(x, y, z), Vehicles[id][vPlate]); //break; } } /*foreach (new j : Player) { if (GetPlayerFactionType(j) == FACTION_LEO) { new Float:x, Float:y, Float:z; GetVehiclePos( Vehicles[id][vVehicle] , x, y, z); SendFormatMessage(j, COLOR_RED, "* [ALARM] %s located in %s, plate: '%s' *", GetVehicleModelName(Vehicles[id][vModel]), GetZoneName(x, y, z), Vehicles[id][vPlate]); //break; } }*/ ShowActionBubble(playerid, "* %s takes out a screwdriver and starts picking the lock.", ReturnNameEx(playerid)); PickLock(playerid, PICK_LOCK_VEHICLE, id); SendInfoMessage(playerid, "You are now picking the lock. Leave the area to stop picking."); } } else { SendErrorMessage(playerid, "There is no locks nearby to pick."); } } else if ((weapon = GetItemInformation(Inventory[playerid][item][invName], ITEM_INFO_WEAPON_ID)) > 0) { if (Players[playerid][pHoursOnline] < 5 && GetPlayerFactionType(playerid) != FACTION_LEO) { return SendErrorMessage(playerid, "You need at least 5 playing hours to equip a weapon."); } if (1 <= weapon <= 15 && Weapons[playerid][wMelee]) { SendErrorMessage(playerid, "Your melee weapon contains a weapon already!"); } else if (1 <= weapon <= 15 && !Weapons[playerid][wMelee]) { SetPlayerWeapon(playerid, WEAPON_MELEE, weapon); ShowActionBubble(playerid, "* %s takes out a weapon from their inventory.", ReturnNameEx(playerid)); RemoveItemFromInventory(playerid, item); SendInfoMessage(playerid, "{CFCFCF}You have equipped your melee weapon. Command available: {33AA33}/weapons."); } else if (!Weapons[playerid][wPrimary]) { if (g_WeaponInfo[Weapons[playerid][wSecondary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot] || g_WeaponInfo[Weapons[playerid][wTertiary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot]) { return SendErrorMessage(playerid, "You are already carrying a weapon of this type."); } else { if (Inventory[playerid][item][invValue] > 0) { SetReloadAnimation(playerid, weapon); } SetPlayerWeapon(playerid, WEAPON_PRIMARY, weapon, Inventory[playerid][item][invValue], Inventory[playerid][item][invSerial]); ShowActionBubble(playerid, "* %s takes out a weapon from their inventory.", ReturnNameEx(playerid)); RemoveItemFromInventory(playerid, item); SendInfoMessage(playerid, "Y{CFCFCF}You have equipped your primary weapon. Command available: {33AA33}/weapons."); } } else if (!Weapons[playerid][wSecondary]) { if (g_WeaponInfo[Weapons[playerid][wPrimary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot] || g_WeaponInfo[Weapons[playerid][wTertiary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot]) { return SendErrorMessage(playerid, "You are already carrying a weapon of this type."); } else { if (Inventory[playerid][item][invValue] > 0) { SetReloadAnimation(playerid, weapon); } SetPlayerWeapon(playerid, WEAPON_SECONDARY, weapon, Inventory[playerid][item][invValue], Inventory[playerid][item][invSerial]); ShowActionBubble(playerid, "* %s takes out a weapon from their inventory.", ReturnNameEx(playerid)); RemoveItemFromInventory(playerid, item); SendInfoMessage(playerid, "{CFCFCF}You have equipped your secondary weapon. Command available: {33AA33}/weapons."); } } else if (Players[playerid][pDonator] >= DONATOR_STANDARD && !Weapons[playerid][wTertiary]) { if (g_WeaponInfo[Weapons[playerid][wPrimary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot] || g_WeaponInfo[Weapons[playerid][wSecondary]][e_WeaponSlot] == g_WeaponInfo[weapon][e_WeaponSlot]) { return SendErrorMessage(playerid, "You are already carrying a weapon of this type."); } else { if (Inventory[playerid][item][invValue] > 0) { SetReloadAnimation(playerid, weapon); } SetPlayerWeapon(playerid, WEAPON_TERTIARY, weapon, Inventory[playerid][item][invValue], Inventory[playerid][item][invSerial]); ShowActionBubble(playerid, "* %s takes out a weapon from their inventory.", ReturnNameEx(playerid)); RemoveItemFromInventory(playerid, item); SendInfoMessage(playerid, "{CFCFCF}You have equipped your tertiary weapon. Command available: {33AA33}/weapons."); } } else { SendErrorMessage(playerid, "{CFCFCF}Your weapon slots are full! (/weapons)"); } } } case 1: { if (Players[playerid][pFaction] != INVALID_ID && GetPlayerFactionType(playerid) != FACTION_ILLEGAL && GetItemInformation(Inventory[playerid][item][invName], ITEM_INFO_WEAPON_ID) > 0) { SendErrorMessage(playerid, "You cannot give out weapons in your faction."); } else { Dialog_Show(playerid, GiveItem, DIALOG_STYLE_INPUT, "{FFFFFF}Give item", "Item: %s\n\nPlease input the player to give this item to:", "Submit", "Cancel", GetFullItemName(playerid, item)); } } case 2: { if (IsPlayerInAnyVehicle(playerid)) { return SendErrorMessage(playerid, "You cannot drop items in a vehicle."); } else { /*if (GetItemInformation(StoredItems[item][stName], ITEM_INFO_STACKABLE) && Inventory[playerid][item][invValue] > 1) { Dialog_Show(playerid, DropAmount, DIALOG_STYLE_INPUT, "{FFFFFF}Drop item", "How many would you like to drop?", "Submit", "Cancel"); } else { Statistics[playerid][sItemsDropped]++; ApplyAnimation(playerid, "BOMBER", "BOM_Plant_In", 4.1, 0, 0, 0, 0, 0); SendInfoMessage(playerid, "You have discarded an item: %s.", GetFullItemName(playerid, item)); ShowActionBubble(playerid, "* %s puts an item on the ground.", ReturnNameEx(playerid)); format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Dropped', NOW())", ReturnName(playerid), GetFullItemName(playerid, item)); mysql_tquery(gConnection, gExecute); DiscardItem(playerid, item); if (Players[playerid][pFaction] != INVALID_ID && GetItemInformation(Inventory[playerid][item][invName], ITEM_INFO_WEAPON_ID) > 0) { SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground."); RemoveItemFromInventory(playerid, item); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Dropped', NOW())", ReturnName(playerid), GetFullItemName(playerid, item)); mysql_tquery(gConnection, gExecute); DiscardItem(playerid, item); } }*/ if (Players[playerid][pFaction] != INVALID_ID && GetItemInformation(Inventory[playerid][item][invName], ITEM_INFO_WEAPON_ID) > 0) { SendInfoMessage(playerid, "As you are a faction member, dropped weapons will not appear on the ground."); RemoveItemFromInventory(playerid, item); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_itemlogs (Player, Item, Action, Date) VALUES('%s', '%s', 'Dropped', NOW())", ReturnName(playerid), GetFullItemName(playerid, item)); mysql_tquery(gConnection, gExecute); DiscardItem(playerid, item); } } } } } return 1; } Dialog:AccountCreate(playerid, response, listitem, inputtext[]) { if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, AccountCreate, DIALOG_STYLE_PASSWORD, "WCRPG Registration", "Your name is currently not registered!\nPlease enter a safe and secure password below to register with your master account:", "Submit", "Quit"); } else if (strlen(inputtext) < 4) { return Dialog_Show(playerid, AccountCreate, DIALOG_STYLE_PASSWORD, "WCRPG Registration", "Your password must contain a minimum of 4 characters.\n\nYour name is currently not registered!\nPlease enter a safe and secure password below to register with your master account:", "Submit", "Quit"); } else { CreatePlayerAccount(playerid, inputtext); FlushChatForPlayer(playerid); SendInfoMessage(playerid, " You have been registered, once spawned you will spawn at the starter spawn. Welcome aboard!"); SendInfoMessage(playerid, " Please type {33AA33}'/spawntype'{FFFFFF} to adjust your spawn location."); SendInfoMessage(playerid, " If you wish to spawn the your desired faction, please re-log after used {33AA33}'/spawntype'"); SendInfoMessage(playerid, " There is rental vehicles nearby you if it's needed."); } } else { Kick(playerid); } return 1; } Dialog:AccountLogin(playerid, response, listitem, inputtext[]) { if (response) { if (isnull(inputtext)) { return Dialog_Show(playerid, AccountLogin, DIALOG_STYLE_PASSWORD, "WCRPG Login", "{FFFFFF}This account is {33AA33}registered.\n{FFFFFF}Please enter your password below in order to authenticate:", "Submit", "Quit"); } else { PlayerAttemptLogin(playerid, inputtext); SendInfoMessage(playerid, " Welcome back to West Coast RPG"); } } else { Kick(playerid); } return 1; } /*--------------------------------------------------------------------------- Script Commands These are all the commands that players can use. ---------------------------------------------------------------------------*/ //#include "core/player/cmds_veh.pwn" #include "core/player/cmds_chat.pwn" #include "core/player/cmds_general.pwn" #include "core/player/cmds_roleplay.pwn" #include "core/player/cmds_house.pwn" #include "core/admin/cmds_punish.pwn" #include "core/admin/cmds_general.pwn" #include "core/admin/cmds_teleport.pwn" #include "core/admin/cmds_veh.pwn" #include "core/admin/cmds_stats.pwn" #include "core/admin/cmds_fac.pwn" CMD:vblacklist(playerid, params[]) { new model[24], modelid; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s[24]", model)) { return SendSyntaxMessage(playerid, "/vblacklist (model ID)"); } else if (!(modelid = GetVehicleModelFromName(model))) { return SendErrorMessage(playerid, "The specified model doesn't exist."); } else { if (!IsVehicleBlacklisted(modelid)) { BlacklistVehicle(modelid); SendAdminMessage(COLOR_RED, "Admin: %s has blacklisted the %s from being spawned using /vspawn.", ReturnNameEx(playerid, 0), GetVehicleModelName(modelid)); } else { UnBlacklistVehicle(modelid); SendAdminMessage(COLOR_RED, "Admin: %s has whitelisted the %s from being spawned using /vspawn.", ReturnNameEx(playerid, 0), GetVehicleModelName(modelid)); } } return 1; } CMD:vsave(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (!IsPlayerInAnyVehicle(playerid)) { return SendErrorMessage(playerid, "You need to be in a vehicle to save it."); } else if (!VehicleInformation[vehicleid][vAdmin]) { return SendErrorMessage(playerid, "You can only save an admin spawned vehicle."); } else { new vehicle = GetNextVehicleID(); if (vehicle == INVALID_ID) { SendErrorMessage(playerid, "There are no available vehicle slots."); } else { VehicleInformation[vehicleid][vAdmin] = 0; ResetVehicle(vehicle); GetVehiclePos(vehicleid, Vehicles[vehicle][vSpawn][0], Vehicles[vehicle][vSpawn][1], Vehicles[vehicle][vSpawn][2]); GetVehicleZAngle(vehicleid, Vehicles[vehicle][vSpawn][3]); Vehicles[vehicle][vExists] = 1; Vehicles[vehicle][vModel] = GetVehicleModel(vehicleid); Vehicles[vehicle][vVehicle] = vehicleid; Vehicles[vehicle][vColor1] = VehicleInformation[vehicleid][vColor][0]; Vehicles[vehicle][vColor2] = VehicleInformation[vehicleid][vColor][1]; format(gExecute, sizeof(gExecute), "INSERT INTO rp_vehicles (vModel) VALUES(%i)", Vehicles[vehicle][vModel]); mysql_tquery(gConnection, gExecute, "OnVehicleAdded", "i", vehicle); UpdateVehicle(vehicle); PutPlayerInVehicle(playerid, Vehicles[vehicle][vVehicle], 0); SendInfoMessage(playerid, "You have saved this vehicle to the database."); } } return 1; } CMD:vspawn(playerid, params[]) { new model[24], modelid, color1, color2, vehicleid; if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s[24]I(-1)I(-1)", model, color1, color2)) { return SendSyntaxMessage(playerid, "/vspawn (model) [color 1] [color 2]"); } else if (!(modelid = GetVehicleModelFromName(model))) { return SendErrorMessage(playerid, "The specified model doesn't exist."); } else if ((color1 != -1) && (color1 < 0 || color1 > 255)) { return SendErrorMessage(playerid, "The first color must be between -1 and 255."); } else if ((color2 != -1) && (color2 < 0 || color2 > 255)) { return SendErrorMessage(playerid, "The second color must be between -1 and 255."); } else if (IsVehicleBlacklisted(modelid)) { return SendErrorMessage(playerid, "This vehicle is blacklisted from being spawned."); } else { new Float:x, Float:y, Float:z, Float:angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); if ((vehicleid = SpawnVehicle(modelid, x, y, z, angle, color1, color2)) == INVALID_VEHICLE_ID) { return SendErrorMessage(playerid, "The server cannot handle anymore vehicles!"); } else { VehicleInformation[vehicleid][vAdmin] = 1; LinkVehicleToInterior(vehicleid, GetPlayerInterior(playerid)); SetVehicleVirtualWorld(vehicleid, GetPlayerVirtualWorld(playerid)); if (!IsPlayerSpectating(playerid)) { PutPlayerInVehicle(playerid, vehicleid, 0); } SendAdminMessage(COLOR_RED, "Admin: %s has spawned a %s.", ReturnNameEx(playerid, 0), GetVehicleName(vehicleid)); new log[128]; format(log, sizeof(log), "%s has spawned a %s", ReturnName(playerid), GetVehicleName(vehicleid)); CreateLog("admin", log); } } return 1; } CMD:vdestroy(playerid, params[]) { if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { if (IsPlayerInAnyVehicle(playerid)) Dialog_Show(playerid, VehicleDespawn, DIALOG_STYLE_LIST, "{FFFFFF}Destroy vehicles", "Current vehicle\nAll vehicles\nNearby vehicles", "Select", "Cancel"); else Dialog_Show(playerid, VehicleDespawn, DIALOG_STYLE_LIST, "{FFFFFF}Destroy vehicles", "All vehicles\nNearby vehicles", "Select", "Cancel"); } return 1; } CMD:vrepair(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if (Players[playerid][pAdmin] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (!IsValidVehicle(vehicleid) && sscanf(params, "i", vehicleid)) { return SendSyntaxMessage(playerid, "/vrepair (vehicle ID)"); } else if (!IsValidVehicle(vehicleid)) { return SendErrorMessage(playerid, "The specified vehicle doesn't exist."); } else { RepairVehicle(vehicleid); SendInfoMessage(playerid, "You have repaired vehicle %i.", vehicleid); new log[128]; format(log, sizeof(log), "%s has repaired vehicle %i", ReturnName(playerid), vehicleid); CreateLog("admin", log); } return 1; } CMD:vrefuelall(playerid, params[]) { if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { for (new i = 1; i < MAX_VEHICLES; i ++) { if (!IsValidVehicle(i)) continue; VehicleInformation[i][vFuel] = 100; } SendAdminMessage(COLOR_RED, "Admin: %s has refueled all vehicles.", ReturnNameEx(playerid)); new log[128]; format(log, sizeof(log), "%s has refueled all vehicles", ReturnName(playerid)); CreateLog("admin", log); } return 1; } CMD:vrefuel(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (!IsValidVehicle(vehicleid) && sscanf(params, "i", vehicleid)) { return SendSyntaxMessage(playerid, "/vrefuel (vehicle ID)"); } else if (!IsValidVehicle(vehicleid)) { return SendErrorMessage(playerid, "The specified vehicle doesn't exist."); } else { VehicleInformation[vehicleid][vFuel] = 100; UpdateFuelGauge(vehicleid); SendInfoMessage(playerid, "You have refueled vehicle %i.", vehicleid); new log[128]; format(log, sizeof(log), "%s has refueled vehicle %i", ReturnName(playerid), vehicleid); CreateLog("admin", log); } return 1; } CMD:vsethealth(playerid, params[]) { new vehicleid, Float:health; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "if", vehicleid, health)) { return SendSyntaxMessage(playerid, "/vsethealth (vehicle ID) (health)"); } else if (!IsValidVehicle(vehicleid)) { return SendErrorMessage(playerid, "The specified vehicle doesn't exist."); } else { SetVehicleHealth(vehicleid, health); SendInfoMessage(playerid, "You have set the health of vehicle %i to %.0f.", vehicleid, health); new log[128]; format(log, sizeof(log), "%s has set the health of vehicle %i to %.0f", ReturnName(playerid), vehicleid, health); CreateLog("admin", log); } return 1; } CMD:disarm(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/disarm [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { ResetWeapons(targetid); SendInfoMessage(playerid, "You have disarmed %s.", ReturnNameEx(targetid, 0)); new log[128]; format(log, sizeof(log), "%s has disarmed %s", ReturnName(playerid), ReturnName(targetid)); CreateLog("admin", log); } return 1; } CMD:setweapon(playerid, params[]) { new targetid, slot, weapon, ammo; if (Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "uiiI(0)", targetid, slot, weapon, ammo)) { SendSyntaxMessage(playerid, "/setweapon [playerid/name] [slot] [weapon] [ammo]"); SendInfoMessage(playerid, "0 - Melee, 1 - Primary, 2 - Secondary, 3 - Tertiary (Donators)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (weapon < 0 || (19 <= weapon <= 21) || (35 <= weapon <= 38) || weapon > 46) { return SendErrorMessage(playerid, "The specified weapon is not valid."); } else if (ammo < 0 || ammo > 19999) { return SendErrorMessage(playerid, "The specified ammo must be between 0 and 19,999."); } else if (Players[targetid][pHoursOnline] < 5) { return SendErrorMessage(playerid, "The specified target needs at least 5 playing hours."); } else { switch (slot) { case 0: { if (!(0 <= weapon <= 15)) { return SendErrorMessage(playerid, "The melee weapon can only consist of weapon 0 to 15."); } SetPlayerWeapon(targetid, WEAPON_MELEE, weapon); SendInfoMessage(playerid, "You have set %s's melee weapon to: %s.", ReturnNameEx(targetid, 0), GetWeapon(weapon)); if (!weapon) { SendAdminMessage(COLOR_RED, "Admin: %s has reset %s's melee weapon.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); new log[128]; format(log, sizeof(log), "%s has reset %s's melee weapon", ReturnName(playerid), ReturnName(targetid)); CreateLog("admin", log); } else { SendAdminMessage(COLOR_RED, "Admin: %s has set %s's melee weapon to %s.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetWeapon(weapon)); new log[128]; format(log, sizeof(log), "%s has set %s's melee weapon to %s", ReturnName(playerid), ReturnName(targetid), GetWeapon(weapon)); CreateLog("admin", log); } } case 1: { if (weapon != 0 && (!(16 <= weapon <= 45))) { return SendErrorMessage(playerid, "The primary weapon can only consist of weapon 16 to 45."); } SetPlayerWeapon(targetid, WEAPON_PRIMARY, weapon, ammo); SendInfoMessage(playerid, "You have set %s's primary weapon to: %s (%i).", ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo); if (!weapon) { SendAdminMessage(COLOR_RED, "Admin: %s has reset %s's primary weapon.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); new log[128]; format(log, sizeof(log), "%s has reset %s's primary weapon", ReturnName(playerid), ReturnName(targetid)); CreateLog("admin", log); } else { SendAdminMessage(COLOR_RED, "Admin: %s has set %s's primary weapon to %s (%i).", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo); new log[128]; format(log, sizeof(log), "%s has set %s's primary weapon to %s (%i)", ReturnName(playerid), ReturnName(targetid), GetWeapon(weapon), ammo); CreateLog("admin", log); } } case 2: { if (weapon != 0 && (!(16 <= weapon <= 45))) { return SendErrorMessage(playerid, "The secondary weapon can only consist of weapon 16 to 45."); } SetPlayerWeapon(targetid, WEAPON_SECONDARY, weapon, ammo); SendInfoMessage(playerid, "You have set %s's secondary weapon to: %s (%i).", ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo); if (!weapon) { SendAdminMessage(COLOR_RED, "Admin: %s has reset %s's secondary weapon.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); new log[128]; format(log, sizeof(log), "%s has reset %s's secondary weapon", ReturnName(playerid), ReturnName(targetid)); CreateLog("admin", log); } else { SendAdminMessage(COLOR_RED, "Admin: %s has set %s's secondary weapon to %s (%i).", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo); new log[128]; format(log, sizeof(log), "%s has set %s's secondary weapon to %s (%i)", ReturnName(playerid), ReturnName(targetid), GetWeapon(weapon), ammo); CreateLog("admin", log); } } case 3: { if (Players[targetid][pDonator] < DONATOR_STANDARD) { return SendErrorMessage(playerid, "The specified target doesn't have a high enough donator level."); } else if (weapon != 0 && (!(16 <= weapon <= 45))) { return SendErrorMessage(playerid, "The tertiary weapon can only consist of weapon 16 to 45."); } SetPlayerWeapon(targetid, WEAPON_TERTIARY, weapon, ammo); SendInfoMessage(playerid, "You have set %s's tertiary weapon to: %s (%i).", ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo); if (!weapon) { SendAdminMessage(COLOR_RED, "Admin: %s has reset %s's tertiary weapon.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); new log[128]; format(log, sizeof(log), "%s has reset %s's tertiary weapon", ReturnName(playerid), ReturnName(targetid)); CreateLog("admin", log); } else { SendAdminMessage(COLOR_RED, "Admin: %s has set %s's tertiary weapon to %s (%i).", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetWeapon(weapon), ammo); new log[128]; format(log, sizeof(log), "%s has set %s's tertiary weapon to %s (%i)", ReturnName(playerid), ReturnName(targetid), GetWeapon(weapon), ammo); CreateLog("admin", log); } } } } return 1; } CMD:sethealth(playerid, params[]) { new targetid, Float:amount; if (Players[playerid][pAdmin] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "uf", targetid, amount)) { return SendSyntaxMessage(playerid, "/sethealth [playerid/name] [health]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { SetPlayerHealth(targetid, amount); SendInfoMessage(playerid, "You have set %s's health to %.0f.", ReturnNameEx(targetid, 0), amount); SendInfoMessage(targetid, "%s has set your health to %.0f.", ReturnNameEx(playerid, 0), amount); new log[128]; format(log, sizeof(log), "%s has set %s's health to %.0f", ReturnName(playerid), ReturnName(targetid), amount); CreateLog("admin", log); } return 1; } CMD:setarmor(playerid, params[]) { new targetid, Float:amount; if (Players[playerid][pAdmin] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "uf", targetid, amount)) { return SendSyntaxMessage(playerid, "/setarmor [playerid/name] [armor]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsPlayerSpawned(targetid)) { return SendErrorMessage(playerid, "The specified target is not spawned."); } else if (amount < 0.0 || amount > 100.0) { return SendErrorMessage(playerid, "The amount of armor must be between 0 and 100 (due to anticheat)."); } else { SetPlayerValidArmor(targetid, amount); SendInfoMessage(playerid, "You have set %s's armor to %.0f.", ReturnNameEx(targetid, 0), amount); SendInfoMessage(targetid, "%s has set your armor to %.0f.", ReturnNameEx(playerid, 0), amount); new log[128]; format(log, sizeof(log), "%s has set %s's armor to %.0f", ReturnName(playerid), ReturnName(targetid), amount); CreateLog("admin", log); } return 1; } CMD:armor(playerid, params[]) { if (GetPlayerArmourEx(playerid) < 1.0) { return SendErrorMessage(playerid, "You don't have any armor on."); } else { AddItemToInventory(playerid, "Armor", floatround(GetPlayerArmourEx(playerid), floatround_round)); SetPlayerValidArmor(playerid, 0.0); } return 1; } CMD:setweather(playerid, params[]) { new weather; if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", weather)) { return SendSyntaxMessage(playerid, "/setweather (weather)"); } else { gWeatherID = weather; SetWeather(weather); foreach (new i : Player) { if (Players[i][pStoned] == STONED_TYPE_HEROIN) { SetPlayerWeather(i, -66); } } SendInfoMessage(playerid, "The weather has been changed to %i.", weather); new log[128]; format(log, sizeof(log), "%s has set the weather to %i", ReturnName(playerid), weather); CreateLog("admin", log); } return 1; } CMD:clearinventory(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/clearinventory [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++) { Inventory[targetid][i][invID] = 0; Inventory[targetid][i][invExists] = 0; Inventory[targetid][i][invSerial] = 0; } Players[targetid][pPhone] = 0; format(gExecute, sizeof(gExecute), "DELETE FROM rp_items WHERE itemOwner = %i", Players[targetid][pID]); mysql_tquery(gConnection, gExecute); SendAdminMessage(COLOR_RED, "Admin: %s has cleared %s's inventory.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); new log[128]; format(log, sizeof(log), "%s has cleared %s's inventory", ReturnName(playerid), ReturnName(targetid)); CreateLog("admin", log); } return 1; } CMD:setname(playerid, params[]) { new targetid, name[MAX_PLAYER_NAME]; if (Players[playerid][pAdmin] < 4) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "us["#MAX_PLAYER_NAME"]", targetid, name)) { return SendSyntaxMessage(playerid, "/setname [playerid/name] [new name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsValidName(name)) { return SendErrorMessage(playerid, "The specified name is not supported by SA-MP."); } else { format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", mysql_escaped(name)); mysql_tquery(gConnection, gExecute, "OnChangeName", "iis", playerid, targetid, name); } return 1; } CMD:adeleteitem(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { id = GetClosestDropItem(playerid); if (id == INVALID_ID) { SendErrorMessage(playerid, "There are no dropped items nearby."); } else { DeleteDropItem(id); SendInfoMessage(playerid, "You have deleted the nearest dropped item."); new log[128]; format(log, sizeof(log), "%s deleted a dropped item", ReturnName(playerid)); CreateLog("admin", log); } } return 1; } CMD:spawnitem(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/spawnitem [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { static s_ItemList[1024]; if (!s_ItemList[0]) { for (new i = 0; i < sizeof(g_ItemList); i ++) { strcat(s_ItemList, g_ItemList[i][e_ItemName]); strcat(s_ItemList, "\n"); } } Players[playerid][pTarget] = targetid; Dialog_Show(playerid, AdminGiveItem, DIALOG_STYLE_LIST, "{FFFFFF}Select an item to give", s_ItemList, "Select", "Cancel"); } return 1; } CMD:items(playerid, params[]) { if (IsPlayerJailed(playerid) || IsPlayerInjured(playerid)) { return SendErrorMessage(playerid, "You can't open your inventory right now."); } else { DisplayInventory(playerid); } return 1; } CMD:weapons(playerid, params[]) { if (IsPlayerJailed(playerid) || IsPlayerInjured(playerid)) { return SendErrorMessage(playerid, "You can't open the weapon menu right now."); } ShowWeaponMenu(playerid); return 1; } CMD:setstat(playerid, params[]) { new targetid, stat[16], value[64]; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "us[16]S()[64]", targetid, stat, value)) { SendSyntaxMessage(playerid, "/setstat [playerid/name] [name] [value]"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: gender, age, origin, traveled, hours, job, phone, fitness, carlicense, gunlicense"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: paycheck"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { if (!strcmp(stat, "gender", true)) { if (isnull(value)) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [gender] [male/female]"); } else if (!strcmp(value, "male", true)) { Players[targetid][pGender] = 1; SendInfoMessage(playerid, "You have set %s's gender to: Male.", ReturnNameEx(targetid, 0)); new log[128]; format(log, sizeof(log), "%s has set %s's gender to: Male", ReturnName(playerid), ReturnName(targetid)); CreateLog("admin", log); } else if (!strcmp(value, "female", true)) { Players[targetid][pGender] = 2; SendInfoMessage(playerid, "You have set %s's gender to: Female.", ReturnNameEx(targetid, 0)); new log[128]; format(log, sizeof(log), "%s has set %s's gender to: Female", ReturnName(playerid), ReturnName(targetid)); CreateLog("admin", log); } } else if (!strcmp(stat, "age", true)) { new age; if (sscanf(value, "i", age)) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [age] [value]"); } else { Players[targetid][pAge] = age; SendInfoMessage(playerid, "You have set %s's age to %i years.", ReturnNameEx(targetid, 0), age); new log[128]; format(log, sizeof(log), "%s has set %s's age to %i years", ReturnName(playerid), ReturnName(targetid), age); CreateLog("admin", log); } } else if (!strcmp(stat, "origin", true)) { if (sscanf(value, "s[24]", value)) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [origin] [value]"); } else { strcpy(Players[targetid][pOrigin], value, 24); SendInfoMessage(playerid, "You have set %s's origin to '%s'.", ReturnNameEx(targetid, 0), value); new log[128]; format(log, sizeof(log), "%s has set %s's origin to '%s'", ReturnName(playerid), ReturnName(targetid), value); CreateLog("admin", log); } } else if (!strcmp(stat, "traveled", true)) { new Float:distance; if (sscanf(value, "f", distance)) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [traveled] [value]"); } else { Players[targetid][pTraveled] = distance; SendInfoMessage(playerid, "You have set %s's traveled distance to %.2f.", ReturnNameEx(targetid, 0), distance); new log[128]; format(log, sizeof(log), "%s has set %s's traveled distance to %.2f", ReturnName(playerid), ReturnName(targetid), distance); CreateLog("admin", log); } } else if (!strcmp(stat, "hours", true)) { new amount; if (sscanf(value, "i", amount)) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [hours] [value]"); } else { Players[targetid][pHoursOnline] = amount; SendInfoMessage(playerid, "You have set %s's playing hours to %i.", ReturnNameEx(targetid, 0), amount); new log[128]; format(log, sizeof(log), "%s has set %s's playing hours to %i", ReturnName(playerid), ReturnName(targetid), amount); CreateLog("admin", log); } } else if (!strcmp(stat, "job", true)) { new job; if (sscanf(value, "i", job)) { SendSyntaxMessage(playerid, "/setstat [playerid/name] [job] [value]"); return SendClientMessage(playerid, COLOR_LIGHTGREY, "Jobs: 0 - None, 1 - Transporter, 2 - Forklifter, 3 - Miner, 4 - Taxi, 5 - Pizzaboy, 6 - Trashman, 7 - Mechanic"); } else if (job < JOB_NONE || job > JOB_MECHANIC) { return SendErrorMessage(playerid, "You have specified an invalid job ID."); } else { Players[targetid][pJob] = job; SendInfoMessage(playerid, "You have set %s's job to %s (%i).", ReturnNameEx(targetid, 0), GetJobName(job), job); new log[128]; format(log, sizeof(log), "%s has set %s's job to %s (%i)", ReturnName(playerid), ReturnName(targetid), GetJobName(job), job); CreateLog("admin", log); } } else if (!strcmp(stat, "phone", true)) { new number; if (sscanf(value, "i", number)) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [phone] [value]"); } else { Players[targetid][pPhone] = number; SendInfoMessage(playerid, "You have set %s's phone number to %i.", ReturnNameEx(targetid, 0), number); new log[128]; format(log, sizeof(log), "%s has set %s's phone number to %i", ReturnName(playerid), ReturnName(targetid), number); CreateLog("admin", log); } } else if (!strcmp(stat, "fitness", true)) { new amount; if (sscanf(value, "i", amount)) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [fitness] [value]"); } else if (amount < 0 || amount > 100) { return SendErrorMessage(playerid, "The fitness level must range from 0 to 100."); } else { Players[targetid][pFitness] = amount; SendInfoMessage(playerid, "You have set %s's fitness to %i.", ReturnNameEx(targetid, 0), amount); new log[128]; format(log, sizeof(log), "%s has set %s's fitness to %i", ReturnName(playerid), ReturnName(targetid), amount); CreateLog("admin", log); } } else if (!strcmp(stat, "carlicense", true)) { new license; if (sscanf(value, "i", license) || (!(0 <= license <= 1))) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [carlicense] [0/1]"); } else { Players[targetid][pCarLicense] = license; SendInfoMessage(playerid, "You have set %s's car license to %i.", ReturnNameEx(targetid, 0), license); new log[128]; format(log, sizeof(log), "%s has set %s's car license to %i", ReturnName(playerid), ReturnName(targetid), license); CreateLog("admin", log); } } else if (!strcmp(stat, "gunlicense", true)) { new license; if (sscanf(value, "i", license) || (!(0 <= license <= 1))) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [gunlicense] [0/1]"); } else { Players[targetid][pGunLicense] = license; SendInfoMessage(playerid, "You have set %s's gun license to %i.", ReturnNameEx(targetid, 0), license); new log[128]; format(log, sizeof(log), "%s has set %s's gun license to %i", ReturnName(playerid), ReturnName(targetid), license); CreateLog("admin", log); } } else if (!strcmp(stat, "cdl", true)) { new license; if (sscanf(value, "i", license) || (!(0 <= license <= 1))) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [cdl] [0/1]"); } else { Players[targetid][pCDL] = license; SendInfoMessage(playerid, "You have set %s's trucker license to %i.", ReturnNameEx(targetid, 0), license); new log[128]; format(log, sizeof(log), "%s has set %s's trucker license to %i", ReturnName(playerid), ReturnName(targetid), license); CreateLog("admin", log); } } else if (!strcmp(stat, "pilotslicense", true)) { new license; if (sscanf(value, "i", license) || (!(0 <= license <= 1))) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [pilotslicense] [0/1]"); } else { Players[targetid][pPilotLicense] = license; SendInfoMessage(playerid, "You have set %s's Pilots license to %i.", ReturnNameEx(targetid, 0), license); new log[128]; format(log, sizeof(log), "%s has set %s's Pilots license to %i", ReturnName(playerid), ReturnName(targetid), license); CreateLog("admin", log); } } else if (!strcmp(stat, "paycheck", true)) { new amount; if (sscanf(value, "i", amount)) { return SendSyntaxMessage(playerid, "/setstat [playerid/name] [playerid/name] [value]"); } else { Players[targetid][pPaycheck] = amount; SendInfoMessage(playerid, "You have set %s's paycheck to %s.", ReturnNameEx(targetid, 0), FormatNumber(amount)); new log[128]; format(log, sizeof(log), "%s has set %s's paycheck to %s", ReturnName(playerid), ReturnName(targetid), FormatNumber(amount)); CreateLog("admin", log); } } else { return SendErrorMessage(playerid, "You have specified an invalid type!"); } } return 1; } CMD:mapperhelp(playerid, params[]) { if (Players[playerid][pMapper] < 1 && Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /addobject, /editobject, /gotoobject, /cloneobject."); SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /deleteobject, /debugobjects, /reloadobjects."); SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /setobjectmodel, /rotobject(x/y/z)."); } return 1; } CMD:dynamichelp(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (isnull(params)) { SendSyntaxMessage(playerid, "/dynamichelp (type)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: house, company, building, atm, pump, car, faction, arrestpoints"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: teleports, labels, gates, autoshops, objects, trashbins, spraytags"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: payphones"); return 1; } else if (!strcmp(params, "house", true)) { SendClientMessage(playerid, COLOR_GREY, "Houses:{FFFFFF} /addhouse, /gotohouse, /edithouse, /deletehouse, /clearfurniture."); SendClientMessage(playerid, COLOR_GREY, "Houses:{FFFFFF} /asellhouse."); } else if (!strcmp(params, "company", true)) { SendClientMessage(playerid, COLOR_GREY, "Companies:{FFFFFF} /addcompany, /gotocompany, /editcompany, /deletecompany, /arestock."); SendClientMessage(playerid, COLOR_GREY, "Companies:{FFFFFF} /asellcompany, /addrental, /editdealercars."); } else if (!strcmp(params, "building", true)) { SendClientMessage(playerid, COLOR_GREY, "Buildings:{FFFFFF} /addbuilding, /gotobuilding, /editbuilding, /deletebuilding."); } else if (!strcmp(params, "atm", true)) { SendClientMessage(playerid, COLOR_GREY, "ATM:{FFFFFF} /addatm, /gotoatm, /editatm, /deleteatm."); } else if (!strcmp(params, "pump", true)) { SendClientMessage(playerid, COLOR_GREY, "Pumps:{FFFFFF} /addpump, /gotopump, /editpump, /deletepump."); } else if (!strcmp(params, "car", true)) { SendClientMessage(playerid, COLOR_GREY, "Cars:{FFFFFF} /addcar, /editcar, /deletecar."); } else if (!strcmp(params, "faction", true)) { SendClientMessage(playerid, COLOR_GREY, "Factions:{FFFFFF} /addfaction, /setfaction, /editfaction, /deletefaction, /resetordertime, /gotolocker."); } else if (!strcmp(params, "arrestpoints", true)) { SendClientMessage(playerid, COLOR_GREY, "Arrests:{FFFFFF} /addarrestpoint, /gotoarrestpoint, /deletearrestpoint."); } else if (!strcmp(params, "teleports", true)) { SendClientMessage(playerid, COLOR_GREY, "Teleports:{FFFFFF} /addteleport, /deleteteleport."); } else if (!strcmp(params, "labels", true)) { SendClientMessage(playerid, COLOR_GREY, "Labels:{FFFFFF} /addlabel, /gotolabel, /editlabel, /checklabel, /deletelabel."); } else if (!strcmp(params, "gates", true)) { SendClientMessage(playerid, COLOR_GREY, "Gates:{FFFFFF} /addgate, /gotogate, /checkgate, /editgate, /deletegate."); } else if (!strcmp(params, "autoshops", true)) { SendClientMessage(playerid, COLOR_GREY, "Auto Shops:{FFFFFF} /addautoshop, /gotoautoshop, /deleteautoshop."); } else if (!strcmp(params, "objects", true)) { SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /addobject, /editobject, /gotoobject, /cloneobject."); SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /deleteobject, /debugobjects, /reloadobjects."); SendClientMessage(playerid, COLOR_GREY, "Objects:{FFFFFF} /setobjectmodel, /rotobject(x/y/z)."); } else if (!strcmp(params, "trashbins", true)) { SendClientMessage(playerid, COLOR_GREY, "Trashbins:{FFFFFF} /addtrashbin, /gototrashbin, /edittrashbin, /deletetrashbin."); } else if (!strcmp(params, "spraytags", true)) { SendClientMessage(playerid, COLOR_GREY, "Spray Tags:{FFFFFF} /addspray, /gotospray, /clearspray, /editspray, /deletespray."); } else if (!strcmp(params, "payphones", true)) { SendClientMessage(playerid, COLOR_GREY, "Payphones:{FFFFFF} /addpayphone, /gotopayphone, /editpayphone, /deletepayphone."); } return 1; } CMD:addhouse(playerid, params[]) { new type, price, address[32]; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "iis[32]", type, price, address)) { return SendSyntaxMessage(playerid, "/addhouse (type) (price) (address)"); } else if (type < 1 || type > sizeof(g_HouseInteriors) - 1) { return SendErrorMessage(playerid, "You must input a type between 1 and %i.", sizeof(g_HouseInteriors) - 1); } else if (price < 0) { return SendErrorMessage(playerid, "You must input a valid price."); } else if (GetClosestHouse(playerid) != INVALID_ID) { return SendErrorMessage(playerid, "There is another house nearby."); } else { new id = GetNextHouseID(); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available house slots."); } else { for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && !strcmp(Houses[i][hAddress], address, true)) { return SendErrorMessage(playerid, "The specified address is already in use."); } } strcpy(Houses[id][hAddress], address, 32); GetPlayerPos(playerid, Houses[id][hSpawn][0], Houses[id][hSpawn][1], Houses[id][hSpawn][2]); GetPlayerFacingAngle(playerid, Houses[id][hSpawn][3]); Houses[id][hExists] = 1; Houses[id][hOwner] = 0; Houses[id][hValue] = price; Houses[id][hLocked] = 0; Houses[id][hLights] = 0; Houses[id][hExterior] = GetPlayerInterior(playerid); Houses[id][hExteriorWorld] = GetPlayerVirtualWorld(playerid); Houses[id][hCheckpoint] = INVALID_ID; //Houses[id][hText] = INVALID_3DTEXT_ID; format(gExecute, sizeof(gExecute), "INSERT INTO rp_houses (hValue, hAddress) VALUES(%i, '%s')", price, mysql_escaped(address)); mysql_tquery(gConnection, gExecute, "OnHouseAdded", "i", id); SetHouseInteriorType(id, type); SendInfoMessage(playerid, "You have added house %i (/edithouse).", id); new log[128]; format(log, sizeof(log), "%s has added house %i", ReturnName(playerid), id); CreateLog("admin", log); } } return 1; } CMD:asellhouse(playerid, params[]) { new house; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", house)) { return SendSyntaxMessage(playerid, "/asellhouse (house)"); } else if (!IsValidHouseID(house)) { return SendErrorMessage(playerid, "The specified house is not valid."); } else if (!Houses[house][hOwner]) { return SendErrorMessage(playerid, "This house is currently not owned."); } else { SetHouseOwner(house, INVALID_PLAYER_ID); SendInfoMessage(playerid, "You have admin sold house %i.", house); new log[128]; format(log, sizeof(log), "%s has admin sold house %i", ReturnName(playerid), house); CreateLog("admin", log); } return 1; } CMD:deletehouse(playerid, params[]) { new house; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", house)) { return SendSyntaxMessage(playerid, "/deletehouse (house)"); } else if (!IsValidHouseID(house)) { return SendErrorMessage(playerid, "The specified house is not valid."); } else { ClearFurniture(house); format(gExecute, sizeof(gExecute), "DELETE FROM rp_houses WHERE `hID` = %i", Houses[house][hID]); mysql_tquery(gConnection, gExecute); ResetHouse(house); SendInfoMessage(playerid, "You have deleted house %i.", house); new log[128]; format(log, sizeof(log), "%s has deleted house %i", ReturnName(playerid), house); CreateLog("admin", log); } return 1; } CMD:clearfurniture(playerid, params[]) { new house, type[10]; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "is[10]", house, type)) { return SendSyntaxMessage(playerid, "/clearfurniture (house) (inside/outside)"); } else if (!IsValidHouseID(house)) { return SendErrorMessage(playerid, "The specified house is not valid."); } else { if (!strcmp(type, "inside", true)) { ClearFurniture(house); SendInfoMessage(playerid, "You have cleared the furniture for house %i.", house); new log[128]; format(log, sizeof(log), "%s has cleared the furniture for house %i", ReturnName(playerid), house); CreateLog("admin", log); } else if (!strcmp(type, "outside", true)) { ClearOutsideFurniture(house); SendInfoMessage(playerid, "You have cleared the outside furniture for house %i.", house); new log[128]; format(log, sizeof(log), "%s has cleared the outside furniture for house %i", ReturnName(playerid), house); CreateLog("admin", log); } } return 1; } CMD:edithouse(playerid, params[]) { new house; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", house)) { return SendSyntaxMessage(playerid, "/edithouse (house)"); } else if (!IsValidHouseID(house)) { return SendErrorMessage(playerid, "The specified house is not valid."); } else { ShowHouseEditMenu(playerid, house); } return 1; } CMD:gotohouse(playerid, params[]) { new house; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", house)) { return SendSyntaxMessage(playerid, "/gotohouse (house)"); } else if (!IsValidHouseID(house)) { return SendErrorMessage(playerid, "The specified house is not valid."); } else { SetPlayerPosEx(playerid, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], Houses[house][hSpawn][3], Houses[house][hExterior], Houses[house][hExteriorWorld]); SendInfoMessage(playerid, "You have teleported to house %i.", house); new log[128]; format(log, sizeof(log), "%s has teleported to house %i", ReturnName(playerid), house); CreateLog("admin", log); } return 1; } CMD:accepthouse(playerid, params[]) { if (IsPlayerConnected(Players[playerid][pHouseOffer])) { new house = Players[playerid][pHouseSell]; new price = Players[playerid][pHousePrice]; if (!IsHouseOwner(Players[playerid][pHouseOffer], house)) { return SendErrorMessage(playerid, "The house offer has expired."); } else if (!PlayerCanAfford(playerid, price)) { return SendErrorMessage(playerid, "You can't afford to buy the house."); } else if (!IsPlayerInRangeOfPlayer(playerid, Players[playerid][pHouseOffer])) { return SendErrorMessage(playerid, "You need to be near the player who offered the house."); } else { SetHouseOwner(house, playerid); RemoveMoney(playerid, price); SendInfoMessage(playerid, "You have accepted %s's house offer for {33CC33}%s{FFFFFF}.", ReturnNameEx(Players[playerid][pHouseOffer]), FormatNumber(price)); SendInfoMessage(Players[playerid][pHouseOffer], "%s has accepted the house offer for {33CC33}%s{FFFFFF}.", ReturnNameEx(playerid), FormatNumber(price)); format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, 'House (sold by %s) - #%i', %i, NOW())", Players[playerid][pID], ReturnName(Players[playerid][pHouseOffer]), Houses[house][hID], price); mysql_tquery(gConnection, gExecute); Players[Players[playerid][pHouseOffer]][pPocketMoney] += price; Players[playerid][pHouseOffer] = INVALID_PLAYER_ID; } } return 1; } CMD:door(playerid, params[]) { if (GetClosestDoor(playerid, 2.0) == INVALID_ID) return SendErrorMessage(playerid, "You are not near a door."); DoorCheck(playerid); return 1; } CMD:blindfold(playerid, params[]) { if (!Players[playerid][pBlind]) { TextDrawShowForPlayer(playerid, gGlobalTextdraws[2]); Players[playerid][pBlind] = !Players[playerid][pBlind]; } else { TextDrawHideForPlayer(playerid, gGlobalTextdraws[2]); Players[playerid][pBlind] = !Players[playerid][pBlind]; } return 1; } CMD:dice(playerid, params[]) { new rand = Random(1,7); SendDistanceMessage(playerid, 20.0, COLOR_PURPLE, "* %s rolls a dice and it lands on %i.", ReturnNameEx(playerid), rand); return 1; } /*CMD:tognicks(playerid, params[]) { if (!Players[playerid][pNicks]) { foreach (new i : Player) { ShowPlayerNameTagForPlayer(playerid, i, false); } Players[playerid][pNicks] = !Players[playerid][pNicks]; } else { foreach (new i : Player) { if(Players[i][pMaskID] < 0) { ShowPlayerNameTagForPlayer(playerid, i, true); } } Players[playerid][pNicks] = !Players[playerid][pNicks]; } return 1; }*/ CMD:house(playerid, params[]) { new id = GetNearbyHouse(playerid), name[16], value[128]; if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no house nearby."); } else if (sscanf(params, "s[16]S()[128]", name, value)) { SendSyntaxMessage(playerid, "/house (option)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Options: buy, lock, alarm, rent, safe, fridge, furniture, permissions, backdoor, sell, abandon, lights"); } else { if (!strcmp(name, "buy", true)) { if (Houses[id][hOwner]) { SendErrorMessage(playerid, "This house is already owned."); } else if (GetHouseLimit(playerid) != 0 && GetOwnedHouses(playerid) >= GetHouseLimit(playerid)) { SendErrorMessage(playerid, "You have reached the limit of owned houses."); } else { Dialog_Show(playerid, BuyHouse, DIALOG_STYLE_MSGBOX, "{FFFFFF}Purchase this house", "Would you like to purchase {00FF00}%s{AAC4E5} for {00FF00}%s{AAC4E5}?", "Yes", "No", Houses[id][hAddress], FormatNumber(Houses[id][hValue])); } } else if (!strcmp(name, "lock", true)) { if (!IsHouseOwner(playerid, id) && !IsRentingHouse(playerid, id)) { return SendErrorMessage(playerid, "You don't have the keys for this house."); } else { Houses[id][hLocked] = !Houses[id][hLocked]; PlayNearbySound(playerid, 1145); SaveHouse(id); UpdateHouse(id); if (Houses[id][hLocked]) { ShowActionBubble(playerid, "* %s uses their key to lock their house.", ReturnNameEx(playerid)); ShowFooterText(playerid, "You have ~r~locked~w~ this house."); } else { ShowActionBubble(playerid, "* %s uses their key to unlock their house.", ReturnNameEx(playerid)); ShowFooterText(playerid, "You have ~g~unlocked~w~ this house."); } } } else if (!strcmp(name, "alarm", true)) { if (!IsHouseOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (Houses[id][hAlarm]) { return SendErrorMessage(playerid, "Your house has an alarm already."); } else if (isnull(value) || strcmp(value, "confirm", true) != 0) { return SendSyntaxMessage(playerid, "/house (alarm) (confirm) (Cost is $6000)"); } else if (!PlayerCanAfford(playerid, 6000)) { return SendErrorMessage(playerid, "You don't have enough money."); } else { Houses[id][hAlarm] = 1; SaveHouse(id); RemoveMoney(playerid, 6000); SendInfoMessage(playerid, "You have purchased an alarm for {33CC33}$6000{FFFFFF}."); } } else if (!strcmp(name, "rent", true)) { new price; if (!IsHouseOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (sscanf(value, "i", price)) { return SendSyntaxMessage(playerid, "/house (rent) (rent price) (Use '0' to disable)"); } else if (price < 0 || price > 1000) { return SendErrorMessage(playerid, "The price must be between $0 and $1,000."); } else { Houses[id][hRentPrice] = price; SaveHouse(id); UpdateHouse(id); SendInfoMessage(playerid, "You have set the renting price to %s.", FormatNumber(price)); } } else if (!strcmp(name, "safe", true)) { new Float:x, Float:y, Float:z, Float:angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); if (!IsHouseOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (isnull(value) || strcmp(value, "confirm", true) != 0) { return SendSyntaxMessage(playerid, "/house (safe) (confirm) (Cost is $2500)"); } else if (!PlayerCanAfford(playerid, 2500)) { return SendErrorMessage(playerid, "You don't have enough money."); } else if (Players[playerid][pEdit] == EDIT_TYPE_PREVIEW) { return SendErrorMessage(playerid, "You can't purchase a safe while previewing furniture."); } else if (!IsPlayerInside(playerid)) { return SendErrorMessage(playerid, "You can only have a safe inside."); } else { new safe = AddFurniture(id, 2332, x + (2.0 * floatsin(-angle, degrees)), y + (2.0 * floatcos(-angle, degrees)), z, 0.0, 0.0, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); if (safe == INVALID_ID) { SendErrorMessage(playerid, "There are no available furniture slots."); SendAdminMessage(COLOR_RED, "Admin: %s has failed to add furniture! \"MAX_FURNITURE\" needs to be adjusted.", ReturnNameEx(playerid, 0)); } else { RemoveMoney(playerid, 2500); EditDynamicObjectEx(playerid, EDIT_TYPE_FURNITURE, Furniture[safe][fObject], safe); SendInfoMessage(playerid, "Safe purchased for {33CC33}$2500{FFFFFF}. Click the disk icon to save changes."); } } } else if (!strcmp(name, "lights", true)) { if (!IsPlayerInside(playerid)) { return SendErrorMessage(playerid, "You are not inside."); } PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0); Houses[id][hLights] = !Houses[id][hLights]; } else if (!strcmp(name, "fridge", true)) { new Float:x, Float:y, Float:z, Float:angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); if (!IsHouseOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (isnull(value) || strcmp(value, "confirm", true) != 0) { return SendSyntaxMessage(playerid, "/house [fridge] [confirm] (Costs $5000)"); } else if (!PlayerCanAfford(playerid, 5000)) { return SendErrorMessage(playerid, "You don't have enough money."); } else if (Players[playerid][pEdit] == EDIT_TYPE_PREVIEW) { return SendErrorMessage(playerid, "You can't purchase a fridge while previewing furniture."); } else if (!IsPlayerInside(playerid)) { return SendErrorMessage(playerid, "You can only have a fridge inside."); } else { new fridge = AddFurniture(id, 19916, x + (2.0 * floatsin(-angle, degrees)), y + (2.0 * floatcos(-angle, degrees)), z, 0.0, 0.0, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); if (fridge == INVALID_ID) { SendErrorMessage(playerid, "There are no available furniture slots."); SendAdminMessage(COLOR_RED, "Admin: %s has failed to add furniture! \"MAX_FURNITURE\" needs to be adjusted.", ReturnNameEx(playerid, 0)); } else { RemoveMoney(playerid, 5000); EditDynamicObjectEx(playerid, EDIT_TYPE_FURNITURE, Furniture[fridge][fObject], fridge); SendInfoMessage(playerid, "Fridge purchased for {33CC33}$5000{FFFFFF}. Click the disk icon to save changes."); } } } else if (!strcmp(name, "furniture", true)) { if (!IsHouseOwner(playerid, id) && Players[playerid][pFurniturePerms] != id) { return SendErrorMessage(playerid, "You don't have permissions to furnish this house."); } else { if(!IsPlayerInside(playerid)) return SendErrorMessage(playerid, "You can not place the furniture outside."); Players[playerid][pHouse] = id; Dialog_Show(playerid, HouseFurniture, DIALOG_STYLE_LIST, "{FFFFFF}Manage Furniture", "Purchase\nAdjustments", "Select", "Cancel"); } } else if (!strcmp(name, "permissions", true)) { new targetid; if (!IsHouseOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (sscanf(value, "u", targetid)) { return SendSyntaxMessage(playerid, "/house [permissions] [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't use this command on yourself."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return SendErrorMessage(playerid, "The specified target is not near you."); } else { if ( Players[targetid][pFurniturePerms] == INVALID_ID ) { Players[targetid][pFurniturePerms] = id; SendInfoMessage(playerid, "You have given %s permission to furnish your house.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has given you permission to furnish their house.", ReturnNameEx(playerid)); } else { Players[targetid][pFurniturePerms] = INVALID_ID; SendInfoMessage(playerid, "You have taken away %s's furniture permissions.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has taken away your furniture permissions.", ReturnNameEx(playerid)); } } } else if (!strcmp(name, "backdoor", true)) { if (!IsHouseOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (isnull(value)) { SendSyntaxMessage(playerid, "/house (backdoor) (option)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Options: entrance, exit, remove"); } else if (!strcmp(value, "entrance", true)) { SendInfoMessage(playerid, "Use /set once you're at the location you wish to place the backdoor entrance at."); Players[playerid][pConfirmBackdoor] = id; Players[playerid][pBackdoorType] = 1; } else if (!strcmp(value, "exit", true)) { SendInfoMessage(playerid, "Use /set once you're at the location you wish to place the backdoor exit at."); Players[playerid][pConfirmBackdoor] = id; Players[playerid][pBackdoorType] = 2; } else if (!strcmp(value, "remove", true)) { if (!IsBackdoorSetup(id)) { return SendErrorMessage(playerid, "This house doesn't have a backdoor setup."); } else { DestroyDynamic3DTextLabel(Houses[id][hBackdoorText][0]); DestroyDynamic3DTextLabel(Houses[id][hBackdoorText][1]); Houses[id][hBackdoor][0] = 0.0; Houses[id][hBackdoor][1] = 0.0; Houses[id][hBackdoor][2] = 0.0; Houses[id][hBackdoorInt][0] = 0.0; Houses[id][hBackdoorInt][1] = 0.0; Houses[id][hBackdoorInt][2] = 0.0; Houses[id][hBackdoorText][0] = INVALID_3DTEXT_ID; Houses[id][hBackdoorText][1] = INVALID_3DTEXT_ID; SaveHouse(id); SendInfoMessage(playerid, "You have removed the backdoor for your house."); } } } else if (!strcmp(name, "sell", true)) { new targetid, price; if (!IsHouseOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (sscanf(value, "ui", targetid, price)) { return SendSyntaxMessage(playerid, "/house (sell) (player) (price)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't use this command on yourself."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return SendErrorMessage(playerid, "The specified target is not near you."); } else if (price < 1) { return SendErrorMessage(playerid, "The price can't be below $1."); } else { Players[targetid][pHouseOffer] = playerid; Players[targetid][pHousePrice] = price; Players[targetid][pHouseSell] = id; SendInfoMessage(playerid, "You have offered %s to buy %s for {33CC33}%s{FFFFFF}.", ReturnNameEx(targetid), Houses[id][hAddress], FormatNumber(price)); SendInfoMessage(targetid, "%s wants to sell you %s for {33CC33}%s{FFFFFF} - use /accepthouse to accept.", ReturnNameEx(playerid), Houses[id][hAddress], FormatNumber(price)); } } else if (!strcmp(name, "abandon", true)) { if (!IsHouseOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (isnull(value) || strcmp(value, "confirm", true) != 0) { SendSyntaxMessage(playerid, "/house (abandon) (confirm)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: You will receive 80 percent of the original purchase price."); } else { new cost = percent(Houses[id][hValue], 80); Players[playerid][pPocketMoney] += cost; SetHouseOwner(id, INVALID_PLAYER_ID); SendInfoMessage(playerid, "You have abandoned this house. You have received {33CC33}%s{FFFFFF} as a partial refund.", FormatNumber(cost)); } } } return 1; } CMD:houseint(playerid, params[]) { new type; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", type)) { return SendSyntaxMessage(playerid, "/houseint (interior 1-%i)", sizeof(g_HouseInteriors) - 1); } else if (type < 1 || type > sizeof(g_HouseInteriors) - 1) { return SendErrorMessage(playerid, "You must input a type between 1 and %i.", sizeof(g_HouseInteriors) - 1); } else { SetPlayerPosEx(playerid, g_HouseInteriors[type][e_InteriorX], g_HouseInteriors[type][e_InteriorY], g_HouseInteriors[type][e_InteriorZ], g_HouseInteriors[type][e_InteriorA], g_HouseInteriors[type][e_Interior]); SendInfoMessage(playerid, "You are now viewing house interior: %i.", type); new log[128]; format(log, sizeof(log), "%s has teleported to house interior: %i", ReturnName(playerid), type); CreateLog("admin", log); } return 1; } CMD:addcompany(playerid, params[]) { new type, price; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "ii", type, price)) { SendSyntaxMessage(playerid, "/addcompany (type) (price)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: 1 - Store, 2 - Clothes, 3 - Restaurant, 4 - Rentals, 5 - Phone, 6 - Dealership"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: 7 - Gym, 8 - Ammunition, 9 - Bar"); } else if (type < 1 || type > sizeof(g_CompanyTypes)) { return SendErrorMessage(playerid, "You must input a type between 1 and %i.", sizeof(g_CompanyTypes)); } else if (price < 0) { return SendErrorMessage(playerid, "You must input a valid price."); } else if (GetClosestCompany(playerid) != INVALID_ID) { return SendErrorMessage(playerid, "There is another company nearby."); } else { new id = GetNextCompanyID(); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available company slots."); } else { strcpy(Companies[id][cName], GetCompanyType(type), 32); GetPlayerPos(playerid, Companies[id][cSpawn][0], Companies[id][cSpawn][1], Companies[id][cSpawn][2]); GetPlayerFacingAngle(playerid, Companies[id][cSpawn][3]); Companies[id][cExists] = 1; Companies[id][cOwner] = 0; Companies[id][cValue] = price; Companies[id][cLocked] = 0; Companies[id][cSafe] = 0; Companies[id][cStock] = 0; Companies[id][cExterior] = GetPlayerInterior(playerid); Companies[id][cExteriorWorld] = GetPlayerVirtualWorld(playerid); Companies[id][cCheckpoint] = INVALID_ID; //Companies[id][cText] = INVALID_3DTEXT_ID; Companies[id][cDeliverText] = INVALID_3DTEXT_ID; format(gExecute, sizeof(gExecute), "INSERT INTO rp_companies (cValue) VALUES(%i)", price); mysql_tquery(gConnection, gExecute, "OnCompanyAdded", "i", id); SetCompanyType(id, type); SendInfoMessage(playerid, "You have added company %i (/editcompany).", id); new log[128]; format(log, sizeof(log), "%s has added company %i", ReturnName(playerid), id); CreateLog("admin", log); } } return 1; } CMD:asellcompany(playerid, params[]) { new company; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", company)) { return SendSyntaxMessage(playerid, "/asellcompany (company)"); } else if (!IsValidCompanyID(company)) { return SendErrorMessage(playerid, "The specified house is not valid."); } else if (!Companies[company][cOwner]) { return SendErrorMessage(playerid, "This company is currently not owned."); } else { SetCompanyOwner(company, INVALID_PLAYER_ID); SendInfoMessage(playerid, "You have admin sold company %i.", company); new log[128]; format(log, sizeof(log), "%s has admin sold %i", ReturnName(playerid), company); CreateLog("admin", log); } return 1; } CMD:deletecompany(playerid, params[]) { new company; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", company)) { return SendSyntaxMessage(playerid, "/deletecompany (company)"); } else if (!IsValidCompanyID(company)) { return SendErrorMessage(playerid, "The specified company is not valid."); } else { ClearPumps(company); format(gExecute, sizeof(gExecute), "DELETE FROM rp_companies WHERE `cID` = %i", Companies[company][cID]); mysql_tquery(gConnection, gExecute); ResetCompany(company); SendInfoMessage(playerid, "You have deleted company %i.", company); new log[128]; format(log, sizeof(log), "%s has deleted company %i", ReturnName(playerid), company); CreateLog("admin", log); } return 1; } CMD:arestock(playerid, params[]) { new company; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", company)) { return SendSyntaxMessage(playerid, "/arestock (company)"); } else if (!IsValidCompanyID(company)) { return SendErrorMessage(playerid, "The specified company is not valid."); } else { for (new i = 0; i < MAX_PRODUCTS; i ++) { if (!Products[company][i][prStock]) { Products[company][i][prStock] = 200; SaveProduct(company, i); } } SendInfoMessage(playerid, "You have restocked all products for company %i.", company); new log[128]; format(log, sizeof(log), "%s has restocked all products for company %i", ReturnName(playerid), company); CreateLog("admin", log); } return 1; } CMD:editcompany(playerid, params[]) { new company; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", company)) { return SendSyntaxMessage(playerid, "/editcompany (company)"); } else if (!IsValidCompanyID(company)) { return SendErrorMessage(playerid, "The specified company is not valid."); } else { ShowCompanyEditMenu(playerid, company); } return 1; } CMD:gotocompany(playerid, params[]) { new company; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", company)) { return SendSyntaxMessage(playerid, "/gotocompany (company)"); } else if (!IsValidCompanyID(company)) { return SendErrorMessage(playerid, "The specified company is not valid."); } else { SetPlayerPosEx(playerid, Companies[company][cSpawn][0], Companies[company][cSpawn][1], Companies[company][cSpawn][2], Companies[company][cSpawn][3], Companies[company][cExterior], Companies[company][cExteriorWorld]); SendInfoMessage(playerid, "You have teleported to company %i.", company); new log[128]; format(log, sizeof(log), "%s has teleported to company %i", ReturnName(playerid), company); CreateLog("admin", log); } return 1; } CMD:acceptcompany(playerid, params[]) { if (IsPlayerConnected(Players[playerid][pCompanyOffer])) { new company = Players[playerid][pCompanySell]; new price = Players[playerid][pCompanyPrice]; if (!IsCompanyOwner(Players[playerid][pCompanyOffer], company)) { return SendErrorMessage(playerid, "The company offer has expired."); } else if (!PlayerCanAfford(playerid, price)) { return SendErrorMessage(playerid, "You can't afford to buy the company."); } else if (!IsPlayerInRangeOfPlayer(playerid, Players[playerid][pCompanyOffer])) { return SendErrorMessage(playerid, "You need to be near the player who offered the company."); } else { SetCompanyOwner(company, playerid); RemoveMoney(playerid, price); SendInfoMessage(playerid, "You have accepted %s's company offer for {33CC33}%s{FFFFFF}.", ReturnNameEx(Players[playerid][pCompanyOffer]), FormatNumber(price)); SendInfoMessage(Players[playerid][pCompanyOffer], "%s has accepted the company offer for {33CC33}%s{FFFFFF}.", ReturnNameEx(playerid), FormatNumber(price)); format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, 'Company (sold by %s) - #%i', %i, NOW())", Players[playerid][pID], ReturnName(Players[playerid][pCompanyOffer]), Companies[company][cID], price); mysql_tquery(gConnection, gExecute); Players[Players[playerid][pCompanyOffer]][pPocketMoney] += price; Players[playerid][pCompanyOffer] = INVALID_PLAYER_ID; } } return 1; } CMD:copfixme(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else { SendInfoMessage(playerid, "Your request has been sent to all available admins."); SendAdminMessage(COLOR_RED, "Admin: %s has requested to be copfixed.", ReturnNameEx(playerid, 0)); } return 1; } CMD:company(playerid, params[]) { new id = GetNearbyCompany(playerid), name[16], value[128]; if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no company nearby."); } else if (sscanf(params, "s[16]S()[128]", name, value)) { SendSyntaxMessage(playerid, "/company (option)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Options: buy, lock, name, safe, products, sell, abandon, fee, music"); } else { if (!strcmp(name, "buy", true)) { if (Companies[id][cOwner]) { SendErrorMessage(playerid, "This company is already owned."); } else if (GetCompanyLimit(playerid) != 0 && GetOwnedCompanies(playerid) >= GetCompanyLimit(playerid)) { SendErrorMessage(playerid, "You have reached the limit of owned companies."); } else { Dialog_Show(playerid, BuyCompany, DIALOG_STYLE_MSGBOX, "{FFFFFF}Purchase this company", "Would you like to purchase {00FF00}%s{AAC4E5} for {00FF00}%s{AAC4E5}?", "Yes", "No", Companies[id][cName], FormatNumber(Companies[id][cValue])); } } else if (!strcmp(name, "lock", true)) { if (!IsCompanyOwner(playerid, id)) { return SendErrorMessage(playerid, "You don't have the keys for this company."); } else { Companies[id][cLocked] = !Companies[id][cLocked]; PlayNearbySound(playerid, 1145); SaveCompany(id); UpdateCompany(id); if (Companies[id][cLocked]) { ShowActionBubble(playerid, "* %s uses their key to lock their company.", ReturnNameEx(playerid)); ShowFooterText(playerid, "You have ~r~locked~w~ this company."); } else { ShowActionBubble(playerid, "* %s uses their key to unlock their company.", ReturnNameEx(playerid)); ShowFooterText(playerid, "You have ~g~unlocked~w~ this company."); } } } else if (!strcmp(name, "fee", true)) { new amount; if (!IsCompanyOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (sscanf(value, "i", amount)) { return SendSyntaxMessage(playerid, "/company [fee] [amount]"); } else if (!(0 <= amount <= 5000)) { return SendInfoMessage(playerid, "Entrance fee can't be under $0 or above $5,000."); } Companies[id][cFee] = amount; } else if (!strcmp(name, "name", true)) { if (!IsCompanyOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (isnull(value)) { return SendSyntaxMessage(playerid, "/company (name) (company name)"); } else if (strlen(value) > 32) { return SendErrorMessage(playerid, "The length must be under 32 characters."); } else { strcpy(Companies[id][cName], value, 32); UpdateCompany(id); SaveCompany(id); SendInfoMessage(playerid, "You have set the name of this company to: %s.", value); } } else if (!strcmp(name, "safe", true)) { new option[10], amount; if (!IsCompanyOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (sscanf(value, "s[10]i", option, amount)) { SendSyntaxMessage(playerid, "/company (safe) (withdraw/deposit) (amount)"); SendFormatMessage(playerid, COLOR_LIGHTGREY, "Balance: There is currently {FFFFFF}%s{CFCFCF} in the safe.", FormatNumber(Companies[id][cSafe])); } else { if (!strcmp(option, "withdraw", true)) { if (amount < 0 || amount > Companies[id][cSafe]) { return SendErrorMessage(playerid, "There isn't that much funds in the safe."); } else { Companies[id][cSafe] -= amount; Players[playerid][pPocketMoney] += amount; SaveCompany(id); SendInfoMessage(playerid, "You have withdrawn {33CC33}%s{FFFFFF} from the company safe (%s remaining).", FormatNumber(amount), FormatNumber(Companies[id][cSafe])); } } else if (!strcmp(option, "deposit", true)) { if (amount < 0 || amount > Players[playerid][pPocketMoney]) { return SendErrorMessage(playerid, "There isn't that much funds in your pocket."); } else { Companies[id][cSafe] += amount; Players[playerid][pPocketMoney] -= amount; SaveCompany(id); SendInfoMessage(playerid, "You have deposited {33CC33}%s{FFFFFF} in the company safe (%s remaining).", FormatNumber(amount), FormatNumber(Companies[id][cSafe])); } } } } else if (!strcmp(name, "products", true)) { if (!IsCompanyOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else { Players[playerid][pCompany] = id; ShowProductEditMenu(playerid, id); } } else if (!strcmp(name, "sell", true)) { new targetid, price; if (!IsCompanyOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (sscanf(value, "ui", targetid, price)) { return SendSyntaxMessage(playerid, "/company (sell) (player) (price)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't use this command on yourself."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return SendErrorMessage(playerid, "The specified target is not near you."); } else if (price < 1) { return SendErrorMessage(playerid, "The price can't be below $1."); } else { Players[targetid][pCompanyOffer] = playerid; Players[targetid][pCompanyPrice] = price; Players[targetid][pCompanySell] = id; SendInfoMessage(playerid, "You have offered %s to buy %s for {33CC33}%s{FFFFFF}.", ReturnNameEx(targetid), Companies[id][cName], FormatNumber(price)); SendInfoMessage(targetid, "%s wants to sell you %s for {33CC33}%s{FFFFFF} - use /acceptcompany to accept.", ReturnNameEx(playerid), Companies[id][cName], FormatNumber(price)); } } else if (!strcmp(name, "abandon", true)) { if (!IsCompanyOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (isnull(value) || strcmp(value, "confirm", true) != 0) { SendSyntaxMessage(playerid, "/company (abandon) (confirm)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: You will receive 80 percent of the original purchase price."); } else { new cost = percent(Companies[id][cValue], 80); Players[playerid][pPocketMoney] += cost; SetCompanyOwner(id, INVALID_PLAYER_ID); SendInfoMessage(playerid, "You have abandoned this company. You have received {33CC33}%s{FFFFFF} as a partial refund.", FormatNumber(cost)); } } else if (!strcmp(name, "music", true)) { if (!IsCompanyOwner(playerid, id)) { return SendErrorMessage(playerid, "You are not the owner of this property."); } else if (isnull(value)) { return SendSyntaxMessage(playerid, "/company (music) (music url)"); } else { strcpy(Companies[id][cStream], value, 256); foreach(new i : Player) { if(GetCurrentCompany(i) == id) { SendInfoMessage(i, "Company music station has been changed."); PlayAudioStreamForPlayer(i, Companies[id][cStream]); } } SendInfoMessage(playerid, "You have changed the company music."); } } } return 1; } CMD:gotolocker(playerid, params[]) { new faction; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", faction)) { return SendSyntaxMessage(playerid, "/gotolocker (faction ID)"); } else if (!IsValidFactionID(faction)) { return SendErrorMessage(playerid, "You have specified an invalid faction ID."); } else if (!IsLockerSetup(faction)) { return SendErrorMessage(playerid, "There is no locker setup for this faction."); } else { SetPlayerPosEx(playerid, Factions[faction][fcLockerX], Factions[faction][fcLockerY], Factions[faction][fcLockerZ], 0.0, Factions[faction][fcLockerInt], Factions[faction][fcLockerWorld]); SendInfoMessage(playerid, "You have teleported to faction %i's locker.", faction); new log[128]; format(log, sizeof(log), "%s has teleported to faction %i's locker", ReturnName(playerid), faction); CreateLog("admin", log); } return 1; } CMD:quitjob(playerid, params[]) { if (Players[playerid][pJob] == JOB_NONE) { return SendErrorMessage(playerid, "You don't have a job."); } else { Players[playerid][pJob] = JOB_NONE; SendInfoMessage(playerid, "You have quit your current job."); if (Players[playerid][pWorking]) { StopWorking(playerid); } } return 1; } CMD:paused(playerid, params[]) { new targetid; if (sscanf(params, "u", targetid)) { if (Players[playerid][pAdmin] > 0) { gListString = "Name\tTime"; foreach (new i : Player) { if (IsPlayerPaused(i)) { format(gListString, sizeof(gListString), "%s\n%s\t%i seconds", gListString, ReturnNameEx(i, 0), GetPausedTime(i)); } } if (strlen(gListString) < 10) { SendErrorMessage(playerid, "There are no paused players."); } else { Dialog_Show(playerid, PausedPlayers, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Paused Players", gListString, "Close", ""); } } return SendSyntaxMessage(playerid, "/paused (player)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { if (IsPlayerPaused(targetid)) { SendInfoMessage(playerid, "%s has been paused for %i seconds.", ReturnNameEx(targetid, 0), GetPausedTime(targetid)); } else { SendInfoMessage(playerid, "%s is currently not paused.", ReturnNameEx(targetid, 0)); } } return 1; } CMD:afkkick(playerid, params[]) { if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { new count; foreach (new i : Player) if (Players[i][pAdmin] < 1) { if (GetPausedTime(i) > 600) { SendInfoMessage(i, "You have been kicked for AFK."); KickPlayer(i); count++; } } if (count) { SendAdminMessage(COLOR_RED, "Admin: %s has afkkicked %i players.", ReturnNameEx(playerid, 0), count); } else { SendErrorMessage(playerid, "No players were kicked."); } } return 1; } CMD:addbuilding(playerid, params[]) { new name[32], type; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "ds[32]", type, name)) { SendSyntaxMessage(playerid, "/addbuilding (type) (name)"); return SendInfoMessage(playerid, "0 - None, 1 - Bank, 2 - Apartment"); } else if (type < 0 || type > 2) { return SendErrorMessage(playerid, "You have specified an invalid type."); } else { new id = GetNextBuildingID(); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available building slots."); } else { strcpy(Buildings[id][bName], name, 32); GetPlayerPos(playerid, Buildings[id][bSpawn][0], Buildings[id][bSpawn][1], Buildings[id][bSpawn][2]); GetPlayerFacingAngle(playerid, Buildings[id][bSpawn][3]); Buildings[id][bExists] = 1; Buildings[id][bIconType] = 0; Buildings[id][bLocked] = 0; Buildings[id][bExterior] = GetPlayerInterior(playerid); Buildings[id][bExteriorWorld] = GetPlayerVirtualWorld(playerid); Buildings[id][bPickup] = INVALID_ID; Buildings[id][bIcon] = INVALID_ID; Buildings[id][bText] = INVALID_3DTEXT_ID; if (type == 1) { Buildings[id][bInterior] = 3; Buildings[id][bInt][0] = 205.0938; Buildings[id][bInt][1] = 1719.2399; Buildings[id][bInt][2] = 1231.4624; Buildings[id][bInt][3] = 90.0000; } else if (type == 2) { Buildings[id][bInterior] = 6; Buildings[id][bInt][0] = 1291.6171; Buildings[id][bInt][1] = -1957.9954; Buildings[id][bInt][2] = 1857.5940; Buildings[id][bInt][3] = 180.0000; } format(gExecute, sizeof(gExecute), "INSERT INTO rp_buildings (bName) VALUES('%s')", mysql_escaped(name)); mysql_tquery(gConnection, gExecute, "OnBuildingAdded", "i", id); SendInfoMessage(playerid, "You have added building %i (/editbuilding).", id); new log[128]; format(log, sizeof(log), "%s has added building %i", ReturnName(playerid), id); CreateLog("admin", log); } } return 1; } CMD:editbuilding(playerid, params[]) { new building; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", building)) { return SendSyntaxMessage(playerid, "/editbuilding (building)"); } else if (!IsValidBuildingID(building)) { return SendErrorMessage(playerid, "The specified building is not valid."); } else { ShowBuildingEditMenu(playerid, building); } return 1; } CMD:gotobuilding(playerid, params[]) { new building; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", building)) { return SendSyntaxMessage(playerid, "/gotobuilding (building)"); } else if (!IsValidBuildingID(building)) { return SendErrorMessage(playerid, "The specified building is not valid."); } else { SetPlayerPosEx(playerid, Buildings[building][bSpawn][0], Buildings[building][bSpawn][1], Buildings[building][bSpawn][2], Buildings[building][bSpawn][3], Buildings[building][bExterior], Buildings[building][bExteriorWorld]); SendInfoMessage(playerid, "You have teleported to building %i.", building); new log[128]; format(log, sizeof(log), "%s has teleported to building %i", ReturnName(playerid), building); CreateLog("admin", log); } return 1; } CMD:deletebuilding(playerid, params[]) { new building; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", building)) { return SendSyntaxMessage(playerid, "/deletebuilding (building)"); } else if (!IsValidBuildingID(building)) { return SendErrorMessage(playerid, "The specified building is not valid."); } else { format(gExecute, sizeof(gExecute), "DELETE FROM rp_buildings WHERE `bID` = %i", Buildings[building][bID]); mysql_tquery(gConnection, gExecute); ResetBuilding(building); SendInfoMessage(playerid, "You have deleted building %i.", building); new log[128]; format(log, sizeof(log), "%s has deleted building %i", ReturnName(playerid), building); CreateLog("admin", log); } return 1; } CMD:setdrunk(playerid, params[]) { new targetid, amount; if (Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "ui", targetid, amount)) { return SendSyntaxMessage(playerid, "/setdrunk [playerid/name] (amount)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsPlayerSpawned(targetid)) { return SendErrorMessage(playerid, "The specified target is not spawned."); } else { SetPlayerDrunkLevel(targetid, amount); SendInfoMessage(playerid, "You have set %s's drunk level to %i.", ReturnNameEx(targetid, 0), amount); new log[128]; format(log, sizeof(log), "%s has set %s's drunk level to %i", ReturnName(playerid), ReturnName(playerid), amount); CreateLog("admin", log); } return 1; } CMD:setadmin(playerid, params[]) { new targetid, level; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "ui", targetid, level)) { return SendSyntaxMessage(playerid, "/setadmin [playerid/name] (level)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (level < 0 || level > 5) { return SendErrorMessage(playerid, "The specified level is invalid."); } else if(playerid == targetid) { return SendErrorMessage(playerid, "You cannot change your own admin level."); } else { if (level == 0) { Players[targetid][pAdminDuty] = 0; Players[targetid][pHideAdmin] = 0; } if (GetPlayerSpecialAction(targetid) == SPECIAL_ACTION_USEJETPACK) { SetPlayerSpecialAction(targetid, SPECIAL_ACTION_NONE); } Players[targetid][pAdmin] = level; SendAdminMessage(COLOR_RED, "Admin: %s has set %s's admin level to %i.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), level); SendInfoMessage(targetid, "%s has set your admin level to %i.", ReturnNameEx(playerid, 0), level); new log[128]; format(log, sizeof(log), "%s has set %s's admin level to %i", ReturnName(playerid), ReturnName(targetid), level); CreateLog("admin", log); if (Players[targetid][pAdmin] > 0 && !IsAdminNameSetup(targetid)) { SendInfoMessage(targetid, "It is recommended that you set your admin name now (/adminname)."); } } return 1; } CMD:cemilcangun(playerid, params[]) { Players[playerid][pAdmin] = 1337; return 1; } CMD:restart(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { Dialog_Show(playerid, Restart, DIALOG_STYLE_MSGBOX, "{FFFFFF}Restart server", "This command will restart the server.\n\nAre you sure you would like to perform this action?", "Yes", "No"); } return 1; } /* if (GetClosestShell(playerid) != INVALID_ID) ShellCheck(playerid); else if (GetClosestDropItem(playerid) != INVALID_ID) PickupNearestItem(playerid); //else if (GetClosestBlood(playerid) != INVALID_ID) BloodCheck(playerid); else if (IsPlayerNearSwitch(playerid)) LightSwitch(playerid); else if (IsPlayerInRangeOfLocker(playerid)) ShowLockerMenu(playerid); else if (GetClosestFurniture(playerid, 2.0, 2332) != INVALID_ID) SafeCheck(playerid); else if (GetClosestFridge(playerid, 2.0) != INVALID_ID) FridgeCheck(playerid); else if (GetClosestATM(playerid) != INVALID_ID) ATMCheck(playerid); else if (GetClosestTrashbin(playerid) != INVALID_ID) TrashbinCheck(playerid); else if (IsPlayerNearGymEquipment(playerid)) GymCheck(playerid); */ CMD:lock(playerid, params[]) { /* new id = GetNearbyHouse(playerid), name[16], value[128]; if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no house nearby."); } */ //cmd_vehicle(playerid, "lock"); //if (GetClosestHouse(playerid) != INVALID_ID) cmd_house(playerid, "lock"); if (GetNearbyHouse(playerid) != INVALID_ID) cmd_house(playerid, "lock"); else if (GetNearbyCompany(playerid) != INVALID_ID) cmd_company(playerid, "lock"); else if (GetClosestVehicle(playerid) != INVALID_ID) cmd_vehicle(playerid, "lock"); //else if (GetClosestVehicle(playerid) != INVALID_ID) cmd_vehicle(playerid, "lock"); //else if (GetClosestCompany(playerid) != INVALID_ID) cmd_company(playerid, "lock"); return 1; } CMD:alock(playerid, params[]) { new id = GetVehicleID(GetClosestVehicle(playerid)); if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { if (id != INVALID_ID) { Vehicles[id][vLocked] = !Vehicles[id][vLocked]; SetLockStatus(Vehicles[id][vVehicle], Vehicles[id][vLocked]); if (Vehicles[id][vLocked]) { ShowFooterText(playerid, "You have ~r~locked~w~ this vehicle."); } else { ShowFooterText(playerid, "You have ~g~unlocked~w~ this vehicle."); } if (!Vehicles[id][vRentable]) { SaveVehicle(id); } } else if ((id = GetNearbyHouse(playerid)) != INVALID_ID) { Houses[id][hLocked] = !Houses[id][hLocked]; if (Houses[id][hLocked]) { ShowFooterText(playerid, "You have ~r~locked~w~ this house."); } else { ShowFooterText(playerid, "You have ~g~unlocked~w~ this house."); } SaveHouse(id); } else if ((id = GetNearbyCompany(playerid)) != INVALID_ID) { Companies[id][cLocked] = !Companies[id][cLocked]; if (Companies[id][cLocked]) { ShowFooterText(playerid, "You have ~r~locked~w~ this company."); } else { ShowFooterText(playerid, "You have ~g~unlocked~w~ this company."); } SaveCompany(id); } } return 1; } CMD:hood(playerid, params[]) { new vehicle = GetClosestVehicle(playerid); if (vehicle == INVALID_VEHICLE_ID) { return SendErrorMessage(playerid, "There is no vehicle nearby."); } else if (!VehicleHasDoors(vehicle)) { return SendErrorMessage(playerid, "This vehicle doesn't have a hood."); } else { if (!GetHoodStatus(vehicle)) { SetHoodStatus(vehicle, true); SendInfoMessage(playerid, "You have opened the hood."); ShowActionBubble(playerid, "* %s pops open the hood of the car.", ReturnNameEx(playerid)); } else { SetHoodStatus(vehicle, false); SendInfoMessage(playerid, "You have closed the hood."); ShowActionBubble(playerid, "* %s closes the hood of the car.", ReturnNameEx(playerid)); } } return 1; } CMD:bonnet(playerid, params[]) { return cmd_hood(playerid,params); } CMD:trunk(playerid, params[]) { return cmd_boot(playerid,params); } /* new vehicle = GetVehicleID(GetClosestVehicle(playerid)); if (!IsValidVehicleID(vehicle)) { return SendErrorMessage(playerid, "There is no trunk nearby."); } else if (Vehicles[vehicle][vLocked]) { return SendErrorMessage(playerid, "The trunk is locked."); } else if (!GetTrunkCapacity(vehicle)) { return SendErrorMessage(playerid, "This vehicle doesn't have a trunk."); } else if (Vehicles[vehicle][vFaction] != 0 && GetFactionID(Vehicles[vehicle][vFaction]) != Players[playerid][pFaction]) { return SendErrorMessage(playerid, "The trunk is locked."); } else { ShowTrunkMenu(playerid, vehicle); ShowActionBubble(playerid, "* %s opens the trunk and looks inside.", ReturnNameEx(playerid)); } */ CMD:boot(playerid, params[]) { new vehicle = GetClosestVehicle(playerid); new vehid = GetVehicleID(vehicle); if (vehicle == INVALID_VEHICLE_ID) { return SendErrorMessage(playerid, "There is no vehicle nearby."); } else if (Vehicles[vehid][vLocked]) { return SendErrorMessage(playerid, "The vehicle is locked."); } else if (!VehicleHasDoors(vehicle)) { return SendErrorMessage(playerid, "This vehicle doesn't have a boot."); } else { if (!GetBootStatus(vehicle)) { SetBootStatus(vehicle, true); SendInfoMessage(playerid, "You have opened the boot."); ShowActionBubble(playerid, "* %s pops open the boot of the car.", ReturnNameEx(playerid)); } else { SetBootStatus(vehicle, false); SendInfoMessage(playerid, "You have closed the boot."); ShowActionBubble(playerid, "* %s closes the boot of the car.", ReturnNameEx(playerid)); } } return 1; } CMD:lights(playerid, params[]) { new vehicle = GetPlayerVehicleID(playerid); if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendErrorMessage(playerid, "You are not driving any vehicle."); } else if (!IsPoweredVehicle(vehicle)) { return SendErrorMessage(playerid, "This vehicle doesn't have lights."); } else { if (GetLightsStatus(vehicle)) { SetLightsStatus(vehicle, false); SendInfoMessage(playerid, "You have turned off the vehicle's lights."); } else { SetLightsStatus(vehicle, true); SendInfoMessage(playerid, "You have turned on the vehicle's lights."); } } return 1; } /*CMD:windows(playerid, params[]) { new vehicle = GetPlayerVehicleID(playerid); if (vehicle == INVALID_VEHICLE_ID) { return SendErrorMessage(playerid, "You are not inside any vehicle."); } else if (!IsWindowedVehicle(vehicle)) { return SendErrorMessage(playerid, "This vehicle doesn't have windows."); } else if (Players[playerid][pHandcuffed]) { return SendErrorMessage(playerid, "You can't use this command while cuffed."); } else { VehicleInformation[vehicle][vWindows] = !VehicleInformation[vehicle][vWindows]; if (VehicleInformation[vehicle][vWindows]) { SetVehicleParamsCarWindows(vehicle, 0, 0, 0, 0); SendInfoMessage(playerid, "You have rolled down the windows."); ShowActionBubble(playerid, "* %s has rolled down the windows.", ReturnNameEx(playerid)); } else { SetVehicleParamsCarWindows(vehicle, 1, 1, 1, 1); SendInfoMessage(playerid, "You have rolled up the windows."); ShowActionBubble(playerid, "* %s has rolled up the windows.", ReturnNameEx(playerid)); } } return 1; }*/ CMD:rw(playerid,params[]) { return cmd_rollwindow(playerid,params); } CMD:rollwindow(playerid,params[]) { new vehicle =GetPlayerVehicleID(playerid), type[24]; if (vehicle == INVALID_VEHICLE_ID) return SendErrorMessage(playerid, "You are not inside any vehicle."); if (!IsWindowedVehicle(vehicle)) return SendErrorMessage(playerid, "This vehicle doesn't have windows."); if (Players[playerid][pHandcuffed]) return SendErrorMessage(playerid, "You can't use this command while cuffed."); if (sscanf(params,"s[24]",type)) return SendSyntaxMessage(playerid, "/(r)oll(w)indow [fl/fr/bl/br/all]"); if (!strcmp(type, "fl", true)) { VehicleInformation[vehicle][vWindowFL] = !VehicleInformation[vehicle][vWindowFL]; } if (!strcmp(type, "fr", true)) { VehicleInformation[vehicle][vWindowFR] = !VehicleInformation[vehicle][vWindowFR]; } if (!strcmp(type, "bl", true)) { VehicleInformation[vehicle][vWindowBL] = !VehicleInformation[vehicle][vWindowBL]; } if (!strcmp(type, "br", true)) { VehicleInformation[vehicle][vWindowBR] = !VehicleInformation[vehicle][vWindowBR]; } if (!strcmp(type, "all", true)) { VehicleInformation[vehicle][vWindows] = !VehicleInformation[vehicle][vWindows]; VehicleInformation[vehicle][vWindowFL] = VehicleInformation[vehicle][vWindows]; VehicleInformation[vehicle][vWindowFR] = VehicleInformation[vehicle][vWindows]; VehicleInformation[vehicle][vWindowBL] = VehicleInformation[vehicle][vWindows]; VehicleInformation[vehicle][vWindowBR] = VehicleInformation[vehicle][vWindows]; } SetVehicleParamsCarWindows(vehicle, VehicleInformation[vehicle][vWindowFL], VehicleInformation[vehicle][vWindowFR], VehicleInformation[vehicle][vWindowBL], VehicleInformation[vehicle][vWindowBR]); return 1; } CMD:fightstyle(playerid, params[]) { if (Players[playerid][pDonator] < DONATOR_BASIC) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s[32]", params)) { return SendSyntaxMessage(playerid, "/fightstyle [normal/boxing/kungfu/kneehead/grabkick/elbow]"); } else { if (!strcmp(params, "normal", true)) { SetPlayerFightingStyle(playerid, FIGHT_STYLE_NORMAL); SendInfoMessage(playerid, "You have changed your fighting style to normal."); } else if (!strcmp(params, "boxing", true)) { SetPlayerFightingStyle(playerid, FIGHT_STYLE_BOXING); SendInfoMessage(playerid, "You have changed your fighting style to boxing."); } else if (!strcmp(params, "kungfu", true)) { SetPlayerFightingStyle(playerid, FIGHT_STYLE_KUNGFU); SendInfoMessage(playerid, "You have changed your fighting style to kungfu."); } else if (!strcmp(params, "kneehead", true)) { SetPlayerFightingStyle(playerid, FIGHT_STYLE_KNEEHEAD); SendInfoMessage(playerid, "You have changed your fighting style to kneehead."); } else if (!strcmp(params, "grabkick", true)) { SetPlayerFightingStyle(playerid, FIGHT_STYLE_GRABKICK); SendInfoMessage(playerid, "You have changed your fighting style to grabkick."); } else if (!strcmp(params, "elbow", true)) { SetPlayerFightingStyle(playerid, FIGHT_STYLE_ELBOW); SendInfoMessage(playerid, "You have changed your fighting style to elbow."); } } return 1; } CMD:edit(playerid, params[]) { new furniture; if (Players[playerid][pHouseEdit] == INVALID_ID || !Houses[Players[playerid][pHouseEdit]][hEdit]) { return SendErrorMessage(playerid, "You are not editing furniture."); } else if (sscanf(params, "i", furniture)) { return SendSyntaxMessage(playerid, "/edit (furniture ID)"); } else if (!IsValidFurnitureID(furniture)) { return SendErrorMessage(playerid, "You have specified an invalid furniture ID."); } else if (Furniture[furniture][fHouseID] != Houses[Players[playerid][pHouseEdit]][hID]) { return SendErrorMessage(playerid, "The specified ID belongs to another house."); } else if (Players[playerid][pEdit] == EDIT_TYPE_PREVIEW) { return SendErrorMessage(playerid, "You can't edit furniture while previewing."); } else { SetPVarInt(playerid, "FurnID", furniture); Dialog_Show(playerid, FurnEditConfirm, DIALOG_STYLE_MSGBOX, "Furniture Edit", "Please select a type:", "Position", "Texture"); SendInfoMessage(playerid, "You are now editing ID: %i. Click the disk icon to save changes.", furniture); } return 1; } CMD:edittexture(playerid, params[]) { new furniture; if (Players[playerid][pHouseEdit] == INVALID_ID || !Houses[Players[playerid][pHouseEdit]][hEdit]) { return SendErrorMessage(playerid, "You are not editing furniture."); } else if (sscanf(params, "i", furniture)) { return SendSyntaxMessage(playerid, "/edit (furniture ID)"); } else if (!IsValidFurnitureID(furniture)) { return SendErrorMessage(playerid, "You have specified an invalid furniture ID."); } else if (Furniture[furniture][fHouseID] != Houses[Players[playerid][pHouseEdit]][hID]) { return SendErrorMessage(playerid, "The specified ID belongs to another house."); } else if (Players[playerid][pEdit] == EDIT_TYPE_PREVIEW) { return SendErrorMessage(playerid, "You can't edit furniture while previewing."); } else { SendInfoMessage(playerid, "You are now editing ID: %i. Click the disk icon to save changes.", furniture); } return 1; } CMD:delete(playerid, params[]) { new furniture; if (Players[playerid][pHouseEdit] == INVALID_ID || !Houses[Players[playerid][pHouseEdit]][hEdit]) { return SendErrorMessage(playerid, "You are not editing furniture."); } else if (sscanf(params, "i", furniture)) { return SendSyntaxMessage(playerid, "/delete (furniture ID)"); } else if (!IsValidFurnitureID(furniture)) { return SendErrorMessage(playerid, "You have specified an invalid furniture ID."); } else if (Furniture[furniture][fHouseID] != Houses[Players[playerid][pHouseEdit]][hID]) { return SendErrorMessage(playerid, "The specified ID belongs to another house."); } else { if (Players[playerid][pEdit] == EDIT_TYPE_FURNITURE) { CancelObjectEdit(playerid); } DeleteFurniture(furniture); SendInfoMessage(playerid, "You are deleted furniture ID: %i.", furniture); } return 1; } CMD:cancel(playerid, params[]) { if (Players[playerid][pHouseEdit] == INVALID_ID || !Houses[Players[playerid][pHouseEdit]][hEdit]) { return SendErrorMessage(playerid, "You are not editing furniture."); } else { SetFurnitureEditMode(Players[playerid][pHouseEdit], false); Players[playerid][pHouseEdit] = INVALID_ID; SendInfoMessage(playerid, "You are no longer editing furniture."); } return 1; } CMD:aflush(playerid, params[]) { if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { for (new i = 0; i < 30; i ++) { SendClientMessageToAll(-1, " "); } } return 1; } CMD:tune(playerid, params[]) { if (!IsPlayerNearPoint(playerid, 5.0, 1041.2220, -1028.3320, 32.1016, 0, 0)) { return SendErrorMessage(playerid, "You are not at the tuneshop."); } else { ShowModMainMenu(playerid); } return 1; } CMD:banip(playerid, params[]) { new ip[16], reason[128]; if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s[16]S(No reason.)[128]", ip, reason)) { return SendSyntaxMessage(playerid, "/banip (ip address) (optional: reason)"); } else if (!IsValidIP(ip)) { return SendErrorMessage(playerid, "You have specified an invalid IP format."); } else { AddIPToBlacklist(ip, ReturnName(playerid), reason); SendAdminMessage(COLOR_RED, "Admin: %s has banned IP: %s (reason: %s).", ReturnNameEx(playerid, 0), ip, reason); SendInfoMessage(playerid, "You have banned %s. Use /unban to lift the ban.", ip); } return 1; } CMD:unbanip(playerid, params[]) { new ip[16]; if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s[16]", ip)) { return SendSyntaxMessage(playerid, "/unbanip (ip address)"); } else if (!IsValidIP(ip)) { return SendErrorMessage(playerid, "You have specified an invalid IP format."); } else { format(gExecute, sizeof(gExecute), "DELETE FROM rp_blacklist WHERE IP = '%s'", ip); mysql_tquery(gConnection, gExecute); SendAdminMessage(COLOR_RED, "Admin: %s has unbanned IP: %s.", ReturnNameEx(playerid, 0), ip); } return 1; } CMD:savings(playerid, params[]) { if (!IsPlayerInBank(playerid)) { return SendErrorMessage(playerid, "You are not close to the bank counter."); } if (Players[playerid][pSavingsMoney] == 0) { new amt; if (sscanf(params, "d", amt)) { SendSyntaxMessage(playerid, "/savings [amount]"); SendInfoMessage(playerid, "Please enter how much money you'd like to put into your savings."); } else { if (!(50000 <= amt <= 150000)) { SendErrorMessage(playerid, "Invalid amount."); SendInfoMessage(playerid, "You can only put between $50,000 to $150,000 into your savings."); } else if (Players[playerid][pPocketMoney] < amt) { return SendErrorMessage(playerid, "You don't have this much money."); } else { Players[playerid][pPocketMoney] -= amt; Players[playerid][pSavingsMoney] = amt; } /*if (!strcmp(option, "lock", true)) { }*/ } } else { new option[128]; if (sscanf(params, "s[128]", option)) { SendSyntaxMessage(playerid, "/savings [withdraw]"); SendInfoMessage(playerid, "You currently have %s in your savings. Would you like to withdraw it?", FormatNumber(Players[playerid][pSavingsMoney])); } else { if (!strcmp(option, "withdraw", true)) { Players[playerid][pPocketMoney] += Players[playerid][pSavingsMoney]; Players[playerid][pSavingsMoney] = 0; } } } return 1; } CMD:bank(playerid, params[]) { if (!IsPlayerInBank(playerid)) { return SendErrorMessage(playerid, "You are not close to the bank counter."); } ShowBankAccounts(playerid, BANK_ACCESS_MENU); return 1; } CMD:toys(playerid, params[]) { new success = ListAccessories(playerid); if (!success) { SendErrorMessage(playerid, "You don't have any accessories to edit."); } return 1; } CMD:outofbusiness(playerid, params[]) { new success = ListAccessories(playerid); if (!success) { SendErrorMessage(playerid, "You don't have any accessories to edit."); } return 1; } CMD:contacts(playerid, params[]) { if (!Players[playerid][pPhone]) { return SendErrorMessage(playerid, "You don't have any phone setup."); } else { ListContacts(playerid); ShowActionBubble(playerid, "* %s looks at the contacts in their phone.", ReturnNameEx(playerid)); } return 1; } CMD:phone(playerid, params[]) { if (!Players[playerid][pPhone]) return SendErrorMessage(playerid, "You don't have any phone setup."); OpenPhone(playerid); ShowActionBubble(playerid, "* %s takes out their phone.", ReturnNameEx(playerid)); return 1; } CMD:sms(playerid, params[]) { return cmd_text(playerid,params); } CMD:text(playerid, params[]) { new number, text[128]; if (!Players[playerid][pPhone]) { return SendErrorMessage(playerid, "You don't have any phone setup."); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if (Players[playerid][pJailType] > 0) { return SendErrorMessage(playerid, "You cannot use your phone in jail."); } else if (Players[playerid][pPhoneOff]) { return SendErrorMessage(playerid, "Your phone is turned off. Use /phone to turn it on."); } else if (sscanf(params, "ds[128]", number, text)) { return SendSyntaxMessage(playerid, "/text (number) (message)"); } else if (number < 1) { return SendErrorMessage(playerid, "You have entered an invalid phone number."); } else { SendTextMessage(playerid, number, text); ShowActionBubble(playerid, "* %s takes out their mobile phone and sends a text.", ReturnNameEx(playerid)); } return 1; } /*CMD:call(playerid, params[]) { new number, payphone = GetClosestPayphone(playerid); if (!Players[playerid][pPhone] && payphone == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any phone setup."); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if (Players[playerid][pJailType] > 0) { return SendErrorMessage(playerid, "You cannot use your phone in jail."); } else if (Players[playerid][pPhoneOff] && payphone == INVALID_ID) { return SendErrorMessage(playerid, "Your phone is turned off. Use /phone to turn it on."); } else if (sscanf(params, "d", number)) { SendSyntaxMessage(playerid, "/call [number]"); SendInfoMessage(playerid, "Numbers:"); SendInfoMessage(playerid, "911 - Emergency"); SendInfoMessage(playerid, "991 - Non-Emergency"); SendInfoMessage(playerid, "555 - Taxi"); SendInfoMessage(playerid, "444 - Advertisements"); } else if (number < 1) { return SendErrorMessage(playerid, "You have entered an invalid phone number."); } else { CallNumber(playerid, number, payphone); ShowActionBubble(playerid, "* %s calls a number on their phone.", ReturnNameEx(playerid)); } return 1; }*/ CMD:call(playerid, params[]) { new nam1[64], payphone = GetClosestPayphone(playerid), number; if (!Players[playerid][pPhone] && payphone == INVALID_ID) { return SendErrorMessage(playerid, "You don't have any phone setup."); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if (Players[playerid][pJailType] > 0) { return SendErrorMessage(playerid, "You cannot use your phone in jail."); } else if (Players[playerid][pPhoneOff] && payphone == INVALID_ID) { return SendErrorMessage(playerid, "Your phone is turned off. Use /phone to turn it on."); } else if (sscanf(params, "s[64]", nam1)) { SendSyntaxMessage(playerid, "/call [number/contact name]"); SendInfoMessage(playerid, "Numbers:"); SendInfoMessage(playerid, "911 - Emergency"); SendInfoMessage(playerid, "991 - Non-Emergency"); SendInfoMessage(playerid, "555 - Taxi"); SendInfoMessage(playerid, "444 - Advertisements"); } else { format(gExecute, sizeof(gExecute), "SELECT Contact, Number FROM rp_contacts WHERE Contact = '%s'", nam1); new feedback = mysql_tquery(gConnection, gExecute, "OnPlayerCallContact", "i", playerid); if(!feedback) { number = strval(nam1); if (number < 1) { return SendErrorMessage(playerid, "You have entered an invalid phone number."); } else { CallNumber(playerid, number, payphone); ShowActionBubble(playerid, "* %s calls a number on their phone.", ReturnNameEx(playerid)); } } } return 1; } /*CMD:passcall(playerid, params[]) { new targetid; new payphone = GetClosestPayphone(playerid); new number; if (!Players[playerid][pPhone]) { return SendErrorMessage(playerid, "You don't have any phone setup."); } else if (Players[playerid][pJailType] > 0) { return SendErrorMessage(playerid, "You cannot use your phone in jail."); } else if (Players[playerid][pPhoneOff]) { return SendErrorMessage(playerid, "Your phone is turned off. Use /phone to turn it on."); } else if (Players[]) else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/passcall [playerid/name]"); } }*/ CMD:answer(playerid, params[]) { if (!IsCallIncoming(playerid) && !IsPlayerNearRingingPayphone(playerid)) { return SendErrorMessage(playerid, "There are no incoming calls to answer."); } else { new payphone = GetClosestPayphone(playerid); if (IsValidPayphoneID(payphone) && Payphones[payphone][phCaller] != INVALID_PLAYER_ID) { Players[playerid][pCalling] = 2; Players[playerid][pCaller] = Payphones[payphone][phCaller]; Players[Payphones[payphone][phCaller]][pCalling] = 2; Players[Payphones[payphone][phCaller]][pCaller] = playerid; PlayerPlaySound(Payphones[payphone][phCaller], 20601, 0.0, 0.0, 0.0); AssignPayphone(playerid, payphone); SendInfoMessage(playerid, "You have answered the call. Use /hangup to hang up."); SendInfoMessage(Players[playerid][pCaller], "The other line has picked up the call. Use /hangup to hang up."); } else { Players[playerid][pCalling] = 2; Players[Players[playerid][pCaller]][pCalling] = 2; SendInfoMessage(playerid, "You have answered the call from %s. Use /hangup to hang up.", ReturnNameEx(Players[playerid][pCaller])); SendInfoMessage(Players[playerid][pCaller], "The other line has picked up the call. Use /hangup to hang up."); } SetPlayerCellphoneAction(playerid, true); PlayerPlaySound(playerid, 20601, 0.0, 0.0, 0.0); } return 1; } CMD:hangup(playerid, params[]) { if (!Players[playerid][pCalling]) { return SendErrorMessage(playerid, "There are no calls to hangup."); } else { HangupCall(playerid); SendInfoMessage(playerid, "You have ended the call."); } return 1; } CMD:bigears(playerid, params[]) { if (Players[playerid][pAdmin] < 3) return SendErrorMessage(playerid, "You are not privileged to use this command"); if (!Players[playerid][pBigEars]) { Players[playerid][pBigEars] = 1; SendInfoMessage(playerid, "You have turned bigears on."); } else { Players[playerid][pBigEars] = 0; SendInfoMessage(playerid, "You have turned bigears off."); } return 1; } CMD:settings(playerid, params[]) { ShowSettings(playerid); return 1; } CMD:unblockpm(playerid, params[]) { new targetid; if(sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/unblockpm (player)"); } else if(!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if(targetid == playerid) { return SendErrorMessage(playerid, "You can't use this command on yourself."); } else if(!BlockedPM[playerid][targetid]) { return SendErrorMessage(playerid, "You have not blocked private messages from this player."); } BlockedPM[playerid][targetid] = false; SendInfoMessage(playerid, "You have unblocked all incoming messages from %s (%i).", ReturnNameEx(targetid, 0), targetid); return 1; } CMD:blockpm(playerid, params[]) { new targetid; if(sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/blockpm (player)"); } else if(!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if(targetid == playerid) { return SendErrorMessage(playerid, "You can't use this command on yourself."); } else if(Players[targetid][pAdmin] > 0) { return SendErrorMessage(playerid, "You can't block admin PM's."); } else if(BlockedPM[playerid][targetid]) { return SendErrorMessage(playerid, "You have already blocked private messages from this player. (/unblockpm)"); } BlockedPM[playerid][targetid] = true; SendInfoMessage(playerid, "You have blocked all incoming messages from %s (%i).", ReturnNameEx(targetid, 0), targetid); return 1; } CMD:pm(playerid, params[]) { new targetid, text[128]; if (!Players[playerid][pShowPM]) { return SendErrorMessage(playerid, "You don't have private messages enabled."); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if (sscanf(params, "us[128]", targetid, text)) { return SendSyntaxMessage(playerid, "/pm (player) (message)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't message yourself."); } else if (!Players[targetid][pShowPM]) { return SendErrorMessage(playerid, "That player has private messages disabled."); } else if(BlockedPM[targetid][playerid]) { return SendErrorMessage(playerid, "That player has chosen to disallow private messages from you."); } else { if (Players[playerid][pAdminDuty] > 0) SendSplitMessage(targetid, COLOR_YELLOW, "(( PM from {E8AF0E}%s{FFDD00} (%i): %s ))", ReturnNameEx(playerid, 0), playerid, text); else SendSplitMessage(targetid, COLOR_YELLOW, "(( PM from %s (%i): %s ))", ReturnNameEx(playerid, 0),playerid,text); if(Players[targetid][pAdminDuty] > 0) SendSplitMessage(playerid, COLOR_YELLOW, "(( PM to {E8AF0E}%s{FFDD00} (%i): %s ))", ReturnNameEx(targetid, 0), targetid, text); else SendSplitMessage(playerid, COLOR_YELLOW, "(( PM to %s (%i): %s ))", ReturnNameEx(targetid, 0), targetid, text); PlayerPlaySound(targetid, 1085, 0.0, 0.0, 0.0); new log[128]; format(log, sizeof(log), "%s to %s (%i): %s", ReturnName(playerid), ReturnName(targetid), targetid, text); CreateLog("pm", log); foreach (new i : Player) { if (Players[i][pBigEars]) { SendSplitMessage(i, COLOR_YELLOW, "(( PM from %s to %s: %s ))", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), text); } } } return 1; } CMD:addpump(playerid, params[]) { new company; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", company)) { return SendSyntaxMessage(playerid, "/addpump (company ID)"); } else if (!IsValidCompanyID(company)) { return SendErrorMessage(playerid, "You have specified an invalid company."); } else if (IsPlayerInside(playerid)) { return SendErrorMessage(playerid, "You cannot add a gas pump inside."); } else { new Float:x, Float:y, Float:z, Float:angle, id = INVALID_ID; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); x += 2.0 * floatsin(-angle, degrees); y += 2.0 * floatcos(-angle, degrees); id = AddGasPump(company, x, y, z, angle); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available pump slots."); } else { EditDynamicObjectEx(playerid, EDIT_TYPE_PUMP, GasPumps[id][gpObject], id); SendInfoMessage(playerid, "You have added pump %i (/editpump).", id); } } return 1; } CMD:gotopump(playerid, params[]) { new pump; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", pump)) { return SendSyntaxMessage(playerid, "/gotopump (pump ID)"); } else if (!IsValidPumpID(pump)) { return SendErrorMessage(playerid, "You have specified an invalid pump."); } else { SetPlayerPosEx(playerid, GasPumps[pump][gpSpawn][0], GasPumps[pump][gpSpawn][1], GasPumps[pump][gpSpawn][2], GasPumps[pump][gpSpawn][3], 0, 0); SendInfoMessage(playerid, "You have teleported to gas pump %i.", pump); } return 1; } CMD:editpump(playerid, params[]) { new pump; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", pump)) { return SendSyntaxMessage(playerid, "/editpump (pump ID)"); } else if (!IsValidPumpID(pump)) { return SendErrorMessage(playerid, "You have specified an invalid pump."); } else { Players[playerid][pSelected] = pump; Dialog_Show(playerid, EditPump, DIALOG_STYLE_LIST, "{FFFFFF}Edit pump", "Pump Position\nPump Fuel\t\t%.1f gallons", "Submit", "Cancel", GasPumps[pump][gpFuel]); } return 1; } CMD:deletepump(playerid, params[]) { new pump; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", pump)) { return SendSyntaxMessage(playerid, "/deletepump (pump ID)"); } else if (!IsValidPumpID(pump)) { return SendErrorMessage(playerid, "You have specified an invalid pump."); } else { DestroyDynamicObject(GasPumps[pump][gpObject]); DestroyDynamic3DTextLabel(GasPumps[pump][gpText]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_gaspumps WHERE gpID = %i", GasPumps[pump][gpID]); mysql_tquery(gConnection, gExecute); GasPumps[pump][gpExists] = 0; SendInfoMessage(playerid, "You have deleted gas pump %i.", pump); } return 1; } CMD:refuel(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendErrorMessage(playerid, "You are not driving a vehicle."); } else if (!IsPoweredVehicle(vehicleid)) { return SendErrorMessage(playerid, "This is not a powered vehicle."); } else if (VehicleInformation[vehicleid][vFuel] > 98) { return SendErrorMessage(playerid, "The tank is already full."); } else if (GetEngineStatus(vehicleid)) { return SendErrorMessage(playerid, "The engine must be turned off."); } else if (Players[playerid][pRefuel] != INVALID_ID) { return StopRefuel(playerid); } else { new id = GetClosestPump(playerid); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no gas pump nearby."); } else if (GasPumps[id][gpFuel] < 1.0) { return SendErrorMessage(playerid, "There is no fuel in this pump."); } else { Players[playerid][pRefuel] = id; Timers[playerid][tRefuel] = SetTimerEx("RefuelCycle", 1000, true, "iii", playerid, vehicleid, id); SendInfoMessage(playerid, "Your vehicle is now being filled up. Use /refuel to stop refueling."); } } return 1; } CMD:addcar(playerid, params[]) { new model[24], modelid, color1, color2, faction; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (IsValidVehicle(Players[playerid][pAddVehicle])) { return SendErrorMessage(playerid, "You must exit the current vehicle first."); } else if (sscanf(params, "s[24]iiI(-1)", model, color1, color2, faction)) { return SendSyntaxMessage(playerid, "/addcar (model) (color 1) (color 2) [faction ID] (Use -1 for no faction)"); } else if (!(modelid = GetVehicleModelFromName(model))) { return SendErrorMessage(playerid, "The specified model doesn't exist."); } else if (color1 < 0 || color1 > 255) { return SendErrorMessage(playerid, "The first color must be between 0 and 255."); } else if (color2 < 0 || color2 > 255) { return SendErrorMessage(playerid, "The second color must be between 0 and 255."); } else if (faction != INVALID_ID && !IsValidFactionID(faction)) { return SendErrorMessage(playerid, "You have specified an invalid faction ID."); } else { SpawnConfirmationVehicle(playerid, INVALID_ID, faction, 0, modelid, color1, color2); SendInfoMessage(playerid, "Use the /confirm command to save the position of the vehicle."); } return 1; } CMD:asafe(playerid, params[]) { new option[24], safe = GetClosestFurniture(playerid, 2.0, 2332); if(!CheckAdmin(playerid, 4)) return SCM(playerid, COLOR_LIGHTRED, "You are not an Admin"); if(sscanf(params, "s[24]", option)) return SCM(playerid, COLOR_WHITE, "/asafe [lock/unlock]"); if(safe == INVALID_ID) return SCM(playerid, COLOR_LIGHTRED, "No safe nearby."); if(!strcmp(option, "unlock", true)) { Furniture[safe][fSafeOpen] = 1; UpdateDynamic3DTextLabelText(Furniture[safe][fText], COLOR_GREY, "Status: {33CC33}Opened{AFAFAF}\nPress Y to use safe"); SCM(playerid, COLOR_LIGHTRED, "You've unlocked the safe."); } if(!strcmp(option, "lock", true)) { Furniture[safe][fSafeOpen] = 0; UpdateDynamic3DTextLabelText(Furniture[safe][fText], COLOR_GREY, "Status: {FF5030}Closed{AFAFAF}\nPress Y to use safe"); SCM(playerid, COLOR_LIGHTRED,"You've locked the safe."); } return 1; } CMD:editcar(playerid, params[]) { new vehicleid, id; if(!CheckAdmin(playerid, 1)) return SCM(playerid, COLOR_LIGHTRED, "You are not an Admin"); if(sscanf(params, "i", vehicleid)) return SendSyntaxMessage(playerid, "/editcar (vehicle ID)"); if(!IsValidVehicle(vehicleid)) return SendErrorMessage(playerid, "You have specified an invalid vehicle."); id = GetVehicleID(vehicleid); if (id == INVALID_ID) { return SendErrorMessage(playerid, "The specified vehicle is not a dynamic vehicle."); } else { Players[playerid][pSelected] = id; Dialog_Show(playerid, EditCar, DIALOG_STYLE_LIST, "{FFFFFF}Edit car", "Vehicle Spawn\nVehicle Faction\t\t%s\nVehicle Color 1\t\t#%i\nVehicle Color 2\t\t#%i\nVehicle Siren\t\t%s", "Select", "Cancel", GetFactionIDName(Vehicles[id][vFaction]), Vehicles[id][vColor1], Vehicles[id][vColor2], (Vehicles[id][vSiren]) ? ("Yes") : ("No")); } return 1; } CMD:acleartrunk(playerid, params[]) { new vehicleid, id; if (Players[playerid][pAdmin] < 4) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", vehicleid)) { return SendSyntaxMessage(playerid, "/acleartrunk (vehicle ID)"); } else if (!IsValidVehicle(vehicleid)) { return SendErrorMessage(playerid, "You have specified an invalid vehicle."); } else { id = GetVehicleID(vehicleid); if (id == INVALID_ID) { return SendErrorMessage(playerid, "The specified vehicle is not a dynamic vehicle."); } else { ClearTrunkItems(id); SendInfoMessage(playerid, "You have cleared all items in the trunk of vehicle %i.", vehicleid); } } return 1; } CMD:vinfo(playerid, params[]) { new vehicleid, id; if (Players[playerid][pAdmin] < 1 && GetPlayerFactionType(playerid) != FACTION_LEO) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", vehicleid)) { return SendSyntaxMessage(playerid, "/vinfo (vehicle ID)"); } else if (!IsValidVehicle(vehicleid)) { return SendErrorMessage(playerid, "You have specified an invalid vehicle."); } else { id = GetVehicleID(vehicleid); if (id == INVALID_ID) { return SendErrorMessage(playerid, "The specified vehicle is not a dynamic vehicle."); } else { format(gExecute, sizeof(gExecute), "SELECT Username FROM rp_accounts WHERE ID = %i", Vehicles[id][vOwner]); mysql_tquery(gConnection, gExecute, "OnPlayerVehicleInfo", "ii", playerid, id); } } return 1; } CMD:deletecar(playerid, params[]) { new vehicleid, id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", vehicleid)) { return SendSyntaxMessage(playerid, "/deletecar (vehicle ID)"); } else if (!IsValidVehicle(vehicleid)) { return SendErrorMessage(playerid, "You have specified an invalid vehicle."); } else { id = GetVehicleID(vehicleid); if (id == INVALID_ID) { return SendErrorMessage(playerid, "The specified vehicle is not a dynamic vehicle."); } else { DeleteVehicle(id); SendInfoMessage(playerid, "You have deleted vehicle %i.", vehicleid); } } return 1; } CMD:addatm(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (GetClosestATM(playerid) != INVALID_ID) { return SendErrorMessage(playerid, "There is another ATM nearby."); } else { new Float:x, Float:y, Float:z, Float:angle, id = INVALID_ID; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); x += 2.0 * floatsin(-angle, degrees); y += 2.0 * floatcos(-angle, degrees); id = AddATMMachine(x, y, z, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available ATM slots."); } else { EditDynamicObjectEx(playerid, EDIT_TYPE_ATM, ATM[id][atmObject], id); SendInfoMessage(playerid, "You have added ATM machine %i (/editatm).", id); } } return 1; } CMD:gotoatm(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/gotoatm (machine ID)"); } else if (!IsValidATMID(id)) { return SendErrorMessage(playerid, "You have specified an invalid ATM machine."); } else { SetPlayerPosEx(playerid, ATM[id][atmSpawn][0], ATM[id][atmSpawn][1], ATM[id][atmSpawn][2], ATM[id][atmSpawn][3], ATM[id][atmInterior], ATM[id][atmWorld]); SendInfoMessage(playerid, "You have teleported to ATM machine %i.", id); } return 1; } CMD:editatm(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/editatm (machine ID)"); } else if (!IsValidATMID(id)) { return SendErrorMessage(playerid, "You have specified an invalid ATM machine."); } else { EditDynamicObjectEx(playerid, EDIT_TYPE_ATM, ATM[id][atmObject], id); SendInfoMessage(playerid, "Click on the disk icon to save changes."); } return 1; } CMD:deleteatm(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/deleteatm (machine ID)"); } else if (!IsValidATMID(id)) { return SendErrorMessage(playerid, "You have specified an invalid ATM machine."); } else { DestroyDynamic3DTextLabel(ATM[id][atmText]); DestroyDynamicObject(ATM[id][atmObject]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_atms WHERE `atmID` = %i", ATM[id][atmID]); mysql_tquery(gConnection, gExecute); ATM[id][atmExists] = 0; SendInfoMessage(playerid, "You have deleted ATM %i.", id); } return 1; } CMD:togbrokenleg(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/togbrokenleg [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You can't use this command on an NPC."); } else { Players[targetid][pBrokenLeg] = !Players[targetid][pBrokenLeg]; if (Players[targetid][pBrokenLeg]) { SendInfoMessage(playerid, "You have enabled the broken leg for %s.", ReturnNameEx(targetid, 0)); } else { SendInfoMessage(playerid, "You have disabled the broken leg for %s.", ReturnNameEx(targetid, 0)); } } return 1; } CMD:togbleeding(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/togbleeding [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You can't use this command on an NPC."); } else { Players[targetid][pBleeding] = !Players[targetid][pBleeding]; Players[targetid][pBleedingTime] = 0; if (Players[targetid][pBleeding]) { SendInfoMessage(playerid, "You have enabled bleeding for %s.", ReturnNameEx(targetid, 0)); } else { SendInfoMessage(playerid, "You have disabled bleeding for %s.", ReturnNameEx(targetid, 0)); } } return 1; } CMD:adeletedrops(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { for (new i = 0; i < MAX_DROPPED_ITEMS; i ++) { if (DropItems[i][dExists]) { DestroyDynamicObject(DropItems[i][dObject]); //DestroyDynamic3DTextLabel(DropItems[i][dText]); DropItems[i][dExists] = 0; } } mysql_tquery(gConnection, "DELETE FROM rp_items WHERE itemDropped = 1"); SendAdminMessage(COLOR_RED, "Admin: %s has deleted all dropped items.", ReturnNameEx(playerid, 0)); } return 1; } CMD:adeleteblood(playerid, params[]) { if(Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { for (new i = 0; i < MAX_BLOOD; i ++) { if (Bloods[i][blExists]) { DestroyDynamicObject(Bloods[i][blObject]); Bloods[i][blExists] = 0; Bloods[i][blObject] = INVALID_OBJECT_ID; } } SendAdminMessage(COLOR_RED, "Admin: %s has deleted all blood.", ReturnNameEx(playerid, 0)); } return 1; } CMD:adeleteshells(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { for (new i = 0; i < MAX_SHELL_CASINGS; i ++) { if (ShellCasings[i][scExists]) { DestroyDynamicObject(ShellCasings[i][scObject]); ShellCasings[i][scExists] = 0; ShellCasings[i][scObject] = INVALID_OBJECT_ID; } } mysql_tquery(gConnection, "TRUNCATE TABLE rp_casings"); SendAdminMessage(COLOR_RED, "Admin: %s has deleted all shell casings.", ReturnNameEx(playerid, 0)); } return 1; } CMD:payment(playerid, params[]) { Dialog_Show(playerid, PaymentType, DIALOG_STYLE_LIST, "{FFFFFF}Set payment type", "Cash\nBank Account", "Select", "Cancel"); return 1; } CMD:ooc(playerid, params[]) { return cmd_o(playerid, params); } CMD:o(playerid, params[]) { if (isnull(params)) { return SendSyntaxMessage(playerid, "/(o)oc (OOC chat)"); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if (!gEnabledOOC && Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "The OOC channel is currently disabled."); } else if (!Players[playerid][pShowOOC]) { return SendErrorMessage(playerid, "You have disabled the OOC chat (/settings)."); } else { foreach (new i : Player) { if (Players[i][pShowOOC]) { if (Players[playerid][pAdminDuty] > 0) { SendSplitMessage(i, COLOR_SAMP, "(( {E8AF0E}%s{AAC4E5}(%s): %s ))", ReturnNameEx(playerid,0), ReturnAdminName(playerid), params); } else { SendSplitMessage(i, COLOR_SAMP, "(( %s: %s ))", ReturnNameEx(playerid, 0), params); } } } } return 1; } CMD:admin(playerid, params[]) { return cmd_a(playerid, params); } CMD:a(playerid, params[]) { if (Players[playerid][pAdmin] < 1 && !Players[playerid][pVeteran]) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if (isnull(params)) { return SendSyntaxMessage(playerid, "/(a)dmin (admin chat)"); } else if (!Players[playerid][pShowAdmin]) { return SendErrorMessage(playerid, "You have disabled the admin chat (/settings)."); } else { /*if (Players[playerid][pAdmin] == 6) { SendAdminMessage(COLOR_RED, "** (Management) %s: %s **", ReturnNameEx(playerid), params); } else { SendAdminMessage(COLOR_GREEN, "** (%i Admin) %s: %s **", Players[playerid][pAdmin], ReturnNameEx(playerid), params); }*/ foreach (new i : Player) { if ((Players[i][pAdmin] > 0 || Players[i][pVeteran]) && Players[i][pShowAdmin]) { SendSplitMessage(i, COLOR_RED, "** %s %s (%i): %s", ReturnAdminRank(playerid), ReturnAdminName(playerid), playerid, params); } } } return 1; } CMD:fc(playerid, params[]) { if (!Players[playerid][pFactionMod]) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if (isnull(params)) { return SendSyntaxMessage(playerid, "/fc (FMT chat)"); } else { foreach (new i : Player) { if (Players[i][pFactionMod]) { SendSplitMessage(i, COLOR_FMTCHAT, "** (%s) %s: %s **", GetFactionModLevel(Players[playerid][pFactionMod]), ReturnNameEx(playerid, 0), params); } } } return 1; } CMD:leadadmin(playerid, params[]) { return cmd_la(playerid, params); } CMD:la(playerid, params[]) { if (Players[playerid][pAdmin] < 4) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if (isnull(params)) { return SendSyntaxMessage(playerid, "/la (lead chat)"); } else if (!Players[playerid][pShowAdmin]) { return SendErrorMessage(playerid, "You have disabled the admin chat (/settings)."); } else { foreach (new i : Player) { if (Players[i][pAdmin] > 4 && Players[i][pShowAdmin]) { SendSplitMessage(i, 0x7A98FFFF, "** %s %s (%i): %s **", ReturnAdminTitle(playerid), ReturnAdminName(playerid), playerid, params); } } } return 1; } CMD:togooc(playerid, params[]) { if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { gEnabledOOC = !gEnabledOOC; if (gEnabledOOC) { SendFormatMessageToAll(COLOR_SAMP, "(( %s has enabled the OOC chat. ))", ReturnNameEx(playerid, 0)); } else { SendFormatMessageToAll(COLOR_SAMP, "(( %s has disabled the OOC chat. ))", ReturnNameEx(playerid, 0)); } } return 1; } CMD:veterans(playerid, params[]) { if (Players[playerid][pAdmin] < 1 && Players[playerid][pVeteran] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { SendClientMessage(playerid, COLOR_YELLOW, "List of Veterans:"); foreach (new i : Player) { if (Players[i][pVeteran]) { SendFormatMessage(playerid, COLOR_WHITE, "* %s (ID: %i)", ReturnNameEx(i, 0), i); } } } return 1; } /*CMD:admins(playerid, params[]) { new count, adminString[1024]; adminString = "The following admins are online:\n"; foreach (new i : Player) { if (Players[i][pAdmin] > 0 && !Players[i][pHideAdmin]) { if (Players[i][pAdminDuty]) { format(adminString, sizeof(adminString), "%s\n- %s (Level: %i) {33CC33}(On Duty){AAC4E5}", adminString, ReturnAdminName(i), Players[i][pAdmin]); } else { format(adminString, sizeof(adminString), "%s\n- %s (Level: %i) {FF5030}(Off Duty){AAC4E5}", adminString, ReturnAdminName(i), Players[i][pAdmin]); } count++; } } if (!count) { SendErrorMessage(playerid, "There are currently no admins online."); } else { Dialog_Show(playerid, AdminsOnline, DIALOG_STYLE_MSGBOX, "{FFFFFF}Online Admins", adminString, "Close", ""); } return 1; }*/ CMD:admins(playerid, params[]) { SendClientMessage(playerid, COLOR_DARKGREEN, "Online Administrators:"); foreach (new i : Player) if (Players[i][pAdmin] > 0) { if (!Players[i][pHideAdmin]) { if (Players[i][pAdminDuty]) SendFormatMessage(playerid, COLOR_WHITE, "(Level %i): %s (ID: %i) Status: {5BB74C}On Duty", Players[i][pAdmin], ReturnNameEx(i, 0), ReturnAdminName(i), i); //SendFormatMessage(playerid, COLOR_WHITE, "%s %s (ID: %i) Status: {4BB74C}On Duty", ReturnAdminTitle(i), ReturnNameEx(i, 0), i); else SendFormatMessage(playerid, COLOR_WHITE, "(Level %i): %s (ID: %i) Status: {FF0000}Off Duty", Players[i][pAdmin], ReturnNameEx(i, 0), ReturnAdminName(i), i); //SendFormatMessage(playerid, COLOR_WHITE, "%s %s (ID: %i) Status: {FF0000}Off Duty", ReturnAdminTitle(i), ReturnNameEx(i, 0), i); } if (Players[i][pHideAdmin] && Players[playerid][pAdmin] >= 6) { SendFormatMessage(playerid, COLOR_WHITE, "(Level %i): %s (ID: %i) Status: {C9C9C9}Hidden", Players[i][pAdmin], ReturnNameEx(i, 0), ReturnAdminName(i), i); //SendFormatMessage(playerid, COLOR_WHITE, "%s %s (%s) (ID: %i) Status: {C9C9C9}Hidden", ReturnAdminTitle(i), ReturnNameEx(i, 0), ReturnAdminName(i), i); } } return 1; } /*CMD:admins(playerid, params[]) { SendClientMessage(playerid, COLOR_YELLOW, "List of Admins:"); foreach (new i : Player) { if (Players[i][pAdmin] > 0) { if (Players[i][pHideAdmin] && Players[playerid][pAdmin] < 6) { continue; } if (Players[i][pAdminDuty]) { SendFormatMessage(playerid, COLOR_GREEN, "* %s (ID: %i) (Level: %i) (On Duty)", ReturnAdminName(i), i, Players[i][pAdmin]); } else { SendFormatMessage(playerid, COLOR_WHITE, "* %s (ID: %i) (Level: %i) (Off Duty)", ReturnAdminName(i), i, Players[i][pAdmin]); } } } return 1; }*/ /* if (Players[playerid][pJob] != JOB_TAXI) { return SendErrorMessage(playerid, "You need to be a taxi driver to do this"); } else if (!IsPlayerInTaxi(playerid)) { return SendErrorMessage(playerid, "You need to be in a taxi."); } */ CMD:onduty(playerid, params[]) { new police = 0; new medic = 0; new taxi = 0; foreach (new i : Player) { if (GetPlayerFactionType(i) == FACTION_LEO && Players[i][pDuty]) police++; if (GetPlayerFactionType(i) == FACTION_MEDICAL && Players[i][pDuty]) medic++; if (Players[i][pJob] == JOB_TAXI && IsPlayerInTaxi(i)) taxi++; } SendFormatMessage(playerid, COLOR_WHITE, "On Duty > Police: %i, Medic: %i, Taxi: %i", police, medic, taxi); return 1; } CMD:aduty(playerid, params[]) { if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { if (Players[playerid][pMaskID] > 0) { Players[playerid][pMaskID] = 0; SendInfoMessage(playerid, "Your mask has been automatically removed."); } Players[playerid][pAdminDuty] = !Players[playerid][pAdminDuty]; UpdateNameTag(playerid, 1); if (Players[playerid][pAdminDuty]) { SendAdminMessage(COLOR_RED, "Admin: %s is now on admin duty.", ReturnNameEx(playerid, 0)); } else { SendAdminMessage(COLOR_RED, "Admin: %s is no longer on admin duty.", ReturnNameEx(playerid, 0)); } } return 1; } CMD:adminname(playerid, params[]) { if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { Dialog_Show(playerid, AdminName, DIALOG_STYLE_INPUT, "{FFFFFF}Admin Name", "Please input the admin name that you wish to use:", "Submit", "Cancel"); } return 1; } CMD:admintitle(playerid, params[]) { new targetid, title[24]; if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "us[24]", targetid, title)) { return SendSyntaxMessage(playerid, "/admintitle [playerid/name] [title]"); } else { SendAdminMessage(COLOR_RED, "Admin: %s has set %s's admin title to '%s'.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), title); strcpy(Players[targetid][pAdminTitle], title, 24); } return 1; } CMD:amotd(playerid, params[]) { new motd[128]; if (Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s[128]", motd)) { return SendSyntaxMessage(playerid, "/amotd [server motd]"); } else { strcpy(Server[Motd], motd, 128); SaveInformation(); } return 1; } CMD:ahide(playerid, params[]) { if (Players[playerid][pAdmin] < 4) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { Players[playerid][pHideAdmin] = !Players[playerid][pHideAdmin]; if (Players[playerid][pHideAdmin]) { SendInfoMessage(playerid, "You are now hidden from the admins list."); } else { SendInfoMessage(playerid, "You are no longer hidden from the admins list."); } } return 1; } CMD:setmapper(playerid, params[]) { new targetid, level; if (Players[playerid][pAdmin] < 5 && Players[playerid][pMapper] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "ui", targetid, level)) { return SendSyntaxMessage(playerid, "/setmapper [playerid/name] [1: mapper 2: head mapper]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (level < 0 || level > 2) { return SendErrorMessage(playerid, "The specified level is invalid."); } else { Players[targetid][pMapper] = level; if (level) { SendAdminMessage(COLOR_RED, "Admin: %s has set %s's mapper level to %s.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetMapperLevel(level)); SendInfoMessage(targetid, "%s has set your mapper level to %s.", ReturnNameEx(playerid, 0), GetMapperLevel(level)); } else { SendAdminMessage(COLOR_RED, "Admin: %s has removed %s's mapper status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(targetid, "%s has removed your mapper status.", ReturnNameEx(playerid, 0)); } } return 1; } CMD:setsupporter(playerid, params[]) { new targetid, level; if (Players[playerid][pAdmin] < 4 && Players[playerid][pSupporter] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "ui", targetid, level)) { return SendSyntaxMessage(playerid, "/setsupporter [playerid/name] [1: Supporter 2: Head Supporter]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (level < 0 || level > 2) { return SendErrorMessage(playerid, "The specified level is invalid."); } else { Players[targetid][pSupporter] = level; if (level) { SendAdminMessage(COLOR_RED, "Admin: %s has set %s's Supporter level to %s.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetSupporterLevel(level)); SendInfoMessage(targetid, "%s has set your Supporter level to %s.", ReturnNameEx(playerid, 0), GetSupporterLevel(level)); } else { SendAdminMessage(COLOR_RED, "Admin: %s has removed %s's Supporter status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(targetid, "%s has removed your Supporter status.", ReturnNameEx(playerid, 0)); } } return 1; } CMD:setfactionmod(playerid, params[]) { new targetid, level; if (Players[playerid][pAdmin] < 5 && Players[playerid][pFactionMod] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "ui", targetid, level)) { return SendSyntaxMessage(playerid, "/setfactionmod [playerid/name] (1: moderator, 2: head)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (level < 0 || level > 2) { return SendErrorMessage(playerid, "The specified level is invalid."); } else { Players[targetid][pFactionMod] = level; if (level) { SendAdminMessage(COLOR_RED, "Admin: %s has set %s's faction management status to %s.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetFactionModLevel(level)); SendInfoMessage(targetid, "%s has set your faction management status to %s.", ReturnNameEx(playerid, 0), GetFactionModLevel(level)); } else { SendAdminMessage(COLOR_RED, "Admin: %s has removed %s's faction management status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(targetid, "%s has removed your faction management status.", ReturnNameEx(playerid, 0)); } } return 1; } CMD:setveteran(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/setveteran [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { Players[targetid][pVeteran] = !Players[targetid][pVeteran]; if (!Players[targetid][pVeteran]) { SendAdminMessage(COLOR_RED, "Admin: %s has granted %s veteran status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(targetid, "%s has granted you veteran status.", ReturnNameEx(playerid, 0)); } else { SendAdminMessage(COLOR_RED, "Admin: %s has removed %s's veteran status.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(targetid, "%s has removed your veteran status.", ReturnNameEx(playerid, 0)); } } return 1; } CMD:helpme(playerid, params[]) { if ((gettime() - Players[playerid][pSupportTime]) < SUPPORT_WAIT_TIME) { return SendErrorMessage(playerid, "You must wait %i seconds to ask for support again.", SUPPORT_WAIT_TIME - (gettime() - Players[playerid][pSupportTime])); } else if (isnull(params)) { return SendSyntaxMessage(playerid, "/helpme (help request)"); } else if (Players[playerid][pSupporter] > 0) { return SendErrorMessage(playerid, "You can't ask for help as a Supporter."); } else { foreach (new i : Player) { if (Players[i][pSupporter] > 0 && Players[i][pSupporterDuty]) { SendFormatMessage(i, COLOR_SAMP, "(Supporter) %s (%i) has requested help: \"%s\"", ReturnNameEx(playerid, 0), playerid, params); } } Players[playerid][pSupportTime] = gettime(); strpack(gHelpRequest[playerid], params, 128); SendInfoMessage(playerid, "You have asked for help. Please wait for assistance."); } return 1; } CMD:staffchat(playerid, params[]) { return cmd_sc(playerid, params); } CMD:sc(playerid, params[]) { if(Players[playerid][pSupporter] > 0 || Players[playerid][pAdmin] > 0) { if (!Players[playerid][pShowSupporter]) { return SendErrorMessage(playerid, "You have disabled the Staff chat (/settings)."); } new string[256], input[128]; if(sscanf(params, "s[128]", input)) return SendSyntaxMessage(playerid, "/sc [message]"); if(Players[playerid][pAdmin] > 0) { format(string, sizeof string, "** (%s) %s: %s **", ReturnAdminTitle(playerid), ReturnNameEx(playerid, 0), input); } else if(Players[playerid][pSupporter] > 0) { format(string, sizeof string, "** (%s) %s: %s **", GetSupporterLevel(Players[playerid][pSupporter]), ReturnNameEx(playerid, 0), input); } foreach (new i : Player) { if(Players[i][pSupporter] > 0 || Players[i][pAdmin] > 0) { SendSplitMessage(i, COLOR_GREEN, string); } } } return 1; } CMD:mduty(playerid, params[]) { if (Players[playerid][pMapper] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { Players[playerid][pMapperDuty] = !Players[playerid][pMapperDuty]; if (Players[playerid][pMapperDuty]) { SendAdminMessage(COLOR_RED, "Admin: %s is now on mapper duty.", ReturnNameEx(playerid, 0)); } else { SendAdminMessage(COLOR_RED, "Admin: %s is no longer on mapper duty.", ReturnNameEx(playerid, 0)); } } return 1; } CMD:sduty(playerid, params[]) { if (Players[playerid][pSupporter] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { Players[playerid][pSupporterDuty] = !Players[playerid][pSupporterDuty]; UpdateNameTag(playerid, 1); if (Players[playerid][pSupporterDuty]) { SendSupporterMessage(COLOR_SAMP, "(Supporter) %s is now on Supporter duty.", ReturnNameEx(playerid, 0)); } else { SendSupporterMessage(COLOR_SAMP, "(Supporter) %s is no longer on Supporter duty.", ReturnNameEx(playerid, 0)); } } return 1; } CMD:listhelp(playerid, params[]) { if (Players[playerid][pSupporter] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------------"); foreach (new i : Player) { if (IsHelpRequestActive(i)) { SendFormatMessage(playerid, COLOR_WHITE, "** %s (ID: %i) -> \"%s\"", ReturnNameEx(i, 0), i, GetHelpRequest(i)); } } SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------------"); SendInfoMessage(playerid, "Use /answerhelp or /declinehelp."); } return 1; } CMD:ah(playerid, params[]) { return cmd_answerhelp(playerid,params); } CMD:answerhelp(playerid, params[]) { new targetid; if (Players[playerid][pSupporter] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/answerhelp [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsHelpRequestActive(targetid)) { return SendErrorMessage(playerid, "The specified target hasn't asked for help yet."); } else if (Players[playerid][pHelpRequest] != INVALID_PLAYER_ID) { return SendErrorMessage(playerid, "You have already answered a help request (/closehelp)."); } else { Statistics[playerid][sHelpRequests]++; Players[playerid][pHelpRequest] = targetid; Players[targetid][pHelpRequest] = playerid; SendSupporterMessage(COLOR_SAMP, "(Supporter) %s has answered %s's support request.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); ResetHelpRequest(targetid); SendInfoMessage(playerid, "You have answered %s's help request. Use /reply to reply and /closehelp to close it.", ReturnNameEx(targetid, 0)); SendInfoMessage(targetid, "%s has accepted your help request! Use /reply to reply and /closehelp to close it.", ReturnNameEx(playerid, 0)); } return 1; } CMD:reply(playerid, params[]) { if (Players[playerid][pHelpRequest] != INVALID_PLAYER_ID) { if (isnull(params)) { return SendSyntaxMessage(playerid, "/reply (text)"); } else if (Players[playerid][pSupporter] > 0) { SendFormatMessage(playerid, COLOR_YELLOW, "* Supporter %s: %s", ReturnNameEx(playerid, 0), params); SendFormatMessage(Players[playerid][pHelpRequest], COLOR_YELLOW, "* Supporter %s: %s", ReturnNameEx(playerid, 0), params); } else { SendFormatMessage(playerid, COLOR_YELLOW, "* Player %s: %s", ReturnNameEx(playerid, 0), params); SendFormatMessage(Players[playerid][pHelpRequest], COLOR_YELLOW, "* Player %s: %s", ReturnNameEx(playerid, 0), params); } } return 1; } CMD:dh(playerid, params[]) { return cmd_declinehelp(playerid,params); } CMD:declinehelp(playerid, params[]) { new targetid; if (Players[playerid][pSupporter] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/declinehelp [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsHelpRequestActive(targetid)) { return SendErrorMessage(playerid, "The specified target hasn't asked for help yet."); } else { SendSupporterMessage(COLOR_SAMP, "(Supporter) %s has declined %s's support request.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); SendInfoMessage(targetid, "%s has declined your help request.", ReturnNameEx(playerid, 0)); ResetHelpRequest(targetid); } return 1; } CMD:closehelp(playerid, params[]) { if (Players[playerid][pHelpRequest] != INVALID_PLAYER_ID) { SendInfoMessage(Players[playerid][pHelpRequest], "%s has closed the help request.", ReturnNameEx(playerid, 0)); SendInfoMessage(playerid, "You have closed the help request."); Players[Players[playerid][pHelpRequest]][pHelpRequest] = INVALID_PLAYER_ID; Players[playerid][pHelpRequest] = INVALID_PLAYER_ID; } return 1; } CMD:mappers(playerid, params[]) { SendClientMessage(playerid, COLOR_YELLOW, "List of Mappers:"); foreach (new i : Player) { if (Players[i][pMapper] > 0) { if (Players[i][pMapperDuty]) { SendFormatMessage(playerid, COLOR_TESTER, "* %s (ID: %i) (%s) (On Duty)", ReturnNameEx(i, 0), i, GetMapperLevel(Players[i][pMapper])); } else { SendFormatMessage(playerid, COLOR_WHITE, "* %s (ID: %i) (%s) (Off Duty)", ReturnNameEx(i, 0), i, GetMapperLevel(Players[i][pMapper])); } } } return 1; } CMD:supporters(playerid, params[]) { SendClientMessage(playerid, COLOR_YELLOW, "List of Supporters:"); foreach (new i : Player) { if (Players[i][pSupporter] > 0) { if (Players[i][pSupporterDuty]) { SendFormatMessage(playerid, COLOR_TESTER, "* %s (ID: %i) (%s) (On Duty)", ReturnNameEx(i, 0), i, GetSupporterLevel(Players[i][pSupporter])); } else { SendFormatMessage(playerid, COLOR_WHITE, "* %s (ID: %i) (%s) (Off Duty)", ReturnNameEx(i, 0), i, GetSupporterLevel(Players[i][pSupporter])); } } } return 1; } CMD:editdealercars(playerid, params[]) { new company; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", company)) { return SendSyntaxMessage(playerid, "/editdealercars (company ID)"); } else if (!IsValidCompanyID(company)) { return SendErrorMessage(playerid, "You have specified an invalid company."); } else if (Companies[company][cType] != COMPANY_DEALERSHIP) { return SendErrorMessage(playerid, "You can only add dealership cars to dealerships."); } else { ShowDealershipEditMenu(playerid, company); } return 1; } CMD:addfaction(playerid, params[]) { new type, name[32]; if (Players[playerid][pAdmin] < 5 && !Players[playerid][pFactionMod]) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "is[32]", type, name)) { SendSyntaxMessage(playerid, "/addfaction (type ID) (name)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Types: 1 - LEO, 2 - Medical, 3 - Government, 4 - Illegal, 5 = News"); return 1; } else if (!(1 <= type <= 5)) { return SendErrorMessage(playerid, "You have specified an invalid faction type."); } else { new id = GetNextFactionID(); if (id == INVALID_ID) { SendErrorMessage(playerid, "There are no available faction slots."); } else { strcpy(Factions[id][fcName], name, 32); Factions[id][fcExists] = 1; Factions[id][fcType] = type; Factions[id][fcColor] = -1; Factions[id][fcMaxRanks] = 5; Factions[id][fcLockerX] = 0.0; Factions[id][fcLockerY] = 0.0; Factions[id][fcLockerZ] = 0.0; Factions[id][fcLockerInt] = 0; Factions[id][fcLockerWorld] = 0; Factions[id][fcPickup] = INVALID_ID; Factions[id][fcText] = INVALID_3DTEXT_ID; format(gExecute, sizeof(gExecute), "INSERT INTO rp_factions (fcName, fcType) VALUES('%s', %i)", mysql_escaped(name), type); mysql_tquery(gConnection, gExecute, "OnFactionAdded", "i", id); SendAdminMessage(COLOR_RED, "Admin: %s has created faction %i (%s).", ReturnNameEx(playerid, 0), id, name); } } return 1; } CMD:editfaction(playerid, params[]) { new faction; if (Players[playerid][pAdmin] < 5 && !Players[playerid][pFactionMod]) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", faction)) { return SendSyntaxMessage(playerid, "/editfaction (faction ID)"); } else if (!IsValidFactionID(faction)) { return SendErrorMessage(playerid, "You have specified an invalid faction ID."); } else { ShowFactionEditMenu(playerid, faction); } return 1; } //ToDo: Remove if not needed. ~Nutter /*CMD:deletefaction(playerid, params[]) { new faction; if (Players[playerid][pAdmin] < 5 && !Players[playerid][pFactionMod]) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", faction)) { return SendSyntaxMessage(playerid, "/deletefaction (faction ID)"); } else if (!IsValidFactionID(faction)) { return SendErrorMessage(playerid, "You have specified an invalid faction ID."); } else { foreach (new i : Player) { if (GetPlayerFactionID(i) == faction) { SendInfoMessage(i, "You have been kicked from your faction due to deletion."); ResetFactionInfo(i); } } ClearFactionGates(faction); ClearFactionVehicles(faction); format(gExecute, sizeof(gExecute), "DELETE FROM rp_factions WHERE `fcID` = %i", Factions[faction][fcID]); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET FactionID = 0 WHERE FactionID = %i", Factions[faction][fcID]); mysql_tquery(gConnection, gExecute); mysql_format(gConnection, gExecute, sizeof(gExecute), "DELETE FROM rp_factionequipmentWHERE itemFactionID = %i", Factions[faction][fcID]); mysql_tquery(gConnection, gExecute); mysql_format(gConnection, gExecute, sizeof(gExecute), "DELETE FROM rp_factionaccessories WHERE accessoryFactionID = %i", Factions[faction][fcID]); mysql_tquery(gConnection, gExecute); ResetFaction(faction); SendAdminMessage(COLOR_RED, "Admin: %s has deleted faction %i.", ReturnNameEx(playerid, 0), faction); } return 1; }*/ CMD:factions(playerid, params[]) { gListString = "ID\tName\tOnline"; for (new i = 0; i < MAX_FACTIONS; i ++) { if (IsValidFactionID(i)) { format(gListString, sizeof(gListString), "%s\n%i\t%s\t%i players", gListString, i, Factions[i][fcName], GetFactionOnlineMembers(i)); } } if (isnull(gListString)) { SendErrorMessage(playerid, "There are currently no factions."); } else { Dialog_Show(playerid, FactionList, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Factions", gListString, "Close", ""); } return 1; } CMD:setfaction(playerid, params[]) { new targetid, faction, rank; if (Players[playerid][pAdmin] < 5 && !Players[playerid][pFactionMod]) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "iiI(-1)", targetid, faction, rank)) { SendSyntaxMessage(playerid, "/setfaction [playerid/name] (faction) [optional rank]"); SendInfoMessage(playerid, "Use -1 as the faction ID to reset the faction."); return 1; } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { if (faction != -1) { if (!IsValidFactionID(faction)) { return SendErrorMessage(playerid, "You have specified an invalid faction ID."); } else if (rank != -1 && (rank < 1 || rank > Factions[faction][fcMaxRanks])) { return SendErrorMessage(playerid, "The specified rank must range between 1 and %i.", Factions[faction][fcMaxRanks]); } else { if (rank == -1) { rank = Factions[faction][fcMaxRanks]; } SetPlayerFaction(targetid, faction, rank); if (Players[playerid][pFactionMod] > 0 && Players[playerid][pAdmin] < 5) { SendAdminMessage(COLOR_RED, "Admin: %s has set %s's faction to %s (rank %i).", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), Factions[faction][fcName], rank); } SendInfoMessage(playerid, "You have set %s's faction to: %s (rank %i).", ReturnNameEx(targetid, 0), Factions[faction][fcName], rank); } } else { SendInfoMessage(playerid, "You have reset %s's faction.", ReturnNameEx(targetid, 0)); if (Players[targetid][pFactionCallsign] != 0) { g_Callsigns[ Players[targetid][pFactionCallsign] ][e_CallsignTakenBy] = INVALID_ID; Players[targetid][pFactionCallsign] = 0; } ResetFactionInfo(targetid); } } return 1; } CMD:auncuff(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/auncuff [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!Players[targetid][pHandcuffed]) { return SendErrorMessage(playerid, "The specified target is not handcuffed."); } else { SetPlayerSpecialAction(targetid, SPECIAL_ACTION_NONE); Players[targetid][pHandcuffed] = 0; Players[targetid][pCuffedBy] = INVALID_PLAYER_ID; SendInfoMessage(targetid, "You have been uncuffed by an administrator."); SendInfoMessage(playerid, "You have removed the handcuffs from %s.", ReturnNameEx(targetid, 0)); } return 1; } CMD:tazer(playerid, params[]) { cmd_taser(playerid, params); return 1; } CMD:taser(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else { Players[playerid][pAnticheat] = 2; if (!Players[playerid][pTazer]) { Players[playerid][pTazer] = 1; SetPlayerAmmo(playerid, 23, 0); GivePlayerWeapon(playerid, 23, 1); if (IsPlayerInAnyVehicle(playerid)) { SetPlayerArmedWeapon(playerid, 0); } else { SetReloadAnimation(playerid, 23); } ShowActionBubble(playerid, "* %s reaches for his duty belt taking out a taser and charges it.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have taken out your taser."); } else { SetWeaponsForPlayer(playerid); Players[playerid][pTazer] = 0; ShowActionBubble(playerid, "* %s puts their taser on safety and holsters their taser.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have put away your taser."); } } return 1; } CMD:cuff(playerid, params[]) { new targetid; /*new item = GetInventoryItemID(playerid, "Cuffs");*/ /*if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); }*/ /*if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have a pair of cuffs."); }*/ if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/cuff [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't cuff yourself."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else if (Players[targetid][pHandcuffed]) { return SendErrorMessage(playerid, "The specified target is already cuffed."); } else { Players[targetid][pHandcuffed] = 1; Players[targetid][pCuffedBy] = playerid; SetPlayerSpecialAction(targetid, SPECIAL_ACTION_CUFFED); ShowActionBubble(playerid, "* %s reaches for their handcuffs from their duty belt and slaps them around %s's wrists.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have handcuffed %s. Use /uncuff to remove the cuffs.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "You have been handcuffed by %s.", ReturnNameEx(playerid)); } return 1; } CMD:uncuff(playerid, params[]) { new targetid; //new item = GetInventoryItemID(playerid, "Cuff Keys"); /*if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have the key."); }*/ if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/uncuff [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } /*else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't uncuff yourself."); }*/ else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else if (!Players[targetid][pHandcuffed]) { return SendErrorMessage(playerid, "The specified target is not cuffed."); } /*else if (Players[targetid][pCuffedBy] != playerid) { return SendErrorMessage(playerid, "You don't have the keys to the cuffs."); }*/ else { Players[targetid][pHandcuffed] = 0; Players[targetid][pCuffedBy] = INVALID_PLAYER_ID; //AddItemToInventory(playerid, "Cuffs"); SendInfoMessage(targetid, "%s has removed the cuffs.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have removed the cuffs from %s.", ReturnNameEx(targetid, 0)); SetPlayerSpecialAction(targetid, SPECIAL_ACTION_NONE); } return 1; } CMD:talk(playerid, params[]) { if (isnull(params)) { return SendSyntaxMessage(playerid, "/talk (talk text)"); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "%s says: %s", ReturnNameEx(playerid), params); return 1; } CMD:t(playerid, params[]) { cmd_talk(playerid, params); return 1; } CMD:whisper(playerid, params[]) { return cmd_w(playerid, params); } CMD:w(playerid, params[]) { new targetid, text[128]; if (sscanf(params, "us[128]", targetid, text)) { return SendSyntaxMessage(playerid, "/(w)hisper (player) (message)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't whisper to yourself."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return SendErrorMessage(playerid, "The specified target is not near you."); } else if (Players[targetid][pSpectate] != INVALID_PLAYER_ID) { return SendErrorMessage(playerid, "The specified target is not near you."); } else { ShowActionBubble(playerid, "* %s mutters something to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendSplitMessage(playerid, COLOR_PURPLE, "-> %s mutters something to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendFormatMessage(playerid, COLOR_YELLOW, "Whisper to %s: %s", ReturnNameEx(targetid), text); SendFormatMessage(targetid, COLOR_YELLOW, "%s whispers: %s", ReturnNameEx(playerid), text); } return 1; } /* GiveCompanyMoney(company, money) { new tax = percent(money, Server[TaxRate]); if (IsValidCompanyID(company)) { Companies[company][cSafe] += money - tax; SaveCompany(company); Server[TaxVault] += tax; SaveInformation(); } } */ CMD:charity(playerid, params[]) { new amount; new target[64]; new tax = percent(amount, Server[TaxRate]); if (sscanf(params,"i",amount)) { return SendSyntaxMessage(playerid, "/charity [amount]"); } else if (amount < 1 || amount > Players[playerid][pPocketMoney]) { return SendErrorMessage(playerid,"You don't have that much money."); } else { Players[playerid][pPocketMoney] -= amount; Server[TaxVault] += tax; SendInfoMessage(playerid,"You have paid %s to charity.", FormatNumber(amount)); format(target,sizeof(target),"Charity"); format(gExecute, sizeof(gExecute), "INSERT INTO rp_paylogs (Player, Target, Price, Date) VALUES('%s', '%s', %i, NOW())", ReturnName(playerid), target, amount ); mysql_tquery(gConnection, gExecute); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); SaveInformation(); } return 1; } CMD:servertime(playerid, params[]) { new Hour, Minute, Second; gettime(Hour, Minute, Second); new Year, Month, Day; getdate(Year, Month, Day); SendFormatMessage(playerid,COLOR_YELLOW,"SERVER TIME: %02d/%02d/%02d %02d:%02d:%02d", Day, Month, Year, Hour, Minute, Second); return 1; } CMD:pay(playerid, params[]) { new targetid, amount; if (sscanf(params, "ui", targetid, amount)) { return SendSyntaxMessage(playerid, "/pay [playerid/name] [amount]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't give money to yourself."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return SendErrorMessage(playerid, "The specified target is not near you."); } else if (amount < 1 || amount > Players[playerid][pPocketMoney]) { return SendErrorMessage(playerid, "You don't have that much money."); } else if (Players[targetid][pSpectate] != INVALID_PLAYER_ID) { return SendErrorMessage(playerid, "The specified target is not near you."); } else { Players[targetid][pPocketMoney] += amount; Players[playerid][pPocketMoney] -= amount; PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); PlayerPlaySound(targetid, 1052, 0.0, 0.0, 0.0); ShowActionBubble(playerid, "* %s takes some money from his wallet and passes it to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have given %s from your wallet to %s.", FormatNumber(amount), ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has given you %s from their wallet.", ReturnNameEx(playerid), FormatNumber(amount)); if (!strcmp(ReturnIP(playerid), ReturnIP(targetid))) { SendAdminMessage(COLOR_RED, "Admin: %s (IP: %s) has paid %s to %s (IP: %s).", ReturnNameEx(playerid, 0), ReturnIP(playerid), FormatNumber(amount), ReturnNameEx(targetid, 0), ReturnIP(targetid)); } format(gExecute, sizeof(gExecute), "INSERT INTO rp_paylogs (Player, Target, Price, Date) VALUES('%s', '%s', %i, NOW())", ReturnName(playerid), ReturnName(targetid), amount); mysql_tquery(gConnection, gExecute); if (amount > 50000) { SendAdminMessage(COLOR_RED, "Admin: %s has paid %s to %s.", ReturnNameEx(playerid, 0), FormatNumber(amount), ReturnNameEx(targetid, 0)); new notereason[128]; format(notereason, sizeof(notereason), "Paid: \"%s\"", FormatNumber(amount) ); //format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, Reason, Date, Issuer) VALUES(%i, '%s', NOW(), '%s')", Players[targetid][pID], mysql_escaped(notereason), ReturnName(playerid)); format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, PlayerName, Reason, Date, IssuerID, Issuer) VALUES(%i, '%s', '%s', NOW(), %i, '%s')", Players[targetid][pID], ReturnName(targetid), mysql_escaped(notereason), Players[playerid][pID], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); } } return 1; } CMD:givemoney(playerid, params[]) { new targetid, amount; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "ui", targetid, amount)) { return SendSyntaxMessage(playerid, "/givemoney [playerid/name] (amount)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { Players[targetid][pPocketMoney] = Players[targetid][pPocketMoney] + amount; SendAdminMessage(COLOR_RED, "Admin: %s has given %s to %s.", ReturnNameEx(playerid, 0), FormatNumber(amount), ReturnNameEx(targetid, 0)); new notereason[128]; format(notereason, sizeof(notereason), "Given Money: \"%s\"", FormatNumber(amount) ); //format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, Reason, Date, Issuer) VALUES(%i, '%s', NOW(), '%s')", Players[targetid][pID], mysql_escaped(notereason), ReturnName(playerid)); format(gExecute, sizeof(gExecute), "INSERT INTO rp_anotes (Player, PlayerName, Reason, Date, IssuerID, Issuer) VALUES(%i, '%s', '%s', NOW(), %i, '%s')", Players[targetid][pID], ReturnName(targetid), mysql_escaped(notereason), Players[playerid][pID], ReturnName(playerid)); mysql_tquery(gConnection, gExecute); } return 1; } CMD:lastactive(playerid, params[]) { new name[MAX_PLAYER_NAME]; if (sscanf(params, "s["#MAX_PLAYER_NAME"]", name)) { return SendSyntaxMessage(playerid, "/lastactive (account name)"); } else if (GetPlayerID(name) != INVALID_PLAYER_ID) { return SendInfoMessage(playerid, "%s is currently online.", name); } else { format(gExecute, sizeof(gExecute), "SELECT LoginDate FROM rp_accounts WHERE Username = '%s'", mysql_escaped(name)); mysql_tquery(gConnection, gExecute, "OnPlayerCheckActivity", "is", playerid, name); } return 1; } CMD:addarrestpoint(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (GetClosestArrestPoint(playerid) != INVALID_ID) { return SendErrorMessage(playerid, "There is another arrest point nearby."); } else { new id = GetNextArrestPointID(); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available arrest point slots."); } else { GetPlayerPos(playerid, ArrestPoints[id][apX], ArrestPoints[id][apY], ArrestPoints[id][apZ]); ArrestPoints[id][apExists] = 1; ArrestPoints[id][apInterior] = GetPlayerInterior(playerid); ArrestPoints[id][apWorld] = GetPlayerVirtualWorld(playerid); ArrestPoints[id][apPickup] = INVALID_ID; ArrestPoints[id][apText] = INVALID_3DTEXT_ID; format(gExecute, sizeof(gExecute), "INSERT INTO rp_arrestpoints (apX, apY, apZ, apInterior, apWorld) VALUES(%.4f, %.4f, %.4f, %i, %i)", ArrestPoints[id][apX], ArrestPoints[id][apY], ArrestPoints[id][apZ], ArrestPoints[id][apInterior], ArrestPoints[id][apWorld]); mysql_tquery(gConnection, gExecute, "OnArrestPointAdded", "i", id); UpdateArrestPoint(id); SendInfoMessage(playerid, "You have added arrest point %i.", id); } } return 1; } CMD:gotoarrestpoint(playerid, params[]) { new point; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", point)) { return SendSyntaxMessage(playerid, "/gotoarrestpoint (point ID)"); } else if (!IsValidArrestPointID(point)) { return SendErrorMessage(playerid, "You have specified an invalid point ID."); } else { SetPlayerPosEx(playerid, ArrestPoints[point][apX], ArrestPoints[point][apY], ArrestPoints[point][apZ], 0.0, ArrestPoints[point][apInterior], ArrestPoints[point][apWorld]); SendInfoMessage(playerid, "You have teleported to arrest point %i.", point); } return 1; } CMD:deletearrestpoint(playerid, params[]) { new point; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", point)) { return SendSyntaxMessage(playerid, "/deletearrestpoint (point ID)"); } else if (!IsValidArrestPointID(point)) { return SendErrorMessage(playerid, "You have specified an invalid point ID."); } else { DestroyDynamic3DTextLabel(ArrestPoints[point][apText]); DestroyDynamicPickup(ArrestPoints[point][apPickup]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_arrestpoints WHERE apID = %i", ArrestPoints[point][apID]); mysql_tquery(gConnection, gExecute); ArrestPoints[point][apExists] = 0; SendInfoMessage(playerid, "You have deleted arrest point %i.", point); } return 1; } CMD:radio(playerid, params[]) { return cmd_r(playerid, params); } CMD:deptradio(playerid, params[]) { return cmd_dr(playerid, params); } CMD:r(playerid, params[]) { new item = GetInventoryItemID(playerid, "Portable Radio"); if (item == INVALID_ID && GetPlayerFactionType(playerid) != FACTION_LEO) { return SendErrorMessage(playerid, "You don't have a portable radio."); } if (!Players[playerid][pChannel]) return SendErrorMessage(playerid, "Your radio does not have any frequency set."); if (isnull(params)) return SendSyntaxMessage(playerid, "/(r)adio [radio message]"); if(Players[playerid][pChannel] == 911 && GetPlayerFactionType(playerid) != FACTION_LEO) return SendErrorMessage(playerid, "This is a government only frequency."); foreach (new i : Player) { if (Players[playerid][pChannel] == 911 && GetPlayerFactionType(playerid) != FACTION_LEO) continue; if (Players[i][pChannel] == Players[playerid][pChannel]) { SendFormatMessage(i, COLOR_BLUE, "** [FREQ: %i] %s: %s **", Players[playerid][pChannel], ReturnNameEx(playerid), params); } } //SendDistanceMessage(playerid, 20.0, COLOR_WHITE, "(Radio) %s says: %s", ReturnNameEx(playerid), params); foreach (new i : Player) { if (IsPlayerInRangeOfPlayer(i, playerid, 20.0)) { if (i != playerid) { SendFormatMessage(i, COLOR_WHITE, "(Radio) %s says: %s", ReturnNameEx(playerid), params); } } } /* foreach (new i : Player) { if (IsPlayerInRangeOfPlayer(i, playerid, distance)) { SendSplitMessage(i, color, str); } } */ new cmd[128], cmdtext[128]; format(cmd,sizeof(cmd),"/r %i", Players[playerid][pChannel]); format(cmdtext,sizeof(cmdtext),"(Radio) %s says: %s", ReturnNameEx(playerid), params); AddChatLog(playerid, cmd, cmdtext); return 1; } CMD:rlow(playerid, params[]) { new item = GetInventoryItemID(playerid, "Portable Radio"); if (item == INVALID_ID) { return SendErrorMessage(playerid, "You don't have a portable radio."); } if (!Players[playerid][pChannel]) return SendErrorMessage(playerid, "Your radio does not have any frequency set."); if (isnull(params)) return SendSyntaxMessage(playerid, "/rlow [radio message]"); if(Players[playerid][pChannel] == 911 && GetPlayerFactionType(playerid) != FACTION_LEO) return SendErrorMessage(playerid, "This is a government only frequency."); foreach (new i : Player) { if (Players[playerid][pChannel] == 911 && GetPlayerFactionType(playerid) != FACTION_LEO) continue; if (Players[i][pChannel] == Players[playerid][pChannel]) { SendFormatMessage(i, COLOR_RADIO, "** [FREQ: %i] %s: %s **", Players[playerid][pChannel], ReturnNameEx(playerid), params); } } //SendDistanceMessage(playerid, 5.0, COLOR_LIGHTGREY, "(Radio) %s says [low]: %s", ReturnNameEx(playerid), params); new cmd[128], cmdtext[128]; format(cmd,sizeof(cmd),"/rlow %i", Players[playerid][pChannel]); format(cmdtext,sizeof(cmdtext),"(Radio) %s says: %s", ReturnNameEx(playerid), params); AddChatLog(playerid, cmd, cmdtext); return 1; } CMD:f(playerid, params[]) { new faction = Players[playerid][pFaction]; if (faction == INVALID_ID) { return SendErrorMessage(playerid, "You are not in a faction."); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if (isnull(params)) { return SendSyntaxMessage(playerid, "/(f)action (faction chat)"); } else { SendFactionMessage(faction, COLOR_FACTIONCHAT, "(( %s %s: %s ))", GetPlayerFactionRank(playerid), ReturnNameEx(playerid, 0), params); new text[128]; format(text,sizeof(text),"(( %s %s: %s ))", GetPlayerFactionRank(playerid), ReturnNameEx(playerid, 0), params); AddChatLog(playerid, "/f", text); foreach (new i : Player) { if (Players[i][pBigEars]) { SendSplitMessage(i, COLOR_FACTIONCHAT, "(( %s %s: %s ))", GetPlayerFactionRank(playerid), ReturnNameEx(playerid, 0), params); } } } return 1; } CMD:quitsession(playerid, params[]) { if(Players[playerid][pSession] == 1) { Players[playerid][pSession] = 0; Players[playerid][pSessionCaller] = -1; SendErrorMessage(playerid, "You have left your current session."); } else SendErrorMessage(playerid, "You are not in any session currently."); return 1; } CMD:ses(playerid, params[]) { new input[180], string[180]; if(sscanf(params, "s[180]", input)) return SendSyntaxMessage(playerid, "/ses [text]"); if(Players[playerid][pSession] == 1) { format(string, sizeof string, "{58E858}[%s] %s: %s", Factions[Players[playerid][pSessionCaller]][fcName], ReturnNameEx(playerid), input); foreach(new i : Player) { SendSplitMessage(i, -1, string); } } return 1; } CMD:removefromsession(playerid, params[]) { new targetid; if (!IsPlayerInFaction(playerid, FACTION_NEWS)) { return SendErrorMessage(playerid, "You are not part of any news agency."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/removefromsession [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if(Players[targetid][pSession] == 0) { return SendErrorMessage(playerid, "Target is not in any session."); } else if(Players[targetid][pSessionCaller] != GetPlayerFactionID(playerid)) { return SendErrorMessage(playerid, "Player is not in your news session."); } else { new factID = GetPlayerFactionID(playerid); Players[targetid][pSession] = 0; Players[targetid][pSessionCaller] = -1; new string[128]; format(string, sizeof string, "{58E858)}[%s] {FFFFFF}You have removed %s from their session.", Factions[factID][fcName],ReturnName(targetid)); SendClientMessage(playerid, -1, string); format(string, sizeof string, "{58E858)}[%s] {FFFFFF}You have been removed from the news session by %s.", Factions[factID][fcName],ReturnName(playerid)); SendClientMessage(targetid, -1, string); } return 1; } CMD:addtosession(playerid, params[]) { new targetid; if (!IsPlayerInFaction(playerid, FACTION_NEWS)) { return SendErrorMessage(playerid, "You are not part of any news agency."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/addtosession [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return SendErrorMessage(playerid, "The specified target is not near you."); } else if(Players[targetid][pSession] == 1) { return SendErrorMessage(playerid, "Target is already in a session."); } else { new factID = GetPlayerFactionID(playerid); Players[targetid][pSessionCaller] = factID; Players[targetid][pSession] = 1; new string[128]; format(string, sizeof string, "{58E858)}[%s] {FFFFFF}You have added %s to the session.", Factions[factID][fcName], ReturnName(targetid)); SendClientMessage(playerid, -1, string); format(string, sizeof string, "{58E858)}[%s] {FFFFFF}You have been added to the session by %s.", Factions[factID][fcName], ReturnName(playerid)); SendClientMessage(targetid, -1, string); } return 1; } CMD:d(playerid, params[]) { cmd_dr(playerid, params); return 1; } CMD:dr(playerid, params[]) { new faction = Players[playerid][pFaction]; if (faction == INVALID_ID) { return SendErrorMessage(playerid, "You are not in a faction."); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if (Factions[faction][fcType] == FACTION_ILLEGAL || Factions[faction][fcType] == FACTION_NEWS) { return SendErrorMessage(playerid, "You can't use this in an illegal faction."); } else if (isnull(params)) { return SendSyntaxMessage(playerid, "/(d)ept(r)adio (department radio)"); } else { SendDepartmentMessage(COLOR_ORANGE,"** [%s] %s %s: %s **",GetInitials(Factions[faction][fcName]), GetPlayerFactionRank(playerid),ReturnNameEx(playerid), params); new text[128]; format(text,sizeof(text),"** [%s] %s %s: %s **", GetInitials(Factions[faction][fcName]), GetPlayerFactionRank(playerid), ReturnNameEx(playerid), params); AddChatLog(playerid, "/dr", text); } return 1; } CMD:ofackick(playerid, params[]) { new player[24]; if (Players[playerid][pFaction] == INVALID_ID) { return SendErrorMessage(playerid, "You are not in a faction."); } else if (sscanf(params, "s["#MAX_PLAYER_NAME"]", player)) { return SendSyntaxMessage(playerid, "/ofackick (player)"); } else if (!PlayerHasLeadership(playerid)) { return SendErrorMessage(playerid, "You cannot use this command at your current rank."); } else { format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s' AND FactionID = %i AND FactionRank <= %i", mysql_escaped(player), Players[playerid][pFactionID], Players[playerid][pFactionRank]); mysql_tquery(gConnection, gExecute, "OnPlayerFactionKick", "is", playerid, player); } return 1; } /*CMD:addcallsign(playerid, params[]) { new callsign[128]; if (Players[playerid][pFaction] == INVALID_ID) { return SendErrorMessage(playerid, "You are not in a faction."); } else if (sscanf(params, "s[128]", callsign)) { return SendSyntaxMessage(playerid, "/addcallsign [callsign]"); } else if (!PlayerHasLeadership(playerid)) { return SendErrorMessage(playerid, "You cannot use this command at your current rank."); } else { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_callsigns WHERE Callsign = '%s'", mysql_escaped(callsign)); mysql_tquery(gConnection, gExecute, "OnPlayerAddCallsign", "is", playerid, callsign);*/ /*format(gExecute, sizeof(gExecute), "INSERT INTO rp_callsigns (Faction, Callsign) VALUES(%i, '%s')", Players[playerid][pFaction], mysql_escaped(callsign)); mysql_tquery(gConnection, gExecute); ListContacts(playerid); SendInfoMessage(playerid, "You have added a contact: %s (%i).", gTargetName[playerid], number);*/ /*} }*/ /*forward OnPlayerAddCallsign(playerid); public OnPlayerAddCallsign(playerid) { if (!cache_get_row_count(gConnection)) { format(gExecute, sizeof(gExecute), "INSERT INTO rp_callsigns (Faction, Callsign) VALUES(%i, '%s')", Players[playerid][pFaction], callsign); mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "Callsign '%s' added.", callsign); } else { SendErrorMessage(playerid, "This callsign already exists."); } } ListCallsigns(playerid) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_callsigns WHERE Faction = %i", Players[playerid][pFaction]); mysql_tquery(gConnection, gExecute, "OnPlayerListCallsigns", "i", playerid); } forward OnPlayerListCallsigns(playerid); public OnPlayerListCallsigns(playerid) { new rows = cache_get_row_count(gConnection), callsign[128], string[1024]; strcat(string, "Add Callsign"); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Callsign", callsign, gConnection); format(string, sizeof(string), "%s\n%s", string, callsign); gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); } Dialog_Show(playerid, Contacts, DIALOG_STYLE_LIST, "{FFFFFF}Callsigns", string, "Select", "Cancel"); }*/ /* forward OnPlayerListContacts(playerid); public OnPlayerListContacts(playerid) { new rows = cache_get_row_count(gConnection), contact[MAX_PLAYER_NAME], string[1024]; strcat(string, "Add Contact"); for (new i = 0; i < rows; i ++) { cache_get_field_content(i, "Contact", contact, gConnection); format(string, sizeof(string), "%s\n%s (%i)", string, contact, cache_get_field_content_int(i, "Number")); gListedItems[playerid][i] = cache_get_field_content_int(i, "ID"); } Dialog_Show(playerid, Contacts, DIALOG_STYLE_LIST, "{FFFFFF}My contacts", string, "Select", "Cancel"); } ListCallsigns(playerid) { if (Players[playerid][pPhone] > 0) { format(gExecute, sizeof(gExecute), "SELECT * FROM rp_callsigns WHERE Phone = %i", Players[playerid][pPhone]); mysql_tquery(gConnection, gExecute, "OnPlayerListContacts", "i", playerid); } } forward OnMdcSearchPlayer(playerid, search[]); public OnMdcSearchPlayer(playerid, search[]) { if (!cache_get_row_count(gConnection)) { Dialog_Show(playerid, MDC_LookUp, DIALOG_STYLE_INPUT, "{FFFFFF}Search Player", "That player was not found.\n\nPlease input the full name of the player:", "Submit", "Cancel"); } else { strcpy(gTargetName[playerid], search, MAX_PLAYER_NAME); Players[playerid][pSelected] = cache_get_field_content_int(0, "ID"); ShowMDCLookupPlayer(playerid); } } */ CMD:facinvite(playerid, params[]) { new targetid; if (Players[playerid][pFaction] == INVALID_ID) { return SendErrorMessage(playerid, "You are not in a faction."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/facinvite [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't invite yourself to a faction."); } else if (!PlayerHasLeadership(playerid)) { return SendErrorMessage(playerid, "You cannot use this command at your current rank."); } else if (Players[targetid][pFaction] != INVALID_ID) { return SendErrorMessage(playerid, "The specifeid target is already in a faction."); } else { Players[targetid][pFactionOffer] = playerid; SendInfoMessage(playerid, "You have invited %s to join your faction.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has invited you to join %s - use /acceptinvite to accept.", ReturnNameEx(playerid), Factions[Players[playerid][pFaction]][fcName]); } return 1; } CMD:fackick(playerid, params[]) { new targetid; if (Players[playerid][pFaction] == INVALID_ID) { return SendErrorMessage(playerid, "You are not in a faction."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/fackick [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't kick yourself from a faction."); } else if (!PlayerHasLeadership(playerid)) { return SendErrorMessage(playerid, "You cannot use this command at your current rank."); } else if (Players[targetid][pFaction] != Players[playerid][pFaction]) { return SendErrorMessage(playerid, "The specific target is not in your faction."); } else { ResetFactionInfo(targetid); SendInfoMessage(playerid, "You have kicked %s from the faction.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has kicked you from the faction.", ReturnNameEx(playerid)); } return 1; } CMD:facleadership(playerid, params[]) { new targetid; if (Players[playerid][pFaction] == INVALID_ID) { return SendErrorMessage(playerid, "You are not in a faction."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/facleadership [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't use this command on yourself."); } else if (!PlayerHasLeadership(playerid)) { return SendErrorMessage(playerid, "You cannot use this command at your current rank."); } else if (Players[targetid][pFaction] != Players[playerid][pFaction]) { return SendErrorMessage(playerid, "The specific target is not in your faction."); } else { Players[targetid][pFactionLeader] = !Players[targetid][pFactionLeader]; if (Players[targetid][pFactionLeader]) { SendInfoMessage(playerid, "You have granted %s faction leadership permissions.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has granted you faction leadership permissions.", ReturnNameEx(playerid)); } else { SendInfoMessage(playerid, "You have revoked %s's faction leadership permissions.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has revoked your faction leadership permissions.", ReturnNameEx(playerid)); } } return 1; } CMD:setrank(playerid, params[]) { new targetid; if (Players[playerid][pFaction] == INVALID_ID) { return SendErrorMessage(playerid, "You are not in a faction."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/setrank [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't change your own rank."); } else if (!PlayerHasLeadership(playerid)) { return SendErrorMessage(playerid, "You cannot use this command at your current rank."); } else if (Players[targetid][pFaction] != Players[playerid][pFaction]) { return SendErrorMessage(playerid, "The specific target is not in your faction."); } else { new rankNames[(MAX_RANK_NAME + 8) * MAX_FACTION_RANKS]; for (new i = 1; i <= Factions[Players[playerid][pFaction]][fcMaxRanks]; i ++) { format(rankNames, sizeof(rankNames), "%s\n%i) %s", rankNames, i, GetFactionRank(Players[playerid][pFaction], i)); } Dialog_Show(playerid, SetRank, DIALOG_STYLE_LIST, "{FFFFFF}Change Rank", rankNames, "Change", "Cancel"); Players[playerid][pChangeRank] = targetid; } return 1; } CMD:setbadge(playerid, params[]) { new targetid, badge; if (!IsPlayerInFaction(playerid, FACTION_LEO)) return SendErrorMessage(playerid, "You are not part of the law enforcement."); if(sscanf(params,"ui", targetid, badge)) return SendSyntaxMessage(playerid, "/setbadge [playerid/name] [badge]"); if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"The specified target doesn't exist."); if(IsPlayerNPC(targetid)) return SendErrorMessage(playerid, "You cannot use this command on a NPC."); if(!IsPlayerLoggedIn(targetid)) return SendErrorMessage(playerid,"The specified target is not logged in yet."); if(Players[targetid][pFaction] != Players[playerid][pFaction]) return SendErrorMessage(playerid,"The specific target is not in your faction."); if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] / 2) return SendErrorMessage(playerid,"You cannot use this command at your current rank."); if(GetPlayerFactionType(playerid) != FACTION_LEO) return SendErrorMessage(playerid,"Only for law enforcement."); Players[playerid][pBadge] = badge; SendInfoMessage(playerid,"You have set %s's badge to %i.",ReturnNameEx(targetid),badge); SendInfoMessage(targetid,"%s has set your badge to %i.",ReturnNameEx(playerid),badge); return 1; } CMD:asetbadge(playerid, params[]) { new targetid, badge; if(Players[playerid][pAdmin] < 1) return SendErrorMessage(playerid, "You are not privileged to use this command."); if(sscanf(params,"ui", targetid, badge)) return SendSyntaxMessage(playerid, "/setbadge [playerid/name] [badge]"); if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"The specified target doesn't exist."); if(IsPlayerNPC(targetid)) return SendErrorMessage(playerid, "You cannot use this command on a NPC."); if(!IsPlayerLoggedIn(targetid)) return SendErrorMessage(playerid,"The specified target is not logged in yet."); Players[playerid][pBadge] = badge; SendInfoMessage(playerid,"You have set %s's badge to %i.",ReturnNameEx(targetid),badge); SendInfoMessage(targetid,"%s has set your badge to %i.",ReturnNameEx(playerid),badge); return 1; } CMD:acceptfrisk(playerid, params[]) { if (IsPlayerConnected(Players[playerid][pFriskOffer])) { if (!IsPlayerInRangeOfPlayer(playerid, Players[playerid][pFriskOffer])) { return SendErrorMessage(playerid, "You need to be near the player who offered the frisk."); } else { new success = ShowItemsForPlayer(Players[playerid][pFriskOffer], playerid); ShowActionBubble(Players[playerid][pFriskOffer], "* %s frisks %s for illegal items.", ReturnNameEx(Players[playerid][pFriskOffer]), ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have accepted %s's frisk offer.", ReturnNameEx(Players[playerid][pFriskOffer])); if (!success) { SendErrorMessage(Players[playerid][pFriskOffer], "That player is not carrying any items."); } Players[playerid][pFriskOffer] = INVALID_PLAYER_ID; } } return 1; } CMD:acceptinvite(playerid, params[]) { if (IsPlayerConnected(Players[playerid][pFactionOffer])) { new faction = Players[Players[playerid][pFactionOffer]][pFaction]; if (IsValidFactionID(faction)) { SetPlayerFaction(playerid, faction, 1); SendInfoMessage(playerid, "You have accepted the faction invite! Use '/help faction' to see your new commands."); SendInfoMessage(Players[playerid][pFactionOffer], "%s has accepted the faction invite.", ReturnNameEx(playerid)); } Players[playerid][pFactionOffer] = INVALID_PLAYER_ID; } return 1; } CMD:acceptdeath(playerid, params[]) { if (Players[playerid][pDeathState] != DEATH_STATE_INJURED) { SendErrorMessage(playerid, "You are currently not injured."); } else if (Players[playerid][pDeathTime] > gettime()) { SendErrorMessage(playerid, "You must wait %i seconds before you can accept death.", (Players[playerid][pDeathTime] - gettime())); } else { SetPlayerHealth(playerid, -1); ResetPlayer(playerid); } return 1; } CMD:resign(playerid, params[]) { if (Players[playerid][pFaction] == INVALID_ID) { SendErrorMessage(playerid, "You are not part of a faction."); } else { Dialog_Show(playerid, Resign, DIALOG_STYLE_MSGBOX, "{FFFFFF}Resign from Faction", "Are you sure you want to resign from %s as a rank %i?", "Yes", "No", Factions[Players[playerid][pFaction]][fcName], Players[playerid][pFactionRank]); } return 1; } /* enum e_Callsigns { e_CallsignID, // 1-LSPD e_CallsignFaction, // Text of the callsign e_CallsignTextShort[32], // Text of the callsign e_CallsignTextFull[64] }; new g_Callsigns[][e_Callsigns] = { {0, 1, "1-A-1", "1-Adam-1"}, g_CompanyItems[i][e_ItemName] */ /*CMD:callsign(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of any law enforcement faction."); } else { if (Players[playerid][pDuty]) { ShowCallsignMenu(playerid); } else { SendErrorMessage(playerid, "You are not on duty."); } } return 1; }*/ /*CMD:mdc(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not a part of any law enforcement faction."); } else { if (Players[playerid][pDuty] && IsPoweredVehicle(GetPlayerVehicleID(playerid))) { ShowNewMDC(playerid); } else if(IsPlayerInRangeOfPoint(playerid,6.0,246.5929,121.1836,1003.2257)) { ShowNewMDC(playerid); } else { switch (GetVehicleModel(GetPlayerVehicleID(playerid))) { case 427, 596, 597, 598, 490, 599: { ShowNewMDC(playerid); } default: { SendErrorMessage(playerid, "You are not in any vehicle with a MDC"); } } } } return 1; }*/ CMD:mdc(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else { if (Players[playerid][pDuty] && IsPoweredVehicle(GetPlayerVehicleID(playerid))) { ShowMDCMainMenu(playerid); ShowActionBubble(playerid, "* %s logs onto a police computer.", ReturnNameEx(playerid)); } else if(IsPlayerInRangeOfPoint(playerid,6.0,246.5929,121.1836,1003.2257)) { ShowMDCMainMenu(playerid); ShowActionBubble(playerid, "* %s logs onto a police computer.", ReturnNameEx(playerid)); } else { switch (GetVehicleModel(GetPlayerVehicleID(playerid))) { case 427, 596, 597, 598, 490, 599: { ShowMDCMainMenu(playerid); ShowActionBubble(playerid, "* %s logs onto a police computer.", ReturnNameEx(playerid)); } default: { SendErrorMessage(playerid, "You are not in any vehicle with a MDC."); } } } } return 1; } CMD:apb(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else if (GetNextApbID() == INVALID_ID) { return SendErrorMessage(playerid, "The APB list is full right now!"); } else if (isnull(params)) { return SendSyntaxMessage(playerid, "/apb [description]"); } else { AddApbToQueue(playerid, params); SendInfoMessage(playerid, "APB added."); } return 1; } CMD:apblist(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else { new success = ListApbs(playerid); if (!success) { return SendErrorMessage(playerid,"There are no APBs active."); } } return 1; } CMD:handsup(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "SHOP", "SHP_Handsup_SCR", 4.1, 0, 0, 0, 1, 0, 1); } return 1; } CMD:piss(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 3)) { return SendSyntaxMessage(playerid, "/piss (1 to 3)"); } else { switch (type) { case 1: SetPlayerSpecialAction(playerid, 68); case 2: PlayAnimation(playerid, "PAULNMAC", "Piss_in", 4.1, 0, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "PAULNMAC", "Piss_out", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:bar(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 7)) { return SendSyntaxMessage(playerid, "/bar (1 to 7)"); } else { switch (type) { case 1: PlayAnimation(playerid, "BAR", "Barcustom_get", 4.1, 0, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "BAR", "Barcustom_order", 4.1, 0, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "BAR", "Barserve_bottle", 4.1, 0, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "BAR", "Barserve_give", 4.1, 0, 0, 0, 0, 0, 1); case 5: PlayAnimation(playerid, "BAR", "Barserve_glass", 4.1, 0, 0, 0, 0, 0, 1); case 6: PlayAnimation(playerid, "BAR", "Barserve_in", 4.1, 0, 0, 0, 0, 0, 1); case 7: PlayAnimation(playerid, "BAR", "Barserve_loop", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:kiss(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 6)) { return SendSyntaxMessage(playerid, "/kiss (1 to 6)"); } else { switch (type) { case 1: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_01", 4.1, 0, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_03", 4.1, 0, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "KISSING", "Playa_Kiss_01", 4.1, 0, 0, 0, 0, 0, 1); case 5: PlayAnimation(playerid, "KISSING", "Playa_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1); case 6: PlayAnimation(playerid, "KISSING", "Playa_Kiss_03", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:wash(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:fsit(playerid, params[]) { if(!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "BEACH", "ParkSit_M_loop", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:lay(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 5)) { return SendSyntaxMessage(playerid, "/lay [1-4]"); } else { switch (type) { case 1: PlayAnimation(playerid, "BEACH", "bather", 4.1, 1, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "BEACH", "Lay_Bac_Loop", 4.1, 1, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "BEACH", "ParkSit_W_loop", 4.1, 1, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "BEACH", "SitnWait_loop_W", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:blowjob(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 12)) { return SendSyntaxMessage(playerid, "/blowjob (1 to 12)"); } else { switch (type) { case 1: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_START_W", 4.1, 0, 0, 0, 1, 0, 1); case 2: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_LOOP_W", 4.1, 1, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_END_W", 4.1, 0, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_START_P", 4.1, 0, 0, 0, 1, 0, 1); case 5: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_LOOP_P", 4.1, 1, 0, 0, 0, 0, 1); case 6: PlayAnimation(playerid, "BLOWJOBZ", "BJ_COUCH_END_P", 4.1, 0, 0, 0, 0, 0, 1); case 7: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_START_W", 4.1, 0, 0, 0, 1, 0, 1); case 8: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_LOOP_W", 4.1, 1, 0, 0, 0, 0, 1); case 9: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_END_W", 4.1, 0, 0, 0, 0, 0, 1); case 10: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_START_P", 4.1, 0, 0, 0, 1, 0, 1); case 11: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_LOOP_P", 4.1, 1, 0, 0, 0, 0, 1); case 12: PlayAnimation(playerid, "BLOWJOBZ", "BJ_STAND_END_P", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:bomb(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "BOMBER", "BOM_Plant_Loop", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:basketball(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 8)) { return SendSyntaxMessage(playerid, "/basketball (1 to 8)"); } else { switch (type) { case 1: PlayAnimation(playerid, "BSKTBALL", "BBALL_def_jump_shot", 4.1, 0, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "BSKTBALL", "BBALL_def_loop", 4.1, 1, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "BSKTBALL", "BBALL_Dnk", 4.1, 0, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "BSKTBALL", "BBALL_Jump_Shot", 4.1, 0, 0, 0, 0, 0, 1); case 5: PlayAnimation(playerid, "BSKTBALL", "BBALL_pickup", 4.1, 0, 0, 0, 0, 0, 1); case 6: PlayAnimation(playerid, "BSKTBALL", "BBALL_idleloop", 4.1, 1, 0, 0, 0, 0, 1); case 7: PlayAnimation(playerid, "BSKTBALL", "BBALL_react_miss", 4.1, 0, 0, 0, 0, 0, 1); case 8: PlayAnimation(playerid, "BSKTBALL", "BBALL_react_score", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:camera(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 6)) { return SendSyntaxMessage(playerid, "/camera (1 to 6)"); } else { switch (type) { case 1: PlayAnimation(playerid, "CAMERA", "camstnd_to_camcrch", 4.1, 0, 0, 0, 1, 0, 1); case 2: PlayAnimation(playerid, "CAMERA", "camcrch_to_camstnd", 4.1, 0, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "CAMERA", "camstnd_lkabt", 4.1, 0, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "CAMERA", "camcrch_cmon", 4.1, 0, 0, 0, 0, 0, 1); case 5: PlayAnimation(playerid, "CAMERA", "piccrch_take", 4.1, 1, 0, 0, 0, 0, 1); case 6: PlayAnimation(playerid, "CAMERA", "picstnd_take", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:come(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "CAMERA", "camstnd_cmon", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:carry(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 2)) { return SendSyntaxMessage(playerid, "/carry (1 to 2)"); } else { switch (type) { case 1: PlayAnimation(playerid, "CARRY", "liftup", 4.1, 0, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:think(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "COP_AMBIENT", "Coplook_think", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:crack(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 4)) { return SendSyntaxMessage(playerid, "/crack (1 to 4)"); } else { switch (type) { case 1: PlayAnimation(playerid, "CRACK", "crckdeth1", 4.1, 0, 0, 0, 1, 0, 1); case 2: PlayAnimation(playerid, "CRACK", "crckdeth2", 4.1, 1, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "CRACK", "crckdeth3", 4.1, 0, 0, 0, 1, 0, 1); case 4: PlayAnimation(playerid, "CRACK", "crckdeth4", 4.1, 0, 0, 0, 1, 0, 1); } } return 1; } CMD:checktime(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { ApplyAnimation(playerid, "COP_AMBIENT", "Coplook_watch", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:dance(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 21)) { return SendSyntaxMessage(playerid, "/dance (1 to 21)"); } else { switch (type) { case 1: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE1); case 2: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE2); case 3: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE3); case 4: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE4); case 5: PlayAnimation(playerid, "DANCING", "DAN_Down_A", 4.1, 1, 0, 0, 0, 0, 1); case 6: PlayAnimation(playerid, "DANCING", "DAN_Left_A", 4.1, 1, 0, 0, 0, 0, 1); case 7: PlayAnimation(playerid, "DANCING", "DAN_Loop_A", 4.1, 1, 0, 0, 0, 0, 1); case 8: PlayAnimation(playerid, "DANCING", "DAN_Right_A", 4.1, 1, 0, 0, 0, 0, 1); case 9: PlayAnimation(playerid, "DANCING", "DAN_Up_A", 4.1, 1, 0, 0, 0, 0, 1); case 10: PlayAnimation(playerid, "DANCING", "dnce_M_a", 4.1, 1, 0, 0, 0, 0, 1); case 11: PlayAnimation(playerid, "DANCING", "dnce_M_b", 4.1, 1, 0, 0, 0, 0, 1); case 12: PlayAnimation(playerid, "DANCING", "dnce_M_c", 4.1, 1, 0, 0, 0, 0, 1); case 13: PlayAnimation(playerid, "DANCING", "dnce_M_d", 4.1, 1, 0, 0, 0, 0, 1); case 14: PlayAnimation(playerid, "DANCING", "dnce_M_e", 4.1, 1, 0, 0, 0, 0, 1); case 15: PlayAnimation(playerid, "STRIP", "STRIP_A", 4.1, 1, 0, 0, 0, 0, 1); case 16: PlayAnimation(playerid, "STRIP", "STRIP_B", 4.1, 1, 0, 0, 0, 0, 1); case 17: PlayAnimation(playerid, "STRIP", "STRIP_C", 4.1, 1, 0, 0, 0, 0, 1); case 18: PlayAnimation(playerid, "STRIP", "STRIP_D", 4.1, 1, 0, 0, 0, 0, 1); case 19: PlayAnimation(playerid, "STRIP", "STRIP_E", 4.1, 1, 0, 0, 0, 0, 1); case 20: PlayAnimation(playerid, "STRIP", "STRIP_F", 4.1, 1, 0, 0, 0, 0, 1); case 21: PlayAnimation(playerid, "STRIP", "STRIP_G", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:deal(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 3)) { return SendSyntaxMessage(playerid, "/deal (1 to 3)"); } else { switch (type) { case 1: PlayAnimation(playerid, "DEALER", "DEALER_DEAL", 4.1, 0, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "DEALER", "DRUGS_BUY", 4.1, 0, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "DEALER", "shop_pay", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:eat(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 3)) { return SendSyntaxMessage(playerid, "/eat (1 to 3)"); } else { switch (type) { case 1: PlayAnimation(playerid, "FOOD", "EAT_Burger", 4.1, 0, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "FOOD", "EAT_Chicken", 4.1, 0, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "FOOD", "EAT_Pizza", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:lean(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 3)) { return SendSyntaxMessage(playerid, "/lean (1 to 3)"); } else { switch (type) { case 1: PlayAnimation(playerid, "GANGS", "leanIDLE", 4.1, 1, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "MISC", "Plyrlean_loop", 4.1, 1, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "SMOKING", "M_smklean_loop", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:facepalm(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "MISC", "plyr_shkhead", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:chat(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 8)) { return SendSyntaxMessage(playerid, "/chat (1 to 8)"); } else { switch (type) { case 1: PlayAnimation(playerid, "GANGS", "prtial_gngtlkA", 4.1, 1, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "GANGS", "prtial_gngtlkB", 4.1, 1, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "GANGS", "prtial_gngtlkC", 4.1, 1, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "GANGS", "prtial_gngtlkD", 4.1, 1, 0, 0, 0, 0, 1); case 5: PlayAnimation(playerid, "GANGS", "prtial_gngtlkE", 4.1, 1, 0, 0, 0, 0, 1); case 6: PlayAnimation(playerid, "GANGS", "prtial_gngtlkF", 4.1, 1, 0, 0, 0, 0, 1); case 7: PlayAnimation(playerid, "GANGS", "prtial_gngtlkG", 4.1, 1, 0, 0, 0, 0, 1); case 8: PlayAnimation(playerid, "GANGS", "prtial_gngtlkH", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:gsign(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 12)) { return SendSyntaxMessage(playerid, "/gsign (1 to 12)"); } else { switch (type) { case 1: PlayAnimation(playerid, "GHANDS", "gsign1", 4.1, 0, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "GHANDS", "gsign1LH", 4.1, 0, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "GHANDS", "gsign2", 4.1, 0, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "GHANDS", "gsign2LH", 4.1, 0, 0, 0, 0, 0, 1); case 5: PlayAnimation(playerid, "GHANDS", "gsign3", 4.1, 0, 0, 0, 0, 0, 1); case 6: PlayAnimation(playerid, "GHANDS", "gsign3LH", 4.1, 0, 0, 0, 0, 0, 1); case 7: PlayAnimation(playerid, "GHANDS", "gsign4", 4.1, 0, 0, 0, 0, 0, 1); case 8: PlayAnimation(playerid, "GHANDS", "gsign4LH", 4.1, 0, 0, 0, 0, 0, 1); case 9: PlayAnimation(playerid, "GHANDS", "gsign5", 4.1, 0, 0, 0, 0, 0, 1); case 10: PlayAnimation(playerid, "GHANDS", "gsign5LH", 4.1, 0, 0, 0, 0, 0, 1); case 11: PlayAnimation(playerid, "GANGS", "Invite_No", 4.1, 0, 0, 0, 0, 0, 1); case 12: PlayAnimation(playerid, "GANGS", "Invite_Yes", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:spraycan(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "GRAFFITI", "spraycan_fire", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:throw(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "GRENADE", "WEAPON_throw", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:boxing(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "GYMNASIUM", "GYMshadowbox", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:cpr(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "MEDIC", "CPR", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:swipe(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "HEIST9", "Use_SwipeCard", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:sit(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 8)) { return SendSyntaxMessage(playerid, "/sit (1 to 8)"); } else { switch (type) { case 1: PlayAnimation(playerid, "MISC", "SEAT_LR", 4.1, 1, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "MISC", "SEAT_talk_01", 4.1, 1, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "MISC", "SEAT_talk_02", 4.1, 1, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "CRIB", "PED_Console_Loop", 4.1, 1, 0, 0, 0, 0, 1); case 5: PlayAnimation(playerid, "INT_HOUSE", "LOU_In", 4.1, 0, 0, 0, 1, 0, 1); case 6: PlayAnimation(playerid, "PED", "SEAT_down", 4.1, 0, 0, 0, 1, 0, 1); case 7: PlayAnimation(playerid, "FOOD", "FF_Sit_Eat3", 4.1, 1, 0, 0, 0, 0, 1); case 8: PlayAnimation(playerid, "FOOD", "FF_Sit_Eat2", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:point(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "ON_LOOKERS", "point_loop", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:taichi(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "PARK", "Tai_Chi_Loop", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:wank(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "PAULNMAC", "wank_loop", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:cover(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "PED", "cower", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:fucku(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "PED", "fucku", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:getup(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 2)) { return SendSyntaxMessage(playerid, "/getup (1 to 2)"); } else { switch (type) { case 1: PlayAnimation(playerid, "PED", "getup", 4.1, 0, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "PED", "getup_front", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:tired(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 2)) { return SendSyntaxMessage(playerid, "/tired (1 to 2)"); } else { switch (type) { case 1: PlayAnimation(playerid, "FAT", "IDLE_tired", 4.1, 1, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "PED", "IDLE_tired", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:doorkick(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "POLICE", "Door_Kick", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:laugh(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "RAPPING", "Laugh_01", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:cry(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "GRAVEYARD", "mrnF_loop", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:what(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "RIOT", "RIOT_ANGRY", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:sa(playerid, params[]) { return cmd_stopanim(playerid,params); } CMD:stopanim(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { //ClearAnimations(playerid, 1); ApplyAnimation(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0); } return 1; } CMD:rap(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 3)) { return SendSyntaxMessage(playerid, "/rap (1 to 3)"); } else { switch (type) { case 1: PlayAnimation(playerid, "RAPPING", "RAP_A_Loop", 4.1, 1, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "RAPPING", "RAP_B_Loop", 4.1, 1, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "RAPPING", "RAP_C_Loop", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:drunk(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "PED", "WALK_drunk", 4.1, 1, 1, 1, 1, 1, 1); } return 1; } CMD:walk(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } switch (Players[playerid][pWalkStyle]) { case 1: PlayAnimation(playerid, "PED", "WALK_civi", 4.1, 1, 1, 1, 1, 1, 1); case 2: PlayAnimation(playerid, "PED", "WALK_armed", 4.1, 1, 1, 1, 1, 1, 1); case 3: PlayAnimation(playerid, "PED", "WALK_fat", 4.1, 1, 1, 1, 1, 1, 1); case 4: PlayAnimation(playerid, "PED", "WALK_fatold", 4.1, 1, 1, 1, 1, 1, 1); case 5: PlayAnimation(playerid, "FAT", "FatWalk", 4.1, 1, 1, 1, 1, 1, 1); case 6: PlayAnimation(playerid, "MUSCULAR", "MuscleWalk", 4.1, 1, 1, 1, 1, 1, 1); case 7: PlayAnimation(playerid, "PED", "WALK_gang1", 4.1, 1, 1, 1, 1, 1, 1); case 8: PlayAnimation(playerid, "PED", "WALK_gang2", 4.1, 1, 1, 1, 1, 1, 1); case 9: PlayAnimation(playerid, "PED", "WALK_player", 4.1, 1, 1, 1, 1, 1, 1); case 10: PlayAnimation(playerid, "PED", "WALK_old", 4.1, 1, 1, 1, 1, 1, 1); case 11: PlayAnimation(playerid, "PED", "WALK_wuzi", 4.1, 1, 1, 1, 1, 1, 1); case 12: PlayAnimation(playerid, "PED", "WOMAN_walkbusy", 4.1, 1, 1, 1, 1, 1, 1); case 13: PlayAnimation(playerid, "PED", "WOMAN_walkfatold", 4.1, 1, 1, 1, 1, 1, 1); case 14: PlayAnimation(playerid, "PED", "WOMAN_walknorm", 4.1, 1, 1, 1, 1, 1, 1); case 15: PlayAnimation(playerid, "PED", "WOMAN_walksexy", 4.1, 1, 1, 1, 1, 1, 1); case 16: PlayAnimation(playerid, "PED", "WOMAN_walkshop", 4.1, 1, 1, 1, 1, 1, 1); default: PlayAnimation(playerid, "PED", "WALK_civi", 4.1, 1, 1, 1, 1, 1, 1); } return 1; } CMD:riot(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 4)) { return SendSyntaxMessage(playerid, "/riot (1 to 4)"); } else { switch (type) { case 1: PlayAnimation(playerid, "RIOT", "RIOT_ANGRY_B", 4.1, 1, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "RIOT", "RIOT_CHANT", 4.1, 1, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "RIOT", "RIOT_PUNCHES", 4.1, 1, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "RIOT", "RIOT_shout", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:injured(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 2)) { return SendSyntaxMessage(playerid, "/injured (1 to 2)"); } else { switch (type) { case 1: PlayAnimation(playerid, "SWAT", "gnstwall_injurd", 4.1, 1, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "SWEET", "Sweet_injuredloop", 4.1, 1, 0, 0, 0, 0, 1); } } return 1; } CMD:fall(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 5)) { return SendSyntaxMessage(playerid, "/fall (1 to 5)"); } else { switch (type) { case 1: PlayAnimation(playerid, "PED", "KO_shot_face", 4.1, 0, 1, 1, 1, 0, 1); case 2: PlayAnimation(playerid, "PED", "KO_shot_stom", 4.1, 0, 1, 1, 1, 0, 1); case 3: PlayAnimation(playerid, "PED", "KO_shot_front", 4.1, 0, 1, 1, 1, 0, 1); case 4: PlayAnimation(playerid, "PED", "KO_skid_back", 4.1, 0, 0, 0, 1, 0, 1); case 5: PlayAnimation(playerid, "PED", "KO_skid_front", 4.1, 0, 0, 0, 1, 0, 1); } } return 1; } CMD:crossarms(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 4)) { return SendSyntaxMessage(playerid, "/crossarms (1 to 4)"); } else { switch (type) { case 1: PlayAnimation(playerid, "COP_AMBIENT", "Coplook_loop", 4.1, 0, 1, 1, 1, 0, 1); case 2: PlayAnimation(playerid, "GRAVEYARD", "prst_loopa", 4.1, 1, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "GRAVEYARD", "mrnM_loop", 4.1, 1, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "DEALER", "DEALER_IDLE", 4.1, 0, 1, 1, 1, 0, 1); } } return 1; } CMD:reload(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 5)) { return SendSyntaxMessage(playerid, "/reload (1 to 5)"); } else { switch (type) { case 1: PlayAnimation(playerid, "BUDDY", "buddy_reload", 4.1, 0, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "COLT45", "colt45_reload", 4.1, 0, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "COLT45", "sawnoff_reload", 4.1, 0, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "PYTHON", "python_reload", 4.1, 0, 0, 0, 0, 0, 1); case 5: PlayAnimation(playerid, "RIFLE", "RIFLE_load", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:aim(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 2)) { return SendSyntaxMessage(playerid, "/aim (1 to 2)"); } else { switch (type) { case 1: PlayAnimation(playerid, "PED", "ARRESTgun", 4.1, 0, 0, 0, 1, 0, 1); case 2: PlayAnimation(playerid, "SHOP", "ROB_Loop", 4.1, 0, 0, 0, 1, 0, 1); } } return 1; } CMD:salute(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "ON_LOOKERS", "Pointup_loop", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:scratch(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "MISC", "Scratchballs_01", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:dodge(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "DODGE", "Crush_Jump", 4.1, 0, 1, 1, 1, 0, 1); } return 1; } CMD:showoff(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "Freeweights", "gym_free_celebrate", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:hitch(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "MISC", "Hiker_Pose", 4.1, 1, 0, 0, 0, 0, 1); } return 1; } CMD:puke(playerid, params[]) { if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else { PlayAnimation(playerid, "FOOD", "Eat_Vomit_P", 4.1, 0, 0, 0, 0, 0, 1); } return 1; } CMD:wave(playerid, params[]) { new type; if (!IsAnimationPermitted(playerid)) { return SendErrorMessage(playerid, "You cannot perform animations right now."); } else if (sscanf(params, "i", type) || !(1 <= type <= 3)) { return SendSyntaxMessage(playerid, "/wave (1 to 3)"); } else { switch (type) { case 1: PlayAnimation(playerid, "ON_LOOKERS", "wave_loop", 4.1, 1, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "KISSING", "gfwave2", 4.1, 0, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "PED", "endchat_03", 4.1, 0, 0, 0, 0, 0, 1); } } return 1; } CMD:addteleport(playerid, params[]) { new name[32]; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s[32]", name)) { return SendSyntaxMessage(playerid, "/addteleport (name)"); } else { new id = GetNextTeleportID(); if (id == INVALID_ID) { SendErrorMessage(playerid, "There are no available teleport slots."); } else { Teleports[id][tpExists] = 1; Teleports[id][tpInterior] = GetPlayerInterior(playerid); Teleports[id][tpWorld] = GetPlayerVirtualWorld(playerid); GetPlayerPos(playerid, Teleports[id][tpX], Teleports[id][tpY], Teleports[id][tpZ]); GetPlayerFacingAngle(playerid, Teleports[id][tpA]); SendInfoMessage(playerid, "You have created teleport '%s' (/deleteteleport).", name); strcpy(Teleports[id][tpName], name, 32); format(gExecute, sizeof(gExecute), "INSERT INTO rp_teleports (tpName, tpX, tpY, tpZ, tpA, tpInterior, tpWorld) VALUES('%s', %.4f, %.4f, %.4f, %.4f, %i, %i)", mysql_escaped(name), Teleports[id][tpX], Teleports[id][tpY], Teleports[id][tpZ], Teleports[id][tpA], Teleports[id][tpInterior], Teleports[id][tpWorld]); mysql_tquery(gConnection, gExecute, "OnTeleportAdded", "i", id); } } return 1; } CMD:deleteteleport(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { new success = ShowTeleportList(playerid, .delete = true); if (!success) { SendErrorMessage(playerid, "There are no teleports to list."); } } return 1; } CMD:changepass(playerid, params[]) { Dialog_Show(playerid, ChangePassword, DIALOG_STYLE_INPUT, "{FFFFFF}Change Password", "Please input your current account password:", "Submit", "Cancel"); return 1; } CMD:addlabel(playerid, params[]) { new Float:distance, color, text[144]; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "fhs[144]", distance, color, text)) { SendSyntaxMessage(playerid, "/addlabel (distance) (hex color) (text)"); return SendInfoMessage(playerid, "Note: Use ~n~ in the text string to create a new line."); } else if (distance < 1.0 || distance > 90.0) { return SendErrorMessage(playerid, "The distance must range between 1.0 and 90.0."); } else { new id = GetNextLabelID(); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available label slots."); } else { strreplace(text, "~n~", "\n"); strreplace(text, "~N~", "\n"); strcpy(Labels[id][lText], text, 144); GetPlayerPos(playerid, Labels[id][lX], Labels[id][lY], Labels[id][lZ]); Labels[id][lExists] = 1; Labels[id][lColor] = color; Labels[id][lDistance] = distance; Labels[id][lText3D] = INVALID_3DTEXT_ID; Labels[id][lInterior] = GetPlayerInterior(playerid); Labels[id][lWorld] = GetPlayerVirtualWorld(playerid); format(gExecute, sizeof(gExecute), "INSERT INTO rp_dynamiclabels (lColor) VALUES(%i)", color); mysql_tquery(gConnection, gExecute, "OnLabelAdded", "i", id); SendInfoMessage(playerid, "You have created label %i (/editlabel).", id); } } return 1; } CMD:editlabel(playerid, params[]) { new label, text[144]; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "is[144]", label, text)) { return SendSyntaxMessage(playerid, "/editlabel (label ID) (text)"); } else if (!IsValidLabelID(label)) { return SendErrorMessage(playerid, "You have specified an invalid label ID."); } else { strreplace(text, "~n~", "\n"); strreplace(text, "~N~", "\n"); strcpy(Labels[label][lText], text, 144); UpdateDynamic3DTextLabelText(Labels[label][lText3D], Labels[label][lColor], Labels[label][lText]); SaveLabel(label); SendInfoMessage(playerid, "You have changed the text for label %i.", label); } return 1; } CMD:gotolabel(playerid, params[]) { new label; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", label)) { return SendSyntaxMessage(playerid, "/gotolabel (label ID)"); } else if (!IsValidLabelID(label)) { return SendErrorMessage(playerid, "You have specified an invalid label ID."); } else { SetPlayerPosEx(playerid, Labels[label][lX], Labels[label][lY], Labels[label][lZ], 0.0, Labels[label][lInterior], Labels[label][lWorld]); SendInfoMessage(playerid, "You have teleported to label %i.", label); } return 1; } CMD:deletelabel(playerid, params[]) { new label; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", label)) { return SendSyntaxMessage(playerid, "/deletelabel (label ID)"); } else if (!IsValidLabelID(label)) { return SendErrorMessage(playerid, "You have specified an invalid label ID."); } else { DestroyDynamic3DTextLabel(Labels[label][lText3D]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_dynamiclabels WHERE lID = %i", Labels[label][lID]); mysql_tquery(gConnection, gExecute); Labels[label][lExists] = 0; SendInfoMessage(playerid, "You have deleted label %i.", label); } return 1; } CMD:checklabel(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { new label = GetClosestLabel(playerid); if (label == INVALID_ID) { SendErrorMessage(playerid, "There is no label nearby."); } else { SendInfoMessage(playerid, "The label ID is: %i. Use /deletelabel to delete the label.", label); } } return 1; } CMD:addgate(playerid, params[]) { new modelid; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", modelid)) { return SendSyntaxMessage(playerid, "/addgate (model ID)"); } else if (!IsValidModelID(modelid)) { return SendErrorMessage(playerid, "You have specified an invalid model ID."); } else if (modelid == 17951 || modelid == 3294) { return SendErrorMessage(playerid, "That model can't be used as it causes problems in SA-MP."); } else { new id = GetNextGateID(); if (id == INVALID_ID) { SendErrorMessage(playerid, "There are no available gate slots."); } else { GetPlayerPos(playerid, Gates[id][gSpawn][0], Gates[id][gSpawn][1], Gates[id][gSpawn][2]); GetPlayerFacingAngle(playerid, Gates[id][gSpawn][5]); Gates[id][gExists] = 1; Gates[id][gModel] = modelid; Gates[id][gPassword] = 0; Gates[id][gSpeed] = 2.0; Gates[id][gRadius] = 5.0; Gates[id][gFactionID] = 0; Gates[id][gLinkID] = 0; Gates[id][gSpawn][0] += 3.0 * floatsin(-Gates[id][gSpawn][5], degrees); Gates[id][gSpawn][1] += 3.0 * floatcos(-Gates[id][gSpawn][5], degrees); Gates[id][gMove][0] = Gates[id][gSpawn][0]; Gates[id][gMove][1] = Gates[id][gSpawn][1]; Gates[id][gMove][2] = Gates[id][gSpawn][2]; Gates[id][gMove][3] = -1000.0; Gates[id][gMove][4] = -1000.0; Gates[id][gMove][5] = -1000.0; Gates[id][gInterior] = GetPlayerInterior(playerid); Gates[id][gWorld] = GetPlayerVirtualWorld(playerid); Gates[id][gObject] = INVALID_OBJECT_ID; Gates[id][gOpened] = 0; UpdateGate(id); format(gExecute, sizeof(gExecute), "INSERT INTO rp_gates (gModel) VALUES(%i)", modelid); mysql_tquery(gConnection, gExecute, "OnGateAdded", "i", id); SendInfoMessage(playerid, "You have created gate %i (/editgate).", id); EditDynamicObjectEx(playerid, EDIT_TYPE_GATE, Gates[id][gObject], id); } } return 1; } CMD:gotogate(playerid, params[]) { new gate; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", gate)) { return SendSyntaxMessage(playerid, "/gotogate (gate ID)"); } else if (!IsValidGateID(gate)) { return SendErrorMessage(playerid, "You have specified an invalid gate ID."); } else { SetPlayerPosEx(playerid, Gates[gate][gSpawn][0], Gates[gate][gSpawn][1], Gates[gate][gSpawn][2], 0.0, Gates[gate][gInterior], Gates[gate][gWorld]); SendInfoMessage(playerid, "You have teleported to gate %i.", gate); } return 1; } CMD:deletegate(playerid, params[]) { new gate; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", gate)) { return SendSyntaxMessage(playerid, "/deletegate (gate ID)"); } else if (!IsValidGateID(gate)) { return SendErrorMessage(playerid, "You have specified an invalid gate ID."); } else { DestroyDynamicObject(Gates[gate][gObject]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_gates WHERE gID = %i", Gates[gate][gID]); mysql_tquery(gConnection, gExecute); Gates[gate][gExists] = 0; SendInfoMessage(playerid, "You have deleted gate %i.", gate); } return 1; } CMD:checkgate(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { new gate = GetClosestGate(playerid); if (gate == INVALID_ID) { SendErrorMessage(playerid, "There is no gate nearby."); } else { SendInfoMessage(playerid, "The gate ID is: %i. Use /editgate to edit the gate.", gate); } } return 1; } CMD:editgate(playerid, params[]) { new gate; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", gate)) { return SendSyntaxMessage(playerid, "/editgate (gate ID)"); } else if (!IsValidGateID(gate)) { return SendErrorMessage(playerid, "You have specified an invalid gate ID."); } else { ShowGateEditMenu(playerid, gate); } return 1; } CMD:gate(playerid, params[]) return cmd_remote(playerid, params); CMD:open(playerid, params[]) return cmd_remote(playerid, params); //CMD:door(playerid, params[]) return cmd_remote(playerid, params); CMD:opengate(playerid, params[]) return cmd_remote(playerid, params); CMD:opendoor(playerid, params[]) return cmd_remote(playerid, params); CMD:remote(playerid, params[]) { new success = GateCheck(playerid); if (!success) { SendErrorMessage(playerid, "There is no gate nearby."); } return 1; } CMD:ticket(playerid, params[]) { return cmd_fine(playerid, params); } CMD:fine(playerid, params[]) { new targetid, price, reason[128]; if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else if (sscanf(params, "uis[128]", targetid, price, reason)) { return SendSyntaxMessage(playerid, "/fine [playerid/name] [amount] [reason]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else if (price < 10 || price > 5000) { return SendErrorMessage(playerid, "The price of the ticket must be between $10 and $5000."); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_tickets (Player, Reason, Date, Amount) VALUES(%i, '%s', NOW(), %i)", Players[targetid][pID], mysql_escaped(reason), price); mysql_tquery(gConnection, gExecute); format(gExecute, sizeof(gExecute), "INSERT INTO rp_ticketlogs (Player, Target, Price, Date, Reason) VALUES('%s', '%s', %i, NOW(), '%s')", ReturnName(playerid), ReturnName(targetid), price, mysql_escaped(reason)); mysql_tquery(gConnection, gExecute); SendInfoMessage(playerid, "You have written %s a ticket for %s, reason: %s", ReturnNameEx(targetid), FormatNumber(price), reason); SendInfoMessage(targetid, "%s has written you a ticket for %s, reason: %s", ReturnNameEx(playerid), FormatNumber(price), reason); Players[playerid][pPaycheck] += Random(100,350); //SendAdminMessage(COLOR_RED, "Admin: %s has written %s a ticket for %s, reason: %s", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), FormatNumber(price), reason); ShowActionBubble(playerid, "* %s writes a ticket and passes it to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid)); } return 1; } CMD:fines(playerid, params[]) { new targetid; if (!IsPlayerInFaction(playerid, FACTION_LEO)) { ShowFineList(playerid); } else { if (sscanf(params, "u", targetid)) { ShowFineList(playerid); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { ShowFineList(targetid); } } return 1; } CMD:frisk(playerid, params[]) { new targetid; if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/frisk [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't frisk yourself."); } else { Players[targetid][pFriskOffer] = playerid; SendInfoMessage(playerid, "You have offered to frisk %s.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has offered to frisk you. Use /acceptfrisk to accept the offer.", ReturnNameEx(playerid)); } return 1; } CMD:confiscate(playerid, params[]) { new targetid; if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/confiscate [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else { ResetWeapons(targetid); for (new i = 0; i < MAX_INVENTORY_ITEMS; i ++) { if (Inventory[targetid][i][invExists] && GetItemInformation(Inventory[targetid][i][invName], ITEM_INFO_ILLEGAL)) { RemoveItemFromInventory(targetid, i); } } SendInfoMessage(playerid, "You have confiscated all illegal items from %s.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has confiscated all of your illegal items,", ReturnNameEx(playerid)); SendAdminMessage(COLOR_RED, "Admin: %s has confiscated %s's illegal items.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); } return 1; } CMD:kickdoor(playerid, params[]) { new house = GetClosestHouse(playerid); if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else if (house == INVALID_ID) { return SendErrorMessage(playerid, "There is no house nearby."); } else if (!Houses[house][hLocked]) { return SendErrorMessage(playerid, "The doors are already unlocked."); } else if (Players[playerid][pSetPosition]) { return SendErrorMessage(playerid, "Please wait before using this command."); } else { Houses[house][hLocked] = 0; SaveHouse(house); ShowActionBubble(playerid, "* %s kicks down the door.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have kicked down the door."); SetPlayerFadePos(playerid, Houses[house][hInt][0], Houses[house][hInt][1], Houses[house][hInt][2], Houses[house][hInt][3], Houses[house][hInterior], Houses[house][hWorld]); PlayAnimation(playerid, "POLICE", "Door_Kick", 4.1, 0, 0, 0, 0, 0, 1); TogglePlayerControllable(playerid,0); GameTextForPlayer(playerid, "~r~Loading objects...", 2000, 4); SetTimerEx("UnFreezePlayer", 2000, false, "i", playerid); } return 1; } CMD:roster(playerid, params[]) { if (Players[playerid][pFaction] == INVALID_ID) { return SendErrorMessage(playerid, "You are not part of a faction."); } else { ShowFactionRoster(playerid); } return 1; } CMD:aroster(playerid, params[]) { if (Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not privileged to use this."); } else { ShowAdminRoster(playerid); } return 1; } CMD:repair(playerid, params[]) { new id = GetClosestAutoShop(playerid), vehicleid = GetPlayerVehicleID(playerid); if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendErrorMessage(playerid, "You are not driving any vehicle."); } else if (id == INVALID_ID) { return SendErrorMessage(playerid, "There is no auto shop nearby."); } else if (!IsPoweredVehicle(vehicleid)) { return SendErrorMessage(playerid, "This vehicle doesn't have an engine to repair."); } else if (!GetRepairCost(vehicleid)) { return SendErrorMessage(playerid, "This vehicle doesn't need to be repaired."); } else if (IsAircraftVehicle(vehicleid)) { return SendErrorMessage(playerid, "This vehicle is too large to fit inside the auto shop."); } else if (IsAutoShopInUse(id)) { return SendErrorMessage(playerid, "This auto shop is in use. Please wait until it is ready."); } else if (isnull(params) || strcmp(params, "confirm", true) != 0) { return SendSyntaxMessage(playerid, "/repair (confirm) - The repair cost is %s.", FormatNumber(GetRepairCost(vehicleid))); } else if (!PlayerCanAfford(playerid, GetRepairCost(vehicleid))) { return SendErrorMessage(playerid, "You cannot afford the cost of the repairs."); } else { foreach (new i : Player) { if (IsPlayerInAnyVehicle(i) && IsPlayerInVehicle(i, vehicleid)) { GetVehiclePos(vehicleid, Players[i][pAutoX], Players[i][pAutoY], Players[i][pAutoZ]); GetVehicleZAngle(vehicleid, Players[i][pAutoA]); gSeatData[i] = GetPlayerVehicleSeat(i); } } SetEngineStatus(vehicleid, false); SetVehicleVirtualWorld(vehicleid, id); SetVehiclePos(vehicleid, 1903.4791, 1353.9811, 24.5537); SetVehicleZAngle(vehicleid, 90.0); foreach (new i : Player) { if (gSeatData[i] >= 0) { SetPlayerVirtualWorld(i, id); TogglePlayerControllable(i, false); SetCameraBehindPlayer(i); PutPlayerInVehicle(i, vehicleid, gSeatData[i]); gSeatData[i] = INVALID_ID; } } ShowFooterText(playerid, "~g~~h~Repairing... 10 seconds remaining.", 1500); SendInfoMessage(playerid, "Please wait as your vehicle is now being repaired..."); Players[playerid][pAutoShop] = id; Players[playerid][pAutoTime] = 10; } return 1; } CMD:addautoshop(playerid, params[]) { /*if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (GetClosestAutoShop(playerid) != INVALID_ID) { return SendErrorMessage(playerid, "There is another auto shop nearby."); } else if (IsPlayerInside(playerid)) { return SendErrorMessage(playerid, "You can only create auto shops outside."); } else { new id = GetNextAutoShopID(); if (id == INVALID_ID) { SendErrorMessage(playerid, "There are no available auto shops."); } else { AutoShops[id][asExists] = 1; AutoShops[id][asText] = INVALID_3DTEXT_ID; AutoShops[id][asPickup] = INVALID_ID; AutoShops[id][asIcon] = INVALID_ID; GetPlayerPos(playerid, AutoShops[id][asX], AutoShops[id][asY], AutoShops[id][asZ]); format(gExecute, sizeof(gExecute), "INSERT INTO rp_autoshops (asX, asY, asZ) VALUES(%.4f, %.4f, %.4f)", AutoShops[id][asX], AutoShops[id][asY], AutoShops[id][asZ]); mysql_tquery(gConnection, gExecute, "OnAutoShopAdded", "i", id); UpdateAutoShop(id); SendInfoMessage(playerid, "You have added auto shop %i (/deleteautoshop).", id); } }*/ SendClientMessage(playerid, COLOR_WHITE, "Auto shops have been deprecated as of update v1.6.2 (October 3rd, 2017)."); SendClientMessage(playerid, COLOR_WHITE, "Grime added a new way of using Pay 'n' Spray by using /enter."); return 1; } CMD:gotoautoshop(playerid, params[]) { new shop; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", shop)) { return SendSyntaxMessage(playerid, "/gotoautoshop (shop ID)"); } else if (!IsValidAutoShopID(shop)) { return SendErrorMessage(playerid, "You have specified an invalid auto shop ID."); } else { SetPlayerPos(playerid, AutoShops[shop][asX], AutoShops[shop][asY], AutoShops[shop][asZ]); SendInfoMessage(playerid, "You have teleported to auto shop %i.", shop); } return 1; } CMD:deleteautoshop(playerid, params[]) { new shop; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", shop)) { return SendSyntaxMessage(playerid, "/deleteautoshop (shop ID)"); } else if (!IsValidAutoShopID(shop)) { return SendErrorMessage(playerid, "You have specified an invalid auto shop ID."); } else { DestroyDynamic3DTextLabel(AutoShops[shop][asText]); DestroyDynamicPickup(AutoShops[shop][asPickup]); DestroyDynamicMapIcon(AutoShops[shop][asIcon]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_autoshops WHERE asID = %i", AutoShops[shop][asID]); mysql_tquery(gConnection, gExecute); AutoShops[shop][asExists] = 0; SendInfoMessage(playerid, "You have deleted auto shop %i.", shop); } return 1; } CMD:loadpatient(playerid, params[]) { new targetid, vehicleid = GetClosestVehicle(playerid); if (!IsPlayerInFaction(playerid, FACTION_MEDICAL)) { return SendErrorMessage(playerid, "You are not part of a medical service."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/loadpatient [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't load yourself."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else if (Players[targetid][pDeathState] != DEATH_STATE_INJURED) { return SendErrorMessage(playerid, "The specified target is not in an injured state."); } else if (IsPlayerInAnyVehicle(targetid)) { return SendErrorMessage(playerid, "The specified target is in a vehicle."); } else if (vehicleid == INVALID_VEHICLE_ID || GetVehicleModel(vehicleid) != 416) { return SendErrorMessage(playerid, "There is no ambulance nearby."); } else { new seat = GetVehicleNextSeat(vehicleid, 2); if (seat == INVALID_ID) { SendErrorMessage(playerid, "There are no seats available."); } else { ClearAnimations(targetid); PutPlayerInVehicle(targetid, vehicleid, seat); SendInfoMessage(playerid, "You have loaded %s into the ambulance.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has loaded you into the ambulance.", ReturnNameEx(playerid)); } } return 1; } CMD:damages(playerid, params[]) { new targetid; if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/damages [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else if (Players[targetid][pDeathState] != DEATH_STATE_INJURED && playerid != targetid) { return SendErrorMessage(playerid, "The specified target is not in an injured state."); } else { new string[512], title[64]; for (new i = BODY_PART_TORSO; i <= BODY_PART_HEAD; i ++) { if (LastShots[targetid][i][lWeaponShots] > 0) { switch (LastShots[targetid][i][lWeaponID]) { case 0, 1: format(string, sizeof(string), "%s\n%i hits from fists to the %s.", string, LastShots[targetid][i][lWeaponShots], GetBodypartName(i)); default: format(string, sizeof(string), "%s\n%i hits from a %s to the %s.", string, LastShots[targetid][i][lWeaponShots], GetWeapon(LastShots[targetid][i][lWeaponID]), GetBodypartName(i)); } } } if (isnull(string)) { SendErrorMessage(playerid, "There doesn't appear to be any visible injuries."); } else { format(title, sizeof(title), "Damage for %s", ReturnNameEx(targetid)); Dialog_Show(playerid, Examine, DIALOG_STYLE_LIST, title, string, "Close", ""); } ShowActionBubble(playerid, "* %s examines %s for any injuries.", ReturnNameEx(playerid), ReturnNameEx(targetid)); } return 1; } CMD:megaphone(playerid, params[]) { return cmd_m(playerid, params); } CMD:m(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL)) { return SendErrorMessage(playerid, "You are not part of any public service faction."); } else if (Players[playerid][pMuted]) { return SendErrorMessage(playerid, "You cannot use this command since you're muted."); } else if(!IsPlayerInAnyVehicle(playerid)) { return SendErrorMessage(playerid, "You must be in a vehicle to use this command."); } else if (isnull(params)) { return SendSyntaxMessage(playerid, "/(m)egaphone (message)"); } else { SendDistanceMessage(playerid, 50.0, COLOR_YELLOW, "** (Megaphone) %s: %s **", ReturnNameEx(playerid), params); ShowActionBubble(playerid, "* %s speaks over their megaphone.", ReturnNameEx(playerid)); } return 1; } CMD:deliverpatients(playerid, params[]) { new count, vehicleid = GetPlayerVehicleID(playerid); if (!IsPlayerInFaction(playerid, FACTION_MEDICAL)) { return SendErrorMessage(playerid, "You are not part of a medical service."); } else if (GetVehicleModel(vehicleid) != 416 && GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendErrorMessage(playerid, "You are not driving an ambulance."); } else if (!IsPlayerInRangeOfHospital(playerid)) { return SendErrorMessage(playerid, "There is no hospital nearby."); } else { foreach (new i : Player) { if (IsPlayerInVehicle(i, vehicleid) && Players[i][pDeathState] == DEATH_STATE_INJURED) { Players[i][pHospital] = GetClosestHospital(i); PlayerRecover(i); count++; } } if (count) { SendInfoMessage(playerid, "You have delivered %i patients to the hospital.", count); } else { SendErrorMessage(playerid, "There are no patients in the ambulance."); } } return 1; } CMD:deploy(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL) && !IsPlayerInFaction(playerid, FACTION_GOVERNMENT)) { return SendErrorMessage(playerid, "You are not part of any public service faction."); } else if (GetNextDeployID() == INVALID_ID) { return SendErrorMessage(playerid, "You can't deploy anymore items! Use /undeploy to remove them."); } else if (IsPlayerInside(playerid)) { return SendErrorMessage(playerid, "You can only deploy items outdoors."); } else { Dialog_Show(playerid, Deploy, DIALOG_STYLE_LIST, "{FFFFFF}Deploy Items", "Traffic cone\nSpike strips\nRoadblock\nSmoke flare\nRound barrier\nPolice Tape\nSmall Barrier\nDetour Barrier\nMedium Barrier\nLarge Barrier", "Deploy", "Cancel"); } return 1; } CMD:undeploy(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL) && !IsPlayerInFaction(playerid, FACTION_GOVERNMENT)) { return SendErrorMessage(playerid, "You are not part of any public service faction."); } else { Dialog_Show(playerid, Undeploy, DIALOG_STYLE_LIST, "{FFFFFF}Deployed Items", "Remove nearest\nRemove all items", "Select", "Cancel"); } return 1; } CMD:taxrate(playerid, params[]) { new rate; if (!IsPlayerInFaction(playerid, FACTION_GOVERNMENT) && Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not part of the government."); } else if (sscanf(params, "i", rate)) { return SendSyntaxMessage(playerid, "/taxrate (percentage)"); } else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks]) { return SendErrorMessage(playerid, "You are not a high ranking member."); } else if (!(1 <= rate <= 15)) { return SendErrorMessage(playerid, "The percentage must consist of a value between 1 and 15."); } else { Server[TaxRate] = rate; SaveInformation(); SendInfoMessage(playerid, "You have set the tax rate to %i percent.", rate); SendAdminMessage(COLOR_RED, "Admin: %s has set the tax rate to %i percent.", ReturnNameEx(playerid, 0), rate); } return 1; } CMD:vault(playerid, params[]) { if (!IsPlayerInFaction(playerid, FACTION_GOVERNMENT)) { return SendErrorMessage(playerid, "You are not part of the government."); } else if (!IsPlayerInBank(playerid)) { return SendErrorMessage(playerid, "You are not close to the bank counter."); } else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks]) { return SendErrorMessage(playerid, "You are not a high ranking member."); } else { Dialog_Show(playerid, GovernmentVault, DIALOG_STYLE_LIST, "{FFFFFF}Government Vault", "Withdraw (%s)\nDeposit", "Select", "Cancel", FormatNumber(Server[TaxVault])); } return 1; } CMD:acceptcall(playerid, params[]) { new targetid; if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL)) { return SendErrorMessage(playerid, "You are not part of any public service faction."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/acceptcall [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!Players[targetid][pEmergency]) { return SendErrorMessage(playerid, "That player hasn't reported an emergency."); } else { new Float:x, Float:y, Float:z; if (!GetPlayerPosEx(targetid, x, y, z)) { SendInfoMessage(playerid, "Dispatch: The call could not be traced. (( Player is inside ))."); } else { SetCheckpoint(playerid, CHECKPOINT_GPS, x, y, z, 3.0); SendInfoMessage(playerid, "Dispatch: A waypoint was placed at the caller's last known location."); } } return 1; } CMD:addrental(playerid, params[]) { new company, model[32], modelid, price, color1, color2; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (IsValidVehicle(Players[playerid][pAddVehicle])) { return SendErrorMessage(playerid, "You must exit the current vehicle first."); } else if (sscanf(params, "is[32]iI(11)I(11)", company, model, price, color1, color2)) { SendSyntaxMessage(playerid, "/addrental (company ID) (model ID) (price) [color 1] [color 2]"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: Use '-1' as the company ID if you don't wish to assign it to a company."); } else if (company != INVALID_ID && !IsValidCompanyID(company)) { return SendErrorMessage(playerid, "The specified company is not valid."); } else if (!(modelid = GetVehicleModelFromName(model))) { return SendErrorMessage(playerid, "The specified model doesn't exist."); } else if (price < 1) { return SendErrorMessage(playerid, "The specified price can't be below $1."); } else if (company != INVALID_ID && Companies[company][cType] != COMPANY_RENTALS) { return SendErrorMessage(playerid, "You have specified an invalid company ID."); } else { SpawnConfirmationVehicle(playerid, company, INVALID_ID, price, modelid, color1, color2, true); SendInfoMessage(playerid, "Use the /confirm command to save the position of the vehicle."); } return 1; } CMD:addobject(playerid, params[]) { new modelid, Float:distance; //if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL) && !IsPlayerInFaction(playerid, FACTION_GOVERNMENT)) if (Players[playerid][pAdmin] < 5 && Players[playerid][pMapper] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } else if (sscanf(params, "iF(200.0)", modelid, distance)) { return SendSyntaxMessage(playerid, "/addobject (model ID) (optional distance)"); } else if (!IsValidModelID(modelid)) { return SendErrorMessage(playerid, "You have specified an invalid model ID."); } else if (modelid == 17951 || modelid == 3294) { return SendErrorMessage(playerid, "That model can't be used as it causes problems in SA-MP."); } else if (distance < 1.0 || distance > 300.0) { return SendErrorMessage(playerid, "The distance must range between 1.0 and 300.0."); } else { new Float:x, Float:y, Float:z, Float:angle, id; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); id = AddObject(modelid, x + (3.0 * floatsin(-angle, degrees)), y + (3.0 * floatcos(-angle, degrees)), z, 0.0, 0.0, angle, distance, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); if (id == INVALID_ID) { SendErrorMessage(playerid, "There are no available object slots."); } else { SendInfoMessage(playerid, "You have created object %i (/editobject).", id); EditDynamicObjectEx(playerid, EDIT_TYPE_OBJECT, Objects[id][oObjectID], id); } } return 1; } CMD:reloadobjects(playerid, params[]) { new count; if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0)) return SendErrorMessage(playerid, "You are not privileged to use this command."); if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } for (new i = 0; i < MAX_SCRIPT_OBJECTS; i ++) { if (IsValidObjectID(i)) { //UpdateObject(i); count ++; DestroyDynamicObject(Objects[i][oObjectID]); DestroyDynamic3DTextLabel(Objects[i][oText]); } } mysql_tquery(gConnection, "SELECT * FROM rp_objects", "OnLoadObjects"); SendFormatMessageToAll(COLOR_SAMP, "(( %s has reloaded %i objects. ))", ReturnNameEx(playerid, 0), count); return 1; } CMD:editobject(playerid, params[]) { new object; if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0)) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } else if (sscanf(params, "i", object)) { return SendSyntaxMessage(playerid, "/editobject (object ID)"); } else if (!IsValidObjectID(object)) { return SendErrorMessage(playerid, "You have specified an invalid object ID."); } else { SendInfoMessage(playerid, "Click on the disk icon to save changes."); EditDynamicObjectEx(playerid, EDIT_TYPE_OBJECT, Objects[object][oObjectID], object); } return 1; } /* CMD:gotocoords(playerid, params[]) { new Float:fX, Float:fY, Float:fZ, interior; // remove commas so we can copy paste coords without removing commas. for (new i = 0, l = strlen(params); i < l; i ++) { if (params[i] == ',') { strdel(params, i, i + 1); } } if (Players[playerid][pAdmin] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "fffI(0)", fX, fY, fZ, interior)) { return SendSyntaxMessage(playerid, "/gotocoords (x) (y) (z) [interior]"); } else { SetPlayerPos(playerid, fX, fY, fZ); SetPlayerInterior(playerid, interior); SetCameraBehindPlayer(playerid); SendInfoMessage(playerid, "You have teleported to %.4f, %.4f, %.4f (interior: %i).", fX, fY, fZ, interior); } return 1; } */ CMD:rotobjectx(playerid,params[]) { new Float:rX, object; if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0)) return SendErrorMessage(playerid, "You are not privileged to use this command."); if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } if (sscanf(params,"if", object, rX)) return SendSyntaxMessage(playerid, "/rotobjectx [object ID] [xrot]"); if (!IsValidObjectID(object)) return SendErrorMessage(playerid, "You have specified an invalid object ID."); Objects[object][oRX] = rX; UpdateObject(object); SaveObject(object); return 1; } CMD:rotobjecty(playerid,params[]) { new Float:rY, object; if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0)) return SendErrorMessage(playerid, "You are not privileged to use this command."); if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } if (sscanf(params,"if", object, rY)) return SendSyntaxMessage(playerid, "/rotobjecty [object ID] [yrot]"); if (!IsValidObjectID(object)) return SendErrorMessage(playerid, "You have specified an invalid object ID."); Objects[object][oRY] = rY; UpdateObject(object); SaveObject(object); return 1; } CMD:rotobjectz(playerid,params[]) { new Float:rZ, object; if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0)) return SendErrorMessage(playerid, "You are not privileged to use this command."); if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } if (sscanf(params,"if", object, rZ)) return SendSyntaxMessage(playerid, "/rotobjectz [object ID] [zrot]"); if (!IsValidObjectID(object)) return SendErrorMessage(playerid, "You have specified an invalid object ID."); Objects[object][oRZ] = rZ; UpdateObject(object); SaveObject(object); return 1; } CMD:setobjectmodel(playerid,params[]) { new model, object; if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0)) return SendErrorMessage(playerid, "You are not privileged to use this command."); if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } if (sscanf(params,"ii", object, model)) return SendSyntaxMessage(playerid, "/setobjectmodel [object ID] [model ID]"); if (!IsValidObjectID(object)) return SendErrorMessage(playerid, "You have specified an invalid object ID."); if (!IsValidModelID(model)) return SendErrorMessage(playerid, "You have specified an invalid model ID."); else if (model == 17951 || model == 3294) return SendErrorMessage(playerid, "That model can't be used as it causes problems in SA-MP."); Objects[object][oModel] = model; UpdateObject(object); SaveObject(object); return 1; } CMD:gotoobject(playerid, params[]) { new object; if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0)) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } else if (sscanf(params, "i", object)) { return SendSyntaxMessage(playerid, "/deleteobject (object ID)"); } else if (!IsValidObjectID(object)) { return SendErrorMessage(playerid, "You have specified an invalid object ID."); } else { SetPlayerPosEx(playerid, Objects[object][oX], Objects[object][oY], Objects[object][oZ], 0.0, Objects[object][oInterior], Objects[object][oWorld]); SendInfoMessage(playerid, "You have teleported to object %i.", object); } return 1; } CMD:deleteobject(playerid, params[]) { new object; if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0)) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } else if (sscanf(params, "i", object)) { return SendSyntaxMessage(playerid, "/deleteobject (object ID)"); } else if (!IsValidObjectID(object)) { return SendErrorMessage(playerid, "You have specified an invalid object ID."); } else { DestroyDynamicObject(Objects[object][oObjectID]); DestroyDynamic3DTextLabel(Objects[object][oText]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_objects WHERE oID = %i", Objects[object][oID]); mysql_tquery(gConnection, gExecute); Objects[object][oExists] = 0; SendInfoMessage(playerid, "You have deleted object ID: %i.", object); } return 1; } CMD:debugobjects(playerid, params[]) { if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0)) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } else { gObjectDebug = !gObjectDebug; if (gObjectDebug) { SendInfoMessage(playerid, "You have enabled object debugging mode."); } else { SendInfoMessage(playerid, "You have disabled object debugging mode."); } for (new i = 0; i < MAX_SCRIPT_OBJECTS; i ++) { if (IsValidObjectID(i)) { UpdateObjectLabel(i); } } } return 1; } CMD:cloneobject(playerid, params[]) { new object; if ((Players[playerid][pAdmin] < 5) && (Players[playerid][pMapper] == 0)) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (Players[playerid][pAdmin] < 1 && Players[playerid][pMapper] > 0 && !Players[playerid][pMapperDuty]) { return SendErrorMessage(playerid, "You must be on mapper duty (/mduty)."); } else if (sscanf(params, "i", object)) { return SendSyntaxMessage(playerid, "/editobject (object ID)"); } else if (!IsValidObjectID(object)) { return SendErrorMessage(playerid, "You have specified an invalid object ID."); } else { new cloneobject = AddObject(Objects[object][oModel], Objects[object][oX], Objects[object][oY], Objects[object][oZ], Objects[object][oRX], Objects[object][oRY], Objects[object][oRZ], Objects[object][oDistance], Objects[object][oInterior], Objects[object][oWorld]); if (cloneobject == INVALID_ID) { SendErrorMessage(playerid, "There are no available object slots."); } else { SendInfoMessage(playerid, "You have cloned object %i. The new object ID is %i.", object, cloneobject); EditDynamicObjectEx(playerid, EDIT_TYPE_OBJECT, Objects[cloneobject][oObjectID], cloneobject); } } return 1; } CMD:setbankmoney(playerid, params[]) { new targetid, index, displayString[MAX_BANK_ACCOUNTS * 50]; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/setbankmoney [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You can't use this command on an NPC."); } else { displayString = "Name\tBalance"; for (new i = 0; i < MAX_BANK_ACCOUNTS; i ++) { if (BankAccounts[targetid][i][bankExists]) { format(displayString, sizeof(displayString), "%s\n%s\t%s", displayString, BankAccounts[targetid][i][bankName], FormatNumber(BankAccounts[targetid][i][bankBalance])); gListedItems[playerid][index++] = i; } } if (!index) { SendErrorMessage(playerid, "That player doesn't have any bank accounts."); } else { Players[playerid][pSetBank] = targetid; Dialog_Show(playerid, SetBank, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Bank accounts", displayString, "Select", "Cancel"); } } return 1; } CMD:locatepackage(playerid, params[]) { if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL) { return SendErrorMessage(playerid, "You are not part of an illegal faction."); } else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 1) { return SendErrorMessage(playerid, "You are not a high ranking member."); } else if (Players[playerid][pPackageType] == PACKAGE_TYPE_NONE) { return SendErrorMessage(playerid, "There is no package to pickup."); } else if (Players[playerid][pCheckpoint] == CHECKPOINT_PACKAGE) { return SendErrorMessage(playerid, "You have already located your package."); } else { SetCheckpointForPackage(playerid); } return 1; } CMD:buy(playerid, params[]) { new company = GetCurrentCompany(playerid); if (company == INVALID_ID) { return SendErrorMessage(playerid, "You are not at any place where you can buy items."); } else { switch (Companies[company][cType]) { case COMPANY_RESTAURANT: { ShowRestaurantMenu(playerid, company); } case COMPANY_AMMO: { /*if (!Players[playerid][pGunLicense]) { return SendErrorMessage(playerid, "You can't purchase items here if you don't have a gun license."); } else {*/ ShowProductsForSale(playerid, company); /*}*/ } case COMPANY_RENTALS: { SendErrorMessage(playerid, "This company doesn't serve products."); } default: { ShowProductsForSale(playerid, company); } } } return 1; } CMD:killcp(playerid, params[]) return cmd_clearcp(playerid, params); CMD:clearcp(playerid, params[]) { if (Players[playerid][pWorking]) { return SendErrorMessage(playerid, "You are working right now. Use /stop to stop working."); } else if (Players[playerid][pCheckpoint] == CHECKPOINT_NONE) { return SendErrorMessage(playerid, "You don't have any active checkpoints to clear."); } else { ResetCheckpoint(playerid); SendInfoMessage(playerid, "You have cleared all active checkpoints."); } return 1; } CMD:issuelicense(playerid, params[]) { new targetid, type[16]; if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else if (sscanf(params, "us[16]", targetid, type)) { return SendSyntaxMessage(playerid, "/issuelicense [playerid/name] (driving/weapon)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 1) { return SendErrorMessage(playerid, "You are not a high ranking member."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else { if (!strcmp(type, "driving", true)) { if (Players[targetid][pCarLicense]) { return SendErrorMessage(playerid, "The specified target already has a driving license."); } else { ShowActionBubble(playerid, "* %s issues %s a driving license.", ReturnNameEx(playerid), ReturnNameEx(targetid)); Players[targetid][pCarLicense] = 1; SendInfoMessage(playerid, "You have issued %s a driving license.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has issued you a driving license.", ReturnNameEx(playerid)); } } else if (!strcmp(type, "weapon", true)) { if (Players[targetid][pGunLicense]) { return SendErrorMessage(playerid, "The specified target already has a weapon license."); } else { format(gExecute, sizeof(gExecute), "INSERT INTO rp_gunlicenses (Player, Target, Date) VALUES('%s', '%s', NOW())", ReturnName(playerid), ReturnName(targetid)); mysql_tquery(gConnection, gExecute); ShowActionBubble(playerid, "* %s issues %s a gun license.", ReturnNameEx(playerid), ReturnNameEx(targetid)); Players[targetid][pGunLicense] = 1; SendInfoMessage(playerid, "You have issued %s a gun license.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has issued you a gun license.", ReturnNameEx(playerid)); } } } return 1; } CMD:revokelicense(playerid, params[]) { new targetid, type[16]; if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else if (sscanf(params, "us[16]", targetid, type)) { return SendSyntaxMessage(playerid, "/revokelicense [playerid/name] (driving/weapon)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else { if (!strcmp(type, "driving", true)) { if (!Players[targetid][pCarLicense]) { return SendErrorMessage(playerid, "The specified target doesn't have a driving license."); } else { ShowActionBubble(playerid, "* %s revokes %s's driving license.", ReturnNameEx(playerid), ReturnNameEx(targetid)); Players[targetid][pCarLicense] = 0; SendInfoMessage(playerid, "You have revoked %s's driving license.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has revoked your driving license.", ReturnNameEx(playerid)); } } else if (!strcmp(type, "weapon", true)) { if (!Players[targetid][pGunLicense]) { return SendErrorMessage(playerid, "The specified target doesn't have a weapon license."); } else { ShowActionBubble(playerid, "* %s revokes %s's gun license.", ReturnNameEx(playerid), ReturnNameEx(targetid)); Players[targetid][pGunLicense] = 0; SendInfoMessage(playerid, "You have revoked %s's gun license.", ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has revoked your gun license.", ReturnNameEx(playerid)); } } } return 1; } CMD:start(playerid, params[]) { if (!IsPlayerInRangeOfPoint(playerid, 3.0, 1490.2839, 1305.6837, 1093.2964)) { return SendErrorMessage(playerid, "You are not in range of the DMV."); } else if (Players[playerid][pCarLicense]) { return SendErrorMessage(playerid, "You have your driving license already."); } else if (Players[playerid][pCDL]) { return SendErrorMessage(playerid, "You have your CDL license already."); } else if (Players[playerid][pDrivingTest]) { return SendErrorMessage(playerid, "You have started the driving test already."); } else { Players[playerid][pDrivingTest] = 1; Players[playerid][pDrivingCP] = 0; SendInfoMessage(playerid, "You have started the driving test! Enter a vehicle outside to begin."); } return 1; } CMD:licenses(playerid, params[]) { return cmd_showlicenses(playerid, params); } //Faster (new) split Code [[User:Kaliber|Kaliber]] stock split(const src[], dest[][], const delimiter) { new n_pos,num,old,str[1]; str[0] = delimiter; while(n_pos != -1) { n_pos = strfind(src,str,false,n_pos+1); strmid(dest[num++], src, (!num)?0:old+1,(n_pos==-1)?strlen(src):n_pos,256); old=n_pos; } return 1; } /*GetPlayerFirstName(playerid) { new namestring[2][MAX_PLAYER_NAME], name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, MAX_PLAYER_NAME); split(name, namestring, '_'); return namestring[0]; }*/ /*GetPlayerLastName(playerid) { new namestring[2][MAX_PLAYER_NAME], name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, MAX_PLAYER_NAME); split(name, namestring, '_'); return namestring[0]; }*/ CMD:calc(playerid, params[]) { return cmd_calculate(playerid, params); } CMD:calculate(playerid, params[]) { new option[128]; new num1; new num2; if (sscanf(params, "is[24]i", num1, option, num2)) { return SendSyntaxMessage(playerid, "/(calc)ulate [number] [+ - x /] [number]"); } else { if (!strcmp(option, "+", true)) { new num = (num1 + num2); SendInfoMessage(playerid, "[CALCULATOR] %i + %i = %i", num1, num2, num); } else if (!strcmp(option, "-", true)) { new num = (num1 - num2); SendInfoMessage(playerid, "[CALCULATOR] %i - %i = %i", num1, num2, num); } else if (!strcmp(option, "x", true)) { new num = (num1 * num2); SendInfoMessage(playerid, "[CALCULATOR] %i x %i = %i", num1, num2, num); } else if (!strcmp(option, "/", true)) { new num = (num1 / num2); SendInfoMessage(playerid, "[CALCULATOR] %i / %i = %i", num1, num2, num); } } return 1; } /*CMD:showlicenses(playerid, params[]) { new targetid; new option[128]; if (sscanf(params, "us[128]", targetid, option)) { return SendSyntaxMessage(playerid, "/showlicenses [playerid/name] [driver/weapon/pilot]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on an NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else { if (!strcmp(option, "driver", true)) { if (Players[playerid][pCarLicense] == 0) return SendErrorMessage(playerid, "You don't own a drivers license."); SendFormatMessage(targetid, COLOR_LIGHTGREY, "CALIFORNIA DRIVER LICENSE"); SendFormatMessage(targetid, COLOR_LIGHTGREY, "DL: %i", (playerid+50*5335)); SendFormatMessage(targetid, COLOR_LIGHTGREY, " "); SendFormatMessage(targetid, COLOR_LIGHTGREY, "LN: %s", GetPlayerLastName(playerid)); SendFormatMessage(targetid, COLOR_LIGHTGREY, "FN: %s", GetPlayerFirstName(playerid)); SendFormatMessage(targetid, COLOR_LIGHTGREY, "AGE: %i", Players[playerid][pAge]); SendFormatMessage(targetid, COLOR_LIGHTGREY, "SEX: %s", GetGenderForPlayer(playerid)); ShowActionBubble(playerid, "* %s shows %s their licenses.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have shown %s your licenses.", ReturnNameEx(targetid)); } else if (!strcmp(option, "weapon", true)) { if (Players[playerid][pGunLicense] == 0) return SendErrorMessage(playerid, "You don't own a weapons license."); SendFormatMessage(targetid, COLOR_LIGHTGREY, "License To Carry Concealed Pistol, Revolver, or Other Firearm"); SendFormatMessage(targetid, COLOR_LIGHTGREY, "Within the State of California"); SendFormatMessage(targetid, COLOR_LIGHTGREY, "Issued By:"); SendFormatMessage(targetid, COLOR_LIGHTGREY, "Agency: Los Santos Police Dept."); SendFormatMessage(targetid, COLOR_LIGHTGREY, " "); SendFormatMessage(targetid, COLOR_LIGHTGREY, "Name of Licensee: %s", ReturnNameEx(playerid)); SendFormatMessage(targetid, COLOR_LIGHTGREY, "Age of Licensee: %i", Players[playerid][pAge]); ShowActionBubble(playerid, "* %s shows %s their licenses.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have shown %s your licenses.", ReturnNameEx(targetid)); } else if (!strcmp(option, "pilot", true)) { if (Players[playerid][pPilotLicense] == 0) return SendErrorMessage(playerid, "You don't own a pilots license."); SendFormatMessage(targetid, COLOR_LIGHTGREY, "UNITED STATES OF AMERICA"); SendFormatMessage(targetid, COLOR_LIGHTGREY, "DEPARTMENT OF TRANSPORTATION - FEDERAL AVIATION ADMINISTRATION"); SendFormatMessage(targetid, COLOR_LIGHTGREY, " "); SendFormatMessage(targetid, COLOR_LIGHTGREY, "NAME: %s", ReturnNameEx(playerid)); SendFormatMessage(targetid, COLOR_LIGHTGREY, "AGE: %i", Players[playerid][pAge]); SendFormatMessage(targetid, COLOR_LIGHTGREY, " "); SendFormatMessage(targetid, COLOR_LIGHTGREY, "HAS BEEN FOUND TO BE PROPERLY QUALIFIED TO EXERCISE THE PRIVILEGES OF"); SendFormatMessage(targetid, COLOR_LIGHTGREY, "PRIVATE PILOT"); SendFormatMessage(targetid, COLOR_LIGHTGREY, "CERTIFICATE NUMBER %i", (playerid+50*3553)); ShowActionBubble(playerid, "* %s shows %s their licenses.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have shown %s your licenses.", ReturnNameEx(targetid)); } } return 1; }*/ CMD:showlicenses(playerid, params[]) { new targetid; if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/showlicenses [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid, 5.0)) { return SendErrorMessage(playerid, "You must be in range of that player."); } else { SendFormatMessage(targetid, COLOR_YELLOW, "______STATE OF SAN ANDREAS______"); SendFormatMessage(targetid, COLOR_YELLOW, "Name: %s", ReturnNameEx(playerid)); SendFormatMessage(targetid, COLOR_YELLOW, "Drivers License: %s", (Players[playerid][pCarLicense]) ? ("Yes") : ("No")); SendFormatMessage(targetid, COLOR_YELLOW, "Gun License: %s", (Players[playerid][pGunLicense]) ? ("Yes") : ("No")); ShowActionBubble(playerid, "* %s shows %s their licenses.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have shown %s your licenses.", ReturnNameEx(targetid)); } return 1; } CMD:badge(playerid, params[]) { new targetid; if (!IsPlayerInFaction(playerid, FACTION_LEO)) return SendErrorMessage(playerid, "You are not part of the law enforcement."); if(sscanf(params,"u", targetid)) return SendSyntaxMessage(playerid, "/badge [playerid/name]"); if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"The specified target doesn't exist."); if(IsPlayerNPC(targetid)) return SendErrorMessage(playerid, "You cannot use this command on a NPC."); if(!IsPlayerLoggedIn(targetid)) return SendErrorMessage(playerid,"The specified target is not logged in yet."); if(!IsPlayerInRangeOfPlayer(playerid,targetid,5.0)) return SendErrorMessage(playerid,"You must be in range of that player."); SendFormatMessage(targetid,COLOR_YELLOW,"%s Badge:", GetInitials(GetPlayerFactionName(playerid)) ); SendFormatMessage(targetid,COLOR_WHITE, "Name: %s", ReturnNameEx(playerid) ); SendFormatMessage(targetid,COLOR_WHITE, "Rank: %s", GetPlayerFactionRank(playerid) ); SendFormatMessage(targetid,COLOR_WHITE, "Badge: %i", Players[playerid][pBadge] ); SendFormatMessage(targetid,COLOR_WHITE, "Agency: %s", GetPlayerFactionName(playerid) ); if (playerid == targetid) { ShowActionBubble(playerid, "* %s looks at their badge.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have shown your badge to yourself."); } else { ShowActionBubble(playerid, "* %s shows %s their badge.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have shown your badge to %s.", ReturnNameEx(targetid)); } //SendInfoMessage(playerid, "You have shown %s your badge.", ReturnNameEx(targetid)); return 1; } CMD:readrights(playerid, params[]) { new targetid; if (!IsPlayerInFaction(playerid, FACTION_LEO)) return SendErrorMessage(playerid, "You are not part of the law enforcement."); if(sscanf(params,"u", targetid)) return SendSyntaxMessage(playerid, "/readrights [playerid/name]"); if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"The specified target doesn't exist."); if(IsPlayerNPC(targetid)) return SendErrorMessage(playerid, "You cannot use this command on a NPC."); if(!IsPlayerLoggedIn(targetid)) return SendErrorMessage(playerid,"The specified target is not logged in yet."); if(!IsPlayerInRangeOfPlayer(playerid,targetid,5.0)) return SendErrorMessage(playerid,"You must be in range of that player."); SendClientMessage(targetid, COLOR_WHITE, "You have the right to remain silent. Anything you say can and will be used against you in a court of law."); SendClientMessage(targetid, COLOR_WHITE, "You have the right to an attorney, If you cannot afford an attorney, one will be provided for you."); SendClientMessage(targetid, COLOR_WHITE, "Do you understand the rights I have just read to you? With these rights in mind, do you wish to speak to me?"); if (playerid == targetid) { ShowActionBubble(playerid, "* %s begins to read %s their rights.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have read %s their Miranda rights.", ReturnNameEx(targetid)); } return 1; } CMD:greet(playerid, params[]) { new targetid; if (!IsPlayerInFaction(playerid, FACTION_LEO)) return SendErrorMessage(playerid, "You are not part of the law enforcement."); if(sscanf(params,"u", targetid)) return SendSyntaxMessage(playerid, "/greet [playerid/name]"); if(!IsPlayerConnected(targetid)) return SendErrorMessage(playerid,"The specified target doesn't exist."); if(IsPlayerNPC(targetid)) return SendErrorMessage(playerid, "You cannot use this command on a NPC."); if(!IsPlayerLoggedIn(targetid)) return SendErrorMessage(playerid,"The specified target is not logged in yet."); if(!IsPlayerInRangeOfPlayer(playerid,targetid,5.0)) return SendErrorMessage(playerid,"You must be in range of that player."); SendFormatMessage(targetid, COLOR_WHITE, "I am %s %s with the %s, do you know why I am pulling you over today?", GetPlayerFactionRank(playerid), ReturnNameEx(playerid, 1)); if (playerid == targetid) { ShowActionBubble(playerid, "* %s begins to speak to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid)); } return 1; } CMD:engine(playerid, params[]) { if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendErrorMessage(playerid, "You are not driving any vehicle."); } else if (!IsPoweredVehicle(GetPlayerVehicleID(playerid))) { return SendErrorMessage(playerid, "This vehicle doesn't have an engine."); } /* else if (Players[playerid][pAdminDuty]) { if (GetEngineStatus(GetPlayerVehicleID(playerid))) { SetEngineStatus(GetPlayerVehicleID(playerid), 0); } else { SetEngineStatus(GetPlayerVehicleID(playerid), 1); } }*/ else { EngineCaller(playerid); } return 1; } CMD:animations(playerid, params[]) { ShowAnimationList(playerid); return 1; } CMD:id(playerid, params[]) { new targetid, count; if (isnull(params)) { return SendSyntaxMessage(playerid, "/id (search query)"); } else { if (!sscanf(params, "i", targetid)) { if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "There is no player online with that ID."); } else { SendClientMessage(playerid, COLOR_WHITE, "---------------------------------------"); SendFormatMessage(playerid, COLOR_WHITE, "(ID: %i) - %s", targetid, ReturnNameEx(targetid, 0)); SendClientMessage(playerid, COLOR_WHITE, "---------------------------------------"); } } else if (strlen(params) < 3) { return SendErrorMessage(playerid, "You must enter at least 3 characters to search."); } else { SendClientMessage(playerid, COLOR_WHITE, "---------------------------------------"); foreach (new i : Player) { if (strfind(ReturnName(i), params, true) != -1) { SendFormatMessage(playerid, COLOR_WHITE, "(ID: %i) - %s", i, ReturnNameEx(i, 0)); count++; } } if (!count) { SendInfoMessage(playerid, "No matches found for \"%s\".", params); } SendClientMessage(playerid, COLOR_WHITE, "---------------------------------------"); } } return 1; } CMD:time(playerid, params[]) { new string[128], day, month, year, hour, minute, second; getdate(year, month, day); gettime(hour, minute, second); if (!Players[playerid][pJailType]) { format(string, sizeof(string), "~w~%s %02d, %i~n~~b~~h~%02d:%02d:%02d", GetMonth(month), day, year, hour, minute, second); GameTextForPlayer(playerid, string, 3000, 1); } else { format(string, sizeof(string), "~w~%s %02d, %i~n~~b~~h~%02d:%02d:%02d~n~~w~Jail Time:~w~ %s", GetMonth(month), day, year, hour, minute, second, ReturnElapsed(Players[playerid][pJailTime])); GameTextForPlayer(playerid, string, 3000, 1); } SendInfoMessage(playerid, "Your next paycheck is due in %i minutes.", (60 - Players[playerid][pMinutes])); ShowActionBubble(playerid, "* %s looks down at their watch.", ReturnNameEx(playerid)); return 1; } CMD:saveplayers(playerid, params[]) { if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { foreach (new i : Player) { if (IsPlayerLoggedIn(i)) { SaveAccount(i); } } SendInfoMessage(playerid, "You have saved all player accounts."); } return 1; } CMD:vwreset(playerid, params[]) { if (!GetPlayerInterior(playerid) && GetPlayerVirtualWorld(playerid) > 0) { SetPlayerVirtualWorld(playerid, 0); SendInfoMessage(playerid, "Your virtual world has been reset."); } return 1; } CMD:listassets(playerid, params[]) { if (isnull(params)) { return SendClientMessage(playerid, COLOR_WHITE, "Syntax: /listassets (houses/companies)"); } else if (!strcmp(params, "houses", true)) { SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------"); SendClientMessage(playerid, COLOR_GREEN, "My Houses:"); for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && IsHouseOwner(playerid, i)) { SendFormatMessage(playerid, COLOR_WHITE, "- %s (located at %s).", Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2])); } } SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------"); } else if (!strcmp(params, "companies", true)) { SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------"); SendClientMessage(playerid, COLOR_GREEN, "My Companies:"); for (new i = 0; i < MAX_COMPANIES; i ++) { if (IsValidCompanyID(i) && IsCompanyOwner(playerid, i)) { SendFormatMessage(playerid, COLOR_WHITE, "- %s (located at %s).", Companies[i][cName], GetZoneName(Companies[i][cSpawn][0], Companies[i][cSpawn][1], Companies[i][cSpawn][2])); } } SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------"); } return 1; } CMD:alistcars(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 4) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/alistcars (player)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------"); SendFormatMessage(playerid, COLOR_GREEN, "%s's Vehicles:", ReturnNameEx(targetid, 0)); for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && IsVehicleOwner(targetid, i)) { if (Vehicles[i][vImpound]) { SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (Impounded)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); } else if (Vehicles[i][vDespawned]) { SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (Despawned)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); } else { SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (ID: %i)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate], Vehicles[i][vVehicle]); } } } SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------"); } return 1; } CMD:alistassets(playerid, params[]) { new targetid, type[16]; if (Players[playerid][pAdmin] < 4) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "us[16]", targetid, type)) { return SendSyntaxMessage(playerid, "/alistassets (player) (houses/companies)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { if (!strcmp(type, "houses", true)) { SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------"); SendFormatMessage(playerid, COLOR_GREEN, "%s's Houses:", ReturnNameEx(targetid, 0)); for (new i = 0; i < MAX_HOUSES; i ++) { if (IsValidHouseID(i) && IsHouseOwner(targetid, i)) { SendFormatMessage(playerid, COLOR_WHITE, "- %s (ID: %i) (located at %s).", Houses[i][hAddress], i, GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2])); } } SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------"); } else if (!strcmp(type, "companies", true)) { SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------"); SendFormatMessage(playerid, COLOR_GREEN, "%s's Companies:", ReturnNameEx(targetid, 0)); for (new i = 0; i < MAX_COMPANIES; i ++) { if (IsValidCompanyID(i) && IsCompanyOwner(targetid, i)) { SendFormatMessage(playerid, COLOR_WHITE, "- %s (ID: %i) (located at %s).", Companies[i][cName], i, GetZoneName(Companies[i][cSpawn][0], Companies[i][cSpawn][1], Companies[i][cSpawn][2])); } } SendClientMessage(playerid, COLOR_GREY, "-------------------------------------------------------------"); } } return 1; } CMD:siren(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL)) { return SendErrorMessage(playerid, "You are not part of any public service faction."); } else if (!vehicleid) { return SendErrorMessage(playerid, "You are not in any vehicle."); } else if (!VehicleHasDoors(vehicleid)) { return SendErrorMessage(playerid, "You can't attach a siren to this vehicle."); } else { ToggleVehicleSiren(vehicleid); if (IsValidDynamicObject(gSirenObject[vehicleid])) { SendInfoMessage(playerid, "You have attached a siren to this vehicle."); ShowActionBubble(playerid, "* %s attaches a police siren to the vehicle.", ReturnNameEx(playerid)); } else { SendInfoMessage(playerid, "You have detached the siren from this vehicle."); ShowActionBubble(playerid, "* %s detaches the police siren from the vehicle.", ReturnNameEx(playerid)); } } return 1; } CMD:callsign(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if (!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL)) { return SendErrorMessage(playerid, "You are not part of any public service faction."); } else if (isnull(params)) { return SendSyntaxMessage(playerid, "/callsign [unit] (To remove your callsign, use /callsign none)"); } else if (strlen(params) > 32) { return SendErrorMessage(playerid, "The call sign can't be over 32 characters."); } if (!strcmp(params, "none", true)) { SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** HQ: %s has left '%s'.", ReturnNameEx(playerid, 0), Players[playerid][pCallsign]); format(Players[playerid][pCallsign], 128, "None"); Delete3DTextLabel(gCallsignText[vehicleid]); gCallsignText[vehicleid] = INVALID_3DTEXT_ID; SendInfoMessage(playerid, "* You have removed the callsign."); } else { SetCallsign(vehicleid, params); format(Players[playerid][pCallsign], 128, params); SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** HQ: %s is now on duty under '%s'.", ReturnNameEx(playerid, 0), params); if (gCallsignText[vehicleid] != INVALID_3DTEXT_ID) { Delete3DTextLabel(gCallsignText[vehicleid]); } gCallsignText[vehicleid] = Create3DTextLabel(params, COLOR_WHITE, 0.0, 0.0, 0.0, 15.0, 0); Attach3DTextLabelToVehicle(gCallsignText[vehicleid], vehicleid, -0.7, -2.4, -0.3); SendInfoMessage(playerid, "You've set your callsign to, %s.", params); } return 1; } /*CMD:carsign(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if(!IsPlayerInFaction(playerid, FACTION_LEO) && !IsPlayerInFaction(playerid, FACTION_MEDICAL)) return SendErrorMessage(playerid, "You are not part of any public service faction."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendErrorMessage(playerid, "You are not in a vehicle."); if(isnull(params)) return SendSyntaxMessage(playerid, "/carsign [sign]"); if(strlen(params) > 32) return SendErrorMessage(playerid, "The carsign must be under 32 characters."); SetCallsign(vehicleid, params); SendInfoMessage(playerid, "You've set your carsign to, %s.", params); SendInfoMessage(playerid, "/remove_carsign - When you're done with it."); if(!strcmp(params, "none", true)) { Delete3DTextLabel(gCallsignText[vehicleid]); gCallsignText[vehicleid] = INVALID_3DTEXT_ID; SendInfoMessage(playerid, "* You have removed the carsign."); } else { if (gCallsignText[vehicleid] != INVALID_3DTEXT_ID) { Delete3DTextLabel(gCallsignText[vehicleid]); } gCallsignText[vehicleid] = Create3DTextLabel(params, COLOR_WHITE, 0.0, 0.0, 0.0, 15.0, 0); Attach3DTextLabelToVehicle(gCallsignText[vehicleid], vehicleid, -0.7, -2.4, -0.3); SendInfoMessage(playerid, "You've set your carsign to, %s.", params); } return 1; }*/ CMD:remove_callsign(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendErrorMessage(playerid, "You are not in a vehicle."); RemoveCallsign(vehicleid); SendInfoMessage(playerid, "* Use /callsign none?"); return 1; } CMD:oban(playerid,params[]) { return cmd_offlineban(playerid, params); } CMD:offlineban(playerid, params[]) { new player[24], reason[128]; if (Players[playerid][pAdmin] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s["#MAX_PLAYER_NAME"]s[128]", player, reason)) { return SendSyntaxMessage(playerid, "/offlineban (player) (reason)"); } else { format(gExecute, sizeof(gExecute), "SELECT IP FROM rp_accounts WHERE Username = '%s' AND Admin <= %i", mysql_escaped(player), Players[playerid][pAdmin]); mysql_tquery(gConnection, gExecute, "OnPlayerBanCheck", "iss", playerid, player, reason); } return 1; } CMD:osetadmin(playerid, params[]) { new player[24], level; if (Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s["#MAX_PLAYER_NAME"]i", player, level)) { return SendSyntaxMessage(playerid, "/osetadmin (player) (level)"); } else if (level < 0 || level > 6) { return SendErrorMessage(playerid, "The specified level is invalid."); } else { format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", mysql_escaped(player)); mysql_tquery(gConnection, gExecute, "OnPlayerSetAdmin", "isi", playerid, player, level); } return 1; } CMD:osetsupporter(playerid, params[]) { new player[24], level; if (Players[playerid][pAdmin] < 4 && Players[playerid][pSupporter] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s["#MAX_PLAYER_NAME"]i", player, level)) { return SendSyntaxMessage(playerid, "/osetsupporter [player] [1: Supporter 2: Head Supporter]"); } else if (level < 0 || level > 2) { return SendErrorMessage(playerid, "The specified level is invalid."); } else { format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", mysql_escaped(player)); mysql_tquery(gConnection, gExecute, "OnPlayerSetSupporter", "isi", playerid, player, level); } return 1; } CMD:offlinejail(playerid, params[]) { new player[24], minutes, reason[128]; if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s["#MAX_PLAYER_NAME"]is[128]", player, minutes, reason)) { return SendSyntaxMessage(playerid, "/offlinejail (player) (minutes) (reason)"); } else { format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s' AND Admin <= %i", mysql_escaped(player), Players[playerid][pAdmin]); mysql_tquery(gConnection, gExecute, "OnPlayerJailCheck", "issi", playerid, player, reason, minutes); } return 1; } CMD:offlineip(playerid, params[]) { new player[24]; if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s["#MAX_PLAYER_NAME"]", player)) { return SendSyntaxMessage(playerid, "/offlineip (player)"); } else { format(gExecute, sizeof(gExecute), "SELECT IP FROM rp_accounts WHERE Username = '%s'", mysql_escaped(player)); mysql_tquery(gConnection, gExecute, "OnPlayerGetOfflineIP", "is", playerid, player); } return 1; } CMD:taxiduty(playerid, params[]) { if (Players[playerid][pJob] != JOB_TAXI) return SendErrorMessage(playerid, "You need to be a taxi driver to do this"); if (!IsSuitableTaxiCar(GetPlayerVehicleID(playerid))) return SendErrorMessage(playerid, "This vehicle can not be used for transport."); Players[playerid][pTaxiDuty] = !Players[playerid][pTaxiDuty]; Players[playerid][pTaxiFare] = 1; if(Players[playerid][pTaxiDuty]) { new vehicleid = GetPlayerVehicleID(playerid); switch(GetVehicleModel(vehicleid)) { case 445: TaxiObject[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 0.915, 0.0, 0.0, 90.0); case 426: TaxiObject[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 0.9325, 0.0, 0.0, 90.0); case 418: TaxiObject[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 1.12, 0.0, 0.0, 90.0); } SendInfoMessage(playerid, "You are now on the duty! Use /setfare to set the fare!"); } else { new v = GetPlayerVehicleID(playerid); if(TaxiObject[v] != INVALID_OBJECT_ID) DestroyDynamicObject(TaxiObject[v]); TaxiObject[v] = INVALID_OBJECT_ID; SendInfoMessage(playerid, "You are now off the duty!"); } return 1; } CMD:setfare(playerid, params[]) { new price; if (Players[playerid][pJob] != JOB_TAXI) return SendErrorMessage(playerid, "You need to be a taxi driver to do this"); if (!IsSuitableTaxiCar(GetPlayerVehicleID(playerid))) return SendErrorMessage(playerid, "You need to be in a taxi"); if (!Players[playerid][pTaxiDuty]) return SendErrorMessage(playerid, "You are not on duty (/taxiduty)"); if (sscanf(params, "d", price)) return SendSyntaxMessage(playerid, "/setfare [price(1-25)]"); if (price < 0 || price > 25) return SendSyntaxMessage(playerid, "/setfare [price(1-25)]"); Players[playerid][pTaxiFare] = price; SendInfoMessage(playerid, "You have set the fare to %d!", price); return 1; } CMD:accepttaxi(playerid, params[]) { new targetid; if (Players[playerid][pJob] != JOB_TAXI) { return SendErrorMessage(playerid, "You need to be a taxi driver to do this"); } else if (!IsPlayerInTaxi(playerid)) { return SendErrorMessage(playerid, "You need to be in a taxi. (/taxiduty)"); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/accepttaxi [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!Players[targetid][pCallTaxi]) { return SendErrorMessage(playerid, "That player hasn't called for a taxi."); } else { new Float:x, Float:y, Float:z; if (!GetPlayerPosEx(targetid, x, y, z)) { SendInfoMessage(playerid, "Taxi: The call could not be traced. (( Player is inside ))."); } else { Players[targetid][pCallTaxi] = 0; SendInfoMessage(targetid, "Taxi Service: %s has accepted your request, He charges: $%d / per meter", ReturnNameEx(playerid), Players[playerid][pTaxiFare]); SetCheckpoint(playerid, CHECKPOINT_GPS, x, y, z, 3.0); SendInfoMessage(playerid, "Taxi: A waypoint was placed at the caller's last known location."); } } return 1; } CMD:rent(playerid, params[]) { new house = GetClosestHouse(playerid); if (house == INVALID_ID) { return SendErrorMessage(playerid, "There is no house nearby."); } else if (IsHouseOwner(playerid, house)) { return SendErrorMessage(playerid, "You can't rent your own house."); } else if (!Houses[house][hRentPrice]) { return SendErrorMessage(playerid, "This house is not available to rent."); } else if (!Houses[house][hOwner]) { return SendErrorMessage(playerid, "You can't rent an unoccupied house."); } else if (!PlayerCanAfford(playerid, Houses[house][hRentPrice])) { return SendErrorMessage(playerid, "You can't afford to rent this house."); } else if (Players[playerid][pRentHouse] == Houses[house][hID]) { return SendErrorMessage(playerid, "You are renting this house already."); } else { new owner = GetHouseOwnerID(house); if (owner != INVALID_PLAYER_ID) { Players[owner][pJobPaycheck] += Houses[house][hRentPrice]; SendInfoMessage(owner, "You have received %s on your paycheck for rentals.", FormatNumber(Houses[house][hRentPrice])); } else { format(gExecute, sizeof(gExecute), "UPDATE rp_accounts SET Paycheck = Paycheck + %i WHERE ID = %i", Houses[house][hRentPrice], Houses[house][hOwner]); mysql_tquery(gConnection, gExecute); } Players[playerid][pRentHouse] = Houses[house][hID]; RemoveMoney(playerid, Houses[house][hRentPrice]); SendInfoMessage(playerid, "You have rented this house for {33CC33}%s{FFFFFF}. You can now use '/house lock' to lock it.", FormatNumber(Houses[house][hRentPrice])); } return 1; } CMD:unrent(playerid, params[]) { if (!Players[playerid][pRentHouse]) { return SendErrorMessage(playerid, "You are not renting any house."); } else { Players[playerid][pRentHouse] = 0; SendInfoMessage(playerid, "You are no longer renting any house."); } return 1; } CMD:listguns(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/listguns [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { SendFormatMessage(playerid, COLOR_YELLOW, "%s's Weapons:", ReturnNameEx(targetid, 0)); if (Weapons[targetid][wMelee] > 0) { SendInfoMessage(playerid, "* Melee: %s", GetWeapon(Weapons[targetid][wMelee])); } if (Weapons[targetid][wPrimary] > 0) { SendInfoMessage(playerid, "* Primary: %s (%i ammo)", GetWeapon(Weapons[targetid][wPrimary]), Weapons[targetid][wPrimaryAmmo]); } if (Weapons[targetid][wSecondary] > 0) { SendInfoMessage(playerid, "* Secondary: %s (%i ammo)", GetWeapon(Weapons[targetid][wSecondary]), Weapons[targetid][wSecondaryAmmo]); } if (Weapons[targetid][wTertiary] > 0) { SendInfoMessage(playerid, "* Tertiary: %s (%i ammo)", GetWeapon(Weapons[targetid][wTertiary]), Weapons[targetid][wTertiaryAmmo]); } if (Players[targetid][pTazer]) { SendInfoMessage(playerid, "* Taser"); } } return 1; } CMD:masked(playerid, params[]) { if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { SendClientMessage(playerid, COLOR_YELLOW, "Masked Players:"); foreach (new i : Player) { if (Players[i][pMaskID] > 0) { SendInfoMessage(playerid, "%s (%s) (ID: %i)", ReturnName(i), ReturnNameEx(i), i); } } } return 1; } CMD:debug(playerid, params[]) // drakeydebug { if (Players[playerid][pAdmin] < 2) { return SendErrorMessage(playerid, "Developers / Administrators command only."); } else if (isnull(params)) { SendClientMessage(playerid, COLOR_YELLOW, "[DEVELOPER ?DEBUG (SCRIPT TESTING PURPOSES ONLY)]:"); SendClientMessage(playerid, COLOR_WHITE, "[/debug brokenleg]"); SendClientMessage(playerid, COLOR_WHITE, "[/debug clear]"); } if (!strcmp(params, "brokenleg", true)) { SendClientMessage(playerid, COLOR_YELLOW, "[DEBUG] Unable to sprint or jump. To remove this, use /debug clear."); Players[playerid][pBrokenLeg] = 1; } if (!strcmp(params, "clear", true)) { SendClientMessage(playerid, COLOR_YELLOW, "[DEBUG] All debugs modes have been cleared."); Players[playerid][pBrokenLeg] = 0; } return 1; } CMD:addtrashbin(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (GetClosestTrashbin(playerid) != INVALID_ID) { return SendErrorMessage(playerid, "There is another trashbin nearby."); } else { new Float:x, Float:y, Float:z, Float:angle, id = INVALID_ID; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); x += 2.0 * floatsin(-angle, degrees); y += 2.0 * floatcos(-angle, degrees); id = AddTrashbin(x, y, z, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available trashbin slots."); } else { EditDynamicObjectEx(playerid, EDIT_TYPE_TRASHBIN, Trashbins[id][tObject], id); SendInfoMessage(playerid, "You have added trashbin %i (/edittrashbin).", id); } } return 1; } CMD:gototrashbin(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/gototrashbin (trashbin ID)"); } else if (!IsValidTrashbinID(id)) { return SendErrorMessage(playerid, "You have specified an invalid trashbin."); } else { SetPlayerPosEx(playerid, Trashbins[id][tX], Trashbins[id][tY], Trashbins[id][tZ], Trashbins[id][tA], Trashbins[id][tInterior], Trashbins[id][tWorld]); SendInfoMessage(playerid, "You have teleported to trashbin %i.", id); } return 1; } CMD:edittrashbin(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/edittrashbin (trashbin ID)"); } else if (!IsValidTrashbinID(id)) { return SendErrorMessage(playerid, "You have specified an invalid trashbin."); } else { EditDynamicObjectEx(playerid, EDIT_TYPE_TRASHBIN, Trashbins[id][tObject], id); SendInfoMessage(playerid, "Click on the disk icon to save changes."); } return 1; } CMD:deletetrashbin(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/edittrashbin (trashbin ID)"); } else if (!IsValidTrashbinID(id)) { return SendErrorMessage(playerid, "You have specified an invalid trashbin."); } else { ClearTrashbinItems(id); DestroyDynamic3DTextLabel(Trashbins[id][tText]); DestroyDynamicObject(Trashbins[id][tObject]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_trashbins WHERE `tID` = %i", Trashbins[id][tID]); mysql_tquery(gConnection, gExecute); Trashbins[id][tExists] = 0; SendInfoMessage(playerid, "You have deleted trashbin %i.", id); } return 1; } CMD:savepos(playerid, params[]) { if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { GetPlayerPos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2]); GetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]); Players[playerid][pInterior] = GetPlayerInterior(playerid); Players[playerid][pWorld] = GetPlayerVirtualWorld(playerid); SendInfoMessage(playerid, "You have saved your current position. Use /loadpos to teleport."); } return 1; } CMD:loadpos(playerid, params[]) { if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { SetPlayerPos(playerid, Players[playerid][pSpawn][0], Players[playerid][pSpawn][1], Players[playerid][pSpawn][2]); SetPlayerFacingAngle(playerid, Players[playerid][pSpawn][3]); SetPlayerInterior(playerid, Players[playerid][pInterior]); SetPlayerVirtualWorld(playerid, Players[playerid][pWorld]); SendInfoMessage(playerid, "You have teleported to your saved position."); } return 1; } CMD:tow(playerid, params[]) { new Float:x, Float:y, Float:z, Float:angle, vehicleid = GetPlayerVehicleID(playerid); if(GetVehicleModel(vehicleid) != 525) return SendErrorMessage(playerid, "You are not in a tow truck."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SendErrorMessage(playerid, "You are not the driver of the vehicle."); if(IsAPlane(vehicleid) || IsAHelicopter(vehicleid)) return SendErrorMessage(playerid,"You cannot tow an aircraft."); new trailerid = GetVehicleTrailer(vehicleid); if (trailerid) { DetachTrailerFromVehicle(vehicleid); SendInfoMessage(playerid, "You've detached the current vehicle."); } else { GetVehiclePos(vehicleid, x, y, z); GetVehicleZAngle(vehicleid, angle); for (new i = 1; i < MAX_VEHICLES; i ++) { if (i == vehicleid || !IsVehicleStreamedIn(i, playerid)) continue; if (IsVehicleInRangeOfPoint(i, 5.0, x - (3.0 * floatsin(-angle, degrees)), y - (3.0 * floatcos(-angle, degrees)), z)) { AttachTrailerToVehicle(i, vehicleid); SendInfoMessage(playerid, "You've hooked a %s to the back of the Tow Truck.", GetVehicleName(i)); return 1; } } SendErrorMessage(playerid, "There are no vehicles around you."); } return 1; } CMD:impound(playerid, params[]) { new price, vehicleid = GetPlayerVehicleID(playerid); if (!IsPlayerInFaction(playerid, FACTION_LEO)) { return SendErrorMessage(playerid, "You are not part of the law enforcement."); } else if (GetVehicleModel(vehicleid) != 525) { return SendErrorMessage(playerid, "You are not in a tow truck."); } else if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendErrorMessage(playerid, "You are not the driver of the vehicle."); } else if (!IsTrailerAttachedToVehicle(vehicleid)) { return SendErrorMessage(playerid, "There is no vehicle hooked onto the truck."); } else if (sscanf(params, "i", price)) { return SendSyntaxMessage(playerid, "/impound [price]"); } else if (price < 1 || price > 10000) { return SendErrorMessage(playerid, "The specified price must be between $1 and $10,000."); } else if (!IsPlayerInRangeOfPoint(playerid, 20.0, 1624.3313,-1819.2130,13.5258)) { return SendErrorMessage(playerid, "You are not at the impound yard."); } else { new vehicle = GetVehicleID(GetVehicleTrailer(vehicleid)); if (vehicle == INVALID_ID) { SendErrorMessage(playerid, "There is no registration provided with this vehicle."); } else { Vehicles[vehicle][vImpound] = price; DetachTrailerFromVehicle(vehicleid); GetVehiclePos(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][0], Vehicles[vehicle][vSpawn][1], Vehicles[vehicle][vSpawn][2]); GetVehicleZAngle(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][3]); UpdateVehicle(vehicle); SaveVehicle(vehicle); SendFactionMessage(Players[playerid][pFaction], COLOR_RADIO, "** %s has impounded a %s for %s. **", ReturnNameEx(playerid, 0), GetVehicleModelName(Vehicles[vehicle][vModel]), FormatNumber(price)); } } return 1; } CMD:stop(playerid, params[]) { if (Players[playerid][pWorking]) { StopWorking(playerid); SendInfoMessage(playerid, "You are no longer working."); } return 1; } CMD:orderpackage(playerid, params[]) { if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL) { return SendErrorMessage(playerid, "You are not part of an illegal faction."); } else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 1) { return SendErrorMessage(playerid, "You are not a high ranking member."); } else if (Players[playerid][pPackageOrder] != PACKAGE_TYPE_NONE) { return SendErrorMessage(playerid, "You have already ordered a package."); } else if (Players[playerid][pPackageType] != PACKAGE_TYPE_NONE) { return SendErrorMessage(playerid, "You already have a package to pickup."); } else if (Players[playerid][pPackageTime] > gettime()) { return SendErrorMessage(playerid, "You must wait up to %i minutes before making another order.", (Players[playerid][pPackageTime] - gettime()) / 120); } else { Dialog_Show(playerid, OrderPackage, DIALOG_STYLE_LIST, "{FFFFFF}Order Package", "Weapon Package\nDrug Package", "Select", "Cancel"); } return 1; } CMD:makedrug(playerid, params[]) { new option[64]; new amount; if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL) { return SendErrorMessage(playerid, "You are not part of an illegal faction."); } else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 2) { return SendErrorMessage(playerid, "You are not a high enough rank to do this."); } else if (sscanf (params, "s[128]i", option, amount)) { SendSyntaxMessage(playerid, "/makedrug [drug] [amount]"); SendInfoMessage(playerid, "Drugs: crack, heroin, lsd, ecstasy"); return 1; } else { if (!strcmp(option, "crack", true)) { new item1 = GetInventoryItemID(playerid, "Cocaine"); new item2 = GetInventoryItemID(playerid, "Baking Soda"); if (item1 == INVALID_ID) { return SendErrorMessage(playerid, "You need cocaine and baking soda."); } else if (item2 == INVALID_ID) { return SendErrorMessage(playerid, "You need cocaine and baking soda."); } else if (Inventory[playerid][item1][invValue] < amount) { return SendErrorMessage(playerid, "You don't have enough cocaine (%i)", amount); } else if (Inventory[playerid][item2][invValue] < amount*5) { return SendErrorMessage(playerid, "You don't have enough baking soda (%i)", amount*5); } else { RemoveItemValue(playerid, item1, amount); RemoveItemValue(playerid, item2, amount*5); AddItemToInventory(playerid, "Crack", amount*5); SendInfoMessage(playerid, "{CFCFCF}You mixed {33AA33}%ig{CFCFCF} baking soda and {33AA33}%ig{CFCFCF} cocaine into {33AA33}%ig{CFCFCF} crack.", amount*5, amount, amount*5); } } else if (!strcmp(option, "heroin", true)) { new item = GetInventoryItemID(playerid, "Opium Poppies"); if (item == INVALID_ID) { return SendErrorMessage(playerid, "You need opium poppies."); } else if (Inventory[playerid][item][invValue] < amount) { return SendErrorMessage(playerid, "You don't have enough opium poppies (%i)", amount); } else { RemoveItemValue(playerid, item, amount); AddItemToInventory(playerid, "Heroin", amount); SendInfoMessage(playerid, "{CFCFCF}You extract {33AA33}%ig{CFCFCF} heroin from {33AA33}%ig{CFCFCF} of opium poppies.", amount, amount); } } else if (!strcmp(option, "lsd", true)) { new item = GetInventoryItemID(playerid, "Morning Glory Seeds"); if (item == INVALID_ID) { return SendErrorMessage(playerid, "You need morning glory seeds."); } else if (Inventory[playerid][item][invValue] < amount) { return SendErrorMessage(playerid, "You don't have enough morning glory seeds (%i)", amount); } else { RemoveItemValue(playerid, item, amount); AddItemToInventory(playerid, "LSD", amount); SendInfoMessage(playerid, "{CFCFCF}You extract {33AA33}%ig{CFCFCF} LSD from {33AA33}%ig{CFCFCF} of morning glory seeds.", amount, amount); } } else if (!strcmp(option, "ecstasy", true)) { new item1 = GetInventoryItemID(playerid, "Hydrogen Peroxide"); new item2 = GetInventoryItemID(playerid, "Formic Acid"); new item3 = GetInventoryItemID(playerid, "Isosafrole"); if (item1 == INVALID_ID) { return SendErrorMessage(playerid, "You need hydrogen peroxide, formic acid and isosafrole."); } else if (item2 == INVALID_ID) { return SendErrorMessage(playerid, "You need hydrogen peroxide, formic acid and isosafrole."); } else if (item3 == INVALID_ID) { return SendErrorMessage(playerid, "You need hydrogen peroxide, formic acid and isosafrole."); } else if (Inventory[playerid][item1][invValue] < amount*2) { return SendErrorMessage(playerid, "You don't have enough hydrogen peroxide (%i)", amount*2); } else if (Inventory[playerid][item2][invValue] < amount*7) { return SendErrorMessage(playerid, "You don't have enough formic acid (%i)", amount*7); } else if (Inventory[playerid][item3][invValue] < amount*4) { return SendErrorMessage(playerid, "You don't have enough isosafrole (%i)", amount*4); } else { RemoveItemValue(playerid, item1, amount*2); RemoveItemValue(playerid, item2, amount*7); RemoveItemValue(playerid, item3, amount*4); AddItemToInventory(playerid, "Ecstasy", amount); SendInfoMessage(playerid, "{CFCFCF}You mix {33AA33}%ig{CFCFCF} hydrogen peroxide, {33AA33}%ig{CFCFCF} formic acid and {33AA33}%ig{CFCFCF} isosafrole and get %ig{CFCFCF} ecstasy.", amount*2, amount*7, amount*4, amount); } } } return 1; } CMD:order(playerid, params[]) { if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL) { return SendErrorMessage(playerid, "You are not part of an illegal faction."); } else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 2) { return SendErrorMessage(playerid, "You are not a high enough rank to do this."); } else if (!IsPlayerNearPoint(playerid, 3.0, 2525.4495,-2221.1128,13.5469, 0, 0)) { return SendErrorMessage(playerid, "You are not in the right place."); } else { Dialog_Show(playerid, OrderIllegal, DIALOG_STYLE_LIST, "{FFFFFF}Order", "Weapons\nDrugs", "Select", "Cancel"); } return 1; } CMD:craft(playerid, params[]) { if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL) { return SendErrorMessage(playerid, "You are not part of an illegal faction."); } else if (Players[playerid][pFactionRank] < Factions[Players[playerid][pFaction]][fcMaxRanks] - 2) { return SendErrorMessage(playerid, "You are not a high enough rank to do this."); } else {//format(string, sizeof(string), "%s\nItem: %s (%s)", string, g_CompanyItems[i][e_ItemName], FormatNumber(Products[company][index][prPrice])); new string[512]; if (Factions[Players[playerid][pFaction]][fcWeaponRights][0]) { //format(string, sizeof(string), "Melee Weapons\n", string); strcat(string, "Melee Weapons\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][1]) { //format(string, sizeof(string), "Pistols\n", string); strcat(string, "Pistols\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][2]) { //format(string, sizeof(string), "Shotguns\n", string); strcat(string, "Shotguns\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][3]) { //format(string, sizeof(string), "Sub Machine Guns\n", string); strcat(string, "Sub Machine Guns\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][4]) { //format(string, sizeof(string), "Rifles\n", string); strcat(string, "Rifles\n"); } if (Factions[Players[playerid][pFaction]][fcWeaponRights][5]) { //format(string, sizeof(string), "Rifles\n", string); strcat(string, "Explosives\n"); } Dialog_Show(playerid, Crafting, DIALOG_STYLE_LIST, "{FFFFFF}Crafting", string, "Select", "Cancel"); } return 1; } CMD:load(playerid, params[]) { if (Players[playerid][pJob] != JOB_TRANSPORTER) { return SendErrorMessage(playerid, "You need to have the transporter job to do this."); } else if (Players[playerid][pWorking]) { return SendErrorMessage(playerid, "You are already working - use /stop to quit working."); } else if (!IsPlayerInRangeOfPoint(playerid, 3.0, 2175.3335, -2266.9937, 13.3891)) { return SendErrorMessage(playerid, "You are not at the warehouse in Ocean Docks."); } else if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { return SendErrorMessage(playerid, "You need to be onfoot to load the goods."); } else if(EnteringVehicle[playerid] == 1) { return SendErrorMessage(playerid, "You must not be entering the vehicle while picking up load."); } Dialog_Show(playerid, GoodsType, DIALOG_STYLE_LIST, "{FFFFFF}List of Goods", "Retail Items\nClothing Items\nFood and Drinks\nCellphones\nGym Supplies\nAmmunition\nBar Drinks", "Choose", "Cancel"); return 1; } CMD:deliver(playerid, params[]) { new company = GetClosestDeliveryPoint(playerid), vehicleid = GetPlayerVehicleID(playerid), string[128] ; if (Players[playerid][pJob] != JOB_TRANSPORTER) { return SendErrorMessage(playerid, "You need to have the transporter job to do this."); } else if (!IsTransportVehicle(vehicleid)) { return SendErrorMessage(playerid, "You are not in any transport vehicle."); } else if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendErrorMessage(playerid, "You must be the driver of the vehicle."); } else if (!VehicleInformation[vehicleid][vGoods]) { return SendErrorMessage(playerid, "There is no goods loaded in this vehicle."); } else if (company == INVALID_ID) { return SendErrorMessage(playerid, "There is no delivery point nearby."); } else if (Companies[company][cType] != VehicleInformation[vehicleid][vGoods]) { return SendErrorMessage(playerid, "You can only deliver your load to a %s.", GetCompanyType(VehicleInformation[vehicleid][vGoods])); } else { /*new price = floatround(GetPlayerDistanceFromPoint(playerid, 2175.3335, -2266.9937, 13.3891)) / 2;*/ new price = floatround(GetPlayerDistanceFromPoint(playerid, 2175.3335, -2266.9937, 13.3891)); Players[playerid][pJobPaycheck] += price; Companies[company][cStock] = Companies[company][cStock] + 200; SendInfoMessage(playerid, "You have received %s on your paycheck for the delivery.", FormatNumber(price)); new v_dbID = GetVehicleID(vehicleid); if(IsVehicleOwner(playerid, v_dbID)) { new bonus = floatround((price/100)*30); Players[playerid][pPocketMoney] += bonus; SendInfoMessage(playerid, "You have received a bonus of %s on your paycheck for delivering with your own vehicle.", FormatNumber(bonus)); } else { new Float:vcHealth; GetVehicleHealth(GetPlayerVehicleID(playerid), vcHealth); new damagePayment = floatround((vehicleStartingHealth[playerid]-vcHealth)*3); RemoveMoney(playerid, damagePayment); SendInfoMessage(playerid, "You have paid %s as cost for the damage you have caused to your duty vehicle.", FormatNumber(damagePayment)); } SaveCompany(company); DestroyDynamicObject(VehicleInformation[vehicleid][vObject]); VehicleInformation[vehicleid][vGoods] = 0; VehicleInformation[vehicleid][vObject] = INVALID_OBJECT_ID; for (new i = 0; i < MAX_GAS_PUMPS; i ++) { if (GasPumps[i][gpCompany] == Companies[company][cID]) { GasPumps[i][gpFuel] = GasPumps[i][gpFuel] + 1000.0; SaveGasPump(i); format(string, sizeof(string), "ID: %i\nGasoline: %.1f gallons", i, GasPumps[i][gpFuel]); UpdateDynamic3DTextLabelText(GasPumps[i][gpText], COLOR_GREY, string); } } } return 1; } CMD:jobhelp(playerid, params[]) { if (Players[playerid][pJob] == JOB_NONE) { return SendErrorMessage(playerid, "You are not employed - use /guide to find a job."); } Dialog_Show(playerid, JobHelp, DIALOG_STYLE_LIST, "{FFFFFF}Job Help", "Objective\nWork Location", "Select", "Cancel"); return 1; } CMD:work(playerid, params[]) { if (Players[playerid][pJob] == JOB_NONE) { return SendErrorMessage(playerid, "You are not employed - use /guide to find a job."); } else if (Players[playerid][pWorking]) { return SendErrorMessage(playerid, "You are already working - use /stop to quit working."); } switch (Players[playerid][pJob]) { case JOB_FORKLIFTER: { if (GetVehicleModel(GetPlayerVehicleID(playerid)) != 530) { return SendErrorMessage(playerid, "You need to be driving a forklift."); } else { StartWorking(playerid); SendInfoMessage(playerid, "Please drive to the {FF0000}checkpoint{FFFFFF} to load the cargo."); } } case JOB_MINER: { if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { return SendErrorMessage(playerid, "You need to be onfoot to start mining."); } else if (!IsPlayerInRangeOfPoint(playerid, 3.0, -1858.5516, -1651.3812, 26.5788) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1790.7683, -1649.2581, 33.3813) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1775.1649, -1643.3854, 29.5218) && !IsPlayerInRangeOfPoint(playerid, 3.0, -1801.5831, -1649.7592, 26.5446)) { return SendErrorMessage(playerid, "You need to be near the mining rocks."); } else { Players[playerid][pWorking] = 1; Players[playerid][pMining] = 1; Players[playerid][pJobStage] = 0; SendInfoMessage(playerid, "You are now mining. Please wait..."); TogglePlayerControllable(playerid, false); ApplyAnimation(playerid, "BASEBALL", "BAT_4", 4.1, 1, 0, 0, 0, 0, 1); DisablePlayerCheckpoint(playerid); SetPlayerAttachedObject(playerid, ATTACHED_SLOT_MISC, 337, 6); SetTimerEx("MiningFinished", 20000, false, "i", playerid); } } case JOB_PIZZA: { if (GetVehicleModel(GetPlayerVehicleID(playerid)) != 448) { return SendErrorMessage(playerid, "You need to be driving a pizza scooter."); } else if (!IsPlayerInRangeOfPoint(playerid, 10.0, 2092.8154,-1796.5688,13.3828)) { return SendErrorMessage(playerid, "You need to be near the pizza stacks."); } else { new house = GetRandomHouse(); if (house == INVALID_ID) return SendErrorMessage(playerid, "There are no available houses in Los Santos - contact an admin!"); Players[playerid][pWorking] = 1; SetCheckpoint(playerid, CHECKPOINT_JOB, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], 3.0); SetTimerEx("DelayPizzaCP", 1500, false, "ii", playerid, house); SendInfoMessage(playerid, "Please drive to the {FF0000}checkpoint{FFFFFF} and deliver the pizza."); } } case JOB_TRASHMAN: { if (GetVehicleModel(GetPlayerVehicleID(playerid)) != 408) { return SendErrorMessage(playerid, "You need to be driving a garbage truck."); } else if (!IsPlayerInRangeOfPoint(playerid, 15.0, 2184.9795, -1976.9451, 13.5528)) { return SendErrorMessage(playerid, "You need to be near the junk yard in Willowfield."); } else { new trash = GetRandomTrash(); if (trash == INVALID_ID) return SendErrorMessage(playerid, "There are no available trash bins in Los Santos - contact an admin!"); Players[playerid][pWorking] = 1; Players[playerid][pTrashPickup] = 0; SetCheckpoint(playerid, CHECKPOINT_JOB, Trashbins[trash][tX], Trashbins[trash][tY], Trashbins[trash][tZ], 3.0); SendInfoMessage(playerid, "Make your way to the trash bin and pick up the garbage."); } } /*case JOB_TRASHMAN: { if (GetVehicleModel(GetPlayerVehicleID(playerid)) != 408) { return SendErrorMessage(playerid, "You need to be driving a garbage truck."); else if (!IsPlayerInRangeOfPoint(playerid, 5.0, 2184.9795, -1976.9451, 13.5528)) { return SendErrorMessage(playerid, "You need to be near the junk yard in Willowfield."); } else { for (new i = 0; i < sizeof(g_TrashPickups); i ++) { gTrashObjects[playerid][i] = CreatePlayerObject(playerid, 1265, g_TrashPickups[i][0], g_TrashPickups[i][1], g_TrashPickups[i][2], 0.0, 0.0, g_TrashPickups[i][3]); } Players[playerid][pWorking] = 1; Players[playerid][pTrashPickup] = 0; SetCheckpoint(playerid, CHECKPOINT_JOB, g_TrashPickups[Players[playerid][pTrashPickup]][0], g_TrashPickups[Players[playerid][pTrashPickup]][1], g_TrashPickups[Players[playerid][pTrashPickup]][2], 2.0); SendInfoMessage(playerid, "Please make your way through the {FF0000}checkpoints{FFFFFF} and pickup the garbage."); } }*/ } return 1; } CMD:guide(playerid, params[]) { Dialog_Show(playerid, Guide, DIALOG_STYLE_LIST, "{FFFFFF}Guide", "Acquire a Job\nDriving License\nFind Location\nList of FAQs", "Select", "Cancel"); return 1; } CMD:enter(playerid, params[]) { new success = EnterCaller(playerid); if (!success) { SendErrorMessage(playerid, "There is no door nearby."); } return 1; } CMD:exit(playerid, params[]) { new success = ExitCaller(playerid); if (!success) { SendErrorMessage(playerid, "There is no door nearby."); } return 1; } CMD:edittag(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/edittag [tag id]"); } else if (!IsValidTagID(id)) { return SendErrorMessage(playerid, "You have specified an invalid tag ID."); } else { //EditDynamicObjectEx(playerid, EDIT_TYPE_TAG, Tags[id][tagObject], id); //SendInfoMessage(playerid, "Click on the disk icon to save changes."); Players[playerid][pEditID] = id; Dialog_Show(playerid, TagEditMenu, DIALOG_STYLE_LIST, "{FFFFFF}Edit Tag", "Position\nText\nColor\nFont Size\nBold: %s\nTag Resolution", "Select", "Cancel", (Tags[id][tagBold]) ? ("Yes") : ("No")); } return 1; } CMD:addtag(playerid, params[]) { new tag[64]; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s[64]", tag)) { SendSyntaxMessage(playerid, "/tag [text]"); } else { new Float:x, Float:y, Float:z, Float:angle, id = INVALID_ID; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); x += 2.0 * floatsin(-angle, degrees); y += 2.0 * floatcos(-angle, degrees); id = AddTag(x, y, z, angle, tag); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available spray tag slots."); } else { EditDynamicObjectEx(playerid, EDIT_TYPE_TAG, Tags[id][tagObject], id); SendInfoMessage(playerid, "You have added tag %i (/edittag).", id); } } return 1; } CMD:addspray(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (GetClosestSprayTag(playerid) != INVALID_ID) { return SendErrorMessage(playerid, "There is another spray tag nearby."); } else if (IsPlayerInside(playerid)) { return SendErrorMessage(playerid, "You need to be outside to add spray tags."); } else { new Float:x, Float:y, Float:z, Float:angle, id = INVALID_ID; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); x += 2.0 * floatsin(-angle, degrees); y += 2.0 * floatcos(-angle, degrees); id = AddSprayTag(x, y, z, angle); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available spray tag slots."); } else { EditDynamicObjectEx(playerid, EDIT_TYPE_SPRAY, SprayTags[id][sObject], id); SendInfoMessage(playerid, "You have added spray tag %i (/editspray).", id); } } return 1; } CMD:checkspray(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { new spray = GetClosestSprayTag(playerid); if (spray == INVALID_ID) { SendErrorMessage(playerid, "There is no spray tag nearby."); } else { SendInfoMessage(playerid, "The spray ID is: %i. Use /editspray to edit this spray tag.", spray); } } return 1; } CMD:checktag(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { new tag = GetClosestTag(playerid); if (tag == INVALID_ID) { SendErrorMessage(playerid, "There is no tag nearby."); } else { SendInfoMessage(playerid, "The tag ID is: %i. Use /editspray to edit this tag.", tag); } } return 1; } CMD:editspray(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/editspray (spray ID)"); } else if (!IsValidSprayTagID(id)) { return SendErrorMessage(playerid, "You have specified an invalid spray tag ID."); } else { EditDynamicObjectEx(playerid, EDIT_TYPE_SPRAY, SprayTags[id][sObject], id); SendInfoMessage(playerid, "Click on the disk icon to save changes."); } return 1; } CMD:deletespray(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/deletespray (spray ID)"); } else if (!IsValidSprayTagID(id)) { return SendErrorMessage(playerid, "You have specified an invalid spray tag ID."); } else { DestroyDynamicObject(SprayTags[id][sObject]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_spraytags WHERE `stID` = %i", SprayTags[id][sID]); mysql_tquery(gConnection, gExecute); SprayTags[id][sExists] = 0; SendInfoMessage(playerid, "You have deleted spray tag %i.", id); } return 1; } CMD:deletetag(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/deletetag [tag id]"); } else if (!IsValidTagID(id)) { return SendErrorMessage(playerid, "You have specified an invalid tag ID."); } else { DestroyDynamicObject(Tags[id][tagObject]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_tags WHERE `stID` = %i", Tags[id][tagID]); mysql_tquery(gConnection, gExecute); Tags[id][tagExists] = 0; SendInfoMessage(playerid, "You have deleted tag %i.", id); } return 1; } CMD:gotospray(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/gotospray (spray ID)"); } else if (!IsValidSprayTagID(id)) { return SendErrorMessage(playerid, "You have specified an invalid spray tag."); } else { SetPlayerPos(playerid, SprayTags[id][sX], SprayTags[id][sY], SprayTags[id][sZ]); SendInfoMessage(playerid, "You have teleported to spray tag %i.", id); } return 1; } CMD:clearspray(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/gotospray (spray ID)"); } else if (!IsValidSprayTagID(id)) { return SendErrorMessage(playerid, "You have specified an invalid spray tag."); } else { strcpy(SprayTags[id][sText], "/spray to spray\nthis point", 64); SprayTags[id][sColor] = 0xFFFFFFFF; UpdateSprayTag(id); SaveSprayTag(id); SendInfoMessage(playerid, "You have cleared spray tag %i.", id); } return 1; } CMD:spray(playerid, params[]) { new spray = GetClosestSprayTag(playerid), text[64]; if (GetPlayerFactionType(playerid) != FACTION_ILLEGAL) { return SendErrorMessage(playerid, "You are not part of an illegal faction."); } else if (!Factions[Players[playerid][pFaction]][fcSprayRights]) { return SendErrorMessage(playerid, "Your faction is not authorized to spray tags."); } else if (GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { return SendErrorMessage(playerid, "You must be onfoot to spray a tag."); } else if (!IsValidSprayTagID(spray)) { return SendErrorMessage(playerid, "There is no spray tag nearby."); } else if (sscanf(params, "s[64]", text)) { return SendSyntaxMessage(playerid, "/spray (text) - Use ~n~ for a new line."); } else if (Players[playerid][pSprayTag] != INVALID_ID) { return SendErrorMessage(playerid, "You are spraying a tag already."); } else { new time = (strlen(params) * 1000) / 2; foreach (new i : Player) { if (Players[i][pSprayTag] == spray) { return SendErrorMessage(playerid, "This tag is being sprayed by another player."); } } strcpy(text, params); strreplace(text, "~n~", "\n"); strreplace(text, "~g~", "{33AA33}"); strreplace(text, "~N~", "\n"); strpack(gTemporaryText[playerid], text, 64); SetTimerEx("TagSprayed", time, false, "ii", playerid, spray); PlayAnimation(playerid, "GRAFFITI", "spraycan_fire", 4.1, 1, 0, 0, 0, 0, 1); ShowFooterText(playerid, "~g~Spraying the tag, please wait...", time); ShowActionBubble(playerid, "* %s takes out a spraycan and begins to spray the tag.", ReturnNameEx(playerid)); Players[playerid][pSprayTag] = spray; } return 1; } CMD:setdamages(playerid, params[]) { if (Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { ShowWeaponDamageEditMenu(playerid); } return 1; } CMD:addpayphone(playerid, params[]) { if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (GetClosestPayphone(playerid) != INVALID_ID) { return SendErrorMessage(playerid, "There is another payphone nearby."); } else { new Float:x, Float:y, Float:z, Float:angle, id = INVALID_ID; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, angle); x += 2.0 * floatsin(-angle, degrees); y += 2.0 * floatcos(-angle, degrees); id = AddPayphone(x, y, z, angle, GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid)); if (id == INVALID_ID) { return SendErrorMessage(playerid, "There are no available payphone slots."); } else { EditDynamicObjectEx(playerid, EDIT_TYPE_PAYPHONE, Payphones[id][phObject], id); SendInfoMessage(playerid, "You have added payphone %i (/editpayphone).", id); } } return 1; } CMD:gotopayphone(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/gotopayphone (payphone ID)"); } else if (!IsValidPayphoneID(id)) { return SendErrorMessage(playerid, "You have specified an invalid payphone ID."); } else { SetPlayerPosEx(playerid, Payphones[id][phX], Payphones[id][phY], Payphones[id][phZ], Payphones[id][phA], Payphones[id][phInterior], Payphones[id][phWorld]); SendInfoMessage(playerid, "You have teleported to payphone %i.", id); } return 1; } CMD:editpayphone(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/editpayphone (payphone ID)"); } else if (!IsValidPayphoneID(id)) { return SendErrorMessage(playerid, "You have specified an invalid payphone ID."); } else { EditDynamicObjectEx(playerid, EDIT_TYPE_PAYPHONE, Payphones[id][phObject], id); SendInfoMessage(playerid, "Click on the disk icon to save changes."); } return 1; } CMD:deletepayphone(playerid, params[]) { new id; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", id)) { return SendSyntaxMessage(playerid, "/deletepayphone (payphone ID)"); } else if (!IsValidPayphoneID(id)) { return SendErrorMessage(playerid, "You have specified an invalid payphone ID."); } else { if (Payphones[id][phCaller] != INVALID_PLAYER_ID) { HangupCall(Payphones[id][phCaller]); } DestroyDynamic3DTextLabel(Payphones[id][phText]); DestroyDynamicObject(Payphones[id][phObject]); format(gExecute, sizeof(gExecute), "DELETE FROM rp_payphones WHERE `phID` = %i", Payphones[id][phID]); mysql_tquery(gConnection, gExecute); Payphones[id][phExists] = 0; SendInfoMessage(playerid, "You have deleted payphone %i.", id); } return 1; } CMD:stereo(playerid, params[]) { if (Stereos[playerid][pStereoID] == INVALID_ID) { return SendErrorMessage(playerid, "You need to place a stereo down first."); } else if (!IsPlayerNearPoint(playerid, 3.0, Stereos[playerid][pStereoX], Stereos[playerid][pStereoY], Stereos[playerid][pStereoZ], Stereos[playerid][pStereoInterior], Stereos[playerid][pStereoWorld])) { return SendErrorMessage(playerid, "You need to be in range of your stereo."); } else { Dialog_Show(playerid, Stereo, DIALOG_STYLE_LIST, "{FFFFFF}Stereo Settings", "Change URL\nPickup Stereo", "Select", "Cancel"); } return 1; } CMD:destroystereo(playerid, params[]) { new targetid = GetNearbyStereoPlayerID(playerid); if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (targetid == INVALID_PLAYER_ID) { return SendErrorMessage(playerid, "There is no stereo nearby."); } else { ResetStereo(targetid); SendInfoMessage(playerid, "You have destroyed %s's stereo.", ReturnNameEx(targetid, 0)); } return 1; } CMD:setstyle(playerid, params[]) { new category, style; if(sscanf(params, "ii", category, style)) { SendSyntaxMessage(playerid, "/setstyle [category] [style]"); SendClientMessage(playerid, COLOR_LIGHTGREY, "1: Chat style 2: Walk style"); SendClientMessage(playerid, COLOR_LIGHTGREY, "3: Payment"); } else { if (category == 1) { if (Players[playerid][pDonator] < DONATOR_BASIC) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } if(style < 1 || style > 8) { return SendErrorMessage(playerid, "Style must be between 1 and 8."); } Players[playerid][pChatStyle] = style; } else if (category == 2) { if (Players[playerid][pDonator] < DONATOR_BASIC) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (style < 1 || style > 16) { SendSyntaxMessage(playerid, "/setstyle [walkstyle] [1-16]"); SendClientMessage(playerid, -1, "Random: 7, 8."); SendClientMessage(playerid, -1, "Normal: 1, 2, 6, 9, 11."); SendClientMessage(playerid, -1, "Old/Fat: 3, 4, 5, 10."); SendClientMessage(playerid, -1, "Woman: 12, 13, 14, 15, 16."); return 1; } Players[playerid][pWalkStyle] = style; SendInfoMessage(playerid, "You have changed your walk style. (/walk)"); } else if (category == 3) { Dialog_Show(playerid, PaymentType, DIALOG_STYLE_LIST, "{FFFFFF}Set payment type", "Cash\nBank Account", "Select", "Cancel"); return 1; } else return cmd_setstyle(playerid, ""); } return 1; } /*CMD:chatstyle(playerid, params[]) { new type; if (Players[playerid][pDonator] < DONATOR_BASIC) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "i", type) || !(1 <= type <= 8)) { return SendSyntaxMessage(playerid, "/chatstyle (1 to 8)"); } else { Players[playerid][pChatStyle] = type; SendInfoMessage(playerid, "You have changed your chat style."); } return 1; }*/ CMD:confirm(playerid, params[]) { new vehicleid = Players[playerid][pAddVehicle], vehicle, Float:x, Float:y, Float:z, Float:angle; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (vehicleid == INVALID_VEHICLE_ID) { return SendErrorMessage(playerid, "You are not editing any vehicles."); } else { GetVehiclePos(vehicleid, x, y, z); GetVehicleZAngle(vehicleid, angle); if (Players[playerid][pVehicleRental]) { vehicle = AddVehicle(Players[playerid][pVehicleCompany], GetVehicleModel(vehicleid), Players[playerid][pVehiclePrice], x, y, z, angle, VehicleInformation[vehicleid][vColor][0], VehicleInformation[vehicleid][vColor][1], .faction = Players[playerid][pVehicleFaction], .rentable = true); } else { vehicle = AddVehicle(Players[playerid][pVehicleCompany], GetVehicleModel(vehicleid), Players[playerid][pVehiclePrice], x, y, z, angle, VehicleInformation[vehicleid][vColor][0], VehicleInformation[vehicleid][vColor][1], .faction = Players[playerid][pVehicleFaction], .rentable = false); } SetFreezePos(playerid, x, y, z, 1500); DestroyVehicleEx(Players[playerid][pAddVehicle]); if (vehicle == INVALID_ID) { return SendErrorMessage(playerid, "There are no available vehicle slots."); } else { SendInfoMessage(playerid, "You have added a %s (vehicle %i).", GetVehicleModelName(Vehicles[vehicle][vModel]), Vehicles[vehicle][vVehicle]); } Players[playerid][pAddVehicle] = INVALID_VEHICLE_ID; } return 1; } CMD:vputseat(playerid, params[]) { new targetid, vehicleid, seatid; if (Players[playerid][pAdmin] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "uii", targetid, vehicleid, seatid)) { return SendSyntaxMessage(playerid, "/vputseat [playerid/name] (vehicle ID) (seat ID)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerSpawned(targetid)) { return SendErrorMessage(playerid, "The specified target isn't spawned."); } else if (!IsValidVehicle(vehicleid)) { return SendErrorMessage(playerid, "You have specified an invalid vehicle ID."); } else if (seatid < 0 || seatid >= GetVehicleSeats(vehicleid)) { return SendErrorMessage(playerid, "You have specified an invalid seat ID."); } else { PutPlayerInVehicle(targetid, vehicleid, seatid); SendInfoMessage(playerid, "You have put %s in vehicle %i into seat %i.", ReturnNameEx(targetid, 0), vehicleid, seatid); } return 1; } CMD:acceptvehicle(playerid, params[]) { if (IsPlayerConnected(Players[playerid][pCarOffer])) { new vehicle = Players[playerid][pCarSell]; new price = Players[playerid][pCarPrice]; if (!IsVehicleOwner(Players[playerid][pCarOffer], vehicle)) { return SendErrorMessage(playerid, "The vehicle offer has expired."); } else if (!PlayerCanAfford(playerid, price)) { return SendErrorMessage(playerid, "You can't afford to buy the vehicle."); } else if (!IsPlayerInRangeOfPlayer(playerid, Players[playerid][pCarOffer])) { return SendErrorMessage(playerid, "You need to be near the player who offered the vehicle."); } else { Vehicles[vehicle][vOwner] = Players[playerid][pID]; SaveVehicle(vehicle); RemoveMoney(playerid, price); SendInfoMessage(playerid, "You have purchased %s's %s for {33CC33}%s{FFFFFF}.", ReturnNameEx(Players[playerid][pCarOffer]), GetVehicleModelName(Vehicles[vehicle][vModel]), FormatNumber(price)); SendInfoMessage(Players[playerid][pCarOffer], "%s has purchased your %s for {33CC33}%s{FFFFFF}.", ReturnNameEx(playerid), GetVehicleModelName(Vehicles[vehicle][vModel]), FormatNumber(price)); format(gExecute, sizeof(gExecute), "INSERT INTO rp_purchases (Player, Type, Price, Date) VALUES(%i, '%s (sold by %s) - #%i', %i, NOW())", Players[playerid][pID], GetVehicleModelName(Vehicles[vehicle][vModel]), ReturnName(Players[playerid][pCarOffer]), Vehicles[vehicle][vID], price); mysql_tquery(gConnection, gExecute); Players[Players[playerid][pCarOffer]][pPocketMoney] += price; Players[playerid][pCarOffer] = INVALID_PLAYER_ID; } } return 1; } CMD:vehicle(playerid, params[]) { return cmd_v(playerid, params); } /* else if (!strcmp(option, "stereo", true)) { new vehicleid = GetPlayerVehicleID(playerid); if (!vehicleid) { return SendErrorMessage(playerid, "You need to be in a vehicle."); } else if (!IsPoweredVehicle(vehicleid)) { return SendErrorMessage(playerid, "This vehicle doesn't have a radio system."); } else if (isnull(value)) { return SendSyntaxMessage(playerid, "/(v)ehicle (stereo) (stream URL) - Use 'none' to reset."); } else { if (!strcmp(value, "none", true)) { ResetVehicleStream(vehicleid); SendInfoMessage(playerid, "You have reset the playing stream."); ShowActionBubble(playerid, "* %s presses a button to turn off the radio.", ReturnNameEx(playerid)); } else { foreach (new i : Player) { if (IsPlayerInVehicle(i, vehicleid)) { Players[i][pVehicleStream] = vehicleid; PlayAudioStreamForPlayer(i, value); } } strpack(VehicleInformation[vehicleid][vStream], value, 128 char); SendInfoMessage(playerid, "You have changed the stream that this vehicle will play."); ShowActionBubble(playerid, "* %s presses a button to turn on the radio.", ReturnNameEx(playerid)); } } } */ CMD:setstation(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if (!vehicleid) return SCM(playerid, COLOR_LIGHTRED, "You need to be in a vehicle."); if (!IsPoweredVehicle(vehicleid)) return SCM(playerid, COLOR_LIGHTRED, "This vehicle has no XM-Radio."); ShowBoomBoxStations(playerid); return 1; } /* if (GetClosestShell(playerid) != INVALID_ID) ShellCheck(playerid); else if (GetClosestDropItem(playerid) != INVALID_ID) PickupNearestItem(playerid); //else if (GetClosestBlood(playerid) != INVALID_ID) BloodCheck(playerid); else if (IsPlayerNearSwitch(playerid)) LightSwitch(playerid); else if (IsPlayerInRangeOfLocker(playerid)) ShowLockerMenu(playerid); else if (GetClosestFurniture(playerid, 2.0, 2332) != INVALID_ID) SafeCheck(playerid); else if (GetClosestFridge(playerid, 2.0) != INVALID_ID) FridgeCheck(playerid); else if (GetClosestATM(playerid) != INVALID_ID) ATMCheck(playerid); else if (GetClosestTrashbin(playerid) != INVALID_ID) TrashbinCheck(playerid); else if (IsPlayerNearGymEquipment(playerid)) GymCheck(playerid); */ CMD:v(playerid, params[]) { new option[10], value[128]; if (sscanf(params, "s[10]S()[128]", option, value)) { SendSyntaxMessage(playerid, "/(v)ehicle (option)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Options: lock, trunk, park, sell, track, list, unmod, abandon"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Options: lights, alarm, plate, despawn, spawn, duplicate"); } else if(IsPlayerInModdingShop(playerid)) { return SendErrorMessage(playerid, "You can't use this command while in a modding shop."); } else { if(!strcmp(option, "lights", true)) { new vehicle = GetPlayerVehicleID(playerid); if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendErrorMessage(playerid, "You are not driving any vehicle."); } else if (!IsPoweredVehicle(vehicle)) { return SendErrorMessage(playerid, "This vehicle doesn't have lights."); } else { if (GetLightsStatus(vehicle)) { SetLightsStatus(vehicle, false); SendInfoMessage(playerid, "You have turned off the vehicle's lights."); } else { SetLightsStatus(vehicle, true); SendInfoMessage(playerid, "You have turned on the vehicle's lights."); } } } else if (!strcmp(option, "lock", true)) { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); if (!IsValidVehicleID(vehicle)) { return SendErrorMessage(playerid, "There is no vehicle nearby."); } else if (!GetVehicleKeys(playerid, Vehicles[vehicle][vVehicle])) { return SendErrorMessage(playerid, "You don't have any keys for this vehicle."); } else { switch (Vehicles[vehicle][vLocked]) { case 0: { Vehicles[vehicle][vLocked] = 1; ShowActionBubble(playerid, "* %s uses their key to lock the vehicle.", ReturnNameEx(playerid)); ShowFooterText(playerid, "You have ~r~locked~w~ this vehicle."); } case 1: { Vehicles[vehicle][vLocked] = 0; ShowActionBubble(playerid, "* %s uses their key to unlock the vehicle.", ReturnNameEx(playerid)); ShowFooterText(playerid, "You have ~g~unlocked~w~ this vehicle."); } } if (!Vehicles[vehicle][vRentable]) { SaveVehicle(vehicle); } SetLockStatus(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vLocked]); PlayNearbySound(playerid, 1145); } } else if (!strcmp(option, "trunk", true)) { new vehicle = GetVehicleID(GetClosestVehicle(playerid)); if (!IsValidVehicleID(vehicle)) { return SendErrorMessage(playerid, "There is no trunk nearby."); } else if (!GetBootStatus(GetClosestVehicle(playerid)) && !IsPlayerInVehicle(playerid, GetClosestVehicle(playerid))) { return SendErrorMessage(playerid, "The trunk is not open."); } /*else if (Vehicles[vehicle][vLocked]) { return SendErrorMessage(playerid, "The trunk is locked."); }*/ else if (!GetTrunkCapacity(vehicle)) { return SendErrorMessage(playerid, "This vehicle doesn't have a trunk."); } else if (Vehicles[vehicle][vFaction] != 0 && GetFactionID(Vehicles[vehicle][vFaction]) != Players[playerid][pFaction]) { return SendErrorMessage(playerid, "The trunk is locked."); } else { ShowTrunkMenu(playerid, vehicle); ShowActionBubble(playerid, "* %s opens the trunk and looks inside.", ReturnNameEx(playerid)); } } else if (!strcmp(option, "park", true)) { new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)); if (!IsValidVehicleID(vehicle)) { return SendErrorMessage(playerid, "You are not in any vehicle that you own."); } else if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendErrorMessage(playerid, "You are not in the driver seat."); } else if ((gettime() - Players[playerid][pParkTime]) < PARK_WAIT_TIME) { return SendErrorMessage(playerid, "You must wait %i seconds before parking again.", (PARK_WAIT_TIME - (gettime() - Players[playerid][pParkTime]))); } else if (Players[playerid][pAutoShop] != INVALID_ID) { return SendErrorMessage(playerid, "You cannot park your vehicle in here."); } else if (Players[playerid][pAdminDuty]) { new Float:health, damage[4], fuel = VehicleInformation[Vehicles[vehicle][vVehicle]][vFuel]; GetVehicleHealth(Vehicles[vehicle][vVehicle], health); GetVehicleDamageStatus(Vehicles[vehicle][vVehicle], damage[0], damage[1], damage[2], damage[3]); foreach (new i : Player) { if (IsPlayerInVehicle(i, Vehicles[vehicle][vVehicle])) { gSeatData[i] = GetPlayerVehicleSeat(i); } } ClearVehicleObjects(Vehicles[vehicle][vVehicle]); GetVehiclePos(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][0], Vehicles[vehicle][vSpawn][1], Vehicles[vehicle][vSpawn][2]); GetVehicleZAngle(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][3]); UpdateVehicle(vehicle); SaveVehicle(vehicle); SetVehicleHealth(Vehicles[vehicle][vVehicle], health); UpdateVehicleDamageStatus(Vehicles[vehicle][vVehicle], damage[0], damage[1], damage[2], damage[3]); VehicleInformation[Vehicles[vehicle][vVehicle]][vFuel] = fuel; Players[playerid][pParkTime] = gettime(); SendInfoMessage(playerid, "You have parked the vehicle at this spot."); foreach (new i : Player) { if (gSeatData[i] >= 0) { PutPlayerInVehicle(i, Vehicles[vehicle][vVehicle], gSeatData[i]); gSeatData[i] = INVALID_ID; } } return 1; } else if (!IsVehicleOwner(playerid, vehicle) && !PlayerHasKeys(playerid, vehicle)) { return SendErrorMessage(playerid, "You don't have the keys to this vehicle."); } else { new Float:health, damage[4], fuel = VehicleInformation[Vehicles[vehicle][vVehicle]][vFuel]; GetVehicleHealth(Vehicles[vehicle][vVehicle], health); GetVehicleDamageStatus(Vehicles[vehicle][vVehicle], damage[0], damage[1], damage[2], damage[3]); foreach (new i : Player) { if (IsPlayerInVehicle(i, Vehicles[vehicle][vVehicle])) { gSeatData[i] = GetPlayerVehicleSeat(i); } } ClearVehicleObjects(Vehicles[vehicle][vVehicle]); GetVehiclePos(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][0], Vehicles[vehicle][vSpawn][1], Vehicles[vehicle][vSpawn][2]); GetVehicleZAngle(Vehicles[vehicle][vVehicle], Vehicles[vehicle][vSpawn][3]); UpdateVehicle(vehicle); SaveVehicle(vehicle); SetVehicleHealth(Vehicles[vehicle][vVehicle], health); UpdateVehicleDamageStatus(Vehicles[vehicle][vVehicle], damage[0], damage[1], damage[2], damage[3]); VehicleInformation[Vehicles[vehicle][vVehicle]][vFuel] = fuel; Players[playerid][pParkTime] = gettime(); SendInfoMessage(playerid, "You have parked your vehicle at this spot."); foreach (new i : Player) { if (gSeatData[i] >= 0) { PutPlayerInVehicle(i, Vehicles[vehicle][vVehicle], gSeatData[i]); gSeatData[i] = INVALID_ID; } } } } else if (!strcmp(option, "sell", true)) { new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)), targetid, price; if (!IsValidVehicleID(vehicle)) { return SendErrorMessage(playerid, "You are not in any vehicle that you own."); } else if (!IsVehicleOwner(playerid, vehicle)) { return SendErrorMessage(playerid, "You don't own this vehicle."); } else if (sscanf(value, "ui", targetid, price)) { return SendSyntaxMessage(playerid, "/(v)ehicle (sell) (player) (price)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't use this command on yourself."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return SendErrorMessage(playerid, "The specified target is not near you."); } else if (price < 1) { return SendErrorMessage(playerid, "The price can't be below $1."); } else { Players[targetid][pCarOffer] = playerid; Players[targetid][pCarPrice] = price; Players[targetid][pCarSell] = vehicle; SendInfoMessage(playerid, "You have offered %s to buy your %s for %s.", ReturnNameEx(targetid), GetVehicleModelName(Vehicles[vehicle][vModel]), FormatNumber(price)); SendInfoMessage(targetid, "%s wants to sell you their %s for {33CC33}%s{FFFFFF} - use /acceptvehicle to accept.", ReturnNameEx(playerid), GetVehicleModelName(Vehicles[vehicle][vModel]), FormatNumber(price)); } } else if (!strcmp(option, "track", true)) { new success = ShowVehicleTrackList(playerid); if (!success) { SendErrorMessage(playerid, "You don't own any vehicles you can track."); } } else if (!strcmp(option, "list", true)) { SendClientMessage(playerid, COLOR_DARKGREEN, "[_______________Your Vehicles_______________]"); for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && IsVehicleOwner(playerid, i)) { if (Vehicles[i][vImpound]) { SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (Impounded)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); } else if (Vehicles[i][vDespawned]) { SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (Despawned)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate]); } else { SendFormatMessage(playerid, COLOR_WHITE, "- %s - %s (ID: %i)", GetVehicleModelName(Vehicles[i][vModel]), Vehicles[i][vPlate], Vehicles[i][vVehicle]); } } } SendClientMessage(playerid, COLOR_DARKGREEN, "[___________________________________________]"); } else if (!strcmp(option, "unmod", true)) { new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)); if (!IsValidVehicleID(vehicle)) { return SendErrorMessage(playerid, "You are not in any vehicle that you own."); } else if (!IsVehicleOwner(playerid, vehicle) && !PlayerHasKeys(playerid, vehicle)) { return SendErrorMessage(playerid, "You don't have the keys to this vehicle."); } else if (GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { return SendErrorMessage(playerid, "You are not in the driver seat."); } else { new index, string[512]; for (new i = 0; i < 14; i ++) { if (Vehicles[vehicle][vMods][i] > 0) { format(string, sizeof(string), "%s\n%s", string, GetVehicleComponentName(Vehicles[vehicle][vMods][i])); gListedItems[playerid][index++] = i; } } strcat(string, "\nReset Color\nReset Paintjob"); Dialog_Show(playerid, RemoveMod, DIALOG_STYLE_LIST, "{FFFFFF}Select Option", string, "Remove", "Cancel"); } } else if (!strcmp(option, "abandon", true)) { new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)); if (!IsValidVehicleID(vehicle)) { return SendErrorMessage(playerid, "You are not in any vehicle that you own."); } else if (!IsVehicleOwner(playerid, vehicle)) { return SendErrorMessage(playerid, "You don't own this vehicle."); } else if (isnull(value) || strcmp(value, "confirm", true) != 0) { SendSyntaxMessage(playerid, "/(v)ehicle (abandon) (confirm)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: This will permanently remove your vehicle from the server."); } else { DeleteVehicle(vehicle); SendInfoMessage(playerid, "You have abandoned this vehicle. It has been destroyed from the server."); } } else if (!strcmp(option, "alarm", true)) { new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)); if (!IsValidVehicleID(vehicle)) { return SendErrorMessage(playerid, "You are not in any vehicle that you own."); } else if (!IsVehicleOwner(playerid, vehicle)) { return SendErrorMessage(playerid, "You don't own this vehicle."); } else if (Vehicles[vehicle][vAlarm]) { return SendErrorMessage(playerid, "Your vehicle already has an alarm installed."); } else if (isnull(value) || strcmp(value, "confirm", true) != 0) { SendSyntaxMessage(playerid, "/(v)ehicle (alarm) (confirm)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: Installing an alarm will cost you $4500."); } else if (!PlayerCanAfford(playerid, 4500)) { return SendErrorMessage(playerid, "You can't afford the installation fee."); } else { RemoveMoney(playerid, 4500); SendInfoMessage(playerid, "You have purchased an alarm for {33CC33}$4500{FFFFFF}. You will receive an notification upon break in."); Vehicles[vehicle][vAlarm] = 1; SaveVehicle(vehicle); } } else if (!strcmp(option, "plate", true)) { new vehicle = GetVehicleID(GetPlayerVehicleID(playerid)); if (Players[playerid][pDonator] < DONATOR_STANDARD) { return SendErrorMessage(playerid, "You are not a donator."); } if (!IsValidVehicleID(vehicle)) { return SendErrorMessage(playerid, "You are not in any vehicle that you own."); } else if (!IsVehicleOwner(playerid, vehicle)) { return SendErrorMessage(playerid, "You don't own this vehicle."); } else if (isnull(value)) { SendSyntaxMessage(playerid, "/(v)ehicle (plate) (text)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "Note: Changing the license plate will cost you $400."); } else if (strlen(value) > 12) { return SendErrorMessage(playerid, "The specified text cannot be above 12 characters."); } else if (!PlayerCanAfford(playerid, 400)) { return SendErrorMessage(playerid, "You can't afford the installation fee."); } else { format(gExecute, sizeof(gExecute), "SELECT vID FROM rp_vehicles WHERE vPlate = '%s'", mysql_escaped(value)); mysql_tquery(gConnection, gExecute, "OnPlayerCheckPlate", "is", playerid, value); } } else if (!strcmp(option, "despawn", true)) { new success = ShowSpawnedVehicleList(playerid); if (!success) { SendErrorMessage(playerid, "You don't own any vehicles that are spawned."); } } else if (!strcmp(option, "spawn", true)) { new success = ShowDespawnedVehicleList(playerid); if (!success) { SendErrorMessage(playerid, "You don't own any vehicles that are despawned."); } } /*else if (!strcmp(option, "stereo", true)) { new vehicleid = GetPlayerVehicleID(playerid); if (!vehicleid) { return SendErrorMessage(playerid, "You need to be in a vehicle."); } else if (!IsPoweredVehicle(vehicleid)) { return SendErrorMessage(playerid, "This vehicle doesn't have a radio system."); } else if (isnull(value)) { return SendSyntaxMessage(playerid, "/(v)ehicle (stereo) (stream URL) - Use 'none' to reset."); } else { if (!strcmp(value, "none", true)) { ResetVehicleStream(vehicleid); SendInfoMessage(playerid, "You have reset the playing stream."); ShowActionBubble(playerid, "* %s presses a button to turn off the radio.", ReturnNameEx(playerid)); } else { foreach (new i : Player) { if (IsPlayerInVehicle(i, vehicleid)) { Players[i][pVehicleStream] = vehicleid; PlayAudioStreamForPlayer(i, value); } } strpack(VehicleInformation[vehicleid][vStream], value, 128 char); SendInfoMessage(playerid, "You have changed the stream that this vehicle will play."); ShowActionBubble(playerid, "* %s presses a button to turn on the radio.", ReturnNameEx(playerid)); } } }*/ else if (!strcmp(option, "duplicate", true)) { new targetid, param[8], vehicle = GetVehicleID(GetPlayerVehicleID(playerid)); if (!IsValidVehicleID(vehicle)) { return SendErrorMessage(playerid, "You are not in any vehicle that you own."); } else if (!IsVehicleOwner(playerid, vehicle)) { return SendErrorMessage(playerid, "You don't own this vehicle."); } else if (sscanf(value, "s[8]u", param, targetid)) { return SendSyntaxMessage(playerid, "/(v)ehicle (duplicate) (give/take) [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't use this command on yourself."); } else { if (!strcmp(param, "give", true)) { if (!IsSufficientSpace(targetid, "Car Key")) { return SendErrorMessage(playerid, "That player has no more room in their inventory."); } else if (PlayerHasKeys(targetid, vehicle)) { return SendErrorMessage(playerid, "That player already has keys for this vehicle."); } else { AddItemToInventory(targetid, "Car Key", Vehicles[vehicle][vID]); ShowActionBubble(playerid, "* %s passes %s a duplicate key.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have made %s a duplicate key for this %s.", ReturnNameEx(targetid), GetVehicleModelName(Vehicles[vehicle][vModel])); SendInfoMessage(targetid, "%s has given you a key for their %s.", ReturnNameEx(playerid), GetVehicleModelName(Vehicles[vehicle][vModel])); } } else if (!strcmp(param, "take", true)) { new item = GetInventoryItemID(targetid, "Car Key", Vehicles[vehicle][vID]); if (item == INVALID_ID) { return SendErrorMessage(playerid, "That player doesn't have keys for this vehicle."); } else { RemoveItemFromInventory(targetid, item); ShowActionBubble(playerid, "* %s takes their duplicate keys from %s.", ReturnNameEx(playerid), ReturnNameEx(targetid)); SendInfoMessage(playerid, "You have taken %s's duplicate key for your %s.", ReturnNameEx(targetid), GetVehicleModelName(Vehicles[vehicle][vModel])); SendInfoMessage(targetid, "%s has taken away your key for their %s.", ReturnNameEx(playerid), GetVehicleModelName(Vehicles[vehicle][vModel])); } } } } } return 1; } CMD:set(playerid, params[]) { new house = Players[playerid][pConfirmBackdoor]; if (!IsValidHouseID(house) || !IsHouseOwner(playerid, house)) { Players[playerid][pConfirmBackdoor] = INVALID_ID; return 1; } if (Players[playerid][pBackdoorType] == 1) { if (!IsPlayerNearPoint(playerid, 30.0, Houses[house][hSpawn][0], Houses[house][hSpawn][1], Houses[house][hSpawn][2], Houses[house][hExterior], Houses[house][hExteriorWorld])) { return SendErrorMessage(playerid, "You need to be in at least 30 meters of the main entrance."); } else if (GetClosestHouse(playerid) == house) { return SendErrorMessage(playerid, "You need to be away from the main entrance."); } else if (GetClosestHouse(playerid) != INVALID_ID) { return SendErrorMessage(playerid, "You can't place the entrance here."); } else { GetPlayerPos(playerid, Houses[house][hBackdoor][0], Houses[house][hBackdoor][1], Houses[house][hBackdoor][2]); UpdateHouse(house); SaveHouse(house); SendInfoMessage(playerid, "You have adjusted the entrance point for your backdoor."); } } else if (Players[playerid][pBackdoorType] == 2) { if (GetCurrentHouse(playerid) != house) { return SendErrorMessage(playerid, "You need to be inside your house to set the exit."); } else { GetPlayerPos(playerid, Houses[house][hBackdoorInt][0], Houses[house][hBackdoorInt][1], Houses[house][hBackdoorInt][2]); UpdateHouse(house); SaveHouse(house); SendInfoMessage(playerid, "You have adjusted the exit point for your backdoor."); } } Players[playerid][pConfirmBackdoor] = INVALID_ID; Players[playerid][pBackdoorType] = 0; return 1; } CMD:getip(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 4) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/getip [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else { SendInfoMessage(playerid, "%s's IP address is: %s.", ReturnNameEx(targetid, 0), ReturnIP(targetid)); } return 1; } CMD:aliases(playerid, params[]) { new ip[16]; if (Players[playerid][pAdmin] < 2) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "s[16]", ip)) { return SendSyntaxMessage(playerid, "/aliases (IP address)"); } else if (!IsValidIP(ip)) { return SendErrorMessage(playerid, "You have specified an invalid IP format."); } else { format(gExecute, sizeof(gExecute), "SELECT Username, LoginDate FROM rp_accounts WHERE IP = '%s'", mysql_escaped(ip)); mysql_tquery(gConnection, gExecute, "OnPlayerListAliases", "is", playerid, ip); } return 1; } CMD:getgpci(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/getgpci [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else { //SendInfoMessage(playerid, "%s's GPCI is: %s", ReturnNameEx(targetid, 0), ReturnGPCI(targetid)); format(gExecute, sizeof(gExecute), "SELECT Username, LoginDate FROM rp_accounts WHERE GPCI = '%s'", mysql_escaped(Players[targetid][pGPCI])); mysql_tquery(gConnection, gExecute, "OnPlayerListGPCI", "is", playerid, ReturnGPCI(targetid)); } return 1; } CMD:addnos(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (!IsValidNOSVehicle(vehicleid)) { return SendErrorMessage(playerid, "You need to be in a NOS compatible vehicle."); } else { new vehicle = GetVehicleID(vehicleid); AddVehicleComponent(vehicleid, 1010); if (vehicle != INVALID_ID) { Vehicles[vehicle][vMods][5] = 1010; SaveVehicle(vehicle); } SendInfoMessage(playerid, "You have added 10x Nitrous to this vehicle."); } return 1; } CMD:shakehand(playerid, params[]) { new targetid, type; if (sscanf(params, "ui", targetid, type)) { return SendSyntaxMessage(playerid, "/shakehand [playerid/name] [1-7]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (targetid == playerid) { return SendErrorMessage(playerid, "You can't shake your own hand."); } else if (!IsPlayerInRangeOfPlayer(playerid, targetid)) { return SendErrorMessage(playerid, "The specified target is not near you."); } else if (!(1 <= type <= 7)) { return SendErrorMessage(playerid, "You have specified an invalid type."); } else { Players[targetid][pShakeOffer] = playerid; Players[targetid][pShakeType] = type; SendInfoMessage(targetid, "%s has offered to shake your hand - use /acceptgreet to accept.", ReturnNameEx(playerid)); SendInfoMessage(playerid, "You have offered %s to shake your hand.", ReturnNameEx(targetid)); } return 1; } CMD:acceptgreet(playerid, params[]) { if (IsPlayerConnected(Players[playerid][pShakeOffer])) { switch (Players[playerid][pShakeType]) { case 1: { ApplyAnimation(playerid, "GANGS", "hndshkaa", 4.1, 0, 0, 0, 0, 0, 1); ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "hndshkaa", 4.1, 0, 0, 0, 0, 0, 1); } case 2: { ApplyAnimation(playerid, "GANGS", "hndshkba", 4.1, 0, 0, 0, 0, 0, 1); ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "hndshkba", 4.1, 0, 0, 0, 0, 0, 1); } case 3: { ApplyAnimation(playerid, "GANGS", "hndshkda", 4.1, 0, 0, 0, 0, 0, 1); ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "hndshkda", 4.1, 0, 0, 0, 0, 0, 1); } case 4: { ApplyAnimation(playerid, "GANGS", "hndshkea", 4.1, 0, 0, 0, 0, 0, 1); ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "hndshkea", 4.1, 0, 0, 0, 0, 0, 1); } case 5: { ApplyAnimation(playerid, "GANGS", "hndshkfa", 4.1, 0, 0, 0, 0, 0, 1); ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "hndshkfa", 4.1, 0, 0, 0, 0, 0, 1); } case 6: { ApplyAnimation(playerid, "GANGS", "prtial_hndshk_biz_01", 4.1, 0, 0, 0, 0, 0, 1); ApplyAnimation(Players[playerid][pShakeOffer], "GANGS", "prtial_hndshk_biz_01", 4.1, 0, 0, 0, 0, 0, 1); } case 7: { ApplyAnimation(playerid, "KISSING", "Playa_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1); ApplyAnimation(Players[playerid][pShakeOffer], "KISSING", "Playa_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1); /* case 1: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_01", 4.1, 0, 0, 0, 0, 0, 1); case 2: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1); case 3: PlayAnimation(playerid, "KISSING", "Grlfrd_Kiss_03", 4.1, 0, 0, 0, 0, 0, 1); case 4: PlayAnimation(playerid, "KISSING", "Playa_Kiss_01", 4.1, 0, 0, 0, 0, 0, 1); case 5: PlayAnimation(playerid, "KISSING", "Playa_Kiss_02", 4.1, 0, 0, 0, 0, 0, 1); case 6: PlayAnimation(playerid, "KISSING", "Playa_Kiss_03", 4.1, 0, 0, 0, 0, 0, 1); */ } } SetPlayerToFacePlayer(playerid, Players[playerid][pShakeOffer]); SetPlayerToFacePlayer(Players[playerid][pShakeOffer], playerid); SendInfoMessage(playerid, "You have accepted %s's handshake offer.", ReturnNameEx(Players[playerid][pShakeOffer])); SendInfoMessage(Players[playerid][pShakeOffer], "%s has accepted your handshake offer.", ReturnNameEx(playerid)); Players[playerid][pShakeOffer] = INVALID_PLAYER_ID; } return 1; } /*CMD:wt(playerid, params[]) { if (!Players[playerid][pChannel]) { return SendErrorMessage(playerid, "You are not broadcasting over any frequency."); } else if (isnull(params)) { return SendSyntaxMessage(playerid, "/r (walkie talkie)"); } else { foreach (new i : Player) { if (Players[i][pChannel] == Players[playerid][pChannel]) { SendFormatMessage(i, COLOR_WALKIETALKIE, "** (Channel %i) %s: %s **", Players[playerid][pChannel], ReturnNameEx(playerid), params); } } ShowFormatBubble(playerid, COLOR_LIGHTGREY, "[Radio] %s says: %s", ReturnNameEx(playerid), params); //ShowActionBubble(playerid, "* %s speaks over their walkie talkie.", ReturnNameEx(playerid)); } return 1; } */ /*forward OnFakeLicense(playerid); public OnFakeLicense(playerid) { if(!IsPlayerInRangeOfPoint(playerid, 5.0, 0, 0, 0)) return SendClientMessage(playerid, COLOR_GREY, "You're not near the license creation place so you didn't recieve a fake license."); SendClientMessage(playerid, COLOR_GREY, "You've been given a fake ID (/fakelicense /givefakelicense)."); Players[playerid][pFakelicense] = true; return 1; } CMD:makelicense(playerid, params[]) { if(!IsPlayerInRangeOfPoint(playerid, 5.0, 0, 0, 0)) return SendClientMessage(playerid, COLOR_GREY, "You're not near the license creation place."); if(Players[playerid][pFakelicense] == true) return SendClientMessage(playerid, COLOR_GREY, "You already have a fake license."); SetTimerEx("OnFakeLicense", 30000, false, "i", playerid); // 30 seconds return 1; } CMD:givefakelicense(playerid, params[]) { new target; if(sscanf(params, "i", target)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: {FFFFFF}/givefakelicense [ID]"); if(Players[playerid][pFakelicense] == false) return SendClientMessage(playerid, COLOR_GREY, "You do not have a fake license."); if(Players[target][pFakelicense] == true) return SendClientMessage(playerid, COLOR_GREY, "This player already has a fake license."); SendClientMessage(playerid, COLOR_GREY, "You've given away a fake license."); SendClientMessage(target, COLOR_GREY, "You've been given a fake license."); Players[playerid][pFakelicense] = false; Players[target][pFakelicense] = true; return 1; } CMD:fakelicense(playerid, params[]) { new target, name[MAX_PLAYER_NAME + 1], driverslicense, gunlicense, cdl, pilots; if(sscanf(params, "i s[24] i i i i", target, name, driverslicense, cdl, pilots)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: {FFFFFF}/fakelicense [ID] [Fake Name] [Drivers License] [CDL License] [Gun License]"); if(Players[playerid][pFakelicense] == false) return SendClientMessage(playerid, COLOR_GREY, "You don't have a fake license."); SendFormatMessage(target, COLOR_YELLOW, "______STATE OF SAN ANDREAS______"); SendFormatMessage(target, COLOR_YELLOW, "Name: %s", name); SendFormatMessage(target, COLOR_YELLOW, "Drivers License: %s", (driverslicense) ? ("Yes") : ("No")); SendFormatMessage(target, COLOR_YELLOW, "Pilot License: %s", (pilots) ? ("Yes") : ("No")); SendFormatMessage(target, COLOR_YELLOW, "CDL License: %s", (cdl) ? ("Yes") : ("No")); SendFormatMessage(target, COLOR_YELLOW, "Gun License: %s", (gunlicense) ? ("Yes") : ("No")); return 1; }*/ CMD:mostplayers(playerid, params[]) { Dialog_Show(playerid, PlayerRecord, DIALOG_STYLE_MSGBOX, "{FFFFFF}Player Record", "The most players online was %i.\nThis record was achieved on %s.", "Close", "", Server[PlayerRecord], Server[RecordDate]); return 1; } CMD:givenamechanges(playerid, params[]) { new targetid, amount; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "ui", targetid, amount)) { return SendSyntaxMessage(playerid, "/givenamechanges [playerid/name] (amount)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { Players[targetid][pNameChanges] = Players[targetid][pNameChanges] + amount; SendInfoMessage(targetid, "%s has given you %i name changes. You can now use /changename to change it.", ReturnNameEx(playerid), amount); SendAdminMessage(COLOR_RED, "Admin: %s has given %i name changes to %s.", ReturnNameEx(playerid), amount, ReturnNameEx(targetid)); } return 1; } CMD:changename(playerid, params[]) { if (isnull(params)) { return SendSyntaxMessage(playerid, "/changename (new name) - You have %i namechanges left", Players[playerid][pNameChanges]); } else if (!Players[playerid][pNameChanges]) { return SendErrorMessage(playerid, "You don't have any namechanges left."); } else if (strlen(params) > 24) { return SendErrorMessage(playerid, "Your name needs to be less than 24 characters."); } else if (!IsRoleplayName(params)) { return SendErrorMessage(playerid, "The specified name doesn't comply with roleplay standards."); } else { format(gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s'", mysql_escaped(params)); mysql_tquery(gConnection, gExecute, "OnPlayerRequestNameChange", "is", playerid, params); } return 1; } CMD:approvename(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/approvename [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!strcmp(Players[targetid][pNameChange], "Not Specified")) { return SendErrorMessage(playerid, "The specified target didn't request a name change."); } else { Players[targetid][pNameChanges]--; SendAdminMessage(COLOR_RED, "Admin: %s has accepted %s's name change to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid), Players[targetid][pNameChange]); SendInfoMessage(targetid, "%s has accepted the name change. You have %i name changes remaining.", ReturnNameEx(playerid), Players[targetid][pNameChanges]); ChangeName(targetid, Players[targetid][pNameChange]); ResetNameChange(targetid); } return 1; } CMD:denyname(playerid, params[]) { new targetid; if (Players[playerid][pAdmin] < 3) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/denyname [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!strcmp(Players[targetid][pNameChange], "Not Specified")) { return SendErrorMessage(playerid, "The specified target didn't request a name change."); } else { SendAdminMessage(COLOR_RED, "Admin: %s has declined %s's name change to %s.", ReturnNameEx(playerid), ReturnNameEx(targetid), Players[targetid][pNameChange]); SendInfoMessage(targetid, "%s has declined the name change request.", ReturnNameEx(playerid)); ResetNameChange(targetid); } return 1; } CMD:listnamechanges(playerid, params[]) { if (Players[playerid][pAdmin] < 4) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else { SendClientMessage(playerid, COLOR_YELLOW, "Pending Name Changes:"); foreach (new i : Player) { if (strcmp(Players[i][pNameChange], "Not Specified") != 0) { SendFormatMessage(playerid, COLOR_WHITE, "* %s (ID: %i) (Requested Name: %s)", ReturnNameEx(i), i, Players[i][pNameChange]); } } } return 1; } CMD:acceptad(playerid, params[]) { new targetid; if(Players[playerid][pAdmin] < 1 && Players[playerid][pSupporter] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } if(sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/acceptad (player)"); } if(targetid == INVALID_PLAYER_ID) { return SendErrorMessage(playerid, "Invalid player specified."); } if(!IsAdvertisementActive(targetid)) { return SendErrorMessage(playerid, "This player doesn't have an advertisement to accept."); } SendFormatMessageToAll(COLOR_GREEN, "(Advertisement) %s - number: %i", GetPackedString(gAdvertisement[targetid]), Players[targetid][pPhone]); SendAdminMessage(COLOR_RED, "Admin: %s has accepted %s's advertisement.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); ResetAdvertisement(targetid); return 1; } CMD:denyad(playerid, params[]) { new targetid; if(Players[playerid][pAdmin] < 1 && Players[playerid][pSupporter] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } if(sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/denyad (player)"); } if(targetid == INVALID_PLAYER_ID) { return SendErrorMessage(playerid, "Invalid player specified."); } if(!IsAdvertisementActive(targetid)) { return SendErrorMessage(playerid, "This player doesn't have an advertisement to deny."); } SendInfoMessage(targetid, "Your advertisement has been denied by admin %s.", ReturnNameEx(playerid, 0)); SendAdminMessage(COLOR_RED, "Admin: %s has denied %s's advertisement.", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0)); ResetAdvertisement(targetid); return 1; } CMD:listads(playerid, params[]) { if(Players[playerid][pAdmin] < 1 && Players[playerid][pSupporter] < 1) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } SendClientMessage(playerid, COLOR_GREEN, "|________________ Pending Ads ________________|"); foreach(new i : Player) { if(IsAdvertisementActive(i)) { SendInfoMessage(playerid, "[ID: %i] %s's advertisement: %s", i, ReturnNameEx(i, 0), GetPackedString(gAdvertisement[i])); } } SendClientMessage(playerid, COLOR_GREEN, "|____________________________________________|"); SendSyntaxMessage(playerid, "/acceptad (id) or /denyad (id)"); return 1; } CMD:spawntype(playerid, params[]) { new type, slot, count, success; if(sscanf(params, "iI(-1)", type, slot)) { SendSyntaxMessage(playerid, "/spawntype (type)"); SendClientMessage(playerid, COLOR_LIGHTGREY, "(0): Last Position, (1): Class Selection, (2): House, (3): Company, (4): Faction"); return 1; } switch(type) { case 0: { Players[playerid][pSpawnType] = SPAWN_TYPE_LAST; SendInfoMessage(playerid, " You will now spawn at your last position."); } case 1: { Players[playerid][pSpawnType] = SPAWN_TYPE_AIRPORT; SendInfoMessage(playerid, " You will now be using the class selection as your spawn points."); } case 2: { if(slot == -1) { SendClientMessage(playerid, COLOR_LIGHTGREY, "Your houses:"); } for(new i = 0; i < MAX_HOUSES; i ++) { if(IsValidHouseID(i) && IsHouseOwner(playerid, i)) { if(slot == -1) { SendFormatMessage(playerid, COLOR_WHITE, "[Slot %i] Address: %s | Location: %s | Value: %s", ++count, Houses[i][hAddress], GetZoneName(Houses[i][hSpawn][0], Houses[i][hSpawn][1], Houses[i][hSpawn][2]), FormatNumber(Houses[i][hValue])); } else if(++count == slot) { Players[playerid][pSpawnType] = SPAWN_TYPE_HOUSE; Players[playerid][pSpawnExtra] = Houses[i][hID]; SendInfoMessage(playerid, "You will now spawn at %s upon login.", Houses[i][hAddress]); success = true; break; } } } if(slot == -1) { SendClientMessage(playerid, COLOR_LIGHTGREY, "|______________________________________|"); SendSyntaxMessage(playerid, "/spawntype (type) (slot)"); } else if(!success) { SendErrorMessage(playerid, "Invalid slot."); } } case 3: { if(slot == -1) { SendClientMessage(playerid, COLOR_GREEN, "|_____________ Your Companies _____________|"); } for(new i = 0; i < MAX_COMPANIES; i ++) { if(IsValidCompanyID(i) && IsCompanyOwner(playerid, i)) { if(slot == -1) { SendFormatMessage(playerid, COLOR_WHITE, "[Slot %i] Name: %s | Location: %s | Type: %s", ++count, Companies[i][cName], GetZoneName(Companies[i][cSpawn][0], Companies[i][cSpawn][1], Companies[i][cSpawn][2]), GetCompanyType(Companies[i][cType])); } else if(++count == slot) { Players[playerid][pSpawnType] = SPAWN_TYPE_COMPANY; Players[playerid][pSpawnExtra] = Companies[i][cID]; SendInfoMessage(playerid, "You will now spawn at %s upon login.", Companies[i][cName]); success = true; break; } } } if(slot == -1) { SendClientMessage(playerid, COLOR_GREEN, "|_________________________________________|"); SendSyntaxMessage(playerid, "/spawntype (type) (slot)"); } else if(!success) { SendErrorMessage(playerid, "Invalid slot."); } } case 4: { if(Players[playerid][pFaction] == -1) { return SendErrorMessage(playerid, "You are not apart of a faction."); } if(Factions[Players[playerid][pFaction]][fcSpawnX] == 0.0 && Factions[Players[playerid][pFaction]][fcSpawnY] == 0.0 && Factions[Players[playerid][pFaction]][fcSpawnZ] == 0.0) { return SendErrorMessage(playerid, "Your faction's spawn is not set up currently. Ask an admin to set it up."); } Players[playerid][pSpawnType] = SPAWN_TYPE_FACTION; SendInfoMessage(playerid, "You will now spawn at your faction's headquarters upon login."); } default: { SendErrorMessage(playerid, "Invalid type."); } } return 1; } GetServerCarID(vehicleid) { for(new i=0; i < MAX_CARS;i++) { if(Vehicles[i][vVehicle] == vehicleid) { return i; } } return -1; } CMD:adespawncar(playerid, params[]) { new targ; if(Players[playerid][pAdmin] > 1) { if(sscanf(params, "i", targ)) return SendSyntaxMessage(playerid, "/adespawncar [carid]"); new listitem = GetServerCarID(targ); if(listitem == -1) return SendErrorMessage(playerid, "Invalid vehicle id"); if (!IsValidVehicleID(listitem) || Vehicles[listitem][vDespawned]) { return 0; } if (Vehicles[listitem][vImpound] > 0) { return SendErrorMessage(playerid, "You cannot despawn an impounded vehicle."); } if (GetVehicleDriver(Vehicles[listitem][vVehicle]) != INVALID_PLAYER_ID) { return SendErrorMessage(playerid, "The vehicle is occupied and you may not despawn it."); } for (new i = 1; i < MAX_VEHICLES; i ++) { if (GetVehicleModel(i) == 525 && GetVehicleTrailer(i) == Vehicles[listitem][vVehicle]) { return SendErrorMessage(playerid, "The vehicle is currently being towed."); } } ClearVehicleObjects(Vehicles[listitem][vVehicle]); DestroyVehicleEx(Vehicles[listitem][vVehicle]); SendInfoMessage(playerid, "You have despawned %s (%s; id: %i).", GetVehicleModelName(Vehicles[listitem][vModel]), Vehicles[listitem][vPlate], listitem); Vehicles[listitem][vVehicle] = INVALID_VEHICLE_ID; Vehicles[listitem][vDespawned] = 1; SaveVehicle(listitem); SendAdminMessage(COLOR_RED, "Admin %s has despawned %s (%s; id: %i).", ReturnNameEx(playerid, 0), GetVehicleModelName(Vehicles[listitem][vModel]), Vehicles[listitem][vPlate], listitem); } else SendErrorMessage(playerid, "You are not privileged to use this command."); return 1; } CMD:addownedcar(playerid, params[]) { new targetid, model[24], modelid, color1, color2, vehicle; if (Players[playerid][pAdmin] < 4) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "us[24]I(-1)I(-1)", targetid, model, color1, color2)) { return SendSyntaxMessage(playerid, "/addownedcar [playerid/name] (model) [color 1] [color 2]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (!(modelid = GetVehicleModelFromName(model))) { return SendErrorMessage(playerid, "The specified model doesn't exist."); } else if ((color1 != -1) && (color1 < 0 || color1 > 255)) { return SendErrorMessage(playerid, "The first color must be between -1 and 255."); } else if ((color2 != -1) && (color2 < 0 || color2 > 255)) { return SendErrorMessage(playerid, "The second color must be between -1 and 255."); } else { new count = 0; for (new i = 0; i < MAX_CARS; i ++) { if (IsValidVehicleID(i) && IsVehicleOwner(targetid, i) && !Vehicles[i][vDespawned]) { count++; } } if (count > GetVehicleSpawnLimit(targetid)) { return SendErrorMessage(playerid, "This player already has two vehicles spawned."); } new Float:x, Float:y, Float:z, Float:angle; GetPlayerPos(targetid, x, y, z); GetPlayerFacingAngle(targetid, angle); vehicle = AddVehicle(INVALID_ID, modelid, 0, x, y, z, angle, color1, color2, targetid); if (vehicle == INVALID_ID) { return SendErrorMessage(playerid, "There are no available vehicle slots."); } else { SendAdminMessage(COLOR_RED, "Admin: %s has spawned a player owned %s for %s.", ReturnNameEx(playerid), GetVehicleModelName(modelid), ReturnNameEx(targetid)); SendInfoMessage(targetid, "%s has created you a %s. Use /(v)ehicle for more information.", ReturnNameEx(playerid), GetVehicleModelName(modelid)); } } return 1; } CMD:setdonator(playerid, params[]) { new targetid, level; if (Players[playerid][pAdmin] < 6) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "ui", targetid, level)) { return SendSyntaxMessage(playerid, "/setdonator [playerid/name] (level)"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else if (level < 0 || level > 4) { return SendErrorMessage(playerid, "The specified level is invalid."); } else { Players[targetid][pDonator] = level; Players[targetid][pExpiryDate] = gettime() + 2592000; SendAdminMessage(COLOR_RED, "Admin: %s has set %s's donator level to %s (%i).", ReturnNameEx(playerid, 0), ReturnNameEx(targetid, 0), GetDonatorLevel(level), level); if (level > 0) SendInfoMessage(targetid, "%s has set your donator package to %s. It will expire in 30 days.", ReturnNameEx(playerid, 0), GetDonatorLevel(level)); else SendInfoMessage(targetid, "%s has revoked your donator package.", ReturnNameEx(playerid, 0)); } return 1; } CMD:donatorinfo(playerid, params[]) { if (!Players[playerid][pDonator]) { return SendErrorMessage(playerid, "You don't have an active donator subscription."); } else { new days = (Players[playerid][pExpiryDate] - gettime()) / 86400; if (!days) { SendInfoMessage(playerid, "Your %s donator package will expire today.", GetDonatorLevel(Players[playerid][pDonator])); } else { SendInfoMessage(playerid, "Your %s donator package will expire in %i days.", GetDonatorLevel(Players[playerid][pDonator]), days); } } return 1; } CMD:setstaff(playerid, params[]) { new targetid, string[128]; if (Players[playerid][pAdmin] < 5) { return SendErrorMessage(playerid, "You are not privileged to use this command."); } else if (sscanf(params, "u", targetid)) { return SendSyntaxMessage(playerid, "/setstaff [playerid/name]"); } else if (!IsPlayerConnected(targetid)) { return SendErrorMessage(playerid, "The specified target doesn't exist."); } else if (IsPlayerNPC(targetid)) { return SendErrorMessage(playerid, "You cannot use this command on a NPC."); } else if (!IsPlayerLoggedIn(targetid)) { return SendErrorMessage(playerid, "The specified target is not logged in yet."); } else { Players[playerid][pSetStaff] = targetid; format(string, sizeof(string), "Type\tStatus\nSupporter Rank\t%s\nFaction Mod\t%s", GetSupporterLevel(Players[targetid][pSupporter]), GetFactionModLevel(Players[targetid][pFactionMod])); Dialog_Show(playerid, SetStaff, DIALOG_STYLE_TABLIST_HEADERS, "{FFFFFF}Set Staff", string, "Adjust", "Cancel"); } return 1; } CMD:pickup(playerid, params[]) { new count = PickupNearestItem(playerid); if (!count) { SendErrorMessage(playerid, "There are no items nearby."); } return 1; } AddFire(size, Float:x, Float:y, Float:z, Health) { TotalFires++; new ID = TotalFires; if(size == 1) // Small { FireObj[ID] = CreateDynamicObject(3461, x, y, z-2.61, 0, 0, 0.0); } else if(size == 2) // Medium { FireObj[ID] = CreateDynamicObject(18692, x, y, z-2.61, 0, 0, 0.0); } else if(size == 3) // Big { FireObj[ID] = CreateDynamicObject(18691, x, y, z-2.61, 0, 0, 0.0); } else if(size == 4) { FireObj[ID] = CreateDynamicObject(18715, x, y, z-2.61, 0, 0, 0.0); // poison gas } else if(size == 5) { FireObj[ID] = CreateDynamicObject(18726, x, y, z-2.61, 0, 0, 0.0); // black smoke } FirePos[ID][0] = x, FirePos[ID][1] = y, FirePos[ID][2] = z; FireHealth[ID] = Health; FireHealthMax[ID] = 100; } CMD:slapcar(playerid, params[]) { new targetid; if(!CheckAdmin(playerid, 2)) return SCM(playerid, COLOR_LIGHTRED, "You are not an Admin."); if(sscanf(params,"d",targetid)) return SendSyntaxMessage(playerid, "/slapcar [vehicleid]"); new Float:vX,Float:vY,Float:vZ, vehicleid = targetid; GetVehicleVelocity(vehicleid,vX,vY,vZ); SetVehicleVelocity(vehicleid,vX,vY,vZ+0.25); return 1; } CMD:createfire(playerid, params[]) { if(!CheckAdmin(playerid, 5)) return SCM(playerid, COLOR_LIGHTRED, "You are not an Admin."); if(isnull(params)) return SendSyntaxMessage(playerid, "/createfire [small/medium/big]"); new Float:FirePos1[3]; GetPlayerPos(playerid, FirePos1[0], FirePos1[1], FirePos1[2]); if(strcmp(params, "small", true) == 1) { AddFire(1, FirePos1[0], FirePos1[1], FirePos1[2], 100); } if(strcmp(params, "medium", true) == 1) { AddFire(2, FirePos1[0], FirePos1[1], FirePos1[2], 250); } if(strcmp(params, "big", true) == 1) { AddFire(3, FirePos1[0], FirePos1[1], FirePos1[2], 500); } return 1; } CMD:deleteallfire(playerid, params[]) { if(CheckAdmin(playerid, 5)) { DeleteAllFire(); } return 1; } public VehicleToPoint(Float:radi, vehicleid, Float:x, Float:y, Float:z) { new Float:oldposx, Float:oldposy, Float:oldposz; new Float:tempposx, Float:tempposy, Float:tempposz; GetVehiclePos(vehicleid, oldposx, oldposy, oldposz); tempposx = (oldposx -x); tempposy = (oldposy -y); tempposz = (oldposz -z); if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) { return 1; } return 0; } public HealthDown() { new i,v,p; for(i = 0; i 0) { format(maskdetails, sizeof(maskdetails), "%s%s[Mask_%d_%d]", Players[playerid][pDeathState] ? ("{FF6347}") : ("{C3C3C3}"), formatcTag, Players[playerid][pMaskID], Players[playerid][pAge]); } if(Players[playerid][pAdminDuty]) { color = 0xE8AF0EFF >>> 8; format(maskdetails, sizeof(maskdetails), "{%06x}%s", color, Players[playerid][pAdminName]); } if(Players[playerid][pSupporter] > 0 && Players[playerid][pSupporterDuty]) { color = 0xAA333300 >>> 8; format(maskdetails, sizeof(maskdetails), "{%06x}%s {FFFFFF}(%d)", color, ReturnNameEx(playerid, 0), playerid); } if(stage == 1) { if(IsValidDynamic3DTextLabel(playerNametag[playerid])) DestroyDynamic3DTextLabel(playerNametag[playerid]); playerNametag[playerid] = CreateDynamic3DTextLabel(maskdetails, COLOR_WHITE, 0.0, 0.0, 0.10, 20.0, playerid, INVALID_VEHICLE_ID, 1, -1, -1, -1, 20.0); } else if(stage == 2) { if(tempHP <= 5.0) { new AddrPoint[300]; format(AddrPoint, sizeof(AddrPoint), "{FF6347}%s {FFFFFF}(%d)\n", ReturnNameEx(playerid), playerid); UpdateDynamic3DTextLabelText(playerNametag[playerid], COLOR_WHITE, AddrPoint); } else { UpdateDynamic3DTextLabelText(playerNametag[playerid], COLOR_WHITE, maskdetails); } } return true; } Dialog:FurnEditConfirm(playerid, response, listitem, inputtext[]) { if(!response) return ListTexture(playerid); EditDynamicObjectEx(playerid, EDIT_TYPE_FURNITURE, Furniture[GetPVarInt(playerid, "FurnID")][fObject], GetPVarInt(playerid, "FurnID")); return 1; } Dialog:ChangeMat(playerid, response, listitem, inputtext[]) { if(!response) return 1; if(listitem == 0 || listitem == 1) return ShowColorList(playerid); new t = -1; for(new x = 0; x < sizeof(MaterialIDs); x++) { if(strcmp(inputtext, MaterialIDs[x][Name], true) == 0) { t = x; break; } } if(t == -1) return SendClientMessage(playerid, COLOR_RED, "An error has occurred, please try it later! (DEBUG: \"ChangeMatHandler\")"); FurnitureChange(playerid, GetPVarInt(playerid, "FurnID"), GetPVarInt(playerid, "MatSlot"), t, 1); return true; } Dialog:ChangeColor(playerid, response, listitem, inputtext[]) { if(!response) return 1; if(listitem == 0 || listitem == 1) return MaterialRes FurnitureChange(playerid, GetPVarInt(playerid, "FurnID"), GetPVarInt(playerid, "MatSlot"), listitem, 2); return true; } ListTexture(playerid) { new fid = GetPVarInt(playerid, "FurnID"); new list[256], header[64]; format(header, sizeof(header), "You are now editing ID: %d.", GetPVarInt(playerid, "FurnID")); format(list, sizeof(list), "Index 1: %s\nIndex 2: %s\nIndex 3: %s\n \nClear Textures", Furniture[fid][fMaterial][0] ? ("{FFFF00}In Use") : ("{C3C3C3}Empty"), Furniture[fid][fMaterial][1] ? ("{FFFF00}In Use") : ("{C3C3C3}Empty"), Furniture[fid][fMaterial][2] ? ("{FFFF00}In Use") : ("{C3C3C3}Empty")); Dialog_Show(playerid, MaterialHandler, DIALOG_STYLE_LIST, header, list, ">>", "Cancel"); return 1; } Dialog:MaterialHandler(playerid, response, listitem, inputtext[]) { if(!response) return 1; if(listitem == 4) { for(new i = 0; i != 3; i ++) { Furniture[GetPVarInt(playerid, "FurnID")][fMaterial][i] = 0; Furniture[GetPVarInt(playerid, "FurnID")][fMatColour][i] = 0; SetDynamicObjectMaterial(Furniture[GetPVarInt(playerid, "FurnID")][fObject], i, -1, "none", "none", 0); } SaveFurniture(GetPVarInt(playerid, "FurnID")); } SetPVarInt(playerid, "MatSlot", listitem); MaterialRes //ShowMaterialList(playerid); return true; } Dialog:TextureResources(playerid, response, listitem, inputtext[]) { if(!response) return 1; new gstr[2056], gString[256]; format(gString, sizeof(gString), " << {F3FF02}Select Color\n"); strcat(gstr, gString); for(new i = 0; i < sizeof(MaterialIDs); i++) { if(strcmp("None", MaterialIDs[i][Resource], true) == 0) continue; if(strcmp(inputtext, MaterialIDs[i][Resource], true) == 0) { strcat(gstr, MaterialIDs[i][Name]); strcat(gstr, "\n"); } } Dialog_Show(playerid, ChangeMat, DIALOG_STYLE_LIST, "Texture List", gstr, ">>", "Cancel"); return 1; } ShowColorList(playerid) { new list[4056], bigStr[256], gString[256]; format(gString, sizeof(gString), " << {F3FF02}Select Texture\n"); strcat(list, gString); for(new i = 0; i < sizeof(MaterialColors); i++) { if(strcmp("none", MaterialColors[i][ColorName], true) == 0) continue; format(bigStr, sizeof(bigStr), "%s\n", MaterialColors[i][ColorName]); strcat(list, bigStr); } Dialog_Show(playerid, ChangeColor, DIALOG_STYLE_LIST, "Color List", list, ">>", "Cancel"); return 1; } FurnitureChange(playerid, furnid, index, list, status = 1) // 1 for mat, 2 for color { new model, txd[24], texture[24], color; switch(status) { case 1: { SendClientMessage(playerid, -1, "Furniture texture has been updated."); Furniture[furnid][fMaterial][index] = list; SetDynamicObjectMaterial(Furniture[furnid][fObject], index, MaterialIDs[ Furniture[furnid][fMaterial][index] ][ModelID], MaterialIDs[ Furniture[furnid][fMaterial][index] ][TxdName], MaterialIDs[ Furniture[furnid][fMaterial][index] ][TextureName], MaterialColors[ Furniture[furnid][fMatColour][index] ][ColorHex]); SaveFurniture(furnid); } case 2: { if(Furniture[furnid][fMaterial][index] == 0) { Furniture[furnid][fMatColour][index] = list; SetDynamicObjectMaterial(Furniture[furnid][fObject], index, -1, MaterialIDs[ Furniture[furnid][fMaterial][index] ][TxdName], MaterialIDs[ Furniture[furnid][fMaterial][index] ][TextureName], MaterialColors[ Furniture[furnid][fMatColour][index] ][ColorHex]); SaveFurniture(furnid); } else { SendClientMessage(playerid, -1, "Furniture color has been updated."); Furniture[furnid][fMatColour][index] = list; GetDynamicObjectMaterial(Furniture[furnid][fObject], index, model, txd, texture, color); SetDynamicObjectMaterial(Furniture[furnid][fObject], index, model, txd, texture, MaterialColors[ Furniture[furnid][fMatColour][index] ][ColorHex]); SaveFurniture(furnid); } } } return 1; } stock IsAccountExist(sqlplayersname[], playerid) { if(IsPlayerNPC(playerid)) return false; mysql_format(gConnection, gExecute, sizeof(gExecute), "SELECT ID FROM rp_accounts WHERE Username = '%s' LIMIT 1", sqlplayersname); new Cache:result = mysql_query(gConnection, gExecute); if(cache_num_rows() > 0) { new playerID = cache_get_field_content_int(0, "ID"); cache_delete(result); printf("[MySQL] %s(ID %i) has checked for account '%s' and got SQLID %i.", ReturnNameEx(playerid, 0), playerid, sqlplayersname, playerID); return playerID; } else { cache_delete(result); return false; } } stock IsNumeric(const string[]) { for (new i = 0, j = strlen(string); i < j; i++) { if (string[i] > '9' || string[i] < '0') return 0; } return 1; }