/* __________ __ __ __________ .__ .__ \______ \_______ ____ |__| ____ _____/ |_ \______ \ ____ | | ____ ______ | | _____ ___.__. | ___/\_ __ \/ _ \ | |/ __ \_/ ___\ __\ | _// _ \| | _/ __ \\____ \| | \__ \< | | | | | | \( <_> ) | \ ___/\ \___| | | | ( <_> ) |_\ ___/| |_> > |__/ __ \\___ | |____| |__| \____/\__| |\___ >\___ >__| |____|_ /\____/|____/\___ > __/|____(____ / ____| \______| \/ \/ \/ \/|__| \/\/ _ ____ _ _____ ____ _ ____ _ __ / \__/|/ _ \/ \ |\/ __// __\/ \/ _\/ |/ / | |\/||| / \|| | //| \ | \/|| || / | / | | ||| |-||| \// | /_ | /| || \_ | \ \_/ \|\_/ \|\__/ \____\\_/\_\\_/\____/\_|\_ _ ____ ___ _ ____ ____ _ _ ____ ___ _ / \__/|/ _ \\ \// / _\/ _ \/ \ /|/ \ /|/ _ \\ \// | |\/||| / \| \ / | / | / \|| |\ ||| | ||| / \| \ / | | ||| |-|| / \ | \__| \_/|| | \||| |/\||| |-|| / / \_/ \|\_/ \|/__/\\ \____/\____/\_/ \|\_/ \|\_/ \|/_/ */ #pragma option -d3 #include #include #include #include #include #define FIXES_ServerVarMsg 0 #include #include #include #include #include #include #include #include //#define UseDiscordBot 1 #include #include #include // Alias Custom Damage #include // Custom Damage /*#if UseDiscordBot 1 #include #include #endif*/ // Factions #define MAX_FACTIONS 15 #define FACTION_NONE 0 #define FACTION_SAPD 1 #define FACTION_FBI 2 #define FACTION_SASD 3 #define FACTION_FMD 4 #define FACTION_ARMY 5 #define FACTION_GOV 6 #define FACTION_JD 7 #define FACTION_NEWS 9 #define FACTION_TAXI 10 #define FACTION_S9 11 #define FACTION_DEA 12 #define FACTION_ATF 13 #define FACTION_SANG 14 #define FACTION_SAS 15 #define MAX_SAPD_RANKS 9 #define MAX_FBI_RANKS 7 #define MAX_SAST_RANKS 7 #define MAX_SAFMD_RANKS 6 #define MAX_DOC_RANKS 6 #define MAX_GOV_RANKS 5 #define MAX_SCOTUS_RANKS 1 #define MAX_HITMEN_RANKS 6 #define MAX_NEWS_RANKS 7 #define MAX_TAXI_RANKS 6 #define MAX_S9_RANKS 4 #define MAX_SAS_RANKS 8 #define MAX_SANG_RANKS 6 #define MAX_SPLIT_LENGTH 85 // If the line below is uncommented, the S9 faction will be disabled // #define S9_DISABLED // HQ coordinates #define HQ_SYNDICATE 420.61, 2522.76, 9.99 #define HQ_CJNG 421.53, 2521.25, 9.99 #define HQ_SECTOR9 255.3861, 76.6493, 1003.6406 #define HQ_HITMAN 312.7244, -166.1414, 999.6010 // Dialogs #define DIALOG_BANNED 63336 #define DIALOG_LOGIN 1 #define DIALOG_REGISTER 2 #define DIALOG_BUSSINESS_BUY 3 #define DIALOG_BUSINESS_DRINK 4 #define DIALOG_TRAIN 5 #define DIALOG_BUYMEAL 6 #define DIALOG_PG_MAIN 7 #define DIALOG_PG_WEAPONRY 8 #define DIALOG_LEO_MAIN 9 #define DIALOG_SAPD_WEAPONRY 10 #define DIALOG_SAPD_SWAT 11 #define DIALOG_SAPD_SWAT_WEAPONS 12 #define DIALOG_SAPD_SWAT_ACCESSORIES 14 #define DIALOG_ADMIN_COLORCHANGER 15 #define DIALOG_JOBHELP 16 #define DIALOG_JOBHELP_DETECTIVE 17 #define DIALOG_JOBHELP_LAWYER 18 #define DIALOG_JOBHELP_DDEALER 19 #define DIALOG_JOBHELP_MECHANIC 20 #define DIALOG_JOBHELP_BODYGUARD 21 #define DIALOG_JOBHELP_ADEALER 22 #define DIALOG_JOBHELP_BOXER 23 #define DIALOG_JOBHELP_TAXIDR 24 #define DIALOG_JOBHELP_DRUGSM 25 #define DIALOG_JOB_BOTS 35000 #define DIALOG_SAS_MAIN 26 #define DIALOG_S9_MAIN 27 #define DIALOG_S9_ARMORY 28 #define DIALOG_S9_RESTRICTED 29 #define DIALOG_S9_BADGES 30 #define DIALOG_NAMECHANGES 31 #define DIALOG_NAMECHANGES_OLD 32 #define DIALOG_NAMECHANGES_NEW 33 #define DIALOG_NAMECHANGES_ADMIN 34 #define DIALOG_NAMECHANGES_ID 35 #define DIALOG_S9_RANKS 37 #define DIALOG_LSFMD_MAIN 67 #define DIALOG_LSFMD_GEAR 68 #define DIALOG_SENATE_MAIN 91 #define DIALOG_SENATE_ARMORY 92 #define DIALOGID_GUIDE_MAIN 179 #define DIALOGID_GUIDE_MONEY 180 #define DIALOGID_GUIDE_GUNS 181 #define DIALOGID_GUIDE_FACTION 182 #define DIALOGID_GUIDE_ROLEPLAY 183 #define DIALOGID_GUIDE_LEVEL 184 #define DIALOG_HC_MAIN 193 #define DIALOG_HC_ARMORY 194 #define CLUB_DOOR_ID 243 #define DIALOG_JOBHELP_PDEALER 276 #define DIALOG_JOBHELP_WASTECOLLECTOR 277 #define DIALOG_VERSION 999 #define DIALOG_MAP_LOCATIONS 998 #define DIALOG_CALC_1 1400 #define DIALOG_CALC_2 1401 #define DIALOG_CALC_3 1402 #define DIALOG_STATS 1403 #define DIALOG_STATS1 14022 #define DIALOG_SKILLS 1404 #define DIALOG_WANTED 1405 #define DIALOG_MC_WEAPONS 2008 #define DIALOG_DONORCLUB_DRINK 2595 #define DIALOG_JOBHELP_MINER 2755 #define DIALOG_APPEARANCE_MAIN 3941 #define DIALOG_APPEARANCE_HEIGHT 3942 #define DIALOG_APPEARANCE_AGE 3943 #define DIALOG_APPEARANCE_BUILD 3944 #define DIALOG_APPEARANCE_ETHNICITY 3945 #define DIALOG_APPEARANCE_EYE 3946 #define DIALOG_APPEARANCE_GENDER 3947 #define DIALOG_APPEARANCE_UNIQUE 3948 #define DIALOG_APPEARANCE_DISPLAY 3949 #define DIALOG_APPEARANCE_DISPLAYMDC 3950 #define DIALOG_S9_EDIT_BADGE 3951 #define DIALOG_S9_EDIT_BADGE_NAME 3952 #define DIALOG_S9_EDIT_BADGE_FACTION 3953 #define DIALOG_S9_EDIT_BADGE_WEAPONS 3954 #define DIALOG_ARMORY 21521 #define DIALOG_GAMBLE_1 1784 #define DIALOG_GAMBLE_2 1785 #define DIALOG_ADMINS 10000 #define DIALOG_SECURITY_CODE 10001 #define DIALOG_TIJUANA_ARMORY 21691 // used in groups.inc, check the file for the response as well #define DIALOG_GREYWOLF_ARMORY 3216 #define TRUNKDIALOG 6279 #define TRUNKPUTGUN 6278 #define TRUNKTAKEGUN 6277 #define TRUNKPUTVEST 6276 #define TRUNKTAKEVEST 6275 #define TRUNKPUTMAN 6274 #define TRUNKTAKEMAN 6273 /* Bots Dialog */ #define DIALOG_BUYGUN 2555 //emmet #define DIALOG_EDITDOOR_CREATEPRIVATE 2556 //private doors #define DIALOG_EDITDOOR_EIPOS 2557 //private doors /* Trunk dialogs */ stock logswrite(file[] , text[]) { new File:pp=fopen(file,io_append); fwrite(pp,text); fwrite(pp,"\r\n"); fclose(pp); return 1; } #define TRUNK_TAKE_CANNABIS 6266 #define TRUNK_PUT_CANNABIS 6267 #define TRUNK_TAKE_STUFF 6268 #define TRUNK_PUT_STUFF 6269 #define TRUNK_TAKE_COCAINE 6270 #define TRUNK_PUT_COCAINE 6271 #define TRUNK_CHECK 6272 #define TRUNK_PUT_METH 6273 #define TRUNK_TAKE_METH 6274 #define TRUNK_PUT_XANAX 6275 #define TRUNK_TAKE_XANAX 6276 #define BUYCARDIALOG 6264 #define CARDIALOG 6265 #define OWNCARUPGRADE 6263 #define OWNCARUPGRADE2 6262 #define CARTRACK 6261 #define DEALERSHIPDIALOG 6250 #define BUYLP 6249 #define BUYLP2 6248 #define TOWCAR 6247 #define VEHINFO 6246 #define GIVEKEYS 6245 #define DIALOG_HITMAN 6494 #define AMSGS 7000 #define FAMILY_DIALOG 7001 #define FAMILY_INFO 7002 #define DIALOG_HOUSEUPGRADE 8241 #define DIALOG_MOD_EDIT 12131 #define DIALOG_FREE_NAMECHANGE 12136 #define DIALOG_FREE_NAMECHANGE1 DIALOG_FREE_NAMECHANGE + 1 #define DIALOG_SYNDICATE_NAMECHANGE 12150 #define DIALOG_PAINTBALL_WEAPONS1 12221 #define DIALOG_PAINTBALL_WEAPONS2 12222 #define DIALOG_PAINTBALL_WEAPONS3 12223 #define DIALOG_PAINTBALL_WEAPONS4 12224 #define DIALOG_PAINTBALL_WEAPONS5 12225 #define DIALOG_PAINTBALL_WEAPONS6 12226 #define DIALOG_TUTORIAL 13849 #define DIALOG_TUTORIAL_FACTIONS 13850 #define DIALOG_TUTORIAL_FINISH 13851 #define DIALOG_GEAR_DELETE 13899 #define DIALOG_UNUSED 14121 #define DIALOG_MDC_WANTED 14023 #define DIALOG_BUYCLOTHES_CONFIRM 14065 #define DIALOG_TAXI 15824 #define DIALOG_TAXI_UNIFORMS DIALOG_TAXI+1 #define DIALOG_TAXI_WEAPONS DIALOG_TAXI+2 #define DIALOG_EDITDOOR_MAIN 17400 #define DIALOG_EDITDOOR_CREATE 17500 #define DIALOG_EDITDOOR_NAME1 17600 #define DIALOG_EDITDOOR_NAME2 17601 #define DIALOG_EDITDOOR_EPOS 17700 #define DIALOG_EDITDOOR_IPOS 17800 #define DIALOG_EDITDOOR_ICON1 17900 #define DIALOG_EDITDOOR_ICON2 17901 #define DIALOG_EDITDOOR_REM1 17910 #define DIALOG_EDITDOOR_REM2 17911 #define DIALOG_EDITDOOR_PASS1 17920 #define DIALOG_EDITDOOR_PASS2 17921 #define DIALOG_LASTGUNS 17923 #define DIALOG_EDITDOOR_FREEZE 17931 #define DIALOG_EDITDOOR_OWNER1 17932 #define SANEWSLOCKER 17933 #define SANEWSGUNS 17934 #define DIALOG_EDITDOOR_OWNER2 17935 #define DIALOG_CHARGES_REMOVE 17959 #define DIALOG_ID_PLAYER_PASS 18100 #define DIALOG_CRIME 21522 #define DIALOG_MAP 21742 #define DIALOG_BUYACCESSOR 24213 #define DIALOG_BUYACCESSOR_MAIN 24214 #define DIALOG_JOBHELP_PIZZADELIVER 27392 #define DIALOG_JOBHELP_FARMER 27395 #define DIALOG_JOBHELP_GRASS 27396 #define DIALOG_MDC_MAIN 31667 #define DIALOG_BAR_DYN 32762 #define DIALOG_CLEARMOD 25322 #define AdmErrorMsg SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You're not authorized to use that command.") #define MDC_MAIN ShowPlayerDialog(playerid, DIALOG_MDC_MAIN, DIALOG_STYLE_LIST, "{2641FE}Mobile Data Computer", "Run a check\nBe On Look Out\nWeapons License Log\nWanted\n{FF6347}Sign Out{FFFFFF}", "Select", "{FF6347}Sign out") // a_samp redefines #undef MAX_PLAYERS #define MAX_PLAYERS 300 #undef MAX_VEHICLES #define MAX_VEHICLES 2000 #define MAX_PLAYERVEHICLES 3 //new UnlockServer; #define HOUSE_UNOWNED 19523 #define HOUSE_ONLINE 1273 #define HOUSE_OFFLINE 19522 #define HELMET_SLOT 8 #define FLASHLIGHT_SLOT1 8 #define FLASHLIGHT_SLOT2 9 #define MAX_HOSP_POINTS 3 #define MAX_FAMILY_STRIKE 3 // Families will be disbanded when they reach this amount #define pauseUpdateTimer1 6 #define pauseUpdateTimer2 (pauseUpdateTimer1 * 1000) #define DEVMODE 0 // DoC related #define DOC_WORLD 50 #define DOC_INT 50 #define DIALOG_PG_UNIFORM 32763 // SANG lockers #define DIALOG_SANG_MAIN 31431 #define DIALOG_SANG_WEAPONRY 31432 #define DIALOG_SANG_UNIFORM 31433 // Is the RRK disabled? new FMD_RRK_DISABLED = false; new DOUBLE_EXP_MODE = 0; new ADMIN_ENABLED_DOUBLE_EXP_MODE = 0; new gamemodeLoaded = 0; #include new PlayerBar:workingProgress[MAX_PLAYERS], PlayerBar:breakcuffs[MAX_PLAYERS]; #define MYSQL_USE_YINLINE #include #include #include //#include #if !defined STREAMER_OBJECT_SD #define STREAMER_OBJECT_SD 350.0 //try balance the server side stuff v client side #endif //intention: do server stuff first, then draw for client #if !defined STREAMER_OBJECT_DD #define STREAMER_OBJECT_DD 250.0 #endif #include #include //#include // Full vest on spawn exploit fix new FVestProtected[MAX_PLAYERS]; Timer:FVestProtection(playerid) { FVestProtected[playerid] = 0; return 1; } //is a valid name by Jacob //valid names: Jacob_Alex_Malcom, Jacob_McAlex_McMalcom, Jacob_Alex_McMalcom, Jacob_Malcom //invalid names: Jacob_, Jacob__Malcom, Jacob_Malcom_, jacob_malcom, JACOB_MALCOM, Jacob_MALcom #define IsValidName(%1) \ regex_match(%1, "^[A-Z]{1}[a-z]+\ _{1}[A-Z]{1,2}([a-z]{1}[A-Z]{1})?[a-z]+\ (_{1}[A-Z]{1,2}([a-z]{1}[A-Z]{1})?[a-z]+)?$") new IsPlayerAlreadyConnected[MAX_PLAYERS] = 0; split(const strsrc[], strdest[][], delimiter) { new i, li; new aNum; new len; while(i <= strlen(strsrc)) { if(strsrc[i] ==delimiter || i ==strlen(strsrc)) { len = strmid(strdest[aNum], strsrc, li, i, 128); strdest[aNum][len] = 0; li = i +1; aNum++; } i++; } return 1; } // Neon variables new Neon[MAX_VEHICLES], Neon2[MAX_VEHICLES], Neon3[MAX_VEHICLES], Neon4[MAX_VEHICLES]; #include "../gamemodes/inc/custom_skins/array.inc" #include "../gamemodes/inc/amessages.inc" #include "../gamemodes/inc/intcoords.inc" #include "../gamemodes/inc/vip.inc" #include "../gamemodes/inc/vehicleSpawns.inc" #include "../gamemodes/inc/welcomemsg.inc" #include "../gamemodes/inc/cuffs.inc" #include "../gamemodes/inc/radios.inc" #include "../gamemodes/inc/map.inc" //#include "../gamemodes/inc/core/useful.inc" #include "../config/mysql.inc" //mysql server config details //#include "../gamemodes/inc/donorvehicles.inc" //donorcars //Core includes #include "../gamemodes/inc/core/useful.inc" //USEFUL ~FUNCTIONS~ ONLY #define MAX_ADVERTS 5 enum adInfo { AD_AUTHOR[MAX_PLAYER_NAME], AD_STRING[128], AD_PHONE, bool:AD_ACTIVE } new advertInfo[MAX_ADVERTS][adInfo]; new LastAd, adCount; enum _blockedNumbers { Number1, Number2, Number3, Number4, Number5 } new bool:BlockedPM[MAX_PLAYERS][MAX_PLAYERS] = {false, ...}; new bool: cameraTaken, cameraPlacedByID, cameraObject, Text3D: cameraText, bool: cameraLive, Float: cameraPos[4], cameraVirtualWorld, cameraInterior; new bool:beingDragged[MAX_PLAYERS], dragTimer[MAX_PLAYERS], bool:isDragging[MAX_PLAYERS], bool:OOCRadioOff[20]; new Float:pbHealth[MAX_PLAYERS], Float:pbArmor[MAX_PLAYERS], inBarracksID[MAX_PLAYERS], helperVeh[MAX_PLAYERS], bool:slipOff[MAX_PLAYERS], bool:inHouse[MAX_PLAYERS], bool:MethEffect[MAX_PLAYERS]; new BeforeStatBoost[MAX_PLAYERS]; new bool:hitmanUndercover[MAX_PLAYERS]; //==============================[UPDATE THESE]================================== // Please keep these updated with every commit, not every commit has to be on // /version but please keep the gamemode version updated with every commit. #define GAMEMODE_VERSION "PRP v1.6" #define BETAMODE_VERSION "PRP v1.6 (Dev)" #define MOTD_COLOR COLOR_YELLOW2 #define MOTD_MESSAGE1 "{FFFFFF}Use {7DAEFF}(/newb)ie{FFFFFF} to speak in the {7DAEFF}newbie chat channel{FFFFFF} if you have any server related questions." #define MOTD_MESSAGE2 "{FFFFFF}You can use {FFFF91}/help{FFFFFF} to see a list of commands or to display {FFFF91}job information{FFFFFF}." #define MOTD_MESSAGE4 "{FFFFFF}Have fun and enjoy your stay." #define displayHudTime 5 #define MAX_VEHICLE_DISTANCE_TO_TRAILER 15 #define MAX_VEHICLE_DISTANCE_CHANGE 50 #define MAX_CCTV_DYNAMIC 50 #define CCTV_OBJID 1886 #define MAX_BARS 100 #define MAX_CCTVS 100 //================================[Enumerators]================================= stock IsAnAircraft(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 417, 425, 447, 460, 469, 476, 487, 488, 497, 511, 512, 513, 519, 520, 548, 553, 563, 577, 592, 593: return 1; } return 0; } new inAndromadaID[MAX_PLAYERS] = INVALID_VEHICLE_ID; new hasTruckCheckpoint[MAX_PLAYERS]; //index of garbage truck array (slot), set on /gettrash new unloadingTrashTimer[MAX_PLAYERS]; // Faction leader chat toggled new toggedflchat[MAX_PLAYERS]; enum trashlocInfo { Float:posX, Float:posY, Float:posZ, tAmount, tLimit, Text3D:trashLabelID } new trashInfo[36][trashlocInfo] = { {656.0162, -440.2989, 16.3359, 5, 5}, {668.2491, -623.4116, 16.3359, 5, 5}, {1174.2064, -1356.3368, 13.9530, 10, 10}, {607.7927, -1490.3461, 14.8632, 10, 10}, {846.2512, -1800.1854, 13.8432, 10, 10}, {1580.5636, -1715.1965, 13.5546, 10, 10}, {2106.9880, -1789.3810, 13.5608, 10, 10}, {2046.4647, -1898.4299, 13.5538, 10, 10}, {1629.5443, -1899.7109, 13.5548, 10, 10}, {2309.5945, -1758.1171, 13.6367, 10, 10}, {2764.1753, -2006.2146, 13.5620, 10, 10}, {2718.7241, -2386.2786, 13.6328, 10, 10}, {1945.2909, -2175.3149, 13.5542, 10, 10}, {1860.5347, -1369.7974, 13.5616, 10, 10}, {2084.3003, -1229.5402, 23.9766, 10, 10}, {2011.2698, -1452.1449, 13.5547, 10, 10}, {2357.3074, -1478.3748, 23.9520, 10, 10}, {2426.7498, -1679.7200, 13.7737, 10, 10}, {2210.0242, -1142.7646, 25.8089, 10, 10}, {2185.7751, -1000.4038, 62.8628, 10, 10}, {2866.2373, -1398.2673, 10.9723, 10, 10}, {2104.1113, -1940.9707, 13.5469, 10, 10}, {1850.4943, -1861.1707, 13.5851, 10, 10}, {1157.9663, -1202.8258, 19.7720, 10, 10}, {1337.5367,-1773.9077,13.5469, 10, 10}, {2129.2188,-1739.2914,13.5629, 10, 10}, {2148.6326,-1609.5536,14.2428, 10, 10}, {2382.0149,-1940.1724,13.5469, 10, 10}, {1521.1866,-1018.5400,23.9112, 15, 15}, {1788.8053,-1112.6873,24.0859, 5, 5}, {1829.5405,-1084.2778,23.8812, 5, 5}, {1786.1578,-1147.2633,23.8729, 5, 5}, {1904.4880,-1604.6500,13.5469, 5, 5}, {1439.8439,-1324.7329,13.5450, 8, 8}, {1461.4233,-1488.4702,13.5469, 5, 5}, {1936.6740,-2079.8098,13.5594, 10, 10} }; new isBOLO[MAX_PLAYERS], boloBy[MAX_PLAYERS][24]; // Player checkpoint positions enum cpInfo { Float:cpX, Float:cpY, Float:cpZ, Float:cpSize } enum _noClipEnum { ncCameraMode, ncFlyObject, ncMode, ncLRold, ncUDold, ncLastMove, Float:ncAccelMul } enum _facMOTD { motdOne[128], motdTwo[128], motdThree[128], motdFour[128], motdFive[128], motdSix[128], motdSeven[128], motdEight[128], motdNine[128], motdTen[128], motdEleven[128], motdTwelve[128], motdThirteen[128], motdFourteen[128], motdFifteen[128] } enum _CCTVEnum { CCTVName[50], CCTVOwner[24], Float:CCTVX, Float:CCTVY, Float:CCTVZ, Float:CCTVRX, Float:CCTVRY, Float:CCTVRZ, CCTVVW, CCTVINT, Float:CCTVLookAtX, Float:CCTVLookAtY, Float:CCTVLookAtZ, CCTVObject } enum _wNamesPB { pbWeaponName1[32], pbWeaponName2[32], pbWeaponName3[32], pbWeaponName4[32], pbWeaponName5[32] } /* Adding variables here will get you instantly fired. */ //new bool:IsDead[MAX_PLAYERS]; new mdcstr[300], AFK_Timer[MAX_PLAYERS], blackblindfoldzone, PlayerCalledPD[MAX_PLAYERS], CCTV[MAX_CCTV_DYNAMIC][_CCTVEnum], CCTVCount, bool:EditingCamera[MAX_PLAYERS], CameraID[MAX_PLAYERS], OnCCTV[MAX_PLAYERS] = {-1, ...}, Float:CameraX[MAX_PLAYERS], Float:CameraY[MAX_PLAYERS], Float:CameraZ[MAX_PLAYERS], CameraInt[MAX_PLAYERS], CameraWorld[MAX_PLAYERS], Text:CCTV_Arrows[2], bool:isPlayerFlying[MAX_PLAYERS], flyingTimer[MAX_PLAYERS], Float:pFlyHealth[MAX_PLAYERS], Float:pFlyArmour[MAX_PLAYERS], hasTempRRK[MAX_PLAYERS], bool:famMuted[MAX_PLAYERS], famMutedTime[MAX_PLAYERS], muteTimer[MAX_PLAYERS], bool:ToggedWarns[MAX_PLAYERS], bool:customRankName[MAX_PLAYERS], customRank[MAX_PLAYERS][24], bool:pMutedA[MAX_PLAYERS], antiLoseWeapon[MAX_PLAYERS][14], newbiePrice[MAX_PLAYERS], bool:newbieRequest[MAX_PLAYERS], bool:adRequest[MAX_PLAYERS], adPrice[MAX_PLAYERS], // Reported[MAX_PLAYERS], // bool:areported[MAX_PLAYERS], reportText[MAX_PLAYERS][80]; new bool: hasListening[MAX_PLAYERS]; new bool:hasPassed[MAX_PLAYERS], bool:pCommandUsed[MAX_PLAYERS], bool:canReportAgain[MAX_PLAYERS], dPosGet[MAX_PLAYERS], pInHospital[MAX_PLAYERS]; new bool:towingCar[MAX_PLAYERS], towTimer[MAX_PLAYERS]; new bool:famTog[MAX_PLAYERS], bool:isRepairing[MAX_PLAYERS], repairVeh[MAX_PLAYERS], adminMOTD[128], bool:onCellPhone[MAX_PLAYERS]; new bool:HelpingNewbie[MAX_PLAYERS], bool:HelperVeh2[MAX_PLAYERS], bool:ToggedOR[MAX_PLAYERS], bool:goingJob[MAX_PLAYERS], csCount[MAX_PLAYERS]; new bool:boxToggled[MAX_PLAYERS], bool:callerID[MAX_PLAYERS], bool:usingFakeBadge[MAX_PLAYERS]; new bool:CanRepair[MAX_PLAYERS], canRepairTimer[MAX_PLAYERS]; new saveWeapon[MAX_PLAYERS][12], Blocked[MAX_PLAYERS][_blockedNumbers]; new checkpointInfo[MAX_PLAYERS][cpInfo], dialogPage[MAX_PLAYERS]; new autoMessages[6][128], messagePos = 1, bool:adminDuty[MAX_PLAYERS]; new PaintBall[MAX_PLAYERS][_wNamesPB], inPaintball[MAX_PLAYERS], pbKills[MAX_PLAYERS], pPaintGuns[MAX_PLAYERS][6], Text:PaintballLeaderTD, Text:PaintballLeaderTD2; new backupType[MAX_PLAYERS]; new bool:toggedDept[MAX_PLAYERS], bool:toggedRadio[MAX_PLAYERS], bool:cellMuted[MAX_PLAYERS], playerDMVCar[MAX_PLAYERS]; new dmvSlot[MAX_PLAYERS], bool:autoFailed[MAX_PLAYERS], bool:hotlineState =true; new plNCData[MAX_PLAYERS][_noClipEnum], Float:playerMoveSpeed[MAX_PLAYERS], bool:flyingUsed[MAX_PLAYERS], facMOTD[17][_facMOTD]; new bool:toggledHotlined[MAX_PLAYERS], bool:hasFlashlight[MAX_PLAYERS], oldWeapon[MAX_PLAYERS]; new Float:Fly_X[MAX_PLAYERS], Float:Fly_Y[MAX_PLAYERS], Float:Fly_Z[MAX_PLAYERS], Float:Fly_A[MAX_PLAYERS]; new g_WeatherID; new checkedAccount[MAX_PLAYERS]; new MaskNumber[MAX_PLAYERS]; new playerserial[64]; new LastPM[MAX_PLAYERS], bool:TogPM[MAX_PLAYERS], bool:TogPMGlobal; new AdrenalineSteal[MAX_PLAYERS]; new bool:ADuty[MAX_PLAYERS], bool:ADutyTimer[MAX_PLAYERS], bool:RegWarn, bool:HDuty[MAX_PLAYERS]; new minutesOnline[MAX_PLAYERS]; new lastShotByWeaponID[MAX_PLAYERS]; new lastShotByPlayerID[MAX_PLAYERS]; new lastShotBodyPart[MAX_PLAYERS]; new NextBan;//bans new Ban1Name[MAX_PLAYER_NAME], Ban2Name[MAX_PLAYER_NAME], Ban3Name[MAX_PLAYER_NAME], Ban4Name[MAX_PLAYER_NAME], Ban5Name[MAX_PLAYER_NAME]; new Ban1gpci[128], Ban2gpci[128], Ban3gpci[128], Ban4gpci[128], Ban5gpci[128]; new Ban1ip[128], Ban2ip[128], Ban3ip[128], Ban4ip[128], Ban5ip[128]; new FakeFaction[MAX_PLAYERS]; // Needs to be removed from script entirely. new FakeRank[MAX_PLAYERS]; // Needs to be removed from script entirely. new LoopasafeWeapon[10]; new LoopasafeCash; new LoopasafePot; new LoopasafeCrack; new LoopasafeMats; // For S9 badges new S9BadgeFaction[128]; new S9BadgeWeapons[128]; new RadioFrequency[MAX_PLAYERS]; // For S9 faction selection new ChosenFaction[MAX_PLAYERS]; new ChosenRank[MAX_PLAYERS]; // For /nos command // new nosVehicle[MAX_PLAYERS], bool:isAddingNos[MAX_PLAYERS]; // For pubic background check new checkingBackground[MAX_PLAYERS], checkingID[MAX_PLAYERS], checkingName[MAX_PLAYERS][30]; // For players new togsandonate[MAX_PLAYERS]; // for charge removing new searchingsqlid[MAX_PLAYERS]; // For the /fall(ing) command new fallingSeconds[MAX_PLAYERS]; // For /rpm command new lastPMedID[MAX_PLAYERS]; #define INVALID_WEAPON_ID 0 new Float:paintBallArena[7][3] = { { -1136.5530, 1078.7391, 1345.8062}, { -1097.9240, 1039.3434, 1343.1390}, { -1026.2610, 1051.7496, 1342.3792}, { -1044.7739, 1096.0839, 1346.1598}, { -1008.6546, 1022.7844, 1341.0078}, { -975.2208, 1089.7521, 1348.4375}, { -978.1649, 1035.5266, 1345.0063} }; stock OOCRadioStatus(){ for(new i = 1; i < 16; i++){ OOCRadioOff[i] = false; } return 1; } new bool:beingCalled[MAX_PLAYERS]; // Checkpoints. #include "../gamemodes/inc/core/checkpoints.inc" // Tray Types enum { TYPE_EMPTY = 0, TRAY_TYPE_PIZZA, TRAY_TYPE_CHICKEN, TRAY_TYPE_BURGER, TRAY_TYPE_DONUT }; // Developer Ranks enum { DEVRANK_NONE = 0, DEVRANK_JUNIOR, DEVRANK_SENIOR, DEVRANK_MANAGER, DEVRANK_LEAD, TESTERRANK_NONE = 0, TESTERRANK_REGULAR, TESTERRANK_SENIOR, TESTERRANK_MANAGER }; // Mapper Ranks enum { MAPPERRANK_NONE = 0, MAPPERRANK_REGULAR, MAPPERRANK_SENIOR, MAPPERRANK_MANAGER } // Newbie/Global Tags enum { //Newbie NTAG_NEWBIE = 1, NTAG_PLAYER, NTAG_BVIP, NTAG_SVIP, NTAG_GVIP, NTAG_DVIP, NTAG_HELPER, NTAG_THELPER, NTAG_SHELPER, NTAG_ADMIN, NTAG_JUNIORDEV, NTAG_HHELPER, NTAG_DOPR, NTAG_SENIORDEV, NTAG_MANAGERDEV, NTAG_LEADDEV, NTAG_FAMED, NTAG_MANAGERFAMED, NTAG_ECONO, NTAG_TESTER, NTAG_STESTER, NTAG_MANAGERTESTER, NTAG_CUSTOM, NTAG_MAPPER, NTAG_SENIORMAPPER, NTAG_MANAGERMAPPER, NTAG_OLDSCHOOL, NTAG_MODOLDSCHOOL, //Global GTAG_NEWBIE = 1, GTAG_PLAYER, GTAG_BVIP, GTAG_SVIP, GTAG_GVIP, GTAG_DVIP, GTAG_HELPER, GTAG_THELPER, GTAG_SHELPER, GTAG_ADMIN, GTAG_JUNIORDEV, GTAG_HHELPER, GTAG_DOPR, GTAG_SENIORDEV, GTAG_MANAGERDEV, GTAG_LEADDEV, GTAG_FAMED, GTAG_MANAGERFAMED, GTAG_ECONO, GTAG_TESTER, GTAG_STESTER, GTAG_MANAGERTESTER, GTAG_CUSTOM, GTAG_MAPPER, GTAG_SENIORMAPPER, GTAG_MANAGERMAPPER, GTAG_OLDSCHOOL, GTAG_MODOLDSCHOOL, }; new CustomTag[MAX_PLAYERS][50]; //==================================[Defines]=================================== // Limits #define MAX_SPIKESTRIPS 8 #define MAX_TIKIS 50 #define MAX_WEED 200 #define MAX_MAPICONS 100 #define MAX_TRAYS 50 #define MAX_DEALERS 64 #define MAX_HOUSES 2000 #define MAX_SURNAMES 250 #define MAX_DOORS 1200 #define MAX_BIZ 100 #define MAX_GATES 1200 #define MAX_CARS 15000 #define MAX_NEWBIE_TIPS 21 #define MAX_ROADBLOCKS 5 #define ELCORONABAR 1 #define COMMERCE247 2 #define BANKLOTBIN 3 #define MULINTERSEC 4 //Animations #define PED_IDLE_STANCE 1189 #define FROZEN (0) #define UNFROZEN (1) #define ADMIN_SPEC_TYPE_NONE (0) #define ADMIN_SPEC_TYPE_PLAYER (1) #define ADMIN_SPEC_TYPE_VEHICLE (2) #define equal(%0,%1) !strcmp(%0,%1,false) #define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) #define HOLDING(%0) ((newkeys & (%0)) == (%0)) #define RELEASED(%0) \ (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0))) #define KEY_BRAKE (32) // Food Stuff #define TRAY_RESPAWN_TIME 5 #define TRAY_NO_RESPAWN 0 #define TRAY_NO_POISONED 0 #define TRAY_POISONED 1 // Object ID? #define SLOT_EMPTY 0 //empty array // Food Amounts #define PIZZA_AMOUNT 5 //5 slices #define CHICKEN_AMOUNT 3 //5 chicken #define BURGER_AMOUNT 3 //3 burgers #define DONUT_AMOUNT 8 //5 donuts #define TRAY_EMPTY 0 //0 slices // Sounds #define CELLPHONE_RING 20600 #define SMS_RECIEVED 21000 #define SMS_SENT 21001 #define TAZER_SHOCK 6003 #define CELLPHONE_DIAL 3600 #define CELLPHONE_AWAITING 16003 #define PISS_SOUND 14200 // Gate Editor #define EDITING_GATE_NONE 0 #define EDITING_GATE_POSITION 1 #define EDITING_GATE_OPOSITION 2 // Enter Freezing #define FREEZE 1 #define UNFREEZE 2 #define ENTER_FREEZE 1 #define HELPNEWBIE_FREEZE 2 #define TESTER_FREEZE 3 #define GMX_FREEZE 4 //#define Dialog_NameChange 20030 //ethans // Player attached objects defines #define INDEX_0 (0) #define INDEX_1 (1) #define INDEX_2 (2) #define INDEX_3 (3) #define INDEX_4 (4) #define INDEX_5 (5) #define INDEX_6 (6) #define INDEX_7 (7) #define INDEX_8 (8) #define INDEX_9 (9) #define MAX_PER_PLAYER 11 new roadblockObjects[MAX_PLAYERS][MAX_PER_PLAYER], roadblockTotal[MAX_PLAYERS]; //===========================[Firework]========================================= #define RocketHeight 50 #define TYPE_COUNTDOWN 2000 #define TYPE_LAUNCH 2001 #define TYPE_EXPLODE 2002 #define MAX_FIREWORKS 100 #define FireworkSpread 30 new callCPFix[MAX_PLAYERS], callCPSpot[MAX_PLAYERS], fixGPSTimer[MAX_PLAYERS]; #define checkcinc if(!IsPlayerConnected(playerid)) return; if(CINC[playerid] != ccinc) { printf("error: query collision, result for playerid (%d) is not for this player. (got: %d should be: %d)", playerid, ccinc, CINC[playerid]); return; } #define mysql_counted_query queryballance++;mysql_function_query new Rocket[MAX_PLAYERS]; new RocketLight[MAX_PLAYERS]; new RocketSmoke[MAX_PLAYERS]; new RocketExplosions[MAX_PLAYERS]; new CINC[MAX_PLAYERS], queryballance; // counts number of queries in the queue. // Textdraw Global Variables new Text:centerHUDInfo[MAX_PLAYERS], Text:FishingBackground, Text:FishingOutline, Text:FishingBar, Text:DieText, Text:InjuredText, Text:EnteranceStuff[7]; // Backup Timer new cpTimerFix[MAX_PLAYERS]; //==================================[Forwards]================================== // Player Related forward SaveChars(); forward SetPlayerSpawn(playerid); forward DisplayDialogForPlayer(playerid, dialogid); forward UpdatePreviewModel(playerid); forward boughtFood(playerid); forward GiveMoney(playerid, money); forward GetMoney(playerid); forward PickUpPickup(playerid, pickupid); forward CanDropStuff(playerid); forward IPCheckResponse(playerid, response_code, data[]); forward Unfreeze(playerid); forward ShowAccessDialog(playerid, type); // Check Hacks forward CheckHacks2(playerid); // Weapons forward OnPlayerChangeWeapon(playerid, oldweapon, newweapon); // Log forward PayLog(string2[]); forward StatLog(string2[]); forward KickLog(string2[]); forward BanLog(string2[]); // Vehicles forward StoppedVehicle(); forward SellCar(playerid); forward TowVehicle(playerid, carid, towtype); // Load/save forward SaveHouses(); forward HideHouseInfo(playerid); forward LoadSurnames(); forward SaveSurnames(); forward LoadGarages(); forward LoadTrash(); forward SaveGarages(); // Drops forward DeleteGun(objectid, f); forward DeleteKevlar(objectid, f); forward DeletePot(objectid, f); forward DeleteCrack(objectid, f); forward DeleteMats(objectid, f); // Misc. forward Lotto(number); forward AddsOn(); forward eventCheck(); /*=======================mSelection public callbacks==================*/ public OnPlayerModelSelection(playerid, response, listid, modelid) { return 1; } public OnPlayerModelSelectionEx(playerid, response, extraid, modelid) { skins_OnPlayerModelSelectionEx(playerid, response, extraid, modelid); return 1; } // ID OF MODEL SELECTIONS #define Jonas_Blue_Clothes_ID 1 /* ===========================Exploit fix for /drop kevlar ====================*/ new KevlarDropped[MAX_PLAYERS]; forward DropKevlarTimer(playerid); public DropKevlarTimer(playerid){ KevlarDropped[playerid] = 0; return 1; } /*=============================================================================*/ /*====================================================*/ stock ClearAnimationsEx(id) { ClearAnimations(id); SetPlayerSpecialAction(id, SPECIAL_ACTION_NONE); } stock IsHoldJetpacknWeapon(playerid) { new getwep = GetPlayerWeapon(playerid); if((GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) && ( getwep == 22 || getwep == 28 || getwep == 32 )) return 1; return 0; } new newbieTips[MAX_NEWBIE_TIPS][0] = { "TIP: You can use ~r~Pot~w~, ~r~Sprunk~w~ and ~r~Food~n~~w~to stop the bleeding.", "TIP: You can use /carradio to change the cars radio station.", "TIP: You can also withdraw money from the ~b~Bank~w~,~n~you start with ~g~$20,000~w~.", "TIP: You can go to a ~b~Gas Station~w~ and type /fill~n~to refuel your vehicle.", // "TIP: You can go to a ~b~Clothes Store~n~~w~ to get a new skin or to customize your character.", "TIP: You can use /time to see your remaining jail time.", "TIP: You can press ~y~~k~~CONVERSATION_YES~ ~w~to interact with NPCs.", "TIP: You can use /dropcar to sell cars at the crane every 20 minutes.", "TIP: You can buy ~r~Weapons~w~ from Emmet without having~n~a weapons license.", "TIP: You can buy ~r~Weapons~w~ from Clayton without having~n~a weapons license.", "TIP: You can press ~y~~k~~PED_LOCK_TARGET~ ~w~to use the fishing rod.", "TIP: Press ~y~~k~~PED_FIREWEAPON~ ~w~to keep the bar centered and prevent the line from snapping~n~~y~~k~~PED_LOCK_TARGET~ ~w~to stop fishing.", "TIP: You can use /sellfish to sell your fish at ~b~24/7~w~ stores ~n~and /listfish to display all your fish.", "TIP: Keep your weapon aimed at the NPC to collect more money.", "TIP: You can type ~r~/pickpocket~w~ to steal from other players.", "TIP: You can type ~r~/stats~w~ at any time~n~to display your account stats.", "TIP: You can type ~r~/buylevel~w~ to level up,~n~ you will also receive higher ~y~paychecks~w~.", "TIP: You can ~r~/userod~w~ at the ~b~pier~n~~w~ and sell your fish at ~b~247 stores~w~.", "TIP: You can type ~r~/train~w~ at the ~b~gym~n~~w~to learn new martial arts.", "TIP: You can type ~r~/report~w~ at any time if you need an ~y~admin~w~.", "TIP: You can get a drivers license at the ~b~Department of Motor Vehicles~w~~n~Driving without one is illegal." }; new displayedTip[MAX_PLAYERS][MAX_NEWBIE_TIPS]; //used for storing if the player has seen a particular newbie tip //===============================[Data Structures]============================== new SAPD, FBI, SAST, FMD, DOC, GOV, SCOTUS, NEWS, TAXI; #define MAX_VEHICLE_SLOTS 4 //vehicles.inc, if adjusted adjust players.sql: CKey[number] enum pInfo { pID, pName[MAX_PLAYER_NAME + 1], pKey[128], pSerial[128], pLevel, pNote1[255], pNote2[255], pNote3[255], pNote4[255], pNote5[255], pOldAdmin, pAdmin, pSecKey, // pDiscord[30], pBand, pCBand, pPermBand, pStealthed, pHiddenAss, pBanReason[128], pPrisonReason[128], pAdminJailed, pPrisonedBy[32], pWarns, pDisabled, pDonateRank, pTag, pVIPJoinDate[32], pVIPExpDate[32], pBanAppealer, pGangModd, pEventModd, pComplaintModd, pShopMod, pBizMod, pFactionMod, pFactionDirector, pGangDirector, gPupgrade, pConnectTime, pReg, pSex, pAge, pOrigin[128], pAppearance[128], pMuted, pExp, pCash, pAccount, pCrimes, pKills, pDeaths, pCHits, pFHits, pArrested, pPhoneBook, pLottoNr, pFishes, pBiggestFish, pJob, pPayCheck, pHeadValue, pJailed, pJailCell, pJailTime, pProducts, pMats, pPotSeeds, pCalculator, pLeader, pMember, pNSB, pFMember, pRank, pRadioStation, pDetSkill, pSexSkill, pBoxSkill, pLawSkill, pMechSkill, pJackSkill, pCarSkill, pDrugsSkill, pArmsSkill, pWasteSkill, pSmugglerSkill, pThieveSkill, pFishSkill, pPizzaSkill, pFarmerSkill, pFightingStyle, Float:pHealth, Float:pArmor, pSHealth, pSHP, pInt, pLocal, pVirtualWorld, pModel, pClothes, pPnumber, pHasPhone, pCellphoneType, pBizKey, pBizFixed, pSetVehSpawn, pFishLic, pGun0, pGun1, pGun2, pGun3, pGun4, pGun5, pGun6, pGun7, pGun8, pGun9, pGun10, pGun11, pGun12, pCarTime, pDrugsTime, pLawyerTime, pLawyerFreeTime, pMechTime, pSexTime, pPlantTime, pRepairTime, pRobTime, pFishRod, pBait, pBaitAmount, pLine, pPayDay, pPayDayHad, piPod, pDice, pSpraycan, pScrew, pRope, pGag, pCigars, pSprunk, pTikis, pWT, pWTc, pRadio, pHandtazer, ptazerGun, pBombs, pPoison, pMask, pWins, pLoses, pTut, pOnDuty, pHospital, pAdjustable, pMarried, pMarriedTo[128], pContractBy[128], pIP[16], pWantedLevel, pNewbieMuted, pNewbieWarns, pAdMuted, pBugMuted, Float:pSPos_x, Float:pSPos_y, Float:pSPos_z, Float:pSPos_r, pHelper, pDev, pFamed, pOldSchool, pEnlightened, pTester, pMapper, pGlasses, pBandana, pHelmet, pRequestingBackup, pVipColor, pBlindfolds, pSpeakPhone, pCheck, pDeck, pStereo, pMatches, pJerrycan, pBanDay, pBanMonth, pBanYear, pBanTime, pHouseID, pRentingID, hTicket, gTicket, gRefund, pNMuteTime, Float:helpmeX, Float:helpmeY, Float:helpmeZ, Float:BugReportX, Float:BugReportY, Float:BugReportZ, BugReportInterior, BugReportVW, helpmeInt, helpmeVW, pHelpMeMuted, pAddressBook, pHouseFire, pEconomist, pHAFakeBadge, pBadge, lastCarID, pMaxCarSlots, pKeys, TowingVeh, pLastLogin[128], pPropExp[128], pMap, pJailnumber, pCarLicense, pBoatLicense, pWeaponLicense, pMarijuanaLicense, pSueUnix, pSueNotice, pAllowedArmory, pTesterReports, pSpawnPos, pLastLogoutUnix, pWire, pWireFound, pJammer, pGroup, pGroupRank, pHasCBomb, pHasLockPick, pCallCount, pMonthlyCallCount, pFKickTime, pMDCLogged, pMDCSearchName[26], pMDCSearchID, HasVoted[4], pPortMDC, // Drugs pCannabis, pCocaine, pMeth, pXanax, pPromethazine, pCodeine, pLean, pEthnicity, pEyeColour, pBuild, pHeight, pMaskName[21], pDriverPoints, pReqUnmute, pRepMuted, pReqNC, pHidingStatus, pInsurance, // Remove this pPresentCount after christmas event pPresentCount, pTogNewbie, pBeer, pUnit, bool:pHidingBadge, pPR, pBadgeNumber, pBuggedTog, pDrill, pS9BadgeName[48], pRecruiter, pGroupNick[13], pDuffleBagTime, pShadowON, pMaryON, pFBIListen, pSAPDListen, pLSSDListen, pFMDListen, pSANGListen, pGOVListen, pSANListen, pAdrenaline, pFirework, //Global Chat System pGCTog, pGCTag, pGCTagName[30], pGCMute, pGCMuteTimer, pGCMutePerm, pGCReqTimer, pGCReqUnmute, bool:pGCRequestUnmute, pGCUnmutePrice, //Newbie Tag System pNewbieTag, pNewbieTagName[30], pNewbieTagToggle, }; new PlayerInfo[MAX_PLAYERS][pInfo]; #include "../gamemodes/inc/reports.inc" #include "../gamemodes/inc/damages.inc" #include "../gamemodes/inc/newspaper.inc" new MySQLConnectionOrder[MAX_PLAYERS]; enum dInfo { dID, dName[64], Float:dPos[7], dCars[64], dCarPrice[64], dPickup, Text3D:d3DText, bool:dCreated }; new Dealerships[MAX_DEALERS][dInfo]; enum trInfo { cTrunkOpened, cGun1, cGun2, cCocaine, cMeth, cCannabis, cXanax, cFoodtray, Float:cArmor }; new TrunkInfo[MAX_VEHICLES][trInfo], IsByVehTrunk[MAX_PLAYERS]; enum hInfo { hOwner[MAX_PLAYER_NAME + 1], hCreated, hOwned, hValue, Float:hOutsideX, Float:hOutsideY, Float:hOutsideZ, Float:hOutsideA, Float:hInsideX, Float:hInsideY, Float:hInsideZ, Float:hInsideA, hWorld, hInterior, hLocked, hAlarm, hAlarmStatus, hCash, hMaterials, hCannabis, hCocaine, hMeth, hXanax, hPromethazine, hCodeine, hLean, hGun1, hGun2, hGun3, hGun4, hGun5, hGun6, hGun7, hOutsidePickup, hTag[25], hLevel, hOwnerID, hSQLID, hFreeze, hModified, hHasFurniture, hFurnitureAmount, //used for storing number of house furniture, does not save hDonated }; new HouseInfo[MAX_HOUSES][hInfo]; enum SuInfo { Surname[64], Owner[64], AddedBy[64], Taken, }; new SurnameInfo[MAX_SURNAMES][SuInfo]; enum DoorInfo { outside_icon, Float:outside_x, Float:outside_y, Float:outside_z, Float:outside_a, outside_i, outside_w, Float:inside_x, Float:inside_y, Float:inside_z, Float:inside_a, inside_i, inside_w, doorname[50], dpassword[128], bool:freeze, createdby[50], eowner }; new Entrances[MAX_DOORS][DoorInfo]; //============================================================================== new Text3D:BizText[MAX_BIZ], Text3D:HouseInfoText3D[MAX_HOUSES]; new EntranceRef[sizeof(Entrances)], EntranceRefInt[sizeof(Entrances)], Text3D:EntranceRefText[sizeof(Entrances)]; new lastSQLhouseID = 0; new hasRubberBullets[MAX_PLAYERS], bool:loadedRubberBullets[MAX_PLAYERS]; new helibladecount[MAX_PLAYERS], Heliblade_Timer[MAX_PLAYERS]; new WireOfferID[MAX_PLAYERS] = INVALID_PLAYER_ID, Float:buggedPos[3][MAX_PLAYERS]; // Part of the /watchtv (SAN Camera) - Vega. new bool: WatchingTV[MAX_PLAYERS]; /*#define MAX_POLLS 4 enum PollData { vote_head[51], vote_option1[35], vote_option2[35], vote_option1count, vote_option2count, vote_creator[MAX_PLAYER_NAME+1], vote_direction, vote_active }; new PollSecTimerID; new currentpollcreated; new Polls[MAX_POLLS][PollData];*/ #include "../gamemodes/inc/speed_cams.inc" //#include "../gamemodes/inc/christmas.inc" // Login textdraws #include "../gamemodes/inc/core/logintd.inc" #include "../gamemodes/inc/families/families.inc" // Enum to store the states of a player // enum { PLAYER_STATE_NORMAL = 0, PLAYER_STATE_REVIVE, PLAYER_STATE_DEAD, PLAYER_STATE_INHOSP, PLAYER_STATE_TREAT }; // Variable to store player's current state. i.e. NORMAL / REVIVE / INHOSP new pDeathState[MAX_PLAYERS]; /* // SWAT skin armour // SWAT_SetPlayerSkin(playerid, skinid) { if(skinid == 285 || skinid == 287 && pDeathState[playerid] == PLAYER_STATE_NORMAL) { SetPlayerArmour(playerid, 150); PlayerInfo[playerid][pArmor] = 150; } else { if(PlayerInfo[playerid][pArmor] > 100) { SetPlayerArmour(playerid, 100); PlayerInfo[playerid][pArmor] = 100; } } SetPlayerSkin(playerid, skinid); return 1; } #if defined _ALS_SetPlayerSkin #undef SetPlayerSkin #else #define _ALS_SetPlayerSkin #endif #define SetPlayerSkin SWAT_SetPlayerSkin */ public OnPlayerFinishedDownloading(playerid, virtualworld) { return 1; } new gatecount, bizcount, houseCount; forward onListSerial(playerid); public onListSerial(playerid) { new ipstr[10000], lastlog[64], name[MAX_PLAYER_NAME]; if(!PlayerInfo[playerid][pAdmin]) return 1; if(cache_num_rows() == 0) { SendClientMessage(playerid, COLOR_WHITE, "No Serials's detected."); return 1; } else { for(new i = 0; i < cache_num_rows(); i++) { cache_get_field_content(i, "Name", name); cache_get_field_content(i, "LastLogin", lastlog); format(ipstr, sizeof(ipstr), "%s{FFFF00}%s (%s)\t\t{FFFFFF}\n", ipstr, name, lastlog); } } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST, "Serials", ipstr, "Okay", ""); return 1; } forward onListIP(playerid); public onListIP(playerid) { if(!PlayerInfo[playerid][pAdmin]) return 1; if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "No IP's detected."); new ipstr[10000], lastlog[64], name[MAX_PLAYER_NAME]; for(new i = 0; i < cache_num_rows(); i++) { cache_get_field_content(i, "Name", name); cache_get_field_content(i, "LastLogin", lastlog); format(ipstr, sizeof(ipstr), "%s{FFFF00}%s (%s)\t\t{FFFFFF}\n", ipstr, name, lastlog); } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST, "IPs", ipstr, "Okay", ""); return 1; } forward GetNameFromSQL( playerid ); public GetNameFromSQL( playerid ) { new rows, fields; cache_get_data(rows, fields); if( !rows ) { return SendClientMessage( playerid, COLOR_GREY, "No result found with the given SQL-ID." ); } new namestr[128], name[MAX_PLAYER_NAME+1]; cache_get_field_content( 0, "Name", name, sqlGameConnection, 25 ); format( namestr, 128, "Name: %s", name ); SendClientMessage( playerid, COLOR_GREY, namestr ); return 1; } forward onLastLoginSQL(playerid, id); public onLastLoginSQL(playerid, id) { new rows, fields, lastlogin[64]; cache_get_data(rows, fields); new name[MAX_PLAYER_NAME+1]; cache_get_field_content( 0, "Name", name ); cache_get_field_content(0, "LastLogin", lastlogin); new msgstr[128]; format(msgstr, sizeof(msgstr), "%s (%d) last logged in game on %s", name, id, lastlogin); SendClientMessage(playerid, COLOR_WHITE, msgstr); return 1; } new DEVMOTD[128], TESTERMOTD[128]; new lastgmx[128]; //==========================[ Dynamic Vehicle Sys ]============================= #define THREAD_LOAD_VEHICLES 2 #define THREAD_LOAD_PLAYERINFO 1 #define THREAD_NO_RESULT 0 enum vehicleData { v_id = 0, v_sqlid, v_model, Float:v_x, Float:v_y, Float:v_z, Float:v_rz, v_color1, v_color2, v_faction, v_lock, v_family, v_group, v_lockfeature, v_sirenfeature } new spawned_vehicles; new sqlstring[400]; new Cache:PlayerCacheID[MAX_PLAYERS]; new sVehicleInfo[MAX_VEHICLES][vehicleData]; //===============[ Stock functions ]================= stock LoadVehicleData() { new query[30]; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT * FROM `vehicles`"); mysql_pquery(sqlGameConnection, query, "OnLoadVehicleData"); return 1; } forward OnLoadVehicleData(); public OnLoadVehicleData() { new rows, fields; cache_get_data(rows, fields); if(rows) { new value[8]; for(new i = 1; i < rows; i++) { if(i == MAX_VEHICLES - 1) return printf("Max vehicle limit (1999) reached."); cache_get_field_content(i, "ID", value); sVehicleInfo[i][v_sqlid] = strval(value); cache_get_field_content(i, "model", value); sVehicleInfo[i][v_model] = strval(value); cache_get_field_content(i, "x", value); sVehicleInfo[i][v_x] = floatstr(value); cache_get_field_content(i, "y", value); sVehicleInfo[i][v_y] = floatstr(value); cache_get_field_content(i, "z", value); sVehicleInfo[i][v_z] = floatstr(value); cache_get_field_content(i, "rz", value); sVehicleInfo[i][v_rz] = floatstr(value); cache_get_field_content(i, "color1", value); sVehicleInfo[i][v_color1] = strval(value); cache_get_field_content(i, "color2", value); sVehicleInfo[i][v_color2] = strval(value); cache_get_field_content(i, "faction", value); sVehicleInfo[i][v_lockfeature] = cache_get_field_content_int(i, "lockfeature"); if(sVehicleInfo[i][v_lockfeature]) sVehicleInfo[i][v_lock] = 1; sVehicleInfo[i][v_faction] = strval(value); sVehicleInfo[i][v_family] = cache_get_field_content_int(i, "family"); sVehicleInfo[i][v_group] = cache_get_field_content_int(i, "group"); sVehicleInfo[i][v_sirenfeature] = cache_get_field_content_int(i, "Siren"); sVehicleInfo[i][v_id] = CreateVehicle(sVehicleInfo[i][v_model],sVehicleInfo[i][v_x],sVehicleInfo[i][v_y],sVehicleInfo[i][v_z]+2,sVehicleInfo[i][v_rz],sVehicleInfo[i][v_color1],sVehicleInfo[i][v_color2],900, sVehicleInfo[i][v_sirenfeature]); if(sVehicleInfo[i][v_faction] == 6 && GetVehicleModel(sVehicleInfo[i][v_id]) == 409) { SetVehicleHealth(sVehicleInfo[i][v_id], 10000); } } spawned_vehicles = sVehicleInfo[rows - 1][v_sqlid] + 1; } else { spawned_vehicles = 1; } printf("%d vehicles have been loaded.", rows); return 1; } stock GetDynamicVehicleID(vehicleid) { for(new i = 0; i < MAX_VEHICLES; i++) { if(IsValidVehicle(i) && sVehicleInfo[i][v_id] == vehicleid) { return i; } } return 0; } stock GetGearColour(c) { new colour = 0; switch(c) { case 0: colour = COLOR_GEAR_NONE; case 1: colour = COLOR_GEAR_RED; case 2: colour = COLOR_GEAR_LIGHTRED; case 3: colour = COLOR_GEAR_DARKRED; case 4: colour = COLOR_GEAR_GREEN; case 5: colour = COLOR_GEAR_LIGHTGREEN; case 6: colour = COLOR_GEAR_DARKGREEN; case 7: colour = COLOR_GEAR_BLUE; case 8: colour = COLOR_GEAR_LIGHTBLUE; case 9: colour = COLOR_GEAR_DARKBLUE; case 10: colour = COLOR_GEAR_PINK; case 11: colour = COLOR_GEAR_LIGHTPINK; case 12: colour = COLOR_GEAR_PURPLE; case 13: colour = COLOR_GEAR_LIGHTPURPLE; case 14: colour = COLOR_GEAR_DARKPURPLE; case 15: colour = COLOR_GEAR_ORANGE; case 16: colour = COLOR_GEAR_LIGHTORANGE; case 17: colour = COLOR_GEAR_DARKORANGE; case 18: colour = COLOR_GEAR_TURQUOISE; case 19: colour = COLOR_GEAR_LIGHTTURQUOISE; case 20: colour = COLOR_GEAR_DARKTURQUOISE; case 21: colour = COLOR_GEAR_BROWN; case 22: colour = COLOR_GEAR_LIGHTBROWN; case 23: colour = COLOR_GEAR_DARKBROWN; case 24: colour = COLOR_GEAR_GREY; case 25: colour = COLOR_GEAR_LIGHTGREY; case 26: colour = COLOR_GEAR_DARKGREY; case 27: colour = COLOR_GEAR_YELLOW; case 28: colour = COLOR_GEAR_LIGHTYELLOW; case 29: colour = COLOR_GEAR_DARKYELLOW; case 30: colour = COLOR_GEAR_BLACK; case 31: colour = COLOR_GEAR_WHITE; default: colour = COLOR_GEAR_NONE; } return colour; } //============================== //============================================================================== //=============================[ Taxi Company ]================================= #define MAX_TAXICALLS 20 enum TaxiCInfo_e { taxiname, taxiphone, taxilocation } new TaxiCInfo[MAX_TAXICALLS][TaxiCInfo_e][65]; new TaxiCID[MAX_PLAYERS]; new Float:TaxiFromCoords[MAX_PLAYERS][3]; new TaxiCInfoID[MAX_TAXICALLS] = -1; new IsPlayerInTaxi[MAX_PLAYERS]; new PlayerTaxiDriver[MAX_PLAYERS]; new TaxiDriverMoney[MAX_PLAYERS]; new LastCaller[65] = "0"; new TaxiTiming[MAX_PLAYERS]; #define TAXICALL_DIALOG 390 //============================================================================== #define CLOTHESCOORDS 2727.1499, -2448.2400, 1299.5000 new Text3D:PNumber3D[MAX_PLAYERS]; new DOCbus; stock OnInvalidPrisonNumber() { new pnumber = random(1999-1000)+1000; return pnumber; } // DoC prison spawnpoints new Float:prisoncells[][] = { { 2682.2185,-2513.7051,1299.8378 }, { 2685.4465,-2513.6990,1299.8378 }, { 2690.4292,-2513.9905,1299.8378 }, { 2694.1091,-2513.0457,1299.8378 }, { 2698.6995,-2513.1104,1299.8378 }, { 2701.9255,-2513.9192,1299.8378 }, { 2682.2896,-2498.6150,1295.6663 }, { 2682.0356,-2502.3997,1295.6663 }, { 2682.1284,-2506.7090,1295.6663 } }; //============================================================================== //preview models new PlayerText:pModel_t[MAX_PLAYERS], pModelState[MAX_PLAYERS], Float:pModelRot[MAX_PLAYERS][3], pModelTimer[MAX_PLAYERS]; public UpdatePreviewModel(playerid) { if(pModel_t[playerid] != PlayerText:INVALID_TEXT_DRAW && pModel_t[playerid] != PlayerText:INVALID_3DTEXT_ID) { if(pModelState[playerid] == 0) { KillTimer(pModelTimer[playerid]); } else if(pModelState[playerid] == 1) { pModelRot[playerid][0] = 0; if(pModelRot[playerid][1] < 360) { pModelRot[playerid][1] += 30; } else { pModelRot[playerid][1] = 30; } if(pModelRot[playerid][2] < 360) { pModelRot[playerid][2] += 30; } else { pModelRot[playerid][2] = 30; } PlayerTextDrawSetPreviewRot(playerid, pModel_t[playerid], pModelRot[playerid][0], pModelRot[playerid][1], pModelRot[playerid][2]); PlayerTextDrawShow(playerid, pModel_t[playerid]); } else if(pModelState[playerid] == 2) { pModelRot[playerid][0] = 0; pModelRot[playerid][1] = 0; if(pModelRot[playerid][2] < 360) { pModelRot[playerid][2] += 30; } else { pModelRot[playerid][2] = 30; } PlayerTextDrawSetPreviewRot(playerid, pModel_t[playerid], pModelRot[playerid][0], pModelRot[playerid][1], pModelRot[playerid][2]); PlayerTextDrawShow(playerid, pModel_t[playerid]); } else if(pModelState[playerid] == 3) { pModelRot[playerid][0] = -16; pModelRot[playerid][1] = 0; if(pModelRot[playerid][2] < 360) { pModelRot[playerid][2] += 30; } else { pModelRot[playerid][2] = 30; } PlayerTextDrawSetPreviewRot(playerid, pModel_t[playerid], pModelRot[playerid][0], pModelRot[playerid][1], pModelRot[playerid][2]); PlayerTextDrawShow(playerid, pModel_t[playerid]); } else { PlayerTextDrawDestroy(playerid, pModel_t[playerid]); pModelRot[playerid][0] = 0; pModelRot[playerid][1] = 0; pModelRot[playerid][2] = 0; pModelState[playerid] = 0; KillTimer(pModelTimer[playerid]); } } return 1; } LoadDealerships() { new dfile[32], str[128]; for(new i = 0; i < MAX_DEALERS; i++) { format(dfile, sizeof(dfile), "dealerships/%d.ini", i); if(dini_Exists(dfile)) { format(str, sizeof(str), "%s", dini_Get(dfile, "dName")); strmid(Dealerships[i][dName], str, 0, strlen(str), 255); Dealerships[i][dPos][0] = dini_Float(dfile, "dPosX"); Dealerships[i][dPos][1] = dini_Float(dfile, "dPosY"); Dealerships[i][dPos][2] = dini_Float(dfile, "dPosZ"); Dealerships[i][dPos][3] = dini_Float(dfile, "dCPosX"); Dealerships[i][dPos][4] = dini_Float(dfile, "dCPosY"); Dealerships[i][dPos][5] = dini_Float(dfile, "dCPosZ"); Dealerships[i][dPos][6] = dini_Float(dfile, "dCPosA"); Dealerships[i][dPickup] = CreateDynamicPickup(1239, 23, Dealerships[i][dPos][0], Dealerships[i][dPos][1], Dealerships[i][dPos][2]); format(str, sizeof(str), "Dealership\nName: %s\nID: %d\n/buycar to buy a car.", Dealerships[i][dName], i); Dealerships[i][d3DText] = CreateDynamic3DTextLabel(str, 0xFE9A2EFF, Dealerships[i][dPos][0], Dealerships[i][dPos][1], Dealerships[i][dPos][2] +0.8, 40.0); new ca = 0; for(new c = 0; c < 64; c++) { format(str, sizeof(str), "car_%d", ca); if(dini_Isset(dfile, str)) { Dealerships[i][dCars][ca] = dini_Int(dfile, str); format(str, sizeof(str), "car_%d_price", ca); Dealerships[i][dCarPrice][ca] = dini_Int(dfile, str); ca++; } } Dealerships[i][dCreated] = true; printf("Loaded dealership %s, ID %d", Dealerships[i][dName], i); } } return 1; } SaveDealerships() { new dfile[32], str[128]; for(new i = 0; i < MAX_DEALERS; i++) { if(strlen(Dealerships[i][dName])) { format(dfile, sizeof(dfile), "dealerships/%d.ini", i); if(!dini_Exists(dfile)) dini_Create(dfile); dini_Set(dfile, "dName", Dealerships[i][dName]); dini_FloatSet(dfile, "dPosX", Dealerships[i][dPos][0]); dini_FloatSet(dfile, "dPosY", Dealerships[i][dPos][1]); dini_FloatSet(dfile, "dPosZ", Dealerships[i][dPos][2]); dini_FloatSet(dfile, "dCPosX", Dealerships[i][dPos][3]); dini_FloatSet(dfile, "dCPosY", Dealerships[i][dPos][4]); dini_FloatSet(dfile, "dCPosZ", Dealerships[i][dPos][5]); dini_FloatSet(dfile, "dCPosA", Dealerships[i][dPos][6]); new ca = 0; for(new c = 0; c < 64; c++) { if(Dealerships[i][dCars][c] >= 400) { format(str, sizeof(str), "car_%d", ca); dini_IntSet(dfile, str, Dealerships[i][dCars][c]); format(str, sizeof(str), "car_%d_price", ca); dini_IntSet(dfile, str, Dealerships[i][dCarPrice][c]); ca++; } } } } return 1; } //login tries new LoginAttempts[MAX_PLAYERS]; //DamageInfo new damagedBy[MAX_PLAYERS][24], damageGun[MAX_PLAYERS][24], killedBy[MAX_PLAYERS][24], killGun[MAX_PLAYERS][24], damageHour[MAX_PLAYERS], damageMinute[MAX_PLAYERS], killerHour[MAX_PLAYERS], killerMinute[MAX_PLAYERS]; //Map new usingMap[MAX_PLAYERS]; //calculator new Calc_Option[MAX_PLAYERS], Calc_Numb1[MAX_PLAYERS], Calc_Numb2[MAX_PLAYERS], Calc_Result[MAX_PLAYERS]; // Taxi sign new Taxi[MAX_VEHICLES], TaxiSign[MAX_VEHICLES]; //Combine Harvester new combvehid, combobjid; new deathByCombine[MAX_PLAYERS], engineOn[MAX_VEHICLES], playerDisabledEngine[MAX_VEHICLES], bool:windowsDown[MAX_VEHICLES]; new LastDriver[MAX_VEHICLES][24]; new turningengine[MAX_PLAYERS], turningenginetimer[MAX_PLAYERS]; new BPLG1, BPLG2, BParkedCar[MAX_PLAYERS], ipchecking[MAX_PLAYERS][24]; // Accessories new AttachmentBones[][24] = { {"Spine"}, {"Head"}, {"Left upper arm"}, {"Right upper arm"}, {"Left hand"}, {"Right hand"}, {"Left thigh"}, {"Right thigh"}, {"Left foot"}, {"Right foot"}, {"Right calf"}, {"Left calf"}, {"Left forearm"}, {"Right forearm"}, {"Left clavicle"}, {"Right clavicle"}, {"Neck"}, {"Jaw"} }; enum AdminAccessersEnum { modid, modname[24] }; new AdminAccessers[][AdminAccessersEnum] = { {2103, "Stereo"}, {19078, "Parrot"}, {18632, "FishingRod"}, {18633, "GTASAWrench1"}, {18634, "GTASACrowbar1"}, {18635, "GTASAHammer1"}, {18636, "PoliceCap1"}, {18637, "PoliceShield1"}, {18641, "Flashlight1"}, {18642, "tazer1"}, {18643, "LaserPointer1"}, {19080, "LaserPointer2"}, {19081, "LaserPointer3"}, {19082, "LaserPointer4"}, {19083, "LaserPointer5"}, {19084, "LaserPointer6"}, {18644, "Screwdriver1"}, {18865, "MobilePhone1"}, {18866, "MobilePhone2"}, {18867, "MobilePhone3"}, {18868, "MobilePhone4"}, {18869, "MobilePhone5"}, {18870, "MobilePhone6"}, {18871, "MobilePhone7"}, {18872, "MobilePhone8"}, {18873, "MobilePhone9"}, {18874, "MobilePhone10"}, {18875, "Pager1"}, {18890, "Rake1"}, {18911, "Mask1"}, {18912, "Mask2"}, {18913, "Mask3"}, {18914, "Mask4"}, {18915, "Mask5"}, {18916, "Mask6"}, {18917, "Mask7"}, {18918, "Mask8"}, {18919, "Mask9"}, {18920, "Mask10"}, {18963, "CJElvisHead"}, {18974, "MaskZorro1"}, {19036, "HockeyMask1"}, {19037, "HockeyMask2"}, {19038, "HockeyMask3"}, {19085, "EyePatch1"}, {19086, "ChainsawDildo1"}, {19090, "PomPomBlue"}, {19091, "PomPomRed"}, {19092, "PomPomGreen"}, {19094, "BurgerShotHat1"}, {19099, "PoliceCap2"}, {19100, "PoliceCap3"}, {19101, "ArmyHelmet1"}, {19102, "ArmyHelmet2"}, {19103, "ArmyHelmet3"}, {19104, "ArmyHelmet4"}, {19105, "ArmyHelmet5"}, {19106, "ArmyHelmet6"}, {19107, "ArmyHelmet7"}, {19108, "ArmyHelmet8"}, {19109, "ArmyHelmet9"}, {19110, "ArmyHelmet10"}, {19111, "ArmyHelmet11"}, {19112, "ArmyHelmet12"}, {19137, "CluckinBellHat1"}, {19138, "PoliceGlasses1"}, {19139, "PoliceGlasses2"}, {19140, "PoliceGlasses3"}, {19141, "SWATHelmet1"}, {19142, "SWATArmour1"}, {19161, "PoliceHat1"}, {19162, "PoliceHat2"}, {19163, "GimpMask1"}, {19330, "fire_hat01"}, {19331, "fire_hat02"}, {19346, "hotdog01"}, {19347, "badge01"}, {19350, "moustache01"}, {19351, "moustache02"}, {19513, "whitephone"}, {19064, "SantaHat1"}, {19065, "SantaHat2"}, {19066, "SantaHat3"}, {19418, "handcuffs"}, {19514, "SWATHgrey"}, {19515, "SWATAgrey"}, {19528, "Witch Hat"} }; new accessorysr[MAX_PLAYERS][sizeof(AdminAccessers)]; enum AccessEnum { modid, modname[24], modprice }; new AccessNames[][AccessEnum] = { //CLOTHING ITEMS 1 {18638, "HardHat1", 500}, {19093, "HardHat2", 500}, {19160, "HardHat3", 500}, {18639, "CowboyHat1", 500}, {18962, "CowboyHat2", 500}, {19095, "CowboyHat3", 500}, {19096, "CowboyHat4", 500}, {19097, "CowboyHat5", 500}, {19098, "CowboyHat6", 500}, {18645, "Helmet1", 600}, {18936, "Helmet2", 600}, {18937, "Helmet3", 600}, {18938, "Helmet4", 600}, {18976, "Helmet5", 600}, {18977, "Helmet6", 600}, {18978, "Helmet7", 600}, {18979, "Helmet8", 600}, {19116, "Helmet9", 600}, {19117, "Helmet10", 600}, {19118, "Helmet11", 600}, {19119, "Helmet12", 600}, {19120, "Helmet13", 600}, {18921, "Beret1", 500}, {18922, "Beret2", 500}, {18923, "Beret3", 500}, {18924, "Beret4", 500}, {18925, "Beret5", 500}, {18926, "Hat1", 500}, {18927, "Hat2", 500}, {18928, "Hat3", 500}, {18929, "Hat4", 500}, {18930, "Hat5", 500}, {18931, "Hat6", 500}, {18932, "Hat7", 500}, {18933, "Hat8", 500}, {18934, "Hat9", 500}, {18935, "Hat10", 500}, {18939, "CapBack1", 500}, {18940, "CapBack2", 500}, {18941, "CapBack3", 500}, {18942, "CapBack4", 500}, {18943, "CapBack5", 500}, {18944, "HatBoater1", 600}, {18945, "HatBoater2", 600}, {18946, "HatBoater3", 600}, {18947, "HatBowler1", 600}, {18948, "HatBowler2", 600}, {18949, "HatBowler3", 600}, {18950, "HatBowler4", 600}, {18951, "HatBowler5", 600}, {19488, "HatBowler6", 600}, {18952, "BoxingHelmet", 700}, {18953, "KnitCap1", 500}, {18954, "KnitCap2", 500}, {19087, "Rope1", 800}, {19085, "Rope2", 800}, {19089, "Rope3", 800}, {19091, "Pompom", 800}, {19143, "Spotlight", 800}, {18960, "Cap1", 400}, {18961, "TruckerCap", 600}, {18964, "SkullyCap1", 400}, {18965, "SkullyCap2", 400}, {18966, "SkullyCap3", 400}, {18967, "HatMan1", 300}, {18968, "HatMan2", 300}, {18969, "HatMan3", 300}, {18970, "HatTiger", 900}, {18971, "HatCool1", 800}, {18972, "HatCool2", 800}, {18973, "HatCool3", 800}, {19006, "Glasses1", 500}, {19007, "Glasses2", 500}, {19008, "Glasses3", 500}, {19009, "Glasses4", 500}, {19010, "Glasses5", 500}, {19011, "Glasses6", 500}, {19012, "Glasses7", 500}, {19013, "Glasses8", 500}, {19014, "Glasses9", 500}, {19015, "Glasses10", 500}, {19016, "Glasses11", 500}, {19017, "Glasses12", 500}, {19018, "Glasses13", 500}, {19019, "Glasses14", 500}, {19020, "Glasses15", 500}, {19021, "Glasses16", 500}, {19022, "Glasses17", 500}, {19023, "Glasses18", 500}, {19024, "Glasses19", 500}, {19025, "Glasses20", 500}, {19026, "Glasses21", 500}, {19027, "Glasses22", 500}, {19028, "Glasses23", 500}, {19029, "Glasses24", 500}, {19030, "Glasses25", 500}, {19031, "Glasses26", 500}, {19032, "Glasses27", 500}, {19033, "Glasses28", 500}, {19034, "Glasses29", 500}, {19035, "Glasses30", 500}, {19138, "Glasses31", 500}, {19139, "Glasses32", 500}, {19140, "Glasses33", 500}, {19039, "Watch1", 900}, {19040, "Watch2", 900}, {19041, "Watch3", 900}, {19042, "Watch4", 900}, {19043, "Watch5", 900}, {19044, "Watch6", 900}, {19045, "Watch7", 900}, {19046, "Watch8", 900}, {19047, "Watch9", 900}, {19048, "Watch10", 900}, {19049, "Watch11", 900}, {19050, "Watch12", 900}, {19051, "Watch13", 900}, {19052, "Watch14", 900}, {19053, "Watch15", 900}, {19067, "HoodyHat1", 1000}, {19068, "HoodyHat2", 1000}, {19069, "HoodyHat3", 1000}, {19085, "EyePatch", 500}, {19113, "SillyHelmet1", 500}, {19114, "SillyHelmet2", 500}, {19115, "SillyHelmet3", 500}, {18875, "Pager", 700}, {19801, "Balaclava", 1000}, //CLOTHING ITEMS 2 {19348, "Cane", 500}, {19349, "Monocle", 900}, {19352, "TopHat1", 900}, {19487, "TopHat2", 900}, {19421, "Headphones1", 500}, {19421, "Headphones2", 500}, {19421, "Headphones3", 500}, {19421, "Headphones4", 500}, {19472, "GasMask", 800}, {19520, "PilotHat", 1000}, {19521, "PoliceHat", 1000}, {19200, "PoliceBike Helmet", 1000}, {19314, "Horns", 1000}, {19320, "Pumpkin", 1000}, {19469, "Bandana", 1000}, {19136, "Hat+Wig", 1000}, {19274, "WigRed", 1000}, {19516, "Wig1", 1000}, {19517, "Wig2", 1000}, {19518, "Wig3", 1000}, {19519, "Wig4", 1000}, {18975, "Wig5", 1000}, {19350, "Moustache1", 1000}, {19351, "Moustache2", 1000}, {19078, "Parrot", 1000}, {18633, "Wrench", 1000}, {18634, "Crowbar", 1000}, {18635, "Hammer", 1000}, {18636, "PoliceCap", 1000}, {18637, "PoliceShield", 1000}, {18641, "Flashlight", 1000}, {18642, "Taser", 1000}, {18643, "LaserPointer1", 1000}, {19080, "LaserPointer2", 1000}, {19081, "LaserPointer3", 1000}, {19082, "LaserPointer4", 1000}, {19083, "LaserPointer5", 1000}, {19084, "LaserPointer6", 1000}, {18644, "Screwdriver", 1000}, {18890, "Rake1", 1000}, {18911, "Mask1", 1000}, {18912, "Mask2", 1000}, {18913, "Mask3", 1000}, {18914, "Mask4", 1000}, {18915, "Mask5", 1000}, {18916, "Mask6", 1000}, {18917, "Mask7", 1000}, {18918, "Mask8", 1000}, {18919, "Mask9", 1000}, {18920, "Mask10", 1000}, {18963, "CJElvisHead", 1000}, {18974, "MaskZorro1", 1000}, {19036, "HockeyMask 1", 1000}, {19037, "HockeyMask 2", 1000}, {19038, "HockeyMask 3", 1000}, {19085, "EyePatch", 1000}, {19086, "ChainsawDildo", 1000}, {19090, "PompomBlue", 1000}, {19091, "PompomRed", 1000}, {19092, "PompomGreen", 1000}, {19094, "BurgerShotHat1", 1000}, {19099, "Police Cap1", 1000}, {19100, "Police Cap2", 1000}, {19101, "Army Helmet1", 1000}, {19102, "Army Helmet2", 1000}, {19103, "Army Helmet3", 1000}, {19104, "Army Helmet4", 1000}, {19105, "Army Helmet5", 1000}, {19106, "Army Helmet6", 1000}, {19107, "Army Helmet7", 1000}, {19108, "Army Helmet8", 1000}, {19109, "Army Helmet9", 1000}, {19110, "Army Helmet10", 1000}, {19111, "Army Helmet11", 1000}, {19112, "Army Helmet12", 1000}, {19137, "ClucknBellHat", 1000}, {19138, "PoliceGlasses1", 1000}, {19139, "PoliceGlasses2", 1000}, {19140, "PoliceGlasses3", 1000}, {19141, "SWAT Helmet", 1000}, {19142, "SWAT Armour", 1000}, {19161, "PoliceHat1", 1000}, {19162, "PoliceHat 2", 1000}, {19163, "Gimp Mask", 1000}, {19330, "Fireman Hat 1", 1000}, {19331, "Fireman Hat 2", 1000}, {19347, "Badge", 1000}, {19064, "SantaHat1", 1000}, {19065, "SantaHat2", 1000}, {19066, "SantaHat3", 1000}, {19514, "SWATHelmetGrey", 1000}, {19515, "SWATArmourGrey", 1000}, {3012, "PilotMask", 1000}, {2052, "ArmyHelmet1", 1000}, {2053, "Army Helmet2", 1000}, {373, "Vest", 1000}, {2054, "PilotHat", 1000}, {18891, "Bandana1", 1000}, {18892, "Bandana2", 1000}, {18893, "Bandana3", 1000}, {18894, "Bandana4", 1000}, {18895, "Bandana5", 1000}, {18896, "Bandana6", 1000}, {18897, "Bandana7", 1000}, {18898, "Bandana8", 1000}, {18899, "Bandana9", 1000}, {18900, "Bandana10", 1000}, {18901, "Bandana11", 1000}, {18902, "Bandana12", 1000}, {18903, "Bandana13", 1000}, {18904, "Bandana14", 1000}, {18905, "Bandana15", 1000}, {18906, "Bandana16", 1000}, {18907, "Bandana17", 1000}, {18908, "Bandana18", 1000}, {18909, "Bandana19", 1000}, {18910, "Bandana20", 1000}, //TOYS 1 {341, "Chainsaw", 1000}, {19346, "Hotdog", 1000}, {19317, "Bass Guitar", 2000}, {19318, "FlyingVGuitar", 3000}, {19319, "WarlockGuitar", 2000}, {321, "Dildo1", 1000}, {322, "Dildo2", 1000}, {323, "Dildo3", 1000}, {324, "Dildo4", 1000}, {325, "Flowers", 1000}, {326, "Cane", 1000}, {327, "WeddingringBox", 1000}, {331, "BrassKnuckles", 1000}, {333, "GolfClub", 1000}, {334, "NightStick", 1000}, {336, "BaseballBat", 1000}, {337, "Shovel", 1000}, {338, "PoolCue", 1000}, {339, "Katana", 1000}, {335, "Knife", 1000}, {346, "Glock", 1000}, {347, "SDPistol", 1000}, {348, "DesertEagle", 1000}, {349, "Shotgun", 1000}, {349, "Sawnoff", 1000}, {351, "SPAS12", 1000}, {352, "Micro SMG", 1000}, {353, "MP5", 1000}, {355, "AK47", 1000}, {356, "M4", 1000}, {357, "Rifle", 1000}, {358, "Sniper", 1000}, {363, "C4", 1000}, {342, "Grenade", 1000}, {343, "SmokeGrenade", 1000}, {365, "Spraycan", 1000}, {367, "Camera", 1000}, {368, "NV Goggles", 1000}, {370, "Jetpack", 1000}, //{1602, "Jellyfish", 1000}, {1212, "Money", 1000}, //TOYS 2 {19066, "Santa Hat 3", 1000}, {371, "Para Backpack", 1000}, {3026, "Black Backpack", 1000}, {19066, "Scuba Gear1", 1000}, {19066, "Scuba Gear2", 1000}, {1025, "Wheel", 1000}, {1265, "Trashbag", 1000}, {1549, "Bin", 1000}, {1486, "Bottle1", 1000}, {1520, "Bottle2", 1000}, {1543, "Bottle3", 1000}, {1544, "Bottle4", 1000}, {1575, "Black Package", 1000}, {2891, "Drug Package", 1000}, {1644, "Lotion", 1000}, {1781, "Old TV", 1000}, {2056, "Target", 1000}, {2060, "Sandbag", 1000}, {2268, "Cat Painting 1", 1000}, {2277, "Cat Painting 2", 1000}, {2410, "Surfboard1", 1000}, {2406, "Surfboard2", 1000}, {2405, "Surfboard3", 1000}, {2404, "Surfboard4", 1000}, {2590, "Hook", 1000}, {2663, "Burgershot Bag", 1000}, {2680, "Lock and Chain", 1000}, {2690, "Fire Extinguisher", 1000}, {2703, "Hamburger", 1000}, {2712, "Mop", 1000}, {2719, "Sign 99c", 1000}, {2749, "Hairspray", 1000}, {2750, "Hairdryer", 1000}, {2769, "Burrito", 1000}, {2804, "Raw Meat", 1000}, {2805, "Raw Meat Bag", 1000}, {2908, "Zombie Mask", 1000}, {2907, "Zombie Torso", 1000}, {2906, "Zombie Arm", 1000}, {2905, "Zombie Leg", 1000}, {2914, "Flag", 1000}, {2916, "Dumbell", 1000}, {2969, "Crate", 1000}, {2976, "Kryptonite", 1000}, {3014, "Weapon Crate", 1000}, {3028, "Katana", 1000}, {3056, "Magnet", 1000}, {3106, "8 Ball", 1000}, {1946, "BasketBall", 1000}, {1960, "Record", 1000}, {2045, "SpikedClub", 1000}, {2062, "Barrel", 1000}, {2589, "MeatOnRope", 1000}, {2901, "WeedBundle", 1000}, {3027, "Joint", 1000}, {3044, "Cigar", 1000}, {3054, "SteelBall", 1000}, {3082, "GreenTank", 1000}, {3524, "SkullOnStick", 1}, {3528, "DragonMask", 1000}, {3790, "Missile", 1000}, {18887, "ForceField", 1}, //special {359, "RPG1", 1}, {360, "RPG2", 1}, {363, "Satchel", 1000}, {364, "Detonator", 1000}, {18677, "Smoke", 1}, {18675, "Smoke Flash", 1}, {18673, "Cigar Smoke", 1000}, {372, "Uzi", 1}, {635, "Grass1", 1000}, {636, "Grass2", 1000}, {18688, "Fire Flame", 1}, {18689, "Fire & Smoke", 1}, {902, "Starfish", 1000}, {18648, "Blue Neon", 1}, {18693, "Energy Trail", 1}, {18694, "Particle", 1}, {928, "Box", 1000}, {932, "Wheelchair1", 1000}, {1363, "Wheelchair2", 1000}, {935, "Oil Drum", 1000}, {1019, "Exhaust1", 1}, {1020, "Exhaust2", 1}, {1114, "Exhaust3", 1}, {1136, "Exhaust4", 1}, {1025, "Tire", 1000}, {1210, "Briefcase", 1000}, {18698, "Flies", 1000}, {1238, "Cone", 1000}, {1271, "Crate", 1000}, {1310, "Magnet", 1000}, {1328, "Bin", 1000}, {1349, "Trolly", 1000}, {1453 , "Hay", 1000}, {1454 , "Haystack", 1000}, {1484 , "Bottle1", 1000}, {1486 , "Bottle2", 1000}, {18729, "Green Energy", 1}, {18699 , "Nitro Trail", 1}, {1546 , "Sprunk", 1}, {18701 , "Small Energy Trail", 1}, {1512 , "Whiskey", 1000}, {1514 , "Cash Register", 1000}, {1550 , "Moneybag", 1000}, {1581 , "ID Card", 1000}, {1582 , "Pizzabox", 1000}, {1588 , "Dummy head", 1}, {1589 , "Dummy shoulderL", 1}, {1590 , "Dummy shoulderR", 1}, {1591 , "Dummy torsoR", 1}, {1592 , "Dummy torsoL", 1}, {1598, "Beachball", 1}, {1599, "Fish1", 1}, {1600, "Fish2", 1}, {1603, "Jellyfish", 1}, {1607, "Dolphin", 1}, {1608, "Shark", 1}, {1609, "Turtle", 1000}, {1946, "Baseketball", 1000}, {1974, "Golfball", 1000}, {1640, "Beachtowel1", 1000}, {1641, "Beachtowel2", 1000}, {18717, "Sparks", 1}, {18702 , "Blue Flash", 1}, {1960, "Record1", 1000}, {1961, "Record2", 1000}, {18703 , "Smoke", 1}, {1644, "Sunscreen", 1000}, {1650, "Jerrycan", 1000}, {2049, "Target", 1000}, {2051, "Target2", 1000}, {2056, "Target3", 1000}, {2265, "Cat", 1000}, {2510, "Plane", 1000}, {18705 , "Piss", 1}, {2702, "Pizza slice", 1000}, {2750, "Hair dryer", 1000}, {2913, "Barbell", 1000}, {2916, "Dumbell", 1000}, {3012, "Mask", 1000}, //0.3.7 objects (0.3.7) {19569, "Milk1", 1000}, {19570, "Milk2", 1000}, {19567, "Icecream1", 1000}, {19568, "Icecream2", 1000}, {19566, "Cereal1", 1000}, {19565, "Cereal2", 1000}, {19564, "Cereal3", 1000}, {19563, "Cereal4", 1000}, {19562, "Cereal5", 1000}, {19561, "Cereal6", 1000}, {19560, "Meat Tray", 1000}, {19559, "Hiker Backpack", 1000}, {19558, "Pizza Hat", 1000}, {19557, "Orgie Mask", 1000}, {19555, "Boxing GloveL", 1000}, {19556, "Boxing GloveR", 1000}, {19554, "Beanie", 1000}, {19527, "Couldron", 1000}, {19528, "Witch hat", 1000}, {19553, "Straw hat", 1000}, {19583, "Kitchen Knife", 1000}, {19582, "Raw Meat", 1000}, {19581, "Frying Pan", 1000}, {19580, "Pizza", 1000}, {19573, "BriquettesBag1", 1000}, {19572, "Pissh", 1000}, {19571, "Pizza Box1", 1000}, {19613, "Mic amp", 1000}, {19611, "Mic stand", 1000}, {19610, "Mic", 1000}, {19592, "Basket", 1000}, {19591, "Fan ", 1000}, {19590, "Sword ", 1000}, {19586, "Spatula", 1000}, {19584, "Pot1", 1000}, {19585, "Pot2", 1000}, {19804, "Padlock", 1000}, {19847, "LegHam", 1000}, {19792, "Keycard", 1000}, {19808, "Keyboard", 1000}, {19807, "Phone", 1000}, {19632, "Campfire", 1000}, {19631, "Sledgehammer", 1000}, {19630, "Fish", 1000}, {19627, "Wrench", 1000}, {19624, "Suitcase", 1000}, {19623, "Flash camera", 1000}, {19621, "Oil Can", 1000}, {19622, "Broom", 1000}, {11738 , "Medic Box", 1000}, {11736, "Medic Pack", 1000}, {11735, "Cowboy Boot", 1000}, {11734 , "Rocking Chair", 1000}, {11733, "Rocking Horse", 1000}, {11729, "New Phone", 1000}, {11722, "Sauce1", 1000}, {11723, "Sauce2", 1000}, {11719, "Old pot 1", 1000}, {11720, "Old pot 2", 1000}, {11716, "Knife", 1000}, {11715, "Fork", 1000}, {11712, "Cross", 1000}, {11706, "Bin", 1000}, {11705, "Black Phone", 1000}, {11704, "Devil Mask", 1000}, {19944, "Body Bag", 1000}, {19878, "Skateboard", 1000}, {19894, "Laptop Closed", 1000}, {19893, "Laptop Open ", 1000}, {19836, "Blood Pool", 1000}, {19835, "Coffee", 1000}, {19825, "Clock", 1000}, {19820, "Alcohol1", 1000}, {19821, "Alcohol2", 1000}, {19822, "Alcohol3", 1000}, {19823, "Alcohol4", 1000}, {19824, "Alcohol5", 1000}, {19625, "Ciggy", 1000}, {19626, "Spade", 1000}, {19816, "Oxygen", 1000}, {19818, "Glass1", 1000}, {19819, "Glass2", 1000}, {19811, "BurgerBox", 1000}, {19833, "Cow", 1000}, {19574, "Orange", 1000}, {19575, "Apple1", 1000}, {19576, "Apple2", 1000}, {19577, "Tomato1", 1000}, {19578, "Banana1", 1000}, {19579, "Bread Loaf", 1000}, {19883, "Bread Slice", 1000}, {19896, "CigarettePack1", 1000}, {19897, "CigarettePack2", 1000}, {19904, "ConstructionVest1", 1000}, {19941, "GoldBar1", 1000}, {19942, "Police Radio", 1000}, {19873, "Toilet paper", 1000}, {19874, "Soap", 1000}, {19773, "Gun Holster", 1000}, {19774, "Police Badge1", 1000}, {19775, "Police Badge2", 1000}, {19776, "FBI Card1", 1000}, {19777, "FBI Logo", 1000}, {19778, "InsigniaDetective1", 1000}, {19779, "InsigniaDetective2", 1000}, {19780, "InsigniaDetective3", 1000}, {19781, "InsigniaSergeant1", 1000}, {19782, "InsigniaSergeant2", 1000}, {19783, "InsigniaPOfficer2", 1000}, {19784, "InsigniaPOfficer3", 1000}, {19785, "InsigniaSeniorLdOff", 1000} }; new Accessories[MAX_PLAYERS][7], AccessoriesB[MAX_PLAYERS][7], Float:AccessoriesX[MAX_PLAYERS][7], Float:AccessoriesY[MAX_PLAYERS][7]; new Float:AccessoriesZ[MAX_PLAYERS][7], Float:AccessoriesrX[MAX_PLAYERS][7], Float:AccessoriesrY[MAX_PLAYERS][7], Float:AccessoriesrZ[MAX_PLAYERS][7]; new Float:AccessoriessX[MAX_PLAYERS][7], Float:AccessoriessY[MAX_PLAYERS][7], Float:AccessoriessZ[MAX_PLAYERS][7], Accessoriesc1[MAX_PLAYERS][7]; //color1 // Siren new Siren[MAX_VEHICLES]; new SirenObject[MAX_VEHICLES]; stock IsValidSirenVehicle(vehicleid) { if(IsAPlane(vehicleid)) return 0; else if(IsAHelicopter(vehicleid)) return 0; else if(IsABike(vehicleid)) return 0; else if(IsABoat(vehicleid)) return 0; switch(GetVehicleModel(vehicleid)) { case 403, 406, 407, 416, 420, 423, 427, 428, 432, 437, 438, 441, 451, 471, 481, 486, 490, 501, 509, 510, 524, 525, 532, 537, 538, 539, 544, 564, 571, 588, 594, 596, 597, 598, 599, 531, 601: { return 0; } } return 1; } //Namechange new NameChangeRequest[MAX_PLAYERS][MAX_PLAYER_NAME]; //Anti-CS new CSDisable[MAX_PLAYERS]; // Fuel... new Filling[MAX_PLAYERS], displayingText[MAX_PLAYERS], hideCenterHUDTimerID[MAX_PLAYERS], OfferedGunTo[MAX_PLAYERS] = -1, OfferedGunFrom[MAX_PLAYERS] = -1, GunOffered[MAX_PLAYERS] = 0, string5[128]; //Give kevlars new KevlarOfferTo[MAX_PLAYERS] = -1, KevlarOfferFrom[MAX_PLAYERS] = -1; //Give keys new KeysOfferTo[MAX_PLAYERS] = -1, KeysOfferFrom[MAX_PLAYERS] = -1, KeysOfferIndex[MAX_PLAYERS]; // Dropping weapons new CanDrop[MAX_PLAYERS]; // Sell house new OfferedSellHouse[MAX_PLAYERS][3]; // Selling vehicles new OfferedSellVehicle[MAX_PLAYERS][3]; //VIP Sys new PlayerHasMP5Laser[MAX_PLAYERS], PlayerHasM4Laser[MAX_PLAYERS], PlayerHasAKLaser[MAX_PLAYERS], PlayerHasSpasLaser[MAX_PLAYERS], PlayerHasDeagleLaser[MAX_PLAYERS]; new PlayerHasLaserOn[MAX_PLAYERS], GottenGift[MAX_PLAYERS], GottenTimeLeft[MAX_PLAYERS], VIPChatTog[MAX_PLAYERS] = 0; // Pause Detection new PlayerPaused[MAX_PLAYERS], pausetick[MAX_PLAYERS], playerDesynced[MAX_PLAYERS]; // getJobLevelReq shit new jlevel1, jlevel2, jlevel3, jlevel4, jlevel5; //food crap new foodTray[MAX_TRAYS][5]; //100 rows, 3 columns [OBJ ID/TYPE/AMOUNT/ACTIVE TIME/POISONED]. new hasFoodTray[MAX_PLAYERS], finishedEatingTimer[MAX_PLAYERS], beingPoisonedTimer[MAX_PLAYERS], boughtFoodTimer[MAX_PLAYERS], playerPoisoned[MAX_PLAYERS], foodTrays, Lockpicking[MAX_PLAYERS], CLockpicking[MAX_PLAYERS]; stock CreateBladesForCombine(vehicleid) { combobjid = CreateObject(983, 0, 0, 0, 0, 0, 0); AttachObjectToVehicle(combobjid, vehicleid, 0.00, 5.76, -1.99, 0.00, 90.00, 90.00); //invisible combine SetObjectMaterial(combobjid, 0, COLOR_GREY, "none", "none", 0x00FFFFFF); SetObjectMaterial(combobjid, 1, COLOR_GREY, "none", "none", 0x00FFFFFF); SetObjectMaterial(combobjid, 2, COLOR_GREY, "none", "none", 0x00FFFFFF); SetObjectMaterial(combobjid, 3, COLOR_GREY, "none", "none", 0x00FFFFFF); SetObjectMaterial(combobjid, 4, COLOR_GREY, "none", "none", 0x00FFFFFF); SetObjectMaterial(combobjid, 5, COLOR_GREY, "none", "none", 0x00FFFFFF); return 1; } new legalmods[48][22] = { {400, 1024, 1021, 1020, 1019, 1018, 1013, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {401, 1145, 1144, 1143, 1142, 1020, 1019, 1017, 1013, 1007, 1006, 1005, 1004, 1003, 1001, 0000, 0000, 0000, 0000}, {404, 1021, 1020, 1019, 1017, 1016, 1013, 1007, 1002, 1000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {405, 1023, 1021, 1020, 1019, 1018, 1014, 1001, 1000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {410, 1024, 1023, 1021, 1020, 1019, 1017, 1013, 1007, 1003, 1001, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {415, 1023, 1019, 1018, 1017, 1007, 1003, 1001, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {418, 1021, 1020, 1016, 1006, 1002, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {420, 1021, 1019, 1005, 1004, 1003, 1001, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {421, 1023, 1021, 1020, 1019, 1018, 1016, 1014, 1000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {422, 1021, 1020, 1019, 1017, 1013, 1007, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {426, 1021, 1019, 1006, 1005, 1004, 1003, 1001, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {436, 1022, 1021, 1020, 1019, 1017, 1013, 1007, 1006, 1003, 1001, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {439, 1145, 1144, 1143, 1142, 1023, 1017, 1013, 1007, 1003, 1001, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {477, 1021, 1020, 1019, 1018, 1017, 1007, 1006, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {478, 1024, 1022, 1021, 1020, 1013, 1012, 1005, 1004, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {489, 1024, 1020, 1019, 1018, 1016, 1013, 1006, 1005, 1004, 1002, 1000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {491, 1145, 1144, 1143, 1142, 1023, 1021, 1020, 1019, 1018, 1017, 1014, 1007, 1003, 0000, 0000, 0000, 0000, 0000}, {492, 1016, 1006, 1005, 1004, 1000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {496, 1143, 1142, 1023, 1020, 1019, 1017, 1011, 1007, 1006, 1003, 1002, 1001, 0000, 0000, 0000, 0000, 0000, 0000}, {500, 1024, 1021, 1020, 1019, 1013, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {516, 1021, 1020, 1019, 1018, 1017, 1016, 1015, 1007, 1004, 1002, 1000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {517, 1145, 1144, 1143, 1142, 1023, 1020, 1019, 1018, 1017, 1016, 1007, 1003, 1002, 0000, 0000, 0000, 0000, 0000}, {518, 1145, 1144, 1143, 1142, 1023, 1020, 1018, 1017, 1013, 1007, 1006, 1005, 1003, 1001, 0000, 0000, 0000, 0000}, {527, 1021, 1020, 1018, 1017, 1015, 1014, 1007, 1001, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {529, 1023, 1020, 1019, 1018, 1017, 1012, 1011, 1007, 1006, 1003, 1001, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {534, 1185, 1180, 1179, 1178, 1127, 1126, 1125, 1124, 1123, 1122, 1106, 1101, 1100, 0000, 0000, 0000, 0000, 0000}, {535, 1121, 1120, 1119, 1118, 1117, 1116, 1115, 1114, 1113, 1110, 1109, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {536, 1184, 1183, 1182, 1181, 1128, 1108, 1107, 1105, 1104, 1103, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {540, 1145, 1144, 1143, 1142, 1024, 1023, 1020, 1019, 1018, 1017, 1007, 1006, 1004, 1001, 0000, 0000, 0000, 0000}, {542, 1145, 1144, 1021, 1020, 1019, 1018, 1015, 1014, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {546, 1145, 1144, 1143, 1142, 1024, 1023, 1019, 1018, 1017, 1007, 1006, 1004, 1002, 1001, 0000, 0000, 0000, 0000}, {547, 1143, 1142, 1021, 1020, 1019, 1018, 1016, 1003, 1000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {549, 1145, 1144, 1143, 1142, 1023, 1020, 1019, 1018, 1017, 1012, 1011, 1007, 1003, 1001, 0000, 0000, 0000, 0000}, {550, 1145, 1144, 1143, 1142, 1023, 1020, 1019, 1018, 1006, 1005, 1004, 1003, 1001, 0000, 0000, 0000, 0000, 0000}, {551, 1023, 1021, 1020, 1019, 1018, 1016, 1006, 1005, 1003, 1002, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {558, 1168, 1167, 1166, 1165, 1164, 1163, 1095, 1094, 1093, 1092, 1091, 1090, 1089, 1088, 0000, 0000, 0000, 0000}, {559, 1173, 1162, 1161, 1160, 1159, 1158, 1072, 1071, 1070, 1069, 1068, 1067, 1066, 1065, 0000, 0000, 0000, 0000}, {560, 1170, 1169, 1141, 1140, 1139, 1138, 1033, 1032, 1031, 1030, 1029, 1028, 1027, 1026, 0000, 0000, 0000, 0000}, {561, 1157, 1156, 1155, 1154, 1064, 1063, 1062, 1061, 1060, 1059, 1058, 1057, 1056, 1055, 1031, 1030, 1027, 1026}, {562, 1172, 1171, 1149, 1148, 1147, 1146, 1041, 1040, 1039, 1038, 1037, 1036, 1035, 1034, 0000, 0000, 0000, 0000}, {565, 1153, 1152, 1151, 1150, 1054, 1053, 1052, 1051, 1050, 1049, 1048, 1047, 1046, 1045, 0000, 0000, 0000, 0000}, {567, 1189, 1188, 1187, 1186, 1133, 1132, 1131, 1130, 1129, 1102, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {575, 1177, 1176, 1175, 1174, 1099, 1044, 1043, 1042, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {576, 1193, 1192, 1191, 1190, 1137, 1136, 1135, 1134, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {580, 1023, 1020, 1018, 1017, 1007, 1006, 1001, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {589, 1145, 1144, 1024, 1020, 1018, 1017, 1016, 1013, 1007, 1006, 1005, 1004, 1000, 0000, 0000, 0000, 0000, 0000}, {600, 1022, 1020, 1018, 1017, 1013, 1007, 1006, 1005, 1004, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000}, {603, 1145, 1144, 1143, 1142, 1024, 1023, 1020, 1019, 1018, 1017, 1007, 1006, 1001, 0000, 0000, 0000, 0000, 0000} }; new wheelmodels[17] = {1025, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1096, 1097, 1098}; new illegalvehs[29] = { 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 }; iswheelmodel(modelid) { for(new wm; wm < sizeof(wheelmodels); wm++) { if(modelid == wheelmodels[wm]) { return true; } } return false; } IllegalCarNitroIde(carmodel) { for(new iv; iv < sizeof(illegalvehs); iv++) { if(carmodel == illegalvehs[iv]) { return true; } } return false; } stock islegalcarmod(vehicleide, componentid) { if(vehicleide == INVALID_VEHICLE_ID) return true; vehicleide = GetVehicleModel(vehicleide); new modok = false; if((iswheelmodel(componentid)) || (componentid == 1086) || (componentid == 1087) || ((componentid >= 1008) && (componentid <= 1010))) { new nosblocker = IllegalCarNitroIde(vehicleide); if(!nosblocker) modok = true; } else { for(new lm; lm < sizeof(legalmods); lm++) { if(legalmods[lm][0] == vehicleide) { for(new J = 1; J < 22; J++) { if(legalmods[lm][J] == componentid && legalmods[lm][J] != 0000) modok = true; } } } } return modok; } public OnVehicleMod(playerid, vehicleid, componentid) { new str[128]; if(GetPlayerInterior(playerid) == 0) { if(PlayerInfo[playerid][pAdmin] < 2) { format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (ID %d) is possibly car mod hacking.", PlayerOOCName(playerid), playerid); ABroadCast(COLOR_WHITE, str, 1); return 0; } } new modok = islegalcarmod(vehicleid, componentid); if(!modok) { OnDestroyVehicle(vehicleid); return 0; } return 1; } stock AlphaNumeric(const string2[]) { new z = 0; for(new x, y = strlen(string2); x != y; x++) { if((string2[x] >= 48 && string2[x] <= 57) || (string2[x] >= 65 && string2[x] <= 90) || (string2[x] >= 97 && string2[x] <= 122) || string2[x] == 32) { z++; } } if(z == strlen(string2)) { return true; } else { return false; } } stock AlphaNumericTwo(const string2[]) { new z = 0; for(new x, y = strlen(string2); x != y; x++) { if((string2[x] >= 65 && string2[x] <= 90) || (string2[x] >= 97 && string2[x] <= 122)) { z++; } } if(z == strlen(string2)) { return true; } else { return false; } } stock AlphaNumericName(const string2[]) { new z = 0; for(new x, y = strlen(string2); x != y; x++) { if((string2[x] >= 65 && string2[x] <= 90) || (string2[x] >= 97 && string2[x] <= 122) || string2[x] == 95) { z++; } } if(z == strlen(string2)) { return true; } else { return false; } } new gCarLock[MAX_VEHICLES]; new VehicleFriendlyNames[212][] = { {"Landstalker"}, {"Bravura"}, {"Buffalo"}, {"Linerunner"}, {"Perrenial"}, {"Sentinel"}, {"Dumper"}, {"Firetruck"}, {"Trashmaster"}, {"Stretch"}, {"Manana"}, {"Infernus"}, {"Voodoo"}, {"Pony"}, {"Mule"}, {"Cheetah"}, {"Ambulance"}, {"Leviathan"}, {"Moonbeam"}, {"Esperanto"}, {"Taxi"}, {"Washington"}, {"Bobcat"}, {"Mr. Whoopee"}, {"BF. Injection"}, {"Hunter"}, {"Premier"}, {"Enforcer"}, {"Securicar"}, {"Banshee"}, {"Predator"}, {"Bus"}, {"Rhino"}, {"Barracks"}, {"Hotknife"}, {"Article Trailer"}, {"Previon"}, {"Coach"}, {"Cabbie"}, {"Stallion"}, {"Rumpo"}, {"RC Bandit"}, {"Romero"}, {"Packer"}, {"Monster"}, {"Admiral"}, {"Squalo"}, {"Seasparrow"}, {"Pizzaboy"}, {"Tram"}, {"Article Trailer 2"}, {"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"}, {"Cropdust"}, {"Stunt"}, {"Tanker"}, {"Roadtrain"}, {"Nebula"}, {"Majestic"}, {"Buccaneer"}, {"Shamal"}, {"Hydra"}, {"FCR-900"}, {"NRG-500"}, {"HPV1000"}, {"Cement Truck"}, {"Tow Truck"}, {"Fortune"}, {"Cadrona"}, {"FBI Truck"}, {"Willard"}, {"Forklift"}, {"Tractor"}, {"Combine"}, {"Feltzer"}, {"Remington"}, {"Slamvan"}, {"Blade"}, {"Freight"}, {"Streak"}, {"Vortex"}, {"Vincent"}, {"Bullet"}, {"Clover"}, {"Sadler"}, {"Firetruck LA"}, {"Hustler"}, {"Intruder"}, {"Primo"}, {"Cargobob"}, {"Tampa"}, {"Sunrise"}, {"Merit"}, {"Utility"}, {"Nevada"}, {"Yosemite"}, {"Windsor"}, {"Monster A"}, {"Monster B"}, {"Uranus"}, {"Jester"}, {"Sultan"}, {"Stratum"}, {"Elegy"}, {"Raindance"}, {"RC Tiger"}, {"Flash"}, {"Tahoma"}, {"Savanna"}, {"Bandito"}, {"Freight Flat"}, {"Streak Carriage"}, {"Kart"}, {"Mower"}, {"Dunerider"}, {"Sweeper"}, {"Broadway"}, {"Tornado"}, {"AT-400"}, {"DFT-30"}, {"Huntley"}, {"Stafford"}, {"BF-400"}, {"Newsvan"}, {"Tug"}, {"Article Trailer 3"}, {"Emperor"}, {"Wayfarer"}, {"Euros"}, {"Mobile Hotdog"}, {"Club"}, {"Freight Carriage"}, {"Trailer 3"}, {"Andromada"}, {"Dodo"}, {"RC Cam"}, {"Launch"}, {"Police Car (SAPD)"}, {"Police Car (SFPD)"}, {"Police Car (LVPD)"}, {"Police Ranger"}, {"Picador"}, {"S.W.A.T Van"}, {"Alpha"}, {"Phoenix"}, {"Glendale"}, {"Sadler"}, {"Luggage Trailer A"}, {"Luggage Trailer B"}, {"Stair Trailer"}, {"Boxville"}, {"Farm Plow"}, {"Utility Trailer"} }; stock GetVehicleFriendlyName(vehicleid) { new GVFNstring[56]; format(GVFNstring, sizeof(GVFNstring), "None"); if(GetVehicleModel(vehicleid) -400 < 0) return GVFNstring; format(GVFNstring, sizeof(GVFNstring), VehicleFriendlyNames[GetVehicleModel(vehicleid) -400]); return GVFNstring; } stock GetVehicleFriendlyNameFromModel(model) { new GVFNstring[56]; format(GVFNstring, sizeof(GVFNstring), "None"); if(model - 400 < 0) return GVFNstring; format(GVFNstring, sizeof(GVFNstring), VehicleFriendlyNames[model -400]); return GVFNstring; } stock GetVehicleCatogory(vhid) //took me a while... Could help fixing up the seatbelt system also?;) { new vm = GetVehicleModel(vhid); if(vm == 460 || vm == 476 || vm == 511 || vm == 512 || vm == 513 || vm == 519 || vm == 520 || vm == 553 || vm == 577 || vm == 592 || vm == 593 || vm == 548 || vm == 425 || vm == 417 || vm == 487 || vm == 488 || vm == 497 || vm == 563 || vm == 447 || vm == 469) { return 2; //AIR (planes/helis) } else if(vm == 472 || vm == 473 || vm == 493 || vm == 595 || vm == 484 || vm == 430 || vm == 453 || vm == 452 || vm == 446 || vm == 454 || vm == 539) { return 3; //WATER (boats, hovercraft included) } else if(vm == 435 || vm == 411 || vm == 449 || vm == 450 || vm == 464 || vm == 465 || vm == 501 || vm == 537 || vm == 538 || vm == 564 || vm == 569 || vm == 570 || vm == 584 || vm == 590 || vm == 594 || vm == 606 || vm == 607 || vm == 608 || vm == 610 || vm == 611 || vm == 509 || vm == 481 || vm == 510) { return 4; //SPECIAL (maintaunbikes, bmx's, trailers, RC veh's, trams/trains...) } else { return 1; //LAND (Cars, trucks, motorbikes) } } stock FMDVehicle(vehicleid) { new model = GetVehicleModel(vehicleid); switch(model) { case 416: return 1; case 407: return 1; case 544: return 1; } return 0; } stock GetVehicleSpeed(vehicleid) { new Float:Vx, Float:Vy, Float:Vz; GetVehicleVelocity(vehicleid, Vx, Vy, Vz); new Float:rtn; rtn = floatsqroot(floatpower(Vx *100, 2) + floatpower(Vy *100, 2)); rtn = floatsqroot(floatpower(rtn, 2) + floatpower(Vz *100, 2)); return floatround(rtn); } new iconCount[MAX_PLAYERS], bizIconID[MAX_PLAYERS], EditingGate[MAX_PLAYERS], GateAction[MAX_PLAYERS]; new usingRadio[MAX_PLAYERS], usingFC[MAX_PLAYERS], PlayerHasRod[MAX_PLAYERS], IsFishing[MAX_PLAYERS]; new FishingTimer[MAX_PLAYERS], CatchingTimer[MAX_PLAYERS], TextDrawTimer[MAX_PLAYERS], LineTension[MAX_PLAYERS], FishDist[MAX_PLAYERS]; new Caught[MAX_PLAYERS], Security = 0, CreatedCars[MAX_VEHICLES] = {INVALID_VEHICLE_ID, ...}; new gDestroyVehicle[MAX_VEHICLES], lightsOff[MAX_VEHICLES], hoodOpen[MAX_VEHICLES], trunkOpen[MAX_VEHICLES], aGun[MAX_PLAYERS][13]; new GPSOn[MAX_PLAYERS], playerHoldingTazer[MAX_PLAYERS], AdminHelp[MAX_PLAYERS], Tax = 0, TaxValue = 0, Jackpot = 0; //Global Chat System Variables new AGCTog; new Text3D:syndicateSign; //hitman badges new HitmanBadgeSAPD = 0, HitmanBadgeFBI = 0, HitmanBadgeRCSD = 0, HitmanBadgeLSFMD = 0, HitmanBadgeNG = 0, HitmanBadgeGOV = 0; new HitmanBadgeSCOTUS = 0, HitmanBadgeDEA = 0, HitmanBadgeATF = 0; new InRing = 0, RoundStarted = 0, BoxDelay = 0, Boxer1 = 255, Boxer2 = 255, TBoxer = 255, PlayerBoxing[MAX_PLAYERS], Float:PlayerKevBox[MAX_PLAYERS]; new MedicCall = 999, MedicCallTime[MAX_PLAYERS], LawyerCall = 999, LawyerCallTime[MAX_PLAYERS], MechanicCall = 999; new MechanicCallTime[MAX_PLAYERS], TaxiDrivers = 0, TaxiCall = 999, TaxiCallTime[MAX_PLAYERS], TaxiAccepted[MAX_PLAYERS]; new BusDrivers = 0, BusCall = 999, BusCallTime[MAX_PLAYERS], BusAccepted[MAX_PLAYERS], TransportDuty[MAX_PLAYERS]; new TransportValue[MAX_PLAYERS], TransportMoney[MAX_PLAYERS], TransportTime[MAX_PLAYERS], TransportCost[MAX_PLAYERS]; new TransportDriver[MAX_PLAYERS], JobDuty[MAX_PLAYERS], usingVendingMachine[MAX_PLAYERS], UsedFind[MAX_PLAYERS]; new GotMats[MAX_PLAYERS], GotDrugs[MAX_PLAYERS], DrugsLoaded[MAX_PLAYERS], GotPlant[MAX_PLAYERS], LoadObjects[MAX_PLAYERS], usingNameTag[MAX_PLAYERS]; new Text3D:nametagText[MAX_PLAYERS], Text3D:ThiefText[MAX_PLAYERS], CallDescription[MAX_PLAYERS][128]; new Float:OldHealth[MAX_PLAYERS], Float:OldArmour[MAX_PLAYERS], Float:OldWeedX[MAX_PLAYERS], Float:OldWeedY[MAX_PLAYERS]; new Float:OldWeedZ[MAX_PLAYERS], HoldingDetonator[MAX_PLAYERS], Language[MAX_PLAYERS], Robbing[MAX_PLAYERS], playerDisconnecting[MAX_PLAYERS]; new Float:RobbingX[MAX_PLAYERS], Float:RobbingY[MAX_PLAYERS], Float:RobbingZ[MAX_PLAYERS], FReloadTime[MAX_PLAYERS]; new CheckNumber[MAX_PLAYERS], JustReported[MAX_PLAYERS], JustBugReported[MAX_PLAYERS], HasActiveBugReport[MAX_PLAYERS]; new HelpMeTimer[MAX_PLAYERS], TazerTime[MAX_PLAYERS], Warnings[20][128], Accent[MAX_PLAYERS][32], LastPaid[MAX_PLAYERS][MAX_PLAYER_NAME]; new iCurrentWeapon[MAX_PLAYERS], lastAnimIndex[MAX_PLAYERS], gPlayerUsingLoopingAnim[MAX_PLAYERS]; new PlayersChannel[MAX_PLAYERS], HasBoughtMask[MAX_PLAYERS], UsingSate[MAX_PLAYERS], ZOOM[MAX_PLAYERS], Float:oldsposx[MAX_PLAYERS], Float:oldsposy[MAX_PLAYERS], Float:oldsposz[MAX_PLAYERS], Float: oldfacingangle[MAX_PLAYERS], oldvw[MAX_PLAYERS], oldint[MAX_PLAYERS]; new Float:newsposx[MAX_PLAYERS], Float:newsposy[MAX_PLAYERS], Float:newsposz[MAX_PLAYERS], DivorceOffer[MAX_PLAYERS]; new MarriageCeremoney[MAX_PLAYERS], ProposeOffer[MAX_PLAYERS], ProposedTo[MAX_PLAYERS], GotProposedBy[MAX_PLAYERS]; new MarryWitness[MAX_PLAYERS], MarryWitnessOffer[MAX_PLAYERS]; new BeingRobbed[MAX_PLAYERS]; new KissType[MAX_PLAYERS], ContractOffer[MAX_PLAYERS], ContractID[MAX_PLAYERS], PlayerStoned[MAX_PLAYERS], BMPurchased[MAX_PLAYERS]; new FishCount[MAX_PLAYERS], FindTimePoints[MAX_PLAYERS], FindTime[MAX_PLAYERS], FindingID[MAX_PLAYERS], BoxWaitTime[MAX_PLAYERS]; new BoxOffer[MAX_PLAYERS], GoChase[MAX_PLAYERS], SAPDClearing[MAX_PLAYERS], HospitalTime[MAX_PLAYERS], vipRepairTime[MAX_PLAYERS]; new HospitalSpawnID[MAX_PLAYERS], PlayerTied[MAX_PLAYERS], PlayerTiedTime[MAX_PLAYERS], PlayerBlinded[MAX_PLAYERS]; new PlayerCuffed[MAX_PLAYERS], PlayerCuffedTime[MAX_PLAYERS], PlayerTazed[MAX_PLAYERS], PlayerTazedTime[MAX_PLAYERS], PlayerFrozen[MAX_PLAYERS], breakingpcuffs[MAX_PLAYERS], bool:isbreakingcuffs[MAX_PLAYERS]; new LiveOffer[MAX_PLAYERS], LiveName[MAX_PLAYERS][MAX_PLAYER_NAME], TalkingLive[MAX_PLAYERS]; new InviteOffer[MAX_PLAYERS]; new FriskOffer[MAX_PLAYERS], BizOffer[MAX_PLAYERS], BizPrice[MAX_PLAYERS], BizID[MAX_PLAYERS], VestOffer[MAX_PLAYERS]; new VestPrice[MAX_PLAYERS], GuardOffer[MAX_PLAYERS], GuardPrice[MAX_PLAYERS], GuardedBy[MAX_PLAYERS], GuardingPrice[MAX_PLAYERS]; new Guarding[MAX_PLAYERS], healOffer[MAX_PLAYERS], healPrice[MAX_PLAYERS], DefenseOffer[MAX_PLAYERS], DefensePrice[MAX_PLAYERS]; new FamilyOffer[MAX_PLAYERS], FactionOffer[MAX_PLAYERS], CallLawyer[MAX_PLAYERS], WantLawyer[MAX_PLAYERS], CP[MAX_PLAYERS]; new MoneyMessage[MAX_PLAYERS], Condom[MAX_PLAYERS]; new RepairOffer[MAX_PLAYERS], RepairPrice[MAX_PLAYERS], RefillOffer[MAX_PLAYERS], RefillPrice[MAX_PLAYERS], RepairCar[MAX_PLAYERS]; new ProdOffer[MAX_PLAYERS], ProdPrice[MAX_PLAYERS], ProdAmount[MAX_PLAYERS], PotOffer[MAX_PLAYERS], PotPrice[MAX_PLAYERS]; new PotGram[MAX_PLAYERS], MatsOffer[MAX_PLAYERS], MatsPrice[MAX_PLAYERS], MatsGram[MAX_PLAYERS], MatsGram2[MAX_PLAYERS]; new Packages[MAX_PLAYERS], Crates[MAX_PLAYERS], CrackOffer[MAX_PLAYERS], CrackPrice[MAX_PLAYERS], CrackGram[MAX_PLAYERS], LastFriskedPlayer[MAX_PLAYERS]; new JailPrice[MAX_PLAYERS], gPlayerLogged[MAX_PLAYERS], startSpawnLoc[MAX_PLAYERS], gAdminAuthorized[MAX_PLAYERS], viewingStatsOf[MAX_PLAYERS]; new gLastCar[MAX_PLAYERS], gOoc[MAX_PLAYERS], bool: mcTog[MAX_PLAYERS], bool: mcOff, bool: toggedDevChat[MAX_PLAYERS], gHelperCh[MAX_PLAYERS], gTesterCh[MAX_PLAYERS]; new namesOff[MAX_PLAYERS], disabledRadios[MAX_PLAYERS], autoChat[MAX_PLAYERS], autoChatTime[MAX_PLAYERS], gNews[MAX_PLAYERS]; new gFam[MAX_PLAYERS], BigEar[MAX_PLAYERS], CellTime[MAX_PLAYERS], HidePM[MAX_PLAYERS], PhoneOffline[MAX_PLAYERS], AlarmOnline[MAX_PLAYERS]; new WTOnline[MAX_PLAYERS], gVehicleLock[MAX_PLAYERS], hotWireTime[MAX_PLAYERS], hotWireVeh[MAX_PLAYERS]; new hoskperm[MAX_PLAYERS] = INVALID_PLAYER_ID; new HSHAKEOFFER[MAX_PLAYERS], HShakeType[MAX_PLAYERS], KissOffer[MAX_PLAYERS]; new onpizzadelivery[MAX_PLAYERS], PlayerBar:pizzajobdeliveryid[MAX_PLAYERS]; new beingtreatedtime[MAX_PLAYERS], treatedinroom[MAX_PLAYERS], istreatedinallsaints[MAX_PLAYERS]; new allsaintsrooms[6], countygenrooms[6]; new bool: blackscreened[MAX_PLAYERS] = false; new lastpguns[MAX_PLAYERS][13][2]; new iswatching[MAX_PLAYERS]; new globall[MAX_PLAYERS]; //jobs7 new GettingJob[MAX_PLAYERS]; //============================================================================== new Mobile[1002], ReplyTo[MAX_PLAYERS], CallCost[MAX_PLAYERS], anticheatbans = 0, anticheatwarns = 0; new levelcost = 25000, deathcost = 1500, insuranceprice = 50000; new callcost = 10, matprice = 500, matpayout = 250, seedprice = 1000, crackgprice = 500, prodprice = 500, potcprice = 1000; new crackcprice = 1000, dhstock = 0, chstock = 0, levelexp = 4, nonewbie = 0, adds; new noooc = 1, timeshift = -1; new noglobal = 1; new TimeAfterBankJob = 0; new SELLCAR1[] = { 1000, 1124, 1245, 1349, 1475, 1574, 1636, 1762, 1895, 1946, 2000 }; new SELLCAR2[] = { 2099, 2135, 2255, 2378, 2457, 2563, 2614, 2721, 2878, 2988, 3000 }; new SELLCAR3[] = { 3058, 3175, 3212, 3377, 3454, 3555, 3678, 3751, 3865, 3964, 4000 }; new SELLCAR4[] = { 4077, 4123, 4275, 4378, 4422, 4565, 4613, 4752, 4897, 4911, 5000 }; new Float:TeleportDest[MAX_PLAYERS][3], LockPickingBiz[MAX_PLAYERS]; new LockPickingHouse[MAX_PLAYERS], LockPickingCar[MAX_PLAYERS], LockPickTime[MAX_PLAYERS], SellCarTimer[MAX_PLAYERS]; new StopAniTimer[MAX_PLAYERS], WeedPickTimer[MAX_PLAYERS], UseDrugsTimer[MAX_PLAYERS], UseBMTimer[MAX_PLAYERS], SellGunTimer[MAX_PLAYERS], DropWeaponTimer[MAX_PLAYERS], UseHYDTimer[MAX_PLAYERS]; new UseDrinkTimer[MAX_PLAYERS], UseNewbieTimer[MAX_PLAYERS], UseFareTimer[MAX_PLAYERS]; new UseAdmCmdTimer[MAX_PLAYERS], UseAcceptTimer[MAX_PLAYERS], Called911[MAX_PLAYERS], calledTaxi[MAX_PLAYERS]; new PaintballDieTimer[MAX_PLAYERS]; new LockSpam[MAX_PLAYERS], bool:watchingPDCCTV[MAX_PLAYERS]; new ExitTimer[MAX_PLAYERS], EnterTimer[MAX_PLAYERS]; //spec new Spectated[MAX_PLAYERS], beingSpectatedID[MAX_PLAYERS], SpectatingID[MAX_PLAYERS], SpectateType[MAX_PLAYERS]; new PrisonCell[MAX_PLAYERS]; new CapturingTimer[MAX_PLAYERS], BombID[MAX_PLAYERS], BombInCar[MAX_PLAYERS], firstSpawned[MAX_PLAYERS], Gas[MAX_VEHICLES], bool:JustRegistered[MAX_PLAYERS] = {false, ...}; new Refueling[MAX_PLAYERS], gPlayerSpawned[MAX_PLAYERS], oldindex[MAX_PLAYERS], OnABugReport[MAX_PLAYERS]; new bool:DptBanned[6] = {false, ...}; // Gag related new gagRequester[MAX_PLAYERS], gagExpire[MAX_PLAYERS]; //===========================[Death System]===================================== new DeathWeapons[MAX_PLAYERS][13][2], PlayerCalledEMS[MAX_PLAYERS], PlayerParamedic[MAX_PLAYERS]; //id of the paramedic for player new PlayerVictim[MAX_PLAYERS], ParaOnACall[MAX_PLAYERS], CallAccepted[MAX_PLAYERS], EMSArrived[MAX_PLAYERS], RapidResKit[MAX_PLAYERS]; new RapidResKitActive[MAX_PLAYERS], HasARapidResKit[MAX_PLAYERS], gotBombed[MAX_PLAYERS]; //=======[Pos enum]=========== enum Death_Info { Float:DeathX, Float:DeathY, Float:DeathZ, Float:DeathA, DeathInt, DeathVW, Float:DeathHP } new DeathPos[MAX_PLAYERS][Death_Info]; //===========================[Events]=========================================== new Float: EventX, Float: EventY, Float: EventZ, EventInt, EventWorld, EventHP = 100, EventArmour = 0, EventActive = 0, EventStarted = 0, EventJoinText = 0, EventLocked = 0; new EventWeapon1, EventWeapon2, EventWeapon3, EventWeapon4, EventWeapon5, EventText[128], IsAtEvent[MAX_PLAYERS]; new Float:StuffEvent[MAX_PLAYERS][6], StuffEvent2[MAX_PLAYERS][2], EventGuns[MAX_PLAYERS][13], RefundingNumber[MAX_PLAYERS], RefundingID[MAX_PLAYERS]; new PlayerEventMod[MAX_PLAYERS]; //===========================[For Sales]======================================== enum SaleBoard { bool:PlayerHasASaleBoard = false, Saleobject } new gForSales[MAX_PLAYERS][SaleBoard]; //===================================[Groups]=================================== // Groups #define MAX_GROUPS 12 #define GROUP_NONE 0 #define GROUP_HITMAN 1 // Non-donated. [Hitman agency] #define GROUP_CRIME 2 // Non-donated. [Syndicate] #define GROUP_REBELS 3 // Donated. [Zherdev OPG] Owner: Lucas Maxwell #define GROUP_CARTEL 4 // Non-donated. [CJNG] #define GROUP_TIJUANA 5 // Donated. [The Network] Owner: Capo #define GROUP_COMMISSION 6 // Donated. [The Commission] Owner: Petrucci #define GROUP_EXEC 7 // Donated. [Executive Outcomes] Owner: Dragus #define GROUP_LLS 8 // Donated. [The Bohl Front Ageny] Owner: Some LSRP cunt from USA #define GROUP_OPG 9 // Donated. [The Grey Wolves] Owner: Heidi Stone #define GROUP_S9 10 // Non-donated. [Sector 9] #define GROUP_BRATVA 11 // Donated Solntsevskaya Bratva Owner: Akib Khan #define GROUP_FACISTS 12 // Donated Wermacht/The Fascist Revolution Owner: Jessa // Group ranks #define GROUP_HITMAN_RANKS 6 #define GROUP_CRIME_RANKS 5 #define GROUP_CARTEL_RANKS 4 #define GROUP_REBELS_RANKS 5 #define GROUP_TIJUANA_RANKS 6 #define GROUP_COMMISSION_RANKS 5 #define GROUP_EXEC_RANKS 7 #define GROUP_LLS_RANKS 5 #define GROUP_OPG_RANKS 5 #define GROUP_S9_RANKS 4 #define GROUP_BRATVA_RANKS 5 #define GROUP_FACISTS_RANKS 6 new groupNamechangeRequest[MAX_PLAYERS][25]; new groupLevelChangeRequest[MAX_PLAYERS]; // Group toggle radio new groupRadioToggled[MAX_GROUPS+1]; new OOCgroupRadioToggled[MAX_GROUPS+1]; new GroupOffer[MAX_PLAYERS]; /* Functions */ stock GetGroupName(groupID) { new gname[64]; switch(groupID) { case GROUP_HITMAN: gname = "Hitman Agency"; case GROUP_CRIME: gname = "The Syndicate"; case GROUP_REBELS: gname = "Zherdev OPG"; case GROUP_CARTEL: gname = "The Ruggiero Crew"; case GROUP_TIJUANA: gname = "Tijuana Cartel"; case GROUP_COMMISSION: gname = "The Commission"; case GROUP_EXEC: gname = "Schedule 017"; case GROUP_LLS: gname = "The Bohl Front Ageny"; case GROUP_OPG: gname = "The Volkssturm Foundation"; case GROUP_S9: gname = "Sector 9"; case GROUP_BRATVA: gname = "Solntsevskaya Bratva"; case GROUP_FACISTS: gname = "The Fascist Revolution"; default: gname = "None"; } return gname; } stock GetPlayerGroupName(playerid) { new gname[64]; format(gname, sizeof(gname), "%s", GetGroupName(PlayerInfo[playerid][pGroup])); return gname; } stock GetGroupColour(groupid) { switch(groupid) { case GROUP_HITMAN: return COLOR_HITMAN; case GROUP_CRIME: return COLOR_CRIME; case GROUP_REBELS: return COLOR_REBELS; case GROUP_CARTEL: return COLOR_CARTEL_DE_TIJUANA; case GROUP_TIJUANA: return COLOR_BUREAU; case GROUP_COMMISSION: return COLOR_RAVENS; case GROUP_EXEC: return COLOR_EXEC_GROUP; case GROUP_LLS: return COLOR_LLS; case GROUP_OPG: return COLOR_PALERMO; case GROUP_S9: return COLOR_S9; case GROUP_BRATVA: return COLOR_HITMAN; case GROUP_FACISTS: return COLOR_HITMAN; } return -1; } stock GetGroupMaxRanks(groupid) { switch(groupid) { case GROUP_HITMAN: return GROUP_HITMAN_RANKS; case GROUP_CRIME: return GROUP_CRIME_RANKS; case GROUP_REBELS: return GROUP_REBELS_RANKS; case GROUP_CARTEL: return GROUP_CARTEL_RANKS; case GROUP_TIJUANA: return GROUP_TIJUANA_RANKS; case GROUP_COMMISSION: return GROUP_COMMISSION_RANKS; case GROUP_EXEC: return GROUP_EXEC_RANKS; case GROUP_LLS: return GROUP_LLS_RANKS; case GROUP_OPG: return GROUP_OPG_RANKS; case GROUP_S9: return GROUP_S9_RANKS; case GROUP_BRATVA: return GROUP_BRATVA_RANKS; case GROUP_FACISTS: return GROUP_FACISTS_RANKS; } return -1; } stock IsGroupLeader(playerid) { if(!PlayerInfo[playerid][pGroup]) return false; return PlayerInfo[playerid][pGroupRank] >= GetGroupMaxRanks(PlayerInfo[playerid][pGroup])-1; } stock GetPlayerGroupRankName(playerid) { new rankname[64] = "None"; switch(PlayerInfo[playerid][pGroup]) { case GROUP_HITMAN: //hitman { switch(PlayerInfo[playerid][pGroupRank]) { case 0: rankname = "Initiate"; case 1: rankname = "Freelancer"; case 2: rankname = "Operative"; case 3: rankname = "Agent"; case 4: rankname = "Elite Agent"; case 5: rankname = "Vice Director"; case 6: rankname = "Director"; } } case GROUP_CRIME: { switch(PlayerInfo[playerid][pGroupRank]) { case 5: rankname = "Director"; case 4: rankname = "Assistant Director"; case 3: rankname = "Specialist"; case 2: rankname = "Operative"; case 1: rankname = "Inductee"; case 0: rankname = "Outsider"; } } case GROUP_REBELS: { switch(PlayerInfo[playerid][pGroupRank]) { case 5: rankname = "Avtoritet"; case 4: rankname = "Derzhatel Obschaka"; case 3: rankname = "Brigadier"; case 2: rankname = "Bratok"; case 1: rankname = "Boyevik"; case 0: rankname = "Shestyorka"; } } case GROUP_CARTEL: { switch(PlayerInfo[playerid][pGroupRank]) { case 4: rankname = "Boss"; case 3: rankname = "Consigiliere"; case 2: rankname = "Caporegime"; case 1: rankname = "Soldier"; case 0: rankname = "Associate"; } } case GROUP_TIJUANA: { switch(PlayerInfo[playerid][pGroupRank]) { case 6: rankname = "Jefe"; case 5: rankname = "Delegar"; case 4: rankname = "Asociar"; case 3: rankname = "Fideicomisario"; case 2: rankname = "Empleado"; case 1: rankname = "Soldado de Infantería"; case 0: rankname = "Forastero"; } } case GROUP_COMMISSION: { switch(PlayerInfo[playerid][pGroupRank]) { case 5: rankname = "CEO"; case 4: rankname = "Underboss"; case 3: rankname = "Shots-caller"; case 2: rankname = "Specialist"; case 1: rankname = "Associate"; case 0: rankname = "Informant"; } } case GROUP_EXEC: { switch(PlayerInfo[playerid][pGroupRank]) { case 7: rankname = "Secretary"; case 6: rankname = "Secretary"; case 5: rankname = "Vice Secretary"; case 4: rankname = "Joint Chief"; case 3: rankname = "SS Agent"; case 2: rankname = "Special Agent"; case 1: rankname = "Agent"; case 0: rankname = "Initiate"; } } case GROUP_LLS: { switch(PlayerInfo[playerid][pGroupRank]) { case 5: rankname = "Supremo"; case 4: rankname = "Executive"; case 3: rankname = "Secretary"; case 2: rankname = "Enforcer"; case 1: rankname = "Associate"; case 0: rankname = "Employee"; } } case GROUP_OPG: { switch(PlayerInfo[playerid][pGroupRank]) { case 5: rankname = "Volkssturmmann"; case 4: rankname = "Gruppenfuhrer"; case 3: rankname = "Sanitatsdienstgrad"; case 2: rankname = "Zugfuhrer"; case 1: rankname = "Kompaniefuhrer"; case 0: rankname = "Bataillonsfuhrer"; } } case GROUP_S9: { switch(PlayerInfo[playerid][pGroupRank]) { case 4: rankname = "Director"; case 3: rankname = "Assistant Director"; case 2: rankname = "Special Agent"; case 1: rankname = "Senior Agent"; case 0: rankname = "Agent"; } } case GROUP_BRATVA: { switch(PlayerInfo[playerid][pGroupRank]) { case 5: rankname = "Pakhan"; case 4: rankname = "Sovietnik"; case 3: rankname = "Derzhatel Obschaka"; case 2: rankname = "Brigadier"; case 1: rankname = "Bratok"; case 0: rankname = "Shestyorka"; } } case GROUP_FACISTS: { switch(PlayerInfo[playerid][pGroupRank]) { case 6: rankname = "Generalfeldmarshall"; case 5: rankname = "Generaloberst"; case 4: rankname = "Oberleutnant"; case 3: rankname = "Offizier"; case 2: rankname = "Unteroffizier"; case 1: rankname = "Obersoldat"; case 0: rankname = "Soldat"; } } } return rankname; } SendGroupMessage(group, color, string2[]) { foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == group) { SendClientMessage(i, color, string2); } } return 1; } /*FakeRadioSAPD(group, color, string3[]) { foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == group && PlayerInfo[i][pSAPDListen]) { SendClientMessage(i, color, string3); } } return 1; } FakeRadioFBI(group, color, string3[]) { foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == group && PlayerInfo[i][pFBIListen]) { SendClientMessage(i, color, string3); } } return 1; } FakeRadioLSSD(group, color, string3[]) { foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == group && PlayerInfo[i][pLSSDListen]) { SendClientMessage(i, color, string3); } } return 1; } FakeRadioFMD(group, color, string3[]) { foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == group && PlayerInfo[i][pFMDListen]) { SendClientMessage(i, color, string3); } } return 1; } FakeRadioGOV(group, color, string3[]) { foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == group && PlayerInfo[i][pGOVListen]) { SendClientMessage(i, color, string3); } } return 1; } FakeRadioSANG(group, color, string3[]) { foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == group && PlayerInfo[i][pSANGListen]) { SendClientMessage(i, color, string3); } } return 1; }*/ SendFakeRadioMessage(group, color, string2[]) { foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == group && RadioFrequency[i] == FACTION_SAPD) { SendClientMessage(i, color, string2); } else if(PlayerInfo[i][pGroup] == group && RadioFrequency[i] == FACTION_FMD) { SendClientMessage(i, color, string2); } else if(PlayerInfo[i][pGroup] == group && RadioFrequency[i] == FACTION_ARMY) { SendClientMessage(i, color, string2); } else if(PlayerInfo[i][pGroup] == group && RadioFrequency[i] == FACTION_GOV) { SendClientMessage(i, color, string2); } else if(PlayerInfo[i][pGroup] == group && RadioFrequency[i] == FACTION_FBI) { SendClientMessage(i, color, string2); } else if(PlayerInfo[i][pGroup] == group && RadioFrequency[i] == FACTION_SANG) { SendClientMessage(i, color, string2); } } return 1; } forward onOGMembers(playerid); public onOGMembers(playerid) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "No offline members to display."); new memberstr[10000], lastlog[64], name[MAX_PLAYER_NAME], playerfrank, hanickname[13]; for(new i = 0; i < cache_num_rows(); i++) { new temp[10]; cache_get_field_content(i, "Name", name); cache_get_field_content(i, "LastLogin", lastlog); cache_get_field_content(i, "GroupRank", temp); cache_get_field_content(i, "pGroupNick", hanickname); playerfrank = strval(temp); if(cache_get_field_content_int(i, "Group") == GROUP_HITMAN) format(memberstr, sizeof(memberstr), "%s{3366FF}%s (%s) (%d)\t\t{FFFFFF}%s\n", memberstr, name, hanickname, playerfrank, lastlog); else format(memberstr, sizeof(memberstr), "%s{3366FF}%s (%d)\t\t{FFFFFF}%s\n", memberstr, name, playerfrank, lastlog); } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST, "Offline Members", memberstr, "Okay", ""); return 1; } forward OnOGUninvite(playerid, name[]); public OnOGUninvite(playerid, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That account doesn't exist."); if(cache_get_field_content_int(0, "Group") != PlayerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That member does not belong to your group."); new str[128]; format(str, sizeof(str), "* You have kicked %s from your group.", name); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); new query[300]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Group`= 0,`GroupRank`= 0, `HAFakeBadge`= 0 WHERE `Name`= '%e'", name); mysql_pquery(sqlGameConnection, query); return 1; } Hook:groups_OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_TIJUANA_ARMORY) { if(!response) return 1; switch(listitem) { case 0: { if(PlayerInfo[playerid][pCash] >= 100000) { GiveMoney(playerid, -100000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased a Deagle for $100,000."); GivePlayerGun(playerid, 24); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } case 1: { if(PlayerInfo[playerid][pCash] >= 150000) { GiveMoney(playerid, -150000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased a M4 for $150,000."); GivePlayerGun(playerid, 31); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } case 2: { if(PlayerInfo[playerid][pCash] >= 130000) { GiveMoney(playerid, -130000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased an AK47 for $130,000."); GivePlayerGun(playerid, 30); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } case 3: { if(PlayerInfo[playerid][pCash] >= 45000) { GiveMoney(playerid, -45000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased a Full Vest for $45,000."); SetPlayerArmour(playerid, 100.00); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } case 4: { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have healed yourself using a first aid kit."); SetPlayerHealth(playerid, 100.00); } case 5: { if(PlayerInfo[playerid][pCash] >= 50000) { GiveMoney(playerid, -50000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased an MP5 for $50,000."); GivePlayerGun(playerid, 29); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } case 6: { if(PlayerInfo[playerid][pCash] >= 30000) { GiveMoney(playerid, -30000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased a Shotgun for $30,000."); GivePlayerGun(playerid, 25); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } } } if(dialogid == DIALOG_GREYWOLF_ARMORY) { if(!response) return 1; switch(listitem) { case 0: { if(PlayerInfo[playerid][pCash] >= 50000) { GiveMoney(playerid, -50000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased a Deagle for $50,000."); GivePlayerGun(playerid, 24); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } case 1: { if(PlayerInfo[playerid][pCash] >= 75000) { GiveMoney(playerid, -75000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased a M4 for $75,000."); GivePlayerGun(playerid, 31); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } case 2: { if(PlayerInfo[playerid][pCash] >= 65000) { GiveMoney(playerid, -65000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased an AK47 for $65,000."); GivePlayerGun(playerid, 30); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } case 3: { if(PlayerInfo[playerid][pCash] >= 15000) { GiveMoney(playerid, -15000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased a Full Vest for $15,000."); SetPlayerArmour(playerid, 100.00); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } case 4: { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have healed yourself using a first aid kit."); SetPlayerHealth(playerid, 100.00); } case 5: { if(PlayerInfo[playerid][pCash] >= 13000) { GiveMoney(playerid, -13000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased an MP5 for $13,000."); GivePlayerGun(playerid, 29); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } case 6: { if(PlayerInfo[playerid][pCash] >= 7000) { GiveMoney(playerid, -7000); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have purchased a Shotgun for $7,000."); GivePlayerGun(playerid, 25); } else return SendClientMessage(playerid, COLOR_GREY, "You can't afford that."); } } } return 1; } /* Returns true if the given group ID is a donor group */ isDonatedGroup(groupID) { return ( groupID == GROUP_TIJUANA || groupID == GROUP_COMMISSION || groupID == GROUP_EXEC || groupID == GROUP_LLS || groupID == GROUP_OPG || groupID == GROUP_REBELS || groupID == GROUP_BRATVA || groupID == GROUP_FACISTS ); } // Needs to be moved for organisation /*IsGroupLeaderOn(groupid) { foreach(new i: Player) if(PlayerInfo[i][pGroup] == groupid && IsGroupLeader(i)) return 1; return 0; }*/ /* Commands */ CMD:quitgroup(playerid, params[]) { new str[128]; new conf[10]; if(PlayerInfo[playerid][pGroup] == GROUP_NONE) return SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}Error:{FFFFFF} You are not in a Group."); if(sscanf(params, "s[10]", conf)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /quitgroup 'confirm'"); if(strcmp(conf, "confirm", true) == 0) { format(str, sizeof(str), "* You have quit the %s, you are now a civilian again.", GetPlayerGroupName(playerid)); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); PlayerInfo[playerid][pGroup] = GROUP_NONE; PlayerInfo[playerid][pGroupRank] = 0; PlayerInfo[playerid][pHAFakeBadge] = 0; SetPlayerMasked(playerid, false); } return 1; } CMD:ggiverank(playerid, params[]) { new str[128]; if(PlayerInfo[playerid][pGroup] == GROUP_NONE) return SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}Error:{FFFFFF} You are not in a group."); if(!IsGroupLeader(playerid)) return SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}Error:{FFFFFF} You are not the group leader."); new giveplayerid, newrank; format(str, sizeof(str), "{00BFFF}Usage:{FFFFFF} /ggiverank [playerid/PartOfName] [0-%d]", GetGroupMaxRanks(PlayerInfo[playerid][pGroup])); if(sscanf(params, "u d", giveplayerid, newrank)) return SendClientMessage(playerid, COLOR_GREY, str); if(giveplayerid == playerid) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You can't change your own rank."); if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That player isn't connected."); if(PlayerInfo[giveplayerid][pGroup] != PlayerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That player is not a member of your group."); format(str, sizeof(str), "{FF0000}Error:{FFFFFF} Your factions ranks go from 0 to %d.", GetGroupMaxRanks(PlayerInfo[playerid][pGroup])); if(newrank < 0 || newrank > GetGroupMaxRanks(PlayerInfo[playerid][pGroup])) return SendClientMessage(playerid, COLOR_GREY, str); if(PlayerInfo[giveplayerid][pGroupRank] > newrank) { format(str, sizeof(str), "* You have demoted %s to rank %d.", PlayerICName(giveplayerid), newrank); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "* You have been demoted to Rank %d by Leader %s.", newrank, PlayerICName(playerid)); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, str); } else { format(str, sizeof(str), "* You have been promoted to Rank %d by Leader %s.", newrank, PlayerICName(playerid)); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "* You have promoted %s to rank %d.", PlayerICName(giveplayerid), newrank); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); } PlayerInfo[giveplayerid][pGroupRank] = newrank; return 1; } CMD:grouphelp(playerid) { SendClientMessage(playerid, GetGroupColour(PlayerInfo[playerid][pGroup]), "____________________________________________"); switch(PlayerInfo[playerid][pGroup]) { case GROUP_HITMAN: { SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /setucname /lockpickdoor /undercover /approveuc /contracts /ranks /disguise"); SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /callerid /profile /givehit /denyhit /givemehit /hitmanundercover /order /cuff /uncuff /sdtazer /handtazer"); SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /mask /takebadge /placebadge /fakebadge /fl /togglefl /sethanicnkname"); } case GROUP_CRIME: { SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /mask /disguise /mask /syndicate /undercover"); } case GROUP_CARTEL: { SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /mask /disguise /cjng /undercover"); } case GROUP_S9: { SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /mask /disguise /s9 /profile"); SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /callerid /fire /profile /fd"); SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /edits9badge, /deploydrone /controldrone"); SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /placejammer /crushjammer /removejammer /jammer /find /removebadge /showbadge"); SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /(m)egaphone /setucname /removefactionban /fire /togdept /fakedepartments"); SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /edits9badge /shows9badge /s9nametag /lockpickdoor /undercover /approveuc /hitmanundercover"); SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /plantbug /removebug /togbug /changefreq /fakeradio /nocarlisten"); } case GROUP_LLS: { SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /order"); } case GROUP_COMMISSION: { SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /comarmory"); } case GROUP_OPG: { SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /greyarmory, /mask"); } case GROUP_BRATVA: { SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /bratvaarmory, /mask"); } case GROUP_FACISTS: { SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /facistsarmory /mask"); } } if(isDonatedGroup(PlayerInfo[playerid][pGroup])) SendClientMessage(playerid, COLOR_WHITE, "COMMANDS: /disguise /callerid /callerid"); SendClientMessage(playerid, COLOR_GREY, "COMMANDS: /ginvite /guninvite /quitgroup /ggiverank /(g)roup(r)adio /(g)roup(o)oc(r)adio /gmembers"); SendClientMessage(playerid, COLOR_GREY, "COMMANDS: /ogmembers /oguninvite /togglegroupradio (/togglegr) /togglegroupoocradio (/togglegor)"); return 1; } CMD:ghelp(playerid) return cmd_grouphelp(playerid); CMD:gmembers(playerid, params[]) { if(PlayerInfo[playerid][pGroup] == GROUP_NONE) return SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}Error:{FFFFFF} You are not in a Group."); new memberstr[3600]; foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == PlayerInfo[playerid][pGroup]) { if(PlayerPaused[i]) { if(PlayerInfo[playerid][pGroup] == GROUP_HITMAN) format(memberstr, sizeof(memberstr), "%s[{E9CF8D}Paused{FFFFFF}] %s (%s) - Rank: %s(%d){FFFFFF}\n", memberstr, PlayerOOCName(i), PlayerInfo[i][pGroupNick], GetPlayerGroupRankName(i), PlayerInfo[i][pGroupRank]); else format(memberstr, sizeof(memberstr), "%s[{E9CF8D}Paused{FFFFFF}] %s (%s) - Rank: %s(%d){FFFFFF}\n", memberstr, PlayerOOCName(i), PlayerInfo[i][pGroupNick], GetPlayerGroupRankName(i), PlayerInfo[i][pGroupRank]); } else { if(PlayerInfo[playerid][pGroup] == GROUP_HITMAN) format(memberstr, sizeof(memberstr), "%s%s (%s) - Rank: %s(%d){FFFFFF}\n", memberstr, PlayerOOCName(i), PlayerInfo[i][pGroupNick], GetPlayerGroupRankName(i), PlayerInfo[i][pGroupRank]); else format(memberstr, sizeof(memberstr), "%s%s (%s) - Rank: %s(%d){FFFFFF}\n", memberstr, PlayerOOCName(i), PlayerInfo[i][pGroupNick], GetPlayerGroupRankName(i), PlayerInfo[i][pGroupRank]); } } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_LIST, "Group Members Online", memberstr, "Close", ""); } return 1; } CMD:ogmembers(playerid, params[]) { if(PlayerInfo[playerid][pGroup] > 0) { new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT `Name`, `LastLogin`, `Group`, `GroupRank`, `GroupNick` FROM `players` WHERE `Adjustable`=1 AND `Group`=%d", PlayerInfo[playerid][pGroup]); mysql_pquery(sqlGameConnection, query, "onOGMembers", "i", playerid); } else { SendClientMessage(playerid, COLOR_WHITE, "You're not in a group."); } return 1; } CMD:ginvite(playerid, params[]) { if(PlayerInfo[playerid][pGroup] == GROUP_NONE) return SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}Error:{FFFFFF} You are not in a group."); if(PlayerInfo[playerid][pGroupRank] < GetGroupMaxRanks(PlayerInfo[playerid][pGroup]) - 1) return SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}Error:{FFFFFF} You are not the group leader."); new giveplayerid; new str[128]; if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /ginvite [playerid/PartOfName]"); if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} Invalid playerid."); // To avoid MG which has been happening recently. if(PlayerInfo[giveplayerid][pGroup] == GROUP_S9) { format(str, sizeof(str), "* You have invited %s to join %s.", PlayerICName(giveplayerid), GetPlayerGroupName(playerid)); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "%s has just tried to invite you to join the %s. But S9 is gr8.", PlayerOOCName(playerid), GetPlayerGroupName(playerid)); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, str); return 1; } if(PlayerInfo[giveplayerid][pGroup] > 0) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That player is already in a group."); format(str, sizeof(str), "* You have invited %s to join %s.", PlayerICName(giveplayerid), GetPlayerGroupName(playerid)); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "* %s has invited you to join %s, (type /accept group) to accept.", PlayerICName(playerid), GetPlayerGroupName(playerid)); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, str); GroupOffer[giveplayerid] = playerid; return 1; } CMD:guninvite(playerid, params[]) { if(PlayerInfo[playerid][pGroup] == GROUP_NONE) return SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}Error:{FFFFFF} You are not in a group."); if(PlayerInfo[playerid][pGroupRank] < GetGroupMaxRanks(PlayerInfo[playerid][pGroup]) - 1) return SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}Error:{FFFFFF} You are not the group leader."); new giveplayerid; new str[128]; if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /guninvite [playerid/PartOfName]"); if(giveplayerid == playerid) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You can't uninvite yourself."); if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} Invalid playerid."); if(PlayerInfo[giveplayerid][pGroup] != PlayerInfo[playerid][pGroup]) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That player is not in your group."); if(PlayerInfo[giveplayerid][pGroupRank] >= PlayerInfo[playerid][pGroupRank]) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You can't kick out other group leaders."); format(str, sizeof(str), "* You have been kicked out of the %s by Leader %s.", GetPlayerGroupName(giveplayerid), PlayerICName(playerid)); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "* You have kicked out %s from the group.", PlayerOOCName(giveplayerid)); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); PlayerInfo[giveplayerid][pGroup] = GROUP_NONE; PlayerInfo[giveplayerid][pGroupRank] = 0; PlayerInfo[giveplayerid][pHAFakeBadge] = 0; SetPlayerMasked(giveplayerid, false); return 1; } CMD:togor(playerid, params[]) { if(PlayerInfo[playerid][pMember] != 0) { if(ToggedOR[playerid] == false) { ToggedOR[playerid] = true; SendClientMessage(playerid, COLOR_WHITE, "You have disabled the OOC radio channel."); } else { ToggedOR[playerid] = false; SendClientMessage(playerid, COLOR_WHITE, "You have re-enabled the OOC radio channel."); } } else return SendClientMessage(playerid, COLOR_GREY, "You're not in a faction."); return 1; } CMD:makegroupleader(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] >= 1337 || PlayerInfo[playerid][pFactionMod] > 0) { new giveplayerid, group; new str[128]; if(sscanf(params, "ui", giveplayerid, group)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /makegroupleader [playerid/PartOfName] [number]"); if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} Invalid playerid."); if(group < 0 || group > MAX_GROUPS) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} Group cannot be below 0 or above 11."); /* if((group == 10 || group == 1) && PlayerInfo[playerid][pFactionDirector] != 1) { if(playerid == giveplayerid) format(str, sizeof(str), "%s just tried to put his self into HA or S9.", PlayerName(playerid)); else format(str, sizeof(str), "%s just tried to make %s a member of S9 or HA.", PlayerName(playerid), PlayerName(giveplayerid)); ABroadCast(COLOR_LIGHTYELLOW, str, 1); return SendClientMessage(playerid, COLOR_GREY, "You cannot make yourself a member of S9 or HA."); } */ PlayerInfo[giveplayerid][pGroup] = group; PlayerInfo[giveplayerid][pGroupRank] = GetGroupMaxRanks(group); format(str, sizeof(str), "* You have given %s leadership of the %s.", PlayerOOCName(giveplayerid), GetPlayerGroupName(giveplayerid)); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "* %s has given you leadership of the %s.", PlayerOOCName(playerid), GetPlayerGroupName(giveplayerid)); SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, str); } else { return AdmErrorMsg; } return 1; } CMD:oguninvite(playerid, params[]) { // If the player is in a group, and they are co-leader, or leader, then you can uninvite. GetGroupMaxRanks -1 for co-leader+ if(PlayerInfo[playerid][pGroup] != GROUP_NONE && PlayerInfo[playerid][pGroupRank] >= GetGroupMaxRanks(PlayerInfo[playerid][pGroup])-1) { new name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /oguninvite [full name(case sensitive)]"); if(GetPlayerIDFromName(name) != INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That player is currently logged in."); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT `GroupRank`, `Group` FROM `players` WHERE `Name` = '%e' LIMIT 1", name); mysql_pquery(sqlGameConnection, query, "OnOGUninvite", "is", playerid, name); } else { SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You are not a group leader."); } return 1; } CMD:setgrouprank(playerid, params[]) { if(PlayerInfo[playerid][pAdmin] >= 2 && PlayerInfo[playerid][pGroup] != GROUP_NONE) { new toplayer, rank, grStr[128]; if(sscanf(params, "ui", toplayer, rank)) return SendClientMessage(playerid, COLOR_GREY, "/setgrouprank [player] [rank]"); // If the requested rank is greater than the group's max rank or less than 0 if(rank > GetGroupMaxRanks(PlayerInfo[toplayer][pGroup]) || rank < 0) { format(grStr, sizeof(grStr), "Rank must be between 0 and %d", GetGroupMaxRanks(PlayerInfo[toplayer][pGroup])); return SendClientMessage(playerid, COLOR_RED, grStr); } if(PlayerInfo[playerid][pGroup] != PlayerInfo[toplayer][pGroup]) return SendClientMessage(playerid, COLOR_GREY, "That player is not in your group."); PlayerInfo[toplayer][pGroupRank] = rank; format(grStr, sizeof(grStr), "You have set %s's rank to %d.", PlayerOOCName(toplayer), rank); SendClientMessage(playerid, GetGroupColour(PlayerInfo[toplayer][pGroup]), grStr); format(grStr, sizeof(grStr), "An admin has set your group rank to %d", rank); SendClientMessage(toplayer, GetGroupColour(PlayerInfo[toplayer][pGroup]), grStr); } return 1; } // For faction leader CMD:togglegroupradio(playerid) { new playerGroup = PlayerInfo[playerid][pGroup]; if(playerGroup != GROUP_NONE && PlayerInfo[playerid][pGroupRank] >= GetGroupMaxRanks(playerGroup)-1) { switch(groupRadioToggled[playerGroup]) { case 0: { groupRadioToggled[playerGroup] = 1; SendClientMessage(playerid, GetGroupColour(playerGroup), "You have turned group radio off."); } case 1: { groupRadioToggled[playerGroup] = 0; SendClientMessage(playerid, GetGroupColour(playerGroup), "You have turned group radio on."); } } } return 1; } CMD:togglegr(playerid) return cmd_togglegroupradio(playerid); // For faction leader CMD:togglegroupoocradio(playerid) { new playerGroup = PlayerInfo[playerid][pGroup]; if(playerGroup != GROUP_NONE && PlayerInfo[playerid][pGroupRank] >= GetGroupMaxRanks(playerGroup)-1) { switch(OOCgroupRadioToggled[playerGroup]) { case 0: { OOCgroupRadioToggled[playerGroup] = 1; SendClientMessage(playerid, GetGroupColour(playerGroup), "You have turned the OOC group radio off."); } case 1: { OOCgroupRadioToggled[playerGroup] = 0; SendClientMessage(playerid, GetGroupColour(playerGroup), "You have turned the OOC group radio on."); } } } return 1; } CMD:togglegor(playerid) return cmd_togglegroupoocradio(playerid); CMD:groupradio(playerid, params[]) { if(PlayerInfo[playerid][pGroup] == GROUP_NONE) return SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}Error:{FFFFFF} You are not in a Group."); // If the player's group radio is toggled, and they aren't a leader. if(groupRadioToggled[PlayerInfo[playerid][pGroup]] && PlayerInfo[playerid][pGroupRank] < GetGroupMaxRanks(PlayerInfo[playerid][pGroup])-1) return SendClientMessage(playerid, COLOR_GREY, "The group radio is disabled."); new msg[128]; if(sscanf(params, "s[128]", msg)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} (/g)roup(r)adio [message]"); if(CheckForJammer(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Radio signal has been jammed."); new str[128]; if(PlayerInfo[playerid][pGroup] == GROUP_HITMAN) format(str, sizeof(str), "** %s %s (%s): %s **", GetPlayerGroupRankName(playerid), PlayerICName(playerid), PlayerInfo[playerid][pGroupNick], msg); else format(str, sizeof(str), "** %s %s: %s **", GetPlayerGroupRankName(playerid), PlayerICName(playerid), msg); SendGroupMessage(PlayerInfo[playerid][pGroup], GetGroupColour(PlayerInfo[playerid][pGroup]), str); format(str, sizeof(str), "[GC]** %s %s: %s **", GetPlayerGroupRankName(playerid), PlayerOOCName(playerid), msg); SendShadowMsg(COLOR_GREEN, str); // For FBI | DEA bugs foreach( new i: Player ) { if(PlayerInfo[i][pWire] == 1 && !CheckForJammer(playerid) && !CheckForJammer(i)) { new Float: x[3]; GetPlayerPos(playerid, x[0], x[1], x[2]); if(IsPlayerInRangeOfPoint(i, 20.0, x[0], x[1], x[2])) { if(i == playerid) { format(str, sizeof(str), "{8D8DFF}(BUGGED){AFAFAF} %s (radio): %s", PlayerOOCName(i), msg); } else { format(str, sizeof(str), "{8D8DFF}(BUGGED){AFAFAF} %s's surroundings (radio): %s", PlayerOOCName(i), msg); } if(PlayerInfo[i][pMember] != 2) // if player isn't FBI, send to both FBI and S9 { SendBuggedMessage(COLOR_ORANGE, str); SendS9BuggedMessage(COLOR_ORANGE, str); } else SendS9BuggedMessage(COLOR_ORANGE, str); // if player is FBI, send to S9 only, this is to avoid FBI figuring out // that s9 bugged them } } } return 1; } CMD:groupoocradio(playerid, params[]) { if(PlayerInfo[playerid][pGroup] == GROUP_NONE) return SendClientMessage(playerid, COLOR_GRAD1, "{FF0000}Error:{FFFFFF} You are not in a Group."); if(OOCgroupRadioToggled[PlayerInfo[playerid][pGroup]] && PlayerInfo[playerid][pGroupRank] < GetGroupMaxRanks(PlayerInfo[playerid][pGroup])-1) return SendClientMessage(playerid, COLOR_GREY, "The group OOC radio is disabled."); new msg[128]; new str[128]; if(sscanf(params, "s[128]", msg)) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /(g)roup(o)oc(r)adio [message]"); if(PlayerInfo[playerid][pGroup] == GROUP_HITMAN) format(str, sizeof(str), "** (( %s %s (%s): %s )) **", GetPlayerGroupRankName(playerid), PlayerICName(playerid), PlayerInfo[playerid][pGroupNick], msg); else format(str, sizeof(str), "** (( %s %s: %s )) **", GetPlayerGroupRankName(playerid), PlayerICName(playerid), msg); SendGroupMessage(PlayerInfo[playerid][pGroup], GetGroupColour(PlayerInfo[playerid][pGroup]), str); format(str, sizeof(str), "[GC]** (( %s %s: %s )) **", GetPlayerGroupRankName(playerid), PlayerOOCName(playerid), msg); SendShadowMsg(COLOR_GREEN, str); return 1; } CMD:g(playerid, params[]) return cmd_groupradio(playerid, params); CMD:gr(playerid, params[]) return cmd_groupradio(playerid, params); CMD:gor(playerid, params[]) return cmd_groupoocradio(playerid, params); /* Tijuana Cartel Armory - approved by Smo and scripted by Hank */ CMD:crarmory(playerid) { if(PlayerInfo[playerid][pGroup] != GROUP_TIJUANA) return SendClientMessage(playerid, COLOR_GREY, "You're not authorized to use this command."); if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1091.78, 2121.75, 15.35)) return SendClientMessage(playerid, COLOR_GREY,"You're not at the armory of the Network."); new cartelstr[1000]; format(cartelstr, sizeof(cartelstr), "Item\tPrice"); format(cartelstr, sizeof(cartelstr), "%s\nDeagle\t$100,000\nM4\t$150,000\nAK47\t$130,000\nFull Vest\t$45,000", cartelstr); format(cartelstr, sizeof(cartelstr), "%s\nFull HP\tFree\nMP5\t$50,000\nShotgun\t$30,000", cartelstr); ShowPlayerDialog(playerid, DIALOG_TIJUANA_ARMORY, DIALOG_STYLE_TABLIST_HEADERS, "Cartel Armory", cartelstr, "Purchase", "Cancel"); return 1; } CMD:comarmory(playerid) { if(PlayerInfo[playerid][pGroup] != 6) return SendClientMessage(playerid, COLOR_GREY, "You're not authorized to use this command."); if(!IsPlayerInRangeOfPoint(playerid, 5.0, 2358.69, 922.03, 9007.61)) return SendClientMessage(playerid, COLOR_GREY,"You're not at the armory of the Network."); new cartelstr[1000]; format(cartelstr, sizeof(cartelstr), "Item\tPrice"); format(cartelstr, sizeof(cartelstr), "%s\nDeagle\t$100,000\nM4\t$150,000\nAK47\t$130,000\nFull Vest\t$45,000", cartelstr); format(cartelstr, sizeof(cartelstr), "%s\nFull HP\tFree\nMP5\t$50,000\nShotgun\t$30,000", cartelstr); ShowPlayerDialog(playerid, DIALOG_TIJUANA_ARMORY, DIALOG_STYLE_TABLIST_HEADERS, "Armory", cartelstr, "Purchase", "Cancel"); return 1; } CMD:greyarmory(playerid) { if(PlayerInfo[playerid][pGroup] != GROUP_OPG) return SendClientMessage(playerid, COLOR_GREY, "You're not authorized to use this command."); if(!IsPlayerInRangeOfPoint(playerid, 5.0, 374.68, 180.50, 1014.18)) return SendClientMessage(playerid, COLOR_GREY,"You're not at the armory of the Grey Wolves."); new cartelstr[1000]; format(cartelstr, sizeof(cartelstr), "Item\tPrice"); format(cartelstr, sizeof(cartelstr), "%s\nDeagle\t$50,000\nM4\t$85,000\nAK47\t$65,000\nFull Vest\t$15,000", cartelstr); format(cartelstr, sizeof(cartelstr), "%s\nFull HP\tFree\nMP5\t$13,000\nShotgun\t$7,000", cartelstr); ShowPlayerDialog(playerid, DIALOG_GREYWOLF_ARMORY, DIALOG_STYLE_TABLIST_HEADERS, "Armory", cartelstr, "Purchase", "Cancel"); return 1; } CMD:facistsarmory(playerid) { if(PlayerInfo[playerid][pGroup] != GROUP_FACISTS) return SendClientMessage(playerid, COLOR_GREY, "You're not authorized to use this command."); if(!IsPlayerNearHitmenHQ(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not at your headquarters."); ProofJessaIsNazi(playerid); return 1; } CMD:sarmory(playerid) { if(PlayerInfo[playerid][pGroup] != 7) return SendClientMessage(playerid, COLOR_GREY, "You're not authorized to use this command."); if(!IsPlayerInRangeOfPoint(playerid, 5.0, -2160.21, 646.55, 1057.58)) return SendClientMessage(playerid, COLOR_GREY,"Not at your HQ."); new cartelstr[1000]; format(cartelstr, sizeof(cartelstr), "Item\tPrice"); format(cartelstr, sizeof(cartelstr), "%s\nDeagle\t$50,000\nM4\t$85,000\nAK47\t$65,000\nFull Vest\t$15,000", cartelstr); format(cartelstr, sizeof(cartelstr), "%s\nFull HP\tFree\nMP5\t$13,000\nShotgun\t$7,000", cartelstr); ShowPlayerDialog(playerid, DIALOG_GREYWOLF_ARMORY, DIALOG_STYLE_TABLIST_HEADERS, "Armory", cartelstr, "Purchase", "Cancel"); return 1; } CMD:bratvaarmory(playerid) { if(PlayerInfo[playerid][pGroup] != GROUP_BRATVA) return SendClientMessage(playerid, COLOR_GREY, "You're not authorized to use this command."); if(!IsPlayerInRangeOfPoint(playerid, 5.0, -2160.21, 646.55, 1057.58)) return SendClientMessage(playerid, COLOR_GREY,"Not at your HQ."); new cartelstr[1000]; format(cartelstr, sizeof(cartelstr), "Item\tPrice"); format(cartelstr, sizeof(cartelstr), "%s\nDeagle\t$50,000\nM4\t$85,000\nAK47\t$65,000\nFull Vest\t$15,000", cartelstr); format(cartelstr, sizeof(cartelstr), "%s\nFull HP\tFree\nMP5\t$13,000\nShotgun\t$7,000", cartelstr); ShowPlayerDialog(playerid, DIALOG_GREYWOLF_ARMORY, DIALOG_STYLE_TABLIST_HEADERS, "Armory", cartelstr, "Purchase", "Cancel"); return 1; } CMD:sethanickname(playerid, params[]) { if(PlayerInfo[playerid][pGroup] != GROUP_HITMAN) return AdmErrorMsg; new targetid, name[13]; if(sscanf(params, "us[13]", targetid, name)) return SendClientMessage(playerid, -1, "{00BFFF}Usage:{FFFFFF} /sethanickname [playerid/PartOfName] [nickname] (12 characters max)"); if(!IsPlayerConnected(targetid) || targetid == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_GREY, "Invalid player."); if(PlayerInfo[targetid][pGroup] != GROUP_HITMAN) return SendClientMessage(playerid, COLOR_GREY, "That player is not in your group."); format(PlayerInfo[targetid][pGroupNick], 12, "%s", name); new msg[70]; format(msg, sizeof(msg), "You have set %s's nickname to %s.", PlayerOOCName(targetid), PlayerInfo[targetid][pGroupNick]); SendClientMessage(playerid, GetGroupColour(PlayerInfo[playerid][pGroup]), msg); format(msg, sizeof(msg), "%s has set your nickname to %s", PlayerOOCName(playerid), PlayerInfo[targetid][pGroupNick]); SendClientMessage(targetid, GetGroupColour(PlayerInfo[playerid][pGroup]), msg); return 1; } //===================================[Drone]=================================== #include "../gamemodes/inc/drone.inc" //===================================[Property]=================================== #include "..\gamemodes\inc\Property\houses.inc" #include "..\gamemodes\inc\Property\businesses.inc" #include "..\gamemodes\inc\Property\garages.inc" #include "..\gamemodes\inc\Property\gates.inc" #include "..\gamemodes\inc\Property\bars.inc" #include "..\gamemodes\inc\Property\inactivechecker.inc" //==============================[ Fire system ]================================= #include "../gamemodes/inc/fire_system/internal.inc" //fire system #include "../gamemodes/inc/effects/blood.inc" //==============================[ Furniture system ]============================ #include "../gamemodes/inc/furniture_system.inc" #include "../gamemodes/inc/objectviewer.inc" //==============================[ Spectating system ]=========================== #include "../gamemodes/inc/Player/spectextdraws.inc" //==============================[ Custom Nametag system ]=========================== //#include "../gamemodes/inc/CustomNametag.inc" //Clothing store new listItemClothes[MAX_PLAYERS]; //Fuel/Speedo (iGetty) new PlayerText:FuelTextdraw[MAX_PLAYERS], PlayerText:SpeedoTextdraw[MAX_PLAYERS], bool:ToggedSpeedo[MAX_PLAYERS], bool:ToggedFuel[MAX_PLAYERS], bool:CurrentSpeedUnitMPH[MAX_PLAYERS]; new PlayerText:VHealthTextDraw[MAX_PLAYERS], bool:ToggedVHealth[MAX_PLAYERS]; //motd new Text:motd, hidingMOTDTimer[MAX_PLAYERS]; //event notice new Text:eventcup_icon, Text:nexteventin, Text:eventfunds, Text:howtofund, displayingEventHUD[MAX_PLAYERS]; //event variables new isNextEvent, eventCash, eventTime, largestFund, largestFunder[MAX_PLAYER_NAME]; new viewingGuide[MAX_PLAYERS]; //============================================================================== new CardNames[53][0] = { "No card", "Ace of Clubs", "2 of Clubs", "3 of Clubs", "4 of Clubs", "5 of Clubs", "6 of Clubs", "7 of Clubs", "8 of Clubs", "9 of Clubs", "10 of Clubs", "Jack of Clubs", "Queen of Clubs", "King of Clubs", "Ace of Diamonds", "2 of Diamonds", "3 of Diamonds", "4 of Diamonds", "5 of Diamonds", "6 of Diamonds", "7 of Diamonds", "8 of Diamonds", "9 of Diamonds", "10 of Diamonds", "Jack of Diamonds", "Queen of Diamonds", "King of Diamonds", "Ace of Hearts", "2 of Hearts", "3 of Hearts", "4 of Hearts", "5 of Hearts", "6 of Hearts", "7 of Hearts", "8 of Hearts", "9 of Hearts", "10 of Hearts", "Jack of Hearts", "Queen of Hearts", "King of Hearts", "Ace of Spades", "2 of Spades", "3 of Spades", "4 of Spades", "5 of Spades", "6 of Spades", "7 of Spades", "8 of Spades", "9 of Spades", "10 of Spades", "Jack of Spades", "Queen of Spades", "King of Spades" }; //=============================[Cards]========================================== new Cards[MAX_PLAYERS][5], CardsHave[MAX_PLAYERS], Deck[MAX_PLAYERS][52], CardsDealt[MAX_PLAYERS]; //=============================[Pickups]======================================== new iPaintball, iDrughouse, iMget1, iMget2, iCrateGet, iClothes, iDrugfactory, iGuide; new iArrest1, iArrest2, iDeliver, iDeliver2, iSprunk, iTikiEntrance; //iCrackLab; //==============================[HQ]============================================ new iBM, iVIP, iChurch, iArrest3; new iTiki, VoodooSpell[MAX_PLAYERS]; //==================================[VIP Cars]================================== new VipCars[31]; //==================================[DMV Cars]================================== new DMVCar[3]; //================================[Jobs]======================================== new iTraining, clubFunds, para, dildo, poolcue; new iDetective, iLawyer, iDealer, iMechanic, iGarbageman, iProductDealer, iProduct, iBodyguard, iArms, iPizza, iArms2, iBoxer, iTaxi, iTaxi1, iSmuggler, iMiner, iFarmer; //============================[Weed System]===================================== enum weedInfo { WeedPlanter[MAX_PLAYER_NAME], Float:WeedX, Float:WeedY, Float:WeedZ, WeedTime, WeedPlanted, WeedGrams, }; new WeedInfo[MAX_WEED][weedInfo], weedObject[MAX_WEED]; new vehName[][] = { "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", "Stratium", "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", "SAPD Car", "SFPD Car", "LVPD Car", "Police Rancher", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage", "Luggage", "Stairs", "Boxville", "Tiller", "Utility Trailer" }; new PayDayAccount[MAX_PLAYERS]; //============================[Weed Pos]======================================== enum WeedPickPos { Float:PosX, Float:PosY, Float:PosZ } new WeedPickPosition[MAX_PLAYERS][WeedPickPos]; ///////////////////////////////////////////////////////////////////////////////// //===========================[FMD Rank names]================================= static rankNames_FMD[][18] = { "Trainee", "First Responder", "EMT-A/B", "Paramedic", "Lieutenant", "District Chief", "Chief" }; Float:GetDistanceBetweenPlayers(p1, p2) { new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2; if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2)) { return -1.00; } GetPlayerPos(p1, x1, y1, z1); GetPlayerPos(p2, x2, y2, z2); return floatsqroot(floatpower(floatabs(floatsub(x2, x1)), 2) +floatpower(floatabs(floatsub(y2, y1)), 2) +floatpower(floatabs(floatsub(z2, z1)), 2)); } //=========================[Hospital Spawns]===================================== new Float:HospitalSpawns[2][4] = { {1176.6326,-1325.5374,14.0309,270.0000}, {2034.1111,-1404.4347,17.5000,180.0000} //{854.5510,-604.0355,18.4219,359.1621} //dillimore }; //=========================[LS Jail Spawns]====================================== new Float:LSJailSpawns[6][4] = { {-1120.93, -941.22, 29999.24, 0.0}, {-1120.93, -945.25, 29999.24, 0.0}, {-1120.93, -948.50, 29999.24, 0.0}, {-1110.57, -941.22, 29999.24, 0.0}, {-1110.57, -945.25, 29999.24, 0.0}, {-1110.57, -948.50, 29999.24, 0.0} }; //=======================[Prison Spawns]======================================== new Float:PrisonSpawns[12][4] = { {1772.8984, -1581.8361, 1636.9736, 0.0000}, {1779.1259, -1581.6355, 1636.9736, 0.0000}, {1784.5406, -1581.5651, 1636.9736, 0.0000}, {1790.4741, -1581.5254, 1636.9736, 0.0000}, {1795.7205, -1581.5287, 1636.9736, 0.0000}, {1800.6487, -1581.1351, 1636.9736, 0.0000}, {1800.5258, -1557.4760, 1636.9736, 180.0000}, {1796.1321, -1557.8774, 1636.9736, 180.0000}, {1790.5198, -1558.0527, 1636.9736, 180.0000}, {1784.5649, -1557.9910, 1636.9736, 180.0000}, {1779.5862, -1557.9115, 1636.9736, 180.0000}, {1773.6440, -1557.8591, 1636.9736, 180.0000} }; //SF Prison Spawns new Float:SFPrisonSpawns[12][4] = { {1930.9679, 1844.5880, 27.5159, 87.2528}, {1931.2271, 1847.3126, 27.5159, 87.2528}, {1931.3435, 1850.6062, 27.5159, 96.6529}, {1931.6733, 1853.2310, 27.5159, 95.3995}, {1931.3214, 1856.8075, 27.5159, 79.7326}, {1931.0250, 1859.8428, 27.5159, 82.8660}, {1906.4645, 1860.0432, 27.5159, 259.2744}, {1906.5186, 1857.0646, 27.5159, 270.8679}, {1906.7711, 1853.8832, 27.5159, 263.6611}, {1906.5165, 1850.8103, 27.5159, 258.6478}, {1906.1536, 1847.0586, 27.5159, 259.2745}, {1906.4305, 1844.4436, 27.5159, 268.3613} }; //prison ambient intercom sounds new prisonAmbientSounds[14] = { 13622, 13623, 13624, 13625, 13626, 13627, 13628, 13629, 13630, 13631, 13632, 13633, 13634, 13635 }; //==========================[Box Stats]========================================= enum pBoxingStats { TitelName[128], TitelWins, TitelLoses, }; new Titel[pBoxingStats]; //==========================[Spike Info]======================================== enum sInfo { sCreated, Float:sX, Float:sY, Float:sZ, sObject, }; new SpikeInfo[MAX_SPIKESTRIPS][sInfo]; //=========================================================================== enum pCrime { pBplayer[32], pAccusing[32], pAccusedof[32], pVictim[32] }; new PlayerCrime[MAX_PLAYERS][pCrime]; //===========================[Tiki System]====================================== enum tInfo // Tiki { tCreated, Float:tX, Float:tY, Float:tZ, tPickup, }; new TikiInfo[MAX_TIKIS][tInfo]; // Tiki //============================[Family System]=================================== enum fInfo { FamilyTaken, FamilyName[24], FamilyMOTD[64], FamilyLeader[MAX_PLAYER_NAME], FamilyBank, FamilyCash, FamilySafe, FamilySafeWorld, Float:FamilySafePos[3], FamilyCocaine, FamilyMeth, FamilyCannabis, FamilyPromethazine, FamilyCodeine, FamilyLean, FamilyPot, FamilyCrack, FamilyMats, FamilyMembers, FamilySkins, Family4s, FamilySkin1, FamilySkin2, FamilySkin3, FamilySkin4, FamilySkin5, FamilySkin6, FamilySkin7, FamilySkin8, PickupID, FStrikes, Colt45, Shotgun, MP5, AK47, M4, SPAS12, Rifle, Sniper, Deagle, UZI, TEC9, Tagsplaced, FamilyLeaderHide, fXP }; new FamilyInfo[20][fInfo]; new FamilyRank[20][6][24]; //============================[Fishing System]================================== enum pFishing { pFish1[20], pFish2[20], pFish3[20], pFish4[20], pFish5[20], pWeight1, pWeight2, pWeight3, pWeight4, pWeight5, pFid1, pFid2, pFid3, pFid4, pFid5, pLastFish, }; new Fishes[MAX_PLAYERS][pFishing]; //===============================[IRC Info]===================================== enum iInfo { iAdmin[128], iMOTD[128], iPassword[128], iNeedPass, iLock, iPlayers, }; new IRCInfo[10][iInfo]; //===============================[Roadblocks]=================================== enum RBInfo { RBCreated, Float:RBX, Float:RBY, Float:RBZ, RBObject, }; new RoadBlockInfo[MAX_ROADBLOCKS][RBInfo]; //===============================[Payphone]=================================== enum pPhone { Float: pPhoneX, Float: pPhoneY, Float: pPhoneZ, pPhoneInt, pPhoneVW, inUse }; //currently static payphones new payPhone[19][pPhone] = { { 1178.21, -1329.16, 13.78, 0, 0, 0 }, { 1102.16, -1456.01, 15.49, 0, 0, 0 }, { 1497.12, -1667.58, 13.74, 0, 0, 0 }, { 1890.20, -1947.59, 13.25, 0, 0, 0 }, { 2265.06, -1721.87, 13.22, 0, 0, 0 }, { 1501.98, -1060.08, 24.71, 0, 0, 0 }, { 1500.40, -1060.11, 24.71, 0, 0, 0 }, { 1770.37, -1191.11, 23.54, 0, 0, 0 }, { 2352.22, -1538.29, 23.67, 0, 0, 0 }, { -38.68, 1186.27, 19.06, 0, 0, 0 }, { 1536.26, -1662.37, 13.16, 0, 0, 0 }, { 1535.85, -1661.89, 13.16, 0, 0, 0 }, { 1536.27, -1661.62, 13.16, 0, 0, 0 }, { 1536.77, -1661.96, 13.16, 0, 0, 0 }, { 1722.26, -1721.54, 13.18, 0, 0, 0 }, { 1722.00, -1721.09, 13.18, 0, 0, 0 }, { 1722.20, -1720.72, 13.18, 0, 0, 0 }, { 1722.71, -1721.10, 13.18, 0, 0, 0 }, { 2731.1685, -2460.1809, 1299.4523, 50, 50, 0} }; // probly make a dynamic system in the future new usePayphone[MAX_PLAYERS]; //Soda system/Soda machine enum sMachine { Float: sMachineX, Float: sMachineY, Float: sMachineZ, Float: sMachineRX, Float: sMachineRY, Float: sMachineRZ, sMachineInt, sMachineVW }; new SodaMachines[][sMachine] = { { 2689.3223, -2494.6492, 1294.6591, 0.0, 0.0, 0.0, 1, 0 } }; //Weapons new Float:ObjCoords[100][3]; new object[100]; new wObjectID[100][2]; //Kevlar new Float:kObjCoords[100][3]; new kobject[100]; new Float:kObjectVal[100][2]; // Pot new Float:pObjCoords[100][3]; new pobject[100]; new pObjectID[100][2]; // Crack new Float:cObjCoords[100][3]; new cobject[100]; new cObjectID[100][2]; // Mats new Float:mObjCoords[100][3]; new mobject[100]; new mObjectID[100][2]; // The objects new GunObjects[47][0] = // (c) gimini { {0},// Emty {331},// Brass Knuckles {333},// Golf Club {334},// Nitestick {335},// Knife {336},// Baseball Bat {337},// Showel {338},// Pool Cue {339},// Katana {341},// Chainsaw {321},// Purple Dildo {322},// Small White Dildo {323},// Long White Dildo {324},// Vibrator {325},// Flowers {326},// Cane {342},// Grenade {343},// Tear Gas {344},// Molotov {0}, {0}, {0}, {346},// Glock {347},// Silenced Colt {348},// Desert Eagle {349},// Shotgun {350},// Sawn Off {351},// Combat Shotgun {352},// Micro UZI {353},// MP5 {355},// AK47 {356},// M4 {372},// Tec9 {357},// Rifle {358},// Sniper Rifle {359},// Rocket Launcher {360},// HS Rocket Launcher {361},// Flamethrower {362},// Minigun {363},// Detonator {364},// Detonator Button {365},// Spraycan {366},// Fire Extinguisher {367},// Camera {368},// Nightvision {368},// Infrared Vision {371}// Parachute }; public DeleteGun(objectid, f) { if(object[f]) { DestroyDynamicObjectEx(objectid); } ObjCoords[f][0] = 0.0; ObjCoords[f][1] = 0.0; ObjCoords[f][2] = 0.0; wObjectID[f][0] = 0; object[f] = 0; return 1; } public DeleteKevlar(objectid, f) { if(kobject[f]) { DestroyDynamicObjectEx(objectid); } kObjCoords[f][0] = 0.0; kObjCoords[f][1] = 0.0; kObjCoords[f][2] = 0.0; kObjectVal[f][0] = 0.0; kobject[f] = 0; } public DeletePot(objectid, f) { if(pobject[f]) { DestroyDynamicObjectEx(objectid); } pObjCoords[f][0] = 0.0; pObjCoords[f][1] = 0.0; pObjCoords[f][2] = 0.0; pObjectID[f][0] = 0; pobject[f] = 0; return 1; } public DeleteCrack(objectid, f) { if(cobject[f]) { DestroyDynamicObjectEx(objectid); } cObjCoords[f][0] = 0.0; cObjCoords[f][1] = 0.0; cObjCoords[f][2] = 0.0; cObjectID[f][0] = 0; cobject[f] = 0; return 1; } public DeleteMats(objectid, f) { if(mobject[f]) { DestroyDynamicObjectEx(objectid); } mObjCoords[f][0] = 0.0; mObjCoords[f][1] = 0.0; mObjCoords[f][2] = 0.0; mObjectID[f][0] = 0; mobject[f] = 0; return 1; } #include "../gamemodes/inc/vehicles/core.inc" //player owned vehicles #include "../gamemodes/inc/core/accounts.inc" //passwords & account security #include "../gamemodes/inc/jobs/jobs_core.inc" #include "../gamemodes/inc/units.inc" #include "../gamemodes/inc/Player/deaths.inc" #include "../gamemodes/inc/missilelaunchers.inc" /*#if UseDiscordBot 1 #include "../gamemodes/inc/discord/init.inc" #endif*/ //=====================[ Destroy vehicle fix by Jacob ]========================= stock OnDestroyVehicle(vehicleid) //is automatically called when using DestroyVehicle() //hook DestroyVehicle(vehicleid) { if(!IsValidVehicle(vehicleid)) return 0; // Stop processing this function instantly and not hook into any other hooks and return 0 in the base function // SetVehicleLockState( vehicleid, 0 ); //reset the car's lock new dynveh = GetDynamicVehicleID(vehicleid); if(dynveh > 0) //is a dynamic vehicle { sVehicleInfo[dynveh][v_id] = INVALID_VEHICLE_ID; sVehicleInfo[dynveh][v_lock] = 0; } TrunkInfo[vehicleid][cFoodtray] = 0; if(Neon[vehicleid]) { DestroyDynamicObjectEx(Neon[vehicleid]); Neon[vehicleid] = 0; } //destroy neons if(Neon2[vehicleid]) { DestroyDynamicObjectEx(Neon2[vehicleid]); Neon2[vehicleid] = 0; } if(Neon3[vehicleid]) { DestroyDynamicObjectEx(Neon3[vehicleid]); Neon3[vehicleid] = 0; } if(Neon4[vehicleid]) { DestroyDynamicObjectEx(Neon4[vehicleid]); Neon4[vehicleid] = 0; } if(TaxiSign[vehicleid]) { DestroyDynamicObjectEx(TaxiSign[vehicleid]); TaxiSign[vehicleid] = 0; } //destroy taxi sign Delete3DTextLabel(UnitsCallSign[vehicleid]); if(SirenObject[vehicleid]) //destroy siren { DestroyDynamicObjectEx(SirenObject[vehicleid]); Siren[vehicleid] = 0; SirenObject[vehicleid] = 0; } //vehicles.inc for( new i; i < GetPlayerPoolSize(); i++ ) { for( new s; s < PlayerInfo[i][pMaxCarSlots]; s++ ) { if( vehicleid == PlayerVehicles[i][s][pvID] ) { destroyPlayerVehicle( i, s ); return 1; } } } VehicleInfo[vehicleid][radioStation] = 0; stopVehicleStreamForAll(vehicleid); DestroyVehicle(vehicleid); //destroying the vehicle return 1; } #if defined _ALS_DestroyVehicle #undef DestroyVehicle #else #define _ALS_DestroyVehicle #endif #define DestroyVehicle OnDestroyVehicle stock LoadAutoMessages() { if(dini_Exists("automsg.ini")) { format(autoMessages[1], 128, "%s", dini_Get("automsg.ini", "motd1")); format(autoMessages[2], 128, "%s", dini_Get("automsg.ini", "motd2")); format(autoMessages[3], 128, "%s", dini_Get("automsg.ini", "motd3")); format(autoMessages[4], 128, "%s", dini_Get("automsg.ini", "motd4")); format(autoMessages[5], 128, "%s", dini_Get("automsg.ini", "motd5")); messagePos = 1; } else { autoMessages[1] = "None"; autoMessages[2] = "None"; autoMessages[3] = "None"; autoMessages[4] = "None"; autoMessages[5] = "None"; dini_Create("automsg.ini"); dini_Set("automsg.ini", "motd1", autoMessages[1]); dini_Set("automsg.ini", "motd2", autoMessages[2]); dini_Set("automsg.ini", "motd3", autoMessages[3]); dini_Set("automsg.ini", "motd4", autoMessages[4]); dini_Set("automsg.ini", "motd5", autoMessages[5]); messagePos = 1; } return 1; } stock showNewbieTipMessage(playerid, number) { if(!gPlayerLogged[playerid]) return; if(!displayedTip[playerid][number]) { displayCenterHUDInfo(playerid, newbieTips[number], 8); //display for 8 seconds displayedTip[playerid][number] = 1; } } //============================================================================== main() { print(" "); print(" "); print("PRP"); print("______________"); print(" "); } //============================================================================== SearchingHits(playerid) { new hits = 0, dialogstr[50000]; foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pHeadValue] > 0) { if(!(PlayerInfo[i][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] == 0)) { format(dialogstr, sizeof(dialogstr), "%s\n{FFFFFF}(ID %d) Name: %s Price: $%s Contracted By: %s (%s)", dialogstr, i, PlayerOOCName(i), AddThousandsSeparators(PlayerInfo[i][pHeadValue]), PlayerInfo[i][pContractBy], GetPlayerFactionName(i)); hits++; } } } } if(hits != 0) { ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "{FF0000}Contracts Available", dialogstr, "Close", ""); if(PlayerInfo[playerid][pGroup] == GROUP_HITMAN) { if(PlayerInfo[playerid][pGroupRank] != 0) { SendClientMessage(playerid, COLOR_YELLOW, "Use /givemehit to assign a contract to yourself."); } SendClientMessage(playerid, COLOR_YELLOW, "Ask an R4+ to assign you a hit with /givehit."); } } else return SendClientMessage(playerid, COLOR_GREY, "There are currently no hits available."); return 1; } //============================================================================== stock ApplyAnimationEx(playerid, animlib[], animname[], Float:Speed, looping, lockx, locky, lockz, lp, force =0) { if((pDeathState[playerid] == PLAYER_STATE_REVIVE || PlayerCuffed[playerid] > 0 || PlayerTazed[playerid] > 0) && force == 0) return SendClientMessage(playerid, COLOR_GREY, "You can't do that at this time."); if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You can't use this whilst inside of a vehicle."); ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp, 1); return 1; } stock LoopingAnim(playerid, animlib[], animname[], Float:Speed, looping, lockx, locky, lockz, lp) { if(pDeathState[playerid] == PLAYER_STATE_REVIVE || PlayerCuffed[playerid] > 0 || PlayerTazed[playerid] > 0) return SendClientMessage(playerid, COLOR_GREY, "You can't do that at this time."); if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You can't use this whilst inside of a vehicle."); ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp, 1); displayCenterHUDInfo(playerid, "~r~~k~~PED_SPRINT~ ~w~to stop the animation", 8); //display for 8 seconds gPlayerUsingLoopingAnim[playerid] = 1; return 1; } stock LoopingWalk(playerid, lib[], anim[], Float:one, two, three, four, five, six, seven = 0) { ApplyAnimation(playerid, lib, anim, one, two, three, four, five, six, seven); return 1; } StopLoopingAnim(playerid) { gPlayerUsingLoopingAnim[playerid] = 0; ApplyAnimationEx(playerid, "CARRY", "crry_prtial", 4.0, 0, 0, 0, 0, 0); } //============================================================================== stock PreloadAnimLib(playerid, animlib[]) { if(pDeathState[playerid] == PLAYER_STATE_REVIVE || PlayerCuffed[playerid] > 0 || PlayerTazed[playerid] > 0) return SendClientMessage(playerid, COLOR_GREY, "You can't do that at this time."); ApplyAnimation(playerid, animlib, "null", 0.0, 0, 0, 0, 0, 0); } stock PreloadAnims(playerid) //calgon { if(!IsPlayerNPC(playerid)) { ApplyAnimation(playerid, "AIRPORT", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "Attractors", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BAR", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BASEBALL", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BD_FIRE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BEACH", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "benchpress", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BF_injection", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BIKED", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BIKEH", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BIKELEAP", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BIKES", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BIKEV", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BIKE_DBZ", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BLOWJOBZ", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BMX", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BOMBER", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BOX", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BSKTBALL", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BUDDY", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "BUS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CAMERA", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CAR", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CARRY", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CAR_CHAT", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CASINO", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CHAINSAW", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CHOPPA", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CLOTHES", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "COACH", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "COLT45", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "COP_AMBIENT", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "COP_DVBYZ", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CRACK", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "CRIB", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "DAM_JUMP", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "DANCING", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "DEALER", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "DILDO", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "DODGE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "DOZER", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "DRIVEBYS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FAT", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FIGHT_B", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FIGHT_C", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FIGHT_D", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FIGHT_E", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FINALE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FINALE2", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FLAME", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "Flowers", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "FOOD", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "Freeweights", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "GANGS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "GHANDS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "GHETTO_DB", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "goggles", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "GRAFFITI", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "GRAVEYARD", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "GRENADE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "GYMNASIUM", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "HAIRCUTS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "HEIST9", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "INT_HOUSE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "INT_OFFICE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "INT_SHOP", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "JST_BUISNESS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "KART", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "KISSING", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "KNIFE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "LOWRIDER", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "MD_CHASE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "MD_END", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "MEDIC", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "MISC", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "MTB", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "MUSCULAR", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "NEVADA", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "ON_LOOKERS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "OTB", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "PARACHUTE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "PARK", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "PAULNMAC", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "ped", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "PLAYER_DVBYS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "PLAYIDLES", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "POLICE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "POOL", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "POOR", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "PYTHON", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "QUAD", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "QUAD_DBZ", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "RAPPING", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "RIFLE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "RIOT", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "ROB_BANK", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "RUSTLER", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "RYDER", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SCRATCHING", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SHAMAL", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SHOP", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SHOTGUN", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SILENCED", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SKATE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SMOKING", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SNIPER", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SPRAYCAN", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "STRIP", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SUNBATHE", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SWAT", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SWEET", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SWIM", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "SWORD", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "TANK", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "TATTOOS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "TEC", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "TRAIN", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "TRUCK", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "UZI", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "VAN", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "VENDING", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "VORTEX", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "WAYFARER", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "WEAPONS", "null", 0.0, 0, 0, 0, 0, 0); ApplyAnimation(playerid, "WUZI", "null", 0.0, 0, 0, 0, 0, 0); } return 1; } //============================================================================== stock IsKeyJustDown(key, newkeys, oldkeys) { if((newkeys & key) && !(oldkeys & key)) { return 1; } return 0; } //============================================================================== OnePlayAnim(playerid, animlib[], animname[], Float:Speed, looping, lockx, locky, lockz, lp) { if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You can't use this whilst inside of a vehicle."); if(pDeathState[playerid] == PLAYER_STATE_REVIVE || PlayerCuffed[playerid] > 0 || PlayerTazed[playerid] > 0) return SendClientMessage(playerid, COLOR_GREY, "You can't do that at this time."); ApplyAnimation(playerid, animlib, animname, Speed, looping, lockx, locky, lockz, lp); return 1; } //============================================================================== public OnPlayerClickPlayer(playerid, clickedplayerid, source) { if(source == CLICK_SOURCE_SCOREBOARD) { if(PlayerInfo[playerid][pAdmin] >= 2) { new str[1024]; if(playerid == clickedplayerid) return unspec(playerid); if(!gPlayerLogged[clickedplayerid]) return SendClientMessage(playerid, COLOR_GRAD2, "That player hasn't spawned yet."); if(GetPlayerState(clickedplayerid) == PLAYER_STATE_SPECTATING) return SendClientMessage(playerid, COLOR_GRAD2, "That player is spectating someone."); if(Spectated[playerid]) //if i'm being spectated { foreach( new i: Player ) { if(SpectatingID[i] == playerid) { if(GetPlayerState(i) == PLAYER_STATE_SPECTATING) //double check they are spectating { unspec(i); format(str, sizeof(str), "AdmCMD: %s is no longer spectating.", PlayerOOCName(playerid)); SendSpectatorsMessage(7378, COLOR_YELLOW, str); SendSpectatorsMessage(7619, COLOR_YELLOW, str); } } } } spectate(playerid, clickedplayerid); format(str, sizeof(str), "AdmCMD: %s is spectating %s.", PlayerOOCName(playerid), PlayerOOCName(clickedplayerid)); SendSpectatorsMessage(7378, COLOR_YELLOW, str); SendSpectatorsMessage(7619, COLOR_YELLOW, str); return 1; } return 1; } return 1; } //============================================================================== //=============================[MESSAGES]======================================= SendEventHelperMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pEventModd] == 1 || PlayerEventMod[i] == 1) { SendClientMessage(i, color, string2); } } } } SendHelperMessage(color, string2[], type) // made type. 0 - send only to helpers, 1 - to both admins and helpers. this is so admins can see newbie warns, mutes and such but still not see /hc (since they both use SendHelperMessage). { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(type == 1) { if(PlayerInfo[i][pHelper] >= 1 || PlayerInfo[i][pAdmin] >= 2) { if(!gHelperCh[i] || PlayerInfo[i][pAdmin] >= 2) { SendClientMessage(i, color, string2); } } } else { if(PlayerInfo[i][pHelper] >= 1) { if(!gHelperCh[i]) { SendClientMessage(i, color, string2); } } } } } } SendDeveloperMessage(color, string2[]) { foreach( new i: Player ) { if(PlayerInfo[i][pDev] >= 1 && toggedDevChat[i] != true) { SendClientMessage(i, color, string2); } } } SendMapperMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMapper] >= 1 && mcTog[i] == false) { SendClientMessage(i, color, string2); } } } } SendTesterMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pTester] >= 1) { if(!gTesterCh[i]) { SendClientMessage(i, color, string2); } } } } } new FamedChatTog[MAX_PLAYERS] = 0; SendFamedMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pFamed] >= 1) { if(FamedChatTog[i] == 0) { SendClientMessage(i, color, string2); } } } } } new OldSchoolChatTog[MAX_PLAYERS] = {0, ...}; SendOldSchoolMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pOldSchool] >= 1) { if(OldSchoolChatTog[i] == 0) { SendClientMessage(i, color, string2); } } } } } SendVIPMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pDonateRank] >= 1) { if(VIPChatTog[i] == 0) { SendClientMessage(i, color, string2); } } } } } //============================================================================== //============================================================================== StartCar(vehicleid) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective); return 1; } //============================================================================== // This timer is only used for vehicles created with /veh which are temporary vehicles // Timer:KillCar(vehicleid) { if(!IsValidVehicle(vehicleid)) {gDestroyVehicle[vehicleid] = 0; return 1;} engineOn[vehicleid] = 0; windowsDown[vehicleid] = false; SetVehicleParamsCarWindows(vehicleid, 1, 1, 1, 1); playerDisabledEngine[vehicleid] = 0; DestroyVehicle(vehicleid); // destroy vehicle gDestroyVehicle[vehicleid] = 0; return 1; } //============================================================================== public CheckHacks2(playerid) { TogglePlayerControllable(playerid, true); GetPlayerPos(playerid, PlayerInfo[playerid][pSPos_x], PlayerInfo[playerid][pSPos_y], PlayerInfo[playerid][pSPos_z]); PlayerInfo[playerid][pInt] = GetPlayerInterior(playerid); PlayerInfo[playerid][pVirtualWorld] = GetPlayerVirtualWorld(playerid); GetPlayerHealth(playerid, OldHealth[playerid]); GetPlayerArmour(playerid, OldArmour[playerid]); SetPlayerPos(playerid, 2632.5059, 2832.3647, 127.5781); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, playerid +10); SetPlayerArmour(playerid, 0); SetPlayerHealth(playerid, 100); SetPlayerArmour(playerid, 0); CreateExplosion(2632.5059, 2832.3647, 128.5781, 6, 10.0); //CreateExplosion(280.4137,-134.6537,1004.0625, 6, 10.0); return 1; } //============================================================================== Timer:DoneCheckHacks2(playerid, hacker) { new str[128]; if(PlayerCuffed[hacker] != 0 || PlayerTied[hacker] != 0 || PlayerFrozen[hacker] != 0) { TogglePlayerControllable(hacker, 0); } new Float:newhealth, Float:newarmor; GetPlayerHealth(hacker, newhealth); GetPlayerArmour(hacker, newarmor); SetPlayerPos(hacker, PlayerInfo[hacker][pSPos_x], PlayerInfo[hacker][pSPos_y], PlayerInfo[hacker][pSPos_z]); SetPlayerInterior(hacker, PlayerInfo[hacker][pInt]); SetPlayerVirtualWorld(hacker, PlayerInfo[hacker][pVirtualWorld]); SetPlayerHealth(hacker, OldHealth[hacker]); SetPlayerArmour(hacker, OldArmour[hacker]); new ping = GetPlayerPing(hacker); if(newhealth <= 35 && newarmor == 0) { format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s checked %s for health hacks, results: {00FF00}NOT A HACKER{FFFFFF}, Ping: %d.", PlayerOOCName(playerid), PlayerOOCName(hacker), ping); } else { format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s checked %s for health hacks, results: {F00000}HACKER{FFFFFF}, Ping: %d.", PlayerOOCName(playerid), PlayerOOCName(hacker), ping); } if(PlayerPaused[hacker] == 1) format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s checked %s for health hacks, results: {FFFF00}PAUSED{FFFFFF}.", PlayerOOCName(playerid), PlayerOOCName(hacker)); ABroadCast(COLOR_WHITE, str, 1); return 1; } //============================================================================== Encrypt(string2[]) { for(new x =0; x < strlen(string2); x++) { string2[x] += (3 ^x) * (x % 15); if(string2[x] > (0xff)) { string2[x] -= 256; } } return 1; } public OnPlayerChangeWeapon(playerid, oldweapon, newweapon) { if(hasFlashlight[playerid]) { if(newweapon == 24 || newweapon == 31 || newweapon == WEAPON_SHOTGUN) { SetPlayerAttachedObject(playerid, FLASHLIGHT_SLOT1, 18656, 6, 0.25, -0.0155, 0.16, 86.5, -185, 86.5, 0.03, 0.03, 0.03); SetPlayerAttachedObject(playerid, FLASHLIGHT_SLOT2, 18641, 6, 0.2, 0.01, 0.16, 90, -95, 90, 1, 1, 1); } else { SetPlayerAttachedObject(playerid, FLASHLIGHT_SLOT1, 18656, 5, 0.1, 0.038, -0.1, -90, 180, 0, 0.03, 0.03, 0.03); SetPlayerAttachedObject(playerid, FLASHLIGHT_SLOT2, 18641, 5, 0.1, 0.02, -0.05, 0, 0, 0, 1, 1, 1); } } if(PlayerBoxing[playerid] > 0)// in boxing ring prevent guns { SetPlayerArmedWeapon(playerid, 0); } if(playerHoldingTazer[playerid] == 1) { if(!IsPlayerInAnyVehicle(playerid)) { SetPlayerArmedWeapon(playerid, 23); } else { SetPlayerArmedWeapon(playerid, 0); } } if(playerHoldingTazer[playerid] == 2) { SetPlayerArmedWeapon(playerid, 0); } if(HasARapidResKit[playerid] == 1 && RapidResKitActive[playerid] == 1) { SetPlayerArmedWeapon(playerid, 0); } if(PlayerHasRod[playerid] == 1) { SetPlayerArmedWeapon(playerid, 0); } if(newweapon == PlayerInfo[playerid][pGun12]) { if(BombID[playerid] != -1) { HoldingDetonator[playerid] = 1; } } else { HoldingDetonator[playerid] = 0; } if(PlayerInfo[playerid][pAdmin] < 2) { new WeaponName[65]; if(newweapon > 0) { if( (newweapon == 4 && PlayerInfo[playerid][pGroup] != GROUP_HITMAN) || //knife newweapon == 16 || //grenades newweapon == 18 || //molotovs (newweapon == 17 && !IsACop(playerid)) || //teargas newweapon == 26 || //sawn off newweapon == 28 || //uzi newweapon == 32 || //tec9 newweapon == 35 || //rpg newweapon == 36 || //heat seeker newweapon == 37 || //flame thrower newweapon == 38 && GetVehicleModel(GetPlayerVehicleID(playerid)) != 425 ||//minigun newweapon == 39 || //satchels (newweapon == 40 && PlayerInfo[playerid][pGroup] != GROUP_HITMAN) || //detonators newweapon == 44 || //nv gogles newweapon == 45) //hs goggles { if(HaveWeapon(playerid, newweapon) != newweapon && HaveAdminWeapon(playerid, newweapon) != newweapon) { if(IsPlayerConnected(playerid)) { new str[128]; if(PlayerInfo[playerid][pBand] == 3) return 1; // Avoid spam, should already be banned. GetWeaponName(newweapon, WeaponName, 64); anticheatbans ++; format(str, sizeof(str), "{FF6347}SERVER: %s was banned by ANTICHEAT, reason: Hacked %s detected. (%d hackers banned)", PlayerOOCName(playerid), WeaponName, anticheatbans); SendClientMessageToAll(COLOR_WHITE, str); PlayerInfo[playerid][pBand] = 3; BanLog(str); format(str, sizeof(str), "Ban Reason: Hacked %s detected - Banned by: ANTICHEAT", WeaponName); SendClientMessage(playerid, COLOR_GREY, str); strmid(PlayerInfo[playerid][pBanReason], str, 0, strlen(str)); new ip[16]; GetPlayerIp(playerid, ip, sizeof(ip)); gpci(playerid,playerserial,sizeof(playerserial)); BanExx(playerid); if(NextBan == 1) { format(Ban1Name, sizeof(Ban1Name), "%s", PlayerOOCName(playerid)); format(Ban1gpci, sizeof(Ban1gpci), "%s", playerserial); format(Ban1ip, sizeof(Ban1ip), "%s", ip); NextBan = 2; return 1; } if(NextBan == 2) { format(Ban2Name, sizeof(Ban2Name), "%s", PlayerOOCName(playerid)); format(Ban2gpci, sizeof(Ban2gpci), "%s", playerserial); format(Ban2ip, sizeof(Ban2ip), "%s", ip); NextBan = 3; return 1; } if(NextBan == 3) { format(Ban3Name, sizeof(Ban3Name), "%s", PlayerOOCName(playerid)); format(Ban3gpci, sizeof(Ban3gpci), "%s", playerserial); format(Ban3ip, sizeof(Ban3ip), "%s", ip); NextBan = 4; return 1; } if(NextBan == 4) { format(Ban4Name, sizeof(Ban4Name), "%s", PlayerOOCName(playerid)); format(Ban4gpci, sizeof(Ban4gpci), "%s", playerserial); format(Ban4ip, sizeof(Ban4ip), "%s", ip); NextBan = 5; return 1; } if(NextBan == 5) { format(Ban5Name, sizeof(Ban5Name), "%s", PlayerOOCName(playerid)); format(Ban5gpci, sizeof(Ban5gpci), "%s", playerserial); format(Ban5ip, sizeof(Ban5ip), "%s", ip); NextBan = 1; return 1; } return 1; } } } } if(newweapon > 0 && newweapon != 46) { if(HaveWeapon(playerid, newweapon) != newweapon && HaveAdminWeapon(playerid, newweapon) != newweapon) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pConnectTime] < 4) { if(PlayerInfo[playerid][pBand] == 3) return 1; // Avoid spam, should already be banned. GetWeaponName(newweapon, WeaponName, 64); anticheatbans ++; new str[128]; format(str, sizeof(str), "{FF6347}SERVER: %s was banned by ANTICHEAT, reason: Hacked %s detected. (%d hackers banned)", PlayerOOCName(playerid), WeaponName, anticheatbans); SendClientMessageToAll(COLOR_WHITE, str); PlayerInfo[playerid][pBand] = 3; BanLog(str); format(str, sizeof(str), "Ban Reason: Hacked %s detected - Banned by: ANTICHEAT", WeaponName); strmid(PlayerInfo[playerid][pBanReason], str, 0, strlen(str)); BanExx(playerid); new ip[16]; GetPlayerIp(playerid, ip, sizeof(ip)); gpci(playerid,playerserial,sizeof(playerserial)); if(NextBan == 1) { format(Ban1Name, sizeof(Ban1Name), "%s", PlayerOOCName(playerid)); format(Ban1gpci, sizeof(Ban1gpci), "%s", playerserial); format(Ban1ip, sizeof(Ban1ip), "%s", ip); NextBan = 2; return 1; } if(NextBan == 2) { format(Ban2Name, sizeof(Ban2Name), "%s", PlayerOOCName(playerid)); format(Ban2gpci, sizeof(Ban2gpci), "%s", playerserial); format(Ban2ip, sizeof(Ban2ip), "%s", ip); NextBan = 3; return 1; } if(NextBan == 3) { format(Ban3Name, sizeof(Ban3Name), "%s", PlayerOOCName(playerid)); format(Ban3gpci, sizeof(Ban3gpci), "%s", playerserial); format(Ban3ip, sizeof(Ban3ip), "%s", ip); NextBan = 4; return 1; } if(NextBan == 4) { format(Ban4Name, sizeof(Ban4Name), "%s", PlayerOOCName(playerid)); format(Ban4gpci, sizeof(Ban4gpci), "%s", playerserial); format(Ban4ip, sizeof(Ban4ip), "%s", ip); NextBan = 5; return 1; } if(NextBan == 5) { format(Ban5Name, sizeof(Ban5Name), "%s", PlayerOOCName(playerid)); format(Ban5gpci, sizeof(Ban5gpci), "%s", playerserial); format(Ban5ip, sizeof(Ban5ip), "%s", ip); NextBan = 1; return 1; } } GetWeaponName(newweapon, WeaponName, 64); anticheatwarns ++; new str[128]; format(str, sizeof(str), "{FF6347}Hack: %s (%d) has a desynced or hacked %s.", PlayerOOCName(playerid), playerid, WeaponName); UpdateWarnings(str); } } } } return 1; } //create HUD stock createCenterHUDTextDraw(playerid) { centerHUDInfo[playerid] = TextDrawCreate(319.000000, 380.000000, ""); TextDrawAlignment(centerHUDInfo[playerid], 2); TextDrawBackgroundColor(centerHUDInfo[playerid], 255); TextDrawFont(centerHUDInfo[playerid], 1); TextDrawLetterSize(centerHUDInfo[playerid], 0.320000, 1.500000); TextDrawColor(centerHUDInfo[playerid], -1); TextDrawSetOutline(centerHUDInfo[playerid], 0); TextDrawSetProportional(centerHUDInfo[playerid], 1); TextDrawSetShadow(centerHUDInfo[playerid], 1); } //display HUD stock displayCenterHUDInfo(playerid, string2[], duration) { //SendClientMessageToAll(0xFFFFFFAA, "displayCenterHUDInfo"); if(displayingText[playerid]) { //printf("hideCenterHUDTimerID %d for ID: %d", hideCenterHUDTimerID[playerid], playerid); KillTimer(hideCenterHUDTimerID[playerid]); } //printf("displayCenterHUDInfo for ID: %d", playerid); TextDrawSetString(centerHUDInfo[playerid], string2); TextDrawShowForPlayer(playerid, centerHUDInfo[playerid]); hideCenterHUDTimerID[playerid] = SetTimerEx("Timer_hideCenterHUDInfo", duration *1000, 0, "i", playerid); displayingText[playerid] = 1; } //hide HUD Timer:hideCenterHUDInfo(playerid) { //printf("hideCenterHUDInfo for ID: %d", playerid); TextDrawHideForPlayer(playerid, centerHUDInfo[playerid]); displayingText[playerid] = 0; //SendClientMessageToAll(0xFFFFFFAA, "hideCenterHUDInfo"); } //destroy HUD stock destroyCenterHUDInfo(playerid) { //printf("destroyCenterHUDInfo for ID: %d", playerid); TextDrawDestroy(centerHUDInfo[playerid]); } //food crap stock givePlayerFoodTray(playerid, type) { if(type == 1) //pizza box { SetPlayerAttachedObject(playerid, INDEX_8, 2814, 6, 0.05, -0.04, -0.20, 250, 0, 0, 1.0, 1.0, 1.0); //index 2, bone 6 (right hand) } else if(type == 2) //clucknbell tray { SetPlayerAttachedObject(playerid, INDEX_8, 2217, 6, 0.109999, -0.029999, -0.439999, 264.000000, -36.000000, 153.000000, 1.0, 1.0, 1.0); //index 2, bone 6 (right hand) } else if(type == 3) //burgershot tray { SetPlayerAttachedObject(playerid, INDEX_8, 2212, 6, 0.109999, -0.029999, -0.439999, 264.000000, -36.000000, 153.000000, 1.0, 1.0, 1.0); //index 2, bone 6 (right hand) } else if(type == 4) //donut tray { SetPlayerAttachedObject(playerid, INDEX_8, 2222, 6, 0.039999, 0.069999, -0.210000, -111.000000, -6.000000, -12.000000, 1.0, 1.0, 1.0); //index 2, bone 6 (right hand) } SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerArmedWeapon(playerid, 0); // disables weapons } stock getJobLevelReq(job) // get Job Level Requirements { jlevel1 = 0; if(job == JOBID_DETECTIVE || job == JOBID_LAWYER || job == JOBID_DRUGDEAL || job == JOBID_CARJACK || job == JOBID_MECHANIC || job == JOBID_ARMS || job == JOBID_BOXER) { jlevel2 = 50; jlevel3 = 100; jlevel4 = 200; jlevel5 = 400; } if(job == JOBID_SMUGGLER) { jlevel2 = 20; jlevel3 = 40; jlevel4 = 60; jlevel5 = 80; } if(job == JOBID_THIEF || job == JOBID_FISHING) { jlevel2 = 50; jlevel3 = 250; jlevel4 = 500; jlevel5 = 1000; } } stock convertToLevel(job, jobskill) { new lvl; getJobLevelReq(job); if(jobskill >= jlevel1 && jobskill < jlevel2) { lvl = 1; } else if(jobskill >= jlevel2 && jobskill < jlevel3) { lvl = 2; } else if(jobskill >= jlevel3 && jobskill < jlevel4) { lvl = 3; } else if(jobskill >= jlevel4 && jobskill < jlevel5) { lvl = 4; } else if(jobskill >= jlevel5) { lvl = 5; } return lvl; } stock lostFoodTray(playerid) { if(hasFoodTray[playerid]) { if(IsPlayerAttachedObjectSlotUsed(playerid, INDEX_8)) RemovePlayerAttachedObject(playerid, INDEX_8); //if carrying food tray, remove the object SetPlayerSpecialAction(playerid, 0); hasFoodTray[playerid] = 0; } } stock throwAwayFoodTray(playerid) { if(IsPlayerAttachedObjectSlotUsed(playerid, INDEX_8)) RemovePlayerAttachedObject(playerid, INDEX_8); //if carrying food tray, remove the object SetPlayerSpecialAction(playerid, 0); ApplyAnimationEx(playerid, "CARRY", "putdwn05", 3.0, 0, 0, 0, 0, 0, 0); hasFoodTray[playerid] = 0; } stock removePlayerFoodTray(playerid) { if(IsPlayerAttachedObjectSlotUsed(playerid, INDEX_8)) RemovePlayerAttachedObject(playerid, INDEX_8); //if carrying food tray, remove the object SetPlayerSpecialAction(playerid, 0); ApplyAnimationEx(playerid, "CARRY", "putdwn", 3.0, 0, 0, 0, 0, 0, 0); //place on ground if(foodTrays < MAX_TRAYS) { placeFoodTrayOnGround(playerid, hasFoodTray[playerid]); } hasFoodTray[playerid] = 0; } stock placeFoodTrayOnGround(playerid, type) { //spawn the object on the ground new Float: fX, Float: fY, Float: fZ, Float: fA; GetXYInFrontOfPlayer(playerid, fX, fY, fZ, fA, 1.0); if(type == 1) { //pizza box foodTray[foodTrays][0] = CreateDynamicObject(2860, fX, fY, fZ -1.0, 0.0, 0.0, fA); //object id foodTray[foodTrays][1] = TRAY_TYPE_PIZZA; //set tray type to pizza foodTray[foodTrays][2] = PIZZA_AMOUNT; //set the amount of food on this tray to pizza amount foodTray[foodTrays][3] = TRAY_RESPAWN_TIME; foodTray[foodTrays][4] = TRAY_NO_POISONED; } else if(type == 2) { //clucknbell tray foodTray[foodTrays][0] = CreateDynamicObject(2217, fX, fY, fZ -0.93, -27.000000, 24.000000, fA +75.0); //fA -118 foodTray[foodTrays][1] = TRAY_TYPE_CHICKEN; foodTray[foodTrays][2] = CHICKEN_AMOUNT; foodTray[foodTrays][3] = TRAY_RESPAWN_TIME; foodTray[foodTrays][4] = TRAY_NO_POISONED; } else if(type == 3) { //burgershot tray foodTray[foodTrays][0] = CreateDynamicObject(2212, fX, fY, fZ -0.93, -27.000000, 24.000000, fA +75.0); //fA -118 foodTray[foodTrays][1] = TRAY_TYPE_BURGER; foodTray[foodTrays][2] = BURGER_AMOUNT; foodTray[foodTrays][3] = TRAY_RESPAWN_TIME; foodTray[foodTrays][4] = TRAY_NO_POISONED; } else if(type == 4) { //donut tray foodTray[foodTrays][0] = CreateDynamicObject(2222, fX, fY, fZ -0.90, 0.0, 0.0, fA); foodTray[foodTrays][1] = TRAY_TYPE_DONUT; foodTray[foodTrays][2] = DONUT_AMOUNT; foodTray[foodTrays][3] = TRAY_RESPAWN_TIME; foodTray[foodTrays][4] = TRAY_NO_POISONED; } foodTrays++; } sortArray() { new currIndex; new oldIndex; for(new i = 0; i < MAX_TRAYS; i++) { if(i < MAX_TRAYS) { currIndex = i; if(foodTray[oldIndex][0] == SLOT_EMPTY && foodTray[currIndex][0] != SLOT_EMPTY) { //format(str, sizeof(str), "currIndex %d SLOT_EMPTY ------- oldIndex %d NOT_EMPTY, (SWAP)", currIndex, oldIndex); //SendClientMessageToAll(COLOR_WHITE, str); foodTray[oldIndex][0] = foodTray[currIndex][0]; //obj id foodTray[oldIndex][1] = foodTray[currIndex][1]; //type foodTray[oldIndex][2] = foodTray[currIndex][2]; //food amount foodTray[oldIndex][3] = foodTray[currIndex][3]; //food amount foodTray[oldIndex][4] = foodTray[currIndex][4]; //food amount foodTray[currIndex][0] = SLOT_EMPTY; //obj id foodTray[currIndex][1] = TYPE_EMPTY; //type foodTray[currIndex][2] = TRAY_EMPTY; //food amount foodTray[currIndex][3] = TRAY_NO_RESPAWN; //respawn time foodTray[currIndex][4] = TRAY_NO_POISONED; //poisoned } oldIndex = currIndex; } } } stock hidePlayerFoodTray(playerid) { if(hasFoodTray[playerid] && IsPlayerAttachedObjectSlotUsed(playerid, INDEX_3)) RemovePlayerAttachedObject(playerid, INDEX_3); //if carrying food tray, remove the object } stock showPlayerFoodTray(playerid) { if(hasFoodTray[playerid]) { givePlayerFoodTray(playerid, hasFoodTray[playerid]); } } stock eatFromTray(playerid) { if(!finishedEatingTimer[playerid]) //if player is currently not eating { for(new i = 0; i < foodTrays; i++) { //printf("looped %d times.", i); new Float:objX, Float:objY, Float:objZ; GetDynamicObjectPos(foodTray[i][0], objX, objY, objZ); if(IsPlayerInRangeOfPoint(playerid, 2.0, objX, objY, objZ)) { if(foodTray[i][2] > TRAY_EMPTY) //if the tray has food on it { new type = foodTray[i][1]; //type of foodtray eg. pizza/clucknbell etc. //health new Float: health; GetPlayerHealth(playerid, health); new Float: amount; //armor if(type == TRAY_TYPE_PIZZA) { SetPlayerAttachedObject(playerid, INDEX_8, 2702, 6, 0.057441, 0.057173, 0.052805, 63.711444, 278.175994, 0.000000, 1.000000, 1.000000, 1.000000); //index 2, bone 6 (right hand) pizza slice amount = 20; } else if(type == TRAY_TYPE_CHICKEN) { SetPlayerAttachedObject(playerid, INDEX_8, 2769, 6, 0.034267, 0.040272, 0.031289, 271.366149, 178.684631, 68.694839, 1.000000, 1.000000, 1.000000); amount = 33.3333; } else if(type == TRAY_TYPE_BURGER) { SetPlayerAttachedObject(playerid, INDEX_8, 2703, 6, 0.055717, 0.063831, 0.000000, 335.850250, 345.594818, 87.406021, 1.000000, 1.000000, 1.000000); amount = 33.3333; } else if(type == TRAY_TYPE_DONUT) { if(IsACop(playerid)) { new Float: armor; GetPlayerArmour(playerid, armor); if(armor + 5.0 > 100) { SetPlayerArmour(playerid, 100); } else { SetPlayerArmour(playerid, armor + 5.0); } amount = 15; } else { amount = 12.5; } //SetPlayerAttachedObject(playerid, INDEX_9, 2702, 6, 0.08, 0.14, 0, 0, -17, 0, 1.0, 1.0, 1.0); //index 2, bone 6 (right hand) pizza slice } if(health + amount > 100) { SetPlayerHealth(playerid, 100); } else { SetPlayerHealth(playerid, health + amount); } ApplyAnimationEx(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); SetTimerEx("Timer_finishedEating", 4 *1000, 0, "i", playerid); //5 seconds finishedEatingTimer[playerid] = true; foodTray[i][2]--; //take away a slice of food from the tray //if the foodtray has been poisoned if(foodTray[i][4] == TRAY_POISONED) { //poisoned if(!beingPoisonedTimer[playerid]) { //if player is currently not already poisoned SetTimerEx("Timer_beingPoisoned", 10*1000, 0,"i",playerid, 0); //10 seconds beingPoisonedTimer[playerid] = true; } } if(foodTray[i][2] == 0) //no more slices, delete obj and create rubbish obj { new Float:RotX, Float:RotY, Float:RotZ; GetDynamicObjectRot(foodTray[i][0], RotX, RotY, RotZ); DestroyDynamicObjectEx(foodTray[i][0]); new rand = random(360); if(type == TRAY_TYPE_PIZZA) //pizza box { foodTray[i][0] = CreateDynamicObject(2838, objX, objY, objZ, RotX, RotY, RotZ); //pizza trash } else if(type == TRAY_TYPE_CHICKEN) //clucknbell tray { foodTray[i][0] = CreateDynamicObject(2837, objX, objY, objZ - 0.07, 0, 0, rand); } else if(type == TRAY_TYPE_BURGER) //burgershot tray { foodTray[i][0] = CreateDynamicObject(2840, objX, objY, objZ - 0.07, 0, 0, rand); } else if(type == TRAY_TYPE_DONUT) //donut tray { foodTray[i][0] = CreateDynamicObject(2342, objX, objY, objZ + 0.05, RotX, RotY, RotZ); //empty tray } Streamer_Update(playerid); SendClientMessage(playerid, COLOR_GREY, "You can type /cleanup to pick up any rubbish."); } } //printf("broken out of loop"); break; } } } else { SendClientMessage(playerid, 0xAFAFAFAA, "You must wait 4 seconds before eating again."); } return 1; } stock cleanUpFood(playerid) { for(new i = 0; i < foodTrays; i++) { new Float:objX, Float:objY, Float:objZ; GetDynamicObjectPos(foodTray[i][0], objX, objY, objZ); if(IsPlayerInRangeOfPoint(playerid, 2.0, objX, objY, objZ)) { if(foodTray[i][2] == 0) { //no more slices, delete obj and create rubbish obj new str[128]; format(str, sizeof(str), "* %s has cleaned up some rubbish.", PlayerICName(playerid)); if(PlayerInfo[playerid][pMask] == 1){ format(str, sizeof(str), "* Stranger has cleaned up some rubbish.", PlayerICName(playerid)); } ProxDetector(30.0, playerid, str, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); if(foodTray[i][0]) { DestroyDynamicObjectEx(foodTray[i][0]); } //set array slot to empty foodTray[i][0] = SLOT_EMPTY; //obj ID foodTray[i][1] = TYPE_EMPTY; //type foodTray[i][2] = TRAY_EMPTY; //food foodTray[i][3] = TRAY_NO_RESPAWN; //respawn time foodTray[i][4] = TRAY_NO_POISONED; foodTrays--; sortArray(); break; } else { SendClientMessage(playerid, 0xAFAFAFAA, "You can still eat from this, type /eat before cleaning up !"); } } } } public boughtFood(playerid) { if(IsPlayerConnected(playerid)) { if(boughtFoodTimer[playerid]) { boughtFoodTimer[playerid] = false; } } } Timer:finishedEating(playerid) { if(IsPlayerConnected(playerid)) { if(finishedEatingTimer[playerid]) { if(IsPlayerAttachedObjectSlotUsed(playerid, INDEX_8)) RemovePlayerAttachedObject(playerid, INDEX_8); finishedEatingTimer[playerid] = false; } } } #define SOUND_RADIUS 30 Timer:beingPoisoned(playerid, step) { if(IsPlayerConnected(playerid)) { if(beingPoisonedTimer[playerid]) { new str[128]; switch(step) { case 0: { //start choking beingPoisonedTimer[playerid] = SetTimerEx("Timer_beingPoisoned", 2*1000, 0,"ii",playerid, 1); //2 seconds format(str, sizeof(str), "* %s begins choking.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); ClearAnimationsEx(playerid); ApplyAnimation(playerid, "KNIFE", "KILL_Knife_Ped_Damage", 4.1, 0, 0, 0, 0, 0); playLocalSound(playerid, 19024, SOUND_RADIUS, 0); } case 1: { //collapse beingPoisonedTimer[playerid] = SetTimerEx("Timer_beingPoisoned", 3*1000, 0,"ii",playerid, 2); //3 seconds ApplyAnimation(playerid, "KNIFE", "KILL_Knife_Ped_Die", 4.1, 0, 0, 0, 1, 0); } case 2: { if(PlayerInfo[playerid][pHospital] == 0) { playerPoisoned[playerid] = 1; ApplyAnimation(playerid,"PED","FLOOR_hit_f",4.0,0,1,1,1,0,1); new Float:x, Float:y, Float:z, Float:a; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, a); DeathPos[playerid][DeathX] = x; DeathPos[playerid][DeathY] = y; DeathPos[playerid][DeathZ] = z; DeathPos[playerid][DeathA] = a; DeathPos[playerid][DeathInt] = GetPlayerInterior(playerid); DeathPos[playerid][DeathVW] = GetPlayerVirtualWorld(playerid); pDeathState[playerid] = PLAYER_STATE_REVIVE; SetPlayerHealth(playerid, 100.0); DeathPos[playerid][DeathHP] = 100; TextDrawShowForPlayer(playerid, DieText); TextDrawShowForPlayer(playerid, InjuredText); if(PlayerInfo[playerid][pHeadValue] > 0) { foreach( new i: Player ) { if(GoChase[i] == playerid) { format(str, sizeof(str), "You were killed by a hitman and have lost $%d.", PlayerInfo[playerid][pHeadValue] /2); SendClientMessage(playerid, COLOR_YELLOW, str); GiveMoney(playerid, -PlayerInfo[playerid][pHeadValue] /2); GiveMoney(i, PlayerInfo[playerid][pHeadValue] /2); PlayerInfo[i][pCHits]++; if(IsPlayerConnected(GetPlayerIDFromName(PlayerInfo[playerid][pContractBy]))) { format(str, sizeof(str), "SMS: %s has been taken care of, Sender: Unknown", PlayerOOCName(playerid)); SendClientMessage(GetPlayerIDFromName(PlayerInfo[playerid][pContractBy]), COLOR_YELLOW, str); } playLocalSound(PlayerInfo[playerid][pContractBy], SMS_RECIEVED, 2.0, 0); format(PlayerInfo[playerid][pContractBy], 24, "Nobody"); GoChase[i] = 999; format(str, sizeof(str), "Hitman %s has successfully assassinated %s with poison and collected $%d.", PlayerICName(i), PlayerICName(playerid), PlayerInfo[playerid][pHeadValue] /2); PlayerInfo[playerid][pHeadValue] = 0; break; } } foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == GROUP_HITMAN) { SendClientMessage(i, COLOR_YELLOW, str); } } } } beingPoisonedTimer[playerid] = false; } } } } return 1; } Timer:playLocalSoundCheck(playerid, sound, Float:range, time, type) { new Float:x, Float:y, Float:z; if(IsValidActor(playerid)) { GetActorPos(playerid, x, y, z); } else { GetPlayerPos(playerid, x, y, z); PlayerPlaySound(playerid, sound, 0.0, 0.0, 0.0); } foreach( new i: Player ) { if(IsPlayerInRangeOfPoint(i, range, x, y, z) && (i != playerid)) { if(type == 1) PlayerPlaySound(i, sound, x, y, z); else if(type == 2) PlayerPlaySound(i, sound, x, y, z); } } } stock playLocalSound(playerid, sound, Float:range, time) { new type = 1; if(!IsValidActor(playerid)) { if(IsPlayerInAnyVehicle(playerid)) type = 2; } SetTimerEx("Timer_playLocalSoundCheck", time, 0, "iifii", playerid, sound, range, time, type); } stock clearAttachedObjects(playerid) { RemovePlayerAttachedObject(playerid, 0); RemovePlayerAttachedObject(playerid, 1); RemovePlayerAttachedObject(playerid, 2); RemovePlayerAttachedObject(playerid, 3); RemovePlayerAttachedObject(playerid, 4); RemovePlayerAttachedObject(playerid, 5); RemovePlayerAttachedObject(playerid, 6); RemovePlayerAttachedObject(playerid, 7); RemovePlayerAttachedObject(playerid, 8); RemovePlayerAttachedObject(playerid, 9); } //============================================================================== stock LoadEntrances() { new File:file = fopen("entrances.cfg", io_read); if(file) { new line[1024], parts[18][50], commentpos = -1, count; while(count < sizeof(Entrances)) { fread(file, line); if( strlen( line ) < 1 ) { //it was writing over data count++; continue; } commentpos = strfind(line, "//", true); if(commentpos != -1) { strmid(line, line, commentpos, strlen(line)); } split(line, parts, ','); Entrances[count][outside_icon] = strval(parts[0]); Entrances[count][outside_x] = floatstr(parts[1]); Entrances[count][outside_y] = floatstr(parts[2]); Entrances[count][outside_z] = floatstr(parts[3]); Entrances[count][outside_a] = floatstr(parts[4]); Entrances[count][outside_i] = strval(parts[5]); Entrances[count][outside_w] = strval(parts[6]); Entrances[count][inside_x] = floatstr(parts[7]); Entrances[count][inside_y] = floatstr(parts[8]); Entrances[count][inside_z] = floatstr(parts[9]); Entrances[count][inside_a] = floatstr(parts[10]); Entrances[count][inside_i] = strval(parts[11]); Entrances[count][inside_w] = strval(parts[12]); if(strval(parts[15]) > 0) Entrances[count][freeze] = true; else Entrances[count][freeze] = false; strdel(Entrances[count][doorname], 0, 50); strins(Entrances[count][doorname], parts[13], 0); strdel(Entrances[count][dpassword], 0, 50); strins(Entrances[count][dpassword], parts[14], 0); strdel(Entrances[count][createdby], 0, 50); strins(Entrances[count][createdby], parts[16], 0); Entrances[count][eowner] = strval(parts[17]); if(strfind(Entrances[count][doorname], "\n", true) != -1) strdel(Entrances[count][doorname], strfind(Entrances[count][doorname], "\n", true), strfind(Entrances[count][doorname], "\n", true) + 2); if(strfind(Entrances[count][doorname], "\r", true) != -1) strdel(Entrances[count][doorname], strfind(Entrances[count][doorname], "\r", true), strfind(Entrances[count][doorname], "\r", true) + 2); if(strfind(Entrances[count][dpassword], "\n", true) != -1) strdel(Entrances[count][dpassword], strfind(Entrances[count][dpassword], "\n", true), strfind(Entrances[count][dpassword], "\n", true) + 2); if(strfind(Entrances[count][dpassword], "\r", true) != -1) strdel(Entrances[count][dpassword], strfind(Entrances[count][dpassword], "\r", true), strfind(Entrances[count][dpassword], "\r", true) + 2); if(strfind(Entrances[count][createdby], "\n", true) != -1) strdel(Entrances[count][createdby], strfind(Entrances[count][createdby], "\n", true), strfind(Entrances[count][createdby], "\n", true) + 2); if(strfind(Entrances[count][createdby], "\r", true) != -1) strdel(Entrances[count][createdby], strfind(Entrances[count][createdby], "\r", true), strfind(Entrances[count][createdby], "\r", true) + 2); new actualpickupid = 0; if(Entrances[count][outside_icon] == 0) { actualpickupid = 19198; } else if(Entrances[count][outside_icon] == 1) { actualpickupid = 1239; } else if(Entrances[count][outside_icon] == 2) { actualpickupid = 19131; } else if(Entrances[count][outside_icon] == 3) { actualpickupid = 19132; } else if(Entrances[count][outside_icon] == 4) { actualpickupid = 19133; } else if(Entrances[count][outside_icon] == 5) { actualpickupid = 19134; } else if(Entrances[count][outside_icon] == 6) { actualpickupid = 19135; } if(EntranceRef[count]) { DestroyDynamicPickup(EntranceRef[count]); } if(EntranceRefInt[count]) { DestroyDynamicPickup(EntranceRefInt[count]); } if(EntranceRefText[count]) { DestroyDynamic3DTextLabel(EntranceRefText[count]); } //I cannot really be bothered adding in a detection for "DOOR IS CREATED"...whoever made this door system jez if( Entrances[count][outside_icon] == 0 ) { EntranceRef[count] = CreateDynamicPickup(actualpickupid, 23, Entrances[count][outside_x], Entrances[count][outside_y], Entrances[count][outside_z]+0.4, Entrances[count][outside_w]); EntranceRefInt[count] = CreateDynamicPickup(actualpickupid, 23, Entrances[count][inside_x], Entrances[count][inside_y], Entrances[count][inside_z]+0.4, Entrances[count][inside_w]); } else { EntranceRef[count] = CreateDynamicPickup(actualpickupid, 23, Entrances[count][outside_x], Entrances[count][outside_y], Entrances[count][outside_z], Entrances[count][outside_w]); EntranceRefInt[count] = CreateDynamicPickup(actualpickupid, 23, Entrances[count][inside_x], Entrances[count][inside_y], Entrances[count][inside_z], Entrances[count][inside_w]); } new doornametxt[128]; format(doornametxt, sizeof(doornametxt), "{43527D}%s{FFFFFF}\n\nType /enter to go inside.", Entrances[count][doorname]); EntranceRefText[count] = CreateDynamic3DTextLabel(doornametxt, COLOR_ENTRANCE, Entrances[count][outside_x], Entrances[count][outside_y], Entrances[count][outside_z] +0.75, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, Entrances[count][outside_w], Entrances[count][outside_i]); new str[128]; format(str, sizeof(str), "%0.2f,%0.2f,%0.2f", Entrances[count][outside_x], Entrances[count][outside_y], Entrances[count][outside_z]); if(strcmp(str, "0.00,0.00,0.00", true) == 0) { DestroyDynamicPickup(EntranceRef[count]); DestroyDynamicPickup(EntranceRefInt[count]); DestroyDynamic3DTextLabel(EntranceRefText[count]); EntranceRef[count] = 0; EntranceRefInt[count] = 0; EntranceRefText[count] = Text3D:INVALID_3DTEXT_ID; } count++; } fclose(file); } else { printf("[error] Failed to find entrances.cfg"); } return 1; } stock SaveEntrances() { new idx = 0; new File:file; file = fopen("entrances.cfg", io_write); fclose(file); file = fopen("entrances.cfg", io_append); new coordsstring[512]; if(file) { while(idx < sizeof(Entrances)) { format(coordsstring, sizeof(coordsstring), "%d,%f,%f,%f,%f,%d,%d,%f,%f,%f,%f,%d,%d,%s,%s,%d,%s,%d\n", Entrances[idx][outside_icon], Entrances[idx][outside_x], Entrances[idx][outside_y], Entrances[idx][outside_z], Entrances[idx][outside_a], Entrances[idx][outside_i], Entrances[idx][outside_w], Entrances[idx][inside_x], Entrances[idx][inside_y], Entrances[idx][inside_z], Entrances[idx][inside_a], Entrances[idx][inside_i], Entrances[idx][inside_w], Entrances[idx][doorname], Entrances[idx][dpassword], Entrances[idx][freeze], Entrances[idx][createdby], Entrances[idx][eowner]); fwrite(file, coordsstring); idx++; } fclose(file); } else { printf("[error] Failed to find entrances.cfg"); } return 1; } //============================================================================== //============================[Fishing System]============================== stock LoadTextDraws() { FishingOutline = TextDrawCreate(547.000000, 33.000000, "_"); TextDrawBackgroundColor(FishingOutline, -65281); TextDrawFont(FishingOutline, 1); TextDrawLetterSize(FishingOutline, 0.500000, 0.599999); TextDrawColor(FishingOutline, -1); TextDrawSetProportional(FishingOutline, 1); TextDrawUseBox(FishingOutline, 1); TextDrawBoxColor(FishingOutline, 255); TextDrawTextSize(FishingOutline, 606.000000, 0.000000); // FishingBackground = TextDrawCreate(549.000000, 35.000000, "_"); TextDrawBackgroundColor(FishingBackground, 255); TextDrawFont(FishingBackground, 1); TextDrawLetterSize(FishingBackground, 0.079999, 0.199999); TextDrawColor(FishingBackground, -1); TextDrawSetProportional(FishingBackground, 1); TextDrawUseBox(FishingBackground, 1); TextDrawBoxColor(FishingBackground, 0x00646CFF); // 6911487 TextDrawTextSize(FishingBackground, 604.000000, 0.000000); // FishingBar = TextDrawCreate(549.000000, 35.000000, "_"); TextDrawBackgroundColor(FishingBar, 255); TextDrawFont(FishingBar, 1); TextDrawLetterSize(FishingBar, 0.079999, 0.199999); TextDrawColor(FishingBar, -65281); TextDrawSetProportional(FishingBar, 1); TextDrawUseBox(FishingBar, 1); TextDrawBoxColor(FishingBar, -2114848513); TextDrawTextSize(FishingBar, 549.000000, 0.000000); InjuredText = TextDrawCreate(279.000000, 342.000000, "~r~You are injured."); TextDrawBackgroundColor(InjuredText, 255); TextDrawFont(InjuredText, 1); TextDrawLetterSize(InjuredText, 0.300000, 1.300000); TextDrawSetProportional(InjuredText, 1); TextDrawSetShadow(InjuredText, 1); DieText = TextDrawCreate(198.000000, 359.000000, "Type ~y~/service EMS~w~ to call a ~r~medic~w~ or ~y~/accept death~w~ to skip."); TextDrawBackgroundColor(DieText, 255); TextDrawFont(DieText, 1); TextDrawLetterSize(DieText, 0.250000, 1.399999); TextDrawSetProportional(DieText, 1); TextDrawSetShadow(DieText, 1); EnteranceStuff[0] = TextDrawCreate(185.000000, 181.000000, "Box"); TextDrawBackgroundColor(EnteranceStuff[0], 0); TextDrawFont(EnteranceStuff[0], 1); TextDrawLetterSize(EnteranceStuff[0], 1.590000, 7.700005); TextDrawColor(EnteranceStuff[0], 0); TextDrawSetOutline(EnteranceStuff[0], 0); TextDrawSetProportional(EnteranceStuff[0], 1); TextDrawSetShadow(EnteranceStuff[0], 1); TextDrawUseBox(EnteranceStuff[0], 1); TextDrawBoxColor(EnteranceStuff[0], 100); TextDrawTextSize(EnteranceStuff[0], 448.000000, 30.000000); // EnteranceStuff[1] = TextDrawCreate(315.000000, 180.000000, "Project"); TextDrawAlignment(EnteranceStuff[1], 2); TextDrawBackgroundColor(EnteranceStuff[1], 255); TextDrawFont(EnteranceStuff[1], 0); TextDrawLetterSize(EnteranceStuff[1], 0.70, 4); TextDrawColor(EnteranceStuff[1], SARPTD_COLOUR); TextDrawSetOutline(EnteranceStuff[1], 1); TextDrawSetProportional(EnteranceStuff[1], 1); // EnteranceStuff[2] = TextDrawCreate(315.000000, 220.000000, "Roleplay"); TextDrawAlignment(EnteranceStuff[2], 2); TextDrawBackgroundColor(EnteranceStuff[2], 255); TextDrawFont(EnteranceStuff[2], 3); TextDrawLetterSize(EnteranceStuff[2], 0.45, 3); TextDrawColor(EnteranceStuff[2], SARPTD_COLOUR); TextDrawSetOutline(EnteranceStuff[2], 1); TextDrawSetProportional(EnteranceStuff[2], 1); // EnteranceStuff[3] = TextDrawCreate(405.000000, 240.000000, "Loading objects..."); TextDrawAlignment(EnteranceStuff[3], 2); TextDrawBackgroundColor(EnteranceStuff[3], 255); TextDrawFont(EnteranceStuff[3], 2); TextDrawLetterSize(EnteranceStuff[3], 0.189999, 1.200000); TextDrawColor(EnteranceStuff[3], LOADINGTD_COLOUR); TextDrawSetOutline(EnteranceStuff[3], 1); TextDrawSetProportional(EnteranceStuff[3], 1); // EnteranceStuff[4] = TextDrawCreate(405.000000, 240.000000, "Awaiting helper..."); TextDrawAlignment(EnteranceStuff[4], 2); TextDrawBackgroundColor(EnteranceStuff[4], 255); TextDrawFont(EnteranceStuff[4], 2); TextDrawLetterSize(EnteranceStuff[4], 0.189999, 1.200000); TextDrawColor(EnteranceStuff[4], LOADINGTD_COLOUR); TextDrawSetOutline(EnteranceStuff[4], 1); TextDrawSetProportional(EnteranceStuff[4], 1); // EnteranceStuff[5] = TextDrawCreate(405.000000, 240.000000, "Awaiting tester..."); TextDrawAlignment(EnteranceStuff[5], 2); TextDrawBackgroundColor(EnteranceStuff[5], 255); TextDrawFont(EnteranceStuff[5], 2); TextDrawLetterSize(EnteranceStuff[5], 0.189999, 1.200000); TextDrawColor(EnteranceStuff[5], LOADINGTD_COLOUR); TextDrawSetOutline(EnteranceStuff[5], 1); TextDrawSetProportional(EnteranceStuff[5], 1); EnteranceStuff[6] = TextDrawCreate(405.000000, 240.000000, "Server Restart"); TextDrawAlignment(EnteranceStuff[6], 2); TextDrawBackgroundColor(EnteranceStuff[6], 255); TextDrawFont(EnteranceStuff[6], 2); TextDrawLetterSize(EnteranceStuff[6], 0.189999, 1.200000); TextDrawColor(EnteranceStuff[6], LOADINGTD_COLOUR); TextDrawSetOutline(EnteranceStuff[6], 1); TextDrawSetProportional(EnteranceStuff[6], 1); //motd motd = TextDrawCreate(322.000000, 356.000000, "~b~MOTD:~w~ Welcome to PRP, enjoy your stay."); TextDrawAlignment(motd, 2); TextDrawBackgroundColor(motd, 255); TextDrawFont(motd, 1); TextDrawLetterSize(motd, 0.220000, 1.000000); TextDrawColor(motd, -1); TextDrawSetOutline(motd, 0); TextDrawSetProportional(motd, 1); TextDrawSetShadow(motd, 0); TextDrawSetSelectable(motd, 0); //event notice eventcup_icon = TextDrawCreate(7.000000, 103.000000, "hud:radar_race"); TextDrawAlignment(eventcup_icon, 2); TextDrawBackgroundColor(eventcup_icon, 255); TextDrawFont(eventcup_icon, 4); TextDrawLetterSize(eventcup_icon, 0.029999, 0.200000); TextDrawColor(eventcup_icon, -1); TextDrawSetOutline(eventcup_icon, 0); TextDrawSetProportional(eventcup_icon, 1); TextDrawSetShadow(eventcup_icon, 1); TextDrawUseBox(eventcup_icon, 1); TextDrawBoxColor(eventcup_icon, 995727615); TextDrawTextSize(eventcup_icon, 6.000000, 6.000000); TextDrawSetSelectable(eventcup_icon, 0); nexteventin = TextDrawCreate(16.000000, 101.000000, "Next event in:~b~ 0 hours"); TextDrawBackgroundColor(nexteventin, 255); TextDrawFont(nexteventin, 1); TextDrawLetterSize(nexteventin, 0.160000, 0.899999); TextDrawColor(nexteventin, -1); TextDrawSetOutline(nexteventin, 0); TextDrawSetProportional(nexteventin, 1); TextDrawSetShadow(nexteventin, 0); TextDrawSetSelectable(nexteventin, 0); eventfunds = TextDrawCreate(16.000000, 110.000000, "Event funds: ~g~$0"); TextDrawBackgroundColor(eventfunds, 255); TextDrawFont(eventfunds, 1); TextDrawLetterSize(eventfunds, 0.160000, 0.899999); TextDrawColor(eventfunds, -1); TextDrawSetOutline(eventfunds, 0); TextDrawSetProportional(eventfunds, 1); TextDrawSetShadow(eventfunds, 0); TextDrawSetSelectable(eventfunds, 0); howtofund = TextDrawCreate(16.000000, 119.000000, "Type ~y~/fundevent~w~ to help fund the event"); TextDrawBackgroundColor(howtofund, 255); TextDrawFont(howtofund, 1); TextDrawLetterSize(howtofund, 0.160000, 0.899999); TextDrawColor(howtofund, -1); TextDrawSetOutline(howtofund, 0); TextDrawSetProportional(howtofund, 1); TextDrawSetShadow(howtofund, 0); TextDrawSetSelectable(howtofund, 0); } //============================================================================== stock detachPhoneFromPlayer(playerid) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE); RemovePlayerAttachedObject(playerid, INDEX_8); if(!IsPlayerInAnyVehicle(playerid)) ClearAnimationsEx(playerid); } //============================================================================== stock attachPhoneToPlayer(playerid) { switch(PlayerInfo[playerid][pCellphoneType]) { case 0: { SetPlayerAttachedObject(playerid, INDEX_8, 330, 6); } case 1: { SetPlayerAttachedObject(playerid, INDEX_8, 2967, 6, 0.095121, 0.030734, 0.000968, 94.332405, 181.820236, 2.332283, 1.000000, 1.000000, 1.000000); } case 2: { SetPlayerAttachedObject(playerid, INDEX_8, 2966, 6, 0.086296, 0.067802, -0.052033, 91.819984, 184.425216, 0.000000, 1.000000, 1.000000, 1.000000); } case 3: { SetPlayerAttachedObject(playerid, INDEX_8, 18865, 6, 0.096336, 0.026433, -0.002379, 91.759994, 191.558837, 0.000000, 1.000000, 1.000000, 1.000000); } case 4: { SetPlayerAttachedObject(playerid, INDEX_8, 18866, 6, 0.096336, 0.026433, -0.002379, 91.759994, 191.558837, 0.000000, 1.000000, 1.000000, 1.000000); } case 5: { SetPlayerAttachedObject(playerid, INDEX_8, 18867, 6, 0.096336, 0.026433, -0.002379, 91.759994, 191.558837, 0.000000, 1.000000, 1.000000, 1.000000); } case 6: { SetPlayerAttachedObject(playerid, INDEX_8, 18868, 6, 0.096336, 0.026433, -0.002379, 91.759994, 191.558837, 0.000000, 1.000000, 1.000000, 1.000000); } case 7: { SetPlayerAttachedObject(playerid, INDEX_8, 18869, 6, 0.096336, 0.026433, -0.002379, 91.759994, 191.558837, 0.000000, 1.000000, 1.000000, 1.000000); } case 8: { SetPlayerAttachedObject(playerid, INDEX_8, 18870, 6, 0.096336, 0.026433, -0.002379, 91.759994, 191.558837, 0.000000, 1.000000, 1.000000, 1.000000); } case 9: { SetPlayerAttachedObject(playerid, INDEX_8, 18871, 6, 0.096336, 0.026433, -0.002379, 91.759994, 191.558837, 0.000000, 1.000000, 1.000000, 1.000000); } case 10: { SetPlayerAttachedObject(playerid, INDEX_8, 18872, 6, 0.096336, 0.026433, -0.002379, 91.759994, 191.558837, 0.000000, 1.000000, 1.000000, 1.000000); } case 11: { SetPlayerAttachedObject(playerid, INDEX_8, 18873, 6, 0.096336, 0.026433, -0.002379, 91.759994, 191.558837, 0.000000, 1.000000, 1.000000, 1.000000); } case 12: { SetPlayerAttachedObject(playerid, INDEX_8, 18874, 6, 0.096336, 0.026433, -0.002379, 91.759994, 191.558837, 0.000000, 1.000000, 1.000000, 1.000000); } } if(!IsPlayerInAnyVehicle(playerid)){ SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE); } } //============================================================================== stock buyCellphone(playerid, type) { //assign type new str[128]; PlayerInfo[playerid][pCellphoneType] = type; if(PlayerInfo[playerid][pPnumber] != 0) //already has a phone { displayCenterHUDInfo(playerid, "~r~Cellphone~w~ purchased!~n~your old number has been assigned to this phone.", 8); //display for 8 seconds } else //set new number { new randphone = 1000 + random(8999);//minimum 1000 max 9999 PlayerInfo[playerid][pPnumber] = randphone; format(str, sizeof(str), "~r~Cellphone~w~ purchased!~n~your number is ~b~%d~n~~w~type~y~/cellphonehelp~w~ for more info.", PlayerInfo[playerid][pPnumber]); displayCenterHUDInfo(playerid, str, 8); //display for 8 seconds SendClientMessage(playerid, COLOR_GRAD5, "Your cellphone number is listed in your /stats."); } } //============================================================================== stock DiscardAll(playerid) { if(IsPlayerConnected(playerid)) { new str[128]; Cards[playerid][0] = 0; Cards[playerid][1] = 0; Cards[playerid][2] = 0; Cards[playerid][3] = 0; Cards[playerid][4] = 0; CardsHave[playerid] = 0; format(str, sizeof(str), "* %s discards all their cards.", PlayerICName(playerid)); ProxDetector(5.0, playerid, str, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW); } return 1; } //============================================================================== stock Discard(playerid, card) { if(IsPlayerConnected(playerid)) { new str[128]; if(Cards[playerid][card] < 1) { SendClientMessage(playerid, COLOR_GREY, "You don't have a card in that slot to discard."); return 1; } CardsHave[playerid]--; Cards[playerid][card] = 0; format(str, sizeof(str), "* %s has discarded one of their cards.", PlayerICName(playerid)); ProxDetector(5.0, playerid, str, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW); } return 1; } //============================================================================== stock Showcard(playerid, card) { if(IsPlayerConnected(playerid)) { new str[128]; if(Cards[playerid][card] < 1) { SendClientMessage(playerid, COLOR_GREY, "You don't have a card in that slot to show."); return 1; } format(str, sizeof(str), "* %s shows %s.", PlayerICName(playerid), CardNames[Cards[playerid][card]]); ProxDetector(10.0, playerid, str, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW); } return 1; } //============================================================================== stock ShowHand(playerid) { if(IsPlayerConnected(playerid)) { new cardstring[128], str[128]; format(str, sizeof(str), "* %s shows: ", PlayerICName(playerid)); for(new i =0; i <5; i++) { if(Cards[playerid][i] != 0) { format(cardstring, sizeof(cardstring), "%s | ", CardNames[Cards[playerid][i]]); strcat(str, cardstring); } } ProxDetector(10.0, playerid, str, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW); } return 1; } //============================================================================== stock SendWeaponMessage(playerid) { new level = PlayerInfo[playerid][pArmsSkill]; SendClientMessage(playerid, COLOR_WHITE, "USAGE: /sellgun [Playerid/PartOfName] [weapon name]"); SendClientMessage(playerid, COLOR_GREY, "Items: Flowers(25), Knuckles(25), Baseballbat(25), Poolcue(25), Parachute(25)"); SendClientMessage(playerid, COLOR_GREY, "Items: Cane(25), Shovel(25), Golfclub(25), Katana(50), Dildo(25)"); SendClientMessage(playerid, COLOR_GREY, "Level 1 Weapons: Colt45(150)"); if(level >= 50) { SendClientMessage(playerid, COLOR_GREY, "Level 2 Weapons: Rifle(1000), Shotgun(200)"); } if(level >= 100) { SendClientMessage(playerid, COLOR_GREY, "Level 3 Weapons: MP5(400), UZI(1500), TEC9(1500)"); } if(level >= 200) { SendClientMessage(playerid, COLOR_GREY, "Level 4 Weapons: Deagle(2000), SawnOff(1000), SDPistol(1500)"); } if(level >= 400) { SendClientMessage(playerid, COLOR_GREY, "Level 5 Weapons: AK47(5000)"); } if(PlayerInfo[playerid][pGroup] == 2 || PlayerInfo[playerid][pFMember]) { SendClientMessage(playerid, COLOR_GREY, "Restricted Weapons: M4 (5500), Sniper (7500)"); } return 1; } //============================================================================== stock DealCard(playerid, targetPlayer) { if(IsPlayerConnected(playerid) && IsPlayerConnected(targetPlayer)) { new str[128]; new openSlot = -1; for(new i = 0; i < 5; i++) { if(Cards[targetPlayer][i] < 1) { openSlot = i; break; } } if(openSlot < 0) { format(str, sizeof(str), "** %s's card slots are full.", PlayerICName(playerid)); ProxDetector(10.0, playerid, str, TEAM_GROVE_COLOR, TEAM_GROVE_COLOR, TEAM_GROVE_COLOR, TEAM_GROVE_COLOR, TEAM_GROVE_COLOR); return 1; } CardsHave[targetPlayer]++; CardsDealt[playerid]++; new rand = random(52); while(Deck[playerid][rand] == 1) { rand = random(52); } Deck[playerid][rand] = 1; Cards[targetPlayer][openSlot] = rand +1; } return 1; } //============================================================================== stock ShuffleDeck(playerid) { if(IsPlayerConnected(playerid)) { for(new i = 0; i < 52; i++) { Deck[playerid][i] = 0; } CardsDealt[playerid] = 0; } } //============================================================================== stock ContainsValidCharacters(string2[]) { if((strfind(string2, "[") != -1) || (strfind(string2, "]") != -1) || (strfind(string2, "/") != -1) || (strfind(string2, "\\") != -1) || (strfind(string2, ":") != -1) || (strfind(string2, "*") != -1) || (strfind(string2, "?") != -1) || (strfind(string2, "<") != -1) || (strfind(string2, ">") != -1) || (strfind(string2, "|") != -1) || (strfind(string2, "\"") != -1))//" { return 0; } return 1; } //============================================================================== stock CheckPlayerDistanceToVehicle(Float:radi, playerid, vehicleid) { if(IsPlayerConnected(playerid)) { new Float:PX, Float:PY, Float:PZ, Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, PX, PY, PZ); GetVehiclePos(vehicleid, X, Y, Z); new Float:ddd = (X -PX) *(X -PX) +(Y -PY) *(Y -PY) +(Z -PZ) *(Z -PZ); if(ddd <= radi *radi) { return 1; } } return 0; } //============================================================================== public GiveMoney(playerid, money) { PlayerInfo[playerid][pCash] += money; ResetPlayerMoney(playerid); GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]); return 1; } //============================================================================== stock ResetMoney(playerid) { ResetPlayerMoney(playerid); PlayerInfo[playerid][pCash] = 0; GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]); return 1; } //============================================================================== public GetMoney(playerid) { ResetPlayerMoney(playerid); GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]); return PlayerInfo[playerid][pCash]; } //============================================================================== stock CreateStrip(Float:x, Float:y, Float:z, Float:Angle) { for(new i = 0; i < sizeof(SpikeInfo); i++) { if(SpikeInfo[i][sCreated] == 0) { SpikeInfo[i][sCreated] =1; SpikeInfo[i][sX] =x; SpikeInfo[i][sY] =y; SpikeInfo[i][sZ] =z -0.7; SpikeInfo[i][sObject] = CreateDynamicObject(2899, x, y, z -0.9, 0, 0, Angle -90); return 1; } } return 0; } //============================================================================== stock CreateRoadBlock(Float:x, Float:y, Float:z, Float:Angle) { for(new i = 0; i < sizeof(RoadBlockInfo); i++) { if(RoadBlockInfo[i][RBCreated] == 0) { RoadBlockInfo[i][RBCreated] =1; RoadBlockInfo[i][RBX] =x; RoadBlockInfo[i][RBY] =y; RoadBlockInfo[i][RBZ] =z -0.7; RoadBlockInfo[i][RBObject] = CreateDynamicObject(973, x, y, z -1.3, 0, 0, Angle); return 1; } } return 0; } //============================================================================== stock CreateTiki(Float:x, Float:y, Float:z) // Tiki { for(new i = 0; i < sizeof(TikiInfo); i++) { if(TikiInfo[i][tCreated] == 0) { TikiInfo[i][tCreated] =1; TikiInfo[i][tX] =x; TikiInfo[i][tY] =y; TikiInfo[i][tZ] =z; TikiInfo[i][tPickup] = CreateDynamicPickup(1276, 23, x, y, z); return 1; } } return 0; } //============================================================================== stock DeleteClosestTiki(playerid) // Tiki { new str[128]; for(new i = 0; i < sizeof(TikiInfo); i++) { if(IsPlayerInRangeOfPoint(playerid, 4.0, TikiInfo[i][tX], TikiInfo[i][tY], TikiInfo[i][tZ])) { if(TikiInfo[i][tCreated] == 1) { new location[MAX_ZONE_NAME]; GetPlayer2DZone(playerid, location, MAX_ZONE_NAME); format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has destroyed a tiki in %s (%0.2f, %0.2f, %0.2f).", PlayerOOCName(playerid), location, TikiInfo[i][tX], TikiInfo[i][tY], TikiInfo[i][tZ]); ABroadCast(COLOR_WHITE, str, 1); TikiInfo[i][tCreated] =0; TikiInfo[i][tX] =0.0; TikiInfo[i][tY] =0.0; TikiInfo[i][tZ] =0.0; DestroyDynamicPickup(TikiInfo[i][tPickup]); return 1; } } } return 0; } //============================================================================== stock DeleteAllTiki() { for(new i = 0; i < sizeof(TikiInfo); i++) { if(TikiInfo[i][tCreated] == 1) { TikiInfo[i][tCreated] =0; TikiInfo[i][tX] =0.0; TikiInfo[i][tY] =0.0; TikiInfo[i][tZ] =0.0; DestroyDynamicPickup(TikiInfo[i][tPickup]); } } return 0; } //============================================================================== stock DeleteAllStrip() { for(new i = 0; i < sizeof(SpikeInfo); i++) { if(SpikeInfo[i][sCreated] == 1) { SpikeInfo[i][sCreated] = 0; SpikeInfo[i][sX] = 0.0; SpikeInfo[i][sY] = 0.0; SpikeInfo[i][sZ] = 0.0; if(SpikeInfo[i][sObject]) { DestroyDynamicObjectEx(SpikeInfo[i][sObject]); } SpikeInfo[i][sObject] = 0; } } return 0; } //============================================================================== stock DeleteClosestStrip(playerid) { new str[128]; for(new i = 0; i < sizeof(SpikeInfo); i++) { if(IsPlayerInRangeOfPoint(playerid, 2.0, SpikeInfo[i][sX], SpikeInfo[i][sY], SpikeInfo[i][sZ])) { if(SpikeInfo[i][sCreated] == 1) { new location[MAX_ZONE_NAME]; GetPlayer2DZone(playerid, location, MAX_ZONE_NAME); format(str, sizeof(str), "HQ: %s %s has deleted a spike strip at %s.", GetPlayerRank(playerid), PlayerICName(playerid), location); SendRadioMessage(1, TEAM_BLUE_COLOR, str); SendRadioMessage(2, TEAM_BLUE_COLOR, str); SendRadioMessage(3, TEAM_BLUE_COLOR, str); SendRadioMessage(5, TEAM_BLUE_COLOR, str); SendRadioMessage(14, TEAM_BLUE_COLOR, str); SpikeInfo[i][sCreated] = 0; SpikeInfo[i][sX] = 0.0; SpikeInfo[i][sY] = 0.0; SpikeInfo[i][sZ] = 0.0; if(SpikeInfo[i][sObject]) { DestroyDynamicObjectEx(SpikeInfo[i][sObject]); } SpikeInfo[i][sObject] = 0; return 1; } } } return 0; } //============================================================================== stock DeleteAllRoadBlocks() { for(new i = 0; i < sizeof(RoadBlockInfo); i++) { if(RoadBlockInfo[i][RBCreated] == 1) { RoadBlockInfo[i][RBCreated] = 0; RoadBlockInfo[i][RBX] = 0.0; RoadBlockInfo[i][RBY] = 0.0; RoadBlockInfo[i][RBZ] = 0.0; if(RoadBlockInfo[i][RBObject]) { DestroyDynamicObjectEx(RoadBlockInfo[i][RBObject]); } RoadBlockInfo[i][RBObject] = 0; } } return 0; } //============================================================================== stock DeleteClosestRoadBlock(playerid) { for(new i = 0; i < sizeof(RoadBlockInfo); i++) { if(IsPlayerInRangeOfPoint(playerid, 10, RoadBlockInfo[i][RBX], RoadBlockInfo[i][RBY], RoadBlockInfo[i][RBZ])) { if(RoadBlockInfo[i][RBCreated] == 1) { RoadBlockInfo[i][RBCreated] = 0; RoadBlockInfo[i][RBX] = 0.0; RoadBlockInfo[i][RBY] = 0.0; RoadBlockInfo[i][RBZ] = 0.0; if(RoadBlockInfo[i][RBObject]) { DestroyDynamicObjectEx(RoadBlockInfo[i][RBObject]); } RoadBlockInfo[i][RBObject] = 0; return 1; } } } return 0; } //============================================================================== encode_tires(tires1, tires2, tires3, tires4) { return tires1 | (tires2 << 1) | (tires3 << 2) | (tires4 << 3); } //============================================================================== stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, &Float:z, &Float:a, Float:dist) { GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, a); if(GetPlayerVehicleID(playerid)) { GetVehicleZAngle(GetPlayerVehicleID(playerid), a); } x += (dist * floatsin(-a, degrees)); y += (dist * floatcos(-a, degrees)); } //============================================================================== stock UpdateWarnings(warning[]) { for(new i = 0; i < sizeof(Warnings) - 1; i++) { Warnings[i] = Warnings[i +1]; } new hour, minute, second; gettime(hour, minute, second); hour = FixHour(hour); format(Warnings[19], 256, "[%d:%d:%d] %s", hour, minute, second, warning); AWarncast(warning); return 1; } //============================================================================== stock AWarncast(const string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i) && gPlayerLogged[i]) { if(PlayerInfo[i][pAdmin] >= 1 && ToggedWarns[i] == false) { SendClientMessage(i, COLOR_WHITE, string2); } } } return 1; } //============================================================================== stock PlayerHasWeapon(playerid, _weaponid) { const MAX_WEAPONS_SLOTS = 13; static ammo, weaponid; for (new i; i != MAX_WEAPONS_SLOTS; i++) { if (GetPlayerWeaponData(playerid, i, weaponid, ammo) == 0) return 0; if (weaponid == _weaponid) return 1; } return 0; } //============================================================================== stock HaveWeapon(playerid, weaponid) { if(IsPlayerConnected(playerid)) { switch(weaponid) { case 1: { return PlayerInfo[playerid][pGun0]; } case 2..9: { return PlayerInfo[playerid][pGun1]; } case 10..15: { return PlayerInfo[playerid][pGun10]; } case 16..18: { return PlayerInfo[playerid][pGun8]; } case 22..24: { return PlayerInfo[playerid][pGun2]; } case 25..27: { return PlayerInfo[playerid][pGun3]; } case 28..29: { return PlayerInfo[playerid][pGun4]; } case 30..31: { return PlayerInfo[playerid][pGun5]; } case 32: { return PlayerInfo[playerid][pGun4]; } case 33..34: { return PlayerInfo[playerid][pGun6]; } case 35..38: { return PlayerInfo[playerid][pGun7]; } case 39: { return PlayerInfo[playerid][pGun8]; } case 41..43: { return PlayerInfo[playerid][pGun9]; } case 44..46: { return PlayerInfo[playerid][pGun11]; } case 40: { return PlayerInfo[playerid][pGun12]; } } } return 1; } //============================================================================== stock GivePlayerGun(playerid, weaponid) { switch(weaponid) { case 1: { aGun[playerid][0] = 0; PlayerInfo[playerid][pGun0] = 1; GivePlayerWeapon(playerid, 1, 1); } case 2..9: { aGun[playerid][1] = 0; PlayerInfo[playerid][pGun1] = weaponid; GivePlayerWeapon(playerid, weaponid, 1); } case 10..15: { aGun[playerid][10] = 0; PlayerInfo[playerid][pGun10] = weaponid; GivePlayerWeapon(playerid, weaponid, 1); } case 16..18, 39: { aGun[playerid][8] = 0; PlayerInfo[playerid][pGun8] = weaponid; GivePlayerWeapon(playerid, weaponid, 2); } case 21: { aGun[playerid][12] = 0; PlayerInfo[playerid][pGun12] = 21; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK); } case 22..24: { aGun[playerid][2] = 0; PlayerInfo[playerid][pGun2] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 25..27: { aGun[playerid][3] = 0; PlayerInfo[playerid][pGun3] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 28..29, 32: { aGun[playerid][4] = 0; PlayerInfo[playerid][pGun4] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 30, 31: { aGun[playerid][5] = 0; PlayerInfo[playerid][pGun5] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 33, 34: { aGun[playerid][6] = 0; PlayerInfo[playerid][pGun6] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 35, 36: { aGun[playerid][7] = 0; PlayerInfo[playerid][pGun7] = weaponid; GivePlayerWeapon(playerid, weaponid, 2); } case 37..38: { aGun[playerid][7] = 0; PlayerInfo[playerid][pGun7] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 40: { aGun[playerid][12] = 0; PlayerInfo[playerid][pGun12] = 40; GivePlayerWeapon(playerid, 40, 1); } case 41..43: { aGun[playerid][9] = 0; PlayerInfo[playerid][pGun9] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 44..46: { aGun[playerid][11] = 0; PlayerInfo[playerid][pGun11] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } } return 1; } //============================================================================== stock HaveAdminWeapon(playerid, weaponid) { if(IsPlayerConnected(playerid)) { switch(weaponid) { case 1: { return aGun[playerid][0]; } case 2..9: { return aGun[playerid][1]; } case 10..15: { return aGun[playerid][10]; } case 16..18: { return aGun[playerid][8]; } case 22..24: { return aGun[playerid][2]; } case 25..27: { return aGun[playerid][3]; } case 28..29: { return aGun[playerid][4]; } case 30..31: { return aGun[playerid][5]; } case 32: { return aGun[playerid][4]; } case 33..34: { return aGun[playerid][6]; } case 35..38: { return aGun[playerid][7]; } case 39: { return aGun[playerid][8]; } case 41..43: { return aGun[playerid][9]; } case 44..46: { return aGun[playerid][11]; } case 40: { return aGun[playerid][12]; } } } return 1; } //============================================================================== stock GivePlayerAdminGun(playerid, weaponid) { switch(weaponid) { case 1: { aGun[playerid][0] = 1; GivePlayerWeapon(playerid, 1, 1); } case 2..9: { aGun[playerid][1] = weaponid; GivePlayerWeapon(playerid, weaponid, 1); } case 10..15: { aGun[playerid][10] = weaponid; GivePlayerWeapon(playerid, weaponid, 1); } case 16..18, 39: { aGun[playerid][8] = weaponid; GivePlayerWeapon(playerid, weaponid, 2); } case 21: { aGun[playerid][12] = 21; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK); } case 22..24: { aGun[playerid][2] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 25..27: { aGun[playerid][3] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 28..29, 32: { aGun[playerid][4] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 30, 31: { aGun[playerid][5] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 33, 34: { aGun[playerid][6] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 35..38: { aGun[playerid][7] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 40: { aGun[playerid][12] = 40; GivePlayerWeapon(playerid, 40, 1); } case 41..43: { aGun[playerid][9] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } case 44..46: { aGun[playerid][11] = weaponid; GivePlayerWeapon(playerid, weaponid, 99999); } } return 1; } //============================================================================== stock ResetPlayerAdminWeaponsEx(playerid) { ResetPlayerWeapons(playerid); aGun[playerid][0] = 0; aGun[playerid][1] = 0; aGun[playerid][2] = 0; aGun[playerid][3] = 0; aGun[playerid][4] = 0; aGun[playerid][5] = 0; aGun[playerid][6] = 0; aGun[playerid][7] = 0; aGun[playerid][8] = 0; aGun[playerid][9] = 0; aGun[playerid][10] = 0; aGun[playerid][11] = 0; aGun[playerid][12] = 0; return 1; } //============================================================================== stock Teleport(playerid, Float:x, Float:y, Float:z, Float:a, interiorid, virtualid, getvehicle) { if(getvehicle && (getvehicle = GetPlayerVehicleID(playerid))) { SetVehiclePos(getvehicle, x, y, z); SetVehicleZAngle(getvehicle, a); LinkVehicleToInterior(getvehicle, interiorid); SetVehicleVirtualWorld(getvehicle, virtualid); new trailerid = GetVehicleTrailer(getvehicle); //bike = IsABike(getvehicle); if(trailerid) { DetachTrailerFromVehicle(getvehicle); SetVehiclePos(trailerid, x, y, z); LinkVehicleToInterior(trailerid, interiorid); SetVehicleVirtualWorld(trailerid, virtualid); SetVehicleZAngle(trailerid, a); AttachTrailerToVehicle(trailerid, getvehicle); } foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(IsPlayerInVehicle(i, getvehicle)) { SetPlayerInterior(i, interiorid); SetPlayerVirtualWorld(i, virtualid); } else if(trailerid && IsPlayerInVehicle(i, trailerid)) { SetPlayerInterior(i, interiorid); SetPlayerVirtualWorld(i, virtualid); SetCameraBehindPlayer(i); } } } } else { SetPlayerPos(playerid, x, y, z); SetPlayerInterior(playerid, interiorid); SetPlayerFacingAngle(playerid, a); SetPlayerVirtualWorld(playerid, virtualid); SetCameraBehindPlayer(playerid); } } //============================================================================== stock IsABadgeFaction(playerid) // could be written better, assigned to me ~ Desmond { if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1) return 1; if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2) return 1; if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3) return 1; if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4) return 1; if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5) return 1; if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6) return 1; if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 7) return 1; if(PlayerInfo[playerid][pMember] == 14 || PlayerInfo[playerid][pLeader] == 14) return 1; if(PlayerInfo[playerid][pGroup] == 11) return 1; return 0; } stock GetPlayerHAFactionName(playerid) { new ttext[64]; switch(PlayerInfo[playerid][pHAFakeBadge]) { case 1: ttext = "SAPD"; case 2: //ttext = "FBI"; ttext = "FBI"; case 4: ttext = "SAFMD"; case 5: ttext = "DoC"; case 6: ttext = "Government"; case 14: //ttext = "SANG"; ttext = "AFSA"; } return ttext; } stock IsRoadblockFaction(playerid) { switch(PlayerInfo[playerid][pMember]) { case 1: return true; case 2: return true; case 3: return true; case 4: return true; case 5: return true; case 11: return true; case 14: return true; case 15: return true; } if(PlayerInfo[playerid][pGroup] == GROUP_S9) return true; return false; } stock IsRoadblockRank(playerid) { switch(PlayerInfo[playerid][pMember]) { case 1: { if(PlayerInfo[playerid][pRank] >= 2) return true; } case 2: { if(PlayerInfo[playerid][pRank] >= 3) return true; } case 3: { if(PlayerInfo[playerid][pRank] >= 2) return true; } case 4: { if(PlayerInfo[playerid][pRank] >= 4) return true; } case 5: { if(PlayerInfo[playerid][pRank] >= 3) return true; } case 11: { return true; } case 14: { if(PlayerInfo[playerid][pRank] >= 2) return true; } case 15: { if(PlayerInfo[playerid][pRank] >= 2) return true; } } return false; } stock getClosestRoadblockID(playerid) { for(new i; i < 11; i++) if(IsPlayerNearDynamicObject(playerid, roadblockObjects[playerid][i], 2.0)) return i; return -1; } stock IsPlayerNearDynamicObject(playerid, objectid, Float:range) { new Float:X, Float:Y, Float:Z; GetDynamicObjectPos(objectid, X, Y, Z); if(IsPlayerInRangeOfPoint(playerid, range, X, Y, Z)) return true; return false; } stock GetPlayerFamilyName(playerid) { new fname[64]; if(PlayerInfo[playerid][pFMember] != 255) format(fname, sizeof(fname), "%s", FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyName]); return fname; } stock GetFactionName(facID) { new fname[64]; switch(facID) { case 1: fname = "SAPD"; //case 2: fname = "FBI"; // Old FBi | New DEA // case 2: fname = "FBI"; case 3: fname = "SASD"; case 4: fname = "SAFMD"; case 5: fname = "DoC"; case 6: fname = "Government"; case 7: fname = "DOJ"; case 8: fname = "HA"; case 9: fname = "News"; case 10: fname = "Taxi"; case 11: fname = "S9"; case 12: fname = "DEA"; case 13: fname = "ATF"; //case 14: fname = "SANG"; case 14: fname = "AFSA"; case 15: fname = "SAS"; default: fname = "None"; } return fname; } stock GetPlayerFactionName(playerid, bool:ignoreUndercover = false) { new fname[64]; if(PlayerInfo[playerid][pMember] == 11) { if(ignoreUndercover) fname = "S9"; else { if(FakeFaction[playerid]) format(fname, sizeof(fname), "%s", GetFactionName(FakeFaction[playerid])); else format(fname, sizeof(fname), "%s", GetFactionName(FACTION_NONE)); } } else { format(fname, sizeof(fname), "%s", GetFactionName(PlayerInfo[playerid][pMember])); } return fname; } stock GetPlayerAffiliationName(playerid) { new fname[64]; // if player is in a family, format family name if(PlayerInfo[playerid][pFMember] != 255) format(fname, sizeof(fname), "%s", FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyName]); // else format faction name else { switch(PlayerInfo[playerid][pMember]) { case 1: fname = "SAPD"; case 2: //fname = "FBI"; fname = "FBI"; case 3: fname = "SASD"; case 4: fname = "SAFMD"; case 5: fname = "DoC"; case 6: fname = "Government"; case 7: fname = "DOJ"; case 8: fname = "HA"; case 9: fname = "SAN"; case 10: fname = "Taxi"; case 11: fname = "None"; case 12: fname = "DEA"; case 13: fname = "ATF"; case 14: //fname ="SANG"; fname ="AFSA"; case 15: fname ="SAS"; default: fname = "None"; } } return fname; } //============================================================================== stock ReturnVehicleModelID(string2[]) { if(IsNumeric(string2)) { new idd = strval(string2); if(idd >= 400 && idd <= 611) { return idd; } } for(new i = 0; i < sizeof(vehName); i++) { if(strfind(vehName[i], string2, true) != -1) { return i + 400; } } return 0; } //============================================================================== stock IsFactionVehicle(modelid) { if(modelid == 470 || modelid == 596 || modelid == 597|| modelid == 598 || modelid == 599 || modelid == 582 || modelid == 548 || modelid == 544 || modelid == 523 || modelid == 497 || modelid == 490 || modelid == 488 || modelid == 432 || modelid == 430 || modelid == 427 || modelid == 425 || modelid == 420 || modelid == 416 || modelid == 407) return 1; else return 0; } //============================================================================== stock GetPlayerGender(playerid) { new str[128]; switch(PlayerInfo[playerid][pSex]) { case 1: str = "his"; case 2: str = "her"; default: // If player sex is unknown - Vega str = "their"; } return str; } stock GetCrimeType(type) { new str[128]; switch(type) { case 0: str = "ERROR"; case 1: str = "Ticket"; case 2: str = "Warrant"; case 3: str = "BOLO"; } return str; } stock GetPlayerRank(playerid) { new str[128]; str = "None"; if(customRankName[playerid] == true) { if(PlayerInfo[playerid][pMember] != 0 || PlayerInfo[playerid][pFMember] != 0) { format(str, sizeof(str), "%s", customRank[playerid]); } else { str = "None"; } } else { // if player is in a family, format family rank if(PlayerInfo[playerid][pFMember] != 255) { new fam = PlayerInfo[playerid][pFMember]; new rank = PlayerInfo[playerid][pRank]; if(rank >= 1 && rank <= 6) { format(str, sizeof(str), "%s", FamilyRank[fam][rank -1]); } else { format(str, sizeof(str), "%s", FamilyRank[fam][0]); } } // else format faction rank else if(PlayerInfo[playerid][pMember] >= 1) { // format str according to rank title and broadcast switch(PlayerInfo[playerid][pMember]) { case 1: // police { switch(PlayerInfo[playerid][pRank]) { case 9: str = "Commissioner"; case 8: str = "Chief of Police"; case 7: str = "Deputy Chief of Police"; case 6: str = "Commander"; case 5: str = "Captain"; case 4: str = "Lieutenant"; case 3: str = "Sergeant"; case 2: str = "Senior Officer"; case 1: str = "Officer"; default: str = "Cadet"; } } case 2: // fbi { switch(PlayerInfo[playerid][pRank]) { case 7: str = "Director"; case 6: str = "Deputy Director"; case 5: str = "Chief of Staff"; case 4: str = "Special Agent in Charge"; case 3: str = "Special Agent"; case 2: str = "Agent"; case 1: str = "Staff"; default: str = "Intern"; } } case 3: // SASD { switch(PlayerInfo[playerid][pRank]) { case 7: str = "Sheriff"; case 6: str = "Undersheriff"; case 5: str = "Commander"; case 4: str = "Captain"; case 3: str = "Sergeant"; case 2: str = "Deputy ll"; case 1: str = "Deputy"; default: str = "Cadet"; } } case 4: // SAFMD { switch(PlayerInfo[playerid][pRank]) { case 6: str = rankNames_FMD[6]; case 5: str = rankNames_FMD[5]; case 4: str = rankNames_FMD[4]; case 3: str = rankNames_FMD[3]; case 2: str = rankNames_FMD[2]; case 1: str = rankNames_FMD[1]; default: str = rankNames_FMD[0]; } } case 5: // DoC { switch(PlayerInfo[playerid][pRank]) { case 6: str = "Warden"; case 5: str = "Deputy Warden"; case 4: str = "Captain"; case 3: str = "Lieutenant"; case 2: str = "Sergeant"; case 1: str = "Corporal"; default: str = "Correctional Officer"; } } case 6: // senate { switch(PlayerInfo[playerid][pRank]) { case 5: str = "President"; case 4: str = "Vice-President"; case 3: str = "Secretary"; case 2: str = "Staff"; case 1: str = "Security"; default: str = "Intern"; } } case 7: // high court { switch(PlayerInfo[playerid][pRank]) { case 1: str = "Federal Judge"; default: str = "State Judge"; } } case 9: // news { switch(PlayerInfo[playerid][pRank]) { case 7: str = "Network Executive"; case 6: str = "Network Manager"; case 5: str = "Chief of Staff"; case 4: str = "News Anchor"; case 3: str = "Correspondent"; case 2: str = "Field Reporter"; case 1: str = "Junior Reporter"; default: str = "Intern"; } } case 10: // taxi { switch(PlayerInfo[playerid][pRank]) { case 6: str = "Commissioner"; case 5: str = "Supervisor"; case 4: str = "Veteran Driver"; case 3: str = "Cabbie"; case 2: str = "Taxi Driver"; case 1: str = "Taxi Rookie"; default: str = "Trainee"; } } case 11: // S9 ranks { switch(PlayerInfo[playerid][pRank]) { case 3: str = "ERROR66"; case 2: str = "ERROR66"; case 1: str = "ERROR66"; default: str = "ERROR66"; } } case 14: // SANG { switch(PlayerInfo[playerid][pRank]) { case 6: str = "General"; case 5: str = "Lieutenant General"; case 4: str = "Colonel"; case 3: str = "Major"; case 2: str = "Sergeant"; case 1: str = "Corporal"; default: str = "Private"; } } case 15: //SAS { switch(PlayerInfo[playerid][pRank]) { case 8: str = "Executive"; case 7: str = "Comptroller"; case 6: str = "Manager"; case 5: str = "Assistant Manager"; case 4: str = "Supervisor"; case 3: str = "Senior Worker"; case 2: str = "Worker"; case 1: str = "Laborer"; default: str = "Probationary"; } } } } } if(PlayerInfo[playerid][pMember] == 11) { str = GetFakeRank(playerid); } return str; } stock GetFactionRankName(factionid, rankid) { new str[128]; switch(factionid) { case 1: // police { switch(rankid) { case 9: str = "Commissioner"; case 8: str = "Chief of Police"; case 7: str = "Deputy Chief of Police"; case 6: str = "Commander"; case 5: str = "Captain"; case 4: str = "Lieutenant"; case 3: str = "Sergeant"; case 2: str = "Senior Officer"; case 1: str = "Officer"; default: str = "Cadet"; } } case 2: // old fbi | New DEA { switch(rankid) { case 8: str = "Director"; case 7: str = "Deputy Director"; case 6: str = "Chief of Staff"; case 4: str = "Special Agent in Charge"; case 3: str = "Special Agent"; case 2: str = "Agent"; case 1: str = "Staff"; default: str = "Intern"; } } case 3: // SASD { switch(rankid) { case 7: str = "Sheriff"; case 6: str = "Undersheriff"; case 5: str = "Commander"; case 4: str = "Captain"; case 3: str = "Sergeant"; case 2: str = "Deputy ll"; case 1: str = "Deputy"; default: str = "Cadet"; } } case 4: // SAFMD { switch(rankid) { case 6: str = rankNames_FMD[6]; case 5: str = rankNames_FMD[5]; case 4: str = rankNames_FMD[4]; case 3: str = rankNames_FMD[3]; case 2: str = rankNames_FMD[2]; case 1: str = rankNames_FMD[1]; default: str = rankNames_FMD[0]; } } case 5: // DoC { switch(rankid) { case 6: str = "Warden"; case 5: str = "Deputy Warden"; case 4: str = "Captain"; case 3: str = "Lieutenant"; case 2: str = "Sergeant"; case 1: str = "Corporal"; default: str = "Correctional Officer"; } } case 6: // senate { switch(rankid) { case 5: str = "President"; case 4: str = "Vice-President"; case 3: str = "Secretary"; case 2: str = "Staff"; case 1: str = "Security"; default: str = "Intern"; } } case 7: // high court { switch(rankid) { case 6: str = "Chief Justice"; case 5: str = "Attorney General"; case 4: str = "Associate Justice"; case 3: str = "Judge"; case 2: str = "District Attorney"; case 1: str = "Public Defender"; default: str = "Law Student"; } } case 9: // news { switch(rankid) { case 7: str = "Network Executive"; case 6: str = "Network Manager"; case 5: str = "Chief of Staff"; case 4: str = "News Anchor"; case 3: str = "Correspondent"; case 2: str = "Field Reporter"; case 1: str = "Junior Reporter"; default: str = "Intern"; } } case 10: // taxi { switch(rankid) { case 6: str = "Commissioner"; case 5: str = "Supervisor"; case 4: str = "Veteran Driver"; case 3: str = "Cabbie"; case 2: str = "Taxi Driver"; case 1: str = "Taxi Rookie"; default: str = "Trainee"; } } case 11: // S9 ranks { switch(rankid) { case 3: str = "ERROR66"; case 2: str = "ERROR66"; case 1: str = "ERROR66"; default: str = "ERROR66"; } } case 14: // SANG { switch(rankid) { case 6: str = "General"; case 5: str = "Lieutenant General"; case 4: str = "Colonel"; case 3: str = "Major"; case 2: str = "Sergeant"; case 1: str = "Corporal"; default: str = "Private"; } } case 15: //SAS { switch(rankid) { case 8: str = "Executive"; case 7: str = "Comptroller"; case 6: str = "Manager"; case 5: str = "Assistant Manager"; case 4: str = "Supervisor"; case 3: str = "Senior Worker"; case 2: str = "Worker"; case 1: str = "Laborer"; default: str = "Probationary"; } } } return str; } stock IsValidPaymentFaction(playerid) { if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pMember] == FACTION_SANG) return 1; return 0; } stock GetPlayerFactionPayment(playerid) { new payment; switch(PlayerInfo[playerid][pMember]) { case 1: // police { switch(PlayerInfo[playerid][pRank]) { case 9: payment = 15500; case 8: payment = 15000; case 7: payment = 14500; case 6: payment = 12000; case 5: payment = 10000; case 4: payment = 8000; case 3: payment = 6500; case 2: payment = 5500; case 1: payment = 5000; default: payment = 4500; } } case 2: // fbi | DEA { switch(PlayerInfo[playerid][pRank]) { case 6: payment = 13000; case 5: payment = 12000; case 4: payment = 10000; case 3: payment = 9000; case 2: payment = 8000; case 1: payment = 7000; default: payment = 5500; } } case 4: // fmd { switch(PlayerInfo[playerid][pRank]) { case 8: payment = 16000; case 7: payment = 15000; case 6: payment = 14500; case 5: payment = 12000; case 4: payment = 9000; case 3: payment = 7000; case 2: payment = 5500; case 1: payment = 5300; default: payment = 4500; } } case 14: // SANG { switch(PlayerInfo[playerid][pRank]) { case 8: payment = 14000; case 7: payment = 13500; case 6: payment = 11000; case 5: payment = 9000; case 4: payment = 7000; case 3: payment = 5500; case 2: payment = 4500; case 1: payment = 4000; default: payment = 3500; } } case 6: // gov { switch(PlayerInfo[playerid][pRank]) { case 7: payment = 16500; case 6: payment = 13500; case 5: payment = 10000; case 4: payment = 8000; case 3: payment = 6500; case 2: payment = 5500; case 1: payment = 4500; default: payment = 3500; } } } return payment; } stock GetFakeRank(playerid) { new str[128]; str = "None"; new DEARank[24]; if(PlayerInfo[playerid][pMember] == 11) { str = GetFactionRankName(FakeFaction[playerid], FakeRank[playerid]); } else { if(PlayerInfo[playerid][pHAFakeBadge] == 12 && PlayerInfo[playerid][pGroup] == 1) switch(PlayerInfo[playerid][pGroupRank]) { case 1: DEARank = "Staff"; case 2: DEARank = "Agent"; case 3: DEARank = "Agent"; case 4: DEARank = "Special Agent"; case 5: DEARank = "Special Agent In-Charge"; case 6: DEARank = "Special Agent In-Charge"; default: DEARank = "Staff"; } switch(PlayerInfo[playerid][pHAFakeBadge]) { case 1: str = "Officer"; case 2: str = "Staff"; case 3: str = "Deputy Trooper I"; case 4: str = "First Responder"; case 5: str = "Corporal"; case 6: str = "Staff"; case 14: str = "Corporal"; case 12: str = DEARank; } } return str; } stock RealS9Rank(playerid) { new str[128]; switch(PlayerInfo[playerid][pGroupRank]) { case 4: str = "Director"; case 3: str = "Assistant Director"; case 2: str = "Special Agent"; case 1: str = "Senior Agent"; case 0: str = "Agent"; default: str = "Error: contact Avery"; } return str; } //============================================================================== stock str_replace(sSearch, sReplace, const sSubject[], &iCount = 0) { #pragma unused iCount new sReturn[128]; format(sReturn, sizeof(sReturn), sSubject); for(new i = 0; i < sizeof(sReturn); i++) { if(sReturn[i] == sSearch) { sReturn[i] = sReplace; } } return sReturn; } stock PlayerName(playerid) { new name[MAX_PLAYER_NAME+1]; GetPlayerName(playerid, name, sizeof(name)); return name; } stock CallerIDName(playerid, bool:status) { new name[MAX_PLAYER_NAME]; if(status == true)name = "Unknown"; else { strmid(name, str_replace('_', ' ', PlayerName(playerid)), 0, MAX_PLAYER_NAME); } return name; } stock PlayerOOCName(playerid) { new name[24]; strmid(name, str_replace('_', ' ', PlayerName(playerid)), 0, MAX_PLAYER_NAME); return name; } stock PlayerICName(playerid) { new name[MAX_PLAYER_NAME]; if(PlayerInfo[playerid][pMask] == 0 || ADuty[playerid]) { strmid(name, str_replace('_', ' ', PlayerName(playerid)), 0, MAX_PLAYER_NAME); } else { if(PlayerInfo[playerid][pMember] == FACTION_FBI) { format(name, sizeof(name), "Agent"); } // Masks without numbers if( PlayerInfo[playerid][pGroup] == GROUP_S9 || PlayerInfo[playerid][pGroup] == GROUP_HITMAN || PlayerInfo[playerid][pGroup] == GROUP_CRIME ) { if(PlayerInfo[playerid][pMaskName][0] != 0) format(name, sizeof(name), "%s", PlayerInfo[playerid][pMaskName]); else { format(name, sizeof(name), "Stranger"); } } // Mask with numbers else if( PlayerInfo[playerid][pGroup] == GROUP_CARTEL ) { if(PlayerInfo[playerid][pMaskName][0] != 0) { format(name, sizeof(name), "%s (%i)", PlayerInfo[playerid][pMaskName], MaskNumber[playerid]); } else { format(name, sizeof(name), "Stranger (%i)", MaskNumber[playerid]); } } else { format(name, sizeof(name), "Stranger (%i)", MaskNumber[playerid]); } } return name; } stock GetPlayerICName(playerid, stringtoedit[], size) { strmid(stringtoedit, PlayerICName(playerid), 0, MAX_PLAYER_NAME, size); } //============================================================================== stock InvalidChar(string[]) { if(strfind(string, "|", true) == -1) { return 0; } else { return 1; } } //============================================================================== stock strvalEx(string[ ]) { if(strlen(string) >= 50) return -1; return strval(string); } stock DestroyDynamicObjectEx(&objectid) { if(IsValidDynamicObject(objectid)){ DestroyDynamicObject(objectid); objectid = 0; return 1; } return 0; } //============================================================================== stock IsValidNosVehicle(vehicleid) { if(IsAPlane(vehicleid)) return 0; else if(IsAHelicopter(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; } stock IsACar(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 400 .. 416, 418 .. 424, 426 .. 429, 431 .. 445, 448, 451, 455 .. 459, 461 .. 463, 466 .. 468, 470, 471, 474, 475, 477 .. 480, 482, 483, 485, 486, 489 .. 492, 494 .. 496, 498 .. 500, 502 .. 508, 514 .. 518, 521 .. 536, 540 .. 547, 549 .. 552, 554 .. 562, 565 .. 576, 578 .. 591, 596 .. 611: return 1; } return 0; } //============================================================================== stock IsADriveByWeapon(weaponid) { if( weaponid == WEAPON_UZI || weaponid == WEAPON_TEC9 || weaponid == WEAPON_MP5 || weaponid == WEAPON_AK47 || weaponid == WEAPON_M4 ) return true; return false; } //============================================================================== stock IsInvalidSkin(skinid) { switch(skinid) { case 3, 4, 5, 6, 7, 8, 42, 65, 74, 86, 119, 149, 208, 273, 289: return 1; } return 0; } //============================================================================== stock IsInvalidDetainSeat(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 528, 601, 599: return 1; } return 0; } //============================================================================== stock IsInvalidDetainVehicle(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 509, 481, 462, 510, 448, 471: return 1; } return 0; } //============================================================================== IsValidStretcherVehicle(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 563, 416: return 1; } return 0; } //============================================================================== stock IsNonFuelVehicle(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 592, 577, 511, 512, 593, 520, 553, 476, 519, 460, 513, 548, 425, 417, 487, 488, 497, 563, 447, 469, 509, 481, 510, 472, 473, 493, 595, 484, 430, 453, 452, 446, 454, 449, 537, 538, 569, 570, 590: return 1; } return 0; } //============================================================================== stock IsABike(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 448, 461, 462, 463, 468, 521, 522, 523, 581, 586, 481, 509, 510: return 1; } return 0; } stock IsAPushBike(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 509, 481, 510: return 1; } return 0; } stock isABike(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 462, 448, 581, 522, 461, 521, 523, 463, 586, 468, 471: return 1; } return 0; } //============================================================================== stock IsABicycle(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 509, 481, 510: return 1; } return 0; } //============================================================================== stock IsInvalidNeonVehicle(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 403, 406..408, 414, 416, 417, 423, 425, 427, 428, 430..433, 435, 437, 441, 443, 446..450, 452..456, 460..465, 468..473, 476, 478, 481..490, 493, 497, 498, 499, 501, 504, 505, 507..517, 519..526, 528..532, 537..539, 542..544, 546..549, 551..557, 561, 563, 564, 568..574, 577, 578, 581..586, 588, 590..597, 599..602, 604..611: return 1; } return 0; } //============================================================================== stock IsABoat(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 430, 446, 452, 453, 454, 472, 473, 484, 493, 595: return 1; } return 0; } //============================================================================== stock IsAPlane(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 460, 464, 476, 511, 512, 513, 519, 520, 553, 577, 592, 593: return 1; } return 0; } //============================================================================== stock IsAHelicopter(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 417, 425, 447, 465, 469, 487, 488, 497, 501, 548, 563: return 1; } return 0; } //============================================================================== stock IsATrain(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 449, 537, 538, 569, 570, 590: return 1; } return 0; } //============================================================================== stock IsACopCar(vehicleid) { switch(GetVehicleModel(vehicleid)) { //commented enforcer 427 so people can drive it case 523, 528, 596, 598, 597, 599, 601, 497, 430, 427, 472: return 1; } return 0; } //============================================================================== stock IsANGCar(vehicleid) { if(vehicleid == DOCbus) return 1; switch(GetVehicleModel(vehicleid)) { case 470, 472, 548, 433, 432, 425, 520, 427, 476: return 1; } return 0; } //============================================================================== //============================================================================== stock IsAGovtCar(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 0: return 1; } return 0; } //============================================================================== stock IsAnAmbulance(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 416, 407, 563, 544: return 1; } return 0; } stock IsDMVCar(vehicleid) { for(new i = 0; i < sizeof(DMVCar); i++) { if(vehicleid == DMVCar[i]) return 1; } return 0; } //============================================================================== stock IsABronzeCar(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 559, 560, 581: return 1; } return 0; } stock IsASilverCar(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 522, 451, 603: return 1; } return 0; } stock IsAGoldCar(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 541, 411: return 1; } return 0; } stock IsADiamondCar(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 562, 415, 434, 535, 495, 515, 487: return 1; } return 0; } //============================================================================== stock IsAVipCar(vehicleid) { for(new i = 0; i < sizeof(VipCars); i++) { if(vehicleid == VipCars[i]) return 1; } return 0; } //============================================================================== stock IsATaxiCar(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 420, 438: return 1; } return 0; } //============================================================================== stock IsANewsCar(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 582, 488: return 1; } return 0; } //============================================================================== stock IsABus(vehicleid) { switch(GetVehicleModel(vehicleid)) { case 431, 437: return 1; } return 0; } stock IsASenateCar(veh) { for(new v = 0; v < sizeof(SenateCar); v++) { if(v == veh) return 1; } return 0; } //============================================================================== stock TakePlayerWeapon(playerid, pgun) { if(IsPlayerConnected(playerid)) { new weapons[13]; new aweapons[13]; for(new i = 0; i < 13; i++) { aweapons[i] = aGun[playerid][i]; } weapons[12] = PlayerInfo[playerid][pGun12]; weapons[11] = PlayerInfo[playerid][pGun11]; weapons[10] = PlayerInfo[playerid][pGun10]; weapons[9] = PlayerInfo[playerid][pGun9]; weapons[8] = PlayerInfo[playerid][pGun8]; weapons[7] = PlayerInfo[playerid][pGun7]; weapons[6] = PlayerInfo[playerid][pGun6]; weapons[5] = PlayerInfo[playerid][pGun5]; weapons[4] = PlayerInfo[playerid][pGun4]; weapons[3] = PlayerInfo[playerid][pGun3]; weapons[2] = PlayerInfo[playerid][pGun2]; weapons[1] = PlayerInfo[playerid][pGun1]; weapons[0] = PlayerInfo[playerid][pGun0]; ClearGuns(playerid); for(new i = 0; i < 13; i++) { if(pgun != aweapons[i]) GivePlayerAdminGun(playerid, aweapons[i]); if(pgun != weapons[i]) GivePlayerGun(playerid, weapons[i]); } } return 1; } //============================================================================== stock SetPlayerFacingPlayer(playerid, giveplayerid) { new Float:angle; new Float:misc = 5.0; new Float:x, Float:y, Float:z; new Float:ix, Float:iy, Float:iz; GetPlayerPos(giveplayerid, x, y, z); GetPlayerPos(playerid, ix, iy, iz); angle = 180.0 -atan2(ix -x, iy -y); angle += misc; misc *= -1; SetPlayerFacingAngle(playerid, angle +misc); } //============================================================================== stock SetPlayerFacingObject(playerid, objectid) { new Float:angle; new Float:misc = 5.0; new Float:X, Float:Y, Float:Z; new Float:plX, Float:plY, Float:plZ; GetDynamicObjectPos(objectid, X, Y, Z); GetPlayerPos(playerid, plX, plY, plZ); angle = 180.0 -atan2(plX -X, plY -Y); angle += misc; misc *= -1; SetPlayerFacingAngle(playerid, angle +misc); } //============================================================================== stock GetPlayerSpeed(playerid, bool:kmh) { new Float:Vx, Float:Vy, Float:Vz, Float:rtn; if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid), Vx, Vy, Vz); else GetPlayerVelocity(playerid, Vx, Vy, Vz); rtn = floatsqroot(floatabs(floatpower(Vx + Vy + Vz, 2))); return kmh ?floatround(rtn * 100 * 1.61) :floatround(rtn * 100); } //============================================================================== stock GetPlayerSpeed2(playerid, get3d) { new Float:x, Float:y, Float:z; if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid), x, y, z); else GetPlayerVelocity(playerid, x, y, z); return JB_Speed(x, y, z, 100.0, get3d); } //============================================================================== stock GetSquareDistance(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2) { x1 -=x2; y1 -=y2; z1 -=z2; x1 *=x1; y1 *=y1; z1 *=z1; return floatround(x1 +y1 +z1); } //============================================================================== stock GetClosestPlayer(p1) { new Float:dis, Float:dis2, player2; player2 = -1; dis = 99999.99; foreach( new i: Player ) { if(GetPlayerState(i) != PLAYER_STATE_SPECTATING) { if(i != p1) { dis2 = GetDistanceBetweenPlayers(i, p1); if(dis2 < dis && dis2 != -1.00) { dis = dis2; player2 = i; } } } } return player2; } //============================================================================== //============================================================================== IsPlayerNearWeed(playerid) { for(new i = 0; i < MAX_WEED; i++) { if(WeedInfo[i][WeedPlanted] == 1) { if(IsPlayerInRangeOfPoint(playerid, 2.0, WeedInfo[i][WeedX], WeedInfo[i][WeedY], WeedInfo[i][WeedZ])) { return i; } } } return -1; } //============================================================================== Timer:SlipOffFix(playerid){ slipOff[playerid] = false; return 1; } //============================================================================== public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { new str[128]; if(pDeathState[playerid] != PLAYER_STATE_NORMAL) { ClearAnimationsEx(playerid); return 1; } //if(PlayerInfo[playerid][pLevel] <= 1 && (IsAPlane(vehicleid) || IsAHelicopter(vehicleid) ) ) if(IsAPlane(vehicleid) || IsAHelicopter(vehicleid)) { if(PlayerInfo[playerid][pConnectTime] < 1) { ClearAnimationsEx(playerid); PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_GREY, "You must play for at least 1 hour before you can fly this."); return 1; } } new dynvehID = GetDynamicVehicleID(vehicleid); new bool:skip = false; if(sVehicleInfo[dynvehID][v_lock] == 1) { ClearAnimationsEx(playerid); return 1; } if(sVehicleInfo[dynvehID][v_faction] != 0 || sVehicleInfo[dynvehID][v_group] != 0) { if(!ispassenger) { if(PlayerInfo[playerid][pMember] == 3 && sVehicleInfo[dynvehID][v_faction] == 1) skip = true; // SASD can drive SAPD if(PlayerInfo[playerid][pMember] == 1 && sVehicleInfo[dynvehID][v_faction] == 3) skip = true; // SAPD can drive SASD if(PlayerInfo[playerid][pMember] == 2 && sVehicleInfo[dynvehID][v_faction] == 1) skip = true; // fbi | DEAcan drive SAPD if(PlayerInfo[playerid][pMember] == 2 && sVehicleInfo[dynvehID][v_faction] == 3) skip = true; // fbi | DEA can drive SASD if(PlayerInfo[playerid][pGroup] == GROUP_S9) skip = true; // s9 can drive all locked vehicles if(PlayerInfo[playerid][pGroup] != 0 && PlayerInfo[playerid][pGroup] == sVehicleInfo[dynvehID][v_group]) skip = true; if((PlayerInfo[playerid][pMember] != sVehicleInfo[dynvehID][v_faction]) && (skip == false)) { if(!(sVehicleInfo[dynvehID][v_faction] == 10 && PlayerInfo[playerid][pJob] == 14)) { displayCenterHUDInfo(playerid, "You do not have keys for this vehicle.", 8); PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); ClearAnimationsEx(playerid); } } } } //if( JobOnPlayerEnterVehicle( playerid, vehicleid, ispassenger ) == 1 ) return 1; new Float:x, Float:y, Float:z; if(GetPlayerSurfingVehicleID(playerid) == vehicleid) { if(!IsABoat(vehicleid)) { if(slipOff[playerid] == false){ new Float:hp; GetPlayerHealth(playerid, hp); GetPlayerPos(playerid, x, y, z); format(str, sizeof(str), "* %s slipped off the top of the vehicle and fell.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); SetPlayerPos(playerid, x +3, y +3, z +1); SetPlayerHealth(playerid, hp -3); slipOff[playerid] = true; PlayerPlaySound(playerid, 1130, 0.0, 0.0, 0.0); LoopingAnim(playerid, "PED", "BIKE_fallR", 4.0, 0, 1, 1, 1, 0); SetTimerEx("Timer_SlipOffFix", 5000, false, "i", playerid); } } } else if(IsAVipCar(vehicleid) && !ispassenger && !IsAtEvent[playerid]) { if(IsAVipCar(vehicleid)) { if(IsABronzeCar(vehicleid) && PlayerInfo[playerid][pDonateRank] <= 0) { displayCenterHUDInfo(playerid, "~w~You are not a~n~~y~Bronze ~p~VIP~w~.", 8); //display for 8 seconds PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); ClearAnimationsEx(playerid); } if(IsASilverCar(vehicleid) && PlayerInfo[playerid][pDonateRank] <= 1) { displayCenterHUDInfo(playerid, "~w~You are not a ~b~~h~~h~~h~Silver ~p~VIP~w~.", 8); //display for 8 seconds PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); ClearAnimationsEx(playerid); } if(IsAGoldCar(vehicleid) && PlayerInfo[playerid][pDonateRank] <= 2) { displayCenterHUDInfo(playerid, "~w~You are not a~n~~y~Gold ~p~VIP~w~.", 8); //display for 8 seconds PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); ClearAnimationsEx(playerid); } if(IsADiamondCar(vehicleid) && PlayerInfo[playerid][pDonateRank] <= 3) { displayCenterHUDInfo(playerid, "~w~You are not a~n~~y~Diamond ~p~VIP~w~.", 8); //display for 8 seconds PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); ClearAnimationsEx(playerid); } } } else if(isRepairing[playerid] == true) { SendClientMessage(playerid, COLOR_YELLOW, "You can't use any vehicles until you've finished the repair."); PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); ClearAnimationsEx(playerid); } else if(RapidResKitActive[playerid] == 1) { if(!ispassenger || ispassenger) { SendClientMessage(playerid, COLOR_GREY, "You can't enter a vehicle while using a rapid response kit, '/droprrk' in order to drop it."); PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); ClearAnimationsEx(playerid); } } if(PlayerTied[playerid] != 0) { ClearAnimationsEx(playerid); } if(PlayerCuffed[playerid] != 0) { ClearAnimationsEx(playerid); } if(PlayerFrozen[playerid] != 0) { ClearAnimationsEx(playerid); } if(RapidResKitActive[playerid] != 0) { ClearAnimationsEx(playerid); } if(pDeathState[playerid] != PLAYER_STATE_NORMAL) { ClearAnimationsEx(playerid); } return 1; } //============================================================================== stock IsANG(playerid) { if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5 || PlayerInfo[playerid][pGroup] == GROUP_S9) return 1; return 0; } //============================================================================== stock IsASANG(playerid) { if(PlayerInfo[playerid][pMember] == FACTION_SANG || PlayerInfo[playerid][pMember] == GROUP_S9) return 1; return 0; } //============================================================================== stock IsAMedic(playerid) { if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pGroup] == GROUP_S9) return 1; return 0; } //============================================================================== stock IsACop(playerid) { if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pGroup] == GROUP_S9) return 1; return 0; } //============================================================================== stock IsAGovernor(playerid) { if(PlayerInfo[playerid][pLeader] == 6 && PlayerInfo[playerid][pMember] == 6 && PlayerInfo[playerid][pRank] == 4) return 1; return 0; } //============================================================================== stock IsASAPD(playerid) { if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 ||PlayerInfo[playerid][pGroup] == GROUP_S9) return 1; return 0; } //============================================================================== stock IsASenate(playerid) { if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6 || PlayerInfo[playerid][pGroup] == GROUP_S9) return 1; return 0; } //============================================================================== stock IsAJudge(playerid) { if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 7 || PlayerInfo[playerid][pGroup] == GROUP_S9) return 1; return 0; } //============================================================================== stock IsAFBI(playerid) { if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pGroup] == GROUP_S9) return 1; return 0; } //============================================================================== stock DisplaySafeInfo(houseid, playerid) { new str[128]; new WeaponName[65]; if(HouseInfo[houseid][hCreated] == 1) { SendClientMessage(playerid, COLOR_WHITE, "Guns: "); if(HouseInfo[houseid][hGun1] != 0) { GetWeaponName(HouseInfo[houseid][hGun1], WeaponName, 64); format(str, sizeof(str), "Slot 1: %s", WeaponName); SendClientMessage(playerid, COLOR_BITEM, str); } else { SendClientMessage(playerid, COLOR_BITEM, "Slot 1: None"); } if(HouseInfo[houseid][hGun2] != 0) { GetWeaponName(HouseInfo[houseid][hGun2], WeaponName, 64); format(str, sizeof(str), "Slot 2: %s", WeaponName); SendClientMessage(playerid, COLOR_BITEM, str); } else { SendClientMessage(playerid, COLOR_BITEM, "Slot 2: None"); } if(HouseInfo[houseid][hGun3] != 0) { GetWeaponName(HouseInfo[houseid][hGun3], WeaponName, 64); format(str, sizeof(str), "Slot 3: %s", WeaponName); SendClientMessage(playerid, COLOR_BITEM, str); } else { SendClientMessage(playerid, COLOR_BITEM, "Slot 3: None"); } if(HouseInfo[houseid][hGun4] != 0) { GetWeaponName(HouseInfo[houseid][hGun4], WeaponName, 64); format(str, sizeof(str), "Slot 4: %s", WeaponName); SendClientMessage(playerid, COLOR_BITEM, str); } else { SendClientMessage(playerid, COLOR_BITEM, "Slot 4: None"); } if(HouseInfo[houseid][hGun5] != 0) { GetWeaponName(HouseInfo[houseid][hGun5], WeaponName, 64); format(str, sizeof(str), "Slot 5: %s", WeaponName); SendClientMessage(playerid, COLOR_BITEM, str); } else { SendClientMessage(playerid, COLOR_BITEM, "Slot 5: None"); } if(HouseInfo[houseid][hGun6] != 0) { GetWeaponName(HouseInfo[houseid][hGun6], WeaponName, 64); format(str, sizeof(str), "Slot 6: %s", WeaponName); SendClientMessage(playerid, COLOR_BITEM, str); } else { SendClientMessage(playerid, COLOR_BITEM, "Slot 6: None"); } if(HouseInfo[houseid][hGun7] != 0) { GetWeaponName(HouseInfo[houseid][hGun7], WeaponName, 64); format(str, sizeof(str), "Slot 7: %s", WeaponName); SendClientMessage(playerid, COLOR_BITEM, str); } else { SendClientMessage(playerid, COLOR_BITEM, "Slot 7: None"); } format(str, sizeof(str), "Cannabis: %d.0 grams", HouseInfo[houseid][hCannabis]); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "Cocaine: %d.0 grams", HouseInfo[houseid][hCocaine]); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "Meth: %d.0 grams", HouseInfo[houseid][hMeth]); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "Xanax: %d.0 tabs", HouseInfo[houseid][hXanax]); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "Promethazine: %d fl oz", HouseInfo[houseid][hPromethazine]); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "Codeine: %d fl oz", HouseInfo[houseid][hCodeine]); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "Lean: %d fl oz", HouseInfo[houseid][hLean]); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "Cash: $%d", HouseInfo[houseid][hCash]); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "Materials: %d", HouseInfo[houseid][hMaterials]); SendClientMessage(playerid, COLOR_WHITE, str); } return 0; } //============================================================================== stock IsAtArrestPoint(playerid) { //if( IsPlayerInRangeOfPoint(playerid, 10.0, 2753.2041,-2465.5845,13.6484) ) return 1; //prison LS if(IsPlayerInRangeOfPoint(playerid, 10.0, 254.9178, 83.7195, 1002.4453) ) return 1; //old PD int lobby if(IsPlayerInRangeOfPoint(playerid, 6.0, -1133.30, -973.83, 9999.25)) return 1; //SAPD mugshot room if(IsPlayerInRangeOfPoint(playerid, 8.0, 1565.1511, -1658.2452, 28.3956)) return 1; //SAPD Roof if(IsPlayerInRangeOfPoint(playerid, 8.0, 615.2274, -584.8245, 17.2266)) return 1; //SASD if(IsPlayerInRangeOfPoint(playerid, 8.0, -2595.86, -104.28, 6001.08)) return 1; return 0; } //============================================================================== stock IsAtGasStation(playerid) { if(IsPlayerInRangeOfPoint(playerid, 17.0, 1004.0070, -939.3102, 42.1797) || IsPlayerInRangeOfPoint(playerid, 17.0, 1944.3260, -1772.9254, 13.3906)) return 1; if(IsPlayerInRangeOfPoint(playerid, 17.0, -90.5515, -1169.4578, 2.4079) || IsPlayerInRangeOfPoint(playerid, 17.0, -1609.7958, -2718.2048, 48.5391)) return 1; if(IsPlayerInRangeOfPoint(playerid, 17.0, -2029.4968, 156.4366, 28.9498) || IsPlayerInRangeOfPoint(playerid, 17.0, -2408.7590, 976.0934, 45.4175)) return 1; if(IsPlayerInRangeOfPoint(playerid, 17.0, -2243.9629, -2560.6477, 31.8841) || IsPlayerInRangeOfPoint(playerid, 17.0, -1676.6323, 414.0262, 6.9484)) return 1; if(IsPlayerInRangeOfPoint(playerid, 17.0, 2202.2349, 2474.3494, 10.5258) || IsPlayerInRangeOfPoint(playerid, 17.0, 614.9333, 1689.7418, 6.6968) || IsPlayerInRangeOfPoint(playerid, 17.0, 2114.7346, 920.6039, 10.4790)) //LV if(IsPlayerInRangeOfPoint(playerid, 17.0, -1328.8250, 2677.2173, 49.7665) || IsPlayerInRangeOfPoint(playerid, 17.0, 70.3882, 1218.6783, 18.5165)) return 1; //LV if(IsPlayerInRangeOfPoint(playerid, 17.0, 654.9641, -559.7485, 16.5015) || IsPlayerInRangeOfPoint(playerid, 17.0, 654.9617, -570.4176, 16.5015)) return 1; //Dillimore if(IsPlayerInRangeOfPoint(playerid, 17.0, 1382.9899, 461.9903, 20.1245) || IsPlayerInRangeOfPoint(playerid, 17.0, 1380.9395, 457.2494, 19.9260)) return 1; //Montgomery if(IsPlayerInRangeOfPoint(playerid, 17.0, 1109.4098, -1184.4089, 19.4198)) return 1; //Jenkins gas station if(IsPlayerInRangeOfPoint(playerid, 17.0, 52.4320,1218.8826,18.9057)) return 1; // Fort Cartson Gas Station (Requested by Eric_Daxano) if(IsPlayerInRangeOfPoint(playerid, 10.0, 183.8788, 1923.7286, 17.8864 )) return 1; //DoC //Newly added if(IsPlayerInRangeOfPoint(playerid, 10.0, -1327.5477, 2682.9692, 50.0625) || IsPlayerInRangeOfPoint(playerid, 10.0, -1329.0247, 2671.5679, 50.0625)) return 1; if(IsPlayerInRangeOfPoint(playerid, 10.0, -1476.9545, 1863.3793, 32.6328) || IsPlayerInRangeOfPoint(playerid, 10.0, -1465.1136, 1864.2327, 32.6328)) return 1; if(IsPlayerInRangeOfPoint(playerid, 10.0, 51.8902, 1213.4871, 18.9063) || IsPlayerInRangeOfPoint(playerid, 10.0, 51.6325, 1224.8524, 18.9167)) return 1; if(IsPlayerInRangeOfPoint(playerid, 10.0, 2640.9182, 1106.4493, 10.820)) return 1; return 0; } //============================================================================== stock IsNotAtFishPlace(playerid) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if(x <= 348.0 || x >= 410.0) return 1; if(y <= -2089.0 || y >= -2087.0) return 1; if(z >= 9.0 || z <= 6.0) return 1; return 0; } //============================================================================== //============================================================================== stock IsAtATM(playerid) { if(IsPlayerInRangeOfPoint(playerid, 2.0, 1008.0930, -929.5586, 42.3281) || IsPlayerInRangeOfPoint(playerid, 2.0, 2227.61, -1710.96, 13.59) || IsPlayerInRangeOfPoint(playerid, 2.0, 1929.5021, -1783.4802, 13.5469) || IsPlayerInRangeOfPoint(playerid, 2.0, 1547.49, -1472.09, 1037.01) || IsPlayerInRangeOfPoint(playerid, 2.0, 1422.3619, -981.2112, 1639.7843) || IsPlayerInRangeOfPoint(playerid, 2.0, 1424.2430, -981.1600, 1639.7843) || IsPlayerInRangeOfPoint(playerid, 2.0, 1426.0094, -981.1601, 1639.7843) || IsPlayerInRangeOfPoint(playerid, 2.0, 651.20215, -520.47241, 15.95219) || IsPlayerInRangeOfPoint( playerid, 2.0, 2679.3413, -2450.9971, 1299.4320 ) || //prison atm IsPlayerInRangeOfPoint(playerid, 2.0, 1344.0891,-1586.4590,13.5099) || //Donation scripting for /atm IsPlayerInRangeOfPoint(playerid, 2.0, 1793.7021,-1442.5446,995.0460) || //Donation scripting for /atm GetPlayerVirtualWorld(playerid) == 23 && IsPlayerInRangeOfPoint(playerid, 2.0, 1124.53015, 4.01472, 1000.14783) || // Donation scripting for /atm - Desmond DeSantos (Code confirmed by Donor scripter DwayneD) IsPlayerInRangeOfPoint(playerid, 2.0, 251.26659, -189.68741, 1.16737)) return 1; //vinwood station & other in gym & bank return 0; } //============================================================================== stock UpdateWeed() { for(new b = 0; b < sizeof(WeedInfo); b++) { if(WeedInfo[b][WeedPlanted] == 1) { WeedInfo[b][WeedTime] += 1; new w = WeedInfo[b][WeedTime]; if(w == 2 ||w == 4 ||w == 6 ||w == 8 ||w == 10 ||w == 12 ||w == 14 ||w == 16 ||w == 18 ||w == 20 ||w == 22 ||w == 24 ||w == 26 ||w == 28 ||w == 30 ||w == 32 ||w == 34 ||w == 36 ||w == 38 ||w == 40 ||w == 42 ||w == 44 ||w == 46 ||w == 48 ||w == 50 ||w == 52 ||w == 54 ||w == 56 ||w == 58 ||w == 60) { WeedInfo[b][WeedGrams] += 1; //all even numbers = 1gram of weed. that means 0.5grams per minute. } if(WeedInfo[b][WeedTime] > 60) WeedInfo[b][WeedGrams] += 1; if(WeedInfo[b][WeedTime] == 70) { if(weedObject[b]) { DestroyDynamicObjectEx(weedObject[b]); } weedObject[b] = 0; WeedInfo[b][WeedX] = 0.0; WeedInfo[b][WeedY] = 0.0; WeedInfo[b][WeedZ] = 0.0; WeedInfo[b][WeedTime] = 0; WeedInfo[b][WeedPlanted] = 0; WeedInfo[b][WeedGrams] = 0; strmid(WeedInfo[b][WeedPlanter], "[NONE]", 0, strlen("[NONE]")); } } } return 1; } //============================================================================== forward resetPlayerVars(playerid); public resetPlayerVars(playerid) { lastPMedID[playerid] = INVALID_PLAYER_ID; PlayerInfo[playerid][pHasLockPick] = 0; PlayerInfo[playerid][pHidingBadge] = false; PlayerInfo[playerid][pHidingStatus] = 0; PlayerInfo[playerid][pFirework] = 0; fallingSeconds[playerid] = 0; RadioFrequency[playerid] = 0; //IsDead[playerid] = false; hitmanUndercover[playerid] = false; hasListening[playerid] = false; watchingPDCCTV[playerid] = false; PlayerInfo[playerid][pFactionDirector] = 0; gagExpire[playerid] = 0; gagRequester[playerid] = INVALID_PLAYER_ID; checkingBackground[playerid] = 0; checkingID[playerid] = -1; if(nametagText[playerid] != Text3D:INVALID_3DTEXT_ID) { DestroyDynamic3DTextLabel(nametagText[playerid]); nametagText[playerid] = Text3D:INVALID_3DTEXT_ID; } inAndromadaID[playerid] = INVALID_VEHICLE_ID; FakeFaction[playerid] = 0; FakeRank[playerid] = 0; PlayerInfo[playerid][lastCarID] = -1; PlayerInfo[playerid][pMaxCarSlots] = -1; hoskperm[playerid] = false; areported[playerid] = false; ExitTimer[playerid] = 0; ADuty[playerid] = false; HDuty[playerid] = false; // bul[playerid] = 0; ADutyTimer[playerid] = false; turningengine[playerid] = 0; ReplyTo[playerid] = 0; // bulT[playerid] = 0; beingCalled[playerid] = false; PayDayAccount[playerid] = 0; slipOff[playerid] = false; inBarracksID[playerid] = INVALID_VEHICLE_ID; PlayerHasLaserOn[playerid] = 0; format(PlayerInfo[playerid][pVIPJoinDate], 128, "0/0/0"); format(PlayerInfo[playerid][pVIPExpDate], 128, "0/0/0"); format(PlayerInfo[playerid][pOrigin], 128, "None"); PlayerInfo[playerid][pTag] = NTAG_CUSTOM; customRankName[playerid] = true; format(PlayerInfo[playerid][pPrisonReason], 128, "None"); format(PlayerInfo[playerid][pPrisonedBy], 24, "Nobody"); inHouse[playerid] = false; strmid(PlayerInfo[playerid][pLastLogin], "None", 0, strlen("None"), 255); strmid(PlayerInfo[playerid][pPropExp], "None", 0, strlen("None"), 255); Blocked[playerid][Number1] = -420; Blocked[playerid][Number2] = -420; Blocked[playerid][Number3] = -420; Blocked[playerid][Number4] = -420; Blocked[playerid][Number5] = -420; toggledHotlined[playerid] = false; playerDMVCar[playerid] = INVALID_VEHICLE_ID; plNCData[playerid][ncCameraMode] = 0; plNCData[playerid][ncLRold] = 0; plNCData[playerid][ncUDold] = 0; plNCData[playerid][ncMode] = 0; plNCData[playerid][ncLastMove] = 0; plNCData[playerid][ncAccelMul] = 0.0; Fly_X[playerid] = 0.0; Fly_Y[playerid] = 0.0; Fly_Z[playerid] = 0.0; Fly_A[playerid] = 0.0; pbArmor[playerid] = 0; playerMoveSpeed[playerid] = 100.0; flyingUsed[playerid] = false; hasFlashlight[playerid] = false; oldWeapon[playerid] = -1; cellMuted[playerid] = false; //wasonBike[playerid] = false; dmvSlot[playerid] = 0; autoFailed[playerid] = false; backupType[playerid] = 0; hasRubberBullets[playerid] = 0; loadedRubberBullets[playerid] = false; toggedDept[playerid] = false; toggedRadio[playerid] = false; csCount[playerid] = 0; adminDuty[playerid] = false; isBOLO[playerid] = 0; format(boloBy[playerid], 24, "None"); KillTimer(callCPFix[playerid]); KillTimer(fixGPSTimer[playerid]); callCPSpot[playerid] = 0; usingFakeBadge[playerid] = false; callerID[playerid] = false; ToggedOR[playerid] = false; boxToggled[playerid] = false; HelpingNewbie[playerid] = false; HelperVeh2[playerid] = false; goingJob[playerid] = false; pInHospital[playerid] = 0; onCellPhone[playerid] = false; repairVeh[playerid] = INVALID_VEHICLE_ID; isRepairing[playerid] = false; towingCar[playerid] = false; KillTimer(towTimer[playerid]); ToggedWarns[playerid] = false; LoginAttempts[playerid] = 0; mcTog[playerid] = false; hideCenterHUDTimerID[playerid] = 0; displayingText[playerid] = 0; firstSpawned[playerid] = 0; usingNameTag[playerid] = 0; nametagText[playerid] = Text3D:INVALID_3DTEXT_ID; ThiefText[playerid] = Text3D:INVALID_3DTEXT_ID; HidePM[playerid] = 0; PhoneOffline[playerid] = 0; KillTimer(cpTimerFix[playerid]); WTOnline[playerid] = 0; AlarmOnline[playerid] = 0; WatchingTV[playerid] = false; FriskOffer[playerid] = 999; toggedDevChat[playerid] = false; GettingJob[playerid] = 0; VestOffer[playerid] = 999; VestPrice[playerid] = 0; CheckNumber[playerid] = 0; DefenseOffer[playerid] = 999; DefensePrice[playerid] = 0; InviteOffer[playerid] = 999; FamilyOffer[playerid] = 999; CallLawyer[playerid] = 0; WantLawyer[playerid] = 0; CP[playerid] = CHECKPOINT_NONE; PlayerFrozen[playerid] = 0; HoldingDetonator[playerid] = 0; UsedFind[playerid] = 0; FReloadTime[playerid] = 0; GotMats[playerid] = 0; GotPlant[playerid] = 0; GotDrugs[playerid] = 0; TazerTime[playerid] = 0; MoneyMessage[playerid] = 0; Condom[playerid] = 0; HasBoughtMask[playerid] = 0; UsingSate[playerid] = 0; ZOOM[playerid] = 0; LoadObjects[playerid] = 0; RepairOffer[playerid] = 999; RepairPrice[playerid] = 0; RepairCar[playerid] = 0; GuardedBy[playerid] = 999; GuardingPrice[playerid] = 0; TalkingLive[playerid] = 255; LiveOffer[playerid] = 999; RefillOffer[playerid] = INVALID_PLAYER_ID; RefillPrice[playerid] = 0; Guarding[playerid] = 999; PotOffer[playerid] = 999; PotPrice[playerid] = 0; PotGram[playerid] = 0; Packages[playerid] = 0; Crates[playerid] = 0; PlayerCuffed[playerid] = 0; PlayerTazed[playerid] = 0; PlayerCuffedTime[playerid] = 0; PlayerTazedTime[playerid] = 0; LastFriskedPlayer[playerid] = 999; JustReported[playerid] = 0; JustBugReported[playerid] = 0; HasActiveBugReport[playerid] = 0; FactionOffer[playerid] = 999; GroupOffer[playerid] = 999; SpectatingID[playerid] = 999; Spectated[playerid] = 0; beingSpectatedID[playerid] = INVALID_PLAYER_ID; breakingpcuffs[playerid] = INVALID_PLAYER_ID; SAPDClearing[playerid] = 0; HospitalTime[playerid] = 0; HospitalSpawnID[playerid] = 0; JailPrice[playerid] = 0; GoChase[playerid] = 999; BoxWaitTime[playerid] = 0; TransportDuty[playerid] = 0; PlayerTied[playerid] = 0; PlayerTiedTime[playerid] = 0; PlayerBlinded[playerid] = 0; oldindex[playerid] = 0; BusCallTime[playerid] = 0; TaxiCallTime[playerid] = 0; MedicCallTime[playerid] = 0; LawyerCallTime[playerid] = 0; MechanicCallTime[playerid] = 0; FindTimePoints[playerid] = 0; FindTime[playerid] = 0; FindingID[playerid] = 0; JobDuty[playerid] = 0; Mobile[playerid] = 999; BoxOffer[playerid] = 999; PlayerBoxing[playerid] = 0; PlayerKevBox[playerid] = 0; gLastCar[playerid] = 0; FishCount[playerid] = 0; gOoc[playerid] = 0; gNews[playerid] = 0; BigEar[playerid] = 0; PlayerInfo[playerid][pShadowON] = 0; PlayerInfo[playerid][pMaryON] = 0; gFam[playerid] = 0; ToggedSpeedo[playerid] = false; ToggedFuel[playerid] = false; ToggedVHealth[playerid] = false; gVehicleLock[playerid] = 0; Language[playerid] = 0; playerHoldingTazer[playerid] = 0; GPSOn[playerid] = 0; AdminHelp[playerid] = 0; HelpMeTimer[playerid] = 0; Robbing[playerid] = 999; playerDisconnecting[playerid] = 0; RobbingX[playerid] = 0.0; RobbingY[playerid] = 0.0; RobbingZ[playerid] = 0.0; gPlayerLogged[playerid] = 0; startSpawnLoc[playerid] = 0; gAdminAuthorized[playerid] = 0; viewingStatsOf[playerid] = 999; MatsOffer[playerid] = 999; MatsPrice[playerid] = 0; MatsGram[playerid] = 0; MatsGram2[playerid] = 0; IsFishing[playerid] = 0; PlayerHasRod[playerid] = 0; usingRadio[playerid] = 0; FishingTimer[playerid] = 0; CatchingTimer[playerid] = 0; LineTension[playerid] = 0; FishDist[playerid] = 0; Caught[playerid] = 0; TextDrawTimer[playerid] = 0; PlayerStoned[playerid] = 0; BMPurchased[playerid] = 0; Called911[playerid] = 0; calledTaxi[playerid] = 0; PrisonCell[playerid] = 0; GuardOffer[playerid] = 999; GuardPrice[playerid] = 0; healOffer[playerid] = 999; healPrice[playerid] = 0; VoodooSpell[playerid] = 0; // Tiki HSHAKEOFFER[playerid] = 999; HShakeType[playerid] = 0; KissOffer[playerid] = 999; KissType[playerid] = 0; BeingRobbed[playerid] = 999; ContractOffer[playerid] = 999; ContractID[playerid] = 999; TaxiAccepted[playerid] = 999; BusAccepted[playerid] = 999; OldWeedX[playerid] = 0.0; OldWeedY[playerid] = 0.0; OldWeedZ[playerid] = 0.0; BizOffer[playerid] = 999; BizPrice[playerid] = 0; BizID[playerid] = 0; PlayersChannel[playerid] = 999; WeedPickTimer[playerid] = 0; gPlayerSpawned[playerid] = 0; OldHealth[playerid] = 0.0; OldArmour[playerid] = 0.0; LockPickTime[playerid] = 0; TransportValue[playerid] = 0; TransportMoney[playerid] = 0; TransportTime[playerid] = 0; TransportCost[playerid] = 0; TransportDriver[playerid] = 999; usingVendingMachine[playerid] = 0; LockPickingBiz[playerid] = 999; LockPickingHouse[playerid] = 999; LockPickingCar[playerid] = -1; Fishes[playerid][pLastFish] = 0; ProposeOffer[playerid] = 999; MarryWitness[playerid] = 999; MarryWitnessOffer[playerid] = 999; MarriageCeremoney[playerid] = 0; ProposedTo[playerid] = 999; GotProposedBy[playerid] = 999; DivorceOffer[playerid] = 999; RefundingNumber[playerid] = 999; RefundingID[playerid] = 999; viewingGuide[playerid] = 0; SellCarTimer[playerid] = 0; StopAniTimer[playerid] = 0; UseDrugsTimer[playerid] = 0; PaintballDieTimer[playerid] = 0; UseHYDTimer[playerid] = 0; LockSpam[playerid] = 0; UseBMTimer[playerid] = 0; UseAcceptTimer[playerid] = 0; SellGunTimer[playerid] = 0; DropWeaponTimer[playerid] = 0; UseDrinkTimer[playerid] = 0; UseNewbieTimer[playerid] = 0; UseAdmCmdTimer[playerid] = 0; CapturingTimer[playerid] = 0; BombID[playerid] = -1; UseFareTimer[playerid] = 0; ProdOffer[playerid] = 999; ProdPrice[playerid] = 0; ProdAmount[playerid] = 0; oldsposx[playerid] = 0.0; oldsposy[playerid] = 0.0; oldsposz[playerid] = 0.0; oldfacingangle[playerid] = 0.0; oldint[playerid] = 0; oldvw[playerid] = 0; newsposx[playerid] = 0.0; newsposy[playerid] = 0.0; newsposz[playerid] = 0.0; BombInCar[playerid] = 0; vipRepairTime[playerid] = 0; usingFC[playerid] = 0; PlayerPaused[playerid] = false; playerDesynced[playerid] = 0; //KillTimer(HelpMeHelperTimer[playerid]); Filling[playerid] = 0; OnABugReport[playerid] = 0; gHelperCh[playerid] = 1; gTesterCh[playerid] = 0; //autoChat[playerid] = 0; disabledRadios[playerid] = 0; namesOff[playerid] = 0; autoChatTime[playerid] = 0; EditingGate[playerid] = 0; EditingGarage[playerid] = 0; GateAction[playerid] = EDITING_GATE_NONE; // WarningsHad[playerid] = 0; strmid(NameChangeRequest[playerid], "0", 0, 24); OfferedSellHouse[playerid][0] = -1; OfferedSellHouse[playerid][1] = -1; OfferedSellHouse[playerid][2] = -1; OfferedSellVehicle[playerid][0] = -1; OfferedSellVehicle[playerid][1] = -1; OfferedSellVehicle[playerid][2] = -1; KeysOfferTo[playerid] = -1; KeysOfferFrom[playerid] = -1; KeysOfferIndex[playerid] = 0; CSDisable[playerid] = 0; CanDrop[playerid] = 1; aGun[playerid][0] = 0; aGun[playerid][1] = 0; aGun[playerid][2] = 0; aGun[playerid][3] = 0; aGun[playerid][4] = 0; aGun[playerid][5] = 0; aGun[playerid][6] = 0; aGun[playerid][7] = 0; aGun[playerid][8] = 0; aGun[playerid][9] = 0; aGun[playerid][10] = 0; aGun[playerid][11] = 0; aGun[playerid][12] = 0; CardsHave[playerid] = 0; VIPChatTog[playerid] = 0; usePayphone[playerid] = -1; GottenGift[playerid] = 0; PlayerHasMP5Laser[playerid] = 0; PlayerHasM4Laser[playerid] = 0; PlayerHasAKLaser[playerid] = 0; PlayerHasSpasLaser[playerid] = 0; PlayerHasDeagleLaser[playerid] = 0; GottenTimeLeft[playerid] = 0; Lockpicking[playerid] = 0; CLockpicking[playerid] = 0; OfferedGunTo[playerid] = -1; format(PlayerInfo[playerid][pMDCSearchName], 128, "None"); OfferedGunFrom[playerid] = -1; hotWireTime[playerid] = 0; hotWireVeh[playerid] = -1; GunOffered[playerid] = 0; PlayerCalledEMS[playerid] = 0; PlayerCalledPD[playerid] = 0; ParaOnACall[playerid] = 0; CallAccepted[playerid] = 0; EMSArrived[playerid] = 0; RapidResKitActive[playerid] = 0; HasARapidResKit[playerid] = 0; WireOfferID[playerid] = INVALID_PLAYER_ID; //reset autogenerated name // usingGeneratedName[playerid] = 0; iCurrentWeapon[playerid] = 0; lastAnimIndex[playerid] = 0; //havent tested if this method will clear the vars, just copied what someone did below with pinfo new cleartip[MAX_NEWBIE_TIPS]; displayedTip[playerid] = cleartip; // Completely clear out PlayerInfo. new clearpinfo[pInfo] = { 0 }; PlayerInfo[playerid] = clearpinfo; // Set the other default variables. PlayerInfo[playerid][pFMember] = 255; PlayerInfo[playerid][pFightingStyle] = 4; PlayerInfo[playerid][pInt] = 15; PlayerInfo[playerid][pLocal] = 999; PlayerInfo[playerid][pModel] = 20; PlayerInfo[playerid][pBizKey] = -1; PlayerInfo[playerid][pCarLicense] = 0; PlayerInfo[playerid][pSueUnix] = 0; PlayerInfo[playerid][pSueNotice] = 0; PlayerInfo[playerid][pAllowedArmory] = 1; PlayerInfo[playerid][pBoatLicense] = 0; PlayerInfo[playerid][pFishLic] = 1; PlayerInfo[playerid][pWeaponLicense] = 0; PlayerInfo[playerid][pMarijuanaLicense] = 0; PlayerInfo[playerid][pLevel] = 1; PlayerInfo[playerid][pReg] = 0; PlayerInfo[playerid][pHospital] = 0; PlayerInfo[playerid][pPoison] = 0; PlayerInfo[playerid][pCash] = 20000; // Newb start money PlayerInfo[playerid][pAccount] = 100000; // Newb start money. PlayerInfo[playerid][pRadioStation] = 255; PlayerInfo[playerid][pDonateRank] = 1; //new pvars PlayerInfo[playerid][pAdminJailed] = 0; //radio vars editingBoomboxID[playerid] = -1; streamingFromBoombox[playerid] = -1; streamingFromVehicle[playerid] = -1; EDITING_TYPE[playerid] = EDIT_RADIO_NONE; listItemGenre[playerid] = -1; //clothing menus listItemClothes[playerid] = -1; //hitman badges PlayerInfo[playerid][pHAFakeBadge] = 0; PlayerInfo[playerid][pBadge] = 0; PlayerInfo[playerid][pBuggedTog] = 0; ShuffleDeck(playerid); ClearDamageInfo(playerid); ClearFishes(playerid); ClearGuns(playerid); ClearMarriage(playerid); ClearAccent(playerid); ClearCustomTag(playerid); ClearCustomRank(playerid); ClearIP(playerid); ClearContract(playerid); ClearBanreason(playerid); ClearAppearance(playerid); ClearPrisonreason(playerid); ClearVIP(playerid); clearObjectViewerTD(playerid); //model viewer clearObjectViewerTD(playerid); //model viewer resetCheckpointInfo(playerid); strdel(LastPaid[playerid], 0, MAX_PLAYER_NAME); SetPlayerColor(playerid, TCOLOR_GREY); //trays finishedEatingTimer[playerid] = 0; boughtFoodTimer[playerid] = 0; hasFoodTray[playerid] = 0; beingPoisonedTimer[playerid] = 0; playerPoisoned[playerid] = 0; //map usingMap[playerid] = 0; //combine deathByCombine[playerid] = 0; //event notice displayingEventHUD[playerid] = 0; hidingMOTDTimer[playerid] = 0; //garbage job variables hasTruckCheckpoint[playerid] = -1; unloadingTrashTimer[playerid] = 0; for(new i = 0; i < 7; i++) { Accessories[playerid][i] = 0; AccessoriesX[playerid][i] = 0.0; AccessoriesY[playerid][i] = 0.0; AccessoriesZ[playerid][i] = 0.0; AccessoriesrX[playerid][i] = 0.0; AccessoriesrY[playerid][i] = 0.0; AccessoriesrZ[playerid][i] = 0.0; AccessoriessX[playerid][i] = 0.0; AccessoriessY[playerid][i] = 0.0; AccessoriessZ[playerid][i] = 0.0; Accessoriesc1[playerid][i] = 0; } inPaintball[playerid] = 0; pbKills[playerid] = 0; ClearPaintballGuns(playerid); pDeathState[playerid] = PLAYER_STATE_NORMAL; KillTimer(dPosGet[playerid]); CanRepair[playerid] = true; hasPassed[playerid] = false; isPlayerFlying[playerid] = false; KillTimer(canRepairTimer[playerid]); pCommandUsed[playerid] = false; customRankName[playerid] = false; canReportAgain[playerid] = true; customRank[playerid] = "None"; hasTempRRK[playerid] = 0; pMutedA[playerid] = false; Reported[playerid] = false; //Reported[playerid] = false; LastPM[playerid] = false; TogPM[playerid] = false; format(reportText[playerid], 80, "None"); for(new i = 0; i < 13; i++) { antiLoseWeapon[playerid][i] = 0; } famMuted[playerid] = false; famMutedTime[playerid] = 0; KillTimer(muteTimer[playerid]); dialogPage[playerid] = 0; TextDrawHideForPlayer(playerid, PaintballLeaderTD); TextDrawHideForPlayer(playerid, PaintballLeaderTD2); if(Security != 0) { SendClientMessage(playerid, COLOR_YELLOW, "You should not be seeing this message."); //Kick(playerid); //return 1; } EditingCamera[playerid] = false; CameraID[playerid] = -1; CameraX[playerid] = 0.0; CameraY[playerid] = 0.0; CameraZ[playerid] = 0.0; CameraInt[playerid] = 0; CameraWorld[playerid] = 0; OnCCTV[playerid] = -1; newbiePrice[playerid] = 0; newbieRequest[playerid] = false; adRequest[playerid] = false; adPrice[playerid] = 0; checkedAccount[playerid] = 0; minutesOnline[playerid] = 0; PlayerInfo[playerid][pUnit] = -1; findingunit[playerid] = -1; lastShotByWeaponID[playerid] = -1; lastShotByPlayerID[playerid] = -1; lastShotBodyPart[playerid] = -1; format(tempPassword[playerid], 64, ""); format(tempHash[playerid], 65, ""); format(tempSalt[playerid], 33, ""); format(NewPassword[playerid], 129, ""); format(NewSalt[playerid], 33, ""); format(PlayerInfo[playerid][pS9BadgeName], 24, ""); //Fuel/Speedo (iGetty) FuelTextdraw[playerid] = CreatePlayerTextDraw(playerid, 546.000000, 418.000000, ""); PlayerTextDrawBackgroundColor(playerid, FuelTextdraw[playerid], 255); PlayerTextDrawFont(playerid, FuelTextdraw[playerid], 2); PlayerTextDrawLetterSize(playerid, FuelTextdraw[playerid], 0.280000, 1.000000); PlayerTextDrawColor(playerid, FuelTextdraw[playerid], -1); PlayerTextDrawSetOutline(playerid, FuelTextdraw[playerid], 1); PlayerTextDrawSetProportional(playerid, FuelTextdraw[playerid], 1); VHealthTextDraw[playerid] = CreatePlayerTextDraw(playerid, 546.000000, 407.000000, ""); PlayerTextDrawBackgroundColor(playerid, VHealthTextDraw[playerid], 255); PlayerTextDrawFont(playerid, VHealthTextDraw[playerid], 2); PlayerTextDrawLetterSize(playerid, VHealthTextDraw[playerid], 0.280000, 1.000000); PlayerTextDrawColor(playerid, VHealthTextDraw[playerid], -1); PlayerTextDrawSetOutline(playerid, VHealthTextDraw[playerid], 1); PlayerTextDrawSetProportional(playerid, VHealthTextDraw[playerid], 1); SpeedoTextdraw[playerid] = CreatePlayerTextDraw(playerid, 546.000000, 429.000000, ""); PlayerTextDrawBackgroundColor(playerid, SpeedoTextdraw[playerid], 255); PlayerTextDrawFont(playerid, SpeedoTextdraw[playerid], 2); PlayerTextDrawLetterSize(playerid, SpeedoTextdraw[playerid], 0.280000, 1.000000); PlayerTextDrawColor(playerid, SpeedoTextdraw[playerid], -1); PlayerTextDrawSetOutline(playerid, SpeedoTextdraw[playerid], 1); PlayerTextDrawSetProportional(playerid, SpeedoTextdraw[playerid], 1); PlayerTextDrawHide(playerid, FuelTextdraw[playerid]); PlayerTextDrawHide(playerid, VHealthTextDraw[playerid]); PlayerTextDrawHide(playerid, SpeedoTextdraw[playerid]); if(IsPlayerNPC(playerid)) { gPlayerLogged[playerid] = 1; PlayerInfo[playerid][pTut] = 1; } CINC[playerid]++; // invalidate all that came before DisablePlayerCheckpointEx(playerid); if(usingNameTag[playerid]) { DestroyDynamic3DTextLabel(nametagText[playerid]); nametagText[playerid] = Text3D:INVALID_3DTEXT_ID; } PlayerInfo[playerid][pFMDListen] = 0; PlayerInfo[playerid][pFBIListen] = 0; PlayerInfo[playerid][pSANListen] = 0; PlayerInfo[playerid][pGOVListen] = 0; PlayerInfo[playerid][pSANGListen] = 0; PlayerInfo[playerid][pLSSDListen] = 0; PlayerInfo[playerid][pSAPDListen] = 0; PlayerInfo[playerid][pSAPDListen] = 0; return 1; } public OnPlayerConnect(playerid) { //By Zimovskiy //My VK - https://vk.com/andrey_zimovskiy //YouTube Channel - https://www.youtube.com/channel/UCzkRAIS0JiXSiUV_vQ7GxEg?view_as=subscriber ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Objects//////////////////////////////////////////////////////////////////////////////////////////////////////// new tmpobjid; tmpobjid = CreateDynamicObject(19376,607.872,-565.220,1928.529,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14777, "int_casinoint3", "GB_midbar05", -1); tmpobjid = CreateDynamicObject(19383,615.953,-571.369,1930.329,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(1495,623.657,-569.609,1928.599,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -1); tmpobjid = CreateDynamicObject(19445,622.368,-563.352,1930.329,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19376,618.374,-565.220,1928.529,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14777, "int_casinoint3", "GB_midbar05", -1); tmpobjid = CreateDynamicObject(19376,615.033,-548.661,1932.139,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19376,618.374,-565.220,1932.139,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19376,622.925,-574.851,1932.139,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19376,622.925,-574.851,1928.529,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14777, "int_casinoint3", "GB_midbar05", -1); tmpobjid = CreateDynamicObject(19376,612.424,-574.851,1928.529,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14777, "int_casinoint3", "GB_midbar05", -1); tmpobjid = CreateDynamicObject(19383,615.953,-563.348,1930.329,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(2645,623.543,-565.070,1931.135,0.000,0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart2", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,623.534,-565.840,1931.135,0.000,0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart3", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19353,620.219,-561.689,1930.335,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,609.547,-571.382,1930.329,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,623.628,-571.198,1930.335,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(1495,623.627,-566.609,1928.599,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -1); tmpobjid = CreateDynamicObject(19353,623.628,-565.007,1930.335,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,623.638,-568.087,1932.835,0.000,-179.999,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,625.158,-572.729,1930.335,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,626.570,-572.719,1930.335,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,628.070,-572.719,1930.335,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19376,622.925,-584.482,1928.529,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14777, "int_casinoint3", "GB_midbar05", -1); tmpobjid = CreateDynamicObject(19399,628.071,-575.924,1930.335,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19399,628.071,-579.125,1930.335,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19399,628.071,-582.335,1930.335,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,623.226,-585.571,1930.339,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,628.066,-588.752,1930.339,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(3077,625.725,-572.871,1928.615,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14853, "gen_pol_vegas", "mp_cop_pinboard", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19376,622.583,-556.811,1932.149,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19376,604.533,-548.661,1932.139,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(2276,621.179,-563.964,1930.665,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 1, 15040, "cuntcuts", "csnewspaper02", 0); tmpobjid = CreateDynamicObject(19376,618.374,-555.590,1928.529,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14777, "int_casinoint3", "GB_midbar05", -1); tmpobjid = CreateDynamicObject(19376,607.873,-555.590,1928.529,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14777, "int_casinoint3", "GB_midbar05", -1); tmpobjid = CreateDynamicObject(19466,628.117,-582.519,1930.645,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14593, "papaerchaseoffice", "ab_blinds", 0); tmpobjid = CreateDynamicObject(19466,628.107,-584.149,1930.645,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14593, "papaerchaseoffice", "ab_blinds", 0); tmpobjid = CreateDynamicObject(19466,628.107,-578.939,1930.645,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14593, "papaerchaseoffice", "ab_blinds", 0); tmpobjid = CreateDynamicObject(19466,628.097,-577.349,1930.645,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14593, "papaerchaseoffice", "ab_blinds", 0); tmpobjid = CreateDynamicObject(19466,628.087,-575.739,1930.645,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14593, "papaerchaseoffice", "ab_blinds", 0); tmpobjid = CreateDynamicObject(19466,628.077,-574.129,1930.645,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14593, "papaerchaseoffice", "ab_blinds", 0); tmpobjid = CreateDynamicObject(19873,614.187,-566.102,1932.055,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2199,609.611,-564.398,1929.155,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(19445,609.539,-563.352,1930.329,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19383,620.224,-558.479,1930.329,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(1495,620.227,-559.239,1928.599,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -1); tmpobjid = CreateDynamicObject(19376,612.424,-584.482,1928.529,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14777, "int_casinoint3", "GB_midbar05", -1); tmpobjid = CreateDynamicObject(19445,622.368,-571.382,1930.329,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,628.385,-566.253,1930.329,0.000,0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -13421773); tmpobjid = CreateDynamicObject(19445,610.966,-576.271,1930.339,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,609.537,-568.211,1930.329,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,618.775,-571.330,1933.699,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19376,622.925,-584.482,1932.139,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19376,612.424,-584.482,1932.139,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19445,623.226,-585.561,1933.699,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,628.036,-577.381,1933.699,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,628.036,-587.000,1933.699,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,613.596,-585.571,1930.339,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,613.606,-585.561,1933.699,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19376,612.424,-574.853,1932.139,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19926,612.785,-570.336,1928.615,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14415, "carter_block_2", "mp_gs_woodpanel", -1); tmpobjid = CreateDynamicObject(19399,623.191,-577.525,1930.335,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19999,626.852,-583.562,1928.615,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(19399,612.622,-580.734,1930.335,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,618.719,-563.392,1933.699,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19376,607.874,-565.220,1932.139,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19926,612.785,-568.417,1928.615,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14415, "carter_block_2", "mp_gs_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,609.089,-563.392,1933.699,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19926,612.785,-564.387,1928.615,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14415, "carter_block_2", "mp_gs_woodpanel", -1); tmpobjid = CreateDynamicObject(2165,612.763,-567.735,1928.755,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 4, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 5, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2165,612.803,-570.016,1928.755,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 4, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 5, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2645,609.663,-565.670,1931.135,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart3", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,609.663,-566.460,1931.135,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart2", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,609.663,-564.880,1931.135,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart1", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19445,627.429,-565.423,1933.699,0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -13421773); tmpobjid = CreateDynamicObject(19445,628.440,-566.273,1933.699,0.000,-0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -13421773); tmpobjid = CreateDynamicObject(19445,628.440,-570.264,1933.699,0.000,-0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -13421773); tmpobjid = CreateDynamicObject(1759,618.373,-563.975,1928.615,0.000,0.000,359.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); tmpobjid = CreateDynamicObject(1759,619.763,-563.975,1928.615,0.000,0.000,359.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); tmpobjid = CreateDynamicObject(19445,620.368,-555.141,1930.329,0.000,0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 3899, "hospital2", "black", -1); tmpobjid = CreateDynamicObject(19476,620.124,-558.470,1931.355,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19476,620.114,-558.470,1931.355,0.000,0.000,180.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterialText(tmpobjid, 0, "ARMORY ROOM", 120, "Ariel", 60, 1, -1, 0, 1); tmpobjid = CreateDynamicObject(19353,620.219,-555.269,1930.335,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19383,620.214,-552.400,1930.329,0.000,0.000,359.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(1495,620.227,-553.139,1928.599,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -1); tmpobjid = CreateDynamicObject(19476,620.124,-552.369,1931.355,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19476,620.114,-552.369,1931.355,0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterialText(tmpobjid, 0, "HOLDING CELLS", 120, "Ariel", 60, 1, -1, 0, 1); tmpobjid = CreateDynamicObject(2645,620.093,-554.620,1931.135,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart2", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,620.093,-555.390,1931.135,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart3", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,620.093,-556.160,1931.135,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart1", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19445,620.196,-558.460,1933.699,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,620.196,-548.831,1933.699,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,621.750,-550.781,1930.329,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,602.500,-550.781,1930.329,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,604.729,-558.462,1930.329,0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,604.729,-548.832,1930.329,0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19376,602.414,-556.811,1932.149,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19445,612.516,-553.420,1933.819,180.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,607.625,-555.930,1933.819,180.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,617.406,-555.930,1933.819,180.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,612.526,-560.471,1933.819,180.000,-0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(18980,607.851,-556.938,1932.565,90.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19445,612.516,-556.501,1933.819,180.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19999,610.676,-567.846,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(19999,610.676,-570.477,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(19445,609.527,-574.351,1930.329,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,612.516,-557.381,1933.819,180.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,612.500,-556.472,1933.879,0.000,-0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(1499,616.732,-571.361,1928.565,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -1); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "barbersmir1", -1); tmpobjid = CreateDynamicObject(19445,612.500,-557.412,1933.889,0.000,-0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,615.429,-563.312,1933.699,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,605.799,-563.312,1933.699,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,604.779,-558.522,1933.699,0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,604.779,-548.892,1933.699,0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,615.290,-550.821,1933.699,0.000,-0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,605.659,-550.821,1933.699,0.000,-0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,612.500,-553.442,1933.889,0.000,-0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19376,612.453,-556.251,1932.279,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -1); tmpobjid = CreateDynamicObject(19445,612.500,-560.432,1933.889,0.000,-0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(3077,605.614,-559.010,1928.615,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14853, "gen_pol_vegas", "mp_cop_pinboard", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19445,617.360,-557.662,1933.889,0.000,-0.000,359.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,607.650,-557.662,1933.879,0.000,-0.000,359.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(630,609.896,-566.124,1929.510,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); tmpobjid = CreateDynamicObject(2242,609.981,-566.104,1928.760,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 18058, "mp_diner2", "mp_diner_slats", 0); tmpobjid = CreateDynamicObject(630,609.896,-566.124,1929.590,-0.000,0.000,154.799,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 1597, "centralresac1", "kbtree4_test", -1); tmpobjid = CreateDynamicObject(19399,617.362,-582.415,1930.335,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,610.966,-585.890,1930.339,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(2199,604.950,-553.727,1929.525,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2199,604.950,-551.507,1929.525,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2637,615.864,-558.875,1932.565,0.000,179.999,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); SetDynamicObjectMaterial(tmpobjid, 1, 10778, "airportcpark_sfse", "ws_fluorescent2", 0); tmpobjid = CreateDynamicObject(2637,615.864,-554.965,1932.565,0.000,179.999,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); SetDynamicObjectMaterial(tmpobjid, 1, 10778, "airportcpark_sfse", "ws_fluorescent2", 0); tmpobjid = CreateDynamicObject(2637,609.103,-558.875,1932.565,0.000,179.999,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); SetDynamicObjectMaterial(tmpobjid, 1, 10778, "airportcpark_sfse", "ws_fluorescent2", 0); tmpobjid = CreateDynamicObject(2637,609.103,-554.965,1932.565,0.000,179.999,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); SetDynamicObjectMaterial(tmpobjid, 1, 10778, "airportcpark_sfse", "ws_fluorescent2", 0); tmpobjid = CreateDynamicObject(2637,612.533,-558.875,1932.565,0.000,179.999,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); SetDynamicObjectMaterial(tmpobjid, 1, 10778, "airportcpark_sfse", "ws_fluorescent2", 0); tmpobjid = CreateDynamicObject(2637,612.533,-554.965,1932.565,0.000,179.999,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); SetDynamicObjectMaterial(tmpobjid, 1, 10778, "airportcpark_sfse", "ws_fluorescent2", 0); tmpobjid = CreateDynamicObject(1721,611.217,-552.670,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,611.217,-553.299,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,611.217,-553.929,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,611.217,-560.729,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,611.217,-560.099,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,611.217,-559.469,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,611.217,-557.309,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,611.217,-556.689,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,611.217,-556.069,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,612.988,-552.670,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,612.988,-553.299,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,612.988,-553.929,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,612.988,-560.729,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,612.988,-560.099,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,612.988,-559.469,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,612.988,-557.309,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,612.988,-556.689,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19445,627.466,-565.453,1930.329,0.000,0.000,359.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -13421773); tmpobjid = CreateDynamicObject(19383,615.833,-580.739,1930.329,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,617.361,-585.619,1930.335,-0.000,0.000,-179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19869,617.362,-581.151,1932.625,0.000,90.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10973, "mall_sfse", "ws_grilleshade", 0); tmpobjid = CreateDynamicObject(19999,626.852,-578.930,1928.615,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(19999,619.240,-583.562,1928.615,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(1897,617.358,-582.485,1931.085,89.999,-0.098,0.098,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,617.358,-582.485,1929.715,89.999,-0.098,0.098,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,617.348,-581.454,1930.095,0.000,-179.999,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,617.348,-583.175,1930.095,0.000,-179.999,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,617.348,-582.314,1930.095,0.000,-179.999,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(19999,612.799,-583.562,1928.615,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(19869,611.383,-580.732,1932.625,0.000,89.999,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10973, "mall_sfse", "ws_grilleshade", 0); tmpobjid = CreateDynamicObject(19445,619.216,-571.431,1933.699,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,609.595,-571.431,1933.699,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,610.995,-576.312,1933.699,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,610.995,-585.941,1933.699,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,612.636,-580.721,1933.699,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,612.586,-580.761,1933.699,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(1721,612.988,-556.069,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,614.749,-552.670,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,614.749,-553.299,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,614.749,-553.929,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19445,609.156,-571.330,1933.699,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,623.606,-564.830,1933.699,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(1721,614.749,-560.729,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,614.749,-560.099,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19445,609.586,-568.168,1933.699,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,609.566,-574.408,1933.699,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(1721,614.749,-559.469,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,614.749,-557.309,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,614.749,-556.689,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19383,621.674,-575.849,1930.329,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,621.669,-573.019,1930.335,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(2606,610.825,-583.301,1931.125,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,614.749,-556.069,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19353,621.649,-573.019,1933.695,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(2606,610.825,-583.301,1931.585,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1499,615.212,-563.369,1928.565,0.000,0.000,359.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -1); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "barbersmir1", -1); tmpobjid = CreateDynamicObject(2725,619.712,-560.758,1928.943,-0.000,-0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 1560, "7_11_door", "cj_sheetmetal2", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 2, 1560, "7_11_door", "cj_sheetmetal2", 0); tmpobjid = CreateDynamicObject(2725,619.712,-561.923,1928.943,-0.000,-0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 1560, "7_11_door", "cj_sheetmetal2", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 2, 1560, "7_11_door", "cj_sheetmetal2", 0); tmpobjid = CreateDynamicObject(14834,619.474,-561.279,1928.646,-0.000,-0.000,-170.340,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", -1); tmpobjid = CreateDynamicObject(2199,609.611,-567.557,1929.155,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2199,609.611,-568.728,1929.155,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2725,623.175,-570.890,1928.943,-0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 1560, "7_11_door", "cj_sheetmetal2", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 2, 1560, "7_11_door", "cj_sheetmetal2", 0); tmpobjid = CreateDynamicObject(2199,609.611,-570.828,1928.635,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2199,609.611,-570.558,1928.635,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2725,622.010,-570.890,1928.943,-0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 1560, "7_11_door", "cj_sheetmetal2", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 2, 1560, "7_11_door", "cj_sheetmetal2", 0); tmpobjid = CreateDynamicObject(14834,622.654,-570.652,1928.646,-0.000,-0.000,134.459,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", -1); tmpobjid = CreateDynamicObject(2725,619.515,-570.890,1928.943,-0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 1560, "7_11_door", "cj_sheetmetal2", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 2, 1560, "7_11_door", "cj_sheetmetal2", 0); tmpobjid = CreateDynamicObject(1495,627.328,-569.609,1928.599,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 1, 3899, "hospital2", "black", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -13421773); tmpobjid = CreateDynamicObject(1495,627.328,-566.599,1928.599,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 1, 3899, "hospital2", "black", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -13421773); tmpobjid = CreateDynamicObject(19376,628.814,-565.401,1932.119,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14859, "gf1", "mp_cop_ceiling", -13421773); tmpobjid = CreateDynamicObject(19376,628.854,-565.451,1928.549,0.000,90.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14777, "int_casinoint3", "GB_midbar05", -13421773); tmpobjid = CreateDynamicObject(2725,618.350,-570.890,1928.943,-0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 1560, "7_11_door", "cj_sheetmetal2", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 2, 1560, "7_11_door", "cj_sheetmetal2", 0); tmpobjid = CreateDynamicObject(14834,618.993,-570.652,1928.646,0.000,-0.000,134.459,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", -1); tmpobjid = CreateDynamicObject(19873,620.137,-568.403,1932.055,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2199,622.491,-571.517,1929.535,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(1234,619.645,-571.258,1929.905,0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(14834,605.171,-555.953,1928.646,0.000,-0.000,18.859,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", -1); tmpobjid = CreateDynamicObject(1721,619.978,-560.080,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,619.978,-562.650,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2606,610.825,-583.301,1930.665,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19445,617.376,-585.572,1933.699,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19445,617.336,-585.572,1933.699,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19999,622.881,-583.562,1928.615,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(1897,611.657,-580.744,1930.095,0.000,-179.999,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,613.398,-580.744,1930.095,0.000,-179.999,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,612.537,-580.744,1930.095,0.000,-179.999,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,612.537,-580.764,1929.895,-89.999,-269.900,-179.901,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,612.537,-580.764,1931.275,-89.999,-269.900,-179.901,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(19353,626.399,-577.519,1930.335,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,621.639,-576.020,1933.695,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,626.379,-577.551,1933.695,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,623.179,-577.551,1933.695,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19999,622.881,-578.891,1928.615,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(19999,612.957,-573.207,1928.615,0.000,-0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(19353,623.608,-571.238,1933.695,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19981,613.133,-569.729,1933.375,-0.000,179.999,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19981,613.133,-568.958,1933.375,-0.000,179.999,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19873,613.119,-569.723,1932.055,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -1); tmpobjid = CreateDynamicObject(19873,613.119,-568.952,1932.055,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -1); tmpobjid = CreateDynamicObject(19476,613.169,-569.344,1930.695,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterialText(tmpobjid, 0, "INFORMATION", 120, "Ariel", 80, 1, -1, 0, 1); tmpobjid = CreateDynamicObject(19999,612.957,-577.589,1928.615,0.000,-0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(19999,619.810,-573.405,1928.615,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(19869,621.913,-577.523,1932.625,0.000,89.999,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10973, "mall_sfse", "ws_grilleshade", 0); tmpobjid = CreateDynamicObject(1897,624.150,-577.534,1930.625,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,622.410,-577.534,1930.625,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,623.340,-577.544,1931.085,89.999,89.901,0.098,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,623.340,-577.544,1929.715,89.999,89.901,0.098,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(1897,623.289,-577.534,1930.625,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14385, "trailerkb", "tr_wood1", 0); tmpobjid = CreateDynamicObject(2645,621.542,-573.182,1931.135,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart3", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,621.542,-572.391,1931.135,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart2", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,621.542,-573.971,1931.135,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart1", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,619.030,-585.443,1931.135,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart3", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,619.821,-585.443,1931.135,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart2", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,618.241,-585.443,1931.135,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart1", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1763,613.237,-580.086,1928.615,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); tmpobjid = CreateDynamicObject(1721,619.978,-554.250,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,619.978,-554.880,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1759,621.183,-563.975,1928.615,0.000,0.000,359.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); tmpobjid = CreateDynamicObject(1759,615.063,-584.925,1928.615,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); tmpobjid = CreateDynamicObject(1759,617.074,-584.925,1928.615,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); tmpobjid = CreateDynamicObject(19873,616.029,-576.413,1932.055,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19873,622.529,-581.652,1932.055,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(19999,626.894,-575.502,1928.615,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 2562, "cj_hotel_sw", "CJ-COUCHL1", 0); tmpobjid = CreateDynamicObject(1721,619.978,-555.501,1928.615,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,620.318,-571.101,1928.615,0.000,0.000,359.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1721,617.608,-571.101,1928.615,0.000,0.000,359.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14479, "skuzzy_motelmain", "mp_CJ_Laminate1", 0); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,609.434,-563.239,1931.135,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart2", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2637,614.354,-583.265,1932.415,0.000,179.999,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); SetDynamicObjectMaterial(tmpobjid, 1, 10778, "airportcpark_sfse", "ws_fluorescent2", 0); tmpobjid = CreateDynamicObject(2637,624.704,-575.145,1932.415,0.000,179.999,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); SetDynamicObjectMaterial(tmpobjid, 1, 10778, "airportcpark_sfse", "ws_fluorescent2", 0); tmpobjid = CreateDynamicObject(19353,625.299,-572.749,1933.695,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,626.379,-572.739,1933.695,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,621.698,-575.909,1933.695,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,621.688,-573.078,1933.695,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,623.378,-577.489,1933.695,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,626.389,-577.499,1933.695,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(1499,621.683,-575.103,1928.565,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -1); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "barbersmir1", -1); tmpobjid = CreateDynamicObject(1499,616.572,-580.752,1928.565,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", -1); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "barbersmir1", -1); tmpobjid = CreateDynamicObject(2645,608.664,-563.239,1931.135,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart3", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(2645,607.893,-563.239,1931.135,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart1", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(14834,619.776,-556.759,1928.646,-0.000,-0.000,-149.539,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 2, 19297, "matlights", "invisible", -1); tmpobjid = CreateDynamicObject(630,611.505,-581.409,1929.520,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); tmpobjid = CreateDynamicObject(2242,611.590,-581.390,1928.770,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 18058, "mp_diner2", "mp_diner_slats", 0); tmpobjid = CreateDynamicObject(630,611.505,-581.409,1929.600,-0.000,0.000,154.799,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 1597, "centralresac1", "kbtree4_test", -1); tmpobjid = CreateDynamicObject(630,611.505,-575.058,1929.520,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -1); tmpobjid = CreateDynamicObject(2242,611.590,-575.039,1928.770,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 18058, "mp_diner2", "mp_diner_slats", 0); tmpobjid = CreateDynamicObject(630,611.505,-575.058,1929.600,-0.000,0.000,154.799,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 1597, "centralresac1", "kbtree4_test", -1); tmpobjid = CreateDynamicObject(2276,620.439,-563.964,1930.765,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 1, 15040, "cuntcuts", "csnewspaper02", 0); tmpobjid = CreateDynamicObject(19445,628.385,-570.293,1930.329,0.000,0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -13421773); tmpobjid = CreateDynamicObject(11711,627.352,-568.108,1931.505,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", -13421773); tmpobjid = CreateDynamicObject(2608,611.288,-576.678,1931.125,0.000,0.000,450.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 4, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 5, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2855,622.009,-570.855,1929.355,0.000,0.000,180.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 4, 15040, "cuntcuts", "csnewspaper", 0); tmpobjid = CreateDynamicObject(2855,618.369,-570.855,1929.355,0.000,0.000,180.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 4, 15040, "cuntcuts", "csnewspaper", 0); tmpobjid = CreateDynamicObject(2855,619.729,-561.935,1929.355,0.000,0.000,180.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 4, 15040, "cuntcuts", "csnewspaper", 0); tmpobjid = CreateDynamicObject(2855,619.729,-560.775,1929.355,0.000,0.000,180.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 4, 15040, "cuntcuts", "csnewspaper", 0); tmpobjid = CreateDynamicObject(2855,612.889,-568.975,1929.535,0.000,0.000,270.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 4, 15040, "cuntcuts", "csnewspaper", 0); tmpobjid = CreateDynamicObject(2855,612.739,-563.874,1929.535,0.000,0.000,270.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 4, 15040, "cuntcuts", "csnewspaper", 0); tmpobjid = CreateDynamicObject(2855,612.739,-564.375,1929.535,0.000,0.000,270.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 4, 15040, "cuntcuts", "csnewspaper", 0); tmpobjid = CreateDynamicObject(2645,623.533,-564.300,1931.135,0.000,0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 10377, "cityhall_sfs", "ws_copart1", 0); SetDynamicObjectMaterial(tmpobjid, 2, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); tmpobjid = CreateDynamicObject(1738,612.707,-563.079,1929.214,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 1, 1560, "7_11_door", "cj_sheetmetal2", 0); tmpobjid = CreateDynamicObject(2608,612.798,-563.067,1931.125,0.000,0.000,180.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 4, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 5, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2608,611.518,-551.097,1931.125,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 4, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 5, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2608,612.968,-571.707,1931.125,0.000,0.000,360.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 4, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 5, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2608,619.779,-571.707,1931.125,0.000,0.000,360.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 4, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 5, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2608,623.769,-585.247,1931.125,0.000,0.000,540.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 4, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 5, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2608,621.889,-585.247,1931.125,0.000,0.000,540.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 4, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 5, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(2608,617.709,-551.097,1931.125,0.000,0.000,360.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 1, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 3, 19297, "matlights", "invisible", 0); SetDynamicObjectMaterial(tmpobjid, 4, 14650, "ab_trukstpc", "mp_CJ_WOOD5", 0); SetDynamicObjectMaterial(tmpobjid, 5, 19297, "matlights", "invisible", 0); tmpobjid = CreateDynamicObject(19399,615.331,-550.784,1930.335,0.000,0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19353,612.130,-550.778,1930.335,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19399,608.921,-550.784,1930.335,0.000,0.000,269.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 17566, "contachou1_lae2", "mp_apt1_woodpanel", -1); tmpobjid = CreateDynamicObject(19466,615.508,-550.819,1930.735,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14593, "papaerchaseoffice", "ab_blinds", 0); tmpobjid = CreateDynamicObject(19466,609.097,-550.819,1930.735,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14593, "papaerchaseoffice", "ab_blinds", 0); tmpobjid = CreateDynamicObject(19466,610.717,-550.829,1930.735,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14593, "papaerchaseoffice", "ab_blinds", 0); tmpobjid = CreateDynamicObject(19466,617.138,-550.829,1930.735,0.000,0.000,89.999,-1,-1,-1,350.000,350.000); SetDynamicObjectMaterial(tmpobjid, 0, 14593, "papaerchaseoffice", "ab_blinds", 0); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// tmpobjid = CreateDynamicObject(16780,614.201,-566.101,1932.205,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2111,614.185,-566.134,1932.435,0.000,180.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(11711,623.542,-568.108,1931.505,0.000,0.000,-90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2164,609.648,-570.815,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2165,627.456,-584.960,1928.605,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2166,626.588,-584.996,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2165,627.456,-580.328,1928.605,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2190,613.131,-568.567,1929.515,0.000,0.000,-100.099,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2167,609.643,-563.886,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2167,609.643,-564.806,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2190,613.131,-570.868,1929.515,-0.000,-0.000,-100.099,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2167,609.643,-569.038,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2167,609.643,-568.127,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2167,609.643,-567.206,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2200,604.967,-552.627,1928.615,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2200,604.967,-554.857,1928.615,0.000,-0.000,89.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2166,626.588,-580.364,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2165,619.844,-584.960,1928.605,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2166,618.976,-584.996,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2165,623.485,-584.960,1928.605,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2165,613.403,-584.960,1928.605,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2166,612.535,-584.996,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19825,604.848,-552.503,1931.195,0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2200,622.318,-571.617,1928.615,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2200,623.989,-571.637,1928.615,0.000,-0.000,-0.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2203,619.473,-561.294,1928.760,-0.000,-0.000,-90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2203,622.639,-570.651,1928.760,-0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(16780,620.151,-568.401,1932.205,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2203,618.979,-570.651,1928.760,-0.000,-0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2111,620.135,-568.434,1932.435,0.000,180.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19807,619.519,-570.821,1929.454,0.000,0.000,180.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2203,605.174,-555.939,1928.760,-0.000,-0.000,78.899,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2002,621.108,-570.783,1928.615,0.000,0.000,180.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2166,622.617,-584.996,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2165,623.485,-580.289,1928.605,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2166,622.617,-580.325,1928.615,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2165,611.559,-573.811,1928.605,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2166,611.523,-572.943,1928.615,-0.000,-0.000,0.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2165,611.559,-578.192,1928.605,-0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2166,611.523,-577.324,1928.615,-0.000,-0.000,0.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2165,619.206,-572.007,1928.605,-0.000,-0.000,0.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2166,620.075,-571.971,1928.615,0.000,-0.000,-89.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19825,609.678,-568.643,1931.195,0.000,0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2986,616.554,-585.451,1931.726,180.000,90.000,270.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2986,627.215,-585.451,1931.726,180.000,90.000,270.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(16780,616.043,-576.411,1932.205,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2111,616.027,-576.444,1932.435,0.000,180.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(16780,622.543,-581.650,1932.205,0.000,0.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2111,622.527,-581.683,1932.435,0.000,180.000,179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2165,627.498,-576.900,1928.605,-0.000,0.000,-179.999,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2166,626.630,-576.936,1928.615,-0.000,-0.000,90.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2986,619.315,-563.241,1931.726,180.000,90.000,270.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2203,619.771,-556.773,1928.760,-0.000,-0.000,-104.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,620.115,-560.202,1930.535,0.000,0.000,270.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,620.115,-560.482,1930.535,0.000,0.000,270.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,620.115,-554.112,1930.535,0.000,0.000,270.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,620.115,-553.822,1930.535,0.000,0.000,270.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,604.835,-556.692,1930.535,0.000,0.000,450.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,604.835,-556.402,1930.535,0.000,0.000,450.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,609.645,-569.402,1930.535,0.000,0.000,450.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,611.074,-574.553,1930.535,0.000,0.000,450.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,611.074,-574.273,1930.535,0.000,0.000,450.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,621.774,-574.133,1930.535,0.000,0.000,450.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,621.774,-573.853,1930.535,0.000,0.000,450.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,620.334,-585.473,1930.535,0.000,0.000,540.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,624.955,-585.473,1930.535,0.000,0.000,540.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,625.235,-585.473,1930.535,0.000,0.000,540.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2986,619.315,-563.471,1931.726,180.000,90.000,450.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2986,613.415,-550.890,1931.726,180.000,90.000,450.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(2986,606.884,-550.890,1931.726,180.000,90.000,450.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,611.265,-563.253,1930.535,0.000,0.000,540.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19813,610.945,-563.253,1930.535,0.000,0.000,540.000,-1,-1,-1,350.000,350.000); tmpobjid = CreateDynamicObject(19536,618.167,-568.066,1928.595,0.000,0.000,0.000,-1,-1,-1,350.000,350.000); ////////////////////////////MAPPINGS MAPPINGS MAPPINGS MAPPINGS///////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Map Exported with Texture Studio By: [uL]Pottus//////////////////////////////////////////////////////////////// //////////////////////////////////////////////and Crayder//////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Map Information//////////////////////////////////////////////////////////////////////////////////////////////// /* Exported on "2019-10-19 10:38:19" by "kova" Created by "kova" */ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Objects//////////////////////////////////////////////////////////////////////////////////////////////////////// tmpobjid = CreateDynamicObjectEx(19377, 883.938720, 1913.583984, -90.078689, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 883.938537, 1923.212768, -90.078697, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(14411, 876.425048, 1918.392944, -93.183601, 0.000000, 0.000000, 270.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 10806, "airfence_sfse", "ws_oldpainted", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 872.116088, 1929.994384, -85.084701, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 870.527038, 1895.874511, -90.350799, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 915, "airconext", "CJ_plating", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 877.767272, 1920.379516, -88.508590, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 10351, "beach_sfs", "rocktb128", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 878.195800, 1920.386596, -88.508590, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 10351, "beach_sfs", "rocktb128", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 877.770019, 1915.878051, -88.508590, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 10351, "beach_sfs", "rocktb128", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 878.196960, 1915.875854, -88.508590, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 10351, "beach_sfs", "rocktb128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 878.606872, 1910.585327, -89.993026, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14577, "casinovault01", "cof_wood1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 878.607666, 1925.694213, -89.893028, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14577, "casinovault01", "cof_wood1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 883.508605, 1908.991210, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14577, "casinovault01", "cof_wood1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 883.511474, 1927.801757, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14577, "casinovault01", "cof_wood1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 888.230224, 1913.897583, -94.476509, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 888.233825, 1923.527221, -89.993026, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14577, "casinovault01", "cof_wood1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 861.943786, 1923.103027, -90.891799, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14756, "smallsfhs", "AH_flroortiledirt1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 861.943725, 1913.468383, -90.891799, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14756, "smallsfhs", "AH_flroortiledirt1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 877.358337, 1910.565795, -89.993026, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 878.197326, 1917.876464, -85.511001, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 10351, "beach_sfs", "rocktb128", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 878.196472, 1922.856567, -85.521003, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 10351, "beach_sfs", "rocktb128", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 877.771911, 1917.867187, -85.521003, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 10351, "beach_sfs", "rocktb128", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 877.772766, 1922.848632, -85.521003, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 10351, "beach_sfs", "rocktb128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 877.356384, 1925.694335, -89.993026, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19360, 870.232055, 1908.741455, -85.278297, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 876.650390, 1908.740844, -86.473014, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 863.812927, 1908.742187, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 872.488952, 1927.632324, -79.788597, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14735, "newcrak", "carp21S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19360, 870.198730, 1927.833007, -85.280296, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 863.783325, 1927.831787, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 872.444458, 1923.093627, -90.891799, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14756, "smallsfhs", "AH_flroortiledirt1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 861.616882, 1929.995727, -85.084701, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 876.619567, 1927.832885, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19360, 856.767211, 1918.123168, -85.280097, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 854.157592, 1927.830932, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 856.765441, 1924.546264, -89.993026, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 856.769470, 1911.703247, -95.261192, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "bank_wall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 854.185241, 1908.744750, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 854.817382, 1920.367431, -85.084663, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 854.816833, 1910.804199, -85.082702, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 861.969909, 1906.630981, -85.084701, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 872.467346, 1906.629150, -85.084701, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 862.857116, 1927.654174, -79.788597, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14735, "newcrak", "carp21S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 872.479553, 1908.849365, -79.788597, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14735, "newcrak", "carp21S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 862.852050, 1908.848144, -79.788597, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14735, "newcrak", "carp21S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 853.219421, 1908.848266, -79.788597, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14735, "newcrak", "carp21S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 853.225524, 1927.655395, -79.788597, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14735, "newcrak", "carp21S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 856.848571, 1922.810180, -79.788597, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14735, "newcrak", "carp21S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 856.849548, 1913.177978, -79.788597, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14735, "newcrak", "carp21S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 877.322998, 1922.735229, -79.788597, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14735, "newcrak", "carp21S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 883.880371, 1927.698120, -85.084701, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(18980, 877.492553, 1916.270141, -84.732452, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 10351, "beach_sfs", "rocktb128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 877.323608, 1913.102050, -79.788597, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14735, "newcrak", "carp21S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 875.580627, 1911.348754, -84.361503, 90.000000, 0.006300, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 872.085327, 1911.348510, -84.361503, 90.000000, 0.006300, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 868.586608, 1911.348876, -84.361503, 90.000000, 0.006300, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 865.088439, 1911.348754, -84.361503, 90.000000, 0.006300, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 861.591979, 1911.349121, -84.361503, 90.000000, 0.006300, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 859.967407, 1913.126586, -84.361503, 90.000000, 0.006300, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 859.966796, 1916.624511, -84.361503, 90.000000, 0.006300, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 859.966003, 1920.121337, -84.361503, 90.000000, 0.006300, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 859.965515, 1923.546264, -84.361503, 90.000000, 0.006300, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 861.773315, 1925.289916, -84.361503, 90.000000, 0.006300, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 865.273620, 1925.291259, -84.361503, 90.000000, 0.006300, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 868.767578, 1925.292236, -84.361503, 90.000000, 0.006300, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 872.259216, 1925.293212, -84.361503, 90.000000, 0.006300, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 875.754150, 1925.293212, -84.361503, 90.000000, 0.006300, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19378, 872.078247, 1913.761718, -79.585372, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "ws_trainstationwin1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19378, 872.077209, 1923.396118, -79.585372, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "ws_trainstationwin1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19378, 861.581176, 1923.391967, -79.585372, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "ws_trainstationwin1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19378, 861.579895, 1913.760131, -79.585372, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "ws_trainstationwin1", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 856.354370, 1920.227783, -89.420646, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 856.355712, 1916.022338, -89.420646, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 856.354370, 1918.179687, -91.299797, 90.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 872.331115, 1908.326904, -89.420646, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 868.133300, 1908.329223, -89.420646, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 868.101562, 1928.243774, -89.420646, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 870.461914, 1928.244506, -86.532600, 90.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 872.301879, 1928.245361, -89.420646, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 856.354370, 1918.179687, -86.530601, 90.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 870.461914, 1928.244506, -91.299797, 90.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 870.134826, 1908.334472, -91.299797, 90.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 850.782287, 1918.157470, -90.891799, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "woodfloor1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 855.941345, 1924.546020, -89.993026, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 5040, "shopliquor_las", "lasjmliq1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 855.942993, 1911.703247, -89.993026, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 5040, "shopliquor_las", "lasjmliq1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19360, 855.941284, 1918.124633, -83.804100, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 851.084472, 1922.981567, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 5040, "shopliquor_las", "lasjmliq1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 843.128784, 1922.984985, -90.622993, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_gs_wall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 851.047973, 1913.256591, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 5040, "shopliquor_las", "lasjmliq1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 841.418273, 1913.256591, -80.306388, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 836.585815, 1918.095214, -93.805557, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 5040, "shopliquor_las", "lasjmliq1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 870.471008, 1939.123413, -94.395202, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 883.808349, 1908.670043, -85.084701, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 883.004333, 1918.103759, -84.963699, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 883.404907, 1913.426269, -79.926200, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 883.387084, 1922.825439, -79.926200, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(14411, 870.112976, 1905.357788, -94.016853, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 10806, "airfence_sfse", "ws_oldpainted", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 872.250915, 1932.624877, -89.992996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 4550, "skyscr1_lan2", "sl_librarycolmn2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 868.082092, 1932.573486, -89.992996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 4550, "skyscr1_lan2", "sl_librarycolmn2", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 872.658020, 1936.959472, -91.814651, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 867.674072, 1936.960571, -91.814651, 180.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 869.474182, 1932.507568, -86.808578, -34.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 872.056579, 1928.656982, -81.311630, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 4550, "skyscr1_lan2", "sl_librarycolmn2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 870.466430, 1947.658447, -85.019203, 70.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 870.377075, 1954.475952, -86.135757, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "ws_trainstationwin1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 876.976440, 1937.372924, -92.572990, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14533, "pleas_dome", "club_zeb_SFW2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 863.356262, 1937.371948, -92.592948, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14533, "pleas_dome", "club_zeb_SFW2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 875.794189, 1941.295043, -92.572959, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14533, "pleas_dome", "club_zeb_SFW2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 865.140930, 1941.294799, -92.582977, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14533, "pleas_dome", "club_zeb_SFW2", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 870.578674, 1936.957885, -89.080497, 0.000000, 90.000000, -180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 875.692016, 1950.232421, -94.360702, 0.000000, 90.000000, 50.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 876.890930, 1952.115966, -94.362701, 0.000000, 90.000000, 70.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 877.444885, 1954.501953, -94.360702, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 877.172729, 1956.861206, -94.362701, 0.000000, 90.000000, 110.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 875.778808, 1959.354492, -94.360702, 0.000000, 90.000000, 130.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 873.850952, 1960.975708, -94.362701, 0.000000, 90.000000, 150.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 866.746276, 1960.786010, -94.360702, 0.000000, 90.000000, 210.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 864.959838, 1959.166503, -94.362701, 0.000000, 90.000000, 230.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 863.778625, 1956.889404, -94.360702, 0.000000, 90.000000, 250.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 863.478881, 1954.286499, -94.362701, 0.000000, 90.000000, 270.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 864.225524, 1951.725830, -94.360702, 0.000000, 90.000000, 290.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 865.705566, 1949.746948, -94.362701, 0.000000, 90.000000, 310.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 867.637817, 1948.438354, -94.360702, 0.000000, 90.000000, 330.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 869.885009, 1947.877197, -94.362701, 0.000000, 90.000000, 350.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 871.969482, 1948.042968, -94.360702, 0.000000, 90.000000, 370.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19370, 874.029785, 1948.953735, -94.362701, 0.000000, 90.000000, 390.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "scratchedmetal", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 865.139892, 1944.064819, -89.992996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 4550, "skyscr1_lan2", "sl_librarycolmn2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 862.222717, 1952.645385, -89.992996, 0.000000, 0.000000, 37.554321, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6866, "vgncnstrct1", "Circus_gls_05", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 862.370544, 1956.755371, -89.992996, 0.000000, 0.000000, 358.902587, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6866, "vgncnstrct1", "Circus_gls_05", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 864.130310, 1960.204467, -89.992996, 0.000000, 0.000000, 332.902679, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6866, "vgncnstrct1", "Circus_gls_05", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 866.477478, 1962.040161, -89.992996, 0.000000, 0.000000, 314.474731, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6866, "vgncnstrct1", "Circus_gls_05", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 872.341125, 1954.408691, -96.067947, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3922, "bistro", "Marble", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 862.011108, 1959.064086, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6866, "vgncnstrct1", "Circus_gls_05", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 878.867919, 1959.069213, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6866, "vgncnstrct1", "Circus_gls_05", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 878.714050, 1952.622070, -89.992996, 0.000000, 0.000000, -37.554298, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6866, "vgncnstrct1", "Circus_gls_05", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 875.804382, 1944.042846, -89.992996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 4550, "skyscr1_lan2", "sl_librarycolmn2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 878.724182, 1957.400390, -89.992996, 0.000000, 0.000000, -358.902587, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6866, "vgncnstrct1", "Circus_gls_05", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 877.123840, 1959.497070, -89.992996, 0.000000, 0.000000, -332.902709, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6866, "vgncnstrct1", "Circus_gls_05", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 870.458923, 1959.187011, -91.285873, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3922, "bistro", "Marble", 0x00000000); tmpobjid = CreateDynamicObjectEx(19381, 870.350830, 1959.102905, -82.429916, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 1414, "break_street1", "CJ_TV_SCREEN", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 870.470520, 1944.951660, -94.397201, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 880.874633, 1954.467773, -86.135757, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "ws_trainstationwin1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 859.885314, 1954.476806, -86.135757, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "ws_trainstationwin1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 870.382202, 1944.840820, -86.135757, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "ws_trainstationwin1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 880.867797, 1944.832763, -86.135757, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16639, "a51_labs", "ws_trainstationwin1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 870.467773, 1941.275756, -89.487998, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 870.134826, 1908.328613, -86.530601, 90.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(18809, 870.432922, 1954.866088, -119.140869, 0.000000, 0.000000, 10.338688, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3922, "bistro", "Marble", 0x00000000); tmpobjid = CreateDynamicObjectEx(14411, 870.234436, 1931.825317, -94.016868, 0.000000, 0.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 10806, "airfence_sfse", "ws_oldpainted", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 868.106018, 1903.885253, -89.992996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 872.248291, 1903.961059, -89.992996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 872.444396, 1913.465820, -90.891799, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14756, "smallsfhs", "AH_flroortiledirt1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 868.105224, 1894.255615, -89.992996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 879.694702, 1888.511352, -92.276298, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "sl_metalwalk", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 876.976562, 1899.232910, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 872.989807, 1891.868164, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 882.621887, 1891.868041, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 879.166809, 1899.234619, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 885.025451, 1894.908447, -89.992996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(1649, 836.624633, 1920.291625, -86.935699, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 15046, "svcunthoose", "csGarageTrolley01psd", 0xFA000000); tmpobjid = CreateDynamicObjectEx(19377, 831.377014, 1918.122314, -88.642196, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "woodfloor1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 850.662536, 1918.098876, -85.184646, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 840.160095, 1918.099121, -85.184646, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 840.281127, 1918.160522, -90.891799, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "woodfloor1", 0x00000000); tmpobjid = CreateDynamicObjectEx(1649, 836.628540, 1920.291748, -86.935699, 0.000000, 0.000000, 270.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 15046, "svcunthoose", "csGarageTrolley01psd", 0xB4000000); tmpobjid = CreateDynamicObjectEx(1649, 836.624206, 1915.916137, -86.935699, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 15046, "svcunthoose", "csGarageTrolley01psd", 0xFA000000); tmpobjid = CreateDynamicObjectEx(14411, 835.439208, 1924.827148, -91.784126, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14476, "carlslounge", "AH_cheapredcarpet", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 9507, "boxybld2_sfw", "boxybox_sf3z", 0x00000000); tmpobjid = CreateDynamicObjectEx(18980, 836.318176, 1922.762817, -90.807792, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 18835, "mickytextures", "wood051", 0x00000000); tmpobjid = CreateDynamicObjectEx(18980, 836.319030, 1913.590698, -90.807792, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(1649, 836.628723, 1915.854614, -86.935699, 0.000000, 0.000000, 270.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 15046, "svcunthoose", "csGarageTrolley01psd", 0xB4000000); tmpobjid = CreateDynamicObjectEx(18980, 836.317749, 1910.377929, -84.857200, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3676, "lawnxref", "lasthoose6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 839.483276, 1927.794677, -90.891799, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "woodfloor1", 0x00000000); tmpobjid = CreateDynamicObjectEx(1499, 838.317810, 1922.977539, -90.805702, 0.000000, 0.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 10101, "2notherbuildsfe", "Bow_Abpave_Gen", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 14650, "ab_trukstpc", "sa_wood08_128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 838.842041, 1927.780395, -87.122962, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_gs_wall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 834.068847, 1925.260131, -90.622978, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_gs_wall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 841.549255, 1922.988647, -83.051498, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_gs_wall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 831.681762, 1927.585327, -90.622993, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_gs_wall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 826.952392, 1922.855957, -90.632972, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_gs_wall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 831.216064, 1922.857788, -93.802803, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 9507, "boxybld2_sfw", "hospital3_sfw", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 831.196716, 1913.293334, -90.662971, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_gs_wall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 826.335876, 1918.029418, -90.642974, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_gs_wall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 829.659240, 1918.100097, -85.184646, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 834.330078, 1927.732788, -85.184646, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 843.126831, 1922.982910, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 5040, "shopliquor_las", "lasjmliq1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 841.551391, 1922.984863, -80.303298, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(1569, 888.144409, 1919.679931, -89.990798, 0.000000, 0.000000, 270.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 8391, "ballys01", "vgncorpdoor1_512", 0x00000000); tmpobjid = CreateDynamicObjectEx(18075, 846.980895, 1918.067871, -85.259300, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 19595, "lsappartments1", "ceilingtiles3-128x128", 0x00000000); tmpobjid = CreateDynamicObjectEx(2370, 882.979370, 1913.127563, -90.194206, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 14652, "ab_trukstpa", "CJ_WOOD6", 0x00000000); tmpobjid = CreateDynamicObjectEx(2370, 883.468017, 1922.822021, -90.194206, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14581, "ab_mafiasuitea", "cof_wood2", 0x00000000); tmpobjid = CreateDynamicObjectEx(631, 879.211853, 1927.179687, -89.090171, 0.000000, 0.000000, 56.893260, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 17958, "burnsalpha", "plantb256", 0xFFCCFF33); tmpobjid = CreateDynamicObjectEx(631, 879.104736, 1909.546264, -89.090171, 0.000000, 0.000000, 56.893260, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 17958, "burnsalpha", "plantb256", 0xFFCCFF33); tmpobjid = CreateDynamicObjectEx(19443, 876.708679, 1919.769409, -90.888496, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19458, 883.493713, 1918.130493, -90.076599, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 887.696655, 1917.461547, -90.062301, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(638, 879.117919, 1914.015136, -89.385971, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13691, "bevcunto2_lahills", "adeta", 0x00000000); tmpobjid = CreateDynamicObjectEx(638, 879.135009, 1922.234619, -89.385971, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13691, "bevcunto2_lahills", "adeta", 0x00000000); tmpobjid = CreateDynamicObjectEx(19172, 888.147155, 1923.530883, -87.271766, 0.000000, 0.000000, 270.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14489, "carlspics", "AH_picture3", 0x00000000); tmpobjid = CreateDynamicObjectEx(2262, 887.664245, 1921.426391, -86.801803, 0.000000, 0.000000, 270.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14489, "carlspics", "AH_picture2", 0x00000000); tmpobjid = CreateDynamicObjectEx(2266, 887.630432, 1911.380493, -88.248008, 0.000000, 0.000000, 270.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14489, "carlspics", "AH_picture4", 0x00000000); tmpobjid = CreateDynamicObjectEx(631, 887.647399, 1921.109863, -89.090171, 0.000000, 0.000000, 56.893260, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 4830, "airport2", "kbplanter_plants1", 0xFFCCFF33); tmpobjid = CreateDynamicObjectEx(631, 887.751342, 1915.322265, -89.090171, 0.000000, 0.000000, 56.893260, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 4830, "airport2", "kbplanter_plants1", 0xFFCCFF33); tmpobjid = CreateDynamicObjectEx(19089, 864.200073, 1918.067504, -76.544853, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19089, 870.590270, 1918.035278, -76.544853, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19929, 866.466918, 1940.129028, -93.959800, 0.000000, 0.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "ab_wood01", 0x00000000); tmpobjid = CreateDynamicObjectEx(19929, 866.466857, 1937.269531, -94.765823, 0.000000, 0.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 4835, "airoads_las", "aarprt8LAS", 0x00000000); tmpobjid = CreateDynamicObjectEx(19929, 866.464904, 1937.269165, -93.959800, 0.000000, 0.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14581, "ab_mafiasuitea", "ab_wood01", 0x00000000); tmpobjid = CreateDynamicObjectEx(19929, 866.468383, 1940.130737, -94.765800, 0.000000, 0.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 4835, "airoads_las", "aarprt8LAS", 0x00000000); tmpobjid = CreateDynamicObjectEx(14793, 870.623107, 1953.542358, -86.314201, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14634, "blindinglite", "ws_volumetriclight", 0x00000000); tmpobjid = CreateDynamicObjectEx(18809, 870.432922, 1954.866088, -119.150901, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3922, "bistro", "Marble", 0x00000000); tmpobjid = CreateDynamicObjectEx(1762, 826.999328, 1917.626342, -88.554702, 0.000000, 0.000000, 90.916130, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 1730, "cj_furniture", "CJ-COUCHL2", 0x00000000); tmpobjid = CreateDynamicObjectEx(631, 836.023437, 1921.642089, -87.661300, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFFCCFF33); tmpobjid = CreateDynamicObjectEx(631, 836.057067, 1914.610229, -87.661300, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, -1, "none", "none", 0xFFCCFF33); tmpobjid = CreateDynamicObjectEx(19376, 827.340515, 1909.616577, -90.662933, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_gs_wall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 822.496765, 1914.342285, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 9507, "boxybld2_sfw", "hospital3_sfw", 0x00000000); tmpobjid = CreateDynamicObjectEx(631, 827.840942, 1913.820922, -87.661300, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 1597, "centralresac1", "fuzzyplant256", 0xFFCCFF33); tmpobjid = CreateDynamicObjectEx(638, 855.366577, 1914.898559, -90.196998, 0.000000, 0.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 4835, "airoads_las", "aarprt8LAS", 0x00000000); tmpobjid = CreateDynamicObjectEx(638, 855.430725, 1921.339599, -90.196998, 0.000000, 0.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 4835, "airoads_las", "aarprt8LAS", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 851.926025, 1916.222534, -90.804702, 0.000000, 0.000000, 177.552810, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 851.094543, 1920.005249, -90.804702, 0.000000, 0.000000, 2.201900, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 849.742858, 1916.184692, -90.804702, 0.000000, 0.000000, 177.302627, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 847.604125, 1916.287475, -90.804702, 0.000000, 0.000000, 181.268264, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 845.403259, 1916.239990, -90.804702, 0.000000, 0.000000, 178.953765, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 843.163879, 1916.270874, -90.804702, 0.000000, 0.000000, 182.697372, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 841.023376, 1916.303344, -90.804702, 0.000000, 0.000000, 182.201919, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 838.378417, 1917.702270, -90.804702, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 848.762817, 1920.002197, -90.804702, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 846.728515, 1920.065551, -90.804702, 0.000000, 0.000000, 2.323920, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 844.535827, 1920.031005, -90.804702, 0.000000, 0.000000, 358.038513, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 842.260742, 1920.030395, -90.804702, 0.000000, 0.000000, 2.081089, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(1704, 840.102783, 1920.002563, -90.804702, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14789, "ab_sfgymmain", "ab_wood02", 0x00000000); tmpobjid = CreateDynamicObjectEx(9093, 846.699096, 1913.332641, -87.774543, 0.000000, 0.000000, 270.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2266, "picture_frame", "CJ_PAINTING30", 0x00000000); tmpobjid = CreateDynamicObjectEx(9093, 846.643676, 1922.902343, -87.774497, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14489, "carlspics", "AH_landscap1", 0x00000000); tmpobjid = CreateDynamicObjectEx(14793, 863.237243, 1918.238403, -79.884498, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14634, "blindinglite", "ws_volumetriclight", 0x00000000); tmpobjid = CreateDynamicObjectEx(14793, 831.018310, 1917.947143, -85.359497, 0.000000, 0.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14634, "blindinglite", "ws_volumetriclight", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 883.731201, 1894.907714, -94.984649, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13724, "docg01_lahills", "marbletile8b", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 874.486206, 1888.520141, -97.425827, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "sl_metalwalk", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 884.858825, 1888.510986, -97.425827, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16640, "a51", "sl_metalwalk", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 879.740844, 1891.870727, -97.072570, 90.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 16093, "a51_ext", "BLOCK2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19360, 870.746337, 1907.915039, -85.278297, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19360, 867.540466, 1907.915161, -85.278297, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(925, 878.017272, 1898.195312, -93.869766, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3095, "a51jdrx", "sam_camo", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 873.231750, 1894.910156, -94.984649, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13724, "docg01_lahills", "marbletile8b", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 870.176757, 1904.611083, -87.636306, 34.500000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 915, "airconext", "CJ_plating", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 881.024902, 1895.873535, -90.350799, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 915, "airconext", "CJ_plating", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 883.895874, 1903.963989, -94.007499, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 889.755187, 1899.636718, -94.007499, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 885.070312, 1900.910034, -94.007553, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 895.079467, 1904.090209, -95.076286, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14584, "ab_abbatoir01", "ab_tiles", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 873.233642, 1904.543945, -94.984649, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13724, "docg01_lahills", "marbletile8b", 0x00000000); tmpobjid = CreateDynamicObjectEx(19360, 885.581604, 1899.236450, -91.095397, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 889.799133, 1905.640625, -94.007499, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 893.492309, 1904.311523, -94.007499, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14387, "dr_gsnew", "mp_stonefloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 895.822570, 1905.199096, -93.297500, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 17504, "eastlstr_lae2", "compfence4_LAe", 0x00000000); tmpobjid = CreateDynamicObjectEx(19406, 891.642761, 1908.858764, -96.503112, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 12850, "cunte_block1", "ws_redbrickold", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 889.589294, 1909.226562, -95.857498, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 915, "airconext", "cj_sheet2", 0x00000000); tmpobjid = CreateDynamicObjectEx(18762, 893.685180, 1909.242309, -95.857498, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 915, "airconext", "cj_sheet2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19428, 891.758911, 1909.690673, -95.526397, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3355, "cxref_savhus", "des_brick1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19428, 891.758850, 1909.690673, -97.168403, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3355, "cxref_savhus", "des_brick1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19428, 891.756713, 1911.294067, -95.526397, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3355, "cxref_savhus", "des_brick1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19428, 891.759338, 1911.294433, -97.168403, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3355, "cxref_savhus", "des_brick1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19428, 892.680297, 1910.694458, -96.358352, 90.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3355, "cxref_savhus", "des_brick1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19428, 890.651672, 1910.674438, -96.358352, 90.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3355, "cxref_savhus", "des_brick1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19428, 891.487182, 1912.108276, -96.358398, 90.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3355, "cxref_savhus", "des_brick1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 836.594421, 1917.479003, -95.235076, 0.000000, 0.000000, 179.999954, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 831.196716, 1913.303344, -80.212989, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 835.366760, 1925.253540, -80.212989, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 826.966979, 1922.853149, -80.212989, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 826.352844, 1919.150634, -80.212989, 0.000000, 0.000000, 0.000007, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 831.722656, 1927.580566, -80.212989, 0.000000, 0.000000, 0.000007, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 888.480102, 1904.086181, -92.663566, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14584, "ab_abbatoir01", "ab_tiles", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 885.578125, 1904.088378, -92.076698, 0.000000, 55.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14584, "ab_abbatoir01", "ab_tiles", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 890.248107, 1904.130004, -98.110687, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13724, "docg01_lahills", "marbletile8b", 0x00000000); tmpobjid = CreateDynamicObjectEx(638, 876.807617, 1925.221435, -90.100852, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6282, "beafron2_law2", "boardwalk2_la", 0x00000000); tmpobjid = CreateDynamicObjectEx(631, 876.638427, 1927.138549, -89.898628, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 17958, "burnsalpha", "plantb256", 0xFFCCFF33); tmpobjid = CreateDynamicObjectEx(638, 874.770080, 1927.231933, -90.100799, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6282, "beafron2_law2", "boardwalk2_la", 0x00000000); tmpobjid = CreateDynamicObjectEx(631, 876.790832, 1909.391235, -89.898628, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 17958, "burnsalpha", "plantb256", 0xFFCCFF33); tmpobjid = CreateDynamicObjectEx(638, 876.775390, 1911.393554, -90.100852, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6282, "beafron2_law2", "boardwalk2_la", 0x00000000); tmpobjid = CreateDynamicObjectEx(638, 874.755859, 1909.302490, -90.100799, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 6282, "beafron2_law2", "boardwalk2_la", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 887.688232, 1918.942138, -90.060302, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(19443, 876.710021, 1916.568359, -90.890502, 0.000000, 90.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14415, "carter_block_2", "walp29S", 0x00000000); tmpobjid = CreateDynamicObjectEx(1761, 857.404113, 1910.803466, -90.807800, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 1730, "cj_furniture", "CJ-COUCHL2", 0x00000000); tmpobjid = CreateDynamicObjectEx(1761, 857.426513, 1923.807006, -90.807800, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); SetDynamicObjectMaterial(tmpobjid, 1, 1730, "cj_furniture", "CJ-COUCHL2", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 888.233947, 1913.894775, -89.993026, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14577, "casinovault01", "cof_wood1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 888.231933, 1923.527221, -94.476501, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 883.508850, 1908.993164, -94.476501, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 878.608703, 1910.560791, -94.476501, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 878.609619, 1925.693603, -80.262283, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 883.511047, 1927.799804, -94.476501, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 878.609619, 1925.693603, -94.476501, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 883.512817, 1927.800292, -80.262298, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 888.231872, 1923.527221, -80.262298, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 888.230224, 1913.897583, -80.262298, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 883.508911, 1908.993164, -80.262298, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 878.608703, 1910.560791, -80.262298, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3998, "civic04_lan", "twintconc_LAn", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 856.768432, 1911.704467, -89.993026, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 18056, "mp_diner1", "mp_CJ_CARDBOARD128", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 856.767333, 1924.545898, -95.261199, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "bank_wall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 863.783813, 1927.829833, -95.261199, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "bank_wall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 854.158081, 1927.828979, -95.261199, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "bank_wall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 876.621032, 1927.830444, -95.261199, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "bank_wall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 877.354431, 1925.693969, -95.261199, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "bank_wall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 877.356323, 1910.566162, -95.261199, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "bank_wall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 876.649536, 1908.742675, -95.261199, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "bank_wall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 841.418273, 1913.254638, -89.992996, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 5040, "shopliquor_las", "lasjmliq1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 851.047180, 1913.258422, -80.306396, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 855.941101, 1911.703857, -80.306396, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 855.939270, 1924.546020, -80.306396, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19360, 855.943298, 1918.124755, -85.280097, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 5040, "shopliquor_las", "lasjmliq1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 851.083618, 1922.979736, -80.306396, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 843.127807, 1922.981201, -80.306396, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 841.549316, 1922.986694, -83.051498, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 5040, "shopliquor_las", "lasjmliq1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 841.418945, 1913.256469, -95.235076, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 851.047180, 1913.258422, -95.235099, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 855.941101, 1911.703857, -95.235099, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 855.939270, 1924.546020, -95.235099, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 851.083618, 1922.979736, -95.235099, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 843.127807, 1922.981201, -95.235099, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14709, "lamidint2", "mp_apt1_roomwall", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 861.831420, 1954.409545, -96.067947, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3922, "bistro", "Marble", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 860.979125, 1959.187011, -99.645812, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3922, "bistro", "Marble", 0x00000000); tmpobjid = CreateDynamicObjectEx(14793, 892.099914, 1967.751342, -89.775711, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14634, "blindinglite", "ws_volumetriclight", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 879.988464, 1959.187011, -99.645812, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3922, "bistro", "Marble", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 869.239440, 1944.689208, -96.067947, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3922, "bistro", "Marble", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 879.639343, 1944.687377, -96.067947, 0.000000, 90.000000, -0.009100, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3922, "bistro", "Marble", 0x00000000); tmpobjid = CreateDynamicObjectEx(19377, 869.475830, 1933.523071, -85.104705, 0.000000, 90.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 3979, "civic01_lan", "sl_laglasswall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 838.822814, 1927.800781, -80.212989, 0.000000, 0.000000, 0.000007, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 827.343444, 1909.620483, -80.212989, 0.000000, 0.000000, 0.000007, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 822.606262, 1914.352905, -80.212989, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 840.817077, 1923.003417, -80.212989, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2755, "ab_dojowall", "mp_apt1_roomfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19329, 890.385375, 1902.603027, -97.241989, -89.999984, 97.599945, 1.700000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14612, "ab_abattoir_box", "ab_bloodfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19406, 891.642761, 1909.008911, -96.503112, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 12850, "cunte_block1", "ws_redbrickold", 0x00000000); tmpobjid = CreateDynamicObjectEx(19329, 892.524658, 1906.039306, -98.011024, 89.699996, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14612, "ab_abattoir_box", "ab_bloodfloor", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 863.809814, 1908.742675, -95.261199, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "bank_wall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 854.259582, 1908.752685, -95.261199, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 13007, "sw_bankint", "bank_wall1", 0x00000000); tmpobjid = CreateDynamicObjectEx(14793, 874.147583, 1918.238403, -79.884498, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14634, "blindinglite", "ws_volumetriclight", 0x00000000); tmpobjid = CreateDynamicObjectEx(9093, 877.221862, 1918.211303, -82.184547, 0.000000, 0.000000, 0.000014, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 5719, "sunrise10_lawn", "eld_box_law", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 872.523498, 1927.621582, -74.892982, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 862.943664, 1927.621582, -74.892982, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 853.364074, 1927.621582, -74.892982, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 856.864379, 1922.797485, -74.892982, 0.000000, 0.000000, 179.899993, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 856.857666, 1913.218017, -74.892982, 0.000000, 0.000000, 180.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 861.583496, 1908.852172, -74.892982, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 871.113342, 1908.852172, -74.892982, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 880.723144, 1908.852172, -74.892982, 0.000000, 0.000000, 90.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 877.304443, 1922.761718, -74.892982, 0.000000, 0.000000, 179.899993, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19376, 877.287963, 1913.182250, -74.892982, 0.000000, 0.000000, 179.899993, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 14789, "ab_sfgymmain", "gym_floor6", 0x00000000); tmpobjid = CreateDynamicObjectEx(19172, 856.857604, 1913.134277, -88.195861, 0.000000, 0.000000, 89.999946, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2266, "picture_frame", "CJ_PAINTING11", 0x00000000); tmpobjid = CreateDynamicObjectEx(19172, 856.857604, 1923.024780, -88.195861, 0.000000, 0.000000, 89.999946, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 0, 2266, "picture_frame", "CJ_PAINTING28", 0x00000000); tmpobjid = CreateDynamicObjectEx(2266, 858.822753, 1927.228515, -89.415863, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14489, "carlspics", "AH_picture2", 0x00000000); tmpobjid = CreateDynamicObjectEx(2266, 859.652893, 1927.228515, -88.645866, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 7088, "casinoshops1", "GB_nastybar19", 0x00000000); tmpobjid = CreateDynamicObjectEx(2266, 859.842895, 1909.341918, -89.135856, 0.000000, 0.000000, 179.199981, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14489, "carlspics", "AH_landscap1", 0x00000000); tmpobjid = CreateDynamicObjectEx(2266, 858.852661, 1909.355224, -88.265869, 0.000000, 0.000000, 179.199981, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14489, "carlspics", "AH_picture3", 0x00000000); tmpobjid = CreateDynamicObjectEx(2266, 831.892944, 1913.887329, -86.866279, 0.000000, 0.000000, -179.999969, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14489, "carlspics", "AH_picture3", 0x00000000); tmpobjid = CreateDynamicObjectEx(19329, 831.903076, 1913.405273, -86.756271, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14489, "carlspics", "AH_picture3", 0x00000000); SetDynamicObjectMaterialText(tmpobjid, 0, "{000000} KOVA", 130, "Ariel", 40, 1, 0x00000000, 0x00000000, 1); tmpobjid = CreateDynamicObjectEx(19329, 831.913085, 1913.405273, -86.676292, 0.000000, 0.000000, 0.000000, 150.00, 150.00); SetDynamicObjectMaterial(tmpobjid, 1, 14489, "carlspics", "AH_picture3", 0x00000000); SetDynamicObjectMaterialText(tmpobjid, 0, "{000000} created by", 130, "Ariel", 20, 1, 0x00000000, 0x00000000, 1); tmpobjid = CreateDynamicObjectEx(19329, 858.853454, 1908.880859, -88.140342, 0.000000, 0.000000, -0.699999, 150.00, 150.00); SetDynamicObjectMaterialText(tmpobjid, 0, "{000000} KOVA", 130, "Ariel", 40, 1, 0x00000000, 0x00000000, 1); tmpobjid = CreateDynamicObjectEx(19329, 858.853454, 1908.880859, -88.050338, 0.000000, 0.000000, -0.699999, 150.00, 150.00); SetDynamicObjectMaterialText(tmpobjid, 0, "{000000} created by", 130, "Ariel", 20, 1, 0x00000000, 0x00000000, 1); tmpobjid = CreateDynamicObjectEx(19777, 883.061462, 1913.095458, -89.231330, 0.000000, 0.000000, -45.600013, 150.00, 150.00); SetDynamicObjectMaterialText(tmpobjid, 0, "{ffffff} by KOVA", 140, "Ariel", 80, 1, 0x00000000, 0x00000000, 1); ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// tmpobjid = CreateDynamicObjectEx(4206, 872.586181, 1958.017211, -94.904640, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19370, 871.646789, 1961.746704, -94.360702, 0.000000, 90.000000, 170.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19370, 868.946838, 1961.702758, -94.362701, 0.000000, 90.000000, 190.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19604, 870.414672, 1959.056396, -89.923736, -90.000000, 90.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19377, 859.972839, 1944.843383, -86.135757, 0.000000, 90.000000, -0.009100, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 866.572753, 1947.374755, -96.020698, 0.000000, 0.000000, 60.077301, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 869.515747, 1946.382934, -96.020698, 0.000000, 0.000000, 82.636909, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 872.490905, 1946.565795, -96.020698, 0.000000, 0.000000, 283.673767, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 875.163146, 1947.851562, -96.020698, 0.000000, 0.000000, 306.488311, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 869.473999, 1945.946166, -96.020698, 0.000000, 0.000000, 82.636909, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 872.593322, 1946.120605, -96.020698, 0.000000, 0.000000, 283.673767, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 875.411254, 1947.439453, -96.020698, 0.000000, 0.000000, 306.488311, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 866.527770, 1946.942749, -96.020698, 0.000000, 0.000000, 60.077301, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 872.560058, 1946.272827, -96.020698, 0.000000, 0.000000, 283.673767, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 875.334350, 1947.569580, -96.020698, 0.000000, 0.000000, 306.488311, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 875.251342, 1947.706298, -96.020698, 0.000000, 0.000000, 306.488311, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 872.522521, 1946.429077, -96.020698, 0.000000, 0.000000, 283.673767, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 869.482299, 1946.116577, -96.020698, 0.000000, 0.000000, 82.636909, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 866.609130, 1947.091796, -96.020698, 0.000000, 0.000000, 60.077301, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 869.518432, 1946.272827, -96.020698, 0.000000, 0.000000, 82.636909, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19373, 866.582458, 1947.260620, -96.020698, 0.000000, 0.000000, 60.077301, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19377, 860.685302, 1902.469970, -90.891799, 0.000000, 90.000000, -0.009100, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1569, 888.148193, 1916.680664, -89.990798, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2290, 884.343750, 1911.428466, -89.992599, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2292, 885.833801, 1923.784057, -89.992599, 0.000000, 0.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18075, 883.574768, 1929.447265, -85.172996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18075, 883.512268, 1906.758300, -85.172996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(14455, 880.262512, 1909.340332, -88.360603, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(14455, 885.985839, 1909.347167, -88.360603, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2292, 885.842468, 1922.800659, -89.992599, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2292, 881.684570, 1922.687133, -89.994598, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2292, 881.670532, 1923.641845, -89.992599, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(14455, 884.552490, 1927.466674, -88.360603, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(14455, 890.294494, 1927.467895, -88.360603, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2290, 882.775634, 1925.450317, -89.992599, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2292, 881.307983, 1913.844970, -89.992599, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2292, 881.320617, 1912.920288, -89.994598, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2292, 885.283630, 1913.859619, -89.992599, 0.000000, 0.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2292, 885.299011, 1912.955322, -89.992599, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2245, 883.300537, 1913.454589, -89.109397, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2245, 883.802124, 1923.168823, -89.109397, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(14562, 866.280761, 1960.322998, -93.090980, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(14562, 874.633544, 1960.336791, -93.091003, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19172, 888.138122, 1913.359619, -87.271766, 0.000000, 0.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2262, 887.634643, 1925.631347, -88.429199, 0.000000, 0.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2266, 887.639526, 1915.321777, -86.678596, 0.000000, 0.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 864.216552, 1918.064697, -83.992500, 90.000000, 90.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 864.220336, 1918.037353, -83.992500, 90.000000, 90.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 864.195007, 1918.038330, -83.992500, 90.000000, 90.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 864.278869, 1918.090209, -83.992500, 90.000000, 90.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 870.585205, 1918.006103, -83.992500, 90.000000, 90.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 870.610534, 1918.005126, -83.992500, 90.000000, 90.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 870.606750, 1918.032470, -83.992500, 90.000000, 90.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 870.681701, 1918.052124, -83.992500, 90.000000, 90.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19089, 870.590270, 1918.035278, -76.544853, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 870.585205, 1918.006103, -83.992500, 90.000000, 90.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 870.610534, 1918.005126, -83.992500, 90.000000, 90.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 870.606750, 1918.032470, -83.992500, 90.000000, 90.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 870.681701, 1918.052124, -83.992500, 90.000000, 90.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2076, 864.188171, 1916.944335, -84.651512, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2076, 863.178771, 1918.077148, -84.651512, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2076, 864.193359, 1919.114135, -84.651512, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2073, 864.192016, 1918.058593, -84.167068, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2076, 870.585571, 1919.081054, -84.651512, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2076, 869.589843, 1918.036621, -84.651512, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2076, 870.583557, 1916.924804, -84.651512, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2076, 871.671447, 1918.040283, -84.651512, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2073, 870.579528, 1918.023803, -84.167068, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1744, 865.096313, 1938.063842, -92.839202, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1744, 865.075927, 1940.000610, -92.233177, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1744, 865.095825, 1939.998535, -92.839202, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1744, 865.096313, 1938.063842, 1940.000610, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1744, 865.076293, 1938.062866, -92.233200, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2350, 867.445983, 1940.890258, -93.940101, 0.000000, 0.000000, 348.269592, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2350, 867.344726, 1938.163085, -93.940101, 0.000000, 0.000000, 20.175800, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2350, 867.354614, 1939.471679, -93.940101, 0.000000, 0.000000, 31248.269531, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2290, 875.189941, 1943.084350, -94.307403, 0.000000, 0.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2290, 875.203002, 1940.136962, -94.307403, 0.000000, 0.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2311, 873.579162, 1941.390014, -94.307998, 0.000000, 0.000000, 89.089958, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2311, 873.591186, 1938.331054, -94.307998, 0.000000, 0.000000, 90.504013, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19824, 873.450927, 1942.950927, -93.804191, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19820, 873.637939, 1942.114624, -93.804313, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1509, 873.783447, 1939.338256, -93.602653, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1509, 873.829284, 1938.276123, -93.602653, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1509, 866.527954, 1939.724731, -92.836662, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19824, 865.414184, 1937.978271, -91.894989, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19823, 865.411010, 1938.184692, -91.894798, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1517, 865.364013, 1940.200073, -92.299018, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19821, 865.478942, 1939.397094, -91.896911, 0.000000, 0.000000, 54.283119, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19822, 865.335510, 1940.380615, -92.500411, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1512, 865.425720, 1940.068969, -91.693557, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.342224, 1940.860107, -92.499977, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 873.780639, 1941.702758, -93.803359, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1512, 865.444030, 1940.694335, -92.298561, 0.000000, 0.000000, 350.906280, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.507812, 1940.817382, -92.499977, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.494995, 1940.936767, -92.499977, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.365051, 1941.023681, -92.499977, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.378601, 1941.084838, -91.890937, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.274780, 1941.114624, -92.499977, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.361450, 1941.244506, -92.499977, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19822, 865.509887, 1941.286132, -92.500411, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19822, 865.516052, 1940.365722, -91.894386, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1517, 865.325012, 1939.942626, -92.299018, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1517, 865.514892, 1940.068847, -92.299018, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1517, 865.464721, 1939.932250, -92.299018, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1517, 865.435974, 1939.814086, -92.299018, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19822, 865.322143, 1939.637695, -92.500411, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19822, 865.481750, 1939.476684, -92.500411, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19824, 865.340393, 1939.198730, -92.499992, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19824, 865.520446, 1939.078247, -92.499992, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19824, 865.321838, 1938.916625, -92.499992, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19824, 865.502197, 1938.878051, -92.499992, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19824, 865.323669, 1938.716430, -92.499992, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19823, 865.475341, 1938.699951, -92.499801, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19823, 865.329040, 1939.405883, -92.499801, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19823, 865.553466, 1939.257568, -92.499801, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19823, 865.304260, 1938.492065, -92.499801, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1517, 865.450744, 1938.465087, -91.696029, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1517, 865.538635, 1938.288940, -92.299018, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1517, 865.483093, 1937.745849, -92.299018, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1517, 865.341308, 1937.779663, -92.299018, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19824, 865.414184, 1937.978271, -92.499992, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19823, 865.411010, 1938.184692, -92.499801, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1517, 865.450744, 1938.465087, -92.299018, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19822, 865.516052, 1940.365722, -92.500411, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.497863, 1941.098022, -92.499977, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.473388, 1940.954467, -91.890937, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.340820, 1940.879394, -91.890937, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 865.510742, 1940.797607, -91.890937, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19822, 865.398071, 1941.258300, -91.894386, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1512, 865.417053, 1940.570800, -92.298561, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19821, 865.335388, 1939.594848, -91.896911, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19821, 865.471557, 1939.817626, -91.896911, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19821, 865.396972, 1940.656616, -91.896911, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19821, 865.343139, 1939.135375, -91.896911, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1512, 865.327575, 1940.230346, -91.693557, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1512, 865.455261, 1939.248779, -91.693557, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1512, 865.331726, 1938.970092, -91.693557, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1512, 865.389465, 1938.789672, -91.693557, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19823, 865.503784, 1938.291015, -91.894798, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19823, 865.317199, 1938.378417, -91.894798, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19823, 865.300476, 1938.617675, -91.894798, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19824, 865.335205, 1937.672607, -91.894989, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19824, 865.503723, 1937.844360, -91.894989, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 873.627990, 1939.919799, -93.803359, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18075, 870.271850, 1941.620483, -89.583297, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 867.082397, 1911.112792, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 865.210754, 1911.132446, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 863.438110, 1911.122192, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 861.804504, 1911.093505, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 860.131225, 1911.108276, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 868.920654, 1911.179809, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 870.681091, 1911.185058, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 872.400878, 1911.153808, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 874.262695, 1911.135131, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 876.224731, 1911.115600, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 859.669860, 1912.366455, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 859.709167, 1914.345458, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 859.760437, 1916.148071, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 859.764953, 1918.049072, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 859.788513, 1919.628906, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 859.822998, 1921.608276, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 859.875793, 1923.641723, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 876.095031, 1925.469726, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 873.954711, 1925.463256, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 871.834716, 1925.422851, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 869.735534, 1925.413818, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 867.251281, 1925.391723, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 864.757690, 1925.344970, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 862.369140, 1925.385009, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 860.291809, 1925.354003, -85.196800, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 864.197692, 1917.277099, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 864.196472, 1917.717529, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 864.207885, 1918.397705, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 864.211242, 1918.837890, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 863.895874, 1918.047973, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 863.439575, 1918.059570, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 864.490539, 1918.057739, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 864.884643, 1918.048706, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 869.895935, 1918.013061, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 870.337951, 1918.010498, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 870.599304, 1917.771850, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 870.578308, 1918.323852, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 870.920837, 1918.018676, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 871.395202, 1918.014282, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 870.580627, 1917.269531, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 870.591064, 1918.776489, -83.969802, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 869.963745, 1949.749145, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 871.846313, 1949.899169, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 873.418762, 1950.617553, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 874.587707, 1951.754394, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 875.360900, 1953.190673, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 875.591186, 1955.079711, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 875.317871, 1956.541137, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 874.456298, 1958.068969, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 868.323608, 1950.169555, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 866.703552, 1951.230590, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 865.645874, 1952.860107, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 865.264709, 1954.867309, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 865.633300, 1956.858276, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 866.563415, 1958.300781, -94.111701, 180.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2184, 829.638610, 1918.608276, -88.556800, 0.000000, 0.000000, 112.564208, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2184, 828.909118, 1915.765380, -88.556800, 0.000000, 0.000000, 69.625183, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1754, 833.321350, 1914.055175, -88.555900, 0.000000, 0.000000, 195.992752, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1754, 830.485412, 1914.051879, -88.555900, 0.000000, 0.000000, 160.614334, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2082, 831.412414, 1913.363891, -88.554512, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2059, 829.294067, 1919.254760, -87.750503, 0.000000, 0.000000, 270.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19786, 829.536132, 1922.875488, -86.534263, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2344, 831.731872, 1914.104370, -88.053001, 0.000000, 0.000000, 113.967498, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1742, 826.331054, 1921.764282, -88.554702, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1742, 826.329162, 1920.325805, -88.554702, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2332, 826.851379, 1914.134887, -86.338180, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2332, 826.851379, 1914.134887, -88.153213, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2332, 826.851379, 1914.134887, -87.244178, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1569, 856.900390, 1923.151733, -84.999702, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1569, 856.927001, 1911.741455, -84.999702, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1569, 856.947448, 1917.587890, -84.999702, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1569, 862.054565, 1927.543701, -84.999702, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1569, 873.323791, 1927.565673, -84.999702, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1569, 873.040161, 1908.891235, -84.999702, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1569, 861.894836, 1908.914184, -84.999702, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19920, 828.989624, 1917.689331, -87.769599, 0.000000, 0.000000, 343.484710, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19172, 826.422546, 1918.032226, -86.599166, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2266, 826.941711, 1916.003417, -86.712722, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2357, 850.236694, 1918.149047, -90.403869, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2357, 845.977844, 1918.148071, -90.403869, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2357, 841.722534, 1918.146972, -90.403869, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18075, 883.529541, 1920.151000, -85.069992, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2076, 865.320251, 1918.069213, -84.651512, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19303, 884.061645, 1893.293457, -93.585418, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(3014, 884.331604, 1892.423461, -94.797981, 0.000000, 0.000000, 2.952558, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19303, 882.314147, 1893.293579, -93.585403, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2680, 883.182800, 1893.407714, -93.742500, -30.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19303, 880.565979, 1893.295043, -93.585403, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19303, 878.819213, 1893.294555, -93.585403, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19303, 877.070190, 1893.292236, -93.585403, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19303, 875.322998, 1893.292480, -93.585403, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2680, 879.703735, 1893.385375, -93.742500, -30.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2680, 876.207092, 1893.410278, -93.742500, -30.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2040, 883.302795, 1892.266113, -94.796600, 0.000000, 0.000000, 20.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2359, 884.282226, 1894.400390, -94.692001, 0.000000, 0.000000, 18.146400, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2359, 878.830322, 1892.695190, -91.984397, 0.000000, 0.000000, 128.146392, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2040, 883.019531, 1892.280639, -94.796577, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2040, 882.759155, 1892.359741, -94.796577, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2040, 883.304199, 1892.802734, -94.796600, 0.000000, 0.000000, 10.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2040, 883.651977, 1892.288330, -94.796577, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2040, 882.451721, 1892.697387, -94.796600, 0.000000, 0.000000, 2310.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(3014, 880.913452, 1892.442993, -94.797981, 0.000000, 0.000000, 351.004821, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(3014, 883.751342, 1892.932617, -94.797981, 0.000000, 0.000000, 351.004821, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2358, 880.174133, 1892.238281, -94.795196, 0.000000, 0.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2358, 880.006713, 1892.752319, -94.795196, 0.000000, 0.000000, 192.167190, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2358, 879.336730, 1892.331054, -94.795196, 0.000000, 0.000000, 172.585006, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2358, 879.135559, 1892.918212, -94.795196, 0.000000, 0.000000, 172.585006, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2040, 878.827270, 1892.325195, -94.796600, 0.000000, 0.000000, 2310.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2040, 878.573608, 1892.913330, -94.796600, 0.000000, 0.000000, 2312120.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2985, 876.092041, 1892.684204, -94.896400, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2358, 875.075256, 1892.310668, -94.795196, 0.000000, 0.000000, 172.585006, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2358, 875.273376, 1892.843627, -94.795196, 0.000000, 0.000000, 179.699157, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(358, 883.480651, 1891.990844, -93.747673, 0.000000, 0.000000, 6.609360, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(358, 883.480651, 1891.990844, -93.041656, 0.000000, 0.000000, 6.609360, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(358, 883.480651, 1891.990844, -93.344673, 0.000000, 0.000000, 6.609360, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(358, 882.344970, 1891.933471, -92.940658, 0.000000, 0.000000, 6.609360, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(358, 882.344970, 1891.933471, -93.242652, 0.000000, 0.000000, 6.609360, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(357, 882.392028, 1891.950683, -93.654411, 0.000000, 0.000000, 7.258399, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(357, 881.354187, 1891.978637, -94.056396, 0.000000, 5.000000, 7.258399, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(357, 881.354187, 1891.978637, -93.554412, 0.000000, 5.000000, 7.258399, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(356, 879.975097, 1891.964599, -93.963943, 0.000000, 0.000000, 4.166958, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(356, 880.489562, 1891.943115, -93.051856, 0.000000, 0.000000, 4.166958, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(356, 880.489562, 1891.943115, -92.748847, 0.000000, 0.000000, 4.166958, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(356, 879.856811, 1891.935791, -93.561950, 0.000000, 0.000000, 4.166958, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(355, 878.230346, 1891.962890, -93.771057, 0.000000, 0.000000, 4.286859, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(355, 879.005249, 1891.971435, -92.961013, 0.000000, 0.000000, 4.286859, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(355, 878.964904, 1892.002563, -93.263999, 0.000000, 0.000000, 184.286895, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(355, 877.823364, 1892.004516, -93.364997, 0.000000, 0.000000, 184.799072, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(372, 877.851501, 1891.960449, -94.249458, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(372, 881.882995, 1891.951416, -94.569976, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(372, 881.244689, 1891.966064, -93.134376, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(353, 877.461975, 1892.021728, -93.835113, 0.000000, 0.000000, 187.143539, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(353, 877.461975, 1892.021728, -94.236099, 0.000000, 0.000000, 187.143539, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(941, 884.311401, 1895.735961, -94.491661, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(923, 873.681884, 1898.495849, -94.090263, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(923, 873.347045, 1892.479736, -94.191261, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1271, 875.117858, 1898.388793, -94.600730, 0.000000, 0.000000, 19.877969, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1271, 876.172546, 1898.425659, -94.600700, 0.000000, 0.000000, 129.878005, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1271, 875.284545, 1897.367553, -94.600730, 0.000000, 0.000000, 351.940856, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1271, 871.975708, 1892.894653, -94.600730, 0.000000, 0.000000, 351.940856, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(11729, 883.568298, 1898.799560, -94.896469, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(11729, 882.891235, 1898.800659, -94.896469, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(14411, 886.773620, 1901.068115, -98.090896, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(3092, 891.685852, 1910.355468, -96.893997, 90.000000, 90.000000, 224.699783, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1805, 892.696166, 1903.925415, -97.830596, 0.000000, 88.000000, 331.300292, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(941, 890.355712, 1902.336669, -97.719886, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2907, 890.174133, 1901.981933, -97.147300, 0.000000, 0.000000, 335.996002, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2905, 890.656921, 1902.023681, -97.245437, 0.000000, 0.000000, 9.406450, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2908, 890.059631, 1902.704956, -97.189498, 0.000000, 0.000000, 261.832977, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2906, 890.539306, 1903.256225, -97.205596, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19583, 890.817504, 1903.322875, -97.237899, 0.000000, 0.000000, 344.007141, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(341, 889.879699, 1900.975585, -97.803497, 0.000000, 30.000000, 26.372840, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19924, 890.147216, 1902.610473, -95.013778, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19590, 890.304504, 1902.777587, -97.221298, 0.000000, 90.000000, 192.838867, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(3092, 892.484680, 1904.737182, -97.928298, 180.000000, 90.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2907, 891.932922, 1909.912231, -97.004302, 0.000000, 0.000000, 335.996002, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2905, 891.069824, 1909.505981, -97.027397, 0.000000, 0.000000, 17.048099, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2906, 892.284729, 1909.474243, -97.042701, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1463, 891.546691, 1911.464477, -97.211593, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1463, 892.306762, 1910.453979, -97.175605, 0.000000, 0.000000, 69.300003, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18694, 891.512023, 1911.340942, -101.443695, 91.499977, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19632, 901.447875, 1909.789062, -97.263168, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1463, 891.123535, 1909.961547, -97.275611, 0.000000, 0.000000, 147.700042, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1463, 892.927917, 1907.830688, -97.715599, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2805, 892.948608, 1906.119995, -96.915496, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2805, 892.322814, 1906.123046, -96.915496, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1370, 893.029907, 1900.156127, -97.519996, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2060, 890.221496, 1908.139038, -97.775199, 0.000000, 0.000000, 101.132202, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2060, 890.221496, 1908.139038, -97.934196, 0.000000, 0.000000, 84.351898, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1897, 893.273620, 1906.115478, -96.136802, 270.000000, 90.000000, 180.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2671, 891.352294, 1906.766479, -98.010803, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(3675, 891.619445, 1912.182739, -88.904693, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2359, 884.024169, 1892.755126, -91.984397, 0.000000, 0.000000, 18.146400, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2358, 884.573852, 1897.593383, -94.795196, 0.000000, 0.000000, 282.838928, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1544, 890.758117, 1903.568237, -97.256896, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1893, 872.465332, 1895.286010, -90.444297, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1893, 877.485168, 1895.181396, -90.444297, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1893, 881.643371, 1894.997192, -90.444297, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(1893, 892.099121, 1901.948852, -94.867103, 0.000000, 0.000000, 90.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2082, 856.929748, 1909.006469, -90.804656, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2082, 856.964721, 1926.548461, -90.804656, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2251, 857.326354, 1909.542480, -89.461402, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2251, 857.359375, 1927.052856, -89.461402, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 865.653503, 1954.438110, -95.980865, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 865.653503, 1954.438110, -95.980865, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 867.390075, 1951.026611, -95.980865, 0.000000, 0.000000, 43.199996, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 867.390075, 1951.026611, -95.980865, 0.000000, 0.000000, 43.199996, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 872.795471, 1950.744140, -95.980865, 0.000000, 0.000000, 135.999954, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 872.795471, 1950.744140, -95.980865, 0.000000, 0.000000, 135.999954, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 875.194763, 1953.604736, -95.980865, 0.000000, 0.000000, 164.699981, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 875.194763, 1953.604736, -95.980865, 0.000000, 0.000000, 164.699981, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 867.359130, 1959.069580, -93.105117, 90.800003, 174.900009, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 867.359130, 1959.055175, -92.025215, 90.800003, 174.900009, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 867.359130, 1959.039916, -90.925300, 90.800003, 174.900009, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 867.359130, 1959.023803, -89.705383, 90.800003, 174.900009, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 867.359130, 1959.003784, -88.285552, 90.800003, 174.900009, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 873.550231, 1959.073974, -88.284637, 90.800003, 174.900009, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 873.603576, 1959.066040, -93.135231, 90.800003, 174.900009, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 873.545715, 1959.077148, -92.064971, 90.800003, 174.900009, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 873.547546, 1959.083007, -90.974723, 90.800003, 174.900009, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2707, 873.548400, 1959.075073, -89.654670, 90.800003, 174.900009, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 866.509094, 1957.755859, -95.970878, 0.000000, 0.000000, -22.899990, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 866.509094, 1957.755859, -95.970878, 0.000000, 0.000000, -22.899990, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 874.660339, 1957.331665, -95.970848, 0.000000, 0.000000, -159.999954, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18676, 874.660339, 1957.331665, -95.970848, 0.000000, 0.000000, -159.999954, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2232, 875.842041, 1947.651611, -90.719268, 0.000000, 0.000000, -88.500030, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2232, 865.115722, 1947.378417, -90.719268, 0.000000, 0.000000, 90.599922, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19152, 879.953491, 1962.379882, -91.200660, 0.000000, 0.000000, -32.099994, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19150, 870.650390, 1957.571533, -85.254829, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19152, 860.222473, 1961.486694, -90.560722, 0.000000, 0.000000, 35.800003, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19149, 870.016418, 1954.829956, -79.951271, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19152, 861.515380, 1952.832885, -92.418624, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19152, 879.675598, 1955.763061, -92.418624, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19294, 870.386474, 1960.429565, -70.595695, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19148, 871.652893, 1968.259643, -76.624084, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19156, 878.267883, 1961.580078, -88.756233, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19156, 863.397888, 1961.580078, -88.756233, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19152, 871.045471, 1957.105834, -81.776359, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19152, 867.612609, 1952.628417, -101.203414, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(18748, 891.606689, 1909.242675, -98.484703, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(337, 889.995605, 1907.334106, -97.238685, 177.999877, -8.399998, 170.199996, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2261, 857.349182, 1910.436035, -89.185867, 0.000000, 0.000000, 90.000022, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2261, 857.349182, 1925.565795, -89.185867, 0.000000, 0.000000, 90.000022, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19295, 869.754150, 1917.670776, -70.165901, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19295, 834.356933, 1922.335449, -95.926383, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19295, 849.796936, 1918.435424, -72.306396, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19295, 846.757446, 1918.497070, -109.406349, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(19295, 897.164184, 1917.670776, -91.675865, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2074, 891.567016, 1907.003173, -95.386337, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2074, 891.567016, 1907.003173, -95.386337, 0.000000, 0.000000, 0.000000, 150.00, 150.00); tmpobjid = CreateDynamicObjectEx(2855, 882.979309, 1913.056518, -89.385307, 0.000000, 0.000000, -45.999996, 150.00, 150.00); Log:debug("OnPlayerConnect", "%p (%d) has connected.", playerid, playerid); MySQLConnectionOrder[playerid] ++; if(PlayerInfo[playerid][pID] == 7378) { PlayerInfo[playerid][pHiddenAss] = 1; } new IP[16]; GetPlayerIp(playerid, IP, sizeof(IP)); if(IsPlayerNPC(playerid)) { //if(strcmp(IP, "127.0.0.1") != 0) if(strcmp(IP, "162.220.33.252") != 0 && strcmp(IP, "127.0.0.1") != 0) { SendClientMessage(playerid, COLOR_RED, "Sorry, we don't allow NPC connections from external IP addresses."); printf("[Security]: NPC connection from %s rejected.", IP); KickEx(playerid); return 1; } } /*if(!IsPlayerAlreadyConnected[playerid]) { new ip[16], playername[MAX_PLAYER_NAME], query[500]; GetPlayerName(playerid, playername, MAX_PLAYER_NAME); gpci(playerid,playerserial,sizeof(playerserial)); GetPlayerIp(playerid, ip, 16); //mysql_format(sqlGameConnection, query, 128, "SELECT * FROM `bans` WHERE `username` = '%e' OR `ip` = '%s' OR `Serial` = '%s'", playername, ip, playerserial); mysql_format(sqlGameConnection, query, 128, "SELECT * FROM `banlist` WHERE `username` = '%e' OR `Serial` = '%s'", playername, playerserial); mysql_tquery(sqlGameConnection, query, "OnPlayerCheck", "d", playerid); }*/ if(!IsPlayerAlreadyConnected[playerid]) { //RemoveServerBuildings(playerid); //faction/server maps maps ect //DestroyAllBuildings(playerid); //donor maps //removeMineObjects(playerid); //mine objects (can be added to server buildings later) //check if player is banned new query[200]; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT * FROM `banlist` INNER JOIN `players` ON `players`.`ID` = `banlist`.`userID` WHERE `players`.`Name` = '%e' OR `banlist`.`IP` = '%e'", PlayerName(playerid), IP); mysql_pquery(sqlGameConnection, query, "OnBanListCheck", "d", playerid); } IsPlayerAlreadyConnected[playerid] = 0; //PlayerOnFire[playerid] = 0; resetPlayerVars(playerid); DisablePlayerCheckpoint(playerid); DisablePlayerCheckpointEx(playerid); TogglePlayerAllDynamicCPs(playerid, false); //create a progress bar for the player, for work related stuff workingProgress[playerid] = CreatePlayerProgressBar( playerid, 290.0, 340.0, 65.0, 5.0, 0xFF8000FF, 100.0, BAR_DIRECTION_RIGHT ); breakcuffs[playerid] = CreatePlayerProgressBar(playerid, 290.0, 340.00, 65.0, 5.0, 0xFF0000AA, 100.0, BAR_DIRECTION_RIGHT); ShowLoginTextDraw( playerid ); showCinematicTextDraw(playerid); showAdvertismentTextDraw(playerid); //Drop kevlar fix KevlarDropped[playerid] = 0; //Exploit bug of full vest, even if you just relog for do? nah! SetTimerEx("Timer_FVestProtection", (1000*60)*5, 0, "d", playerid); FVestProtected[playerid] = 1; toggedflchat[playerid] = 0; //GYM PAKI PAKIIII RemoveBuildingForPlayer(playerid, 17758, 2260.0000, -1707.7344, 17.1719, 0.25); RemoveBuildingForPlayer(playerid, 1498, 2229.6641, -1720.4219, 12.5547, 0.25); RemoveBuildingForPlayer(playerid, 17515, 2260.0000, -1707.7344, 17.1719, 0.25); RemoveBuildingForPlayer(playerid, 669, 2264.8125, -1697.0234, 12.6406, 0.25); RemoveBuildingForPlayer(playerid, 17978, 2260.0000, -1707.7344, 17.1719, 0.25); RemoveBuildingForPlayer(playerid, 17875, 2292.5234, -1695.8594, 16.7969, 0.25); SetTimer("warntimer", 1000, 1); return 1; } forward Firework(playerid, type); public Firework(playerid, type) { if(!IsPlayerConnected(playerid)) { DestroyDynamicObject(Rocket[playerid]); DestroyDynamicObject(RocketLight[playerid]); DestroyDynamicObject(RocketSmoke[playerid]); return 1; } new Float:x, Float:y, Float:z; x = GetPVarFloat(playerid, "fxpos"); y = GetPVarFloat(playerid, "fypos"); z = GetPVarFloat(playerid, "fzpos"); if (type == TYPE_COUNTDOWN) { new string[128]; format(string, sizeof(string), "STAND BACK! 5 seconds till launch!", PlayerICName(playerid)); ProxDetector(30.0, playerid, string, COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW); SetTimerEx("Firework", 5000, 0, "ii", playerid, TYPE_LAUNCH); } else if(type == TYPE_LAUNCH) { CreateExplosion(x ,y, z, 13, 5); new time = MoveDynamicObject(Rocket[playerid], x, y, z + RocketHeight, 10); MoveDynamicObject(RocketLight[playerid], x, y, z + 2 + RocketHeight, 10); MoveDynamicObject(RocketSmoke[playerid], x, y, z + RocketHeight, 10); SetTimerEx("Firework", time, 0, "ii", playerid, TYPE_EXPLODE); } else if(type == TYPE_EXPLODE) { z += RocketHeight; if (RocketExplosions[playerid] == 0) { DestroyDynamicObject(Rocket[playerid]); DestroyDynamicObject(RocketLight[playerid]); DestroyDynamicObject(RocketSmoke[playerid]); CreateExplosion(x ,y, z, 4, 10); CreateExplosion(x ,y, z, 5, 10); CreateExplosion(x ,y, z, 6, 10); } else if (RocketExplosions[playerid] >= MAX_FIREWORKS) { for (new i = 0; i <= FireworkSpread; i++) { CreateExplosion(x + float(i - (FireworkSpread / 2)), y, z, 7, 10); CreateExplosion(x, y + float(i - (FireworkSpread / 2)), z, 7, 10); CreateExplosion(x, y, z + float(i - (FireworkSpread / 2)), 7, 10); } RocketExplosions[playerid] = -1; return 1; } else { x += float(random(FireworkSpread) - (FireworkSpread / 2)); y += float(random(FireworkSpread) - (FireworkSpread / 2)); z += float(random(FireworkSpread) - (FireworkSpread / 2)); CreateExplosion(x, y, z, 7, 10); } RocketExplosions[playerid]++; SetTimerEx("Firework", 250, 0, "ii", playerid, TYPE_EXPLODE); } return 1; } stock BanAccount(giveplayerid, playerid, reason[], expires[] = "2030-01-01") { new IP[16]; GetPlayerIp(giveplayerid, IP, sizeof(IP)); gpci(giveplayerid,playerserial,sizeof(playerserial)); new name[MAX_PLAYER_NAME]; new banneridname[MAX_PLAYER_NAME]; GetPlayerName(giveplayerid, banneridname, MAX_PLAYER_NAME); if(playerid == INVALID_PLAYER_ID) { format(name, sizeof(name), "Autoban"); } else { GetPlayerName(playerid, name, sizeof(name)); } new query[6000]; mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `banlist` (`userID`, `IP`, `Key_`, `Serial`, `Reason`, `BannedBy`, `Expires`, `Date`, `Banned`) VALUES(%d, '%e', '%e', '%s', '%e', '%e', '%e', NOW(), 1)", PlayerInfo[giveplayerid][pID], IP, PlayerInfo[giveplayerid][pKey], PlayerInfo[giveplayerid][pSerial], reason, name, expires); mysql_pquery(sqlGameConnection, query); PlayerInfo[giveplayerid][pBand] = 3; //strmid(PlayerInfo[giveplayerid][pBanReason], reason, 0, strlen(reason)); //BanEx(giveplayerid, reason); //change this back to kick in future KickEx(giveplayerid); return 1; } forward onBansChecked(playerid, name[]); public onBansChecked(playerid, name[]){ if(cache_num_rows() == 0)return SendClientMessage(playerid, COLOR_GREY, "Account doesn't exist."); new i = cache_get_field_content_int(0, "ID"), query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT * FROM `banlist` WHERE `userID`=%d ORDER BY `ID` DESC", i); mysql_pquery(sqlGameConnection, query, "onBansCheckedConf", "is", i, name); return 1; } stock CBanAccount(giveplayerid, playerid) { new IP[16]; GetPlayerIp(giveplayerid, IP, sizeof(IP)); gpci(giveplayerid,playerserial,sizeof(playerserial)); new name[MAX_PLAYER_NAME]; new banneridname[MAX_PLAYER_NAME]; GetPlayerName(giveplayerid, banneridname, MAX_PLAYER_NAME); if(playerid == INVALID_PLAYER_ID) { format(name, sizeof(name), "Autoban"); } else { GetPlayerName(playerid, name, sizeof(name)); } PlayerInfo[giveplayerid][pCBand] = 1; //strmid(PlayerInfo[giveplayerid][pBanReason], reason, 0, strlen(reason)); //BanEx(giveplayerid, reason); //change this back to kick in future Rangeban(giveplayerid); KickEx(giveplayerid); return 1; } forward OnBanListCheck(playerid); public OnBanListCheck(playerid) { new rows = cache_num_rows(); if(!rows) return 1; //player is not recorded in ban list. new userID, IP[16], currentIP[16], reason[128], expires[32], bannedby[MAX_PLAYER_NAME + 1]; new current_year, current_month, current_day; //collect current date getdate(current_year, current_month, current_day); GetPlayerIp(playerid, currentIP, sizeof(currentIP)); //get player's current IP. for(new i = 0; i < cache_num_rows(); i++) { new banned = cache_get_field_content_int(i, "Banned"); if(banned)//if not banned then player has been unbanned via admin cp { userID = cache_get_field_content_int(i, "userID"); //relationship between players table cache_get_field_content(i, "IP", IP); //get the IP in ban log cache_get_field_content(i, "Reason", reason); cache_get_field_content(i, "Expires", expires); cache_get_field_content(i, "BannedBy", bannedby); //check if ban has expired new syear[32]; strmid(syear, expires, 0, 4, 32); new smonth[32]; strmid(smonth, expires, 5, 7, 32); new sday[32]; strmid(sday, expires, 8, 10, 32); new expire_year = strval(syear); new expire_month = strval(smonth); new expire_day = strval(sday); //make this not kick the player eventually, check if ban expired if(current_year > expire_year || current_month > expire_month && current_year >= expire_year || current_day >= expire_day && current_month >= expire_month && current_year >= expire_year) { SendClientMessage(playerid, COLOR_WHITE, "{F00000}SERVER{FFFFFF}: Your ban has expired, you have been automatically unbanned (reconnect)."); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `banlist` SET `Banned` = 0 WHERE `userID` = %d OR `IP` = '%e'", userID, IP); mysql_pquery(sqlGameConnection, query); KickEx(playerid); return 1; } new str[128]; format(str, sizeof(str), "{FF6347}SERVER:{FFFFFF} Your account (%s [%d]) and/or IP (%s) is currently banned from the server.", PlayerName(playerid), userID, currentIP); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "{FF6347}SERVER:{FFFFFF} Reason: %s", reason); SendClientMessage(playerid, COLOR_WHITE, str); // format(str, sizeof(str), "{FF6347}SERVER:{FFFFFF} Banned by: %s", bannedby); // SendClientMessage(playerid, COLOR_WHITE, str); SendClientMessage(playerid, COLOR_WHITE, "{FF6347}SERVER:{FFFFFF} You can submit a ban appeal on the forums at p-rp.xyz."); KickEx(playerid); return 1; } } return 1; } forward OfflineTransfer(playerid, giveplayername[], amount); public OfflineTransfer(playerid, giveplayername[], amount) { new str[128]; new rows, fields, value, temp[10]; cache_get_data(rows, fields); if(!rows) return SendClientMessage(playerid, COLOR_WHITE, "That player does not exist!"); cache_get_field_content(0, "Bank", temp); value = strval(temp); value += amount; new query[100]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Bank` = %d WHERE `Name` = '%e'", value, giveplayername); mysql_pquery(sqlGameConnection, query); PlayerInfo[playerid][pAccount] -= amount; PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); format(str, sizeof(str), "You have transferred $%d to %s's account.", amount, giveplayername); SendClientMessage(playerid, COLOR_ORANGE, str); format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has offline transferred $%d to %s.", PlayerOOCName(playerid), amount, giveplayername); if(amount >= 500000) { ABroadCast(COLOR_YELLOW, str, 1); } format(str, sizeof(str), "%s has offline transferred $%d to %s.", PlayerOOCName(playerid), amount, giveplayername); PayLog(str); return 1; } stock removeMapIcons(playerid) { for(new i = 0; i < MAX_MAPICONS; i++) { RemovePlayerMapIcon(playerid, i); } iconCount[playerid] = 0; //printf("map icons after removal: %d", iconCount[playerid]); } //============================================================================== JoinChannel(playerid, number, line[]) { if(IsPlayerConnected(playerid)) { if(strcmp(IRCInfo[number][iPassword], line, true) == 0) { JoinChannelNr(playerid, number); } else { SendClientMessage(playerid, COLOR_GREY, "Wrong Channel Password."); } } return 1; } //============================================================================== JoinChannelNr(playerid, number) { if(IsPlayerConnected(playerid)) { new str[128]; if(PlayersChannel[playerid] < 999) { format(str, sizeof(str), "* %s has left the Channel.", PlayerOOCName(playerid)); SendIRCMessage(PlayersChannel[playerid], COLOR_GREEN, str); IRCInfo[PlayersChannel[playerid]][iPlayers] --; } new channel; channel = number; channel += 1; PlayersChannel[playerid] = number; IRCInfo[PlayersChannel[playerid]][iPlayers] ++; if(strcmp(IRCInfo[number][iAdmin], PlayerOOCName(playerid), true) == 0) { format(str, sizeof(str), "* You have joined IRC Channel %d as the Administrator.", channel); SendClientMessage(playerid, COLOR_YELLOW, str); } else { format(str, sizeof(str), "* You have joined IRC Channel %d, Admin: %s.", channel, IRCInfo[number][iAdmin]); SendClientMessage(playerid, COLOR_YELLOW, str); } format(str, sizeof(str), "MOTD: %s.", IRCInfo[number][iMOTD]); SendClientMessage(playerid, COLOR_YELLOW, str); format(str, sizeof(str), "* %s has joined the Channel.", PlayerOOCName(playerid)); SendIRCMessage(number, COLOR_GREEN, str); } return 1; } //============================================================================== stock ClearAccent(playerid) { if(IsPlayerConnected(playerid)) { strmid(Accent[playerid], "None", 0, strlen("None"), 255); } return 1; } stock ClearCustomRank(playerid) { if(IsPlayerConnected(playerid)) { strmid(customRank[playerid], "None", 0, strlen("None"), 255); customRankName[playerid] = false; } return 1; } SendSpectatorsMessage(id, color, string2[]) { foreach( new i: Player ) { if(PlayerInfo[i][pID] == id) { if(PlayerInfo[i][pID] == 7378 || PlayerInfo[i][pID] == 7619) { SendClientMessage(i, color, string2); } } } return 1; } stock ClearCustomTag(playerid) { if(IsPlayerConnected(playerid)) { strmid(CustomTag[playerid], "None", 0, strlen("None"), 255); } return 1; } //============================================================================== stock ClearMarriage(playerid) { if(IsPlayerConnected(playerid)) { strmid(PlayerInfo[playerid][pMarriedTo], "Nobody", 0, strlen("Nobody"), 255); PlayerInfo[playerid][pMarried] = 0; } return 1; } //============================================================================== stock ClearContract(playerid) { if(IsPlayerConnected(playerid)) { strmid(PlayerInfo[playerid][pContractBy], "Nobody", 0, strlen("Nobody"), 255); PlayerInfo[playerid][pHeadValue] = 0; } return 1; } //============================================================================== stock ClearIP(playerid) { if(IsPlayerConnected(playerid)) { strmid(PlayerInfo[playerid][pIP], "None", 0, strlen("None"), 255); } return 1; } //============================================================================== stock ClearFamily(family) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pFMember] == family) { SendClientMessage(i, COLOR_LIGHTBLUE, "* The Family you are in got deleted by an Admin, you were kicked."); PlayerInfo[i][pFMember] = 255; PlayerInfo[i][pRank] = 0; PlayerInfo[i][pModel] = 20; SetPlayerSkin(i, 20); PlayerInfo[i][pClothes] = 0; } } } new query[256]; new str[128]; format(str, sizeof(str), "None"); FamilyInfo[family][FamilyTaken] = 0; strmid(FamilyInfo[family][FamilyName], str, 0, strlen(str), 255); strmid(FamilyInfo[family][FamilyMOTD], str, 0, strlen(str), 255); strmid(FamilyInfo[family][FamilyLeader], str, 0, strlen(str), 255); /* Family Finical */ FamilyInfo[family][FamilyBank] = 0; FamilyInfo[family][FamilyCash] = 0; FamilyInfo[family][FamilySafe] = 0; /* Family Positions */ FamilyInfo[family][FamilySafePos][0] = 0.0; FamilyInfo[family][FamilySafePos][1] = 0.0; FamilyInfo[family][FamilySafePos][2] = 0.0; /* Family Stats */ FamilyInfo[family][FamilyCannabis] = 0; FamilyInfo[family][FamilyCocaine] = 0; FamilyInfo[family][FamilyMeth] = 0; FamilyInfo[family][FamilyPromethazine] = 0; FamilyInfo[family][FamilyCodeine] = 0; FamilyInfo[family][FamilyLean] = 0; FamilyInfo[family][FamilyMats] = 0; /* Family Guns */ FamilyInfo[family][Colt45] = 0; FamilyInfo[family][Rifle] = 0; FamilyInfo[family][Sniper] = 0; FamilyInfo[family][MP5] = 0; FamilyInfo[family][Shotgun] = 0; FamilyInfo[family][AK47] = 0; FamilyInfo[family][M4] = 0; FamilyInfo[family][Deagle] = 0; FamilyInfo[family][UZI] = 0; FamilyInfo[family][SPAS12] = 0; FamilyInfo[family][TEC9] = 0; /* Family Ranks */ format(str, sizeof(str), "Outsider"); strmid(FamilyRank[family][0], str, 0, strlen(str), 255); format(str, sizeof(str), "Associate"); strmid(FamilyRank[family][1], str, 0, strlen(str), 255); format(str, sizeof(str), "Soldier"); strmid(FamilyRank[family][2], str, 0, strlen(str), 255); format(str, sizeof(str), "Capo"); strmid(FamilyRank[family][3], str, 0, strlen(str), 255); format(str, sizeof(str), "Underboss"); strmid(FamilyRank[family][4], str, 0, strlen(str), 255); format(str, sizeof(str), "Godfather"); strmid(FamilyRank[family][5], str, 0, strlen(str), 255); FamilyInfo[family][FamilyMembers] = 0; DestroyDynamicPickup(FamilyInfo[family][PickupID]); FamilyInfo[family][PickupID] = CreateDynamicPickup(1210, 23, FamilyInfo[family][FamilySafePos][0], FamilyInfo[family][FamilySafePos][1], FamilyInfo[family][FamilySafePos][2]); FamilyInfo[family][FStrikes] = 0; FamilyInfo[family][fXP] = 0; SaveFamilies(); mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `FMember` = 255, `Rank` = 0, `Clothes` = 0, `Model` = 20 WHERE `FMember` = %d", family); mysql_pquery(sqlGameConnection, query); return 1; } //============================================================================== stock ClearBanreason(playerid) { if(IsPlayerConnected(playerid)) { strmid(PlayerInfo[playerid][pLastLogin], "None", 0, strlen("None"), 255); } return 1; } //============================================================================== stock ClearAppearance(playerid) { if(IsPlayerConnected(playerid)) { strmid(PlayerInfo[playerid][pAppearance], "None", 0, strlen("None"), 255); } return 1; } //============================================================================== stock ClearPrisonreason(playerid) { if(IsPlayerConnected(playerid)) { strmid(PlayerInfo[playerid][pPrisonReason], "None", 0, strlen("None"), 255); strmid(PlayerInfo[playerid][pPrisonedBy], "Nobody", 0, strlen("Nobody"), 255); } return 1; } //============================================================================== stock ClearVIP(playerid) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pLevel] >= 2) { PlayerInfo[playerid][pTag] = NTAG_PLAYER; } else { PlayerInfo[playerid][pTag] = NTAG_NEWBIE; } PlayerInfo[playerid][pDonateRank] = 0; strmid(PlayerInfo[playerid][pVIPJoinDate], "0/0/0", 0, strlen("0/0/0"), 255); strmid(PlayerInfo[playerid][pVIPExpDate], "0/0/0", 0, strlen("0/0/0"), 255); } } //============================================================================== stock ClearDamageInfo(playerid) { if(IsPlayerConnected(playerid)) { new str[128]; format(str, sizeof(str), "Nobody"); strmid(damagedBy[playerid], str, 0, strlen(str), 255); strmid(killedBy[playerid], str, 0, strlen(str), 255); format(str, sizeof(str), "Nothing"); strmid(damageGun[playerid], str, 0, strlen(str), 255); strmid(killGun[playerid], str, 0, strlen(str), 255); damageHour[playerid] = 0; damageMinute[playerid] = 0; killerHour[playerid] = 0; killerMinute[playerid] = 0; } return 1; } //============================================================================== stock ClearGuns(playerid) { if(IsPlayerConnected(playerid)) { ResetPlayerWeapons(playerid); PlayerInfo[playerid][pGun0] = 0; PlayerInfo[playerid][pGun1] = 0; PlayerInfo[playerid][pGun2] = 0; PlayerInfo[playerid][pGun3] = 0; PlayerInfo[playerid][pGun4] = 0; PlayerInfo[playerid][pGun5] = 0; PlayerInfo[playerid][pGun6] = 0; PlayerInfo[playerid][pGun7] = 0; PlayerInfo[playerid][pGun8] = 0; PlayerInfo[playerid][pGun9] = 0; PlayerInfo[playerid][pGun10] = 0; PlayerInfo[playerid][pGun11] = 0; PlayerInfo[playerid][pGun12] = 0; PlayerInfo[playerid][pBombs] = 0; for(new i = 0; i < 13; i++) { aGun[playerid][i] = 0; } } return 1; } //============================================================================== stock updatePlayerIP(playerid) { new ip[16]; GetPlayerIp(playerid, ip, sizeof(ip)); strmid(PlayerInfo[playerid][pIP], ip, 0, strlen(ip), 255); new serial[128]; gpci(playerid, serial, sizeof(serial)); strmid(PlayerInfo[playerid][pSerial], serial, 0, strlen(serial), 255); return 1; } //============================================================================== public Lotto(number) { new str[128]; new JackpotFallen = 0; new winner[MAX_PLAYER_NAME]; format(str, sizeof(str), "Lottery News: Today the Winning Number has fallen on: %d.", number); OOCOff(COLOR_WHITE, str); foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pLottoNr] > 0) { if(PlayerInfo[i][pLottoNr] == number) { JackpotFallen = 1; strmid(winner, PlayerICName(i), 0, MAX_PLAYER_NAME); format(str, sizeof(str), "Lottery News: %s has won the Jackpot of $%d with their Lottery Ticket.", winner, Jackpot); OOCOff(COLOR_WHITE, str); format(str, sizeof(str), "* You have Won $%d with your Lottery Ticket.", Jackpot); SendClientMessage(i, COLOR_YELLOW, str); GiveMoney(i, Jackpot); } else { SendClientMessage(i, COLOR_LIGHTBLUE, "* You haven't won with your Lottery Ticket this time."); } } PlayerInfo[i][pLottoNr] = 0; } } if(JackpotFallen) { new rand = random(125000); rand += 15789; Jackpot = rand; SaveStuff(); format(str, sizeof(str), "Lottery News: The new Jackpot has been started with $%d.", Jackpot); OOCOff(COLOR_WHITE, str); } else { new rand = random(15000); rand += 2158; Jackpot += rand; SaveStuff(); format(str, sizeof(str), "Lottery News: The Jackpot has been raised to $%d.", Jackpot); OOCOff(COLOR_WHITE, str); } return 1; } //============================================================================== public OnPlayerDisconnect(playerid, reason) { new str[128]; foreach(new i: Player) { BlockedPM[playerid][i] = false; BlockedPM[i][playerid] = false; } JustRegistered[playerid] = false; MySQLConnectionOrder[playerid] ++; new query[128]; PlayerInfo[playerid][pAdjustable] = 1; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Adjustable`=1 WHERE `Name`='%e'", PlayerName(playerid)); mysql_pquery(sqlGameConnection, query); if(minutesOnline[playerid] > 0) { mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `activitylog` (`UserID`, `Minutes`, `Date`) VALUES(%d, %d, NOW())", PlayerInfo[playerid][pID], minutesOnline[playerid]); mysql_pquery(sqlGameConnection, query); } PlayerInfo[playerid][pLastLogoutUnix] = gettime() + 1800; //Drop kevlar fix KevlarDropped[playerid] = 0; // FVestProtected[playerid] = 0; //fl toggedflchat[playerid] = 0; //=================[ Setting player last logout ]================ new d, m, y, date[30], date_str[128]; getdate(y, m, d); format(date, sizeof(date), "%02d/%02d/%02d", m, d, y); new h, mm, s, time[24]; gettime(h, mm, s); h = FixHour(h); format(time, sizeof(time), "%02d:%02d:%02d", h, mm, s); format(date_str, sizeof(date_str), "%s %s", date, time); format(PlayerInfo[playerid][pLastLogin], 30, "%s", date_str); //=== new houseid = PlayerInfo[playerid][pHouseID]; if(houseid != 0) { DestroyDynamicPickup(HouseInfo[houseid][hOutsidePickup]); HouseInfo[houseid][hOutsidePickup] = CreateDynamicPickup(HOUSE_OFFLINE, 1, HouseInfo[houseid][hOutsideX], HouseInfo[houseid][hOutsideY], HouseInfo[houseid][hOutsideZ]); } //==========================[Respawn Glitch Fix]============================ if(pDeathState[playerid] == PLAYER_STATE_REVIVE) { pDeathState[playerid] = PLAYER_STATE_INHOSP; } if(playerDMVCar[playerid] != INVALID_VEHICLE_ID) { if(IsValidVehicle(playerDMVCar[playerid])) { SetVehicleToRespawn(GetPlayerVehicleID(playerid)); } } towingCar[playerid] = false; KillTimer(towTimer[playerid]); KillTimer(dragTimer[playerid]); KillTimer(Heliblade_Timer[playerid]); KillTimer(turningenginetimer[playerid]); for(new i = 0; i < 11; i++) { if(IsValidDynamicObject(roadblockObjects[playerid][i])) { if(roadblockObjects[playerid][i]) { DestroyDynamicObjectEx(roadblockObjects[playerid][i]); } } roadblockObjects[playerid][i] = 0; } roadblockTotal[playerid] = 0; if(UsingSate[playerid] == 1) { UsingSate[playerid] = 0; SetPlayerPos(playerid, oldsposx[playerid], oldsposy[playerid], oldsposz[playerid]); } if(CP[playerid] != CHECKPOINT_NONE) //hopefully this will fix the cp bug { DisablePlayerCheckpointEx(playerid); } if(IsValidVehicle(helperVeh[playerid])){ DestroyVehicle(helperVeh[playerid]); } DisablePlayerCheckpointEx(playerid); KillTimer(dPosGet[playerid]); KillTimer(canRepairTimer[playerid]); KillTimer(flyingTimer[playerid]); KillTimer(muteTimer[playerid]); playerDisconnecting[playerid] = 1; //this var is used to detect a /q in OnPlayerSave //boombox destroyBoomBox(playerid); //reset playerids BB vars stopBoomboxStream(playerid); //loops through the players, checks if they are streaming this BB and if so stops their stream clearAttachedObjects(playerid); lostFoodTray(playerid); removeMapIcons(playerid); KillTimer(cpTimerFix[playerid]); OnDroneLogout(playerid); removeJammer(playerid); PlayerEventMod[playerid] = 0; if(ParaOnACall[playerid]) { CallAccepted[PlayerVictim[playerid]] = 0; EMSArrived[PlayerVictim[playerid]] = 0; format(str, sizeof(str), "* The paramedic logged, your call was put back in line."); SendClientMessage(PlayerVictim[playerid], COLOR_LIGHTBLUE, str); } if(HasARapidResKit[playerid] == 1) { if(RapidResKit[playerid]) { DestroyDynamicObjectEx(RapidResKit[playerid]); } RapidResKit[playerid] = 0; HasARapidResKit[playerid] = 0; } if(TextDrawTimer[playerid]) { KillTimer(TextDrawTimer[playerid]); TextDrawTimer[playerid] = 0; } new discstring[128]; switch(reason) { case 0: format(discstring, sizeof(discstring), "* %s has left the server. (Timeout)", PlayerICName(playerid)); case 1: format(discstring, sizeof(discstring), "* %s has left the server. (Leaving)", PlayerICName(playerid)); case 2: format(discstring, sizeof(discstring), "* %s has left the server. (Kicked)", PlayerICName(playerid)); } if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) { ProxDetector(30.0, playerid, discstring, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW); } if(PlayerInfo[playerid][pCash] <= 500 && PlayerInfo[playerid][pAccount] <= 500 && gPlayerLogged[playerid]) { format(str, sizeof(str), "Possible Moneyfarm: %s just left with $%d cash and $%d cash in bank.", PlayerICName(playerid), PlayerInfo[playerid][pCash], PlayerInfo[playerid][pAccount]); PayLog(str); ABroadCast(COLOR_YELLOW, str, 1); if(strlen(LastPaid[playerid])) { new paidto[128]; format(paidto, sizeof(paidto), "- Last paid money to: %s", LastPaid[playerid]); ABroadCast(COLOR_YELLOW, paidto, 1); } } // Player logged to avoid while in cuffs/tazed if(PlayerInfo[playerid][pJailed] == 0) { if(PlayerCuffed[playerid] > 0 || PlayerTazed[playerid] > 0) { /* Put the player in admin prison atleast 30 minutes if they're above lvl 3, add 30 more minutes */ new minsPrisoned = 30; PlayerInfo[playerid][pJailed] = 3; PlayerInfo[playerid][pAdminJailed] = 1; PlayerInfo[playerid][pJailTime] = 30 * 60; PlayerInfo[playerid][pWantedLevel] = 0; PlayerInfo[playerid][pVirtualWorld] = 0; PlayerInfo[playerid][pInt] = 69; format(PlayerInfo[playerid][pPrisonedBy], 7, "Server"); format(PlayerInfo[playerid][pPrisonReason], 23, "LTA while cuffed/tazed"); if(PlayerInfo[playerid][pLevel] > 3) { PlayerInfo[playerid][pJailTime] += 30 * 60; minsPrisoned = 60; } // Inform admins format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s was auto-prisoned for LTA while cuffed/tazed. [%i mins]", PlayerICName(playerid), minsPrisoned); ABroadCast(COLOR_WHITE, str, 1); } } for(new i = 0; i < MAX_TAXICALLS; i++) { if(strcmp(TaxiCInfo[i][taxiname], PlayerICName(playerid))) { TaxiCInfo[i][taxiname] = "0"; } } for(new i = 0; i < MAX_PLAYERS; i++) { if(PlayerInfo[i][pMember] == 10) { if(TaxiCID[i] == playerid) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_WHITE); TaxiCID[i] = -1; SendClientMessage(i, COLOR_GREY, "The customer has canceled their call."); } } } if(PlayerInfo[playerid][pJailnumber] > 0) { UpdateDynamic3DTextLabelText(PNumber3D[playerid], COLOR_WHITE, " "); DestroyDynamic3DTextLabel(PNumber3D[playerid]); } if(GuardedBy[playerid] != 999) { SendClientMessage(GuardedBy[playerid], COLOR_RED, "* Your client has disconnected from the server."); SetPlayerToTeamColor(GuardedBy[playerid]); SetPlayerToTeamColor(playerid); GuardedBy[GuardedBy[playerid]] = 999; GuardingPrice[GuardedBy[playerid]] = 0; Guarding[playerid] = 999; } if(Guarding[playerid] != 999) { SendClientMessage(Guarding[playerid], COLOR_RED, "* Your bodyguard has disconnected from the server."); PlayerInfo[playerid][pAccount] -= (GuardingPrice[Guarding[playerid]] * 2); SetPlayerToTeamColor(Guarding[playerid]); SetPlayerToTeamColor(playerid); GuardedBy[Guarding[playerid]] = 999; GuardingPrice[Guarding[playerid]] = 0; Guarding[playerid] = 999; } foreach( new buggedid: Player ) { if(WireOfferID[buggedid] == playerid) { WireOfferID[buggedid] = INVALID_PLAYER_ID; } } if(SpectatingID[playerid] != 999) //if an admin quit while specing a player { //need to check if no other admins are specing the target before reseting their variable new found_spectator = isAnyoneSpecingTarget(playerid); if(!found_spectator) //if nobody else was specing them, set their var to 0 { Spectated[SpectatingID[playerid]] = 0; //set their } } if(Spectated[playerid]) //play quit while being spectated { foreach( new i: Player ) { if(SpectatingID[i] == playerid) { if(GetPlayerState(i) == PLAYER_STATE_SPECTATING) //double check they are spectating { unspec(i); } } } } foreach( new i: Player ) { if(lastPMedID[i] == playerid) lastPMedID[i] = INVALID_PLAYER_ID; if(RepairOffer[i] == playerid) { RepairOffer[i] = 999; RepairPrice[i] = 0; } if(FactionOffer[i] == playerid) { FactionOffer[i] = 999; } if(GroupOffer[i] == playerid) { GroupOffer[i] = 999; } if(PotOffer[i] == playerid) { PotOffer[i] = 999; PotPrice[i] = 0; PotGram[i] = 0; } if(MatsOffer[i] == playerid) { MatsOffer[i] = 999; MatsPrice[i] = 0; MatsGram[i] = 0; MatsGram2[i] = 0; } if(ProdOffer[i] == playerid) { ProdOffer[i] = 999; ProdPrice[i] = 0; ProdAmount[i] = 0; } if(CrackOffer[i] == playerid) { CrackOffer[i] = 999; CrackPrice[i] = 0; CrackGram[i] = 0; } if(VestOffer[i] == playerid) { VestOffer[i] = 999; VestPrice[i] = 0; } if(GuardOffer[i] == playerid) { GuardOffer[i] = 999; GuardPrice[i] = 0; } if(healOffer[i] == playerid) { healOffer[i] = 999; healPrice[i] = 0; } if(TaxiAccepted[i] < 999) { if(TaxiAccepted[i] == playerid) { TaxiAccepted[i] = 999; displayCenterHUDInfo(i, "~y~Taxi Caller~w~ has left the game.", 8); //display for 8 seconds TaxiCallTime[i] = 0; DisablePlayerCheckpointEx(i); } } else if(BusAccepted[i] < 999) { if(BusAccepted[i] == playerid) { BusAccepted[i] = 999; displayCenterHUDInfo(i, "~y~Bus Caller~w~ has left the game.", 8); //display for 8 seconds BusCallTime[i] = 0; DisablePlayerCheckpointEx(i); } } if(GoChase[i] < 999) { if(GoChase[i] == playerid) { displayCenterHUDInfo(playerid, "~r~Target~w~ has left the game.", 8); //display for 8 seconds GoChase[i] = 999; } } if(TransportDriver[i] == playerid) { TransportDriver[i] = 999; TransportCost[i] = 0; SendClientMessage(i, COLOR_LIGHTBLUE, "* Your taxi driver has logged off."); } } if(TransportCost[playerid] > 0 && TransportDriver[playerid] < 999) { if(IsPlayerConnected(TransportDriver[playerid])) { TransportMoney[TransportDriver[playerid]] += TransportCost[playerid]; TransportTime[TransportDriver[playerid]] = 0; TransportCost[TransportDriver[playerid]] = 0; format(str, sizeof(str), "~w~Passenger left~n~~g~earned $%d.", TransportCost[playerid]); displayCenterHUDInfo(playerid, str, 8); //display for 8 seconds } } if(BombID[playerid] != -1) { TakePlayerWeapon(playerid, 40); PlayerInfo[playerid][pGun12] = 0; DestroyDynamicObjectEx(BombID[playerid]); BombID[playerid] = -1; } new caller = Mobile[playerid]; if(caller != 999) { if(Mobile[caller] == playerid) //if the person is on the phone to player { SendClientMessage(caller, COLOR_GRAD2, "The line has been disconnected..."); CellTime[caller] = 0; Mobile[caller] = 999; if(usePayphone[playerid] == -1) detachPhoneFromPlayer(playerid); else { payPhone[usePayphone[playerid]][inUse] = 0; usePayphone[playerid] = -1; } } } if(PlayersChannel[playerid] < 999) { IRCInfo[PlayersChannel[playerid]][iPlayers] --; } if(PlayerBoxing[playerid] > 0) { if(Boxer1 == playerid) { if(IsPlayerConnected(Boxer2)) { PlayerBoxing[Boxer2] = 0; SetPlayerPos(Boxer2, 765.8433, 3.2924, 1000.7186); SetPlayerInterior(Boxer2, 5); displayCenterHUDInfo(playerid, "~r~Match interupted.", 8); //display for 8 seconds } } else if(Boxer2 == playerid) { if(IsPlayerConnected(Boxer1)) { PlayerBoxing[Boxer1] = 0; SetPlayerPos(Boxer1, 765.8433, 3.2924, 1000.7186); SetPlayerInterior(Boxer1, 5); displayCenterHUDInfo(playerid, "~r~Match interupted.", 8); //display for 8 seconds } } InRing = 0; RoundStarted = 0; Boxer1 = 255; Boxer2 = 255; TBoxer = 255; } if(TransportDuty[playerid] == 1) { TaxiDrivers -= 1; } if(TransportDuty[playerid] == 2) { BusDrivers -= 1; } if(ThiefText[playerid] != Text3D:INVALID_3DTEXT_ID) { DestroyDynamic3DTextLabel(ThiefText[playerid]); ThiefText[playerid] = Text3D:INVALID_3DTEXT_ID; } if(playerHoldingTazer[playerid]) { RemovePlayerAttachedObject(playerid, INDEX_7); } if(PlayerCuffed[playerid] == 2) // { RemovePlayerAttachedObject(playerid, INDEX_0); } if(IsAtEvent[playerid] == 1) { SetPlayerSpawn(playerid); } if(gForSales[playerid][PlayerHasASaleBoard]) { if(gForSales[playerid][Saleobject]) { DestroyDynamicObjectEx(gForSales[playerid][Saleobject]); } gForSales[playerid][Saleobject] = 0; gForSales[playerid][PlayerHasASaleBoard] = false; } if(cameraPlacedByID == playerid) { cameraPlacedByID = INVALID_PLAYER_ID; cameraTaken = false; cameraLive = false; cameraPos[0] = 0; cameraPos[1] = 0; cameraPos[2] = 0; cameraPos[3] = 0; cameraVirtualWorld = 0; cameraInterior = 0; if(cameraObject) { DestroyDynamicObjectEx(cameraObject); } cameraObject = 0; DestroyDynamic3DTextLabel(cameraText); } if(PlayerInfo[playerid][pGroup] == GROUP_S9) { hoskperm[playerid] = false; } if(OnCCTV[playerid] != -1) cmd_quitcctv(playerid, ""); OnPlayerSave(playerid); SQLSave(playerid); CINC[playerid]++; // invalidate all responses from now on (we might still wish to act on some until next player reuses this slot) this also prevents incorrectly handling responses when there is no player using the slot. /*#if UseDiscordBot 1 new discordstr[144]; if(PlayerInfo[playerid][pAdmin]) { format(discordstr, sizeof discordstr, "%s %s (%d) has left the server.", Discord:GetAdminRank(playerid), PlayerICName(playerid), playerid); Discord:sendBasicRequest(DISCORD_ADMINCHAT_CHANNEL, "Notification", discordstr, DISCORD_COLOR_INFO); } if(PlayerInfo[playerid][pHelper]) { format(discordstr, sizeof discordstr, "%s %s (%d) has left the server.", Discord:GetHelperRank(playerid), PlayerICName(playerid), playerid); Discord:sendBasicRequest(DISCORD_NEWBIE_CHANNEL, "Notification", discordstr, DISCORD_COLOR_INFO); } if(PlayerInfo[playerid][pTester] || PlayerInfo[playerid][pDev]) { format(discordstr, sizeof discordstr, "%s %s (%d) has left the server.", (PlayerInfo[playerid][pDev]) ? ("Developer") : ("Tester"), PlayerICName(playerid), playerid); Discord:sendBasicRequest(DISCORD_TESTER_CHANNEL, "Notification", discordstr, DISCORD_COLOR_INFO); } #endif*/ PlayerInfo[playerid][pFMDListen] = 0; PlayerInfo[playerid][pFBIListen] = 0; PlayerInfo[playerid][pSANListen] = 0; PlayerInfo[playerid][pGOVListen] = 0; PlayerInfo[playerid][pSANGListen] = 0; PlayerInfo[playerid][pLSSDListen] = 0; PlayerInfo[playerid][pSAPDListen] = 0; PlayerInfo[playerid][pSAPDListen] = 0; return 1; } //============================================================================== //============================================================================== /* public ShowPlayerTutorial(playerid) { SetPlayerPos(playerid, 2022.1327, -1771.3883, 328.3047); TogglePlayerControllable(playerid, false); InterpolateCameraPos(playerid, 1819.456787, -1360.477905, 21.288675, 2051.394287, -1751.514892, 37.458614, 10000); InterpolateCameraLookAt(playerid, 1822.957885, -1363.989990, 21.927141, 2055.121826, -1754.651000, 36.331260, 10000); timepressednext = gettime(); return 1; }*/ public SetPlayerSpawn(playerid) { if(IsPlayerConnected(playerid)) { new str[128]; //JAIL if(PlayerInfo[playerid][pJailed] == 1) { new cellnumber = 1; SetPlayerVirtualWorld(playerid, 191919); SetPlayerPos(playerid, LSJailSpawns[cellnumber][0], LSJailSpawns[cellnumber][1], LSJailSpawns[cellnumber][2]); SetPlayerFacingAngle(playerid, LSJailSpawns[cellnumber][3]); SetPlayerInterior(playerid, 23); SetPlayerToTeamColor(playerid); return 1; } //PRISON if(PlayerInfo[playerid][pJailed] == 2) { format(str, sizeof(str), "You are still in prison, with %i seconds left.", PlayerInfo[playerid][pJailTime]); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); if(PlayerInfo[playerid][pJailnumber] > 0) { format(str, sizeof(str), "Your prison number is: #%d. (( /prisoninfo ))", PlayerInfo[playerid][pJailnumber]); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "No: %d", PlayerInfo[playerid][pJailnumber]); PNumber3D[playerid] = CreateDynamic3DTextLabel(str, COLOR_YELLOW, 0.0, 0.0, -0.5, 20.0, playerid, INVALID_VEHICLE_ID, 0, -1, -1, -1, 2.0); } SetPlayerInterior(playerid, DOC_INT); SetPlayerVirtualWorld(playerid, DOC_WORLD); SetPlayerSkin(playerid, 50); PlayerInfo[playerid][pModel] = 50; SetCameraBehindPlayer(playerid); new rand = random(sizeof(prisoncells)); PrisonCell[playerid] = rand; SetPlayerPos(playerid, prisoncells[rand][0], prisoncells[rand][1], prisoncells[rand][2]); Timer_FreezePlayer(playerid, FREEZE, ENTER_FREEZE); return 1; } if(PlayerInfo[playerid][pJailed] == 5) { //SetPlayerSkin(playerid, 50); SetPlayerColor(playerid, TCOLOR_PRISON); SetCameraBehindPlayer(playerid); new rand = random(sizeof(SFPrisonSpawns)); PrisonCell[playerid] = rand; SetPlayerPos(playerid, SFPrisonSpawns[rand][0], SFPrisonSpawns[rand][1], SFPrisonSpawns[rand][2]); SetPlayerFacingAngle(playerid, SFPrisonSpawns[rand][3]); return 1; } //ADMIN PRISON if(PlayerInfo[playerid][pJailed] == 3) { SetPlayerInterior(playerid, 69); PlayerInfo[playerid][pClothes] = 50; SetPlayerSkin(playerid, PlayerInfo[playerid][pClothes]); SetPlayerColor(playerid, TCOLOR_PRISON); SetCameraBehindPlayer(playerid); new rand = random(sizeof(PrisonSpawns)); PrisonCell[playerid] = rand; SetPlayerPos(playerid, PrisonSpawns[rand][0], PrisonSpawns[rand][1], PrisonSpawns[rand][2]); SetPlayerFacingAngle(playerid, PrisonSpawns[rand][3]); return 1; } //PAINTBALL if(inPaintball[playerid] > 0) { respawn_pb(playerid); return 1; } //EVENT if(IsAtEvent[playerid] == 1) { IsAtEvent[playerid] = 0; PlayerInfo[playerid][pHospital] = 0; SetPlayerPos(playerid, StuffEvent[playerid][0], StuffEvent[playerid][1], StuffEvent[playerid][2]); SetPlayerFacingAngle(playerid, StuffEvent[playerid][3]); SetPlayerHealth(playerid, StuffEvent[playerid][4]); SetPlayerArmour(playerid, StuffEvent[playerid][5]); SetPlayerInterior(playerid, StuffEvent2[playerid][0]); SetPlayerVirtualWorld(playerid, StuffEvent2[playerid][1]); for(new i = 0; i < sizeof(EventGuns); i++) { if(i <= 12) { if(EventGuns[playerid][i] != 0) { GivePlayerGun(playerid, EventGuns[playerid][i]); } } } return 1; } //PUT PLAYER IN REVIVE MODE if(pDeathState[playerid] == PLAYER_STATE_REVIVE) { if( PlayerBoxing[playerid] ) { //boxing fix SetPlayerHealth( playerid, 100 ); TextDrawHideForPlayer(playerid, Text:DieText); TextDrawHideForPlayer(playerid, Text:InjuredText); pInHospital[playerid] = 0; pDeathState[playerid] = PLAYER_STATE_NORMAL; PlayerCalledEMS[playerid] = 0; ApplyAnimationEx(playerid, "PED", "getup_front", 4.0, 0, 1, 1, 0, 0, 1); SetPlayerPos(playerid, 765.8433, 3.2924, 1000.7186); SetPlayerInterior(playerid, 5); OnPlayerSave(playerid); return 1; } SetPlayerHealth(playerid, DeathPos[playerid][DeathHP]); ApplyAnimationEx(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0, 1); SetPlayerPos(playerid, DeathPos[playerid][DeathX], DeathPos[playerid][DeathY], DeathPos[playerid][DeathZ]); SetPlayerFacingAngle(playerid, DeathPos[playerid][DeathA]); SetPlayerInterior(playerid, DeathPos[playerid][DeathInt]); SetPlayerVirtualWorld(playerid, DeathPos[playerid][DeathVW]); pInHospital[playerid] = 1; TextDrawShowForPlayer(playerid, DieText); TextDrawShowForPlayer(playerid, InjuredText); SetPlayerWeapons(playerid); return 1; } //IN HOSPITAL if(pDeathState[playerid] == PLAYER_STATE_INHOSP) { PlayerCalledEMS[playerid] = 0; TogglePlayerControllable(playerid, false); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SetPlayerHealth(playerid, 100); SetPlayerArmour(playerid, 0); ClearGuns(playerid); setPlayerInHospital(playerid); return 1; } //FIRST JOINED OR RELOGGING if(PlayerInfo[playerid][pTut] == 0) { //enable chats gOoc[playerid] = 0; gNews[playerid] = 0; gFam[playerid] = 0; PlayerInfo[playerid][pTut] = 1; PlayerInfo[playerid][pHealth] = 100; PlayerInfo[playerid][pArmor] = 0; PlayerInfo[playerid][pSpawnPos] = 0; startSpawnLoc[playerid] = 1; //always spawn players in LS until server pop increases if(!startSpawnLoc[playerid]) //dillimore { PlayerInfo[playerid][pModel] = 162; SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); PlayerInfo[playerid][pClothes] = 0; SetPlayerPos(playerid, 665.9512, -620.2848, 16.3359); SetPlayerFacingAngle(playerid, 357.2120); } else //los santos { SetPlayerPos(playerid, 1812.0366, -1369.7888, 15.0781); SetPlayerFacingAngle(playerid, 270.2801); } SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, true); SetPlayerToTeamColor(playerid); //displayWelcomeMessage(playerid); //ShowPlayerTutorial(playerid); return 1; } else { SetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]); SetPlayerArmour(playerid, PlayerInfo[playerid][pArmor]); if(PlayerInfo[playerid][pSpawnPos] == 0) { Timer_FreezePlayer(playerid, FREEZE, ENTER_FREEZE); SetPlayerInterior(playerid, PlayerInfo[playerid][pInt]); SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][pVirtualWorld]); SetPlayerPos(playerid, PlayerInfo[playerid][pSPos_x], PlayerInfo[playerid][pSPos_y], PlayerInfo[playerid][pSPos_z] + 1); //set their position SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pSPos_r]); } else{ new house = PlayerInfo[playerid][pHouseID]; if(house > 0){ if(gettime() > PlayerInfo[playerid][pLastLogoutUnix]){ SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SetPlayerPos(playerid, HouseInfo[house][hOutsideX], HouseInfo[house][hOutsideY], HouseInfo[house][hOutsideZ]); SetPlayerFacingAngle(playerid, HouseInfo[house][hOutsideA]); } else { SetPlayerInterior(playerid, PlayerInfo[playerid][pInt]); SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][pVirtualWorld]); SetPlayerPos(playerid, PlayerInfo[playerid][pSPos_x], PlayerInfo[playerid][pSPos_y], PlayerInfo[playerid][pSPos_z] + 1); //set their position SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pSPos_r]); } } else { SetPlayerInterior(playerid, PlayerInfo[playerid][pInt]); SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][pVirtualWorld]); SetPlayerPos(playerid, PlayerInfo[playerid][pSPos_x], PlayerInfo[playerid][pSPos_y], PlayerInfo[playerid][pSPos_z] + 1); //set their position SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pSPos_r]); if( PlayerInfo[playerid][pInt] > 0 ) { Timer_FreezePlayer(playerid, FREEZE, ENTER_FREEZE); } } } SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, true); SetPlayerToTeamColor(playerid); return 1; } } return 1; } //============================================================================== Timer:UnfreezeBoxing(playerid) { TogglePlayerControllable(playerid, true); return 1; } //============================================================================== stock setPlayerInHospital(playerid) { if(IsPlayerConnected(playerid)) { new str[128]; new rand = random(sizeof(HospitalSpawns)); switch(rand) { case 0: { //all saints SetPlayerPos(playerid, 1192.256836, -1304.637939, 7.0000); SetPlayerCameraPos(playerid, 1219.663330, -1395.356323, 24.186428); SetPlayerCameraLookAt(playerid, 1216.779418, -1392.587890, 24.049209); if(PlayerInfo[playerid][pWantedLevel] > 0) { SendClientMessage(playerid,COLOR_YELLOW,"The San Andreas Police Department has been informed of your current location."); SendCopMessage(TEAM_BLUE_COLOR, "HQ: All Units APB: Reporter: All Saints Hospital Staff"); format(str, sizeof(str), "HQ: Crime: Unknown, Suspect: %s", PlayerICName(playerid)); SendCopMessage(TEAM_BLUE_COLOR, str); } } case 1: { //county SetPlayerPos(playerid, 2012.323608, -1436.354370, 5.0000); SetPlayerCameraPos(playerid, 1976.471191, -1474.494873, 17.548021); SetPlayerCameraLookAt(playerid, 1979.214355, -1471.634033, 18.087253); if(PlayerInfo[playerid][pWantedLevel] > 0) { SendClientMessage(playerid,COLOR_YELLOW,"The San Andreas Police Department has been informed of your current location."); SendCopMessage(TEAM_BLUE_COLOR, "HQ: All Units APB: Reporter: County General Hospital Staff"); format(str, sizeof(str), "HQ: Crime: Unknown, Suspect: %s", PlayerICName(playerid)); SendCopMessage(TEAM_BLUE_COLOR, str); } } case 2: { //dillimore SetPlayerPos(playerid, 867.9205,-579.7359,5.6433); SetPlayerCameraPos(playerid, 871.711975, -573.046447, 23.873922); SetPlayerCameraLookAt(playerid, 869.456481, -576.283447, 23.214698); if(PlayerInfo[playerid][pWantedLevel] > 0) { SendClientMessage(playerid,COLOR_YELLOW,"The San Andreas Police Department has been informed of your current location."); SendCopMessage(TEAM_BLUE_COLOR, "HQ: All Units APB: Reporter: Dillimore Medical Centre Staff"); format(str, sizeof(str), "HQ: Crime: Unknown, Suspect: %s", PlayerICName(playerid)); SendCopMessage(TEAM_BLUE_COLOR, str); } } } HospitalSpawnID[playerid] = rand; SetPlayerHealth(playerid, 1.0); SetPlayerHealth(playerid, 1.0); PlayerInfo[playerid][pInt] = 0; PlayerInfo[playerid][pVirtualWorld] = 0; SetPlayerInterior(playerid, PlayerInfo[playerid][pInt]); SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][pVirtualWorld]); switch(PlayerInfo[playerid][pDonateRank]) { case 0: { //default SendClientMessage(playerid,COLOR_DOCTOR,"You must spend some time in Hospital to recover."); SendClientMessage(playerid,COLOR_DOCTOR,"Before you are discharged, hospital staff will confiscate your weapons and bill you for the healthcare you received."); HospitalTime[playerid] = 1; } case 1: { //bronze SendClientMessage(playerid,COLOR_DOCTOR,"You must spend some time in Hospital to recover, you are receiving the VIP healthcare plan."); SendClientMessage(playerid,COLOR_DOCTOR,"Before you are discharged, hospital staff will confiscate your weapons and bill you for the healthcare you received."); HospitalTime[playerid] = 10; } case 2: { //silver SendClientMessage(playerid,COLOR_DOCTOR,"You must spend some time in Hospital to recover, you are receiving the VIP healthcare plan."); SendClientMessage(playerid,COLOR_DOCTOR,"Before you are discharged, hospital staff will confiscate your weapons and bill you for the healthcare you received."); HospitalTime[playerid] = 15; } case 3: { //gold SendClientMessage(playerid,COLOR_DOCTOR,"You must spend some time in Hospital to recover, you are receiving the best VIP healthcare plan we offer."); SendClientMessage(playerid,COLOR_DOCTOR,"Before you are discharged, hospital staff will confiscate your weapons and bill you for the healthcare you received."); HospitalTime[playerid] = 25; } default: { //error SendClientMessage(playerid,COLOR_DOCTOR,"You must spend some time in Hospital to recover."); SendClientMessage(playerid,COLOR_DOCTOR,"Before you are discharged, hospital staff will confiscate your weapons and bill you for the healthcare you received."); HospitalTime[playerid] = 1; } } if(PlayerInfo[playerid][pInsurance] > 0) { HospitalTime[playerid] += 20; SendClientMessage(playerid, COLOR_DOCTOR, "Your insurance has improved your healthcare plan."); } } return 1; } //============================================================================== stock releasePlayerFromHospital(playerid) { new str[128]; HasBoughtMask[playerid] = 0; PlayerInfo[playerid][pPoison] = 0; if(PlayerInfo[playerid][pMask] == 1) { PlayerInfo[playerid][pMask] = 0; foreach( new i: Player ) { ShowPlayerNameTagForPlayer(i, playerid, 0); } } new cut = deathcost; if(PlayerInfo[playerid][pMember] == FACTION_FMD || PlayerInfo[playerid][pLeader] == FACTION_FMD || PlayerInfo[playerid][pGroup] == GROUP_S9) // medics { cut = deathcost / 2; } if(PlayerInfo[playerid][pInsurance] > 0) { PlayerInfo[playerid][pInsurance] --; SendClientMessage(playerid, COLOR_DOCTOR, "Your insurance healthcare plan has reduced your bill by 25 percents."); new percentsmoney = cut/4; cut = cut-percentsmoney; } GiveMoney(playerid, -cut); new Float: defaultHP = 50.0; switch(PlayerInfo[playerid][pDonateRank]) { case 0: { //default if(defaultHP + PlayerInfo[playerid][pSHP] > 100) { SetPlayerHealth(playerid, 100); } else { SetPlayerHealth(playerid, defaultHP + PlayerInfo[playerid][pSHP]); } format(str, sizeof(str), "SAFMD: Your medical bill comes to $%d, have a nice day.", cut); SendClientMessage(playerid, COLOR_DOCTOR, str); } case 1: { //bronze new Float: perkHP = 10; if(defaultHP + PlayerInfo[playerid][pSHP] + perkHP > 100) { SetPlayerHealth(playerid, 100); } else { SetPlayerHealth(playerid, defaultHP + PlayerInfo[playerid][pSHP] + perkHP); } format(str, sizeof(str), "SAFMD: Your VIP healthcare gave you a 10 percent recovery bonus and came to $%d, have a nice day.", cut); SendClientMessage(playerid, COLOR_DOCTOR, str); } case 2: { //silver new Float: perkHP = 20; if(defaultHP + PlayerInfo[playerid][pSHP] + perkHP > 100) { SetPlayerHealth(playerid, 100); } else { SetPlayerHealth(playerid, defaultHP + PlayerInfo[playerid][pSHP] + perkHP); } format(str, sizeof(str), "SAFMD: Your VIP healthcare gave you a 20 percent recovery bonus and came to $%d, have a nice day.", cut); SendClientMessage(playerid, COLOR_DOCTOR, str); } case 3: { //gold new Float: perkHP = 30; if(defaultHP + PlayerInfo[playerid][pSHP] + perkHP > 100) { SetPlayerHealth(playerid, 100); } else { SetPlayerHealth(playerid, defaultHP + PlayerInfo[playerid][pSHP] + perkHP); } format(str, sizeof(str), "SAFMD: Your VIP healthcare gave you a 30 percent recovery bonus and came to $%d, have a nice day.", cut); SendClientMessage(playerid, COLOR_DOCTOR, str); } default: { //error if(defaultHP + PlayerInfo[playerid][pSHP] > 100) { SetPlayerHealth(playerid, 100); } else { SetPlayerHealth(playerid, defaultHP + PlayerInfo[playerid][pSHP]); } } } SetPlayerArmour(playerid, PlayerInfo[playerid][pSHealth]); if(PlayerInfo[playerid][pDonateRank] == 4) {SetPlayerArmour(playerid, 100);SetPlayerHealth(playerid, 100);} TogglePlayerControllable(playerid, true); new hospitalid = HospitalSpawnID[playerid]; switch(hospitalid) { case 0: { //all saints SetPlayerPos(playerid, HospitalSpawns[hospitalid][0], HospitalSpawns[hospitalid][1], HospitalSpawns[hospitalid][2]); SetPlayerFacingAngle(playerid, HospitalSpawns[hospitalid][3]); } case 1: { //county SetPlayerPos(playerid, HospitalSpawns[hospitalid][0], HospitalSpawns[hospitalid][1], HospitalSpawns[hospitalid][2]); SetPlayerFacingAngle(playerid, HospitalSpawns[hospitalid][3]); } case 2: { //dillimore SetPlayerPos(playerid, HospitalSpawns[hospitalid][0], HospitalSpawns[hospitalid][1], HospitalSpawns[hospitalid][2]); SetPlayerFacingAngle(playerid, HospitalSpawns[hospitalid][3]); } default: { //county SetPlayerPos(playerid, 2034.5677, -1406.0891, 17.2174); SetPlayerFacingAngle(playerid, 180.4432); } } SetCameraBehindPlayer(playerid); pDeathState[playerid] = PLAYER_STATE_NORMAL; pInHospital[playerid] = 0; SetPlayerToTeamColor(playerid); //Exploit fix for Abusing full vest on spawn if(PlayerInfo[playerid][pSHealth] >= 90){ FVestProtected[playerid] = 1; // 1000 * 60 = 60seconds = 1minute * 15 = 15minutes SetTimerEx("Timer_FVestProtection", (1000*60)*15, 0, "d", playerid); } ResetPlayerDamages(playerid); /* if(IsDead[playerid] == true) { Delete3DTextLabel(dmginfo[playerid]); IsDead[playerid]= false; return 1; }*/ return 1; } //============================================================================== stock GetGunName(weaponid) { new wName[32]; switch(weaponid) { case 0: wName = "Fist"; case 1: wName = "Brass Knuckles"; case 2: wName = "Golf Club"; case 3: wName = "Nightstick"; case 4: wName = "Knife"; case 5: wName = "Baseball Bat"; case 6: wName = "Shovel"; case 7: wName = "Pool Cue"; case 8: wName = "Katana"; case 9: wName = "Chainsaw"; case 10: wName = "Purple Dildo"; case 11: wName = "Dildo"; case 12: wName = "Vibrator"; case 13: wName = "Silver Vibrator"; case 14: wName = "Flowers"; case 15: wName = "Cane"; case 16: wName = "Grenade"; case 17: wName = "Tear Gas"; case 18: wName = "Molotov Cocktail"; case 22: wName = "Colt 45"; case 23: wName = "Silenced Pistol"; case 24: wName = "Desert Eagle"; case 25: wName = "Shotgun"; case 26: wName = "Sawnoff Shotgun"; case 27: wName = "Combat Shotgun"; case 28: wName = "Micro SMG/Uzi"; case 29: wName = "MP5"; case 30: wName = "AK-47"; case 31: wName = "M4"; case 32: wName = "Tec-9"; case 33: wName = "Country Rifle"; case 34: wName = "Sniper Rifle"; case 35: wName = "RPG"; case 36: wName = "HS Rocket"; case 37: wName = "Flamethrower"; case 38: wName = "Minigun"; case 39: wName = "Satchel Charge"; case 40: wName = "Detonator"; case 41: wName = "Spraycan"; case 42: wName = "Fire Extinguisher"; case 43: wName = "Camera"; case 44: wName = "Night Vision Goggles"; case 45: wName = "Thermal Goggles"; case 46: wName = "Parachute"; } return wName; } //============================================================================== forward ClearHeliblade(playerid); public ClearHeliblade(playerid) return helibladecount[playerid] = 0; // -------------------- // Timer:PaintballDie(playerid) { if(!IsPlayerConnected(playerid)) return 0; if(PaintballDieTimer[playerid]) { PaintballDieTimer[playerid] = 0; } return 1; } ////////////////////////// public OnPlayerDeath(playerid, killerid, reason) { new str[2048]; printf("[OnPlayerDeath] playerid: %d killerid %d reason: %d", PlayerName(playerid), PlayerName(killerid), reason); new year, month, day; getdate(year, month, day); new hour, minute, second; gettime(hour, minute, second); hour = FixHour(hour); format(str, sizeof(str), "[OnPlayerDeath] playerid: %s[%d] killerid %s[%d] reason: %d at %02d %s %02d:%02d:%02d",PlayerOOCName(playerid),playerid, PlayerOOCName(killerid),killerid, reason, day, GetMonthFromInt(month), hour, minute, second); logswrite("kills.log", str); new Float:x, Float:y, Float:z, Float:a; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, a); DeathPos[playerid][DeathX] = x; DeathPos[playerid][DeathY] = y; DeathPos[playerid][DeathZ] = z; DeathPos[playerid][DeathA] = a; DeathPos[playerid][DeathInt] = GetPlayerInterior(playerid); DeathPos[playerid][DeathVW] = GetPlayerVirtualWorld(playerid); for(new i = 0; i <= 12; i++) { GetPlayerWeaponData(playerid, i, lastpguns[playerid][i][0], lastpguns[playerid][i][1]); } //was killed by a legit player if(killerid != INVALID_PLAYER_ID) { new name[MAX_PLAYER_NAME + 1], gunName[24]; GetWeaponName(GetPlayerWeapon(killerid), gunName, sizeof(gunName)); GetPlayerICName(killerid, name, sizeof(name)); if(PlayerInfo[killerid][pGroup] == GROUP_HITMAN && PlayerInfo[playerid][pHeadValue] > 0) format(killedBy[playerid], 24, "Hitman"); else format(killedBy[playerid], 24, "%s", name); gettime(killerHour[playerid], killerMinute[playerid]); killerHour[playerid] = FixHour(killerHour[playerid]); format(killGun[playerid], 24, "%s", gunName); if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(killerid); if(IsAHelicopter(vehicleid)) { if( (PlayerInfo[playerid][pMember] != 14 && PlayerInfo[playerid][pGroup] != GROUP_S9) && (GetVehicleModel(vehicleid) != 425)) // If the member is not FACTION_ARMY/S9 and is not in vehicle HUNTER // { format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (ID %d) has killed %s (ID %d), Bladekilling.", PlayerICName(killerid), killerid, PlayerICName(playerid), playerid); UpdateWarnings(str); } } else if(GetPlayerWeapon(killerid) == 29) { format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (ID %d) has killed %s (ID %d), Drivershooting.", PlayerICName(killerid), killerid, PlayerICName(playerid), playerid); UpdateWarnings(str); } } if(lastShotByPlayerID[playerid] == killerid) { //these vars prevent fakekilling if(lastShotByWeaponID[playerid] == 35 || lastShotByWeaponID[playerid] == 36 || lastShotByWeaponID[playerid] == 38) { //check if its a scripted gun (/givegun, event weapon etc) new hackedWeapon = 1; if(HaveWeapon(killerid, lastShotByWeaponID[playerid]) == lastShotByWeaponID[playerid] || HaveAdminWeapon(killerid, lastShotByWeaponID[playerid]) == lastShotByWeaponID[playerid]) hackedWeapon = 0; if(PlayerInfo[killerid][pAdmin] < 2 && hackedWeapon) { //it would be better to check if they are in an event or have admin weapons if((PlayerInfo[playerid][pMember] != 14 && PlayerInfo[playerid][pGroup] != GROUP_S9) && GetVehicleModel(GetPlayerVehicleID(killerid)) != 425) { new weaponName[24], banreason[64]; if(PlayerInfo[killerid][pBand] == 3) return 1; // Avoid spam, should already be banned. GetWeaponName(lastShotByWeaponID[playerid], weaponName, sizeof(weaponName)); format(str, sizeof(str), "{FF6347}SERVER: %s was banned by ANTICHEAT, reason: Hacked %s detected.", PlayerICName(killerid), weaponName); SendClientMessageToAll(COLOR_WHITE, str); new ip[16]; GetPlayerIp(playerid, ip, sizeof(ip)); gpci(playerid,playerserial,sizeof(playerserial)); BanExx(playerid); format(banreason, sizeof(banreason), "killing with a hacked %s.", weaponName); BanAccount(killerid, INVALID_PLAYER_ID, banreason); if(NextBan == 1) { format(Ban1Name, sizeof(Ban1Name), "%s", PlayerOOCName(playerid)); format(Ban1gpci, sizeof(Ban1gpci), "%s", playerserial); format(Ban1ip, sizeof(Ban1ip), "%s", ip); NextBan = 2; return 1; } if(NextBan == 2) { format(Ban2Name, sizeof(Ban2Name), "%s", PlayerOOCName(playerid)); format(Ban2gpci, sizeof(Ban2gpci), "%s", playerserial); format(Ban2ip, sizeof(Ban2ip), "%s", ip); NextBan = 3; return 1; } if(NextBan == 3) { format(Ban3Name, sizeof(Ban3Name), "%s", PlayerOOCName(playerid)); format(Ban3gpci, sizeof(Ban3gpci), "%s", playerserial); format(Ban3ip, sizeof(Ban3ip), "%s", ip); NextBan = 4; return 1; } if(NextBan == 4) { format(Ban4Name, sizeof(Ban4Name), "%s", PlayerOOCName(playerid)); format(Ban4gpci, sizeof(Ban4gpci), "%s", playerserial); format(Ban4ip, sizeof(Ban4ip), "%s", ip); NextBan = 5; return 1; } if(NextBan == 5) { format(Ban5Name, sizeof(Ban5Name), "%s", PlayerOOCName(playerid)); format(Ban5gpci, sizeof(Ban5gpci), "%s", playerserial); format(Ban5ip, sizeof(Ban5ip), "%s", ip); NextBan = 1; return 1; } } } } } } if(lastAnimIndex[playerid] == 1062) { format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (ID %d) has died due to the Climbing Bug.", PlayerICName(playerid), playerid); UpdateWarnings(str); } CapturingTimer[playerid] = 0; PlayerCuffed[playerid] = 0; PlayerCuffedTime[playerid] = 0; PlayerTazed[playerid] = 0; PlayerTazedTime[playerid] = 0; beingDragged[playerid] = false; isDragging[playerid] = false; KillTimer(dragTimer[playerid]); gPlayerUsingLoopingAnim[playerid] = 0; PlayerInfo[playerid][pJammer] = 0; removeJammer(playerid); if(PlayerBlinded[playerid] > 0) { PlayerBlinded[playerid] = 0; } if(PlayerInfo[playerid][pJailnumber] > 0) { UpdateDynamic3DTextLabelText(PNumber3D[playerid], COLOR_WHITE, " "); DestroyDynamic3DTextLabel(PNumber3D[playerid]); } if(Mobile[playerid] != 999) { if(Mobile[playerid] == 911 || Mobile[playerid] == 63971 || Mobile[playerid] == 912 || Mobile[playerid] == 914 || Mobile[playerid] == 916) { Mobile[playerid] = 999; CellTime[playerid] = 0; } else { SendClientMessage(Mobile[playerid], COLOR_GRAD2, "The line just went dead..."); CellTime[Mobile[playerid]] = 0; Mobile[Mobile[playerid]] = 999; Mobile[playerid] = 999; CellTime[playerid] = 0; } if(usePayphone[playerid] > -1) { payPhone[usePayphone[playerid]][inUse] = 0; usePayphone[playerid] = -1; } } if(BombID[playerid] != -1) { TakePlayerWeapon(playerid, 40); PlayerInfo[playerid][pGun12] = 0; DestroyDynamicObjectEx(BombID[playerid]); BombID[playerid] = -1; } if(GuardedBy[playerid] != 999) { PlayerInfo[GuardedBy[playerid]][pAccount] -= (GuardingPrice[playerid] * 2); SetPlayerToTeamColor(playerid); SetPlayerToTeamColor(GuardedBy[playerid]); GuardedBy[playerid] = 999; GuardingPrice[playerid] = 0; } if(hotWireTime[playerid] > 0) { hotWireTime[playerid] = 0; hotWireVeh[playerid] = -1; } if(HasARapidResKit[playerid] == 1) { DestroyDynamicObjectEx(RapidResKit[playerid]); RapidResKit[playerid] = 0; HasARapidResKit[playerid] = 0; RapidResKitActive[playerid] = 0; } if(PlayerInfo[playerid][pMember] == 1 /*SAPD*/ || PlayerInfo[playerid][pMember] == 2 /*FBI | DEA*/ || PlayerInfo[playerid][pMember] == 4 /*FMD*/ || PlayerInfo[playerid][pMember] == 5/*DoC*/ || PlayerInfo[playerid][pMember] == FACTION_SANG) { if(backupType[playerid] == 1) //SAPD { format(str, sizeof(str), "DISPATCH: %s %s %s has cancelled their police backup request ((Died)).", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerOOCName(playerid)); SendRadioMessage(1, TEAM_BLUE_COLOR, str); backupType[playerid] = 0; foreach( new i: Player ) { //if(IsPlayerConnected(i)) // Foreach type "Player" contains the IDS of players that are connected. So this is redundant. // //{ if(PlayerInfo[i][pMember] == 1) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_WHITE); SetPlayerToTeamColor(playerid); } //} } } else if(backupType[playerid] == 2) //FBI | DEA { format(str, sizeof(str), "DISPATCH: %s %s %s has cancelled their FBI backup request ((Died)).", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerOOCName(playerid)); SendRadioMessage(2, TEAM_BLUE_COLOR, str); backupType[playerid] = 0; foreach( new i: Player ) { //if(IsPlayerConnected(i)) // Foreach type "Player" contains the IDS of players that are connected. So this is redundant. // // if(PlayerInfo[i][pMember] == 2) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_WHITE); SetPlayerToTeamColor(playerid); } //} } } else if(backupType[playerid] == 2) //SASD { format(str, sizeof(str), "DISPATCH: %s %s %s has cancelled their SASD backup request ((Died)).", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerOOCName(playerid)); SendRadioMessage(3, TEAM_BLUE_COLOR, str); backupType[playerid] = 0; foreach( new i: Player ) { //if(IsPlayerConnected(i)) // Foreach type "Player" contains the IDS of players that are connected. So this is redundant. // //{ if(PlayerInfo[i][pMember] == 3) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_WHITE); SetPlayerToTeamColor(playerid); } //} } } else if(backupType[playerid] == 4) //FMD { format(str, sizeof(str), "DISPATCH: %s %s %s has cancelled their medical backup request ((Died)).", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerOOCName(playerid)); SendRadioMessage(4, TEAM_BLUE_COLOR, str); backupType[playerid] = 0; foreach( new i: Player ) { //if(IsPlayerConnected(i)) // Foreach type "Player" contains the IDS of players that are connected. So this is redundant. // //{ if(PlayerInfo[i][pMember] == 4) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_WHITE); SetPlayerToTeamColor(playerid); } //} } } else if(backupType[playerid] == 5) //DoC { format(str, sizeof(str), "DISPATCH: %s %s %s has cancelled their DoC backup request ((Died)).", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerOOCName(playerid)); SendRadioMessage(5, TEAM_BLUE_COLOR, str); backupType[playerid] = 0; foreach( new i: Player ) { //if(IsPlayerConnected(i)) // Foreach type "Player" contains the IDS of players that are connected. So this is redundant. // //{ if(PlayerInfo[i][pMember] == 5) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_WHITE); SetPlayerToTeamColor(playerid); } //} } } else if(backupType[playerid] == FACTION_SANG) // SANG { format(str, sizeof(str), "DISPATCH: %s %s %s has cancelled their AFSA backup request ((Died)).", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerOOCName(playerid)); SendRadioMessage(FACTION_SANG, COLOR_SANG, str); backupType[playerid] = 0; foreach( new i: Player ) { if(PlayerInfo[i][pMember] == FACTION_SANG) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_WHITE); SetPlayerToTeamColor(playerid); } } } else if(backupType[playerid] == 666) // S9 { format(str, sizeof(str), "DISPATCH: %s %s has cancelled their S9 backup request ((Died)).", RealS9Rank(playerid), PlayerOOCName(playerid)); SendRadioMessage(5, COLOR_S9, str); backupType[playerid] = 0; foreach( new i: Player ) { //if(IsPlayerConnected(i)) // Foreach type "Player" contains the IDS of players that are connected. So this is redundant. // //{ if(PlayerInfo[i][pGroup] == GROUP_S9) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_WHITE); SetPlayerToTeamColor(playerid); } //} } } } for(new i = 0; i < 12; i++) { saveWeapon[playerid][i] = PlayerInfo[playerid][(pGun0 + pInfo:i)]; } //in an event if(IsAtEvent[playerid] == 1) { return 1; } //in jail if(PlayerInfo[playerid][pJailed]) { return 1; } //in paintball if(inPaintball[playerid]) { PaintballDieTimer[playerid] = 1; SetTimerEx("Timer_PaintballDie", 5 * 1000, 0, "i", playerid); if(killerid != INVALID_PLAYER_ID/*playerid*/) { new wepName[24]; GetWeaponName(reason, wepName, 24); format(str, sizeof(str), "{FF0000}[PAINTBALL] %s has killed %s. [%s]", PlayerICName(killerid), PlayerICName(playerid), wepName); SendPaintballMessage(playerid, -1, str); pbKills[killerid]++; UpdatePaintBallLeader(inPaintball[playerid]); } return 1; } if(killerid != INVALID_PLAYER_ID) { if(PlayerInfo[playerid][pHeadValue] > 0) { if(GoChase[killerid] == playerid) { new witness = 0, Float:X, Float:Y, Float:Z, weapname[24]; GetWeaponName(reason, weapname, 24); GetPlayerPos(killerid, X, Y, Z); foreach( new i: Player )if(IsPlayerInRangeOfPoint(i, 10.0, X, Y, Z))if(i != playerid && i != killerid)witness ++; if(witness == 1) { if(reason == 0) format(str, sizeof(str), "Hitman %s has successfully assassinated %s with their hands and collected $%d, %d witness.", PlayerICName(killerid), PlayerICName(playerid), PlayerInfo[playerid][pHeadValue] /2, witness); else format(str, sizeof(str), "Hitman %s has successfully assassinated %s with a %s and collected $%d, %d witness.", PlayerICName(killerid), PlayerICName(playerid), weapname, PlayerInfo[playerid][pHeadValue] /2, witness); } else format(str, sizeof(str), "Hitman %s has successfully assassinated %s with a %s and collected $%d, %d witnesses.", PlayerICName(killerid), PlayerICName(playerid), weapname, PlayerInfo[playerid][pHeadValue] /2, witness); foreach( new i: Player ) { if(PlayerInfo[i][pGroup] == GROUP_HITMAN) { SendClientMessage(i, COLOR_YELLOW, str); } } format(str, sizeof(str), "You were killed by a hitman and have lost $%d.", PlayerInfo[playerid][pHeadValue] /2); SendClientMessage(playerid, COLOR_YELLOW, str); PlayerInfo[playerid][pCash] -= PlayerInfo[playerid][pHeadValue] /2; PlayerInfo[killerid][pCash] += PlayerInfo[playerid][pHeadValue] /2; PlayerInfo[playerid][pHeadValue] = 0; PlayerInfo[killerid][pCHits]++; if(IsPlayerConnected(GetPlayerIDFromName(PlayerInfo[playerid][pContractBy]))) { format(str, sizeof(str), "SMS: %s has been taken care of, Sender: Unknown", PlayerOOCName(playerid)); SendClientMessage(GetPlayerIDFromName(PlayerInfo[playerid][pContractBy]), COLOR_YELLOW, str); } playLocalSound(PlayerInfo[playerid][pContractBy], SMS_RECIEVED, 2.0, 0); format(PlayerInfo[playerid][pContractBy], 24, "Nobody"); GoChase[killerid] = 999; } } if(GoChase[playerid] == killerid) { format(str, sizeof(str), "Hitman %s has failed the contract on %s and lost $%d.", PlayerICName(playerid), PlayerICName(killerid), PlayerInfo[killerid][pHeadValue] /2); foreach(new i: Player ) { if(PlayerInfo[i][pGroup] == GROUP_HITMAN) { SendClientMessage(i, COLOR_YELLOW, str); } } format(str, sizeof(str), "You have killed a hitman and gained $%d, the contract on your head has been removed.", PlayerInfo[killerid][pHeadValue] /2); SendClientMessage(killerid, COLOR_YELLOW, str); PlayerInfo[killerid][pCash] += PlayerInfo[killerid][pHeadValue] /2; PlayerInfo[playerid][pCash] -= PlayerInfo[killerid][pHeadValue] /2; PlayerInfo[killerid][pHeadValue] = 0; PlayerInfo[playerid][pFHits] ++; format(PlayerInfo[killerid][pContractBy], 24, "Nobody"); GoChase[playerid] = 999; } if(pDeathState[playerid] == PLAYER_STATE_NORMAL) //first time dying { pDeathState[playerid] = PLAYER_STATE_REVIVE; DeathPos[playerid][DeathHP] = 100; PlayerInfo[killerid][pKills] ++; PlayerInfo[playerid][pDeaths] ++; PlayerCalledEMS[playerid] = 0; SetPlayerWeapons(playerid); } else //died while in revive { SaveDeath(playerid, killerid); pDeathState[playerid] = PLAYER_STATE_INHOSP; PlayerCalledEMS[playerid] = 0; TextDrawHideForPlayer(playerid, DieText); TextDrawHideForPlayer(playerid, InjuredText); new deathstr[300]; for(new i = 0; i <= 12; i++) { new weaponname[34]; if(lastpguns[playerid][i][0] == 0) continue; GetWeaponName(lastpguns[playerid][i][0], weaponname, sizeof(weaponname)); format(deathstr, sizeof(deathstr), "%s%s\n", deathstr, weaponname); } ShowPlayerDialog(playerid, DIALOG_LASTGUNS, DIALOG_STYLE_LIST, "Last Weapons", deathstr, "Okay", ""); // Remove weapons ResetPlayerWeapons(playerid); ClearGuns(playerid); ResetPlayerAdminWeaponsEx(playerid); // Remove lock pick kit PlayerInfo[playerid][pHasLockPick] = 0; // Remove portable MDC PlayerInfo[playerid][pPortMDC] = 0; PlayerInfo[playerid][pDrill] = 0; } } else { if(pDeathState[playerid] == PLAYER_STATE_NORMAL) //first time dying { pDeathState[playerid] = PLAYER_STATE_REVIVE; DeathPos[playerid][DeathHP] = 100; PlayerCalledEMS[playerid] = 0; SetPlayerWeapons(playerid); } else //died while in revive { SaveDeath(playerid, killerid); pDeathState[playerid] = PLAYER_STATE_INHOSP; PlayerCalledEMS[playerid] = 0; TextDrawHideForPlayer(playerid, DieText); TextDrawHideForPlayer(playerid, InjuredText); //remove weapons ResetPlayerWeapons(playerid); ClearGuns(playerid); ResetPlayerAdminWeaponsEx(playerid); PlayerInfo[playerid][pDrill] = 0; } } return 1; } stock VehicleHasWindows(vehicleid) { new modelid = GetVehicleModel(vehicleid); switch(modelid) { case 425: return false; case 441: return false; case 447: return false; case 448: return false; case 449: return false; case 450: return false; case 452: return false; case 453: return false; case 454: return false; case 457: return false; case 460: return false; case 461: return false; case 462: return false; case 463: return false; case 464: return false; case 465: return false; case 468: return false; case 469: return false; case 471: return false; case 472: return false; case 473: return false; case 476: return false; case 481: return false; case 484: return false; case 485: return false; case 486: return false; case 493: return false; case 501: return false; case 509: return false; case 510: return false; case 519: return false; case 520: return false; case 521: return false; case 522: return false; case 523: return false; case 530: return false; case 531: return false; case 532: return false; case 537: return false; case 538: return false; case 539: return false; case 548: return false; case 553: return false; case 563: return false; case 564: return false; case 568: return false; case 569: return false; case 570: return false; case 571: return false; case 572: return false; case 577: return false; case 581: return false; case 586: return false; case 592: return false; case 593: return false; case 594: return false; case 595: return false; } return true; } stock CheckEventStatus(playerid) { if(IsAtEvent[playerid] == 1) return 1; return 0; } //============================================================================== forward passNow(playerid); public passNow(playerid) return hasPassed[playerid] = false; public OnPlayerStreamIn(playerid, forplayerid) { if(PlayerInfo[playerid][pMask] > 0) ShowPlayerNameTagForPlayer(forplayerid, playerid, 0); return 1; } /*public OnPlayerStreamOut(playerid, forplayerid) -- possible gps fix? { if(GPSOn[playerid] && GPSOn[forplayerid] && PlayerInfo[playerid][pMember] == PlayerInfo[forplayerid][pMember]) { ToggleGPS(playerid); ToggleGPS(playerid); ToggleGPS(forplayerid); ToggleGPS(forplayerid); } return 1; }*/ //============================================================================== public OnPlayerSpawn(playerid) { SetPlayerColor(playerid, TCOLOR_WHITE); // (should) fix the grey name issue if(gPlayerLogged[playerid] == 0) { SendClientMessage(playerid, COLOR_LIGHTRED, "This server requires you to login before spawn, you have been kicked."); KickEx(playerid); return 1; } /*if(PlayerInfo[playerid][pConnectTime] > 39 && PlayerInfo[playerid][pImportant] == 0) { new query[500]; new str[500]; new Year, Month, Day; getdate(Year, Month, Day); PlayerInfo[playerid][pDonateRank] = 4; PlayerInfo[playerid][pTag] = NTAG_DVIP; PlayerInfo[playerid][pImportant] = 1; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Important` = 1 WHERE `Name`='%e'",PlayerName(playerid)); mysql_pquery(sqlGameConnection, query); format(str, 32, "%02d/%02d/%d", Month, Day, Year); strmid(PlayerInfo[playerid][pVIPJoinDate], str, 0, strlen(str), 255); format(str, 32, "%02d/%02d/%d", Month +1, Day, Year); strmid(PlayerInfo[playerid][pVIPExpDate], str, 0, strlen(str), 255); if(Month == 12) { format(PlayerInfo[playerid][pVIPExpDate], 32, "%02d/%02d/%d", 1, Day, Year +1); } format(str, sizeof(str), "Join Date: %s, Expire Date: %s", PlayerInfo[playerid][pVIPJoinDate], PlayerInfo[playerid][pVIPExpDate]); SendClientMessage(playerid, COLOR_GRAD2, str); SendClientMessage(playerid, COLOR_LIGHTBLUE, "You've been awarded as a Platinum VIP for being loyal and active player [>= 40 playing hours]"); }*/ if(!PlayerInfo[playerid][pAdmin]) { PlayerInfo[playerid][pStealthed] = 0; PlayerInfo[playerid][pBanAppealer] = 0; PlayerInfo[playerid][pGangModd] = 0; PlayerInfo[playerid][pEventModd] = 0; PlayerInfo[playerid][pComplaintModd] = 0; PlayerInfo[playerid][pShopMod] = 0; PlayerInfo[playerid][pFactionMod] = 0; PlayerInfo[playerid][pFactionDirector] = 0; PlayerInfo[playerid][pGangDirector] = 0; PlayerInfo[playerid][pBizMod] = 0; } //set players money to their pCash ResetPlayerMoney(playerid); GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]); if(!firstSpawned[playerid]) //if the player has joined the server for the first time { //set weapon skill levels SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 0); SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, 1); SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, 1); SetPlayerSkillLevel(playerid, WEAPONSKILL_SNIPERRIFLE, 1); displayMapIcons(playerid); hideCinematicTextDraw(playerid); hideAdvertismentTextDraw(playerid); HideLoginTextDraw(playerid); //PreloadAnims(playerid); //needed to sync animations SetPlayerFightingStyle(playerid, PlayerInfo[playerid][pFightingStyle]); firstSpawned[playerid] = 1; gPlayerSpawned[playerid] = 1; new houseid = PlayerInfo[playerid][pHouseID]; if(houseid != 0) { DestroyDynamicPickup(HouseInfo[houseid][hOutsidePickup]); HouseInfo[houseid][hOutsidePickup] = CreateDynamicPickup(HOUSE_ONLINE, 1, HouseInfo[houseid][hOutsideX], HouseInfo[houseid][hOutsideY], HouseInfo[houseid][hOutsideZ]); } TextDrawHideForPlayer(playerid, motd); } //everything outside gets called when a player _RE_spawns if(PlayerInfo[playerid][pClothes] != 0) //set the players skin { SetPlayerSkin(playerid, PlayerInfo[playerid][pClothes]); } else { SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); } #if DEVMODE == 1 //make developer executive if local test server if(PlayerInfo[playerid][pAdmin] < 99999) { new localIP[16]; // Can /kill ig to re-give yourself admin etc for testing GetPlayerIp(playerid, localIP, sizeof(localIP)); if(!strcmp(localIP, "127.0.0.1")) { /*PlayerInfo[playerid][pAdmin] = 999999; PlayerInfo[playerid][pSecKey] = 1234; gAdminAuthorized[playerid] = 1;*/ new str[128]; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has connected locally - they have been given Executive admin automatically.", PlayerICName(playerid)); ABroadCast(COLOR_WHITE, str, 1); } } #endif SetPlayerWeapons(playerid); SetPlayerSpawn(playerid); deathByCombine[playerid] = 0; return 1; } //============================================================================== public PayLog(string2[]) { new query[512]; mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `paylog` (`Date`, `Info`) VALUES(NOW(), '%e')", string2); mysql_pquery(sqlGameConnection, query); return 1; } //============================================================================== public StatLog(string2[]) { new entry[128]; printf(string2); // since execs can't check scriptfiles folder for stat.log format(entry, sizeof(entry), "%s\n", string2); new File:hFile; hFile = fopen("stat.log", io_append); if(hFile) { fwrite(hFile, entry); fclose(hFile); } else { printf("[error] Failed to find stat.log"); } } //============================================================================== public KickLog(string2[]) { new entry[128]; format(entry, sizeof(entry), "%s\n", string2); new File:hFile; hFile = fopen("kick.log", io_append); if(hFile) { fwrite(hFile, entry); fclose(hFile); } else { printf("[error] Failed to find kick.log"); } } //============================================================================== public BanLog(string2[]) { new entry[128]; format(entry, sizeof(entry), "%s\n", string2); new File:hFile; hFile = fopen("ban.log", io_append); if(hFile) { fwrite(hFile, entry); fclose(hFile); } else { printf("[error] Failed to find ban.log"); } } //============================================================================== public OnPlayerEnterCheckpoint(playerid) { new str[128]; //if( JobCheckpoints( playerid ) == 1 ) return 1; if(goingJob[playerid] == true) { SendClientMessage(playerid, COLOR_GREY, "{FF0000}[Map]{FFFFFF} You have arrived at the position."); DisablePlayerCheckpointEx(playerid); goingJob[playerid] = false; } if(isRepairing[playerid] == true) { OnEnterRepairCheckpoint(playerid); return 1; } if(isAddingNos[playerid]){ OnEnterNosCheckpoint(playerid); return 1; } if(CP[playerid] == CHECKPOINT_ADDRESS) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_DMV){ CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_CAR_ALARM) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_DCARS) { if(IsPlayerInRangeOfPoint(playerid, 5.0, 1113.95, -1884.83, 13.04)) { DisablePlayerCheckpointEx(playerid); } return 1; } if(CP[playerid] == CHECKPOINT_TIKISTORE) { if(!IsPlayerInRangeOfPoint(playerid, 5.0, 2353.1772, -1463.4822, 24.0000)) return 1; DisablePlayerCheckpointEx(playerid); SetPlayerInterior(playerid, 6); PlayerInfo[playerid][pInt] = 6; SetPlayerPos(playerid, -2240.4736,137.1805,1035.4141); displayCenterHUDInfo(playerid, "~b~Tiki store", 8); SetPlayerFacingAngle(playerid, 267.2031); SetCameraBehindPlayer(playerid); CP[playerid] = CHECKPOINT_NONE; return 1; } if(CP[playerid] == CHECKPOINT_CLUB) { if(!IsPlayerInRangeOfPoint(playerid, 5.0, 1281.9542, -1261.9480, 13.6107)) return 1; DisablePlayerCheckpointEx(playerid); CP[playerid] = CHECKPOINT_NONE; return 1; } if(CP[playerid] == CHECKPOINT_DROPCAR) { if(!IsPlayerInRangeOfPoint(playerid, 10.0, 2696.0520, -2225.8101, 13.2554)) return 1; if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { PlayerInfo[playerid][pJackSkill] ++; if(PlayerInfo[playerid][pJackSkill] == 50) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Car Jack Skill is now Level 2, you will now earn more Money and have a quicker Reload Time."); } else if(PlayerInfo[playerid][pJackSkill] == 100) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Car Jack Skill is now Level 3, you will now earn more Money and have a quicker Reload Time."); } else if(PlayerInfo[playerid][pJackSkill] == 200) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Car Jack Skill is now Level 4, you will now earn more Money and have a quicker Reload Time."); } else if(PlayerInfo[playerid][pJackSkill] == 400) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Car Jack Skill is now Level 5, you will now earn more Money and have a quicker Reload Time."); } new level = PlayerInfo[playerid][pJackSkill]; if(level >= 0 && level <= 49) { new rand = random(sizeof(SELLCAR1)); format(str, sizeof(str), "* You sold a car for $%d, your reload time is 20 minutes.", SELLCAR1[rand]); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); GiveMoney(playerid, SELLCAR1[rand]); PlayerInfo[playerid][pCarTime] = 1200; format(str, sizeof(str), "~w~Car sold for~n~~g~$%d!", SELLCAR1[rand]); displayCenterHUDInfo(playerid, str, 8); } else if(level >= 50 && level <= 99) { new rand = random(sizeof(SELLCAR2)); format(str, sizeof(str), "* You sold a car for $%d, your reload time is 18 minutes.", SELLCAR2[rand]); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); GiveMoney(playerid, SELLCAR2[rand]); PlayerInfo[playerid][pCarTime] = 1080; format(str, sizeof(str), "~w~Car sold for~n~~g~$%d!", SELLCAR2[rand]); displayCenterHUDInfo(playerid, str, 8); } else if(level >= 100 && level <= 199) { new rand = random(sizeof(SELLCAR3)); format(str, sizeof(str), "* You sold a car for $%d, your reload time is 16 minutes.", SELLCAR3[rand]); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); GiveMoney(playerid, SELLCAR3[rand]); PlayerInfo[playerid][pCarTime] = 960; format(str, sizeof(str), "~w~Car sold for~n~~g~$%d!", SELLCAR3[rand]); displayCenterHUDInfo(playerid, str, 8); } else if(level >= 200 && level <= 399) { new rand = random(sizeof(SELLCAR4)); format(str, sizeof(str), "* You sold a car for $%d, your reload time is 14 minutes.", SELLCAR4[rand]); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); GiveMoney(playerid, SELLCAR4[rand]); PlayerInfo[playerid][pCarTime] = 840; format(str, sizeof(str), "~w~Car sold for~n~~g~$%d!", SELLCAR4[rand]); displayCenterHUDInfo(playerid, str, 8); } else if(level >= 400) { new money = 6000; format(str, sizeof(str), "* You sold a car for $%d, your reload time is 12 minutes.", money); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); GiveMoney(playerid, money); PlayerInfo[playerid][pCarTime] = 720; format(str, sizeof(str), "~w~Car sold for~n~~g~$%d!", money); displayCenterHUDInfo(playerid, str, 8); } CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); SetVehicleToRespawn(GetPlayerVehicleID(playerid)); return 1; } else { SendClientMessage(playerid, COLOR_GREY, "You are not driving a vehicle!"); return 1; } } if(CP[playerid] == CHECKPOINT_MATERIALS_1) { if(!IsPlayerInRangeOfPoint(playerid, 5.0, 2172.1880, -2263.9683, 13.3363)) return 1; if(Packages[playerid] > 0) { if(GotMats[playerid] >= 1) { format(str, sizeof(str), "Teleport: [%d]%s is potentially Teleport Matrunning.", playerid, PlayerOOCName(playerid)); UpdateWarnings(str); return 1; } if(PlayerInfo[playerid][pDonateRank] == 1) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 280(Bronze VIP) Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += 280; } else if(PlayerInfo[playerid][pDonateRank] == 2) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 310(Silver VIP) Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += 310; } else if(PlayerInfo[playerid][pDonateRank] == 3) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 350(Gold VIP) Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += 350; } else if(PlayerInfo[playerid][pDonateRank] == 4) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 650(Platinum VIP) Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += 650; } else { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 250 Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += matpayout; } Packages[playerid] = 0; CP[playerid] = CHECKPOINT_NONE; GotMats[playerid] = 0; DisablePlayerCheckpointEx(playerid); return 1; } else { SendClientMessage(playerid, COLOR_GREY, "You are not carrying any Materials Packages."); return 1; } } if(CP[playerid] == CHECKPOINT_MATERIALS_2) { if(!IsPlayerInRangeOfPoint(playerid, 5.0, 2288.1233,-1104.7793,38.4565)) return 1; if(Packages[playerid] > 0) { if(GotMats[playerid] >= 1) { format(str, sizeof(str), "Teleport: [%d]%s is potentially Teleport Matrunning.", playerid, PlayerOOCName(playerid)); UpdateWarnings(str); return 1; } if(PlayerInfo[playerid][pDonateRank] == 0) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 250 Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += matpayout; } else if(PlayerInfo[playerid][pDonateRank] == 1) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 280(Bronze VIP) Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += 280; } else if(PlayerInfo[playerid][pDonateRank] == 2) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 310(Silver VIP) Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += 310; } else if(PlayerInfo[playerid][pDonateRank] == 3) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 350(Gold VIP) Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += 350; } else if(PlayerInfo[playerid][pDonateRank] == 4) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 650(Platinum VIP) Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += 650; } else { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The Factory gave you 250 Materials for your 10 Materials Packages."); PlayerInfo[playerid][pMats] += matpayout; } Packages[playerid] = 0; CP[playerid] = CHECKPOINT_NONE; GotMats[playerid] = 0; DisablePlayerCheckpointEx(playerid); return 1; } else { SendClientMessage(playerid, COLOR_GREY, "You are not carrying any Materials Packages."); return 1; } } if(CP[playerid] == CHECKPOINT_POINTTIME) { displayCenterHUDInfo(playerid, "~w~Type ~r~/capture~n~~w~ to capture the point.", 8); CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_UNLOADDRUGS) { if(DrugsLoaded[playerid] > 0) { if(IsPlayerInAnyVehicle(playerid)) { RemovePlayerFromVehicle(playerid); SetPlayerAttachedObject(playerid, INDEX_8, 2969, 6, 0.031000, 0.056999, -0.185000, 250.000000, 0, 80.399986, 1, 1, 1); //index 2, bone 6 (right hand) SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerArmedWeapon(playerid, 0); // disables weapons Crates[playerid] = 1; DrugsLoaded[playerid] = 0; SetPlayerCheckpointEx(playerid, 2351.9668, -1169.9220, 28.0385, 2); CP[playerid] = CHECKPOINT_DRUGSPAYOUT; SendClientMessage(playerid, COLOR_LIGHTBLUE, "Drugs crate unloaded, proceed with the delivery."); return 1; } else { SetPlayerAttachedObject(playerid, INDEX_8, 2969, 6, 0.031000, 0.056999, -0.185000, 250.000000, 0, 80.399986, 1, 1, 1); //index 2, bone 6 (right hand) SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerArmedWeapon(playerid, 0); // disables weapons Crates[playerid] = 1; DrugsLoaded[playerid] = 0; SetPlayerCheckpointEx(playerid, 2351.9668, -1169.9220, 28.0385, 2); CP[playerid] = CHECKPOINT_DRUGSPAYOUT; SendClientMessage(playerid, COLOR_LIGHTBLUE, "Drugs crate unloaded, proceed with the delivery."); return 1; } } } if(CP[playerid] == CHECKPOINT_DRUGSPAYOUT) { if(!IsPlayerInRangeOfPoint(playerid, 5.0, 2351.9668, -1169.9220, 28.0385)) return 1; if(GotDrugs[playerid] >= 1) { format(str, sizeof(str), "Teleport: [%d]%s is potentially Teleport Drugrunning.", playerid, PlayerOOCName(playerid)); UpdateWarnings(str); return 1; } if(Crates[playerid] > 0) { RemovePlayerAttachedObject(playerid, INDEX_8); new level = PlayerInfo[playerid][pSmugglerSkill]; new crackpayout; if(level >= 0 && level <= 19) { crackpayout = 2250; } else if(level >= 20 && level <= 39) { crackpayout = 2900; } else if(level >= 40 && level <= 59) { crackpayout = 3550; } else if(level >= 60 && level <= 119) { crackpayout = 4500; } else if(level >= 120) { crackpayout = 5000; } format(str, sizeof(str), "* You received $%d for delivering the Drug Crates.", crackpayout); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); GiveMoney(playerid, crackpayout); Crates[playerid] = 0; CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); PlayerInfo[playerid][pSmugglerSkill] ++; dhstock += 10; if(PlayerInfo[playerid][pSmugglerSkill] == 20) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Drug Smuggler Skill is now Level 2, you will now earn more Money smuggling Drugs."); } else if(PlayerInfo[playerid][pSmugglerSkill] == 40) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Drug Smuggler Skill is now Level 3, you will now earn more Money smuggling Drugs."); } else if(PlayerInfo[playerid][pSmugglerSkill] == 60) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Drug Smuggler Skill is now Level 4, you will now earn more Money smuggling Drugs."); } else if(PlayerInfo[playerid][pSmugglerSkill] == 120) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Drug Smuggler Skill is now Level 5, you will now earn more Money smuggling Drugs."); } return 1; } else { SendClientMessage(playerid, COLOR_GREY, "You are not carrying any Drug Crates."); return 1; } } if(CP[playerid] == CHECKPOINT_CAR_TRACK) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_CAR_DUMP) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_SHOWDEALERSHIP) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_DRUGFACTORY) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_BUYPRODUCTS) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_HITMANHQ) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_INJURED) { EMSArrived[PlayerVictim[playerid]] = 1; displayCenterHUDInfo(PlayerVictim[playerid], "~r~EMS~w~ Arrived...", 8); //display for 8 seconds CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } if(CP[playerid] == CHECKPOINT_TAXI_CALLER) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); return 1; } //garbage job if(CP[playerid] == CHECKPOINT_GARBAGE) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); //put down trash ApplyAnimationEx(playerid, "CARRY", "putdwn105", 4.0, 0, 0, 0, 0, 0, 0); //update capacity new slot = hasTruckCheckpoint[playerid]; //printf("updating garbage truck slot: %d", slot); GarbageTruck[slot][capacity]++; format(str, sizeof(str), "Capacity: %d/100", GarbageTruck[slot][capacity]); Update3DTextLabelText(GarbageTruck[slot][capacityLabelID], 0x33CCFFFF, str); //printf("garbage truck slot capacity is now: %d", GarbageTruck[slot][capacity]); //reset variables hasTruckCheckpoint[playerid] = -1; if(IsPlayerAttachedObjectSlotUsed(playerid, INDEX_8)) { RemovePlayerAttachedObject(playerid, INDEX_8); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); } //do the skill crap PlayerInfo[playerid][pWasteSkill]++; if(PlayerInfo[playerid][pWasteSkill] == 50) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Waste Collector Skill is now Level 2, you will now receive 5 percent more money when delivering trash."); } else if(PlayerInfo[playerid][pWasteSkill] == 100) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Waste Collector Skill is now Level 3, you will now receive 5 percent more money when delivering trash."); } else if(PlayerInfo[playerid][pWasteSkill] == 200) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Waste Collector Skill is now Level 4, you will now receive 5 percent more money when delivering trash."); } else if(PlayerInfo[playerid][pWasteSkill] == 400) { SendClientMessage(playerid, COLOR_YELLOW, "* Your Waste Collector Skill is now Level 5, you will now receive 5 percent more money when delivering trash."); } return 1; } if(CP[playerid] == CHECKPOINT_SANCAMERA) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); } return 1; } Hook:d_OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart) { new str[128]; new Float:hp, Float:arm, bool:userArmor; GetPlayerArmour(damagedid, arm); GetPlayerHealth(damagedid, hp); if(hoskperm[playerid]) { if(PlayerInfo[playerid][pGroup] == GROUP_HITMAN) { if(weaponid == 34) { SendClientMessage(damagedid, COLOR_YELLOW, "You have been one-shot-killed."); SetPlayerHealth(damagedid, 0.0); hoskperm[playerid] = false; SendClientMessage(playerid, COLOR_YELLOW, "Your one-shot-kill permission has automatically been revoked."); } } if(PlayerInfo[playerid][pGroup] == GROUP_S9) { if(weaponid == 23) { SendClientMessage(damagedid, COLOR_YELLOW, "You have been one-shot-killed."); SetPlayerHealth(damagedid, 0.0); } } } //rubber bullets (Country Rifle) if(weaponid == 33) { if(hasRubberBullets[playerid] && loadedRubberBullets[playerid]) { new Float:x, Float:y, Float:z; GetPlayerPos(damagedid, x, y, z); if(IsPlayerInRangeOfPoint(playerid, 50.0, x, y, z) && GetDistanceBetweenPlayers(playerid, damagedid) > 3.0) { if(IsPlayerInAnyVehicle(damagedid)) return SendClientMessage(playerid, COLOR_GREY, "Your rubber bullets won't harm the player whilst they are inside of a vehicle."); if(PlayerTazed[damagedid] > 0) return SendClientMessage(playerid, COLOR_GREY, "That player is already either tazed, or hit by a rubber bullet."); format(str, sizeof(str), "* You hit %s with your rubber bullet.", PlayerICName(damagedid)); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "* %s shoots a rubber bullet at %s, knocking them to the floor.", PlayerICName(playerid), PlayerICName(damagedid)); ProxDetector(30.0, damagedid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); displayCenterHUDInfo(damagedid, "~r~Rubber Bullet Damage Taken.", 8); //display for 8 seconds setPlayerRubber(damagedid); SetTimerEx("Timer_TazerTimer", 5000, false, "i", playerid); TazerTime[playerid] = 1; if(userArmor)SetPlayerArmour(damagedid, arm -3); else SetPlayerHealth(damagedid, hp -3); } } } //sd tazer if(weaponid == 23) { if(playerHoldingTazer[playerid] == 1) { if(TazerTime[playerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "Please wait while your tazer recharges."); if(PlayerInfo[damagedid][pAdmin] >= 2 && PlayerInfo[playerid][pStealthed] != 1) return SendClientMessage(playerid, COLOR_GREY, "You aren't able to taze an admin."); new Float:x, Float:y, Float:z; GetPlayerPos(damagedid, x, y, z); if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) //if i am in range of the person { if(IsPlayerNPC(damagedid)) return SendClientMessage(playerid, COLOR_WHITE, "You can not taze a NPC!"); if(IsPlayerInAnyVehicle(damagedid)) return SendClientMessage(playerid, COLOR_GREY, "Suspect is in a car, get them out first."); if(PlayerTazed[damagedid] > 0) return SendClientMessage(playerid, COLOR_GREY, "Suspect already tazed."); format(str, sizeof(str), "* You tazed %s for 12 seconds.", PlayerICName(damagedid)); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "* %s shoots with his tazer at %s, and tazed him.", PlayerICName(playerid), PlayerICName(damagedid)); ProxDetector(30.0, damagedid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); displayCenterHUDInfo(damagedid, "~r~Tazed.", 8); //display for 8 seconds setPlayerTazed(damagedid); SetTimerEx("Timer_TazerTimer", 8000, false, "i", playerid); TazerTime[playerid] = 1; if(userArmor) SetPlayerArmour(damagedid, arm); else SetPlayerHealth(damagedid, hp); } } } return 1; } new dgunName[24]; HOOK:d_OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart) { // new str[128]; if(issuerid == INVALID_PLAYER_ID) return 1; // Armour Hacking new Float:armour; GetPlayerArmour(playerid, armour); // Client side armour if(armour < PlayerInfo[playerid][pArmor]) PlayerInfo[playerid][pArmor] = armour; // keep pArmor updated lastShotByWeaponID[playerid] = weaponid; lastShotByPlayerID[playerid] = issuerid; lastShotBodyPart[playerid] = bodypart; GetWeaponName(weaponid, dgunName, sizeof(dgunName)); format(damagedBy[playerid], MAX_PLAYER_NAME, "%s", PlayerICName(issuerid)); format(damageGun[playerid], 24, "%s", dgunName); gettime(damageHour[playerid], damageMinute[playerid]); damageHour[playerid] = FixHour(damageHour[playerid]); if(pDeathState[playerid] == PLAYER_STATE_REVIVE) { DeathPos[playerid][DeathHP] -= amount; } //droneAttacked(issuerid, playerid); // Newbie got guns, not melee? if(PlayerInfo[issuerid][pAdmin] == 0 && IsAtEvent[issuerid] != 1 && PlayerInfo[issuerid][pConnectTime] < 2) { if(weaponid == 9 || (weaponid >= 16 && weaponid <= 42)) { //format(str, sizeof(str), "{FF0000}AdmWrning:{FFFFFF} %s (Playing Hours: %d) is damaging %s with a %s. Possible weapon hacking.", PlayerOOCName(issuerid), PlayerInfo[issuerid][pConnectTime], PlayerOOCName(playerid), dgunName); //ABroadCast(COLOR_WHITE, str, 1); } } new year, month, day; new str[2048]; getdate(year, month, day); new hour, minute, second; gettime(hour, minute, second); hour = FixHour(hour); format(str, sizeof(str), "%s is damaging %s with %s at %02d %s %02d:%02d:%02d", PlayerOOCName(issuerid), PlayerOOCName(playerid),dgunName, day, GetMonthFromInt(month), hour, minute, second); logswrite("dmg.log", str); return 1; } Timer:UseDrink(playerid) { if(!IsPlayerConnected(playerid)) return 0; if(UseDrinkTimer[playerid]) { UseDrinkTimer[playerid] = 0; } return 1; } //============================================================================== //=== public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { new str[128]; if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER) { if(newkeys & 2) // KEY_CROUCH = VEHICLE_HORN { new gunid = GetPlayerWeapon(playerid); if(gunid) { if(HaveWeapon(playerid, gunid) != gunid) //doesn't have the scripted gun { format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s is drivebying with a fake weapon.", PlayerICName(playerid)); ABroadCast(COLOR_WHITE, str, 1); RemovePlayerFromVehicle(playerid); } } } } if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT){ if(!IsPlayerInAnyVehicle(playerid)){ if(newkeys == KEY_NO){ if(!cmd_enter(playerid, "")) cmd_exit(playerid, ""); } } } //================================== //========[ Faction gates ]========= if(newkeys & KEY_YES) { cmd_gate(playerid, ""); } //================================== if(PlayerInfo[playerid][pHospital]) return 1; //don't check keypress if in hospital if(flyingUsed[playerid]) { if(HOLDING(KEY_SPRINT)) { playerMoveSpeed[playerid] -= 75.0; } else if(HOLDING(KEY_JUMP)) { playerMoveSpeed[playerid] += 75.0; } else if(!HOLDING(KEY_SPRINT) && !HOLDING(KEY_JUMP)) { playerMoveSpeed[playerid] = 100.0; } } // cuffed if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_CUFFED) { if(PlayerCuffed[playerid] != 1) //if player is not floor cuffed { if(PRESSED(KEY_JUMP)) { ApplyAnimationEx(playerid, "GYMNASIUM", "gym_jog_falloff", 4.1, 0, 1, 1, 0, 0, 1); return 1; } if(PRESSED(KEY_FIRE)) { if(GetPlayerAnimationIndex(playerid) != 1130) //not falling { ClearAnimations(playerid, 1); } return 1; } if(newkeys & 144) //RMB? { if(GetPlayerAnimationIndex(playerid) != 1130) //not falling { ClearAnimations(playerid, 1); } return 1; } } return 1; } if(newkeys & KEY_AIM && !IsPlayerInAnyVehicle(playerid) && hasFlashlight[playerid]) { if(hasFlashlight[playerid]) { RemovePlayerAttachedObject(playerid, FLASHLIGHT_SLOT1); RemovePlayerAttachedObject(playerid, FLASHLIGHT_SLOT2); SetPlayerAttachedObject(playerid, FLASHLIGHT_SLOT1, 18656, 6, 0.25, -0.0155, 0.16, 86.5, -185, 86.5, 0.03, 0.03, 0.03); SetPlayerAttachedObject(playerid, FLASHLIGHT_SLOT2, 18641, 6, 0.2, 0.01, 0.16, 90, -95, 90, 1, 1, 1); hasFlashlight[playerid] = true; return 1; } } //on foot if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(PRESSED(KEY_FIRE)) { if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_SPRUNK) { if(UseDrinkTimer[playerid]) return 1; new Float:health; GetPlayerHealth(playerid, health); if(health < 100.0) { if(health +5 > 100.0) { SetPlayerHealth(playerid, 100); } else { SetPlayerHealth(playerid, health +5); } UseDrinkTimer[playerid] = true; SetTimerEx("Timer_UseDrink", 2 *1000, 0, "i", playerid); } return 1; } if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_SMOKE_CIGGY) { ClearAnimations(playerid, 1); ApplyAnimationEx(playerid, "GANGS", "SMKCIG_PRTL", 4.0, 0, 0, 0, 0, 0); return 1; } if(BombID[playerid] != -1) { if(HoldingDetonator[playerid]) { new Float:X, Float:Y, Float:Z; if(BombInCar[playerid] == 1) { GetVehiclePos(BombID[playerid], X, Y, Z); SetVehicleHealth(BombID[playerid], 0); } else { ClearAnimationsEx(playerid); ApplyAnimationEx(playerid, "PED", "bomber", 4.0, 0, 0, 0, 0, 0); GetDynamicObjectPos(BombID[playerid], X, Y, Z); DestroyDynamicObjectEx(BombID[playerid]); } CreateExplosion(X, Y, Z, 6, 0.0); CreateExplosion(X, Y, Z, 2, 0.0); displayCenterHUDInfo(playerid, "~r~Bomb detonated.", 8); //display for 8 seconds BombID[playerid] = -1; TakePlayerWeapon(playerid, 40); SetPlayerWeapons(playerid); new killerid = GoChase[playerid]; if(killerid != 999) { if(IsPlayerInRangeOfPoint(killerid, 10, X, Y, Z)) { if(GoChase[playerid] == killerid) { if(PlayerInfo[killerid][pHeadValue] > 0) { new price = PlayerInfo[killerid][pHeadValue]; new name[MAX_PLAYER_NAME]; new killa[MAX_PLAYER_NAME]; GetPlayerICName(playerid, name, sizeof(name)); GetPlayerICName(killerid, killa, sizeof(killa)); GiveMoney(killerid, -price /2); GiveMoney(playerid, price /2); new witness; GetPlayerPos(playerid, X, Y, Z); foreach( new i: Player ) { if(IsPlayerInRangeOfPoint(i, 10.0, X, Y, Z)) { if(i != playerid && i != killerid) { witness ++; } } } format(str, 128, "Hitman %s has successfully assassinated %s with a C4 and collected $%d, %d witnesses.", name, killa, price /2, witness); foreach(new i: Player ) { if(PlayerInfo[i][pGroup] == GROUP_HITMAN) { SendClientMessage(i, COLOR_YELLOW, str); } } format(str, 128, "You have been critically injured by a hitman and lost $%d.", price /2); SendClientMessage(killerid, COLOR_YELLOW, str); gotBombed[killerid] = 1; SetPlayerHealth(killerid, 0); ClearContract(killerid); GoChase[playerid] = 999; PlayerInfo[playerid][pCHits]++; } } } } } } } if((newkeys & KEY_SPRINT) && !(oldkeys & KEY_SPRINT)) { if(isbreakingcuffs[playerid] != false) { if(GetPlayerProgressBarValue(playerid, breakcuffs[playerid]) < 100) { SetPlayerProgressBarValue(playerid, breakcuffs[playerid], GetPlayerProgressBarValue(playerid, breakcuffs[playerid])+0.25); SetPlayerProgressBarValue(breakingpcuffs[playerid], breakcuffs[breakingpcuffs[playerid]], GetPlayerProgressBarValue(playerid, breakcuffs[breakingpcuffs[playerid]])+0.2); if(GetPlayerProgressBarValue(playerid, breakcuffs[playerid]) == 100) { setPlayerUncuffed(breakingpcuffs[playerid]); SendClientMessage(playerid, COLOR_LIGHTBLUE, "You successfully broke that player's cuffs."); SendClientMessage(breakingpcuffs[playerid], COLOR_LIGHTBLUE, "Your cuffs were broken by another player."); HidePlayerProgressBar(playerid, breakcuffs[playerid]); HidePlayerProgressBar(breakingpcuffs[playerid], breakcuffs[breakingpcuffs[playerid]]); format(str, sizeof(str), "* %s's cuffs were broken.", PlayerICName(breakingpcuffs[playerid])); ProxDetector(30, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); breakingpcuffs[playerid] = INVALID_PLAYER_ID; isbreakingcuffs[playerid] = false; PlayerInfo[playerid][pScrew] --; } } } } if(PRESSED(KEY_AIM)) { if(playerHoldingTazer[playerid] == 2) { if(TazerTime[playerid] == 1) { SendClientMessage(playerid, COLOR_GREY, "Please wait while your tazer recharges."); return 1; } if(PlayerTazed[playerid] > 0) { SendClientMessage(playerid, COLOR_GREY, "You can't taze while you're tazed."); return 1; } if(GetPlayerAnimationIndex(playerid) == 1130) { SendClientMessage(playerid, COLOR_GREY, "You can't taze while falling."); return 1; } new Float:x, Float:y, Float:z, Float:a; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, a); x = x + 2 * floatsin(-a, degrees); y = y + 2 * floatcos(-a, degrees); ApplyAnimationEx(playerid, "KNIFE", "knife_3", 4.1, 0, 1, 1, 0, 0); new suspect = GetClosestPlayer(playerid); if(IsPlayerConnected(suspect)) { if(IsPlayerNPC(suspect)) return 1; if(IsPlayerInRangeOfPoint(suspect, 2.5, x, y, z)) { if(IsPlayerInAnyVehicle(suspect)) { SendClientMessage(playerid, COLOR_GREY, "Suspect is in a car, get him out first."); return 1; } if(IsPlayerNPC(suspect)) return SendClientMessage(playerid, COLOR_WHITE, "You can not taze a NPC!"); if(PlayerInfo[suspect][pAdmin] >= 2 && PlayerInfo[suspect][pStealthed] == 0) return SendClientMessage(playerid, COLOR_GREY, "You aren't able to taze an admin."); if(PlayerTazed[suspect] > 0) return SendClientMessage(playerid, COLOR_GREY, "Suspect already tazed."); format(str, sizeof(str), "* You were tazed by %s for 12 seconds.", PlayerICName(playerid)); SendClientMessage(suspect, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "* You tazed %s for 12 seconds.", PlayerICName(suspect)); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "* %s rushes with their tazer at %s, and tazed them.", PlayerICName(playerid), PlayerICName(suspect)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); displayCenterHUDInfo(suspect, "~r~Tazed.", 8); //display for 8 seconds setPlayerTazed(suspect); SetTimerEx("Timer_TazerTimer", 8000, false, "i", playerid); TazerTime[playerid] = 1; return 1; } } return 1; } } if(PRESSED(KEY_SPRINT)) { //animations if(gPlayerUsingLoopingAnim[playerid]) { StopLoopingAnim(playerid); } } } //using satellite if(UsingSate[playerid] == 1) { if(PRESSED(KEY_FIRE)) { if(ZOOM[playerid] == 1) { GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -475); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +5, newsposz[playerid] -500); ZOOM[playerid] = 2; return 1; } if(ZOOM[playerid] == 2) { GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -450); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +5, newsposz[playerid] -500); ZOOM[playerid] = 3; return 1; } if(ZOOM[playerid] == 3) { GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -425); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +5, newsposz[playerid] -500); ZOOM[playerid] = 4; return 1; } if(ZOOM[playerid] == 4) { GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -400); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +5, newsposz[playerid] -500); ZOOM[playerid] = 5; return 1; } if(ZOOM[playerid] == 5) { GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -250); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +5, newsposz[playerid] -500); ZOOM[playerid] = 1; return 1; } } } //driving car if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { //pressed 2 if(PRESSED(newkeys, KEY_SUBMISSION)) { //towtruck if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 525) { if(GetVehicleSpeed(GetPlayerVehicleID(playerid)) != 0) return SendClientMessage(playerid, COLOR_GREY, "Your tow truck must be stopped before you can attach/detatch cars."); if(IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid))) { DetachTrailerFromVehicle(GetPlayerVehicleID(playerid)); return 1; } new Float:ppX, Float:ppY, Float:ppZ; GetPlayerPos(playerid, ppX, ppY, ppZ); new Float:vvX, Float:vvY, Float:vvZ; new foundveh =0; new vehicleid =0; while((vehicleid < MAX_VEHICLES) && (!foundveh)) { GetVehiclePos(vehicleid, vvX, vvY, vvZ); if((floatabs(ppX -vvX) < 7.0) && (floatabs(ppY -vvY) < 7.0) && (floatabs(ppZ -vvZ) < 7.0) && (vehicleid != GetPlayerVehicleID(playerid))) { if(IsAPlane(vehicleid) || IsAHelicopter(vehicleid) || IsABike(vehicleid) || IsATrain(vehicleid) || IsABoat(vehicleid)) { SendClientMessage(playerid, COLOR_GREY, "You cannot tow this vehicle."); return 1; } AttachTrailerToVehicle(vehicleid, GetPlayerVehicleID(playerid)); foundveh = 1; return 1; } vehicleid++; } if(!foundveh) { SendClientMessage(playerid, COLOR_GREY, "There is no car in range."); } } } if(PRESSED(newkeys, KEY_LOOK_BEHIND)) // 2 (not numpad) { new vehid = GetPlayerVehicleID(playerid); if(vehid != INVALID_VEHICLE_ID) { if(turningengine[playerid]) return 1; // avoiding spam new Float:vhealth; GetVehicleHealth( vehid, vhealth ); if( vhealth < 306.0 ) { return SendClientMessage( playerid, COLOR_GREY, "The vehicle will not start." ); } if(IsABicycle(vehid)) return SendClientMessage(playerid, COLOR_GREY, "That vehicle doesn't have an engine."); if(IsAPlane(vehid)) return 1; if(Gas[vehid] < 1) { return SendClientMessage(playerid, COLOR_GREY, "That vehicle is out of fuel."); } if(Refueling[playerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "You can't start your engine whilst re-fuelling."); if(engineOn[vehid] == 0) { if(GetVehNeedHW(vehid, playerid)) { return SendClientMessage(playerid, COLOR_GRAD2, "You do not have the key for this vehicle! (/(h)ot(w)ire)"); } turningenginetimer[playerid] = SetTimerEx("Timer_EngineStart", 2500, false, "ii", playerid, vehid); format(str, sizeof(str), "* %s turns the key in the ignition...", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); turningengine[playerid] = 1; } else { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehid, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective); engineOn[vehid] = 0; playerDisabledEngine[vehid] = 1; format(str, sizeof(str), "* %s has turned their engine off.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); } } } } //================================ if( newkeys & KEY_FIRE ) { //soda system/soda machines for( new i; i < sizeof( SodaMachines ); i++ ) { if( IsPlayerInRangeOfPoint( playerid, 2.0, SodaMachines[i][sMachineX], SodaMachines[i][sMachineY], SodaMachines[i][sMachineZ] ) ) { if( PlayerInfo[playerid][pCash] - 50 >= 0 ) { GivePlayerMoney( playerid, -50 ); SetPlayerSpecialAction( playerid, SPECIAL_ACTION_DRINK_SPRUNK ); } } } return 1; } if(PRESSED(KEY_YES)){ Create3DTextLabel("{F09186}\nPress Y to buy guns.", 0x008080FF, 2441.88, -1964.44, 13.54, 40.0, 0, 1); //emmet if(IsPlayerInRangeOfPoint(playerid, 3.0, 2441.7942, -1964.3752, 13.5469)){ if(PlayerInfo[playerid][pConnectTime] < 3) return SendClientMessage(playerid, COLOR_GREY, "You must play for at least 3 playing hours to buy weapons from emmet."); ShowPlayerDialog(playerid, DIALOG_BUYGUN, DIALOG_STYLE_TABLIST_HEADERS, "Please select a weapon to buy", "Weapon Name\tPrice\n{F09186}MP5\t$5,000\n{F09186}Shotgun\t$4,000\n{F09186}AK-47\t$100,000\n{F09186}Rifle\t$20,000", "Buy", "Cancel"); } else if(IsPlayerInRangeOfPoint(playerid, 3.0, 1827.29, -1379.31, 14.42)){ ShowPlayerDialog(playerid, DIALOGID_GUIDE_MAIN, DIALOG_STYLE_LIST, "Guide", "How to make money\nGetting guns\nJoining a gang or faction\nHow to roleplay\nHow to level up", "Ok", "Cancel"); viewingGuide[playerid] = 1; Create3DTextLabel("{F09186}\nPress Y for a guide.", 0x008080FF, 1827.29, -1379.31, 14.42, 40.0, 0, 1); //guide bot } } return 1; } Timer:EngineStart(playerid, vehicle) { new str[128]; if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) { SendClientMessage(playerid, COLOR_GREY, "You are not a driver of a vehicle, engine start failed."); turningengine[playerid] = 0; return 1; } new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehicle, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective); engineOn[vehicle] = 1; playerDisabledEngine[vehicle] = 0; format(str, sizeof(str), "* %s has turned their engine on.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); turningengine[playerid] = 0; return 1; } //============================================================================== public PickUpPickup(playerid, pickupid) { new str[128]; if(pickupid == iGuide) { if(!viewingGuide[playerid]) { ShowPlayerDialog(playerid, DIALOGID_GUIDE_MAIN, DIALOG_STYLE_LIST, "Guide", "How to make money\nGetting guns\nJoining a gang or faction\nHow to roleplay\nHow to level up", "Ok", "Cancel"); viewingGuide[playerid] = 1; } return 1; } if(pickupid == para) { GivePlayerGun(playerid, 46); return 1; } if(pickupid == poolcue) { GivePlayerGun(playerid, 7); return 1; } if(pickupid == dildo) { GivePlayerGun(playerid, 10); return 1; } if(pickupid == iDrughouse) { format(str, sizeof(str), "~w~Type /getseeds to purchase some ~n~~r~Pot Seeds~n~~y~Available:~w~ %d", dhstock); displayCenterHUDInfo(playerid, str, 8); //display for 8 seconds return 1; } if(pickupid == iSprunk) { displayCenterHUDInfo(playerid, "~w~Sprunk Factory", 8); //display for 8 seconds return 1; } if(pickupid == iMget1) { if(Packages[playerid] == 0) { displayCenterHUDInfo(playerid, "~b~Materials Factory~n~~w~ Type ~r~/getmats~w~ to get ~y~packages", 8); //display for 8 seconds } return 1; } if(pickupid == iMget2) { if(Packages[playerid] == 0) { displayCenterHUDInfo(playerid, "~b~Materials Factory~n~~w~ Type ~r~/getmats~w~ to get ~y~packages", 8); //display for 8 seconds } return 1; } if(pickupid == iCrateGet) { if(Crates[playerid] == 0) { displayCenterHUDInfo(playerid, "~b~Drug Factory~n~~w~ Type ~r~/getcrate~w~ to get a ~y~drug crate", 8); //display for 8 seconds } return 1; } if(pickupid == iClothes) { if(PlayerInfo[playerid][pClothes] != 0) { displayCenterHUDInfo(playerid, "~w~Type ~r~/change~w~ to change back into ~n~~y~Clothes", 8); //display for 8 seconds } else { displayCenterHUDInfo(playerid, "~w~Type ~r~/change~w~ to change into a ~n~~y~Karate Uniform", 8); //display for 8 seconds } return 1; } if(pickupid == iTraining) { displayCenterHUDInfo(playerid, "~w~Type ~r~/train~w~ to learn ~n~~y~Martial Arts", 8); //display for 8 seconds return 1; } if(pickupid == clubFunds) //robert henderson + rob joseph { displayCenterHUDInfo(playerid, "~w~Type ~r~/withdrawfunds~w~ to withdraw money from the ~n~~y~Club Till", 8); //display for 8 seconds return 1; } if(pickupid == iBM) { displayCenterHUDInfo(playerid, "~w~Type ~r~/enter~w~ to go inside", 8); //display for 8 seconds return 1; } if(pickupid == iTikiEntrance) { displayCenterHUDInfo(playerid, "~w~Type ~r~/enter~w~ to go inside", 8); //display for 8 seconds return 1; } if(pickupid == iVIP) { displayCenterHUDInfo(playerid, "~w~Type ~r~/enter~w~ to go inside", 8); //display for 8 seconds return 1; } if(pickupid == iChurch) { displayCenterHUDInfo(playerid, "~w~Type ~r~/enter~w~ to go inside", 8); //display for 8 seconds return 1; } if(pickupid == iTiki) // Tiki { displayCenterHUDInfo(playerid, "~w~Type ~r~/exchange~w~ to trade your tikis for ~n~~y~Rewards", 8); //display for 8 seconds return 1; } if(pickupid == iDrugfactory) { displayCenterHUDInfo(playerid, "~w~Type ~r~/enter~w~ to go inside", 8); //display for 8 seconds return 1; } if(pickupid == iArrest1 || pickupid == iArrest2 || pickupid == iArrest3) { if(IsACop(playerid)) { displayCenterHUDInfo(playerid, "~w~Type ~r~/arrest~w~ to jail the ~n~~y~suspect", 8); //display for 8 seconds } return 1; } if(pickupid == iDeliver) { if(IsANG(playerid) || IsACop(playerid)) { displayCenterHUDInfo(playerid, "~w~Type ~r~/deliver~w~ to send the suspect to ~n~~b~San Andreas Correctional Facility", 8); //display for 8 seconds } return 1; } if(pickupid == iDeliver2) { if(IsANG(playerid) || IsACop(playerid)) { displayCenterHUDInfo(playerid, "~w~Type ~r~/arrest~w~ to send the suspect to ~n~~b~The County Jail", 8); //display for 8 seconds } return 1; } if(pickupid == iPaintball) { displayCenterHUDInfo(playerid, "~b~Paintball Arena~n~~w~Type ~r~/enter~w~ to go inside", 8); //display for 8 seconds return 1; } if(pickupid == iDetective) { displayCenterHUDInfo(playerid, "~y~Detective~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iLawyer) { displayCenterHUDInfo(playerid, "~y~Lawyer~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iDealer) { displayCenterHUDInfo(playerid, "~y~Drug Dealer~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iMechanic) { displayCenterHUDInfo(playerid, "~y~Mechanic~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iGarbageman) { displayCenterHUDInfo(playerid, "~y~Waste Collector~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iProductDealer) { displayCenterHUDInfo(playerid, "~y~Product Dealer~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iBodyguard) { displayCenterHUDInfo(playerid, "~y~Bodyguard~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iArms) { displayCenterHUDInfo(playerid, "~y~Arms Dealer~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iArms2) { displayCenterHUDInfo(playerid, "~y~Arms Dealer~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iBoxer) { displayCenterHUDInfo(playerid, "~y~Boxer~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iTaxi || pickupid == iTaxi1) { displayCenterHUDInfo(playerid, "~y~Taxi Driver~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iSmuggler) { displayCenterHUDInfo(playerid, "~y~Drug Smuggler~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iMiner) { displayCenterHUDInfo(playerid, "~y~Miner~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iProduct) { displayCenterHUDInfo(playerid, "~b~Discount Warehouse~n~~w~Type ~r~/buyproducts~w~ to buy ~n~~y~Products", 8); //display for 8 seconds return 1; } if(pickupid == iPizza) { displayCenterHUDInfo(playerid, "~y~Pizza Delivery~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } if(pickupid == iFarmer) { displayCenterHUDInfo(playerid, "~y~Farmer~w~ job~n~Type ~r~/getjob~w~ if you wish to become one", 8); //display for 8 seconds return 1; } for(new i = 0; i < sizeof(EntranceRef); i++) { if( IsPlayerInRangeOfPoint(playerid, 2, Entrances[i][outside_x], Entrances[i][outside_y], Entrances[i][outside_z]) && GetPlayerVirtualWorld(playerid) == Entrances[i][outside_w] ) { displayCenterHUDInfo(playerid, "~w~Type ~r~/enter~w~ to go inside", 8); //display for 8 seconds return 1; } } for(new b = 0; b < sizeof(BizInfo); b++) { if(IsPlayerInRangeOfPoint(playerid, 2, BizInfo[b][bOutsideX], BizInfo[b][bOutsideY], BizInfo[b][bOutsideZ])) { if(BizInfo[b][bSeized]) { displayCenterHUDInfo(playerid, "~w~This business has been ~r~seized", 8); } else displayCenterHUDInfo(playerid, "~w~Type ~r~/enter~w~ to go inside", 8); //display for 8 seconds return 1; } } for(new h = 0; h < sizeof(HouseInfo); h++) { if(IsPlayerInRangeOfPoint(playerid, 1.0, HouseInfo[h][hOutsideX], HouseInfo[h][hOutsideY], HouseInfo[h][hOutsideZ])) { displayCenterHUDInfo(playerid, "~w~Type ~r~/enter~w~ to go inside", 8); //display for 8 seconds return 1; } } for(new i = 0; i < sizeof(TikiInfo); i++) { if(pickupid == TikiInfo[i][tPickup]) // Tiki { if(IsPlayerInRangeOfPoint(playerid, 5.0, TikiInfo[i][tX], TikiInfo[i][tY], TikiInfo[i][tZ])) { if(TikiInfo[i][tCreated] == 1) { new tikis = PlayerInfo[playerid][pTikis]; new Float:plax, Float:play, Float:plaz; new location[MAX_ZONE_NAME]; PlayerInfo[playerid][pTikis]++; format(str, sizeof(str), "~g~You have %d tikis.", tikis +1); displayCenterHUDInfo(playerid, str, 8); //display for 8 seconds GetPlayerPos(playerid, plax, play, plaz); PlayerPlaySound(playerid, 1056, plax, play, plaz); DestroyDynamicPickup(TikiInfo[i][tPickup]); TikiInfo[i][tCreated] =0; GetPlayer2DZone(playerid, location, MAX_ZONE_NAME); format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has picked up a tiki in %s.", PlayerOOCName(playerid), location); ABroadCast(COLOR_WHITE, str, 1); return 1; } } } } for(new h = 0; h < sizeof(FamilyInfo); h++) { if(pickupid == FamilyInfo[h][PickupID]) { if(FamilyInfo[h][FamilySafe] == 1) { displayCenterHUDInfo(playerid, "~b~Gang Safe~n~~w~Type ~r~/fsafe~w~ to store Items", 8); //display for 8 seconds } return 1; } } return 1; } public OnPlayerPickUpDynamicPickup(playerid, pickupid) { PickUpPickup(playerid, pickupid); return 1; } //============================================================================== public OnVehicleSpawn(vehicleid) { OnDroneRespawn(vehicleid); reattachRailsForSpecOps(vehicleid); //if a spec op vehicle, will attach rails if(vehicleid == combvehid) { CreateBladesForCombine(vehicleid); } if(IsValidDynamicObject(SirenObject[vehicleid])) { if(SirenObject[vehicleid]) { DestroyDynamicObjectEx(SirenObject[vehicleid]); } Siren[vehicleid] = 0; SirenObject[vehicleid] = 0; } if(IsValidDynamicObject(Neon[vehicleid])) { if(Neon[vehicleid]) { DestroyDynamicObjectEx(Neon[vehicleid]); } Neon[vehicleid] = 0; } if(IsValidDynamicObject(Neon2[vehicleid])) { if(Neon2[vehicleid]) { DestroyDynamicObjectEx(Neon2[vehicleid]);} Neon2[vehicleid] = 0; } if(IsValidDynamicObject(Neon3[vehicleid])) { if(Neon3[vehicleid]) { DestroyDynamicObjectEx(Neon3[vehicleid]); } Neon3[vehicleid] = 0; } if(IsValidDynamicObject(Neon4[vehicleid])) { if(Neon4[vehicleid]) { DestroyDynamicObjectEx(Neon4[vehicleid]); } Neon4[vehicleid] = 0; } if(IsValidDynamicObject(TaxiSign[vehicleid])) { if(TaxiSign[vehicleid]) { DestroyDynamicObjectEx(TaxiSign[vehicleid]); } TaxiSign[vehicleid] = 0; } // Set the engine states to on if bike, else off if( IsABicycle( vehicleid ) ) { SetVehicleEngineState( vehicleid, 1 ); } else { SetVehicleEngineState( vehicleid, 0 ); } windowsDown[vehicleid] = false; SetVehicleParamsCarWindows(vehicleid, 1, 1, 1, 1); lightsOff[vehicleid] = 0; hoodOpen[vehicleid] = 0; trunkOpen[vehicleid] = 0; Gas[vehicleid] = 100; //refuel car playerDisabledEngine[vehicleid] = 0; // SetTimerEx("StartCar",2000,0,"d",vehicleid); //2 seconds if(gDestroyVehicle[vehicleid]) // if vehicle id is marked for deletion { foreach( new i: Player ) { if(IsPlayerInVehicle(i, vehicleid)) { RemovePlayerFromVehicle(i); // remove from vehicle } } SetVehicleVirtualWorld(vehicleid, 255); // set vehicle to unused vw to prevent players from using it SetTimerEx("Timer_KillCar", 10000, 0, "d", vehicleid); for(new i = 0; i < sizeof(CreatedCars); i++) { if(CreatedCars[i] == vehicleid) { CreatedCars[i] = INVALID_VEHICLE_ID; break; } } } new const charset[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; new stringplate[8]; for(new i = 0; i < 6; i++) { stringplate[i] = charset[random(sizeof(charset) - 1)]; } SetVehicleNumberPlate(vehicleid, stringplate); if(sVehicleInfo[vehicleid][v_faction] == 6 && GetVehicleModel(sVehicleInfo[vehicleid][v_id]) == 409) { SetVehicleHealth(vehicleid, 10000); } switch(GetVehicleModel(vehicleid)){ case 427, 432, 601:SetVehicleHealth(vehicleid, 10000); //Enforcer, Tank, Splashy case 470, 596, 598:SetVehicleHealth(vehicleid, 1350); //Humvee, SAPD-Cruisers case 528:SetVehicleHealth(vehicleid, 1500); //Smaller SWAT Van case 433: SetVehicleHealth(vehicleid, 5000); // Barracks case 425, 548, 520: SetVehicleHealth(vehicleid, 2500); // Hunter, Cargobob, Hydra } return 1; } //============================================================================== public OnVehicleStreamIn(vehicleid, forplayerid) { for(new i = 0; i < 14; i++) { if(!islegalcarmod(vehicleid, GetVehicleComponentInSlot(vehicleid, i))) { RemoveVehicleComponent(vehicleid, GetVehicleComponentInSlot(vehicleid, i)); } } if(gCarLock[vehicleid] == 1) LockCar(vehicleid); //locked else UnLockCar(vehicleid); return 1; } //============================================================================== public OnVehicleDeath(vehicleid) { new str[128]; //planebomb warnings if(IsAPlane(vehicleid) || IsAHelicopter(vehicleid)) { new Float:vpX, Float:vpY, Float:vpZ; GetVehiclePos(vehicleid, vpX, vpY, vpZ); if(IsPointInRangeOfPoint(vpX, vpY, vpZ, 2231.0598, -1720.1702, 22.8527, 120)) //gym { foreach( new i: Player ) { if(gLastCar[i] == vehicleid) { format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (ID %d) has just planebombed The Gym.", PlayerICName(i), i); ABroadCast(COLOR_WHITE, str, 1); break; } } } else if(IsPointInRangeOfPoint(vpX, vpY, vpZ, 2492.9775, -1666.1045, 13.3438, 120)) { foreach( new i: Player ) { if(gLastCar[i] == vehicleid) { format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (ID %d) has just planebombed Grove Street.", PlayerICName(i), i); ABroadCast(COLOR_WHITE, str, 1); break; } } } } //OnDroneDeath(vehicleid); if(Siren[vehicleid] == 1) { if(SirenObject[vehicleid]) { DestroyDynamicObjectEx(SirenObject[vehicleid]); } Siren[vehicleid] = 0; SirenObject[vehicleid] = 0; } if(Taxi[vehicleid] == 1) { if(TaxiSign[vehicleid]) { DestroyDynamicObjectEx(TaxiSign[vehicleid]); } Taxi[vehicleid] = 0; TaxiSign[vehicleid] = 0; } if(GetVehicleModel(vehicleid) == 519 || GetVehicleModel(vehicleid) == 592 || GetVehicleModel(vehicleid) == 553) { foreach( new i: Player ) { if(GetPlayerVirtualWorld(i) == vehicleid) { new Float:px, Float:py, Float:pz; GetPlayerPos(i, px, py, pz); SendClientMessage(i, COLOR_RED, "The plane has exploded."); CreateExplosion(px, py, pz, 6, 10.0); SetPlayerHealth(i, 0); } } } removeRailsForSpecOps(vehicleid); //this will search if the vehicle is a spec ops, if it is it deletes the objects if(vehicleid == combvehid) { if(IsValidObject(combobjid)) { DestroyObject(combobjid); combobjid = 0; } } //combine TrunkInfo[vehicleid][cFoodtray] = 0; if(IsValidDynamicObject(Neon[vehicleid])) { if(Neon[vehicleid]) { DestroyDynamicObjectEx(Neon[vehicleid]); } Neon[vehicleid] = 0; } if(IsValidDynamicObject(Neon2[vehicleid])) { if(Neon2[vehicleid]) { DestroyDynamicObjectEx(Neon2[vehicleid]); } Neon2[vehicleid] = 0; } if(IsValidDynamicObject(Neon3[vehicleid])) { if(Neon3[vehicleid]) { DestroyDynamicObjectEx(Neon3[vehicleid]); } Neon3[vehicleid] = 0; } if(IsValidDynamicObject(Neon4[vehicleid])) { if(Neon4[vehicleid]) { DestroyDynamicObjectEx(Neon4[vehicleid]); } Neon4[vehicleid] = 0; } return 1; } //============================================================================== public DisplayDialogForPlayer(playerid, dialogid) { new str[128]; new mstring[1500], titlestring[32], line1[512], line2[512], line3[256]; new bizid = GetPlayerVirtualWorld(playerid); new bizname[128]; if(bizid < MAX_BIZ && bizid >= 0) { format(bizname, sizeof(bizname), "%s", BizInfo[bizid][bName]); } switch(dialogid) { case 47: ShowPlayerDialog(playerid, 47, DIALOG_STYLE_LIST, "Stat Refund", "Level\nCash\nBank\nMaterials\nArms Dealer Skill\nCarjacker Skill\nDetective Skill\nLawyer Skill\nMechanic Skill\nDrug Dealer Skill\nSex Skill\nBoxing Skill\nFishing Skill\nPizza Skill", "Proceed", "Cancel"); case 69: { ShowPlayerDialog(playerid, 69, DIALOG_STYLE_INPUT, "San Andreas Police Department", "Please enter the password:", "Accept", "Cancel"); } case 70: { //burgershot new title[64]; format(title, sizeof(title), "%s", bizname); if(strlen(bizname) > 0) { ShowPlayerDialog(playerid, 70, DIALOG_STYLE_INPUT, title, "{FFFF91}Drinks:{A9C4E4}\n\n1: Sprunk\t\t$2\n2: Koolaid\t\t$1\n\n\n{FFFF91}Food:{A9C4E4}\n\n3: Meat Stack Meal\t$25\n{AFAFAF}4: Beef Tower Meal\t$15\n5: Moo Kids Meal\t$10\n6: Salad Meal\t\t$8{A9C4E4}", "Purchase", "Cancel"); } else { ShowPlayerDialog(playerid, 70, DIALOG_STYLE_INPUT, "Burger Shot", "{FFFF91}Drinks:{A9C4E4}\n\n1: Sprunk\t\t$2\n2: Koolaid\t\t$1\n\n\n{FFFF91}Food:{A9C4E4}\n\n3: Meat Stack Meal\t$25\n{AFAFAF}4: Beef Tower Meal\t$15\n5: Moo Kids Meal\t$10\n6: Salad Meal\t\t$8{A9C4E4}", "Purchase", "Cancel"); } } case 71: { new title[64]; format(title, sizeof(title), "%s", bizname); if(strlen(bizname) > 0) { ShowPlayerDialog(playerid, 71, DIALOG_STYLE_INPUT, title, "{FFFF91}Drinks:{A9C4E4}\n\n1: Sprunk\t\t$2\n2: Koolaid\t\t$1\n\n\n{FFFF91}Food:{A9C4E4}\n\n3: Cluckin' Huge Meal\t$25\n{AFAFAF}4: Cluckin' Big Meal\t$15\n5: Cluckin' Little Meal\t$10\n6: Salad Meal\t\t$8{A9C4E4}", "Purchase", "Cancel"); } else { ShowPlayerDialog(playerid, 71, DIALOG_STYLE_INPUT, "Cluckin' Bell", "{FFFF91}Drinks:{A9C4E4}\n\n1: Sprunk\t\t$2\n2: Koolaid\t\t$1\n\n\n{FFFF91}Food:{A9C4E4}\n\n3: Cluckin' Huge Meal\t$25\n{AFAFAF}4: Cluckin' Big Meal\t$15\n5: Cluckin' Little Meal\t$10\n6: Salad Meal\t\t$8{A9C4E4}", "Purchase", "Cancel"); } } case 72: { new title[64]; format(title, sizeof(title), "%s", bizname); if(strlen(bizname) > 0) { ShowPlayerDialog(playerid, 72, DIALOG_STYLE_INPUT, title, "{FFFF91}Drinks:{A9C4E4}\n\n1: Sprunk\t\t$2\n2: Lemonade\t\t$1\n\n\n{FFFF91}Food:{A9C4E4}\n\n3: Pizza Take Out\t$100\n{AFAFAF}4: Full Rack\t\t$20\n5: Double D-Luxe\t$15\n6: Buster\t\t$10\n7: Salad Meal\t\t$8{A9C4E4}", "Purchase", "Cancel"); } else { ShowPlayerDialog(playerid, 72, DIALOG_STYLE_INPUT, "The Well Stacked Pizza Co.", "{FFFF91}Drinks:{A9C4E4}\n\n1: Sprunk\t\t$2\n2: Lemonade\t\t$1\n\n\n{FFFF91}Food:{A9C4E4}\n\n3: Pizza Take Out\t$25\n{AFAFAF}4: Full Rack\t$15\n5: Double D-Luxe\t$10\n6: Buster\t\t$8\n7: Salad Meal\t\t$8{A9C4E4}", "Purchase", "Cancel"); } } case 73: { ShowPlayerDialog(playerid, 73, DIALOG_STYLE_MSGBOX, "Product Dealer", "Information:\n\nThis job can be used to sell products to business owners.\nThis job can be very profitable.\nThis is a legal job, meaning you won't get in trouble for dealing products.", "Next", "Cancel"); } case 74: { ShowPlayerDialog(playerid, 74, DIALOG_STYLE_MSGBOX, "Product Dealer", "Notes: There is no reload time for buying/selling products.\nThere are no skill levels for this job, in other words, you don't have to level it up.", "Next", "Cancel"); } case 75: { ShowPlayerDialog(playerid, 75, DIALOG_STYLE_MSGBOX, "Product Dealer", "Commands:\n\n/sellproducts\n/buyproducts\n\nLocation of Job: This job can be obtained north-east of newbie spawn.", "Done", "Cancel"); } case 76: { new diaTitle[60]; format(diaTitle, sizeof(diaTitle), "Sex Shop"); if(strlen(bizname)) format(diaTitle, sizeof(diaTitle), "%s", bizname); ShowPlayerDialog(playerid, 76, DIALOG_STYLE_TABLIST_HEADERS, diaTitle, "Item\tPrice\n\ Nitestick\t$7000\n\ Condom\t$25\n\ Purple Dildo\t$1000\n\ Vibrator\t$3000\n\ Small White Vibrator\t$5000\n\ Large White Vibrator\t$7500\n\ Camera\t$10000\n\ Gag\t$15000", "Buy", "Cancel"); } case 77: { new biz = GetPlayerVirtualWorld(playerid); format(str, sizeof(str), "%s", BizInfo[biz][bName]); ShowPlayerDialog(playerid, 77, DIALOG_STYLE_INPUT, str, "Type the skin ID you want below (costs $500):", "Buy", "Cancel"); } case 78: { ShowPlayerDialog(playerid, 78, DIALOG_STYLE_PASSWORD, "Admin Login", "{FFFFFF}Please provide your security code for your admin account to be authorized.\n\nPlease enter your security code below:", "Login", "Quit"); } case 99: { ShowPlayerDialog(playerid, 99, DIALOG_STYLE_LIST, "Silver Blackmarket", "Deagle $15,000\n", "Purchase", "Cancel"); } case 100: { ShowPlayerDialog(playerid, 100, DIALOG_STYLE_LIST, "Gold Blackmarket", "Deagle $12,000\nKnife $500,000", "Purchase", "Cancel"); } case 102: // Fishing Store { ShowPlayerDialog(playerid, 102, DIALOG_STYLE_LIST, "Fishing Store", "Fishing Rods\nFishing Bait\nFishing Line", "Select", "Cancel"); } case 103: // Fishing Rods { ShowPlayerDialog(playerid, 103, DIALOG_STYLE_LIST, "Fishing Rods", "Old Rod $200\nBeginners Rod $1,000\nFisherman's Rod $5,000\nElite Rod $15,000", "Select", "Cancel"); } case 104: // Fishing Bait { ShowPlayerDialog(playerid, 104, DIALOG_STYLE_LIST, "Fishing Bait", "Weak Bait $150\nRegular Bait $500\nStrong Bait $1,500\nElite Bait $2,500", "Select", "Cancel"); } case 105: // Fishing Lines { ShowPlayerDialog(playerid, 105, DIALOG_STYLE_LIST, "Fishing Lines", "Fishing Line $1,000", "Select", "Cancel"); } case 106: { format(titlestring, sizeof(titlestring), "Fishing:"); format(line1, sizeof(line1), "{007BD0}Information:\n{B4B5B7}You can fish at the Los Santos Fishing Pier(anchor blip)/Blueberry Docks/Pier\nYou will need a fishing rod, and a fishing line.\nYou can get these goods from inside the fishing shop on the pier.\nBait is very helpful so you should buy some of that too.\n\n"); format(line2, sizeof(line2), "{B4B5B7}When you are ready to fish, type /userod, this will take out your fishing rod.\nYou can toss the line out to sea by using the 'AIM' button (often RMB)\nIf a fish gets caught on your line a blue bar will appear\nYou can use the space key to reel in the fish\nYou must keep the blue bar from going too high (snapping) and going too low (losing fish).\n\n"); format(line3, sizeof(line3), "{B4B5B7}You can sell these fish at a 24/7 if they are over 20lb's in weight.\nIf you can't catch fish that are over 20lb's, try buying some bait.\nIf you have any more questions, use /newb(ie) chat)"); format(mstring, sizeof(mstring), "%s\n%s\n%s", line1, line2, line3); ShowPlayerDialog(playerid, 106, DIALOG_STYLE_MSGBOX, titlestring, mstring, "Done", "Cancel"); } case 107: { new title[64]; format(title, sizeof(title), "%s", bizname); if(strlen(bizname) > 0) { ShowPlayerDialog(playerid, 107, DIALOG_STYLE_INPUT, title, "{FFFF91}Drinks:{A9C4E4}\n\n1: Sprunk\t\t$2\n2: Coffee\t\t$5\n\n\n{FFFF91}Food:{A9C4E4}\n\n3: Donut Tray\t$100\n", "Purchase", "Cancel"); } else { ShowPlayerDialog(playerid, 107, DIALOG_STYLE_INPUT, "Donut Store", "{FFFF91}Drinks:{A9C4E4}\n\n1: Sprunk\t\t$2\n2: Coffee\t\t$5\n\n\n{FFFF91}Food:{A9C4E4}\n\n3: Donut Tray\t$100\n", "Purchase", "Cancel"); } } case 108: { new list[128]; if(!usingRadio[playerid]) { list = "DI.FM\nSomaFM\nETN.FM\nTalk Radio\nCustom\n"; ShowPlayerDialog(playerid, 108, DIALOG_STYLE_LIST, "Radio [off]", list, "Listen", "Cancel"); } else { list = "DI.FM\nSomaFM\nETN.FM\nTalk Radio\nCustom\nTurn Off"; ShowPlayerDialog(playerid, 108, DIALOG_STYLE_LIST, "Radio [on]", list, "Listen", "Cancel"); } } case 109: { //di.fm new list[512]; new list2[512]; list = "DI.FM - Classic Vocal Trance\nDI.FM - UK Garage\nDI.FM - Trance\nDI.FM - Vocal Trance\nDI.FM - Tech House\nDI.FM - PsyChill\nDI.FM - Chillout Dreams\nDI.FM - ClassicTrance\nDI.FM - EuroDance\nDI.FM - Club Sounds\nDI.FM - Disco House\nDI.FM - Dubstep\nDI.FM - Electro House\nDI.FM - Chillout\nDI.FM - Classic EuroDance\nDI.FM - House\nDI.FM - Soulful House\nDI.FM - Funky House\nDI.FM - Tribal House\n"; list2 = "DI.FM - Hard Dance\nDI.FM - Minimal\nDI.FM - Techno\nDI.FM - Progressive\nDI.FM - Goa-Psy Trance\nDI.FM - Hardstyle\nDI.FM - Hard Core\nDI.FM - Lounge\nDI.FM - Exposure NYC\nDI.FM - DJ Mixes\nDI.FM - Drum 'n' Bass\nDI.FM - Liquid DnB\nDI.FM - Oldschool Electronica\nDI.FM - Breaks\nDI.FM - Ambient\nDI.FM - Space Dreams\nDI.FM - Future Synthpop\nDI.FM - Oldschool House\nDI.FM - Chiptunes\nDI.FM - Gabber\nDI.FM - Latin House"; new final[1024]; format(final, sizeof(final), "%s%s", list, list2); ShowPlayerDialog(playerid, 109, DIALOG_STYLE_LIST, "DI.FM", final, "Listen", "Back"); } case 110: { //somafm new list[512]; new list2[512]; list = "SOMAFM - Groove Salad\nSOMAFM - Drone Zone\nSOMAFM - Christmas Lounge\nSOMAFM - Lush\nSOMAFM - indie pop rocks\nSOMAFM - Space Station Soma\nSOMAFM - Secret Agent\nSOMAFM - Xmas in Frisko\nSOMAFM - Beat Blender\nSOMAFM - Suburbs of Goa\nSOMAFM - Boot Liquor\nSOMAFM - Underground 80s\nSOMAFM - PopTron!\nSOMAFM - cliqhop idm\nSOMAFM - Sonic Universe\nSOMAFM - Mission Control\n"; list2 = "SOMAFM - Digitalis\nSOMAFM - Illinois Street Lounge\nSOMAFM - Tag's Trip\nSOMAFM - Doomed\nSOMAFM - Covers\nSOMAFM - 480 Minutes\nSOMAFM - Black Rock FM\n"; new final[1024]; format(final, sizeof(final), "%s%s", list, list2); ShowPlayerDialog(playerid, 110, DIALOG_STYLE_LIST, "SomaFM", final, "Listen", "Back"); } case 111: { //etn new list[128]; list = "ETN.FM - Trance Channel\nETN.FM - House Channel\n"; ShowPlayerDialog(playerid, 111, DIALOG_STYLE_LIST, "ETN.fm", list, "Listen", "Back"); } case 112: { //talk radio new list[128]; list = "Talk Radio - Infowars\n"; ShowPlayerDialog(playerid, 112, DIALOG_STYLE_LIST, "Talk Radio", list, "Listen", "Back"); } case 113: { //custom ShowPlayerDialog(playerid, 113, DIALOG_STYLE_INPUT, "Custom Stream", "Enter the url of the custom radio stream below ( YouTube NOT supported):\nExamples:\n{7DAEFF}http://www.radiostation.com/stream.pls{FFFFFF}", "Okay", "Back"); } } return 1; } //============================================================================== stock IsPlayerInWater(playerid) { new anim = GetPlayerAnimationIndex(playerid); if(anim >= 1538 && anim <= 1542 || anim == 1544 || anim == 1250 || anim == 1062) { return 1; } return 0; } public OnPlayerUpdate(playerid) { new iCurWeap = GetPlayerWeapon(playerid); // Return the player's current weapon if(iCurWeap != iCurrentWeapon[playerid]) // If he changed weapons since the last update { OnPlayerChangeWeapon(playerid, iCurrentWeapon[playerid], iCurWeap); iCurrentWeapon[playerid] = iCurWeap; //Update the weapon variable } if(plNCData[playerid][ncCameraMode] == 1) { new keys, ud, lr; GetPlayerKeys(playerid, keys, ud, lr); if(plNCData[playerid][ncMode] && (GetTickCount() - plNCData[playerid][ncLastMove] > 100)) { MoveCamera(playerid); } if(plNCData[playerid][ncUDold] != ud || plNCData[playerid][ncLRold] != lr) { if((plNCData[playerid][ncUDold] != 0 || plNCData[playerid][ncLRold] != 0) && ud == 0 && lr == 0) { StopPlayerObject(playerid, plNCData[playerid][ncFlyObject]); plNCData[playerid][ncMode] = 0; plNCData[playerid][ncAccelMul] = 0.0; } else { plNCData[playerid][ncMode] = GetMoveDirectionFromKeys(ud, lr); MoveCamera(playerid); } } plNCData[playerid][ncUDold] = ud; plNCData[playerid][ncLRold] = lr; return 0; } pausetick[playerid] = GetTickCount(); updateFuelHUD(playerid); //vending machine detection if(!usingVendingMachine[playerid]) //haven't used a vending machine { if(GetPlayerAnimationIndex(playerid) == 1660) { GiveMoney(playerid, -30); usingVendingMachine[playerid] = 1; } } else { if(GetPlayerAnimationIndex(playerid) != 1660) {/* might get back to this if i want to improve the sprunk factory points, dont implement it unless you change the vars according to the new system - Desmond give point money to the gang that owns sprunk factory if(PointInfo[9][PointTaken] != 255) //sprunk factory { FamilyInfo[PointInfo[9][PointTaken]][FamilyBank] += 30; }*/ usingVendingMachine[playerid] = 0; } } /*if(pDeathState[playerid] == PLAYER_STATE_REVIVE) { return cmd_afsdsw133sdghj41(playerid, ""); } if(pDeathState[playerid] == PLAYER_STATE_NORMAL) { return cmd_afsdsw133sdghj42(playerid, ""); }*/ if(playerHoldingTazer[playerid] == 1) { if(!IsPlayerInAnyVehicle(playerid)) { SetPlayerArmedWeapon(playerid, 23); } else { SetPlayerArmedWeapon(playerid, 0); } } if(playerHoldingTazer[playerid] == 2) { SetPlayerArmedWeapon(playerid, 0); } if(PlayerHasRod[playerid] == 1) { SetPlayerArmedWeapon(playerid, 0); } /* //anti bunnyhop if(lastAnimIndex[playerid] == 1196 && GetPlayerAnimationIndex(playerid) == 1198) { //2nd bunnyhop OnePlayAnim(playerid, "GYMNASIUM", "gym_jog_falloff", 4.0, 0, 1, 1, 0, 0); }*/ lastAnimIndex[playerid] = GetPlayerAnimationIndex(playerid); if(GetPlayerWeapon(playerid) == 27 && PlayerInfo[playerid][pAdmin] < 2 && inPaintball[playerid] < 1) { SetPlayerArmedWeapon(playerid, 0); TakePlayerWeapon(playerid, 27); SendClientMessage(playerid, COLOR_GREY, "Server has detected you using restricted weapon, it was removed [Combat-Shotgun]"); OnPlayerSave(playerid); } if(GetPlayerWeapon(playerid) == 37 && PlayerInfo[playerid][pAdmin] < 2) { SetPlayerArmedWeapon(playerid, 0); TakePlayerWeapon(playerid, 37); SendClientMessage(playerid, COLOR_GREY, "Server has detected you using restricted weapon, it was removed [Flame-Thrower]"); OnPlayerSave(playerid); } if(GetPlayerWeapon(playerid) == 16 && PlayerInfo[playerid][pAdmin] < 2) { SetPlayerArmedWeapon(playerid, 0); TakePlayerWeapon(playerid, 16); SendClientMessage(playerid, COLOR_GREY, "Server has detected you using restricted weapon, it was removed [Grenades]"); OnPlayerSave(playerid); } if(GetPlayerWeapon(playerid) == 18 && PlayerInfo[playerid][pAdmin] < 2) { SetPlayerArmedWeapon(playerid, 0); TakePlayerWeapon(playerid, 18); SendClientMessage(playerid, COLOR_GREY, "Server has detected you using restricted weapon, it was removed [Molotov-Cocktail]"); OnPlayerSave(playerid); } if(GetPlayerWeapon(playerid) == 39 && PlayerInfo[playerid][pAdmin] < 2) { SetPlayerArmedWeapon(playerid, 0); TakePlayerWeapon(playerid, 39); SendClientMessage(playerid, COLOR_GREY, "Server has detected you using restricted weapon, it was removed [Satchel Charges]"); OnPlayerSave(playerid); } //not in a vehicle if(!IsPlayerInAnyVehicle(playerid)) { new weaponid = GetPlayerWeapon(playerid); if(weaponid != 0) //has a weapon { //anti nightvision if(weaponid == 44 || weaponid == 45) //desynced nv,infared { new keys, updown, leftright; GetPlayerKeys(playerid, keys, updown, leftright); if(keys & KEY_FIRE) return 0; } if(CSDisable[playerid] == 0) { if(weaponid == 24 || weaponid == 25) { if(GetPlayerAnimationIndex(playerid) == 1164 || GetPlayerAnimationIndex(playerid) == 1256) { new keys, updown, leftright; GetPlayerKeys(playerid, keys, updown, leftright); if(keys == 2) { if(!IsAtEvent[playerid] && !inPaintball[playerid]) Timer_OnPlayerCBug(playerid, false); } } } } } } //to fix players moving around while in death animation if(pDeathState[playerid] == PLAYER_STATE_REVIVE) { if(GetPlayerAnimationIndex(playerid) != 1151) { ApplyAnimation(playerid, "PED", "FLOOR_hit_f", 4.0, 0, 1, 1, 1, 0, 1); } SetPlayerArmedWeapon(playerid, 0); } //cuffed if(PlayerCuffed[playerid] == 1) { if(!IsPlayerInAnyVehicle(playerid)) //not detained { if(GetPlayerAnimationIndex(playerid) != 1151) { // Reapply animation. ApplyAnimationEx(playerid, "PED", "FLOOR_hit_f", 4.0, 0, 1, 1, 1, 0, 1); } } } //exploit for falling and using a cigar if(GetPlayerAnimationIndex(playerid) == 1130) //falling { if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_SMOKE_CIGGY) { SetPlayerSpecialAction(playerid, 0); } if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_SPRUNK) { SetPlayerSpecialAction(playerid, 0); } } //OnDroneUpdate(playerid); //DoC drone //holding a food tray if(hasFoodTray[playerid]) { new index = GetPlayerAnimationIndex(playerid); if(oldindex[playerid] != index) { oldindex[playerid] = index; if(IsPlayerInWater(playerid)) { SendClientMessage(playerid, COLOR_GRAD1, "You lost your food."); lostFoodTray(playerid); } else if(GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_CARRY) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); } } } //prison clothes change check //Prison system new playerskin = GetPlayerSkin(playerid); if(playerskin != 50) { if(PlayerInfo[playerid][pJailnumber] > 0) { PlayerInfo[playerid][pJailnumber] = 0; UpdateDynamic3DTextLabelText(PNumber3D[playerid], COLOR_WHITE, " "); DestroyDynamic3DTextLabel(PNumber3D[playerid]); } } if(playerskin == 0 && PlayerInfo[playerid][pAdmin] < 2) //This means if a player gets CJ skin, but is not an admin lvl 2 or above it will automatically set his skin do default skin[20] { new str[500]; SetPlayerSkin(playerid, 20); format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s just got CJ skin, setting it back to skin ID 20!", PlayerOOCName(playerid)); ABroadCast(COLOR_WHITE, str, 1); } if(UsingSate[playerid] == 1) { new Keys, ud, lr; GetPlayerKeys(playerid, Keys, ud, lr); if(ud < 0) // up { GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); if(ZOOM[playerid] != 1) { SetPlayerPos(playerid, newsposx[playerid], newsposy[playerid] +4, newsposz[playerid]); } if(ZOOM[playerid] == 1) { SetPlayerPos(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid]); } GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); if(ZOOM[playerid] == 2) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -475); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 3) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -450); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 4) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -420); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 5) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -400); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 1) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -250); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } } if(ud > 0) // down { GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); if(ZOOM[playerid] != 1) { SetPlayerPos(playerid, newsposx[playerid], newsposy[playerid] -4, newsposz[playerid]); } if(ZOOM[playerid] == 1) { SetPlayerPos(playerid, newsposx[playerid], newsposy[playerid] -8, newsposz[playerid]); } GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); if(ZOOM[playerid] == 2) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -475); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 3) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -450); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 4) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -420); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 5) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -400); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 1) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -250); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } } if(lr < 0) // left { GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); if(ZOOM[playerid] != 1) { SetPlayerPos(playerid, newsposx[playerid] -4, newsposy[playerid], newsposz[playerid]); } if(ZOOM[playerid] == 1) { SetPlayerPos(playerid, newsposx[playerid] -8, newsposy[playerid], newsposz[playerid]); } GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); if(ZOOM[playerid] == 2) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -475); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 3) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -450); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 4) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -420); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 5) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -400); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 1) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -250); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } } if(lr > 0) // right { GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); if(ZOOM[playerid] != 1) { SetPlayerPos(playerid, newsposx[playerid] +4, newsposy[playerid], newsposz[playerid]); } if(ZOOM[playerid] == 1) { SetPlayerPos(playerid, newsposx[playerid] +8, newsposy[playerid], newsposz[playerid]); } GetPlayerPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid]); if(ZOOM[playerid] == 2) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -475); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 3) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -450); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 4) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -420); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 5) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -400); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } else if(ZOOM[playerid] == 1) { SetPlayerCameraPos(playerid, newsposx[playerid], newsposy[playerid], newsposz[playerid] -250); SetPlayerCameraLookAt(playerid, newsposx[playerid], newsposy[playerid] +8, newsposz[playerid] -500); } } } //reduced spikestrip limit to 8, 200 is way too laggy to be called on this function!!! if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new carid = GetPlayerVehicleID(playerid); //road spikes new panels, doors, lights, tires; GetVehicleDamageStatus(carid, panels, doors, lights, tires); if(tires != 15) // all 4 tires popped = 15 { for(new i = 0; i < sizeof(SpikeInfo); i++) { if(SpikeInfo[i][sCreated] == 1) { if(IsPlayerInRangeOfPoint(playerid, 3.0, SpikeInfo[i][sX], SpikeInfo[i][sY], SpikeInfo[i][sZ])) { tires = encode_tires(1, 1, 1, 1); UpdateVehicleDamageStatus(carid, panels, doors, lights, tires); displayCenterHUDInfo(playerid, "~r~Spiked.", 8); //display for 8 seconds break; } } } } new Float:vhealth; GetVehicleHealth( carid, vhealth ); if( vhealth < 300.0 ) { if( engineOn[carid] && !IsABicycle(carid) ) { SetVehicleEngineState( carid, 0 ); displayCenterHUDInfo( playerid, "~r~The engine cuts out", 8 ); } else if( engineOn[carid] && IsABicycle(carid) ) { SetVehicleEngineState( carid, 0 ); displayCenterHUDInfo( playerid, "~r~The bike's chain breaks", 8 ); } SetVehicleHealth( carid, 305.0 ); } } if(IsPlayerInAnyVehicle(playerid)) // fix for hackers TPing in helicopters/planes and bypassing this check (original code is OnPlayerEnterVehicle, meant to prevent newbies from heliblading/helicrashing) { new vehid = GetPlayerVehicleID(playerid); if(IsAPlane(vehid) || IsAHelicopter(vehid)) { if(PlayerInfo[playerid][pConnectTime] < 1) { RemovePlayerFromVehicle(playerid); PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_GREY, "You must play for at least 1 hour before you can fly this."); } } } 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) { // Check if it moved far if(GetVehicleDistanceFromPoint(vehicleid, new_x, new_y, new_z) > 50) { // Reject the update return 0; } return 1; } //============================================================================== SetAllCopCheckpoint(playerid) { KillTimer(callCPFix[playerid]); callCPFix[playerid] = SetTimerEx("Timer_CallerCheckpointFix", 6000, true, "i", playerid); callCPSpot[playerid] = 1; foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(IsACop(i)) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_HELP); } } } } Timer:CallerCheckpointFix(playerid){ callCPSpot[playerid] ++; foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(IsACop(i)) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_HELP); } } } if(callCPSpot[playerid] == 40){ KillTimer(callCPFix[playerid]); callCPSpot[playerid] = 0; SetPlayerColor(playerid, TCOLOR_WHITE); } return 1; } //============================================================================== SetAllFiremanCheckpoint(playerid) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(IsAMedic(i)) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_HELP); } } } } //============================================================================== public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { if(!(oldinteriorid == 69 || oldinteriorid == 70 || oldinteriorid == 71) && newinteriorid == 69 || newinteriorid == 70 || newinteriorid == 71) { //TogglePlayerControllable(playerid, false); //LoadObjects[playerid] = 4; if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) { Timer_FreezePlayer(playerid, FREEZE, ENTER_FREEZE); } } if(Spectated[playerid]) //play changed int while being spectated { foreach( new i: Player ) { if(SpectatingID[i] == playerid) { SetPlayerInterior(i, newinteriorid); SetPlayerVirtualWorld(i, newinteriorid); PlayerSpectatePlayer(i, playerid); } } } return 1; } stock setLastCar(playerid, vehid) { gLastCar[playerid] = vehid; } public OnPlayerStateChange(playerid, newstate, oldstate) { new str[128]; if(newstate == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][pTut] == 0) { if(PlayerInfo[playerid][pAdmin] < 1) { format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (ID %d) is spectating.", PlayerICName(playerid), playerid); UpdateWarnings(str); } } if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER && dmvSlot[playerid] != 0) { FailDrivingText(playerid); } if(newstate == PLAYER_STATE_PASSENGER) //got in car as passanger { new vehid = GetPlayerVehicleID(playerid); strmid(LastDriver[vehid], PlayerName(playerid), 0, MAX_PLAYER_NAME); setLastCar(playerid, vehid); new drivebyweapon = GetPlayerWeapon(playerid); if(!IsADriveByWeapon(drivebyweapon)) { SetPlayerArmedWeapon(playerid, 0); } //radios if(VehicleInfo[vehid][radioStation] != 0) { if(streamingFromBoombox[playerid] != -1) //if player is already streaming from a boombox when they get in the car { StopAudioStreamForPlayer(playerid); streamingFromBoombox[playerid] = -1; } if(!IsAPushBike(vehid)){ if(disabledRadios[playerid] == 0){ PlayAudioStreamForPlayer(playerid, VehicleInfo[vehid][radioURL]); } } streamingFromVehicle[playerid] = vehid; } } if(newstate == PLAYER_STATE_DRIVER) { new dynvehID = GetDynamicVehicleID(GetPlayerVehicleID(playerid)); new bool:skip = false; if(sVehicleInfo[dynvehID][v_faction] != 0) { if(PlayerInfo[playerid][pMember] == 3 && sVehicleInfo[dynvehID][v_faction] == 1) skip = true; // SASD can drive SAPD if(PlayerInfo[playerid][pMember] == 1 && sVehicleInfo[dynvehID][v_faction] == 3) skip = true; // SAPD can drive SASD if(PlayerInfo[playerid][pMember] == 2 && sVehicleInfo[dynvehID][v_faction] == 1) skip = true; // fbi | DEA can drive SAPD if(PlayerInfo[playerid][pMember] == 2 && sVehicleInfo[dynvehID][v_faction] == 3) skip = true; // fbi | DEA can drive SASD if(PlayerInfo[playerid][pGroup] == GROUP_S9) skip = true; if((PlayerInfo[playerid][pMember] != sVehicleInfo[dynvehID][v_faction]) && (skip == false)) { if(!(sVehicleInfo[dynvehID][v_faction] == 10 && PlayerInfo[playerid][pJob] == 14)) { displayCenterHUDInfo(playerid, "You do not have keys for this vehicle.", 8); PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); RemovePlayerFromVehicle(playerid); } } } } if(newstate == PLAYER_STATE_DRIVER) { if(isRepairing[playerid] == true) { RemovePlayerFromVehicle(playerid); SendClientMessage(playerid, COLOR_YELLOW, "You can't use any vehicles until you've finished the repair."); } } if(newstate == PLAYER_STATE_DRIVER) //got in car as driver { new vehicleid = GetPlayerVehicleID(playerid); //has something in the trunk setLastCar(playerid, vehicleid); SetPlayerArmedWeapon(playerid, 0); hidePlayerFoodTray(playerid); if(IsACar(vehicleid)) { if(PlayerInfo[playerid][pCarLicense] == 0 && dmvSlot[playerid] == 0) { showNewbieTipMessage(playerid, 20); //car license } else { showNewbieTipMessage(playerid, 1); //car radio } } if(!ToggedSpeedo[playerid]) { PlayerTextDrawShow(playerid, SpeedoTextdraw[playerid]); } if(!ToggedFuel[playerid]) { PlayerTextDrawShow(playerid, FuelTextdraw[playerid]); } if(!ToggedVHealth[playerid]) { PlayerTextDrawShow(playerid, VHealthTextDraw[playerid]); } if(Gas[vehicleid] > 0) { if(engineOn[vehicleid] == 0) //if engine is off and vehicle has gas { if(playerDisabledEngine[vehicleid] == 0) //if player hasn't disabled the engine { if(!GetVehNeedHW(vehicleid, playerid)) { if(!IsABike(vehicleid)) { new Float:health; GetVehicleHealth(vehicleid, health); if(health < 350) return 1; format(str, sizeof(str), "* %s has turned the engine on.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); } StartCar(vehicleid); engineOn[vehicleid] = 1; } } else { SendClientMessage(playerid, COLOR_GREY, "This vehicle can be started by typing /engine."); } } } else { displayCenterHUDInfo(playerid, "~w~No fuel in vehicle", 8); //8 seconds engineOn[vehicleid] = 0; PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~~r~I~w~IIIIIIIII~l~I"); } } if(oldstate == PLAYER_STATE_DRIVER) { new model = GetVehicleModel(gLastCar[playerid]); //make sure player doesn't pick up weapon from any vehicles if(model == 425 || model == 457 || model == 427 || model == 432 || model == 433 || model == 447 || model == 490 || model == 497 || model == 520 || model == 523 || model == 528 || model == 596 || model == 598 || model == 599 || model == 601 || model == 497 || model == 425 || model == 430) { SetPlayerWeapons(playerid); } //Fuel/Speedo (iGetty) if(!ToggedFuel[playerid]) { PlayerTextDrawHide(playerid, FuelTextdraw[playerid]); } if(!ToggedSpeedo[playerid]) { PlayerTextDrawHide(playerid, SpeedoTextdraw[playerid]); } if(!ToggedVHealth[playerid]) { PlayerTextDrawHide(playerid, VHealthTextDraw[playerid]); } } if(newstate == PLAYER_STATE_ONFOOT) { TextDrawHideForPlayer(playerid, centerHUDInfo[playerid]); displayingText[playerid] = 0; showPlayerFoodTray(playerid); //radios if(streamingFromVehicle[playerid] != -1) { StopAudioStreamForPlayer(playerid); streamingFromVehicle[playerid] = -1; } if(Spectated[playerid]) //play changed to onfoot { foreach( new i: Player ) { if(SpectatingID[i] == playerid) { SetPlayerInterior(i, GetPlayerInterior(playerid)); SetPlayerVirtualWorld(i, GetPlayerVirtualWorld(playerid)); PlayerSpectatePlayer(i, playerid); } } } if(TransportDuty[playerid] > 0) { if(TransportDuty[playerid] == 1) { TaxiDrivers -= 1; } else if(TransportDuty[playerid] == 2) { BusDrivers -= 1; } TransportDuty[playerid] = 0; SetPlayerColor(playerid, TCOLOR_WHITE); SendClientMessage(playerid, -1, " You are now off-duty"); return 1; } } if(oldstate == PLAYER_STATE_PASSENGER && newstate == PLAYER_STATE_ONFOOT) // TAXI & BUSSES { for(new i = 0; i < MAX_PLAYERS; i++) { if(GetPlayerState(i) == PLAYER_STATE_DRIVER && TransportDuty[i] > 0) { if(IsPlayerInTaxi[playerid] == 1) { if(PlayerTaxiDriver[playerid] != -1) { if(gLastCar[playerid] != GetPlayerVehicleID(i)) continue; new TAXIDUE = ( TransportMoney[playerid] -= PlayerInfo[playerid][pCash] ), taxistring1[128]; if( PlayerInfo[playerid][pCash] +1 < TransportMoney[i] ) { GiveMoney(playerid, - PlayerInfo[playerid][pCash]); format(taxistring1, sizeof(taxistring1), "* %s has on debt, his due is %d.", PlayerICName(playerid), TAXIDUE); SendClientMessage(i, -1, taxistring1); format(str, sizeof(str), "* The passanger left and you have earned $%d. 30 percent of your wage was given to the taxi company.", TransportMoney[i]); SendClientMessage(i, COLOR_LIGHTBLUE, str); GiveMoney(i, floatround((TransportMoney[i] * 70)/100)); TAXI += floatround((TransportMoney[i] * 30)/100); SaveFactionBanks(); } else { GiveMoney(playerid, -TransportMoney[i]); format(str, sizeof(str), "* The passanger left and you have earned $%d. 30 percent of your wage was given to the taxi company.", TransportMoney[i]); SendClientMessage(i, COLOR_LIGHTBLUE, str); GiveMoney(i, floatround((TransportMoney[i] * 70)/100)); TAXI += floatround((TransportMoney[i] * 30)/100); SaveFactionBanks(); } PlayerTaxiDriver[playerid] = -1; IsPlayerInTaxi[playerid] = 0; KillTimer(TaxiTiming[playerid]); TransportMoney[playerid] = -1; break; } } } } } if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_PASSENGER) // TAXI & BUSSES { new vehicleid = GetPlayerVehicleID(playerid); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == PLAYER_STATE_DRIVER && TransportDuty[i] > 0) { if(PlayerInfo[playerid][pCash] < 1500) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You need at least $1500 to enter."); RemovePlayerFromVehicle(playerid); return 1; } else { format(str, sizeof(str), "* %s has entered your vehicle.", PlayerICName(playerid)); if(CP[i] == CHECKPOINT_TAXI_CALLER) { CP[i] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(i); } SendClientMessage(i, COLOR_LIGHTBLUE, str); GetPlayerPos(i, TaxiFromCoords[i][0], TaxiFromCoords[i][1], TaxiFromCoords[i][2]); IsPlayerInTaxi[playerid] = 1; PlayerTaxiDriver[playerid] = i; KillTimer(TaxiTiming[i]); TaxiTiming[i] = SetTimerEx("Timer_TaxiDrivingTime", 1000, true, "ii", playerid, i); } } } } if(newstate == PLAYER_STATE_WASTED) //player died { for(new i = 0; i < 13; i++) //get the weapons from the player { GetPlayerWeaponData(playerid, i, DeathWeapons[playerid][i][0], DeathWeapons[playerid][i][1]); if(HaveWeapon(playerid, DeathWeapons[playerid][i][0]) != DeathWeapons[playerid][i][0]) { DeathWeapons[playerid][i][0] = 0; DeathWeapons[playerid][i][1] = 0; } } } if(newstate == PLAYER_STATE_DRIVER) { new newcar = GetPlayerVehicleID(playerid); gLastCar[playerid] = newcar; //radios if(!disabledRadios[playerid]) { if(VehicleInfo[GetPlayerVehicleID(playerid)][radioStation] == 0) { //SendClientMessage(playerid, COLOR_WHITE, "TIP: You can use /carradio to change the cars radio station."); } else { if(streamingFromBoombox[playerid] != -1) //if player is already streaming from a boombox when they get in the car { StopAudioStreamForPlayer(playerid); streamingFromBoombox[playerid] = -1; } if(!IsAPushBike(newcar)){ if(disabledRadios[playerid] == 0){ PlayAudioStreamForPlayer(playerid, VehicleInfo[newcar][radioURL]); streamingFromVehicle[playerid] = newcar; } } } } if(Spectated[playerid]) //play changed to driver { foreach( new i: Player ) { if(SpectatingID[i] == playerid) { SetPlayerInterior(i, GetPlayerInterior(playerid)); SetPlayerVirtualWorld(i, GetPlayerVirtualWorld(playerid)); PlayerSpectateVehicle(i, GetPlayerVehicleID(playerid)); SpectateType[i] = ADMIN_SPEC_TYPE_VEHICLE; } } } if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 525) { displayCenterHUDInfo(playerid, "~w~Press ~r~~k~~TOGGLE_SUBMISSIONS~~w~ to ~n~~y~tow a car", 8); //display for 8 seconds } if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 519 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 553) { displayCenterHUDInfo(playerid, "~w~use ~r~(/int)ercom~w~ to speak with your passengers.", 8); //display for 8 seconds } } return 1; } Timer:OnThirtySecondSync() { new str[128]; foreach( new j: Player ) { if(IsPlayerConnected(j)) { if(PlayerInfo[j][pCash] < 0 && PlayerInfo[j][pAccount] < 0) { if(MoneyMessage[j] ==0) { format(str, sizeof(str), "Government Warning: You are in debt. You have until next paycheck to make $%d or you will be charged with tax evasion.", PlayerInfo[j][pCash] -(PlayerInfo[j][pCash] *2)); SendClientMessage(j, COLOR_LIGHTRED, str); MoneyMessage[j] = 1; } } else { MoneyMessage[j] = 0; } //update fuel if(GetPlayerState(j) == PLAYER_STATE_DRIVER) { new vehicle = GetPlayerVehicleID(j); new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective); if(IsNonFuelVehicle(vehicle) || Refueling[j] || engine == VEHICLE_PARAMS_OFF) return 1; if(Gas[vehicle] > 0) { if(Gas[vehicle] < 20) { showNewbieTipMessage(j, 3); //fueltip } //Gas[vehicle]--; Gas[vehicle] =Gas[vehicle] -1; } else { GetVehicleParamsEx(vehicle, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehicle, VEHICLE_PARAMS_OFF, lights, alarm, doors, bonnet, boot, objective); engineOn[vehicle] = 0; displayCenterHUDInfo(j, "~w~No fuel in vehicle", 25); //display for 25 seconds PlayerTextDrawSetString(j, FuelTextdraw[j], "~g~~h~FUEL ~l~I~w~~r~I~w~IIIIIIIII~l~I"); } } } } return 1; } //============================================================================== LockCar(carid) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(carid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(carid, engine, lights, alarm, true, bonnet, boot, objective); gCarLock[carid] = 1; } //============================================================================== UnLockCar(carid) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(carid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(carid, engine, lights, alarm, false, bonnet, boot, objective); gCarLock[carid] = 0; } //============================================================================== //============================================================================== public OnPlayerExitVehicle(playerid, vehicleid) { if(GPSOn[playerid] == 1) { TogglePlayerGPS(playerid); } if(hotWireTime[playerid] > 0) { hotWireTime[playerid] = 0; hotWireVeh[playerid] = -1; } return 1; } //============================================================================== public OnPlayerRequestSpawn(playerid) { if(IsPlayerNPC(playerid)) return 1; if(!gPlayerLogged[playerid]) return 0; HideLoginTextDraw( playerid ); HideAnnouncementTextDraw( playerid ); return 1; } stock ClearChat(playerid) { for(new i = 0; i < 100; i++) { SendClientMessage(playerid, 0xFFFFFF00, ""); } return 1; } //============================================================================== public OnPlayerRequestClass(playerid, classid) { if(IsPlayerNPC(playerid)) return 1; new randomlogin = random(11); if(randomlogin == 0) { InterpolateCameraPos(playerid, 1345.298217, -938.340026, 87.267883, 1410.656494, -905.507324, 87.039672, 60000); InterpolateCameraLookAt(playerid, 1342.760742, -934.031921, 87.227516, 1410.501586, -900.510314, 86.962852, 60000); SetPlayerPos(playerid, 1410.656494, -905.507324, 87.039672+5); } else if(randomlogin == 1) { InterpolateCameraPos(playerid, 144.827133, 377.233428, 29.656909, -308.141845, 402.604736, 29.302240, 60000); InterpolateCameraLookAt(playerid, 139.834960, 377.513061, 29.653001, -313.134033, 402.884368, 29.298332, 60000); SetPlayerPos(playerid, -313.134033, 402.884368, 29.298332+5); } else if(randomlogin == 2) { InterpolateCameraPos(playerid, 561.094482, -643.187438, 34.639472, 806.668395, -491.264617, 27.714447, 60000); InterpolateCameraLookAt(playerid, 565.345336, -640.557678, 34.519599, 810.919250, -488.634826, 27.594575, 60000); SetPlayerPos(playerid, 810.919250, -488.634826, 27.594575+5); } else if(randomlogin == 3) { InterpolateCameraPos(playerid, 1352.999267, -1683.527099, 90.773506, 1421.252075, -1571.332275, 77.173370, 45000); InterpolateCameraLookAt(playerid, 1357.510375, -1683.054321, 88.669647, 1424.770874, -1574.326049, 75.261474, 45000); SetPlayerPos(playerid, 1424.770874, -1574.326049, 75.261474+5); } else if(randomlogin == 4) { InterpolateCameraPos(playerid, 1408.836547, -1775.066650, 97.370033, 2149.550048, -1735.276855, 49.848331, 7500); InterpolateCameraLookAt(playerid, 1411.520385, -1771.610107, 94.951477, 2146.251953, -1738.334228, 47.663204, 7500); SetPlayerPos(playerid, 2146.251953, -1738.334228, 47.663204+5); } else if(randomlogin == 5) { InterpolateCameraPos(playerid, 1807.677856, -1369.372436, 16.177862, 1954.315429, -1473.715820, 89.220832, 7500); InterpolateCameraLookAt(playerid, 1812.676147, -1369.342895, 16.051443, 1951.205322, -1470.425903, 87.098541, 7500); SetPlayerPos(playerid, 1951.205322, -1470.425903, 87.098541+5); } else if(randomlogin == 6) { InterpolateCameraPos(playerid, 2007.451416, -1129.742065, 29.814027, 2153.653076, -1200.048461, 81.830345, 7500); InterpolateCameraLookAt(playerid, 2004.361206, -1125.859252, 29.201797, 2148.798583, -1200.057373, 80.632698, 7500); SetPlayerPos(playerid, 2148.798583, -1200.057373, 80.632698+5); } else if(randomlogin == 7) { InterpolateCameraPos(playerid, 2503.717285, -1668.225097, 15.782173, 2433.170410, -1736.309936, 65.834114, 7500); InterpolateCameraLookAt(playerid, 2507.883300, -1670.886230, 15.032005, 2436.207031, -1733.029785, 63.593498, 7500); SetPlayerPos(playerid, 2436.207031, -1733.029785, 63.593498+5); } else if(randomlogin == 8) { InterpolateCameraPos(playerid, 2248.101074, -1740.978881, 26.270591, 2379.434814, -1779.831054, 87.506752, 7500); InterpolateCameraLookAt(playerid, 2248.305908, -1736.377563, 24.324943, 2375.368164, -1777.643066, 85.589653, 7500); SetPlayerPos(playerid, 2375.368164, -1777.643066, 85.589653+5); } else if(randomlogin == 9) { InterpolateCameraPos(playerid, 1345.708618, -1279.521606, 16.874431, 1271.686523, -1412.301757, 70.203544, 7500); InterpolateCameraLookAt(playerid, 1350.705078, -1279.532714, 16.686157, 1268.570434, -1408.877807, 68.315055, 7500); SetPlayerPos(playerid, 1268.570434, -1408.877807, 68.315055+5); } else if(randomlogin == 10) { InterpolateCameraPos(playerid, 1946.255126, -1747.471191, 21.964838, 1994.090698, -1672.244750, 54.170860, 7500); InterpolateCameraLookAt(playerid, 1941.771850, -1745.708984, 20.625036, 1990.291503, -1675.066650, 52.557655, 7500); SetPlayerPos(playerid, 1990.291503, -1675.066650, 52.557655+5); } //if player is not logged in, display register/login dialogs if(!gPlayerLogged[playerid]) { if(!checkedAccount[playerid]) { //check if the account name exists ClearChat(playerid); //event notice if(isNextEvent) { showEventHudForPlayer(playerid); } //newmotd //TextDrawShowForPlayer(playerid, motd); //check if account exists new query[350]; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT `Key_`, `Password`, `Salt`, `NewPassword`, `NewSalt` FROM `players` WHERE `name` = '%e' COLLATE latin1_bin LIMIT 1", PlayerName(playerid)); mysql_pquery(sqlGameConnection, query, "OnAccountExists", "d", playerid); checkedAccount[playerid] = 1; } } return 1; } forward OnAccountExists(playerid); public OnAccountExists(playerid) { new msgstring[128]; if(cache_num_rows() == 1) { //sql login //store temp password in a var to compare with the login dialogs inputtext cache_get_field_content(0, "Key_", tempPassword[playerid], sqlGameConnection, 65); cache_get_field_content(0, "Password", tempHash[playerid], sqlGameConnection, 65); cache_get_field_content(0, "Salt", tempSalt[playerid], sqlGameConnection, 33); cache_get_field_content(0, "NewPassword", NewPassword[playerid], sqlGameConnection, 129); cache_get_field_content(0, "NewSalt", NewSalt[playerid], sqlGameConnection, 33); format(msgstring, sizeof(msgstring), "Welcome back to {FFFF00}Project Roleplay{FFFFFF}, %s.", PlayerICName(playerid)); SendClientMessage(playerid, COLOR_WHITE, msgstring); format(msgstring, sizeof(msgstring), "{FFFFFF}Welcome back to {FFFF00}Project Roleplay{FFFFFF}.\n\nPlease enter your password below to login to your account:", msgstring); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Login", msgstring, "Login", "Quit"); } else { //register if(!IsValidName(PlayerName(playerid))) { SendClientMessage(playerid, COLOR_WHITE, "{FF6347}SERVER: You have been kicked for having an invalid name."); SendClientMessage(playerid, COLOR_WHITE, "Your name must be in the \"Firstname_Lastname\" format."); SendClientMessage(playerid, COLOR_WHITE, "Example: Bobby_Smith."); KickEx(playerid); return 1; } format(msgstring, sizeof(msgstring), "Welcome to {FFFF00}Project Roleplay{FFFFFF}, %s.", PlayerICName(playerid)); SendClientMessage(playerid, COLOR_WHITE, msgstring); format(msgstring, sizeof(msgstring), "{FFFFFF}Welcome to {FFFF00}Project Roleplay{FFFFFF}.\n\nPlease register your account by typing the password below:", msgstring); ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Register", msgstring, "Register", "Quit"); } return 1; } forward SetPlayerID(playerid); public SetPlayerID(playerid) { PlayerInfo[playerid][pID] = cache_get_field_content_int(0, "ID"); return 1; } forward OnPlayerLoad(playerid, con_order); public OnPlayerLoad(playerid, con_order) { if(con_order != MySQLConnectionOrder[playerid]) { SendClientMessage(playerid, COLOR_RED, "You've been disconnected in an attempt to prevent data merging, relog."); KickEx(playerid); return 1; } /*PlayerInfo[playerid][pImportant] = cache_get_field_content_int(0, "Important"); if(cache_get_field_content_int(0, "Important") > 0) { PlayerInfo[playerid][pImportant] = 1; }*/ //cache_get_field_content(0, "Discord", PlayerInfo[playerid][pDiscord], sqlGameConnection, 30); PlayerInfo[playerid][pTesterReports] = cache_get_field_content_int(0, "TesterReports"); PlayerInfo[playerid][pSpawnPos] = cache_get_field_content_int(0, "SpawnPos"); PlayerInfo[playerid][pLastLogoutUnix] = cache_get_field_content_int(0, "LogUnix"); PlayerInfo[playerid][pID] = cache_get_field_content_int(0, "ID"); pDeathState[playerid] = cache_get_field_content_int(0, "DeathState"); PlayerInfo[playerid][pLevel] = cache_get_field_content_int(0, "Level"); PlayerInfo[playerid][pAdmin] = cache_get_field_content_int(0, "AdminLevel"); PlayerInfo[playerid][pSecKey] = cache_get_field_content_int(0, "SecurityKey"); PlayerInfo[playerid][pStealthed] = cache_get_field_content_int(0, "Stealthed"); PlayerInfo[playerid][pBand] = cache_get_field_content_int(0, "Band"); PlayerInfo[playerid][pCBand] = cache_get_field_content_int(0, "CBand"); PlayerInfo[playerid][pPermBand] = cache_get_field_content_int(0, "PermBand"); cache_get_field_content(0, "BanReason", PlayerInfo[playerid][pBanReason], sqlGameConnection, 128); cache_get_field_content(0, "PrisonReason", PlayerInfo[playerid][pPrisonReason], sqlGameConnection, 128); PlayerInfo[playerid][pAdminJailed] = cache_get_field_content_int(0, "AdminJailed"); cache_get_field_content(0, "PrisonedBy", PlayerInfo[playerid][pPrisonedBy], sqlGameConnection, 32); PlayerInfo[playerid][pWarns] = cache_get_field_content_int(0, "Warnings"); PlayerInfo[playerid][pDisabled] = cache_get_field_content_int(0, "Disabled"); PlayerInfo[playerid][pDonateRank] = cache_get_field_content_int(0, "DonateRank"); PlayerInfo[playerid][pTag] = cache_get_field_content_int(0, "Tag"); cache_get_field_content(0, "VIPJoinDate", PlayerInfo[playerid][pVIPJoinDate], sqlGameConnection, 32); cache_get_field_content(0, "VIPExpDate", PlayerInfo[playerid][pVIPExpDate], sqlGameConnection, 32); PlayerInfo[playerid][pBanAppealer] = cache_get_field_content_int(0, "BanAppealer"); PlayerInfo[playerid][pGangModd] = cache_get_field_content_int(0, "GangModd"); PlayerInfo[playerid][pEventModd] = cache_get_field_content_int(0, "EventModd"); PlayerInfo[playerid][pComplaintModd] = cache_get_field_content_int(0, "ComplaintModd"); PlayerInfo[playerid][pShopMod] = cache_get_field_content_int(0, "ShopMod"); PlayerInfo[playerid][pBizMod] = cache_get_field_content_int(0, "BizMod"); PlayerInfo[playerid][pFactionMod] = cache_get_field_content_int(0, "FactionMod"); PlayerInfo[playerid][pFactionDirector] = cache_get_field_content_int(0, "FactionDirector"); PlayerInfo[playerid][pGangDirector] = cache_get_field_content_int(0, "GangDirector"); PlayerInfo[playerid][gPupgrade] = cache_get_field_content_int(0, "UpgradePoints"); PlayerInfo[playerid][pConnectTime] = cache_get_field_content_int(0, "ConnectedTime"); PlayerInfo[playerid][pReg] = cache_get_field_content_int(0, "Registered"); PlayerInfo[playerid][pSex] = cache_get_field_content_int(0, "Sex"); if(PlayerInfo[playerid][pSex] == 0) PlayerInfo[playerid][pSex] = 1; // Fix "Unknown" PlayerInfo[playerid][pAge] = cache_get_field_content_int(0, "Age"); if(PlayerInfo[playerid][pAge] == 0) PlayerInfo[playerid][pAge] = 18; // Fix 0 PlayerInfo[playerid][pOrigin] = cache_get_field_content_int(0, "Origin"); cache_get_field_content(0, "Appearance", PlayerInfo[playerid][pAppearance], sqlGameConnection, 128); PlayerInfo[playerid][pBuild] = cache_get_field_content_int(0, "Build"); PlayerInfo[playerid][pEthnicity] = cache_get_field_content_int(0, "Ethnicity"); PlayerInfo[playerid][pEyeColour] = cache_get_field_content_int(0, "EyeColour"); PlayerInfo[playerid][pHeight] = cache_get_field_content_int(0, "Height"); if(PlayerInfo[playerid][pHeight] == 0) PlayerInfo[playerid][pHeight] = 180; // Fix 0 PlayerInfo[playerid][pMuted] = cache_get_field_content_int(0, "Muted"); PlayerInfo[playerid][pExp] = cache_get_field_content_int(0, "Respect"); PlayerInfo[playerid][pCash] = cache_get_field_content_int(0, "Money"); PlayerInfo[playerid][pAccount] = cache_get_field_content_int(0, "Bank"); PlayerInfo[playerid][pCrimes] = cache_get_field_content_int(0, "Crimes"); cache_get_field_content(0, "Accent", Accent[playerid], sqlGameConnection, 32); PlayerInfo[playerid][pKills] = cache_get_field_content_int(0, "Kills"); PlayerInfo[playerid][pDeaths] = cache_get_field_content_int(0, "Deaths"); PlayerInfo[playerid][pCHits] = cache_get_field_content_int(0, "CHits"); PlayerInfo[playerid][pFHits] = cache_get_field_content_int(0, "FHits"); PlayerInfo[playerid][pArrested] = cache_get_field_content_int(0, "Arrested"); PlayerInfo[playerid][pLottoNr] = cache_get_field_content_int(0, "LottoNr"); PlayerInfo[playerid][pBiggestFish] = cache_get_field_content_int(0, "BiggestFish"); PlayerInfo[playerid][pJob] = cache_get_field_content_int(0, "Job"); PlayerInfo[playerid][pPayCheck] = cache_get_field_content_int(0, "Paycheck"); PlayerInfo[playerid][pHeadValue] = cache_get_field_content_int(0, "HeadValue"); PlayerInfo[playerid][pJailed] = cache_get_field_content_int(0, "Jailed"); PlayerInfo[playerid][pJailCell] = cache_get_field_content_int(0, "JailCell"); PlayerInfo[playerid][pJailTime] = cache_get_field_content_int(0, "JailTime"); PlayerInfo[playerid][pLeader] = cache_get_field_content_int(0, "Leader"); PlayerInfo[playerid][pRecruiter] = cache_get_field_content_int(0, "Recruiter"); PlayerInfo[playerid][pMember] = cache_get_field_content_int(0, "Member"); PlayerInfo[playerid][pNSB] = cache_get_field_content_int(0, "NSB"); PlayerInfo[playerid][pFMember] = cache_get_field_content_int(0, "FMember"); PlayerInfo[playerid][pRank] = cache_get_field_content_int(0, "Rank"); PlayerInfo[playerid][pRadioStation] = cache_get_field_content_int(0, "RadioStation"); PlayerInfo[playerid][pDetSkill] = cache_get_field_content_int(0, "DetSkill"); PlayerInfo[playerid][pSexSkill] = cache_get_field_content_int(0, "SexSkill"); PlayerInfo[playerid][pBoxSkill] = cache_get_field_content_int(0, "BoxSkill"); PlayerInfo[playerid][pLawSkill] = cache_get_field_content_int(0, "LawSkill"); PlayerInfo[playerid][pMechSkill] = cache_get_field_content_int(0, "MechSkill"); PlayerInfo[playerid][pJackSkill] = cache_get_field_content_int(0, "JackSkill"); PlayerInfo[playerid][pCarSkill] = cache_get_field_content_int(0, "CarSkill"); PlayerInfo[playerid][pDrugsSkill] = cache_get_field_content_int(0, "DrugsSkill"); PlayerInfo[playerid][pArmsSkill] = cache_get_field_content_int(0, "ArmsSkill"); PlayerInfo[playerid][pWasteSkill] = cache_get_field_content_int(0, "WasteSkill"); PlayerInfo[playerid][pSmugglerSkill] = cache_get_field_content_int(0, "SmugglerSkill"); PlayerInfo[playerid][pThieveSkill] = cache_get_field_content_int(0, "ThieveSkill"); PlayerInfo[playerid][pFishSkill] = cache_get_field_content_int(0, "FishSkill"); PlayerInfo[playerid][pPizzaSkill] = cache_get_field_content_int(0, "PizzaSkill"); PlayerInfo[playerid][pFightingStyle] = cache_get_field_content_int(0, "FightingStyle"); PlayerInfo[playerid][pHealth] = cache_get_field_content_int(0, "pHealth"); PlayerInfo[playerid][pArmor] = cache_get_field_content_int(0, "pArmor"); PlayerInfo[playerid][pSHP] = cache_get_field_content_int(0, "pSHP"); PlayerInfo[playerid][pSHealth] = cache_get_field_content_int(0, "pSHealth"); PlayerInfo[playerid][pInt] = cache_get_field_content_int(0, "InteriorID"); PlayerInfo[playerid][pLocal] = cache_get_field_content_int(0, "Local"); PlayerInfo[playerid][pVirtualWorld] = cache_get_field_content_int(0, "VirtualWorld"); PlayerInfo[playerid][pModel] = cache_get_field_content_int(0, "Model"); PlayerInfo[playerid][pClothes] = cache_get_field_content_int(0, "Clothes"); PlayerInfo[playerid][pPnumber] = cache_get_field_content_int(0, "PhoneNr"); PlayerInfo[playerid][pCellphoneType] = cache_get_field_content_int(0, "PhoneType"); PlayerInfo[playerid][pBizKey] = cache_get_field_content_int(0, "BizKey"); if(PlayerInfo[playerid][pBizKey] == 0) PlayerInfo[playerid][pBizKey] = -1; //biz fix PlayerInfo[playerid][pBizFixed] = cache_get_field_content_int(0, "BizFixed"); PlayerInfo[playerid][pSetVehSpawn] = cache_get_field_content_int(0, "SetVehSpawn"); PlayerInfo[playerid][pFishLic] = cache_get_field_content_int(0, "FishLic"); PlayerInfo[playerid][pGun0] = cache_get_field_content_int(0, "Gun0"); PlayerInfo[playerid][pGun1] = cache_get_field_content_int(0, "Gun1"); PlayerInfo[playerid][pGun2] = cache_get_field_content_int(0, "Gun2"); PlayerInfo[playerid][pGun3] = cache_get_field_content_int(0, "Gun3"); PlayerInfo[playerid][pGun4] = cache_get_field_content_int(0, "Gun4"); PlayerInfo[playerid][pGun5] = cache_get_field_content_int(0, "Gun5"); PlayerInfo[playerid][pGun6] = cache_get_field_content_int(0, "Gun6"); PlayerInfo[playerid][pGun7] = cache_get_field_content_int(0, "Gun7"); PlayerInfo[playerid][pGun8] = cache_get_field_content_int(0, "Gun8"); PlayerInfo[playerid][pGun9] = cache_get_field_content_int(0, "Gun9"); PlayerInfo[playerid][pGun10] = cache_get_field_content_int(0, "Gun10"); PlayerInfo[playerid][pGun11] = cache_get_field_content_int(0, "Gun11"); PlayerInfo[playerid][pGun12] = cache_get_field_content_int(0, "Gun12"); PlayerInfo[playerid][pCarTime] = cache_get_field_content_int(0, "CarTime"); PlayerInfo[playerid][pDrugsTime] = cache_get_field_content_int(0, "DrugsTime"); PlayerInfo[playerid][pLawyerTime] = cache_get_field_content_int(0, "LawyerTime"); PlayerInfo[playerid][pLawyerFreeTime] = cache_get_field_content_int(0, "LawyerFreeTime"); PlayerInfo[playerid][pMechTime] = cache_get_field_content_int(0, "MechTime"); PlayerInfo[playerid][pSexTime] = cache_get_field_content_int(0, "SexTime"); PlayerInfo[playerid][pPlantTime] = cache_get_field_content_int(0, "PlantTime"); PlayerInfo[playerid][pRepairTime] = cache_get_field_content_int(0, "RepairTime"); PlayerInfo[playerid][pRobTime] = cache_get_field_content_int(0, "RobTime"); PlayerInfo[playerid][pPayDay] = cache_get_field_content_int(0, "PayDay"); PlayerInfo[playerid][pPayDayHad] = cache_get_field_content_int(0, "PayDayHad"); PlayerInfo[playerid][pWins] = cache_get_field_content_int(0, "Wins"); PlayerInfo[playerid][pLoses] = cache_get_field_content_int(0, "Loses"); PlayerInfo[playerid][pAdrenaline] = cache_get_field_content_int(0, "Adrenaline"); PlayerInfo[playerid][pTut] = cache_get_field_content_int(0, "Tutorial"); PlayerInfo[playerid][pOnDuty] = cache_get_field_content_int(0, "OnDuty"); PlayerInfo[playerid][pHospital] = cache_get_field_content_int(0, "Hospital"); PlayerInfo[playerid][pAdjustable] = cache_get_field_content_int(0, "Adjustable"); PlayerInfo[playerid][pMarried] = cache_get_field_content_int(0, "Married"); cache_get_field_content(0, "MarriedTo", PlayerInfo[playerid][pMarriedTo], sqlGameConnection, 128); cache_get_field_content(0, "ContractBy", PlayerInfo[playerid][pContractBy], sqlGameConnection, 128); PlayerInfo[playerid][pWantedLevel] = cache_get_field_content_int(0, "WantedLevel"); PlayerInfo[playerid][pNewbieMuted] = cache_get_field_content_int(0, "NewbieMuted"); PlayerInfo[playerid][pNMuteTime] = cache_get_field_content_int(0, "NewbieMutedTime"); PlayerInfo[playerid][pFKickTime] = cache_get_field_content_int(0, "FactionKickTime"); PlayerInfo[playerid][pNewbieWarns] = cache_get_field_content_int(0, "NewbieWarns"); PlayerInfo[playerid][pReqUnmute] = cache_get_field_content_int(0, "NewbRequestUnmute"); PlayerInfo[playerid][pRepMuted] = cache_get_field_content_int(0, "ReportMuted"); autoChat[playerid] = cache_get_field_content_int(0, "TogAutoChat"); PlayerInfo[playerid][pAdMuted] = cache_get_field_content_int(0, "AdMuted"); PlayerInfo[playerid][pBugMuted] = cache_get_field_content_int(0, "BugMuted"); PlayerInfo[playerid][pSPos_x] = cache_get_field_content_float(0, "SPos_x"); PlayerInfo[playerid][pSPos_y] = cache_get_field_content_float(0, "SPos_y"); PlayerInfo[playerid][pSPos_z] = cache_get_field_content_float(0, "SPos_z"); PlayerInfo[playerid][pSPos_r] = 1.0; // Static until we fix the crashing issue PlayerInfo[playerid][pHelper] = cache_get_field_content_int(0, "HelperLevel"); PlayerInfo[playerid][pDev] = cache_get_field_content_int(0, "DevLevel"); PlayerInfo[playerid][pTester] = cache_get_field_content_int(0, "TesterLevel"); PlayerInfo[playerid][pFamed] = cache_get_field_content_int(0, "Famed"); PlayerInfo[playerid][pOldSchool] = cache_get_field_content_int(0, "OldSchool"); PlayerInfo[playerid][pEnlightened] = cache_get_field_content_int(0, "Enlightened"); PlayerInfo[playerid][pBanDay] = cache_get_field_content_int(0, "BanDay"); PlayerInfo[playerid][pBanMonth] = cache_get_field_content_int(0, "BanMonth"); PlayerInfo[playerid][pBanYear] = cache_get_field_content_int(0, "BanYear"); PlayerInfo[playerid][pBanTime] = cache_get_field_content_int(0, "BanTime"); GottenGift[playerid] = cache_get_field_content_int(0, "GottenGift"); GottenTimeLeft[playerid] = cache_get_field_content_int(0, "GottenTimeLeft"); PlayerInfo[playerid][pCallCount] = cache_get_field_content_int(0, "MedicCount"); PlayerInfo[playerid][pMonthlyCallCount] = cache_get_field_content_int(0, "MonthlyMedicCount"); PlayerInfo[playerid][pMDCLogged] = cache_get_field_content_int(0, "MDCLogged"); PlayerInfo[playerid][pPortMDC] = cache_get_field_content_int(0, "HasMDC"); PlayerInfo[playerid][pJammer] = cache_get_field_content_int(0, "HasJammer"); PlayerInfo[playerid][pBadgeNumber] = cache_get_field_content_int(0, "BadgeNumber"); PlayerInfo[playerid][pHouseID] = GetHouseOwnerIDFromSQLID(PlayerInfo[playerid][pID]); //get house ID & store to PlayerInfo[playerid][pHouseID] PlayerInfo[playerid][hTicket] = cache_get_field_content_int(0, "hTicket"); PlayerInfo[playerid][gTicket] = cache_get_field_content_int(0, "gTicket"); PlayerInfo[playerid][gRefund] = cache_get_field_content_int(0, "gRefund"); PlayerInfo[playerid][pEconomist] = cache_get_field_content_int(0, "Economist"); PlayerInfo[playerid][pHAFakeBadge] = cache_get_field_content_int(0, "HAFakeBadge"); FakeFaction[playerid] = cache_get_field_content_int(0, "FakeFaction"); FakeRank[playerid] = cache_get_field_content_int(0, "FakeRank"); PlayerInfo[playerid][pBadge] = cache_get_field_content_int(0, "Badge"); isBOLO[playerid] = cache_get_field_content_int(0, "isBOLO"); PlayerInfo[playerid][pDriverPoints] = cache_get_field_content_int(0, "DriverPoints"); PlayerInfo[playerid][pInsurance] = cache_get_field_content_int(0, "Insurance"); PlayerInfo[playerid][pPresentCount] = cache_get_field_content_int(0, "PresentCount"); PlayerInfo[playerid][pTogNewbie] = cache_get_field_content_int(0, "TogNewbie"); hasRubberBullets[playerid] = cache_get_field_content_int(0, "RubberBullets"); new access[15]; for(new idx = 1; idx < 8; idx++) { mysql_format(sqlGameConnection, access, sizeof(access), "Accessory%d", idx); Accessories[playerid][idx-1] = cache_get_field_content_int(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessoryB%d", idx); AccessoriesB[playerid][idx-1] = cache_get_field_content_int(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessoryX%d", idx); AccessoriesX[playerid][idx-1] = cache_get_field_content_float(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessoryY%d", idx); AccessoriesY[playerid][idx-1] = cache_get_field_content_float(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessoryZ%d", idx); AccessoriesZ[playerid][idx-1] = cache_get_field_content_float(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessoryrX%d", idx); AccessoriesrX[playerid][idx-1] = cache_get_field_content_float(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessoryrY%d", idx); AccessoriesrY[playerid][idx-1] = cache_get_field_content_float(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessoryrZ%d", idx); AccessoriesrZ[playerid][idx-1] = cache_get_field_content_float(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessorysX%d", idx); AccessoriessX[playerid][idx-1] = cache_get_field_content_float(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessorysY%d", idx); AccessoriessY[playerid][idx-1] = cache_get_field_content_float(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessorysZ%d", idx); AccessoriessZ[playerid][idx-1] = cache_get_field_content_float(0, access); mysql_format(sqlGameConnection, access, sizeof(access), "AccessorysC%d", idx); Accessoriesc1[playerid][idx-1] = cache_get_field_content_int(0, access); } PlayerInfo[playerid][lastCarID] = cache_get_field_content_int( 0, "lastCarID" ); PlayerInfo[playerid][pMaxCarSlots] = cache_get_field_content_int( 0, "maxcarslots" ); PlayerInfo[playerid][pMapper] = cache_get_field_content_int(0, "Mapper"); cache_get_field_content(0, "customTag", CustomTag[playerid], sqlGameConnection, 50); cache_get_field_content(0, "customRank", customRank[playerid], sqlGameConnection, 24); pInHospital[playerid] = cache_get_field_content_int(0, "isinHosp"); PlayerInfo[playerid][pMap] = cache_get_field_content_int(0, "HasMap"); PlayerInfo[playerid][pJailnumber] = cache_get_field_content_int(0, "JailNumber"); PlayerInfo[playerid][pCarLicense] = cache_get_field_content_int(0, "NewCarLic"); PlayerInfo[playerid][pBoatLicense] = cache_get_field_content_int(0, "NewBoatLic"); PlayerInfo[playerid][pWeaponLicense] = cache_get_field_content_int(0, "NewGunLic"); PlayerInfo[playerid][pMarijuanaLicense] = cache_get_field_content_int(0, "NewMariLicense"); PlayerInfo[playerid][pSueUnix] = cache_get_field_content_int(0, "SueUnix"); PlayerInfo[playerid][pSueNotice] = cache_get_field_content_int(0, "SueNotice"); PlayerInfo[playerid][pAllowedArmory] = cache_get_field_content_int(0, "AllowedArmory"); PlayerInfo[playerid][pHidingStatus] = cache_get_field_content_int(0, "HidingStatus"); // PlayerInfo[playerid][pBrokenLeg] = cache_get_field_content_int( 0, "brokenleg" ); //===============[ Inventory ]============== PlayerInfo[playerid][pFishes] = cache_get_field_content_int(0, "Fishes"); PlayerInfo[playerid][pProducts] = cache_get_field_content_int(0, "Products"); PlayerInfo[playerid][pMats] = cache_get_field_content_int(0, "Materials"); PlayerInfo[playerid][pPotSeeds] = cache_get_field_content_int(0, "Seeds"); PlayerInfo[playerid][pCalculator] = cache_get_field_content_int(0, "Calculator"); PlayerInfo[playerid][pPhoneBook] = cache_get_field_content_int(0, "Phonebook"); PlayerInfo[playerid][pFishRod] = cache_get_field_content_int(0, "FishRod"); PlayerInfo[playerid][pBait] = cache_get_field_content_int(0, "Bait"); PlayerInfo[playerid][pBaitAmount] = cache_get_field_content_int(0, "BaitAmount"); PlayerInfo[playerid][pLine] = cache_get_field_content_int(0, "Line"); PlayerInfo[playerid][piPod] = cache_get_field_content_int(0, "iPod"); PlayerInfo[playerid][pDice] = cache_get_field_content_int(0, "Dice"); PlayerInfo[playerid][pSpraycan] = cache_get_field_content_int(0, "Spraycan"); PlayerInfo[playerid][pScrew] = cache_get_field_content_int(0, "Screw"); PlayerInfo[playerid][pRope] = cache_get_field_content_int(0, "Rope"); PlayerInfo[playerid][pGag] = cache_get_field_content_int(0, "Gag"); PlayerInfo[playerid][pCigars] = cache_get_field_content_int(0, "Cigars"); PlayerInfo[playerid][pSprunk] = cache_get_field_content_int(0, "Sprunk"); PlayerInfo[playerid][pBeer] = cache_get_field_content_int(0, "Beer"); PlayerInfo[playerid][pTikis] = cache_get_field_content_int(0, "Tikis"); PlayerInfo[playerid][pWT] = cache_get_field_content_int(0, "WT"); PlayerInfo[playerid][pWTc] = cache_get_field_content_int(0, "WTc"); PlayerInfo[playerid][pRadio] = cache_get_field_content_int(0, "Radio"); PlayerInfo[playerid][pHandtazer] = cache_get_field_content_int(0, "Handtazer"); PlayerInfo[playerid][ptazerGun] = cache_get_field_content_int(0, "tazerGun"); PlayerInfo[playerid][pBombs] = cache_get_field_content_int(0, "Bombs"); PlayerInfo[playerid][pPoison] = cache_get_field_content_int(0, "Poison"); PlayerInfo[playerid][pGlasses] = cache_get_field_content_int(0, "Glasses"); PlayerInfo[playerid][pBandana] = cache_get_field_content_int(0, "Bandana"); PlayerInfo[playerid][pHelmet] = cache_get_field_content_int(0, "Helmet"); HasBoughtMask[playerid] = cache_get_field_content_int(0, "Mask"); cache_get_field_content(0, "MaskName", PlayerInfo[playerid][pMaskName], sqlGameConnection, 21); PlayerInfo[playerid][pMask] = 0; PlayerInfo[playerid][pBlindfolds] = cache_get_field_content_int(0, "Blindfolds"); PlayerInfo[playerid][pDeck] = cache_get_field_content_int(0, "Deck"); PlayerInfo[playerid][pStereo] = cache_get_field_content_int(0, "Stereo"); PlayerInfo[playerid][pMatches] = cache_get_field_content_int(0, "Matches"); PlayerInfo[playerid][pJerrycan] = cache_get_field_content_int(0, "Jerrycan"); PlayerHasMP5Laser[playerid] = cache_get_field_content_int(0, "MP5Laser"); PlayerHasM4Laser[playerid] = cache_get_field_content_int(0, "M4Laser"); PlayerHasAKLaser[playerid] = cache_get_field_content_int(0, "AKLaser"); PlayerHasSpasLaser[playerid] = cache_get_field_content_int(0, "SpasLaser"); PlayerHasDeagleLaser[playerid] = cache_get_field_content_int(0, "DeagleLaser"); PlayerInfo[playerid][pAddressBook] = cache_get_field_content_int(0, "AddressBook"); PlayerInfo[playerid][pWire] = cache_get_field_content_int(0, "Wire"); PlayerInfo[playerid][pGroup] = cache_get_field_content_int(0, "Group"); PlayerInfo[playerid][pGroupRank] = cache_get_field_content_int(0, "GroupRank"); PlayerInfo[playerid][pHasCBomb] = cache_get_field_content_int( 0, "C2" ); PlayerInfo[playerid][pDrill] = cache_get_field_content_int( 0, "Drill" ); PlayerInfo[playerid][pDuffleBagTime] = cache_get_field_content_int( 0, "DuffleCooldown" ); cache_get_field_content(0, "GroupNick", PlayerInfo[playerid][pGroupNick], sqlGameConnection, 13); cache_get_field_content(0, "S9BadgeName", PlayerInfo[playerid][pS9BadgeName], sqlGameConnection, 24); // Drugs // PlayerInfo[playerid][pCannabis] = cache_get_field_content_int(0, "Cannabis"); PlayerInfo[playerid][pCocaine] = cache_get_field_content_int(0, "Cocaine"); PlayerInfo[playerid][pMeth] = cache_get_field_content_int(0, "Meth"); PlayerInfo[playerid][pXanax] = cache_get_field_content_int(0, "Xanax"); PlayerInfo[playerid][pPromethazine] = cache_get_field_content_int(0, "promethazine"); PlayerInfo[playerid][pCodeine] = cache_get_field_content_int(0, "codeine"); PlayerInfo[playerid][pLean] = cache_get_field_content_int(0, "lean"); // Global Chat System // PlayerInfo[playerid][pGCTog] = cache_get_field_content_int(0, "GCTog"); PlayerInfo[playerid][pGCTag] = cache_get_field_content_int(0, "GCTag"); cache_get_field_content(0, "GCTagName", PlayerInfo[playerid][pGCTagName], sqlGameConnection, 30); PlayerInfo[playerid][pGCMute] = cache_get_field_content_int(0, "GCMute"); PlayerInfo[playerid][pGCMuteTimer] = cache_get_field_content_int(0, "GCMuteTimer"); PlayerInfo[playerid][pGCMutePerm] = cache_get_field_content_int(0, "GCMutePerm"); // Newbie Tag System PlayerInfo[playerid][pNewbieTag] = cache_get_field_content_int(0, "NewbieTag"); cache_get_field_content(0, "NewbieTagName", PlayerInfo[playerid][pNewbieTagName], sqlGameConnection, 30); // cache_get_field_content(0, "HouseFire", value); // PlayerInfo[playerid][pHouseFire] = strval(value); //================[ Save the player's cache ID ]================ PlayerCacheID[playerid] = cache_save(); //============================================= //set account ip to the new ip updatePlayerIP(playerid); OnPlayerLogin(playerid); ShowAnnouncementTextDraw( playerid ); printf("Loaded %s.", PlayerName(playerid)); return 1; } //============================================================================== stock SetPlayerCriminal(playerid, declare, reason[]) { new str[128]; if(IsPlayerConnected(playerid)) { new turned[MAX_PLAYER_NAME]; new turner[MAX_PLAYER_NAME]; GetPlayerICName(playerid, turned, sizeof(turned)); if(declare == 999) { format(turner, sizeof(turner), "Unknown"); strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner)); } if(declare == 998) { format(turner, sizeof(turner), "The Government"); strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner)); } else { if(IsPlayerConnected(declare)) { GetPlayerICName(declare, turner, sizeof(turner)); strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner)); strmid(PlayerCrime[declare][pBplayer], turned, 0, strlen(turned)); strmid(PlayerCrime[declare][pAccusing], reason, 0, strlen(reason)); } } PlayerInfo[playerid][pCrimes] += 1; PlayerPlaySound(playerid, 1054, 0.0, 0.0, 0.0); //AddCrime(playerid, PlayerICName(declare), reason); foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(IsACop(i) || IsANG(i) || PlayerInfo[i][pMember] == 5 || PlayerInfo[i][pMember] == 7 || PlayerInfo[i][pMember] == FACTION_SANG) { format(str, sizeof(str), "Warrant Placed - Reporter: %s", turner); SendClientMessage(i, TEAM_BLUE_COLOR, str); format(str, sizeof(str), "Crime: %s, Suspect: %s", reason, turned); SendClientMessage(i, TEAM_BLUE_COLOR, str); } } } } return 1; } //============================================================================== stock SetPlayerFree(playerid, declare, reason[]) { if(IsPlayerConnected(playerid)) { new turned[MAX_PLAYER_NAME]; new turner[MAX_PLAYER_NAME]; new crbjstore[128]; if(declare == 999) { format(turner, sizeof(turner), "911"); } else { if(IsPlayerConnected(declare)) { GetPlayerICName(declare, turner, sizeof(turner)); } } GetPlayerICName(playerid, turned, sizeof(turned)); foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pMember] == 2) { if(!strmatch(reason, "arrested")){ if(declare != 999) format(crbjstore, sizeof(crbjstore), "HQ: All units, %s %s %s has completed an assignment, %s %s.", GetPlayerFactionName(declare), GetPlayerRank(declare), turner, reason, turned); else format(crbjstore, sizeof(crbjstore), "HQ: All units, %s has been successfully processed, was %s.", turned, reason); SendClientMessage(i, COLOR_DBLUE, crbjstore); } } } } } return 1; } //============================================================================== stock isWeaponHacked(playerid, weapon) { if(weapon > 0 && weapon < 45) { if(HaveWeapon(playerid, weapon) != weapon && HaveAdminWeapon(playerid, weapon) != weapon) { return true; } } return false; } //============================================================================== Timer:OnFiveSecondSync() { new str[128]; foreach( new i: Player ) { if(PlayerInfo[i][pAdmin] < 2) { new currentspeed = GetPlayerSpeed(i, false); if(currentspeed > 175) { new tmpcar = GetPlayerVehicleID(i); if(!IsAPlane(tmpcar) && !(GetPlayerState(i) == PLAYER_STATE_PASSENGER)) { format(str, sizeof(str), "Possible speedhack: [%d]%s %d mph.", i, PlayerOOCName(i), currentspeed); ABroadCast(COLOR_YELLOW, str, 1); } } if(gPlayerLogged[i] && firstSpawned[i]) { //player must be logged in and have spawned (to fix a warning) new weaponid = GetPlayerWeapon(i); if(isWeaponHacked(i, weaponid)) { new WeaponName[64]; GetWeaponName(weaponid, WeaponName, sizeof(WeaponName)); format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (%d) is holding a desynced or hacked %s.", PlayerOOCName(i), i, WeaponName); ABroadCast(COLOR_WHITE, str, 1); } } } if(PlayerInfo[i][pPnumber] != 0) { if(CellTime[i] > 0) { if(CellTime[i] == 10) { CellTime[i] = 1; if(Mobile[Mobile[i]] == i) { CallCost[i] = CallCost[i] +callcost; } } CellTime[i] = CellTime[i] +1; if(Mobile[Mobile[i]] == 999 && (CellTime[i] > 0)) { if(IsPlayerConnected(Mobile[i])) { if(!cellMuted[i]) { playLocalSound(i, CELLPHONE_AWAITING, 1.0, 500); } if(!cellMuted[Mobile[i]]) { playLocalSound(Mobile[i], CELLPHONE_RING, 6.0, 500); } if(CellTime[i] == 3 || CellTime[i] == 6 || CellTime[i] == 9) { format(str, sizeof(str), "* %s's phone rings.", PlayerICName(Mobile[i])); SetPlayerChatBubble(Mobile[i], str, COLOR_PURPLE, 20.0, 15000); format(str, sizeof(str), "> %s's phone rings.", PlayerICName(Mobile[i])); SendClientMessage(Mobile[i], COLOR_PURPLE, str); } } } } } if(!disabledRadios[i] && !GetPVarInt(i, "AudioDisabled")) { if(!isPlayerStreaming(i)) //not already streaming from any boombox/vehicle { for(new b = 0; b < sizeof(BoomboxInfo); b++) //loop through all (players) boomboxes { if(BoomboxInfo[b][placedBoombox]) //if a player has placed a boombox { if(BoomboxInfo[b][boomboxTurnedOn]) //if boombox is turned on { if(IsPlayerInRangeOfPoint(i, 30, BoomboxInfo[b][bpos][0], BoomboxInfo[b][bpos][1], BoomboxInfo[b][bpos][2])) //player is near { if(GetPlayerVirtualWorld(i) == BoomboxInfo[b][BoomboxWorld]) { if(streamingFromBoombox[i] != b) //not streaming yet { PlayAudioStreamForPlayer(i, BoomboxInfo[b][BoomboxURL], BoomboxInfo[b][bpos][0], BoomboxInfo[b][bpos][1], BoomboxInfo[b][bpos][2], 30, 1); streamingFromBoombox[i] = b; //set that players streaming variable to the player id which } } } } } } } else //currently streaming { if(streamingFromBoombox[i] != -1) //not streaming from a vehicle { if(BoomboxInfo[streamingFromBoombox[i]][boomboxTurnedOn]) //if the boombox that i am streaming is on { if(!IsPlayerInRangeOfPoint(i, 30, BoomboxInfo[streamingFromBoombox[i]][bpos][0], BoomboxInfo[streamingFromBoombox[i]][bpos][1], BoomboxInfo[streamingFromBoombox[i]][bpos][2])) //player is not near { if(GetPlayerVirtualWorld(i) == BoomboxInfo[streamingFromBoombox[i]][BoomboxWorld]) { StopAudioStreamForPlayer(i); streamingFromBoombox[i] = -1; //set that players streaming variable to the player id which } } } else { StopAudioStreamForPlayer(i); streamingFromBoombox[i] = -1; //set that players streaming variable to the player id which } } } } if(IsHoldJetpacknWeapon(i)) { format(str, sizeof(str), "Possible exploit: [%d]%s is holding jetpack and weapon.", i, PlayerOOCName(i)); ABroadCast(COLOR_YELLOW, str, 1); } } return 1; } Timer:TaxiDrivingTime(playerid, taxi) { new str[128]; if(IsPlayerInAnyVehicle(playerid) && IsPlayerInTaxi[playerid] == 1 && IsPlayerInAnyVehicle(taxi)) { new Float:taxipos = ((GetPlayerDistanceFromPoint(taxi, TaxiFromCoords[PlayerTaxiDriver[playerid]][0], TaxiFromCoords[PlayerTaxiDriver[playerid]][1], TaxiFromCoords[PlayerTaxiDriver[playerid]][2]))/4); if( PlayerInfo[playerid][pCash] - TransportMoney[playerid] <= 1) { SendClientMessage( taxi, COLOR_LIGHTRED, "Your customer doesn't have anymore money to pay for this taxi ride!" ); RemovePlayerFromVehicle(playerid); return 1; } if(PlayerTied[playerid] == 0){ TransportMoney[taxi] = floatround(taxipos) * TransportValue[taxi]; format(str, sizeof(str), "~r~Distance: ~w~%d yards, ~g~$%d", floatround(taxipos), TransportMoney[taxi]); } else { format(str, sizeof(str), "~r~Distance: ~w~%d yards, ~g~$%d~n~~r~Passenger tied, money stopped.", floatround(taxipos), TransportMoney[taxi]); } displayCenterHUDInfo(playerid, str, 8); displayCenterHUDInfo(taxi, str, 8); } else { PlayerTaxiDriver[playerid] = -1; KillTimer(TaxiTiming[playerid]); IsPlayerInTaxi[playerid] = 0; } return 1; } //============================================================================== #include "./inc/factions/backup_system/tempFIX.inc" //============================================================================== /* Keep OnPlayerSecondSync tidy. Do not use timers for anything that uses player input to check if the time has been. Examples: restrict command usage to every 60 seconds. tap a key on the keyboard for 10 seconds. In other words anything you can use gettime() (UNIX timestamps) instead. Timers are last restort. */ Timer:OnPlayerSecondSync() { for( new playerid; playerid <= GetPlayerPoolSize(); playerid++ ) { //list functions only here. OnPlayerSecondSyncEx( playerid ); OnVehiclePlayerSecondSync( playerid ); OnFirePlayerSecondSync( playerid ); } #if defined SARP_BEACON_FIX UpdateBeacons(); #endif return 1; } /* DO, NOT, USE, THIS, FUNCTION !! Use above. */ forward OnPlayerSecondSyncEx(i); public OnPlayerSecondSyncEx(i) { new str[128]; if(gPlayerLogged[i] == 1) { //if(!IsPlayerConnected(i)) continue; if(GetTickCount() - pausetick[i] > 1000) // If they haven't updated in 1+ seconds, maybe increase... { PlayerPaused[i] = true; } else // ELSE!!! { PlayerPaused[i] = false; } new level = PlayerInfo[i][pLevel]; if(level >= 0 && level <= 2) { PlayerInfo[i][pPayCheck] += 1; } else if(level >= 3 && level <= 4) { PlayerInfo[i][pPayCheck] += 2; } else if(level >= 5 && level <= 6) { PlayerInfo[i][pPayCheck] += 3; } else if(level >= 7 && level <= 8) { PlayerInfo[i][pPayCheck] += 4; } else if(level >= 9 && level <= 10) { PlayerInfo[i][pPayCheck] += 5; } else if(level >= 11 && level <= 12) { PlayerInfo[i][pPayCheck] += 6; } else if(level >= 13 && level <= 14) { PlayerInfo[i][pPayCheck] += 7; } else if(level >= 15 && level <= 16) { PlayerInfo[i][pPayCheck] += 8; } else if(level >= 17 && level <= 18) { PlayerInfo[i][pPayCheck] += 9; } else if(level >= 19 && level <= 20) { PlayerInfo[i][pPayCheck] += 10; } else if(level >= 21) { PlayerInfo[i][pPayCheck] += 11; } OnDroneSignalCheck(i); if(PlayerInfo[i][pNMuteTime] > 0 && PlayerInfo[i][pNMuteTime] != -1) { PlayerInfo[i][pNMuteTime] -= 1000; if(PlayerInfo[i][pNMuteTime] <= 0 && PlayerInfo[i][pNMuteTime] != -1) { PlayerInfo[i][pNewbieMuted] = 0; SendClientMessage(i, COLOR_LIGHTBLUE, "* Your newbie chat mute has expired, you may use /n again."); PlayerInfo[i][pNMuteTime] = 0; } } if(PlayerInfo[i][pFKickTime] > 0 && PlayerInfo[i][pFKickTime] != -1) { PlayerInfo[i][pFKickTime] -= 1000; if(PlayerInfo[i][pFKickTime] <= 0 && PlayerInfo[i][pFKickTime] != -1) { SendClientMessage(i, COLOR_LIGHTBLUE, "* Your faction kill has expired - you can join factions again."); PlayerInfo[i][pFKickTime] = 0; } } if(PlayerInfo[i][pJailed] > 0) { if(!PlayerPaused[i]) { if(PlayerInfo[i][pJailTime] > 0 && WantLawyer[i] == 0) { PlayerInfo[i][pJailTime]--; } if(PlayerInfo[i][pJailTime] <= 0 && WantLawyer[i] == 0) { PlayerInfo[i][pJailTime] = 0; if(PlayerInfo[i][pJailed] == 1) { SetPlayerPos(i, -2204.19, 842.05, 9999.26); SetPlayerFacingAngle(i, 270.0); SetPlayerVirtualWorld(i, 10); SetPlayerInterior(i, 10); SetCameraBehindPlayer(i); } else if(PlayerInfo[i][pJailed] == 2) // Prison System { SetPlayerPos(i, 689.0182, 1509.9065, 9001.9629); SetPlayerFacingAngle(i, 270); SetPlayerSkin(i, 1); PlayerInfo[i][pModel] = 1; PlayerInfo[i][pJailnumber] = 0; SetPlayerInterior(i, DOC_INT); SetPlayerVirtualWorld(i, DOC_WORLD); UpdateDynamic3DTextLabelText(PNumber3D[i], COLOR_WHITE, " "); DestroyDynamic3DTextLabel(PNumber3D[i]); } else if(PlayerInfo[i][pJailed] == 3) { if(IsPlayerInRangeOfPoint(i, 40.0, 1789.1893, -1570.7909, 1636.9736)) { SetPlayerSkin(i, PlayerInfo[i][pModel]); SetPlayerInterior(i, 0); if(PrisonCell[i] == 0) { SetPlayerPos(i, 1773.7007, -1577.5149, 1636.9736); SetPlayerFacingAngle(i, 0.0); } if(PrisonCell[i] == 1) { SetPlayerPos(i, 1779.1671, -1577.4548, 1636.9736); SetPlayerFacingAngle(i, 0.0); } if(PrisonCell[i] == 2) { SetPlayerPos(i, 1784.6586, -1577.4518, 1636.9736); SetPlayerFacingAngle(i, 0.0); } if(PrisonCell[i] == 3) { SetPlayerPos(i, 1790.3481, -1577.4486, 1636.9736); SetPlayerFacingAngle(i, 0.0); } if(PrisonCell[i] == 4) { SetPlayerPos(i, 1795.4546, -1577.1248, 1636.9736); SetPlayerFacingAngle(i, 0.0); } if(PrisonCell[i] == 5) { SetPlayerPos(i, 1800.7770, -1577.1569, 1636.9736); SetPlayerFacingAngle(i, 0.0); } if(PrisonCell[i] == 6) { SetPlayerPos(i, 1800.7118, -1561.2797, 1636.9736); SetPlayerFacingAngle(i, 180.0); } if(PrisonCell[i] == 7) { SetPlayerPos(i, 1795.8535, -1561.3806, 1636.9736); SetPlayerFacingAngle(i, 180.0); } if(PrisonCell[i] == 8) { SetPlayerPos(i, 1790.4093, -1561.7704, 1636.9736); SetPlayerFacingAngle(i, 180.0); } if(PrisonCell[i] == 9) { SetPlayerPos(i, 1784.9886, -1561.7207, 1636.9736); SetPlayerFacingAngle(i, 180.0); } if(PrisonCell[i] == 10) { SetPlayerPos(i, 1779.1306, -1561.7352, 1636.9736); SetPlayerFacingAngle(i, 180.0); } if(PrisonCell[i] == 11) { SetPlayerPos(i, 1773.3928, -1561.7976, 1636.9736); SetPlayerFacingAngle(i, 180.0); } } if(IsPlayerInRangeOfPoint(i, 40.0, -2406.4944, 2072.3271, 991.6563)) //set the player to the prison exit { SetPlayerPos(i, -2409.2522, 2047.2119, 991.6563); SetPlayerFacingAngle(i, 90); } } else if(PlayerInfo[i][pJailed] == 4) { SetPlayerPos(i, 2651.0842, -2412.2305, 13.6276); SetPlayerFacingAngle(i, 88.3654); SetPlayerInterior(i, 0); SetPlayerVirtualWorld(i, 0); SetCameraBehindPlayer(i); } else if(PlayerInfo[i][pJailed] == 5) { SetPlayerPos(i, 1882.6892, 1884.4115, 27.5159); SetPlayerFacingAngle(i, 8.2919); SetCameraBehindPlayer(i); } PlayerInfo[i][pJailed] = 0; SendClientMessage(i, COLOR_GRAD1, "You have paid your debt to society."); format(str, sizeof(str), "~g~Freedom~n~~w~Try to be a better citizen."); displayCenterHUDInfo(i, str, 8); Timer_FreezePlayer(i, FREEZE, ENTER_FREEZE); SetCameraBehindPlayer(i); TogglePlayerControllable(i, 1); SetPlayerToTeamColor(i); SetPlayerSkin(i, PlayerInfo[i][pModel]); PlayerInfo[i][pClothes] = 0; ClearPrisonreason(i); if(PlayerInfo[i][pAdminJailed] == 1) { SetPlayerVirtualWorld(i, 0); SetPlayerInterior(i, 0); SetPlayerPos(i, 1538.8557, -1679.7494, 13.5469); PlayerInfo[i][pAdminJailed] = 0; } } } } //anti-moneycheat if(GetPlayerMoney(i) != PlayerInfo[i][pCash]) { ResetPlayerMoney(i); GivePlayerMoney(i, PlayerInfo[i][pCash]); } if(GetPlayerScore(i) != PlayerInfo[i][pLevel]) { SetPlayerScore(i, PlayerInfo[i][pLevel]); } //anti-jetpack if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK) { if(PlayerInfo[i][pAdmin] < 3) { if(!(aGun[i][12] == 21)) { anticheatbans ++; format(str, sizeof(str), "{FF6347}SERVER: %s was banned by ANTICHEAT, reason: Hacked Jetpack detected. (%d hackers banned)", PlayerICName(i), anticheatbans); SendClientMessageToAll(COLOR_WHITE, str); PlayerInfo[i][pBand] = 3; BanLog(str); format(str, sizeof(str), "Ban Reason: Hacked Jetpack detected - Banned by: ANTICHEAT"); strmid(PlayerInfo[i][pBanReason], str, 0, strlen(str)); BanExx(i); } } } //lockpick if(LockPickingBiz[i] != 999) { new biz = LockPickingBiz[i]; LockPickTime[i] ++; new maxLockPickTime = 25; format(str, sizeof(str), "~g~%d", maxLockPickTime -LockPickTime[i]); GameTextForPlayer(i, str, 1000, 3); if(!(IsPlayerInRangeOfPoint(i, 1.0, BizInfo[biz][bOutsideX], BizInfo[biz][bOutsideY], BizInfo[biz][bOutsideZ]))) { format(str, sizeof(str), "* Your attempt to lockpick the business has failed."); SendClientMessage(i, COLOR_LIGHTBLUE, str); displayCenterHUDInfo(i, "~w~Lockpick attempt~n~~r~failed.", 8); //display for 8 seconds LockPickingBiz[i] = 999; LockPickTime[i] = 0; } if(LockPickTime[i] >= maxLockPickTime && IsPlayerInRangeOfPoint(i, 1.0, BizInfo[biz][bOutsideX], BizInfo[biz][bOutsideY], BizInfo[biz][bOutsideZ])) { format(str, sizeof(str), "* You have successfully lockpicked this business, door unlocked."); SendClientMessage(i, COLOR_LIGHTBLUE, str); displayCenterHUDInfo(i, "~w~Lockpick attempt~n~~g~successful.", 8); //display for 8 seconds format(str, sizeof(str), "* %s has successfully lockpicked the business, door unlocked.", PlayerICName(i)); ProxDetector(30.0, i, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); format(str, sizeof(str), "{3D97E0}%s{FFFFFF}\nOwner: %s", BizInfo[biz][bName], BizInfo[biz][bOwner]); UpdateDynamic3DTextLabelText(Text3D:BizText[biz], COLOR_BIZTEXT, str); BizInfo[biz][bLocked] = 0; LockPickingBiz[i] = 999; LockPickTime[i] = 0; } } if(LockPickingHouse[i] != 999) { new house = LockPickingHouse[i]; LockPickTime[i] ++; new maxLockPickTime = 25; format(str, sizeof(str), "~g~%d", maxLockPickTime -LockPickTime[i]); GameTextForPlayer(i, str, 1000, 3); if(!(IsPlayerInRangeOfPoint(i, 1.0, HouseInfo[house][hOutsideX], HouseInfo[house][hOutsideY], HouseInfo[house][hOutsideZ]))) { format(str, sizeof(str), "* Your attempt to lockpick the house has failed."); SendClientMessage(i, COLOR_LIGHTBLUE, str); displayCenterHUDInfo(i, "~w~Lockpick attempt~n~~r~failed.", 8); //display for 8 seconds LockPickingHouse[i] = 999; LockPickTime[i] = 0; } if(LockPickTime[i] >= maxLockPickTime && IsPlayerInRangeOfPoint(i, 1.0, HouseInfo[house][hOutsideX], HouseInfo[house][hOutsideY], HouseInfo[house][hOutsideZ])) { format(str, sizeof(str), "* You have successfully lockpicked this house, door unlocked."); SendClientMessage(i, COLOR_LIGHTBLUE, str); displayCenterHUDInfo(i, "~w~Lockpick attempt~n~~g~successful.", 8); //display for 8 seconds format(str, sizeof(str), "* %s has successfully lockpicked the house, door unlocked.", PlayerICName(i)); ProxDetector(30.0, i, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); HouseInfo[house][hLocked] = 0; LockPickingHouse[i] = 999; LockPickTime[i] = 0; } } if(Guarding[i] != 999) { new Float:utx, Float:uty, Float:utz; GetPlayerPos(Guarding[i], utx, uty, utz); if(!IsPlayerInRangeOfPoint(i, 20, utx, uty, utz)) { SendClientMessage(i, COLOR_GREY, "You failed to guard your client."); SendClientMessage(Guarding[i], COLOR_GREY, "Your bodyguard has failed to guard you."); PlayerInfo[i][pAccount] -= (GuardingPrice[Guarding[i]] * 2); SetPlayerToTeamColor(Guarding[i]); SetPlayerToTeamColor(i); GuardedBy[Guarding[i]] = 999; GuardingPrice[Guarding[i]] = 0; Guarding[i] = 999; } } if(LoadObjects[i] >= 1) { LoadObjects[i] -= 1; if(LoadObjects[i] == 1) { TogglePlayerControllable(i, 1); LoadObjects[i] = 0; } } if(GotPlant[i] >= 1) { GotPlant[i] += 1; if(GotPlant[i] >= 10) { GotPlant[i] = 0; } } if(GotDrugs[i] >= 1) { GotDrugs[i] += 1; if(GotDrugs[i] >= 10) { GotDrugs[i] = 0; } } if(GotMats[i] >= 1) { GotMats[i] += 1; if(GotMats[i] >= 10) { GotMats[i] = 0; } } if(WantLawyer[i] >= 1) { CallLawyer[i] = 111; if(WantLawyer[i] == 1) { SendClientMessage(i, COLOR_LIGHTRED, "Do you want a Lawyer? (Type yes or no)"); } WantLawyer[i] ++; if(WantLawyer[i] == 8) { SendClientMessage(i, COLOR_LIGHTRED, "Do you want a Lawyer? (Type yes or no)"); } if(WantLawyer[i] == 15) { SendClientMessage(i, COLOR_LIGHTRED, "Do you want a Lawyer? (Type yes or no)"); } if(WantLawyer[i] == 20) { SendClientMessage(i, COLOR_LIGHTRED, "There is no Lawyer available to you anymore, Jail Time started."); WantLawyer[i] = 0; CallLawyer[i] = 0; } } if(PlayerStoned[i] >= 3) { PlayerStoned[i] += 1; //SetPlayerWeather(i, -66); //SetPlayerTime(i, 23, 0); if(IsPlayerInAnyVehicle(i)) { if(GetPlayerState(i) == 2) { if(PlayerStoned[i] == 10 || PlayerStoned[i] ==20 || PlayerStoned[i] ==30 || PlayerStoned[i] ==40 || PlayerStoned[i] ==50) { new Float:angle; GetVehicleZAngle(GetPlayerVehicleID(i), angle); new randomnum = random(2); if(randomnum != 1) { SetVehicleAngularVelocity(GetPlayerVehicleID(i), 0.0, 0.0, 0.035); } else { SetVehicleAngularVelocity(GetPlayerVehicleID(i), 0.0, 0.0, -0.036); } } } } if(PlayerStoned[i] == 60) { PlayerStoned[i] = 0; SendClientMessage(i, COLOR_GREY, "You are no longer stoned."); SetPlayerDrunkLevel(i, 0); SetPlayerWeather(i, g_WeatherID); new hour,minute,second; new day,month,year; gettime(hour,minute,second); getdate(year,month,day); hour = FixHour(hour); SetPlayerTime(i, hour, minute); } } if(calledTaxi[i] > 0) { calledTaxi[i] += 1; if(calledTaxi[i] == 120) { SetPlayerToTeamColor(i); calledTaxi[i] = 0; } } if(Called911[i] > 0) { Called911[i] += 1; if(Called911[i] == 600) { SetPlayerToTeamColor(i); Called911[i] = 0; } } if(PlayerInfo[i][pCarTime] > 0) { if(PlayerInfo[i][pCarTime] <= 0) { PlayerInfo[i][pCarTime] = 0; } else { PlayerInfo[i][pCarTime] -= 1; } } if(PlayerInfo[i][pDrugsTime] > 0) { if(PlayerInfo[i][pDrugsTime] <= 0) { PlayerInfo[i][pDrugsTime] = 0; } else { PlayerInfo[i][pDrugsTime] -= 1; } } if(PlayerInfo[i][pLawyerTime] > 0) { if(PlayerInfo[i][pLawyerTime] <= 0) { PlayerInfo[i][pLawyerTime] = 0; } else { PlayerInfo[i][pLawyerTime] -= 1; } } if(PlayerInfo[i][pLawyerFreeTime] > 0) { if(PlayerInfo[i][pLawyerFreeTime] <= 0) { PlayerInfo[i][pLawyerFreeTime] = 0; } else { PlayerInfo[i][pLawyerFreeTime] -= 1; } } if(PlayerInfo[i][pMechTime] > 0) { if(PlayerInfo[i][pMechTime] <= 0) { PlayerInfo[i][pMechTime] = 0; } else { PlayerInfo[i][pMechTime] -= 1; } } if(PlayerInfo[i][pSexTime] > 0) { if(PlayerInfo[i][pSexTime] <= 0) { PlayerInfo[i][pSexTime] = 0; } else { PlayerInfo[i][pSexTime] -= 1; } } if(PlayerInfo[i][pPlantTime] > 0) { if(PlayerInfo[i][pPlantTime] <= 0) { PlayerInfo[i][pPlantTime] = 0; } else { PlayerInfo[i][pPlantTime] -= 1; } } if(PlayerInfo[i][pRepairTime] > 0) { if(PlayerInfo[i][pRepairTime] <= 0) { PlayerInfo[i][pRepairTime] = 0; } else { PlayerInfo[i][pRepairTime] -= 1; } } if(PlayerInfo[i][pRobTime] > 0) { PlayerInfo[i][pRobTime] -= 1; if(PlayerInfo[i][pRobTime] == 0) { PlayerInfo[i][pRobTime] = 0; DestroyDynamic3DTextLabel(ThiefText[i]); ThiefText[i] = Text3D:INVALID_3DTEXT_ID; } } if(vipRepairTime[i] > 0) { if(vipRepairTime[i] <= 0) { vipRepairTime[i] = 0; } else { vipRepairTime[i] -= 1; } } if(BoxWaitTime[i] > 0) { if(BoxWaitTime[i] >= BoxDelay) { BoxDelay = 0; BoxWaitTime[i] = 0; PlayerPlaySound(i, 1057, 0.0, 0.0, 0.0); displayCenterHUDInfo(i, "~g~Match started.", 8); //display for 8 seconds TogglePlayerControllable(i, 1); RoundStarted = 1; } else { format(str, sizeof(str), "~w~Time: ~r~%d", BoxDelay - BoxWaitTime[i]); displayCenterHUDInfo(i, str, 8); //display for 8 seconds BoxWaitTime[i] += 1; } } if(RoundStarted > 0) { if(PlayerBoxing[i] > 0) { new trigger = 0; new Lost = 0; new Float:angle; new Float:health; GetPlayerHealth(i, health); if(health < 12) { if(i == Boxer1) { Lost = 1; trigger = 1; } else if(i == Boxer2) { Lost = 2; trigger = 1; } } if(health < 28) { GetPlayerFacingAngle(i, angle); SetPlayerFacingAngle(i, angle + 85); } if(trigger) { new winner[MAX_PLAYER_NAME]; new loser[MAX_PLAYER_NAME]; new titel[MAX_PLAYER_NAME]; if(Lost == 1) { if(IsPlayerConnected(Boxer1) && IsPlayerConnected(Boxer2)) { SetPlayerPos(Boxer1, 765.8433, 3.2924, 1000.7186); SetPlayerPos(Boxer2, 765.8433, 3.2924, 1000.7186); SetPlayerInterior(Boxer1, 5); SetPlayerInterior(Boxer2, 5); GetPlayerICName(Boxer1, loser, sizeof(loser)); GetPlayerICName(Boxer2, winner, sizeof(winner)); if(PlayerInfo[Boxer1][pJob] == 12) { PlayerInfo[Boxer1][pLoses] += 1; } if(PlayerInfo[Boxer2][pJob] == 12) { PlayerInfo[Boxer2][pWins] += 1; } if(TBoxer < 255) { if(IsPlayerConnected(TBoxer)) { if(TBoxer != Boxer2) { if(PlayerInfo[Boxer2][pJob] == 12) { TBoxer = Boxer2; GetPlayerICName(TBoxer, titel, sizeof(titel)); new nstring[MAX_PLAYER_NAME]; format(nstring, sizeof(nstring), "%s", titel); strmid(Titel[TitelName], nstring, 0, strlen(nstring)); Titel[TitelWins] = PlayerInfo[TBoxer][pWins]; Titel[TitelLoses] = PlayerInfo[TBoxer][pLoses]; SaveBoxer(); format(str, sizeof(str), "Boxing News: %s has Won the fight against Champion %s and is now the new Boxing Champion.", titel, loser); BoxingAnn(COLOR_WHITE, str); } else { SendClientMessage(Boxer2, COLOR_LIGHTBLUE, "* You would have been the Champion if you had the Boxer Job."); } } else { GetPlayerICName(TBoxer, titel, sizeof(titel)); format(str, sizeof(str), "Boxing News: Boxing Champion %s has Won the fight against %s.", titel, loser); BoxingAnn(COLOR_WHITE, str); Titel[TitelWins] = PlayerInfo[TBoxer][pWins]; Titel[TitelLoses] = PlayerInfo[Boxer2][pLoses]; SaveBoxer(); } } }//TBoxer format(str, sizeof(str), "* You have Lost the Fight against %s, you will be unfrozen in 3 seconds.", winner); SendClientMessage(Boxer1, COLOR_LIGHTBLUE, str); displayCenterHUDInfo(Boxer1, "~r~You lose.", 8); //display for 8 seconds format(str, sizeof(str), "* You have Won the Fight against %s, you will be unfrozen in 3 seconds.", loser); SendClientMessage(Boxer2, COLOR_LIGHTBLUE, str); displayCenterHUDInfo(Boxer2, "~r~You win.", 8); //display for 8 seconds if(GetPlayerHealth(Boxer1, health) < 20) { SendClientMessage(Boxer1, COLOR_LIGHTBLUE, "* You feel exhausted from the Fight, go eat somewhere."); SetPlayerHealth(Boxer1, 30.0); } else { SendClientMessage(Boxer1, COLOR_LIGHTBLUE, "* You feel perfect, even after the Fight."); SetPlayerHealth(Boxer1, 50.0); } if(GetPlayerHealth(Boxer2, health) < 20) { SendClientMessage(Boxer2, COLOR_LIGHTBLUE, "* You feel exhausted from the Fight, go eat somewhere."); SetPlayerHealth(Boxer2, 30.0); } else { SendClientMessage(Boxer2, COLOR_LIGHTBLUE, "* You feel perfect, even after the Fight."); SetPlayerHealth(Boxer2, 50.0); } displayCenterHUDInfo(Boxer1, "~g~Match over.", 8); //display for 8 seconds displayCenterHUDInfo(Boxer2, "~g~Match over.", 8); //display for 8 seconds if(PlayerInfo[Boxer2][pJob] == 12) { PlayerInfo[Boxer2][pBoxSkill] += 1; } PlayerBoxing[Boxer1] = 0; PlayerBoxing[Boxer2] = 0; TogglePlayerControllable(Boxer1, false); TogglePlayerControllable(Boxer2, false); SetTimerEx("Timer_UnfreezeBoxing", 3000, false, "i", Boxer1); SetTimerEx("Timer_UnfreezeBoxing", 3000, false, "i", Boxer2); SetPlayerArmour(Boxer2, PlayerKevBox[Boxer2]); SetPlayerArmour(Boxer1, PlayerKevBox[Boxer1]); PlayerKevBox[Boxer2] = 0; PlayerKevBox[Boxer1] = 0; SetPlayerPos(Boxer1, 765.9211, 10.2208, 1000.7089); TextDrawHideForPlayer(Boxer1, Text:DieText); TextDrawHideForPlayer(Boxer1, Text:InjuredText); pInHospital[Boxer1] = 0; pDeathState[Boxer1] = PLAYER_STATE_NORMAL; PlayerCalledEMS[Boxer1] = 0; ApplyAnimationEx(Boxer1, "PED", "getup_front", 4.0, 0, 1, 1, 0, 0, 1); for(new temp = 0; temp <= 12; temp++) { lastpguns[Boxer1][temp][0] = 0; lastpguns[Boxer1][temp][1] = 0; } } } else if(Lost == 2) { if(IsPlayerConnected(Boxer1) && IsPlayerConnected(Boxer2)) { SetPlayerPos(Boxer1, 765.8433, 3.2924, 1000.7186); SetPlayerPos(Boxer2, 765.8433, 3.2924, 1000.7186); SetPlayerInterior(Boxer1, 5); SetPlayerInterior(Boxer2, 5); GetPlayerICName(Boxer1, winner, sizeof(winner)); GetPlayerICName(Boxer2, loser, sizeof(loser)); if(PlayerInfo[Boxer2][pJob] == 12) { PlayerInfo[Boxer2][pLoses] += 1; } if(PlayerInfo[Boxer1][pJob] == 12) { PlayerInfo[Boxer1][pWins] += 1; } if(TBoxer < 255) { if(IsPlayerConnected(TBoxer)) { if(TBoxer != Boxer1) { if(PlayerInfo[Boxer1][pJob] == 12) { TBoxer = Boxer1; GetPlayerICName(TBoxer, titel, sizeof(titel)); new nstring[MAX_PLAYER_NAME]; format(nstring, sizeof(nstring), "%s", titel); strmid(Titel[TitelName], nstring, 0, strlen(nstring)); Titel[TitelWins] = PlayerInfo[TBoxer][pWins]; Titel[TitelLoses] = PlayerInfo[TBoxer][pLoses]; SaveBoxer(); format(str, sizeof(str), "Boxing News: %s has Won the fight against Champion %s and is now the new Boxing Champion.", titel, loser); BoxingAnn(COLOR_WHITE, str); } else { SendClientMessage(Boxer1, COLOR_LIGHTBLUE, "* You would have been the Champion if you had the Boxer Job."); } } else { GetPlayerICName(TBoxer, titel, sizeof(titel)); format(str, sizeof(str), "Boxing News: Boxing Champion %s has Won the fight against %s.", titel, loser); BoxingAnn(COLOR_WHITE, str); Titel[TitelWins] = PlayerInfo[TBoxer][pWins]; Titel[TitelLoses] = PlayerInfo[Boxer1][pLoses]; SaveBoxer(); } } }//TBoxer format(str, sizeof(str), "* You have Lost the Fight against %s, you will be unfrozen in 3 seconds.", winner); SendClientMessage(Boxer2, COLOR_LIGHTBLUE, str); displayCenterHUDInfo(Boxer2, "~r~You lost", 8); //display for 8 seconds format(str, sizeof(str), "* You have Won the Fight against %s, you will be unfrozen in 3 seconds.", loser); SendClientMessage(Boxer1, COLOR_LIGHTBLUE, str); displayCenterHUDInfo(Boxer1, "~r~You lost", 8); //display for 8 seconds if(GetPlayerHealth(Boxer1, health) < 20) { SendClientMessage(Boxer1, COLOR_LIGHTBLUE, "* You feel exhausted from the Fight, go eat somewhere."); SetPlayerHealth(Boxer1, 30.0); } else { SendClientMessage(Boxer1, COLOR_LIGHTBLUE, "* You feel perfect, even after the Fight."); SetPlayerHealth(Boxer1, 50.0); } if(GetPlayerHealth(Boxer2, health) < 20) { SendClientMessage(Boxer2, COLOR_LIGHTBLUE, "* You feel exhausted from the Fight, go eat somewhere."); SetPlayerHealth(Boxer2, 30.0); } else { SendClientMessage(Boxer2, COLOR_LIGHTBLUE, "* You feel perfect, even after the Fight."); SetPlayerHealth(Boxer2, 50.0); } displayCenterHUDInfo(Boxer1, "~g~Match Over", 8); //display for 8 seconds displayCenterHUDInfo(Boxer2, "~g~Match Over", 8); //display for 8 seconds if(PlayerInfo[Boxer1][pJob] == 12) { PlayerInfo[Boxer1][pBoxSkill] += 1; } PlayerBoxing[Boxer1] = 0; PlayerBoxing[Boxer2] = 0; TogglePlayerControllable(Boxer1, false); TogglePlayerControllable(Boxer2, false); SetTimerEx("Timer_UnfreezeBoxing", 3000, false, "i", Boxer1); SetTimerEx("Timer_UnfreezeBoxing", 3000, false, "i", Boxer2); SetPlayerArmour(Boxer2, PlayerKevBox[Boxer2]); SetPlayerArmour(Boxer1, PlayerKevBox[Boxer1]); PlayerKevBox[Boxer2] = 0; PlayerKevBox[Boxer1] = 0; SetPlayerPos(Boxer1, 765.9211, 10.2208, 1000.7089); TextDrawHideForPlayer(Boxer1, Text:DieText); TextDrawHideForPlayer(Boxer1, Text:InjuredText); pInHospital[Boxer1] = 0; pDeathState[Boxer1] = PLAYER_STATE_NORMAL; PlayerCalledEMS[Boxer1] = 0; ApplyAnimationEx(Boxer1, "PED", "getup_front", 4.0, 0, 1, 1, 0, 0, 1); for(new temp = 0; temp <= 12; temp++) { lastpguns[Boxer1][temp][0] = 0; lastpguns[Boxer1][temp][1] = 0; } } } InRing = 0; RoundStarted = 0; TogglePlayerControllable(Boxer1, false); TogglePlayerControllable(Boxer2, false); SetTimerEx("Timer_UnfreezeBoxing", 3000, false, "i", Boxer1); SetTimerEx("Timer_UnfreezeBoxing", 3000, false, "i", Boxer2); Boxer1 = 255; Boxer2 = 255; TBoxer = 255; trigger = 0; } } } // Detective job detective_SecondSync(i); if(TaxiCallTime[i] > 0) { if(TaxiAccepted[i] < 999) { if(IsPlayerConnected(TaxiAccepted[i])) { new Float:X, Float:Y, Float:Z; GetPlayerPos(TaxiAccepted[i], X, Y, Z); SetPlayerCheckpointEx(i, X, Y, Z, 5); } } } if(BusCallTime[i] > 0) { if(BusAccepted[i] < 999) { if(IsPlayerConnected(BusAccepted[i])) { new Float:X, Float:Y, Float:Z; GetPlayerPos(BusAccepted[i], X, Y, Z); SetPlayerCheckpointEx(i, X, Y, Z, 5); } } } if(MedicCallTime[i] > 0) { if(MedicCallTime[i] == 30) { MedicCallTime[i] = 0; DisablePlayerCheckpointEx(i); PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); displayCenterHUDInfo(i, "~r~Redmarker gone.", 8); } else { format(str, sizeof(str), "~r~Time: ~w~%d", 30 - MedicCallTime[i]); displayCenterHUDInfo(i, str, 8); MedicCallTime[i] += 1; } } if(LawyerCallTime[i] > 0) { if(LawyerCallTime[i] == 30) { LawyerCallTime[i] = 0; DisablePlayerCheckpointEx(i); PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); displayCenterHUDInfo(i, "~r~Redmarker gone.", 8); } else { format(str, sizeof(str), "~r~Time: ~w~%d", 30 - LawyerCallTime[i]); displayCenterHUDInfo(i, str, 8); LawyerCallTime[i] += 1; } } if(MechanicCallTime[i] > 0) { if(MechanicCallTime[i] == 30) { MechanicCallTime[i] = 0; DisablePlayerCheckpointEx(i); PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); displayCenterHUDInfo(i, "~r~Redmarker gone.", 8); } else { format(str, sizeof(str), "~r~Time: ~w~%d", 30 - MechanicCallTime[i]); displayCenterHUDInfo(i, str, 8); MechanicCallTime[i] += 1; } } if(PlayerTazed[i] == 1) { if(PlayerTazedTime[i] <= 0) { setPlayerUntazed(i); } else { PlayerTazedTime[i] -= 1; } } if(PlayerCuffed[i] > 0) { if(PlayerCuffedTime[i] <= 0) { displayCenterHUDInfo(i, "~w~You broke free of the cuffs~n~~g~You are free!", 8); setPlayerUncuffed(i); } else { PlayerCuffedTime[i] -= 1; } } if(PlayerTied[i] == 1) { if(PlayerTiedTime[i] <= 0) { displayCenterHUDInfo(i, "~w~You broke free of the ropes~n~~g~You are free.", 8); SetCameraBehindPlayer(i); PlayerBlinded[i] = 0; TogglePlayerControllable(i, 1); PlayerTied[i] = 0; PlayerTiedTime[i] = 0; } else { PlayerTiedTime[i] -= 1; } } if(GetPlayerState(i) == PLAYER_STATE_DRIVER && !IsAtEvent[i]) { new dynvehID = GetDynamicVehicleID(GetPlayerVehicleID(i)); if(!(PlayerInfo[i][pMember] >= sVehicleInfo[dynvehID][v_faction] || PlayerInfo[i][pGroup] == GROUP_S9)) { if(!(PlayerInfo[i][pJob] == 14 && sVehicleInfo[dynvehID][v_faction] == 10)) { RemovePlayerFromVehicle(i); } } else if(IsDMVCar(GetPlayerVehicleID(i))) { if(dmvSlot[i] == 0) { RemovePlayerFromVehicle(i); } } else if(IsATaxiCar(GetPlayerVehicleID(i)) && i != DOCbus) { if(PlayerInfo[i][pMember] != 10 && PlayerInfo[i][pJob] != 14 || PlayerInfo[i][pHelper] == 0 && HelpingNewbie[i] == true) { RemovePlayerFromVehicle(i); } } } if(usePayphone[i] != -1 && IsPlayerNearPayPhone(i) == -1) { SendClientMessage(i, COLOR_GREY, "You left the phone stand."); payPhone[usePayphone[i]][inUse] = 0; usePayphone[i] = -1; detachPhoneFromPlayer(Mobile[i]); if(!cellMuted[i]) { playLocalSound(Mobile[i], SMS_RECIEVED, 2.0, 0); } CellTime[Mobile[i]] = 0; CellTime[i] = 0; SendClientMessage(Mobile[i], COLOR_GRAD2, "The line just went dead..."); Mobile[Mobile[i]] = 999; Mobile[i] = 999; } if(hotWireTime[i] == 0 && hotWireVeh[i] > 0) { new vehid = hotWireVeh[i]; if(Gas[vehid] > 1) { new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(vehid, engine, lights, alarm, doors, bonnet, boot, objective); SetVehicleParamsEx(vehid, VEHICLE_PARAMS_ON, lights, alarm, doors, bonnet, boot, objective); engineOn[vehid] = 1; playerDisabledEngine[vehid] = 0; displayCenterHUDInfo(i, "~g~Success", 8); //display for 8 seconds } else SendClientMessage(i, COLOR_GREY, "This vehicle is out of fuel."); hotWireVeh[i] = -1; } if(hotWireTime[i] > 0) { hotWireTime[i]--; displayCenterHUDInfo(i, "~g~Hotwiring...", 8); //display for 8 seconds } //doing their license test if(dmvSlot[i] > 0) { if(GetVehicleSpeed(GetPlayerVehicleID(i)) > 52) { autoFailed[i] = true; } } if(HospitalTime[i] > 0) { if(HospitalTime[i] > 49) //finished hospital { releasePlayerFromHospital(i); HospitalTime[i] = 0; //relase } else { new Float:health; GetPlayerHealth(i, health); SetPlayerHealth(i, health += 1); //increment HospitalTime[i] += 1; } } if(pDeathState[i] == PLAYER_STATE_REVIVE) { if(PlayerCalledEMS[i] == 1) { if(EMSArrived[i] == 0) { displayCenterHUDInfo(i, "~w~Awaiting ~r~EMS~w~...", 8); //display for 8 seconds } } DeathPos[i][DeathHP] -= 0.20; SetPlayerHealth(i, DeathPos[i][DeathHP]); if(GetPlayerAnimationIndex(i) != 1151) ApplyAnimationEx(i, "PED", "FLOOR_hit_f", 4.0, 0, 1, 1, 1, 0, 1); if(DeathPos[i][DeathHP] <= 1) { SetPlayerHealth(i, 0); pDeathState[i] = PLAYER_STATE_INHOSP; PlayerCalledEMS[i] = 0; } } if(hasTruckCheckpoint[i] != -1) { new vehicleid = GarbageTruck[hasTruckCheckpoint[i]][vehicle_id]; //reset the checkpoint (in case the truck moves) new Float:vehX, Float:vehY, Float:vehZ, Float:vehA; GetVehiclePos(vehicleid, vehX, vehY, vehZ); GetVehicleZAngle(vehicleid, vehA); vehX -= (3 * floatsin(-vehA, degrees)); vehY -= (3 * floatcos(-vehA, degrees)); SetPlayerCheckpointEx(i, vehX, vehY, vehZ, 3.0); //set checkpoint ID CP[i] = CHECKPOINT_GARBAGE; } if(autoChatTime[i] > 0) //this returns so keep it at bottom { new currAnim = GetPlayerAnimationIndex(i); if(currAnim != 1189 && currAnim != 1231 && currAnim != 320 && currAnim != 1192 && currAnim != 1183 && currAnim != 1188) //walking or standing idle { autoChatTime[i] = 0; } autoChatTime[i] -= 1; if(autoChatTime[i] <= 0) { ApplyAnimationEx(i, "PED", "IDLE_CHAT", 4.1, 0, 0, 0, 0, 1); autoChatTime[i] = 0; } } if(ExitTimer[i] > 0) { ExitTimer[i]--; } if(WireOfferID[i] != INVALID_PLAYER_ID) { new Float: a[3], Float: b[3]; GetPlayerPos(WireOfferID[i], a[0], a[1], a[2]); if(a[0] == buggedPos[0][WireOfferID[i]] && a[1] == buggedPos[1][WireOfferID[i]] && a[2] == buggedPos[2][WireOfferID[i]]) { GetPlayerPos(i, b[0], b[1], b[2]); if(b[0] == buggedPos[0][i] && b[1] == buggedPos[1][i] && b[2] == buggedPos[2][i]) { if(PlayerInfo[i][pID] == 7752 || PlayerInfo[i][pID] == 7753) { format(str, sizeof(str), "* You planted a bug on %s.", PlayerICName(i)); SendClientMessage(WireOfferID[i], COLOR_LIGHTBLUE, str); } else { format(str, sizeof(str), "* You planted a bug on %s.", PlayerICName(i)); SendClientMessage(WireOfferID[i], COLOR_LIGHTBLUE, str); PlayerInfo[i][pWire] = 1; WireOfferID[i] = INVALID_PLAYER_ID; printf("%s GOT BUGGED /PLANTBUG", PlayerOOCName(i)); } } else { SendClientMessage(WireOfferID[i], COLOR_GREY, "Your attempt was not successful because your target moved."); WireOfferID[i] = INVALID_PLAYER_ID; } } else { SendClientMessage(WireOfferID[i], COLOR_GREY, "Your attempt was not successful because you moved."); WireOfferID[i] = INVALID_PLAYER_ID; } } if(cameraLive == false) { if(WatchingTV[i] == true) { WatchingTV[i] = false; SetPlayerPos(i, PlayerInfo[i][pSPos_x], PlayerInfo[i][pSPos_y], PlayerInfo[i][pSPos_z]); SetPlayerFacingAngle(i, PlayerInfo[i][pSPos_r]); SetPlayerVirtualWorld(i, PlayerInfo[i][pVirtualWorld]); SetPlayerInterior(i, PlayerInfo[i][pInt]); TogglePlayerControllable(i, 1); SetCameraBehindPlayer(i); Timer_FreezePlayer(i, FREEZE, ENTER_FREEZE); SendClientMessage(i, COLOR_GRAD1, "Something went wrong with the San Andreas Network channel."); } } if(PlayerInfo[i][pJob] == 21 && onpizzadelivery[i] == 1) { if(IsPlayerInAnyVehicle(i) && GetVehicleModel(GetPlayerVehicleID(i)) == 448) { if(GetPlayerProgressBarValue(i, pizzajobdeliveryid[i]) > 0) { SetPlayerProgressBarValue(i, pizzajobdeliveryid[i], GetPlayerProgressBarValue(i, pizzajobdeliveryid[i])-0.5); } else { SendClientMessage(i, -1, "You have failed to deliver the pizza on time."); cancelpizzadelivery(i); } } } if(beingtreatedtime[i] > 0) { beingtreatedtime[i] -= 1; new heartRate = beingtreatedtime[i]; if(heartRate > 150 || heartRate < 1) { SendClientMessage(i, COLOR_LIGHTBLUE, "Your heart rate was extremely unstable and your treatment has failed."); format(str, sizeof(str), "%s's treatment has failed due to an extremely unstable heart rate.", PlayerICName(i)); SendParaMessage(COLOR_DOCTOR, str); pDeathState[i] = PLAYER_STATE_REVIVE; SetPlayerHealth(i, 0); TogglePlayerControllable(i, true); SetCameraBehindPlayer(i); displayCenterHUDInfo(i, "~r~Treatment failed.", 8); ResetPlayerWeapons(i); ClearGuns(i); ResetPlayerAdminWeaponsEx(i); // Make the room available again if(istreatedinallsaints[i] == 1) { allsaintsrooms[treatedinroom[i]] = 0; } if(istreatedinallsaints[i] == 0) { countygenrooms[treatedinroom[i]] = 0; } treatedinroom[i] = 0; beingtreatedtime[i] = 0; } } if(PlayerInfo[i][pReqUnmute] > 0) PlayerInfo[i][pReqUnmute] --; if(PlayerInfo[i][pRepMuted] > 0) PlayerInfo[i][pRepMuted] --; if(PlayerInfo[i][pReqNC] > 0) PlayerInfo[i][pReqNC] --; if(breakingpcuffs[i] != INVALID_PLAYER_ID) { if(!IsPlayerInRangeOfPlayer(2.0, i, breakingpcuffs[i])) { SendClientMessage(i, COLOR_GREY, "You moved from the player and failed breaking his cuffs."); HidePlayerProgressBar(i, breakcuffs[i]); HidePlayerProgressBar(breakingpcuffs[i], breakcuffs[i]); breakingpcuffs[i] = INVALID_PLAYER_ID; isbreakingcuffs[i] = false; } else if((IsPlayerRestricted(i))) { SendClientMessage(i, COLOR_GREY, "You failed to break that player's cuffs."); HidePlayerProgressBar(i, breakcuffs[i]); HidePlayerProgressBar(breakingpcuffs[i], breakcuffs[i]); breakingpcuffs[i] = INVALID_PLAYER_ID; isbreakingcuffs[i] = false; } } // For /fall(ing) command if(IsFallingFromInterior(i)) { fallingSeconds[i]++; if(fallingSeconds[i] == 3) { SendClientMessage(i, COLOR_YELLOW, "The server has detected that you might be falling from an interior."); SendClientMessage(i, COLOR_YELLOW, "If this is the case, please use /fall(ing) to get teleported to safety."); } } else fallingSeconds[i] = 0; } else { if(GetPlayerState(i) == PLAYER_STATE_ONFOOT) { format(str, sizeof(str), "RellexDebug: %s has been kicked - loopa cheat", PlayerName(i)); printf(str); Kick(i); } } return 1; } //============================================================================== Timer:TazerTimer(playerid) { if(IsPlayerConnected(playerid)) { if(TazerTime[playerid] == 1) { TazerTime[playerid] = 0; } } } //============================================================================== //============================================================================== stock SetPlayerWeapons(playerid) { if(IsPlayerConnected(playerid)) { ResetPlayerWeapons(playerid); if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4) { GivePlayerGun(playerid, 42); } if(PlayerInfo[playerid][pGun12] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun12], 65000); if(PlayerInfo[playerid][pGun11] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun11], 65000); if(PlayerInfo[playerid][pGun10] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun10], 65000); if(PlayerInfo[playerid][pGun9] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun9], 65000); if(PlayerInfo[playerid][pGun8] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun8], 2); if(PlayerInfo[playerid][pGun7] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun7], 65000); if(PlayerInfo[playerid][pGun6] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun6], 65000); if(PlayerInfo[playerid][pGun5] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun5], 65000); if(PlayerInfo[playerid][pGun4] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun4], 65000); if(PlayerInfo[playerid][pGun3] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun3], 65000); if(PlayerInfo[playerid][pGun2] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun2], 65000); if(PlayerInfo[playerid][pGun1] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun1], 65000); if(PlayerInfo[playerid][pGun0] > 0) GivePlayerWeapon(playerid, PlayerInfo[playerid][pGun0], 65000); new weapondata, ammo; GetPlayerWeaponData(playerid, 0, weapondata, ammo); // Fist or brass knuckles SetPlayerArmedWeapon(playerid, weapondata); } return 1; } public IPCheckResponse(playerid, response_code, data[])// /ipcheck system fully fixed by Shadow { new str[1024]; if(response_code == 200) { new inform[11][128]; split(data, inform, ';'); new dotcount = 0; for(new i = 0; i < strlen(ipchecking[playerid]); i++) { if(ipchecking[playerid][i] == '.') dotcount++; } if(dotcount == 3) { format(str, sizeof(str), "%s's information:", inform[2]); } else { format(str, sizeof(str), "%s's (IP: %s) information:", ipchecking[playerid], inform[2]); } SendClientMessage(playerid, COLOR_YELLOW, str); format(str, sizeof(str), "Country: %s (%s).", inform[4], inform[3]); SendClientMessage(playerid, COLOR_GRAD1, str); format(str, sizeof(str), "City, State: %s, %s (ZIP: %d).", inform[6], inform[5], strval(inform[7])); SendClientMessage(playerid, COLOR_GRAD1, str); format(str, sizeof(str), "Longitude: %s, Latitude: %s, Timezone: %s.", inform[8], inform[9], inform[10]); SendClientMessage(playerid, COLOR_GRAD1, str); } else { format(str, sizeof(str), "IP Check had an issue and returned the response code %d.", response_code); SendClientMessage(playerid, COLOR_GRAD2, str); } return 1; } stock ShowProfile(playerid, targetid) { new pmember = PlayerInfo[targetid][pMember]; new pleader = PlayerInfo[targetid][pLeader]; new fakefaction = FakeFaction[targetid]; new name[MAX_PLAYER_NAME]; GetPlayerName(targetid, name, sizeof(name)); new age = PlayerInfo[targetid][pAge]; new rank; if(PlayerInfo[targetid][pMember] == 11 && FakeFaction[targetid] == 0) rank = 0; else if (PlayerInfo[targetid][pMember] == 11) rank = FakeRank[playerid]; else if (PlayerInfo[targetid][pMember] == FACTION_FBI) rank = 0; else rank = PlayerInfo[targetid][pRank]; new ftext[64]; if(pmember == 1 || pleader == 1 || fakefaction == 1) { ftext = "SAPD"; } else if(pmember == 3 || pleader == 3 || fakefaction == 3) { ftext = "SASD"; } else if(pmember == 4 || pleader == 4 || fakefaction == 4) { ftext = "SAFMD"; } else if(pmember == 5 || pleader == 5 || fakefaction == 5) { ftext = "DoC"; } else if(pmember == 6 || pleader == 6 || fakefaction == 6) { ftext = "Government"; } else if(pmember == 9 || pleader == 9 || fakefaction == 9) { ftext = "News Agency"; } else if(pmember == 10 || pleader == 10 || fakefaction == 10) { ftext = "San Andreas Taxi Company"; } else if(pmember == 12 || pleader == 12) { ftext = "DEA"; } else if(pmember == 13 || pleader == 13) { ftext = "ATF"; } else if(pmember == 14 || pleader == 14) { //ftext = "SANG"; ftext = "AFSA"; } else { ftext = "None"; } new info[128]; new htext[40]; // House if(PlayerInfo[targetid][pHouseID] == 0) { htext = "None"; } else { new location[MAX_ZONE_NAME]; Get2DZone(location, MAX_ZONE_NAME, HouseInfo[PlayerInfo[targetid][pHouseID]][hOutsideX], HouseInfo[PlayerInfo[targetid][pHouseID]][hOutsideY], HouseInfo[PlayerInfo[targetid][pHouseID]][hOutsideZ]); format(htext, sizeof(htext), "%d %s", PlayerInfo[targetid][pHouseID], location); } SendClientMessage(playerid, COLOR_WHITE, "Profile Information:"); format(info, sizeof(info), "Name: %s", name); SendClientMessage(playerid, COLOR_GREY, info); format(info, sizeof(info), "Age: %d", age); SendClientMessage(playerid, COLOR_GREY, info); format(info, sizeof(info), "Organisation: %s", ftext); SendClientMessage(playerid, COLOR_GREY, info); format(info, sizeof(info), "House Address: %s", htext); SendClientMessage(playerid, COLOR_GREY, info); format(info, sizeof(info), "Rank: %d", rank); SendClientMessage(playerid, COLOR_GREY, info); format(info, sizeof(info), "Cellphone: %d", PlayerInfo[targetid][pPnumber]); SendClientMessage(playerid, COLOR_GREY, info); return 1; } //============================================================================== SetPlayerToTeamColor(playerid) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pMember] == 0 && PlayerInfo[playerid][pLeader] == 0 && PlayerInfo[playerid][pHAFakeBadge] == 0) //CIVILIAN { SetPlayerColor(playerid, TCOLOR_WHITE); } else if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pHAFakeBadge] == 1 || FakeFaction[playerid] == 1) //SAPD { if(PlayerInfo[playerid][pOnDuty] == 1) { SetPlayerColor(playerid, TCOLOR_BLUE); } else { SetPlayerColor(playerid, TCOLOR_WHITE); } } else if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pHAFakeBadge] == 2) //FBI { if(PlayerInfo[playerid][pOnDuty] == 1) { SetPlayerColor(playerid, TCOLOR_NAVYBLUE); } else { SetPlayerColor(playerid, TCOLOR_WHITE); } } else if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pHAFakeBadge] == 3) //SASD { if(PlayerInfo[playerid][pOnDuty] == 1) { SetPlayerColor(playerid, TCOLOR_BEIGE); } else { SetPlayerColor(playerid, TCOLOR_WHITE); } } else if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4 || PlayerInfo[playerid][pHAFakeBadge] == 4 || FakeFaction[playerid] == 4) //PARAMEDIC { if(PlayerInfo[playerid][pOnDuty] == 1) { SetPlayerColor(playerid, TCOLOR_PARAMEDIC); } else { SetPlayerColor(playerid, TCOLOR_WHITE); } } else if(PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5 || PlayerInfo[playerid][pHAFakeBadge] == 5 || FakeFaction[playerid] == 5) //DoC { if(PlayerInfo[playerid][pOnDuty] == 1) { SetPlayerColor(playerid, COLOR_DOC_NAMETAG); } else { SetPlayerColor(playerid, TCOLOR_WHITE); } } else if(PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6 || PlayerInfo[playerid][pHAFakeBadge] == 6 || FakeFaction[playerid] == 6) //SENATE { if(PlayerInfo[playerid][pOnDuty] == 1) { SetPlayerColor(playerid, TCOLOR_SENATE); } else { SetPlayerColor(playerid, TCOLOR_WHITE); } } else if(PlayerInfo[playerid][pMember] == 7 || PlayerInfo[playerid][pLeader] == 7 || PlayerInfo[playerid][pHAFakeBadge] == 7) //HIGH COURT { if(PlayerInfo[playerid][pOnDuty] == 1) { SetPlayerColor(playerid, TCOLOR_HIGHCOURT); } else { SetPlayerColor(playerid, TCOLOR_WHITE); } } else if(PlayerInfo[playerid][pMember] == 9 || PlayerInfo[playerid][pLeader] == 9) { if(PlayerInfo[playerid][pOnDuty] == 1) { SetPlayerColor(playerid, TCOLOR_LIGHTBLUE); } else { SetPlayerColor(playerid, TCOLOR_WHITE); } } else if(PlayerInfo[playerid][pMember] == 10 || PlayerInfo[playerid][pLeader] == 10) { SetPlayerColor(playerid, TCOLOR_WHITE); } else if(PlayerInfo[playerid][pGroup] == GROUP_S9 && FakeFaction[playerid] == 0) { SetPlayerColor(playerid, TCOLOR_WHITE); // S9 } else if(PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12 || PlayerInfo[playerid][pHAFakeBadge] == 12) { SetPlayerColor(playerid, TCOLOR_WHITE); //DEA } else if(PlayerInfo[playerid][pMember] == 13 || PlayerInfo[playerid][pLeader] == 13 || PlayerInfo[playerid][pHAFakeBadge] == 13) { SetPlayerColor(playerid, TCOLOR_WHITE); //ATF } else if(PlayerInfo[playerid][pMember] == 14 || PlayerInfo[playerid][pLeader] == 14 || PlayerInfo[playerid][pHAFakeBadge] == 14) { if(PlayerInfo[playerid][pOnDuty] == 1) { SetPlayerColor(playerid, C_COLOR_SANG); } else { SetPlayerColor(playerid, TCOLOR_WHITE); } } else if(PlayerInfo[playerid][pJailed] == 2) { SetPlayerColor(playerid, TCOLOR_PRISON); } else if(PlayerInfo[playerid][pJailed] == 3) { SetPlayerColor(playerid, TCOLOR_APRISON); } else if(PlayerInfo[playerid][pJailed] == 4) { SetPlayerColor(playerid, TCOLOR_PRISON); } else if(PlayerInfo[playerid][pJailed] == 5) { SetPlayerColor(playerid, TCOLOR_PRISON); } if(PlayerInfo[playerid][pVipColor] == 1) { if(PlayerInfo[playerid][pDonateRank] == 4) { SetPlayerColor(playerid, SCOLOR_CYAN); } else { SetPlayerColor(playerid, 0x80008000); } } if(usingFC[playerid] == 1) { SetPlayerColor(playerid, COLOR_FAMED); } if(PlayerInfo[playerid][pHidingBadge]) { SetPlayerColor(playerid, TCOLOR_WHITE); } } return 1; } //============================================================================== GameModeInitExitFunc() { if(gamemodeLoaded) //only save the data if the gamemode is loaded { foreach( new i: Player ) { if(PlayerInfo[i][pHospital] != 0) { PlayerInfo[i][pHospital] = 1; } OnPlayerSave(i); DisablePlayerCheckpointEx(i); StopAudioStreamForPlayer(i); destroyCenterHUDInfo(i); clearAttachedObjects(i); KillTimer(pModelTimer[i]); destroyBoomBox(i); if(plNCData[i][ncCameraMode] == 1) CancelFlyMode(i); if( playerSpawnedVehicle[i] > -1 ) { savePlayerVehicle( i, playerSpawnedVehicle[i] ); } } for(new i = 0; i < sizeof(sVehicleInfo[]); i++) { if(IsValidVehicle(sVehicleInfo[i][v_id])) { DestroyVehicle(sVehicleInfo[i][v_id]); } } SaveStuff(); SaveWeed(); SaveBusinesses(); SaveFamilies(); SaveBars(); SaveDealerships(); SaveHouses(); SaveGates(); SaveSurnames(); SaveEntrances(); SaveGarages(); SaveFactionBanks(); SaveAdminMessages(); SaveRadios(); //radios destroyCinematicTextDraw(); destroyAdvertismentTextDraw(); TextDrawHideForAll(PaintballLeaderTD); TextDrawDestroy(PaintballLeaderTD); TextDrawHideForAll(PaintballLeaderTD2); TextDrawDestroy(PaintballLeaderTD2); GameModeExit(); gamemodeLoaded = 0; } return 1; } //============================================================================== LoadBoxer() { new arrCoords[3][64]; new strFromFile2[256]; new File: file = fopen("boxer.ini", io_read); if(file) { fread(file, strFromFile2); split(strFromFile2, arrCoords, ','); Titel[TitelWins] = strvalEx(arrCoords[0]); strmid(Titel[TitelName], arrCoords[1], 0, strlen(arrCoords[1]), 255); Titel[TitelLoses] = strvalEx(arrCoords[2]); fclose(file); } else { printf("[error] Failed to find boxer.ini"); } return 1; } //============================================================================== SaveBoxer() { new coordsstring[256]; format(coordsstring, sizeof(coordsstring), "%d,%s,%d", Titel[TitelWins], Titel[TitelName], Titel[TitelLoses]); new File: file2 = fopen("boxer.ini", io_write); if(file2) { fwrite(file2, coordsstring); fclose(file2); } else { printf("[error] Failed to find boxer.ini"); } return 1; } //============================================================================== forward OnLoadStuff(); public OnLoadStuff() { anticheatbans = cache_get_field_content_int(0, "anticheatbans"); if(anticheatbans == 0 || cache_num_rows() == 0) // Load from old stuff.ini { new arrCoords[32][128]; new strFromFile2[1024]; new File: file = fopen("stuff.ini", io_read); if(file) { fread(file, strFromFile2); split(strFromFile2, arrCoords, ','); Jackpot = strvalEx(arrCoords[0]); Tax = strvalEx(arrCoords[1]); TaxValue = strvalEx(arrCoords[2]); Security = strvalEx(arrCoords[3]); TimeAfterBankJob = strvalEx(arrCoords[4]); dhstock = strvalEx(arrCoords[5]); chstock = strvalEx(arrCoords[6]); anticheatbans = strvalEx(arrCoords[7]); anticheatwarns = strvalEx(arrCoords[8]); matprice = strvalEx(arrCoords[9]); //getmats cost seedprice = strvalEx(arrCoords[10]); //price per seed crackgprice = strvalEx(arrCoords[11]); //price per gram prodprice = strvalEx(arrCoords[12]); //price per prod potcprice = strvalEx(arrCoords[13]); // price per seed crate crackcprice = strvalEx(arrCoords[14]); // price per crack crate HitmanBadgeSAPD = strvalEx(arrCoords[23]); HitmanBadgeFBI = strvalEx(arrCoords[24]); HitmanBadgeRCSD = strvalEx(arrCoords[25]); HitmanBadgeLSFMD = strvalEx(arrCoords[26]); HitmanBadgeNG = strvalEx(arrCoords[27]); HitmanBadgeGOV = strvalEx(arrCoords[28]); HitmanBadgeSCOTUS = strvalEx(arrCoords[29]); HitmanBadgeDEA = strvalEx(arrCoords[30]); HitmanBadgeATF = strvalEx(arrCoords[31]); fclose(file); SaveStuff(); // save them in mysql } else { printf("[error] Failed to find stuff.ini"); GameModeExit(); } } else { Jackpot = cache_get_field_content_int(0, "Jackpot"); Tax = cache_get_field_content_int(0, "Tax"); TaxValue = cache_get_field_content_int(0, "TaxValue"); Security = cache_get_field_content_int(0, "Security"); TimeAfterBankJob = cache_get_field_content_int(0, "TimeAfterBankJob"); dhstock = cache_get_field_content_int(0, "dhstock"); chstock = cache_get_field_content_int(0, "chstock"); // already loaded anticheatbans = cache_get_field_content_int(0, "anticheatbans"); anticheatwarns = cache_get_field_content_int(0, "anticheatwarns"); matprice = cache_get_field_content_int(0, "matprice"); seedprice = cache_get_field_content_int(0, "seedprice"); crackgprice = cache_get_field_content_int(0, "crackgprice"); prodprice = cache_get_field_content_int(0, "prodprice"); potcprice = cache_get_field_content_int(0, "potcprice"); crackcprice = cache_get_field_content_int(0, "crackcprice"); HitmanBadgeSAPD = cache_get_field_content_int(0, "HitmanBadgeSAPD"); HitmanBadgeFBI = cache_get_field_content_int(0, "HitmanBadgeFBI"); HitmanBadgeRCSD = cache_get_field_content_int(0, "HitmanBadgeRCSD"); HitmanBadgeLSFMD = cache_get_field_content_int(0, "HitmanBadgeLSFMD"); HitmanBadgeNG = cache_get_field_content_int(0, "HitmanBadgeNG"); HitmanBadgeGOV = cache_get_field_content_int(0, "HitmanBadgeGOV"); HitmanBadgeSCOTUS = cache_get_field_content_int(0, "HitmanBadgeSCOTUS"); HitmanBadgeDEA = cache_get_field_content_int(0, "HitmanBadgeDEA"); HitmanBadgeATF = cache_get_field_content_int(0, "HitmanBadgeATF"); AGCTog = cache_get_field_content_int(0, "AGCTog"); cache_get_field_content(0, "devmotd", DEVMOTD, sqlGameConnection, 128 ); cache_get_field_content(0, "testermotd", TESTERMOTD, sqlGameConnection, 128 ); } return 1; } LoadStuff() { new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT * FROM `stuff`"); mysql_pquery(sqlGameConnection, query, "OnLoadStuff"); return 1; } //============================================================================== SaveStuff() { //SQL Saving new query[5000]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `stuff` SET `AGCTog` = %d, `Jackpot` = %d, `Tax` = %d, `TaxValue` = %d, `Security` = %d,", AGCTog, Jackpot, Tax, TaxValue, Security); mysql_format(sqlGameConnection, query, sizeof(query), "%s `TimeAfterBankJob` = %d, `dhstock` = %d, `chstock` = %d, `anticheatbans` = %d,", query, TimeAfterBankJob, dhstock, chstock, anticheatbans); mysql_format(sqlGameConnection, query, sizeof(query), "%s `anticheatwarns` = %d, `matprice` = %d, `seedprice` = %d,`crackgprice` = %d,", query, anticheatwarns, matprice, seedprice, crackgprice); mysql_format(sqlGameConnection, query, sizeof(query), "%s `prodprice` = %d, `potcprice` = %d, `crackcprice` = %d, `HitmanBadgeSAPD` = %d,", query, prodprice, potcprice, crackcprice, HitmanBadgeSAPD); mysql_format(sqlGameConnection, query, sizeof(query), "%s `HitmanBadgeFBI` = %d, `HitmanBadgeRCSD` = %d, `HitmanBadgeLSFMD` = %d,", query, HitmanBadgeFBI, HitmanBadgeRCSD, HitmanBadgeLSFMD); mysql_format(sqlGameConnection, query, sizeof(query), "%s `HitmanBadgeNG` = %d, `HitmanBadgeGOV` = %d, `HitmanBadgeSCOTUS` = %d,", query, HitmanBadgeNG, HitmanBadgeGOV, HitmanBadgeSCOTUS); mysql_format(sqlGameConnection, query, sizeof(query), "%s `HitmanBadgeDEA` = %d, `HitmanBadgeATF` = %d, devmotd = '%e', testermotd = '%e';", query, HitmanBadgeNG, HitmanBadgeGOV, HitmanBadgeSCOTUS, DEVMOTD, TESTERMOTD ); mysql_pquery(sqlGameConnection, query); SaveFactionBanks(); return 1; } //============================================================================== LoadIRC() { new arrCoords[5][64]; new strFromFile2[256]; new File: file = fopen("channels.cfg", io_read); if(file) { new idx; while(idx < sizeof(IRCInfo)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, '|'); strmid(IRCInfo[idx][iAdmin], arrCoords[0], 0, strlen(arrCoords[0]), 255); strmid(IRCInfo[idx][iMOTD], arrCoords[1], 0, strlen(arrCoords[1]), 255); strmid(IRCInfo[idx][iPassword], arrCoords[2], 0, strlen(arrCoords[2]), 255); IRCInfo[idx][iNeedPass] = strvalEx(arrCoords[3]); IRCInfo[idx][iLock] = strvalEx(arrCoords[4]); idx++; } fclose(file); } else { printf("[error] Failed to find channels.cfg"); } return 1; } //============================================================================== SaveIRC() { new idx; new File:file; file = fopen("channels.cfg", io_write); fclose(file); file = fopen("channels.cfg", io_append); new coordsstring[256]; if(file) { while(idx < sizeof(IRCInfo)) { format(coordsstring, sizeof(coordsstring), "%s|%s|%s|%d|%d\n", IRCInfo[idx][iAdmin], IRCInfo[idx][iMOTD], IRCInfo[idx][iPassword], IRCInfo[idx][iNeedPass], IRCInfo[idx][iLock]); fwrite(file, coordsstring); idx++; } fclose(file); } else { printf("[error] Failed to find channels.cfg"); } return 1; } //============================================================================== LoadFamilies() { new arrCoords[50][64]; new strFromFile2[530]; new File: file = fopen("families.cfg", io_read); if(file) { new idx; while(idx < sizeof(FamilyInfo)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, '|'); FamilyInfo[idx][FamilyTaken] = strvalEx(arrCoords[0]); strmid(FamilyInfo[idx][FamilyName], arrCoords[1], 0, strlen(arrCoords[1]), 255); strmid(FamilyInfo[idx][FamilyMOTD], arrCoords[2], 0, strlen(arrCoords[2]), 255); strmid(FamilyInfo[idx][FamilyLeader], arrCoords[3], 0, strlen(arrCoords[3]), 255); FamilyInfo[idx][FamilyBank] = strvalEx(arrCoords[4]); FamilyInfo[idx][FamilyCash] = strvalEx(arrCoords[5]); FamilyInfo[idx][FamilySafe] = strvalEx(arrCoords[6]); FamilyInfo[idx][FamilySafePos][0] = floatstr(arrCoords[7]); FamilyInfo[idx][FamilySafePos][1] = floatstr(arrCoords[8]); FamilyInfo[idx][FamilySafePos][2] = floatstr(arrCoords[9]); FamilyInfo[idx][FamilyPot] = strvalEx(arrCoords[10]); FamilyInfo[idx][FamilyCrack] = strvalEx(arrCoords[11]); FamilyInfo[idx][FamilyMats] = strvalEx(arrCoords[12]); strmid(FamilyRank[idx][0], arrCoords[13], 0, strlen(arrCoords[13]), 255); strmid(FamilyRank[idx][1], arrCoords[14], 0, strlen(arrCoords[14]), 255); strmid(FamilyRank[idx][2], arrCoords[15], 0, strlen(arrCoords[15]), 255); strmid(FamilyRank[idx][3], arrCoords[16], 0, strlen(arrCoords[16]), 255); strmid(FamilyRank[idx][4], arrCoords[17], 0, strlen(arrCoords[17]), 255); strmid(FamilyRank[idx][5], arrCoords[18], 0, strlen(arrCoords[18]), 255); FamilyInfo[idx][FamilyMembers] = strvalEx(arrCoords[19]); FamilyInfo[idx][FamilySkins] = strvalEx(arrCoords[20]); FamilyInfo[idx][FamilySkin1] = strvalEx(arrCoords[21]); FamilyInfo[idx][FamilySkin2] = strvalEx(arrCoords[22]); FamilyInfo[idx][FamilySkin3] = strvalEx(arrCoords[23]); FamilyInfo[idx][FamilySkin4] = strvalEx(arrCoords[24]); FamilyInfo[idx][FamilySkin5] = strvalEx(arrCoords[25]); FamilyInfo[idx][FamilySkin6] = strvalEx(arrCoords[26]); FamilyInfo[idx][FamilySkin7] = strvalEx(arrCoords[27]); FamilyInfo[idx][FamilySkin8] = strvalEx(arrCoords[28]); FamilyInfo[idx][FStrikes] = strvalEx(arrCoords[29]); FamilyInfo[idx][Colt45] = strvalEx(arrCoords[30]); FamilyInfo[idx][Shotgun] = strvalEx(arrCoords[31]); FamilyInfo[idx][MP5] = strvalEx(arrCoords[32]); FamilyInfo[idx][AK47] = strvalEx(arrCoords[33]); FamilyInfo[idx][M4] = strvalEx(arrCoords[34]); FamilyInfo[idx][SPAS12] = strvalEx(arrCoords[35]); FamilyInfo[idx][Rifle] = strvalEx(arrCoords[36]); FamilyInfo[idx][Sniper] = strvalEx(arrCoords[37]); FamilyInfo[idx][Deagle] = strvalEx(arrCoords[38]); FamilyInfo[idx][UZI] = strvalEx(arrCoords[39]); FamilyInfo[idx][FamilySafeWorld] = strvalEx(arrCoords[40]); FamilyInfo[idx][TEC9] = strvalEx(arrCoords[41]); // new drugs // FamilyInfo[idx][FamilyCocaine] = strvalEx(arrCoords[42]); FamilyInfo[idx][FamilyMeth] = strvalEx(arrCoords[43]); FamilyInfo[idx][FamilyCannabis] = strvalEx(arrCoords[44]); FamilyInfo[idx][FamilyPromethazine] = strvalEx(arrCoords[45]); FamilyInfo[idx][FamilyCodeine] = strvalEx(arrCoords[46]); FamilyInfo[idx][FamilyLean] = strvalEx(arrCoords[47]); FamilyInfo[idx][FamilyLeaderHide] = strvalEx(arrCoords[45]); FamilyInfo[idx][fXP] = strvalEx(arrCoords[46]); idx++; } fclose(file); } else { printf("[error] Failed to find families.cfg"); } return 1; } //============================================================================== SaveFamilies() { new idx; new File:file; file = fopen("families.cfg", io_write); fclose(file); file = fopen("families.cfg", io_append); new coordsstring[560]; if(file) { while(idx < sizeof(FamilyInfo)) { format(coordsstring, sizeof(coordsstring), "%d|%s|%s|%s|%d|%d|%d|%f|%f|%f|%d|%d|%d|%s|%s|%s|%s|%s|%s|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d\n", FamilyInfo[idx][FamilyTaken], FamilyInfo[idx][FamilyName], FamilyInfo[idx][FamilyMOTD], FamilyInfo[idx][FamilyLeader], FamilyInfo[idx][FamilyBank], FamilyInfo[idx][FamilyCash], FamilyInfo[idx][FamilySafe], FamilyInfo[idx][FamilySafePos][0], FamilyInfo[idx][FamilySafePos][1], FamilyInfo[idx][FamilySafePos][2], FamilyInfo[idx][FamilyPot], FamilyInfo[idx][FamilyCrack], FamilyInfo[idx][FamilyMats], FamilyRank[idx][0], FamilyRank[idx][1], FamilyRank[idx][2], FamilyRank[idx][3], FamilyRank[idx][4], FamilyRank[idx][5], FamilyInfo[idx][FamilyMembers], FamilyInfo[idx][FamilySkins], FamilyInfo[idx][FamilySkin1], FamilyInfo[idx][FamilySkin2], FamilyInfo[idx][FamilySkin3], FamilyInfo[idx][FamilySkin4], FamilyInfo[idx][FamilySkin5], FamilyInfo[idx][FamilySkin6], FamilyInfo[idx][FamilySkin7], FamilyInfo[idx][FamilySkin8], FamilyInfo[idx][FStrikes], FamilyInfo[idx][Colt45], FamilyInfo[idx][Shotgun], FamilyInfo[idx][MP5], FamilyInfo[idx][AK47], FamilyInfo[idx][M4], FamilyInfo[idx][SPAS12], FamilyInfo[idx][Rifle], FamilyInfo[idx][Sniper], FamilyInfo[idx][Deagle], FamilyInfo[idx][UZI], FamilyInfo[idx][FamilySafeWorld], FamilyInfo[idx][TEC9], FamilyInfo[idx][FamilyCocaine], FamilyInfo[idx][FamilyMeth], FamilyInfo[idx][FamilyCannabis], FamilyInfo[idx][FamilyPromethazine], FamilyInfo[idx][FamilyCodeine], FamilyInfo[idx][FamilyLean], FamilyInfo[idx][FamilyLeaderHide], FamilyInfo[idx][fXP]); fwrite(file, coordsstring); idx++; } fclose(file); } else { printf("[error] Failed to find families.cfg"); } return 1; } //============================================================================== LoadWeed() { new arrCoords[7][64]; new strFromFile2[512]; new File: file = fopen("weed.cfg", io_read); if(file) { new idx; while(idx < sizeof(WeedInfo)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, '|'); strmid(WeedInfo[idx][WeedPlanter], arrCoords[0], 0, strlen(arrCoords[0]), 255); WeedInfo[idx][WeedX] = floatstr(arrCoords[1]); WeedInfo[idx][WeedY] = floatstr(arrCoords[2]); WeedInfo[idx][WeedZ] = floatstr(arrCoords[3]); WeedInfo[idx][WeedTime] = strvalEx(arrCoords[4]); WeedInfo[idx][WeedPlanted] = strvalEx(arrCoords[5]); WeedInfo[idx][WeedGrams] = strvalEx(arrCoords[6]); if(WeedInfo[idx][WeedPlanted] == 1) weedObject[idx] = CreateDynamicObject(3409, WeedInfo[idx][WeedX], WeedInfo[idx][WeedY], WeedInfo[idx][WeedZ] -2, 0, 0, 0); idx++; } fclose(file); } else { printf("[error] Failed to find weed.cfg"); } return 1; } //============================================================================== SaveWeed() { new idx; new File:file; file = fopen("weed.cfg", io_write); fclose(file); file = fopen("weed.cfg", io_append); new coordsstring[256]; if(file) { while(idx < sizeof(WeedInfo)) { format(coordsstring, sizeof(coordsstring), "%s|%f|%f|%f|%d|%d|%d\n", WeedInfo[idx][WeedPlanter], WeedInfo[idx][WeedX], WeedInfo[idx][WeedY], WeedInfo[idx][WeedZ], WeedInfo[idx][WeedTime], WeedInfo[idx][WeedPlanted], WeedInfo[idx][WeedGrams]); fwrite(file, coordsstring); idx++; } fclose(file); } else { printf("[error] Failed to find weed.cfg"); } return 1; } //============================================================================== public OnGameModeExit() { //SaveChars(); //SavePollData(); SaveLoopa(); mysql_close(sqlGameConnection); //close the connection to the db //SendRconCommand("unloadfs server_maps"); //SendRconCommand("unloadfs elections"); //SendRconCommand("unloadfs JEROSEL"); //SendRconCommand("unloadfs snow"); Server_Maps DestroyDynamic3DTextLabel(syndicateSign); //KillTimer(UnlockServer); return 1; } enum botInfo { bot_created, bot_name[MAX_PLAYER_NAME], bot_type, bot_skin, Float:bot_pos[4], //x, y, z, a virtualWorld, interiorID, Text3D:Label, //for displaying the bots name interactingWithID, playerInRange, beingRobbedBy, robbedTimerID, noRandChat, rSoundID[5], //5 sound ids to play after each interaction rText1[128], rText2[128], rText3[128], rText4[128], rText5[128], r_animLib1[24], r_animName1[24], r_animLib2[24], r_animName2[24], r_animLib3[24], r_animName3[24], r_animLib4[24], r_animName4[24], r_animLib5[24], r_animName5[24], animFreeze[5], animLoop[5], rTotal, //number of rand sounds used }; new npcInfo[MAX_PLAYERS][botInfo]; forward AddActor(rpname[], btype, bskin, Float: x, Float: y, Float: z, Float: a, world, interid); public AddActor(rpname[], btype, bskin, Float: x, Float: y, Float: z, Float: a, world, interid) { new botid = CreateActor(bskin, x, y, z, a); //model x y z rotation strmid(npcInfo[botid][bot_name], rpname, 0, strlen(rpname), 128); npcInfo[botid][bot_created] = 1; npcInfo[botid][bot_type] = btype; npcInfo[botid][bot_skin] = bskin; npcInfo[botid][bot_pos][0] = x; npcInfo[botid][bot_pos][1] = y; npcInfo[botid][bot_pos][2] = z; npcInfo[botid][bot_pos][3] = a; npcInfo[botid][virtualWorld] = world; npcInfo[botid][interiorID] = interid; npcInfo[botid][interactingWithID] = -1; //not interacting npcInfo[botid][noRandChat] = 0; npcInfo[botid][playerInRange] = 0; //no player in range npcInfo[botid][beingRobbedBy] = -1; //no player robbing npcInfo[botid][robbedTimerID] = 0; //no timer SetActorVirtualWorld(botid, npcInfo[botid][virtualWorld]); /* these functions are not avaiable for actors //SetActorInterior(botid, npcInfo[botid][interiorID]); //wearable stuff if(botid == bot_stripper1) { SetPlayerAttachedObject(bot_stripper1,0,18639,2,0.156999,0.010998,0.000000,0.799996,-0.699998,-3.200000,1.000000,1.137999,1.000000); SetPlayerAttachedObject(bot_stripper1,1,3027,2,0.004999,0.086998,0.003000,-113.599975,-2.800003,0.000000,0.819998,0.642000,0.677999); } if(botid == bot_fishing) { SetPlayerAttachedObject(bot_fishing, 0, 18632, 6, 0.06, 0.04, 0.0, 180.0, 0.0, 0.0); }*/ //label new namestr[32]; format(namestr, sizeof(namestr), "%s (%d)", npcInfo[botid][bot_name], botid); npcInfo[botid][Label] = CreateDynamic3DTextLabel(namestr,0xFFFFFFFF,x, y, z +1.2, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); // printf("botid: %d", botid); return botid; } //============================================================================== stock CDO(modelid, Float: x, Float: y, Float: z, Float: rx, Float: ry, Float: rz, worldid = -1, interiorid = -1, playerid = -1, Float: streamdistance = 200.0) { new objectid = CreateDynamicObject(modelid, x, y, z, rx, ry, rz, worldid, interiorid, playerid, streamdistance); Streamer_SetFloatData(STREAMER_TYPE_OBJECT, objectid, E_STREAMER_DRAW_DISTANCE, 300.0); return objectid; } public OnGameModeInit() { new query[9000]; mysql_format(sqlGameConnection, query, sizeof(query), "SET GLOBAL `event_scheduler`= ON"); //GYM MAPPING// CreateDynamicObject(1311, 2234.80591, -1734.44592, 16.55470, 0.00000, 0.00000, 89.70003); CreateDynamicObject(1560, 2262.45874, -1710.80872, 13.44523, 0.00000, 0.00000, -180.00000); CreateDynamicObject(1560, 2238.39355, -1710.87537, 13.44523, 0.00000, 0.00000, -180.00000); CreateDynamicObject(1560, 2249.69751, -1710.73682, 13.62974, 0.00000, 0.00000, -180.00000); CreateDynamicObject(18980, 2227.12012, -1710.91528, 11.97258, 90.00000, 0.00000, -6.68000); CreateDynamicObject(18980, 2228.07983, -1702.70776, 12.19232, 90.90000, 0.00000, -6.68000); CreateDynamicObject(640, 2270.47046, -1701.81262, 13.16422, 0.00000, 0.00000, -90.06000); CreateDynamicObject(620, 2274.99634, -1693.75964, 8.07813, 3.14159, -0.08727, -3.14159); CreateDynamicObject(640, 2293.64429, -1705.15649, 13.16420, 0.00000, 0.00000, 180.00000); CreateDynamicObject(640, 2293.63232, -1710.15540, 13.16420, 0.00000, 0.00000, 180.00000); CreateDynamicObject(640, 2293.62646, -1715.36169, 13.16420, 0.00000, 0.00000, 180.00000); CreateDynamicObject(640, 2293.61279, -1720.55542, 13.16420, 0.00000, 0.00000, 180.00000); CreateDynamicObject(1281, 2290.22485, -1696.52087, 13.40500, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1281, 2280.51660, -1697.39929, 13.44040, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1256, 2291.66577, -1708.94873, 13.12050, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1256, 2282.25293, -1722.07422, 13.12053, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1216, 2270.13159, -1708.50342, 13.10659, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1216, 2270.17236, -1706.76196, 13.10659, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1257, 2255.68335, -1724.50037, 13.63165, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1258, 2271.26782, -1704.66125, 13.12366, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1341, 2279.57788, -1717.26489, 13.40303, 0.00000, 0.00000, 86.70000); CreateDynamicObject(1342, 2275.20459, -1716.78992, 13.45892, 0.00000, 0.00000, 88.01999); CreateDynamicObject(6289, 2279.55273, -1710.78235, 14.96920, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1256, 2287.52808, -1708.92053, 13.12050, 0.00000, 0.00000, 90.00000); CreateDynamicObject(1256, 2287.42505, -1722.04907, 13.12053, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1340, 2277.78809, -1717.18982, 13.61429, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1257, 2245.17261, -1739.39966, 13.63160, 0.00000, 0.00000, -90.00000); CreateDynamicObject(1340, 2251.34326, -1739.82019, 13.61429, 0.00000, 0.00000, 110.82001); CreateDynamicObject(1498, 2232.22388, -1687.38440, 13.01590, 0.00000, 0.00000, 0.00000); CreateDynamicObject(17978, 2259.26343, -1672.23450, 13.30904, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1498, 2253.66406, -1687.38428, 12.67169, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1498, 2269.76758, -1687.39819, 12.67169, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1498, 2276.74634, -1701.16296, 12.67169, 0.00000, 0.00000, 0.00000); CreateObject(6959, 2245.42139, -1702.63989, 12.21404, -1.00000, 0.00000, 0.00000); CreateObject(6977, 2249.68774, -1700.23352, 12.20542, 0.00000, 0.00000, 90.00001); CreateObject(4690, 2262.21240, -1704.14026, -135.28027, 0.00000, 0.00000, 0.00000); CreateDynamicObject(3569, 2233.92, -1742.31, 11.00, 0.00, 0.00, 90.00); CreateDynamicObject(3569, 2251.60, -1742.39, 11.00, 0.00, 0.00, 90.00); CreateDynamicObject(3569, 2269.27, -1742.46, 11.00, 0.00, 0.00, 90.00); CreateDynamicObject(3569, 2286.95, -1742.54, 11.00, 0.00, 0.00, 90.00); CreateDynamicObject(3569, 2295.97, -1742.60, 10.99, 0.00, 0.00, 90.00); CreateDynamicObject(1237, 2305.11, -1744.45, 12.54, 0.00, 0.00, 0.00); CreateDynamicObject(1237, 2306.20, -1744.19, 12.54, 0.00, 0.00, 0.00); CreateDynamicObject(1237, 2306.08, -1742.88, 12.54, 0.00, 0.00, 0.00); CreateDynamicObject(1237, 2305.99, -1740.38, 12.54, 0.00, 0.00, 0.00); CreateDynamicObject(1237, 2304.50, -1740.09, 12.54, 0.00, 0.00, 0.00); CreateDynamicObject(1237, 2224.41, -1740.42, 12.54, 0.00, 0.00, 0.00); CreateDynamicObject(1237, 2224.57, -1741.33, 12.54, 0.00, 0.00, 0.00); CreateDynamicObject(1237, 2224.05, -1743.15, 12.54, 0.00, 0.00, 0.00); CreateDynamicObject(1237, 2224.67, -1744.21, 12.54, 0.00, 0.00, 0.00); CreateDynamicObject(1282, 2223.88, -1742.16, 13.15, 0.00, 0.00, -25.00); CreateDynamicObject(1435, 2305.26, -1741.01, 12.55, 0.00, 0.00, 100.00); CreateDynamicObject(1435, 2305.37, -1742.55, 12.55, 0.00, 0.00, 70.00); CreateDynamicObject(1237, 2235.53, -1745.31, 12.54, 0.00, 0.00, 0.00); CreateDynamicObject(1435, 2234.14, -1745.28, 12.65, 0.00, 0.00, 135.00); CreateDynamicObject(6959, 2248.902099, -1704.515380, 12.627983, 0.199999, 0.000000, -6.000000); // Log:level(LOGL_DEBUG); LoadLoopa(); ////SendRconCommand("loadfs server_maps"); SendRconCommand("loadfs elections"); ////SendRconCommand("loadfs JEROSEL"); ////SendRconCommand("loadfs hankbridge"); //SendRconCommand("loadfs cameditor"); SendRconCommand("loadfs snow");//Server_Maps ShowPlayerMarkers(PLAYER_MARKERS_MODE_GLOBAL); new TempObject; CreateDynamicObject(1569, 1559.49304, -1714.49683, 15.45300, 0.00000, 0.00000, 0.00000); CreateDynamicObject(8614, 1562.92053, -1715.42053, 14.22540, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1569, 1559.49304, -1637.15601, 15.18700, 0.00000, 0.00000, 0.00000); CreateDynamicObject(8615, 1563.36755, -1636.23401, 13.46340, 0.00000, 0.00000, 180.00000); //TempObject = CreateObject(4232, 1568.28906, -1677.78125, 10.82030, 0.00000, 0.00000, 0.00000); //SetObjectMaterial(TempObject, 9, 14881, "gf5", "mp_jail_wall"); //TempObject = CreateObject(4032, 1568.28906, -1677.78125, 10.82030, 0.00000, 0.00000, 0.00000); //SetObjectMaterial(TempObject, 10, 14881, "gf5", "mp_jail_wall"); CreateDynamicObject(2952, 1582.23621, -1637.89294, 12.34790, 0.00000, 0.00000, 89.50000); TempObject = CreateDynamicObject(19834, 1592.40625, -1637.81641, 13.69480, 0.00000, 90.00000, 4.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.40625, -1637.81641, 15.99880, 0.00000, 90.00000, 4.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.40625, -1637.81836, 16.29380, 0.00000, 90.00000, 4.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.34094, -1637.89185, 13.69480, 0.00000, 90.00000, 94.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.34094, -1637.89185, 15.99880, 0.00000, 90.00000, 94.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.34192, -1637.89185, 16.29380, 0.00000, 90.00000, 94.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.34985, -1638.03381, 13.64180, 0.00000, 90.00000, 94.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.35645, -1638.17371, 13.64180, 0.00000, 90.00000, 94.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.34985, -1638.03381, 15.94580, 0.00000, 90.00000, 94.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.35645, -1638.17371, 15.94580, 0.00000, 90.00000, 94.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.35193, -1638.03381, 16.29380, 0.00000, 90.00000, 94.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.35840, -1638.17371, 16.29380, 0.00000, 90.00000, 94.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.43152, -1638.23840, 13.64180, 0.00000, 90.00000, 4.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.43152, -1638.23840, 15.94580, 0.00000, 90.00000, 4.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.47546, -1638.23438, 13.64180, 0.00000, 90.00000, 4.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); TempObject = CreateDynamicObject(19834, 1592.47546, -1638.23438, 15.94580, 0.00000, 90.00000, 4.00000); SetDynamicObjectMaterial(TempObject, 0, 1223, "dynsigns", "white64", 0xFF5A5630); CreateDynamicObject(3109, 1564.11731, -1667.42517, 28.58040, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2921, 1563.07776, -1667.42554, 30.76530, 0.00000, 0.00000, -120.00000); CreateDynamicObject(1622, 1557.43970, -1683.01953, 33.84510, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1622, 1557.43970, -1668.51953, 33.84510, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1622, 1549.22656, -1636.75452, 24.88950, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1622, 1572.22656, -1636.75452, 24.88950, 0.00000, 0.00000, 270.00000); CreateDynamicObject(1622, 1592.72656, -1637.42847, 18.38950, 0.00000, 0.00000, 270.00000); CreateDynamicObject(2921, 1558.33325, -1637.21387, 17.33780, 0.00000, 0.00000, -120.00000); CreateDynamicObject(2921, 1558.61414, -1714.35095, 17.33780, 0.00000, 0.00000, 135.00000); CreateDynamicObject(1622, 1611.70947, -1665.88171, 10.20740, 0.00000, 0.00000, 0.00000); CreateDynamicObject(1622, 1611.83105, -1721.31116, 10.20740, 0.00000, 0.00000, -45.00000); CreateDynamicObject(1622, 1557.32605, -1690.30554, 10.20740, 0.00000, 0.00000, 119.50000); CreateDynamicObject(1622, 1524.79236, -1633.93994, 10.20740, 0.00000, 0.00000, 119.50000); CreateDynamicObject(1622, 1543.79590, -1718.55933, 10.20740, 0.00000, 0.00000, -135.00000); TempObject = CreateDynamicObject(19383, 1544.68762, -1619.44714, 14.16900, 0.00000, 0.00000, 0.00000); SetDynamicObjectMaterial(TempObject, 0, 3975, "lanbloke", "Bow_Concrete_drip"); TempObject = CreateDynamicObject(19353, 1544.68762, -1622.22607, 14.16900, 0.00000, 0.00000, 0.00000); SetDynamicObjectMaterial(TempObject, 0, 3975, "lanbloke", "Bow_Concrete_drip"); TempObject = CreateDynamicObject(19383, 1544.68762, -1634.31506, 14.16900, 0.00000, 0.00000, 0.00000); SetDynamicObjectMaterial(TempObject, 0, 3975, "lanbloke", "Bow_Concrete_drip"); TempObject = CreateDynamicObject(19426, 1545.40161, -1635.86377, 14.16900, 0.00000, 0.00000, 90.00000); SetDynamicObjectMaterial(TempObject, 0, 3975, "lanbloke", "Bow_Concrete_drip"); TempObject = CreateDynamicObject(19353, 1546.11902, -1637.37854, 14.16900, 0.00000, 0.00000, 0.00000); SetDynamicObjectMaterial(TempObject, 0, 3975, "lanbloke", "Bow_Concrete_drip"); TempObject = CreateDynamicObject(19353, 1546.27942, -1637.20471, 14.16900, 0.00000, 0.00000, 0.00000); SetDynamicObjectMaterial(TempObject, 0, 3975, "lanbloke", "Bow_Concrete_drip"); TempObject = CreateDynamicObject(19426, 1545.40161, -1635.68982, 14.16900, 0.00000, 0.00000, 90.00000); SetDynamicObjectMaterial(TempObject, 0, 3975, "lanbloke", "Bow_Concrete_drip"); TempObject = CreateDynamicObject(19383, 1544.86365, -1634.31506, 14.16900, 0.00000, 0.00000, 0.00000); SetDynamicObjectMaterial(TempObject, 0, 3975, "lanbloke", "Bow_Concrete_drip"); TempObject = CreateDynamicObject(19353, 1544.85754, -1622.22607, 14.16900, 0.00000, 0.00000, 0.00000); SetDynamicObjectMaterial(TempObject, 0, 3975, "lanbloke", "Bow_Concrete_drip"); TempObject = CreateDynamicObject(19383, 1544.85754, -1619.44714, 14.16900, 0.00000, 0.00000, 0.00000); SetDynamicObjectMaterial(TempObject, 0, 3975, "lanbloke", "Bow_Concrete_drip"); new hour, mins, sec; gettime( hour, mins, sec ); hour = FixHour( hour ); SetWorldTime( hour ); #if DEVMODE == 1 //connect to beta server //printf("MySQL Connecting to: %s %s %s %s.", sqlBetaHostname, sqlBetaUsername, sqlBetaPassword, sqlBetaDatabase); //sqlGameConnection = mysql_connect(sqlBetaHostname, sqlBetaUsername, sqlBetaDatabase, sqlBetaPassword, sqlGamePort, sqlGameAutoReconnect, sqlGamePoolSize); sqlGameConnection = mysql_connect(sqlBetaHostname, sqlBetaUsername, sqlBetaDatabase, sqlBetaPassword, sqlGamePort, sqlGameAutoReconnect, sqlGamePoolSize); #pragma unused sqlGameUsername #pragma unused sqlGameDatabase #pragma unused sqlGamePassword #else //connect to main localhost //printf("MySQL Connecting to: %s %s %s %s.", sqlGameHostname, sqlGameUsername, sqlGamePassword, sqlGameDatabase); sqlGameConnection = mysql_connect(sqlGameHostname, sqlGameUsername, sqlGameDatabase, sqlGamePassword, sqlGamePort, sqlGameAutoReconnect, sqlGamePoolSize); #pragma unused sqlBetaHostname #pragma unused sqlBetaUsername #pragma unused sqlBetaDatabase #pragma unused sqlBetaPassword mysql_pquery(sqlGameConnection, "UPDATE `players` set Adjustable=1;"); //used by admin cp, added here because it's slow #endif //remove building fix for(new pid = 0; pid <= GetPlayerPoolSize(); pid++) { if(!IsPlayerConnected(pid)) continue; IsPlayerAlreadyConnected[pid] = 1; } //CheckVehicleTable(); //vehicle conversion, vehicles.inc fetchLastSQLID(); //get last vehicle ID in the table for creating new cars // Create new constant strings in your mysqlconfig.inc if(mysql_errno(sqlGameConnection) != 0) { printf("MySQL failed to connect to %s", sqlGameHostname); return 0; } for(new i = 0; i < MAX_TAXICALLS; i++) TaxiCInfo[i][taxiname] = "0"; new lastgmxtime[7]; gettime(lastgmxtime[0],lastgmxtime[1],lastgmxtime[2]); // hour, minute, second getdate(lastgmxtime[3],lastgmxtime[4],lastgmxtime[5]); // year, month, day format(lastgmx, sizeof(lastgmx), "The last server restart was on the: %d/%d/%d at %d:%d.", lastgmxtime[5], lastgmxtime[4], lastgmxtime[3], lastgmxtime[0], lastgmxtime[1]); AddPlayerClass(0, 1959.6982, 1342.9609, 15.3746, 269.6433, 0, 0, 0, 0, 0, 0); //JobsInit(); addIndustrialCars(); addPoorCars(); addNormCars(); addCountryCars(); //CARS HERE OOCRadioStatus(); // This is set to 45 seconds to ensure that it's called on minute 59. // SA-MP's native timer system is inaccurate, I have a plan to implement a // more accurate timer system soon. ~ byt3 SetTimer("Timer_PointPayCheck", 45000, true); hotlineState = true; LoadVehicleData(); // LoadDivisionData(); //===========================[ Load server maps ]=========================== loadVehicles(); //load the vehicles from vehicleSpawns.inc (special ops helicopters, garbage truck) RegWarn = true; TogPMGlobal = false; //create soda machines/soda system for( new i; i < sizeof( SodaMachines ); i++ ) { #define sm(%0) SodaMachines[i][%0] CreateDynamic3DTextLabel( "Soda ~ LMB", 0xFE9A2EFF, sm(sMachineX), sm(sMachineY), sm(sMachineZ) + 0.8, 5.0 ); CreateDynamicObject( 1209, sm(sMachineX), sm(sMachineY), sm(sMachineZ), sm(sMachineRX), sm(sMachineRY), sm(sMachineRZ), sm(sMachineVW), sm(sMachineInt) ); #undef sm } // __________ DoC stuff __________ //CreateDynamic3DTextLabel("/prisonclothes", COLOR_YELLOW, CLOTHESCOORDS, 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 2.0); CreateDynamic3DTextLabel("{3a7394}Mobile Data Computer\n{FFFFFF}/docpc", -1, 686.1218, 1515.4897, 9001.8193, 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 2.0); CreateDynamic3DTextLabel("/changeclothes", -1, 771.1835, 976.9742, 9022.7188, 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 5.0); // _______________________________ syndicateSign = CreateDynamic3DTextLabel("/armory", COLOR_CRIME, HQ_SYNDICATE, 10.0); AddActor("", 0, 79, 672.93, -2294.76, 6.00, 332.0231, 0, 0); // HANK JAMSE NextBan = 1; LoadFactionBanks(); AdminMOTD(); FactionMOTDS(); //server vars SetGameModeText(GAMEMODE_VERSION); SetWeather(2); //default weather g_WeatherID = 2; ManualVehicleEngineAndLights(); DisableInteriorEnterExits(); SetNameTagDrawDistance(20.0); EnableStuntBonusForAll(0); AllowInteriorWeapons(1); // UsePlayerPedAnims(); //~ uses default CJ style. - Disabled for new skins LoadDMV(); //LoadCourt(); //LoadTrailerInteriorCollisionFix(); //credits to Sean Johnson (servermaps.inc) //LoadSweetsInteriorCollisionFix(); //sweets house, credits to Sean Johnson (servermaps.inc) for(new i = 0; i < 21; i++) { famTog[i] = false; } SetTimer("Timer_AutoMessageSystem", 60000 *50, true); //load LoadBoxer(); LoadStuff(); LoadIRC(); LoadFamilies(); LoadActors(); LoadWeed(); LoadBusinesses(); LoadEntrances(); LoadTextDraws(); LoadMapTextDraw(); LoadRadios(); //radios LoadCCTV(); LoadBars(); LoadAutoMessages(); LoadSafes(); // LoadDealerships(); LoadSurnames(); LoadOwnedHouses(); LoadGarages(); LoadTrash(); LoadGates(); LoadAdminMessages(); //LoadPollData(); //Connect to the shop database #if DEVMODE == 0 sqlShopConnection = mysql_connect(sqlShopHostname, sqlShopUsername, sqlShopDatabase, sqlShopPassword, sqlShopPort, sqlShopAutoReconnect, sqlShopPoolSize); if(mysql_errno(sqlShopConnection) != 0) //Returns the error code of the error message from the previous MySQL operation (param is optional) { printf("MySQL failed to connnect to %s.", sqlShopHostname); } else { printf("MySQL connection established to %s.", sqlShopHostname); } #else #pragma unused sqlShopAutoReconnect #pragma unused sqlShopHostname #pragma unused sqlShopDatabase #pragma unused sqlShopPoolSize #pragma unused sqlShopPassword #pragma unused sqlShopPort #pragma unused sqlShopUsername #endif for(new i = 0; i < MAX_PLAYERS; i++) //Create the center textdraws for displaying text { createCenterHUDTextDraw(i); } for(new i = 0; i < MAX_VEHICLES; i++) { Gas[i] = 100; } //create family safes for(new h = 0; h < sizeof(FamilyInfo); h++) { FamilyInfo[h][PickupID] = CreateDynamicPickup(1210, 23, FamilyInfo[h][FamilySafePos][0], FamilyInfo[h][FamilySafePos][1], FamilyInfo[h][FamilySafePos][2], FamilyInfo[h][FamilySafeWorld], -1, -1, 100.0); } PaintballLeaderTD = TextDrawCreate(341.000000, 369.000000, "~r~Paintball Leader~n~~b~Nobody"); TextDrawAlignment(PaintballLeaderTD, 2); TextDrawBackgroundColor(PaintballLeaderTD, -65281); TextDrawFont(PaintballLeaderTD, 2); TextDrawLetterSize(PaintballLeaderTD, 0.310000, 1.600000); TextDrawColor(PaintballLeaderTD, 65535); TextDrawSetOutline(PaintballLeaderTD, 1); TextDrawSetProportional(PaintballLeaderTD, 1); TextDrawUseBox(PaintballLeaderTD, 1); TextDrawBoxColor(PaintballLeaderTD, 68); TextDrawTextSize(PaintballLeaderTD, -30.000000, 220.000000); PaintballLeaderTD2 = TextDrawCreate(341.000000, 369.000000, "~r~Paintball Leader~n~~b~Nobody"); TextDrawAlignment(PaintballLeaderTD2, 2); TextDrawBackgroundColor(PaintballLeaderTD2, -65281); TextDrawFont(PaintballLeaderTD2, 2); TextDrawLetterSize(PaintballLeaderTD2, 0.310000, 1.600000); TextDrawColor(PaintballLeaderTD2, 65535); TextDrawSetOutline(PaintballLeaderTD2, 1); TextDrawSetProportional(PaintballLeaderTD2, 1); TextDrawUseBox(PaintballLeaderTD2, 1); TextDrawBoxColor(PaintballLeaderTD2, 68); TextDrawTextSize(PaintballLeaderTD2, -30.000000, 220.000000); //IRC IRCInfo[0][iPlayers] = 0; IRCInfo[1][iPlayers] = 0; IRCInfo[2][iPlayers] = 0; IRCInfo[3][iPlayers] = 0; IRCInfo[4][iPlayers] = 0; IRCInfo[5][iPlayers] = 0; IRCInfo[6][iPlayers] = 0; IRCInfo[7][iPlayers] = 0; IRCInfo[8][iPlayers] = 0; IRCInfo[9][iPlayers] = 0; //GANGZONES blackblindfoldzone = GangZoneCreate(-3000.0, -3000.0, 3000.0, 3000.0); //No roof fix CreateDynamicObject(9099, 2017.33655, -1594.21057, 15.58708, 0.00000, 0.00000, 45.72002); CreateObject(9099, 2015.70740, -1592.64636, 15.57016, 0.00000, 0.00000, 45.72002); CreateDynamicObject(9099, 2011.55481, -1593.16016, 15.56329, 0.00000, 0.00000, 134.93997); CreateDynamicObject(9099, 2015.77722, -1592.55798, 16.25744, 0.30000, -90.18002, 45.72002); CreateDynamicObject(9099, 2017.52014, -1594.26123, 16.25744, 0.30000, -90.18002, 45.72002); // Creating VIP vehicles // for(new i = 0; i < sizeof(VipCars); i++) CreateVIPCar(i); CreateDynamic3DTextLabel("/getgift to claim a gift.", COLOR_WHITE, 1547.4823, -1477.4794, 1037.5236, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 256.6335, 64.0462, 1003.6406); CreateDynamic3DTextLabel("Prisoner List\n{FFFFFF}/inmates", 0x43527DFF, 256.94, 69.83, 1003.64, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); //CreateDynamicPickup(1239, 23, 1595.2850, -1631.2607, 13.4841); //CreateDynamic3DTextLabel("Impound System\n{FFFFFF}/impound\n/impounds", 0x43527DFF, 1595.2850, -1631.2607, 13.4841 + 0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); //CreateDynamicPickup(1239, 23, 1587.6050,-1674.6945,1106.1793); //CreateDynamic3DTextLabel("Impound System\n{FFFFFF}/myimpounds\n/release", 0x43527DFF, 1587.6050,-1674.6945,1106.1793 + 0.30, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1575, 23, 323.0342, 1118.5804, 1083.8828); //Pot Get CreateDynamic3DTextLabel("Pot Pickup\n{FFFFFF}/getseeds", 0x43527DFF, 323.0342, 1118.5804, 1083.8828 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); //iCracklab = CreateDynamicPickup(1575, 23, 2346.2937, -1185.2551, 1027.9766); //Crack Get //new Text3D:textCracklab = CreateDynamic3DTextLabel("Crack Pickup\n{FFFFFF}/getcrack", 0x43527DFF, 2346.2937, -1185.2551, 1027.9766 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("Products\n{FFFFFF}/buyproducts", 0x43527DFF, 987.8038, -1366.2513, 13.5787 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 1423.6151, -1320.5437, 13.5547); //Materials Get 1 CreateDynamic3DTextLabel("Materials Pickup 1\n{FFFFFF}/getmats", 0x43527DFF, 1423.6151, -1320.5437, 13.5547 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 2390.5244,-2008.4646,13.5537); //Materials Get 2 CreateDynamic3DTextLabel("Materials Pickup 2\n{FFFFFF}/getmats", 0x43527DFF, 2390.5244,-2008.4646,13.5537 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 2205.9199, 1582.2222, 999.9766); //Crate Get CreateDynamic3DTextLabel("Drug Factory\n{FFFFFF}/getcrate", 0x43527DFF, 2411.9382, -2598.7937, 14.2131 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("{FFFFFF}/buyinsurance", -1, 1174.5452, -1321.2003, 1089.5674, 7.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1279, 23, 2411.9382, -2598.7937, 14.2131); CreateDynamicPickup(1239, 23, 89.6221,-259.6307,1.5781); CreateDynamic3DTextLabel("Trash Delivery Point\n{FFFFFF}/unloadtrash", 0x43527DFF, 89.6221,-259.6307,1.5781 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 2902.5264,-2119.8174,2.7550); CreateDynamic3DTextLabel("Trash Delivery Point\n{FFFFFF}/unloadtrash", 0x43527DFF, 2902.5264,-2119.8174,2.7550 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); //CreateDynamicPickup(1239, 23, 1825.8295,-1361.6649,14.4219); CreateDynamic3DTextLabel("/buyadrenaline", 0x43527DFF, 1175.73, -1324.19, 1089.57 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); //CreateDynamic3DTextLabel("Guide\n{FFFFFF}/guide", 0x7DAEFFFF, 1825.8295,-1361.6649,14.4219 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 754.5243, -39.7095, 1000.5859); //Triads Change Uniform CreateDynamic3DTextLabel("Locker\n{FFFFFF}/change", 0x43527DFF, 754.5243, -39.7095, 1000.5859 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); //iArrest1 = CreateDynamicPickup(1247, 23, 1528.3268, -1677.8229, 5.8906); //SAPD Arrest Garage CreateDynamic3DTextLabel("Arrest Point\n{FFFFFF}/arrest", 0x43527DFF, -2595.86, -104.28, 6001.08, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 20, 1, -1, 100); CreateDynamicPickup(1239, 23, 1324.2122, 286.5997, 20.0452); //Sprunk Factory CreateDynamicPickup(1239, 23, 1318.8472, 392.6770, 19.5547); //Drug Factory CreateDynamicPickup(1314, 23, 1310.2419, -1367.2987, 13.5280); //Paintball CreateDynamic3DTextLabel("Paintball Arena\n{FFFFFF}Type /enter to go inside.", 0x43527DFF, 1310.2419, -1367.2987, 13.5280 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 2276.50, -930.04, 28.04); //VIP Black Market CreateDynamic3DTextLabel("Blackmarket\n{FFFFFF}Type /enter to go inside.", 0x43527DFF, 2276.50, -930.04, 28.04 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 2352.9841,-1463.4185,24.0000); //Tiki Store CreateDynamic3DTextLabel("Tiki Store\n{FFFFFF}Type /enter to go inside.", 0x43527DFF, 2352.9841, -1463.4185, 24.0000 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, -2237.1008,130.3685,1035.4141); // Tiki /exchange pickup CreateDynamic3DTextLabel("Tiki Store\n{FFFFFF}Type /exchange to use your Tikis.", 0x43527DFF, -2237.1008, 130.3685, 1035.4141 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 1518.7930, -1452.9998, 14.2031); //VIP Club CreateDynamic3DTextLabel("VIP Club\n{FFFFFF}Type /enter to go inside.", 0x43527DFF, 1518.7930, -1452.9998, 14.2031 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 2232.89, -1333.48, 23.98); // Church CreateDynamicPickup(1239, 23, 766.1840, 13.3013, 1000.7027); //Training CreateDynamicPickup(1239, 23, 987.8038, -1366.2513, 13.5787); //Products Buy CreateDynamic3DTextLabel("Detective Job\n{FFFFFF}/getjob", 0xFFFF91FF, 256.6335, 64.0462, 1003.6406 +0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 1378.1117, -1096.1830, 25.1200); CreateDynamic3DTextLabel("Lawyer Job\n{FFFFFF}/getjob", 0xFFFF91FF, 1378.1117, -1096.1830, 25.1200 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 2164.1377, -1675.4172, 15.0859); CreateDynamic3DTextLabel("Drug Dealer Job\n{FFFFFF}/getjob", 0xFFFF91FF, 2164.1377, -1675.4172, 15.0859 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 2329.4089, -2316.0996, 13.5469); CreateDynamic3DTextLabel("Mechanic Job\n{FFFFFF}/getjob", 0xFFFF91FF, 2329.4089, -2316.0996, 13.5469 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 165.7221,-280.6324,1.9747); CreateDynamic3DTextLabel("Waste Collector Job\n{FFFFFF}/getjob", 0xFFFF91FF, 165.7221,-280.6324,1.9747 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 972.0325, -1385.7533, 13.5476); CreateDynamic3DTextLabel("Product Dealer Job\n{FFFFFF}/getjob", 0xFFFF91FF, 972.0325, -1385.7533, 13.5476 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23,2227.0664, -1718.9178, 13.5245); CreateDynamic3DTextLabel("Bodyguard Job\n{FFFFFF}/getjob", 0xFFFF91FF, 2227.0664, -1718.9178, 13.5245 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 1366.4325, -1275.2096, 13.5469); CreateDynamic3DTextLabel("Arms Dealer Job\n{FFFFFF}/getjob", 0xFFFF91FF, 1366.4325, -1275.2096, 13.5469 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 241.8917, -184.6301, 1.5781); CreateDynamic3DTextLabel("Arms Dealer Job\n{FFFFFF}/getjob", 0xFFFF91FF, 241.8917, -184.6301, 1.5781 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 756.7493, 6.3762, 1000.7001); CreateDynamic3DTextLabel("Arms Dealer Job\n{FFFFFF}/getjob", 0xFFFF91FF, 241.8917, -184.6301, 1.5781 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 1, -1551.8896, 1154.8134, 7.1875); CreateDynamic3DTextLabel("Bodyguard Job\n{FFFFFF}/getjob", 0xFFFF91FF, -1551.8896, 1154.8134, 7.1875 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 1, -2714.6499, 210.9217, 4.3281); CreateDynamic3DTextLabel("Mechanic Job\n{FFFFFF}/getjob", 0xFFFF91FF, -2714.6499, 210.9217, 4.3281 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 1, -2764.7473, 384.7114, 6.3281); CreateDynamic3DTextLabel("Lawyer Job\n{FFFFFF}/getjob", 0xFFFF91FF, -2764.7473, 384.7114, 6.3281 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 1, 1882.6560, 1897.4287, 27.5159); //CreateDynamic3DTextLabel("Detective Job\n{FFFFFF}/getjob", 0xFFFF91FF, 256.9972, 69.9624, 1003.6406 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 1, -1982.0994, 131.8526, 27.6875); CreateDynamic3DTextLabel("Taxi Job\n{FFFFFF}/getjob", 0xFFFF91FF, -1982.0994, 131.8526, 27.6875 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 1741.7062, -1863.6664, 13.5748); CreateDynamic3DTextLabel("Taxi Job\n{FFFFFF}/getjob", 0xFFFF91FF, 1741.7062, -1863.6664, 13.5748 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicPickup(1239, 23, 2354.2703, -1169.3293, 28.0083); CreateDynamic3DTextLabel("Drug Smuggler Job\n{FFFFFF}/getjob", 0xFFFF91FF, 2354.2703, -1169.3293, 28.0083 +0.88, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("ATM\n{FFFFFF}/atm", 0x6E88FFFF, 1425.95471, -980.49756, 1639.40381 +0.85, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("ATM\n{FFFFFF}/atm", 0x6E88FFFF, 1424.13562, -980.49762, 1639.40381 +0.85, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("ATM\n{FFFFFF}/atm", 0x6E88FFFF, 1422.31250, -980.54791, 1639.40381 +0.85, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("ATM\n{FFFFFF}/atm", 0x6E88FFFF, 1928.673461, -1783.487304, 13.114453 +0.85, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); //new Text3D:textAtm5 = CreateDynamic3DTextLabel("ATM\n{FFFFFF}/atm", 0x6E88FFFF, 2228.281982, -1710.821166, 13.177772 +0.85, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("ATM\n{FFFFFF}/atm", 0x6E88FFFF, 1548.155884, -1472.062866, 1036.653442 +0.85, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("ATM\n{FFFFFF}/atm", 0x6E88FFFF, 651.20215, -520.47241, 15.95219 +0.85, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("ATM\n{FFFFFF}/atm", 0x6E88FFFF, 251.26659, -189.68741, 1.16737 +0.85, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("Advertisement\n{FFFFFF}Visit the shop\nYour donations help support the server.", 0x33AA33FF, 2348.74390, -1458.50610, 23.48579 +0.85, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("Advertisement\n{FFFFFF}Sit your license test and get a free eye exam!\nDriving instructors also for hire.", 0x33AA33FF, 1289.89697, -1844.42358, 13.02007 +0.85, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); //new Text3D:tribute = CreateDynamic3DTextLabel("Stone of The Enlightened\n{FFFFFF}/scratchname", 0x6E88FFFF, -2231.2749,-1739.3939,481.4311 -0.50, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamic3DTextLabel("Service Desk\n{FFFFFF}/namechange", 0x6E88FFFF, -2106.8853, 764.0605, 9006.1152, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); // CCTV Arrows // CCTV_Arrows[0] = TextDrawCreate(208.000000, 305.386596, "<<-"); TextDrawLetterSize(CCTV_Arrows[0], 0.449999, 1.600000); TextDrawTextSize(CCTV_Arrows[0], 239.199996, 2439.360351); TextDrawAlignment(CCTV_Arrows[0], 1); TextDrawColor(CCTV_Arrows[0], -1); TextDrawUseBox(CCTV_Arrows[0], true); TextDrawBoxColor(CCTV_Arrows[0], 255); TextDrawSetShadow(CCTV_Arrows[0], 0); TextDrawSetOutline(CCTV_Arrows[0], 1); TextDrawBackgroundColor(CCTV_Arrows[0], 51); TextDrawFont(CCTV_Arrows[0], 1); TextDrawSetProportional(CCTV_Arrows[0], 1); TextDrawSetSelectable(CCTV_Arrows[0], true); CCTV_Arrows[1] = TextDrawCreate(415.200012, 307.626647, "->>"); TextDrawLetterSize(CCTV_Arrows[1], 0.449999, 1.600000); TextDrawTextSize(CCTV_Arrows[1], 446.399841, 149.333312); TextDrawAlignment(CCTV_Arrows[1], 1); TextDrawColor(CCTV_Arrows[1], -1); TextDrawUseBox(CCTV_Arrows[1], true); TextDrawBoxColor(CCTV_Arrows[1], 255); TextDrawSetShadow(CCTV_Arrows[1], 0); TextDrawSetOutline(CCTV_Arrows[1], 1); TextDrawBackgroundColor(CCTV_Arrows[1], 51); TextDrawFont(CCTV_Arrows[1], 1); TextDrawSetProportional(CCTV_Arrows[1], 1); TextDrawSetSelectable(CCTV_Arrows[1], true); // // //weapon pickups para = CreateDynamicPickup(371, 23, 1544.5868, -1352.8413, 339.2319); //Parachute poolcue = CreateDynamicPickup(338, 2, 508.2798, -85.0735, 998.9609); //10GB Poolcue dildo = CreateDynamicPickup(321, 2, 261.6014,71.2014,1003.2422); //PD Dildo //POINT PICKUPS CreateDynamicPickup(1239, 23, 2629.4319, -2107.8040, 16.9531); //Fossil Fuel CreateDynamicPickup(1239, 23, 2610.0503, -2239.3501, 13.5392); //Auto Export CreateDynamicPickup(1239, 23, 2172.1880, -2263.9683, 13.3363); //Materials Deliver 1 CreateDynamicPickup(1239, 23, 2288.1233,-1104.7793,38.4565); //Materials Deliver 2 //SetTimer("OnSecondSync", 999, 1); // 1 second (unused?) SetTimer("Timer_OnFiveSecondSync", 5000, 1); //5 seconds SetTimer("Timer_OnThirtySecondSync", 30000, 1); // 30 seconds SetTimer("Timer_OnOneMinuteSync", 60000, 1); //1 minute SetTimer("Timer_OnFiveMinuteSync", 300000, 1); //5 mins SetTimer("Timer_OnTenMinuteSync", 600000, 1); //10 mins SetTimer("Timer_OnPlayerSecondSync", 999, 1 ); //SetTimer("Bleeding", 12000, 1); // 12 sec resetLicensePlates(); gamemodeLoaded = 1; #if DEVMODE == 1 SetGameModeText(BETAMODE_VERSION); SendRconCommand("[Beta] Project Roleplay[0.3.7/DL]"); #endif // SANG missiles launcher (anti aircraft) CreateSAM(2773.9899900, -2597.7929700, 17.5000000, 0, 0, 90, 400, 200, 90, SAM_POWER_BEST, true, true); new BlackScreen = CreateObject(19377, 5027.3896, 4057.5551, 992.9909, 0.0000, 0.0000, 0.0000); //wall025 SetObjectMaterial(BlackScreen, 0, 10765, "airportgnd_sfse", "white", 0xFF000000); //UnlockServer = SetTimer("UnlockingServer", 60000*5, false); Create3DTextLabel("{b01ac6}Welcome to Project Roleplay\n{ffffff}Type /helpme for a tour.", 0x008080FF, 675.1188,-2294.3250,5.8098, 40.0, 0, 1); //MySQLSetTimeZone(sqlGameConnection, hour, minute) //FURNITURE FIX// return 1; } forward UnlockingServer(); //example function public UnlockingServer() { //SendRconCommand("password 0"); //printf("Server Unlocked"); return 1; } Timer:AutoMessageSystem() { new str[128]; switch(messagePos) { case 1: { if(!strmatch(autoMessages[1], "None")) { format(str, sizeof(str), "Announcement: %s", autoMessages[1]); SendClientMessageToAll(0x3D97E0FF, str); } messagePos = 2; } case 2: { if(!strmatch(autoMessages[2], "None")) { format(str, sizeof(str), "Announcement: %s", autoMessages[2]); SendClientMessageToAll(0x3D97E0FF, str); } messagePos = 3; } case 3: { if(!strmatch(autoMessages[3], "None")) { format(str, sizeof(str), "Announcement: %s", autoMessages[3]); SendClientMessageToAll(0x3D97E0FF, str); } messagePos = 4; } case 4: { if(!strmatch(autoMessages[4], "None")) { format(str, sizeof(str), "Announcement: %s", autoMessages[4]); SendClientMessageToAll(0x3D97E0FF, str); } messagePos = 5; } case 5: { if(!strmatch(autoMessages[5], "None")) { format(str, sizeof(str), "Announcement: %s", autoMessages[5]); SendClientMessageToAll(0x3D97E0FF, str); } messagePos = 1; } } return 1; } stock FactionMOTDS() { new file[20]; file = "factionMOTD.ini"; if(dini_Exists(file)) { format(facMOTD[1][motdOne], 128, "%s", dini_Get(file, "MOTD1")); format(facMOTD[2][motdTwo], 128, "%s", dini_Get(file, "MOTD2")); format(facMOTD[3][motdThree], 128, "%s", dini_Get(file, "MOTD3")); format(facMOTD[4][motdFour], 128, "%s", dini_Get(file, "MOTD4")); format(facMOTD[5][motdFive], 128, "%s", dini_Get(file, "MOTD5")); format(facMOTD[6][motdSix], 128, "%s", dini_Get(file, "MOTD6")); format(facMOTD[7][motdSeven], 128, "%s", dini_Get(file, "MOTD7")); format(facMOTD[8][motdEight], 128, "%s", dini_Get(file, "MOTD8")); format(facMOTD[9][motdNine], 128, "%s", dini_Get(file, "MOTD9")); format(facMOTD[10][motdTen], 128, "%s", dini_Get(file, "MOTD10")); format(facMOTD[11][motdEleven], 128, "%s", dini_Get(file, "MOTD11")); format(facMOTD[12][motdTwelve], 128, "%s", dini_Get(file, "MOTD12")); format(facMOTD[13][motdThirteen], 128, "%s", dini_Get(file, "MOTD13")); format(facMOTD[14][motdFourteen], 128, "%s", dini_Get(file, "MOTD14")); format(facMOTD[15][motdFifteen], 128, "%s", dini_Get(file, "MOTD15")); } else { format(facMOTD[1][motdOne], 128, "None"); format(facMOTD[2][motdTwo], 128, "None"); format(facMOTD[3][motdThree], 128, "None"); format(facMOTD[4][motdFour], 128, "None"); format(facMOTD[5][motdFive], 128, "None"); format(facMOTD[6][motdSix], 128, "None"); format(facMOTD[7][motdSeven], 128, "None"); format(facMOTD[8][motdEight], 128, "None"); format(facMOTD[9][motdNine], 128, "None"); format(facMOTD[10][motdTen], 128, "None"); format(facMOTD[11][motdEleven], 128, "None"); format(facMOTD[12][motdTwelve], 128, "None"); format(facMOTD[13][motdThirteen], 128, "None"); format(facMOTD[14][motdFourteen], 128, "None"); format(facMOTD[15][motdFifteen], 128, "None"); dini_Create(file); dini_Set(file, "MOTD1", "None"); dini_Set(file, "MOTD2", "None"); dini_Set(file, "MOTD3", "None"); dini_Set(file, "MOTD4", "None"); dini_Set(file, "MOTD5", "None"); dini_Set(file, "MOTD6", "None"); dini_Set(file, "MOTD7", "None"); dini_Set(file, "MOTD8", "None"); dini_Set(file, "MOTD9", "None"); dini_Set(file, "MOTD10", "None"); dini_Set(file, "MOTD11", "None"); dini_Set(file, "MOTD12", "None"); dini_Set(file, "MOTD13", "None"); dini_Set(file, "MOTD14", "None"); dini_Set(file, "MOTD15", "None"); } return 1; } stock LoadFactionBanks() { mysql_pquery(sqlGameConnection, "SELECT * FROM `factionbanks` LIMIT 1", "onLoadFactionBanks"); return 1; } forward onLoadFactionBanks(); public onLoadFactionBanks() { if(cache_num_rows()) { SAPD = cache_get_field_content_int(0, "SAPD", sqlGameConnection); FBI = cache_get_field_content_int(0, "FBI", sqlGameConnection); SAST = cache_get_field_content_int(0, "SAST", sqlGameConnection); FMD = cache_get_field_content_int(0, "FMD", sqlGameConnection); DOC = cache_get_field_content_int(0, "SANG", sqlGameConnection); GOV = cache_get_field_content_int(0, "GOV", sqlGameConnection); SCOTUS = cache_get_field_content_int(0, "SCOTUS", sqlGameConnection); NEWS = cache_get_field_content_int(0, "NEWS", sqlGameConnection); TAXI = cache_get_field_content_int(0, "TAXI", sqlGameConnection); } return 1; } stock AdminMOTD() { new file[20]; file = "adminMOTD.ini"; if(dini_Exists(file)) { format(adminMOTD, sizeof(adminMOTD), "%s", dini_Get(file, "MOTD")); } else { dini_Create(file); dini_Set(file, "MOTD", "None"); } return 1; } #include "../gamemodes/inc/tagsystem.inc" #include "../gamemodes/inc/core/chat.inc" #include "../gamemodes/inc/showstats.inc" //#include "../gamemodes/inc/Player/adminrecord.inc" #include "../gamemodes/inc/bankrobbery.inc" stock SaveCCTV(owner[], Float:x, Float:y, Float:z, vw, int, cctvID) { new filename[50]; format(filename, sizeof(filename), "CCTV/CCTV%i.ini", cctvID); dini_Create(filename); if(dini_Exists(filename)) { dini_Set(filename, "Name", "Not Set"); dini_Set(filename, "Owner", owner); dini_FloatSet(filename, "X", x); dini_FloatSet(filename, "Y", y); dini_FloatSet(filename, "Z", z); dini_FloatSet(filename, "RX", 0.0); dini_FloatSet(filename, "RY", 0.0); dini_FloatSet(filename, "RZ", 0.0); dini_IntSet(filename, "VW", vw); dini_IntSet(filename, "Int", int); dini_FloatSet(filename, "LAX", 0.0); dini_FloatSet(filename, "LAY", 0.0); dini_FloatSet(filename, "LAZ", 0.0); } else { dini_Create(filename); dini_Set(filename, "Name", "Not Set"); dini_Set(filename, "Owner", owner); dini_FloatSet(filename, "X", x); dini_FloatSet(filename, "Y", y); dini_FloatSet(filename, "Z", z); dini_FloatSet(filename, "RX", 0.0); dini_FloatSet(filename, "RY", 0.0); dini_FloatSet(filename, "RZ", 0.0); dini_IntSet(filename, "VW", vw); dini_IntSet(filename, "Int", int); dini_FloatSet(filename, "LAX", 0.0); dini_FloatSet(filename, "LAY", 0.0); dini_FloatSet(filename, "LAZ", 0.0); } CCTVCount++; return 1; } stock SendActionMessage(playerid, colour, string[]) { new Float:x, Float:y, Float:z, world, int; GetPlayerPos(playerid, x, y, z); int = GetPlayerInterior(playerid); world = GetPlayerVirtualWorld(playerid); for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) if(IsPlayerInRangeOfPoint(i, 20.0, x, y, z)) if(GetPlayerInterior(i) == int) if(GetPlayerVirtualWorld(i) == world) SendClientMessage(i, colour, string); return 1; } stock UpdateCCTV(id) { new filename[50]; format(filename, sizeof(filename), "CCTV/CCTV%i.ini", id); dini_Set(filename, "Name", CCTV[id][CCTVName]); dini_Set(filename, "Owner", CCTV[id][CCTVOwner]); dini_FloatSet(filename, "X", CCTV[id][CCTVX]); dini_FloatSet(filename, "Y", CCTV[id][CCTVY]); dini_FloatSet(filename, "Z", CCTV[id][CCTVZ]); dini_FloatSet(filename, "RX", CCTV[id][CCTVRX]); dini_FloatSet(filename, "RY", CCTV[id][CCTVRY]); dini_FloatSet(filename, "RZ", CCTV[id][CCTVRZ]); dini_IntSet(filename, "VW", CCTV[id][CCTVVW]); dini_IntSet(filename, "Int", CCTV[id][CCTVINT]); dini_FloatSet(filename, "LAX", CCTV[id][CCTVLookAtX]); dini_FloatSet(filename, "LAY", CCTV[id][CCTVLookAtY]); dini_FloatSet(filename, "LAZ", CCTV[id][CCTVLookAtZ]); return 1; } stock resetLicensePlates() { new const charset[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; new stringplate[8]; for(new vv = 0; vv < MAX_VEHICLES; vv++) { for(new i = 0; i < 6; i++) { stringplate[i] = charset[random(sizeof(charset) - 1)]; } SetVehicleNumberPlate(vv, stringplate); } } //============================================================================== Timer:OnOneMinuteSync() { new str[128]; foreach( new i: Player ) { // Update gags if(IsPlayerGagged(i)) { if(gagExpire[i] <= gettime()) { gagExpire[i] = 0; RemoveGagObject(i); // Action new gagAction[128]; format(gagAction, sizeof(gagAction), "* %s manages to spit out the gag in their mouth.", PlayerICName(i)); ProxDetector(30.0, i, gagAction, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); } } //update player levels SetPlayerScore(i, PlayerInfo[i][pLevel]); //reset vip gifts if(PlayerInfo[i][pDonateRank] != 0) { if(GottenTimeLeft[i] <= 0) { if(GottenGift[i] != 0) { GottenGift[i] = 0; GottenTimeLeft[i] = 0; SendClientMessage(i, COLOR_LIGHTBLUE, "VIP Announcement: You can now /getgift again."); } } else { GottenGift[i] = 1; GottenTimeLeft[i] -= 60000; } } //vehicle anti cheat if(PlayerInfo[i][pMember] < 1 && PlayerInfo[i][pLevel] < 3 && //not a faction member, below level 3 PlayerInfo[i][pAdmin] < 1 && PlayerInfo[i][pBand] == 0) //not an admin, not banned. { if(GetPlayerState(i) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(i), dynvehID = GetDynamicVehicleID(vehicleid); if(sVehicleInfo[dynvehID][v_faction] == 5) { if(PlayerInfo[i][pBand] == 3) return 1; // Avoid spam, should already be banned. ClearAnimationsEx(i); anticheatbans ++; format(str, sizeof(str), "{FF6347}SERVER: %s was banned by ANTICHEAT, reason: Sobiet detected (%d hackers banned)", PlayerOOCName(i), anticheatbans); SendClientMessageToAll(COLOR_WHITE, str); PlayerInfo[i][pBand] = 3; BanLog(str); format(str, sizeof(str), "Ban Reason: Sobiet detected - Banned by: ANTICHEAT"); SendClientMessage(i, COLOR_GREY, str); strmid(PlayerInfo[i][pBanReason], str, 0, strlen(str)); printf("Sobiet detected: %s, vehicle: %s, dynveh: %d", PlayerOOCName(i), GetVehicleFriendlyName(vehicleid), dynvehID); BanExx(i); if(!IsUnoccupiedVehicle(vehicleid)) SetVehicleToRespawn(vehicleid); //respawn the vehicle. return 1; } } } if(PlayerPaused[i] == 0) minutesOnline[i]++; } UpdateWeed(); //update the weed system return 1; } //============================================================================== // The following is a fix for PointPayCheck being called twice in the same minute, // which is also the reason for the paychecks being sent twice. // This fix will be removed when we get more accurate timers. ~ byt3 new bool:g_bPaydaySent = false; Timer:ResetPaydaySent() { g_bPaydaySent = false; return 1; } Timer:PointPayCheck() { new hh, mm, ss; gettime(hh, mm, ss); if(mm == 59 && !g_bPaydaySent) { g_bPaydaySent = true; SetTimer("Timer_ResetPaydaySent", 120000, false); // 2 minutes PayDay(); } return 1; } Timer:OnFiveMinuteSync() //this function does stuff every 5 mins then saves their account (cutting down on timers) { new rand = random(sizeof(prisonAmbientSounds)); foreach( new i: Player ) { if(gPlayerLogged[i] == 1) { fish_OnFiveMinuteSync(i); if(PlayerInfo[i][pPayDay] < 6) //don't know! { PlayerInfo[i][pPayDay] += 1; } //prison ambient sounds if(IsPlayerInRangeOfPoint(i, 40.0, -2406.4944, 2072.3271, 995.6563)) { PlayerPlaySound(i, prisonAmbientSounds[rand], -2406.4944, 2072.3271, 995.6563); } if(IsPlayerInRangeOfPoint(i, 40.0, 1789.1893, -1570.7909, 1642.9736)) { PlayerPlaySound(i, prisonAmbientSounds[rand], 1789.1893, -1570.7909, 1642.9736); } } } return 1; } public SaveChars() { if(gamemodeLoaded) { foreach( new i: Player ) { OnPlayerSave(i); //if they have a vehicle spawned... if( playerSpawnedVehicle[i] > -1 ) { savePlayerVehicle( i, playerSpawnedVehicle[i] ); } } SaveDealerships(); SaveHouses(); SaveGates(); SaveSurnames(); SaveEntrances(); SaveGarages(); SaveFactionBanks(); SaveStuff(); SaveBars(); } return 1; } SendPayCheck(i) { new str[128]; new account, cash; account = PayDayAccount[i]; //bank account amount cash = PlayerInfo[i][pCash]; if(PlayerInfo[i][pPayDay] >= 5) { new checks = PlayerInfo[i][pPayCheck]; //paycheck amount new incometax = PlayerInfo[i][pPayCheck] / 100 * Tax; //income tax amount GiveMoney(i, checks -incometax); //give money //new govmoney = checks-incometax; //TAX MONEY TaxValue = TaxValue +incometax; //ELECTRICITY new ebill = 0; if(PlayerInfo[i][pHouseID] != 0) { //owns house new randomv = random(1000); ebill += (randomv *HouseInfo[PlayerInfo[i][pHouseID]][hLevel]) /2; } TaxValue += ebill; if(IsValidPaymentFaction(i)) // check if the faction can be paid, if you wish to add another faction to the system edit both IsValidPaymentFaction() and GetPlayerFactionPayment() { GiveMoney(i, GetPlayerFactionPayment(i)); TaxValue -= GetPlayerFactionPayment(i); SendClientMessage(i, COLOR_WHITE, "Bank Statement:"); format(str, sizeof(str), "Paycheck: $%d", checks); SendClientMessage(i, COLOR_GRAD1, str); format(str, sizeof(str), "Income Tax: -$%d", incometax); SendClientMessage(i, COLOR_GRAD1, str); format(str, sizeof(str), "Faction Salary: $%d", GetPlayerFactionPayment(i)); SendClientMessage(i, COLOR_GRAD1, str); } if(PlayerInfo[i][pDonateRank] == 4) { format(str, sizeof(str), "Platinum VIP Bonus: $15.000"); SendClientMessage(i, COLOR_GRAD1, str); GiveMoney(i, 15000); } else { SendClientMessage(i, COLOR_WHITE, "Bank Statement:"); format(str, sizeof(str), "Paycheck: $%d", checks); SendClientMessage(i, COLOR_GRAD1, str); format(str, sizeof(str), "Income Tax: -$%d", incometax); SendClientMessage(i, COLOR_GRAD1, str); } new nxtlevel = PlayerInfo[i][pLevel] + 1; new expamount = nxtlevel * levelexp; if(DOUBLE_EXP_MODE) { PlayerInfo[i][pExp] += 2; format(str, sizeof(str), "Respect: %d/%d (2x EXP Bonus)", PlayerInfo[i][pExp], expamount); SendClientMessage(i, COLOR_GRAD1, str); } else { PlayerInfo[i][pExp]++; format(str, sizeof(str), "Respect: %d/%d", PlayerInfo[i][pExp], expamount); SendClientMessage(i, COLOR_GRAD1, str); } if(PlayerInfo[i][pBizKey] != -1 || PlayerInfo[i][pHouseID] != 0) { //owns house or business GiveMoney(i, -ebill); format(str, sizeof(str), "Electricity Bill: -$%d", ebill); SendClientMessage(i, COLOR_GRAD1, str); } SendClientMessage(i, COLOR_GRAD4, "-----"); format(str, sizeof(str), "Old Balance: $%d", account); SendClientMessage(i, COLOR_GRAD5, str); format(str, sizeof(str), "Old Cash: $%d", cash); SendClientMessage(i, COLOR_GRAD5, str); format(str, sizeof(str), "New Balance: $%d", PlayerInfo[i][pAccount]); SendClientMessage(i, COLOR_GRAD5, str); PlayerInfo[i][pCheck] = 0; PlayerInfo[i][pPayDay] = 0; PlayerInfo[i][pPayCheck] = 0; PayDayAccount[i] = 0; } else { PlayerInfo[i][pCheck] = 0; PlayerInfo[i][pPayDay] = 0; PlayerInfo[i][pPayCheck] = 0; SendClientMessage(i, COLOR_LIGHTRED, "* You haven't played long enough to obtain a Paycheck."); } return 1; } //============================================================================== PayDay() { new str[128]; foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(MoneyMessage[i] == 1 && PlayerInfo[i][pJailed] == 0) { SendClientMessage(i, COLOR_LIGHTBLUE, "* You failed to pay your taxes and as a result have been fined."); PlayerInfo[i][pWantedLevel]++; SetPlayerCriminal(i, 998, "Tax evasion"); PlayerPlaySound(i, 1054, 0.0, 0.0, 0.0); } PlayerInfo[i][pConnectTime] += 1; PlayerInfo[i][pCheck] = 1; CheckNumber[i] = 1000 +random(8999); PayDayAccount[i] = PlayerInfo[i][pAccount]; format(str, 128, "* Payday! Type '/signcheck %d' to collect your paycheck.", CheckNumber[i]); SendClientMessage(i, COLOR_LIGHTBLUE, str); displayCenterHUDInfo(i, "~y~PayDay~n~~w~Paycheck.", 8); //display for 8 seconds } } for(new f = 0; f < sizeof(FamilyInfo); f++) { new count = 0; foreach(new i: Player) { if(PlayerInfo[i][pFMember] == f) count++; if(count == 5) break; } if(count >= 5) { foreach(new i: Player) { if(PlayerInfo[i][pFMember] == f) { SendClientMessage(i, COLOR_LIGHTBLUE, "Your family has been given 5 XP due to having 5+ members online."); } } GrantFamXP(f, 5); } } // FMD's monthly call count reset // AutoResetCallCount(); CheckInactiveHouses(); return 1; } //============================================================================== strtok(const string2[], &index) { new length = strlen(string2); while((index < length) && (string2[index] <= ' ')) { index++; } new offset = index; new result[64]; while((index < length) && (string2[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string2[index]; index++; } result[index - offset] = EOS; return result; } //============================================================================== //============================================================================== forward OnPlayerSave(playerid); public OnPlayerSave(playerid) { if(IsPlayerConnected(playerid)) { if(IsPlayerNPC(playerid)) return 1; if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][pAdmin] > 0) return 1; //players with spec hacks could bypass save function and dupe stats, admin check should fix it if(gPlayerLogged[playerid] != 0 && gPlayerSpawned[playerid] == 1) { new playername3[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername3, sizeof(playername3)); if(inPaintball[playerid] > 0 || WatchingTV[playerid] == true) { switch(inPaintball[playerid]) { case 1: { PlayerInfo[playerid][pInt] = 0; PlayerInfo[playerid][pVirtualWorld] = 0; PlayerInfo[playerid][pSPos_x] = 1310.0685; PlayerInfo[playerid][pSPos_y] = -1367.6198; PlayerInfo[playerid][pSPos_z] = 13.5382; GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pSPos_r]); PlayerInfo[playerid][pHealth] = pbHealth[playerid]; PlayerInfo[playerid][pArmor] = pbArmor[playerid]; } case 2: { PlayerInfo[playerid][pInt] = 0; PlayerInfo[playerid][pVirtualWorld] = 0; PlayerInfo[playerid][pSPos_x] = 1088.75; PlayerInfo[playerid][pSPos_y] = -1715.45; PlayerInfo[playerid][pSPos_z] = 1136.46; GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pSPos_r]); PlayerInfo[playerid][pHealth] = pbHealth[playerid]; PlayerInfo[playerid][pArmor] = pbArmor[playerid]; } } } else { PlayerInfo[playerid][pInt] = GetPlayerInterior(playerid); PlayerInfo[playerid][pVirtualWorld] = GetPlayerVirtualWorld(playerid); GetPlayerPos(playerid, PlayerInfo[playerid][pSPos_x], PlayerInfo[playerid][pSPos_y], PlayerInfo[playerid][pSPos_z]); GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pSPos_r]); //updatePlayerIP(playerid); //cannot collect IP when player disconnects GetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]); GetPlayerArmour(playerid, PlayerInfo[playerid][pArmor]); } if(WatchingTV[playerid] != true) GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pSPos_r]); if(MethEffect[playerid] == true) { PlayerInfo[playerid][pArmsSkill] = BeforeStatBoost[playerid]; } SQLSave(playerid); } } return 1; } stock SQLSave(playerid) { if( !gPlayerLogged[playerid] || gPlayerSpawned[playerid] == 0 ) return 0; //don't save if there's nothing to save AKA player hasn't spawned (causes overwritten data) for(new i = 0; i < 7; i++) { if(AccessoriesX[playerid][i] != AccessoriesX[playerid][i]) { AccessoriesX[playerid][i] = 0; printf("Found NaN value on AccessoriesX for player %s", PlayerName(playerid)); } if(AccessoriesY[playerid][i] != AccessoriesY[playerid][i]) { AccessoriesY[playerid][i] = 0; printf("Found NaN value on AccessoriesY for player %s", PlayerName(playerid)); } if(AccessoriesZ[playerid][i] != AccessoriesZ[playerid][i]) { AccessoriesZ[playerid][i] = 0; printf("Found NaN value on AccessoriesZ for player %s", PlayerName(playerid)); } if(AccessoriesrX[playerid][i] != AccessoriesrX[playerid][i]) { AccessoriesrX[playerid][i] = 0; printf("Found NaN value on AccessoriesrX for player %s", PlayerName(playerid)); } if(AccessoriesrY[playerid][i] != AccessoriesrY[playerid][i]) { AccessoriesrY[playerid][i] = 0; printf("Found NaN value on AccessoriesrY for player %s", PlayerName(playerid)); } if(AccessoriesrZ[playerid][i] != AccessoriesrZ[playerid][i]) { AccessoriesrZ[playerid][i] = 0; printf("Found NaN value on AccessoriesrZ for player %s", PlayerName(playerid)); } if(AccessoriessX[playerid][i] != AccessoriessX[playerid][i]) { AccessoriessX[playerid][i] = 0; printf("Found NaN value on AccessoriessX for player %s", PlayerName(playerid)); } if(AccessoriessY[playerid][i] != AccessoriessY[playerid][i]) { AccessoriessY[playerid][i] = 0; printf("Found NaN value on AccessoriessY for player %s", PlayerName(playerid)); } if(AccessoriessZ[playerid][i] != AccessoriessZ[playerid][i]) { AccessoriessZ[playerid][i] = 0; printf("Found NaN value on AccessoriessZ for player %s", PlayerName(playerid)); } } printf("[MySQL] SQLSave(start) %s.", PlayerName(playerid)); //player stats + important stuff new query[9000]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Level`= %d,`AdminLevel`= %d,`SecurityKey`= %d,`Stealthed`= %d,`Band`= %d,`PermBand`= %d,`BanReason`= '%e',`PrisonReason`= '%e',`AdminJailed`= %d,`PrisonedBy`= '%e',`Warnings`= %d,`Disabled`= %d,`CBand`= %d,", PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pSecKey], PlayerInfo[playerid][pStealthed], PlayerInfo[playerid][pBand], PlayerInfo[playerid][pPermBand], PlayerInfo[playerid][pBanReason], PlayerInfo[playerid][pPrisonReason], PlayerInfo[playerid][pAdminJailed], PlayerInfo[playerid][pPrisonedBy], PlayerInfo[playerid][pWarns], PlayerInfo[playerid][pDisabled], PlayerInfo[playerid][pCBand]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`DonateRank`= %d,`Tag`= %d,`VIPJoinDate`= '%e',`VIPExpDate`= '%e',`BanAppealer`= %d,`GangModd`= %d,`EventModd`= %d,`ComplaintModd`= %d,`ShopMod`= %d,`BizMod`= %d,`FactionMod`= %d,`GangDirector`= %d,`UpgradePoints`=%d,", query, PlayerInfo[playerid][pDonateRank], PlayerInfo[playerid][pTag], PlayerInfo[playerid][pVIPJoinDate], PlayerInfo[playerid][pVIPExpDate], PlayerInfo[playerid][pBanAppealer], PlayerInfo[playerid][pGangModd], PlayerInfo[playerid][pEventModd], PlayerInfo[playerid][pComplaintModd], PlayerInfo[playerid][pShopMod], PlayerInfo[playerid][pBizMod], PlayerInfo[playerid][pFactionMod], PlayerInfo[playerid][pGangDirector], PlayerInfo[playerid][gPupgrade]); mysql_format(sqlGameConnection, query, sizeof(query),"%s`ConnectedTime`= %d,`Registered`= %d,`Sex`= %d,`Age`= %d,`Origin`= '%e',`Appearance`= '%e',`FactionDirector`= %d,", query, PlayerInfo[playerid][pConnectTime], PlayerInfo[playerid][pReg], PlayerInfo[playerid][pSex], PlayerInfo[playerid][pAge], PlayerInfo[playerid][pOrigin], PlayerInfo[playerid][pAppearance], PlayerInfo[playerid][pFactionDirector]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`Muted`= %d,`Respect`= %d,`Money`= %d,`Bank`= %d,`Crimes`= %d,`LottoNr`= %d,", query, PlayerInfo[playerid][pMuted], PlayerInfo[playerid][pExp], PlayerInfo[playerid][pCash], PlayerInfo[playerid][pAccount], PlayerInfo[playerid][pCrimes], PlayerInfo[playerid][pLottoNr]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`Accent`= '%e',`Kills`= %d,`Deaths`= %d,`CHits`= %d, `FHits`= %d,`TogAutoChat`= %d,`Arrested`= %d,", query, Accent[playerid], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pCHits], PlayerInfo[playerid][pFHits], autoChat[playerid], PlayerInfo[playerid][pArrested]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`BiggestFish`= %d,`Job`= %d,`Paycheck`= %d,`HeadValue`= %d,`Jailed`= %d,`JailCell`= %d,`JailTime`= %d,`Leader`= %d, `Recruiter` = %d,`Member`= %d,`FMember`= %d,`Rank`= %d,`RadioStation`= %d,", query, PlayerInfo[playerid][pBiggestFish], PlayerInfo[playerid][pJob], PlayerInfo[playerid][pPayCheck], PlayerInfo[playerid][pHeadValue], PlayerInfo[playerid][pJailed], PlayerInfo[playerid][pJailCell], PlayerInfo[playerid][pJailTime], PlayerInfo[playerid][pLeader], PlayerInfo[playerid][pRecruiter], PlayerInfo[playerid][pMember], PlayerInfo[playerid][pFMember], PlayerInfo[playerid][pRank], PlayerInfo[playerid][pRadioStation]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`DetSkill`= %d,`SexSkill`= %d,`BoxSkill`= %d,`LawSkill`= %d,`MechSkill`= %d,`JackSkill`= %d,`CarSkill`= %d,`DrugsSkill`= %d,`ArmsSkill`= %d,`SmugglerSkill`= %d,`ThieveSkill`= %d,`FishSkill`= %d,`FightingStyle`= %d,", query, PlayerInfo[playerid][pDetSkill], PlayerInfo[playerid][pSexSkill], PlayerInfo[playerid][pBoxSkill], PlayerInfo[playerid][pLawSkill], PlayerInfo[playerid][pMechSkill], PlayerInfo[playerid][pJackSkill], PlayerInfo[playerid][pCarSkill], PlayerInfo[playerid][pDrugsSkill], PlayerInfo[playerid][pArmsSkill], PlayerInfo[playerid][pSmugglerSkill], PlayerInfo[playerid][pThieveSkill], PlayerInfo[playerid][pFishSkill], PlayerInfo[playerid][pFightingStyle]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`pHealth`= %f,`pArmor`= %f,`pSHP`= %d,`pSHealth`= %d,`InteriorID`= %d,`Local`= %d,`VirtualWorld`= %d,`Model`= %d,`DriverPoints`= %d,`BadgeNumber`= %d,`Clothes`= %d,", query, PlayerInfo[playerid][pHealth], PlayerInfo[playerid][pArmor], PlayerInfo[playerid][pSHP], PlayerInfo[playerid][pSHealth], PlayerInfo[playerid][pInt], PlayerInfo[playerid][pLocal], PlayerInfo[playerid][pVirtualWorld], PlayerInfo[playerid][pModel], PlayerInfo[playerid][pDriverPoints], PlayerInfo[playerid][pBadgeNumber], PlayerInfo[playerid][pClothes]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`PhoneNr`= %d,`PhoneType`= %d,`BizKey`= %d,`BizFixed`= %d,`SetVehSpawn`= %d,", query, PlayerInfo[playerid][pPnumber], PlayerInfo[playerid][pCellphoneType], PlayerInfo[playerid][pBizKey], PlayerInfo[playerid][pBizFixed], PlayerInfo[playerid][pSetVehSpawn]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`FishLic`= %d,`Gun0`= %d,`Gun1`= %d,`Gun2`= %d,`Gun3`= %d,`Gun4`= %d,`Gun5`= %d,`Gun6`= %d,`Gun7`= %d,`Gun8`= %d,`Gun9`= %d,`Gun10`= %d,`Gun11`= %d,`Gun12`= %d,", query, PlayerInfo[playerid][pFishLic], PlayerInfo[playerid][pGun0], PlayerInfo[playerid][pGun1], PlayerInfo[playerid][pGun2], PlayerInfo[playerid][pGun3], PlayerInfo[playerid][pGun4], PlayerInfo[playerid][pGun5], PlayerInfo[playerid][pGun6], PlayerInfo[playerid][pGun7], PlayerInfo[playerid][pGun8], PlayerInfo[playerid][pGun9], PlayerInfo[playerid][pGun10], PlayerInfo[playerid][pGun11], PlayerInfo[playerid][pGun12]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`CarTime`= %d,`DrugsTime`= %d,`LawyerTime`= %d,`ReportMuted`= %d,`Insurance`= %d,`isBOLO`= %d, `PresentCount` = %d,", query, PlayerInfo[playerid][pCarTime], PlayerInfo[playerid][pDrugsTime], PlayerInfo[playerid][pLawyerTime], PlayerInfo[playerid][pRepMuted], PlayerInfo[playerid][pInsurance], isBOLO[playerid], PlayerInfo[playerid][pPresentCount]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`LawyerFreeTime`= %d,`MechTime`= %d,`SexTime`= %d,`PlantTime`= %d,`RepairTime`= %d,`RobTime`= %d,`PayDay`= %d,`PayDayHad`= %d,`Wins`= %d, ", query, PlayerInfo[playerid][pLawyerFreeTime], PlayerInfo[playerid][pMechTime], PlayerInfo[playerid][pSexTime], PlayerInfo[playerid][pPlantTime], PlayerInfo[playerid][pRepairTime], PlayerInfo[playerid][pRobTime], PlayerInfo[playerid][pPayDay], PlayerInfo[playerid][pPayDayHad], PlayerInfo[playerid][pWins]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`Loses`= %d,`Tutorial`= %d,`OnDuty`= %d,`Hospital`= %d,`Adjustable`= %d,`Married`= %d,`MarriedTo`= '%e', `Adrenaline`= '%d',", // `HouseFire` = %d, ",//important just in case `Important`= '%d' query, PlayerInfo[playerid][pLoses], PlayerInfo[playerid][pTut], PlayerInfo[playerid][pOnDuty], PlayerInfo[playerid][pHospital], PlayerInfo[playerid][pAdjustable], PlayerInfo[playerid][pMarried], PlayerInfo[playerid][pMarriedTo], PlayerInfo[playerid][pAdrenaline]); //, PlayerInfo[playerid][pHouseFire]); PlayerInfo[playerid][pImportant] mysql_format(sqlGameConnection, query, sizeof(query), "%s`GCTog`= %d, `GCTag`= %d, `GCTagName`= '%e', `GCMute`= %d, `GCMuteTimer`= %d, `GCMutePerm`= %d,", query, PlayerInfo[playerid][pGCTog], PlayerInfo[playerid][pGCTag], PlayerInfo[playerid][pGCTagName], PlayerInfo[playerid][pGCMute], PlayerInfo[playerid][pGCMuteTimer], PlayerInfo[playerid][pGCMutePerm]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`NewbieTag`= %d, `NewbieTagName`= '%e',", query, PlayerInfo[playerid][pNewbieTag], PlayerInfo[playerid][pNewbieTagName]); #define NaN(%0) !(%0 <= 0 || %0 > 0) //will fix later... if(NaN(PlayerInfo[playerid][pSPos_x])) { PlayerInfo[playerid][pSPos_x] = 0.0; } if(NaN(PlayerInfo[playerid][pSPos_y])) { PlayerInfo[playerid][pSPos_y] = 0.0; } if(NaN(PlayerInfo[playerid][pSPos_z])) { PlayerInfo[playerid][pSPos_z] = 0.0; } if(NaN(PlayerInfo[playerid][pSPos_r])) { PlayerInfo[playerid][pSPos_r] = 0.0; } mysql_format(sqlGameConnection, query, sizeof(query), "%s`ContractBy`= '%e',`IP`= '%e',`WantedLevel`= %d,`NewbieMuted`= %d,`NewbieMutedTime`= %d,`FactionKickTime`= %d,`NewbieWarns`= %d,`AdMuted`= %d,`BugMuted`= %d,`SPos_x`= %f,`SPos_y`= %f,`SPos_z`= %f,`SPos_r`= %f,`HelperLevel`= %d,`DevLevel`= %d,", query, PlayerInfo[playerid][pContractBy], PlayerInfo[playerid][pIP], PlayerInfo[playerid][pWantedLevel], PlayerInfo[playerid][pNewbieMuted], PlayerInfo[playerid][pNMuteTime], PlayerInfo[playerid][pFKickTime], PlayerInfo[playerid][pNewbieWarns], PlayerInfo[playerid][pAdMuted], PlayerInfo[playerid][pBugMuted], PlayerInfo[playerid][pSPos_x], PlayerInfo[playerid][pSPos_y], PlayerInfo[playerid][pSPos_z], PlayerInfo[playerid][pSPos_r], PlayerInfo[playerid][pHelper], PlayerInfo[playerid][pDev]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`TesterLevel`= %d,`Famed`= %d, `OldSchool`=%d,`Enlightened`= %d,`BanDay`= %d,`BanMonth`= %d,`BanYear`= %d,`BanTime`= %d,`GottenGift`= %d,`GottenTimeLeft`= %d,`pHouseID`= %d,`hTicket`= %d,`gTicket`= %d,`gRefund`= %d,`MaskName`= '%e',`Economist`= %d,", query, PlayerInfo[playerid][pTester], PlayerInfo[playerid][pFamed], PlayerInfo[playerid][pOldSchool], PlayerInfo[playerid][pEnlightened], PlayerInfo[playerid][pBanDay], PlayerInfo[playerid][pBanMonth], PlayerInfo[playerid][pBanYear], PlayerInfo[playerid][pBanTime], GottenGift[playerid], GottenTimeLeft[playerid], PlayerInfo[playerid][pHouseID], PlayerInfo[playerid][hTicket], PlayerInfo[playerid][gTicket], PlayerInfo[playerid][gRefund], PlayerInfo[playerid][pMaskName], PlayerInfo[playerid][pEconomist]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`HAFakeBadge`= %d,`FakeFaction`= %d,`Badge`= %d, `WasteSkill` = %d,`Serial`= '%e',`NSB` = %d,`GroupNick`= '%e',`DuffleCooldown`= %d,`S9BadgeName`= '%e',", query, PlayerInfo[playerid][pHAFakeBadge], FakeFaction[playerid], PlayerInfo[playerid][pBadge], PlayerInfo[playerid][pWasteSkill], PlayerInfo[playerid][pSerial], PlayerInfo[playerid][pNSB], PlayerInfo[playerid][pGroupNick], PlayerInfo[playerid][pDuffleBagTime], PlayerInfo[playerid][pS9BadgeName]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`Build`= %d,`Height`= %d,`Ethnicity`= %d,`EyeColour`= %d, `PizzaSkill`=%d, `RubberBullets`=%d, `Beer`=%d, `HidingStatus`=%d", query, PlayerInfo[playerid][pBuild], PlayerInfo[playerid][pHeight], PlayerInfo[playerid][pEthnicity], PlayerInfo[playerid][pEyeColour], PlayerInfo[playerid][pPizzaSkill], hasRubberBullets[playerid], PlayerInfo[playerid][pBeer], PlayerInfo[playerid][pHidingStatus]); //exec the query mysql_format(sqlGameConnection, query, sizeof(query), "%s WHERE `Name`='%e';", query, PlayerName(playerid)); mysql_pquery(sqlGameConnection, query); format(query, sizeof(query), ""); //clear query string //gear new accstr[3000]; mysql_format(sqlGameConnection, accstr, sizeof(accstr), "UPDATE `players` SET `Accessory1`=%d,`AccessoryB1`=%d,`AccessoryX1`=%f,`AccessoryY1`=%f,`AccessoryZ1`=%f,`AccessoryrX1`=%f,`AccessoryrY1`=%f,`AccessoryrZ1`=%f,`AccessorysX1`=%f,`AccessorysY1`=%f,`AccessorysZ1`=%f,`AccessorysC1`=%d,", Accessories[playerid][0], AccessoriesB[playerid][0], AccessoriesX[playerid][0], AccessoriesY[playerid][0], AccessoriesZ[playerid][0], AccessoriesrX[playerid][0], AccessoriesrY[playerid][0], AccessoriesrZ[playerid][0], AccessoriessX[playerid][0], AccessoriessY[playerid][0], AccessoriessZ[playerid][0], Accessoriesc1[playerid][0]); for(new i = 2; i < 8; i++) { mysql_format(sqlGameConnection, accstr, sizeof(accstr), "%s`Accessory%d`=%d, `AccessoryB%d`=%d, `AccessoryX%d`=%f, `AccessoryY%d`=%f, `AccessoryZ%d`=%f, `AccessoryrX%d`=%f, `AccessoryrY%d`=%f, `AccessoryrZ%d`=%f, `AccessorysX%d`=%f, `AccessorysY%d`=%f, `AccessorysZ%d`=%f, `AccessorysC%d`=%d,", accstr, i, Accessories[playerid][i-1], i, AccessoriesB[playerid][i-1], i, AccessoriesX[playerid][i-1], i, AccessoriesY[playerid][i-1], i, AccessoriesZ[playerid][i-1], i, AccessoriesrX[playerid][i-1], i, AccessoriesrY[playerid][i-1], i, AccessoriesrZ[playerid][i-1], i, AccessoriessX[playerid][i-1], i, AccessoriessY[playerid][i-1], i, AccessoriessZ[playerid][i-1], i, Accessoriesc1[playerid][i-1]); } //inventory mysql_format(sqlGameConnection, query, sizeof(query), "%s `lastCarID` = %d, `maxcarslots` = %d, `Mapper`= %d,`customTag`= '%e',`customRank`= '%e',`LastLogin`= '%e',`PropDate`= '%e',`isinHosp`= %d,`HasMap`= %d,`JailNumber`= %d,`NewCarLic`= %d,`NewBoatLic`= %d,`NewGunLic`= %d,`SueUnix`= %d,", accstr, PlayerInfo[playerid][lastCarID], PlayerInfo[playerid][pMaxCarSlots], PlayerInfo[playerid][pMapper], CustomTag[playerid], customRank[playerid], PlayerInfo[playerid][pLastLogin], PlayerInfo[playerid][pPropExp], pInHospital[playerid], PlayerInfo[playerid][pMap], PlayerInfo[playerid][pJailnumber], PlayerInfo[playerid][pCarLicense], PlayerInfo[playerid][pBoatLicense], PlayerInfo[playerid][pWeaponLicense], PlayerInfo[playerid][pSueUnix]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`SueNotice`= %d,`AllowedArmory`= %d, `Fishes`= %d,`Products`= %d,`Materials`= %d,`Seeds`= %d,`Calculator`= %d,`NewMariLicense` = %d,", query, PlayerInfo[playerid][pSueNotice], PlayerInfo[playerid][pAllowedArmory], PlayerInfo[playerid][pFishes], PlayerInfo[playerid][pProducts], PlayerInfo[playerid][pMats], PlayerInfo[playerid][pPotSeeds], PlayerInfo[playerid][pCalculator], PlayerInfo[playerid][pMarijuanaLicense]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`Phonebook`= %d,`FishRod`= %d,`Bait`= %d,`BaitAmount`= %d,`NewbRequestUnmute`= %d,`Line`= %d,", query, PlayerInfo[playerid][pPhoneBook], PlayerInfo[playerid][pFishRod], PlayerInfo[playerid][pBait], PlayerInfo[playerid][pBaitAmount], PlayerInfo[playerid][pReqUnmute], PlayerInfo[playerid][pLine]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`iPod`= %d,`Dice`= %d,`Spraycan`= %d,`Screw`= %d,`Rope`= %d,`Cigars`= %d,`Sprunk`= %d,`Tikis`= %d,`WT`= %d,`WTc`= %d,`Radio`= %d,", query, PlayerInfo[playerid][piPod], PlayerInfo[playerid][pDice], PlayerInfo[playerid][pSpraycan], PlayerInfo[playerid][pScrew], PlayerInfo[playerid][pRope], PlayerInfo[playerid][pCigars], PlayerInfo[playerid][pSprunk], PlayerInfo[playerid][pTikis], PlayerInfo[playerid][pWT], PlayerInfo[playerid][pWTc], PlayerInfo[playerid][pRadio]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`Handtazer`= %d,`tazerGun`= %d,`Bombs`= %d,`Poison`= %d,`Glasses`= %d,`Bandana`= %d,`Drill`= %d,`Helmet`= %d,", query, PlayerInfo[playerid][pHandtazer], PlayerInfo[playerid][ptazerGun], PlayerInfo[playerid][pBombs], PlayerInfo[playerid][pPoison], PlayerInfo[playerid][pGlasses], PlayerInfo[playerid][pBandana], PlayerInfo[playerid][pDrill], PlayerInfo[playerid][pHelmet]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`Mask`= %d,`Blindfolds`= %d,`Deck`= %d,`Stereo`= %d,`Matches`= %d,`Jerrycan`= %d,`MP5Laser`= %d,`M4Laser`= %d,`AKLaser`= %d,`SpasLaser`= %d,`DeagleLaser`= %d,`AddressBook`= %d, `DeathState` = %d, `Gag` = %d, `TogNewbie` = %d,", query, HasBoughtMask[playerid], PlayerInfo[playerid][pBlindfolds], PlayerInfo[playerid][pDeck], PlayerInfo[playerid][pStereo], PlayerInfo[playerid][pMatches], PlayerInfo[playerid][pJerrycan], PlayerHasMP5Laser[playerid], PlayerHasM4Laser[playerid], PlayerHasAKLaser[playerid], PlayerHasSpasLaser[playerid], PlayerHasDeagleLaser[playerid], PlayerInfo[playerid][pAddressBook], pDeathState[playerid], PlayerInfo[playerid][pGag], PlayerInfo[playerid][pTogNewbie]); mysql_format(sqlGameConnection, query, sizeof(query), "%s`TesterReports` = %d, `SpawnPos` = %d, `LogUnix` = %d, `Wire` = %d, `Group` = %d, `GroupRank` = %d, `C2` = %d, `MedicCount` = %d, `MonthlyMedicCount` = '%d', `MDCLogged` = %d, `HasMDC` = %d, `Cannabis` = %d, `Cocaine` = %d, `Meth` = %d, `Xanax` = %d, `promethazine` = %d, `codeine` = %d, `lean` = %d, `HasJammer` = %d, `FakeRank` = %d", query, PlayerInfo[playerid][pTesterReports], PlayerInfo[playerid][pSpawnPos], PlayerInfo[playerid][pLastLogoutUnix], PlayerInfo[playerid][pWire], PlayerInfo[playerid][pGroup], PlayerInfo[playerid][pGroupRank], PlayerInfo[playerid][pHasCBomb], PlayerInfo[playerid][pCallCount], PlayerInfo[playerid][pMonthlyCallCount], PlayerInfo[playerid][pMDCLogged], PlayerInfo[playerid][pPortMDC], PlayerInfo[playerid][pCannabis], PlayerInfo[playerid][pCocaine], PlayerInfo[playerid][pMeth], PlayerInfo[playerid][pXanax], PlayerInfo[playerid][pPromethazine], PlayerInfo[playerid][pCodeine], PlayerInfo[playerid][pLean], PlayerInfo[playerid][pJammer], FakeRank[playerid]); //exec the queryballance mysql_format(sqlGameConnection, query, sizeof(query), "%s WHERE `Name`='%e';", query, PlayerName(playerid)); mysql_pquery(sqlGameConnection, query); printf("[MySQL] SQLSave(end) %s.", PlayerName(playerid)); return 1; } //============================================================================= CheckExistingPrisons(playerid){ if(PlayerInfo[playerid][pAdminJailed]) return 1; new str[200]; inline QueryCallback(){ new rows = cache_num_rows(); if(rows > 0){ new tmpName[MAX_PLAYER_NAME + 1], tmpAdminJailed, tmpPrisonReason[128], tmpJailTime, tmpPrisonedBy[MAX_PLAYER_NAME + 1], hasFoundPrisons = false; for(new i = 0; i < rows; i++){ cache_get_field_content(i, "Name", tmpName); tmpAdminJailed = cache_get_field_content_int(i, "AdminJailed"); cache_get_field_content(i, "PrisonReason", tmpPrisonReason); tmpJailTime = cache_get_field_content_int(i, "JailTime"); cache_get_field_content(i, "PrisonedBy", tmpPrisonedBy); if(tmpAdminJailed){ if(!hasFoundPrisons){ hasFoundPrisons = true; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (ID %d) logged in while one of their account is prisoned.", PlayerOOCName(playerid), playerid); ABroadCast(-1, str, 1); } format(str, sizeof(str), "Name: %s | PrisonTime: %d | PrisonReason: %s | PrisonedBy: %s", tmpName, tmpJailTime, tmpPrisonReason, tmpPrisonedBy); ABroadCast(COLOR_GRAD2, str, 1); } } } } mysql_format(sqlGameConnection, str, sizeof(str), "SELECT `Name`, `AdminJailed`, `PrisonReason`, `JailTime`, `PrisonedBy` FROM `players` WHERE `IP`='%e' AND NOT `Name`='%e'", PlayerInfo[playerid][pIP], PlayerName(playerid)); mysql_pquery_inline(sqlGameConnection, str, using inline QueryCallback, ""); return 1; } //============================================================================== OnPlayerLogin(playerid) { new str[128]; CheckFactionRank(playerid); CheckExistingPrisons(playerid); if(PlayerInfo[playerid][pPermBand] || PlayerInfo[playerid][pBand]) { SendClientMessage(playerid, COLOR_WHITE, "{F00000}SERVER{FFFFFF}: Your account is currently banned."); format(str, sizeof(str), "{F00000}Reason{FFFFFF}: %s", PlayerInfo[playerid][pBanReason]); SendClientMessage(playerid, COLOR_WHITE, str); SendClientMessage(playerid, COLOR_WHITE, "{F00000}SERVER{FFFFFF}: You can submit a ban appeal on the forums at p-rp.xyz."); KickEx(playerid); return 1; } if(PlayerInfo[playerid][pCBand]) { SendClientMessage(playerid, COLOR_WHITE, "{F00000}SERVER{FFFFFF}: Your account is currently community banned."); format(str, sizeof(str), "{F00000}Reason{FFFFFF}: Being mofo, stupid fucker etc.."); SendClientMessage(playerid, COLOR_WHITE, str); SendClientMessage(playerid, COLOR_WHITE, "{F00000}SERVER{FFFFFF}: You can submit a ban appeal on the forums at p-rp.xyz. But you will not be unbanned!"); Rangeban(playerid); return 1; } //=======================[ Account disabled? ]============================== if(PlayerInfo[playerid][pDisabled] == 1) { SendClientMessage(playerid, COLOR_WHITE, "{F00000}SERVER{FFFFFF}: Your account is currently disabled."); KickEx(playerid); return 1; } //======================[ Admin account auth ]============================== #if DEVMODE == 0 if(PlayerInfo[playerid][pAdmin] > 0) { DisplayDialogForPlayer(playerid, 78); } #else gAdminAuthorized[playerid] = 1; #endif //account is not adjustable PlayerInfo[playerid][pAdjustable] = 0; new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Adjustable`=0 WHERE `Name`='%e'", PlayerName(playerid)); mysql_pquery(sqlGameConnection, query); //======================[ Discord ]========================= /*#if UseDiscordBot 1 new discordstr[144]; if(PlayerInfo[playerid][pAdmin]) { format(discordstr, sizeof discordstr, "%s %s (%d) has logged in.", Discord:GetAdminRank(playerid), PlayerICName(playerid), playerid); Discord:sendBasicRequest(DISCORD_ADMINCHAT_CHANNEL, "Notification", discordstr, DISCORD_COLOR_INFO); } if(PlayerInfo[playerid][pHelper]) { format(discordstr, sizeof discordstr, "%s %s (%d) has logged in.", Discord:GetHelperRank(playerid), PlayerICName(playerid), playerid); Discord:sendBasicRequest(DISCORD_NEWBIE_CHANNEL, "Notification", discordstr, DISCORD_COLOR_INFO); } if(PlayerInfo[playerid][pTester] || PlayerInfo[playerid][pDev]) { format(discordstr, sizeof discordstr, "%s %s (%d) has logged in.", (PlayerInfo[playerid][pDev]) ? ("Developer") : ("Tester"), PlayerICName(playerid), playerid); Discord:sendBasicRequest(DISCORD_TESTER_CHANNEL, "Notification", discordstr, DISCORD_COLOR_INFO); } #endif*/ //=========================[ Login misc stuff ]============================= displayCenterHUDInfo(playerid, "~r~Login successful.", 8); //display for 8 seconds gPlayerLogged[playerid] = 1; PlayerInfo[playerid][pHospital] = 0; DisablePlayerCheckpointEx(playerid); PlayerInfo[playerid][pBadge] = 1; //default speed unit CurrentSpeedUnitMPH[playerid] = true; new d, m, y, date[30]; getdate(y, m, d); if(m == 12) format(date, sizeof(date), "%02d/%02d/%02d", 1, d, y); else format(date, sizeof(date), "%02d/%02d/%02d", m +1, d, y); format(PlayerInfo[playerid][pPropExp], 30, "%s", date); for(new i = 0; i < MAX_TAGS; i++) { if(Tags[i][TagCreated] == true) { SetObjectPos(Tags[i][TagObject], Tags[i][TagPosition][0], Tags[i][TagPosition][1], Tags[i][TagPosition][2]); SetObjectRot(Tags[i][TagObject], Tags[i][TagRotation][0], Tags[i][TagRotation][1], Tags[i][TagRotation][2]); } } // mask stuff new rand = random(9999); MaskNumber[playerid] = rand; //========================[ Player vehicles ]===================== loadPlayerVehicles(playerid); //=========================[ Load notifications ]=========================== //===========================[ Display motds]=========================== SendClientMessage(playerid, MOTD_COLOR, MOTD_MESSAGE1); SendClientMessage(playerid, MOTD_COLOR, MOTD_MESSAGE2); SendClientMessage(playerid, MOTD_COLOR, MOTD_MESSAGE4); TextDrawHideForPlayer(playerid, motd); //=========================[ Administrators ]=========================== if(PlayerInfo[playerid][pAdmin] > 0) { format(str, sizeof(str), "{F00000}SERVER{FFFFFF}: You are logged in as a Level %d Admin.", PlayerInfo[playerid][pAdmin]); SendClientMessage(playerid, COLOR_WHITE, str); SendClientMessage(playerid, COLOR_WHITE, "{F00000}SERVER{FFFFFF}: Type {FFFF91}/amsgs{FFFFFF} to display the latest admin messages (Keep the messages clean from random chatting)."); // Allow the admin to crack shoot if(PlayerInfo[playerid][pAdmin] >= 2) CSDisable[playerid] = 1; } if( PlayerInfo[playerid][pDev] > 0 || PlayerInfo[playerid][pAdmin] > 0 ) { if( strlen( DEVMOTD ) > 1 ) { SendClientMessage( playerid, COLOR_DEV, DEVMOTD ); } } if( PlayerInfo[playerid][pTester] > 0 ) { if( strlen( TESTERMOTD ) > 1 ) { SendClientMessage( playerid, SCOLOR_GREEN, TESTERMOTD ); } } //=====================[ If player is in prison ]======================= if(PlayerInfo[playerid][pAdminJailed] == 1) { format(str, sizeof(str), "{FF6347}SERVER: You are currently serving prison time for %s.", PlayerInfo[playerid][pPrisonReason]); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "{FF6347}SERVER: Prisoned By %s Remaining Time: %d minutes.", PlayerInfo[playerid][pPrisonedBy], PlayerInfo[playerid][pJailTime] / 60); SendClientMessage(playerid, COLOR_WHITE, str); SendClientMessage(playerid, COLOR_WHITE, "{FF6347}SERVER: If you have been wrongly prisoned you can appeal it via /report or post an appeal on our forums at p-rp.xyz."); } //=====================[ Is player in family ]========================== if(PlayerInfo[playerid][pFMember] < 255) { format(str, sizeof(str), "Family MOTD: %s", FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyMOTD]); SendClientMessage(playerid, COLOR_YELLOW, str); } //======================[ Player house was on fire?]==================== if(PlayerInfo[playerid][pHouseFire]) { new fstring[128]; format(fstring, 128, "Your house caught on fire, $d was taken from your bank for insurance and fire services.", PlayerInfo[playerid][pHouseFire]); SendClientMessage(playerid, COLOR_YELLOW, fstring); PlayerInfo[playerid][pAccount] -= PlayerInfo[playerid][pHouseFire]; PlayerInfo[playerid][pHouseFire] = 0; } //======================[ Is player in faction ]======================== if(PlayerInfo[playerid][pMember] != 0) { switch(PlayerInfo[playerid][pMember]) { case 1: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[1][motdOne]); } case 2: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[2][motdTwo]); } case 3: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[3][motdThree]); } case 4: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[4][motdFour]); } case 5: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[5][motdFive]); } case 6: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[6][motdSix]); } case 7: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[7][motdSeven]); } case 8: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[8][motdEight]); } case 9: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[9][motdNine]); } case 10: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[10][motdTen]); } case 11: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[11][motdEleven]); } case 12: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[12][motdTwelve]); } case 13: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[13][motdThirteen]); } case 14: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[14][motdFourteen]); } case 15: { format(str, sizeof(str), "Faction MOTD: %s", facMOTD[15][motdFifteen]); } } if(!strmatch(str, "None")) { SendClientMessage(playerid, COLOR_ORANGE, str); } //====================[ If player has been sued ]======================= if(PlayerInfo[playerid][pSueNotice] == 1) { SendClientMessage(playerid, COLOR_YELLOW, "[Notification] You have a court case on you!"); SendClientMessage(playerid, COLOR_YELLOW, "Check our website - Public Services - Dept. of Justice - Lawsuits >> search for your name for further information."); PlayerInfo[playerid][pSueNotice] = 0; } } //======================[ If player owns biz ]========================== if(PlayerInfo[playerid][pBizKey] != -1) { format(str, sizeof(str), "%s", PlayerName(playerid)); if(strcmp(BizInfo[PlayerInfo[playerid][pBizKey]][bOwner], str, true)) //playername doesnt match biz owner { format(str, sizeof(str), "* The business '%s' is no longer registered under your name, you are no longer the owner.", BizInfo[PlayerInfo[playerid][pBizKey]][bName]); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); PlayerInfo[playerid][pBizKey] = -1; } } //=====================[ If player has max carslots 0]====================== if( PlayerInfo[playerid][pMaxCarSlots] < 3 ) { PlayerInfo[playerid][pMaxCarSlots] = 3; } //======================[ If player owns a house ]========================== new hid = PlayerInfo[playerid][pHouseID]; if(hid > 0) { SetPlayerMapIcon(playerid, iconCount[playerid], HouseInfo[hid][hOutsideX], HouseInfo[hid][hOutsideY], HouseInfo[hid][hOutsideZ], 31, 0, MAPICON_GLOBAL); iconCount[playerid]++; //temp fix for players that had owned houses as 'None' in houses.cfg if(strcmp(HouseInfo[hid][hOwner], "NULL", true) == 0) { //update ownerID and hOwner HouseInfo[hid][hOwnerID] = PlayerInfo[playerid][pID]; strmid(HouseInfo[hid][hOwner], PlayerName(playerid), 0, strlen(PlayerName(playerid)), 255); format(str, sizeof(str), "* You have been reassigned the ownership of House ID %d", hid); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); //update label new location[MAX_ZONE_NAME], string3[250]; Get2DZone(location, MAX_ZONE_NAME, HouseInfo[hid][hOutsideX], HouseInfo[hid][hOutsideY], HouseInfo[hid][hOutsideZ]); DestroyDynamic3DTextLabel(HouseInfoText3D[hid]); if(HouseInfo[hid][hOwned] == 1) { format(string3, sizeof(string3), "{5BC435}%s{FFFFFF}\nAddress: %d %s\nType /enter to go inside.", HouseInfo[hid][hOwner], hid, location); HouseInfoText3D[hid] = CreateDynamic3DTextLabel(string3, COLOR_HOUSETEXT, HouseInfo[hid][hOutsideX], HouseInfo[hid][hOutsideY], HouseInfo[hid][hOutsideZ] +0.88, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); UpdateDynamic3DTextLabelText(HouseInfoText3D[hid], COLOR_HOUSETEXT, string3); } else //should not be running this but leaving just in case { format(string3, sizeof(string3), "{5BC435}This property is for sale!{FFFFFF}\nAddress: %d %s\nType /buyhouse to buy it for $%d", hid, location, HouseInfo[hid][hValue]); HouseInfoText3D[hid] = CreateDynamic3DTextLabel(string3, COLOR_HOUSETEXT, HouseInfo[hid][hOutsideX], HouseInfo[hid][hOutsideY], HouseInfo[hid][hOutsideZ] +0.88, 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); UpdateDynamic3DTextLabelText(HouseInfoText3D[hid], COLOR_HOUSETEXT, string3); } } } //=========================[ If player is a VIP ]=========================== /*if(PlayerInfo[playerid][pDonateRank] >= 1) { new year, month, day; getdate(year, month, day); new spyear[32], spmonth[32], spday[32]; strmid(spyear, PlayerInfo[playerid][pVIPExpDate], 6, 10, 32); strmid(spmonth, PlayerInfo[playerid][pVIPExpDate], 0, 2, 32); strmid(spday, PlayerInfo[playerid][pVIPExpDate], 3, 5, 32); new pyear = strval(spyear); new pmonth = strval(spmonth); new pday = strval(spday); if(!IsValidDate(pday, pmonth, pyear)){ SendClientMessage(playerid, COLOR_LIGHTBLUE, "Your VIP expire date is corrupted, thus removed. Take SS, make a GRR and contact an admin along with a developer."); new msg[128]; format(msg, sizeof(msg), "VIP join date: %s | VIP expire date: %s", PlayerInfo[playerid][pVIPJoinDate], PlayerInfo[playerid][pVIPExpDate]); SendClientMessage(playerid, COLOR_LIGHTBLUE, msg); ClearVIP(playerid); } else{ if(GetDaysDifference(day, month, year, pday, pmonth, pyear) < 0){ printf("[VIP Expire] %s's VIP expired on %s. Their VIP join date was %s", PlayerInfo[playerid][pName], PlayerInfo[playerid][pVIPExpDate], PlayerInfo[playerid][pVIPJoinDate]); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Your VIP has expired, if you wish to restore it visit."); ClearVIP(playerid); if(PlayerInfo[playerid][pLevel] == 1) PlayerInfo[playerid][pTag] = NTAG_NEWBIE; else if(PlayerInfo[playerid][pLevel] > 1) PlayerInfo[playerid][pTag] = NTAG_PLAYER; } } }*/ if(PlayerInfo[playerid][pDonateRank] >= 1) { new year, month, day; getdate(year, month, day); new spyear[32], spmonth[32], spday[32]; strmid(spyear, PlayerInfo[playerid][pVIPExpDate], 6, 10, 32); strmid(spmonth, PlayerInfo[playerid][pVIPExpDate], 0, 2, 32); strmid(spday, PlayerInfo[playerid][pVIPExpDate], 3, 5, 32); new pyear = strval(spyear); new pmonth = strval(spmonth); new pday = strval(spday); if(pyear == 2015 && pmonth == 1) { format(PlayerInfo[playerid][pVIPExpDate], 32, "%02d/%02d/%d", pmonth, pday, pyear +1); } if(year > pyear && month == pmonth && day > pday) { SendClientMessage(playerid, COLOR_LIGHTBLUE, "Your VIP has expired, if you wish to restore it visit elitecity-rp.rf.gd"); ClearVIP(playerid); if(PlayerInfo[playerid][pLevel] == 1) PlayerInfo[playerid][pTag] = NTAG_NEWBIE; else if(PlayerInfo[playerid][pLevel] > 1) PlayerInfo[playerid][pTag] = NTAG_PLAYER; } if(!IsValidDate(pday, pmonth, pyear)){ SendClientMessage(playerid, COLOR_LIGHTBLUE, "Your VIP expire date is corrupted, thus removed. Take SS, make a GRR and contact an admin along with a developer."); new msg[128]; format(msg, sizeof(msg), "VIP join date: %s | VIP expire date: %s", PlayerInfo[playerid][pVIPJoinDate], PlayerInfo[playerid][pVIPExpDate]); SendClientMessage(playerid, COLOR_LIGHTBLUE, msg); ClearVIP(playerid); } if(month == pmonth && day > pday) { printf("[VIP Expire] %s's VIP expired on %s. Their VIP join date was %s", PlayerInfo[playerid][pName], PlayerInfo[playerid][pVIPExpDate], PlayerInfo[playerid][pVIPJoinDate]); SendClientMessage(playerid, COLOR_LIGHTBLUE, "Your VIP has expired, if you wish to restore it visit elitecity-rp.rf.gd/donate"); ClearVIP(playerid); if(PlayerInfo[playerid][pLevel] == 1) PlayerInfo[playerid][pTag] = NTAG_NEWBIE; else if(PlayerInfo[playerid][pLevel] > 1) PlayerInfo[playerid][pTag] = NTAG_PLAYER; } } //========================================================================== if(PlayerInfo[playerid][pMember] == 10) { PlayerInfo[playerid][pRadio] = 1; } if(PlayerInfo[playerid][pGroup] == GROUP_S9) { HasBoughtMask[playerid] = 1; PlayerInfo[playerid][pMask] = 0; PlayerInfo[playerid][pRadio] = 1; if(FakeFaction[playerid]) { SetPlayerToTeamColor(playerid); } } //========================================================================== if(PlayerInfo[playerid][pWarns] == 0) PlayerInfo[playerid][pWarns] = -999;// log as converted if(PlayerInfo[playerid][pWarns] !=-999) { new day, month, year, hour, minute, second, date2[20], admin[7], reason[50], warnquery[500]; format(admin, sizeof(admin), "SYSTEM"); format(reason, sizeof(reason), "OLD WARNING"); gettime(hour, minute, second); getdate(year, month, day); format(date2, sizeof(date2), "%d/%d/%d %d:%d:%d", day, month, year, hour, minute, second); for(new i; i < PlayerInfo[playerid][pWarns]; i++) { mysql_format(sqlGameConnection, warnquery, sizeof(warnquery), "INSERT INTO `warnings` (`PlayerID`, `AdminName`, `Date`, `Reason`, `Active`) VALUES('%i', '%s', '%e', '%e' , 1)", PlayerInfo[playerid][pID], admin, date2, reason); mysql_pquery(sqlGameConnection, warnquery); printf(query); SendClientMessage(playerid, COLOR_LIGHTRED, "You have been given a warning."); } SendClientMessage(playerid, COLOR_LIGHTRED, "Your active warnings can now be seen on /warns."); SendClientMessage(playerid, COLOR_LIGHTRED, "Unfortunately old warnings can't be displayed."); PlayerInfo[playerid][pWarns] = -999; } gPlayerLogged[playerid] = 1; return 1; } //============================================================================== stock isPosWithinRange(Float:radi, Float:x, Float:y, Float:z, Float:x1, Float:y1, Float:z1) //range, x,y,z target x,y,z { new Float:tempposx, Float:tempposy, Float:tempposz; tempposx = (x - x1); tempposy = (y - y1); tempposz = (z - z1); if(((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) { return 1; } return 0; } //============================================================================== stock Rangeban(playerid) { if(!IsPlayerConnected(playerid)) return 0; new total[16], ip[16]; GetPlayerIp(playerid, ip, sizeof(ip)); new cnt; for(new i =0; i = level) { SendClientMessage(i, color, string2); } } } return 1; } //============================================================================== OOCOff(color, const string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(!gOoc[i]) { SendClientMessage(i, color, string2); } } } return 1; } OOCOn(color, const string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(!globall[i]) { SendClientMessage(i, color, string2); } } } return 1; } BoxingAnn(color, const string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(!boxToggled[i]) { SendClientMessage(i, color, string2); } } } return 1; } //============================================================================== OOCNewbie(color, const string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(!PlayerInfo[i][pTogNewbie] && gPlayerLogged[i]) { SendClientMessage(i, color, string2); } } } /*#if UseDiscordBot 1 //Send it to Discord, as well new string[160]; //Escape first ** to avoid it being bold on Discord... format(string, sizeof string, "\\%s", string2); Discord:sendBasicRequest(DISCORD_NEWBIE_CHANNEL, "Newbie", string, 0x7DAEFF); #endif*/ return 1; } //============================================================================== OOCNews(color, const string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(!gNews[i] && gPlayerLogged[i]) { SendClientMessage(i, color, string2); } } } return 1; } //============================================================================== SendDepartmentMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(IsACop(i) || IsAJudge(i) || PlayerInfo[i][pLeader] == 5 || PlayerInfo[i][pMember] == 5 || PlayerInfo[i][pLeader] == 6 || PlayerInfo[i][pMember] == 6) { if(!CheckForJammer(i)) SendClientMessage(i, color, string2); } } } return 1; } //============================================================================== SendFactionMessage(member, color, string2[]) { foreach( new i: Player ) { if(PlayerInfo[i][pMember] == member) { if(!toggedRadio[i] && !CheckForJammer(i)) { SendClientMessage(i, color, string2); } } } return 1; } SendRadioMessage(member, color, string2[]) { foreach( new i: Player ) { if(PlayerInfo[i][pMember] == member || PlayerInfo[i][pLeader] == member) { if(!toggedRadio[i] && !CheckForJammer(i)) { SendClientMessage(i, color, string2); } } } return 1; } SendJDRadio(color, string2[]) { foreach ( new i: Player ) { if(PlayerInfo[i][pMember] == FACTION_JD || PlayerInfo[i][pMember] == FACTION_GOV) { if(!toggedRadio[i] && !CheckForJammer(i)) { SendClientMessage(i, color, string2); } } } return 1; } SendOOCRadio(member, color, string2[]) { foreach( new i: Player ) { //if(PlayerInfo[i][pRadio] > 0) { if(PlayerInfo[i][pMember] == member || PlayerInfo[i][pLeader] == member || RadioFrequency[i] == member) { if(ToggedOR[i] == false && !CheckForJammer(i)) { SendClientMessage(i, color, string2); } } //} } return 1; } //============================================================================== SendJobMessage(job, color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(JobDuty[i] == 1) // on duty { if(PlayerInfo[i][pJob] == job) { SendClientMessage(i, color, string2); } } } } } //============================================================================== SendNewFamilyMessage(family, color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pFMember] == family) { if(!gFam[i] && !CheckForJammer(i)) { SendClientMessage(i, color, string2); } } } } return 1; } //============================================================================== stock SendHotlineMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMember] == 9 || PlayerInfo[i][pLeader] == 9) //San News { if(!toggledHotlined[i] && !CheckForJammer(i)) { SendClientMessage(i, color, string2); } } } } return 1; } SendTaxiMessage(color, taxistring[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(PlayerInfo[i][pJob] == 14) { SendClientMessage(i, color, taxistring); } } return 1; } SendFamilyMessage(family, color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMember] == family || PlayerInfo[i][pLeader] == family) { if(!gFam[i] && !CheckForJammer(i)) { SendClientMessage(i, color, string2); } } } } return 1; } S9DepartmentMessage(color, string2[]) { foreach(new i: Player) { if(PlayerInfo[i][pGroup] == GROUP_S9) SendClientMessage(i, color, string2); } } SendDepartmentRadioMessage(faction, color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(!toggedDept[i] && !CheckForJammer(i)) { if(PlayerInfo[i][pMember] == faction || PlayerInfo[i][pLeader] == faction) { if(PlayerInfo[i][pGroup] != GROUP_S9) SendClientMessage(i, color, string2); } } } } return 1; } //============================================================================== SendCopMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(IsACop(i) && !CheckForJammer(i)) { SendClientMessage(i, color, string2); } } } return 1; } //============================================================================== SendBuggedMessage(color, string2[]) { foreach( new fbi: Player ) { if(PlayerInfo[fbi][pMember] == 2 && !PlayerInfo[fbi][pBuggedTog]) // pBuggedTog - if 0 the messages are enabled, if 1 they are toggled, disabled. { if(IsPlayerInAnyVehicle(fbi) || hasListening[fbi] == true) { if(sVehicleInfo[GetDynamicVehicleID(GetPlayerVehicleID(fbi))][v_faction] == 2 || sVehicleInfo[GetDynamicVehicleID(GetPlayerVehicleID(fbi))][v_faction] == 11 && GetVehicleModel(GetPlayerVehicleID(fbi)) == 482 || hasListening[fbi] == true) { SendClientMessage(fbi, color, string2); } } } } return 1; } SendS9BuggedMessage(color, string2[]) { foreach( new s9: Player ) { if(PlayerInfo[s9][pGroup] == GROUP_S9 && !PlayerInfo[s9][pBuggedTog]) // pBuggedTog - if 0 the messages are enabled, if 1 they are toggled, disabled. { if(IsPlayerInAnyVehicle(s9) || hasListening[s9] == true) { if(sVehicleInfo[GetDynamicVehicleID(GetPlayerVehicleID(s9))][v_group] == GROUP_S9 || hasListening[s9] == true) { SendClientMessage(s9, color, string2); } } } } return 1; } //============================================================================== SendParaMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMember] == FACTION_FMD || PlayerInfo[i][pLeader] == FACTION_FMD || FakeFaction[i] == FACTION_FMD) { SendClientMessage(i, color, string2); } } } return 1; } //============================================================================== SendIRCMessage(channel, color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayersChannel[i] == channel) { SendClientMessage(i, color, string2); } } } return 1; } //============================================================================== SendAdminMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pAdmin] >= 1) { SendClientMessage(i, color, string2); } } } return 1; } SendShadowMsg(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pID] == 7378 && PlayerInfo[i][pShadowON] == 1 || PlayerInfo[i][pID] == 7619 && PlayerInfo[i][pMaryON] == 1) { SendClientMessage(i, color, string2); } } } return 1; } SendAdminChatMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pAdmin] >= 1) { if(pMutedA[i] == false) { SendClientMessage(i, color, string2); } } } } return 1; } //============================================================================== SendWTMessage(channel, color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pWTc] == channel && WTOnline[i] == 0 && !CheckForJammer(i)) { SendClientMessage(i, color, string2); } } } return 1; } ProxDetector(Float:radi, playerid, string2[], col1, col2, col3, col4, col5) // Revised. { if(IsPlayerConnected(playerid)) { new Float:ourpos[3]; GetPlayerPos(playerid, ourpos[0], ourpos[1], ourpos[2]); new pvw = GetPlayerVirtualWorld(playerid); new pint = GetPlayerInterior(playerid); new ivw, iint; SendClientMessage(playerid, col1, string2); foreach( new i: Player ) { if(IsPlayerConnected(i) && i != playerid) { if(!BigEar[i]) { ivw = GetPlayerVirtualWorld(i); iint = GetPlayerInterior(i); if(pvw == ivw && pint == iint) { if(IsPlayerInRangeOfPoint(i, radi / 16, ourpos[0], ourpos[1], ourpos[2])) { SendClientMessage(i, col1, string2); continue; } else if(IsPlayerInRangeOfPoint(i, radi / 8, ourpos[0], ourpos[1], ourpos[2])) { SendClientMessage(i, col2, string2); continue; } else if(IsPlayerInRangeOfPoint(i, radi / 4, ourpos[0], ourpos[1], ourpos[2])) { SendClientMessage(i, col3, string2); continue; } else if(IsPlayerInRangeOfPoint(i, radi / 2, ourpos[0], ourpos[1], ourpos[2])) { SendClientMessage(i, col4, string2); continue; } else if(IsPlayerInRangeOfPoint(i, radi, ourpos[0], ourpos[1], ourpos[2])) { SendClientMessage(i, col5, string2); continue; } } } else { SendClientMessage(i, col1, string2); } } } } return 1; } stock GetClosestStrangerID(playerid) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMask] == 1) { new Float:x, Float:y, Float:z; GetPlayerPos(i, x, y, z); if(IsPlayerInRangeOfPoint(playerid, 4, x, y, z)) { return i; } } } } return INVALID_PLAYER_ID; } new bool: DisabledDoors[MAX_DOORS]; //door has been exploded: breached stock GetPlayerEthnicity(playerid) { new astr[16]; switch(PlayerInfo[playerid][pEthnicity]) { case 0: astr = "White"; case 1: astr = "Black"; case 2: astr = "Asian"; case 3: astr = "Hispanic"; case 4: astr = "Latino"; case 5: astr = "Native American"; default: astr = "White"; } return astr; } stock GetPlayerEyeColour(playerid) { new astr[8]; switch(PlayerInfo[playerid][pEyeColour]) { case 0: astr = "Blue"; case 1: astr = "Brown"; case 2: astr = "Green"; default: astr = "Blue"; } return astr; } stock GetPlayerGender2(playerid) { new gender[8]; switch(PlayerInfo[playerid][pSex]) { case 0: gender = "Unknown"; case 1: gender = "Male"; case 2: gender = "Female"; default: gender = "Unknown"; } return gender; } stock GetPlayerBuild(playerid) { new build[9]; switch(PlayerInfo[playerid][pBuild]) { case 0: build = "Slim"; case 1: build = "Average"; case 2: build = "Muscular"; default: build = "Average"; } return build; } stock ShowAppearanceMain(playerid) { new astr[512]; format(astr, sizeof(astr), "Gender:\t\t%s\nAge:\t\t\t%d\nEthnicity\t\t%s\nEye Colour:\t\t%s\nBody Build:\t\t%s\nHeight:\t\t\t%dcm\nUnique Features:\t%s", GetPlayerGender2(playerid), PlayerInfo[playerid][pAge], GetPlayerEthnicity(playerid), GetPlayerEyeColour(playerid), GetPlayerBuild(playerid), PlayerInfo[playerid][pHeight], PlayerInfo[playerid][pAppearance]); ShowPlayerDialog(playerid, DIALOG_APPEARANCE_MAIN, DIALOG_STYLE_LIST, "Character Appearance", astr, "Select", "Cancel"); return 1; } stock HasGunInSlot(playerid, slot) { new weapons[13][2]; for(new i = 0; i < 13; i++) GetPlayerWeaponData(playerid, i, weapons[i][0], weapons[i][1]); if(weapons[slot][0] != 0) return true; else return false; } stock GetWeaponSlot(weaponid) { new slot; switch(weaponid) { case 0, 1: slot = 0; case 2 .. 9: slot = 1; case 10 .. 15: slot = 10; case 16 .. 18, 39: slot = 8; case 22 .. 24: slot =2; case 25 .. 27: slot = 3; case 28, 29, 32: slot = 4; case 30, 31: slot = 5; case 33, 34: slot = 6; case 35 .. 38: slot = 7; case 40: slot = 12; case 41 .. 43: slot = 9; case 44 .. 46: slot = 11; default: slot = -1; } return slot; } forward OnOSetNameCheck(playerid, newname[], oldname[]); //check if newname exists public OnOSetNameCheck(playerid, newname[], oldname[]) { new rows, fields; cache_get_data(rows, fields); if(strlen(newname) > MAX_PLAYER_NAME) return SendClientMessage( playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} the new name is too long." ); if(rows) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that name is taken."); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT `BizKey`, `pHouseID`, `FMember`, `RadioStation` FROM `players` WHERE `Name` = '%e'", oldname); mysql_pquery(sqlGameConnection, query, "OnOSetNameProcess", "iss", playerid, newname, oldname); return 1; } forward OnOSetNameProcess(playerid, newname[], oldname[]); public OnOSetNameProcess(playerid, newname[], oldname[]) { new str[128]; new rows, fields, query[128]; cache_get_data(rows, fields); if(!rows) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); new BizKey = cache_get_field_content_int(0, "BizKey"); new FMember =cache_get_field_content_int(0, "FMember"); new RadioStation = cache_get_field_content_int(0, "RadioStation"); //set the non player variables if(BizKey != -1) //owns a business { strmid(BizInfo[BizKey][bOwner], newname, 0, strlen(newname), 255); // Government seized if(BizInfo[BizKey][bSeized] == 1) { format(str, sizeof(str), "{AFAFAF}%s{AFAFAF}\n{FFFFFF}This business has been seized by the\n{696969}Government", BizInfo[BizKey][bName]); } // Judicial Department seized else if(BizInfo[BizKey][bSeized] == 2) { format(str, sizeof(str), "{AFAFAF}%s{AFAFAF}\n{FFFFFF}This business has been seized by the\n{BA6103}Department of Justice", BizInfo[BizKey][bName]); } else { if(BizInfo[BizKey][bLocked] == 1) { format(str, sizeof(str), "{3D97E0}%s{FFFFFF}\nOwner: %s", BizInfo[BizKey][bName], BizInfo[BizKey][bOwner]); } else { format(str, sizeof(str), "{3D97E0}%s{FFFFFF}\nOwner: %s", BizInfo[BizKey][bName], BizInfo[BizKey][bOwner]); } } UpdateDynamic3DTextLabelText(Text3D:BizText[BizKey], COLOR_BIZTEXT, str); } if(FMember != 255) //owns a family { if(strcmp(FamilyInfo[FMember][FamilyLeader], oldname, true) == 0) { strmid(FamilyInfo[FMember][FamilyLeader], newname, 0, strlen(newname), 255); SaveFamilies(); } } if(RadioStation != 255) //owns a radio station { if(strcmp(radioInfo[RadioStation][ownerName], oldname, true) == 0) { strmid(radioInfo[RadioStation][ownerName], newname, 0, strlen(newname), 255); SaveRadios(); } } mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Name` = '%e' WHERE `Name` = '%e'", newname, oldname); mysql_pquery(sqlGameConnection, query); //send the query mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `newcrimes` SET `RealName` = '%e' WHERE `RealName` = '%e'", newname, oldname); mysql_pquery(sqlGameConnection, query); mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `tickets` SET `IssuerName` = '%e' WHERE `IssuerName` = '%e'", newname, oldname); mysql_pquery(sqlGameConnection, query); //log the namechange format(str, sizeof(str), "%s has renamed %s to %s.", PlayerName(playerid), oldname, newname); StatLog(str); format(str, sizeof(str), "You have renamed %s to %s.", oldname, newname); //To admin SendClientMessage(playerid, COLOR_GREY, str); mysql_format(sqlGameConnection, query, sizeof(query), "SELECT `ID` FROM `players` WHERE `Name` = '%e'", newname); mysql_pquery(sqlGameConnection, query, "OnGetSQLID", "is", playerid, newname); if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); new sqlid; sqlid = cache_get_field_content_int(0, "ID"); NameChangeLog(oldname, newname, PlayerName(playerid), PlayerInfo[playerid][pID], sqlid); return 1; } forward OnOCheck(playerid, name[]); public OnOCheck(playerid, name[]) { //~~~~~offline stats work in progress ~~~~~~ if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}Error:{FFFFFF} That account doesn't exist."); new DeathState = cache_get_field_content_int(0, "DeathState"); new dstate[32]; switch(DeathState) { case 0: dstate = "Alive"; case 1: dstate = "Revive"; case 2: dstate = "Dead"; case 3: dstate = "In Hospital"; default: dstate = "?"; } new Level = cache_get_field_content_int(0, "Level"); new Band = cache_get_field_content_int(0, "Band"); new PermBand = cache_get_field_content_int(0, "PermBand"); new BanReason[128]; cache_get_field_content(0, "BanReason", BanReason); new PrisonReason[128]; cache_get_field_content(0, "PrisonReason", PrisonReason); new ip[32]; cache_get_field_content(0, "IP", ip); new PrisonedBy[32]; cache_get_field_content(0, "PrisonedBy", PrisonedBy); new Warns = cache_get_field_content_int(0, "Warnings"); new Disabled = cache_get_field_content_int(0, "Disabled"); new isdisabled[4]; if(Disabled >= 1) isdisabled = "Yes"; else isdisabled = "No"; new DonateRank = cache_get_field_content_int(0, "DonateRank"); new VIPLevel[32]; switch(DonateRank) { case 0: VIPLevel = "None"; case 1: VIPLevel = "Bronze"; case 2: VIPLevel = "Silver"; case 3: VIPLevel = "Gold"; default: VIPLevel = "?"; } new VIPJoinDate[32], VIPExpDate[32]; cache_get_field_content(0, "VIPJoinDate", VIPJoinDate); cache_get_field_content(0, "VIPExpDate", VIPExpDate); new ConnectTime = cache_get_field_content_int(0, "ConnectedTime"); new Sex = cache_get_field_content_int(0, "Sex"); new sextext[8]; switch(Sex) { case 1: sextext = "Male"; case 2: sextext = "Female"; default: sextext = "Unknown"; } new Age = cache_get_field_content_int(0, "Age"); new Origin[32]; cache_get_field_content(0, "Origin", Origin); new Muted = cache_get_field_content_int(0, "Muted"); new ismuted[16]; if(Muted >= 1) ismuted = "Yes"; else ismuted = "No"; new Exp = cache_get_field_content_int(0, "Respect"); new Cash = cache_get_field_content_int(0, "Money"); new Account = cache_get_field_content_int(0, "Bank"); new Kills = cache_get_field_content_int(0, "Kills"); new Deaths = cache_get_field_content_int(0, "Deaths"); new Job = cache_get_field_content_int(0, "Job"); new jtext[20]; new jlevel, skill; switch(Job) { case 1: { jtext = "Detective"; skill = cache_get_field_content_int(0, "DetSkill"); if(skill >= 0 && skill <= 49) jlevel = 1; else if(skill >= 50 && skill <= 99) jlevel = 2; else if(skill >= 100 && skill <= 199) jlevel = 3; else if(skill >= 200 && skill <= 399) jlevel = 4; else if(skill >= 400) jlevel = 5; } case 2: { jtext = "Lawyer"; skill = cache_get_field_content_int(0, "LawSkill"); if(skill >= 0 && skill <= 49) jlevel = 1; else if(skill >= 50 && skill <= 99) jlevel = 2; else if(skill >= 100 && skill <= 199) jlevel = 3; else if(skill >= 200 && skill <= 399) jlevel = 4; else if(skill >= 400) jlevel = 5; } case 4: { jtext = "Drug Dealer"; skill = cache_get_field_content_int(0, "DrugsSkill"); if(skill >= 0 && skill <= 49) jlevel = 1; else if(skill >= 50 && skill <= 99) jlevel = 2; else if(skill >= 100 && skill <= 199) jlevel = 3; else if(skill >= 200 && skill <= 399) jlevel = 4; else if(skill >= 400) jlevel = 5; } case 5: { jtext = "Product Dealer"; jlevel = 1; } case 7: { jtext = "Mechanic"; skill = cache_get_field_content_int(0, "JackSkill"); if(skill >= 0 && skill <= 49) jlevel = 1; else if(skill >= 50 && skill <= 99) jlevel = 2; else if(skill >= 100 && skill <= 199) jlevel = 3; else if(skill >= 200 && skill <= 399) jlevel = 4; else if(skill >= 400) jlevel = 5; } case 8: { jtext = "Bodyguard"; jlevel = 1; } case 9: { jtext = "Arms Dealer"; skill = cache_get_field_content_int(0, "ArmsSkill"); if(skill >= 0 && skill <= 49) jlevel = 1; else if(skill >= 50 && skill <= 99) jlevel = 2; else if(skill >= 100 && skill <= 199) jlevel = 3; else if(skill >= 200 && skill <= 399) jlevel = 4; else if(skill >= 400) jlevel = 5; } case 12: { jtext = "Boxer"; jlevel = 1; } case 14: { jtext = "Taxi Driver"; jlevel = 1; } case 17: { jtext = "Drug Smuggler"; skill = cache_get_field_content_int(0, "SmugglerSkill"); if(skill >= 0 && skill <= 19) jlevel = 1; else if(skill >= 20 && skill <= 39) jlevel = 2; else if(skill >= 40 && skill <= 59) jlevel = 3; else if(skill >= 60 && skill <= 79) jlevel = 4; else if(skill >= 80) jlevel = 5; } default: { jtext = "None"; jlevel = 0; } } new AdminJail[16]; new AdminJailed = cache_get_field_content_int(0, "AdminJailed"); new Jailed = cache_get_field_content_int(0, "Jailed"); if(AdminJailed == 1 && Jailed >= 1) AdminJail = "Admin"; if(Jailed >= 1 && AdminJailed != 1) AdminJail = "Yes"; if(Jailed == 0 && AdminJailed == 0) AdminJail = "No"; new JailTime = cache_get_field_content_int(0, "JailTime"); new Member = cache_get_field_content_int(0, "Member"); new FMember = cache_get_field_content_int(0, "FMember"); new Rank = cache_get_field_content_int(0, "Rank"); new Health = cache_get_field_content_int(0, "pHealth"); new Armor = cache_get_field_content_int(0, "pArmor"); new Int = cache_get_field_content_int(0, "InteriorID"); new VirtualWorld = cache_get_field_content_int(0, "VirtualWorld"); new Pnumber = cache_get_field_content_int(0, "PhoneNr"); new BizKey = cache_get_field_content_int(0, "BizKey"); new MarriedTo[128]; cache_get_field_content(0, "MarriedTo", MarriedTo); new ContractBy[128]; cache_get_field_content(0, "ContractBy", ContractBy); new WantedLevel = cache_get_field_content_int(0, "WantedLevel"); new NewbieMuted = cache_get_field_content_int(0, "NewbieMuted"); new NewbieMutedTime = cache_get_field_content_int(0, "NewbieMutedTime"); new NewbieWarns = cache_get_field_content_int(0, "NewbieWarns"); new AdMuted = cache_get_field_content_int(0, "AdMuted"); new BugMuted = cache_get_field_content_int(0, "BugMuted"); new Admin = cache_get_field_content_int(0, "AdminLevel"); new AdminLevel[32]; switch(Admin) { case 0: AdminLevel = "None"; case 1: AdminLevel = "Probationary Administrator"; case 2: AdminLevel = "Junior Administrator"; case 3: AdminLevel = "General Administrator"; case 4 .. 1336: AdminLevel = "Senior Administrator"; case 1337: AdminLevel = "Head Administrator"; case 99999: AdminLevel = "Executive Administrator"; case 999999: AdminLevel = "Executive Administrator"; case 1999999999: AdminLevel = "Community Director"; default: AdminLevel = "?"; } new Helper = cache_get_field_content_int(0, "HelperLevel"); new HelperLevel[32]; switch(Helper) { case 0: HelperLevel = "None"; case 1: HelperLevel = "Trial Helper"; case 2: HelperLevel = "Helper"; case 3: HelperLevel = "Senior Helper"; case 4: HelperLevel = "Head Helper"; case 5: HelperLevel = "Director of The Helpers Team"; default: HelperLevel = "?"; } new Dev = cache_get_field_content_int(0, "DevLevel"); new DevLevel[32]; switch(Dev) { case 0: DevLevel = "None"; case 1: DevLevel = "Junior Developer"; case 2: DevLevel = "Senior Developer"; case 3: DevLevel = "Developer Manager"; case 4: DevLevel = "Lead Developer"; default: DevLevel = "?"; } new Tester = cache_get_field_content_int(0, "TesterLevel"); new TesterLevel[32]; switch(Tester) { case 0: TesterLevel = "None"; case 1: TesterLevel = "Tester"; case 2: TesterLevel = "Senior Tester"; case 3: TesterLevel = "Tester Manager"; default: TesterLevel = "?"; } new Famed = cache_get_field_content_int(0, "Famed"); new OldSchool = cache_get_field_content_int(0, "OldSchool"); new BanDay = cache_get_field_content_int(0, "BanDay"); new BanMonth = cache_get_field_content_int(0, "BanMonth"); new BanYear = cache_get_field_content_int(0, "BanYear"); new HouseID = cache_get_field_content_int(0, "pHouseID"); new CarKey1 = cache_get_field_content_int(0, "CKey1"); new CarKey2 = cache_get_field_content_int(0, "CKey2"); new Mapper = cache_get_field_content_int(0, "Mapper"); new MapperLevel[32]; switch(Mapper) { case 0: MapperLevel = "None"; case 1: MapperLevel = "Mapper"; case 2: MapperLevel = "Senior Mapper"; case 3: MapperLevel = "Mapping Manager"; default: MapperLevel = "?"; } new InHospital = cache_get_field_content_int(0, "isinHosp"); //inventory new Products = cache_get_field_content_int(0, "Products"); new Mats = cache_get_field_content_int(0, "Materials"); //new Cratess = cache_get_field_content_int(0, "Crates"); new PotSeeds = cache_get_field_content_int(0, "Seeds"); new Jerrycan = cache_get_field_content_int(0, "Jerrycan"); new Model = cache_get_field_content_int(0, "Model"); new Tikis =cache_get_field_content_int(0, "Tikis"); new UpgradePoints = cache_get_field_content_int(0, "UpgradePoints"); new Ticket = cache_get_field_content_int(0, "gTicket"); new FishRod = cache_get_field_content_int(0, "FishRod"); new Bait = cache_get_field_content_int(0, "Bait"); new BaitAmount = cache_get_field_content_int(0, "BaitAmount"); new Line = cache_get_field_content_int(0, "Line"); new rodtext[32], baittext[32], linetext[32]; format(rodtext, sizeof(rodtext), "%s", GetFishingRodName(FishRod)); format(baittext, sizeof(baittext), "%s", GetFishingBaitName(Bait)); format(linetext, sizeof(linetext), "%s", GetFishingLineName(Line)); if(BaitAmount == 0) baittext = "None"; new Rope = cache_get_field_content_int(0, "Rope"); new Blindfolds = cache_get_field_content_int(0, "Blindfolds"); new Cigars = cache_get_field_content_int(0, "Cigars"); new Sprunk = cache_get_field_content_int(0, "Sprunk"); new Spray = cache_get_field_content_int(0, "Spraycan"); new Screw = cache_get_field_content_int(0, "Screw"); new Deckk = cache_get_field_content_int(0, "Deck"); new wtc = cache_get_field_content_int(0, "WTc"); new sqlid = cache_get_field_content_int(0, "ID"); new htext[128]; if(HouseID == 0) strins(htext, "None", 0); else { new location[MAX_ZONE_NAME]; Get2DZone(location, MAX_ZONE_NAME, HouseInfo[HouseID][hOutsideX], HouseInfo[HouseID][hOutsideY], HouseInfo[HouseID][hOutsideZ]); format(htext, sizeof(htext), "%d %s", HouseID, location); } new BiggestFish = cache_get_field_content_int(0, "BiggestFish"); new btext[128]; if(BizKey != -1) format(btext, sizeof(btext), "%s (%d)", BizInfo[BizKey][bName], BizKey); else btext = "None"; new bantext[16]; if(Band >= 1) bantext = "Yes"; else bantext = "No"; if(PermBand >= 1) bantext = "Perm"; if(InHospital != 0) dstate = "In Hospital"; new affiliation[128]; if(Member <= 0 && FMember == 255) affiliation = "None"; if(Member >= 1 && FMember != 255) affiliation = "Fam&Fac"; // both...? stupid admins fucking with shit! if(Member >= 1 && FMember == 255) // just faction { switch(Member) { case 1: affiliation = "SAPD"; //case 2: affiliation = "FBI"; case 2: affiliation = "FBI"; case 3: affiliation = "SASD"; case 4: affiliation = "SAFMD"; case 5: affiliation = "DoC"; case 6: affiliation = "Government"; case 7: affiliation = "Department of Justice"; case 8: affiliation = "Hitmen"; case 9: affiliation = "News"; case 10: affiliation = "Taxi"; case 11: affiliation = "NONE"; case 12: affiliation = "DEA"; case 13: affiliation = "ATF"; case 14: affiliation = "AFSA"; case 15: affiliation = "SAS"; default: affiliation = "?"; } } if(Member <= 0 && FMember != 255) format(affiliation, sizeof(affiliation), "%s", FamilyInfo[FMember][FamilyName]); new expamount = (Level + 1) * levelexp; new costlevel = (Level + 1) * levelcost; new BanDate[32]; format(BanDate, sizeof(BanDate), "%d/%d/%d", BanDay, BanMonth, BanYear); new isadmuted[16]; if(AdMuted >= 1) isadmuted = "Yes"; else isadmuted = "No"; new isbugmuted[16]; if(BugMuted >= 1) isbugmuted = "Yes"; else isbugmuted = "No"; new isnewbiemuted[16]; if(NewbieMuted >= 1) isnewbiemuted = "Yes"; else isnewbiemuted = "No"; //display new ostats_string[5000]; format(ostats_string, sizeof(ostats_string), "[Account]: ID:[%d] Name:[%s] Age:[%d] Sex:[%s] Level:[%d] Respect:[%d/%d] Phone:[%d] \n", sqlid, name, Age, sextext, Level, Exp, expamount, Pnumber); format(ostats_string, sizeof(ostats_string), "%s[Details]: Money:[$%d] Bank:[$%d] Next Level Cost:[$%d] Job:[%s] Job Level:[%d]\n", ostats_string, Cash, Account, costlevel, jtext, jlevel); format(ostats_string, sizeof(ostats_string), "%s[Details]: Armor:[%0.2f] Health:[%0.2f] Skin:[%d] Virtual World:[%d] Tikis:[%d] Interior:[%d] \n", ostats_string, Armor, Health, Model, VirtualWorld, Tikis, Int); format(ostats_string, sizeof(ostats_string), "%s[Details]: Married To:[%s] ContractBy:[%s] Upgrade Points:[%d]\n", ostats_string, MarriedTo, ContractBy, UpgradePoints); format(ostats_string, sizeof(ostats_string), "%s[Details]: Staff: [%s] [%s] [%s] [%s] [%s]\n", ostats_string, HelperLevel, DevLevel, MapperLevel, TesterLevel, AdminLevel); format(ostats_string, sizeof(ostats_string), "%s[Details]: Affiliation:[%s] Rank:[%d] FamedLevel:[%d] OS:[%d] VIP:[%s] Gear Tickets:[%d]\n", ostats_string, affiliation, Rank, Famed, OldSchool, VIPLevel, Ticket); format(ostats_string, sizeof(ostats_string), "%s[Inventory]: Materials:[%d] Package:[%d] Seeds:[%d] Products:[%d] Jerrycan:[%d]\n", ostats_string, Mats, Packages, PotSeeds, Products, Jerrycan); format(ostats_string, sizeof(ostats_string), "%s[Inventory]: Ropes:[%d] Blindfolds:[%d] Cigars:[%d] Sprunk:[%d] Spraycan:[%d] Screw Driver:[%d] Deck of Cards:[%d] WTc:[%d] \n", ostats_string, Rope, Blindfolds, Cigars, Sprunk, Spray, Screw, Deckk, wtc); format(ostats_string, sizeof(ostats_string), "%s[Inventory/Property]: Rod:[%s] Bait:[%s] Bait Left:[%d] Fishing Line:[%s] House:[%s] | Business:[%s]\n", ostats_string, rodtext, baittext, BaitAmount, linetext, htext, btext); format(ostats_string, sizeof(ostats_string), "%s[Records]: Playing Hours:[%d] Kills:[%d] Deaths:[%d] Biggest Fish:[%d] Warning:[%d]\n", ostats_string, ConnectTime, Kills, Deaths, BiggestFish, Warns); format(ostats_string, sizeof(ostats_string), "%s[Records]: Jailed:[%s] JailTime:[%d] PrisonReason:[%s] PrisonedBy:[%s] NewbieMutedTime:[%d] NewbieWarns:[%d] Wanted Level:[%d]\n", ostats_string, AdminJail, JailTime, PrisonReason, PrisonedBy, NewbieMutedTime, NewbieWarns, WantedLevel); format(ostats_string, sizeof(ostats_string), "%s[Records]: Banned:[%s] BanReason:[%s] BanDate:[%s] IP:[%s] Disabled:[%s] Death State:[%s]\n", ostats_string, bantext, BanReason, BanDate, ip, isdisabled, dstate); format(ostats_string, sizeof(ostats_string), "%s[Records]: Muted:[%s] AdMuted:[%s] BugMuted:[%s] NewbieMuted:[%s] CarKey1:[%d] CarKey2:[%d]\n", ostats_string, ismuted, isadmuted, isbugmuted, isnewbiemuted, CarKey1, CarKey2); ShowPlayerDialog(playerid, 25025, DIALOG_STYLE_MSGBOX, "Statistics", ostats_string, "Ok", ""); return 1; } stock resetCheckpointInfo(playerid) { checkpointInfo[playerid][cpX] = 0.0; checkpointInfo[playerid][cpY] = 0.0; checkpointInfo[playerid][cpZ] = 0.0; checkpointInfo[playerid][cpSize] = 0.0; return 1; } stock convertBool(bool:conversion) { new val; if(conversion)val = 1; else val = 0; return val; } stock SetPlayerCheckpointEx(playerid, Float:chpX, Float:chpY, Float:chpZ, Float:chpSize) { DisablePlayerCheckpoint(playerid); //possible fix for the checkpoints checkpointInfo[playerid][cpX] = chpX; checkpointInfo[playerid][cpY] = chpY; checkpointInfo[playerid][cpZ] = chpZ; checkpointInfo[playerid][cpSize] = chpSize; cpTimerFix[playerid] = SetTimerEx("Timer_updatePlayerCheckpoint", 1000, true, "i", playerid); return 1; } stock DisablePlayerCheckpointEx(playerid) { KillTimer(cpTimerFix[playerid]); DisablePlayerCheckpoint(playerid); resetCheckpointInfo(playerid); return 1; } Timer:updatePlayerCheckpoint(playerid) { if(checkpointInfo[playerid][cpX] == 0.0 && checkpointInfo[playerid][cpY] == 0.0 && checkpointInfo[playerid][cpZ] == 0.0) { return DisablePlayerCheckpoint(playerid); } SetPlayerCheckpoint(playerid, checkpointInfo[playerid][cpX], checkpointInfo[playerid][cpY], checkpointInfo[playerid][cpZ], checkpointInfo[playerid][cpSize]); return 1; } playerClickCCTVTextDraw(playerid, Text:clickedid) { if(OnCCTV[playerid] == -1) return 0; if(_:clickedid == 65535) return cmd_quitcctv(playerid, ""); else if(clickedid == CCTV_Arrows[0]) return cmd_previouscctv(playerid); else if(clickedid == CCTV_Arrows[1]) return cmd_nextcctv(playerid); return 1; } forward CamPosLol(playerid); public CamPosLol(playerid) { CameraX[playerid] = 0.0; CameraY[playerid] = 0.0; CameraZ[playerid] = 0.0; CameraInt[playerid] = 0; CameraWorld[playerid] = 0; return 1; } stock DeleteCCTVCam(id) { new filename[50]; format(filename, sizeof(filename), "CCTV/CCTV%i.ini", id); dini_Remove(filename); format(CCTV[id][CCTVName], 50, "Not Set"); format(CCTV[id][CCTVOwner], 24, "Unowned"); CCTV[id][CCTVX] = 0.0; CCTV[id][CCTVY] = 0.0; CCTV[id][CCTVZ] = 0.0; CCTV[id][CCTVRX] = 0.0; CCTV[id][CCTVRY] = 0.0; CCTV[id][CCTVRZ] = 0.0; CCTV[id][CCTVVW] = 0; CCTV[id][CCTVINT] = 0; CCTV[id][CCTVLookAtX] = 0.0; CCTV[id][CCTVLookAtY] = 0.0; CCTV[id][CCTVLookAtZ] = 0.0; if(CCTV[id][CCTVObject]) { DestroyDynamicObjectEx(CCTV[id][CCTVObject]); } CCTV[id][CCTVObject] = 0; return 1; } stock LoadCCTV() { new filename[50]; for(new i = 0; i < MAX_CCTV_DYNAMIC; i++) { format(filename, sizeof(filename), "CCTV/CCTV%i.ini", i); if(!dini_Exists(filename)) continue; if(dini_Exists(filename)) { format(CCTV[i][CCTVName], 50, "%s", dini_Get(filename, "Name")); format(CCTV[i][CCTVOwner], 24, "%s", dini_Get(filename, "Owner")); CCTV[i][CCTVX] = dini_Float(filename, "X"); CCTV[i][CCTVY] = dini_Float(filename, "Y"); CCTV[i][CCTVZ] = dini_Float(filename, "Z"); CCTV[i][CCTVRX] = dini_Float(filename, "RX"); CCTV[i][CCTVRY] = dini_Float(filename, "RY"); CCTV[i][CCTVRZ] = dini_Float(filename, "RZ"); CCTV[i][CCTVVW] = dini_Int(filename, "VW"); CCTV[i][CCTVINT] = dini_Int(filename, "Int"); CCTV[i][CCTVLookAtX] = dini_Float(filename, "LAX"); CCTV[i][CCTVLookAtY] = dini_Float(filename, "LAY"); CCTV[i][CCTVLookAtZ] = dini_Float(filename, "LAZ"); CCTV[i][CCTVObject] = CreateDynamicObject(CCTV_OBJID, CCTV[i][CCTVX], CCTV[i][CCTVY], CCTV[i][CCTVZ], CCTV[i][CCTVRX], CCTV[i][CCTVRY], CCTV[i][CCTVRZ]); CCTVCount++; } } return 1; } stock displayMOTDText(playerid) { if(hidingMOTDTimer[playerid]) KillTimer(hidingMOTDTimer[playerid]); //reset hide if already hiding TextDrawShowForPlayer(playerid, motd); hidingMOTDTimer[playerid] = SetTimerEx("Timer_HideMOTD", 10 *1000, 0, "i", playerid); //10 seconds } Timer:HideMOTD(playerid) { TextDrawHideForPlayer(playerid, motd); hidingMOTDTimer[playerid] = 0; } stock showEventHudForAll() { TextDrawShowForAll(eventcup_icon); TextDrawShowForAll(nexteventin); TextDrawShowForAll(eventfunds); TextDrawShowForAll(howtofund); foreach( new i: Player ) { displayingEventHUD[i] = 1; } return 1; } stock hideEventHudForAll() { TextDrawHideForAll(eventcup_icon); TextDrawHideForAll(nexteventin); TextDrawHideForAll(eventfunds); TextDrawHideForAll(howtofund); foreach( new i: Player ) { displayingEventHUD[i] = 0; } return 1; } stock showEventHudForPlayer(playerid) { TextDrawShowForPlayer(playerid, eventcup_icon); TextDrawShowForPlayer(playerid, nexteventin); TextDrawShowForPlayer(playerid, eventfunds); TextDrawShowForPlayer(playerid, howtofund); displayingEventHUD[playerid] = 1; return 1; } stock hideEventHudForPlayer(playerid) { TextDrawHideForPlayer(playerid, eventcup_icon); TextDrawHideForPlayer(playerid, nexteventin); TextDrawHideForPlayer(playerid, eventfunds); TextDrawHideForPlayer(playerid, howtofund); displayingEventHUD[playerid] = 0; return 1; } stock updateEventFundsTextdraw() { new efunds[64]; format(efunds, sizeof(efunds), "Event funds: ~g~$%d", eventCash); TextDrawSetString(eventfunds, efunds); return 1; } stock updateEventTimeTextdraw() { new etime[64]; format(etime, sizeof(etime), "Next event in:~b~ %d hours", eventTime); TextDrawSetString(nexteventin, etime); return 1; } //MySQL functions forward onCheckOrderInfo(playerid, ccinc); public onCheckOrderInfo(playerid, ccinc) { new str[128]; queryballance--; checkcinc //get the number of rows/fields in the query new rows, fields; cache_get_data(rows, fields); printf("rows: %d, fields: %d", rows, fields); if(!rows) { SendClientMessage(playerid, COLOR_GREY, "Invalid order ID."); } else { new firstname[30]; new lastname[30]; new orderid[7]; new email[30]; new comment[128]; new dateadded[20]; new datemodified[20]; new orderstatusid[3]; //new orderstatusname[20]; cache_get_row(0, 0, firstname); cache_get_row(0, 1, lastname); cache_get_row(0, 2, orderid); cache_get_row(0, 3, email); cache_get_row(0, 4, comment); cache_get_row(0, 5, dateadded); cache_get_row(0, 6, datemodified); cache_get_row(0, 7, orderstatusid); //cache_get_row(0, 8, orderstatusname); new orderstatusname[20]; switch(strval(orderstatusid)) { case 0: orderstatusname = "Pending"; case 1: orderstatusname = "Pending"; case 2: orderstatusname = "Processing"; case 3: orderstatusname = "Shipped"; case 5: orderstatusname = "Complete"; case 7: orderstatusname = "Canceled"; case 8: orderstatusname = "Denied"; case 9: orderstatusname = "Canceled Reversal"; case 10: orderstatusname = "Failed"; case 11: orderstatusname = "Refunded"; case 12: orderstatusname = "Reversed"; case 13: orderstatusname = "Chargeback"; case 14: orderstatusname = "Expired"; case 15: orderstatusname = "Processed"; case 16: orderstatusname = "Voided"; default: orderstatusname = "None"; } SendClientMessage(playerid, COLOR_WHITE, "Order Information:"); format(str, sizeof(str), "Name: %s %s", firstname, lastname); SendClientMessage(playerid, COLOR_GREY, str); format(str, sizeof(str), "Order id: %d", strval(orderid)); SendClientMessage(playerid, COLOR_GREY, str); format(str, sizeof(str), "Email: %s", email); SendClientMessage(playerid, COLOR_GREY, str); format(str, sizeof(str), "Comment: %s", comment); SendClientMessage(playerid, COLOR_GREY, str); format(str, sizeof(str), "Date added: %s", dateadded); SendClientMessage(playerid, COLOR_GREY, str); format(str, sizeof(str), "Date modified: %s", datemodified); SendClientMessage(playerid, COLOR_GREY, str); format(str, sizeof(str), "Order status: %s (%d)", orderstatusname, strval(orderstatusid)); SendClientMessage(playerid, COLOR_GREY, str); } return; } forward onCheckPurchaseInfo(playerid, ccinc); public onCheckPurchaseInfo(playerid, ccinc) { new str[128]; queryballance--; checkcinc //get the number of rows/fields in the query new rows, fields; cache_get_data(rows, fields); printf("rows: %d, fields: %d", rows, fields); if(!rows) { SendClientMessage(playerid, COLOR_GREY, "Invalid order ID."); } else { new orderid[7]; new name[30]; new quantity[5]; cache_get_row(0, 0, orderid); SendClientMessage(playerid, COLOR_WHITE, "Purchase Information:"); format(str, sizeof(str), "Order id: %d", strval(orderid)); SendClientMessage(playerid, COLOR_GREY, str); for(new i = 0; i < rows; i++) { cache_get_row(i, 1, name); cache_get_row(i, 2, quantity); format(str, sizeof(str), "Purchase: %s | Quantity: %d", name, strval(quantity)); SendClientMessage(playerid, COLOR_GREY, str); } } return; } forward onProcessOrder(playerid, ccinc); public onProcessOrder(playerid, ccinc) { queryballance--; checkcinc SendClientMessage(playerid, COLOR_LIGHTBLUE, "* The order has been processed, use /checkorderinfo to verify it."); return; } forward onEmptyQuery(playerid, ccinc); public onEmptyQuery(playerid, ccinc) { queryballance--; checkcinc return; } public OnQueryError(errorid, error[], callback[], query[], connectionHandle) { switch(errorid) { case CR_SERVER_GONE_ERROR: { printf("Lost connection to server, trying reconnect..."); mysql_reconnect(connectionHandle); } case ER_SYNTAX_ERROR: { printf("Something is wrong in your syntax, query: %s", query); } } Log:warning("SQLError", "errorid: %d, error: %s", errorid, error); printf("OnQueryError: errorid: %d, error: %s, callback: %s, query: %s, connectionHandle: %d", errorid, error, callback, query, connectionHandle); return 1; } forward FixPlayerRadio(playerid); public FixPlayerRadio(playerid) { if(IsPlayerConnected(playerid)) { PlayerPlaySound(playerid, 1068, 0.0, 0.0, 0.0); SetTimerEx("Timer_EnablePlayerRadio", 2000, false, "i", playerid); } return 1; } Timer:EnablePlayerRadio(playerid) { if(IsPlayerConnected(playerid)) { PlayerPlaySound(playerid, 1069, 0.0, 0.0, 0.0); } return 1; } // Disband a family when max. amount of strikes is reached stock StrikeDisband(famToDisband) { new str[128]; format(str, sizeof(str), "{FF6347}SERVER: Family '%s' was disbanded for reaching the maximum amount of strikes.", FamilyInfo[famToDisband][FamilyName]); SendClientMessageToAll(COLOR_WHITE, str); DestroyDynamicPickup(FamilyInfo[famToDisband][PickupID]); ClearFamily(famToDisband); SaveFamilies(); return 1; } // Calculates the date after a certain interval of days // /*GetDateAfterInterval(fromDay, fromMonth, fromYear, interval, &toDay, &toMonth, &toYear){ new days; toDay = fromDay; toMonth = fromMonth; toYear = fromYear; while(interval > 0){ toDay += interval; days = GetDaysFromMonth(toMonth, toYear); if(toDay > days){ interval = (toDay - days); toDay = 0; toMonth++; } else interval = 0; if(toMonth>12){ toMonth = 1; toYear++; } } return; }*/ // Calculates the difference in days from a certain date/month/year to a certain date/month/year GetDaysDifference(fromDay, fromMonth, fromYear, toDay, toMonth, toYear){ new bool:reverseCheck = false, // To check if variables need to be reversed or not bool:i = true, // To run the loop totalDays; // To store the sum of days if(toYear < fromYear) reverseCheck = true; else if(toYear == fromYear){ if(toMonth < fromMonth){ reverseCheck = true; } else if(toMonth == fromMonth){ if(toDay < fromDay) reverseCheck = true; } } if(reverseCheck){ new tempDay, tempMonth, tempYear; tempDay = fromDay; fromDay = toDay; toDay = tempDay; tempMonth = fromMonth; fromMonth = toMonth; toMonth = tempMonth; tempYear = fromYear; fromYear = toYear; toYear = tempYear; } for(new year = fromYear, month = fromMonth; year <= toYear; year++){ while(i){ totalDays += GetDaysFromMonth(month, year); month++; if(month > 12){ month = 1; break; } if(year >= toYear && month > toMonth) break; } if(month >= toMonth) break; } totalDays = (totalDays - fromDay) - (GetDaysFromMonth(toMonth, toYear) - toDay); if(!reverseCheck) return totalDays; else return -totalDays; } // Returns the number of days in a month for a specific year // GetDaysFromMonth(month, year){ switch(month){ case 1, 3, 5, 7, 8, 10, 12: return 31; case 4, 6, 9, 11: return 30; case 2:{ if(year%4 == 0) return 29; else return 28; } default: return 0; } return 1; } // Checks if a date is a valid date or not // IsValidDate(day, month, year){ new _day = GetDaysFromMonth(month, year); if( !(0= 3) { format(str, sizeof(str), "{FF0000}HelperCmd{FFFFFF}: %s was muted from the newbie chat (received 3 warnings).", name); SendHelperMessage(COLOR_LIGHTRED, str, 1); mysql_format(sqlGameConnection, query, sizeof query, "UPDATE players SET NewbieWarns=NewbieWarns+1, NewbieMuted=1, NewbieMutedTime=0 WHERE Name='%e'", name); } else { mysql_format(sqlGameConnection, query, sizeof query, "UPDATE players SET NewbieWarns=NewbieWarns+1 WHERE Name='%e'", name); } mysql_pquery(sqlGameConnection, query, "", ""); return 1; } // BlueG's plugin doesn't allow us to execute multiple queries in a single query so unfournately we have to branch the queries out so // we can deliver different messages if they are muted, unmuted, etc(otherwise we have no way of knowing if we just UPDATE it with an IF) forward OnNewbieMute(playerid, time, name[]); public OnNewbieMute(playerid, time, name[]) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}Error: {FFFFFF}That account doesn't exist."); new query[128]; new str[128]; if(cache_get_field_content_int(0, "NewbieMuted") == 0) { // mute the player format(str, sizeof str, "{FF0000}HelperCmd{FFFFFF}: %s was muted from the newbie chat by %s", name, PlayerICName(playerid)); if(time > 0) format(str, sizeof str, "%s for %d hours.", str, time); mysql_format(sqlGameConnection, query, 128, "UPDATE players SET NewbieMuted=1, NewbieMutedTime=%d WHERE Name='%e'", time, name); } else { // unmute the player format(str, sizeof str, "{FF0000}HelperCmd{FFFFFF}: %s was unmuted from the newbie chat by %s", name, PlayerICName(playerid)); mysql_format(sqlGameConnection, query, 128, "UPDATE players SET NewbieMuted=0, NewbieMutedTime=0 WHERE Name='%e'", name); } SendHelperMessage(COLOR_WHITE, str, 1); mysql_pquery(sqlGameConnection, query, "", ""); return 1; } forward OnNewbieWarnRemove(playerid, playername[]); public OnNewbieWarnRemove(playerid, playername[]) { if(cache_affected_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "{FF0000}Error: {FFFFFF}Either that account doesn't exist or it has no warnings."); new str[128]; format(str, sizeof str, "{FF0000}HelperCmd{FFFFFF}: %s has removed the newbie-warning of %s.", PlayerICName(playerid), playername); SendHelperMessage(COLOR_WHITE, str, 1); return 1; } forward DisplayLicenses(fromPlayer, toPlayer); public DisplayLicenses(fromPlayer, toPlayer) { new bool:licenseFound = false; new str[128]; // Drivers license if(PlayerInfo[fromPlayer][pCarLicense]) { format(str, sizeof(str), "[#DL%i San Andreas issued drivers license - %s]", PlayerInfo[fromPlayer][pID] + 345, PlayerICName(fromPlayer) ); SendClientMessage(toPlayer, COLOR_YELLOW, str); licenseFound = true; } // Sailing license if(PlayerInfo[fromPlayer][pBoatLicense]) { format(str, sizeof(str), "[#BL%i San Andreas issued sailing license - %s]", PlayerInfo[fromPlayer][pID] + 993, PlayerICName(fromPlayer) ); SendClientMessage(toPlayer, COLOR_YELLOW, str); licenseFound = true; } // Fishing license if(PlayerInfo[fromPlayer][pFishLic]) { format(str, sizeof(str), "[#FL%i San Andreas issued fishing license - %s]", PlayerInfo[fromPlayer][pID] + 217, PlayerICName(fromPlayer) ); SendClientMessage(toPlayer, COLOR_YELLOW, str); licenseFound = true; } // Weapon license if(PlayerInfo[fromPlayer][pWeaponLicense]) { format(str, sizeof(str), "[#WL%i San Andreas issued weapon license - %s]", PlayerInfo[fromPlayer][pID] + 9902, PlayerICName(fromPlayer) ); SendClientMessage(toPlayer, COLOR_YELLOW, str); licenseFound = true; } // Marijuana license if(PlayerInfo[fromPlayer][pMarijuanaLicense]) { format(str, sizeof(str), "[#ML%i San Andreas issued marijuana license - %s]", PlayerInfo[fromPlayer][pID] + 872, PlayerICName(fromPlayer) ); SendClientMessage(toPlayer, COLOR_YELLOW, str); licenseFound = true; } return licenseFound; } ShowHelpDialog(playerid) { ShowPlayerDialog(playerid, 79, DIALOG_STYLE_LIST, "Help", "Account\nGeneral\nChat\nToggle\nBank\nJob\nFaction\nFamily\nOther\nBusiness\nGambling\nAdmin\nHelper\nDeveloper\nBeta Tester\nVIP\nCharacter\nGlobal Chat", "Ok", "Cancel"); return 1; } Timer:ADutyTimer2(playerid) { if(!IsPlayerConnected(playerid)) return 0; if(ADutyTimer[playerid]) { ADutyTimer[playerid] = false; } return 1; } stock GetMoveDirectionFromKeys(ud, lr) { new direction = 0; if(lr < 0) { if(ud < 0) direction = 5; else if(ud > 0) direction = 7; else direction = 3; } else if(lr > 0) { if(ud < 0) direction = 6; else if(ud > 0) direction = 8; else direction = 4; } else if(ud < 0) direction = 1; else if(ud > 0) direction = 2; return direction; } stock MoveCamera(playerid) { new Float:FV[3], Float:CPNEW[3]; GetPlayerCameraPos(playerid, CPNEW[0], CPNEW[1], CPNEW[2]); GetPlayerCameraFrontVector(playerid, FV[0], FV[1], FV[2]); if(plNCData[playerid][ncAccelMul] <= 1) plNCData[playerid][ncAccelMul] += 0.03; new Float:speed = playerMoveSpeed[playerid] * plNCData[playerid][ncAccelMul]; new Float:X, Float:Y, Float:Z; GetNextCameraPosition(plNCData[playerid][ncMode], CPNEW, FV, X, Y, Z); MovePlayerObject(playerid, plNCData[playerid][ncFlyObject], X, Y, Z, speed); plNCData[playerid][ncLastMove] = GetTickCount(); return 1; } stock GetNextCameraPosition(move_mode, Float:CPNEW[3], Float:FV[3], &Float:X, &Float:Y, &Float:Z) { #define OFFSET_X (FV[0]*6000.0) #define OFFSET_Y (FV[1]*6000.0) #define OFFSET_Z (FV[2]*6000.0) switch(move_mode) { case 1: { X = CPNEW[0] +OFFSET_X; Y = CPNEW[1] +OFFSET_Y; Z = CPNEW[2] +OFFSET_Z; } case 2: { X = CPNEW[0] -OFFSET_X; Y = CPNEW[1] -OFFSET_Y; Z = CPNEW[2] -OFFSET_Z; } case 3: { X = CPNEW[0] -OFFSET_Y; Y = CPNEW[1] +OFFSET_X; Z = CPNEW[2]; } case 4: { X = CPNEW[0] +OFFSET_Y; Y = CPNEW[1] -OFFSET_X; Z = CPNEW[2]; } case 7: { X = CPNEW[0] +(-OFFSET_X - OFFSET_Y); Y = CPNEW[1] +(-OFFSET_Y + OFFSET_X); Z = CPNEW[2] -OFFSET_Z; } case 8: { X = CPNEW[0] +(-OFFSET_X + OFFSET_Y); Y = CPNEW[1] +(-OFFSET_Y - OFFSET_X); Z = CPNEW[2] -OFFSET_Z; } case 5: { X = CPNEW[0] +(OFFSET_X - OFFSET_Y); Y = CPNEW[1] +(OFFSET_Y + OFFSET_X); Z = CPNEW[2] +OFFSET_Z; } case 6: { X = CPNEW[0] +(OFFSET_X + OFFSET_Y); Y = CPNEW[1] +(OFFSET_Y - OFFSET_X); Z = CPNEW[2] +OFFSET_Z; } } } stock CancelFlyMode(playerid) { flyingUsed[playerid] = false; CancelEdit(playerid); TogglePlayerSpectating(playerid, false); DestroyPlayerObject(playerid, plNCData[playerid][ncFlyObject]); plNCData[playerid][ncCameraMode] = 0; SetPlayerPos(playerid, Fly_X[playerid], Fly_Y[playerid], Fly_Z[playerid]); SetPlayerFacingAngle(playerid, Fly_A[playerid]); return 1; } stock FlyMode(playerid) { new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); GetPlayerFacingAngle(playerid, Fly_A[playerid]); plNCData[playerid][ncFlyObject] = CreatePlayerObject(playerid, 19300, X, Y, Z, 0.0, 0.0, 0.0); TogglePlayerSpectating(playerid, true); AttachCameraToPlayerObject(playerid, plNCData[playerid][ncFlyObject]); flyingUsed[playerid] = true; plNCData[playerid][ncCameraMode] = 1; return 1; } forward onOHelpers(playerid); public onOHelpers(playerid) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "No offline helpers to display."); new memberstr[5000], lastlog[64], name[MAX_PLAYER_NAME]; format(memberstr, sizeof(memberstr), "Helper\t\tLastLogin\n"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_field_content(i, "Name", name); cache_get_field_content(i, "LastLogin", lastlog); format(memberstr, sizeof(memberstr), "%s{FFFFFF}%s\t\t{FF3366}%s\n", memberstr, name, lastlog); } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST_HEADERS, "Offline Helpers", memberstr, "Okay", ""); return 1; } forward onOTesters(playerid); public onOTesters(playerid) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "No offline testers to display."); new memberstr[5000], lastlog[64], name[MAX_PLAYER_NAME], treports; format(memberstr, sizeof(memberstr), "Name\tCount\tLast Login\n"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_field_content(i, "Name", name); cache_get_field_content(i, "LastLogin", lastlog); treports = cache_get_field_content_int(i, "TesterReports"); format(memberstr, sizeof(memberstr), "%s{FFFFFF}%s\t%d\t{FF3366}%s\n", memberstr, name, treports, lastlog); } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST_HEADERS, "Offline Testers", memberstr, "Okay", ""); return 1; } forward onODev(playerid); public onODev(playerid) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "No offline devs to display."); new memberstr[5000], lastlog[64], name[MAX_PLAYER_NAME]; format(memberstr, sizeof(memberstr), "Name\tLast Log\n"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_field_content(i, "Name", name); cache_get_field_content(i, "LastLogin", lastlog); format(memberstr, sizeof(memberstr), "%s{FFFFFF}%s\t%s{FF3366}\n", memberstr, name, lastlog); } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST_HEADERS, "Offline Developers", memberstr, "Okay", ""); return 1; } forward onOmapper(playerid); public onOmapper(playerid) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "No offline mappers to display."); new memberstr[5000], lastlog[64], name[MAX_PLAYER_NAME]; format(memberstr, sizeof(memberstr), "Name\tLast Log\n"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_field_content(i, "Name", name); cache_get_field_content(i, "LastLogin", lastlog); format(memberstr, sizeof(memberstr), "%s{FFFFFF}%s\t%s{FF3366}\n", memberstr, name, lastlog); } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST_HEADERS, "Offline Mappers", memberstr, "Okay", ""); return 1; } forward onOAdmin(playerid); public onOAdmin(playerid) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "No offline admins to display."); new memberstr[5000], lastlog[64], name[MAX_PLAYER_NAME], adminlvl[64], arank; format(memberstr, sizeof(memberstr), "Name\tAdmin Level\tLast Log\n"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_field_content(i, "Name", name); cache_get_field_content(i, "LastLogin", lastlog); cache_get_field_content(i, "AdminLevel", adminlvl); arank = strval(adminlvl); format(memberstr, sizeof(memberstr), "%s{FFFFFF}%s\t%d\t%s{FF3366}\n", memberstr, name, arank, lastlog); } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST_HEADERS, "Offline Administrators", memberstr, "Okay", ""); return 1; } forward onOMembers(playerid); public onOMembers(playerid) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "No offline members to display."); new memberstr[10000], lastlog[64], name[MAX_PLAYER_NAME], leader, recruiter, playerfrank; for(new i = 0; i < cache_num_rows(); i++) { new temp[10]; cache_get_field_content(i, "Name", name); cache_get_field_content(i, "LastLogin", lastlog); cache_get_field_content(i, "Rank", temp); playerfrank = strval(temp); cache_get_field_content(i, "Leader", temp); leader = strval(temp); cache_get_field_content(i, "Recruiter", temp); recruiter = strval(temp); if(leader >= 1 && recruiter == 0) format(memberstr, sizeof(memberstr), "%s{3366FF}%s (%d)\t\t{FFFFFF}%s\n", memberstr, name, playerfrank, lastlog); else if(recruiter >= 1 && leader == 0) format(memberstr, sizeof(memberstr), "%s{a3995b}%s (%d)\t\t{FFFFFF}%s\n", memberstr, name, playerfrank, lastlog); else if(recruiter >= 1 && leader >= 1) format(memberstr, sizeof(memberstr), "%s{3366FF}%s (%d)\t\t{FFFFFF}%s\n", memberstr, name, playerfrank, lastlog); else format(memberstr, sizeof(memberstr), "%s{FFFF00}%s (%d)\t\t{FFFFFF}%s\n", memberstr, name, playerfrank, lastlog); } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST, "Offline Members", memberstr, "Okay", ""); return 1; } forward onOFMembers(playerid); public onOFMembers(playerid) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_WHITE, "No offline members to display."); new memberstr[10000], lastlog[64], name[MAX_PLAYER_NAME], playerfrank; for(new i = 0; i < cache_num_rows(); i++) { new temp[10]; cache_get_field_content(i, "Name", name); cache_get_field_content(i, "LastLogin", lastlog); cache_get_field_content(i, "Rank", temp); playerfrank = strval(temp); format(memberstr, sizeof(memberstr), "%s{3366FF}%s (%d)\t\t{FFFFFF}%s\n", memberstr, name, playerfrank, lastlog); } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST, "Offline Members", memberstr, "Okay", ""); return 1; } forward OnOfflineSeizeFunds(playerid, seizePlayer[], seizeAmount, seizeReason[]); public OnOfflineSeizeFunds(playerid, seizePlayer[], seizeAmount, seizeReason[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "That account does not exist."); new currentBankBalance = cache_get_field_content_int(0, "Bank"); new str[128]; if(currentBankBalance < seizeAmount) { format(str, sizeof(str), "* You can currently not seize the full amount ($%s) from %s.", AddThousandsSeparators(seizeAmount), seizePlayer); SendClientMessage(playerid, COLOR_GREY, str); format(str, sizeof(str), "* %s only has $%s in their bank account.", seizePlayer, AddThousandsSeparators(currentBankBalance)); SendClientMessage(playerid, COLOR_GREY, str); return 1; } new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Bank` = %i WHERE `Name` = '%e' LIMIT 1", currentBankBalance - seizeAmount, seizePlayer); mysql_pquery(sqlGameConnection, query); GiveMoney(playerid, seizeAmount); SendClientMessage(playerid, COLOR_LIGHTBLUE, "____________________________________________"); format(str, sizeof(str), "* You have successfully seized $%s from %s's bank account.", AddThousandsSeparators(seizeAmount), seizePlayer); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "* Reason: '%s'", seizeReason); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); format(str, sizeof(str), "Previous balance: $%s", AddThousandsSeparators(currentBankBalance)); SendClientMessage(playerid, COLOR_GREY, str); format(str, sizeof(str), "New balance: $%s", AddThousandsSeparators(currentBankBalance - seizeAmount)); SendClientMessage(playerid, COLOR_GREY, str); SendClientMessage(playerid, COLOR_LIGHTBLUE, "____________________________________________"); return 1; } public OnVehicleSirenStateChange(playerid, vehicleid, newstate) { if(newstate) GameTextForPlayer(playerid, "~W~Siren ~G~on", 1000, 3); else GameTextForPlayer(playerid, "~W~Siren ~r~off", 1000, 3); return 1; } /* Sector 9 commands and functions compiled and most scripted by Avery. EDIT: moved to commands.inc by Desmond */ // Quick fix needs to be scripted properly with own enum Timer:UseAdmCmd(playerid) { if(!IsPlayerConnected(playerid)) return 0; if(UseAdmCmdTimer[playerid]) { UseAdmCmdTimer[playerid] = 0; } return 1; } stock isAnyoneSpecingTarget(playerid) { foreach( new i: Player ) { if(SpectatingID[i] == SpectatingID[playerid] && i != playerid) //another player is spectating the same player as me { return 1; } } return 0; } stock unspec(playerid) { SetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]); SetPlayerArmour(playerid, PlayerInfo[playerid][pArmor]); SetPlayerInterior(playerid, PlayerInfo[playerid][pInt]); SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][pVirtualWorld]); SetPlayerPos(playerid, PlayerInfo[playerid][pSPos_x], PlayerInfo[playerid][pSPos_y], PlayerInfo[playerid][pSPos_z]); SetPlayerFacingAngle(playerid, PlayerInfo[playerid][pSPos_r]); TogglePlayerSpectating(playerid, 0); ResetPlayerAdminWeaponsEx(playerid); /* Spectate textdraws hide */ HideSpectateTextDraws(playerid); //need to check if no other admins are specing the target before reseting the variable new found_spectator = isAnyoneSpecingTarget(playerid); if(!found_spectator) //if nobody else was specing them, set their var to 0 { Spectated[SpectatingID[playerid]] = 0; //set their } new str[128]; foreach(new i: Player) { if(SpectatingID[playerid] == i) { format(str, sizeof(str), "AdmCMD: %s has stopped spectating you.", PlayerOOCName(playerid)); if(PlayerInfo[playerid][pAdmin] <= PlayerInfo[i][pAdmin]) SendClientMessage(i, COLOR_YELLOW, str); } } beingSpectatedID[SpectatingID[playerid]] = INVALID_PLAYER_ID; SpectatingID[playerid] = INVALID_PLAYER_ID; SpectateType[playerid] = ADMIN_SPEC_TYPE_NONE; HidePM[playerid] = 0; PhoneOffline[playerid] = 0; SendClientMessage(playerid, COLOR_WHITE, "You are no longer spectating."); pDeathState[playerid] = PLAYER_STATE_NORMAL; return 1; } stock spectate(playerid, giveplayerid) { if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) //if i am is not already specing someone { PlayerInfo[playerid][pInt] = GetPlayerInterior(playerid); PlayerInfo[playerid][pVirtualWorld] = GetPlayerVirtualWorld(playerid); GetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]); GetPlayerArmour(playerid, PlayerInfo[playerid][pArmor]); GetPlayerPos(playerid, PlayerInfo[playerid][pSPos_x], PlayerInfo[playerid][pSPos_y], PlayerInfo[playerid][pSPos_z]); GetPlayerFacingAngle(playerid, PlayerInfo[playerid][pSPos_r]); } else { //need to check if no other admins are specing the target before reseting the variable new found_spectator = isAnyoneSpecingTarget(playerid); if(!found_spectator) //if nobody else was the old target, set their var to 0 { Spectated[SpectatingID[playerid]] = 0; //set their } } /* Spectate textdraw */ ShowSpectateTextDraws(playerid, giveplayerid); SetPlayerInterior(playerid, GetPlayerInterior(giveplayerid)); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(giveplayerid)); TogglePlayerSpectating(playerid, 1); Spectated[giveplayerid] = 1; beingSpectatedID[giveplayerid] = playerid; SpectatingID[playerid] = giveplayerid; HidePM[playerid] = 1; PhoneOffline[playerid] = 1; new str[128]; if(PlayerInfo[playerid][pAdmin] <= PlayerInfo[giveplayerid][pAdmin]) { format(str, sizeof(str), "AdmCMD: %s is spectating you.", PlayerOOCName(playerid)); SendClientMessage(giveplayerid, COLOR_YELLOW, str); } if(pDeathState[giveplayerid] == PLAYER_STATE_REVIVE) { SendClientMessage(playerid, COLOR_YELLOW, "That player is currently injured in the revive mode, so if they're floating they're not hacking."); } if(UsingSate[giveplayerid]) { SendClientMessage(playerid, COLOR_YELLOW, "That player is currently using /sate, so if they're floating they're not hacking."); } new Float:health, Float:armor, name[MAX_PLAYER_NAME]; GetPlayerICName(giveplayerid, name, sizeof(name)); GetPlayerHealth(giveplayerid, health); GetPlayerArmour(giveplayerid, armor); if(!IsPlayerInAnyVehicle(giveplayerid)) { format(str, sizeof(str), "~n~~n~~n~~n~~n~~n~~y~%s(ID:%d)~n~~y~health:%.1f armor:%.1f", name, giveplayerid, health, armor); GameTextForPlayer(playerid, str, 2500, 3); PlayerSpectatePlayer(playerid, giveplayerid); SpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER; } else { GetVehicleHealth(GetPlayerVehicleID(giveplayerid), health); format(str, sizeof(str), "~n~~n~~n~~n~~n~~n~~y~%s(ID:%d)~n~~y~veh health:%.1f armor:%.1f", name, giveplayerid, health, armor); GameTextForPlayer(playerid, str, 2500, 3); PlayerSpectateVehicle(playerid, GetPlayerVehicleID(giveplayerid)); SpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE; } pDeathState[playerid] = PLAYER_STATE_NORMAL; return 1; } forward onLastLogin(playerid, name[]); public onLastLogin(playerid, name[]) { new str[128]; new rows, fields, lastlogin[64]; cache_get_data(rows, fields); if(!rows) return SendClientMessage(playerid, COLOR_WHITE, "That account doesn't exist."); cache_get_field_content(0, "LastLogin", lastlogin); format(str, sizeof(str), "%s last logged in game on %s", name, lastlogin); SendClientMessage(playerid, COLOR_WHITE, str); return 1; } stock AddWarn(PlayerSQLID, AdminName[], Date[], Reason[], giveplayerid, playerid) { new str[128]; new query[500], Cache:sqlresults, rows, fields; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT * FROM warnings WHERE PlayerID = %i AND Active = 1", PlayerSQLID); sqlresults = mysql_query(sqlGameConnection, query); cache_get_data(rows, fields, sqlGameConnection); if(rows >= 3)//AutoBan { mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `warnings` (`PlayerID`, `AdminName`, `Date`, `Reason`, `Active`) VALUES('%i', '%e', '%e', '%e' , 1)", PlayerInfo[giveplayerid][pID], PlayerName(playerid), Date, Reason); mysql_pquery(sqlGameConnection, query); printf(query); format(str, sizeof(str), "{FF6347}SERVER: %s was banned by %s (had 3 warnings), reason: %s", PlayerName(giveplayerid), AdminName, Reason); SendClientMessageToAll(COLOR_WHITE, str); mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE warnings SET Active = 0 WHERE PlayerID = %i;", PlayerInfo[giveplayerid][pID]); mysql_pquery(sqlGameConnection, query); new banreason[30]; format(banreason, sizeof(banreason), "had 3 warnings."); BanAccount(giveplayerid, playerid, banreason); //log before banning the account return 1; } mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `warnings` (`PlayerID`, `AdminName`, `Date`, `Reason`, `Active`) VALUES('%i', '%e', '%e', '%e' , 1)", PlayerInfo[giveplayerid][pID], PlayerName(playerid), Date, Reason); mysql_pquery(sqlGameConnection, query); printf(query); format(str, sizeof(str), "You warned %s, reason: %s", PlayerOOCName(giveplayerid), Reason); SendClientMessage(playerid, COLOR_LIGHTRED, str); SendClientMessage(giveplayerid, COLOR_LIGHTRED, "Your warnings have been adjusted, /warns to see your warnings."); format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has warned %s, reason: %s", PlayerOOCName(playerid), PlayerOOCName(giveplayerid), Reason); ABroadCast(COLOR_WHITE, str, 1); cache_delete(Cache:sqlresults, sqlGameConnection); return 1; } stock oAddWarn(PlayerSQLID, AdminName[], Date[], Reason[], playerid, name[]) { new query[500], Cache:sqlresults, rows, fields; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT * FROM warnings WHERE PlayerID = %i AND Active = 1", PlayerSQLID); sqlresults = mysql_query(sqlGameConnection, query); cache_get_data(rows, fields, sqlGameConnection); if(rows >= 3)//AutoBan { mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `warnings` (`PlayerID`, `AdminName`, `Date`, `Reason`, `Active`) VALUES('%i', '%e', '%e', '%e' , 1)", PlayerSQLID, AdminName, Date, Reason); mysql_pquery(sqlGameConnection, query); printf(query); mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE warnings SET Active = 0 WHERE PlayerID = %i;", PlayerSQLID); mysql_pquery(sqlGameConnection, query);// ADD BAN mysql_format(sqlGameConnection, query, sizeof(query), "SELECT * FROM `players` WHERE `Name` = '%e' LIMIT 1", name); new temp[40]; format(temp, sizeof(temp), "reached 3 warnings"); mysql_pquery(sqlGameConnection, query, "OnBanAccount", "iss", playerid, name, temp); return 1; } mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `warnings` (`PlayerID`, `AdminName`, `Date`, `Reason`, `Active`) VALUES('%i', '%e', '%e', '%e' , 1)", PlayerSQLID, AdminName, Date, Reason); mysql_pquery(sqlGameConnection, query); printf(query); new str[128]; format(str, sizeof(str), "You warned %s, reason: %s", name, Reason); SendClientMessage(playerid, COLOR_LIGHTRED, str); format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has offline-warned %s, reason: %s", AdminName, name, Reason); ABroadCast(COLOR_WHITE, str, 1); cache_delete(Cache:sqlresults, sqlGameConnection); return 1; } forward checkplayerid(playerid, name[]); public checkplayerid(playerid, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); new sqlid = cache_get_field_content_int(0, "ID"); mysql_format(sqlGameConnection, sqlstring, sizeof(sqlstring), "SELECT WarnID, PlayerID, AdminName, Date, Reason, Active FROM warnings WHERE PlayerID = %d ORDER BY `DATE` DESC", sqlid); mysql_pquery(sqlGameConnection, sqlstring, "oCheckWarns", "is", playerid, name); return 1; } forward oCheckWarns(playerid, name[]); public oCheckWarns(playerid, name[]) { new AdminName[MAX_PLAYER_NAME], Date[40], Reason[50], WarnID, Active, results[5000]; if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_GRAD2, "That player has no warnings"); format(results, sizeof(results), "Warning ID\tDate\tGiven By\tReason\n"); for(new i = 0; i < cache_num_rows(); i++) { WarnID = cache_get_field_content_int(i, "WarnID"); cache_get_field_content(i, "AdminName", AdminName); cache_get_field_content(i, "Date", Date); cache_get_field_content(i, "Reason", Reason); Active = cache_get_field_content_int(i, "Active"); if(!Active) format(results, sizeof(results), "%s{FF6347}%i{FF6347}\t{FF6347}%s\t{FF6347}%s\t{FF6347}%s\n", results, WarnID, Date, AdminName, Reason); else format(results, sizeof(results), "%s{9ACD32}%i\t{9ACD32}%s\t{9ACD32}%s\t{9ACD32}%s\n", results, WarnID, Date, AdminName, Reason); ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST_HEADERS, "Warnings", results, "Ok", ""); } return 1; } forward CheckWarns(playerid); public CheckWarns(playerid) { new AdminName[MAX_PLAYER_NAME], Date[40], Reason[50], WarnID, Active, results[5000]; if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_GRAD2, "You have no warnings"); format(results, sizeof(results), "Warning ID\tDate\tGiven By\tReason\n"); for(new i = 0; i < cache_num_rows(); i++) { WarnID = cache_get_field_content_int(i, "WarnID"); cache_get_field_content(i, "AdminName", AdminName); cache_get_field_content(i, "Date", Date); cache_get_field_content(i, "Reason", Reason); Active = cache_get_field_content_int(i, "Active"); if(!Active) format(results, sizeof(results), "%s{FF6347}%i{FF6347}\t{FF6347}%s\t{FF6347}%s\t{FF6347}%s\n", results, WarnID, Date, AdminName, Reason); else format(results, sizeof(results), "%s{9ACD32}%i\t{9ACD32}%s\t{9ACD32}%s\t{9ACD32}%s\n", results, WarnID, Date, AdminName, Reason); ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST_HEADERS, "Warnings", results, "Ok", ""); } return 1; } stock GetPlayerCount() { new amount =0; for(new i =0; i = PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} you cannot disable accounts belonging to equal or higher administrators."); new disabled = cache_get_field_content_int (0, "Disabled"); new str[128]; if(disabled == 0) { dswitch = 1; format(str, sizeof(str), "* You have disabled %s's account.", name); } else { dswitch = 0; format(str, sizeof(str), "* You have undisabled %s's account.", name); } SendClientMessage(playerid, COLOR_LIGHTBLUE, str); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Disabled` = %d WHERE `name`='%e'", dswitch, name); mysql_pquery(sqlGameConnection, query); return 1; } Timer:FamMuteTime(playerid) { famMutedTime[playerid] -= 1; if(famMutedTime[playerid] < 0) { famMuted[playerid] = false; KillTimer(muteTimer[playerid]); } return 1; } forward OnGetIP(playerid, playername[]); public OnGetIP(playerid, playername[]) { if(cache_num_rows() != 1) return OnINIGetIP(playerid, playername); //if SQL doesn't exist try ini new str[128]; new IP[16]; cache_get_field_content(0, "IP", IP); format(str, sizeof(str), "%s's IP: %s", playername, IP); SendClientMessage(playerid, COLOR_WHITE, str); return 1; } forward OnINIGetIP(playerid, playername[]); public OnINIGetIP(playerid, playername[]) { new getip[256]; new str[128]; format(str, sizeof(str), "%s.ini", playername); if(dini_Exists(str)) { getip = dini_Get(str, "IP"); format(str, sizeof(str), "%s's IP: %s", playername, getip); SendClientMessage(playerid, COLOR_WHITE, str); return 1; } else { SendClientMessage(playerid, COLOR_GRAD2, "That player does not exist."); } return 1; } forward OnGetSerial(playerid, name[]); public OnGetSerial(playerid, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); new Serial[128]; new str[128]; cache_get_field_content(0, "Serial", Serial, sqlGameConnection, sizeof(Serial)); format(str, sizeof(str), "%s's serial: %s", name, Serial); SendClientMessage(playerid, COLOR_WHITE, str); return 1; } forward OnGetSQLID(playerid, name[]); public OnGetSQLID(playerid, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); new sqlid; sqlid = cache_get_field_content_int(0, "ID"); new str[128]; format(str, sizeof(str), "%s's mySQL row ID: %d", name, sqlid); SendClientMessage(playerid, COLOR_WHITE, str); return 1; } forward OnGetBanReason(playerid, playername[]); public OnGetBanReason(playerid, playername[]) { if(cache_num_rows() != 1) return 1; new reason[128], sqlID; cache_get_field_content(0, "BanReason", reason); sqlID = cache_get_field_content_int(0, "ID"); new str[128]; if(!strmatch(reason, "")) // if reason is null don't send that string { format(str, sizeof(str), "PlayerInfo: %s - %s", playername, reason); SendClientMessage(playerid, COLOR_WHITE, str); } new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT `Reason`, `Date` FROM `banlist` WHERE `userID` = %d AND `Banned` = 1 LIMIT 1", sqlID); mysql_pquery(sqlGameConnection, query, "OnGetBanReasonNew", "iis", playerid, sqlID, playername); return 1; } forward OnGetBanReasonNew(playerid, sqlID, playername[]); public OnGetBanReasonNew(playerid, sqlID, playername[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GRAD1, "That account isn't banned via the sql banlist."); new reason[128], date[128]; cache_get_field_content(0, "Reason", reason); cache_get_field_content(0, "Date", date); new str[128]; format(str, sizeof(str), "Banlist: %s [sqlID: %d] - %s", playername, sqlID, reason); SendClientMessage(playerid, COLOR_WHITE, str); format(str, sizeof(str), "Banned on %s", date); SendClientMessage(playerid, COLOR_WHITE, str); return 1; } forward OnOPrison(name[], time, reason[], playerid); public OnOPrison(name[], time, reason[], playerid) { if(cache_num_rows() != 1) return 1; new str[128]; format(str, sizeof(str), "{FF6347}SERVER: %s has been offline-prisoned by an Admin, Reason: %s", name, reason); SendClientMessageToAll(COLOR_WHITE, str); new query[390], adminprisoned[24]; adminprisoned = PlayerICName(playerid); { mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Gun0`= 0,`Gun1`= 0,`Gun2`= 0, `Gun3`= 0, `Gun4`= 0, `Gun5`= 0, `Gun6`= 0, `Gun7`= 0, `Gun8`= 0, `Gun9`= 0, `Gun10`= 0, `Gun11`= 0, `Gun12`= 0, `WantedLevel` = 0, `Jailed` = 3, `AdminJailed` = 1, `JailTime` = %i, `PrisonReason` = '%e', `PrisonedBy` = '%e' WHERE `name`='%e' LIMIT 1", (time * 60), reason, adminprisoned, name); mysql_pquery(sqlGameConnection, query); } SavePrison(name, PlayerName(playerid), reason, time); return 1; } stock NameChangeLog(OldName[], NewName[], ApprovedBy[], pIDAdmin, pIDPlayer) { new query[200], day, month, year, hour, minute, second, dstr[40]; gettime(hour, minute, second); getdate(year, month, day); format(dstr, sizeof(dstr), "%d/%d/%d %d:%d:%d", day, month, year, hour, minute, second); printf(dstr); mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `namechanges` (`OldName`, `NewName`, `ApprovedBy`, `Date`, `pID`, `pIDAdmin`) VALUES('%e', '%e', '%e', '%e', '%i' ,'%i')", OldName, NewName, ApprovedBy, dstr, pIDPlayer, pIDAdmin); mysql_pquery(sqlGameConnection, query); return 1; } stock SavePrison(userName[], adminName[], reason[], minutes){ new query[200], day, month, year, hour, minute, second, dstr[40]; gettime(hour, minute, second); getdate(year, month, day); format(dstr, sizeof(dstr), "%d/%d/%d %d:%d:%d", day, month, year, hour, minute, second); mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `prisons` (`User`, `Admin`, `Reason`, `Time`, `Date`) VALUES('%e', '%e', '%e', %d, '%e')", userName, adminName, reason, minutes, dstr); mysql_pquery(sqlGameConnection, query); return 1; } forward onPrisonChecks(playerid); public onPrisonChecks(playerid){ if(cache_num_rows() == 0)return SendClientMessage(playerid, COLOR_GREY, "There are no prisons to show for this player."); new rows, fields, dstr[1024], player[24], admin[24], reason[128], date[128], time; cache_get_data(rows, fields); format(dstr, sizeof(dstr), "Admin\t\tReason\t\tLength\t\tDate\n"); for(new i = 0; i < rows; i++) { cache_get_field_content(i, "User", player); cache_get_field_content(i, "Admin", admin); cache_get_field_content(i, "Reason", reason); time = cache_get_field_content_int(i, "Time"); cache_get_field_content(i, "Date", date); format(dstr, sizeof(dstr), "%s%s\t\t%s\t\t%d minutes\t\t%s\n", dstr, admin, reason, time, date); } new headerstr[128]; format(headerstr, sizeof(headerstr), "Prison Record - %s", player); ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST_HEADERS, headerstr, dstr, "Ok", ""); return 1; } forward onBansCheckedConf(playerid, name[]); public onBansCheckedConf(playerid, name[]){ if(cache_num_rows() == 0)return SendClientMessage(playerid, COLOR_GREY, "There are no bans to show for this player."); new rows, fields, dstr[1024], admin[24], reason[128]; cache_get_data(rows, fields); format(dstr, sizeof(dstr), "Player\t\tAdmin\t\tReason\n"); for(new i = 0; i < rows; i++){ cache_get_field_content(i, "BannedBy", admin); cache_get_field_content(i, "Reason", reason); format(dstr, sizeof(dstr), "%s%s\t\t%s\t\t%s\n", dstr, name, admin, reason); } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST_HEADERS, "Ban Record", dstr, "Ok", ""); return 1; } forward OnHTicket(playerid, name[]); public OnHTicket(playerid, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `hTicket` = 1 WHERE `Name` = '%e' LIMIT 1", name); mysql_pquery(sqlGameConnection, query); new str[128]; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been given a house ticket by %s.", name, PlayerICName(playerid)); ABroadCast(COLOR_LIGHTRED, str, 1); return 1; } forward OnOPFine(playerid, name[], percent, reason[]); public OnOPFine(playerid, name[], percent, reason[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); //Grab variables that we need... new money = cache_get_field_content_int(0, "Money"); new bank = cache_get_field_content_int(0, "Bank"); new str[128]; // Work out the amount... new tMoney = money + bank; new PercentMoney = (tMoney / 100) * percent; new sumMoney = floatround(PercentMoney); if(tMoney <= 0) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That player is already in debt."); if(sumMoney <= 0) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That player is already in debt."); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Money` = `Money` - %d WHERE `Name` = '%e' LIMIT 1", sumMoney, name); mysql_pquery(sqlGameConnection, query); format(str, sizeof(str), "{FF6347}SERVER: %s has been offline-fined $%d by %s, reason: %s", name, sumMoney, PlayerICName(playerid), reason); SendClientMessageToAll(COLOR_WHITE, str); return 1; } forward OnOMakeAdmin(playerid, rank, name[]); public OnOMakeAdmin(playerid, rank, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); new str[128]; new key = 1000 + random(8999); format(str, sizeof(str), "You have made %s a level %d admin (Security key: %d)", name, rank, key); if(rank <= 0) { format(str, sizeof(str), "You have removed %s from the admin team.", name); key = 0; rank = 0; } SendClientMessage(playerid, COLOR_LIGHTBLUE, str); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `AdminLevel` = %d, `SecurityKey` = %d WHERE `Name` = '%e' LIMIT 1", rank, key, name); mysql_pquery(sqlGameConnection, query); return 1; } forward OSetSQL(playerid, rank, name[]); public OSetSQL(playerid, rank, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); new str[128]; SendClientMessage(playerid, COLOR_LIGHTBLUE, str); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `ID` = %d WHERE `Name` = '%e' LIMIT 1", rank, name); mysql_pquery(sqlGameConnection, query); return 1; } forward OnUnban(playerid, name[]); public OnUnban(playerid, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); //if(cache_num_rows() != 1) return OnDiniUnban(playerid, name); new string[128], ip[16], query[160]; cache_get_field_content(0, "IP", ip); new band = cache_get_field_content_int(0, "Band"); new permbanned = cache_get_field_content_int(0, "PermBand"); if(band == 0 && permbanned == 0) // Not banned... Unban their IP anyway { format(string, sizeof(string), "unbanip %s", ip); SendRconCommand(string); SendRconCommand("reloadbans"); SendClientMessage(playerid, COLOR_GRAD2, "You have unbanned that player's IP and account."); //the other query can be removed after a while (don't need to set player stats) mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `banlist` INNER JOIN `players` ON `players`.`ID` = `banlist`.`userID` SET `banlist`.`Banned` = 0 WHERE `players`.`Name` = '%e'", name); mysql_pquery(sqlGameConnection, query); return 1; } format(string, sizeof(string), "unbanip %s", ip); SendRconCommand(string); SendRconCommand("reloadbans"); format(string, sizeof(string), "{FF0000}AdmWarning{FFFFFF}: %s has unbanned account '%s' and IP '%s'.", PlayerOOCName(playerid), name, ip); ABroadCast(COLOR_LIGHTRED, string, 1); mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Band` = 0, `BanReason`= 'None', `PermBand` = 0, `Warnings` = 0 WHERE `Name` = '%e' LIMIT 1", name); mysql_pquery(sqlGameConnection, query); //the other query can be removed after a while (don't need to set player stats) mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `banlist` INNER JOIN `players` ON `players`.`ID` = `banlist`.`userID` SET `banlist`.`Banned` = 0 WHERE `players`.`Name` = '%e'", name); mysql_pquery(sqlGameConnection, query); return 1; } forward OnOFine(playerid, name[], amount, reason[]); public OnOFine(playerid, name[], amount, reason[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Money` = `Money` - %d WHERE `Name` = '%e' LIMIT 1", amount, name); mysql_pquery(sqlGameConnection, query); new str[128]; format(str, sizeof(str), "{FF6347}SERVER: %s has been offline-fined $%s by %s, reason: %s", name, AddThousandsSeparators(amount), PlayerICName(playerid), reason); SendClientMessageToAll(COLOR_WHITE, str); return 1; } forward OnSetName(playerid, giveplayerid, newname[]); public OnSetName(playerid, giveplayerid, newname[]) { new rows, fields; new str[128]; cache_get_data(rows, fields); if(rows) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that name is taken."); // Set the name if(PlayerInfo[giveplayerid][pBizKey] != -1) //owns a business { new biz = PlayerInfo[giveplayerid][pBizKey]; strmid(BizInfo[biz][bOwner], newname, 0, strlen(newname), 255); // Government seized if(BizInfo[biz][bSeized] == 1) { format(str, sizeof(str), "{AFAFAF}%s{AFAFAF}\n{FFFFFF}This business has been seized by the\n{696969}Government", BizInfo[biz][bName]); } // Judicial Department seized else if(BizInfo[biz][bSeized] == 2) { format(str, sizeof(str), "{AFAFAF}%s{AFAFAF}\n{FFFFFF}This business has been seized by the\n{BA6103}Department of Justice", BizInfo[biz][bName]); } else { if(BizInfo[biz][bLocked] == 1) { format(str, sizeof(str), "{3D97E0}%s{FFFFFF}\nOwner: %s", BizInfo[biz][bName], BizInfo[biz][bOwner]); } else { format(str, sizeof(str), "{3D97E0}%s{FFFFFF}\nOwner: %s", BizInfo[biz][bName], BizInfo[biz][bOwner]); } } UpdateDynamic3DTextLabelText(Text3D:BizText[biz], COLOR_BIZTEXT, str); } if(PlayerInfo[giveplayerid][pFMember] != 255) //owns a family { new family = PlayerInfo[giveplayerid][pFMember]; if(strcmp(FamilyInfo[family][FamilyLeader], PlayerName(giveplayerid), true) == 0) { strmid(FamilyInfo[family][FamilyLeader], newname, 0, strlen(newname), 255); SaveFamilies(); } } if(PlayerInfo[giveplayerid][pRadioStation] != 255) //owns a radio station { new radio = PlayerInfo[giveplayerid][pRadioStation]; if(strcmp(radioInfo[radio][ownerName], PlayerName(giveplayerid), true) == 0) { strmid(radioInfo[radio][ownerName], newname, 0, strlen(newname), 255); SaveRadios(); } } format(str, sizeof(str), "Your name has been changed from %s to %s.", PlayerName(giveplayerid), newname); //To player SendClientMessage(giveplayerid, COLOR_YELLOW, str); format(str, sizeof(str), "You have renamed %s to %s.", PlayerName(giveplayerid), newname); //To admin SendClientMessage(playerid, COLOR_GREY, str); //log the namechange format(str, sizeof(str), "%s has renamed %s to %s.", PlayerName(playerid), PlayerName(giveplayerid), newname); StatLog(str); //update db new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Name` = '%e' WHERE `Name` = '%e' LIMIT 1", newname, PlayerName(giveplayerid)); mysql_pquery(sqlGameConnection, query); //send the query mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `newcrimes` SET `RealName` = '%e' WHERE `RealName` = '%e'", newname, PlayerName(giveplayerid)); mysql_pquery(sqlGameConnection, query); mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `tickets` SET `IssuerName` = '%e' WHERE `TicketIssuer` = '%d'", newname, PlayerInfo[giveplayerid][pID]); mysql_pquery(sqlGameConnection, query); if(!PlayerInfo[giveplayerid][pAdmin]) { NameChangeLog(PlayerName(giveplayerid), newname, PlayerName(playerid), PlayerInfo[playerid][pID], PlayerInfo[giveplayerid][pID]); } //update new name SetPlayerName(giveplayerid, newname); //reset the namechange request? strmid(NameChangeRequest[giveplayerid], "0", 0, 255); return 1; } forward OnAOUninvite(playerid, name[]); public OnAOUninvite(playerid, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That account doesn't exist."); new str[128]; format(str, sizeof(str), "* You have kicked %s from their faction.", name); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); new query[300]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Member`= 0,`Leader`= 0,`Rank`= 0,`Gun0`= 0,`Gun1`= 0,`Gun2`= 0, `Gun3`= 0, `Gun4`= 0, `Gun5`= 0, `Gun6`= 0, `Gun7`= 0, `Gun8`= 0, `Gun9`= 0, `Gun10`= 0, `Gun11`= 0, `Gun12`= 0, `Model`= 0, `Radio`= 0, `Handtazer`= 0, `tazergun`= 0, `HasMDC` = 0 WHERE `name`='%e'", name); mysql_pquery(sqlGameConnection, query); return 1; } forward OnOUninvite(playerid, name[]); public OnOUninvite(playerid, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That account doesn't exist."); if(cache_get_field_content_int(0, "Member") != PlayerInfo[playerid][pMember]) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That member does not belong to your faction."); if(cache_get_field_content_int(0, "Rank") > PlayerInfo[playerid][pRank] && cache_get_field_content_int(0, "Leader") > 0) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} You can't kick out other leaders."); new str[128]; format(str, sizeof(str), "* You have kicked %s from your faction.", name); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); new query[320]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Member`= 0,`Recruiter` = 0,`Leader`= 0,`Rank`= 0,`Gun0`= 0,`Gun1`= 0,`Gun2`= 0, `Gun3`= 0, `Gun4`= 0, `Gun5`= 0, `Gun6`= 0, `Gun7`= 0, `Gun8`= 0, `Gun9`= 0, `Gun10`= 0, `Gun11`= 0, `Gun12`= 0, `Model`= 20, `Radio`= 0, `Handtazer`= 0, `tazergun`= 0, `HasMDC` = 0 WHERE `Name`='%e'", name); mysql_pquery(sqlGameConnection, query); return 1; } forward OnFamilyOUninvite(playerid, name[]); public OnFamilyOUninvite(playerid, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That account doesn't exist."); if(cache_get_field_content_int(0, "FMember") != PlayerInfo[playerid][pFMember]) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That member does not belong to your family."); if(cache_get_field_content_int(0, "Rank") >= PlayerInfo[playerid][pRank] && !strmatch(FamilyInfo[PlayerInfo[playerid][pFMember]][FamilyLeader], PlayerICName(playerid))) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That player's rank is higher & you must be the leader to kick R6s."); new str[128]; format(str, sizeof(str), "* You have kicked %s from your family.", name); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); new query[300]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `FMember`= 255, `Rank`= 0 WHERE `Name`='%e'", name); mysql_pquery(sqlGameConnection, query); return 1; } //Door breaching for SAPD & DOC new ExplosiveObject[MAX_PLAYERS] = INVALID_OBJECT_ID; Timer:ExplodeExplosive( playerid, Float: X, Float: Y, Float: Z ) { CreateExplosion( X, Y, Z, 12, 1.0 ); if(ExplosiveObject[playerid]) { DestroyDynamicObjectEx( ExplosiveObject[playerid] );} ExplosiveObject[playerid] = INVALID_OBJECT_ID; for( new g; g < MAX_GATES; g++ ) { //gates if( !Gates[g][GateStatus] ) { if( IsPointInRangeOfPoint( Gates[g][GateX], Gates[g][GateY], Gates[g][GateZ], X, Y, Z, Gates[g][GateRadius] ) ) { MoveDynamicObject( Gates[g][GateObject], Gates[g][MveGateX], Gates[g][MveGateY], Gates[g][MveGateZ], Gates[g][GateSpeed], Gates[g][MveGateRotX], Gates[g][MveGateRotY], Gates[g][MveGateRotZ] ); Gates[g][GateStatus] = 1; } } } for( new d; d < MAX_DOORS; d++ ) { //doors if( IsPointInRangeOfPoint( Entrances[d][outside_x], Entrances[d][outside_y], Entrances[d][outside_z], X, Y, Z, 4.0 ) ) { if(strlen(Entrances[d][dpassword]) ) { DisabledDoors[d] = true; SetTimerEx( "Timer_EnableDoor", 60000, false, "d", d ); } } } for( new h; h < houseCount; h++ ) { //houses if( IsPointInRangeOfPoint( HouseInfo[h][hOutsideX], HouseInfo[h][hOutsideY], HouseInfo[h][hOutsideZ], X, Y, Z, 4.0 ) ) { HouseInfo[h][hLocked] = 0; } } return 1; } Timer:EnableDoor( doorid ) { DisabledDoors[doorid] = false; return 1; } public OnDynamicObjectMoved(objectid) { return 1; } public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz) { new Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ; GetDynamicObjectPos(objectid, oldX, oldY, oldZ); GetDynamicObjectRot(objectid, oldRotX, oldRotY, oldRotZ); if(response == EDIT_RESPONSE_FINAL) { if(GateAction[playerid] == EDITING_GATE_POSITION) { Gates[EditingGate[playerid]][GateX] = x; Gates[EditingGate[playerid]][GateY] = y; Gates[EditingGate[playerid]][GateZ] = z; Gates[EditingGate[playerid]][GateRotX] = rx; Gates[EditingGate[playerid]][GateRotY] = ry; Gates[EditingGate[playerid]][GateRotZ] = rz; if(Gates[EditingGate[playerid]][GateObject]) { DestroyDynamicObjectEx(Gates[EditingGate[playerid]][GateObject]); } Gates[EditingGate[playerid]][GateObject] = 0; // CreateGate(EditingGate[playerid]); GateAction[playerid] = EDITING_GATE_NONE; } if(GateAction[playerid] == EDITING_GATE_OPOSITION) { Gates[EditingGate[playerid]][MveGateX] = x; Gates[EditingGate[playerid]][MveGateY] = y; Gates[EditingGate[playerid]][MveGateZ] = z; Gates[EditingGate[playerid]][MveGateRotX] = rx; Gates[EditingGate[playerid]][MveGateRotY] = ry; Gates[EditingGate[playerid]][MveGateRotZ] = rz; if(x == Gates[EditingGate[playerid]][GateX] && y == Gates[EditingGate[playerid]][GateY] && z == Gates[EditingGate[playerid]][GateZ]) Gates[EditingGate[playerid]][MveGateX] = x + 0.01; //bug fix. if(Gates[EditingGate[playerid]][GateObject]) { DestroyDynamicObjectEx(Gates[EditingGate[playerid]][GateObject]); } CreateGate(EditingGate[playerid]); GateAction[playerid] = EDITING_GATE_NONE; } if(EditingCamera[playerid] == true) { EditingCamera[playerid] = false; CCTV[CameraID[playerid]][CCTVX] = x; CCTV[CameraID[playerid]][CCTVY] = y; CCTV[CameraID[playerid]][CCTVZ] = z; CCTV[CameraID[playerid]][CCTVRX] = rx; CCTV[CameraID[playerid]][CCTVRY] = ry; CCTV[CameraID[playerid]][CCTVRZ] = rz; if(CCTV[CameraID[playerid]][CCTVObject]) { DestroyDynamicObjectEx(CCTV[CameraID[playerid]][CCTVObject]); } CCTV[CameraID[playerid]][CCTVObject] = CreateDynamicObject(CCTV_OBJID, x, y, z, rx, ry, rz); UpdateCCTV(CameraID[playerid]); CameraID[playerid] = -1; } if(EditingFurnitureObjectID[playerid] != -1) //editing a furniture object { new index = EditingFurnitureID[playerid]; new houseid = EditingFurnitureHouseID[playerid]; if(GetPlayerVirtualWorld(playerid) != HouseInfo[houseid][hSQLID] && !IsPointInRangeOfPoint(x, y, z, HouseInfo[houseid][hOutsideX], HouseInfo[houseid][hOutsideY], HouseInfo[houseid][hOutsideZ], 10)) { SendClientMessage(playerid, COLOR_GREY, "You cannot place furniture over 10 metres from your house exit."); DeleteHouseFurniture(houseid, index); //reset editing vars EditingFurnitureID[playerid] = -1; EditingFurnitureHouseID[playerid] = -1; EditingFurnitureObjectID[playerid] = -1; return 0; } //save vars FurnitureInfo[houseid][index][f_Spawned] = 1; FurnitureInfo[houseid][index][f_X] = x; FurnitureInfo[houseid][index][f_Y] = y; FurnitureInfo[houseid][index][f_Z] = z; FurnitureInfo[houseid][index][f_RX] = rx; FurnitureInfo[houseid][index][f_RY] = ry; FurnitureInfo[houseid][index][f_RZ] = rz; SetDynamicObjectPos(FurnitureInfo[houseid][index][f_ObjectID], FurnitureInfo[houseid][index][f_X], FurnitureInfo[houseid][index][f_Y], FurnitureInfo[houseid][index][f_Z]); SetDynamicObjectRot(FurnitureInfo[houseid][index][f_ObjectID], FurnitureInfo[houseid][index][f_RX], FurnitureInfo[houseid][index][f_RY], FurnitureInfo[houseid][index][f_RZ]); //sql update new query[200]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `furniture` SET `X`=%f, `Y`=%f, `Z`=%f, `rX`=%f, `rY`=%f, `rZ`=%f, `Spawned`=1 WHERE `ID`=%d", FurnitureInfo[houseid][index][f_X], FurnitureInfo[houseid][index][f_Y], FurnitureInfo[houseid][index][f_Z], FurnitureInfo[houseid][index][f_RX], FurnitureInfo[houseid][index][f_RY], FurnitureInfo[houseid][index][f_RZ], FurnitureInfo[houseid][index][f_ID]); mysql_pquery(sqlGameConnection, query); //reset editing vars EditingFurnitureID[playerid] = -1; EditingFurnitureHouseID[playerid] = -1; EditingFurnitureObjectID[playerid] = -1; } } if(response == EDIT_RESPONSE_CANCEL) { SetDynamicObjectPos(objectid, oldX, oldY, oldZ); SetDynamicObjectRot(objectid, oldRotX, oldRotY, oldRotZ); GateAction[playerid] = EDITING_GATE_NONE; EditingCamera[playerid] = false; EditingFurnitureID[playerid] = -1; EditingFurnitureHouseID[playerid] = -1; EditingFurnitureObjectID[playerid] = -1; } return 1; } public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ) { new Float:oldX, Float:oldY, Float:oldZ, Float:oldRotX, Float:oldRotY, Float:oldRotZ; GetObjectPos(objectid, oldX, oldY, oldZ); GetObjectRot(objectid, oldRotX, oldRotY, oldRotZ); if(response == EDIT_RESPONSE_FINAL) { for(new i = 0; i < MAX_TAGS; i++) { if(objectid == Tags[i][TagObject]) { Tags[i][TagPosition][0] = fX; Tags[i][TagPosition][1] = fY; Tags[i][TagPosition][2] = fZ; Tags[i][TagRotation][0] = fRotX; Tags[i][TagRotation][1] = fRotY; Tags[i][TagRotation][2] = fRotZ; } } } if(response == EDIT_RESPONSE_CANCEL) { if(!playerobject) { SetObjectPos(objectid, oldX, oldY, oldZ); SetObjectRot(objectid, oldRotX, oldRotY, oldRotZ); for(new i = 0; i < MAX_TAGS; i++) { if(objectid == Tags[i][TagObject]) { DestroyObject(Tags[i][TagObject]); Tags[i][TagObject] = CreateObject(19482, fX, fY, fZ, 0.0, 0.0, 0.0); SetObjectMaterialText(Tags[i][TagObject], tagtext[playerid], 0, OBJECT_MATERIAL_SIZE_256x128, tagfont[playerid], 30, tagbold[playerid], 0xFF0000FF, 0, 0); Tags[i][TagPosition][0] = fX; Tags[i][TagPosition][1] = fY; Tags[i][TagPosition][2] = fZ; Tags[i][TagRotation][0] = fRotX; Tags[i][TagRotation][1] = fRotY; Tags[i][TagRotation][2] = fRotZ; break; } } } else { SetPlayerObjectPos(playerid, objectid, oldX, oldY, oldZ); SetPlayerObjectRot(playerid, objectid, oldRotX, oldRotY, oldRotZ); } } return 1; } stock GetMonthFromInt(number) { new month[20]; switch(number) { case 1: month = "January"; case 2: month = "February"; case 3: month = "March"; case 4: month = "April"; case 5: month = "May"; case 6: month = "June"; case 7: month = "July"; case 8: month = "August"; case 9: month = "September"; case 10: month = "October"; case 11: month = "November"; case 12: month = "December"; } return month; } forward OnCheckAccountLevel(playerid, name[]); public OnCheckAccountLevel(playerid, name[]) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_GREY, "Account doesn't exist."); new level = cache_get_field_content_int(0, "level"); new accountString[124]; format(accountString, sizeof(accountString), "Player Name: %s | Account Level: %i", name, level); SendClientMessage(playerid, COLOR_WHITE, accountString); return 1; } forward AAC(playerid, month, userid); public AAC(playerid, month, userid) { new total = 0; // the query in /activity already does the total sum of the minutes, so all we need to do is pull it total = cache_get_field_content_int(0, "SUM(Minutes)"); if(total == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "Error: No results found."); new str[128]; format(str, sizeof(str), "AAC: SQLID %d has spent %d hours in-game in %s (minutes: %d)", userid, total/60, GetMonthFromInt(month), total); SendClientMessage(playerid, COLOR_WHITE, str); return 1; } forward NewDVIPShit(playerid, month, userid); public NewDVIPShit(playerid, month, userid) { new total = 0; // the query in /activity already does the total sum of the minutes, so all we need to do is pull it total = cache_get_field_content_int(0, "SUM(Minutes)"); if(total == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "Error: No results found."); new str[128]; format(str, sizeof(str), "Name[%d]%s has spent %d hours in-game in %s (minutes: %d)", userid, PlayerOOCName(playerid), total/60, GetMonthFromInt(month), total); SendClientMessage(playerid, COLOR_WHITE, str); SendClientMessage(playerid, COLOR_WHITE, "If you want to be a Platinum VIP, you must spend 2400[40 hours] minutes on the server!"); return 1; } forward loadRespawnedVehicles(); public loadRespawnedVehicles() { new rows, fields; cache_get_data(rows, fields); if(rows) { new value[8]; for(new i = 0; i < rows; i++) { if(i == MAX_VEHICLES - 1) return printf("Max vehicle limit (1999) reached."); cache_get_field_content(i, "ID", value); sVehicleInfo[i][v_sqlid] = strval(value); cache_get_field_content(i, "model", value); sVehicleInfo[i][v_model] = strval(value); cache_get_field_content(i, "x", value); sVehicleInfo[i][v_x] = floatstr(value); cache_get_field_content(i, "y", value); sVehicleInfo[i][v_y] = floatstr(value); cache_get_field_content(i, "z", value); sVehicleInfo[i][v_z] = floatstr(value); cache_get_field_content(i, "rz", value); sVehicleInfo[i][v_rz] = floatstr(value); cache_get_field_content(i, "color1", value); sVehicleInfo[i][v_color1] = strval(value); cache_get_field_content(i, "color2", value); sVehicleInfo[i][v_color2] = strval(value); cache_get_field_content(i, "faction", value); sVehicleInfo[i][v_lockfeature] = cache_get_field_content_int(i, "lockfeature"); if(sVehicleInfo[i][v_lockfeature]) sVehicleInfo[i][v_lock] = 1; sVehicleInfo[i][v_faction] = strval(value); sVehicleInfo[i][v_family] = cache_get_field_content_int(i, "family"); sVehicleInfo[i][v_group] = cache_get_field_content_int(i, "group"); sVehicleInfo[i][v_id] = CreateVehicle(sVehicleInfo[i][v_model],sVehicleInfo[i][v_x],sVehicleInfo[i][v_y],sVehicleInfo[i][v_z],sVehicleInfo[i][v_rz],sVehicleInfo[i][v_color1],sVehicleInfo[i][v_color2],900); } } return 1; } respawn_pb(playerid) { switch(inPaintball[playerid]){ case 1: { // Main Paintball SetPlayerInterior(playerid, 10); SetPlayerVirtualWorld(playerid, 2); new rand = random(sizeof(paintBallArena)); SetPlayerPos(playerid, paintBallArena[rand][0], paintBallArena[rand][1], paintBallArena[rand][2]); SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, true); //inPaintball[playerid] = true; SetPlayerHealth(playerid, 100); SetPlayerArmour(playerid, 100); SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); pDeathState[playerid] = PLAYER_STATE_NORMAL; ResetPlayerWeapons(playerid); for(new i = 1; i < 6; i++) { GivePlayerAdminGun(playerid, pPaintGuns[playerid][i]); } } case 2: { // SAPD Paintball SetPlayerInterior(playerid, 10); SetPlayerVirtualWorld(playerid, 3); new rand = random(sizeof(paintBallArena)); SetPlayerPos(playerid, paintBallArena[rand][0], paintBallArena[rand][1], paintBallArena[rand][2]); SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, true); //inPaintball[playerid] = true; SetPlayerHealth(playerid, 100); SetPlayerArmour(playerid, 100); SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); pDeathState[playerid] = PLAYER_STATE_NORMAL; ResetPlayerWeapons(playerid); for(new i = 1; i < 6; i++) { GivePlayerAdminGun(playerid, pPaintGuns[playerid][i]); } } } return 1; } enter_pb(playerid) { if(IsPlayerRestricted(playerid)) return SendClientMessage(playerid, COLOR_GRAD1, "You can not do this at this time."); for(new i = 0; i < 12; i++) { saveWeapon[playerid][i] = PlayerInfo[playerid][(pGun0 + pInfo:i)]; } new str[128]; pbKills[playerid] = 0; new p, highstr[100]; if(IsPlayerInRangeOfPoint(playerid, 3, 1088.75, -1715.45, 1136.46)){ // SAPD Paintball SetPlayerInterior(playerid, 10); SetPlayerVirtualWorld(playerid, 3); inPaintball[playerid] = 2; p = GetPaintballLeader(inPaintball[playerid]); if(p != INVALID_PLAYER_ID) format(highstr, 100, "~r~Paintball Leader~n~~b~%s (%d kills)", PlayerICName(p), pbKills[p]); else format(highstr, 100, "~r~Paintball Leader~n~~b~Nobody"); TextDrawSetString(PaintballLeaderTD2, highstr); TextDrawShowForPlayer(playerid, PaintballLeaderTD2); new rand = random(sizeof(paintBallArena)); SetPlayerPos(playerid, paintBallArena[rand][0], paintBallArena[rand][1], paintBallArena[rand][2]); SetCameraBehindPlayer(playerid); GetPlayerHealth(playerid, pbHealth[playerid]); GetPlayerArmour(playerid, pbArmor[playerid]); TogglePlayerControllable(playerid, true); SetPlayerHealth(playerid, 100); SetPlayerArmour(playerid, 100); format(str, sizeof(str), "{FFFF00}[PAINTBALL] %s has joined the arena.", PlayerICName(playerid)); SendPaintballMessage(playerid, -1, str); ResetPlayerWeapons(playerid); for(new i = 1; i < 6; i++) { GivePlayerAdminGun(playerid, pPaintGuns[playerid][i]); } } else if(IsPlayerInRangeOfPoint(playerid, 3, 1310.0685, -1367.6198, 13.5382)) { // Main Paintball SetPlayerInterior(playerid, 10); SetPlayerVirtualWorld(playerid, 2); inPaintball[playerid] = 1; p = GetPaintballLeader(inPaintball[playerid]); if(p != INVALID_PLAYER_ID) format(highstr, 100, "~r~Paintball Leader~n~~b~%s (%d kills)", PlayerICName(p), pbKills[p]); else format(highstr, 100, "~r~Paintball Leader~n~~b~Nobody"); TextDrawSetString(PaintballLeaderTD, highstr); TextDrawShowForPlayer(playerid, PaintballLeaderTD); new rand = random(sizeof(paintBallArena)); SetPlayerPos(playerid, paintBallArena[rand][0], paintBallArena[rand][1], paintBallArena[rand][2]); SetCameraBehindPlayer(playerid); GetPlayerHealth(playerid, pbHealth[playerid]); GetPlayerArmour(playerid, pbArmor[playerid]); TogglePlayerControllable(playerid, true); SetPlayerHealth(playerid, 100); SetPlayerArmour(playerid, 100); format(str, sizeof(str), "{FFFF00}[PAINTBALL] %s has joined the arena.", PlayerICName(playerid)); SendPaintballMessage(playerid, -1, str); ResetPlayerWeapons(playerid); for(new i = 1; i < 6; i++) { GivePlayerAdminGun(playerid, pPaintGuns[playerid][i]); } } return 1; } stock SendPaintballMessage(fromplayerid, colour, string[]) { foreach( new i: Player ){ if(inPaintball[i] == inPaintball[fromplayerid]) SendClientMessage(i, colour, string); } return 1; } stock ClearPaintballGuns(playerid) { for(new i = 1; i < 6; i++) { pPaintGuns[playerid][i] = INVALID_WEAPON_ID; } format(PaintBall[playerid][pbWeaponName1], 32, "None"); format(PaintBall[playerid][pbWeaponName2], 32, "None"); format(PaintBall[playerid][pbWeaponName3], 32, "None"); format(PaintBall[playerid][pbWeaponName4], 32, "None"); format(PaintBall[playerid][pbWeaponName5], 32, "None"); return 1; } GetPaintballLeader(type) { new highestKillsID = INVALID_PLAYER_ID, highestKills = 0; foreach(new i: Player) { if(inPaintball[i] == type && (pbKills[i] > highestKills)) { highestKillsID = i; highestKills = pbKills[i]; } } return highestKillsID; } UpdatePaintBallLeader(type){ new p = GetPaintballLeader(type), highstr[128]; switch(type){ case 1: { // main paintball if(p != INVALID_PLAYER_ID) format(highstr, 100, "~r~Paintball Leader~n~~b~%s (%d kills)", PlayerICName(p), pbKills[p]); else format(highstr, 100, "~r~Paintball Leader~n~~b~Nobody"); TextDrawSetString(PaintballLeaderTD, highstr); } case 2: { // SAPD paintball if(p != INVALID_PLAYER_ID) format(highstr, 100, "~r~Paintball Leader~n~~b~%s (%d kills)", PlayerICName(p), pbKills[p]); else format(highstr, 100, "~r~Paintball Leader~n~~b~Nobody"); TextDrawSetString(PaintballLeaderTD2, highstr); } } return 1; } // Called when the player is c-bugging Timer:OnPlayerCBug(playerid, bool:unfreezePlayer) { if(unfreezePlayer) return TogglePlayerControllable(playerid, true); else { displayCenterHUDInfo(playerid, "~r~Please do not ~w~c-bug!", 2); TogglePlayerControllable(playerid, false); SetTimerEx("Timer_OnPlayerCBug", 500, false, "ib", playerid, true); } return 1; } do_call(playerid, phonenumb) { if(PlayerInfo[playerid][pJailed] == 2) { if(!IsPlayerInRangeOfPoint(playerid, 2.0, 185.3808, 1923.9442, 17.7778)) { SendClientMessage(playerid, COLOR_GRAD2, "You are not at the prison payphone."); return 1; } } if(PlayerInfo[playerid][pHospital] != 0 || PlayerTied[playerid] != 0 || PlayerCuffed[playerid] != 0 || PlayerTazed[playerid] != 0) { SendClientMessage(playerid, COLOR_GRAD2, "You are unable to use a phone at this time."); return 1; } new str[128]; new payPhoneId = IsPlayerNearPayPhone(playerid); if(PlayerInfo[playerid][pPnumber] == 0 && payPhoneId == -1) { SendClientMessage(playerid, COLOR_GRAD2, "You don't have a cell phone. You can buy one from any 24/7."); return 1; } if(payPhoneId >= 0) { if(usePayphone[playerid] == -1 && payPhone[payPhoneId][inUse]) { return SendClientMessage(playerid, COLOR_GRAD2, "This payphone is currently in use by another player."); } } if(PhoneOffline[playerid]) return SendClientMessage(playerid, COLOR_GREY, "Your cellphone is currently turned off, use /togphone."); if(payPhoneId == -1) { format(str, sizeof(str), "* %s takes out a cellphone. *", PlayerICName(playerid)); attachPhoneToPlayer(playerid); } else { GiveMoney(playerid, -25); format(str, sizeof(str), "~r~$-%d", 25); GameTextForPlayer(playerid, str, 5000, 1); format(str, sizeof(str), "* %s places a call at the payphone. *", PlayerICName(playerid)); payPhone[payPhoneId][inUse] = 1; usePayphone[playerid] = payPhoneId; } if(!cellMuted[playerid]) { playLocalSound(playerid, CELLPHONE_DIAL, 2.0, 400); } ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); if(phonenumb == 911) { if(payPhoneId == -1) { SendClientMessage(playerid, COLOR_WHITE, "HINT: You now use T to talk on your cellphone, type (/h)angup to hang up."); SendClientMessage(playerid, COLOR_YELLOW, "(cellphone) 911 Operator: Hello, which service do you require, police, paramedic or fire?"); Mobile[playerid] = 911; } else { SendClientMessage(playerid, COLOR_GRAD2, "Your call was rejected."); payPhone[payPhoneId][inUse] = 0; usePayphone[playerid] = -1; } return 1; } if(phonenumb == PlayerInfo[playerid][pPnumber] && usePayphone[playerid] == -1) { SendClientMessage(playerid, COLOR_GRAD2, "You just get a busy tone..."); return 1; } if(Mobile[playerid] != 999) { SendClientMessage(playerid, COLOR_GRAD2, "You are already on a call..."); return 1; } foreach( new i: Player ) { if(PlayerInfo[i][pPnumber] == phonenumb && phonenumb != 0) { Mobile[playerid] = i; if(PhoneOffline[i] > 0) { SendClientMessage(playerid, COLOR_GREY, "That players phone is currently offline."); Mobile[playerid] = 999; payPhone[payPhoneId][inUse] = 0; usePayphone[playerid] = -1; return 1; } if(PlayerInfo[i][pHospital] != 0 || PlayerTied[i] != 0 || PlayerCuffed[i] != 0 || PlayerInfo[playerid][pJailed] != 0 || PlayerTazed[i] != 0) { SendClientMessage(playerid, COLOR_GRAD2, "That player is unable to speak at this time."); Mobile[playerid] = 999; payPhone[payPhoneId][inUse] = 0; usePayphone[playerid] = -1; return 1; } if(Mobile[i] == 999) { if(payPhoneId == -1)format(str, sizeof(str), "Your mobile phone is ringing. Type (/p)ickup to answer. CallerID: %s", PlayerICName(playerid)); else format(str, sizeof(str), "%s", "Your mobile phone is ringing. Type (/p)ickup to answer."); if(!cellMuted[i]) { playLocalSound(i, CELLPHONE_RING, 6.0, 0); } SendClientMessage(i, COLOR_YELLOW, str); format(str, sizeof(str), "* %s's phone begins to ring. *", PlayerICName(i)); SendClientMessage(playerid, COLOR_WHITE, "HINT: You now use T to talk on your cellphone, type (/h)angup to hang up."); ProxDetector(30.0, i, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); CellTime[playerid] = 1; if(PlayerInfo[playerid][pJailed] == 2) { TogglePlayerControllable(playerid, false); } return 1; } else { SendClientMessage(playerid, COLOR_GRAD2, "You just get a busy tone..."); if(usePayphone[playerid] != -1) { payPhone[payPhoneId][inUse] = 0; usePayphone[playerid] = -1; } Mobile[playerid] = 999; return 1; } } } SendClientMessage(playerid, COLOR_GRAD2, "You just get a Busy tone..."); if(usePayphone[playerid] != -1) { payPhone[payPhoneId][inUse] = 0; usePayphone[playerid] = -1; } Mobile[playerid] = 999; return 1; } stock OnHangup(playerid, hanguptxt[]) { SendClientMessage(playerid, COLOR_YELLOW, hanguptxt); SendClientMessage(playerid, COLOR_GRAD2, "They hung up..."); Mobile[playerid] = 999; return 1; } stock IsPlayerNearPayPhone(playerid) { for(new i = 0; i < sizeof(payPhone); i++) { if(IsPlayerInRangeOfPoint(playerid, 1.1, payPhone[i][pPhoneX], payPhone[i][pPhoneY], payPhone[i][pPhoneZ]) && payPhone[i][pPhoneInt] == GetPlayerInterior(playerid) && payPhone[i][pPhoneVW] == GetPlayerVirtualWorld(playerid)) { return i; } } return -1; } stock SendMessage(playerid, phonenumb, result[]) { if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_GREY, "You havent logged in yet."); if(PlayerInfo[playerid][pHospital] != 0 || IsPlayerRestricted(playerid)) return SendClientMessage(playerid, COLOR_GRAD1, "You can not do this at this time."); if(PlayerInfo[playerid][pPnumber] == 0) { SendClientMessage(playerid, COLOR_GRAD2, "You don't have a cell phone. You can buy one from any 24/7."); return 1; } if(CheckForJammer(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Phone signal has been jammed."); new str[128]; format(str, sizeof(str), "* %s takes out a cellphone.", PlayerICName(playerid)); //ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); SetPlayerChatBubble(playerid, str, COLOR_PURPLE, 20.0, 5000); foreach( new i: Player ) { if(PlayerInfo[i][pPnumber] == phonenumb && phonenumb != 0) { if(Blocked[i][Number1] == PlayerInfo[playerid][pPnumber] || Blocked[i][Number2] == PlayerInfo[playerid][pPnumber] || Blocked[i][Number3] == PlayerInfo[playerid][pPnumber] || Blocked[playerid][Number4] == PlayerInfo[playerid][pPnumber] || Blocked[i][Number5] == PlayerInfo[playerid][pPnumber] || CheckForJammer(i)) { SendClientMessage(playerid, COLOR_GREY, "That players phone is currently offline."); return 1; } if(PhoneOffline[i] > 0) { SendClientMessage(playerid, COLOR_GREY, "That players' phone is offline."); return 1; } if(PlayerInfo[i][pHospital] != 0 || PlayerTied[i] != 0 || PlayerCuffed[i] != 0 || PlayerTazed[i] != 0 || PlayerInfo[playerid][pJailed] != 0) { SendClientMessage(playerid, COLOR_GRAD2, "That player is unable to speak at this time."); return 1; } if(callerID[playerid] == false)format(str, sizeof(str), "SMS (%s | %d): %s", PlayerICName(playerid), PlayerInfo[playerid][pPnumber], result); else format(str, sizeof(str), "SMS: %s, Sender: Unknown (%d)", result, PlayerInfo[playerid][pPnumber]); SendClientMessage(playerid, COLOR_WHITE, "Text Message Delivered"); SendClientMessage(i, COLOR_YELLOW, str); SendClientMessage(playerid, COLOR_YELLOW, str); format(str, sizeof(str), "~r~$-%d", 25); GameTextForPlayer(playerid, str, 5000, 1); GiveMoney(playerid, -25); PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0); Mobile[playerid] = 999; ReplyTo[i] = PlayerInfo[playerid][pPnumber]; if(!cellMuted[playerid]) { playLocalSound(playerid, SMS_SENT, 2.0, 0); } if(!cellMuted[i]) { playLocalSound(i, SMS_RECIEVED, 2.0, 0); } if(beingSpectatedID[playerid] != INVALID_PLAYER_ID) { if(IsPlayerConnected(beingSpectatedID[playerid]) && SpectatingID[beingSpectatedID[playerid]] == playerid) { format(str, sizeof(str), "[AdmWrn] %s SMS'd %s (ID %d): %s", PlayerICName(playerid), PlayerICName(i), i, result); SendClientMessage(beingSpectatedID[playerid], COLOR_YELLOW, str); } } new year, month, day; getdate(year, month, day); new hour, minute, second; gettime(hour, minute, second); hour = FixHour(hour); format(str, sizeof(str), "/SMS %s SMS'd %s (ID %d): %s at %02d %s %02d:%02d:%02d", PlayerOOCName(playerid), PlayerOOCName(i), i, result, day, GetMonthFromInt(month), hour, minute, second); logswrite("sms.log", str); return 1; } } SendClientMessage(playerid, COLOR_GRAD2, "Message Delivery Failed..."); return 1; } stock PickupCall(playerid) { if(IsPlayerRestricted(playerid)) return SendClientMessage(playerid, COLOR_GRAD1, "You can not do this at this time."); if(Mobile[playerid] != 999 && usePayphone[playerid] == -1) { SendClientMessage(playerid, COLOR_GRAD2, "You are already on a call."); return 1; } if(usePayphone[playerid] > -1) { SendClientMessage(playerid, Mobile[playerid], "They hung up..."); if(!cellMuted[Mobile[playerid]]) { playLocalSound(Mobile[playerid], SMS_RECIEVED, 2.0, 0); } payPhone[usePayphone[playerid]][inUse] = 0; usePayphone[playerid] = -1; return 1; } new str[128]; foreach( new i: Player ) { if(Mobile[i] == playerid) { Mobile[playerid] = i; //caller connecting if(onCellPhone[i] == false) { if(!cellMuted[playerid]) { playLocalSound(playerid, SMS_SENT, 2.0, 800); } GiveMoney(i, -25); format(str, sizeof(str), "~r~Call costs: ~w~$%d", 25); GameTextForPlayer(i, str, 5000, 1); SendClientMessage(i, COLOR_GRAD2, "They picked up..."); format(str, sizeof(str), "* %s answers their cellphone.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); } attachPhoneToPlayer(playerid); onCellPhone[i] = true; onCellPhone[playerid] = true; } } return 1; } stock HangupCall(playerid) { new caller = Mobile[playerid]; new str[128]; if((Mobile[playerid] >= 911 && Mobile[playerid] <= 914) || Mobile[playerid] == 420 || beingCalled[playerid]) { detachPhoneFromPlayer(playerid); SendClientMessage(playerid, COLOR_GREY, "You hung up."); Mobile[playerid] = 999; beingCalled[playerid] = false; return 1; } if(IsPlayerConnected(caller)) { if(caller < 999) { if(usePayphone[playerid] == -1) detachPhoneFromPlayer(playerid); if(usePayphone[caller] > -1) { payPhone[usePayphone[caller]][inUse] = 0; usePayphone[caller] = -1; } else { detachPhoneFromPlayer(caller); } if(!cellMuted[caller]) { playLocalSound(caller, SMS_RECIEVED, 2.0, 0); } if(!cellMuted[playerid]) { playLocalSound(playerid, SMS_RECIEVED, 2.0, 0); } CellTime[caller] = 0; CellTime[playerid] = 0; SendClientMessage(caller, COLOR_GRAD2, "They hung up..."); SendClientMessage(playerid, COLOR_GRAD2, "You hung up."); onCellPhone[playerid] = false; onCellPhone[caller] = false; Mobile[caller] = 999; beingCalled[playerid] = false; detachPhoneFromPlayer(playerid); } Mobile[playerid] = 999; CellTime[playerid] = 0; } if(usePayphone[playerid] > -1) { format(str, sizeof(str), "* %s hung up the payphone.", PlayerICName(playerid)); payPhone[usePayphone[playerid]][inUse] = 0; usePayphone[playerid] = -1; } else { format(str, sizeof(str), "* %s puts away their cellphone.", PlayerICName(playerid)); } //ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); SetPlayerChatBubble(playerid, str, COLOR_PURPLE, 20.0, 5000); detachPhoneFromPlayer(playerid); return 1; } new Float:cameraLookat[4]; stock GetVehHWTime(p) { new l = PlayerInfo[p][pJackSkill]; if(l >= 400) return 4; else if(l >= 200) return 6; else if(l >= 100) return 10; else if(l >= 50) return 15; else return 20; } stock GetVehNeedHW(veh, p) { if(veh == INVALID_VEHICLE_ID) { return 0; } if(veh != GetPlayerVehicleID(p)) { return 0; } if(sVehicleInfo[veh][v_faction]) { return 0; } return 0; } forward OnOAddress(playerid); public OnOAddress(playerid) { if(cache_num_rows() == 1) { new HouseID = cache_get_field_content_int(0, "pHouseID"); if(HouseID == 0) return SendClientMessage(playerid, COLOR_GREY, "That player doesn't own a house."); if(CP[playerid] != CHECKPOINT_NONE) { CP[playerid] = CHECKPOINT_NONE; DisablePlayerCheckpointEx(playerid); } SetPlayerCheckpointEx(playerid, HouseInfo[HouseID][hOutsideX], HouseInfo[HouseID][hOutsideY], HouseInfo[HouseID][hOutsideZ], 2.0); CP[playerid] = CHECKPOINT_ADDRESS; SendClientMessage(playerid, COLOR_WHITE, "That player's house has been marked on the map (red dot)."); } else return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); return 1; } forward OnNamechange(playerid, name[]); public OnNamechange(playerid, name[]) { if(cache_num_rows() == 1) return SendClientMessage(playerid, COLOR_GREY, "That name is already registered."); PlayerInfo[playerid][pReqNC] = 90; new str[128]; for(new i = 0; i < sizeof(SurnameInfo); i++){ if(strcmp(SurnameInfo[i][Surname], GetPlayerSurnameStr(name)) == 0 && SurnameInfo[i][Taken] == 1){ format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s is a restricted surname.", name); SendAdminMessage(COLOR_WHITE, str); new str2[128]; format(str2, sizeof(str2), "{FF0000}AdmWarning{FFFFFF}: %s[%d] has requested a namechange to %s, use /approvename or /denyname to respond.", PlayerOOCName(playerid), playerid, name); SendAdminMessage(COLOR_WHITE, str2); strmid(NameChangeRequest[playerid], name, 0, strlen(name), 255); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Your name change request was sent to the administrators, please be patient, they might be busy."); return 1; } else { strmid(NameChangeRequest[playerid], name, 0, strlen(name), 255); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Your name change request was sent to the administrators, please be patient."); format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s[%d] has requested a namechange to %s, use /approvename or /denyname to respond.", PlayerOOCName(playerid), playerid, name); SendAdminMessage(COLOR_WHITE, str); return 1; } } return 1; } forward OnUndercoverNamechange(playerid, name[], level); public OnUndercoverNamechange(playerid, name[], level) { printf("Called OnUndercoverNamechange"); new str[128]; if(cache_num_rows() == 1) {SendClientMessage(playerid, COLOR_GREY, "That name is already registered."); strmid(groupNamechangeRequest[playerid], "0", 0, 255); return 1;} else { format(str, sizeof(str), "You have requested the name \"%s\" and level %d", name, level); SendClientMessage(playerid, COLOR_GREY, str); } new str2[128]; format(str2, sizeof(str2), "%s[%d] wants to change their name to %s with level %d. /approvehnc [player] to confirm.", PlayerICName(playerid), playerid, name, level); foreach(new p: Player) { if(PlayerInfo[playerid][pMember] == FACTION_FBI) { // For FBI if(PlayerInfo[p][pLeader] == FACTION_FBI) { SendClientMessage(p, COLOR_LIGHTBLUE, str2); } } else if(PlayerInfo[playerid][pGroup] == GROUP_HITMAN) { // So HA R4's can see it if( (PlayerInfo[p][pGroupRank] >= 4 || IsGroupLeader(p)) && PlayerInfo[p][pGroup] == GROUP_HITMAN) { SendClientMessage(p, COLOR_LIGHTBLUE, str2); } } else { // For groups if((PlayerInfo[playerid][pGroup] == PlayerInfo[p][pGroup]) && IsGroupLeader(p)) { SendClientMessage(p, COLOR_LIGHTBLUE, str2); } } } return 1; } IsFallingFromInterior(playerid) { if(IsPlayerInAnyVehicle(playerid)) return false; new Float:playerPos[3]; GetPlayerPos(playerid, playerPos[0], playerPos[1], playerPos[2]); if( !IsPlayerMoving(playerid) || !IsPlayerFalling(playerid) || PlayerInfo[playerid][pJailed] || playerPos[2] < 800 ) return false; return true; } //=============================================== Timer:GetResponseKit(playerid) { new Float:pAngle; GetPlayerFacingAngle(playerid, pAngle); SetPlayerFacingAngle(playerid, pAngle +180); RapidResKit[playerid] = CreateObject(1789, 0, 0, 0, 0, 0, 0); AttachObjectToPlayer(RapidResKit[playerid], playerid, 0.00, 1, -0.5, 0, 0, -90); RapidResKitActive[playerid] = 1; HasARapidResKit[playerid] = 1; return 1; } forward MedicCountOffline(playerid); public MedicCountOffline(playerid) { new rows, fields; cache_get_data(rows, fields); if(!rows) return SendClientMessage(playerid, COLOR_GREY, "No counts above 0."); SendClientMessage(playerid, COLOR_DOCTOR, "Offline Medic Ranks"); new name[MAX_PLAYER_NAME], count, rank; for(new i = 0; i < rows; i++) { cache_get_field_content(i, "Name", name); if(IsPlayerConnected(GetPlayerIDFromName(name))) continue; count = cache_get_field_content_int(i, "MedicCount"); rank = cache_get_field_content_int(i, "Rank"); new str[128]; format(str, sizeof(str), "Name: %s | Rank: %s | Count: %d", name, rankNames_FMD[ rank ], count); SendClientMessage(playerid, COLOR_DOCTOR, str); } return 1; } stock IsPlayerNearSector9HQ(playerid) { return (IsPlayerInRangeOfPoint(playerid, 10.0, HQ_SECTOR9)); } stock IsPlayerNearHitmenHQ(playerid) { return IsPlayerInRangeOfPoint(playerid, 10.0, HQ_HITMAN); } stock IsPlayerNearSyndicateHQ(playerid) { return (IsPlayerInRangeOfPoint(playerid, 10.0, HQ_SYNDICATE)); } stock IsPlayerNearCJNGHQ(playerid) { return (IsPlayerInRangeOfPoint(playerid, 10.0, HQ_CJNG)); } stock IsPlayerNearFBIHQ(playerid) { return( IsPlayerInRangeOfPoint(playerid, 5.0, 1041.5110, 1521.4526, 9010.0781) || IsPlayerInRangeOfPoint(playerid, 5.0, 225.7773, 122.7064, 999.0639) ); } stock IsPlayerNearSAPDHQ(playerid){ if( IsPlayerInRangeOfPoint(playerid, 2, 1533.3926,-1674.6483,1104.7809) || IsPlayerInRangeOfPoint(playerid, 2, 2731.6145,-2480.5967,1088.8622) || IsPlayerInRangeOfPoint(playerid, 2, 255.3, 77.4, 1003.6) || IsPlayerInRangeOfPoint(playerid, 2, 1927.1150, 1872.7283, 30.9359) || IsPlayerInRangeOfPoint(playerid, 2, -2409.1729, 2047.1067, 991.6563) || IsPlayerInRangeOfPoint(playerid, 2, -1137.5980, -991.1368, 9999.2588) ) return 1; return 0; } SetPlayerMasked(playerid, bool:doMasked) { PlayerInfo[playerid][pMask] = convertBool(doMasked); foreach(new i: Player) { ShowPlayerNameTagForPlayer(i, playerid, convertBool(!doMasked)); } } //============================================================================== CreateVIPCar(slot) { if(VipCars[slot]) DestroyVehicle(VipCars[slot]); switch(slot) { // Bronze // case 0: VipCars[slot] = CreateVehicleEx(560, 1531.19995117, -1478.80004883, 9.30000019, 0.00000000, 123, 1, 900); case 1: VipCars[slot] = CreateVehicleEx(560, 1528.09960938, -1478.79980469, 9.30000019, 0.00000000, 123, 39, 900); case 2: VipCars[slot] = CreateVehicleEx(581, 1512.09997559, -1478.59997559, 9.19999981, 0.00000000, 123, 1, 900); case 3: VipCars[slot] = CreateVehicleEx(581, 1510.50000000, -1478.59997559, 9.19999981, 0.00000000, 123, 1, 900); case 4: VipCars[slot] = CreateVehicleEx(559, 1521.50000000, -1478.80004883, 9.30000019, 0.00000000, 123, 1, 900); case 5: VipCars[slot] = CreateVehicleEx(559, 1518.09997559, -1478.80004883, 9.30000019, 0.00000000, 123, 1, 900); case 6: VipCars[slot] = CreateVehicleEx(559, 1514.90002441, -1478.80004883, 9.30000019, 0.00000000, 123, 1, 900); case 7: VipCars[slot] = CreateVehicleEx(560, 1524.80004883, -1478.90002441, 9.30000019, 0.00000000, 123, 39, 900); // Silver // case 8: VipCars[slot] = CreateVehicleEx(522, 1511.30004883, -1474.59997559, 9.19999981, 268.00000000, 35, 35, 900); case 9: VipCars[slot] = CreateVehicleEx(522, 1511.30004883, -1473.69995117, 9.19999981, 267.99499512, 35, 35, 900); case 10: VipCars[slot] = CreateVehicleEx(522, 1511.30004883, -1472.69995117, 9.19999981, 267.99499512, 35, 35, 900); case 11: VipCars[slot] = CreateVehicleEx(603, 1512.40002441, -1470.50000000, 9.30000019, 270.00000000, 35, 1, 900); case 12: VipCars[slot] = CreateVehicleEx(451, 1512.30004883, -1467.50000000, 9.30000019, 270.00000000, 35, 36, 900); // Gold // case 13: VipCars[slot] = CreateVehicleEx(411, 1511.40002441, -1460.00000000, 9.31486607, 180.00000000, 6, 1, 900); case 14: VipCars[slot] = CreateVehicleEx(411, 1514.59997559, -1460.00000000, 9.31486607, 180.00000000, 6, 125, 900); case 15: VipCars[slot] = CreateVehicleEx(411, 1517.69995117, -1459.90002441, 9.31486607, 180.00000000, 6, 125, 900); case 16: VipCars[slot] = CreateVehicleEx(541, 1520.59997559, -1459.80004883, 9.19999981, 180.00000000, 6, -1, 900); case 17: VipCars[slot] = CreateVehicleEx(541, 1523.50000000, -1459.80004883, 9.19999981, 180.00000000, 6, -1, 900); case 18: VipCars[slot] = CreateVehicleEx(541, 1526.30004883, -1459.80004883, 9.19999981, 180.00000000, 6, -1, 900); // Diamond // case 19: VipCars[slot] = CreateVehicleEx(562,1107.2806,-1877.1764,13.2064,179.5505,3,3, 900); case 20: VipCars[slot] = CreateVehicleEx(415,1111.9376,-1877.1714,13.3396,178.3269,3,3, 900); case 21: VipCars[slot] = CreateVehicleEx(415,1121.2952,-1876.9077,13.3205,181.9011,3,3, 900); case 22: VipCars[slot] = CreateVehicleEx(562,1125.4487,-1876.9957,13.2084,177.9896,3,3, 900); case 23: VipCars[slot] = CreateVehicleEx(434,1150.7235,-1879.3307,13.4778,175.4065,12,12, 900); case 24: VipCars[slot] = CreateVehicleEx(434,1155.4962,-1879.4285,13.5226,177.0588,2,2, 900); case 25: VipCars[slot] = CreateVehicleEx(535,1173.0529,-1888.3988,13.5066,88.2294,3,3, 900); case 26: VipCars[slot] = CreateVehicleEx(535,1180.5245,-1888.5300,13.5002,88.8510,3,3, 900); case 27: VipCars[slot] = CreateVehicleEx(495,1203.2216,-1879.8966,14.0146,177.3119,3,1, 900); case 28: VipCars[slot] = CreateVehicleEx(495,1208.1833,-1879.8411,13.8512,181.8271,3,1, 900); case 29: VipCars[slot] = CreateVehicleEx(515,1147.6578,-1887.6355,14.5881,87.4716,1,3, 900); case 30: VipCars[slot] = CreateVehicleEx(487,1145.9408,-1870.9009,26.5314,312.8899,3,3, 900); } return 1; } //To be converted to ZCMD & moved to /commands.inc ~ Desmond #include "..\gamemodes\todo\OnPlayerCommandReceived.inc" //============================================================================== IsPlayerInRangeOfPlayer(Float:radi, playerid, targetid) { if(IsPlayerConnected(playerid) && IsPlayerConnected(targetid)) { if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(targetid)) { new Float:pos[3]; GetPlayerPos(targetid, pos[0], pos[1], pos[2]); if(IsPlayerInRangeOfPoint(playerid, radi, pos[0], pos[1], pos[2])) { return 1; } } } return 0; } //============================================================================== stock CallMedicalBackup(playerid) { if(PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] == 0 && PlayerInfo[playerid][pMask] == 0) return SendClientMessage(playerid, COLOR_GRAD1, "You need to be masked to request backup from other factions as S9."); if(PlayerInfo[playerid][pGroup] == GROUP_S9) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if((PlayerInfo[i][pMember] == 4 && !CheckForJammer(i)) || (FakeFaction[i] == 4 && !CheckForJammer(i))) { if(FakeFaction[playerid] == 1) SetPlayerMarkerForPlayer(i, playerid, 0x2641FEFF); else if(FakeFaction[playerid] == 4) SetPlayerMarkerForPlayer(i, playerid, 0xFF8282FF); else if(FakeFaction[playerid] == 5) SetPlayerMarkerForPlayer(i, playerid, 0x9ACD32FF); else SetPlayerMarkerForPlayer(i, playerid, 0xFF8282FF); } } } } else { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if((PlayerInfo[i][pMember] == 4 || FakeFaction[i]) && !CheckForJammer(i)) { SetPlayerMarkerForPlayer(i, playerid, 0xFF8282FF); } } } } new str[128]; backupType[playerid] = 4; if((PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] == 0) || (PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMask] == 1)) { format(str, sizeof(str), "HQ: All units, S9 %s %s is requesting medical backup, they have been marked on your GPS.", RealS9Rank(playerid), PlayerInfo[playerid][pMaskName]); } else format(str, sizeof(str), "HQ: All units, %s %s %s is requesting medical backup, they have been marked on your GPS.", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerICName(playerid)); SendRadioMessage(4, TEAM_BLUE_COLOR, str); format(str, sizeof(str), "* %s reaches down and presses a button on their waistbelt.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); SendClientMessage(playerid, COLOR_YELLOW, "You have called for \"Medical\" backup - this backup won't be removed until you \"/bkc\" or log out."); return 1; } stock CallSASTBackup(playerid) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if((PlayerInfo[i][pMember] == 3 || FakeFaction[i]) && !CheckForJammer(i)) { SetPlayerMarkerForPlayer(i, playerid, 0x9ACD32FF); } } } backupType[playerid] = 3; new str[128]; format(str, sizeof(str), "HQ: All units, %s %s %s is requesting SASD backup, they have been marked on your GPS.", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerOOCName(playerid)); SendRadioMessage(3, TEAM_BLUE_COLOR, str); format(str, sizeof(str), "* %s reaches down and presses a button on their waistbelt.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); SendClientMessage(playerid, COLOR_YELLOW, "You have called for \"SASD\" backup - this backup won't be removed until you \"/bkc\" or log out."); return 1; } stock CallDOCBackup(playerid) { if(PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] == 0 && PlayerInfo[playerid][pMask] == 0) return SendClientMessage(playerid, COLOR_GRAD1, "You need to be masked to request backup from other factions as S9."); if(PlayerInfo[playerid][pGroup] == GROUP_S9) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if((PlayerInfo[i][pMember] == 5 && !CheckForJammer(i)) || (FakeFaction[i] == 5 && !CheckForJammer(i))) { if(FakeFaction[playerid] == 1) SetPlayerMarkerForPlayer(i, playerid, 0x2641FEFF); else if(FakeFaction[playerid] == 4) SetPlayerMarkerForPlayer(i, playerid, 0xFF8282FF); else if(FakeFaction[playerid] == 5) SetPlayerMarkerForPlayer(i, playerid, 0x9ACD32FF); else SetPlayerMarkerForPlayer(i, playerid, 0xFFFFFFFF); } } } } else { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMember] == 5 && !CheckForJammer(i)) { SetPlayerMarkerForPlayer(i, playerid, 0x9ACD32FF); } } } } new str[128]; backupType[playerid] = 5; if((PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] == 0) || (PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMask] == 1)) { format(str, sizeof(str), "HQ: All units, S9 %s %s is requesting DoC backup, they have been marked on your GPS.", RealS9Rank(playerid), PlayerInfo[playerid][pMaskName]); } else format(str, sizeof(str), "HQ: All units, %s %s %s is requesting DoC backup, they have been marked on your GPS.", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerICName(playerid)); SendRadioMessage(5, TEAM_BLUE_COLOR, str); format(str, sizeof(str), "* %s reaches down and presses a button on their waistbelt.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); SendClientMessage(playerid, COLOR_YELLOW, "You have called for \"DoC\" backup - this backup won't be removed until you \"/bkc\" or log out."); return 1; } stock CallS9Backup(playerid) { if(PlayerInfo[playerid][pGroup] != GROUP_S9) return SendClientMessage(playerid, COLOR_GREY, "{00BFFF}Usage:{FFFFFF} /backup [Police, DEA, SASD, DoC, Medic]"); foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pGroup] == GROUP_S9 && !CheckForJammer(i)) { SetPlayerMarkerForPlayer(i, playerid, 0xFFFFFFFF); } } } backupType[playerid] = 666; new str[128]; format(str, sizeof(str), "HQ: All units, %s %s is requesting S9 backup, they have been marked on your GPS.", RealS9Rank(playerid), PlayerICName(playerid)); SendGroupMessage(GROUP_S9, COLOR_S9, str); SendClientMessage(playerid, COLOR_YELLOW, "You have called for \"S9\" backup - this backup won't be removed until you \"/bkc\" or log out."); return 1; } stock CallFBIBackup(playerid) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if((PlayerInfo[i][pMember] == 2 || FakeFaction[i]) && !CheckForJammer(i)) { SetPlayerMarkerForPlayer(i, playerid, 0x8D8DFFFF); } } } new str[128]; backupType[playerid] = 2; if((PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] == 0) || (PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMask] == 1)) { format(str, sizeof(str), "HQ: All units, S9 %s %s is requesting DEA backup, they have been marked on your GPS.", RealS9Rank(playerid), PlayerInfo[playerid][pMaskName]); } format(str, sizeof(str), "HQ: All units, %s %s %s is requesting DEA backup, they have been marked on your GPS.", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerICName(playerid)); SendRadioMessage(2, TEAM_BLUE_COLOR, str); format(str, sizeof(str), "* %s reaches down and presses a button on their waistbelt.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); SendClientMessage(playerid, COLOR_YELLOW, "You have called for \"DEA\" backup - this backup won't be removed until you \"/bkc\" or log out."); return 1; } stock CallPoliceBackup(playerid) { if(PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] == 0 && PlayerInfo[playerid][pMask] == 0) return SendClientMessage(playerid, COLOR_GRAD1, "You need to be masked to request backup from other factions as S9."); if(PlayerInfo[playerid][pGroup] == GROUP_S9) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if((PlayerInfo[i][pMember] == 1 || FakeFaction[i]) && !CheckForJammer(i)) { if(FakeFaction[playerid] == 1) SetPlayerMarkerForPlayer(i, playerid, 0x2641FEFF); else if(FakeFaction[playerid] == 4) SetPlayerMarkerForPlayer(i, playerid, 0xFF8282FF); else if(FakeFaction[playerid] == 5) SetPlayerMarkerForPlayer(i, playerid, 0x9ACD32FF); else SetPlayerMarkerForPlayer(i, playerid, 0x2641FEFF); } } } } else { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMember] == 1 && !CheckForJammer(i)) { SetPlayerMarkerForPlayer(i, playerid, 0x2641FEFF); } } } } backupType[playerid] = 1; new str[128]; if((PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] == 0) || (PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMask] == 1)) { format(str, sizeof(str), "HQ: All units, S9 %s %s is requesting police backup, they have been marked on your GPS.", RealS9Rank(playerid), PlayerInfo[playerid][pMaskName]); } else format(str, sizeof(str), "HQ: All units, %s %s %s is requesting police backup, they have been marked on your GPS.", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerOOCName(playerid)); SendRadioMessage(1, TEAM_BLUE_COLOR, str); format(str, sizeof(str), "* %s reaches down and presses a button on their waistbelt.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); SendClientMessage(playerid, COLOR_YELLOW, "You have called for \"Police\" backup - this backup won't be removed until you \"/bkc\" or log out."); return 1; } stock CallSANGBackup(playerid) { if(PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] == 0 && PlayerInfo[playerid][pMask] == 0) return SendClientMessage(playerid, COLOR_GRAD1, "You need to be masked to request backup from other factions as S9."); if(PlayerInfo[playerid][pGroup] == GROUP_S9) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if((PlayerInfo[i][pMember] == 14 || FakeFaction[i]) && !CheckForJammer(i)) { if(FakeFaction[playerid] == 1) SetPlayerMarkerForPlayer(i, playerid, 0x2641FEFF); else if(FakeFaction[playerid] == 4) SetPlayerMarkerForPlayer(i, playerid, 0xFF8282FF); else if(FakeFaction[playerid] == 5) SetPlayerMarkerForPlayer(i, playerid, 0x9ACD32FF); else SetPlayerMarkerForPlayer(i, playerid, TCOLOR_LIGHTGREEN); } } } } else { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMember] == 14 && !CheckForJammer(i)) { SetPlayerMarkerForPlayer(i, playerid, TCOLOR_LIGHTGREEN); } } } } backupType[playerid] = 14; new str[128]; if((PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] == 0) || (PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMask] == 1)) { format(str, sizeof(str), "HQ: All units, S9 %s %s is requesting AFSA backup, they have been marked on your GPS.", RealS9Rank(playerid), PlayerInfo[playerid][pMaskName]); } else format(str, sizeof(str), "HQ: All units, %s %s %s is requesting AFSA backup, they have been marked on your GPS.", GetPlayerFactionName(playerid), GetPlayerRank(playerid), PlayerOOCName(playerid)); SendRadioMessage(FACTION_SANG, TEAM_BLUE_COLOR, str); format(str, sizeof(str), "* %s reaches down and presses a button on their waistbelt.", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE); SendClientMessage(playerid, COLOR_YELLOW, "You have called for \"AFSA\" backup - this backup won't be removed until you \"/bkc\" or log out."); return 1; } new Float:carLicensePositions[][3] = { {1266.8654, -1842.2166, 13.2696}, {1061.5475, -1836.2394, 13.3718}, {797.6024, -1766.4312, 13.2727}, {637.3297, -1713.8506, 14.0442}, {614.5106, -1392.9651, 13.2734}, {310.4745, -1582.1296, 32.9277}, {244.1641, -1619.4785, 32.9742}, {459.5974, -1659.8098, 25.1516}, {807.1065, -1689.8192, 13.2577}, {900.5879, -1774.6519, 13.2578}, {1037.5203, -1789.5881, 13.5063}, {1148.8795, -1714.0670, 13.6563}, {1185.4692, -1855.1963, 13.2734}, {1215.3466, -1842.4543, 13.2580}, {1280.1890, -1816.4839, 13.2600} }; public OnPlayerEnterRaceCheckpoint(playerid) { if(dmvSlot[playerid] == 1) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid] ++; } else if(dmvSlot[playerid] == 2) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 3) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 4) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 5) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 6) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 7) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 8) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 9) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 10) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 11) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 12) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 13) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 0, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid] + 1][0], carLicensePositions[dmvSlot[playerid] + 1][1], carLicensePositions[dmvSlot[playerid] + 1][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 14) { DisablePlayerRaceCheckpoint(playerid); SetPlayerRaceCheckpoint(playerid, 1, carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], carLicensePositions[dmvSlot[playerid]][0], carLicensePositions[dmvSlot[playerid]][1], carLicensePositions[dmvSlot[playerid]][2], 3.0); dmvSlot[playerid]++; } else if(dmvSlot[playerid] == 15) { DisablePlayerRaceCheckpoint(playerid); dmvSlot[playerid] =0; new Float:health; GetVehicleHealth(GetPlayerVehicleID(playerid), health); if(!autoFailed[playerid]) { if(health >= 80) { SendClientMessage(playerid, COLOR_YELLOW, "Congratulations, you have PASSED the driving test! Enjoy your time as a driver!"); SendClientMessage(playerid, COLOR_LIGHTBLUE, "> You may now drive any land vehicle without the worry of being caught!"); PlayerInfo[playerid][pCarLicense] = 1; GameTextForPlayer(playerid, "Driving License ~g~PASSED!", 3000, 5); } else { SendClientMessage(playerid, COLOR_YELLOW, "Unfortunately, you have FAILED the test this time, reason: Too much damage to the vehicle."); SendClientMessage(playerid, COLOR_LIGHTBLUE, "> Feel free to try again, better luck next time!"); GameTextForPlayer(playerid, "Driving License ~r~FAILED!", 3000, 5); } } else { SendClientMessage(playerid, COLOR_YELLOW, "Unfortunately, you have FAILED the test this time, reason: Speeds of above 50 MPH."); SendClientMessage(playerid, COLOR_LIGHTBLUE, "> Feel free to try again, better luck next time!"); GameTextForPlayer(playerid, "Driving License ~r~FAILED!", 3000, 5); } SetVehicleToRespawn(GetPlayerVehicleID(playerid)); SetPlayerVirtualWorld(playerid, 0); SetPlayerPos(playerid, 1491.2963, 1306.1758, 1093.2964); SetPlayerInterior(playerid, 3); SetCameraBehindPlayer(playerid); } return 1; } stock FailDrivingText(playerid) { DisablePlayerRaceCheckpoint(playerid); dmvSlot[playerid] =0; SendClientMessage(playerid, COLOR_YELLOW, "Unfortunately, you have FAILED the test this time, reason: You exited the test vehicle."); SendClientMessage(playerid, COLOR_LIGHTBLUE, "> Feel free to try again, better luck next time!"); GameTextForPlayer(playerid, "Driving License ~r~FAILED!", 3000, 5); SetVehicleToRespawn(GetPlayerVehicleID(playerid)); SetPlayerVirtualWorld(playerid, 0); SetPlayerPos(playerid, 1491.2963, 1306.1758, 1093.2964); SetPlayerInterior(playerid, 3); SetCameraBehindPlayer(playerid); return 1; } stock findNearestGarbageTruck(playerid) { new Float:vX, Float:vY, Float:vZ; new vehicleid = -1; for(new i = 0; i < MAX_GARBAGE_TRUCKS; i++) { vehicleid = GarbageTruck[i][vehicle_id]; GetVehiclePos(vehicleid, vX, vY, vZ); if(IsPlayerInRangeOfPoint(playerid, 35.0, vX, vY, vZ)) { //set player variable to the slot hasTruckCheckpoint[playerid] = i; break; } else { //not near the vehicle vehicleid = -1; } } return vehicleid; } forward trashUpdate(); public trashUpdate() { for(new i = 0; i < sizeof(trashInfo); i++) { if(trashInfo[i][tAmount] < trashInfo[i][tLimit]) { trashInfo[i][tAmount]++; //update 3dtext new str[128]; format(str, sizeof(str), "Trash\n{FFFFFF}%d/%d\n/gettrash", trashInfo[i][tAmount], trashInfo[i][tLimit]); UpdateDynamic3DTextLabelText(trashInfo[i][trashLabelID], 0x43527DFF, str); } } return 1; } Timer:unloadTrash(playerid, slot, deliverypoint) { if(IsPlayerConnected(playerid)) { //skill check new level = PlayerInfo[playerid][pWasteSkill]; new price = 25 * GarbageTruck[slot][capacity] - random(100); //level 1 new bonus = 0; if(level >= 50) { //2 price = 30 * GarbageTruck[slot][capacity] - random(200); } else if(level >= 100) { //3 price = 35 * GarbageTruck[slot][capacity] - random(300); } else if(level >= 200) { //4 price = 40 * GarbageTruck[slot][capacity] - random(400); } else if(level >= 400) { //5 price = 45 * GarbageTruck[slot][capacity] - random(500); //$4500 max } new str[128]; //sell the trash if(deliverypoint == 1) { format(str, sizeof(str), "* You sold the trash for $%d.", price); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); } else if(deliverypoint == 2) { bonus = random(600); format(str, sizeof(str), "* You dumped the trash in the harbour and saved $%d on trash disposal fees. (total: $%d)", bonus, price + bonus); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); } format(str, sizeof(str), "~w~Trash sold for~n~~g~$%d!", price + bonus); displayCenterHUDInfo(playerid, str, 8); GiveMoney(playerid, price + bonus); TogglePlayerControllable(playerid, 1); //unfreeze //reset variables unloadingTrashTimer[playerid] = 0; //reset capacity GarbageTruck[slot][capacity] = 0; format(str, sizeof(str), "Capacity: %d/100", GarbageTruck[slot][capacity]); Update3DTextLabelText(GarbageTruck[slot][capacityLabelID], 0x33CCFFFF, str); } return 1; } Timer:bringPlayerToCam(playerid) { new Float:camPos[3]; GetPlayerCameraPos(playerid, camPos[0], camPos[1], camPos[2]); SetPlayerPos(playerid, camPos[0], camPos[1], camPos[2] - 30); return 1; } ShowS9Armory(playerid) { return ShowPlayerDialog(playerid, DIALOG_S9_MAIN, DIALOG_STYLE_LIST, "Sector 9 Armoury", "Armory\nWardrobe\nWardrobe ({ff7b00}Restricted{FFFFFF})\nLaw Enforcement Badges", "Select", "Cancel"); } Timer:UncuffSuspect(playerid) { setPlayerUncuffed(playerid); return 1; } stock GetVehicleColorName(color) { new clr[32]; switch(color) { case 0: clr ="Black"; case 1: clr ="White"; case 2: clr ="Blue"; case 3: clr ="Red"; case 4: clr ="Grey-Green"; case 5: clr ="Purple"; case 6: clr ="Yellow"; case 7: clr ="Blue"; case 8: clr ="Silver"; case 9: clr ="Dark sGrey"; case 10: clr ="Midnight Blue"; case 11: clr ="Dark Grey"; case 12: clr ="Teal"; case 13: clr ="Dark Grey"; case 14: clr ="Light Grey"; case 15: clr ="Silver"; case 16: clr ="Dark Green"; case 17: clr ="Dark Red"; case 18: clr ="Dark Red"; case 19: clr ="Grey"; case 20: clr ="Royal Blue"; case 21: clr ="Rich Maroon"; case 22: clr ="Rich Maroon"; case 23: clr ="Grey"; case 24: clr ="Dark Grey"; case 25: clr ="Dark Grey"; case 26: clr ="Light Grey"; case 27: clr ="Grey"; case 28: clr ="Midnight Blue"; case 29: clr ="Light Grey"; case 30: clr ="Dark Maroon"; case 31: clr ="Red"; case 32: clr ="Baby Blue"; case 33: clr ="Grey"; case 34: clr ="Grey"; case 35: clr ="Dark Grey"; case 36: clr ="Dark Grey"; case 37: clr =""; case 38: clr ="Tea Green"; case 39: clr ="Steel blue"; case 40: clr ="Black"; case 41: clr ="Light Brown"; case 42: clr ="Bright Maroon"; case 43: clr ="Maroon"; case 44: clr ="Myrtle Green"; case 45: clr ="Maroon"; case 46: clr ="Olive Green"; case 47: clr ="Olive"; case 48: clr ="Khaki Brown"; case 49: clr ="Light Grey"; case 50: clr ="Silver Grey"; case 51: clr ="Dark Green"; case 52: clr ="Dark Teal"; case 53: clr ="Navy Blue"; case 54: clr ="Navy Blue"; case 55: clr ="Brown"; case 56: clr ="Light Grey"; case 57: clr ="Beige"; case 58: clr ="Maroon"; case 59: clr ="Grey-Blue"; case 60: clr ="Grey"; case 61: clr ="Old Gold"; case 62: clr ="Maroon"; case 63: clr ="Grey"; case 64: clr ="Grey"; case 65: clr ="Old Gold"; case 66: clr ="Dark Brown"; case 67: clr ="Light Blue"; case 68: clr ="Light Khaki"; case 69: clr ="Light Pink"; case 70: clr ="Bright Maroon"; case 71: clr ="Light Blue"; case 72: clr ="Grey"; case 73: clr ="Tea Green"; case 74: clr ="Dark Maroon"; case 75: clr ="Dark Blue"; case 76: clr ="Light Brown"; case 77: clr ="Ecru Brown"; case 78: clr ="Maroon"; case 79: clr ="Royal Blue"; case 80: clr ="Rich Maroon"; case 81: clr ="Light Brown"; case 82: clr ="Bright Maroon"; case 83: clr ="Dark Teal Green"; case 84: clr ="Brown"; case 85: clr ="Rich Maroon"; case 86: clr ="Green"; case 87: clr ="Blue "; case 88: clr ="Maroon"; case 89: clr ="Beige"; case 90: clr ="Grey"; case 91: clr ="Dark Blue"; case 92: clr ="Grey"; case 93: clr ="Sky Blue"; case 94: clr ="Blue"; case 95: clr ="Navy Blue"; case 96: clr ="Silver"; case 97: clr ="Light Blue"; case 98: clr ="Grey"; case 99: clr ="Light Brown "; case 100: clr ="Blue"; case 101: clr ="Dark Blue"; case 102: clr ="Light Brown"; case 103: clr ="Blue"; case 104: clr ="Brown"; case 105: clr ="Dark Grey"; case 106: clr ="Blue"; case 107: clr ="Light Brown"; case 108: clr ="Yale Blue"; case 109: clr ="Dark Grey"; case 110: clr ="Brown"; case 111: clr ="Light Grey"; case 112: clr ="Blue"; case 113: clr ="Brown"; case 114: clr ="Dark Grey"; case 115: clr ="Dark Red"; case 116: clr ="Navy Blue"; case 117: clr ="Dark Maroon"; case 118: clr ="Light Blue"; case 119: clr ="Brown"; case 120: clr ="Light Brown"; case 121: clr ="Dark Maroon"; case 122: clr ="Grey"; case 123: clr ="Brown"; case 124: clr ="Rich Maroon"; case 125: clr ="Dark Blue"; case 126: clr ="Pink"; } return clr; } stock getFoodTypeById(type) { new foodType[25]; switch(type) { case 0: { foodType = "None"; } case 1: { foodType = "Pizza box"; } case 2: { foodType = "Clucknbell tray"; } case 3: { foodType = "Burgershot tray"; } case 4: { foodType = "Donut tray"; } default: { foodType = "Unknown"; } } return foodType; } stock CheckBlockedSlots(playerid) { new count = 0; if(Blocked[playerid][Number1] != -420)count +=1; if(Blocked[playerid][Number2] != -420)count +=1; if(Blocked[playerid][Number3] != -420)count +=1; if(Blocked[playerid][Number4] != -420)count +=1; if(Blocked[playerid][Number5] != -420)count +=1; if(count ==5) return false; else return true; } Timer:dragTimerActual(playerid, draggingID) { if(!IsPlayerConnected(playerid) || !IsPlayerConnected(draggingID)){ KillTimer(dragTimer[draggingID]); return 1; } if(IsPlayerInAnyVehicle(playerid)){ KillTimer(dragTimer[draggingID]); return 1; } new Float:Playerx, Float:Playery, Float:Playerz; SetPlayerVirtualWorld(draggingID, GetPlayerVirtualWorld(playerid)); SetPlayerInterior(draggingID, GetPlayerInterior(playerid)); GetPlayerPos(playerid, Playerx, Playery, Playerz); SetPlayerPos(draggingID, Playerx+1, Playery, Playerz); return 1; } // Types of MDC access enum { MDC_ACCESS_NONE, MDC_ACCESS_FULL, MDC_ACCESS_CRIMES_ONLY }; // Types of MDC access organizations enum { MDC_ORG_FACTION, MDC_ORG_GROUP }; // What organizations can use /mdc and what access do they have? new mdcOrganizations[][3] = { // {organization_type, organization_id, access_type} // organization_type = the type of organization // organization_id = the ID of the faction or group // acces_type = what type of access does this faction have {MDC_ORG_FACTION, 1, MDC_ACCESS_FULL}, // SAPD {MDC_ORG_FACTION, 11, MDC_ACCESS_FULL}, // Sector 9 {MDC_ORG_FACTION, 2, MDC_ACCESS_FULL}, // FBI | DEA {MDC_ORG_FACTION, 5, MDC_ACCESS_FULL}, // DoC {MDC_ORG_FACTION, 6, MDC_ACCESS_FULL}, // Government {MDC_ORG_FACTION, 4, MDC_ACCESS_CRIMES_ONLY}, // SAFMD {MDC_ORG_FACTION, 7, MDC_ACCESS_FULL}, // Judicial {MDC_ORG_FACTION, 14, MDC_ACCESS_FULL} // SANG }; // MDC locations new Float:mdcLocations[][4] = { // {mdc_x, mdc_y, mdc_z, mdc_range} {1176.4827, -1327.2727, 1089.5693, 3.0}, // All Saints hospital computer {1528.58, -1677.77, 5.89, 7.0}, // SAPD garage {-1960.64, 1249.0, 10001.0, 30.0}, // SAPD TDB office {378.09, 180.45, 1014.18, 10.0}, // GOV lockers {688.7796, 1512.2487, 9001.9629, 100.0}, // DoC lobby {-1868.5681, 960.8786, 6001.0000, 30.0}, // DoC staff area {-2238.4836, -1744.2885, 6000.5083, 30.0}, // DoC warden {-1499.7362, -382.4726, 6000.0259, 30.0}, // DoC office {242.59, 75.77, 1004.76, 100.0}, // PD main int {-2582.34, -108.98, 6001.08, 100.0}, // PD cells {216.44, 146.23, 1007.24, 50.0}, // PD offices {1176.80, -1333.34, 1089.57, 100.0} // All Saints Hospital }; stock IsPlayerNearMDC(playerid) { if(PlayerInfo[playerid][pPortMDC] || PlayerIsInMDCCar(playerid) || PlayerInfo[playerid][pMember] == 6) return 1; for(new i = 0; i < sizeof(mdcLocations); i++) { if(IsPlayerInRangeOfPoint(playerid, mdcLocations[i][3], mdcLocations[i][0], mdcLocations[i][1], mdcLocations[i][2])) return 1; } return 0; } stock GetMDCAccessType(playerid) { if(!PlayerInfo[playerid][pMember] && !PlayerInfo[playerid][pGroup]) return MDC_ACCESS_NONE; for(new i = 0; i < sizeof(mdcOrganizations); i++) { // Factions if(mdcOrganizations[i][0] == MDC_ORG_FACTION && PlayerInfo[playerid][pMember]) { if(PlayerInfo[playerid][pMember] == mdcOrganizations[i][1]) return mdcOrganizations[i][2]; } // Groups if(mdcOrganizations[i][0] == MDC_ORG_GROUP && PlayerInfo[playerid][pGroup]) { if(PlayerInfo[playerid][pGroup] == mdcOrganizations[i][1]) return mdcOrganizations[i][2]; } } return MDC_ACCESS_NONE; } stock MDCAccessToStr(accessType) { new mdcString[30]; switch(accessType) { case MDC_ACCESS_FULL: format(mdcString, sizeof(mdcString), "FULL ACCESS"); case MDC_ACCESS_CRIMES_ONLY: format(mdcString, sizeof(mdcString), "LIMITED ACCESS"); default: format(mdcString, sizeof(mdcString), "NO ACCESS"); } return mdcString; } stock SendMDCMessage(playerid, theText[]) { new mdcString[128]; format(mdcString, sizeof(mdcString), "(MDC): %s", theText); return SendClientMessage(playerid, COLOR_LIGHTRED, mdcString); } stock LogOffMDC(playerid) { SendMDCMessage(playerid, "You have logged off the MDC."); format(PlayerInfo[playerid][pMDCSearchName], 128, "None"); PlayerInfo[playerid][pMDCSearchID] = 0; return 1; } // Returns true if the player is at a point where banking is possible IsPlayerAtBankingPoint(playerid) { return ( IsPlayerInRangeOfPoint(playerid, 2.0, 1630.9005,2903.0325,1001.0114) || IsPlayerInRangeOfPoint(playerid, 2.0, 1631.3215,2899.9331,1001.0114) || IsPlayerInRangeOfPoint(playerid, 2.0, 1630.4747,2897.3518,1001.0114) || IsPlayerInRangeOfPoint(playerid, 2.0, 630.3761,2894.4163,1001.0114) || IsPlayerInRangeOfPoint(playerid, 2.0, 1630.7947,2891.9766,1001.0114) ); } ProofJessaIsNazi(playerid) { new jessaisnazi[1500]; format(jessaisnazi, sizeof(jessaisnazi), "Desert Eagle\t$2,500\n\ Suppressed Pistol\t$5,000\n\ {C40000}----------\t----------{FFFFFF}\n\ M4\t$12,500\n\ AK47\t$7,500\n\ {C40000}----------\t----------{FFFFFF}\n\ Combat Shotgun\t$25,000\n"); format(jessaisnazi, sizeof(jessaisnazi), "%sPump Shotgun\t$2,000\n\ Sawn-off Shotgun\t$7,500\n\ {C40000}----------\t----------{FFFFFF}\n\ MP5\t$1000\n\ TEC9\t$2,500\n\ Uzi\t$2,500\n", jessaisnazi); format(jessaisnazi, sizeof(jessaisnazi), "%s{C40000}----------\t----------{FFFFFF}\n\ Rifle\t$2,500\n\ Sniper Rifle\t$15,000\n\ {C40000}----------\t----------{FFFFFF}\n\ Flamethrower\t$20,000\n\ Plastic Explosive\t$10,000\n\ {C40000}----------\t----------{FFFFFF}\n\ Chainsaw\t$5,000\n\ Knife\t$1,000\n", jessaisnazi); format(jessaisnazi, sizeof(jessaisnazi), "%s{C40000}----------\t----------{FFFFFF}\n\ Tear Gas\t$2,500\n\ Grenades\t$2,500\n\ Molotov Cocktail\t$2,500\n\ {C40000}----------\t----------{FFFFFF}\n\ Health and Armour\t$1,000\n\ First Aid\t$200\n\ Half Vest\t$500\n\ Full Vest\t$1000\n\ {C40000}----------\t----------{FFFFFF}\n", jessaisnazi); ShowPlayerDialog(playerid, DIALOG_HITMAN, DIALOG_STYLE_TABLIST, "{C40000}Armory{FFFFFF}",jessaisnazi,"Select", "Cancel"); return 1; } showHitmanDialog(playerid) { new hitmanStr[1500]; format(hitmanStr, sizeof(hitmanStr), "Desert Eagle\t$2,500\n\ Suppressed Pistol\t$5,000\n\ {C40000}----------\t----------{FFFFFF}\n\ M4\t$12,500\n\ AK47\t$7,500\n\ {C40000}----------\t----------{FFFFFF}\n\ Combat Shotgun\t$25,000\n"); format(hitmanStr, sizeof(hitmanStr), "%sPump Shotgun\t$2,000\n\ Sawn-off Shotgun\t$7,500\n\ {C40000}----------\t----------{FFFFFF}\n\ MP5\t$1000\n\ TEC9\t$2,500\n\ Uzi\t$2,500\n", hitmanStr); format(hitmanStr, sizeof(hitmanStr), "%s{C40000}----------\t----------{FFFFFF}\n\ Rifle\t$2,500\n\ Sniper Rifle\t$15,000\n\ {C40000}----------\t----------{FFFFFF}\n\ Flamethrower\t$20,000\n\ Plastic Explosive\t$10,000\n\ {C40000}----------\t----------{FFFFFF}\n\ Chainsaw\t$5,000\n\ Knife\t$1,000\n", hitmanStr); format(hitmanStr, sizeof(hitmanStr), "%s{C40000}----------\t----------{FFFFFF}\n\ Tear Gas\t$2,500\n\ Grenades\t$2,500\n\ Molotov Cocktail\t$2,500\n\ {C40000}----------\t----------{FFFFFF}\n\ Health and Armour\t$1,000\n\ First Aid\t$200\n\ Half Vest\t$500\n\ Full Vest\t$1000\n\ {C40000}----------\t----------{FFFFFF}\n", hitmanStr); format(hitmanStr, sizeof(hitmanStr), "%sSignal Jammer\t$1,000\n\ Cyanide Pill\t$5,000\n\ Fake Badges\t(( $0 ))\n\ Lock Pick Kit\t(( $5,000 ))", hitmanStr); ShowPlayerDialog(playerid, DIALOG_HITMAN, DIALOG_STYLE_TABLIST, "{C40000}Hitman Armoury{FFFFFF}", hitmanStr, "Select", "Cancel"); return 1; } showPakiArmory(playerid) { new cartelstr[1000]; format(cartelstr, sizeof(cartelstr), "Item\tPrice"); format(cartelstr, sizeof(cartelstr), "%s\nDeagle\t$50,000\nM4\t$85,000\nAK47\t$65,000\nFull Vest\t$15,000", cartelstr); format(cartelstr, sizeof(cartelstr), "%s\nFull HP\tFree\nMP5\t$13,000\nShotgun\t$7,000", cartelstr); ShowPlayerDialog(playerid, DIALOG_GREYWOLF_ARMORY, DIALOG_STYLE_TABLIST_HEADERS, "Armory", cartelstr, "Purchase", "Cancel"); return 1; } showS9Dialog(playerid) { new s9Str[1500]; format(s9Str, sizeof(s9Str), "Desert Eagle\t$1,000\n\ Suppressed Pistol\t$1,500\n\ {33CCFF}----------\t----------{FFFFFF}\n\ M4\t$6,000\n\ AK47\t$4,000\n\ {33CCFF}----------\t----------{FFFFFF}\n\ Combat Shotgun\t$9,000\n"); format(s9Str, sizeof(s9Str), "%sPump Shotgun\t$1,000\n\ Sawn-off Shotgun\t$3,000\n\ {33CCFF}----------\t----------{FFFFFF}\n\ MP5\t$1000\n\ TEC9\t$1,500\n\ Uzi\t$1,500\n", s9Str); format(s9Str, sizeof(s9Str), "%s{33CCFF}----------\t----------{FFFFFF}\n\ Rifle\t$2,000\n\ Sniper Rifle\t$7,000\n\ {33CCFF}----------\t----------{FFFFFF}\n\ Flamethrower\t$8,000\n\ Plastic Explosive\t$5,000\n\ {33CCFF}----------\t----------{FFFFFF}\n\ Chainsaw\t$5,000\n\ Knife\t$1,000\n", s9Str); format(s9Str, sizeof(s9Str), "%s{33CCFF}----------\t----------{FFFFFF}\n\ Tear Gas\t$1,000\n\ Grenades\t$2,500\n\ Molotov Cocktail\t$2,500\n\ {33CCFF}----------\t----------{FFFFFF}\n\ Health and Armour\t$1,000\n\ Half Vest\t$500\n\ {33CCFF}----------\t----------{FFFFFF}\n", s9Str); format(s9Str, sizeof(s9Str), "%sSignal Jammer\t$1,000\n\ Lock Pick Kit\t$1,000", s9Str); ShowPlayerDialog(playerid, DIALOG_S9_ARMORY, DIALOG_STYLE_TABLIST, "{33CCFF}Sector 9 Armoury{FFFFFF}", s9Str, "Select", "Cancel"); return 1; } showCrimeDialog(playerid) { new crimeStr[1500]; format(crimeStr, sizeof(crimeStr), "Desert Eagle\t$2,500\n\ Suppressed Pistol\t$5,000\n\ {646495}----------\t----------{FFFFFF}\n\ M4\t$12,500\n\ AK47\t$7,500\n\ {646495}----------\t----------{FFFFFF}\n\ Combat Shotgun\t$25,000\n\ Pump Shotgun\t$2,000\n\ Sawn-off Shotgun\t$7,500\n\ {646495}----------\t----------{FFFFFF}\n\ MP5\t$1000\n\ TEC9\t$2,500\n\ Uzi\t$2,500\n" ); format(crimeStr, sizeof(crimeStr), "%s{646495}----------\t----------{FFFFFF}\n\ Rifle\t$2,500\n\ Sniper Rifle\t$15,000\n\ {646495}----------\t----------{FFFFFF}\n\ Flamethrower\t$20,000\n\ Plastic Explosive\t$10,000\n\ {646495}----------\t----------{FFFFFF}\n\ Chainsaw\t$5,000\n\ Knife\t$1,000\n", crimeStr); format(crimeStr, sizeof(crimeStr), "%s{646495}----------\t----------{FFFFFF}\n\ Tear Gas\t$2,500\n\ Grenades\t$2,500\n\ Molotov Cocktail\t$2,500\n\ {646495}----------\t----------{FFFFFF}\n\ Health and Armour\t$1,000\n\ Half Vest\t$1000\n\ {646495}----------\t----------{FFFFFF}\n", crimeStr); format(crimeStr, sizeof(crimeStr), "%sSignal Jammer\t$1,000\n\ Dufflebag - NEEDS TO BE SCRIPTED\t$500\n\ (( Name Change ))\t(( $0 ))\n\ {646495}----------\t----------{FFFFFF}\n\ Fully Armed\t$58,000", crimeStr); ShowPlayerDialog(playerid, DIALOG_CRIME, DIALOG_STYLE_TABLIST, "{646495}Armoury{FFFFFF}", crimeStr, "Select", "Cancel"); return 1; } showSAPDDialog(playerid) { new str[700]; format(str, sizeof(str), "Item\tPrice\n\ {FFFFFF}Portable MDC\tFree\n\ {FFFFFF}Mace\t$20\n\ {FFFFFF}Night Stick\t$20\n\ {FFFFFF}Deagle\t$500\n\ {FFFFFF}Shotgun\t$200\n\ {FFFFFF}MP5\t$400\n\ {FFFFFF}Rifle\t$1,000\n\ {FFFFFF}M4\t$6,000\n\ {FFFFFF}First Aid Kit\t$200\n\ {FFFFFF}Kevlar\t$1,000\n\ {FFFFFF}Rubber Bullets\t$100\n\ {FFFFFF}C2 Explosive\t$80,000"); if(PlayerInfo[playerid][pMember] == FACTION_FBI) format(str, sizeof(str), "%s\n{FFFFFF}Signal Jammer\t$1,000", str); ShowPlayerDialog(playerid, DIALOG_SAPD_WEAPONRY, DIALOG_STYLE_TABLIST_HEADERS, "Armory", str, "Select", "Back"); return 1; } //Optimized by Ettore #define ADVERTISE_COORDS 746.21, -1359.01, 9053.42 forward CheckProps(playerid); public CheckProps(playerid) { if(!PlayerInfo[playerid][pBizMod]) return 1; if(cache_num_rows() == 0) return ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST, "Inactive Properties", "No Biz's or Houses found", "Okay", ""); new bizstr[10000], PropDate[64], name[MAX_PLAYER_NAME], BizKey, house; new syear[32], smonth[32], sday[32]; new current_year, current_month, current_day, expire_year, expire_month, expire_day; getdate(current_year, current_month, current_day); format(bizstr, sizeof(bizstr), "Name\tExpired On\tBiz ID\tHouse ID\n"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_field_content(i, "Name", name); cache_get_field_content(i, "PropDate", PropDate); BizKey = cache_get_field_content_int(i, "BizKey"); house = cache_get_field_content_int(i, "pHouseID"); strmid(syear, PropDate, 6, 30, 32); expire_year = strval(syear); strmid(sday, PropDate, 4, 5, 32); expire_day = strval(sday); strmid(smonth, PropDate, 0, 2, 32); expire_month = strval(smonth); if(current_year > expire_year || current_month > expire_month && current_year >= expire_year || current_day >= expire_day && current_month >= expire_month && current_year >= expire_year) { format(bizstr, sizeof(bizstr), "%s{FFFF00}%s\t(%s)\t[%i]\t[%i]\t{FFFFFF}\n", bizstr, name, PropDate, BizKey, house); } } ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_TABLIST_HEADERS, "Inactive Properties", bizstr, "Okay", ""); return 1; } forward onomakemapper(name[], rank[], playerid); public onomakemapper(name[], rank[], playerid) { new mlevel; new str[128]; if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist!"); if(strcmp(rank, "none", true) == 0) { mlevel = 0; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been removed from the Mapping Team by %s.", name, PlayerICName(playerid)); } if(strcmp(rank, "regular", true) == 0) { mlevel = 1; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been given the status of a regular mapper by %s.", name, PlayerICName(playerid)); } if(strcmp(rank, "senior", true) == 0) { mlevel = 2; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been given the status of a senior mapper by %s.", name, PlayerICName(playerid)); } if(strcmp(rank, "manager", true) == 0) { mlevel = 3; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been given the status of a mapping manager by %s.", name, PlayerICName(playerid)); } ABroadCast(COLOR_LIGHTRED, str, 1); format(str, sizeof(str), "You have made %s a level %d Mapper.", name, mlevel); SendClientMessage(playerid, COLOR_WHITE, str); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `Mapper` = %d WHERE `name`= '%e' LIMIT 1", mlevel, name); mysql_pquery(sqlGameConnection, query); return 1; } forward OnOMakeDev(name[], rank[], playerid); public OnOMakeDev(name[], rank[], playerid) { new dlevel; new str[128]; if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist!"); if(strcmp(rank, "none", true) == 0) { dlevel = 0; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been removed from the Development Team by %s.", name, PlayerICName(playerid)); } else if(strcmp(rank, "Junior", true) == 0) { dlevel = 1; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been made a Junior Developer by %s.", name, PlayerICName(playerid)); } else if(strcmp(rank, "Senior", true) == 0) { dlevel = 2; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been made a Senior Developer by %s.", name, PlayerICName(playerid)); } else if(strcmp(rank, "Manager", true) == 0) { dlevel = 3; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been made a Development Manager by %s.", name, PlayerICName(playerid)); } else if(strcmp(rank, "lead", true) == 0) { dlevel = 4; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been made a Lead Developer by %s.", name, PlayerICName(playerid)); } else { return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} invalid developer level."); } ABroadCast(COLOR_LIGHTRED, str, 1); format(str, sizeof(str), "You have made %s a level %d Developer.", name, dlevel); SendClientMessage(playerid, COLOR_WHITE, str); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `DevLevel` = %d WHERE `name`= '%e' LIMIT 1", dlevel, name); mysql_pquery(sqlGameConnection, query); return 1; } forward OnOMakeTester(name[], rank[], playerid); public OnOMakeTester(name[], rank[], playerid) { new tlevel; new str[128]; if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); if(strcmp(rank, "none", true) == 0) { tlevel = 0; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been removed from the tester team by %s.", name, PlayerICName(playerid)); } else if(strcmp(rank, "regular", true) == 0) { tlevel = 1; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been made a tester by %s.", name, PlayerICName(playerid)); } else if(strcmp(rank, "senior", true) == 0) { tlevel = 2; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been made a senior tester by %s.", name, PlayerICName(playerid)); } else if(strcmp(rank, "manager", true) == 0) { tlevel = 3; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been made a manager tester by %s.", name, PlayerICName(playerid)); } else { return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} invalid tester level."); } ABroadCast(COLOR_LIGHTRED, str, 1); format(str, sizeof(str), "You have made %s a level %d tester.", name, tlevel); SendClientMessage(playerid, COLOR_WHITE, str); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `TesterLevel` = %d WHERE `name`= '%e' LIMIT 1", tlevel, name); mysql_pquery(sqlGameConnection, query); return 1; } forward OnOMakeHelper(playerid, name[], rank[]); public OnOMakeHelper(playerid, name[], rank[]) { new hlevel, htag; new str[128]; if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); if(strcmp(rank, "none", true) == 0) { hlevel = 0; htag = NTAG_PLAYER; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been removed from the Helper Team by %s.", name, PlayerICName(playerid)); } else if(strcmp(rank, "trial", true) == 0) { hlevel = 1; htag = NTAG_THELPER; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been made a %s by %s.", name, rank, PlayerICName(playerid)); } else if(strcmp(rank, "helper", true) == 0) { hlevel = 2; htag = NTAG_HELPER; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been made a %s by %s.", name, rank, PlayerICName(playerid)); } else if(strcmp(rank, "senior", true) == 0) { hlevel = 3; htag = NTAG_SHELPER; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has been made a %s helper by %s.", name, rank, PlayerICName(playerid)); } else { return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} invalid helper level."); } SendHelperMessage(COLOR_LIGHTRED, str, 1); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `HelperLevel` = %d, `Tag` = %d WHERE `name`='%e' LIMIT 1", hlevel, htag, name); mysql_pquery(sqlGameConnection, query); return 1; } //============================================================================== Timer:OnTenMinuteSync() { new hour, minute, second; gettime(hour, minute, second); hour = FixHour(hour); SetWorldTime(hour); foreach( new i: Player ) { if(gPlayerLogged[i] == 1) { //save the player and their vehicles OnPlayerSave(i); //if vehicle is spawned, save it. if( playerSpawnedVehicle[i] > -1 ) { savePlayerVehicle( i, playerSpawnedVehicle[i] ); } } } //save the other stuff SaveDealerships(); SaveHouses(); SaveGates(); SaveSurnames(); SaveEntrances(); SaveGarages(); SaveFactionBanks(); SaveStuff(); //food tray update for(new i = 0; i < foodTrays; i++) { //loop through food trays if(foodTray[i][0] != SLOT_EMPTY) { //if the tray is being used if(foodTray[i][3] == 0) { //if the foodtray is set to respawn if(IsValidDynamicObject(foodTray[i][0])) { if(foodTray[i][0]) { DestroyDynamicObjectEx(foodTray[i][0]); } } foodTray[i][0] = SLOT_EMPTY; //obj ID foodTray[i][1] = TYPE_EMPTY; //type foodTray[i][2] = TRAY_EMPTY; //food foodTray[i][3] = TRAY_NO_RESPAWN; //respawn foodTray[i][4] = TRAY_NO_POISONED; //poisoned foodTrays--; sortArray(); } else { foodTray[i][3]--; //respawn timef //format(str, sizeof(str), "index %d has a respawn time of %d.", i, foodTray[i][3]); //SendClientMessageToAll(COLOR_WHITE, str); } //format(str, sizeof(str), "index %d is an active food tray and will repsawn soon.", i); //SendClientMessageToAll(COLOR_WHITE, str); } } if(!ADMIN_ENABLED_DOUBLE_EXP_MODE) { doubleEXPCheck(); //check if it's fri, saturday, sunday and if so enable double XP } return 1; } //============================================================================== public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) { if(hittype != BULLET_HIT_TYPE_NONE) // Bullet Crashing uses just this hittype { if(!(-1000.0 <= fX <= 1000.0) || !(-1000.0 <= fY <= 1000.0) || !(-1000.0 <= fZ <= 1000.0)) // a valid offset, it's impossible that a offset bigger than 1000 is legit (also less than -1000.0 is impossible, not used by this hack, but still, let's check for it, just for the future, who knows what hacks will appear). The object with biggest offset is having ~700-800 radius. { return 0; } } if(hittype == BULLET_HIT_TYPE_VEHICLE) { if(IsValidVehicle(hitid)) { if(!IsUnoccupiedVehicle(hitid)) { new Float:health, Float:rand = 1 + random(15); GetVehicleHealth(hitid, health); if(health > 300) { SetVehicleHealth(hitid, health -rand); } } } } new str[128]; if(playerHoldingTazer[playerid]){ if(weaponid == 23){ ApplyAnimationEx(playerid, "COLT45", "colt45_reload", 4.0, 0, 0, 0, 0, 0); format(str, sizeof(str), "* %s reloads their tazer after firing the shot. *", PlayerICName(playerid)); ProxDetector(30.0, playerid, str, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE); } } if(PlayerInfo[playerid][pAdmin] < 2) { new WeaponName[65]; new newweapon = weaponid; if(newweapon > 0) { if( (newweapon == 4 && PlayerInfo[playerid][pGroup] != GROUP_HITMAN) || //knife newweapon == 16 || //grenades newweapon == 18 || //molotovs (newweapon == 17 && !IsACop(playerid)) || //teargas newweapon == 26 || //sawn off newweapon == 28 || //uzi newweapon == 32 || //tec9 newweapon == 35 || //rpg newweapon == 36 || //heat seeker newweapon == 37 || //flame thrower newweapon == 38 || //minigun newweapon == 39 || //satchels (newweapon == 40 && PlayerInfo[playerid][pGroup] != GROUP_HITMAN) || //detonators newweapon == 44 || //nv gogles newweapon == 45) //hs goggles { if(HaveWeapon(playerid, newweapon) != newweapon && HaveAdminWeapon(playerid, newweapon) != newweapon) { if(IsPlayerConnected(playerid) && PlayerInfo[playerid][pBand] != 3) // avoid spam { GetWeaponName(newweapon, WeaponName, 64); anticheatbans ++; format(str, sizeof(str), "{FF6347}SERVER: %s was banned by ANTICHEAT, reason: Hacked %s detected. (%d hackers banned)", PlayerOOCName(playerid), WeaponName, anticheatbans); SendClientMessageToAll(COLOR_WHITE, str); PlayerInfo[playerid][pBand] = 3; BanLog(str); format(str, sizeof(str), "Ban Reason: Hacked %s detected - Banned by: ANTICHEAT", WeaponName); SendClientMessage(playerid, COLOR_GREY, str); strmid(PlayerInfo[playerid][pBanReason], str, 0, strlen(str)); BanExx(playerid); new ip[16]; GetPlayerIp(playerid, ip, sizeof(ip)); gpci(playerid,playerserial,sizeof(playerserial)); if(NextBan == 1) { format(Ban1Name, sizeof(Ban1Name), "%s", PlayerOOCName(playerid)); format(Ban1gpci, sizeof(Ban1gpci), "%s", playerserial); format(Ban1ip, sizeof(Ban1ip), "%s", ip); NextBan = 2; return 1; } if(NextBan == 2) { format(Ban2Name, sizeof(Ban2Name), "%s", PlayerOOCName(playerid)); format(Ban2gpci, sizeof(Ban2gpci), "%s", playerserial); format(Ban2ip, sizeof(Ban2ip), "%s", ip); NextBan = 3; return 1; } if(NextBan == 3) { format(Ban3Name, sizeof(Ban3Name), "%s", PlayerOOCName(playerid)); format(Ban3gpci, sizeof(Ban3gpci), "%s", playerserial); format(Ban3ip, sizeof(Ban3ip), "%s", ip); NextBan = 4; return 1; } if(NextBan == 4) { format(Ban4Name, sizeof(Ban4Name), "%s", PlayerOOCName(playerid)); format(Ban4gpci, sizeof(Ban4gpci), "%s", playerserial); format(Ban4ip, sizeof(Ban4ip), "%s", ip); NextBan = 5; return 1; } if(NextBan == 5) { format(Ban5Name, sizeof(Ban5Name), "%s", PlayerOOCName(playerid)); format(Ban5gpci, sizeof(Ban5gpci), "%s", playerserial); format(Ban5ip, sizeof(Ban5ip), "%s", ip); NextBan = 1; return 1; } return 1; } } } } if(newweapon > 0 && newweapon != 46) { if(HaveWeapon(playerid, newweapon) != newweapon && HaveAdminWeapon(playerid, newweapon) != newweapon) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pBand] == 3) return 1; // Avoid spam, should already be banned. if(PlayerInfo[playerid][pConnectTime] < 4) { GetWeaponName(newweapon, WeaponName, 64); anticheatbans ++; format(str, sizeof(str), "{FF6347}SERVER: %s was banned by ANTICHEAT, reason: Hacked %s detected. (%d hackers banned)", PlayerOOCName(playerid), WeaponName, anticheatbans); SendClientMessageToAll(COLOR_WHITE, str); PlayerInfo[playerid][pBand] = 3; BanLog(str); format(str, sizeof(str), "Ban Reason: Hacked %s detected - Banned by: ANTICHEAT", WeaponName); strmid(PlayerInfo[playerid][pBanReason], str, 0, strlen(str)); BanExx(playerid); new ip[16]; GetPlayerIp(playerid, ip, sizeof(ip)); gpci(playerid,playerserial,sizeof(playerserial)); if(NextBan == 1) { format(Ban1Name, sizeof(Ban1Name), "%s", PlayerOOCName(playerid)); format(Ban1gpci, sizeof(Ban1gpci), "%s", playerserial); format(Ban1ip, sizeof(Ban1ip), "%s", ip); NextBan = 2; return 1; } if(NextBan == 2) { format(Ban2Name, sizeof(Ban2Name), "%s", PlayerOOCName(playerid)); format(Ban2gpci, sizeof(Ban2gpci), "%s", playerserial); format(Ban2ip, sizeof(Ban2ip), "%s", ip); NextBan = 3; return 1; } if(NextBan == 3) { format(Ban3Name, sizeof(Ban3Name), "%s", PlayerOOCName(playerid)); format(Ban3gpci, sizeof(Ban3gpci), "%s", playerserial); format(Ban3ip, sizeof(Ban3ip), "%s", ip); NextBan = 4; return 1; } if(NextBan == 4) { format(Ban4Name, sizeof(Ban4Name), "%s", PlayerOOCName(playerid)); format(Ban4gpci, sizeof(Ban4gpci), "%s", playerserial); format(Ban4ip, sizeof(Ban4ip), "%s", ip); NextBan = 5; return 1; } if(NextBan == 5) { format(Ban5Name, sizeof(Ban5Name), "%s", PlayerOOCName(playerid)); format(Ban5gpci, sizeof(Ban5gpci), "%s", playerserial); format(Ban5ip, sizeof(Ban5ip), "%s", ip); NextBan = 1; return 1; } return 1; // No need to warn if they get banned anyways } GetWeaponName(newweapon, WeaponName, 64); anticheatwarns ++; format(str, sizeof(str), "{FF6347}Hack: %s (%d) has a desynced or hacked %s.", PlayerOOCName(playerid), playerid, WeaponName); UpdateWarnings(str); } } } } return 1; } stock LoopaWeaponName(weaponid) { new weapon_name[32]; if(weaponid == 0) weapon_name = "None"; else GetWeaponName(weaponid, weapon_name, 32); return weapon_name; } // Models of vehicles equipped with MDC new mdcEquippedVehs[] = { /** SAFMD **/ 407, // Fire truck 544, // Fire truck 2 416, // Ambulance /** PD **/ 427, // Enforcer 523, // Police bike 596, // Cruiser 597, // Cruiser 2 598, // Cruiser 3 599, // Ranger /** DEA **/ 601, // SWAT van 528, // DEA truck 490 // DEA rancher }; stock PlayerIsInMDCCar(playerid) { if(!IsPlayerInAnyVehicle(playerid)) return 0; new theirSeat = GetPlayerVehicleSeat(playerid); if(theirSeat != 0 && theirSeat != 1) return 0; // Check by dynamic vehicle faction ID new dynvehID = GetDynamicVehicleID(GetPlayerVehicleID(playerid)); switch(sVehicleInfo[dynvehID][v_faction]) { case 1: return 1; // All PD cars have MDC case 2: return 1; // All DEA cars have MDC case 3: return 1; // All SASD cars have MDC case 5: return 1; // All DoC cars have MDC case 6: return 1; // All government cars have MDC case 11: return 1; // All S9 cars have MDC } // Check by model new theirModel = GetVehicleModel(GetPlayerVehicleID(playerid)); for(new i = 0; i < sizeof(mdcEquippedVehs); i++) { if(theirModel == mdcEquippedVehs[i]) return 1; } return 0; } stock IsUnoccupiedVehicle(vehicleid) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(GetPlayerVehicleID(i) == vehicleid) { return false; } } } return true; } //Needs cleaning up #include "../gamemodes/todo/OnPlayerText.inc" //============================================================================== stock FixHour(hour) { hour = timeshift +hour; if(hour < 0) { hour = hour +24; } else if(hour > 23) { hour = hour -24; } return hour; } //============================================================================== stock IsS9InFaction(playerid) { return (PlayerInfo[playerid][pGroup] == GROUP_S9 && PlayerInfo[playerid][pMember] > 0); } stock GetFactionColour(faction) { switch(faction) { case FACTION_SAPD: return TEAM_BLUE_COLOR; case FACTION_FMD: return COLOR_DOCTOR; case FACTION_S9: return COLOR_S9; case FACTION_ARMY: return COLOR_DOC; case FACTION_SANG: return COLOR_SANG; case FACTION_SAS: return COLOR_SAS; } return TEAM_BLUE_COLOR; } stock GetFactionMaxRanks(faction) { switch(faction) { case FACTION_SAPD: return MAX_SAPD_RANKS; case FACTION_FBI: return MAX_FBI_RANKS; case FACTION_SASD: return MAX_SAST_RANKS; case FACTION_FMD: return MAX_SAFMD_RANKS; case FACTION_ARMY: return MAX_DOC_RANKS; case FACTION_GOV: return MAX_GOV_RANKS; case FACTION_JD: return MAX_SCOTUS_RANKS; case FACTION_NEWS: return MAX_NEWS_RANKS; case FACTION_TAXI: return MAX_TAXI_RANKS; case FACTION_S9: return MAX_S9_RANKS; case FACTION_SAS: return MAX_SAS_RANKS; case FACTION_SANG: return MAX_SANG_RANKS; default: return 1; } return -1; } stock CheckFactionRank(playerid) { if(PlayerInfo[playerid][pMember] != 0) { if(PlayerInfo[playerid][pRank] > GetFactionMaxRanks(PlayerInfo[playerid][pMember])) PlayerInfo[playerid][pRank] = GetFactionMaxRanks(PlayerInfo[playerid][pMember]); } return 1; } Timer:FixGPS(playerid){ if(IsPlayerInAnyVehicle(playerid)) { if(GPSOn[playerid] == 0) { GPSOn[playerid] = 1; foreach( new i: Player ) { if(GPSOn[i] == 1) { if(IsASAPD(i) && IsASAPD(playerid)) { SetPlayerMarkerForPlayer(playerid, i, GPSCOLOR_SAPD); SetPlayerMarkerForPlayer(i, playerid, GPSCOLOR_SAPD); } if(PlayerInfo[playerid][pMember] == 3 && PlayerInfo[i][pMember] == 3) { SetPlayerMarkerForPlayer(playerid, i, GPSCOLOR_SAST); SetPlayerMarkerForPlayer(i, playerid, GPSCOLOR_SAST); } if(IsAMedic(i) && IsAMedic(playerid)) { SetPlayerMarkerForPlayer(playerid, i, GPSCOLOR_LSFMD); SetPlayerMarkerForPlayer(i, playerid, GPSCOLOR_LSFMD); } if(IsAFBI(i) && IsAFBI(playerid)) { SetPlayerMarkerForPlayer(playerid, i, GPSCOLOR_FBI); SetPlayerMarkerForPlayer(i, playerid, GPSCOLOR_FBI); } } } } } return 1; } stock TogglePlayerGPS(playerid) { if(IsACop(playerid) || IsAMedic(playerid) || IsAFBI(playerid) || PlayerInfo[playerid][pMember] == 5) { if(IsPlayerInAnyVehicle(playerid)) { if(GPSOn[playerid] == 0) { GPSOn[playerid] = 1; PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_GRAD2, "GPS enabled."); fixGPSTimer[playerid] = SetTimerEx("Timer_FixGPS", 6000, true, "i", playerid); foreach( new i: Player ) { if(GPSOn[i] == 1) { if(IsASAPD(i) && IsASAPD(playerid)) { SetPlayerMarkerForPlayer(playerid, i, GPSCOLOR_SAPD); SetPlayerMarkerForPlayer(i, playerid, GPSCOLOR_SAPD); } if(PlayerInfo[playerid][pMember] == 3 && PlayerInfo[i][pMember] == 3) { SetPlayerMarkerForPlayer(playerid, i, GPSCOLOR_SAST); SetPlayerMarkerForPlayer(i, playerid, GPSCOLOR_SAST); } if(IsAMedic(i) && IsAMedic(playerid)) { SetPlayerMarkerForPlayer(playerid, i, GPSCOLOR_LSFMD); SetPlayerMarkerForPlayer(i, playerid, GPSCOLOR_LSFMD); } if(IsAFBI(i) && IsAFBI(playerid)) { SetPlayerMarkerForPlayer(playerid, i, GPSCOLOR_FBI); SetPlayerMarkerForPlayer(i, playerid, GPSCOLOR_FBI); } if(PlayerInfo[i][pMember] == 5 && PlayerInfo[playerid][pMember] == 5) { SetPlayerMarkerForPlayer(playerid, i, GPSCOLOR_DOC); SetPlayerMarkerForPlayer(i, playerid, GPSCOLOR_DOC); } } } } else if(GPSOn[playerid] == 1) { GPSOn[playerid] = 0; PlayerPlaySound(playerid, 1058, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_GRAD2, "GPS disabled."); KillTimer(fixGPSTimer[playerid]); foreach( new i: Player ) { if(GPSOn[i] == 1) { if(IsASAPD(i) && IsASAPD(playerid)) { SetPlayerMarkerForPlayer(playerid, i, TCOLOR_BLUE); SetPlayerMarkerForPlayer(i, playerid, TCOLOR_BLUE); } if(PlayerInfo[playerid][pMember] == 3 && PlayerInfo[i][pMember] == 3) { SetPlayerMarkerForPlayer(playerid, i, GPSCOLOR_SAST); SetPlayerMarkerForPlayer(i, playerid, GPSCOLOR_SAST); } if(IsAMedic(i) && IsAMedic(playerid)) { SetPlayerMarkerForPlayer(playerid, i, TCOLOR_PARAMEDIC); SetPlayerMarkerForPlayer(i, playerid, TCOLOR_PARAMEDIC); } if(IsAFBI(i) && IsAFBI(playerid)) { SetPlayerMarkerForPlayer(playerid, i, TCOLOR_NAVYBLUE); SetPlayerMarkerForPlayer(i, playerid, TCOLOR_NAVYBLUE); } if(PlayerInfo[i][pMember] == 5 && PlayerInfo[playerid][pMember] == 5) { SetPlayerMarkerForPlayer(playerid, i, COLOR_DOC_NAMETAG); SetPlayerMarkerForPlayer(i, playerid, COLOR_DOC_NAMETAG); } } } } } else return SendClientMessage(playerid, COLOR_GRAD2, "You are not in a vehicle."); } else return SendClientMessage(playerid, COLOR_GRAD2, "You are not a member of the SAPD / SAFMD / DEA / DoC."); return 1; } public LoadTrash() { new str[128]; for(new i = 0; i < sizeof(trashInfo); i++) { format(str, sizeof(str), "Trash\n{FFFFFF}%d/%d\n/gettrash", trashInfo[i][tAmount], trashInfo[i][tLimit]); trashInfo[i][trashLabelID] = CreateDynamic3DTextLabel(str, 0x43527DFF, trashInfo[i][posX], trashInfo[i][posY], trashInfo[i][posZ] +0.5, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); } return 1; } //============================================================================== forward OnPlayerRegister(playerid, pass[]); public OnPlayerRegister(playerid, pass[]) { if(IsPlayerConnected(playerid)) { new saveQuery[350]; new password[MAX_ENCRYPTED_PASS_LENGTH+1]; new salt[MAX_SALT_LENGTH]; new str[128]; HashPasswordEx(pass, password, salt); mysql_format(sqlGameConnection, saveQuery, sizeof(saveQuery), "INSERT INTO `players` SET Name = '%e', NewPassword = '%e', NewSalt = '%e'", PlayerName(playerid), password, salt); mysql_pquery(sqlGameConnection, saveQuery, "GetSQLID", "i", playerid); displayCenterHUDInfo(playerid, "Account ~r~registered.", 8); if(RegWarn) { new IP[16]; GetPlayerIp(playerid, IP, sizeof(IP)); format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s (ID %d) has just registered their account, (%s).", PlayerOOCName(playerid), playerid, IP); ABroadCast(COLOR_WHITE, str, 1); gpci(playerid,playerserial,sizeof(playerserial)); format(str, sizeof(str), "{FF0000}AdmWarn:{FFFFFF} %s, %s", PlayerOOCName(playerid), playerserial); ABroadCast(COLOR_WHITE, str, 1); if(strmatch(playerserial, Ban1gpci) || strmatch(playerserial, Ban2gpci) || strmatch(playerserial, Ban3gpci) || strmatch(playerserial, Ban4gpci) || strmatch(playerserial, Ban5gpci)) { format(str, sizeof(str), "{FF0000}AdmWarn:{FFFFFF} LAST-BAN MATCH ( Auto-Banned for ban evasion )"); //new BE[2]; ABroadCast(COLOR_WHITE, str, 1); //BanPlayer(playerid, playerid, "PERMANENT", "Ban Evading"); BanAccount(playerid, playerid, "Ban Evading"); } } gPlayerLogged[playerid] = 1; PlayerInfo[playerid][pReg] = 1; //==[ Show default MOTD messages]=== SendClientMessage(playerid, MOTD_COLOR, MOTD_MESSAGE1); SendClientMessage(playerid, MOTD_COLOR, MOTD_MESSAGE2); SendClientMessage(playerid, MOTD_COLOR, MOTD_MESSAGE4); updatePlayerIP(playerid); SpawnPlayer( playerid ); CheckExistingPrisons(playerid); JustRegistered[playerid] = true; ShowSkinShop(playerid, true, false, false, false, true); } return 1; } forward GetSQLID(playerid); public GetSQLID(playerid) //get ID after insert query has complete. { new saveQuery[300]; mysql_format(sqlGameConnection, saveQuery, sizeof(saveQuery), "SELECT `ID` FROM `players` WHERE `name` = '%e' LIMIT 1", PlayerName(playerid)); mysql_pquery(sqlGameConnection, saveQuery, "SetPlayerID", "i", playerid); SQLSave(playerid); return 1; } stock StopAdminFlying(playerid) { if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You can't use this when you're inside of a vehicle."); new Float:fPos[4]; GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]); SetPlayerPos(playerid, fPos[0], fPos[1], fPos[2] +1.0); ClearAnimationsEx(playerid); SetPlayerArmour(playerid, 100.0); SetPlayerHealth(playerid, 100.0); KillTimer(flyingTimer[playerid]); isPlayerFlying[playerid] = false; SetTimerEx("Timer_ResetFlyHealth", 2000, false, "i", playerid); return 1; } stock StartAdminFlying(playerid) { if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You can't use this when you're inside of a vehicle."); GetPlayerHealth(playerid, pFlyHealth[playerid]); SetPlayerArmour(playerid, pFlyArmour[playerid]); new Float:fPos[4]; GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]); SetPlayerPos(playerid, fPos[0], fPos[1], fPos[2] +5); SetPlayerHealth(playerid, 1000000000.0); flyingTimer[playerid] = SetTimerEx("Timer_SetPlayerFlying", 100, true, "i", playerid); isPlayerFlying[playerid] = true; return 1; } Timer:ResetFlyHealth(playerid) { SetPlayerHealth(playerid, pFlyHealth[playerid]); SetPlayerArmour(playerid, pFlyArmour[playerid]); return 1; } Timer:SetPlayerFlying(playerid) { if(isPlayerFlying[playerid]) { if(!IsPlayerInAnyVehicle(playerid)) { new plKeys, updown, leftright, Float:x[2], Float:y[2], Float:z; GetPlayerKeys(playerid, plKeys, updown, leftright); GetPlayerVelocity(playerid, x[0], y[0], z); if(updown == KEY_UP) { GetPlayerCameraPos(playerid, x[0], y[0], z); GetPlayerCameraFrontVector(playerid, x[1], y[1], z); ApplyAnimationEx(playerid, "SWIM", "SWIM_crawl", 4.1, 0, 1, 1, 0, 0); SetPlayerFacingPoint(playerid, x[0] + x[1], y[0] + y[1]); SetPlayerVelocity(playerid, x[1], y[1], z); } else { SetPlayerVelocity(playerid, 0.0, 0.0, 0.01); } } } return 0; } stock SetPlayerFacingPoint(playerid, Float:X, Float:Y) { new Float:pX1, Float:pY1, Float:pZ1, Float:ang; if(!IsPlayerConnected(playerid)) return 0; GetPlayerPos(playerid, pX1, pY1, pZ1); if(Y > pY1) ang = (-acos((X - pX1) / floatsqroot((X - pX1) *(X - pX1) + (Y - pY1) *(Y - pY1))) - 90.0); else if(Y < pY1 && X < pX1) ang = (acos((X - pX1) / floatsqroot((X - pX1) *(X - pX1) + (Y - pY1) *(Y - pY1))) - 450.0); else if(Y < pY1) ang = (acos((X - pX1) / floatsqroot((X - pX1) *(X - pX1) + (Y - pY1) *(Y - pY1))) - 90.0); if(X > pX1) ang = (floatabs(floatabs(ang) + 180.0)); else ang = (floatabs(ang) - 180.0); ang += 180.0; SetPlayerFacingAngle(playerid, ang); return true; } //Surnames stock SaveLoopa() { new file[25]; format(file, sizeof(file), "Loopasafe.cfg"); if(!dini_Exists(file)) dini_Create(file); dini_IntSet(file, "Weapon1", LoopasafeWeapon[0]); dini_IntSet(file, "Weapon2", LoopasafeWeapon[1]); dini_IntSet(file, "Weapon3", LoopasafeWeapon[2]); dini_IntSet(file, "Weapon4", LoopasafeWeapon[3]); dini_IntSet(file, "Weapon5", LoopasafeWeapon[4]); dini_IntSet(file, "Weapon6", LoopasafeWeapon[5]); dini_IntSet(file, "Weapon7", LoopasafeWeapon[6]); dini_IntSet(file, "Weapon8", LoopasafeWeapon[7]); dini_IntSet(file, "Weapon9", LoopasafeWeapon[8]); dini_IntSet(file, "Weapon10", LoopasafeWeapon[9]); dini_IntSet(file, "Cash", LoopasafeCash); dini_IntSet(file, "Pot", LoopasafePot); dini_IntSet(file, "Crack", LoopasafeCrack); dini_IntSet(file, "Mats", LoopasafeMats); return 1; } stock LoadLoopa() { new file[25]; format(file, sizeof(file), "Loopasafe.cfg"); if(!dini_Exists(file)) dini_Create(file); LoopasafeWeapon[0] = dini_Int(file, "Weapon1"); LoopasafeWeapon[1] = dini_Int(file, "Weapon2"); LoopasafeWeapon[2] = dini_Int(file, "Weapon3"); LoopasafeWeapon[3] = dini_Int(file, "Weapon4"); LoopasafeWeapon[4] = dini_Int(file, "Weapon5"); LoopasafeWeapon[5] = dini_Int(file, "Weapon6"); LoopasafeWeapon[6] = dini_Int(file, "Weapon7"); LoopasafeWeapon[7] = dini_Int(file, "Weapon8"); LoopasafeWeapon[8] = dini_Int(file, "Weapon9"); LoopasafeWeapon[9] = dini_Int(file, "Weapon10"); LoopasafeCash = dini_Int(file, "Cash"); LoopasafePot = dini_Int(file, "Pot"); LoopasafeCrack = dini_Int(file, "Crack"); LoopasafeMats = dini_Int(file, "Mats"); return 1; } //============================================================================== public LoadSurnames() { new arrCoords[4][64]; new strFromFile2[512]; new File: file = fopen("surnames.cfg", io_read); if(file) { new idx; while(idx < sizeof(SurnameInfo)) { fread(file, strFromFile2); split(strFromFile2, arrCoords, '|'); SurnameInfo[idx][Taken] = strvalEx(arrCoords[0]); strmid(SurnameInfo[idx][Surname], arrCoords[1], 0, strlen(arrCoords[1]), 255); strmid(SurnameInfo[idx][Owner], arrCoords[2], 0, strlen(arrCoords[2]), 255); strmid(SurnameInfo[idx][AddedBy], arrCoords[3], 0, strlen(arrCoords[3]), 255); idx++; } fclose(file); } return 1; } //============================================================================== public SaveSurnames() { new idx; new File:file; file = fopen("surnames.cfg", io_write); fclose(file); file = fopen("surnames.cfg", io_append); new coordsstring[512]; if(file) { while(idx < sizeof(SurnameInfo)) { if(SurnameInfo[idx][Taken] == 1) { format(coordsstring, sizeof(coordsstring), "%d|%s|%s|%s\n", SurnameInfo[idx][Taken], SurnameInfo[idx][Surname], SurnameInfo[idx][Owner], SurnameInfo[idx][AddedBy]); fwrite(file, coordsstring); } idx++; } fclose(file); } else { printf("[error] Failed to find surnames.cfg"); } return 1; } stock IsPlayerMoving(playerid) { new Float:Velocity[3]; GetPlayerVelocity(playerid, Velocity[0], Velocity[1], Velocity[2]); if(Velocity[0] >= 0.02 || Velocity[1] >= 0.02 || Velocity[2] >= 0.02 || Velocity[0] <= -0.02 || Velocity[1] <= -0.02 || Velocity[2] <= -0.02) return true; return false; } stock IsPlayerFalling(playerid) { new Float:Velocity[3]; GetPlayerVelocity(playerid, Velocity[0], Velocity[1], Velocity[2]); if(Velocity[2] <= -0.5) return true; return false; } stock GetPlayerForename(playerid) { new pNames[24]; GetPlayerName(playerid, pNames, sizeof(pNames)); for(new i = 0; i < 24; i++) { if(pNames[i] == '_') { strdel(pNames, i, 24); break; } } return pNames; } stock GetPlayerSurname(playerid) { new pNames[24]; GetPlayerName(playerid, pNames, sizeof(pNames)); for(new i = 0; i < 24; i++) { if(pNames[i] == '_') { strdel(pNames, 0, i); } } return pNames; } stock GetPlayerSurnameStr(string[]) { new pNames[24]; format(pNames, sizeof(pNames), "%s", string); for(new i = 0; i < 24; i++) { if(pNames[i] == '_') { strdel(pNames, 0, i); } } return pNames; } //============================================================================== IsNumeric(const string2[]) { for(new i = 0, j = strlen(string2); i < j; i++) { if(string2[i] > '9' || string2[i] < '0') return 0; } return 1; } //============================================================================== ReturnUser(text[]) { new smalltext[MAX_PLAYER_NAME]; // format(str,sizeof(str), "Original input str is: %s", text); // SendClientMessageToAll(COLOR_GRAD1, str); strmid(smalltext, text, 0, MAX_PLAYER_NAME); //extract from 0 to 24, put in smalltext //check if id 0 if(!strcmp(smalltext, "0")) { if(IsPlayerConnected(0)) { //SendClientMessageToAll(COLOR_GRAD1, "returned id 0"); return 0; //return id 0 } else { return INVALID_PLAYER_ID; } } //convert str to number new targetid = strval(smalltext); if(targetid < 0) { //SendClientMessageToAll(COLOR_GRAD1, "id is negative"); return INVALID_PLAYER_ID; } if(targetid) //is an id { if(IsPlayerConnected(targetid)) { //SendClientMessageToAll(COLOR_GRAD1, "returned an id"); return targetid; } else { return INVALID_PLAYER_ID; } } else //if part of a players name { new playerName[MAX_PLAYER_NAME]; foreach( new i: Player ) { GetPlayerName(i, playerName, MAX_PLAYER_NAME); if(!strcmp(playerName, smalltext, true, strlen(smalltext))) { //SendClientMessageToAll(COLOR_GRAD1, "looped through and found name"); return i; } } } //SendClientMessageToAll(COLOR_GRAD1, "returned invalid id"); return INVALID_PLAYER_ID; } //============================================================================== //============================================================================== public OnRconCommand(cmd[]) { if(strcmp(cmd, "safegmx", true) == 0) { GameModeInitExitFunc(); return 1; } return 0; } public OnRconLoginAttempt(ip[], password[], success) { new playerip[16]; foreach( new i: Player ) { if(IsPlayerConnected(i)) { GetPlayerIp(i, playerip, 16); if(!strcmp(playerip, ip,true)) { if(success) { #if DEVMODE == 0 if( PlayerInfo[i][pID] != 7378 && PlayerInfo[i][pID] != 7619) return KickEx(i); #else return 1; #endif } else { printf("FAILED RCON LOGIN BY IP %s USING PASSWORD %s",ip, password); } } } } return 1; } //============================================================================== stock getFreezeTime(playerid) { new time; new ping = GetPlayerPing(playerid); new multiply = ping / 100; if(ping == 65535) return 5000; if(multiply == 0) time = 2; else time = (multiply * 2) + 2; return (time * 1000); } //============================================================================== Timer:FreezePlayer(playerid, type, reason) { if(type == FREEZE) { TextDrawShowForPlayer(playerid, EnteranceStuff[0]); TextDrawShowForPlayer(playerid, EnteranceStuff[1]); TextDrawShowForPlayer(playerid, EnteranceStuff[2]); if(reason == ENTER_FREEZE) { TextDrawShowForPlayer(playerid, EnteranceStuff[3]); } if(reason == HELPNEWBIE_FREEZE) { TextDrawShowForPlayer(playerid, EnteranceStuff[4]); } if(reason == TESTER_FREEZE) { TextDrawShowForPlayer(playerid, EnteranceStuff[5]); } if(reason == GMX_FREEZE) { TextDrawShowForPlayer(playerid, EnteranceStuff[6]); } TogglePlayerControllable(playerid, false); PlayerFrozen[playerid] = 1; if(IsPlayerInAnyVehicle(playerid)) { if(reason == ENTER_FREEZE) Timer_FreezeVehicle(playerid, (getFreezeTime(playerid) /4), 0, reason); else Timer_FreezeVehicle(playerid, 500, 0, reason); //it'll also auto freeze the vehicle if in any. } else { if(reason == ENTER_FREEZE) SetTimerEx("Timer_FreezePlayer", getFreezeTime(playerid), false, "iii", playerid, UNFREEZE, reason); else SetTimerEx("Timer_FreezePlayer", 2000, false, "iii", playerid, UNFREEZE, reason); } } if(type == UNFREEZE) { TextDrawHideForPlayer(playerid, EnteranceStuff[0]); TextDrawHideForPlayer(playerid, EnteranceStuff[1]); TextDrawHideForPlayer(playerid, EnteranceStuff[2]); if(reason == ENTER_FREEZE) { TextDrawHideForPlayer(playerid, EnteranceStuff[3]); } if(reason == HELPNEWBIE_FREEZE) { TextDrawHideForPlayer(playerid, EnteranceStuff[4]); } if(reason == TESTER_FREEZE) { TextDrawHideForPlayer(playerid, EnteranceStuff[5]); } TogglePlayerControllable(playerid, true); PlayerFrozen[playerid] = 0; } else return 0; return 1; } Timer:FreezeVehicle(playerid, time, lasttime, reason) //this is related to the functon above, don't use it in other cases! { if(time > lasttime) { if(reason == ENTER_FREEZE) { if((lasttime %2) == 0) SetVehicleVelocity(GetPlayerVehicleID(playerid), 0, 0, 0.02); else SetVehicleVelocity(GetPlayerVehicleID(playerid), 0, 0, 0); } else SetVehicleVelocity(GetPlayerVehicleID(playerid), 0, 0, 0); SetTimerEx("Timer_FreezeVehicle", 1, false, "iiii", playerid, time, lasttime +1, reason); } else Timer_FreezePlayer(playerid, UNFREEZE, reason); } //============================================================================== public ShowAccessDialog(playerid, type) { if(type == 0) { new bigstring[512], access[7], adminaccess[7]; for(new clear = 0; clear < 7; clear++) { access[clear] = -1; adminaccess[clear] = -1; } for(new check = 0; check < sizeof(AccessNames); check++) { for(new n = 0; n < 7; n++) { if(AccessNames[check][modid] == Accessories[playerid][n]) { access[n] = check; } } } for(new check = 0; check < sizeof(AdminAccessers); check++) { for(new n = 0; n < 7; n++) { if(AdminAccessers[check][modid] == Accessories[playerid][n]) { adminaccess[n] = check; } } } for(new i = 0; i < 7; i++) { if(access[i] != -1) { format(bigstring, sizeof(bigstring), "%s\n%s", bigstring, AccessNames[access[i]][modname]); } else if(adminaccess[i] != -1) { format(bigstring, sizeof(bigstring), "%s\n%s", bigstring, AdminAccessers[adminaccess[i]][modname]); } else format(bigstring, sizeof(bigstring), "%s\nEmpty", bigstring); } format(bigstring, sizeof(bigstring), "%s\n{BABABA}Equip All\n{BABABA}Unequip All", bigstring); ShowPlayerDialog(playerid, 24215, DIALOG_STYLE_LIST, "Gear", bigstring, "Select", "Cancel"); } return 1; } public OnPlayerClickTextDraw(playerid, Text:clickedid) { playerClickOTextDraw(playerid, clickedid); playerClickCCTVTextDraw(playerid, clickedid); return 1; } #include "../gamemodes/inc/families/fsafes.inc" #include "../gamemodes/inc/factions/fmddrugs.inc" #include "../gamemodes/inc/items/dufflebag.inc" public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid) { playerClickObjectTextDraw(playerid, playertextid); 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) { AccessoriesX[playerid][index] = fOffsetX; AccessoriesY[playerid][index] = fOffsetY; AccessoriesZ[playerid][index] = fOffsetZ; AccessoriesrX[playerid][index] = fRotX; AccessoriesrY[playerid][index] = fRotY; AccessoriesrZ[playerid][index] = fRotZ; AccessoriessX[playerid][index] = fScaleX; AccessoriessY[playerid][index] = fScaleY; AccessoriessZ[playerid][index] = fScaleZ; SetPlayerAttachedObject(playerid, index, modelid, boneid, AccessoriesX[playerid][index], AccessoriesY[playerid][index], AccessoriesZ[playerid][index], AccessoriesrX[playerid][index], AccessoriesrY[playerid][index], AccessoriesrZ[playerid][index], AccessoriessX[playerid][index], AccessoriessY[playerid][index], AccessoriessZ[playerid][index], GetGearColour(Accessoriesc1[playerid][index])); DeletePVar(playerid, "ManageAccessID"); SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have finished editing, use /gear to make any further adjustments to the color."); return 1; } stock LoadDMV() { CreatePickup(1318, 1, 1221.9650, -1812.1187, 16.5938, 0); CreateDynamic3DTextLabel("Department of Motor Vehicles\n{FFFFFF}Use /enter to go inside", 0x43527DFF, 1221.9650, -1812.1187, 16.5938 + 0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreatePickup(1239, 1, 1491.2963, 1306.1758, 1093.2964, 0); CreateDynamic3DTextLabel("Department of Motor Vehicles\n{FFFFFF}Use /sitlicense to proceed", 0x43527DFF, 1491.2963, 1306.1758, 1093.2964 + 0.60, 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 100); CreateDynamicMapIcon(1221.9650, -1812.1187, 16.5938, 55, -1, 0, 0, -1, 100.0, MAPICON_LOCAL); DMVCar[0] = CreateVehicle(436, 1239.7406, -1834.3180, 13.1070, 181.6799, 92, 92, 100); //Previon 1 DMVCar[1] = CreateVehicle(436, 1244.7654, -1834.2308, 13.1070, 181.6799, 92, 92, 100); //Previon 2 DMVCar[2] = CreateVehicle(436, 1249.6190, -1834.3602, 13.1070, 181.6799, 92, 92, 100); //Previon 3 SetVehicleParamsEx(DMVCar[0], 0, 0, 0, 1, 0, 0, 0); SetVehicleParamsEx(DMVCar[1], 0, 0, 0, 1, 0, 0, 0); SetVehicleParamsEx(DMVCar[2], 0, 0, 0, 1, 0, 0, 0); SetVehicleVirtualWorld(DMVCar[0], 5); SetVehicleVirtualWorld(DMVCar[1], 5); SetVehicleVirtualWorld(DMVCar[2], 5); return 1; } stock removeSlotComponent(vehicleid, slot) { new component = GetVehicleComponentInSlot(vehicleid, slot); RemoveVehicleComponent(vehicleid, component); } //I have removed this from GM since it's an insane 14k lines LONG and needs reworking e.g y_dialogs #include "../gamemodes/todo/OnDialogResponse.inc" #include "../gamemodes/inc/family_levels.inc" // cant put it in /families as /todo/OnDialogResponse can't reach it, will change soon //gear functions stock equipAllGear(playerid) { for(new i = 0; i < 7; i++) { if(Accessories[playerid][i]) //has an accessory { if(AccessoriesX[playerid][i] == 0.0 && AccessoriesY[playerid][i] == 0.0 && AccessoriesZ[playerid][i] == 0.0 && AccessoriesB[playerid][i] == 0) //has been equipped for the first time { //could give warning that gear has not been positoned } else { SetPlayerAttachedObject(playerid, i, Accessories[playerid][i], AccessoriesB[playerid][i], AccessoriesX[playerid][i], AccessoriesY[playerid][i], AccessoriesZ[playerid][i], AccessoriesrX[playerid][i], AccessoriesrY[playerid][i], AccessoriesrZ[playerid][i], AccessoriessX[playerid][i], AccessoriessY[playerid][i], AccessoriessZ[playerid][i], GetGearColour(Accessoriesc1[playerid][i])); } } } SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have equipped all the gear."); return 1; } stock removeAllGear(playerid) { for(new i = 0; i < 7; i++) { RemovePlayerAttachedObject(playerid, i); } SendClientMessage(playerid, COLOR_LIGHTBLUE, "* You have unequipped all the gear."); return 1; } stock displayAdminMessages(playerid) { new string[128] = "None"; //display stuff here new amsgs[2560]; for(new i = 0; i < sizeof(aMessageInfo); i++) { string = aMessageInfo[i]; if(strcmp(string, "None", true) != 0) //if string is not "None" { //SendClientMessage(playerid, COLOR_GRAD1, aMessageInfo[i]); //change to send admin message format(amsgs, sizeof(amsgs), "{BFBDBE}%s %s\n", amsgs, string); } } ShowPlayerDialog(playerid, AMSGS, DIALOG_STYLE_INPUT, "Admin Messages", amsgs, "Ok", "Cancel"); } //new tazer stock setPlayerRubber(playerid) { if(PlayerCuffed[playerid] == 2) //if the player is standing up and being tazed (while cuffed), it sets their cuffed type to down on ground { PlayerCuffed[playerid] = 1; } TogglePlayerControllable(playerid, false); PlayerTazed[playerid] = 1; PlayerTazedTime[playerid] = 5; lostFoodTray(playerid); ClearAnimationsEx(playerid); ApplyAnimationEx(playerid, "PED", "FLOOR_hit_f", 4.0, 0, 1, 1, 1, 0, 1); return 1; } stock setPlayerTazed(playerid) { if(PlayerCuffed[playerid] == 2) //if the player is standing up and being tazed (while cuffed), it sets their cuffed type to down on ground { PlayerCuffed[playerid] = 1; } TogglePlayerControllable(playerid, false); PlayerTazed[playerid] = 1; PlayerTazedTime[playerid] = 12; lostFoodTray(playerid); ClearAnimationsEx(playerid); ApplyAnimationEx(playerid, "PED", "FLOOR_hit_f", 4.0, 0, 1, 1, 1, 0, 1); playLocalSound(playerid, TAZER_SHOCK, 5.0, 0); return 1; } Timer:playerUntaze(playerid) { if(IsPlayerConnected(playerid)) { TogglePlayerControllable(playerid, true); ClearAnimationsEx(playerid); } return 1; } setPlayerUntazed(playerid) { if(PlayerCuffed[playerid] == 0) //only unfreeze player if they are not cuffed { ApplyAnimationEx(playerid, "PED", "getup_front", 4.0, 0, 1, 1, 0, 0, 1); SetTimerEx("Timer_playerUntaze", 2 *1000, 0, "i", playerid); //2 seconds } PlayerTazed[playerid] = 0; PlayerTazedTime[playerid] = 0; return 1; } stock AddTicket(playerid, suspect, amount, reason[], type) // type, 0 - issued by cops, 1 - issued by speed camera { new TicketPID = PlayerInfo[suspect][pID]; new TicketIssuer; if(type != 1) TicketIssuer = PlayerInfo[playerid][pID]; else TicketIssuer = 0; new query[800], day, month, year, hour, minute, second, dstr[40]; gettime(hour, minute, second); getdate(year, month, day); format(dstr, sizeof(dstr), "%d/%d/%d %d:%d:%d", day, month, year, hour, minute, second); if(type != 1) { mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `tickets` (`TicketPID`, `TicketIssuer`, `Date`, `Active`, `TicketReason`, `IssuerName`, `Amount`) VALUES('%i', '%i', '%e', 1, '%e', '%e', '%i')", TicketPID, TicketIssuer, dstr, reason, PlayerName(playerid), amount); } else { new speedreason[20] = "Speeding", speedname[20] = "Speed Camera"; mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `tickets` (`TicketPID`, `TicketIssuer`, `Date`, `Active`, `TicketReason`, `IssuerName`, `Amount`) VALUES('%i', '%i', '%e', 1, '%e', '%e', '%i')", TicketPID, TicketIssuer, dstr, speedreason, speedname, amount); } mysql_pquery(sqlGameConnection, query); return 1; } stock AddCrime(playerid, suspect, type, reason[]) { new CrimePID = PlayerInfo[suspect][pID]; new CrimeIssuer = PlayerInfo[playerid][pID]; new query[800], day, month, year, hour, minute, second, dstr[40]; gettime(hour, minute, second); getdate(year, month, day); format(dstr, sizeof(dstr), "%d/%d/%d %d:%d:%d", day, month, year, hour, minute, second); mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `newcrimes` (`CrimePID`, `CrimeIssuer`, `Date`, `CrimeEnabled`, `CrimeType`, `CrimeReason`, `RealName`) VALUES('%i', '%i', '%e', 1, '%d', '%e', '%e')", CrimePID, CrimeIssuer, dstr, type, reason, PlayerName(playerid)); mysql_pquery(sqlGameConnection, query); return 1; } stock AddOfflineCrime(playerid, suspect[], type, reason[]) { new query[800], rows, fields, CrimePID, Cache:result; mysql_format(sqlGameConnection, query, sizeof(query), "SELECT * FROM `players` WHERE `Name` = '%e' LIMIT 1", suspect); result = mysql_query(sqlGameConnection, query); cache_get_data(rows, fields, sqlGameConnection); CrimePID = cache_get_field_content_int(0, "ID"); new CrimeIssuer = PlayerInfo[playerid][pID]; new qqq[200], day, month, year, hour, minute, second, dstr[40]; gettime(hour, minute, second); getdate(year, month, day); format(dstr, sizeof(dstr), "%d/%d/%d %d:%d:%d", day, month, year, hour, minute, second); cache_delete(Cache:result, sqlGameConnection); mysql_format(sqlGameConnection, qqq, sizeof(qqq), "INSERT INTO `newcrimes` (`CrimePID`, `CrimeIssuer`, `Date`, `CrimeEnabled`, `CrimeType`, `CrimeReason`, `RealName`) VALUES('%i', '%i', '%e', 1, '%d', '%e', '%e')", CrimePID, CrimeIssuer, dstr, type, reason, PlayerName(playerid)); mysql_pquery(sqlGameConnection, qqq, "", ""); return 1; } stock GetPlayerIDFromName(name[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { new playername2[MAX_PLAYER_NAME]; GetPlayerName(i, playername2, sizeof(playername2)); if(strmatch(playername2, name)) { return i; } } } return INVALID_PLAYER_ID; } //new cuffs stock setPlayerCuffed(playerid, freezeplayer) { //reset tazer PlayerTazed[playerid] = 0; PlayerTazedTime[playerid] = 0; ClearAnimationsEx(playerid); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CUFFED); if(freezeplayer) { TogglePlayerControllable(playerid, false); ApplyAnimationEx(playerid, "PED", "FLOOR_hit_f", 4.0, 0, 1, 1, 1, 0, 1); PlayerCuffed[playerid] = 1; } else { PlayerCuffed[playerid] = 2; } playLocalSound(playerid, 17803, 5.0, 0); // 15 minutes, 5 minutes is way too short. Not enough time to process criminals PlayerCuffedTime[playerid] = 900; new skin = GetPlayerSkin(playerid); SetPlayerAttachedObject(playerid, INDEX_0, 19418, 6, CUFFS_cuffOffsets[skin][0], CUFFS_cuffOffsets[skin][1], CUFFS_cuffOffsets[skin][2], CUFFS_cuffOffsets[skin][3], CUFFS_cuffOffsets[skin][4], CUFFS_cuffOffsets[skin][5], CUFFS_cuffOffsets[skin][6], CUFFS_cuffOffsets[skin][7], CUFFS_cuffOffsets[skin][8]); return 1; } Timer:playerUncuff(playerid) { if(IsPlayerConnected(playerid)) { TogglePlayerControllable(playerid, true); ClearAnimationsEx(playerid); } return 1; } stock setPlayerUncuffed(playerid) { if(PlayerCuffed[playerid] == 2) { TogglePlayerControllable(playerid, true); //the player only gets frozen if /detain is used //ClearAnimationsEx(playerid); //SetTimerEx("playerUncuff",2*1000,0,"i",playerid); //2 seconds } else //frozen { ApplyAnimationEx(playerid, "PED", "getup_front", 4.0, 0, 1, 1, 0, 0, 1); SetTimerEx("Timer_playerUncuff", 2 *1000, 0, "i", playerid); //2 seconds if(PlayerTazed[playerid] == 1) //if player was already tazed { PlayerTazed[playerid] = 0; PlayerTazedTime[playerid] = 0; } } new seat = GetPlayerVehicleSeat(playerid), car = GetPlayerVehicleID(playerid), inCar = 0; if(IsPlayerInAnyVehicle(playerid)) { inCar = 1; } SetPlayerSpecialAction(playerid, 0); RemovePlayerAttachedObject(playerid, INDEX_0); PlayerCuffed[playerid] = 0; PlayerCuffedTime[playerid] = 0; playLocalSound(playerid, 17803, 5.0, 0); if(inCar == 1) { PutPlayerInVehicle(playerid, car, seat); } return 1; } stock SearchBizProducts(playerid) { new businesses = 0; new dialogstr[50000]; for(new i = 0; i < MAX_BIZ; i++) { if(BizInfo[i][bProducts] <= 0) { new name[24]; strmid(name, str_replace('_', ' ', BizInfo[i][bOwner]), 0, MAX_PLAYER_NAME); format(dialogstr, sizeof(dialogstr), "%s\n{FFFFFF}(ID %d)\t\tOwner: %s\t\tName: %s\t\tEmpty since: %s", dialogstr, i, name, BizInfo[i][bName], BizInfo[i][bNoProdsDate]); businesses++; } } if(businesses != 0) { ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "{FF0000}Empty Businesses", dialogstr, "Close", ""); } else return SendClientMessage(playerid, COLOR_GREY, "There are currently no businesses out of products."); return 1; } //stock SetPlayerPickupObjectDelay(playerid, objtype, secs); stock SetPlayerPickupObjectDelay(playerid, objtype, secs) { SetTimerEx("Timer_SetPlayerPickupObject", secs *1000, 0, "ii", playerid, objtype); return 1; } Timer:SetPlayerPickupObject(playerid, objtype) { if(IsPlayerConnected(playerid)) { switch(objtype) { case 0: //crate object { SetPlayerAttachedObject(playerid, INDEX_8, 2912, 6, 0.05, -0.04, -0.20, 250, 0, 0, 0.5, 0.5, 0.5); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerArmedWeapon(playerid, 0); // disables weapons } case 1: //trash object { SetPlayerAttachedObject(playerid, INDEX_8, 1264, 6, 0.05, 0.06, -0.20, 250, 0, 0, 0.5, 0.5, 0.5); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerArmedWeapon(playerid, 0); // disables weapons } } } return 1; } stock placeBoomboxOnGround(playerid, num) { new string[128]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); GetXYInFrontOfPlayer(playerid, BoomboxInfo[playerid][bpos][0], BoomboxInfo[playerid][bpos][1], BoomboxInfo[playerid][bpos][2], BoomboxInfo[playerid][bpos][3], 1); switch(num) { case 1: { BoomboxInfo[playerid][bbObjectID] = CreateDynamicObject(2102, BoomboxInfo[playerid][bpos][0], BoomboxInfo[playerid][bpos][1], BoomboxInfo[playerid][bpos][2] -1.0, 0, 0, BoomboxInfo[playerid][bpos][3], GetPlayerVirtualWorld(playerid)); } case 2: { BoomboxInfo[playerid][bbObjectID] = CreateDynamicObject(2226, BoomboxInfo[playerid][bpos][0], BoomboxInfo[playerid][bpos][1], BoomboxInfo[playerid][bpos][2] -1.0, 0, 0, BoomboxInfo[playerid][bpos][3], GetPlayerVirtualWorld(playerid)); } case 3: { BoomboxInfo[playerid][bbObjectID] = CreateDynamicObject(2103, BoomboxInfo[playerid][bpos][0], BoomboxInfo[playerid][bpos][1], BoomboxInfo[playerid][bpos][2] -1.0, 0, 0, BoomboxInfo[playerid][bpos][3], GetPlayerVirtualWorld(playerid)); } case 4: { BoomboxInfo[playerid][bbObjectID] = CreateDynamicObject(2100, BoomboxInfo[playerid][bpos][0], BoomboxInfo[playerid][bpos][1], BoomboxInfo[playerid][bpos][2] -1.0, 0, 0, BoomboxInfo[playerid][bpos][3], GetPlayerVirtualWorld(playerid)); } default: { BoomboxInfo[playerid][bbObjectID] = CreateDynamicObject(2103, BoomboxInfo[playerid][bpos][0], BoomboxInfo[playerid][bpos][1], BoomboxInfo[playerid][bpos][2] -1.0, 0, 0, BoomboxInfo[playerid][bpos][3], GetPlayerVirtualWorld(playerid)); } } format(string, sizeof(string), "%s's Stereo\n{FFFFFF}/edit", playername); BoomboxInfo[playerid][bbLabelID] = CreateDynamic3DTextLabel(string, 0x6E88FFFF, BoomboxInfo[playerid][bpos][0], BoomboxInfo[playerid][bpos][1], BoomboxInfo[playerid][bpos][2] - 1 +0.88, 40.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, GetPlayerVirtualWorld(playerid), -1, -1, 30.0); SetPlayerSpecialAction(playerid, 0); ApplyAnimationEx(playerid, "CARRY", "putdwn", 3.0, 0, 0, 0, 0, 0, 0); BoomboxInfo[playerid][placedBoombox] = 1; BoomboxInfo[playerid][BoomboxWorld] = GetPlayerVirtualWorld(playerid); return 1; } stock destroyBoomBox(playerid) { //reset boombox variables, this should be on onplayerdisconnect not here BoomboxInfo[playerid][boomboxTurnedOn] = 0; BoomboxInfo[playerid][locked] = 0; BoomboxInfo[playerid][placedBoombox] = 0; BoomboxInfo[playerid][bpos][0] = 0; //x BoomboxInfo[playerid][bpos][1] = 0; //y BoomboxInfo[playerid][bpos][2] = 0; //z BoomboxInfo[playerid][bpos][3] = 0; //a BoomboxInfo[playerid][BoomboxWorld] = -1; format(BoomboxInfo[playerid][BoomboxURL], 256, ""); if(BoomboxInfo[playerid][bbObjectID]) { DestroyDynamicObjectEx(BoomboxInfo[playerid][bbObjectID]); } DestroyDynamic3DTextLabel(BoomboxInfo[playerid][bbLabelID]); BoomboxInfo[playerid][bbObjectID] = 0; BoomboxInfo[playerid][bbLabelID] = Text3D:INVALID_3DTEXT_ID; } stock pickupBoombox(playerid) //NEEDS TO BE SCRIPTED { new bbid = editingBoomboxID[playerid]; if(IsPlayerInRangeOfPoint(playerid, 3, BoomboxInfo[bbid][bpos][0], BoomboxInfo[bbid][bpos][1], BoomboxInfo[bbid][bpos][2])) { if(GetPlayerVirtualWorld(playerid) == BoomboxInfo[bbid][BoomboxWorld]) { SetPlayerFacingObject(playerid, editingBoomboxID[playerid]); if(editingBoomboxID[playerid] != playerid) //not my boombox { PlayerInfo[playerid][pStereo] = PlayerInfo[bbid][pStereo]; //take their stereo model PlayerInfo[bbid][pStereo] = 0; //owner no longer has stereo } // destroyBoomBox(editingBoomboxID[playerid]); ApplyAnimationEx(playerid, "BOMBER", "BOM_Plant_2Idle", 4.0, 0, 0, 0, 0, 0); stopBoomboxStream(editingBoomboxID[playerid]); //loops through the players, checks if they are streaming this BB and if so stops their stream } } } // car radio commands stock stopBoomboxStream(boomboxid) { foreach( new i: Player ) { if(streamingFromBoombox[i] == boomboxid && GetPVarInt(i, "AudioDisabled") != 1) { //player is streaming BB streamingFromBoombox[i] = -1; StopAudioStreamForPlayer(i); } } } stock CarMessage(playerid, color, string[]) { new vehicleid = GetPlayerVehicleID(playerid); foreach( new i: Player ) { if(IsPlayerInVehicle(i, vehicleid)) { if(beingSpectatedID[i] != INVALID_PLAYER_ID) { if(IsPlayerConnected(beingSpectatedID[i]) && SpectatingID[beingSpectatedID[i]] == i) { SendClientMessage(beingSpectatedID[i], COLOR_GREY, string); } } SendClientMessage(i, color, string); } } return 1; } stock changeBoomboxRadioStation(boomboxid) { foreach( new i: Player ) { if(streamingFromBoombox[i] == boomboxid && GetPVarInt(i, "AudioDisabled") != 1) { //player is streaming BB StopAudioStreamForPlayer(i); PlayAudioStreamForPlayer(i, BoomboxInfo[boomboxid][BoomboxURL], BoomboxInfo[boomboxid][bpos][0], BoomboxInfo[boomboxid][bpos][1], BoomboxInfo[boomboxid][bpos][2], 30, 1); } } } stock isBoomboxWithinRange(playerid, range) //check if there are any other boomboxes within specified range { foreach( new i: Player ) { if(BoomboxInfo[i][placedBoombox]) { if(IsPlayerInRangeOfPoint(playerid, range, BoomboxInfo[i][bpos][0], BoomboxInfo[i][bpos][1], BoomboxInfo[i][bpos][2])) { if(GetPlayerVirtualWorld(playerid) == BoomboxInfo[i][BoomboxWorld]) { return 1; } } } } return 0; } stock getOwnerOfClosestBoombox(playerid) //check if there are any other boomboxes within specified range { foreach( new i: Player ) { if(BoomboxInfo[i][placedBoombox]) { if(IsPlayerInRangeOfPoint(playerid, 3, BoomboxInfo[i][bpos][0], BoomboxInfo[i][bpos][1], BoomboxInfo[i][bpos][2])) { if(GetPlayerVirtualWorld(playerid) == BoomboxInfo[i][BoomboxWorld]) { return i; //return the owners id } } } } return -1; } stock playVehicleStreamForAll(vehicleid) { foreach( new i: Player ) { if(GetPVarInt(i, "AudioDisabled") != 1) { if(IsPlayerInAnyVehicle(i)) { if(GetPlayerVehicleID(i) == vehicleid) { if(!disabledRadios[i]) { if(streamingFromBoombox[i] != -1) //if player is already streaming from a boombox, stop the stream { StopAudioStreamForPlayer(i); streamingFromBoombox[i] = -1; } PlayAudioStreamForPlayer(i, VehicleInfo[vehicleid][radioURL], 0.0, 0.0, 0.0, 0.0, 0); streamingFromVehicle[i] = vehicleid; } } } } } } stock stopVehicleStreamForAll(vehicleid) { foreach( new i: Player ) { if(IsPlayerInAnyVehicle(i)) { if(GetPlayerVehicleID(i) == vehicleid) { StopAudioStreamForPlayer(i); streamingFromVehicle[i] = -1; } } } } forward OnOIPCheck(playerid, name[]); public OnOIPCheck(playerid, name[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); //if(cache_num_rows() != 1) return OnINIoIPCheck(playerid, name); new ip[16]; cache_get_field_content(0, "IP", ip); format(ipchecking[playerid], 24, "%s", name); new link[135]; format(link, sizeof(link), "api.ipinfodb.com/v3/ip-city/?key=6e96000f89ab82ae854f4bd2a3189d84a4eed7c77df091972df7a146d8efcf1b&ip=%s", ip); HTTP(playerid, HTTP_GET, link, "", "IPCheckResponse"); return 1; } forward OnUnbanIP(playerid, ip[]); public OnUnbanIP(playerid, ip[]) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_GRAD1, "DEBUG: OnUnbanIP: cache_num_rows() == 0"); new query[128]; // just unban the ip, not the account mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `banlist` SET `IP` = '(IP Unbanned) %e' WHERE `IP` = '%e'", ip, ip); mysql_pquery(sqlGameConnection, query); return 1; } forward OnBanAccount(playerid, name[], reason[]); public OnBanAccount(playerid, name[], reason[]) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_GRAD2, "That player does not exist."); new string[128], ip[16], key[32], serial[128], band, adminlevel, permband, bannedpid, sqlid; cache_get_field_content(0, "IP", ip); cache_get_field_content(0, "Key_", key); cache_get_field_content(0, "Serial", serial); bannedpid = cache_get_field_content_int(0, "ID"); band = cache_get_field_content_int(0, "Band"); adminlevel = cache_get_field_content_int(0, "AdminLevel"); permband = cache_get_field_content_int(0, "PermBand"); sqlid = cache_get_field_content_int(0, "ID"); if(band > 0 && permband > 0) return SendClientMessage(playerid, COLOR_GRAD2, "That account is already banned."); new str[128]; if(adminlevel > PlayerInfo[playerid][pAdmin]) { format(str, sizeof(str), "{FF6347}SERVER: %s was banned, reason: attempting to ban a higher admin.", PlayerName(playerid)); SendClientMessageToAll(COLOR_WHITE, str); new breason[64]; format(breason, sizeof(breason), "attempting to ban a higher admin."); BanAccount(playerid, INVALID_PLAYER_ID, breason); //log before banning the account return 1; } if(sqlid == 7378 || sqlid == 7619){ SendClientMessage(playerid, COLOR_GREY, "Nice try motherfucker"); Kick(playerid); return 1;} new query[600], expires[] = "2030-01-01", adminname[MAX_PLAYER_NAME]; GetPlayerName(playerid, adminname, MAX_PLAYER_NAME); mysql_format(sqlGameConnection, query, sizeof(query), "INSERT INTO `banlist` (`userID`, `IP`, `Key_`, `Serial`, `Reason`, `BannedBy`, `Expires`, `Date`, `Banned`) VALUES(%d, '%e', '%e', '%e', '%e', '%e', '%e', NOW(), 1)", bannedpid, ip, key, serial, reason, adminname, expires); mysql_pquery(sqlGameConnection, query); mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE players SET Band=1, PermBand=1 WHERE Name='%e'", name); mysql_pquery(sqlGameConnection, query); /*new banquery[225]; mysql_format(sqlGameConnection, banquery, sizeof banquery, "INSERT INTO `punishmentlogs` SET player = %d, date = NOW(), admin = '%e', reason = '%e', punishment = 1", bannedpid, PlayerOOCName(playerid), reason); mysql_tquery(sqlGameConnection, banquery);*/ format(string, sizeof(string), "{FF0000}AdmWarning{FFFFFF}: %s has banned account '%s' and IP '%s'.", PlayerOOCName(playerid), name, ip); ABroadCast(COLOR_LIGHTRED, string, 1); return 1; } forward OnOChangePass(playerid, playername[], newpassword[]); public OnOChangePass(playerid, playername[], newpassword[]) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist."); new adminlevel = cache_get_field_content_int(0, "AdminLevel"); if(adminlevel > PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid, COLOR_GRAD2, "That player's account is a higher level admin than you."); new password[MAX_ENCRYPTED_PASS_LENGTH], salt[MAX_SALT_LENGTH]; //create new hash HashPasswordEx(newpassword, password, salt); //update new query[500]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `NewPassword` = '%e', `NewSalt`= '%e' WHERE `Name` = '%e' LIMIT 1", password, salt, playername); mysql_pquery(sqlGameConnection, query); new str[128]; format(str, sizeof(str), "{FF0000}AdmWarning{FFFFFF}: %s has changed %s's password.", PlayerName(playerid), playername); ABroadCast(COLOR_LIGHTRED, str, 1); return 1; } stock strmatch(const String1[], const String2[]) { if((strcmp(String1, String2, true, strlen(String2)) == 0) && (strlen(String2) == strlen(String1))) { return true; } else { return false; } } stock isMotorbike(vehicleid) { new model = GetVehicleModel(vehicleid); switch(model) { case 509: return true; case 481: return true; case 510: return true; case 462: return true; case 448: return true; case 581: return true; case 522: return true; case 461: return true; case 521: return true; case 523: return true; case 463: return true; case 586: return true; case 468: return true; case 471: return true; } return false; } //Fuel/Speedo (iGetty) stock GetVehicleSpeedKMH(vehicleid) // vehicle speed in KMH { new Float:xPos[3]; GetVehicleVelocity(vehicleid, xPos[0], xPos[1], xPos[2]); return floatround(floatsqroot(xPos[0] * xPos[0] + xPos[1] * xPos[1] + xPos[2] * xPos[2]) * 170.00); } forward updateFuelHUD(playerid); public updateFuelHUD(playerid) { if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { new vehicleid = GetPlayerVehicleID(playerid), speedstr[40]; if(!IsNonFuelVehicle(vehicleid)) { if(!ToggedFuel[playerid]) { if(Gas[vehicleid] >= 100)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~IIIIIIIII~r~I~l~I"); if(Gas[vehicleid] >= 90 && Gas[vehicleid] <= 99)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~IIIIIIIII~r~I~l~I"); if(Gas[vehicleid] >= 80 && Gas[vehicleid] <= 89)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~IIIIIIII~r~I~w~I~l~I"); if(Gas[vehicleid] >= 70 && Gas[vehicleid] <= 79)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~IIIIII~r~I~w~III~l~I"); if(Gas[vehicleid] >= 60 && Gas[vehicleid] <= 69)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~IIIII~r~I~w~IIII~l~I"); if(Gas[vehicleid] >= 50 && Gas[vehicleid] <= 59)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~IIII~r~I~w~IIIII~l~I"); if(Gas[vehicleid] >= 40 && Gas[vehicleid] <= 49)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~III~r~I~w~IIIIII~l~I"); if(Gas[vehicleid] >= 30 && Gas[vehicleid] <= 39)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~II~r~I~w~IIIIIII~l~I"); if(Gas[vehicleid] >= 20 && Gas[vehicleid] <= 29)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~I~r~I~w~IIIIIIII~l~I"); if(Gas[vehicleid] >= 10 && Gas[vehicleid] <= 19)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~~r~I~w~IIIIIIIII~l~I"); if(Gas[vehicleid] >= 0 && Gas[vehicleid] <= 9)PlayerTextDrawSetString(playerid, FuelTextdraw[playerid], "~g~~h~FUEL ~l~I~w~~r~I~w~IIIIIIIII~l~I"); } } if(!ToggedSpeedo[playerid]) { if(CurrentSpeedUnitMPH[playerid] == true) { format(speedstr, sizeof(speedstr), "~g~~h~SPEED~w~ %d MPH", GetVehicleSpeed(vehicleid)); PlayerTextDrawSetString(playerid, SpeedoTextdraw[playerid], speedstr); } else { format(speedstr, sizeof(speedstr), "~g~~h~SPEED~w~ %d KMH", GetVehicleSpeedKMH(vehicleid)); // speed in KPH. Using %d for whole number because the numbers after the dot don't matter really. PlayerTextDrawSetString(playerid, SpeedoTextdraw[playerid], speedstr); } } if(!ToggedVHealth[playerid]) { new Float:damage; GetVehicleHealth(vehicleid, damage); format(speedstr, sizeof(speedstr), "~g~~h~HEALTH~w~ %d%", floatround(damage / 10, floatround_ceil)); PlayerTextDrawSetString(playerid, VHealthTextDraw[playerid], speedstr); } } return 1; } stock GetWeek() // Credits to ipsBruno. Edited by Emmet. { new date[3], week = 0, calendar = 0, weekday = 0 ; getdate(date[2], date[1], date[0]); calendar = (date[2] % 100); weekday = (date[2] / 100); if(date[1] < 3) { date[1] += 12; date[2] -= 1; } week = ((date[0] + (date[1] + 1) * 26 / 10 + calendar + calendar / 4 + weekday / 4 - 2 * weekday) % 7); return week; } stock GetWeekYear(day, month, year) // Not mine! this was converted from C++. { new a = year; new b = (a / 4) - (a / 100) + (a / 400); new c = ((a - 1) / 4) - ((a - 1) / 100) + ((a - 1) / 400); new s = b - c; new e = s + 1; new f = day + ((153 * (month - 3) + 2) / 5) + 58 + s; if(month < 3) { a = year - 1; b = (a / 4) - (a / 100) + (a / 400); c = ((a - 1) / 4) - ((a - 1) / 100) + ((a - 1) / 400); s = b - c; e = 0; f = day - 1 + 31 * (month - 1); } new g = (a + b) % 7; new d = (f + g - e) % 7; new n = f + 3 - d; if(n < 0) { n = 53 - ((g - s) / 5); } else if(n > 364 + s) { n = 1; } else { n = (n / 7) + 1; } return n - 1; } stock strftime(const string[], dest[], size = sizeof(dest)) { if(!string[0]) return 0; new date[6], value[36], pos = 0; dest[0] = EOS; strcat(dest, string, size); getdate(date[2], date[1], date[0]); gettime(date[3], date[4], date[5]); while(dest[pos++] != EOS) if(dest[pos - 1] == '%') { switch(dest[pos]) { case 'a': switch(GetWeek()) { case 0: value = "Sat"; case 1: value = "Sun"; case 2: value = "Mon"; case 3: value = "Tue"; case 4: value = "Wed"; case 5: value = "Thu"; case 6: value = "Fri"; } case 'A': switch(GetWeek()) { case 0: value = "Saturday"; case 1: value = "Sunday"; case 2: value = "Monday"; case 3: value = "Tuesday"; case 4: value = "Wednesday"; case 5: value = "Thursday"; case 6: value = "Friday"; } case 'b': switch(date[1]) { case 1: value = "Jan"; case 2: value = "Feb"; case 3: value = "Mar"; case 4: value = "Apr"; case 5: value = "May"; case 6: value = "Jun"; case 7: value = "Jul"; case 8: value = "Aug"; case 9: value = "Sep"; case 10: value = "Oct"; case 11: value = "Nov"; case 12: value = "Dec"; } case 'B': switch(date[1]) { case 1: value = "January"; case 2: value = "February"; case 3: value = "March"; case 4: value = "April"; case 5: value = "May"; case 6: value = "June"; case 7: value = "July"; case 8: value = "August"; case 9: value = "September"; case 10: value = "October"; case 11: value = "November"; case 12: value = "December"; } case 'c': { format(value, 36, "%02d/%02d/%02d %02d:%02d:%02d", date[1], date[0], date[2] - 2000, date[3], date[4], date[5]); } case 'd': { format(value, 36, "%02d", date[0]); } case 'H': { format(value, 36, "%02d", date[3]); } case 'I': { format(value, 36, "%02d", (date[3] > 12) ? (date[3] - 12) : (date[3])); } case 'j': { format(value, 36, "%d", getdate()); } case 'm': { format(value, 36, "%02d", date[1]); } case 'M': { format(value, 36, "%02d", date[4]); } case 'p': { format(value, 36, "%s", (date[3] >= 12) ? ("PM") : ("AM")); } case 'S': { format(value, 36, "%02d", date[5]); } case 'U', 'W': { format(value, 36, "%d", GetWeekYear(date[0], date[1], date[2])); } case 'w': switch(GetWeek()) { case 0: format(value, 36, "6"); case 1: format(value, 36, "0"); case 2: format(value, 36, "1"); case 3: format(value, 36, "2"); case 4: format(value, 36, "3"); case 5: format(value, 36, "4"); case 6: format(value, 36, "5"); } case 'x': { format(value, 36, "%02d/%02d/%02d", date[1], date[0], date[2] - 2000); } case 'X': { format(value, 36, "%02d:%02d:%02d", date[3], date[4], date[5]); } case 'y': { format(value, 36, "%02d", date[2] - 2000); } case 'Y': { format(value, 36, "%d", date[2]); } case '%': { strdel(dest, pos - 1, pos); continue; } default: { continue; } } if(strlen(value) + strlen(dest) > size) { return 0; } strdel(dest, pos - 1, pos + 1); strins(dest, value, pos - 1, size); } return 1; } stock SaveFactionBanks() { new query[200]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `factionbanks` SET `SAPD`=%d, `FBI`=%d, `SAST`=%d, `FMD`=%d, `SANG`=%d, `GOV`=%d, `SCOTUS`=%d, `NEWS`=%d, `TAXI`=%d", SAPD, FBI, SAST, FMD, DOC, GOV, SCOTUS, NEWS, TAXI); mysql_pquery(sqlGameConnection, query); return 1; } forward Onfactionmoderators(playerid); public Onfactionmoderators(playerid) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_GREY, "There are no faction moderators."); new name[MAX_PLAYER_NAME + 1], factionid, fstring[128], facName[45]; SendClientMessage(playerid, COLOR_ORANGE, "Faction moderators;"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_field_content(i, "Name", name); factionid = cache_get_field_content_int(i, "Member"); switch(factionid) { case 0: facName = "Civilian"; case 1: facName = "San Andreas Police Department"; case 2: facName = "Federal Beurau of Investigations"; case 3: facName = "San Andreas Sheriff Department"; case 4: facName = "San Andreas Fire & Medical Department"; case 5: facName = "Dept. Of Corrections"; case 6: facName = "Government"; case 8: facName = "Civilian"; case 9: facName = "San Andreas News Co."; case 10: facName = "Taxi Co."; case 11: facName = "NONE."; //case 14: facName = "San Andreas National Guard"; case 14: facName = "Armed Forces of San Andreas"; } format(fstring, 128, "%d. %s - %s", i, name, facName); SendClientMessage(playerid, COLOR_GREY, fstring); } return 1; } forward onPropModerators(playerid); public onPropModerators(playerid) { if(cache_num_rows() == 0) return SendClientMessage(playerid, COLOR_GREY, "There are no property moderators."); new name[MAX_PLAYER_NAME + 1], fstring[128]; SendClientMessage(playerid, COLOR_ORANGE, "Property moderators:"); for(new i = 0; i < cache_num_rows(); i++) { cache_get_field_content(i, "Name", name); format(fstring, 128, "%d. %s", i, name); SendClientMessage(playerid, COLOR_GREY, fstring); } return 1; } SendLeaderMessage(color, string2[]) { foreach( new i: Player ) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pFactionMod] > 0 && toggedflchat[i] == 0 && PlayerInfo[i][pLeader] == 0) SendClientMessage(i, color, string2); if(PlayerInfo[i][pLeader] > 0 && toggedflchat[i] == 0) SendClientMessage(i, color, string2); if(PlayerInfo[i][pGroup] == 1 && PlayerInfo[i][pGroupRank] >= 5 && toggedflchat[i] == 0 && PlayerInfo[i][pLeader] == 0) SendClientMessage(i, color, string2); if(PlayerInfo[i][pGroup] == 2 && PlayerInfo[i][pGroupRank] > GROUP_CRIME_RANKS-1 && toggedflchat[i] == 0 && PlayerInfo[i][pLeader] == 0) SendClientMessage(i, color, string2); } } return 1; } forward OnPSummonP(playerid, suedname[]); public OnPSummonP(playerid, suedname[]) { new str[128]; if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} That account doesn't exist."); format(str, sizeof(str), "You have summoned %s to the court!", suedname); SendClientMessage(playerid, COLOR_LIGHTBLUE, str); new query[120]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `SueNotice`=1 WHERE `name`='%e'", suedname); mysql_pquery(sqlGameConnection, query); return 1; } forward oSetNum(name[], onum, playerid); public oSetNum(name[], onum, playerid) { if(cache_num_rows() != 1) return SendClientMessage(playerid, COLOR_GREY, "{FF0000}Error:{FFFFFF} that account doesn't exist!"); new str[128]; format(str, sizeof(str), "You have set %s's number to %d.", name, onum); SendClientMessage(playerid, COLOR_WHITE, str); new query[128]; mysql_format(sqlGameConnection, query, sizeof(query), "UPDATE `players` SET `PhoneNr` = %d WHERE `name`= '%e' LIMIT 1", onum, name); mysql_pquery(sqlGameConnection, query); return 1; } //END OF osetnumber stock IsPlayerRestricted(playerid) { if(PlayerCuffed[playerid] != 0 || PlayerTied[playerid] != 0 || PlayerTazed[playerid] != 0 || PlayerInfo[playerid][pJailed] != 0 || PlayerInfo[playerid][pAdminJailed] == 1) return true; else return false; } #include "../gamemodes/inc/drugs/drugs.inc" #include "../gamemodes/inc/points.inc" #include "../gamemodes/inc/animations.inc" #include "../gamemodes/inc/items/gags.inc" #include "../gamemodes/inc/items/jammers.inc" #include "../gamemodes/inc/items/blindfolds.inc" #include "../gamemodes/inc/items/grenade_launchers.inc" #include "../gamemodes/inc/safes/core.inc" #include "../gamemodes/inc/groups/syndicate_safe.inc" #include "../gamemodes\inc\custom_skins\skins_core.inc" //#include "../gamemodes\inc\discord\discord.pwn" #include "../gamemodes/inc/donor/donor_core.inc" #include "../gamemodes/inc/commands.inc" #include "./inc/factions/fmdmonthlycount.inc" // Global Chat System #include "../gamemodes/inc/global.inc" #include "../gamemodes/inc/elections.inc" #include "../gamemodes/inc/restart.inc" /* BOTS */ #include "../gamemodes/inc/bots.inc" #include "../gamemodes/inc/familybots.inc" /* ATM */ #include "../gamemodes/inc/ATM.inc" #include "../gamemodes/inc/atm-robbing.inc" #include "../gamemodes/inc/RefundSys.inc"