├── gamemodes ├── core │ ├── jobs │ │ ├── bus │ │ │ ├── bus_commands.inc │ │ │ ├── bus_functions.inc │ │ │ ├── bus.inc │ │ │ └── bus_hooks.inc │ │ ├── jobs.inc │ │ └── job_commands.inc │ ├── ban │ │ ├── ban.inc │ │ └── ban_functions.inc │ ├── player │ │ ├── vehicle │ │ │ ├── vehicle_commands.inc │ │ │ ├── vehicle.inc │ │ │ └── vehicle_hooks.inc │ │ ├── chat │ │ │ ├── chat.inc │ │ │ └── chat_hooks.inc │ │ ├── spawn │ │ │ ├── spawn.inc │ │ │ └── spawn_positions.inc │ │ ├── ui │ │ │ ├── help │ │ │ │ ├── help.inc │ │ │ │ └── help_functions.inc │ │ │ ├── register │ │ │ │ ├── register.inc │ │ │ │ └── register_functions.inc │ │ │ ├── ui.inc │ │ │ ├── speedo │ │ │ │ ├── speedometer.inc │ │ │ │ ├── speedo_hooks.inc │ │ │ │ ├── speedo_vars.inc │ │ │ │ └── speedo_functions.inc │ │ │ ├── ui_commands.inc │ │ │ └── ui_functions.inc │ │ ├── animations │ │ │ ├── animations.inc │ │ │ └── animation_hooks.inc │ │ ├── warn │ │ │ ├── warn_commands.inc │ │ │ └── warn.inc │ │ ├── mute │ │ │ ├── mute_timer.inc │ │ │ ├── mute_functions.inc │ │ │ └── mute.inc │ │ └── report │ │ │ ├── report.inc │ │ │ ├── report_commands.inc │ │ │ └── report_functions.inc │ ├── account │ │ ├── accounts.inc │ │ ├── account_callbacks.inc │ │ ├── account_vars.inc │ │ ├── account_hooks.inc │ │ └── account_functions.inc │ ├── systems │ │ ├── fastfood │ │ │ ├── fastfood.inc │ │ │ ├── fastfood_hooks.inc │ │ │ ├── fastfood_callbacks.inc │ │ │ ├── fastfood_functions.inc │ │ │ └── fastfood_commands.inc │ │ └── dealer │ │ │ ├── dealer_hooks.inc │ │ │ ├── dealer.inc │ │ │ ├── dealer_callbacks.inc │ │ │ ├── dealer_commands.inc │ │ │ └── dealer_functions.inc │ └── admin │ │ ├── admin_level_3.inc │ │ ├── admin_core.inc │ │ ├── admin.inc │ │ ├── admin_level_2.inc │ │ ├── admin_level_4.inc │ │ └── admin_level_1.inc ├── SurviveTime.amx ├── utils │ ├── vehicles.inc │ ├── shortcuts.inc │ └── cmd_process.inc ├── test.inc ├── database │ └── db_init.inc └── SurviveTime.pwn ├── .env ├── scriptfiles ├── YSI_CACHE.amx └── vehicles │ ├── sf_train.txt │ ├── pilots.txt │ ├── trains.txt │ ├── trains_platform.txt │ ├── lv_law.txt │ ├── ls_law.txt │ ├── sf_airport.txt │ ├── sf_law.txt │ ├── ls_airport.txt │ ├── lv_airport.txt │ ├── flint.txt │ ├── whetstone.txt │ ├── red_county.txt │ ├── tierra.txt │ ├── ls_gen_inner.txt │ ├── bone.txt │ ├── lv_gen.txt │ └── sf_gen.txt ├── .gitattributes ├── survive_time_version.inc ├── .travis.yml ├── .gitignore ├── .vscode └── tasks.json ├── README.md ├── pawn.json └── db_survivetime.sql /gamemodes/core/jobs/bus/bus_commands.inc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gamemodes/core/jobs/bus/bus_functions.inc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gamemodes/core/ban/ban.inc: -------------------------------------------------------------------------------- 1 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/vehicle/vehicle_commands.inc: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /gamemodes/core/player/chat/chat.inc: -------------------------------------------------------------------------------- 1 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/spawn/spawn.inc: -------------------------------------------------------------------------------- 1 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/ui/help/help.inc: -------------------------------------------------------------------------------- 1 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/animations/animations.inc: -------------------------------------------------------------------------------- 1 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/ui/register/register.inc: -------------------------------------------------------------------------------- 1 | #include -------------------------------------------------------------------------------- /gamemodes/core/jobs/bus/bus.inc: -------------------------------------------------------------------------------- 1 | #include 2 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/ui/ui.inc: -------------------------------------------------------------------------------- 1 | #include 2 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/vehicle/vehicle.inc: -------------------------------------------------------------------------------- 1 | #include 2 | #include -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | MYSQL_HOSTNAME=localhost 2 | MYSQL_USERNAME=root 3 | MYSQL_PASSWORD= 4 | MYSQL_DATABASE=db_survivetime -------------------------------------------------------------------------------- /gamemodes/SurviveTime.amx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emmett-white/survive-time/HEAD/gamemodes/SurviveTime.amx -------------------------------------------------------------------------------- /scriptfiles/YSI_CACHE.amx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/emmett-white/survive-time/HEAD/scriptfiles/YSI_CACHE.amx -------------------------------------------------------------------------------- /scriptfiles/vehicles/sf_train.txt: -------------------------------------------------------------------------------- 1 | 538,-1948.4922,121.7808,25.7186,0.0,121,1 2 | 537,-1943.3127,158.0254,27.0006,200.0,0,0 -------------------------------------------------------------------------------- /gamemodes/core/player/ui/speedo/speedometer.inc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.pwn linguist-language=Pawn 2 | *.inc linguist-language=Pawn 3 | *.json linguist-language=JSON 4 | *.yml linguist-language=YAML -------------------------------------------------------------------------------- /gamemodes/core/account/accounts.inc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include -------------------------------------------------------------------------------- /gamemodes/core/systems/fastfood/fastfood.inc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/ui/ui_commands.inc: -------------------------------------------------------------------------------- 1 | PLAYER_COMMAND:ui(playerid, const params[]) 2 | { 3 | UI_CreatePlayerTextDraws(playerid, (Player_GetUIStatus(playerid) ? (false) : (true))); 4 | 5 | return 1; 6 | } -------------------------------------------------------------------------------- /scriptfiles/vehicles/pilots.txt: -------------------------------------------------------------------------------- 1 | 577,1477.4631,1647.4589,10.7281,180.2741,8,7 ; at400 LV rwy 2 | 577,-1513.0963,-21.4589,14.0641,314.4915,8,7 ; at400 SF rwy 3 | 577,2014.6605,-2493.9668,13.4887,89.6533,8,7 ; at400 LS rwy -------------------------------------------------------------------------------- /scriptfiles/vehicles/trains.txt: -------------------------------------------------------------------------------- 1 | 538,1462.0745,2630.8787,10.8203,200.0,-1,-1 ; LV passenger 2 | 538,-1942.7950,168.4164,27.0006,200.0,-1,-1 ; SF passenger 3 | 538,1700.7551,-1953.6531,14.8756,200.0,-1,-1 ; LS passenger -------------------------------------------------------------------------------- /scriptfiles/vehicles/trains_platform.txt: -------------------------------------------------------------------------------- 1 | 537,1462.0745,2630.8787,10.8203,200.0,-1,-1 ; LV passenger 2 | 537,-1942.7950,168.4164,27.0006,200.0,-1,-1 ; SF passenger 3 | 537,1700.7551,-1953.6531,14.8756,200.0,-1,-1 ; LS passenger -------------------------------------------------------------------------------- /gamemodes/core/systems/dealer/dealer_hooks.inc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | hook OnGameModeInit() 4 | { 5 | mysql_tquery(MySQL: MySQL_GetHandle(), "SELECT * FROM dealers", "CheckDealerExists"); 6 | 7 | return Y_HOOKS_CONTINUE_RETURN_1; 8 | } -------------------------------------------------------------------------------- /gamemodes/core/systems/fastfood/fastfood_hooks.inc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | hook OnGameModeInit() 4 | { 5 | mysql_tquery(MySQL: MySQL_GetHandle(), "SELECT * FROM fastfood", "CheckFastFoodExists"); 6 | 7 | return Y_HOOKS_CONTINUE_RETURN_1; 8 | } -------------------------------------------------------------------------------- /gamemodes/core/player/ui/speedo/speedo_hooks.inc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | hook OnPlayerStateChange(playerid, newstate, oldstate) 4 | { 5 | UI_CreatePlayerSpeedometer(playerid, (newstate == PLAYER_STATE_DRIVER ? (true) : (false))); 6 | 7 | return Y_HOOKS_CONTINUE_RETURN_1; 8 | } -------------------------------------------------------------------------------- /gamemodes/core/player/warn/warn_commands.inc: -------------------------------------------------------------------------------- 1 | PLAYER_COMMAND:warns(playerid, const params[]) 2 | { 3 | if (!Player_GetWarns(playerid)) { 4 | return err(playerid, "You aren't warned!"); 5 | } 6 | 7 | fmt_info(playerid, "You have %d warn(s).", Player_GetWarns(playerid)); 8 | 9 | return 1; 10 | } -------------------------------------------------------------------------------- /gamemodes/core/player/mute/mute_timer.inc: -------------------------------------------------------------------------------- 1 | ptask mute_timer[60000](playerid) 2 | { 3 | if (Player_GetMuted(playerid)) { 4 | Player_SetMutedMins(playerid, (Player_GetMutedMins(playerid) - 1)); 5 | } 6 | 7 | if (!Player_GetMutedMins(playerid)) { 8 | Player_SetMutedMins(playerid, 0); 9 | } 10 | } -------------------------------------------------------------------------------- /survive_time_version.inc: -------------------------------------------------------------------------------- 1 | // This file was generated by "sampctl package release" 2 | // DO NOT EDIT THIS FILE MANUALLY! 3 | // To update the version number for a new release, run "sampctl package release" 4 | 5 | #define SURVIVE_TIME_VERSION_MAJOR (0) 6 | #define SURVIVE_TIME_VERSION_MINOR (1) 7 | #define SURVIVE_TIME_VERSION_PATCH (1) 8 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: cpp 2 | sudo: enabled 3 | install: 4 | - curl https://raw.githubusercontent.com/Southclaws/sampctl/master/install-deb.sh | sh 5 | - sudo dpkg --add-architecture i386 6 | - sudo apt update && sudo apt install -y g++-multilib 7 | script: 8 | - sampctl package ensure 9 | - sampctl package build 10 | - sampctl package run 11 | -------------------------------------------------------------------------------- /gamemodes/core/account/account_callbacks.inc: -------------------------------------------------------------------------------- 1 | forward OnAccountRegistered(const playerid); 2 | public OnAccountRegistered(const playerid) 3 | { 4 | account_id[playerid] = cache_insert_id(); 5 | return 1; 6 | } 7 | 8 | forward OnCharacterRegistered(const playerid); 9 | public OnCharacterRegistered(const playerid) 10 | { 11 | char_id[playerid] = cache_insert_id(); 12 | return 1; 13 | } -------------------------------------------------------------------------------- /gamemodes/core/player/warn/warn.inc: -------------------------------------------------------------------------------- 1 | static 2 | char_warn_num[MAX_PLAYERS] = 0; 3 | 4 | /** 5 | * Get/Set functions 6 | */ 7 | stock Player_SetWarns(const playerid, const warns) 8 | { 9 | if (!IsPlayerConnected(playerid)) { 10 | return 0; 11 | } 12 | 13 | char_warn_num[playerid] = warns; 14 | 15 | return 1; 16 | } 17 | 18 | stock Player_GetWarns(const playerid) 19 | { 20 | return char_warn_num[playerid]; 21 | } 22 | 23 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/report/report.inc: -------------------------------------------------------------------------------- 1 | static 2 | char_report_time[MAX_PLAYERS]; 3 | 4 | /** 5 | * Get/Set functions 6 | */ 7 | stock Player_SetReportTime(const playerid, const int) 8 | { 9 | if (!IsPlayerConnected(playerid)) { 10 | return 0; 11 | } 12 | 13 | char_report_time[playerid] = int; 14 | 15 | return 1; 16 | } 17 | 18 | stock Player_GetReportTime(const playerid) 19 | { 20 | return char_report_time[playerid]; 21 | } 22 | 23 | #include 24 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/chat/chat_hooks.inc: -------------------------------------------------------------------------------- 1 | hook OnPlayerText(playerid, text[]) 2 | { 3 | if (Player_GetMuted(playerid)) { 4 | return fmt_err(playerid, "You're muted for %d minutes.", Player_GetMutedMins(playerid)), 0; 5 | } 6 | 7 | // Admin chat 8 | if (IsPlayerAdmin(playerid) || Admin_GetLevel(playerid) >= 1 && text[0] == '#') { 9 | return va_SendClientMessageToAll( 10 | X11_RED, "(%d) %s: "WHITE"%s", playerid, ReturnPlayerName(playerid), text 11 | ), 0; 12 | } 13 | 14 | va_SendClientMessageToAll( 15 | X11_GRAY, "(%d) %s: "WHITE"%s", playerid, ReturnPlayerName(playerid), text 16 | ); 17 | 18 | return Y_HOOKS_CONTINUE_RETURN_0; 19 | } -------------------------------------------------------------------------------- /gamemodes/core/player/animations/animation_hooks.inc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | static 4 | BitArray: LAYING_ANIMATION; 5 | 6 | hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) 7 | { 8 | if (PRESSED(KEY_NO) && !IsPlayerInAnyVehicle(playerid)) { 9 | if (!Bit_Get(LAYING_ANIMATION, playerid)) { 10 | // Smth like lay animation... 11 | ApplyAnimation(playerid, "PED", "KO_shot_front", 4.0, 0, 1, 1, 1, 0); 12 | 13 | Bit_Let(LAYING_ANIMATION, playerid); 14 | 15 | return 1; 16 | } 17 | 18 | Bit_Set(LAYING_ANIMATION, playerid, false); 19 | ClearAnimations(playerid); 20 | } 21 | 22 | return Y_HOOKS_CONTINUE_RETURN_1; 23 | } -------------------------------------------------------------------------------- /scriptfiles/vehicles/lv_law.txt: -------------------------------------------------------------------------------- 1 | 598,2269.0366,2460.2317,8.2674,181.9338,-1,-1 ; 2 | 490,2278.0327,2459.1831,8.9495,1.6668,0,0 ; rancher 2 3 | 490,2255.8301,2443.1006,8.2475,179.7459,-1,-1 ; 4 | 490,2239.7317,2456.6294,1.4036,88.4757,-1,-1 ; 5 | 598,2276.6790,2473.7705,1.0201,184.7489,-1,-1 ; 6 | 598,2315.3213,2464.7903,1.0219,270.0937,-1,-1 ; 7 | 523,2297.4980,2464.5881,1.0,88.5560,-1,-1 ; 8 | 490,2314.2158,2484.8979,3.3994,92.8849,0,0 ; 9 | 490,2240.0923,2436.7124,3.4017,91.8532,0,0 ; 10 | 598,2299.4771,2451.7512,3.0199,270.3331,0,1 ; 11 | 416,1590.5470,1849.9900,10.9690,359.8599,1,3 ; Ambulance 12 | 544,1769.6177,2075.1941,11.0567,179.5683,3,1 ; firetruck 13 | 544,1750.6584,2077.1130,11.0558,180.0440,3,1 ; firetruck LA 14 | 544,1763.4852,2076.7075,11.0525,179.6720,3,1 ; firetruck LA 15 | 544,1757.0782,2075.0398,11.0568,177.5558,3,1 ; firetruck -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # 2 | # Package only files 3 | # 4 | 5 | # Compiled Bytecode, precompiled output and assembly 6 | *.amx 7 | *.lst 8 | *.asm 9 | 10 | # Vendor directory for dependencies 11 | dependencies/ 12 | 13 | # Dependency versions lockfile 14 | pawn.lock 15 | 16 | 17 | # 18 | # Server/gamemode related files 19 | # 20 | 21 | # compiled settings file 22 | # keep `samp.json` file on version control 23 | # but make sure the `rcon_password` field is set externally 24 | # you can use the environment variable `SAMP_RCON_PASSWORD` to do this. 25 | server.cfg 26 | 27 | # Plugins directory 28 | plugins/ 29 | 30 | # binaries 31 | *.exe 32 | *.dll 33 | *.so 34 | announce 35 | samp03svr 36 | samp-npc 37 | 38 | # logs 39 | logs/ 40 | server_log.txt 41 | crashinfo.txt 42 | 43 | # Ban list 44 | samp.ban 45 | 46 | # 47 | # Common files 48 | # 49 | 50 | *.sublime-workspace 51 | -------------------------------------------------------------------------------- /gamemodes/core/player/report/report_commands.inc: -------------------------------------------------------------------------------- 1 | PLAYER_COMMAND:report(playerid, const params[]) 2 | { 3 | if (gettime() < Player_GetReportTime(playerid)) { 4 | return err(playerid, "You can use this command every 2 minutes!"); 5 | } 6 | 7 | extract params -> new targetid, string: reason[MAX_REASON_TEXT]; else { 8 | return usage(playerid, "/report [targetid] [reason]"); 9 | } 10 | 11 | ReportPlayer(targetid, playerid, reason); 12 | 13 | return 1; 14 | } 15 | 16 | PLAYER_COMMAND:reportbug(playerid, const params[]) 17 | { 18 | if (gettime() < Player_GetReportTime(playerid)) { 19 | return err(playerid, "You can use this command every 2 minutes!"); 20 | } 21 | 22 | if (isnull(params)) { 23 | return usage(playerid, "/reportbug [bug]"); 24 | } 25 | 26 | ReportBug(playerid, params); 27 | 28 | return 1; 29 | } -------------------------------------------------------------------------------- /gamemodes/core/systems/dealer/dealer.inc: -------------------------------------------------------------------------------- 1 | static 2 | char_drugs[MAX_PLAYERS]; 3 | 4 | /** 5 | * Get/Set functions 6 | */ 7 | stock Player_SetDrugs(const playerid, const int) 8 | { 9 | if (!IsPlayerConnected(playerid)) { 10 | return 0; 11 | } 12 | 13 | char_drugs[playerid] = int; 14 | 15 | new String: str_query_drugs_update = String: str_format( 16 | "UPDATE characters SET char_drugs = '%d' WHERE char_name = '%e'", 17 | Player_GetDrugs(playerid), ReturnPlayerName(playerid) 18 | ); 19 | 20 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_drugs_update); 21 | 22 | UI_UpdatePlayerTextDraw(playerid, 3); 23 | 24 | return 1; 25 | } 26 | 27 | stock Player_GetDrugs(const playerid) 28 | { 29 | return char_drugs[playerid]; 30 | } 31 | 32 | #include 33 | #include 34 | #include 35 | #include -------------------------------------------------------------------------------- /gamemodes/utils/vehicles.inc: -------------------------------------------------------------------------------- 1 | stock LoadStaticVehiclesFromFile(const filename[]) 2 | { 3 | new 4 | line[55], 5 | File:file_ptr, 6 | vehicletype, 7 | Float:SpawnX, 8 | Float:SpawnY, 9 | Float:SpawnZ, 10 | Float:SpawnRot, 11 | col1, 12 | col2, 13 | vehicles_loaded; 14 | 15 | file_ptr = fopen(filename, filemode:io_read); 16 | 17 | if (!file_ptr) return 0; 18 | 19 | vehicles_loaded = 0; 20 | 21 | while(fread(file_ptr, line, sizeof(line)) > 0) 22 | { 23 | sscanf(line, "p<,>iffffii", vehicletype, SpawnX, SpawnY, SpawnZ, SpawnRot, col1, col2); 24 | 25 | if (vehicletype < 400 || vehicletype > 611) { 26 | continue; 27 | } 28 | 29 | AddStaticVehicleEx(vehicletype, SpawnX, SpawnY, SpawnZ, SpawnRot, col1, col2, (60*60)); // respawn 60 minutes 30 | vehicles_loaded ++; 31 | } 32 | fclose(file_ptr); 33 | printf("Loaded %d vehicles from: %s", vehicles_loaded, filename); 34 | return vehicles_loaded; 35 | } -------------------------------------------------------------------------------- /gamemodes/core/jobs/jobs.inc: -------------------------------------------------------------------------------- 1 | static 2 | char_job[MAX_PLAYERS], 3 | 4 | BitArray: JOB_EQUIPMENT; 5 | 6 | enum E_PLAYER_JOBS { 7 | E_PLAYER_JOB_NONE = 0, 8 | E_PLAYER_JOB_BUS 9 | }; 10 | 11 | // * Get/Set functions * 12 | stock Player_SetJob(const playerid, const int) 13 | { 14 | char_job[playerid] = int; 15 | 16 | new String: str_query_job_update = String: str_format( 17 | "UPDATE characters SET char_job = '%d' WHERE char_name = '%e'", 18 | Player_GetJob(playerid), ReturnPlayerName(playerid) 19 | ); 20 | 21 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_job_update); 22 | 23 | return 1; 24 | } 25 | 26 | stock Player_SetJobEquipment(const playerid, bool: status = true) 27 | { 28 | Bit_Set(JOB_EQUIPMENT, playerid, status); 29 | 30 | return 1; 31 | } 32 | 33 | stock Player_GetJob(const playerid) 34 | { 35 | return char_job[playerid]; 36 | } 37 | 38 | stock Player_GetJobEquipment(const playerid) 39 | { 40 | return Bit_Get(JOB_EQUIPMENT, playerid); 41 | } 42 | 43 | #include 44 | #include -------------------------------------------------------------------------------- /gamemodes/core/systems/fastfood/fastfood_callbacks.inc: -------------------------------------------------------------------------------- 1 | forward OnFFCreated(const id); 2 | public OnFFCreated(const id) 3 | { 4 | ff_id[id] = cache_insert_id(); 5 | return 1; 6 | } 7 | 8 | forward CheckFastFoodExists(); 9 | public CheckFastFoodExists() 10 | { 11 | for (new i; i < cache_num_rows(); ++i) { 12 | new 13 | id = Iter_Alloc(Iter_Fastfoods); 14 | 15 | cache_get_value_name_int(i, "ff_id", ff_id[id]); 16 | cache_get_value_name_float(i, "ff_x", ff_x[id]); 17 | cache_get_value_name_float(i, "ff_y", ff_y[id]); 18 | cache_get_value_name_float(i, "ff_z", ff_z[id]); 19 | cache_get_value_name_float(i, "ff_rz", ff_rz[id]); 20 | 21 | ff_object[id] = CreateDynamicObject( 22 | FF_OBJECT_ID, Float: ff_x[id], Float: (ff_y[id] + 0.5), Float: ff_z[id], Float: 0.0, Float: 0.0, Float: ff_rz[id] 23 | ); 24 | 25 | ff_label[id] = Text3D: fmt_Create3DTextLabel( 26 | str_format("[Fast food - %d]", ff_id[id]), X11_YELLOW, 27 | Float: ff_x[id], Float: ff_y[id], Float: ff_z[id], Float: 30.0, 0 28 | ); 29 | } 30 | 31 | return 1; 32 | } -------------------------------------------------------------------------------- /gamemodes/core/player/spawn/spawn_positions.inc: -------------------------------------------------------------------------------- 1 | /** 2 | * Variables 3 | */ 4 | new Float: spawn_positions[][] = { 5 | { 241.1621,-30.0135,1.5781,88.3188 }, 6 | { 247.1662,-93.5233,2.2537,88.6577 }, 7 | { 218.2654,-86.3072,1.5705,317.5236 }, 8 | { -80.9023,-15.2646,3.1172,36.2880 }, 9 | { 673.0425,-522.1229,16.3281,269.7150 }, 10 | { 671.5831,-476.9319,16.3359,197.3150 }, 11 | { 786.0263,-826.0399,70.2896,357.8026 }, 12 | { 900.9971,-927.9954,42.6016,179.1949 }, 13 | { 589.1715,-1238.8641,17.8381,307.1783 }, 14 | { 1187.1113,-1323.9055,13.5591,272.8422 }, 15 | { 1363.3134,-1279.3271,13.5469,85.5345 }, 16 | { 1334.2605,-1059.6702,28.1037,262.1210 }, 17 | { 1458.3473,-1025.9438,23.8281,178.0579 } 18 | }; 19 | 20 | stock Player_SetSpawn(const playerid) 21 | { 22 | new 23 | rand = random(sizeof spawn_positions); 24 | 25 | SetSpawnInfo( 26 | playerid, 0, Player_GetSkin(playerid), 27 | spawn_positions[rand][0], spawn_positions[rand][1], spawn_positions[rand][2], spawn_positions[rand][3], 28 | 0, 0, 0, 0, 0, 0 29 | ); 30 | 31 | SpawnPlayer(playerid); 32 | 33 | return 1; 34 | } -------------------------------------------------------------------------------- /gamemodes/utils/shortcuts.inc: -------------------------------------------------------------------------------- 1 | // * Messages * 2 | #define err(%0,%1) SendClientMessage(%0, X11_ORANGE, "* Error: "WHITE""%1) 3 | #define usage(%0,%1) SendClientMessage(%0, X11_ORANGE, "* Usage: "WHITE""%1) 4 | #define info(%0,%1) SendClientMessage(%0, X11_ORANGE, "* Info: "WHITE""%1) 5 | 6 | #define fmt_err(%0,%1,%2) va_SendClientMessage(%0, X11_ORANGE, "* Error: "WHITE""%1,%2) 7 | #define fmt_info(%0,%1,%2) va_SendClientMessage(%0, X11_ORANGE, "* Info: "WHITE""%1,%2) 8 | 9 | /** 10 | * Configs 11 | */ 12 | #if defined MAX_WARNS 13 | #undef MAX_WARNS 14 | #else 15 | /** 16 | * There are actually 5 warns, but when player gets 5 warns 17 | * he will be automatically banned. 18 | */ 19 | const MAX_WARNS = (4); 20 | #endif 21 | 22 | const MAX_MUTE_MINUTES = (9999); 23 | 24 | #define MAX_REASON_TEXT 64 25 | #define MAX_TEXT_MESSAGE 128 26 | 27 | #define PRESSED(%0) \ 28 | (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0))) 29 | 30 | // PawnPlus natives 31 | native fmt_Create3DTextLabel(ConstAmxString: text, colour, Float:position_x, Float:position_y, Float:position_z, Float:drawDistance, virtualWorld, testlos = 0) = Create3DTextLabel; -------------------------------------------------------------------------------- /scriptfiles/vehicles/ls_law.txt: -------------------------------------------------------------------------------- 1 | 596,1554.5928,-1615.0944,13.1075,143.0,0,1 ; 2 | 596,1560.2781,-1614.7255,13.1065,143.0,0,1 ; 3 | 596,1565.3577,-1615.1208,13.1006,143.0,0,1 ; 4 | 596,1570.3990,-1615.1421,13.1035,143.0,0,1 ; 5 | 596,1575.5455,-1615.0767,13.1051,143.0,0,1 ; 6 | 427,1600.4679,-1607.5685,13.6005,88.3196,0,1 ; 7 | 427,1599.9907,-1613.6184,13.5959,89.1377,0,1 ; 8 | 427,1600.0579,-1619.9817,13.5981,89.7130,0,1 ; 9 | 427,1599.8956,-1626.2255,13.5964,89.2148,0,1 ; 10 | 596,1602.4196,-1683.8865,5.6119,269.8652,0,1 ; 11 | 596,1591.4985,-1711.0421,5.6128,0.0437,0,1 ; 12 | 596,1602.2015,-1687.9944,5.6107,89.8454,0,1 ; 13 | 596,1602.0392,-1692.0045,5.6110,89.1947,0,1 ; 14 | 596,1595.4047,-1711.5936,5.6116,180.3378,0,1 ; 15 | 523,1582.1798,-1667.0845,5.4650,240.5349,0,0 ; 16 | 523,1582.3419,-1669.2539,5.4650,239.3729,0,0 ; 17 | 523,1582.1704,-1671.2072,5.4657,237.9856,0,0 ; 18 | 523,1582.1514,-1673.4630,5.4652,238.0086,0,0 ; 19 | 574,1526.7522,-1655.7896,5.6158,270.8942,26,26 ; 20 | 574,1526.7056,-1652.4664,5.6158,270.6263,26,26 ; 21 | 574,1526.5553,-1642.8456,5.6158,180.3993,26,26 ; 22 | 574,1530.7841,-1642.8046,5.6158,179.2186,26,26 ; 23 | 416,2033.1270,-1432.2743,17.2845,180.0169,1,3 ; 24 | 416,2016.3477,-1414.9769,17.1412,86.7151,1,3 ; 25 | 26 | -------------------------------------------------------------------------------- /gamemodes/utils/cmd_process.inc: -------------------------------------------------------------------------------- 1 | // By: Southclaws 2 | 3 | #if defined CMD 4 | #undef CMD 5 | #endif 6 | 7 | #define PLAYER_COMMAND:%1(%2) forward cmd_%1(%2); public cmd_%1(%2) 8 | #define ADMIN_COMMAND:[%0]%1(%2,%3) PLAYER_COMMAND:%1(%2,%3) if (Admin_GetLevel(%2) < %0) return 0; else 9 | 10 | public OnPlayerCommandText(playerid, cmdtext[]) 11 | { 12 | new 13 | cmd[30], 14 | params[127], 15 | cmdfunction[64], 16 | result = 1; 17 | 18 | sscanf(cmdtext, "s[30]s[127]", cmd, params); 19 | 20 | for (new i, j = strlen(cmd); i < j; i++) { 21 | cmd[i] = tolower(cmd[i]); 22 | } 23 | 24 | format(cmdfunction, 64, "cmd_%s", cmd[1]); 25 | 26 | if(funcidx(cmdfunction) == -1) { 27 | new 28 | iLvl = Admin_GetLevel(playerid), 29 | iLoop = 5; 30 | 31 | while(iLoop > 0) { 32 | format(cmdfunction, 64, "acmd_%s_%d", cmd[1], iLoop); 33 | 34 | if(funcidx(cmdfunction) != -1) { 35 | break; 36 | } 37 | 38 | iLoop--; 39 | } 40 | 41 | if(iLoop == 0) { 42 | result = 0; 43 | } 44 | 45 | if(iLvl < iLoop) { 46 | result = 5; 47 | } 48 | } 49 | 50 | if(result == 1) { 51 | if(isnull(params)) { 52 | result = CallLocalFunction(cmdfunction, "is", playerid, "\1"); 53 | } 54 | 55 | else { 56 | result = CallLocalFunction(cmdfunction, "is", playerid, params); 57 | } 58 | } 59 | 60 | return 1; 61 | } -------------------------------------------------------------------------------- /gamemodes/test.inc: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | #include 5 | #include 6 | 7 | native ExitProcess(status = 0); 8 | // native CallLocalFunction(const function[], const format[], {Float,_}:...); 9 | 10 | stock bool:test_false = false; 11 | stock test_id = 0; 12 | stock failed_test_count = 0; 13 | 14 | #if __Pawn == 0x030A 15 | #define TEST_LINE __line 16 | #else 17 | #define TEST_LINE 0 18 | #endif 19 | 20 | #define TEST_TRUE(%0) \ 21 | do { \ 22 | test_id++; \ 23 | if (!(%0)) { \ 24 | TestFailed(test_id, TEST_LINE, "Expression is false"); \ 25 | } \ 26 | } while (test_false) 27 | 28 | #define TEST_FALSE(%0) \ 29 | do { \ 30 | test_id++; \ 31 | if (%0) { \ 32 | TestFailed(test_id, TEST_LINE, "Expression is true"); \ 33 | } \ 34 | } while (test_false) 35 | 36 | stock TestExit() { 37 | if (failed_test_count == 0) { 38 | print("All tests passed"); 39 | } 40 | ExitProcess(); 41 | } 42 | 43 | stock TestFailed(id, line, const reason[]) { 44 | failed_test_count++; 45 | if (line > 0) { 46 | printf("Test #%d at line %d failed: %s", id, line, reason); 47 | } else { 48 | printf("Test #%d failed: %s", id, reason); 49 | } 50 | #emit halt 1 51 | } -------------------------------------------------------------------------------- /gamemodes/core/admin/admin_level_3.inc: -------------------------------------------------------------------------------- 1 | ADMIN_COMMAND:[e_ADMIN_LEVEL_3]settime(playerid, const params[]) 2 | { 3 | if (isnull(params)) { 4 | return usage(playerid, "/settime [time (1-24)]"); 5 | } 6 | 7 | if (!isnumeric(params)) { 8 | return 0; 9 | } 10 | 11 | if (!(1 <= strval(params) <= 24)) { 12 | return err(playerid, "Invalid time (1-24)!"); 13 | } 14 | 15 | SetWorldTime(strval(params)); 16 | 17 | return 1; 18 | } 19 | 20 | ADMIN_COMMAND:[e_ADMIN_LEVEL_3]setweather(playerid, const params[]) 21 | { 22 | if (isnull(params)) { 23 | return usage(playerid, "/setweather [time (0-255)]"); 24 | } 25 | 26 | if (!isnumeric(params)) { 27 | return 0; 28 | } 29 | 30 | if (!(0 <= strval(params) <= 255)) { 31 | return err(playerid, "Invalid time (0-255)!"); 32 | } 33 | 34 | SetWeather(strval(params)); 35 | 36 | return 1; 37 | } 38 | 39 | ADMIN_COMMAND:[e_ADMIN_LEVEL_3]getip(playerid, const params[]) 40 | { 41 | if (isnull(params)) { 42 | return usage(playerid, "/getip [targetid]"); 43 | } 44 | 45 | if (!IsPlayerConnected(strval(params))) { 46 | return 0; 47 | } 48 | 49 | static ip[MAX_PLAYER_NAME]; 50 | GetPlayerIp(strval(params), ip, sizeof ip); 51 | 52 | fmt_info(playerid, "%s's IP Address: %s", ReturnPlayerName(strval(params)), ip); 53 | 54 | return 1; 55 | } -------------------------------------------------------------------------------- /gamemodes/core/systems/dealer/dealer_callbacks.inc: -------------------------------------------------------------------------------- 1 | forward OnDealerCreated(const dealerid); 2 | public OnDealerCreated(const dealerid) 3 | { 4 | dealer_id[dealerid] = cache_insert_id(); 5 | return 1; 6 | } 7 | 8 | forward CheckDealerExists(); 9 | public CheckDealerExists() 10 | { 11 | for (new i; i < cache_num_rows(); ++i) { 12 | new id = Iter_Alloc(Iter_Dealers); 13 | 14 | cache_get_value_name_int(i, "dealer_id", dealer_id[id]); 15 | cache_get_value_name(i, "dealer_name", dealer_name[id]); 16 | cache_get_value_name_int(i, "dealer_skin", dealer_skin[id]); 17 | cache_get_value_name_float(i, "dealer_x", dealer_x[id]); 18 | cache_get_value_name_float(i, "dealer_y", dealer_y[id]); 19 | cache_get_value_name_float(i, "dealer_z", dealer_z[id]); 20 | cache_get_value_name_float(i, "dealer_a", dealer_a[id]); 21 | 22 | dealer_actor[id] = CreateActor( 23 | dealer_skin[id], Float: dealer_x[id], Float: dealer_y[id], Float: dealer_z[id], Float: dealer_a[id] 24 | ); 25 | 26 | new String: str_dealer_label = String: str_format("[DEALER (%d) %s]\n/dealer", dealer_id[id], dealer_name[id]); 27 | dealer_label[id] = Text3D: fmt_Create3DTextLabel( 28 | str_dealer_label, X11_YELLOW, 29 | Float: dealer_x[id], Float: dealer_y[id], Float: dealer_z[id], Float: 30.0, 0 30 | ); 31 | } 32 | 33 | return 1; 34 | } -------------------------------------------------------------------------------- /gamemodes/core/player/report/report_functions.inc: -------------------------------------------------------------------------------- 1 | /* 2 | * player who will be reported 3 | * player who will report player (targetid) 4 | * the reason why targetid will be reported 5 | */ 6 | stock ReportPlayer(const targetid, const playerid, const string: reason[]) 7 | { 8 | if (targetid == playerid) { 9 | return err(playerid, "You can't report yourself!"); 10 | } 11 | 12 | SendMessageToAdmins( 13 | X11_RED, "[Player Report]: "WHITE"%s reported player %s for %s.", 14 | ReturnPlayerName(playerid), ReturnPlayerName(targetid), reason 15 | ); 16 | 17 | Player_SetReportTime(playerid, (gettime() + 120)); 18 | 19 | return 1; 20 | } 21 | 22 | stock ReportBug(const playerid, const string: reason[]) 23 | { 24 | task_await( 25 | Task: MySQL_QueryS( 26 | String: str_format( 27 | "SELECT * FROM reports where report_reason = '%e'", reason 28 | ) 29 | ) 30 | ); 31 | 32 | if (cache_num_rows()) { 33 | return err(playerid, "That report already exists!"); 34 | } 35 | 36 | new String: str_query_report_update = String: str_format( 37 | "INSERT INTO \ 38 | reports (report_player, report_reason) \ 39 | VALUES \ 40 | ('%e', '%e')", ReturnPlayerName(playerid), reason 41 | ); 42 | 43 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_report_update); 44 | Player_SetReportTime(playerid, (gettime() + 120)); 45 | 46 | return 1; 47 | } -------------------------------------------------------------------------------- /gamemodes/core/admin/admin_core.inc: -------------------------------------------------------------------------------- 1 | const MAX_ADMIN_LEVEL = 4; 2 | 3 | enum { 4 | e_ADMIN_LEVEL_1 = 1, 5 | e_ADMIN_LEVEL_2, 6 | e_ADMIN_LEVEL_3, 7 | e_ADMIN_LEVEL_4 8 | }; 9 | 10 | /** 11 | * The player to whom the admin will be assigned/removed 12 | * The admin who assigns/removes admin to playerid 13 | * the level of playerid's admin 14 | */ 15 | stock SetPlayerAdminLevel(const playerid, const adminid, level = 0, code) 16 | { 17 | if (!(0 <= level <= MAX_ADMIN_LEVEL)) { 18 | return err(adminid, "* Error: "WHITE"Admin level can't be less than 0 and greater than 4!"); 19 | } 20 | 21 | if (level == Admin_GetLevel(playerid)) { 22 | return err(adminid, "* Error: "WHITE"That player is already that admin level!"); 23 | } 24 | 25 | Admin_Set(playerid, level); 26 | Admin_SetCode(playerid, code); 27 | 28 | if (level == 0) { 29 | Player_SetSkin(playerid, 26); 30 | 31 | SetPlayerSkin(playerid, Player_GetSkin(playerid)); 32 | GameTextForPlayer(playerid, "~r~You're no longer an administrator!", 3000, 3); 33 | 34 | return 1; 35 | } 36 | 37 | Player_SetSkin(playerid, 294); 38 | SetPlayerSkin(playerid, Player_GetSkin(playerid)); 39 | 40 | va_GameTextForPlayer(playerid, "~w~You're now an administrator level ~y~%d.", 3000, 3, Admin_GetLevel(playerid)); 41 | fmt_info(playerid, "Your admin code is: %d", Admin_GetCode(playerid)); 42 | 43 | return 1; 44 | } -------------------------------------------------------------------------------- /gamemodes/core/player/mute/mute_functions.inc: -------------------------------------------------------------------------------- 1 | /** 2 | * admin who will mute player 3 | * player who will be muted 4 | * the reason why player will be muted 5 | * the time how long the player will be muted 6 | */ 7 | stock MutePlayer(const playerid, const targetid, const string: reason[], minutes) 8 | { 9 | if (targetid == playerid) 10 | return err(playerid, "You can't mute yourself!"); 11 | 12 | if (Player_GetMuted(targetid)) { 13 | return err(playerid, "That player is already muted!"); 14 | } 15 | 16 | if (!(1 <= minutes <= MAX_MUTE_MINUTES)) { 17 | return fmt_err(playerid, "Minutes can't be less than 0 and more than %d!", MAX_MUTE_MINUTES); 18 | } 19 | 20 | Player_SetMuted(targetid, 1); 21 | Player_SetMutedMins(targetid, minutes); 22 | 23 | va_SendClientMessageToAll( 24 | X11_RED, "* Mute: "WHITE"Player %s has been muted. Reason: %s", 25 | ReturnPlayerName(targetid), reason 26 | ); 27 | 28 | return 1; 29 | } 30 | 31 | stock UnMutePlayer(const playerid, const targetid) 32 | { 33 | if (!Player_GetMuted(targetid)) { 34 | return err(playerid, "That player isn't muted!"); 35 | } 36 | 37 | Player_SetMuted(targetid, 0); 38 | Player_SetMutedMins(targetid, 0); 39 | 40 | va_SendClientMessageToAll( 41 | X11_RED, "* Un-Mute: "WHITE"Player %s is no longer muted!", ReturnPlayerName(targetid) 42 | ); 43 | 44 | return 1; 45 | } -------------------------------------------------------------------------------- /gamemodes/core/jobs/job_commands.inc: -------------------------------------------------------------------------------- 1 | PLAYER_COMMAND:takejob(playerid, const params[]) 2 | { 3 | if (Player_GetJob(playerid)) { 4 | return err(playerid, "You already have a job! (/jobquit)"); 5 | } 6 | 7 | if (IsPlayerInRangeOfPoint(playerid, Float: 2.0, Float: 1222.0521, Float: -1812.2341, Float: 16.5938)) { 8 | Player_SetJob(playerid, _:E_PLAYER_JOB_BUS); 9 | info(playerid, "Your current job is a bus driver."); 10 | } 11 | 12 | return 1; 13 | } 14 | 15 | PLAYER_COMMAND:equipment(playerid, const params[]) 16 | { 17 | if (!Player_GetJob(playerid)) { 18 | return err(playerid, "You don't have a job!"); 19 | } 20 | 21 | if (Player_GetJobEquipment(playerid)) { 22 | Player_SetJobEquipment(playerid, false); 23 | SetPlayerSkin(playerid, Player_GetSkin(playerid)); 24 | } 25 | 26 | if (IsPlayerInRangeOfPoint(playerid, Float: 2.0, Float: 1216.5745, Float: -1812.1322, Float: 16.5938)) { 27 | SetPlayerSkin(playerid, 61); 28 | Player_SetJobEquipment(playerid); 29 | } 30 | 31 | return 1; 32 | } 33 | 34 | PLAYER_COMMAND:jobquit(playerid, const params[]) 35 | { 36 | if (!Player_GetJob(playerid)) { 37 | return err(playerid, "You don't have a job!"); 38 | } 39 | 40 | if (Player_GetJobEquipment(playerid)) { 41 | Player_SetJobEquipment(playerid, false); 42 | } 43 | 44 | if (Player_GetJob(playerid)) { 45 | Player_SetJob(playerid, _:E_PLAYER_JOB_NONE); 46 | SetPlayerSkin(playerid, Player_GetSkin(playerid)); 47 | } 48 | 49 | return 1; 50 | } -------------------------------------------------------------------------------- /gamemodes/core/player/mute/mute.inc: -------------------------------------------------------------------------------- 1 | static 2 | char_muted[MAX_PLAYERS], 3 | char_muted_mins[MAX_PLAYERS]; 4 | 5 | /** 6 | * Set functions 7 | */ 8 | stock Player_SetMuted(const playerid, const int) 9 | { 10 | if (!IsPlayerConnected(playerid)) { 11 | return 0; 12 | } 13 | 14 | char_muted[playerid] = int; 15 | 16 | new String: str_query_update = String: String: str_format( 17 | "UPDATE \ 18 | characters \ 19 | SET \ 20 | char_muted = '%d' \ 21 | WHERE \ 22 | char_name = '%e'", 23 | Player_GetMuted(playerid), ReturnPlayerName(playerid) 24 | ); 25 | 26 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_update); 27 | 28 | return 1; 29 | } 30 | 31 | stock Player_SetMutedMins(const playerid, const int) 32 | { 33 | if (!IsPlayerConnected(playerid)) { 34 | return 0; 35 | } 36 | 37 | char_muted_mins[playerid] = int; 38 | 39 | new String: str_query_update = String: String: str_format( 40 | "UPDATE \ 41 | characters \ 42 | SET \ 43 | char_muted = '%d', char_mutedmins = '%d' \ 44 | WHERE \ 45 | char_name = '%e'", 46 | Player_GetMuted(playerid), Player_GetMutedMins(playerid), ReturnPlayerName(playerid) 47 | ); 48 | 49 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_update); 50 | 51 | return 1; 52 | } 53 | 54 | /** 55 | * Get functions 56 | */ 57 | stock Player_GetMuted(const playerid) 58 | { 59 | return char_muted[playerid]; 60 | } 61 | 62 | stock Player_GetMutedMins(const playerid) 63 | { 64 | return char_muted_mins[playerid]; 65 | } 66 | 67 | #include 68 | #include -------------------------------------------------------------------------------- /gamemodes/core/player/ui/help/help_functions.inc: -------------------------------------------------------------------------------- 1 | static 2 | PlayerText: help_msg_textdraw[MAX_PLAYERS] = {PlayerText: INVALID_TEXT_DRAW, ...}; 3 | 4 | /** 5 | * Functions 6 | */ 7 | stock UI_CreatePlayerHelpMsg(const playerid, bool: status = true) 8 | { 9 | if (!status) { 10 | PlayerTextDrawHide(playerid, PlayerText: help_msg_textdraw[playerid]); 11 | 12 | return 1; 13 | } 14 | 15 | help_msg_textdraw[playerid] = CreatePlayerTextDraw(playerid, 320.499633, 319.313629, "_"); 16 | PlayerTextDrawLetterSize(playerid, help_msg_textdraw[playerid], 0.266399, 0.838399); 17 | PlayerTextDrawTextSize(playerid, help_msg_textdraw[playerid], 0.000000, 744.000000); 18 | PlayerTextDrawAlignment(playerid, help_msg_textdraw[playerid], 2); 19 | PlayerTextDrawColor(playerid, help_msg_textdraw[playerid], -1); 20 | PlayerTextDrawSetShadow(playerid, help_msg_textdraw[playerid], 0); 21 | PlayerTextDrawSetOutline(playerid, help_msg_textdraw[playerid], 1); 22 | PlayerTextDrawBackgroundColor(playerid, help_msg_textdraw[playerid], 255); 23 | PlayerTextDrawFont(playerid, help_msg_textdraw[playerid], 1); 24 | PlayerTextDrawSetProportional(playerid, help_msg_textdraw[playerid], 1); 25 | 26 | PlayerTextDrawShow(playerid, PlayerText: help_msg_textdraw[playerid]); 27 | 28 | return 1; 29 | } 30 | 31 | stock UI_ShowPlayerHelpMsg(const playerid, const string: fmt[], va_args<>) 32 | { 33 | PlayerTextDrawShow(playerid, PlayerText: help_msg_textdraw[playerid]); 34 | PlayerTextDrawSetString(playerid, PlayerText: help_msg_textdraw[playerid], va_return(fmt, va_start<2>)); 35 | 36 | defer hide_help_msg(playerid); 37 | 38 | return 1; 39 | } 40 | 41 | /** 42 | * Hide message timer 43 | */ 44 | timer hide_help_msg[2000](playerid) 45 | { 46 | UI_CreatePlayerHelpMsg(playerid, false); 47 | } -------------------------------------------------------------------------------- /scriptfiles/vehicles/sf_airport.txt: -------------------------------------------------------------------------------- 1 | 485,-1644.8495,-593.8191,13.8045,244.2475,1,74 ; 2 | 485,-1433.6989,-639.9345,13.8059,351.8341,1,74 ; 3 | 485,-1354.3955,-426.7434,13.8022,293.6214,1,74 ; 4 | 485,-1284.1956,60.9789,13.8074,96.5168,1,74 ; 5 | 485,-1556.3772,-156.9351,13.8067,135.6197,1,74 ; 6 | 592,-1562.6097,-191.8931,15.3402,135.3354,1,1 ; 7 | 583,-1467.6941,-68.7159,13.6890,135.9720,1,1 ; 8 | 583,-1438.1007,-178.1787,13.6843,333.7912,1,1 ; 9 | 583,-1396.8986,-226.8979,13.6890,329.7987,1,1 ; 10 | 583,-1634.3322,-377.9814,13.6890,335.1347,1,1 ; 11 | 583,-1299.0438,-286.9009,13.6891,341.6255,1,1 ; 12 | 525,-1354.0233,-375.1031,14.0255,263.6050,18,20 ; 13 | 513,-1285.7555,24.0493,14.6993,121.8480,21,36 ; 14 | 513,-1260.6040,7.5347,14.7070,118.6241,21,36 ; 15 | 511,-1704.6077,-239.2016,15.5222,314.2837,4,90 ; 16 | 476,-1367.2609,-485.4558,14.8787,209.5813,7,6 ; 17 | 476,-1440.4191,-526.5578,14.8939,207.2082,1,6 ; 18 | 519,-1371.1775,-232.3967,15.0767,315.6230,1,1 ; 19 | 519,-1341.1079,-254.3787,15.0773,321.6316,1,1 ; 20 | 420,-1472.3452,-272.3332,13.7749,78.9964,6,1 ; 21 | 420,-1459.8147,-275.6010,13.8146,65.6229,6,1 ; 22 | 420,-1439.7112,-284.8562,13.8131,58.6121,6,1 ; 23 | 420,-1421.4268,-298.8921,13.7817,46.1681,6,1 ; 24 | 519,-1331.5316,-618.3227,15.0629,325.7105,1,1 ; 25 | 593,-1384.5905,-625.2684,14.6115,321.7572,58,8 ; 26 | 511,-1449.8151,-617.1895,15.5199,329.7999,12,60 ; 27 | 593,-1325.9851,-276.6170,14.6107,296.5465,60,1 ; 28 | 563,-1598.6353,-615.8722,14.8537,276.2098,1,6 ; 29 | 476,-1426.4314,-518.3584,14.8958,180.5740,119,117 ; 30 | 513,-1281.6588,-627.3807,14.6996,356.9070,21,36 ; 31 | 519,-1299.0974,-353.5505,15.0716,278.4124,1,1 ; 32 | 487,-1182.6599,22.4607,14.3251,45.0604,29,42 ; 33 | 417,-1222.6132,-11.1500,14.2353,42.9828,0,0 ; 34 | 544,-1258.5739,68.2615,14.3863,43.9776,3,1 ; 35 | 544,-1262.4766,64.5995,14.3817,43.9013,3,1 ; -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "tasks": [ 4 | { 5 | "label": "build only", 6 | "type": "shell", 7 | "command": "sampctl package build", 8 | "group": { 9 | "kind": "build", 10 | "isDefault": true 11 | }, 12 | "isBackground": false, 13 | "presentation": { 14 | "reveal": "silent", 15 | "panel": "dedicated" 16 | }, 17 | "problemMatcher": "$sampctl" 18 | }, 19 | { 20 | "label": "build watcher", 21 | "type": "shell", 22 | "command": "sampctl package build --watch", 23 | "group": "build", 24 | "isBackground": true, 25 | "presentation": { 26 | "reveal": "silent", 27 | "panel": "dedicated" 28 | }, 29 | "problemMatcher": "$sampctl" 30 | }, 31 | { 32 | "label": "run tests", 33 | "type": "shell", 34 | "command": "sampctl package run", 35 | "group": { 36 | "kind": "test", 37 | "isDefault": true 38 | }, 39 | "isBackground": true, 40 | "presentation": { 41 | "reveal": "silent", 42 | "panel": "dedicated" 43 | }, 44 | "problemMatcher": "$sampctl" 45 | }, 46 | { 47 | "label": "run tests watcher", 48 | "type": "shell", 49 | "command": "sampctl package run --watch", 50 | "group": "test", 51 | "isBackground": true, 52 | "presentation": { 53 | "reveal": "silent", 54 | "panel": "dedicated" 55 | }, 56 | "problemMatcher": "$sampctl" 57 | } 58 | ] 59 | } 60 | -------------------------------------------------------------------------------- /scriptfiles/vehicles/sf_law.txt: -------------------------------------------------------------------------------- 1 | 470,-1493.2729,466.8754,7.1792,359.6406,43,0 ; 2 | 470,-1456.7275,456.4803,7.1827,1.8612,43,0 ; 3 | 470,-1433.3401,455.8417,7.1754,359.2850,43,0 ; 4 | 433,-1424.8402,457.6088,7.6209,359.6164,43,0 ; 5 | 433,-1402.0039,460.9283,7.6209,0.1365,43,0 ; 6 | 470,-1387.7540,457.1161,7.1786,356.7607,43,0 ; 7 | 548,-1269.9818,501.5400,18.8272,88.8878,43,0 ; 8 | 548,-1415.5240,517.8834,19.8976,270.0524,1,1 ; 9 | 497,-1679.7035,706.0008,30.7781,89.8724,0,1 ; 10 | 523,-1576.0360,673.7034,6.7563,174.5967,0,0 ; 11 | 523,-1575.9231,650.4584,6.7582,0.9076,0,0 ; 12 | 597,-1593.6233,651.7213,6.9566,1.3899,0,1 ; 13 | 597,-1622.5198,651.7484,6.9555,359.8126,0,1 ; 14 | 427,-1634.3652,653.2300,7.3195,359.8379,0,1 ; 15 | 597,-1573.9720,726.4003,-5.4722,91.1968,0,1 ; 16 | 523,-1612.2233,674.1516,6.7545,184.0847,0,0 ; 17 | 427,-1600.1411,678.0489,-5.1103,1.1345,0,1 ; 18 | 597,-1596.5836,749.3448,-5.4725,178.5932,0,1 ; 19 | 416,-2643.2285,630.0392,14.6034,87.3837,1,3 ; 20 | 416,-2683.8833,628.2059,14.6035,272.5255,1,3 ; 21 | 416,-2668.5364,610.7019,14.6043,179.8035,1,3 ; 22 | 416,-2639.3809,609.7971,14.6020,180.4547,1,3 ; 23 | 544,-2053.1836,75.5582,28.6258,91.8533,3,1 ; 24 | 544,-2020.6779,75.7322,28.2849,270.8804,3,1 ; 25 | 544,-2020.4115,92.3531,28.1826,271.5041,3,1 ; 26 | 472,-1165.9481,376.5309,0.1491,315.1259,56,53 ; 27 | 472,-1421.6274,285.5732,-0.2879,265.8000,46,26 ; 28 | 472,-1653.0968,254.7862,0.2592,268.0484,112,20 ; 29 | 597,-1606.3083,673.1804,6.9553,179.1846,0,1 ; 30 | 427,-1582.2726,672.2101,7.3207,180.9814,0,1 ; 31 | 470,-1383.2446,457.2296,7.1794,359.1241,43,0 ; 32 | 597,-1610.8358,651.5052,6.9564,359.9975,0,1 ; 33 | 597,-1622.9977,653.4961,-5.4742,89.9343,0,1 ; 34 | 597,-1639.4895,677.9890,-5.4743,269.9376,0,1 ; 35 | 548,-1415.3323,492.7466,19.8676,271.5521,1,1 ; 36 | 548,-1304.2273,507.9386,19.8769,269.1332,1,1 ; 37 | 433,-1362.9229,458.9281,7.6241,357.4277,43,0 ; 38 | 433,-1529.5907,457.3813,7.6238,358.3718,43,0 ; -------------------------------------------------------------------------------- /gamemodes/core/admin/admin.inc: -------------------------------------------------------------------------------- 1 | static 2 | char_admin[MAX_PLAYERS], 3 | char_admin_code[MAX_PLAYERS]; 4 | 5 | /** 6 | * Functions 7 | */ 8 | SendMessageToAdmins(colour, const string: text[], va_args<>) 9 | { 10 | foreach (new i: Player) { 11 | if (Admin_GetLevel(i)) { 12 | return SendClientMessage(i, colour, va_return(text, va_start<2>)); 13 | } 14 | } 15 | 16 | return 1; 17 | } 18 | 19 | /** 20 | * Set functions 21 | */ 22 | Admin_Set(const playerid, const int) 23 | { 24 | if (!IsPlayerConnected(playerid)) { 25 | return 0; 26 | } 27 | 28 | char_admin[playerid] = int; 29 | 30 | new String: str_query_update = String: str_format( 31 | "UPDATE \ 32 | characters \ 33 | SET \ 34 | char_admin = '%d' \ 35 | WHERE \ 36 | char_name = '%e'", 37 | Admin_GetLevel(playerid), ReturnPlayerName(playerid) 38 | ); 39 | 40 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_update); 41 | 42 | return 1; 43 | } 44 | 45 | Admin_SetCode(const playerid, const int) 46 | { 47 | if (!IsPlayerConnected(playerid)) { 48 | return 0; 49 | } 50 | 51 | char_admin_code[playerid] = int; 52 | 53 | new String: str_query_update = String: str_format( 54 | "UPDATE \ 55 | characters \ 56 | SET \ 57 | char_admincode = '%d' \ 58 | WHERE \ 59 | char_name = '%e'", 60 | Admin_GetCode(playerid), ReturnPlayerName(playerid) 61 | ); 62 | 63 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_update); 64 | 65 | return 1; 66 | } 67 | 68 | /** 69 | * Get functions 70 | */ 71 | stock Admin_GetLevel(const playerid) 72 | { 73 | return char_admin[playerid]; 74 | } 75 | 76 | stock Admin_GetCode(const playerid) 77 | { 78 | return char_admin_code[playerid]; 79 | } 80 | 81 | #include 82 | #include 83 | #include 84 | #include 85 | #include -------------------------------------------------------------------------------- /scriptfiles/vehicles/ls_airport.txt: -------------------------------------------------------------------------------- 1 | 519,1806.1066,-2406.8108,14.4731,220.1901,1,1 ; 2 | 519,1851.0873,-2397.0818,14.4738,221.0776,1,1 ; 3 | 519,1881.2903,-2364.6726,14.4760,231.6925,1,1 ; 4 | 593,1990.4940,-2400.4700,14.0069,126.8314,58,8 ; 5 | 593,1991.9357,-2377.5691,14.0096,111.9823,19,33 ; 6 | 593,1994.2283,-2329.9182,14.0074,123.6920,68,8 ; 7 | 593,1993.0359,-2307.1487,14.0073,121.4826,2,1 ; 8 | 485,2005.4028,-2340.4004,13.2026,353.8798,1,74 ; 9 | 485,1944.1885,-2234.3225,13.2017,358.4947,1,75 ; 10 | 485,1893.2838,-2320.5076,13.2070,285.2385,1,76 ; 11 | 485,1882.2479,-2390.3965,13.2133,266.7464,1,77 ; 12 | 485,1915.2466,-2643.3474,13.2050,2.2446,1,78 ; 13 | 553,1944.5242,-2639.1465,14.8823,28.0299,55,23 ; 14 | 553,1984.2778,-2637.7561,14.8831,9.0602,94,116 ; 15 | 553,2019.7615,-2642.5803,14.8759,318.3256,128,7 ; 16 | 476,2124.7380,-2418.2964,14.2641,205.4615,7,6 ; 17 | 476,2142.8672,-2434.3076,14.2587,144.2144,1,6 ; 18 | 476,2107.1399,-2417.1648,14.2647,150.9743,135,14 ; 19 | 476,2083.0217,-2429.4854,14.2543,182.9969,119,117 ; 20 | 510,2081.9866,-2359.7229,13.1551,64.1485,39,39 ; 21 | 510,1866.6115,-2660.4602,13.1552,18.6151,6,6 ; 22 | 513,1881.0273,-2632.3281,14.0996,40.9586,21,36 ; 23 | 513,1891.9824,-2632.7056,14.1085,332.5663,138,122 ; 24 | 593,1840.4315,-2631.8525,14.0080,319.2033,22,1 ; 25 | 593,1822.1689,-2629.8713,14.0076,35.6965,36,8 ; 26 | 593,1806.7133,-2630.3167,14.0037,32.0461,51,1 ; 27 | 476,1752.8643,-2632.2061,14.2631,1.4834,103,102 ; 28 | 481,1698.6532,-2692.0225,13.0592,256.1956,26,1 ; 29 | 485,1707.5415,-2646.3325,13.2052,359.6846,1,73 ; 30 | 487,1716.0422,-2437.5767,13.7316,148.7897,18,108 ; 31 | 487,1737.4827,-2432.7019,13.7340,192.0326,24,78 ; 32 | 487,1752.5586,-2452.2275,13.7322,147.2027,54,29 ; 33 | 417,1636.0142,-2409.7209,13.6266,193.2301,0,0 ; 34 | 417,1655.8718,-2410.4551,13.6350,156.9428,0,0 ; 35 | 510,1600.9696,-2395.0103,13.2262,298.2056,28,28 ; 36 | 497,1575.9307,-2408.7253,13.7347,153.2041,0,1 ; Police Maverick 37 | 497,1554.8207,-2406.4417,13.7308,190.6669,0,1 ; Police Maverick 2 -------------------------------------------------------------------------------- /gamemodes/database/db_init.inc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | static 4 | MySQL: db_handle; 5 | 6 | /** 7 | * Hooks 8 | */ 9 | hook OnGameModeInit() 10 | { 11 | DB_CreateConnection(); 12 | pp_use_funcidx(true); 13 | 14 | return Y_HOOKS_CONTINUE_RETURN_1; 15 | } 16 | 17 | hook OnGameModeExit() 18 | { 19 | if (!mysql_close(db_handle)) { 20 | print("Failed to terminate the database connection. Please check this."); 21 | } 22 | 23 | return Y_HOOKS_CONTINUE_RETURN_1; 24 | } 25 | 26 | /** 27 | * Functions 28 | */ 29 | static DB_CreateConnection() 30 | { 31 | static 32 | env_hostname[10], 33 | env_username[5], 34 | env_database[15]; 35 | 36 | 37 | if (Env_Has("MYSQL_HOSTNAME")) { 38 | Env_Get("MYSQL_HOSTNAME", env_hostname); 39 | } 40 | 41 | if (Env_Has("MYSQL_USERNAME")) { 42 | Env_Get("MYSQL_USERNAME", env_username); 43 | } 44 | 45 | if (Env_Has("MYSQL_DATABASE")) { 46 | Env_Get("MYSQL_DATABASE", env_database); 47 | } 48 | 49 | new MySQLOpt: options = mysql_init_options(); 50 | mysql_set_option(options, AUTO_RECONNECT, true); 51 | mysql_set_option(options, MULTI_STATEMENTS, true); 52 | mysql_set_option(options, POOL_SIZE, 2); 53 | 54 | db_handle = mysql_connect(env_hostname, env_username, "", env_database, options); 55 | 56 | if (mysql_errno(db_handle) != 0) { 57 | print("[MySQL]: Can't connect to database!"); 58 | 59 | SendRconCommand("exit"); 60 | return 1; 61 | } 62 | 63 | print("Database successfully initialised."); 64 | 65 | return 1; 66 | } 67 | 68 | // OnQueryError - REQUIRED 69 | public OnQueryError(errorid, const error[], const callback[], const query[], MySQL:handle) 70 | { 71 | return 1; 72 | } 73 | 74 | stock MySQL: MySQL_GetHandle() 75 | { 76 | return db_handle; 77 | } 78 | 79 | stock Task: MySQL_Query(const query[]) 80 | { 81 | return mysql_aquery(MySQL_GetHandle(), query, true); 82 | } 83 | 84 | stock Task: MySQL_QueryS(ConstStringTag:query) 85 | { 86 | return mysql_aquery_s(MySQL_GetHandle(), query, true); 87 | } -------------------------------------------------------------------------------- /gamemodes/core/player/vehicle/vehicle_hooks.inc: -------------------------------------------------------------------------------- 1 | // IMPORTANT: WE'VE TO SOLVE ISSUES WITH VEHICLE FRAMEWORK LIBRARY... 2 | 3 | // #include 4 | 5 | // /** 6 | // * Hooks 7 | // */ 8 | // hook OnPlayerKeyStateChange(playerid, newkeys, oldkeys) 9 | // { 10 | // // Vehicle engine 11 | // if (PRESSED(KEY_SUBMISSION) && IsPlayerInAnyVehicle(playerid)) { 12 | // Vehicle_SetEngineState(GetPlayerVehicleID(playerid), 13 | // Vehicle_GetEngineState(GetPlayerVehicleID(playerid)) ? (E_ENGINE_STATE_OFF) : (E_ENGINE_STATE_ON) 14 | // ); 15 | 16 | // UI_ShowPlayerHelpMsg( 17 | // playerid, "~w~You_have_switched_%s_~w~the_vehice_engine.", 18 | // Vehicle_GetEngineState(GetPlayerVehicleID(playerid)) ? ("~g~on") : ("~r~off") 19 | // ); 20 | // } 21 | 22 | // // Vehicle lights 23 | // if (PRESSED(KEY_YES) && IsPlayerInAnyVehicle(playerid)) { 24 | // Vehicle_SetLightsRunState(GetPlayerVehicleID(playerid), 25 | // Vehicle_GetLightsRunState(GetPlayerVehicleID(playerid)) ? (E_LIGHTS_OFF) : (E_LIGHTS_ON) 26 | // ); 27 | 28 | // UI_ShowPlayerHelpMsg( 29 | // playerid, "~w~You_have_switched_%s_~w~the_vehice_lights.", 30 | // Vehicle_GetLightsRunState(GetPlayerVehicleID(playerid)) ? ("~g~on") : ("~r~off") 31 | // ); 32 | // } 33 | 34 | // // Vehicle doors lock 35 | // if (PRESSED(KEY_NO) && IsPlayerInAnyVehicle(playerid)) { 36 | // Vehicle_SetDoorState(GetPlayerVehicleID(playerid), 37 | // Vehicle_GetDoorState(GetPlayerVehicleID(playerid)) ? (E_DOOR_STATE_OFF) : (E_DOOR_STATE_ON) 38 | // ); 39 | 40 | // UI_ShowPlayerHelpMsg( 41 | // playerid, "~w~You_have_%s_~w~the_vehice.", 42 | // Vehicle_GetDoorState(GetPlayerVehicleID(playerid)) ? ("~r~locked") : ("~g~unlocked") 43 | // ); 44 | // } 45 | 46 | // return Y_HOOKS_CONTINUE_RETURN_1; 47 | // } 48 | 49 | // hook OnPlayerEnterVehicle(playerid, vehicleid, bool:ispassenger) 50 | // { 51 | // Vehicle_SetDoorState(vehicleid, E_DOOR_STATE_OFF); 52 | 53 | // return Y_HOOKS_CONTINUE_RETURN_1; 54 | // } 55 | 56 | // hook OnPlayerExitVehicle(playerid, vehicleid) 57 | // { 58 | // Vehicle_SetDoorState(vehicleid, E_DOOR_STATE_OFF); 59 | 60 | // return Y_HOOKS_CONTINUE_RETURN_1; 61 | // } -------------------------------------------------------------------------------- /scriptfiles/vehicles/lv_airport.txt: -------------------------------------------------------------------------------- 1 | 519,1328.6196,1612.2500,11.7437,270.0001,1,1 ; SA Shamal 2 | 593,1352.1102,1779.0000,11.2880,270.0000,2,1 ; SA Dodo 3 | 593,1352.1116,1801.5000,11.2863,269.9999,36,8 ; SA Dodo 4 | 522,1676.4335,1322.1592,10.3320,87.7189,7,79 ; Hidden NRG 5 | 417,1286.8724,1449.6250,10.8722,270.0000,0,0 ; SA Livathan 6 | 553,1571.4385,1487.7513,12.1685,311.1577,71,87 ; Nevada 1 7 | 553,1597.4109,1342.6935,12.1865,344.8449,71,87 ; Nevada 2 8 | 487,1655.0576,1554.5649,10.9879,64.4211,26,3 ; Maverick 1 9 | 487,1397.5690,1770.0475,10.9971,269.3060,26,3 ; Maverick 2 10 | 487,1618.4143,1357.5428,10.9893,169.4555,26,3 ; Maverick 3 11 | 469,1358.1189,1253.5436,10.8285,358.5788,1,3 ; Sparrow 1 12 | 609,1341.5886,1729.4564,10.8864,91.6428,36,36 ; Boxville by a hanger 13 | 519,1303.7971,1360.9348,11.7405,267.7907,1,1 ; Shamal 2 14 | 511,1341.3031,1682.6432,12.1967,268.5870,3,90 ; Beagle 15 | 512,1326.1611,1420.4333,11.1030,178.1441,17,39 ; Cropduster 16 | 513,1280.1281,1411.8032,11.3653,223.4432,48,18 ; Stunt plane 17 | 515,1573.4801,1654.4058,11.8422,91.4976,24,77 ; Roadtrain 1b 18 | 435,1554.5338,1669.4784,11.4542,180.0,1,1 ; Trailer 1 - 180 19 | 435,1581.9742,1664.0665,11.4526,180.0,1,1 ; Trailer 2 - 180 20 | 404,1309.7848,1279.5735,10.5544,359.2681,101,101 ; Perennial 21 | 411,1682.5769,1316.6561,10.5474,358.3994,123,1 ; Infernus in Carpark 22 | 436,1663.4026,1297.1321,10.5877,359.4867,83,1 ; wtf is a previon? 23 | 439,1642.0035,1293.2332,10.7156,268.6615,54,38 ; Carpark Stallion 24 | 462,1713.8118,1319.2559,10.4165,268.4222,2,1 ; faggio 25 | 474,1695.4330,1306.1843,10.5853,179.3891,110,1 ; Harmes (maybe) 26 | 480,1682.4532,1286.9058,10.5945,179.2040,6,6 ; Comet 27 | 420,1723.8730,1501.4979,10.5187,167.0140,6,1 ; Taxi out front 28 | 420,1712.5610,1461.2471,10.5375,162.1933,6,1 ; Taxi out front 29 | 420,1707.1067,1437.8787,10.4501,182.4505,6,1 ; Taxi out front 30 | 438,1717.6479,1479.1417,10.7440,163.7234,6,76 ; Taxi out front 31 | 438,1707.2537,1415.7250,10.5640,189.8016,6,76 ; Taxi out front 32 | 437,1719.1062,1381.2042,10.6256,197.7497,123,20 ; bus out front 33 | 485,1537.6528,1211.1794,10.4701,0.8908,1,79 ; baggage 34 | 592,1340.5055,1495.6396,12.0169,270.7770,1,1 ; Andromeda 35 | 485,1353.3430,1642.0271,10.4825,175.0001,1,76 ; baggage 1 36 | 422,1325.3158,1278.7190,10.8037,180.6936,101,25 ; bobcat 37 | 505,1282.6981,1304.3754,10.9647,82.8840,76,102 ; rancher 38 | 407,1282.0891,1477.3781,11.0577,244.1416,3,1 ; fire 1 39 | 407,1312.9038,1580.9365,11.0562,272.9746,3,1 ; fire 2 -------------------------------------------------------------------------------- /gamemodes/core/systems/fastfood/fastfood_functions.inc: -------------------------------------------------------------------------------- 1 | const 2 | MAX_FASTFOODS = 100, 3 | FF_OBJECT_ID = 1571; 4 | 5 | /** 6 | * Variables 7 | */ 8 | new 9 | Iterator: Iter_Fastfoods, 10 | Text3D: ff_label[MAX_FASTFOODS], 11 | 12 | Float: ff_x[MAX_FASTFOODS], 13 | Float: ff_y[MAX_FASTFOODS], 14 | Float: ff_z[MAX_FASTFOODS], 15 | Float: ff_rz[MAX_FASTFOODS], 16 | 17 | ff_id[MAX_FASTFOODS], 18 | ff_object[MAX_FASTFOODS]; 19 | 20 | /** 21 | * Functions 22 | */ 23 | stock FF_Create(const playerid) 24 | { 25 | new 26 | id = Iter_Alloc(Iter_Fastfoods), 27 | String: str_query_ff_add; 28 | 29 | GetPlayerPos(playerid, Float: ff_x[id], Float: ff_y[id], Float: ff_z[id]); 30 | GetPlayerFacingAngle(playerid, Float: ff_rz[id]); 31 | 32 | SetPlayerPos(playerid, Float: (ff_x[id] + 4.0), Float: ff_y[id], Float: ff_z[id]); 33 | SetPlayerFacingAngle(playerid, Float: ff_rz[id]); 34 | 35 | ff_object[id] = CreateDynamicObject( 36 | FF_OBJECT_ID, Float: ff_x[id], Float: (ff_y[id] + 0.5), Float: ff_z[id], Float: 0.0, Float: 0.0, Float: (ff_rz[id] + 180.0) 37 | ); 38 | 39 | ff_label[id] = Text3D: fmt_Create3DTextLabel( 40 | str_format("[Fast food - %d]", (id + 1)), X11_YELLOW, 41 | Float: ff_x[id], Float: ff_y[id], Float: ff_z[id], Float: 30.0, 0 42 | ); 43 | 44 | str_query_ff_add = String: str_format( 45 | "INSERT INTO \ 46 | fastfood (ff_x, ff_y, ff_z, ff_rz) \ 47 | VALUES \ 48 | ('%f', '%f', '%f', '%f')", 49 | Float: ff_x[id], Float: ff_y[id], Float: ff_z[id], Float: (ff_rz[id] + 180.0) 50 | ); 51 | 52 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_ff_add, "OnFFCreated", "i", id); 53 | 54 | return 1; 55 | } 56 | 57 | stock FF_Nearby(const playerid) 58 | { 59 | foreach (new i: Iter_Fastfoods) { 60 | if (IsPlayerInRangeOfPoint(playerid, Float: 2.0, ff_x[i], ff_y[i], ff_z[i])) { 61 | return 1; 62 | } 63 | } 64 | 65 | return 0; 66 | } 67 | 68 | stock FF_Goto(const playerid, const id) 69 | { 70 | task_await( 71 | Task: MySQL_QueryS( 72 | String: str_format( 73 | "SELECT * FROM fastfood WHERE ff_id = '%d'", id 74 | ) 75 | ) 76 | ); 77 | 78 | if (!cache_num_rows()) { 79 | return err(playerid, "Invalid fastfood ID!"); 80 | } 81 | 82 | SetPlayerPos(playerid, Float: (ff_x[(id - 1)] + 2.0), Float: ff_y[(id - 1)], Float: ff_z[(id - 1)]); 83 | 84 | return 1; 85 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # survive-time 2 | ## Join our discord server 3 | [Survive-Time Discord Server](https://discord.gg/3vux22UJG5) <- click 4 | 5 | [![sampctl](https://img.shields.io/badge/sampctl-survive--time-2f2f2f.svg?style=for-the-badge)](https://github.com/emmett-white/survive-time) 6 | 7 | 30 | 31 | ## Installation 32 | 33 | Simply install to your project: 34 | 35 | ```bash 36 | mkdir project && cd project 37 | git clone https://github.com/emmett-white/survive-time 38 | cd survive-time 39 | sampctl p ensure && sampctl p build 40 | ``` 41 | 42 | ## Contributing & Style Guide 43 | ```c 44 | // Constants and macros in uppercase, with underscores separating words. 45 | // eg. 46 | #define MAX_REASON_TEXT 64 47 | 48 | const MAX_PLAYERS = 10; 49 | 50 | // Variables 51 | // Globals `static` as much as possible to prevent complex inter-module dependencies. 52 | // eg. 53 | static var1; // invalid 54 | static var1, 55 | var2; // invalid 56 | 57 | static 58 | var1, 59 | var2; // valid 60 | 61 | // Brace style 62 | // Allman 63 | // eg. 64 | Func_Name(const playerid, ...) 65 | { 66 | if (...) { 67 | return ...; 68 | } 69 | 70 | if (...) { 71 | // code 72 | 73 | return ...; 74 | } 75 | 76 | return 1; 77 | } 78 | 79 | // Function names 80 | // Functions and callbacks in CamelCase 81 | // eg. 82 | Player_GetLevel(const playerid) 83 | { 84 | return char_score[playerid]; 85 | } 86 | 87 | forward OnAccountRegistered(const playerid); 88 | public OnAccountRegistered(const playerid) 89 | { 90 | account_id[playerid] = cache_insert_id(); 91 | return 1; 92 | } 93 | ``` 94 | 95 | # survive-time 96 | -------------------------------------------------------------------------------- /gamemodes/core/systems/dealer/dealer_commands.inc: -------------------------------------------------------------------------------- 1 | PLAYER_COMMAND:dealer(playerid, const params[]) 2 | { 3 | if (!Dealer_Nearby(playerid)) { 4 | return err(playerid, "You've to be close to the dealer!"); 5 | } 6 | 7 | task_yield(1); 8 | 9 | static 10 | dialog_dealer[e_DIALOG_RESPONSE_INFO]; 11 | 12 | task_await_arr( 13 | Task: ShowPlayerAsyncDialog( 14 | playerid, DIALOG_STYLE_TABLIST, 15 | "Dealer offers", "9mm Pistol\t$45\nBuy drugs (10g)\t$55\nSell drugs (10g)\t$35", 16 | "Submit", "Cancel" 17 | ), dialog_dealer 18 | ); 19 | 20 | if (dialog_dealer[E_DIALOG_RESPONSE_Response]) { 21 | switch (dialog_dealer[E_DIALOG_RESPONSE_Listitem]) { 22 | case 0: { 23 | if (Player_GetMoney(playerid) < 45) { 24 | return err(playerid, "You don't have enough money!"); 25 | } 26 | 27 | GivePlayerMoney(playerid, -45); 28 | GivePlayerWeapon(playerid, 22, 50); 29 | 30 | Player_SetMoney(playerid, (Player_GetMoney(playerid) - 45)); 31 | UI_ShowPlayerHelpMsg(playerid, "~y~9mm Pistol (%d)", GetPlayerAmmo(playerid)); 32 | } 33 | 34 | case 1: { 35 | if (Player_GetMoney(playerid) < 55) { 36 | return err(playerid, "You don't have enough money!"); 37 | } 38 | 39 | GivePlayerMoney(playerid, -55); 40 | 41 | Player_SetMoney(playerid, (Player_GetMoney(playerid) - 55)); 42 | Player_SetDrugs(playerid, (Player_GetDrugs(playerid) + 10)); 43 | 44 | UI_ShowPlayerHelpMsg(playerid, "~y~10g drugs"); 45 | } 46 | 47 | case 2: { 48 | if (!Player_GetDrugs(playerid)) { 49 | return err(playerid, "You don't have drugs!"); 50 | } 51 | 52 | GivePlayerMoney(playerid, 35); 53 | 54 | Player_SetMoney(playerid, (Player_GetMoney(playerid) + 35)); 55 | Player_SetDrugs(playerid, (Player_GetDrugs(playerid) - 10)); 56 | 57 | UI_ShowPlayerHelpMsg(playerid, "~r~-10g drugs"); 58 | } 59 | } 60 | } 61 | 62 | return 1; 63 | } 64 | 65 | PLAYER_COMMAND:usedrug(playerid, const params[]) 66 | { 67 | if (!Player_GetDrugs(playerid) && Player_GetDrugs(playerid) < 10) { 68 | return err(playerid, "You don't have drugs!"); 69 | } 70 | 71 | Player_SetDrugs(playerid, (Player_GetDrugs(playerid) - 10)); 72 | Player_DrugEffects(playerid); 73 | 74 | return 1; 75 | } -------------------------------------------------------------------------------- /gamemodes/core/account/account_vars.inc: -------------------------------------------------------------------------------- 1 | /** 2 | * Variables 3 | */ 4 | new 5 | account_id[MAX_PLAYERS], 6 | account_password[MAX_PLAYERS][64], 7 | 8 | player_login_attempts[MAX_PLAYERS], 9 | 10 | char_id[MAX_PLAYERS], 11 | char_score[MAX_PLAYERS], 12 | char_money[MAX_PLAYERS], 13 | char_skin[MAX_PLAYERS]; 14 | 15 | /** 16 | * Set functions 17 | */ 18 | stock Player_SetScore(const playerid, const int) 19 | { 20 | if (!IsPlayerConnected(playerid)) { 21 | return 0; 22 | } 23 | 24 | char_score[playerid] = int; 25 | 26 | new String: str_query_update = String: str_format( 27 | "UPDATE \ 28 | characters \ 29 | SET \ 30 | char_score = '%d' \ 31 | WHERE \ 32 | char_name = '%e'", 33 | Player_GetScore(playerid), ReturnPlayerName(playerid) 34 | ); 35 | 36 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_update); 37 | 38 | UI_UpdatePlayerTextDraw(playerid, 2); 39 | 40 | return 1; 41 | } 42 | 43 | stock Player_SetMoney(const playerid, const int) 44 | { 45 | if (!IsPlayerConnected(playerid)) { 46 | return 0; 47 | } 48 | 49 | char_money[playerid] = int; 50 | 51 | new String: str_query_update = String: str_format( 52 | "UPDATE \ 53 | characters \ 54 | SET \ 55 | char_money = '%d' \ 56 | WHERE \ 57 | char_name = '%e'", 58 | (GetPlayerMoney(playerid) + Player_GetMoney(playerid)), ReturnPlayerName(playerid) 59 | ); 60 | 61 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_update); 62 | 63 | return 1; 64 | } 65 | 66 | stock Player_SetSkin(const playerid, const int) 67 | { 68 | if (!IsPlayerConnected(playerid)) { 69 | return 0; 70 | } 71 | 72 | char_skin[playerid] = int; 73 | 74 | new String: str_query_update = String: str_format( 75 | "UPDATE \ 76 | characters \ 77 | SET \ 78 | char_skin = '%d' \ 79 | WHERE \ 80 | char_name = '%e'", 81 | Player_GetSkin(playerid), ReturnPlayerName(playerid) 82 | ); 83 | 84 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_update); 85 | 86 | UI_UpdatePlayerTextDraw(playerid, 1); 87 | 88 | return 1; 89 | } 90 | 91 | /** 92 | * Get functions 93 | */ 94 | stock Player_GetScore(const playerid) 95 | { 96 | return char_score[playerid]; 97 | } 98 | 99 | stock Player_GetMoney(const playerid) 100 | { 101 | return char_money[playerid]; 102 | } 103 | 104 | stock Player_GetSkin(const playerid) 105 | { 106 | return char_skin[playerid]; 107 | } -------------------------------------------------------------------------------- /gamemodes/core/admin/admin_level_2.inc: -------------------------------------------------------------------------------- 1 | ADMIN_COMMAND:[e_ADMIN_LEVEL_2]warn(playerid, const params[]) 2 | { 3 | extract params -> new targetid, string: reason[MAX_REASON_TEXT]; else { 4 | return usage(playerid, "/warn [targetid] [reason]"); 5 | } 6 | 7 | Player_SetWarns(targetid, (Player_GetWarns(targetid) + 1)); 8 | 9 | if (Player_GetWarns(targetid) == (MAX_WARNS + 1)) { 10 | va_SendClientMessageToAll( 11 | X11_RED, "* Ban: "WHITE"Player %s has been banned (5 warns).", ReturnPlayerName(targetid) 12 | ); 13 | 14 | wait_ms(1000); 15 | BanEx(targetid, "Max warns (5)."); 16 | 17 | return 1; 18 | } 19 | 20 | va_SendClientMessageToAll( 21 | X11_RED, "* Warn: "WHITE"Player %s has been warned. Reason: %s", 22 | ReturnPlayerName(targetid), reason 23 | ); 24 | 25 | return 1; 26 | } 27 | 28 | ADMIN_COMMAND:[e_ADMIN_LEVEL_2]goto(playerid, const params[]) 29 | { 30 | if (isnull(params)) { 31 | return usage(playerid, "/goto [targetid]"); 32 | } 33 | 34 | if (!IsPlayerConnected(strval(params))) { 35 | return 0; 36 | } 37 | 38 | static 39 | x, 40 | y, 41 | z; 42 | 43 | GetPlayerPos(strval(params), Float: x, Float: y, Float: z); 44 | SetPlayerPos(playerid, Float: x, Float: y, Float: z); 45 | 46 | fmt_info(strval(params), "Admin %s has teleported to you.", ReturnPlayerName(playerid)); 47 | fmt_info(strval(params), "You've teleported to the player %s.", ReturnPlayerName(strval(params))); 48 | 49 | return 1; 50 | } 51 | 52 | ADMIN_COMMAND:[e_ADMIN_LEVEL_2]get(playerid, const params[]) 53 | { 54 | if (isnull(params)) { 55 | return usage(playerid, "/get [targetid]"); 56 | } 57 | 58 | if (!IsPlayerConnected(strval(params))) { 59 | return 0; 60 | } 61 | 62 | static 63 | x, 64 | y, 65 | z; 66 | 67 | GetPlayerPos(playerid, Float: x, Float: y, Float: z); 68 | SetPlayerPos(strval(params), Float: x, Float: y, Float: z); 69 | 70 | fmt_info(strval(params), "Admin %s teleported you to him.", ReturnPlayerName(playerid)); 71 | fmt_info(strval(params), "You've teleported player %s to you.", ReturnPlayerName(strval(params))); 72 | 73 | return 1; 74 | } 75 | 76 | ADMIN_COMMAND:[e_ADMIN_LEVEL_2]setskin(playerid, const params[]) 77 | { 78 | extract params -> new targetid, skin = 26; else { 79 | return usage(playerid, "/setskin [targetid] [skin (default = 26)]"); 80 | } 81 | 82 | if (!(1 <= skin <= 311)) { 83 | return err(playerid, "Invalid skin ID!"); 84 | } 85 | 86 | Player_SetSkin(targetid, skin); 87 | SetPlayerSkin(playerid, Player_GetSkin(playerid)); 88 | 89 | return 1; 90 | } -------------------------------------------------------------------------------- /pawn.json: -------------------------------------------------------------------------------- 1 | { 2 | "user": "emmett-white", 3 | "repo": "survive-time", 4 | "entry": "gamemodes\\SurviveTime.pwn", 5 | "output": "gamemodes\\SurviveTime.amx", 6 | "dependencies": [ 7 | "sampctl/samp-stdlib", 8 | "Zeex/samp-plugin-crashdetect", 9 | "Zeex/samp-plugin-jit", 10 | "pBlueG/SA-MP-MySQL", 11 | "dakyskye/pawn-env", 12 | "pawn-lang/YSI-Includes:5.4.102", 13 | "samp-incognito/samp-streamer-plugin", 14 | "IllidanS4/PawnPlus", 15 | "AGraber/pawn-plus-mysql", 16 | "AGraber/samp-async-dialogs", 17 | "maddinat0r/sscanf", 18 | "samp-incognito/samp-streamer-plugin", 19 | "emmett-white/survive-time", 20 | "Southclaws/pawn-chrono", 21 | "katursis/Pawn.RakNet", 22 | "Southclaws/progress2", 23 | "emmett-white/samp-players-count", 24 | "Mergevos/samp-vehicle-framework@dev" 25 | ], 26 | "local": true, 27 | "runtime": { 28 | "version": "0.3.7", 29 | "mode": "y_testing", 30 | "rcon_password": "44", 31 | "port": 8192, 32 | "hostname": "SurviveTime | In process...", 33 | "maxplayers": 20, 34 | "language": "English", 35 | "mapname": "San Andreas", 36 | "weburl": "www.open.mp", 37 | "gamemodetext": "RolePlay", 38 | "announce": true, 39 | "lanmode": false, 40 | "query": true, 41 | "rcon": false, 42 | "logqueries": false, 43 | "sleep": 5, 44 | "maxnpc": 0, 45 | "stream_rate": 1000, 46 | "stream_distance": 200, 47 | "onfoot_rate": 30, 48 | "incar_rate": 30, 49 | "weapon_rate": 30, 50 | "chatlogging": true, 51 | "timestamp": true, 52 | "messageholelimit": 3000, 53 | "messageslimit": 500, 54 | "ackslimit": 3000, 55 | "playertimeout": 10000, 56 | "minconnectiontime": 0, 57 | "lagcompmode": 1, 58 | "connseedtime": 300000, 59 | "db_logging": false, 60 | "db_log_queries": false, 61 | "conncookies": true, 62 | "cookielogging": false, 63 | "output": true 64 | }, 65 | "builds": [ 66 | { 67 | "name": "dev", 68 | "version": "3.10.10", 69 | "args": [ 70 | "-;+", 71 | "-(+", 72 | "-d3", 73 | "-E", 74 | "-Z" 75 | ], 76 | "includes": [ 77 | "gamemodes/database", 78 | "gamemodes/utils", 79 | "gamemodes/core/ban", 80 | "gamemodes/core/account", 81 | "gamemodes/core/admin", 82 | "gamemodes/core/player", 83 | "gamemodes/core/player/warn", 84 | "gamemodes/core/player/mute", 85 | "gamemodes/core/player/chat", 86 | "gamemodes/core/player/report", 87 | "gamemodes/core/player/ui", 88 | "gamemodes/core/player/ui/help", 89 | "gamemodes/core/player/ui/register", 90 | "gamemodes/core/player/vehicle", 91 | "gamemodes/core/player/spawn", 92 | "gamemodes/core/systems/dealer", 93 | "gamemodes/core/player/animations", 94 | "gamemodes/core/jobs", 95 | "gamemodes/core/jobs/bus", 96 | "gamemodes/core/systems/fastfood" 97 | ], 98 | "compiler": {} 99 | } 100 | ] 101 | } -------------------------------------------------------------------------------- /gamemodes/core/systems/fastfood/fastfood_commands.inc: -------------------------------------------------------------------------------- 1 | PLAYER_COMMAND:fastfood(playerid, const params[]) 2 | { 3 | if (!FF_Nearby(playerid)) { 4 | return err(playerid, "You've to be close to fast food!"); 5 | } 6 | 7 | static 8 | Float: hp; 9 | 10 | GetPlayerHealth(playerid, hp); 11 | 12 | if (hp >= 80.0) { 13 | return err(playerid, "You're not hungry or thirsty!"); 14 | } 15 | 16 | task_yield(1); 17 | 18 | static 19 | dialog_fastfood[e_DIALOG_RESPONSE_INFO]; 20 | 21 | task_await_arr( 22 | Task:ShowPlayerAsyncDialog( 23 | playerid, DIALOG_STYLE_TABLIST, 24 | "Fast food", "Burger\t$4\nChips\t$2\nSoda\t$2\nWater\t$1", 25 | "Buy", "Cancel" 26 | ), dialog_fastfood 27 | ); 28 | 29 | if (dialog_fastfood[E_DIALOG_RESPONSE_Response]) { 30 | switch (dialog_fastfood[E_DIALOG_RESPONSE_Listitem]) { 31 | case 0: { 32 | if (Player_GetMoney(playerid) < 4) { 33 | return err(playerid, "You don't have enough money!"); 34 | } 35 | 36 | GivePlayerMoney(playerid, -4); 37 | Player_SetMoney(playerid, (Player_GetMoney(playerid) - 4)); 38 | 39 | GetPlayerHealth(playerid, hp); 40 | SetPlayerHealth(playerid, (hp + 10.0)); 41 | 42 | UI_ShowPlayerHelpMsg(playerid, "~r~-$4"); 43 | } 44 | 45 | case 1: { 46 | if (Player_GetMoney(playerid) < 2) { 47 | return err(playerid, "You don't have enough money!"); 48 | } 49 | 50 | GivePlayerMoney(playerid, -2); 51 | Player_SetMoney(playerid, (Player_GetMoney(playerid) - 2)); 52 | 53 | SetPlayerHealth(playerid, (hp + 5.0)); 54 | 55 | UI_ShowPlayerHelpMsg(playerid, "~r~-$2"); 56 | } 57 | 58 | case 2: { 59 | if (Player_GetMoney(playerid) < 2) { 60 | return err(playerid, "You don't have enough money!"); 61 | } 62 | 63 | GivePlayerMoney(playerid, -2); 64 | Player_SetMoney(playerid, (Player_GetMoney(playerid) - 2)); 65 | 66 | SetPlayerHealth(playerid, (hp + 3.0)); 67 | 68 | UI_ShowPlayerHelpMsg(playerid, "~r~-$2"); 69 | } 70 | 71 | case 3: { 72 | if (Player_GetMoney(playerid) < 1) { 73 | return err(playerid, "You don't have enough money!"); 74 | } 75 | 76 | GivePlayerMoney(playerid, -1); 77 | Player_SetMoney(playerid, (Player_GetMoney(playerid) - 1)); 78 | 79 | SetPlayerHealth(playerid, (hp + 4.0)); 80 | 81 | UI_ShowPlayerHelpMsg(playerid, "~r~-$1"); 82 | } 83 | } 84 | } 85 | 86 | return 1; 87 | } -------------------------------------------------------------------------------- /scriptfiles/vehicles/flint.txt: -------------------------------------------------------------------------------- 1 | 599,-807.0116,-942.0936,104.6271,314.7196,0,1 ; 2 | 405,-589.3418,-1079.1355,23.3771,236.8904,24,1 ; 3 | 505,-569.3895,-1048.4032,24.0146,237.8018,14,123 ; 4 | 403,-349.3221,-1052.6652,59.4551,89.0788,14,123 ; 5 | 505,-388.6629,-1150.0758,69.5786,357.9839,14,123 ; 6 | 403,-76.0173,-1110.5597,1.0456,157.5384,36,2 ; 7 | 531,-41.9499,-1153.2262,1.0440,63.5908,36,2 ; 8 | 403,-39.6653,-1149.7799,1.0409,65.3597,36,2 ; 9 | 531,-82.1817,-1137.4266,1.0402,340.8923,36,2 ; 10 | 531,-85.4142,-1135.9938,1.0412,337.3026,36,2 ; 11 | 403,-184.4848,-1307.1466,5.7091,103.7043,36,2 ; 12 | 531,-367.7308,-1437.3649,25.6921,89.2236,36,2 ; 13 | 422,-587.1984,-1499.8407,10.1747,36.7555,97,25 ; 14 | 422,-657.5599,-1606.0066,25.1821,175.4014,97,25 ; 15 | 400,-495.5439,-1834.0343,17.7955,184.7055,101,1 ; 16 | 473,-512.5999,-1902.9431,5.0016,179.0171,56,53 ; 17 | 468,-655.3087,-1998.3328,26.7546,211.5583,46,46 ; 18 | 466,-841.4815,-2274.6650,20.8199,210.7536,68,76 ; 19 | 466,-714.6012,-2547.3081,50.9399,128.7565,68,76 ; 20 | 473,-485.8806,-2852.4319,-0.1373,248.4979,56,15 ; 21 | 473,-196.7365,-2925.3259,0.0006,269.7706,56,15 ; 22 | 473,-237.4600,-1794.3876,-0.1057,3.6694,56,15 ; 23 | 468,-271.2445,-1790.1851,10.9364,163.2745,3,3 ; 24 | 400,-379.1094,-2171.6399,46.6781,140.2350,62,1 ; 25 | 410,-1196.9539,-2364.4788,18.5773,236.2259,9,1 ; 26 | 532,-759.8405,-2458.4460,72.6366,319.4753,0,0 ; 27 | 400,-20.6879,-2498.1814,36.7408,122.2802,4,1 ; 28 | 400,-17.0690,-2520.2581,36.7478,213.8456,4,1 ; 29 | 410,-31.9095,-2493.5383,36.3036,194.0151,10,1 ; 30 | 599,-11.5140,-2512.1458,36.8428,121.2561,0,1 ; 31 | 489,20.0119,-2648.0332,40.6164,92.6500,112,120 ; 32 | 489,-186.1633,-2516.2021,31.3678,342.0027,112,120 ; 33 | 466,-384.6082,-2474.8984,102.4780,268.9366,25,76 ; 34 | 466,-485.5412,-2688.4248,152.3252,102.3787,25,76 ; 35 | 471,-765.0049,-2686.1196,83.7728,114.8461,120,112 ; 36 | 586,-1541.8571,-1342.7786,50.5056,14.3390,122,1 ; 37 | 586,-1029.8485,-638.6542,31.5280,93.4600,8,1 ; 38 | 586,-1006.8740,-674.1090,31.5279,275.2718,8,1 ; 39 | 400,-983.5594,-641.0239,32.1002,271.1476,101,1 ; 40 | 400,-1006.5243,-623.0823,32.1002,90.1122,101,1 ; 41 | 483,-1030.8571,-658.6420,32.0001,90.1086,1,31 ; 42 | 531,-940.2722,-498.2120,25.9274,256.5565,51,53 ; 43 | 531,-918.0818,-534.8812,25.9175,357.6102,51,53 ; 44 | 532,-1140.0840,-991.7651,130.1964,86.3863,0,0 ; 45 | 532,-1164.6876,-1057.4521,130.2022,277.3220,0,0 ; 46 | 466,-1407.8011,-1165.6597,103.0781,151.5499,78,76 ; 47 | 531,-1444.6823,-1496.3507,101.7242,183.6463,91,2 ; 48 | 531,-1417.1289,-1534.5874,101.7193,184.5565,91,2 ; 49 | 531,-1451.8495,-1456.9764,101.7236,175.8479,91,2 ; 50 | 468,-219.3871,-906.6091,40.6608,186.4501,46,46 ; 51 | 471,-504.2122,-1660.6406,10.6085,43.9901,103,111 ; 52 | 468,-916.9662,-1459.5214,122.9255,13.1392,46,46 ; 53 | 468,-1071.7697,-1296.8829,128.8868,278.9760,46,46 ; 54 | 468,-1112.6062,-1671.9421,76.0362,359.7007,46,46 ; 55 | 532,-1058.2371,-1612.5803,77.3616,174.8907,0,0 ; 56 | 471,-1040.5020,-1662.9651,77.5813,217.8248,74,91 ; 57 | 471,-925.3805,-1439.3502,125.5587,24.4562,74,83 ; 58 | 531,-85.5815,-1608.7993,2.7154,300.0013,36,2 ; 59 | 403,-47.9698,-1570.7786,3.2227,152.9310,37,1 ; 60 | 400,-93.0630,-1194.6671,2.3429,344.3191,123,1 ; 61 | 422,-81.0025,-1198.4222,2.2849,345.3639,97,25 ; 62 | -------------------------------------------------------------------------------- /gamemodes/core/account/account_hooks.inc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | /** 4 | * Hooks 5 | */ 6 | hook OnPlayerConnect(playerid) 7 | { 8 | CheckPlayerBanStatus(playerid); 9 | SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 50); 10 | 11 | return Y_HOOKS_CONTINUE_RETURN_1; 12 | } 13 | 14 | hook OnPlayerSpawn(playerid) 15 | { 16 | new 17 | pos_x, 18 | pos_y, 19 | pos_z, 20 | pos_a, 21 | 22 | interior, 23 | world; 24 | 25 | GetPlayerPos(playerid, Float: pos_x, Float: pos_y, Float: pos_z); 26 | GetPlayerFacingAngle(playerid, Float: pos_a); 27 | 28 | // We need to set position for avoid small player fall after spawn 29 | Streamer_UpdateEx(playerid, Float: pos_x, Float: pos_y, Float: pos_z, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), .compensatedtime = 2000); 30 | 31 | SetPlayerFacingAngle(playerid, Float: pos_a); 32 | SetPlayerInterior(playerid, interior); 33 | SetPlayerVirtualWorld(playerid, world); 34 | SetPlayerSkin(playerid, Player_GetSkin(playerid)); 35 | 36 | UI_CreatePlayerTextDraws(playerid); 37 | UI_CreatePlayerHelpMsg(playerid); 38 | 39 | return Y_HOOKS_CONTINUE_RETURN_1; 40 | } 41 | 42 | hook OnPlayerClickPlayerTD(playerid, PlayerText:playertextid) 43 | { 44 | if (playertextid == PlayerText: UI_ClickRegisterTextDraw(playerid, 8)) { 45 | task_yield(1); 46 | 47 | static 48 | dialog_register[e_DIALOG_RESPONSE_INFO]; 49 | 50 | task_await_arr( 51 | Task: ShowPlayerAsyncDialog( 52 | playerid, DIALOG_STYLE_PASSWORD, 53 | "Register", "Please, enter your desired password to create an account...", 54 | "Submit", "Exit" 55 | ), dialog_register 56 | ); 57 | 58 | if (dialog_register[E_DIALOG_RESPONSE_Response]) { 59 | if (!(6 <= strlen(dialog_register[E_DIALOG_RESPONSE_InputText]) <= 24)) { 60 | return err(playerid, "Password is too short or too long."); 61 | } 62 | 63 | strcopy(account_password[playerid], dialog_register[E_DIALOG_RESPONSE_InputText]); 64 | 65 | new 66 | String: str_query_acc, 67 | String: str_query_char; 68 | 69 | str_query_acc = String: str_format( 70 | "INSERT INTO \ 71 | accounts (account_name, account_password) \ 72 | VALUES \ 73 | ('%e', '%e') \ 74 | ", ReturnPlayerName(playerid), dialog_register[E_DIALOG_RESPONSE_InputText] 75 | ); 76 | 77 | str_query_char = String: str_format( 78 | "INSERT INTO \ 79 | characters (char_name) \ 80 | VALUES \ 81 | ('%e') \ 82 | ", ReturnPlayerName(playerid) 83 | ); 84 | 85 | mysql_tquery_s(MySQL_GetHandle(), str_query_acc, "OnAccountRegistered", "d", playerid); 86 | mysql_tquery_s(MySQL_GetHandle(), str_query_char, "OnCharacterRegistered", "d", playerid); 87 | 88 | fmt_info(playerid, "%s welcome to the Survive Time server!", ReturnPlayerName(playerid)); 89 | 90 | Player_SetScore(playerid, 1); 91 | Player_SetMoney(playerid, 100); 92 | Player_SetSkin(playerid, 26); 93 | 94 | SetPlayerScore(playerid, Player_GetScore(playerid)); 95 | GivePlayerMoney(playerid, Player_GetMoney(playerid)); 96 | 97 | GameTextForPlayer(playerid, "~y~CREATING ACCOUNT...", 3000, 3); 98 | task_await(Task: BindToPlayer(task_ms(3000), playerid)); 99 | Player_SetSpawn(playerid); 100 | UI_CreateRegisterTextDraws(playerid, false); 101 | } 102 | 103 | return 1; 104 | } 105 | 106 | if (playertextid == PlayerText: UI_ClickRegisterTextDraw(playerid, 7) || PlayerText: UI_ClickRegisterTextDraw(playerid, 10)) { 107 | UI_CreateRegisterTextDraws(playerid, false); 108 | 109 | task_await(Task: BindToPlayer(task_ms(1000), playerid)); 110 | Kick(playerid); 111 | 112 | return 1; 113 | } 114 | 115 | return Y_HOOKS_CONTINUE_RETURN_0; 116 | } -------------------------------------------------------------------------------- /gamemodes/core/systems/dealer/dealer_functions.inc: -------------------------------------------------------------------------------- 1 | const MAX_DEALERS = 50; 2 | 3 | /** 4 | * Variables 5 | */ 6 | new 7 | Iterator: Iter_Dealers, 8 | Text3D: dealer_label[MAX_DEALERS], 9 | 10 | dealer_id[MAX_DEALERS], 11 | dealer_actor[MAX_DEALERS], 12 | dealer_skin[MAX_DEALERS], 13 | 14 | Float: dealer_x[MAX_DEALERS], 15 | Float: dealer_y[MAX_DEALERS], 16 | Float: dealer_z[MAX_DEALERS], 17 | Float: dealer_a[MAX_DEALERS], 18 | 19 | dealer_name[MAX_DEALERS][MAX_PLAYER_NAME]; 20 | 21 | /** 22 | * Skin of the dealer actor 23 | * Name of the dealer (3D Text Label) 24 | * Dealer x pos 25 | * Dealer y pos 26 | * Dealer z pos 27 | * Dealer angle 28 | */ 29 | stock Dealer_Create(const skin, const string: name[], Float: x, Float: y, Float: z, Float: a) 30 | { 31 | new 32 | id = Iter_Alloc(Iter_Dealers); 33 | 34 | if (!(1 <= skin <= 299)) { 35 | return 0; 36 | } 37 | 38 | dealer_skin[id] = skin; 39 | dealer_x[id] = x; 40 | dealer_y[id] = y; 41 | dealer_z[id] = z; 42 | dealer_a[id] = a; 43 | 44 | strcopy(dealer_name[id], name); 45 | 46 | dealer_actor[id] = CreateActor( 47 | dealer_skin[id], Float: dealer_x[id], Float: dealer_y[id], Float: dealer_z[id], Float: dealer_a[id] 48 | ); 49 | 50 | new String: str_dealer_label = String: str_format("[DEALER (%d) %s]\n/dealer", (id + 1), name); 51 | dealer_label[id] = Text3D: fmt_Create3DTextLabel( 52 | str_dealer_label, X11_YELLOW, 53 | Float: dealer_x[id], Float: dealer_y[id], Float: dealer_z[id], Float: 30.0, 0 54 | ); 55 | 56 | // Query 57 | new String: str_query_dealer_add = String: str_format( 58 | "INSERT INTO \ 59 | dealers (dealer_name, dealer_skin, dealer_x, dealer_y, dealer_z, dealer_a) \ 60 | VALUES \ 61 | ('%e', '%d', '%f', '%f', '%f', '%f')", 62 | dealer_name[id], dealer_skin[id], Float: dealer_x[id], Float: dealer_y[id], Float: dealer_z[id], Float: dealer_a[id] 63 | ); 64 | 65 | mysql_tquery_s(MySQL: MySQL_GetHandle(), str_query_dealer_add, "OnDealerCreated", "d", id); 66 | 67 | return 1; 68 | } 69 | 70 | stock Dealer_Goto(const playerid, const dealerid) 71 | { 72 | task_await( 73 | Task: MySQL_QueryS( 74 | String: str_format( 75 | "SELECT * FROM dealers WHERE dealer_id = '%d'", dealerid 76 | ) 77 | ) 78 | ); 79 | 80 | if (!cache_num_rows()) { 81 | return err(playerid, "Invalid dealer ID!"); 82 | } 83 | 84 | SetPlayerPos(playerid, (dealer_x[(dealerid - 1)] + 2.0), dealer_y[(dealerid - 1)], dealer_z[(dealerid - 1)]); 85 | 86 | return 1; 87 | } 88 | 89 | stock Dealer_Nearby(const playerid) 90 | { 91 | foreach (new i: Iter_Dealers) { 92 | if (IsPlayerInRangeOfPoint(playerid, Float: 2.0, dealer_x[i], dealer_y[i], dealer_z[i])) { 93 | return 1; 94 | } 95 | } 96 | 97 | return 0; 98 | } 99 | 100 | stock Player_DrugEffects(const playerid, bool: status = true) 101 | { 102 | if (!status) { 103 | SetPlayerWeather(playerid, 1); 104 | 105 | return 1; 106 | } 107 | 108 | SetPlayerWeather(playerid, -1337); 109 | task_await(Task: BindToPlayer(task_ms(2000), playerid)); 110 | 111 | SetPlayerWeather(playerid, 44); 112 | task_await(Task: BindToPlayer(task_ms(2000), playerid)); 113 | 114 | SetPlayerWeather(playerid, 21); 115 | 116 | task_await(Task: BindToPlayer(task_ms(5000), playerid)); 117 | Player_DrugEffects(playerid, false); 118 | 119 | return 1; 120 | } -------------------------------------------------------------------------------- /scriptfiles/vehicles/whetstone.txt: -------------------------------------------------------------------------------- 1 | 402,-2507.2949,-2661.3745,41.6141,47.4363,110,110 ; 2 | 489,-2226.7434,-2328.2502,30.7267,320.7235,112,120 ; 3 | 489,-2222.2510,-2313.6255,30.7043,139.2188,84,110 ; 4 | 492,-2237.1716,-2319.5217,30.1612,320.8835,81,27 ; 5 | 416,-2202.5034,-2315.8738,30.7133,319.2146,1,3 ; 6 | 437,-2183.7781,-2251.1504,30.7739,50.7582,47,74 ; 7 | 439,-2195.2422,-2265.3093,30.5210,141.9245,67,8 ; 8 | 468,-2119.6216,-2309.6587,30.2906,236.4014,46,46 ; 9 | 468,-2090.2646,-2343.2664,30.2931,133.5882,46,46 ; 10 | 478,-2139.3381,-2394.7605,30.5346,321.4478,39,1 ; 11 | 403,-2000.1112,-2415.5122,31.5910,229.2187,42,76 ; 12 | 578,-1969.7488,-2437.8750,31.2884,278.4375,1,1 ; 13 | 483,-2047.1421,-2548.5454,30.6175,143.9577,1,5 ; 14 | 496,-2090.5361,-2547.2097,30.3414,319.1863,22,22 ; 15 | 499,-2147.2827,-2540.9390,30.6123,321.3171,30,44 ; 16 | 507,-2198.5273,-2501.1497,30.4429,142.3857,42,42 ; 17 | 508,-2238.4976,-2476.8638,31.5504,135.3413,1,1 ; 18 | 525,-2201.8979,-2431.7083,30.5065,143.2419,18,20 ; 19 | 542,-2208.8726,-2301.8511,30.3685,141.4184,24,118 ; 20 | 468,-2408.1938,-2180.6550,32.9574,359.2591,46,46 ; 21 | 468,-2408.5000,-2185.9998,32.9470,320.6251,46,46 ; 22 | 468,-2404.6194,-2184.0007,32.9580,180.5767,46,46 ; 23 | 468,-2410.8003,-2193.1538,32.9575,98.7390,46,46 ; 24 | 468,-2383.4412,-2195.6008,32.9551,269.5914,46,46 ; 25 | 421,-2232.4705,-2168.4863,40.0861,269.7545,60,72 ; 26 | 586,-2211.9084,-2152.1482,44.5665,39.1714,32,1 ; 27 | 586,-2341.5479,-1617.2042,483.2097,282.5971,32,1 ; 28 | 483,-2343.2617,-1613.8766,483.6216,105.4733,17,0 ; 29 | 508,-2338.5103,-1593.7384,483.9936,19.6733,1,1 ; 30 | 542,-1903.3435,-1648.1373,21.4948,0.2053,119,113 ; 31 | 543,-1884.3240,-1746.2726,21.5641,116.1925,11,11 ; 32 | 568,-1425.6388,-1964.6725,16.7105,350.8758,21,1 ; 33 | 568,-1422.0557,-1774.0085,46.2861,324.6743,21,1 ; 34 | 424,-1642.4336,-2250.6626,31.2032,90.7391,3,2 ; 35 | 471,-1623.8788,-1935.3231,98.1842,9.9608,120,113 ; 36 | 471,-1423.5978,-1480.9163,101.1533,181.2331,120,113 ; 37 | 478,-1446.1260,-1494.6138,101.7287,5.6246,20,1 ; 38 | 468,-1460.7500,-1566.6244,101.4172,1.4063,3,3 ; 39 | 455,-1921.1332,-1376.5702,40.8204,60.9558,43,31 ; 40 | 568,-2675.9160,-2647.4185,8.6870,28.6794,21,1 ; 41 | 527,-2504.5608,-2310.4421,14.8242,97.2619,81,1 ; 42 | 543,-2522.9070,-2151.9607,30.3162,29.5732,67,8 ; 43 | 568,-2675.9160,-2647.4185,8.6870,28.6794,21,1 ; 44 | 487,-2249.4399,-1714.5770,480.3400,224.1963,26,3 ; 45 | 500,-2390.3206,-1866.1573,405.1097,113.9224,25,119 ; 46 | 533,-2096.2732,-1879.9227,110.1080,326.6144,79,1 ; 47 | 540,-2515.5264,-1995.7284,166.3035,28.0149,7,7 ; 48 | 554,-2669.3086,-1735.2327,252.3595,12.2743,53,32 ; 49 | 559,-2590.5930,-1618.1426,343.4677,186.3544,2,1 ; 50 | 579,-2106.7739,-1752.2147,195.3652,327.5763,53,53 ; 51 | 595,-2819.6802,-2525.9888,0.4586,189.6302,112,20 ; 52 | 453,-2741.3564,-2707.7283,0.1389,208.1954,56,56 ; 53 | 484,-2548.1646,-2873.2219,0.3669,268.3289,40,26 ; 54 | 484,-2476.8723,-2872.8672,0.4027,271.5837,40,26 ; 55 | 473,-2251.1206,-2847.8003,-0.3512,165.8474,56,53 ; 56 | 424,-2242.9829,-2821.8870,2.7472,94.0740,15,30 ; 57 | 506,-1604.3470,-2709.3530,48.2387,54.1573,3,3 ; 58 | 536,-1561.9785,-2720.5659,48.2750,234.6728,37,1 ; 59 | 545,-1569.3097,-2733.4148,48.3547,326.8112,28,96 ; 60 | 582,-1557.6207,-2741.3735,48.5990,146.9182,41,20 ; 61 | 430,-1190.5161,-2686.8108,-0.2699,13.1617,46,26 ; 62 | 478,-1220.1482,-2632.0308,9.9623,84.2916,59,1 ; 63 | 473,-1249.5088,-2431.4194,-0.1994,349.6535,56,15 ; 64 | 473,-1183.5031,-2138.8706,-0.2420,8.5587,56,15 ; 65 | 446,-1429.5232,-2080.6206,-0.3127,148.7616,1,35 ; 66 | 446,-1544.0499,-2232.3506,-0.5151,167.9522,1,35 ; 67 | 453,-1639.3208,-1706.3165,-0.3042,73.0880,56,56 ; 68 | 460,-2038.7720,-1314.9452,1.7166,80.6954,17,23 ; 69 | 493,-2417.8992,-944.8141,-0.1597,61.3139,36,13 ; 70 | 542,-2217.0332,-2407.2427,30.8341,232.1176,24,118 ; 71 | 468,-2508.1077,-1892.6254,297.1185,25.0147,46,46 ; 72 | -------------------------------------------------------------------------------- /gamemodes/core/account/account_functions.inc: -------------------------------------------------------------------------------- 1 | stock CheckPlayerAccExists(const playerid) 2 | { 3 | task_await( 4 | Task: MySQL_QueryS( 5 | String: str_format( 6 | "SELECT * FROM accounts WHERE account_name = '%e'", ReturnPlayerName(playerid) 7 | ) 8 | ) 9 | ); 10 | 11 | if (cache_num_rows()) { 12 | // Loading account 13 | cache_get_value_name_int(0, "account_id", account_id[playerid]); 14 | cache_get_value_name(0, "account_password", account_password[playerid]); 15 | 16 | // Loading character 17 | task_await( 18 | Task: MySQL_QueryS( 19 | String: str_format( 20 | "SELECT * FROM characters WHERE char_name = '%e'", ReturnPlayerName(playerid) 21 | ) 22 | ) 23 | ); 24 | 25 | if (cache_num_rows()) { 26 | static tmpint = 0; 27 | 28 | cache_get_value_name_int(0, "char_score", tmpint); 29 | Player_SetScore(playerid, tmpint); 30 | 31 | cache_get_value_name_int(0, "char_money", tmpint); 32 | Player_SetMoney(playerid, tmpint); 33 | 34 | cache_get_value_name_int(0, "char_admin", tmpint); 35 | Admin_Set(playerid, tmpint); 36 | 37 | cache_get_value_name_int(0, "char_admincode", tmpint); 38 | Admin_SetCode(playerid, tmpint); 39 | 40 | cache_get_value_name_int(0, "char_skin", tmpint); 41 | Player_SetSkin(playerid, tmpint); 42 | 43 | cache_get_value_name_int(0, "char_warn", tmpint); 44 | Player_SetWarns(playerid, tmpint); 45 | 46 | cache_get_value_name_int(0, "char_muted", tmpint); 47 | Player_SetMuted(playerid, tmpint); 48 | 49 | cache_get_value_name_int(0, "char_mutedmins", tmpint); 50 | Player_SetMutedMins(playerid, tmpint); 51 | 52 | cache_get_value_name_int(0, "char_drugs", tmpint); 53 | Player_SetDrugs(playerid, tmpint); 54 | } 55 | 56 | Auth_DoLogin(playerid); 57 | 58 | return 1; 59 | } 60 | 61 | // Register 62 | UI_CreateRegisterTextDraws(playerid); 63 | 64 | return 1; 65 | } 66 | 67 | stock Auth_DoLogin(const playerid) 68 | { 69 | task_yield(1); 70 | 71 | static 72 | dialog_login[e_DIALOG_RESPONSE_INFO]; 73 | 74 | task_await_arr( 75 | Task: ShowPlayerAsyncDialog( 76 | playerid, DIALOG_STYLE_PASSWORD, 77 | "Login", "Please, enter you correct password to log in...", 78 | "Submit", "Exit" 79 | ), dialog_login 80 | ); 81 | 82 | if (dialog_login[E_DIALOG_RESPONSE_Response]) { 83 | if (!strcmp(dialog_login[E_DIALOG_RESPONSE_InputText], account_password[playerid], false)) { 84 | fmt_info(playerid, "%s you've successfully logged in.", ReturnPlayerName(playerid)); 85 | 86 | SetPlayerScore(playerid, Player_GetScore(playerid)); 87 | GivePlayerMoney(playerid, Player_GetMoney(playerid)); 88 | 89 | GameTextForPlayer(playerid, "~y~LOADING ACCOUNT...", 3000, 3); 90 | task_await(Task: BindToPlayer(task_ms(3000), playerid)); 91 | Player_SetSpawn(playerid); 92 | } 93 | 94 | else { 95 | ++player_login_attempts[playerid]; 96 | fmt_err(playerid, "Wrong password, attempts: %d/3.", player_login_attempts[playerid]); 97 | 98 | Auth_DoLogin(playerid); 99 | 100 | if (player_login_attempts[playerid] == 3) { 101 | return Kick(playerid); 102 | } 103 | } 104 | } 105 | 106 | else { 107 | Kick(playerid); 108 | } 109 | 110 | return 1; 111 | } -------------------------------------------------------------------------------- /gamemodes/core/player/ui/speedo/speedo_vars.inc: -------------------------------------------------------------------------------- 1 | /** 2 | * Vehicle names 3 | */ 4 | new vehicle_names[][] = { 5 | "Landstalker", 6 | "Bravura", 7 | "Buffalo", 8 | "Linerunner", 9 | "Perenniel", 10 | "Sentinel", 11 | "Dumper", 12 | "Firetruck", 13 | "Trashmaster", 14 | "Stretch", 15 | "Manana", 16 | "Infernus", 17 | "Voodoo", 18 | "Pony", 19 | "Mule", 20 | "Cheetah", 21 | "Ambulance", 22 | "Leviathan", 23 | "Moonbeam", 24 | "Esperanto", 25 | "Taxi", 26 | "Washington", 27 | "Bobcat", 28 | "Mr Whoopee", 29 | "BF Injection", 30 | "Hunter", 31 | "Premier", 32 | "Enforcer", 33 | "Securicar", 34 | "Banshee", 35 | "Predator", 36 | "Bus", 37 | "Rhino", 38 | "Barracks", 39 | "Hotknife", 40 | "Trailer", 41 | "Previon", 42 | "Coach", 43 | "Cabbie", 44 | "Stallion", 45 | "Rumpo", 46 | "RC Bandit", 47 | "Romero", 48 | "Packer", 49 | "Monster Truck", 50 | "Admiral", 51 | "Squalo", 52 | "Seasparrow", 53 | "Pizzaboy", 54 | "Tram", 55 | "Trailer", 56 | "Turismo", 57 | "Speeder", 58 | "Reefer", 59 | "Tropic", 60 | "Flatbed", 61 | "Yankee", 62 | "Caddy", 63 | "Solair", 64 | "Berkley's RC Van", 65 | "Skimmer", 66 | "PCJ-600", 67 | "Faggio", 68 | "Freeway", 69 | "RC Baron", 70 | "RC Raider", 71 | "Glendale", 72 | "Oceanic", 73 | "Sanchez", 74 | "Sparrow", 75 | "Patriot", 76 | "Quad", 77 | "Coastguard", 78 | "Dinghy", 79 | "Hermes", 80 | "Sabre", 81 | "Rustler", 82 | "ZR-350", 83 | "Walton", 84 | "Regina", 85 | "Comet", 86 | "BMX", 87 | "Burrito", 88 | "Camper", 89 | "Marquis", 90 | "Baggage", 91 | "Dozer", 92 | "Maverick", 93 | "News Chopper", 94 | "Rancher", 95 | "FBI Rancher", 96 | "Virgo", 97 | "Greenwood", 98 | "Jetmax", 99 | "Hotring", 100 | "Sandking", 101 | "Blista Compact", 102 | "Police Maverick", 103 | "Boxville", 104 | "Benson", 105 | "Mesa", 106 | "RC Goblin", 107 | "Hotring Racer", 108 | "Hotring Racer", 109 | "Bloodring Banger", 110 | "Rancher", 111 | "Super GT", 112 | "Elegant", 113 | "Journey", 114 | "Bike", 115 | "Mountain Bike", 116 | "Beagle", 117 | "Cropdust", 118 | "Stunt Plane", 119 | "Tanker", 120 | "RoadTrain", 121 | "Nebula", 122 | "Majestic", 123 | "Buccaneer", 124 | "Shamal", 125 | "Hydra", 126 | "FCR-900", 127 | "NRG-500", 128 | "HPV1000", 129 | "Cement Truck", 130 | "Tow Truck", 131 | "Fortune", 132 | "Cadrona", 133 | "FBI Truck", 134 | "Willard", 135 | "Forklift", 136 | "Tractor", 137 | "Combine", 138 | "Feltzer", 139 | "Remington", 140 | "Slamvan", 141 | "Blade", 142 | "Freight", 143 | "Streak", 144 | "Vortex", 145 | "Vincent", 146 | "Bullet", 147 | "Clover", 148 | "Sadler", 149 | "Firetruck", 150 | "Hustler", 151 | "Intruder", 152 | "Primo", 153 | "Cargobob", 154 | "Tampa", 155 | "Sunrise", 156 | "Merit", 157 | "Utility", 158 | "Nevada", 159 | "Yosemite", 160 | "Windsor", 161 | "Monster Truck", 162 | "Monster Truck", 163 | "Uranus", 164 | "Jester", 165 | "Sultan", 166 | "Stratum", 167 | "Elegy", 168 | "Raindance", 169 | "RC Tiger", 170 | "Flash", 171 | "Tahoma", 172 | "Savanna", 173 | "Bandito", 174 | "Freight", 175 | "Trailer", 176 | "Kart", 177 | "Mower", 178 | "Duneride", 179 | "Sweeper", 180 | "Broadway", 181 | "Tornado", 182 | "AT-400", 183 | "DFT-30", 184 | "Huntley", 185 | "Stafford", 186 | "BF-400", 187 | "Newsvan", 188 | "Tug", 189 | "Trailer", 190 | "Emperor", 191 | "Wayfarer", 192 | "Euros", 193 | "Hotdog", 194 | "Club", 195 | "Trailer", 196 | "Trailer", 197 | "Andromada", 198 | "Dodo", 199 | "RC Cam", 200 | "Launch", 201 | "Police Car (LSPD)", 202 | "Police Car (SFPD)", 203 | "Police Car (LVPD)", 204 | "Police Ranger", 205 | "Picador", 206 | "S.W.A.T. Van", 207 | "Alpha", 208 | "Phoenix", 209 | "Glendale", 210 | "Sadler", 211 | "Luggage Trailer", 212 | "Luggage Trailer", 213 | "Stair Trailer", 214 | "Boxville", 215 | "Farm Plow", 216 | "Utility Trailer" 217 | }; -------------------------------------------------------------------------------- /gamemodes/SurviveTime.pwn: -------------------------------------------------------------------------------- 1 | /** 2 | * TODO: ... 3 | * TODO: ... 4 | */ 5 | 6 | #include 7 | 8 | #undef MAX_PLAYERS 9 | #undef MAX_PLAYER_NAME 10 | #undef MAX_ACTORS 11 | #undef MAX_VEHICLES 12 | 13 | /** 14 | * Constants 15 | */ 16 | const 17 | MAX_PLAYERS = 10, 18 | MAX_ACTORS = 20, 19 | MAX_VEHICLES = 500; 20 | 21 | #define MAX_PLAYER_NAME 25 22 | 23 | /** 24 | * YSI 25 | */ 26 | #define YSI_NO_HEAP_MALLOC 27 | #define YSI_NO_VERSION_CHECK 28 | #define YSI_NO_MODE_CACHE 29 | #define YSI_NO_OPTIMISATION_MESSAGE 30 | 31 | #include 32 | #include 33 | #include 34 | 35 | #include 36 | #include 37 | #include 38 | #include 39 | #include 40 | #include 41 | #include 42 | #include 43 | #include 44 | #include 45 | #include 46 | #include 47 | 48 | /** 49 | * Database 50 | */ 51 | #include 52 | 53 | /** 54 | * Command process, cfgs etc. 55 | */ 56 | #include 57 | #include 58 | #include 59 | 60 | /** 61 | * Character 62 | */ 63 | #include 64 | #include 65 | #include 66 | #include 67 | #include 68 | #include 69 | #include 70 | 71 | /** 72 | * UI 73 | */ 74 | #include 75 | #include 76 | #include 77 | #include 78 | 79 | /** 80 | * Vehicles 81 | */ 82 | // #include 83 | 84 | #include 85 | #include 86 | 87 | /** 88 | * Systems 89 | */ 90 | #include 91 | #include 92 | #include 93 | 94 | main() 95 | { 96 | printf("JIT is %spresent", (IsJITPresent() ? ("not ") : (""))); 97 | OnJITCompile(); 98 | 99 | new 100 | Timestamp: ts = Timestamp: Now(), 101 | ts_format[24]; 102 | 103 | TimeFormat(Timestamp: ts, ISO6801_TIME, ts_format, sizeof ts_format); 104 | printf("Gamemode successfully loaded at %s", ts_format); 105 | } 106 | 107 | public OnGameModeInit() 108 | { 109 | SetWeather(0); 110 | EnableStuntBonusForAll(0); 111 | 112 | DisableInteriorEnterExits(); 113 | UsePlayerPedAnims(); 114 | 115 | // Loading vehicles 116 | // LoadStaticVehiclesFromFile("vehicles/ls_airport.txt"); 117 | // LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt"); 118 | // LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt"); 119 | // LoadStaticVehiclesFromFile("vehicles/ls_law.txt"); 120 | LoadStaticVehiclesFromFile("vehicles/red_country.txt"); 121 | 122 | return 1; 123 | } 124 | 125 | public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ) 126 | { 127 | SetPlayerPos(playerid, Float: fX, Float: fY, Float: fZ); 128 | 129 | return 1; 130 | } 131 | 132 | /** 133 | * JIT callback 134 | */ 135 | forward OnJITCompile(); 136 | public OnJITCompile() 137 | { 138 | printf("OnJITCompile->JIT is %spresent", (IsJITPresent() ? ("not ") : (""))); 139 | return 1; 140 | } 141 | 142 | /** 143 | * PawnPlus callback & fucntion (task) 144 | */ 145 | forward Bind_OnPlayerDisconnect(CallbackHandler: self, Handle: task_handle, Task: task, const orig_playerid, const playerid); 146 | public Bind_OnPlayerDisconnect(CallbackHandler: self, Handle: task_handle, Task: task, const orig_playerid, const playerid) 147 | { 148 | if(orig_playerid == playerid) { 149 | pawn_unregister_callback(self); 150 | handle_release(task_handle); 151 | 152 | if(handle_linked(task_handle)) { 153 | task_delete(task); 154 | } 155 | } 156 | } 157 | 158 | BindToPlayer(Task: task, const playerid) 159 | { 160 | new 161 | Handle: handle = handle_new(_:task, .tag_id = tagof(task)); 162 | 163 | handle_acquire(handle); 164 | pawn_register_callback(#OnPlayerDisconnect, #Bind_OnPlayerDisconnect, _, "eddd", _:handle, _:task, playerid); 165 | 166 | return _:task; 167 | } -------------------------------------------------------------------------------- /gamemodes/core/ban/ban_functions.inc: -------------------------------------------------------------------------------- 1 | CheckPlayerBanStatus(const playerid) 2 | { 3 | task_await( 4 | Task: MySQL_QueryS( 5 | String: str_format( 6 | "SELECT * FROM banned WHERE banned_player = '%e'", ReturnPlayerName(playerid) 7 | ) 8 | ) 9 | ); 10 | 11 | if (cache_num_rows()) { 12 | static 13 | banned_admin[MAX_PLAYER_NAME], 14 | banned_reason[64]; 15 | 16 | cache_get_value_name(0, "banned_admin", banned_admin); 17 | cache_get_value_name(0, "banned_reason", banned_reason); 18 | 19 | task_yield(1); 20 | 21 | fmt_info(playerid, "You're banned from this server. Reason: %s | Admin: %s", banned_reason, banned_admin); 22 | 23 | wait_ms(1000); 24 | Kick(playerid); 25 | 26 | return 1; 27 | } 28 | 29 | CheckPlayerAccExists(playerid); 30 | 31 | return 1; 32 | } 33 | 34 | /** 35 | * Player who will be banned 36 | * Admin who will ban player 37 | * The reason why the player is banned 38 | */ 39 | stock BanPlayer(const playerid, const adminid, const string: reason[]) 40 | { 41 | if (playerid == adminid) { 42 | return err(adminid, "You can't ban yourself!"); 43 | } 44 | 45 | new String: str_query_ban_ins = String: str_format( 46 | "INSERT INTO \ 47 | banned (banned_player, banned_admin, banned_reason) \ 48 | VALUES \ 49 | ('%e', '%e', '%e')", ReturnPlayerName(playerid), ReturnPlayerName(adminid), reason 50 | ); 51 | 52 | mysql_tquery_s(MySQL_GetHandle(), str_query_ban_ins); 53 | 54 | va_SendClientMessageToAll( 55 | X11_RED, "* Ban: "WHITE"Player %s has been banned from this server. Reason: %s", 56 | ReturnPlayerName(playerid), reason 57 | ); 58 | 59 | va_SendClientMessageToAll( 60 | X11_RED, "* Ban: "WHITE"Admin %s banned player %s because of %s.", 61 | ReturnPlayerName(adminid), ReturnPlayerName(playerid), reason 62 | ); 63 | 64 | GameTextForPlayer(playerid, "~r~BANNED", 20000, 3); 65 | 66 | return 1; 67 | } 68 | 69 | stock OffBan(const string: name[], const playerid, const string: reason[]) 70 | { 71 | task_await( 72 | Task: MySQL_QueryS( 73 | String: str_format( 74 | "SELECT * FROM banned WHERE banned_player = '%e'", name 75 | ) 76 | ) 77 | ); 78 | 79 | if (cache_num_rows()) { 80 | return err(playerid, "That player is already banned!"); 81 | } 82 | 83 | new String: str_query_ban_ins = String: str_format( 84 | "INSERT INTO \ 85 | banned (banned_player, banned_admin, banned_reason) \ 86 | VALUES \ 87 | ('%e', '%e', '%e')", name, ReturnPlayerName(playerid), reason 88 | ); 89 | 90 | mysql_tquery_s(MySQL_GetHandle(), str_query_ban_ins); 91 | 92 | va_SendClientMessageToAll( 93 | X11_RED, "* Off-Ban: "WHITE"Player %s has been off-banned. Reason: %s", 94 | name, reason 95 | ); 96 | 97 | return 1; 98 | } 99 | 100 | /** 101 | * Admin who will unban player 102 | * Player who will be unbanned 103 | */ 104 | stock UnbanPlayer(const playerid, const string: name[]) 105 | { 106 | task_await( 107 | MySQL_QueryS( 108 | String: str_format( 109 | "SELECT * FROM banned WHERE banned_player = '%e'", name 110 | ) 111 | ) 112 | ); 113 | 114 | if (!cache_num_rows()) { 115 | return err(playerid, "That player isn't banned."); 116 | } 117 | 118 | new String: str_query_ban_del = String: str_format( 119 | "DELETE FROM banned WHERE banned_player = '%e'", name 120 | ); 121 | 122 | mysql_tquery_s(MySQL_GetHandle(), str_query_ban_del); 123 | 124 | va_SendClientMessageToAll(X11_RED, "* Un-Ban: "WHITE"Player %s is no longer banned!", name); 125 | 126 | return 1; 127 | } -------------------------------------------------------------------------------- /scriptfiles/vehicles/red_county.txt: -------------------------------------------------------------------------------- 1 | 466,287.4403,-53.5151,1.3217,180.3743,62,34 ; 2 | 422,109.2890,-150.6062,1.7835,182.5754,89,108 ; 3 | 498,-196.8096,-232.7299,1.4901,90.5921,133,57 ; 4 | 403,-199.9957,-285.4144,2.0351,90.5924,133,57 ; 5 | 403,-200.2189,-275.2891,2.0383,91.6567,133,57 ; 6 | 578,-194.7877,-196.3295,2.0529,257.8566,133,57 ; 7 | 422,-169.0730,-202.1836,1.4064,257.8462,133,57 ; 8 | 402,-39.7196,-377.4630,5.2613,180.2380,29,36 ; 9 | 566,-9.5253,-377.6481,5.2111,178.0852,30,8 ; 10 | 529,-0.4525,-353.8910,5.0621,269.4471,42,42 ; 11 | 603,-62.5941,-324.9349,5.2677,90.3766,70,67 ; 12 | 401,179.2976,-310.8240,1.3519,207.7475,47,47 ; 13 | 445,319.0325,-126.0534,2.0656,90.7404,120,119 ; 14 | 440,329.5297,-52.3254,1.6189,177.8881,32,32 ; 15 | 458,319.1395,-84.5798,2.0518,91.7452,101,1 ; 16 | 467,218.0327,-178.1497,1.3182,270.4043,58,8 ; 17 | 475,218.7911,-173.3128,1.3817,270.2328,123,65 ; 18 | 489,244.8729,-148.5339,1.7217,88.8350,14,123 ; 19 | 492,247.1553,-129.2907,2.0627,90.8534,77,26 ; 20 | 498,176.3295,-7.4976,1.6480,180.2088,105,113 ; 21 | 439,278.4608,-54.8498,1.4740,359.8853,8,17 ; 22 | 475,320.5600,-253.1715,1.3886,176.4384,17,1 ; 23 | 524,312.2956,-251.1326,2.5129,175.4649,61,27 ; 24 | 527,235.0123,-300.2693,1.2937,2.3086,53,1 ; 25 | 536,213.0004,-244.5481,1.3203,272.8867,38,103 ; 26 | 531,1077.2228,-288.7220,73.9531,358.7784,36,2 ; 27 | 422,1112.7650,-306.5776,73.9655,267.5965,101,25 ; 28 | 531,1067.0962,-288.6843,73.9569,2.3921,51,53 ; 29 | 599,622.2627,-610.1340,17.3154,270.2242,0,1 ; 30 | 599,622.2755,-606.0399,17.3060,269.8338,0,1 31 | 585,707.2459,-461.4757,15.9223,269.7682,91,35 ; 32 | 500,667.6416,-461.4851,16.4435,268.6327,40,84 ; 33 | 461,669.1239,-471.0320,15.9138,270.8030,37,1 ; 34 | 542,668.1328,-546.3011,16.0794,269.8267,90,90 ; 35 | 522,753.7540,-586.7284,16.9004,181.3295,36,105 ; 36 | 549,748.6429,-581.7985,16.9131,269.3827,94,94 ; 37 | 429,763.1589,-509.2891,16.8662,180.4318,127,44 ; 38 | 547,786.0645,-498.4352,17.0708,3.0965,123,1 ; 39 | 456,797.4796,-607.9578,16.5112,0.4182,84,63 ; 40 | 554,751.6056,-553.2162,17.3698,180.8741,15,32 ; 41 | 445,1396.5654,395.3847,19.6327,66.5844,47,47 ; 42 | 559,1404.2180,411.9715,19.4141,67.1748,58,8 ; 43 | 580,768.8481,348.3186,19.7428,190.0995,81,81 ; 44 | 473,2103.2500,-98.4897,-0.2214,122.9253,56,53 ; 45 | 473,2108.5276,-106.2102,-0.2394,122.9441,56,15 ; 46 | 448,2323.3232,63.0302,26.0883,265.2746,3,6 ; 47 | 439,2358.1836,-62.4556,27.3646,179.8344,37,78 ; 48 | 436,2443.9980,-47.9166,26.9963,179.6730,87,1 ; 49 | 436,2503.7507,125.9338,26.2435,1.0102,92,1 ; 50 | 419,2493.9170,95.9780,26.2806,179.8299,47,76 ; 51 | 412,2549.9116,81.1802,26.3143,270.4565,10,8 ; 52 | 410,2551.1191,9.4253,26.6691,270.6199,9,1 ; 53 | 508,2502.7742,6.0906,27.5812,2.9588,1,1 ; 54 | 505,2380.9570,37.7925,27.1163,89.9017,120,123 ; 55 | 500,2211.6929,-88.3423,26.9028,88.7287,13,119 ; 56 | 496,2263.8970,-82.7569,26.2452,1.1014,66,72 ; 57 | 492,2257.5105,-83.1763,26.3074,359.2125,30,26 ; 58 | 405,2290.2622,155.5207,26.9788,0.1090,24,1 ; 59 | 532,1996.7520,175.8992,31.3614,79.7076,0,0 ; 60 | 532,1914.0114,192.1063,36.0155,358.2132,0,0 ; 61 | 478,1905.3486,174.1229,37.1748,341.5607,66,1 ; 62 | 549,1240.2759,214.9924,19.2519,243.7370,79,39 ; 63 | 550,1367.7468,365.9338,20.3661,246.2637,15,15 ; 64 | 547,1289.3826,339.9178,19.2903,247.1900,123,1 ; 65 | 536,1231.7341,295.6075,19.2922,336.8393,57,96 ; 66 | 455,-580.8631,-64.8466,65.3632,3.7867,84,31 ; 67 | 468,-543.4543,-180.5744,78.0750,4.1580,53,53 ; 68 | 468,-541.5284,-180.6667,78.0747,0.2240,53,53 ; 69 | 471,-774.8654,-115.3844,64.6716,24.2185,120,112 ; 70 | 471,-771.7146,-113.4644,64.8308,26.8406,120,112 ; 71 | 532,-273.9301,-41.3983,3.4405,339.6638,0,0 ; 72 | 532,-127.1731,55.7261,4.0943,158.3291,0,0 ; 73 | 478,-137.3239,-48.9942,3.1078,342.2244,35,1 ; 74 | 475,1368.2947,476.2750,19.9363,335.9672,37,0 ; 75 | 475,2331.3064,133.1183,26.7203,270.6836,17,1 ; 76 | 482,2308.6682,-74.7184,26.5995,89.9092,48,48 ; 77 | 468,2208.6223,110.5543,27.0101,275.3439,53,53 ; 78 | 471,1923.8339,147.8248,36.7282,93.4718,103,111 ; 79 | 415,1586.3274,38.5556,24.6067,272.3959,25,1 ; 80 | 468,1547.5862,10.6921,23.7739,265.3787,3,3 ; 81 | 402,889.0992,-21.7845,63.1125,152.4678,13,13 ; 82 | 403,1207.5240,189.3297,20.9522,334.8106,37,1 ; 83 | 416,1249.8207,338.2164,19.6291,66.7975,1,3 ; 84 | 482,1335.0803,284.7404,19.6860,243.0011,52,52 ; 85 | 468,1414.2616,248.6772,19.2239,65.7798,6,6 ; 86 | 475,751.2299,277.2577,27.1364,199.6289,56,29 ; 87 | 468,747.8585,346.7843,20.1559,209.1134,6,6 ; 88 | 403,221.6420,30.1998,3.1849,186.4463,28,1 ; 89 | 525,157.2517,-166.2276,1.4527,90.9328,17,20 ; 90 | 532,20.7659,24.6322,4.0942,340.4432,0,0 ; 91 | 532,-6.4192,-11.1534,4.0939,163.1182,0,0 ; 92 | 460,-332.7806,-467.6667,1.6828,228.5235,1,9 ; 93 | 403,-564.8430,-473.1027,26.1267,178.3205,113,1 ; 94 | 415,-535.2667,-488.2196,25.2958,358.2053,40,1 ; 95 | 479,-499.9452,-472.3691,25.3184,178.8490,59,36 ; 96 | 482,-480.4370,-486.2536,25.6331,177.1059,64,64 ; 97 | -------------------------------------------------------------------------------- /scriptfiles/vehicles/tierra.txt: -------------------------------------------------------------------------------- 1 | 487,-2227.7432,2327.1260,7.7581,178.6620,29,42 ; 2 | 400,-2272.3713,2285.2505,4.9224,270.0000,120,123 ; 3 | 400,-2251.1697,2284.9854,4.9106,91.8943,62,1 ; 4 | 418,-2251.1719,2290.9373,4.9096,270.3710,108,108 ; 5 | 587,-2272.0286,2300.4329,4.5463,89.7395,53,1 ; 6 | 581,-2184.2810,2418.5032,4.6261,225.5440,36,1 ; 7 | 484,-2227.5676,2446.2383,0.2238,229.2436,40,26 ; 8 | 454,-2323.5996,2492.2419,-0.0163,230.2643,26,26 ; 9 | 454,-2238.8279,2533.3970,0.0677,228.0608,26,26 ; 10 | 454,-2235.0234,2394.8408,0.2049,225.3403,26,26 ; 11 | 484,-2222.4343,2399.7363,0.3907,47.6966,50,32 ; 12 | 484,-2211.9019,2412.5371,0.3222,45.0241,66,36 ; 13 | 484,-2035.5737,2337.9326,0.3638,93.8940,66,36 ; 14 | 460,-2044.7676,2348.1140,1.5708,85.2721,46,23 ; 15 | 492,-2351.7927,2438.0439,7.5216,326.6075,81,27 ; 16 | 484,-2319.6973,2297.0566,0.1447,177.2915,66,36 ; 17 | 524,-2380.8870,2370.3657,4.4518,109.2159,83,66 ; 18 | 525,-2451.8999,2302.0273,4.8566,90.9255,1,1 ; 19 | 541,-2621.1914,2250.5889,8.0296,183.8325,123,1 ; 20 | 541,-2616.7476,2250.0974,7.8063,184.5472,22,1 ; 21 | 554,-2609.3669,2251.1685,8.2939,182.2681,12,32 ; 22 | 446,-2597.6831,2231.7883,-0.5205,262.0586,1,22 ; 23 | 581,-2632.2297,2299.0674,8.0274,266.4473,54,1 ; 24 | 587,-2500.2227,2326.0215,4.6304,267.2316,95,1 ; 25 | 409,-2492.2183,2410.7954,16.2328,29.6430,1,1 ; 26 | 581,-2635.7234,2423.7803,13.5265,165.2141,36,1 ; 27 | 419,-2472.6233,2490.2595,17.5856,1.8418,69,76 ; 28 | 419,-2455.7502,2489.7153,16.0495,2.9791,87,76 ; 29 | 400,-2471.6484,2511.5083,17.8420,178.3649,84,110 ; 30 | 421,-2377.9495,2410.4937,8.1698,324.3596,52,66 ; 31 | 493,-2417.5188,2297.3801,-0.1381,265.4497,36,13 ; 32 | 493,-2417.7244,2291.5913,-0.2166,266.5734,36,13 ; 33 | 493,-2418.0994,2286.5984,0.1419,268.6934,36,13 ; 34 | 587,-2426.7017,2346.5630,5.0736,282.6106,40,84 ; 35 | 587,-2446.9214,2224.6204,4.6071,179.3380,118,1 ; 36 | 496,-2440.6040,2224.3320,4.5603,179.5986,0,0 ; 37 | 480,-2470.7988,2224.3967,4.6180,180.6733,53,53 ; 38 | 477,-2482.4893,2224.7783,4.5955,179.0414,75,1 ; 39 | 530,-2509.7058,2369.0825,4.7508,179.0875,110,1 ; 40 | 473,-1374.8508,2116.4690,40.4058,319.3678,56,53 ; 41 | 473,-1366.9723,2106.8796,40.2918,315.0820,56,53 ; 42 | 573,-1804.4702,2045.1581,9.6246,294.1870,91,38 ; 43 | 468,-1824.8999,2035.1219,8.3037,212.8331,46,46 ; 44 | 453,-1854.5022,2098.8430,-0.2039,102.5433,56,56 ; 45 | 453,-1860.6494,2115.2981,-0.3292,107.9941,56,56 ; 46 | 453,-1869.9406,2128.6624,-0.2785,113.4106,56,56 ; 47 | 444,-1871.3125,2166.4583,4.9119,130.7896,32,42 ; 48 | 444,-1877.4138,2173.9583,4.4635,128.7793,32,66 ; 49 | 445,-1940.1118,2393.2588,49.3672,291.4925,39,39 ; 50 | 482,-1934.0543,2377.3718,49.6189,290.8993,34,34 ; 51 | 482,-865.7496,1541.4736,22.7941,89.7060,109,1 ; 52 | 602,-865.9515,1547.8240,23.0657,268.7399,75,77 ; 53 | 602,-866.0584,1563.5151,24.3648,269.9845,32,1 ; 54 | 420,-866.0000,1557.1432,23.8370,269.2511,6,1 ; 55 | 400,-904.0693,1546.9365,26.0011,270.6434,36,1 ; 56 | 400,-880.8666,1518.9015,26.0064,84.4363,113,1 ; 57 | 552,-837.0482,1528.4155,21.4272,356.9085,56,56 ; 58 | 428,-836.9631,1518.5033,20.9587,356.9585,4,75 ; 59 | 522,-855.4826,1529.1183,22.1490,175.2427,7,79 ; 60 | 522,-854.3849,1528.8517,21.8310,177.4948,36,105 ; 61 | 508,-763.8517,1643.9420,27.8381,359.3427,1,1 ; 62 | 508,-759.1082,1643.9677,27.7561,357.9965,1,1 ; 63 | 508,-753.8820,1643.4702,27.6587,357.3247,1,1 ; 64 | 508,-779.0374,1557.9280,27.1835,359.2580,20,117 ; 65 | 495,-771.3682,1431.5581,14.1421,91.6766,116,115 ; 66 | 495,-771.4456,1436.7625,14.1395,89.8264,5,6 ; 67 | 554,-772.0689,1443.1458,13.8807,91.3204,12,32 ; 68 | 554,-771.5674,1486.2036,24.4291,89.6569,45,32 ; 69 | 508,-720.9415,1438.1919,18.8516,358.8137,1,1 ; 70 | 483,-685.9806,1444.2805,17.2557,358.8250,1,5 ; 71 | 452,-859.7170,1383.5663,-0.4432,255.0147,1,35 ; 72 | 525,-967.3431,1322.6412,39.9578,290.9068,52,54 ; 73 | 525,-1202.8787,1677.6721,20.1641,63.4200,52,54 ; 74 | 525,-1492.0199,1877.8156,32.5073,3.4296,52,54 ; 75 | 554,-1485.6687,1877.9529,32.7206,2.7033,53,32 ; 76 | 522,-1460.4990,1871.0664,32.2060,3.0444,36,105 ; 77 | 522,-1459.1002,1871.1023,32.1946,6.0306,51,118 ; 78 | 522,-1457.7523,1871.1093,32.1942,8.4307,3,8 ; 79 | 420,-1450.4545,1870.4369,32.4111,2.9921,6,1 ; 80 | 525,-1766.5353,1882.8726,17.5407,198.3129,1,1 ; 81 | 525,-837.5615,813.0668,18.5289,199.0021,1,1 ; 82 | 421,-680.4999,948.1251,12.0152,36.5625,36,1 ; 83 | 444,-669.6081,945.8578,12.5041,89.2779,32,36 ; 84 | 444,-669.8880,950.3906,12.5041,92.0677,32,53 ; 85 | 444,-669.9730,955.0541,12.5041,91.0209,32,14 ; 86 | 545,-710.5756,939.2571,12.2113,182.5872,53,53 ; 87 | 572,-666.9449,962.4420,11.7128,180.1996,116,1 ; 88 | 473,-792.8611,937.9167,0.1685,121.3300,56,15 ; 89 | 472,-615.6752,1807.6965,0.1010,81.7140,56,53 ; 90 | 473,-527.8143,1634.6472,-0.2518,232.0554,56,15 ; 91 | 468,-1044.5811,1559.1265,32.8485,222.2500,3,3 ; 92 | 462,-1214.5260,1841.3584,41.3185,264.4565,13,13 ; 93 | 482,-1203.9337,1813.2631,41.8329,44.3244,62,62 ; 94 | 568,-1295.9022,2496.5747,86.8474,198.8607,9,39 ; 95 | 568,-1506.3029,1966.6509,48.2421,293.1870,9,39 ; 96 | 510,-767.7841,1103.9338,44.4799,321.7752,39,39 ; -------------------------------------------------------------------------------- /scriptfiles/vehicles/ls_gen_inner.txt: -------------------------------------------------------------------------------- 1 | 446,728.1595,-1495.2687,-0.4906,179.7909,1,5 ; 2 | 454,720.7040,-1633.3224,0.1487,177.6009,26,26 ; 3 | 454,720.5267,-1699.9827,0.1866,358.9251,26,26 ; 4 | 429,764.7679,-1660.5485,4.2160,94.0819,12,12 ; 5 | 541,688.0235,-1600.1552,13.7216,359.7577,58,8 ; 6 | 466,594.6932,-1519.6713,14.8586,178.9838,68,76 ; 7 | 458,601.2115,-1519.8091,14.8971,359.8546,101,1 ; 8 | 496,648.1077,-1507.8370,14.7836,88.3481,35,35 ; 9 | 429,729.7592,-1433.3433,13.2151,90.2927,13,13 ; 10 | 506,665.4387,-1421.5520,14.3497,1.6522,7,7 ; 11 | 506,587.3435,-1499.5959,15.0621,273.6347,6,6 ; 12 | 413,691.4462,-1570.2456,14.3358,179.2636,91,1 ; 13 | 451,489.1148,-1514.9581,20.0516,186.2239,46,46 ; 14 | 541,494.3372,-1604.7161,18.2000,275.6070,60,1 ; 15 | 603,259.4689,-1597.9203,33.1167,299.1694,69,1 ; 16 | 429,262.3868,-1603.2013,33.0642,323.2319,2,2 ; 17 | 518,258.0661,-1591.6113,33.1217,275.3944,36,36 ; 18 | 409,867.4957,-1285.9368,13.8859,357.4155,1,1 ; 19 | 457,844.4999,-1197.9865,16.6038,0.3980,2,1 ; 20 | 457,880.8410,-1199.7491,16.6031,357.7022,21,108 ; 21 | 457,914.7440,-1199.8364,16.6032,359.8655,106,56 ; 22 | 463,920.4453,-1290.5063,13.3508,118.6505,121,14 ; 23 | 542,863.2733,-1375.0151,13.3187,85.7265,32,92 ; 24 | 561,903.8953,-1454.9287,12.8651,270.7864,8,17 ; 25 | 429,881.5562,-1453.8588,13.3618,271.8305,99,93 ; 26 | 507,809.9615,-1448.9109,12.9680,87.2106,35,54 ; 27 | 589,810.5452,-1464.3678,12.7191,85.7123,134,97 ; 28 | 496,821.6033,-1473.7249,12.5756,357.5008,54,120 ; 29 | 461,1031.1113,-1446.3105,13.1411,59.0580,67,86 ; 30 | 418,1005.0084,-1461.3424,13.6427,183.0261,119,119 ; 31 | 463,990.1287,-1354.9878,12.9125,285.7227,65,6 ; 32 | 479,991.3929,-1345.2102,13.1759,271.1148,123,108 ; 33 | 489,990.5985,-1306.8129,13.5204,179.0488,24,6 ; 34 | 475,1002.5063,-1306.5654,13.1866,359.6424,37,0 ; 35 | 518,981.5054,-1306.6899,13.1630,181.0135,71,18 ; 36 | 414,979.2278,-1258.1351,16.8071,182.5786,24,1 ; 37 | 506,955.9268,-1184.0712,16.6498,269.9031,30,31 ; 38 | 549,955.8333,-1190.2795,16.6425,270.2728,75,39 ; 39 | 482,956.0022,-1199.3633,17.1270,268.5538,20,20 ; 40 | 468,956.3898,-1193.4253,16.6297,89.6432,46,46 ; 41 | 567,1085.8342,-1199.3883,17.7945,90.5839,93,64 ; 42 | 542,1097.0354,-1218.1705,17.5471,356.6483,45,92 ; 43 | 461,1084.2866,-1232.2461,15.3945,243.6654,61,1 ; 44 | 461,1083.9337,-1235.0449,15.4088,243.8919,75,1 ; 45 | 461,1083.7941,-1238.1573,15.4110,243.1097,79,1 ; 46 | 405,1109.0310,-1225.8809,15.6987,181.5343,75,1 ; 47 | 458,1000.3081,-1084.5488,23.7069,179.6207,30,1 ; 48 | 542,1015.8254,-1083.9113,23.5711,0.6381,119,113 ; 49 | 461,1032.2993,-1082.4255,23.4136,166.6669,35,27 ; 50 | 475,1003.6659,-1054.6088,30.6946,3.0438,122,102 ; 51 | 560,1070.9109,-1102.3247,24.4439,270.7971,41,81 ; 52 | 496,1137.6492,-1025.5586,31.5121,177.9917,67,6 ; 53 | 558,1131.7341,-1010.0580,29.4899,95.0937,40,1 ; 54 | 581,1205.2384,-977.0176,43.0742,179.7537,58,1 ; 55 | 536,1227.2596,-974.1713,43.2139,180.2966,30,96 ; 56 | 414,1110.5709,-1331.4204,13.1385,0.6026,43,1 ; 57 | 581,989.3703,-1589.3812,13.0903,21.5606,66,1 ; 58 | 542,1061.2451,-1665.2649,13.4966,91.9120,32,92 ; 59 | 405,1136.5767,-1695.5199,13.6956,88.9354,75,1 ; 60 | 463,1137.1466,-1700.1902,13.3869,87.9396,132,112 ; 61 | 518,1280.4908,-1816.1259,13.0556,270.4623,133,56 ; 62 | 482,1250.2468,-1835.0884,13.5047,180.4024,85,85 ; 63 | 527,1196.9360,-1829.6980,13.1197,269.7545,90,9 ; 64 | 589,1280.9364,-1833.0607,13.0418,90.8050,46,126 ; 65 | 562,1267.0612,-1795.2074,13.0702,0.6533,102,24 ; 66 | 463,1281.6627,-1805.1254,12.9241,62.4969,53,53 ; 67 | 545,1238.0167,-1835.2385,13.2008,177.5310,40,96 ; 68 | 400,1423.8417,-1845.0616,13.4772,270.4685,109,109 ; 69 | 546,1536.6632,-1846.7765,13.2712,0.8185,3,87 ; 70 | 475,1614.0917,-1893.9027,13.3521,357.9483,102,80 ; 71 | 546,1796.2775,-1933.2837,13.1180,180.4499,113,78 ; 72 | 545,1776.1965,-1917.6884,13.1976,90.7850,39,1 ; 73 | 400,1776.1498,-1907.3949,13.4788,271.3831,101,1 ; 74 | 400,1804.1429,-1909.4020,13.3328,269.6684,10,10 ; 75 | 474,1804.4889,-1919.3353,13.1556,269.8831,110,1 ; 76 | 496,1785.9353,-1933.2903,13.1750,0.8605,52,69 ; 77 | 496,1776.2777,-1894.0770,12.9741,272.6132,15,15 ; 78 | 482,1776.5122,-1899.9752,13.5071,87.3522,10,10 ; 79 | 482,1791.3899,-1933.2008,13.5101,180.1195,118,118 ; 80 | 461,1775.7963,-1912.6582,12.9720,269.4815,61,1 ; 81 | 461,1775.7340,-1914.1243,12.9716,262.3925,75,1 ; 82 | 536,1834.7808,-1871.9734,13.0925,179.2434,30,96 ; 83 | 496,1836.6301,-1853.6381,13.1059,179.9886,20,20 ; 84 | 414,1858.8854,-1875.5944,13.5724,180.1933,95,1 ; 85 | 468,1900.5659,-1849.8379,13.2277,44.6102,94,63 ; 86 | 589,1251.2297,-2042.1305,59.4474,180.0659,40,1 ; 87 | 521,1244.8016,-2023.3499,59.4330,292.8341,92,3 ; 88 | 506,1256.9205,-2009.4756,59.2126,0.8008,7,7 ; 89 | 522,1277.8240,-2011.9354,58.4634,268.7320,7,79 ; 90 | 463,1097.5217,-1763.8896,12.8933,267.4286,36,36 ; 91 | 475,892.6356,-1668.8604,13.3544,179.2466,37,0 ; 92 | 506,874.8234,-1658.4843,13.2514,181.7123,1,15 ; 93 | 521,870.1176,-1676.6573,13.1183,186.2732,115,118 ; 94 | 496,888.5651,-1679.1317,13.2628,357.5185,102,135 ; 95 | 411,1671.5546,-1719.5422,20.2115,269.5804,132,108 ; 96 | 415,1656.9489,-1695.5144,20.2285,358.9435,131,53 ; 97 | 496,1671.9685,-1704.4779,20.2006,270.8929,66,72 ; 98 | 461,1673.9683,-1713.0564,20.0617,67.1318,43,1 ; 99 | -------------------------------------------------------------------------------- /gamemodes/core/admin/admin_level_4.inc: -------------------------------------------------------------------------------- 1 | ADMIN_COMMAND:[e_ADMIN_LEVEL_4 && !IsPlayerAdmin(playerid)]setadmin(playerid, const params[]) 2 | { 3 | extract params -> new targetid, level, code; else { 4 | return usage(playerid, "/setadmin [targetid] [level] [code]"); 5 | } 6 | 7 | SetPlayerAdminLevel(targetid, playerid, level, code); 8 | 9 | return 1; 10 | } 11 | 12 | ADMIN_COMMAND:[e_ADMIN_LEVEL_4]givemoney(playerid, const params[]) 13 | { 14 | extract params -> new targetid, amt; else { 15 | return usage(playerid, "/givemoney [targetid] [amount]"); 16 | } 17 | 18 | if (!(1 <= amt <= 1000000)) { 19 | return err(playerid, "You can't give less than $1 and more than $1.000.000!"); 20 | } 21 | 22 | Player_SetMoney(playerid, amt); 23 | GivePlayerMoney(targetid, amt); 24 | 25 | fmt_info(playerid, "You gave $%d to %s.", amt, ReturnPlayerName(targetid)); 26 | fmt_info(targetid, "Admin %s gave you $%d.", ReturnPlayerName(playerid), amt); 27 | 28 | return 1; 29 | } 30 | 31 | ADMIN_COMMAND:[e_ADMIN_LEVEL_4]setlevel(playerid, const params[]) 32 | { 33 | extract params -> new targetid, level; else { 34 | return usage(playerid, "/setlevel [targetid] [level]"); 35 | } 36 | 37 | if (!(1 <= level <= 10000)) { 38 | return err(playerid, "You can't set a level less than 1 and more than 10000!"); 39 | } 40 | 41 | SetPlayerScore(targetid, level); 42 | Player_SetScore(playerid, level); 43 | 44 | fmt_info(playerid, "You set %s a score to %d.", ReturnPlayerName(targetid), level); 45 | fmt_info(targetid, "Admin %s set your score to %d.", ReturnPlayerName(playerid), level); 46 | 47 | return 1; 48 | } 49 | 50 | ADMIN_COMMAND:[e_ADMIN_LEVEL_4]createdealer(playerid, const params[]) 51 | { 52 | extract params -> new skin, string: name[25]; else { 53 | return usage(playerid, "/createdealer [skin] [name]"); 54 | } 55 | 56 | static 57 | x, 58 | y, 59 | z, 60 | a; 61 | 62 | GetPlayerPos(playerid, Float: x, Float: y, Float: z); 63 | GetPlayerFacingAngle(playerid, Float: a); 64 | 65 | Dealer_Create(skin, name, Float: x, Float: y, Float: z, Float: a); 66 | 67 | return 1; 68 | } 69 | 70 | ADMIN_COMMAND:[e_ADMIN_LEVEL_4]givedrugs(playerid, const params[]) 71 | { 72 | if (isnull(params)) { 73 | return usage(playerid, "/givedrugs [targetid]"); 74 | } 75 | 76 | if (!IsPlayerConnected(strval(params))) { 77 | return 0; 78 | } 79 | 80 | Player_SetDrugs(strval(params), (Player_GetDrugs(strval(params)) + 10)); 81 | 82 | fmt_info(strval(params), "Admin %s gave you 10g of drugs. Drugs: %d", ReturnPlayerName(playerid), Player_GetDrugs(strval(params))); 83 | fmt_info(playerid, "You gave 10g of drugs to %s. Drugs: %d", ReturnPlayerName(strval(params)), Player_GetDrugs(strval(params))); 84 | 85 | return 1; 86 | } 87 | 88 | ADMIN_COMMAND:[e_ADMIN_LEVEL_4]createfastfood(playerid, const params[]) 89 | { 90 | FF_Create(playerid); 91 | 92 | return 1; 93 | } 94 | 95 | ADMIN_COMMAND:[e_ADMIN_LEVEL_4]rewards(playerid, const params[]) 96 | { 97 | // if (Iter_Count(Player) < 10) { 98 | // return err(playerid, "There must be a min 10 players on the server to award prizes."); 99 | // } 100 | 101 | task_yield(1); 102 | 103 | static 104 | dialog_rewards[e_DIALOG_RESPONSE_INFO]; 105 | 106 | task_await_arr( 107 | Task: ShowPlayerAsyncDialog( 108 | playerid, DIALOG_STYLE_LIST, 109 | "Rewards", "1+ level\n$100+", 110 | "Select", "Cancel" 111 | ), dialog_rewards 112 | ); 113 | 114 | if (dialog_rewards[E_DIALOG_RESPONSE_Response]) { 115 | switch (dialog_rewards[E_DIALOG_RESPONSE_Listitem]) { 116 | case 0: { 117 | task_yield(1); 118 | 119 | static 120 | dialog_inputlvl[e_DIALOG_RESPONSE_INFO]; 121 | 122 | task_await_arr( 123 | Task: ShowPlayerAsyncDialog( 124 | playerid, DIALOG_STYLE_INPUT, 125 | "Score rewards", "Input value:", 126 | "Submit", "Cancel" 127 | ), dialog_inputlvl 128 | ); 129 | 130 | if (dialog_inputlvl[E_DIALOG_RESPONSE_Response]) { 131 | foreach (new i: Player) { 132 | Player_SetScore(i, (Player_GetScore(i) + strval(dialog_inputlvl[E_DIALOG_RESPONSE_InputText]))); 133 | SetPlayerScore(i, strval(dialog_inputlvl[E_DIALOG_RESPONSE_InputText])); 134 | 135 | fmt_info(i, "Reward: +%d score.", strval(dialog_inputlvl[E_DIALOG_RESPONSE_InputText])); 136 | } 137 | } 138 | } 139 | 140 | case 1: { 141 | task_yield(1); 142 | 143 | static 144 | dialog_inputmoney[e_DIALOG_RESPONSE_INFO]; 145 | 146 | task_await_arr( 147 | Task: ShowPlayerAsyncDialog( 148 | playerid, DIALOG_STYLE_INPUT, 149 | "Money rewards", "Input value:", 150 | "Submit", "Cancel" 151 | ), dialog_inputmoney 152 | ); 153 | 154 | if (dialog_inputmoney[E_DIALOG_RESPONSE_Response]) { 155 | foreach (new i: Player) { 156 | Player_SetMoney(i, (Player_GetMoney(i) + strval(dialog_inputmoney[E_DIALOG_RESPONSE_InputText]))); 157 | GivePlayerMoney(i, strval(dialog_inputmoney[E_DIALOG_RESPONSE_InputText])); 158 | 159 | fmt_info(i, "Reward: +$%d.", strval(dialog_inputmoney[E_DIALOG_RESPONSE_InputText])); 160 | } 161 | } 162 | } 163 | } 164 | } 165 | 166 | return 1; 167 | } -------------------------------------------------------------------------------- /db_survivetime.sql: -------------------------------------------------------------------------------- 1 | -- phpMyAdmin SQL Dump 2 | -- version 5.0.2 3 | -- https://www.phpmyadmin.net/ 4 | -- 5 | -- Host: 127.0.0.1 6 | -- Generation Time: Jan 29, 2021 at 02:06 AM 7 | -- Server version: 10.4.13-MariaDB 8 | -- PHP Version: 7.2.32 9 | 10 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 11 | START TRANSACTION; 12 | SET time_zone = "+00:00"; 13 | 14 | 15 | /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; 16 | /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; 17 | /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; 18 | /*!40101 SET NAMES utf8mb4 */; 19 | 20 | -- 21 | -- Database: `db_survivetime` 22 | -- 23 | 24 | -- -------------------------------------------------------- 25 | 26 | -- 27 | -- Table structure for table `accounts` 28 | -- 29 | 30 | CREATE TABLE `accounts` ( 31 | `account_id` int(11) NOT NULL, 32 | `account_name` varchar(25) NOT NULL DEFAULT 'none', 33 | `account_password` varchar(64) NOT NULL DEFAULT 'none' 34 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 35 | 36 | -- 37 | -- Dumping data for table `accounts` 38 | -- 39 | 40 | INSERT INTO `accounts` (`account_id`, `account_name`, `account_password`) VALUES 41 | (1, 'EmmettHH', 'testetste'), 42 | (2, 'Emmett', 'pass'), 43 | (3, 'Emmettzzzz', 'testesdfdsff'), 44 | (4, 'Emmettzzzzzzz', 'pass'), 45 | (5, 'testttt', 'qrcina'), 46 | (6, 'testtttzzz', 'pass'), 47 | (7, 'Emet_vajt', 'fdsfdfsdfsd'), 48 | (8, 'Emet_vajttt', 'pass'); 49 | 50 | -- -------------------------------------------------------- 51 | 52 | -- 53 | -- Table structure for table `banned` 54 | -- 55 | 56 | CREATE TABLE `banned` ( 57 | `banned_player` varchar(25) NOT NULL DEFAULT 'none', 58 | `banned_admin` varchar(25) NOT NULL DEFAULT 'none', 59 | `banned_reason` varchar(64) NOT NULL DEFAULT 'none' 60 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 61 | 62 | -- -------------------------------------------------------- 63 | 64 | -- 65 | -- Table structure for table `characters` 66 | -- 67 | 68 | CREATE TABLE `characters` ( 69 | `char_id` int(11) NOT NULL, 70 | `char_name` varchar(25) NOT NULL DEFAULT 'none', 71 | `char_score` smallint(6) NOT NULL DEFAULT 1, 72 | `char_money` mediumint(9) NOT NULL DEFAULT 10000, 73 | `char_skin` smallint(6) NOT NULL DEFAULT 26, 74 | `char_admin` smallint(6) NOT NULL DEFAULT 0, 75 | `char_admincode` mediumint(9) NOT NULL DEFAULT 0, 76 | `char_warn` smallint(6) NOT NULL DEFAULT 0, 77 | `char_warnreason` varchar(64) NOT NULL DEFAULT 'none', 78 | `char_muted` int(11) NOT NULL DEFAULT 0, 79 | `char_mutedmins` int(11) NOT NULL DEFAULT 0, 80 | `char_drugs` int(11) NOT NULL DEFAULT 0, 81 | `char_job` smallint(6) NOT NULL DEFAULT 0 82 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 83 | 84 | -- 85 | -- Dumping data for table `characters` 86 | -- 87 | 88 | INSERT INTO `characters` (`char_id`, `char_name`, `char_score`, `char_money`, `char_skin`, `char_admin`, `char_admincode`, `char_warn`, `char_warnreason`, `char_muted`, `char_mutedmins`, `char_drugs`, `char_job`) VALUES 89 | (1, 'EmmettHH', 1, 100, 26, 0, 0, 0, 'none', 0, 0, 0, 0), 90 | (2, 'Emmett', 4, 4202, 294, 4, 44, 0, 'none', 0, 0, 20, 0), 91 | (3, 'Emmettzzzz', 1, 100, 26, 0, 0, 0, 'none', 0, 0, 0, 0), 92 | (4, 'Emmettzzzzzzz', 1, 100, 26, 0, 0, 0, 'none', 0, 0, 0, 0), 93 | (5, 'testttt', 1, 100, 26, 0, 0, 0, 'none', 0, 0, 0, 0), 94 | (6, 'testtttzzz', 1, 100, 26, 0, 0, 0, 'none', 0, 0, 0, 0), 95 | (7, 'Emet_vajt', 1, 100, 26, 0, 0, 0, 'none', 0, 0, 0, 0), 96 | (8, 'Emet_vajttt', 1, 100, 26, 0, 0, 0, 'none', 0, 0, 0, 0); 97 | 98 | -- -------------------------------------------------------- 99 | 100 | -- 101 | -- Table structure for table `dealers` 102 | -- 103 | 104 | CREATE TABLE `dealers` ( 105 | `dealer_id` int(11) NOT NULL, 106 | `dealer_name` varchar(25) NOT NULL DEFAULT 'none', 107 | `dealer_skin` int(11) NOT NULL DEFAULT 29, 108 | `dealer_x` float NOT NULL DEFAULT 0, 109 | `dealer_y` float NOT NULL DEFAULT 0, 110 | `dealer_z` float NOT NULL DEFAULT 0, 111 | `dealer_a` float NOT NULL DEFAULT 0 112 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 113 | 114 | -- -------------------------------------------------------- 115 | 116 | -- 117 | -- Table structure for table `fastfood` 118 | -- 119 | 120 | CREATE TABLE `fastfood` ( 121 | `ff_id` int(11) NOT NULL, 122 | `ff_x` float NOT NULL DEFAULT 0, 123 | `ff_y` float NOT NULL DEFAULT 0, 124 | `ff_z` float NOT NULL DEFAULT 0, 125 | `ff_rz` float NOT NULL DEFAULT 0 126 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 127 | 128 | -- 129 | -- Dumping data for table `fastfood` 130 | -- 131 | 132 | INSERT INTO `fastfood` (`ff_id`, `ff_x`, `ff_y`, `ff_z`, `ff_rz`) VALUES 133 | (1, 140.823, -72.9489, 1.42969, 396.59), 134 | (2, 134.785, -79.442, 1.42969, 246.941), 135 | (3, 1397.41, -1748.55, 13.5469, 272.384), 136 | (4, 1520.12, -1654.81, 13.5392, 447.164), 137 | (5, 1830.39, -1269.46, 13.6245, 539.633), 138 | (6, 1526.07, -1027.27, 23.9214, 335.54), 139 | (7, 1240.58, -1030.65, 31.9496, 358.287), 140 | (8, 1144, -931.836, 43.1405, 359.165), 141 | (9, 718.902, -1123.92, 18.0111, 239.845), 142 | (10, 662.913, -608.69, 16.3359, 537.251), 143 | (11, 223.449, -157.607, 1.57813, 449.889), 144 | (12, -75.2066, 1088.47, 19.7422, 487.907); 145 | 146 | -- -------------------------------------------------------- 147 | 148 | -- 149 | -- Table structure for table `reports` 150 | -- 151 | 152 | CREATE TABLE `reports` ( 153 | `report_player` varchar(25) NOT NULL DEFAULT 'none', 154 | `report_reason` varchar(64) NOT NULL DEFAULT 'none' 155 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 156 | 157 | -- 158 | -- Indexes for dumped tables 159 | -- 160 | 161 | -- 162 | -- Indexes for table `accounts` 163 | -- 164 | ALTER TABLE `accounts` 165 | ADD PRIMARY KEY (`account_id`); 166 | 167 | -- 168 | -- Indexes for table `characters` 169 | -- 170 | ALTER TABLE `characters` 171 | ADD PRIMARY KEY (`char_id`); 172 | 173 | -- 174 | -- Indexes for table `dealers` 175 | -- 176 | ALTER TABLE `dealers` 177 | ADD PRIMARY KEY (`dealer_id`); 178 | 179 | -- 180 | -- Indexes for table `fastfood` 181 | -- 182 | ALTER TABLE `fastfood` 183 | ADD PRIMARY KEY (`ff_id`); 184 | 185 | -- 186 | -- AUTO_INCREMENT for dumped tables 187 | -- 188 | 189 | -- 190 | -- AUTO_INCREMENT for table `accounts` 191 | -- 192 | ALTER TABLE `accounts` 193 | MODIFY `account_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; 194 | 195 | -- 196 | -- AUTO_INCREMENT for table `characters` 197 | -- 198 | ALTER TABLE `characters` 199 | MODIFY `char_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; 200 | 201 | -- 202 | -- AUTO_INCREMENT for table `dealers` 203 | -- 204 | ALTER TABLE `dealers` 205 | MODIFY `dealer_id` int(11) NOT NULL AUTO_INCREMENT; 206 | 207 | -- 208 | -- AUTO_INCREMENT for table `fastfood` 209 | -- 210 | ALTER TABLE `fastfood` 211 | MODIFY `ff_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13; 212 | COMMIT; 213 | 214 | /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; 215 | /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; 216 | /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 217 | -------------------------------------------------------------------------------- /gamemodes/core/admin/admin_level_1.inc: -------------------------------------------------------------------------------- 1 | static 2 | BitArray: VEHICLE_SPAWNED; 3 | 4 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]ban(playerid, const params[]) 5 | { 6 | extract params -> new targetid, string: reason[MAX_REASON_TEXT]; else { 7 | return usage(playerid, "/ban [targetid] [reason]"); 8 | } 9 | 10 | BanPlayer(targetid, playerid, reason); 11 | 12 | return 1; 13 | } 14 | 15 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]unban(playerid, const params[]) 16 | { 17 | if (isnull(params)) { 18 | return usage(playerid, "/unban [name]"); 19 | } 20 | 21 | UnbanPlayer(playerid, params); 22 | 23 | return 1; 24 | } 25 | 26 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]kick(playerid, const params[]) 27 | { 28 | extract params -> new targetid, string: reason[MAX_REASON_TEXT]; else { 29 | return usage(playerid, "/kick [targetid] [reason]"); 30 | } 31 | 32 | if (targetid == playerid) { 33 | return err(playerid, "You can't kick yourself!"); 34 | } 35 | 36 | GameTextForPlayer(targetid, "~r~KICKED", 10000, 3); 37 | 38 | va_SendClientMessageToAll( 39 | X11_RED, "* Kick: "WHITE"Player %s has been kicked from this server. Reason: %s", 40 | ReturnPlayerName(targetid), reason 41 | ); 42 | 43 | Kick(targetid); 44 | 45 | return 1; 46 | } 47 | 48 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]cc(playerid, const params[]) 49 | { 50 | if (isnull(params)) { 51 | return usage(playerid, "/cc [line(s)]"); 52 | } 53 | 54 | for (new i = 0; i < strval(params); ++i) { 55 | SendClientMessageToAll(-1, " "); 56 | } 57 | 58 | SendClientMessageToAll(-1, "Chatbox cleared."); 59 | 60 | return 1; 61 | } 62 | 63 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]mute(playerid, const params[]) 64 | { 65 | extract params -> new targetid, string: reason[MAX_REASON_TEXT], minutes; else { 66 | return usage(playerid, "/mute [targetid] [reason] [minutes]"); 67 | } 68 | 69 | MutePlayer(playerid, targetid, reason, minutes); 70 | 71 | return 1; 72 | } 73 | 74 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]unmute(playerid, const params[]) 75 | { 76 | if (isnull(params)) { 77 | return usage(playerid, "/unmute [targetid]"); 78 | } 79 | 80 | if (!IsPlayerConnected(strval(params))) { 81 | return 0; 82 | } 83 | 84 | UnMutePlayer(playerid, strval(params)); 85 | 86 | return 1; 87 | } 88 | 89 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]veh(playerid, const params[]) 90 | { 91 | if (isnull(params)) { 92 | return usage(playerid, "/veh [vehicle id (400-611)]"); 93 | } 94 | 95 | if (!(400 <= strval(params) <= 611)) { 96 | return err(playerid, "Invalid vehicle ID!"); 97 | } 98 | 99 | static 100 | x, y, z, a, 101 | vehicleid; 102 | 103 | if (!Bit_Get(VEHICLE_SPAWNED, playerid)) { 104 | GetPlayerPos(playerid, Float: x, Float: y, Float: z); 105 | GetPlayerFacingAngle(playerid, Float: a); 106 | 107 | vehicleid = CreateVehicle(strval(params), Float: x, Float: y, Float: z, Float: a, 0, 0, 0); 108 | PutPlayerInVehicle(playerid, vehicleid, 0); 109 | 110 | Bit_Let(VEHICLE_SPAWNED, playerid); 111 | 112 | return 1; 113 | } 114 | 115 | Bit_Set(VEHICLE_SPAWNED, playerid, false); 116 | DestroyVehicle(vehicleid); 117 | 118 | return 1; 119 | } 120 | 121 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]pm(playerid, const params[]) 122 | { 123 | extract params -> new targetid, string: text[MAX_TEXT_MESSAGE]; else { 124 | return usage(playerid, "/pm [targetid] [text]"); 125 | } 126 | 127 | va_SendClientMessage(playerid, X11_RED, "* PM: "WHITE"%s: %s", ReturnPlayerName(targetid), text); 128 | va_SendClientMessage(targetid, X11_RED, "* PM: "WHITE"%s: %s", ReturnPlayerName(playerid), text); 129 | 130 | return 1; 131 | } 132 | 133 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]a(playerid, const params[]) 134 | { 135 | if (isnull(params)) { 136 | return usage(playerid, "/a [text]"); 137 | } 138 | 139 | foreach (new i: Player) { 140 | if (Admin_GetLevel(i)) { 141 | va_SendClientMessage(i, X11_RED, "* Admin-Chat: "WHITE"(%d)%s: %s", i, ReturnPlayerName(i), params); 142 | } 143 | } 144 | 145 | return 1; 146 | } 147 | 148 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]kill(playerid, const params[]) 149 | { 150 | extract params -> new targetid, string: reason[MAX_REASON_TEXT]; else { 151 | return usage(playerid, "/kill [targetid] [reason]"); 152 | } 153 | 154 | SetPlayerHealth(targetid, Float: 0.0); 155 | 156 | fmt_info(targetid, "Admin %s killed you. Reason: %s.", ReturnPlayerName(playerid), reason); 157 | fmt_info(playerid, "You've killed player %s. Reason: %s.", ReturnPlayerName(targetid), reason); 158 | 159 | return 1; 160 | } 161 | 162 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]gotodealer(playerid, const params[]) 163 | { 164 | if (isnull(params)) { 165 | return usage(playerid, "/gotodealer [dealer id]"); 166 | } 167 | 168 | Dealer_Goto(playerid, strval(params)); 169 | 170 | return 1; 171 | } 172 | 173 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]pos(playerid, const params[]) 174 | { 175 | extract params -> new Float: x, Float: y, Float: z; else { 176 | return usage(playerid, "/pos [x] [y] [z]"); 177 | } 178 | 179 | SetPlayerPos(playerid, Float: x, Float: y, Float: z); 180 | 181 | return 1; 182 | } 183 | 184 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]fv(playerid, const params[]) 185 | { 186 | if (!IsPlayerInAnyVehicle(playerid)) { 187 | return 0; 188 | } 189 | 190 | RepairVehicle(GetPlayerVehicleID(playerid)); 191 | SetVehicleHealth(GetPlayerVehicleID(playerid), Float: 0x4479c000); 192 | 193 | return 1; 194 | } 195 | 196 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]gotofastfood(playerid, const params[]) 197 | { 198 | if (isnull(params)) { 199 | return usage(playerid, "/gotofastfood [fastfood id]"); 200 | } 201 | 202 | FF_Goto(playerid, strval(params)); 203 | 204 | return 1; 205 | } 206 | 207 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]freeze(playerid, const params[]) 208 | { 209 | if (isnull(params)) { 210 | return usage(playerid, "/freeze [targetid]"); 211 | } 212 | 213 | if (!IsPlayerConnected(strval(params))) { 214 | return 0; 215 | } 216 | 217 | TogglePlayerControllable(strval(params), 0); 218 | 219 | fmt_info(playerid, "You froze the player %s.", ReturnPlayerName(strval(params))); 220 | fmt_info(strval(params), "Admin %s froze you.", ReturnPlayerName(playerid)); 221 | 222 | return 1; 223 | } 224 | 225 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]unfreeze(playerid, const params[]) 226 | { 227 | if (isnull(params)) { 228 | return usage(playerid, "/unfreeze [targetid]"); 229 | } 230 | 231 | if (!IsPlayerConnected(strval(params))) { 232 | return 0; 233 | } 234 | 235 | TogglePlayerControllable(strval(params), 1); 236 | 237 | fmt_info(playerid, "You un-froze the player %s.", ReturnPlayerName(strval(params))); 238 | fmt_info(strval(params), "Admin %s un-froze you.", ReturnPlayerName(playerid)); 239 | 240 | return 1; 241 | } 242 | 243 | ADMIN_COMMAND:[e_ADMIN_LEVEL_1]offban(playerid, const params[]) 244 | { 245 | extract params -> new string: name[MAX_PLAYER_NAME], string: reason[MAX_REASON_TEXT]; else { 246 | return usage(playerid, "/offban [name] [reason]"); 247 | } 248 | 249 | task_await( 250 | Task: MySQL_QueryS( 251 | String: str_format( 252 | "SELECT * FROM accounts WHERE account_name = '%e'", name 253 | ) 254 | ) 255 | ); 256 | 257 | if (!cache_num_rows()) { 258 | return err(playerid, "That account doesn't exists!"); 259 | } 260 | 261 | OffBan(name, playerid, reason); 262 | 263 | return 1; 264 | } -------------------------------------------------------------------------------- /gamemodes/core/jobs/bus/bus_hooks.inc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | static 4 | tmpobjid, 5 | Bus_Vehicle[4], 6 | 7 | Text3D: Bus_Label[4]; 8 | 9 | hook OnGameModeInit() 10 | { 11 | tmpobjid = CreateDynamicObject(18766, 1190.392578, -1837.261718, 14.350311, 0.000000, 0.000000, 90.000000, -1, -1, -1, 300.00, 300.00); 12 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 13 | tmpobjid = CreateDynamicObject(18766, 1190.392578, -1827.331787, 14.350311, 0.000000, 0.000000, 90.000000, -1, -1, -1, 300.00, 300.00); 14 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 15 | tmpobjid = CreateDynamicObject(18766, 1190.392578, -1817.372436, 14.350311, 0.000000, 0.000000, 90.000000, -1, -1, -1, 300.00, 300.00); 16 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 17 | tmpobjid = CreateDynamicObject(18766, 1190.392578, -1807.422851, 14.350311, 0.000000, 0.000000, 90.000000, -1, -1, -1, 300.00, 300.00); 18 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 19 | tmpobjid = CreateDynamicObject(18766, 1286.971069, -1837.261718, 14.350311, 0.000007, 0.000000, 89.999977, -1, -1, -1, 300.00, 300.00); 20 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 21 | tmpobjid = CreateDynamicObject(18766, 1286.971069, -1827.331787, 14.350311, 0.000007, 0.000000, 89.999977, -1, -1, -1, 300.00, 300.00); 22 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 23 | tmpobjid = CreateDynamicObject(18766, 1286.971069, -1817.372436, 14.350311, 0.000007, 0.000000, 89.999977, -1, -1, -1, 300.00, 300.00); 24 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 25 | tmpobjid = CreateDynamicObject(18766, 1286.971069, -1807.422851, 14.350311, 0.000007, 0.000000, 89.999977, -1, -1, -1, 300.00, 300.00); 26 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 27 | tmpobjid = CreateDynamicObject(18766, 1286.971069, -1797.543945, 14.350311, 0.000007, 0.000000, 89.999977, -1, -1, -1, 300.00, 300.00); 28 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 29 | tmpobjid = CreateDynamicObject(18766, 1286.971069, -1788.305419, 14.350311, 0.000007, 0.000000, 89.999977, -1, -1, -1, 300.00, 300.00); 30 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 31 | tmpobjid = CreateDynamicObject(18766, 1281.821533, -1783.815185, 14.350311, 0.000007, 0.000000, 179.999969, -1, -1, -1, 300.00, 300.00); 32 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 33 | tmpobjid = CreateDynamicObject(18766, 1281.631103, -1841.772827, 14.350311, 0.000007, 0.000000, 179.999969, -1, -1, -1, 300.00, 300.00); 34 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 35 | tmpobjid = CreateDynamicObject(18766, 1195.701538, -1841.762817, 14.350311, 0.000007, 0.000000, 179.999969, -1, -1, -1, 300.00, 300.00); 36 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 37 | tmpobjid = CreateDynamicObject(18766, 1202.110473, -1841.762817, 14.350311, 0.000007, 0.000000, 179.999969, -1, -1, -1, 300.00, 300.00); 38 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 39 | tmpobjid = CreateDynamicObject(18766, 1225.180786, -1841.762817, 14.350311, 0.000007, 0.000000, 179.999969, -1, -1, -1, 300.00, 300.00); 40 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 41 | tmpobjid = CreateDynamicObject(18766, 1235.120239, -1841.762817, 14.350311, 0.000007, 0.000000, 179.999969, -1, -1, -1, 300.00, 300.00); 42 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 43 | tmpobjid = CreateDynamicObject(18766, 1244.970458, -1841.762817, 14.350311, 0.000007, 0.000000, 179.999969, -1, -1, -1, 300.00, 300.00); 44 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 45 | tmpobjid = CreateDynamicObject(18766, 1254.799926, -1841.762817, 14.350311, 0.000007, 0.000000, 179.999969, -1, -1, -1, 300.00, 300.00); 46 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 47 | tmpobjid = CreateDynamicObject(18766, 1258.369995, -1841.762817, 14.350311, 0.000007, 0.000000, 179.999969, -1, -1, -1, 300.00, 300.00); 48 | SetDynamicObjectMaterial(tmpobjid, 0, 18996, "mattextures", "sampblack", 0x00000000); 49 | tmpobjid = CreateDynamicObject(7914, 1241.601684, -1841.872680, 14.711424, 0.000000, 0.000000, -0.000000, -1, -1, -1, 300.00, 300.00); 50 | SetDynamicObjectMaterialText(tmpobjid, 0, "{FFFFFF}BUS STATION", 80, "Ariel", 20, 1, 0x00000000, 0x00000000, 1); 51 | 52 | tmpobjid = CreateDynamicObject(19123, 1219.823242, -1841.613525, 13.061433, 0.000000, 0.000000, 0.000000, -1, -1, -1, 300.00, 300.00); 53 | tmpobjid = CreateDynamicObject(19123, 1207.512939, -1841.613525, 13.061433, 0.000000, 0.000000, 0.000000, -1, -1, -1, 300.00, 300.00); 54 | tmpobjid = CreateDynamicObject(19123, 1263.723266, -1841.613525, 13.061433, 0.000000, 0.000000, 0.000000, -1, -1, -1, 300.00, 300.00); 55 | tmpobjid = CreateDynamicObject(19123, 1276.243164, -1841.613525, 13.061433, 0.000000, 0.000000, 0.000000, -1, -1, -1, 300.00, 300.00); 56 | 57 | // Vehicles 58 | Bus_Vehicle[0] = AddStaticVehicleEx(431, 1280.0828000, -1799.9475000, 13.3989000, 180.0000000, -1, -1, 10000); 59 | Bus_Vehicle[1] = AddStaticVehicleEx(431, 1274.4136000, -1799.9475000, 13.3989000, 180.0000000, -1, -1, 10000); 60 | Bus_Vehicle[2] = AddStaticVehicleEx(431, 1268.1949000, -1799.9475000, 13.3989000, 180.0000000, -1, -1, 10000); 61 | Bus_Vehicle[3] = AddStaticVehicleEx(431, 1262.3354000, -1799.9475000, 13.3989000, 180.0000000, -1, -1, 10000); 62 | 63 | for (new i = 0; i < 4; ++i) { 64 | Bus_Label[i] = CreateDynamic3DTextLabel( 65 | "BUS VEHICLE", X11_YELLOW, 66 | Float: 0.0, Float: 0.0, Float: 0.0, Float: 30.0, 67 | INVALID_PLAYER_ID, Bus_Vehicle[i] 68 | ); 69 | } 70 | 71 | CreateDynamicPickup(1210, 1, Float: 1222.0521, Float: -1812.2341, Float: 16.5938); 72 | CreateDynamicPickup(1275, 1, Float: 1216.5745, Float: -1812.1322, Float: 16.5938); 73 | 74 | return Y_HOOKS_CONTINUE_RETURN_1; 75 | } 76 | 77 | hook OnPlayerConnect(playerid) 78 | { 79 | RemoveBuildingForPlayer(playerid, 673, 1256.2266, -1839.9766, 12.5234, 0.25); 80 | RemoveBuildingForPlayer(playerid, 620, 1249.5078, -1840.3828, 12.3516, 0.25); 81 | RemoveBuildingForPlayer(playerid, 647, 1235.8359, -1839.8125, 14.0703, 0.25); 82 | RemoveBuildingForPlayer(playerid, 647, 1192.8281, -1839.8125, 14.0703, 0.25); 83 | RemoveBuildingForPlayer(playerid, 647, 1244.5000, -1839.8125, 14.0703, 0.25); 84 | RemoveBuildingForPlayer(playerid, 647, 1284.9766, -1839.8125, 14.0703, 0.25); 85 | RemoveBuildingForPlayer(playerid, 673, 1200.8828, -1839.1250, 12.5234, 0.25); 86 | RemoveBuildingForPlayer(playerid, 673, 1227.5547, -1839.1250, 12.5234, 0.25); 87 | RemoveBuildingForPlayer(playerid, 647, 1192.8281, -1829.2813, 14.0703, 0.25); 88 | RemoveBuildingForPlayer(playerid, 647, 1284.9766, -1828.4219, 14.0703, 0.25); 89 | RemoveBuildingForPlayer(playerid, 673, 1192.6172, -1826.9531, 12.5234, 0.25); 90 | RemoveBuildingForPlayer(playerid, 673, 1284.8906, -1823.8594, 12.5234, 0.25); 91 | RemoveBuildingForPlayer(playerid, 647, 1284.9766, -1820.7422, 14.0703, 0.25); 92 | RemoveBuildingForPlayer(playerid, 620, 1286.3047, -1808.6094, 12.3516, 0.25); 93 | RemoveBuildingForPlayer(playerid, 647, 1284.9766, -1796.8984, 14.0703, 0.25); 94 | 95 | return Y_HOOKS_CONTINUE_RETURN_1; 96 | } 97 | 98 | hook OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) 99 | { 100 | if (Bus_ValidVeh(vehicleid)) 101 | { 102 | if (Player_GetJob(playerid) != _:E_PLAYER_JOB_BUS) { 103 | ClearAnimations(playerid); 104 | GameTextForPlayer(playerid, "~r~You can't drive that vehicle!", 2000, 3); 105 | } 106 | } 107 | 108 | return Y_HOOKS_CONTINUE_RETURN_1; 109 | } 110 | 111 | stock Bus_ValidVeh(vehid) 112 | { 113 | for (new i = 0; i < sizeof Bus_Vehicle; ++i) { 114 | if (vehid == Bus_Vehicle[i]) { 115 | return 1; 116 | } 117 | } 118 | 119 | return 0; 120 | } -------------------------------------------------------------------------------- /gamemodes/core/player/ui/register/register_functions.inc: -------------------------------------------------------------------------------- 1 | static 2 | PlayerText: ui_register[MAX_PLAYERS][12] = {PlayerText: INVALID_TEXT_DRAW, ...}; 3 | 4 | stock UI_CreateRegisterTextDraws(const playerid, bool: status = true) 5 | { 6 | if (!status) { 7 | for (new i = 0; i < 12; ++i) { 8 | PlayerTextDrawDestroy(playerid, PlayerText: ui_register[playerid][i]); 9 | } 10 | 11 | CancelSelectTextDraw(playerid); 12 | 13 | return 1; 14 | } 15 | 16 | ui_register[playerid][0] = CreatePlayerTextDraw(playerid, 163.125000, 144.500045, "LD_SPAC:white"); 17 | PlayerTextDrawTextSize(playerid, ui_register[playerid][0], 313.000000, 144.000000); 18 | PlayerTextDrawAlignment(playerid, ui_register[playerid][0], 1); 19 | PlayerTextDrawColor(playerid, ui_register[playerid][0], 153); 20 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][0], 0); 21 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][0], 255); 22 | PlayerTextDrawFont(playerid, ui_register[playerid][0], 4); 23 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][0], 0); 24 | 25 | ui_register[playerid][1] = CreatePlayerTextDraw(playerid, 163.125000, 144.500045, "LD_SPAC:white"); 26 | PlayerTextDrawTextSize(playerid, ui_register[playerid][1], 312.000000, 17.000000); 27 | PlayerTextDrawAlignment(playerid, ui_register[playerid][1], 1); 28 | PlayerTextDrawColor(playerid, ui_register[playerid][1], 255); 29 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][1], 0); 30 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][1], 255); 31 | PlayerTextDrawFont(playerid, ui_register[playerid][1], 4); 32 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][1], 0); 33 | 34 | ui_register[playerid][2] = CreatePlayerTextDraw(playerid, 162.549926, 260.883209, "LD_SPAC:white"); 35 | PlayerTextDrawTextSize(playerid, ui_register[playerid][2], 312.889892, 26.849996); 36 | PlayerTextDrawAlignment(playerid, ui_register[playerid][2], 1); 37 | PlayerTextDrawColor(playerid, ui_register[playerid][2], 255); 38 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][2], 0); 39 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][2], 255); 40 | PlayerTextDrawFont(playerid, ui_register[playerid][2], 4); 41 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][2], 0); 42 | 43 | ui_register[playerid][3] = CreatePlayerTextDraw(playerid, 316.875000, 149.166702, "SURVIVE_TIME_COPYRIGHT_(c)_2021"); 44 | PlayerTextDrawLetterSize(playerid, ui_register[playerid][3], 0.204999, 0.742499); 45 | PlayerTextDrawAlignment(playerid, ui_register[playerid][3], 2); 46 | PlayerTextDrawColor(playerid, ui_register[playerid][3], -1); 47 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][3], 0); 48 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][3], 255); 49 | PlayerTextDrawFont(playerid, ui_register[playerid][3], 2); 50 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][3], 1); 51 | 52 | ui_register[playerid][4] = CreatePlayerTextDraw(playerid, 159.375000, 170.749984, ""); 53 | PlayerTextDrawTextSize(playerid, ui_register[playerid][4], 97.000000, 80.000000); 54 | PlayerTextDrawAlignment(playerid, ui_register[playerid][4], 1); 55 | PlayerTextDrawColor(playerid, ui_register[playerid][4], -1); 56 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][4], 0x00000000); 57 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][4], 0); 58 | PlayerTextDrawFont(playerid, ui_register[playerid][4], 5); 59 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][4], 0); 60 | PlayerTextDrawSetPreviewModel(playerid, ui_register[playerid][4], 26); 61 | PlayerTextDrawSetPreviewRot(playerid, ui_register[playerid][4], 0.000000, 0.000000, 20.000000, 1.000000); 62 | 63 | ui_register[playerid][5] = CreatePlayerTextDraw(playerid, 247.500000, 165.683547, "LD_SPAC:white"); 64 | PlayerTextDrawTextSize(playerid, ui_register[playerid][5], 0.109999, 90.000000); 65 | PlayerTextDrawAlignment(playerid, ui_register[playerid][5], 1); 66 | PlayerTextDrawColor(playerid, ui_register[playerid][5], -1); 67 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][5], 0); 68 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][5], 255); 69 | PlayerTextDrawFont(playerid, ui_register[playerid][5], 4); 70 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][5], 0); 71 | 72 | ui_register[playerid][6] = CreatePlayerTextDraw(playerid, 449.375000, 145.083343, "particle:bloodpool_64"); 73 | PlayerTextDrawTextSize(playerid, ui_register[playerid][6], 22.000000, 16.000000); 74 | PlayerTextDrawAlignment(playerid, ui_register[playerid][6], 1); 75 | PlayerTextDrawColor(playerid, ui_register[playerid][6], -16776961); 76 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][6], 0); 77 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][6], 255); 78 | PlayerTextDrawFont(playerid, ui_register[playerid][6], 4); 79 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][6], 0); 80 | 81 | ui_register[playerid][7] = CreatePlayerTextDraw(playerid, 460.000000, 148.583312, "x"); 82 | PlayerTextDrawTextSize(playerid, ui_register[playerid][7], 10.0, 20.0); 83 | PlayerTextDrawLetterSize(playerid, ui_register[playerid][7], 0.283124, 0.917500); 84 | PlayerTextDrawAlignment(playerid, ui_register[playerid][7], 2); 85 | PlayerTextDrawColor(playerid, ui_register[playerid][7], -1); 86 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][7], 0); 87 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][7], 255); 88 | PlayerTextDrawFont(playerid, ui_register[playerid][7], 2); 89 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][7], 1); 90 | PlayerTextDrawSetSelectable(playerid, ui_register[playerid][7], true); 91 | 92 | ui_register[playerid][8] = CreatePlayerTextDraw(playerid, 360.000000, 183.766555, "ENTER_PASSWORD"); 93 | PlayerTextDrawTextSize(playerid, ui_register[playerid][8], 10.0, 20.0); 94 | PlayerTextDrawLetterSize(playerid, ui_register[playerid][8], 0.375000, 1.967500); 95 | PlayerTextDrawAlignment(playerid, ui_register[playerid][8], 2); 96 | PlayerTextDrawColor(playerid, ui_register[playerid][8], -1); 97 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][8], 1); 98 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][8], 255); 99 | PlayerTextDrawFont(playerid, ui_register[playerid][8], 2); 100 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][8], 1); 101 | PlayerTextDrawSetSelectable(playerid, ui_register[playerid][8], true); 102 | 103 | ui_register[playerid][9] = CreatePlayerTextDraw(playerid, 312.749938, 214.967926, "LD_SPAC:white"); 104 | PlayerTextDrawTextSize(playerid, ui_register[playerid][9], 95.000000, 20.000000); 105 | PlayerTextDrawAlignment(playerid, ui_register[playerid][9], 1); 106 | PlayerTextDrawColor(playerid, ui_register[playerid][9], -16777072); 107 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][9], 0); 108 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][9], 255); 109 | PlayerTextDrawFont(playerid, ui_register[playerid][9], 4); 110 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][9], 0); 111 | 112 | ui_register[playerid][10] = CreatePlayerTextDraw(playerid, 359.375000, 214.299865, "EXIT"); 113 | PlayerTextDrawTextSize(playerid, ui_register[playerid][10], 10.0, 20.0); 114 | PlayerTextDrawLetterSize(playerid, ui_register[playerid][10], 0.375000, 1.967500); 115 | PlayerTextDrawAlignment(playerid, ui_register[playerid][10], 2); 116 | PlayerTextDrawColor(playerid, ui_register[playerid][10], -1); 117 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][10], 1); 118 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][10], 255); 119 | PlayerTextDrawFont(playerid, ui_register[playerid][10], 2); 120 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][10], 1); 121 | PlayerTextDrawSetSelectable(playerid, ui_register[playerid][10], true); 122 | 123 | ui_register[playerid][11] = CreatePlayerTextDraw(playerid, 315.625000, 267.583404, "SURVIVE_TIME_REGISTER_SYSTEM~n~CLICK_ON_'ENTER_PASSWORD'_TO_CREATE_AN_ACCOUNT..."); 124 | PlayerTextDrawLetterSize(playerid, ui_register[playerid][11], 0.182499, 0.713333); 125 | PlayerTextDrawAlignment(playerid, ui_register[playerid][11], 2); 126 | PlayerTextDrawColor(playerid, ui_register[playerid][11], -1); 127 | PlayerTextDrawSetShadow(playerid, ui_register[playerid][11], 0); 128 | PlayerTextDrawBackgroundColor(playerid, ui_register[playerid][11], 255); 129 | PlayerTextDrawFont(playerid, ui_register[playerid][11], 2); 130 | PlayerTextDrawSetProportional(playerid, ui_register[playerid][11], 1); 131 | 132 | for (new i = 0; i < 12; ++i) { 133 | PlayerTextDrawShow(playerid, PlayerText: ui_register[playerid][i]); 134 | } 135 | 136 | SelectTextDraw(playerid, X11_ORANGE); 137 | 138 | return 1; 139 | } 140 | 141 | stock UI_ClickRegisterTextDraw(const playerid, const index) 142 | { 143 | return _:ui_register[playerid][index]; 144 | } -------------------------------------------------------------------------------- /scriptfiles/vehicles/bone.txt: -------------------------------------------------------------------------------- 1 | 513,291.1346,2535.5850,17.3778,180.2974,21,36 ; Stuntplane 2 | 512,324.4324,2535.6506,17.5121,181.8785,89,91 ; Cropduster 3 | 476,403.6754,2456.9727,16.7825,357.7751,15,123 ; Rustler 4 | 417,364.4265,2535.2258,16.7616,143.5451,0,0 ; Leviathan 5 | 586,423.4558,2541.1025,15.9887,339.6539,10,1 ; Wayfarer 6 | 543,385.2093,2603.5049,16.3080,192.7106,67,8 ; Sadler 7 | 468,383.9264,2590.5933,16.1533,275.5223,46,46 ; Sanchez 8 | 473,260.6835,2936.9685,0.1290,358.4063,56,53 ; Dinghy 9 | 586,-237.9596,2595.8259,62.2231,181.1165,122,1 ; Wayfarer 10 | 468,-146.0389,2681.6436,62.0454,272.4597,46,46 ; Sanchez 11 | 429,-213.1005,2609.1829,62.3828,359.8650,13,13 ; Banshee 12 | 600,-201.2879,2594.7170,62.4220,1.1029,32,8 ; Picador 13 | 489,-270.6937,2675.0889,62.7954,251.3489,14,123 ; Rancher 14 | 471,-165.8631,2715.0740,61.9532,88.0077,103,111 ; Quad 15 | 420,-208.3269,2723.9990,62.4695,267.2648,6,1 ; Taxi 16 | 489,-290.5132,2721.2917,62.4475,181.4169,112,120 ; Rancher 17 | 463,-322.7055,2671.4551,62.2949,179.9792,79,79 ; Freeway 18 | 489,-303.7003,2683.5918,62.7898,180.7489,120,123 ; Rancher 19 | 468,-255.1318,2766.75,61.9963,181.5453,3,3 ; Sanchez 20 | 604,-171.7224,2759.3877,62.4067,24.1882,2,76 ; Glendale (Shit) 21 | 424,-17.3881,2355.6077,23.8879,143.4369,3,2 ; BF Injection 22 | 470,304.7515,1839.3784,17.5989,336.0933,43,0 ; Patriot 23 | 433,301.7500,1863.8750,18.0533,360.0000,43,0 ; Barracks 24 | 548,296.0859,1925.9017,19.3104,236.2604,1,1 ; Cargobob 25 | 548,314.9759,2046.6259,19.2481,157.8634,1,1 ; Cargobob 26 | 548,350.5939,1984.1194,19.3047,92.2205,1,1 ; Cargobob 27 | 470,282.3898,1955.3890,17.6341,270.8638,43,0 ; Patriot 28 | 543,-210.2042,2609.1667,62.5216,181.2800,32,8 ; Sadler 29 | 482,-528.5228,2571.3865,53.5349,269.2740,32,32 ; Burrito 30 | 424,-527.7629,2604.1191,53.1937,271.2167,2,2 ; BF Injection 31 | 411,-519.1963,2617.6292,53.1448,90.1552,64,1 ; Infernus 32 | 600,-421.8827,2225.4055,42.0774,180.3449,8,90 ; Picador 33 | 568,-363.7965,2215.8901,42.3509,72.2219,9,39 ; Bandito 34 | 568,-366.0048,2213.4297,42.3455,69.9285,17,1 ; Bandito 35 | 471,-399.0436,2252.6685,41.8178,300.8135,120,112 ; Quad 36 | 461,-301.5291,1777.7788,42.2720,92.8800,37,1 ; PCJ-600 37 | 468,-290.4525,1746.2904,42.3604,91.2906,3,3 ; Sanchez 38 | 508,-302.0461,1755.6252,43.0626,271.1350,1,1 ; Journey 39 | 568,-162.9634,1673.1277,14.4768,202.5489,21,1 ; Bandito 40 | 508,-285.4013,1562.1003,75.7344,137.1875,1,1 ; Journey 41 | 468,-307.6941,1556.6575,75.0275,45.6280,46,46 ; Sanchez 42 | 424,-299.3567,1577.7837,75.1395,313.4809,3,2 ; BF Injection 43 | 478,-336.6758,1514.6866,75.3520,180.0568,45,1 ; Walton 44 | 495,-359.6404,1596.7112,77.3610,356.9484,115,43 ; Sandking 45 | 477,-333.5037,1515.0670,75.1135,180.8090,94,1 ; ZR-350 46 | 421,-291.1455,1308.1112,53.8199,82.9306,71,72 ; Washington 47 | 581,-291.5828,1293.2133,53.2624,258.5006,58,1 ; BF-400 48 | 403,-290.1071,1317.4010,55.3024,262.6769,24,77 ; Linerunner 49 | 433,277.9318,2020.2458,18.0773,271.3422,43,0 ; Barracks 50 | 433,277.5226,2025.6991,18.0772,270.0389,43,0 ; Barracks 51 | 470,183.5019,1930.6356,17.8497,181.7918,43,0 ; Patriot 52 | 470,270.1317,1830.0344,17.6344,143.8543,43,0 ; Patriot 53 | 470,121.0928,1926.0619,19.0886,306.0423,43,0 ; Patriot 54 | 470,103.0628,1914.8339,18.3727,40.8428,43,0 ; Patriot 55 | 468,140.1879,1893.0078,18.0574,274.7855,6,6 ; Sanchez 56 | 468,136.2435,1892.8341,18.0553,270.1823,46,46 ; Sanchez 57 | 470,134.6078,1849.7643,17.6816,91.4023,43,0 ; Patriot 58 | 433,301.8881,1877.5836,18.0772,359.7517,43,0 ; Barracks 59 | 548,359.2137,1913.9470,19.2744,133.3756,1,1 ; Cargobob 60 | 586,-89.7496,1365.3422,9.7936,285.2903,10,1 ; Wayfarer 61 | 466,-85.4119,1340.1921,10.5036,7.1843,68,76 ; Glendale 62 | 468,9.3781,1377.7744,8.8402,294.2037,6,6 ; Sanchez 63 | 422,833.7327,840.1547,11.8228,24.4117,101,25 ; Bobcat 64 | 543,830.2897,838.6003,11.3841,23.9283,43,8 ; Sadler 65 | 468,827.4531,860.1788,12.0124,109.8286,46,46 ; Sanchez 66 | 422,836.8755,842.0146,12.0941,26.4861,111,31 ; Bobcat 67 | 468,580.7761,864.2721,-43.7228,275.0642,53,53 ; Sanchez 68 | 468,631.1497,894.8027,-43.2460,149.4182,3,3 ; Sanchez 69 | 543,683.0380,839.5352,-43.1469,55.1710,67,8 ; Sadler 70 | 543,576.0908,872.8019,-43.8402,181.5102,8,90 ; Sadler 71 | 554,486.3824,859.6133,-29.9394,199.5197,45,32 ; Yosemite 72 | 468,325.5537,854.3142,20.0746,292.9197,46,46 ; Sanchez 73 | 422,374.6481,870.9434,20.3944,29.1111,67,59 ; Bobcat 74 | 554,368.3893,869.1057,20.4881,353.6958,34,30 ; Yosemite 75 | 468,446.0428,914.1238,-8.4729,4.2421,3,3 ; Sanchez 76 | 408,-82.4225,1133.9078,20.2849,89.4278,26,26 ; Trashmaster 77 | 600,-140.4019,1132.2213,19.4622,166.3078,43,8 ; Picador 78 | 402,-177.5177,1219.8247,19.5739,89.4745,13,13 ; BUffalo 79 | 478,-247.5334,1183.9092,19.7249,89.9570,59,1 ; Walton 80 | 420,-131.1938,1216.3356,19.5211,273.1837,6,1 ; Taxi 81 | 463,-86.8976,1222.4147,19.2826,1.5395,84,84 ; Freeway 82 | 475,-34.2045,1166.1117,19.2470,180.8655,9,39 ; Sabre 83 | 479,-14.0528,1219.9521,19.1505,180.8122,59,36 ; Regina 84 | 508,5.5720,1164.8835,19.9813,180.1032,1,1 ; Journey 85 | 546,70.3248,1218.6127,18.5363,344.9671,78,38 ; Intruder 86 | 554,59.3390,1157.9760,18.7484,180.9685,15,32 ; Yosemite 87 | 600,92.6611,1173.9310,18.3813,90.7633,11,11 ; Picador 88 | 543,-30.8094,1083.9031,19.5579,1.1170,32,8 ; Sadler 89 | 468,-22.2045,1123.5083,19.4094,176.0903,46,46 ; Sanchez 90 | 403,-159.1066,1060.1151,20.6254,0.9132,62,77 ; Linerunner 91 | 599,-224.1936,992.7146,19.7456,270.4413,0,1 ; Police Ranger 92 | 599,-224.8071,998.3138,19.7815,274.7940,0,1 ; Police Ranger 93 | 416,-303.5811,1036.1851,19.7425,270.8693,1,3 ; Ambulance 94 | 416,-305.4525,1028.0148,19.7435,90.5686,1,3 ; Ambulance 95 | 543,-304.5286,1015.9146,19.4150,271.5633,67,8 ; Sadler 96 | 401,-305.0732,1019.7994,19.3733,272.2266,66,66 ; Bravura 97 | 471,-255.7188,1059.0928,19.2251,123.9210,120,114 ; Quad 98 | 542,-353.3448,1160.9194,19.4856,208.7233,24,118 ; Clover 99 | 489,-369.5547,1127.0491,19.9030,88.9193,14,123 ; Rancher 100 | 478,-314.7126,1175.3938,19.7328,359.4184,35,1 ; Walton 101 | 468,-2.8215,943.7739,19.2857,266.8889,3,3 ; Sanchez 102 | 600,13.2779,904.8585,23.3526,188.5502,43,8 ; Picador 103 | 421,-43.5167,892.9460,22.0018,142.2973,71,72 ; Washington 104 | 463,-330.2067,827.7351,13.7821,359.8963,53,53 ; Freeway 105 | 482,-288.9207,833.3483,13.2276,94.7101,32,32 ; Burrito 106 | 525,594.1296,1239.8491,11.5960,43.6646,17,20 ; Tow Truck 107 | 403,582.1791,1215.0780,12.8863,211.4348,39,78 ; Linerunner 108 | 543,575.5624,1209.5081,12.1971,211.3290,76,8 ; Sadler 109 | 554,484.7194,1381.9646,4.7876,235.2010,14,32 ; Yosemite 110 | 543,197.9468,1415.4565,10.4055,91.7165,67,8 ; Sadler 111 | 500,195.0309,1465.7158,10.6965,270.6187,25,119 ; Mesa 112 | 468,253.7791,1424.7091,10.2522,90.4512,53,53 ; Sanchez 113 | 586,650.1385,1702.9343,6.5119,313.6105,10,1 ; Wayfarer 114 | 567,658.5644,1721.3257,6.8587,221.6448,88,64 ; Savanna 115 | 586,651.9063,1700.9137,6.5111,313.4966,13,1 ; Wayfarer 116 | 411,608.4836,1699.7764,6.7211,304.8487,64,1 ; Infernus 117 | 411,612.1846,1694.9164,6.7193,304.3299,80,1 ; Infernus 118 | 403,600.2841,1651.9192,7.5816,243.8007,25,1 ; Linerunner 119 | 435,605.6486,1655.4606,7.5724,64.8614,28,1 ; MODEL 435 120 | 450,635.8098,1225.5219,12.7302,122.5696,62,77 ; MODEL 450 121 | 567,686.5157,1946.5956,5.4101,359.8968,93,64 ; Savanna 122 | 401,706.4429,1947.4441,5.3187,180.8680,52,52 ; Bravura 123 | 463,721.6701,1948.3236,5.0788,359.9206,84,84 ; Freeway 124 | 463,726.7943,1948.3790,5.0792,4.4732,11,11 ; Freeway 125 | 478,755.5939,1967.2079,5.3298,282.8079,20,1 ; Walton 126 | 468,768.3365,2012.5627,5.5681,262.9368,6,6 ; Sanchez 127 | 554,768.9951,2089.9961,6.8011,350.1155,15,32 ; Yosemite 128 | 543,-36.5703,2343.9338,23.9552,88.5315,76,8 ; Sadler 129 | 568,-267.6664,2085.4219,28.2351,247.1185,21,1 ; Bandito 130 | 461,228.3988,2545.1191,16.2295,196.5723,43,1 ; PCJ-600 131 | 487,382.8607,2535.8291,16.7153,213.0074,29,42 ; Maverick 132 | 586,524.6804,2367.6975,29.8994,150.4217,8,1 ; Wayfarer 133 | 586,521.0600,2369.9216,29.8828,149.7267,25,1 ; Wayfarer 134 | 475,528.7834,2366.8169,30.2135,192.6022,17,1 ; Sabre 135 | 473,-483.4696,2180.5840,40.2966,179.7985,56,53 ; Dinghy 136 | 473,-483.3937,2187.7937,40.3838,179.0521,56,15 ; Dinghy 137 | 568,-186.4468,1861.0107,51.1178,240.6369,56,29 ; Bandito 138 | 568,-167.0720,1672.7179,14.8377,174.3531,9,39 ; Bandito 139 | 508,64.9485,968.3702,16.9385,271.0810,1,1 ; Journey 140 | 429,168.0688,1182.8462,14.4375,171.1509,14,14 ; Banshee 141 | 586,180.4965,1170.9260,14.2779,57.3350,10,1 ; Wayfarer 142 | 424,309.9406,1152.2440,8.3663,92.8471,24,53 ; BF Injection 143 | 543,394.3825,1148.7456,8.4119,247.3248,32,8 ; Sadler 144 | 468,408.5380,1169.1869,7.5731,270.9850,6,6 ; Sanchez 145 | 549,418.7980,1164.1499,7.5854,270.0799,72,39 ; Tampa 146 | 605,-130.1386,2244.4834,31.9744,169.1918,0,0 ; Sadler Shit 147 | 524,687.0164,895.0749,-38.5860,78.9521,61,27 ; Cement Truck 148 | 525,596.8069,872.9095,-43.2350,185.6433,18,20 ; Tow Truck 149 | 468,-735.1237,2755.1318,46.8951,266.4757,46,46 ; Sanchez 150 | 478,-767.0835,2758.8774,45.7563,358.3536,66,1 ; Walton 151 | 479,-784.2089,2753.3965,45.4415,269.4912,59,36 ; Regina 152 | 468,-866.5963,2767.2468,45.6691,269.6088,53,53 ; Sanchez 153 | 482,-844.1183,2753.1841,45.9700,271.7795,64,64 ; Burrito 154 | 460,-943.4880,2640.3840,42.2746,216.3266,1,9 ; Skimmer 155 | 599,-1400.0967,2631.6567,55.9455,89.9378,0,1 ; Ranger 156 | 599,-1408.4203,2656.5623,55.8772,359.9003,0,1 ; Police Ranger 157 | 600,-1399.9004,2644.0771,55.3996,88.6644,11,11 ; Picador 158 | 489,-1445.9099,2629.4878,55.9792,68.1607,14,123 ; Rancher 159 | 471,-1447.7238,2645.5598,55.3170,254.0852,74,91 ; Quad 160 | 468,-1474.1904,2702.0869,55.4260,157.1582,53,53 ; Sanchez 161 | 496,-1478.3545,2650.0291,55.5523,0.1259,66,72 ; Blista Compact 162 | 522,-1280.2207,2719.3792,49.6274,119.8673,3,8 ; NRG-500 163 | 443,-1296.2134,2713.6497,50.6959,5.7505,20,1 ; Packer 164 | 403,-1329.1465,2671.8989,50.6692,262.2381,37,1 ; Linerunner 165 | 435,-1307.8534,2705.8735,49.6342,184.4975,3,8 ; Trailer (MODELID 435) 166 | 468,-662.1753,2305.8408,135.7179,90.3149,53,53 ; Sanchez 167 | 531,-778.7887,2420.9666,157.0897,144.8344,36,2 ; Tractor 168 | 554,-809.7922,2406.8044,156.3750,191.0582,15,32 ; Yosemite 169 | -------------------------------------------------------------------------------- /gamemodes/core/player/ui/ui_functions.inc: -------------------------------------------------------------------------------- 1 | static 2 | PlayerText: ui_textdraw[MAX_PLAYERS][14] = {PlayerText: INVALID_TEXT_DRAW, ...}, 3 | ui_status[MAX_PLAYERS]; 4 | 5 | stock UI_CreatePlayerTextDraws(const playerid, bool: status = true) 6 | { 7 | if (!status) { 8 | for (new i = 0; i < 14; ++i) { 9 | PlayerTextDrawDestroy(playerid, PlayerText: ui_textdraw[playerid][i]); 10 | } 11 | 12 | Player_SetUIStatus(playerid, 0); 13 | 14 | return 1; 15 | } 16 | 17 | ui_textdraw[playerid][0] = CreatePlayerTextDraw(playerid, 525.200134, 7.066679, "~y~discord.gg/3vux22UJG5"); 18 | PlayerTextDrawLetterSize(playerid, ui_textdraw[playerid][0], 0.247999, 0.898133); 19 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][0], 1); 20 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][0], -1); 21 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][0], 0); 22 | PlayerTextDrawSetOutline(playerid, ui_textdraw[playerid][0], 1); 23 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][0], 255); 24 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][0], 1); 25 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][0], 1); 26 | 27 | ui_textdraw[playerid][1] = CreatePlayerTextDraw(playerid, 526.599670, 346.893463, "LD_SPAC:white"); 28 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][1], 117.000000, 115.000000); 29 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][1], 1); 30 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][1], 858993663); 31 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][1], 0); 32 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][1], 255); 33 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][1], 4); 34 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][1], 0); 35 | 36 | ui_textdraw[playerid][2] = CreatePlayerTextDraw(playerid, 551.298828, 426.553680, "LD_SPAC:white"); 37 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][2], 68.000000, 14.000000); 38 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][2], 1); 39 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][2], 144); 40 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][2], 0); 41 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][2], 255); 42 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][2], 4); 43 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][2], 0); 44 | 45 | ui_textdraw[playerid][3] = CreatePlayerTextDraw(playerid, 585.700256, 428.933441, "________"); 46 | PlayerTextDrawLetterSize(playerid, ui_textdraw[playerid][3], 0.228799, 1.017599); 47 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][3], 0.000000, 295.000000); 48 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][3], 2); 49 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][3], -1); 50 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][3], 0); 51 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][3], 255); 52 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][3], 2); 53 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][3], 1); 54 | 55 | ui_textdraw[playerid][4] = CreatePlayerTextDraw(playerid, 583.999938, 351.826629, ReturnPlayerName(playerid)); 56 | PlayerTextDrawLetterSize(playerid, ui_textdraw[playerid][4], 0.228799, 1.017599); 57 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][4], 0.000000, 295.000000); 58 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][4], 2); 59 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][4], -1); 60 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][4], 0); 61 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][4], 255); 62 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][4], 2); 63 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][4], 1); 64 | 65 | ui_textdraw[playerid][5] = va_CreatePlayerTextDraw(playerid, 585.899047, 368.006713, "SCORE: ~y~%d", Player_GetScore(playerid)); 66 | PlayerTextDrawLetterSize(playerid, ui_textdraw[playerid][5], 0.228799, 1.017599); 67 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][5], 0.000000, 1024.000000); 68 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][5], 2); 69 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][5], -1); 70 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][5], 0); 71 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][5], 255); 72 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][5], 2); 73 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][5], 1); 74 | 75 | ui_textdraw[playerid][6] = va_CreatePlayerTextDraw(playerid, 585.199218, 383.707672, "DRUGS: ~y~%d", Player_GetDrugs(playerid)); 76 | PlayerTextDrawLetterSize(playerid, ui_textdraw[playerid][6], 0.228799, 1.017599); 77 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][6], 0.000000, 1024.000000); 78 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][6], 2); 79 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][6], -1); 80 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][6], 0); 81 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][6], 255); 82 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][6], 2); 83 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][6], 1); 84 | 85 | ui_textdraw[playerid][7] = CreatePlayerTextDraw(playerid, 551.898498, 381.904785, "LD_SPAC:white"); 86 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][7], 68.000000, 14.000000); 87 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][7], 1); 88 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][7], 144); 89 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][7], 0); 90 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][7], 255); 91 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][7], 4); 92 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][7], 0); 93 | 94 | ui_textdraw[playerid][8] = CreatePlayerTextDraw(playerid, 551.898498, 366.203826, "LD_SPAC:white"); 95 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][8], 68.000000, 14.000000); 96 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][8], 1); 97 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][8], 144); 98 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][8], 0); 99 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][8], 255); 100 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][8], 4); 101 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][8], 0); 102 | 103 | ui_textdraw[playerid][9] = va_CreatePlayerTextDraw(playerid, 585.199218, 399.408630, "SKIN: ~y~%d", GetPlayerSkin(playerid)); 104 | PlayerTextDrawLetterSize(playerid, ui_textdraw[playerid][9], 0.228799, 1.017599); 105 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][9], 0.000000, 1024.000000); 106 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][9], 2); 107 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][9], -1); 108 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][9], 0); 109 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][9], 255); 110 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][9], 2); 111 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][9], 1); 112 | 113 | ui_textdraw[playerid][10] = CreatePlayerTextDraw(playerid, 551.898498, 397.405731, "LD_SPAC:white"); 114 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][10], 68.000000, 14.000000); 115 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][10], 1); 116 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][10], 144); 117 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][10], 0); 118 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][10], 255); 119 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][10], 4); 120 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][10], 0); 121 | 122 | ui_textdraw[playerid][11] = CreatePlayerTextDraw(playerid, 563.898376, 418.212402, "LD_SPAC:white"); 123 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][11], 41.000000, 1.000000); 124 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][11], 1); 125 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][11], 144); 126 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][11], 0); 127 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][11], 255); 128 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][11], 4); 129 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][11], 0); 130 | 131 | ui_textdraw[playerid][12] = CreatePlayerTextDraw(playerid, 527.400329, 347.440124, "LD_SPAC:white"); 132 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][12], 1.000000, 99.000000); 133 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][12], 1); 134 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][12], 144); 135 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][12], 0); 136 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][12], 255); 137 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][12], 4); 138 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][12], 0); 139 | 140 | ui_textdraw[playerid][13] = CreatePlayerTextDraw(playerid, 527.400329, 346.940093, "LD_SPAC:white"); 141 | PlayerTextDrawTextSize(playerid, ui_textdraw[playerid][13], 156.000000, 1.130000); 142 | PlayerTextDrawAlignment(playerid, ui_textdraw[playerid][13], 1); 143 | PlayerTextDrawColor(playerid, ui_textdraw[playerid][13], 144); 144 | PlayerTextDrawSetShadow(playerid, ui_textdraw[playerid][13], 0); 145 | PlayerTextDrawBackgroundColor(playerid, ui_textdraw[playerid][13], 255); 146 | PlayerTextDrawFont(playerid, ui_textdraw[playerid][13], 4); 147 | PlayerTextDrawSetProportional(playerid, ui_textdraw[playerid][13], 0); 148 | 149 | for (new i = 0; i < 14; ++i) { 150 | PlayerTextDrawShow(playerid, PlayerText: ui_textdraw[playerid][i]); 151 | } 152 | 153 | Player_SetUIStatus(playerid, 1); 154 | 155 | return 1; 156 | } 157 | 158 | stock UI_UpdatePlayerTextDraw(const playerid, value) 159 | { 160 | switch (value) { 161 | case 1: { 162 | va_PlayerTextDrawSetString( 163 | playerid, PlayerText: ui_textdraw[playerid][9], 164 | "SKIN: ~y~%d", GetPlayerSkin(playerid) 165 | ); 166 | } 167 | 168 | case 2: { 169 | va_PlayerTextDrawSetString( 170 | playerid, PlayerText: ui_textdraw[playerid][5], 171 | "SCORE: ~y~%d", Player_GetScore(playerid) 172 | ); 173 | } 174 | 175 | case 3: { 176 | va_PlayerTextDrawSetString( 177 | playerid, PlayerText: ui_textdraw[playerid][6], 178 | "DRUGS: ~y~%d", Player_GetDrugs(playerid) 179 | ); 180 | } 181 | } 182 | 183 | return 1; 184 | } 185 | 186 | /** 187 | * Get/Set functions 188 | */ 189 | stock Player_SetUIStatus(const playerid, const int) 190 | { 191 | ui_status[playerid] = int; 192 | 193 | return 1; 194 | } 195 | 196 | stock Player_GetUIStatus(const playerid) 197 | { 198 | return ui_status[playerid]; 199 | } 200 | 201 | /** 202 | * Clock timer 203 | */ 204 | ptask clock_timer[1000](playerid) 205 | { 206 | if (Player_GetUIStatus(playerid)) { 207 | new 208 | Timestamp: ts = Timestamp: Now(), 209 | ts_format[12]; 210 | 211 | TimeFormat(Timestamp: ts, ISO6801_TIME, ts_format, sizeof ts_format); 212 | PlayerTextDrawSetString(playerid, PlayerText: ui_textdraw[playerid][3], ts_format); 213 | } 214 | } -------------------------------------------------------------------------------- /scriptfiles/vehicles/lv_gen.txt: -------------------------------------------------------------------------------- 1 | 409,1944.0602,1346.0486,8.9093,180.2598,0,0 ; Limo 2 | 409,1944.3724,1335.7693,8.9094,178.7635,1,1 ; Limo 3 | 409,2039.6443,1008.3372,10.4717,178.7756,0,0 ; Limo 4 | 409,2108.1514,1440.6624,10.6203,268.1557,0,0 ; Limo 5 | 409,2176.3467,1676.1738,10.6203,179.9265,1,1 ; Limo 6 | 409,2035.1099,1917.6454,11.9762,180.5781,1,1 ; Limo 7 | 587,2075.4963,1490.6589,10.3973,0.9207,10,10 ; Euros 8 | 451,2148.8706,1398.3688,10.5208,359.6848,78,78 ; Turismo 9 | 558,2132.6252,1409.2678,10.4506,180.3099,36,1 ; Uranus 10 | 420,2039.7207,1335.4227,10.4504,178.9215,-1,-1 ; Taxi 11 | 420,2159.9783,1687.9427,10.5331,15.7070,-1,-1 ; Taxi 12 | 420,2217.6040,1838.1331,10.5980,180.3272,-1,-1 ; Taxi 13 | 420,2040.1990,1344.9268,10.4492,178.6027,-1,-1 ; Taxi 14 | 562,2039.9257,1019.8728,10.3308,179.7790,33,33 ; Elegy 15 | 562,1881.7867,964.0424,10.4797,89.3165,33,33 ; 16 | 562,1881.5303,991.9349,10.4789,88.5594,33,33 ; 17 | 562,1881.8263,1035.1031,10.4788,90.5642,33,33 ; 18 | 562,1882.0393,1054.4159,10.4798,90.3892,33,33 ; 19 | 543,1665.9182,900.6049,10.6179,154.1468,66,84 ; 20 | 561,1655.6388,999.3278,10.6343,1.6394,112,112 ; 21 | 516,1677.3665,988.1376,10.6021,359.7391,16,16 ; 22 | 411,1889.2765,1934.0405,13.5119,180.0616,4,4 ; 23 | 422,2791.8364,1997.4441,10.8079,358.2167,8,10 ; 24 | 402,2812.9854,2026.3202,10.5870,181.2861,46,46 ; 25 | 401,2822.0801,2169.3892,10.5975,270.8597,59,59 ; 26 | 402,2582.8459,2271.9075,10.6526,89.7938,58,58 ; 27 | 561,2764.5786,1281.6991,10.4819,91.0993,72,72 ; 28 | 405,2782.1956,1295.4828,10.6250,179.4644,65,65 ; 29 | 414,2624.3726,1104.1190,10.8045,269.3916,101,101 ; 30 | 463,2437.9824,2060.0774,10.3605,321.5250,66,66 ; 31 | 463,2439.4592,2059.3762,10.3573,317.0827,125,125 ; 32 | 463,2436.2813,2060.5950,10.3597,324.4647,70,70 ; 33 | 533,2444.2742,1990.9354,10.5294,359.2699,83,83 ; 34 | 480,2458.2346,1992.2141,10.5043,180.6471,92,92 ; 35 | 482,2170.9219,1981.6818,10.8809,90.0917,52,52 ; 36 | 402,2231.9128,1277.3851,10.5745,1.2022,22,22 ; 37 | 451,2182.8376,1287.8752,10.4708,180.3702,123,1 ; 38 | 415,2171.9434,1118.7880,12.3942,333.4859,36,1 ; 39 | 429,2141.7615,1022.6919,10.5000,90.9348,13,13 ; 40 | 436,2150.9563,987.4216,10.5865,180.8703,87,1 ; 41 | 439,2133.0083,1006.8494,10.7160,89.0048,43,21 ; 42 | 561,2163.0320,1006.4872,10.6988,270.5458,101,1 ; 43 | 461,2132.7266,899.1528,10.4046,270.7793,61,1 ; 44 | 462,2132.7463,906.0122,10.4196,268.0389,2,1 ; 45 | 463,2475.0217,992.2781,10.3602,206.1178,7,7 ; 46 | 474,2197.8374,936.0216,10.5829,185.2772,105,1 ; 47 | 442,2485.1379,936.2085,10.6624,0.1062,25,109 ; 48 | 587,2460.3796,918.7192,10.5355,90.4611,53,1 ; 49 | 535,2455.4519,1275.5571,10.5843,270.0745,28,1 ; 50 | 603,2389.2190,1658.2742,10.4453,358.7758,60,1 ; 51 | 560,2039.5767,1560.1608,10.3773,179.5952,9,39 ; 52 | 545,2075.7207,1482.4139,10.4829,359.4229,44,96 ; 53 | 579,2168.6729,1412.4142,10.7456,179.3802,53,53 ; 54 | 581,2353.1150,1405.4800,10.4148,272.0892,66,1 ; 55 | 477,2352.6646,1436.9703,10.5496,269.3466,75,1 ; 56 | 603,2300.3599,1466.0364,10.4462,90.1237,53,53 ; 57 | 558,2300.8755,1458.6439,10.4778,90.3777,92,1 ; 58 | 480,2292.5034,1454.7678,13.8155,270.6444,68,1 ; 59 | 558,2285.8660,1518.0089,16.9278,0.2348,77,1 ; 60 | 521,2351.9590,1487.6743,17.7851,268.5520,92,3 ; 61 | 516,2322.5889,1423.0115,22.1984,89.6001,122,1 ; 62 | 579,2352.2910,1472.8545,32.0779,268.4590,28,119 ; 63 | 418,2332.3298,1387.9061,36.5387,179.0473,64,64 ; 64 | 477,2293.1245,1455.2216,39.5112,270.0951,22,1 ; 65 | 461,2279.1494,1387.7222,42.4054,181.3635,61,1 ; 66 | 451,2351.6416,1415.7268,42.5269,269.3744,123,123 ; 67 | 448,2631.0559,1845.8617,10.4164,264.5009,3,6 ; 68 | 561,2632.0137,1858.2656,10.6989,270.9765,113,1 ; 69 | 477,2602.6128,1846.6437,10.5729,90.5212,121,1 ; 70 | 479,2631.2253,1794.8120,10.6166,270.0366,60,35 ; 71 | 581,2600.0813,1691.2465,10.4108,89.1784,36,1 ; 72 | 496,2631.7998,1681.1658,10.4784,271.2010,31,31 ; 73 | 402,2214.7441,1512.2836,10.6519,269.6815,39,39 ; 74 | 410,2038.7775,1588.8407,10.3258,179.6040,10,1 ; 75 | 418,1742.2191,1906.1680,10.9136,90.2075,117,227 ; 76 | 420,1731.2715,1974.9578,10.5994,273.0416,6,1 ; 77 | 437,1736.9500,1878.4280,10.9183,269.9015,47,74 ; 78 | 429,1702.7047,1804.3766,10.5000,359.9712,1,2 ; 79 | 421,1602.3925,1839.9454,10.7028,178.4762,36,1 ; 80 | 402,1471.5049,1928.6152,11.1104,91.6437,22,22 ; 81 | 482,1450.1931,2017.9884,10.9038,90.8726,91,1 ; 82 | 426,1453.9977,1957.7761,10.9630,179.0628,62,62 ; 83 | 436,1368.7289,2020.8182,11.2117,88.9614,92,1 ; 84 | 483,1117.3785,2112.5374,10.8094,0.4216,1,31 ; 85 | 498,1049.3367,2135.9788,10.8916,87.9624,20,117 ; 86 | 530,980.7039,2060.1577,10.5856,159.6553,114,1 ; 87 | 542,1023.1682,2019.7904,10.9840,272.4500,31,93 ; 88 | 554,991.6675,1886.8708,11.3290,270.6092,15,32 ; 89 | 558,984.5507,1719.9063,8.2853,270.4343,24,1 ; 90 | 522,949.3912,1662.1198,8.4159,269.5886,6,25 ; 91 | 541,1113.0669,1726.9880,10.4451,179.9989,22,1 ; 92 | 521,1024.1970,1724.4652,10.3911,93.4605,92,3 ; 93 | 506,1041.7158,1357.1357,10.5246,85.3610,7,7 ; 94 | 500,1042.7311,1346.4717,10.9230,81.1408,28,119 ; 95 | 496,979.9923,1080.0503,10.5293,91.2658,53,56 ; 96 | 482,979.7035,1104.7273,10.9448,90.7615,71,71 ; 97 | 414,1425.6675,1039.2936,10.4327,90.1854,102,65 ; 98 | 414,1451.7877,976.0687,10.4987,0.3869,67,1 ; 99 | 410,2004.4067,735.3056,11.0296,180.8574,9,1 ; 100 | 418,2168.8989,695.7342,11.4583,182.7091,117,227 ; 101 | 429,2362.0627,731.0701,11.0945,0.1727,1,3 ; 102 | 439,2362.4011,648.3926,11.2058,358.5358,43,21 ; 103 | 460,2358.0769,519.0576,1.7602,270.6638,17,23 ; 104 | 493,2292.9006,518.9941,-0.2127,269.6579,36,13 ; 105 | 496,2086.2354,658.9543,10.8917,180.3410,66,72 ; 106 | 506,1916.4235,698.4152,10.5369,359.5925,52,52 ; 107 | 516,1852.8835,698.9276,11.0089,92.2719,119,1 ; 108 | 521,1413.7998,772.0428,10.3920,92.6899,87,118 ; 109 | 533,1484.0516,787.6008,10.5294,359.4022,74,1 ; 110 | 545,1535.0472,787.3861,10.6314,0.8390,44,96 ; 111 | 578,1645.1521,740.4365,11.4446,357.8964,1,1 ; 112 | 484,1628.1273,571.8071,0.1587,269.3263,66,36 ; 113 | 477,1544.6929,2132.2334,11.1514,269.0969,101,1 ; 114 | 480,1613.6011,2207.0527,10.5919,271.9736,4,4 ; 115 | 479,1519.2012,2291.0112,10.6331,0.9600,49,23 ; 116 | 419,1340.8719,2246.3386,10.6215,92.0409,21,1 ; 117 | 462,1431.4543,2237.3440,10.6230,267.7669,3,1 ; 118 | 401,1508.7909,2091.1387,10.6953,271.2132,39,39 ; 119 | 439,1068.4608,2185.2996,16.6151,91.1135,25,78 ; 120 | 426,1126.5607,2323.6711,16.4615,90.0850,7,7 ; 121 | 421,1135.4622,2253.0496,16.6012,270.1440,30,1 ; 122 | 419,1115.4999,2310.4092,10.6371,267.7344,33,75 ; 123 | 561,990.2859,2307.3047,11.1294,89.9585,101,101 ; 124 | 400,1108.1198,1903.8445,10.9125,269.1945,113,1 ; 125 | 403,1059.6801,1916.6881,11.4272,0.6038,101,1 ; 126 | 402,2039.0864,1160.6543,10.5033,179.5146,22,22 ; 127 | 411,1844.4286,1209.7379,10.5596,91.1955,116,1 ; 128 | 522,1843.6981,1255.3601,10.3902,89.6382,3,8 ; 129 | 439,1866.8518,1179.2153,10.7348,0.1707,37,78 ; 130 | 587,1552.6906,1025.6267,10.5356,267.4064,66,1 ; 131 | 543,1332.6006,1159.0437,10.6290,270.0148,8,90 ; 132 | 545,1281.1134,2545.5876,10.6315,90.4074,30,1 ; 133 | 420,1433.6541,2608.7395,10.6772,89.2627,6,76 ; 134 | 508,1374.0249,2644.2893,11.1956,179.4467,1,1 ; 135 | 437,1352.3561,2647.1230,10.9443,180.4328,105,20 ; 136 | 451,1319.5608,2697.6628,10.5268,0.7027,61,61 ; 137 | 437,1296.4653,2646.8472,10.9536,1.1869,54,7 ; 138 | 506,1464.4520,2773.0771,10.3764,181.1781,3,3 ; 139 | 546,1475.3710,2839.5518,10.6444,181.0346,11,11 ; 140 | 541,1455.9503,2878.8362,10.4449,0.1368,51,1 ; 141 | 545,1529.5756,2867.6501,10.6314,268.0443,39,1 ; 142 | 421,1529.6301,2835.7375,10.6409,269.9234,62,62 ; 143 | 457,1422.7972,2830.8291,10.4472,91.4126,13,1 ; 144 | 457,1369.0237,2784.1589,10.4470,94.3731,34,1 ; 145 | 457,1423.0651,2835.1399,10.4471,92.8884,58,1 ; 146 | 572,1420.3008,2802.6375,10.4002,179.9108,30,1 ; 147 | 561,1618.5776,2834.7361,10.6343,359.5821,25,78 ; 148 | 581,1737.6124,2780.0356,10.6454,100.8438,54,1 ; 149 | 579,1673.0441,2696.7334,10.7646,2.8550,37,37 ; 150 | 522,1927.4393,2729.9841,10.3924,182.5768,6,25 ; 151 | 562,1998.1213,2758.4885,10.4822,0.3794,116,1 ; 152 | 542,2260.1184,2737.8931,10.5638,271.1407,24,118 ; 153 | 498,2311.9609,2763.3215,10.8880,272.1044,13,120 ; 154 | 421,2143.1143,2807.1777,10.5765,92.5022,30,72 ; 155 | 480,2167.2463,2750.6987,10.5948,271.0785,12,12 ; 156 | 419,2349.0527,2578.4849,10.6135,0.1656,2,39 ; 157 | 448,2363.0669,2531.9736,10.4173,267.6790,3,6 ; 158 | 541,2417.8662,2529.0085,10.4450,178.9855,36,8 ; 159 | 415,2455.1401,2531.6060,21.6458,179.4472,0,1 ; 160 | 418,2530.6252,2535.9524,21.9679,268.5749,81,81 ; 161 | 436,2506.2002,2515.6663,21.6411,88.9685,11,1 ; 162 | 429,2537.9023,2397.2529,3.8906,0.5158,10,10 ; 163 | 474,2511.0984,2394.3940,10.5828,269.3660,97,1 ; 164 | 477,2501.1006,2131.0410,10.4987,269.4453,92,1 ; 165 | 518,2589.0198,2166.3142,10.4839,1.1502,17,1 ; 166 | 533,2620.0979,2086.9114,10.5281,180.6504,79,1 ; 167 | 535,2567.6167,2059.1948,10.5846,0.8758,28,1 ; 168 | 541,2075.6462,1312.3136,10.2966,359.4287,2,1 ; 169 | 546,2183.6970,1878.7114,10.5448,359.9918,78,38 ; 170 | 410,2192.2410,1856.6902,10.6209,181.3348,75,1 ; 171 | 480,2203.4363,1787.9412,10.5034,179.6947,60,1 ; 172 | 541,2181.5310,1821.7205,10.4451,0.6193,51,1 ; 173 | 533,2129.1848,1810.2720,10.3810,332.9410,74,1 ; 174 | 477,2118.6621,1892.0770,10.3763,181.2668,6,6 ; 175 | 410,2118.6233,1910.1948,10.7688,180.4238,40,110 ; 176 | 496,2102.4214,2066.0054,10.5366,270.8547,66,72 ; 177 | 477,2103.5483,2089.0322,10.5741,269.2954,101,1 ; 178 | 516,2028.6848,2155.9724,10.6248,264.3126,2,39 ; 179 | 522,1995.4116,2185.7837,10.3813,183.3891,36,105 ; 180 | 508,2010.5963,2137.1594,11.1969,270.0610,1,1 ; 181 | 414,2005.9337,2059.6008,10.9941,181.8287,110,93 ; 182 | 414,2060.3394,2237.0127,10.5447,89.3482,121,93 ; 183 | 448,2077.0784,2226.7166,10.4142,3.1701,3,6 ; 184 | 420,2107.7361,2206.7979,10.8238,178.2615,6,76 ; 185 | 516,2094.5530,2206.6326,10.5904,178.8517,119,45 ; 186 | 477,2156.2788,2188.8767,10.3516,358.4281,14,14 ; 187 | 415,2339.1323,2114.0562,10.4512,177.1576,20,1 ; 188 | 409,2361.3320,2170.0618,10.5251,359.3094,1,1 ; 189 | 461,2380.3523,2018.2645,10.3403,272.1906,13,1 ; 190 | 587,2338.7590,1943.9525,10.4102,182.1740,40,1 ; 191 | 482,2221.3479,1944.5293,9.7951,87.2554,37,37 ; 192 | 479,2272.5029,1953.1041,9.4899,179.0292,7,7 ; 193 | 541,2244.7246,1997.9194,15.4282,0.8475,12,32 ; 194 | 541,2222.4797,1936.1879,25.9241,88.7210,68,8 ; 195 | 415,2294.6262,1952.2435,26.0251,268.4258,7,7 ; 196 | 436,2246.8062,1939.5153,31.5463,179.6696,33,0 ; 197 | 461,2283.6470,1975.2380,28.4011,180.9682,62,62 ; 198 | 482,2217.0320,2048.4802,10.9456,89.9095,85,85 ; 199 | 479,2296.6074,2046.1454,10.6169,271.5167,49,23 ; 200 | 461,2259.0544,2065.4905,10.3873,2.1430,61,1 ; 201 | 477,2272.6033,2326.2434,10.5272,88.5973,61,61 ; 202 | 401,2464.2083,2236.9705,10.5507,88.6525,39,39 ; 203 | 428,2242.5024,2231.3748,10.9010,270.8860,4,75 ; 204 | 516,2007.5071,2263.2092,17.6074,2.4052,13,76 ; 205 | 522,2014.7938,2244.9580,23.4848,269.4012,8,82 ; 206 | 436,1907.2633,2290.8406,11.0000,180.4904,84,1 ; 207 | 480,1705.0334,2242.9836,10.5941,179.6409,12,12 ; 208 | 436,1691.1774,2131.1426,11.0800,91.2325,87,1 ; 209 | 414,1842.6188,2090.4556,10.8907,176.3065,36,36 ; 210 | 436,1908.1819,2078.6570,10.5695,270.3529,53,1 ; 211 | 516,1912.8295,2158.5737,10.6165,271.8315,47,47 ; 212 | 525,1963.4600,2171.0208,10.6913,257.1353,1,1 ; 213 | 496,1993.2476,2058.3521,10.5367,357.2019,53,56 ; 214 | 535,2075.9631,1677.7250,10.4351,0.1849,118,1 ; 215 | 418,2452.3093,1357.8304,10.9134,359.7694,61,61 ; 216 | 415,2447.5730,1327.1135,10.5908,179.6456,0,1 ; 217 | 414,2612.0542,1429.5336,10.9140,183.7790,24,1 ; 218 | 420,2488.5161,1534.1761,10.5240,231.4538,6,1 ; 219 | 409,2481.3877,1544.0386,10.5123,202.9677,1,1 ; 220 | 579,2498.4194,1676.3019,10.5524,1.3521,101,101 ; 221 | 474,2463.0220,1676.7267,10.5831,359.3129,97,1 ; 222 | 518,2788.6519,2431.3220,10.4912,314.8943,2,39 ; 223 | 516,2815.1465,2406.8418,10.6541,315.8335,119,1 ; 224 | 506,2833.4592,2309.8750,10.5247,179.7437,76,76 ; 225 | 516,2891.3560,2379.1252,10.6230,270.9466,41,29 ; 226 | 417,2093.3755,2415.1582,74.7678,94.3180,2,29 ; 227 | 402,2095.8645,2410.8191,45.0503,267.7614,110,110 ; 228 | 516,2104.4490,2396.0525,40.6341,271.3880,119,62 ; 229 | 402,2095.8438,2398.7417,27.8898,268.8989,99,81 ; 230 | 477,2086.5784,2416.6394,23.4231,90.8221,3,3 ; 231 | 516,2103.9829,2419.3713,14.8978,270.8129,24,55 ; 232 | 561,2065.8535,2479.7612,10.6989,359.7305,4,1 ; 233 | 414,2130.8403,2514.2134,10.9140,193.6682,24,1 ; 234 | 410,1900.4618,2437.4229,10.4740,92.5165,45,1 ; 235 | 408,1730.6010,2336.2703,11.3685,2.6346,26,26 ; 236 | 486,2707.1851,822.1658,10.7179,2.5507,1,1 ; 237 | 486,2707.0010,908.6336,10.8980,176.3525,1,1 ; 238 | 482,2697.6646,885.6911,10.3113,271.4880,71,71 ; 239 | 554,2701.6409,828.3740,10.1758,359.8369,15,32 ; 240 | 524,2635.2407,848.0072,6.7986,311.1720,61,27 ; 241 | 524,2630.1240,851.0532,6.9725,315.8478,65,31 ; 242 | 530,2687.1553,909.9475,10.4912,199.4376,111,1 ; 243 | 530,2683.3469,908.7888,10.4567,197.7386,112,1 ; 244 | 455,2685.8137,864.3542,10.3588,358.5818,84,58 ; 245 | 560,2705.9065,788.8524,10.6037,359.2399,33,0 ; 246 | 403,2873.0920,920.3176,11.3572,94.3495,28,1 ; 247 | 403,2873.2283,913.3622,11.7676,85.7952,24,77 ; 248 | 435,2855.4207,896.0324,11.1716,359.7548,24,77 ; trailer 249 | 435,2818.0835,897.6704,11.3012,359.2285,24,77 ; trailer 250 | 435,2827.5466,897.5560,11.2943,0.9414,24,77 ; trailer 251 | 530,2884.7034,941.7674,10.5161,90.4367,112,1 ; 252 | 530,2833.1492,996.5211,10.5144,173.6816,13,1 ; 253 | 482,2805.1533,968.8243,10.8708,178.9079,48,48 ; 254 | 560,2817.4512,941.4572,10.4556,0.9883,9,39 ; 255 | 578,2840.3525,994.4778,11.3743,176.8262,1,1 ; 256 | -------------------------------------------------------------------------------- /gamemodes/core/player/ui/speedo/speedo_functions.inc: -------------------------------------------------------------------------------- 1 | static 2 | PlayerText: ui_speedometer[MAX_PLAYERS][17] = {PlayerText: INVALID_TEXT_DRAW, ...}; 3 | 4 | stock UI_CreatePlayerSpeedometer(const playerid, bool: status = true) 5 | { 6 | if (!status) { 7 | for (new i = 0; i < 17; ++i) { 8 | PlayerTextDrawDestroy(playerid, PlayerText: ui_speedometer[playerid][i]); 9 | } 10 | 11 | return 1; 12 | } 13 | 14 | ui_speedometer[playerid][0] = CreatePlayerTextDraw(playerid, 243.345947, 374.011077, "LD_SPAC:white"); 15 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][0], 154.000000, 109.000000); 16 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][0], 1); 17 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][0], -308521985); 18 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][0], 0); 19 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][0], 255); 20 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][0], 4); 21 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][0], 0); 22 | 23 | ui_speedometer[playerid][1] = CreatePlayerTextDraw(playerid, 244.925323, 374.344207, "LD_SPAC:white"); 24 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][1], 152.200988, 109.000000); 25 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][1], 1); 26 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][1], 255); 27 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][1], 0); 28 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][1], 255); 29 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][1], 4); 30 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][1], 0); 31 | 32 | ui_speedometer[playerid][2] = CreatePlayerTextDraw(playerid, 318.499084, 375.366607, vehicle_names[GetVehicleModel(GetPlayerVehicleID(playerid)) - 400]); 33 | PlayerTextDrawLetterSize(playerid, ui_speedometer[playerid][2], 0.226873, 0.975832); 34 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][2], 2); 35 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][2], -1); 36 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][2], 0); 37 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][2], 255); 38 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][2], 2); 39 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][2], 1); 40 | 41 | ui_speedometer[playerid][3] = CreatePlayerTextDraw(playerid, 246.125000, 385.366424, "LD_BEAT:CHIT"); 42 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][3], 42.000000, 49.000000); 43 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][3], 1); 44 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][3], -308521985); 45 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][3], 0); 46 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][3], 255); 47 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][3], 4); 48 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][3], 0); 49 | 50 | ui_speedometer[playerid][4] = CreatePlayerTextDraw(playerid, 325.599975, 365.377807, ""); 51 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][4], 82.000000, 101.000000); 52 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][4], 1); 53 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][4], -1); 54 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][4], 0); 55 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][4], 5); 56 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][4], 0x00000000); 57 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][4], 0); 58 | PlayerTextDrawSetPreviewModel(playerid, ui_speedometer[playerid][4], GetVehicleModel(GetPlayerVehicleID(playerid))); 59 | PlayerTextDrawSetPreviewRot(playerid, ui_speedometer[playerid][4], -10.000000, 0.000000, -25.000000, 1.000000); 60 | PlayerTextDrawSetPreviewVehCol(playerid, ui_speedometer[playerid][4], 1, 1); 61 | 62 | ui_speedometer[playerid][5] = CreatePlayerTextDraw(playerid, 285.524505, 385.277679, "LD_BEAT:CHIT"); 63 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][5], 42.000000, 49.000000); 64 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][5], 1); 65 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][5], -308521985); 66 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][5], 0); 67 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][5], 255); 68 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][5], 4); 69 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][5], 0); 70 | 71 | ui_speedometer[playerid][6] = CreatePlayerTextDraw(playerid, 284.799957, 389.910980, "LD_SPAC:white"); 72 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][6], 1.000000, 44.000000); 73 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][6], 1); 74 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][6], -308521985); 75 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][6], 0); 76 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][6], 255); 77 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][6], 4); 78 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][6], 0); 79 | 80 | ui_speedometer[playerid][7] = CreatePlayerTextDraw(playerid, 279.275024, 389.905670, "LD_SPAC:white"); 81 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][7], 6.579897, 0.899999); 82 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][7], 1); 83 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][7], -308521985); 84 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][7], 0); 85 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][7], 255); 86 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][7], 4); 87 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][7], 0); 88 | 89 | ui_speedometer[playerid][8] = CreatePlayerTextDraw(playerid, 285.450927, 432.983612, "LD_SPAC:white"); 90 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][8], 6.579897, 0.899999); 91 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][8], 1); 92 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][8], -308521985); 93 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][8], 0); 94 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][8], 255); 95 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][8], 4); 96 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][8], 0); 97 | 98 | ui_speedometer[playerid][9] = CreatePlayerTextDraw(playerid, 267.000000, 428.372436, "SPEED"); 99 | PlayerTextDrawLetterSize(playerid, ui_speedometer[playerid][9], 0.143123, 0.783333); 100 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][9], 2); 101 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][9], -1); 102 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][9], 0); 103 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][9], 255); 104 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][9], 2); 105 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][9], 1); 106 | 107 | ui_speedometer[playerid][10] = CreatePlayerTextDraw(playerid, 306.292053, 428.050231, "HEALTH"); 108 | PlayerTextDrawLetterSize(playerid, ui_speedometer[playerid][10], 0.138124, 0.765833); 109 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][10], 2); 110 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][10], -1); 111 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][10], 0); 112 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][10], 255); 113 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][10], 2); 114 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][10], 1); 115 | 116 | ui_speedometer[playerid][11] = CreatePlayerTextDraw(playerid, 278.849822, 432.939300, "LD_SPAC:white"); 117 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][11], 6.579897, 0.899999); 118 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][11], 1); 119 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][11], -308521985); 120 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][11], 0); 121 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][11], 255); 122 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][11], 4); 123 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][11], 0); 124 | 125 | ui_speedometer[playerid][12] = CreatePlayerTextDraw(playerid, 285.124664, 390.044555, "LD_SPAC:white"); 126 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][12], 6.579897, 0.899999); 127 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][12], 1); 128 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][12], -308521985); 129 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][12], 0); 130 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][12], 255); 131 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][12], 4); 132 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][12], 0); 133 | 134 | ui_speedometer[playerid][13] = CreatePlayerTextDraw(playerid, 247.121917, 385.966461, "LD_BEAT:CHIT"); 135 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][13], 40.000000, 48.000000); 136 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][13], 1); 137 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][13], 255); 138 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][13], 0); 139 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][13], 255); 140 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][13], 4); 141 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][13], 0); 142 | 143 | ui_speedometer[playerid][14] = CreatePlayerTextDraw(playerid, 286.497863, 385.649993, "LD_BEAT:CHIT"); 144 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][14], 40.000000, 48.000000); 145 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][14], 1); 146 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][14], 255); 147 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][14], 0); 148 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][14], 255); 149 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][14], 4); 150 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][14], 0); 151 | 152 | ui_speedometer[playerid][15] = CreatePlayerTextDraw(playerid, 266.700134, 402.022399, "220"); 153 | PlayerTextDrawLetterSize(playerid, ui_speedometer[playerid][15], 0.267498, 1.384166); 154 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][15], 0.000000, 0.069999); 155 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][15], 2); 156 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][15], -1); 157 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][15], 0); 158 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][15], 255); 159 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][15], 3); 160 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][15], 1); 161 | 162 | ui_speedometer[playerid][16] = CreatePlayerTextDraw(playerid, 306.490905, 402.511169, "1000"); 163 | PlayerTextDrawLetterSize(playerid, ui_speedometer[playerid][16], 0.267498, 1.384166); 164 | PlayerTextDrawTextSize(playerid, ui_speedometer[playerid][16], 0.000000, 0.069999); 165 | PlayerTextDrawAlignment(playerid, ui_speedometer[playerid][16], 2); 166 | PlayerTextDrawColor(playerid, ui_speedometer[playerid][16], -1); 167 | PlayerTextDrawSetShadow(playerid, ui_speedometer[playerid][16], 0); 168 | PlayerTextDrawBackgroundColor(playerid, ui_speedometer[playerid][16], 255); 169 | PlayerTextDrawFont(playerid, ui_speedometer[playerid][16], 3); 170 | PlayerTextDrawSetProportional(playerid, ui_speedometer[playerid][16], 1); 171 | 172 | for (new i = 0; i < 17; ++i) { 173 | PlayerTextDrawShow(playerid, PlayerText: ui_speedometer[playerid][i]); 174 | } 175 | 176 | return 1; 177 | } 178 | 179 | stock GetVehicleSpeed(vehicleid) 180 | { 181 | static 182 | pos_y, 183 | pos_x, 184 | pos_z, 185 | Float: veh_speed; 186 | 187 | GetVehicleVelocity(vehicleid, Float: pos_x, Float: pos_y, Float: pos_z); 188 | veh_speed = (floatsqroot((Float: pos_x * Float: pos_x) + (Float: pos_y * Float: pos_y) + (Float: pos_z * Float: pos_z)) * 200); 189 | 190 | return floatround(Float: veh_speed, floatround_round); 191 | } 192 | 193 | stock GetVehicleHP(vehicleid) 194 | { 195 | static 196 | health; 197 | 198 | GetVehicleHealth(vehicleid, Float: health); 199 | 200 | return _:health; 201 | } 202 | 203 | /** 204 | * Vehicle speed and health(damage) timer 205 | */ 206 | ptask update_vehicle[1](playerid) 207 | { 208 | if (IsPlayerInAnyVehicle(playerid)) { 209 | va_PlayerTextDrawSetString( 210 | playerid, PlayerText: ui_speedometer[playerid][15], 211 | "%d", GetVehicleSpeed(GetPlayerVehicleID(playerid)) 212 | ); 213 | 214 | va_PlayerTextDrawSetString( 215 | playerid, PlayerText: ui_speedometer[playerid][16], 216 | "%.0f", GetVehicleHP(GetPlayerVehicleID(playerid)) 217 | ); 218 | } 219 | } -------------------------------------------------------------------------------- /scriptfiles/vehicles/sf_gen.txt: -------------------------------------------------------------------------------- 1 | 415,-2089.7454,-85.3183,34.9356,0.0900,36,1 ; 2 | 415,-2076.7393,-84.4259,34.8911,357.8584,116,1 ; 3 | 504,-2091.6350,-106.7603,35.1125,179.5832,45,29 ; 4 | 560,-2396.2222,-594.7454,132.3533,123.1677,33,0 ; 5 | 411,-2414.5781,-586.8558,132.3755,215.3865,112,1 ; 6 | 482,-2527.9175,-602.6952,132.6175,179.0378,41,20 ; 7 | 451,-2517.0481,-601.8521,132.2690,179.6375,36,36 ; 8 | 522,-2494.2900,-601.8505,132.1326,178.4421,3,8 ; 9 | 522,-2622.9067,-509.6570,70.9034,284.9871,3,8 ; 10 | 405,-2747.2739,-306.4048,6.9132,50.7011,24,1 ; 11 | 505,-2774.2708,-281.9049,6.7476,178.6849,37,0 ; 12 | 409,-2738.0176,-322.8980,6.8391,313.5169,1,1 ; 13 | 457,-2657.9009,-290.8440,7.1044,313.4402,25,25 ; 14 | 457,-2652.5388,-295.5096,7.1101,312.4090,86,86 ; 15 | 457,-2644.5061,-290.4049,7.1283,139.4791,8,8 ; 16 | 457,-2650.2507,-284.7023,7.1297,137.3287,2,1 ; 17 | 475,-2718.7566,-181.6171,3.9922,269.6131,68,8 ; 18 | 411,-2692.3340,-83.6105,4.7104,90.7628,1,1 ; 19 | 560,-2682.6699,-22.7128,4.3281,178.6174,1,31 ; 20 | 560,-2627.3579,-34.8250,4.0417,181.9431,41,29 ; 21 | 482,-2729.5671,76.7876,4.4511,87.5421,32,32 ; 22 | 579,-2484.3000,5.7674,25.5544,91.3108,42,42 ; 23 | 567,-2528.8882,-5.5797,25.4875,271.5341,90,96 ; 24 | 429,-2592.7732,-110.8420,3.9306,89.9971,2,1 ; 25 | 415,-2615.9045,-178.3203,4.1076,269.3111,40,1 ; 26 | 480,-2352.2312,-124.4615,34.9708,179.3509,17,1 ; 27 | 448,-2319.5144,-150.8684,35.1509,176.9124,3,6 ; 28 | 535,-2099.2341,-36.4293,35.1021,357.3710,77,26 ; 29 | 535,-2021.4100,-47.6897,35.1866,184.1009,69,1 ; 30 | 535,-2085.3667,61.6716,34.2269,88.7158,28,1 ; 31 | 567,-2357.8167,-43.2394,35.1865,90.6814,97,96 ; 32 | 403,-1855.5707,-176.4486,9.9250,270.1853,25,1 ; 33 | 492,-1821.1146,-161.7525,9.1874,164.9686,28,56 ; 34 | 530,-1694.7194,8.6605,3.3137,348.2751,111,1 ; 35 | 530,-1712.0934,10.8106,3.3879,303.1499,112,1 ; 36 | 530,-1716.6062,19.1024,3.3437,273.4997,119,1 ; 37 | 530,-1700.6174,6.2953,3.3148,352.1077,114,1 ; 38 | 522,-1697.8990,63.3702,3.1263,301.0493,39,106 ; 39 | 522,-1682.4491,41.4261,3.1198,338.2361,51,118 ; 40 | 522,-1694.0885,48.6863,3.1207,317.3058,3,3 ; 41 | 493,-1760.9098,-193.8202,-0.1219,266.3580,36,13 ; 42 | 426,-1669.5262,-33.8696,3.3108,314.1520,42,42 ; 43 | 403,-1837.5128,-15.2423,15.6987,271.1784,54,1 ; 44 | 426,-1839.7010,-21.5651,14.8602,265.8797,42,42 ; 45 | 421,-1885.3856,-161.3161,11.6546,355.7335,71,72 ; 46 | 482,-1861.0438,-140.4725,12.0201,87.6606,66,66 ; 47 | 567,-2124.6743,-242.8083,35.1864,18.3731,99,81 ; 48 | 545,-2485.9868,97.9314,34.9680,268.0125,81,81 ; 49 | 533,-2484.7358,65.7313,25.3992,358.7399,79,1 ; 50 | 462,-2694.2021,68.7381,3.9321,85.6921,2,1 ; 51 | 424,-2941.3359,-794.7429,6.8570,340.8897,2,2 ; 52 | 424,-2938.8164,-818.2305,7.0451,13.5219,2,2 ; 53 | 473,-2987.2434,-861.8030,-0.8947,144.9324,56,15 ; 54 | 473,-2967.3806,-684.3901,0.0677,351.0859,56,15 ; 55 | 473,-2954.7388,-498.1349,0.0155,5.6709,56,15 ; 56 | 493,-2947.7612,-364.1319,-0.5123,78.4238,36,13 ; 57 | 461,-2068.5420,-503.7956,35.0035,182.6852,46,46 ; 58 | 483,-1906.4901,-611.7231,24.5863,319.5491,17,0 ; 59 | 411,-2148.7424,-922.7524,31.7505,267.8838,106,1 ; 60 | 411,-2125.3806,-885.7675,31.7505,270.2341,104,1 ; 61 | 482,-1871.7642,-874.4785,32.1329,90.1095,118,118 ; 62 | 411,-1872.5656,-957.2282,31.7505,88.9793,80,1 ; 63 | 400,-1821.8348,-886.4156,42.0592,175.1724,123,1 ; 64 | 512,-1431.6896,-954.0375,201.2352,273.5343,15,123 ; 65 | 512,-1432.9872,-942.3373,201.3756,274.4437,32,112 ; 66 | 461,-2205.1782,-310.5668,35.2394,330.2716,46,46 ; 67 | 482,-2216.4529,-85.7872,35.4346,1.2615,64,64 ; 68 | 498,-2115.4626,-3.3854,35.3872,269.2903,13,120 ; 69 | 437,-2092.6289,-381.4249,35.4662,89.8969,79,7 ; 70 | 437,-2201.6951,-406.7657,35.4694,228.5155,79,7 ; 71 | 437,-2047.2311,-528.4994,35.4647,286.8040,79,7 ; 72 | 455,-1578.2035,97.3175,4.1610,135.9403,37,1 ; 73 | 443,-1747.0641,-164.1042,4.1860,39.5812,20,1 ; 74 | 545,-2267.1362,85.5752,34.9679,269.1610,67,67 ; 75 | 496,-2264.8977,200.3980,34.8805,89.9701,66,72 ; 76 | 536,-2216.8618,113.6911,35.0595,88.9417,12,1 ; 77 | 409,-2414.7739,331.6805,34.7672,331.1144,1,1 ; 78 | 405,-2452.8604,138.2975,34.8354,46.6420,24,1 ; 79 | 461,-2523.0012,338.5651,34.6932,250.6181,61,1 ; 80 | 439,-2502.7300,382.2403,35.0181,235.8174,54,38 ; 81 | 400,-2470.8625,407.1818,27.8697,139.4656,123,1 ; 82 | 496,-2522.4219,310.7949,27.4816,70.6665,20,20 ; 83 | 428,-2440.9980,509.6792,30.0563,206.6596,4,75 ; 84 | 428,-2437.7600,510.8553,30.0507,202.1894,4,75 ; 85 | 560,-2425.6440,518.4800,29.6348,216.9742,9,39 ; 86 | 463,-2473.4978,743.3479,34.5559,179.9892,84,84 ; 87 | 561,-2412.3730,741.7964,34.8297,179.4121,8,17 ; 88 | 463,-2451.2593,740.6838,34.7129,180.6275,79,39 ; 89 | 467,-2248.2617,692.7663,49.1081,179.2399,58,8 ; 90 | 405,-2151.4058,637.0890,52.1898,182.3598,75,1 ; 91 | 405,-2134.6875,686.8921,63.7561,178.3476,123,1 ; 92 | 409,-1951.6525,724.5811,45.1672,270.0913,1,1 ; 93 | 429,-1941.2656,585.4785,34.7953,359.2309,3,1 ; 94 | 439,-1922.0646,303.6587,40.9425,177.2474,25,78 ; 95 | 461,-1974.6830,170.9425,27.3574,271.5703,46,46 ; 96 | 420,-1987.9830,104.7278,27.3169,0.4059,6,1 ; 97 | 420,-1988.1044,147.8747,27.3177,0.2008,6,1 ; 98 | 467,-2922.5259,428.7520,4.6539,276.2402,2,1 ; 99 | 493,-2981.0247,496.3422,-0.6554,1.5943,36,13 ; 100 | 549,-2578.6179,626.5599,27.4438,359.1449,117,1 ; 101 | 575,-2610.8423,1405.6122,6.7507,270.0862,19,96 ; 102 | 411,-1663.4688,1211.4713,6.9794,276.9535,12,1 ; 103 | 558,-1656.2698,1208.2489,20.7792,268.6007,42,42 ; 104 | 558,-1660.5311,1215.1492,20.7869,315.8402,24,1 ; 105 | 451,-1650.9478,1208.6367,13.3797,247.0129,18,18 ; 106 | 451,-1656.4871,1215.6764,13.4254,259.0972,101,1 ; 107 | 560,-2047.9236,901.2451,53.3068,356.4079,21,1 ; 108 | 560,-2105.8264,901.4780,76.3014,4.8684,36,1 ; 109 | 500,-2927.3159,500.5060,5.0168,268.8409,28,119 ; 110 | 409,-2752.1567,374.9532,3.9412,179.1495,1,1 ; 111 | 405,-2657.6785,374.4564,4.1077,1.3494,75,1 ; 112 | 426,-2664.9829,267.9181,4.0801,0.0174,7,7 ; 113 | 439,-2681.6306,267.9998,4.2312,358.7699,65,79 ; 114 | 462,-2636.0247,247.4894,3.9279,163.5248,2,1 ; 115 | 559,-2691.8088,204.5243,3.9923,359.4068,68,8 ; 116 | 496,-2793.0317,229.3433,6.8049,89.8252,53,56 ; 117 | 560,-2710.5635,128.6468,3.9600,177.1886,37,0 ; 118 | 533,-2613.7000,205.8831,4.6949,1.1401,74,1 ; 119 | 526,-2616.9363,71.5616,4.1026,268.8823,17,1 ; 120 | 436,-2546.9377,-142.7184,13.8009,0.8366,109,1 ; 121 | 517,-2459.4773,-150.5229,25.7609,1.8047,36,36 ; 122 | 496,-2592.9810,-191.1821,3.9750,91.0989,31,31 ; 123 | 475,-2694.0012,-147.6346,4.0512,90.9210,76,1 ; 124 | 421,-2796.6199,-184.0407,6.8207,91.6072,42,42 ; 125 | 566,-2796.3052,-39.5262,7.0876,89.8012,8,17 ; 126 | 467,-2878.8960,734.5536,29.3162,280.5990,60,1 ; 127 | 482,-2462.1184,793.0873,35.2270,93.7908,28,28 ; 128 | 439,-2380.2781,1269.3492,25.1014,277.3688,37,78 ; 129 | 522,-1821.9445,1310.5370,59.3070,186.3879,3,8 ; 130 | 475,-1829.7480,1289.9834,59.8258,21.8999,61,61 ; 131 | 475,-1842.0276,1304.4764,59.5341,198.8919,37,0 ; 132 | 405,-1755.8068,953.2106,24.6171,84.9867,75,1 ; 133 | 480,-1686.7346,1007.9662,17.3024,92.5730,66,72 ; 134 | 405,-1587.0150,859.0454,7.4098,90.4344,75,1 ; 135 | 439,-1629.2559,870.3282,8.1322,177.2777,43,21 ; 136 | 533,-1707.0554,795.3817,24.5184,2.4475,77,1 ; 137 | 453,-1463.8043,1023.7324,-0.2395,269.1420,56,56 ; 138 | 473,-1509.0499,1385.6211,-0.2875,114.2092,56,15 ; 139 | 417,-1468.1395,1490.9220,8.3433,92.3864,0,0 ; 140 | 417,-2311.2693,1544.9398,18.8852,183.6456,0,0 ; 141 | 469,-2514.7388,1545.1013,17.3351,349.7112,1,3 ; 142 | 473,-2432.8538,1568.3925,-0.0528,353.0695,56,53 ; 143 | 473,-2434.4873,1571.9756,-0.1826,348.1105,56,15 ; 144 | 521,-2501.2534,1222.1891,36.9992,139.5936,87,118 ; 145 | 496,-2867.3279,695.7776,23.2883,296.3333,22,22 ; 146 | 496,-2857.4624,830.0972,39.8342,238.8571,42,42 ; 147 | 401,-2836.6306,870.4559,43.7638,267.2119,83,1 ; 148 | 401,-2839.8884,925.7379,43.8342,274.0428,47,47 ; 149 | 410,-2855.1917,962.1486,43.6477,294.1936,9,1 ; 150 | 516,-2900.1345,1104.5038,26.8936,272.1553,9,1 ; 151 | 418,-2898.4971,1161.4402,13.5039,272.4668,95,95 ; 152 | 415,-2722.1973,980.1292,54.2327,9.4435,25,1 ; 153 | 411,-2728.2146,910.1182,67.3208,153.1185,112,1 ; 154 | 421,-2634.7214,929.3314,71.3155,214.6021,30,1 ; 155 | 405,-2680.4905,869.2202,76.4498,23.7850,91,1 ; 156 | 558,-2650.5452,856.2390,63.6388,312.0352,117,1 ; 157 | 418,-2205.7361,293.8083,35.2104,359.0113,119,119 ; 158 | 400,-2231.1545,293.4678,35.2612,1.3597,14,123 ; 159 | 426,-2792.9805,785.0926,49.5488,17.1913,7,7 ; 160 | 533,-1997.0570,708.1403,45.0732,359.8203,52,39 ; 161 | 536,-2098.6619,653.4818,52.1045,178.5289,57,96 ; 162 | 475,-1772.8362,1205.1267,24.9264,128.7472,21,1 ; 163 | 482,-1698.9235,1029.1211,45.2640,163.2027,28,28 ; 164 | 421,-1915.2972,792.2175,39.5330,271.2570,42,42 ; 165 | 482,-1830.3928,636.3265,30.5508,181.9362,62,62 ; 166 | 551,-1767.2255,857.6757,24.6063,90.7746,72,1 ; 167 | 533,-1996.7197,780.7192,45.0773,0.8333,74,1 ; 168 | 480,-2156.5957,781.6992,69.2316,271.9981,58,1 ; 169 | 561,-2206.7849,718.1914,49.4181,359.8657,101,1 ; 170 | 482,-2287.0796,581.4111,34.9593,270.0385,59,36 ; 171 | 482,-2586.3882,311.3461,4.9411,90.7013,88,1 ; 172 | 439,-2586.3213,325.2354,4.7471,270.4281,65,79 ; 173 | 521,-2590.9128,484.1599,14.1862,58.1234,75,13 ; 174 | 463,-2454.1155,638.9645,32.6119,266.5039,74,1 ; 175 | 475,-2588.4861,632.4481,14.2561,269.3260,9,39 ; 176 | 479,-2546.5293,647.5505,14.1927,90.1881,109,100 ; 177 | 405,-2566.9233,556.1500,14.3396,294.3413,36,1 ; 178 | 461,-2621.0337,137.8928,4.0045,266.5985,46,46 ; 179 | 408,-2655.6912,-194.1583,4.7043,359.8855,26,26 ; 180 | 479,-2274.9456,-119.1158,35.1114,266.5583,54,31 ; 181 | 496,-2263.0579,18.8142,34.8656,354.0030,42,42 ; 182 | 475,-2167.6179,86.2425,35.0484,172.0044,21,1 ; 183 | 579,-2265.7461,452.6116,34.9076,250.2149,95,105 ; 184 | 405,-2379.3401,625.8353,33.0000,1.2157,36,1 ; 185 | 579,-2213.2063,416.5867,35.0997,357.7801,7,7 ; 186 | 582,-2123.9011,428.0708,34.6792,356.2318,14,1 ; 187 | 482,-2123.8403,380.5338,35.2907,87.8615,64,64 ; 188 | 582,-2044.8904,460.4015,35.2268,304.5739,56,123 ; 189 | 405,-2308.2900,673.6360,44.3038,90.5505,65,79 ; 190 | 480,-2175.9424,654.7142,49.2104,181.1464,12,12 ; 191 | 405,-2650.2134,703.3293,27.7206,270.0416,11,1 ; 192 | 496,-2694.9968,719.9131,34.2360,176.1588,42,42 ; 193 | 482,-1612.3462,1284.5171,7.3010,90.9943,85,85 ; 194 | 445,-1630.5129,1289.7798,6.9140,135.4144,37,37 ; 195 | 482,-1834.8303,1425.0577,7.2412,179.1661,57,57 ; 196 | 411,-1975.7601,1224.7452,31.4079,272.5271,106,1 ; 197 | 560,-1971.0621,1185.6659,45.0734,89.7986,37,0 ; 198 | 480,-1847.4036,1165.1617,39.5751,356.2450,73,45 ; 199 | 428,-1833.1833,1096.2388,45.4880,89.0391,4,75 ; 200 | 439,-1730.7964,1089.0475,45.3416,271.8883,57,8 ; 201 | 455,-1944.7908,1001.1067,35.6111,269.5481,32,74 ; 202 | 482,-1673.3295,1090.5961,8.0443,269.4953,10,10 ; 203 | 400,-2124.6316,-935.2519,32.1158,268.5499,62,1 ; 204 | 506,-2150.3098,-772.5972,31.6486,270.1075,37,37 ; 205 | 506,-2134.1143,-760.7621,31.7280,90.9188,7,7 ; 206 | 421,-2124.5564,-847.0036,31.9059,270.5157,95,1 ; 207 | 405,-1736.9055,1053.4701,17.4609,267.5370,40,1 ; 208 | 439,-1696.8990,977.2657,17.4815,359.7377,67,8 ; 209 | 496,-1474.2157,-137.3864,5.6264,270.1316,62,62 ; 210 | 400,-1337.5870,-128.9230,6.0923,88.6881,62,1 ; 211 | 482,-1426.0374,-212.6052,6.0536,88.9253,57,57 ; 212 | 516,-1369.8975,-216.2965,5.8337,88.8366,122,1 ; 213 | 517,-1337.3739,-37.7222,5.8549,87.8366,36,36 ; 214 | 480,-2645.6714,1375.8912,6.9395,268.6650,12,12 ; 215 | 411,-2618.2075,1349.1384,6.9411,0.7610,81,1 ; 216 | 477,-2617.5005,1376.3701,6.8800,180.0679,94,1 ; 217 | 411,-2646.4983,1334.4966,6.9009,0.6167,106,1 ; 218 | 487,-1637.0043,1381.6923,18.5907,137.6304,29,42 ; 219 | 487,-2632.1711,1417.5526,24.9424,235.3438,29,42 ; 220 | 480,-1623.0930,817.0657,6.5923,2.0322,6,6 ; 221 | 493,-1409.9961,917.3229,-0.3734,301.5048,1,5 ; 222 | 493,-1403.3783,888.8575,-0.1041,328.1305,36,13 ; 223 | 480,-1488.3904,666.5170,6.9579,92.0792,2,2 ; 224 | 484,-1475.4053,703.6797,0.2567,181.1956,50,32 ; 225 | 482,-1487.4949,758.5935,7.5513,89.3724,32,53 ; 226 | 403,-1654.6354,452.5728,8.2105,212.2164,24,77 ; 227 | 455,-1701.2188,407.8390,7.6164,221.8163,84,58 ; 228 | 461,-1673.6534,399.1507,6.7568,311.2735,37,1 ; 229 | 421,-1665.1743,351.3592,6.8215,345.8147,42,42 ; 230 | 455,-1622.2393,84.3414,3.9898,147.7921,1,31 ; 231 | 453,-1632.5704,161.8541,-0.2770,315.6891,56,56 ; 232 | 460,-1446.9373,96.2603,1.8018,313.8602,1,30 ; 233 | 421,-1319.0929,-337.8624,14.0309,260.0551,25,1 ; 234 | 553,-1622.4431,-311.8704,15.4839,27.5372,55,23 ; 235 | 417,-1712.1791,-456.0522,14.2207,1.9482,0,0 ; 236 | 447,-1756.1366,-444.6548,0.7483,5.0545,75,2 ; 237 | 507,-1236.8948,33.3595,13.9733,221.5421,7,7 ; 238 | 411,-1426.3220,-13.7968,5.7271,90.1829,116,1 ; 239 | 411,-1459.3002,-5.4454,5.7914,271.8837,45,32 ; 240 | 424,-2906.0566,58.3788,4.3926,5.7181,119,122 ; 241 | 568,-2897.8433,330.0730,4.6656,170.8635,9,39 ; 242 | 444,-2930.2214,711.2976,6.4082,7.0339,32,53 ; 243 | 579,-2885.2395,1243.7937,7.0338,261.2170,7,7 ; 244 | 462,-2810.1172,1325.5194,6.7011,143.9079,3,1 ; 245 | 446,-2747.4805,1399.5426,-0.7690,32.7627,3,3 ; 246 | 447,-2676.2593,1897.6268,0.9115,93.0397,75,2 ; 247 | 508,-2065.7258,1423.1896,7.4764,145.1099,1,1 ; 248 | 461,-2092.5718,1432.6520,6.6750,193.9025,87,118 ; 249 | 536,-2091.5598,1392.6028,6.8385,217.0096,30,96 ; 250 | 452,-1902.7883,1400.2579,-0.2510,76.7538,1,5 ; 251 | 461,-1794.8903,1405.5066,6.7728,203.9249,61,1 ; 252 | 472,-1720.9418,1436.0170,0.3172,356.6591,56,53 ; 253 | 454,-1467.0510,1503.8058,0.1585,110.2544,26,26 ; 254 | 473,-1570.9440,1263.8746,-0.0779,276.0413,56,15 ; 255 | 506,-1554.5819,1068.4961,6.8919,359.0276,52,52 ; 256 | 562,-1614.6351,1007.8853,6.8478,250.5691,17,1 ; 257 | 553,-1566.2198,-255.4555,15.4835,41.4339,61,74 ; 258 | 586,-1871.2375,-893.5937,31.5430,91.2748,122,1 ; 259 | 586,-1912.6022,-918.9386,31.7413,353.5594,46,46 ; 260 | 541,-1897.6475,-823.9932,31.8346,272.8453,44,96 ; 261 | 541,-1886.8457,-759.9957,31.6483,270.8408,60,1 ; 262 | 533,-1761.6075,613.7797,26.9520,89.3371,79,1 ; 263 | 429,-2019.1703,1029.0781,55.1885,272.6768,13,13 ; 264 | 442,-2041.7661,1116.0492,53.1165,175.0672,11,105 ; 265 | 421,-2052.5154,1112.8059,53.1715,181.2767,13,1 ; 266 | 560,-2557.4421,1143.5118,55.4319,165.8663,9,39 ; 267 | 402,-2541.8601,1141.0548,55.3862,170.3531,35,1 ; 268 | 496,-2499.5383,1137.9291,55.4432,180.4333,53,56 ; 269 | 536,-2485.8357,1137.9993,55.4642,180.9101,12,1 ; 270 | 541,-2458.5952,1138.3412,55.3516,178.5045,58,8 ; 271 | 541,-2431.1118,1136.0994,55.5330,175.6763,69,1 ; 272 | 541,-2377.0164,1122.4816,55.3515,340.0099,60,1 ; 273 | 508,-2413.5251,1026.2301,50.7658,0.0956,1,1 ; 274 | 575,-2408.1653,974.7092,44.9025,182.2524,19,96 ; 275 | 575,-2406.2703,944.5644,44.9790,266.8056,72,1 ; 276 | 559,-2352.3479,981.5965,50.3515,5.7404,58,8 ; 277 | 437,-2366.8171,1023.6387,50.8246,181.9107,79,7 ; 278 | 405,-2239.0337,893.4630,66.5312,89.8170,24,1 ; 279 | 426,-2233.8440,930.8287,66.3919,180.1113,10,10 ; 280 | 587,-2220.6704,813.1365,49.0857,90.0399,53,1 ; 281 | 500,-2292.3335,812.4420,49.0650,88.5746,9,39 ; 282 | 466,-2273.5481,1038.3989,83.5060,179.7762,68,76 ; 283 | 436,-2135.5122,1036.8539,79.6184,0.2546,87,1 ; 284 | 547,-2285.7629,1101.4392,79.8592,268.6749,123,1 ; 285 | 480,-2238.0720,1184.7144,55.3492,91.5899,2,2 ; 286 | 561,-2233.6113,1104.8516,79.8828,180.3517,101,1 ; 287 | 521,-2034.3132,167.2029,28.4100,276.3217,75,13 ; 288 | 549,-2033.3455,177.7978,28.7383,266.0410,57,8 ; 289 | 486,-2122.9641,176.7403,35.5823,269.0041,1,1 ; 290 | 486,-2128.7603,292.7856,35.0132,268.8581,1,1 ; 291 | 486,-2066.6992,295.1810,35.3575,185.6239,18,20 ; 292 | 482,-2126.2490,202.0597,35.4645,271.6610,102,65 ; 293 | 493,-2941.2458,500.9425,1.9118,356.2562,1,9 ; 294 | 421,-2151.0249,835.4579,69.2326,181.8154,71,72 ; 295 | 516,-1892.3840,823.9651,34.9240,1.1847,119,1 ; 296 | 500,-1983.7811,896.3951,45.3164,161.2541,28,119 ; 297 | 482,-1878.1260,1073.6155,45.3833,1.0803,88,1 ; 298 | 518,-2027.1711,1228.7698,31.3190,268.9391,9,39 ; 299 | 424,-2051.5183,1160.1519,45.2263,15.6148,2,2 ; 300 | 558,-2143.7021,1221.0677,46.9019,92.5564,24,1 ; 301 | 496,-2354.3687,1323.6498,14.6058,77.0716,42,42 ; 302 | 603,-2697.6223,783.2014,49.8749,267.5988,87,74 ; 303 | 603,-2637.6653,802.7455,49.7702,1.1551,34,1 ; 304 | 522,-2594.9675,841.6440,49.9161,84.3496,51,118 ; 305 | 463,-2464.2109,919.5464,62.5336,160.6213,7,7 ; 306 | 428,-1893.1501,878.8957,35.1399,0.5215,4,75 ; 307 | 500,-1920.9349,900.0209,35.5579,206.1858,14,123 ; 308 | 409,-1736.3384,947.9546,24.5472,65.3048,1,1 ; 309 | 540,-1502.9904,938.4938,7.0463,124.6396,62,62 ; 310 | 550,-1788.1842,802.8976,24.7103,359.7563,42,42 ; 311 | 561,-1784.4341,692.7875,34.9859,182.2400,57,8 ; 312 | 443,-1851.9319,116.8267,15.7521,284.3587,20,1 ; 313 | 482,-1855.5973,146.2494,15.2417,277.9544,85,85 ; 314 | 549,-2048.1506,124.8951,28.6802,182.0321,47,76 ; 315 | 600,-2160.9421,515.2612,34.8894,119.1082,32,8 ; 316 | 582,-2089.2358,479.1807,35.1022,78.0878,62,62 ; 317 | 461,-1962.3229,466.2146,34.8407,64.7884,53,53 ; 318 | 401,-1905.3840,710.6555,45.0761,179.5601,47,47 ; 319 | 401,-2539.3262,939.0101,64.2301,90.3424,47,47 ; 320 | 401,-2569.1545,981.8585,78.1545,358.0872,25,1 ; 321 | 541,-2692.8362,455.8668,3.9608,87.0999,13,8 ; 322 | 400,-2279.4724,-247.3415,42.5332,18.4825,40,1 ; 323 | 444,-2354.2649,-371.5601,69.0405,313.2816,32,42 ; 324 | 461,-1704.8201,1339.3179,6.7801,93.7506,3,6 ; 325 | 405,-1696.4670,1348.2159,7.0546,99.7830,4,1 ; 326 | 461,-1648.1644,1307.4525,6.6986,130.5739,3,3 ; 327 | 479,-1915.3132,1256.0265,19.2396,89.3746,95,105 ; 328 | 402,-2178.9719,1227.6172,33.7613,358.4316,22,22 ; 329 | 482,-1987.7301,1338.3241,7.2635,176.6010,105,1 ; 330 | 405,-1977.9648,-1020.8948,32.0504,332.2476,36,1 ; 331 | 487,-1970.8481,-829.0056,39.7330,1.5030,26,3 ; 332 | 421,-2148.8938,-879.1363,31.9059,269.8967,24,118 ; 333 | 461,-1720.9136,1007.3600,17.1706,91.6206,37,1 ; 334 | 439,-1703.6799,1028.5684,17.2701,271.2751,68,1 ; 335 | 516,-1385.4271,-207.9932,5.6252,269.5264,60,1 ; 336 | 400,-1370.5370,-108.5120,5.7368,90.5826,30,96 ; 337 | 410,-1427.6842,-71.5402,5.6544,92.1527,9,1 ; 338 | 516,-1338.1565,-175.1089,5.7248,267.4071,2,62 ; 339 | 496,-2436.2021,1257.5581,30.2190,90.0063,11,11 ; 340 | 579,-1643.6743,-1049.7825,102.4422,184.7762,62,62 ; 341 | 468,-1539.1002,-988.9670,159.2563,171.1934,46,46 ; 342 | 457,-2477.0815,-310.3790,41.1381,313.3356,10,1 ; 343 | 560,-2486.6094,262.4621,34.8724,271.1458,17,1 ; 344 | 549,-2585.9888,712.8341,27.5820,89.5528,84,36 ; 345 | 466,-1837.0461,339.5637,16.9045,331.3646,78,76 ; 346 | 558,-1956.2533,297.6264,35.0939,64.6876,116,1 ; 347 | 560,-1957.6255,276.9994,35.1773,132.1875,9,39 ; 348 | 561,-1950.4956,259.6261,35.2702,53.4263,8,17 ; 349 | 562,-1952.4977,265.6259,40.7239,292.5037,35,1 ; 350 | 567,-1952.7600,258.7500,40.9200,258.7441,88,64 ; 351 | 490,-1588.4078,673.0458,7.3151,176.8283,0,0 ; 352 | 490,-1574.3214,718.2319,-5.1140,89.8176,0,0 ; 353 | 472,-1076.0149,-207.4982,0.0197,201.3848,56,53 ; 354 | --------------------------------------------------------------------------------