Guest User

KineticNRG

a guest
Sep 19th, 2008
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 45.42 KB | None | 0 0
  1. // _____________________________________________________________
  2. // |_/_/_[lrp.inc]/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/[=][-][x]_|
  3. // | |
  4. // | This inc file includes all of the files listed below. |
  5. // | The main purpose of this is to remove the clutter from |
  6. // | Your server files. |
  7. // | |
  8. // | Space saved by using this file instead of all files used |
  9. // | in the godfather. ~ 40kb(13 files) |
  10. // | ----------------------------------------------------------- |
  11. // | |
  12. // | ~ � Copyright 2005-2006, SA:MP Team <a_samp.inc> |
  13. // | |
  14. // | ~ � Copyright 2005-2006, SA:MP Team <a_players.inc> |
  15. // | |
  16. // | ~ � Copyright 2005-2006, SA:MP Team <a_vehicles.inc> |
  17. // | |
  18. // | ~ � Copyright 2005-2006, SA:MP Team <a_objects.inc> |
  19. // | |
  20. // | ~ � Copyright 2005-2006, SA:MP Team <a_sampdb.inc> |
  21. // | |
  22. // | ~ � Copyright 1998-2005, ITB CompuPhase <core.inc> |
  23. // | |
  24. // | ~ � Copyright 2001-2005, ITB CompuPhase <time.inc> |
  25. // | |
  26. // | ~ � Copyright 2004-2005, ITB CompuPhase <file.inc> |
  27. // | |
  28. // | ~ � Copyright 2005, ITB CompuPhase <string.inc> |
  29. // | |
  30. // | ~ � Copyright 2005, ITB CompuPhase <datagram.inc> |
  31. // | |
  32. // | ~ � Copyright 1999, Artran, Inc. <float.inc> |
  33. // | Written by Greg Garner (gmg@artran.com) |
  34. // | Modified in March 2001 to include user defined |
  35. // | operators for the floating point functions. |
  36. // | |
  37. // | ~ Also Listed |
  38. // | ~ <morphic.inc> (Tratulla) |
  39. // | ~ <utils.inc> (Tratulla) |
  40. // | ~ <lrp_colors.inc> (KineticNRG) |
  41. // | ~ <components.inc> (KineticNRG) |
  42. // | |
  43. // | All files are provided as is (no warranties). |
  44. // | |
  45. // | ~ Compilation by KineticNRG |
  46. // |_____________________________________________________________|
  47. //
  48.  
  49. //____[lrp_colors.inc]________________________________________________________________________
  50. //[Note] Thanks to Tyler for some color codes.
  51.  
  52. //----[monochrome]
  53. #define color_white 0xffffff00
  54. #define color_grey1 0xCCCCCC00
  55. #define color_grey2 0xAAAAAA00
  56. #define color_grey3 0x88888800
  57. #define color_grey4 0x66666600
  58. #define color_grey5 0x44444400
  59. #define color_grey6 0x22222200
  60. #define color_black 0x00000100
  61.  
  62. //----[chat colors]
  63. #define color_chat1 0xF9F9F900
  64. #define color_chat2 0xF3F3F300
  65. #define color_chat3 0xDCDCDC00
  66. #define color_chat4 0xD9D9D900
  67. #define color_chat5 0xD3D3D300
  68.  
  69. //----[spectrum colors]
  70. #define color_pred 0xff666600
  71. #define color_lred 0xFF000000
  72. #define color_red 0xCC000000
  73. #define color_dred 0xAA000000
  74.  
  75. #define color_porange 0xfda57000
  76. #define color_lorange 0xFF944D00
  77. #define color_orange 0xFF660000
  78. #define color_dorange 0xE65C0000
  79.  
  80. #define color_pyellow 0xffffcc00
  81. #define color_lyellow 0xFFFF9900
  82. #define color_yellow 0xFFFF0000
  83. #define color_dyellow 0xE6E60000
  84.  
  85. #define color_pgreen 0xaefd9200
  86. #define color_lgreen 0x00FF0000
  87. #define color_green 0x00CC0000
  88. #define color_dgreen 0x00AA0000
  89.  
  90. #define color_pblue 0xbfe9fe00
  91. #define color_lblue 0x0000FF00
  92. #define color_blue 0x0000CC00
  93. #define color_dblue 0x0000AA00
  94.  
  95. #define color_ppurple 0xc8c2ff00
  96. #define color_lpurple 0xCC00FF00
  97. #define color_purple 0x9900CC00
  98. #define color_dpurple 0x66009900
  99.  
  100. #define color_ppink 0xffdede00
  101. #define color_lpink 0xFFCCCC00
  102. #define color_pink 0xFF66FF00
  103. #define color_dpink 0xFF33CC00
  104.  
  105. #define color_pbrown 0xe3cbad00
  106. #define color_lbrown 0x66350000
  107. #define color_brown 0x4D280000
  108. #define color_dbrown 0x4D260000
  109.  
  110. //----[wanted colors]
  111. #define color_lwanted 0xff000055
  112. #define color_wanted 0xCC000099
  113. #define color_dwanted 0xAA0000CC
  114.  
  115. //----[gang colors]
  116. #define color_1 0xCCE7FF00//blue
  117. #define color_2 0xCCFFCC00//green
  118. #define color_3 0xFFC2FF00//pink
  119. #define color_4 0xE0C2FF00//purple
  120. #define color_5 0xFFFFC200//yellow
  121. #define color_6 0xC2FFE000//seafoam
  122. #define color_7 0xFFE0C200//peach
  123. #define color_8 0xFFC28500//orange
  124. #define color_9 0xCCCCCC00//grey
  125.  
  126.  
  127. // _____________________________________________________________
  128. // |_/_/_[Components.inc]_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/[=][-][x]_|
  129. // | This inc file includes variables to make adding car |
  130. // | components easier. |
  131. // | |
  132. // | Credits to sareallife.org for thier SAMP wiki. All |
  133. // | component ids came from their wiki. |
  134. // | Anything not listed was not in the wiki. |
  135. // | |
  136. // | Car Components Listed |
  137. // | ~Front Bumper |
  138. // | ~Rear Bumper |
  139. // | ~Front Bullbars |
  140. // | ~Rear Bullbars |
  141. // | ~Side Skirts |
  142. // | ~Hood Scoop |
  143. // | ~Hood Vents |
  144. // | ~Roof (scoop and top) |
  145. // | ~Spoiler |
  146. // | ~Wheels |
  147. // | ~Exhaust |
  148. // | ~Lights |
  149. // | ~Stereo |
  150. // | ~Nitro |
  151. // | ~Hydros |
  152. // | |
  153. // | |
  154. // | ~ Created by KineticNRG |
  155. // |_____________________________________________________________|
  156. //
  157.  
  158. //____[Front Bumpers]_________________________________________________________________________
  159. #define fbumper_chromer_slamvan 1117
  160. #define fbumper_chromer_broadway 1174
  161. #define fbumper_chromer_remington 1179
  162. #define fbumper_chromer_blade 1182
  163. #define fbumper_chromer_savanna 1189
  164. #define fbumper_chromer_tornado 1191
  165.  
  166. #define fbumper_slamin_broadway 1175
  167. #define fbumper_slamin_remington 1185
  168. #define fbumper_slamin_blade 1181
  169. #define fbumper_slamin_savanna 1188
  170. #define fbumper_slamin_tornado 1190
  171.  
  172. #define fbumper_xflow_flash 1152
  173. #define fbumper_xflow_stratum 1157
  174. #define fbumper_xflow_jester 1173
  175. #define fbumper_xflow_uranus 1165
  176. #define fbumper_xflow_sultan 1170
  177. #define fbumper_xflow_elegy 1172
  178.  
  179. #define fbumper_alien_flash 1153
  180. #define fbumper_alien_stratum 1155
  181. #define fbumper_alien_jester 1160
  182. #define fbumper_alien_uranus 1166
  183. #define fbumper_alien_sultan 1169
  184. #define fbumper_alien_elegy 1171
  185.  
  186.  
  187. //____[Rear Bumpers]__________________________________________________________________________
  188. #define rbumper_chromer_broadway 1176
  189. #define rbumper_chromer_remington 1180
  190. #define rbumper_chromer_blade 1184
  191. #define rbumper_chromer_savanna 1187
  192. #define rbumper_chromer_tornado 1192
  193.  
  194. #define rbumper_slamin_broadway 1177
  195. #define rbumper_slamin_remington 1178
  196. #define rbumper_slamin_blade 1183
  197. #define rbumper_slamin_savanna 1186
  198. #define rbumper_slamin_tornado 1193
  199.  
  200. #define rbumper_xflow_flash 1151
  201. #define rbumper_xflow_stratum 1156
  202. #define rbumper_xflow_jester 1161
  203. #define rbumper_xflow_uranus 1167
  204. #define rbumper_xflow_sultan 1140
  205. #define rbumper_xflow_elegy 1148
  206.  
  207. #define rbumper_alien_flash 1150
  208. #define rbumper_alien_stratum 1154
  209. #define rbumper_alien_jester 1159
  210. #define rbumper_alien_uranus 1168
  211. #define rbumper_alien_sultan 1141
  212. #define rbumper_alien_elegy 1149
  213.  
  214.  
  215. //____[Front Bumpers]_________________________________________________________________________
  216. #define fbullbar_chromer_slamvan 1115
  217. #define fbullbar_chromer_remington 1100
  218.  
  219. #define fbullbar_slamin_slamvan 1116
  220.  
  221. #define fbullbar_bars_remington 1123
  222. #define fbullbar_lights_remington 1125
  223.  
  224.  
  225. //____[Rear Bumpers]__________________________________________________________________________
  226. #define rbullbar_chromer_slamvan 1109
  227.  
  228. #define rbullbar_slamin_slamvan 1110
  229.  
  230.  
  231. //____[Sideskirts]____________________________________________________________________________
  232. //--[chrome]
  233. //left
  234. #define lskirt_chromer_slamvan 1120
  235. #define lskirt_chromer_broadway 1099
  236. #define lskirt_chromer_remington 1101
  237. #define lskirt_chromer_blade 1107
  238. #define lskirt_chromer_savanna 1102
  239. #define lskirt_chromer_tornado 1137
  240. //right
  241. #define rskirt_chromer_slamvan 1118
  242. #define rskirt_chromer_broadway 1042
  243. #define rskirt_chromer_remington 1122
  244. #define rskirt_chromer_blade 1108
  245. #define rskirt_chromer_savanna 1133
  246. #define rskirt_chromer_tornado 1134
  247.  
  248. //--[slamin]
  249. //left
  250. #define lskirt_slamin_slamvan 1121 //wheel covers
  251. #define lskirt_slamin_remington 1124 //chrome arches
  252. //right
  253. #define rskirt_slamin_slamvan 1119 //wheel covers
  254. #define rskirt_slamin_remington 1106 //chrome arches
  255.  
  256. //--[xflow]
  257. //left
  258. #define lskirt_xflow_flash 1048
  259. #define lskirt_xflow_stratum 1057
  260. #define lskirt_xflow_jester 1070
  261. #define lskirt_xflow_uranus 1093
  262. #define lskirt_xflow_sultan 1030
  263. #define lskirt_xflow_elegy 1039
  264. //right
  265. #define rskirt_xflow_flash 1052
  266. #define rskirt_xflow_stratum 1063
  267. #define rskirt_xflow_jester 1072
  268. #define rskirt_xflow_uranus 1095
  269. #define rskirt_xflow_sultan 1031
  270. #define rskirt_xflow_elegy 1041
  271.  
  272. //--[alien]
  273. //left
  274. #define lskirt_alien_flash 1047
  275. #define lskirt_alien_stratum 1056
  276. #define lskirt_alien_jester 1069
  277. #define lskirt_alien_uranus 1090
  278. #define lskirt_alien_sultan 1027
  279. #define lskirt_alien_elegy 1040
  280. //right
  281. #define rskirt_alien_flash 1051
  282. #define rskirt_alien_stratum 1062
  283. #define rskirt_alien_jester 1071
  284. #define rskirt_alien_uranus 1094
  285. #define rskirt_alien_sultan 1026
  286. #define rskirt_alien_elegy 1036
  287.  
  288. //--[transfender]
  289. #define lskirt_transfender 1017
  290. #define rskirt_transfender 1007
  291.  
  292.  
  293. //____[Hood Scoop]____________________________________________________________________________
  294. #define hood_champ 1004
  295. #define hood_fury 1005
  296. #define hood_race 1011
  297. #define hood_worx 1012
  298.  
  299.  
  300. //____[Hood Vents]____________________________________________________________________________
  301. #define lhood_oval 1142
  302. #define rhood_oval 1143
  303. #define lhood_square 1144
  304. #define rhood_square 1145
  305.  
  306.  
  307. //____[Roof]__________________________________________________________________________________
  308. #define roof_transfender 1006
  309.  
  310. #define roof_softtop_blade 1103
  311. #define roof_softtop_savanna 1131
  312.  
  313. #define roof_hardtop_blade 1128
  314. #define roof_hardtop_savanna 1130
  315.  
  316. #define roof_alien_flash 1054
  317. #define roof_alien_stratum 1055
  318. #define roof_alien_jester 1067
  319. #define roof_alien_uranus 1088
  320. #define roof_alien_sultan 1032
  321. #define roof_alien_elegy 1038
  322.  
  323. #define roof_xflow_flash 1053
  324. #define roof_xflow_stratum 1061
  325. #define roof_xflow_jester 1068
  326. #define roof_xflow_uranus 1091
  327. #define roof_xflow_sultan 1033
  328. #define roof_xflow_elegy 1035
  329.  
  330.  
  331. //____[Spoiler]_______________________________________________________________________________
  332. #define spoiler_pro 1000
  333. #define spoiler_win 1001
  334. #define spoiler_drag 1002
  335. #define spoiler_alpha 1003
  336. #define spoiler_champ 1014
  337. #define spoiler_race 1015
  338. #define spoiler_worx 1016
  339. #define spoiler_fury 1023
  340.  
  341. #define spoiler_xflow_flash 1050
  342. #define spoiler_xflow_stratum 1060
  343. #define spoiler_xflow_jester 1158
  344. #define spoiler_xflow_uranus 1163
  345. #define spoiler_xflow_sultan 1139
  346. #define spoiler_xflow_elegy 1146
  347.  
  348. #define spoiler_alien_flash 1049
  349. #define spoiler_alien_stratum 1058
  350. #define spoiler_alien_jester 1162
  351. #define spoiler_alien_uranus 1164
  352. #define spoiler_alien_sultan 1138
  353. #define spoiler_alien_elegy 1147
  354.  
  355.  
  356. //____[Wheels]________________________________________________________________________________
  357. #define wheels_offroad 1025
  358. #define wheels_shadow 1073
  359. #define wheels_mega 1074
  360. #define wheels_rimshine 1075
  361. #define wheels_wires 1076
  362. #define wheels_classic 1077
  363. #define wheels_twist 1078
  364. #define wheels_cutter 1079
  365. #define wheels_switch 1080
  366. #define wheels_grove 1081
  367. #define wheels_import 1082
  368. #define wheels_dollar 1083
  369. #define wheels_trance 1084
  370. #define wheels_atomic 1085
  371. #define wheels_ahab 1096
  372. #define wheels_virtual 1097
  373. #define wheels_access 1098
  374.  
  375.  
  376. //____[Exhaust]_______________________________________________________________________________
  377. #define exhaust_upsweep 1018
  378. #define exhaust_twin 1019
  379. #define exhaust_large 1020
  380. #define exhaust_medium 1021
  381. #define exhaust_small 1022
  382.  
  383. #define exhaust_chromer_slamvan 1113
  384. #define exhaust_chromer_broadway 1044
  385. #define exhaust_chromer_remington 1126
  386. #define exhaust_chromer_blade 1104
  387. #define exhaust_chromer_savanna 1129
  388. #define exhaust_chromer_tornado 1136
  389.  
  390. #define exhaust_slamin_slamvan 1114
  391. #define exhaust_slamin_broadway 1043
  392. #define exhaust_slamin_remington 1127
  393. #define exhaust_slamin_blade 1105
  394. #define exhaust_slamin_savanna 1132
  395. #define exhaust_slamin_tornado 1135
  396.  
  397. #define exhaust_xflow_flash 1045
  398. #define exhaust_xflow_stratum 1059
  399. #define exhaust_xflow_jester 1066
  400. #define exhaust_xflow_uranus 1089
  401. #define exhaust_xflow_sultan 1029
  402. #define exhaust_xflow_elegy 1037
  403.  
  404. #define exhaust_alien_flash 1046
  405. #define exhaust_alien_stratum 1064
  406. #define exhaust_alien_jester 1065
  407. #define exhaust_alien_uranus 1092
  408. #define exhaust_alien_sultan 1028
  409. #define exhaust_alien_elegy 1034
  410.  
  411.  
  412. //____[Lights]________________________________________________________________________________
  413. #define lights_square 1024
  414. #define lights_round 1013
  415.  
  416.  
  417. //____[Stereo]________________________________________________________________________________
  418. #define stereo_bassboost 1086
  419.  
  420.  
  421. //____[Nitro]_________________________________________________________________________________
  422. #define nitro_2 1009
  423. #define nitro_5 1008
  424. #define nitro_10 1010
  425.  
  426. //____[Hydros]________________________________________________________________________________
  427. #define hydralics 1087
  428.  
  429.  
  430. //____[Added by Kinetic]______________________________________________________________________
  431.  
  432. #define MAX_STRING 512
  433.  
  434. #define job_none 0
  435. #define job_police 1
  436. #define job_mechanic 2
  437. #define job_armsdealer 3
  438. #define job_drugdealer 4
  439. #define job_smuggler 5
  440.  
  441. //_____[a_samp.inc]___________________________________________________________________________
  442. #if defined _samp_included
  443. #endinput
  444. #endif
  445. #define _samp_included
  446. #pragma library samp
  447.  
  448. #pragma tabsize 4
  449. // Ignores warning 217 for properly indented PAWNO code
  450. // It's tab size is 4 and often uses 4 spaces instead, PAWNCC's is 8
  451.  
  452. // --------------------------------------------------
  453. // Natives
  454. // --------------------------------------------------
  455.  
  456. // Util
  457.  
  458. native print(const string[]);
  459. native printf(const format[], {Float,_}:...);
  460. native format(output[], len, const format[], {Float,_}:...);
  461. native SendClientMessage(playerid, color, const message[]);
  462. native SendClientMessageToAll(color, const message[]);
  463. native SendPlayerMessageToPlayer(playerid, senderid, const message[]);
  464. native SendPlayerMessageToAll(senderid, const message[]);
  465. native SendDeathMessage(killer,killee,weapon);
  466. native GameTextForAll(const string[],time,style);
  467. native GameTextForPlayer(playerid,const string[],time,style);
  468. native SetTimer(funcname[], interval, repeating);
  469. native SetTimerEx(funcname[], interval, repeating, const format[], {Float,_}:...);
  470. native KillTimer(timerid);
  471. native GetTickCount();
  472. native GetMaxPlayers();
  473. native LimitGlobalChatRadius(Float:chat_radius);
  474. native CallRemoteFunction(const function[], const format[], {Float,_}:...);
  475. native CallLocalFunction(const function[], const format[], {Float,_}:...);
  476. native Float:asin(Float:value);
  477. native Float:acos(Float:value);
  478. native Float:atan(Float:value);
  479. native Float:atan2(Float:x, Float:y);
  480.  
  481. // Game
  482. native SetGameModeText(const string[]);
  483. native SetTeamCount(count);
  484. native AddPlayerClass(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo);
  485. native AddPlayerClassEx(teamid, modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo);
  486. native AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2);
  487. native AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2, respawn_delay);
  488. native AddStaticPickup(model,type,Float:X,Float:Y,Float:Z);
  489. native CreatePickup(model, type, Float:X, Float:Y, Float:Z);
  490. native DestroyPickup(pickup);
  491. native ShowNameTags(show);
  492. native ShowPlayerMarkers(show);
  493. native GameModeExit();
  494. native SetWorldTime(hour);
  495. native GetWeaponName(weaponid, const weapon[], len);
  496. native EnableTirePopping(enable);
  497. native AllowInteriorWeapons(allow);
  498. native SetWeather(weatherid);
  499. native SetGravity(Float:gravity);
  500. native AllowAdminTeleport(allow);
  501. native SetDeathDropAmount(amount);
  502. native CreateExplosion(Float:X, Float:Y, Float:Z, type, Float:Radius);
  503. native SetDisabledWeapons(...);
  504. native EnableZoneNames(enable);
  505. native UsePlayerPedAnims(); // Will cause the players to use CJ running/walking animations
  506. native DisableInteriorEnterExits(); // will disable all interior enter/exits in the game.
  507. native SetNameTagDrawDistance(Float:distance); // Distance at which nametags will start rendering on the client.
  508.  
  509. // Admin
  510. native IsPlayerAdmin(playerid);
  511. native Kick(playerid);
  512. native Ban(playerid);
  513. native BanEx(playerid, const reason[]);
  514. native SendRconCommand(command[]);
  515. native GetServerVarAsString(const varname[], buffer[], len);
  516. native GetServerVarAsInt(const varname[]);
  517. native GetServerVarAsBool(const varname[]);
  518.  
  519. // Menu
  520. native Menu:CreateMenu(const title[], columns, Float:x, Float:y, Float:col1width, Float:col2width = 0.0);
  521. native DestroyMenu(Menu:menuid);
  522. native AddMenuItem(Menu:menuid, column, const menutext[]);
  523. native SetMenuColumnHeader(Menu:menuid, column, const columnheader[]);
  524. native ShowMenuForPlayer(Menu:menuid, playerid);
  525. native HideMenuForPlayer(Menu:menuid, playerid);
  526. native IsValidMenu(Menu:menuid);
  527. native DisableMenu(Menu:menuid);
  528. native DisableMenuRow(Menu:menuid, row);
  529. native Menu:GetPlayerMenu(playerid);
  530.  
  531. // Text Draw
  532. native Text:TextDrawCreate(Float:x, Float:y, text[]);
  533. native TextDrawDestroy(Text:text);
  534. native TextDrawLetterSize(Text:text, Float:x, Float:y);
  535. native TextDrawTextSize(Text:text, Float:x, Float:y);
  536. native TextDrawAlignment(Text:text, alignment);
  537. native TextDrawColor(Text:text, color);
  538. native TextDrawUseBox(Text:text, use);
  539. native TextDrawBoxColor(Text:text, color);
  540. native TextDrawSetShadow(Text:text, size);
  541. native TextDrawSetOutline(Text:text, size);
  542. native TextDrawBackgroundColor(Text:text, color);
  543. native TextDrawFont(Text:text, font);
  544. native TextDrawSetProportional(Text:text, set);
  545. native TextDrawShowForPlayer(playerid, Text:text);
  546. native TextDrawHideForPlayer(playerid, Text:text);
  547. native TextDrawShowForAll(Text:text);
  548. native TextDrawHideForAll(Text:text);
  549. native TextDrawSetString(Text:text, string[]);
  550.  
  551. // Gang Zones
  552.  
  553. native GangZoneCreate(Float:minx, Float:miny, Float:maxx, Float:maxy);
  554. native GangZoneDestroy(zone);
  555. native GangZoneShowForPlayer(playerid, zone, color);
  556. native GangZoneShowForAll(zone, color);
  557. native GangZoneHideForPlayer(playerid, zone);
  558. native GangZoneHideForAll(zone);
  559. native GangZoneFlashForPlayer(playerid, zone, flashcolor);
  560. native GangZoneFlashForAll(zone, flashcolor);
  561. native GangZoneStopFlashForPlayer(playerid, zone);
  562. native GangZoneStopFlashForAll(zone);
  563.  
  564. // --------------------------------------------------
  565. // Defines
  566. // --------------------------------------------------
  567.  
  568. // States
  569. #define PLAYER_STATE_NONE (0)
  570. #define PLAYER_STATE_ONFOOT (1)
  571. #define PLAYER_STATE_DRIVER (2)
  572. #define PLAYER_STATE_PASSENGER (3)
  573. #define PLAYER_STATE_EXIT_VEHICLE (4) // (used internally)
  574. #define PLAYER_STATE_ENTER_VEHICLE_DRIVER (5) // (used internally)
  575. #define PLAYER_STATE_ENTER_VEHICLE_PASSENGER (6) // (used internally)
  576. #define PLAYER_STATE_WASTED (7)
  577. #define PLAYER_STATE_SPAWNED (8)
  578. #define PLAYER_STATE_SPECTATING (9)
  579.  
  580. // Misc
  581. #define MAX_PLAYER_NAME (24)
  582. #define maxplayername 24
  583. #define MAX_PLAYERS (200)
  584. #define maxplayers 200
  585. #define MAX_VEHICLES (700)
  586. #define INVALID_PLAYER_ID (255)
  587. #define INVALID_VEHICLE_ID (0xFFFF)
  588. #define NO_TEAM (255)
  589. #define MAX_OBJECTS (150)
  590. #define INVALID_OBJECT_ID (255)
  591. #define MAX_GANG_ZONES (1024)
  592. #define MAX_TEXT_DRAWS (1024)
  593. #define MAX_MENUS (128)
  594. #define INVALID_MENU (0xFF)
  595. #define INVALID_TEXT_DRAW (0xFFFF)
  596. #define INVALID_GANG_ZONE (-1)
  597.  
  598. // Weapons
  599. #define WEAPON_BRASSKNUCKLE (1)
  600. #define WEAPON_GOLFCLUB (2)
  601. #define WEAPON_NITESTICK (3)
  602. #define WEAPON_KNIFE (4)
  603. #define WEAPON_BAT (5)
  604. #define WEAPON_SHOVEL (6)
  605. #define WEAPON_POOLSTICK (7)
  606. #define WEAPON_KATANA (8)
  607. #define WEAPON_CHAINSAW (9)
  608. #define WEAPON_DILDO (10)
  609. #define WEAPON_DILDO2 (11)
  610. #define WEAPON_VIBRATOR (12)
  611. #define WEAPON_VIBRATOR2 (13)
  612. #define WEAPON_FLOWER (14)
  613. #define WEAPON_CANE (15)
  614. #define WEAPON_GRENADE (16)
  615. #define WEAPON_TEARGAS (17)
  616. #define WEAPON_MOLTOV (18)
  617. #define WEAPON_COLT45 (22)
  618. #define WEAPON_SILENCED (23)
  619. #define WEAPON_DEAGLE (24)
  620. #define WEAPON_SHOTGUN (25)
  621. #define WEAPON_SAWEDOFF (26)
  622. #define WEAPON_SHOTGSPA (27)
  623. #define WEAPON_UZI (28)
  624. #define WEAPON_MP5 (29)
  625. #define WEAPON_AK47 (30)
  626. #define WEAPON_M4 (31)
  627. #define WEAPON_TEC9 (32)
  628. #define WEAPON_RIFLE (33)
  629. #define WEAPON_SNIPER (34)
  630. #define WEAPON_ROCKETLAUNCHER (35)
  631. #define WEAPON_HEATSEEKER (36)
  632. #define WEAPON_FLAMETHROWER (37)
  633. #define WEAPON_MINIGUN (38)
  634. #define WEAPON_SATCHEL (39)
  635. #define WEAPON_BOMB (40)
  636. #define WEAPON_SPRAYCAN (41)
  637. #define WEAPON_FIREEXTINGUISHER (42)
  638. #define WEAPON_CAMERA (43)
  639. #define WEAPON_PARACHUTE (46)
  640. #define WEAPON_VEHICLE (49)
  641. #define WEAPON_DROWN (53)
  642. #define WEAPON_COLLISION (54)
  643.  
  644. // Keys
  645. #define KEY_ACTION (1)
  646. #define KEY_CROUCH (2)
  647. #define KEY_FIRE (4)
  648. #define KEY_SPRINT (8)
  649. #define KEY_SECONDARY_ATTACK (16)
  650. #define KEY_JUMP (32)
  651. #define KEY_LOOK_RIGHT (64)
  652. #define KEY_HANDBRAKE (128)
  653. #define KEY_LOOK_LEFT (256)
  654. #define KEY_SUBMISSION (512)
  655. #define KEY_LOOK_BEHIND (512)
  656. #define KEY_WALK (1024)
  657. #define KEY_ANALOG_UP (2048)
  658. #define KEY_ANALOG_DOWN (4096)
  659. #define KEY_ANALOG_RIGHT (16384)
  660. #define KEY_ANALOG_LEFT (8192)
  661.  
  662. #define KEY_UP (65408)
  663. #define KEY_DOWN (128)
  664. #define KEY_LEFT (65408)
  665. #define KEY_RIGHT (128)
  666.  
  667. // --------------------------------------------------
  668. // Forwards (Callback declarations)
  669. // --------------------------------------------------
  670.  
  671. forward OnGameModeInit();
  672. forward OnGameModeExit();
  673. forward OnFilterScriptInit();
  674. forward OnFilterScriptExit();
  675. forward OnPlayerConnect(playerid);
  676. forward OnPlayerDisconnect(playerid, reason);
  677. forward OnPlayerSpawn(playerid);
  678. forward OnPlayerDeath(playerid, killerid, reason);
  679. forward OnVehicleSpawn(vehicleid);
  680. forward OnVehicleDeath(vehicleid, killerid);
  681. forward OnPlayerText(playerid, text[]);
  682. forward OnPlayerCommandText(playerid, cmdtext[]);
  683. forward OnPlayerInfoChange(playerid);
  684. forward OnPlayerRequestClass(playerid, classid);
  685. forward OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
  686. forward OnPlayerExitVehicle(playerid, vehicleid);
  687. forward OnPlayerStateChange(playerid, newstate, oldstate);
  688. forward OnPlayerEnterCheckpoint(playerid);
  689. forward OnPlayerLeaveCheckpoint(playerid);
  690. forward OnPlayerEnterRaceCheckpoint(playerid);
  691. forward OnPlayerLeaveRaceCheckpoint(playerid);
  692. forward OnRconCommand(cmd[]);
  693. forward OnPlayerPrivmsg(playerid, recieverid, text[]);
  694. forward OnPlayerRequestSpawn(playerid);
  695. forward OnObjectMoved(objectid);
  696. forward OnPlayerObjectMoved(playerid, objectid);
  697. forward OnPlayerPickUpPickup(playerid, pickupid);
  698. forward OnVehicleMod(vehicleid, componentid);
  699. forward OnVehiclePaintjob(vehicleid, paintjobid);
  700. forward OnVehicleRespray(vehicleid, color1, color2);
  701. forward OnPlayerSelectedMenuRow(playerid, row);
  702. forward OnPlayerExitedMenu(playerid);
  703. forward OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid);
  704. forward OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  705.  
  706.  
  707.  
  708.  
  709. //____[a_players.inc]_________________________________________________________________________
  710. #if defined _players_included
  711. #endinput
  712. #endif
  713. #define _players_included
  714. #pragma library players
  715.  
  716. #define SPECIAL_ACTION_NONE 0
  717. #define SPECIAL_ACTION_USEJETPACK 2
  718. #define SPECIAL_ACTION_DANCE1 5
  719. #define SPECIAL_ACTION_DANCE2 6
  720. #define SPECIAL_ACTION_DANCE3 7
  721. #define SPECIAL_ACTION_DANCE4 8
  722. #define SPECIAL_ACTION_HANDSUP 10
  723. #define SPECIAL_ACTION_USECELLPHONE 11
  724. #define SPECIAL_ACTION_SITTING 12
  725. #define SPECIAL_ACTION_STOPUSECELLPHONE 13
  726.  
  727. // Player
  728. native SetSpawnInfo(playerid, team, skin, Float:x, Float:y, Float:z, Float:rotation, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo);
  729. native SpawnPlayer(playerid);
  730.  
  731. // Player info
  732. native SetPlayerPos(playerid, Float:x, Float:y, Float:z);
  733. native SetPlayerPosFindZ(playerid, Float:x, Float:y, Float:z);
  734. native GetPlayerPos(playerid, &Float:x, &Float:y, &Float:z);
  735. native SetPlayerFacingAngle(playerid,Float:ang);
  736. native GetPlayerFacingAngle(playerid,&Float:ang);
  737. native SetPlayerInterior(playerid,interiorid);
  738. native GetPlayerInterior(playerid);
  739. native SetPlayerHealth(playerid, Float:health);
  740. native GetPlayerHealth(playerid, &Float:health);
  741. native SetPlayerArmour(playerid, Float:armour);
  742. native GetPlayerArmour(playerid, &Float:armour);
  743. native SetPlayerAmmo(playerid, weaponslot, ammo);
  744. native GetPlayerAmmo(playerid);
  745. native SetPlayerTeam(playerid, teamid);
  746. native GetPlayerTeam(playerid);
  747. native SetPlayerScore(playerid,score);
  748. native GetPlayerScore(playerid);
  749. native SetPlayerColor(playerid,color);
  750. native GetPlayerColor(playerid);
  751. native SetPlayerSkin(playerid, skinid);
  752. native GetPlayerSkin(playerid);
  753. native GivePlayerWeapon(playerid, weaponid, ammo);
  754. native ResetPlayerWeapons(playerid);
  755. native GetPlayerWeaponData(playerid, slot, &weapons, &ammo);
  756. native GivePlayerMoney(playerid,money);
  757. native ResetPlayerMoney(playerid);
  758. native SetPlayerName(playerid, const name[]);
  759. native GetPlayerMoney(playerid);
  760. native GetPlayerState(playerid);
  761. native GetPlayerIp(playerid, name[], len);
  762. native GetPlayerPing(playerid);
  763. native GetPlayerWeapon(playerid);
  764. native GetPlayerKeys(playerid, &keys, &updown, &leftright);
  765. native GetPlayerName(playerid, const name[], len);
  766. native SetPlayerTime(playerid, hour, minute);
  767. native GetPlayerTime(playerid, &hour, &minute);
  768. native TogglePlayerClock(playerid, toggle);
  769. native SetPlayerWeather(playerid, weather);
  770. native SetPlayerDisabledWeapons(playerid, ...);
  771. native ForceClassSelection(playerid);
  772. native SetPlayerWantedLevel(playerid, level);
  773. native GetPlayerWantedLevel(playerid);
  774.  
  775. // Player controls
  776. native PutPlayerInVehicle(playerid, vehicleid, seatid);
  777. native GetPlayerVehicleID(playerid);
  778. native RemovePlayerFromVehicle(playerid);
  779. native TogglePlayerControllable(playerid, toggle);
  780. native PlayerPlaySound(playerid, soundid, Float:x, Float:y, Float:z);
  781. native ApplyAnimation(playerid, animlib[], animname[], Float:fS, opt1, opt2, opt3, opt4, opt5);
  782. native ClearAnimations(playerid);
  783. native GetPlayerSpecialAction(playerid);
  784. native SetPlayerSpecialAction(playerid,actionid);
  785.  
  786. // Player map commands
  787. native SetPlayerCheckpoint(playerid, Float:x, Float:y, Float:z, Float:size);
  788. native DisablePlayerCheckpoint(playerid);
  789. native SetPlayerRaceCheckpoint(playerid, type, Float:x, Float:y, Float:z, Float:nextx, Float:nexty, Float:nextz, Float:size);
  790. native DisablePlayerRaceCheckpoint(playerid);
  791. native SetPlayerWorldBounds(playerid,Float:x_max,Float:x_min,Float:y_max,Float:y_min);
  792. native SetPlayerMarkerForPlayer(playerid, showplayerid, color);
  793. native ShowPlayerNameTagForPlayer(playerid, showplayerid, show);
  794. native SetPlayerMapIcon(playerid, iconid, Float:x, Float:y, Float:z, markertype, color);
  795. native RemovePlayerMapIcon(playerid, iconid);
  796. native SetPlayerCameraPos(playerid,Float:x, Float:y, Float:z);
  797. native SetPlayerCameraLookAt(playerid, Float:x, Float:y, Float:z);
  798. native SetCameraBehindPlayer(playerid);
  799. native AllowPlayerTeleport(playerid, allow);
  800.  
  801. // Player conditionals
  802. native IsPlayerConnected(playerid);
  803. native IsPlayerInVehicle(playerid, vehicleid);
  804. native IsPlayerInAnyVehicle(playerid);
  805. native IsPlayerInCheckpoint(playerid);
  806. native IsPlayerInRaceCheckpoint(playerid);
  807.  
  808. // Virtual Worlds
  809. native SetPlayerVirtualWorld(playerid, worldid);
  810. native GetPlayerVirtualWorld(playerid);
  811.  
  812. // Insane Stunts
  813. native EnableStuntBonusForPlayer(playerid, enable);
  814. native EnableStuntBonusForAll(enable);
  815.  
  816. // Spectating
  817. #define SPECTATE_MODE_NORMAL 1
  818. #define SPECTATE_MODE_FIXED 2
  819. #define SPECTATE_MODE_SIDE 3
  820.  
  821. native TogglePlayerSpectating(playerid, toggle);
  822. native PlayerSpectatePlayer(playerid, targetplayerid, mode = SPECTATE_MODE_NORMAL);
  823. native PlayerSpectateVehicle(playerid, targetvehicleid, mode = SPECTATE_MODE_NORMAL);
  824.  
  825.  
  826.  
  827. //____[a_vehicles.inc]________________________________________________________________________
  828. #if defined _vehicles_included
  829. #endinput
  830. #endif
  831. #define _vehicles_included
  832. #pragma library vehicles
  833.  
  834. // Vehicle
  835. native CreateVehicle(vehicletype, Float:x, Float:y, Float:z, Float:rotation, color1, color2, respawn_delay);
  836. native DestroyVehicle(vehicleid);
  837. native GetVehiclePos(vehicleid, &Float:x, &Float:y, &Float:z);
  838. native SetVehiclePos(vehicleid, Float:x, Float:y, Float:z);
  839. native GetVehicleZAngle(vehicleid, &Float:z_angle);
  840. native SetVehicleZAngle(vehicleid, Float:z_angle);
  841. native SetVehicleParamsForPlayer(vehicleid,playerid,objective,doorslocked);
  842. native SetVehicleToRespawn(vehicleid);
  843. native LinkVehicleToInterior(vehicleid, interiorid);
  844. native AddVehicleComponent(vehicleid, componentid);
  845. native RemoveVehicleComponent(vehicleid, componentid);
  846. native ChangeVehicleColor(vehicleid, color1, color2);
  847. native ChangeVehiclePaintjob(vehicleid, paintjobid);
  848. native SetVehicleHealth(vehicleid, Float:health);
  849. native GetVehicleHealth(vehicleid, &Float:health);
  850. native AttachTrailerToVehicle(trailerid, vehicleid);
  851. native DetachTrailerFromVehicle(vehicleid);
  852. native IsTrailerAttachedToVehicle(vehicleid);
  853. native GetVehicleTrailer(vehicleid);
  854. native SetVehicleNumberPlate(vehicleid, numberplate[]);
  855. native GetVehicleModel(vehicleid);
  856.  
  857. // Virtual Worlds
  858. native SetVehicleVirtualWorld(vehicleid, worldid);
  859. native GetVehicleVirtualWorld(vehicleid);
  860.  
  861.  
  862.  
  863. //____[a_objects.inc]_________________________________________________________________________
  864. #if defined _objects_included
  865. #endinput
  866. #endif
  867. #define _objects_included
  868. #pragma library objects
  869.  
  870. // Objects
  871.  
  872. native CreateObject(modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ);
  873. native SetObjectPos(objectid, Float:X, Float:Y, Float:Z);
  874. native GetObjectPos(objectid, &Float:X, &Float:Y, &Float:Z);
  875. native SetObjectRot(objectid, Float:RotX, Float:RotY, Float:RotZ);
  876. native GetObjectRot(objectid, &Float:RotX, &Float:RotY, &Float:RotZ);
  877. native IsValidObject(objectid);
  878. native DestroyObject(objectid);
  879. native MoveObject(objectid, Float:X, Float:Y, Float:Z, Float:Speed);
  880. native StopObject(objectid);
  881.  
  882. native CreatePlayerObject(playerid, modelid, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ);
  883.  
  884. native SetPlayerObjectPos(playerid, objectid, Float:X, Float:Y, Float:Z);
  885. native GetPlayerObjectPos(playerid, objectid, &Float:X, &Float:Y, &Float:Z);
  886. native SetPlayerObjectRot(playerid, objectid, Float:RotX, Float:RotY, Float:RotZ);
  887. native GetPlayerObjectRot(playerid, objectid, &Float:RotX, &Float:RotY, &Float:RotZ);
  888.  
  889. native IsValidPlayerObject(playerid, objectid);
  890. native DestroyPlayerObject(playerid, objectid);
  891. native MovePlayerObject(playerid, objectid, Float:X, Float:Y, Float:Z, Float:Speed);
  892. native StopPlayerObject(playerid, objectid);
  893.  
  894. native AttachObjectToPlayer(objectid, playerid, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:rX, Float:rY, Float:rZ);
  895. native AttachPlayerObjectToPlayer(objectplayer, objectid, attachplayer, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:rX, Float:rY, Float:rZ);
  896.  
  897.  
  898.  
  899. //____[a_sampdb.inc]__________________________________________________________________________
  900. #if defined _sampdb_included
  901. #endinput
  902. #endif
  903. #define _sampdb_included
  904. #pragma library sampdb
  905.  
  906. native DB:db_open(name[]);
  907. native db_close(DB:db);
  908. native DBResult:db_query(DB:db,query[]);
  909. native db_free_result(DBResult:dbresult);
  910. native db_num_rows(DBResult:dbresult);
  911. native db_next_row(DBResult:dbresult);
  912. native db_num_fields(DBResult:dbresult);
  913. native db_field_name(DBResult:dbresult, field, result[], maxlength);
  914. native db_get_field(DBResult:dbresult, field, result[], maxlength);
  915. native db_get_field_assoc(DBResult:dbresult, const field[], result[], maxlength);
  916.  
  917.  
  918.  
  919. //____[core.inc]______________________________________________________________________________
  920. #if defined _core_included
  921. #endinput
  922. #endif
  923. #define _core_included
  924. #pragma library Core
  925.  
  926. native heapspace();
  927.  
  928. native funcidx(const name[]);
  929.  
  930. native numargs();
  931. native getarg(arg, index=0);
  932. native setarg(arg, index=0, value);
  933.  
  934. native tolower(c);
  935. native toupper(c);
  936. native swapchars(c);
  937.  
  938. native random(max);
  939.  
  940. native min(value1, value2);
  941. native max(value1, value2);
  942. native clamp(value, min=cellmin, max=cellmax);
  943.  
  944. native getproperty(id=0, const name[]="", value=cellmin, string[]="");
  945. native setproperty(id=0, const name[]="", value=cellmin, const string[]="");
  946. native deleteproperty(id=0, const name[]="", value=cellmin);
  947. native existproperty(id=0, const name[]="", value=cellmin);
  948.  
  949.  
  950.  
  951.  
  952. //____[file.inc]______________________________________________________________________________
  953. #if defined _file_included
  954. #endinput
  955. #endif
  956. #define _file_included
  957. #pragma library File
  958.  
  959. enum filemode
  960. {
  961. io_read, /* file must exist */
  962. io_write, /* creates a new file */
  963. io_readwrite, /* opens an existing file, or creates a new file */
  964. io_append, /* appends to file (write-only) */
  965. }
  966.  
  967. enum seek_whence
  968. {
  969. seek_start,
  970. seek_current,
  971. seek_end,
  972. }
  973.  
  974. const EOF = -1;
  975.  
  976. native File:fopen(const name[], filemode: mode = io_readwrite);
  977. native bool:fclose(File: handle);
  978. native File:ftemp();
  979. native bool:fremove(const name[]);
  980.  
  981. native fwrite(File: handle, const string[]);
  982. native fread(File: handle, string[], size = sizeof string, bool: pack = false);
  983. native bool:fputchar(File: handle, value, bool: utf8 = true);
  984. native fgetchar(File: handle, value, bool: utf8 = true);
  985. native fblockwrite(File: handle, const buffer[], size = sizeof buffer);
  986. native fblockread(File: handle, buffer[], size = sizeof buffer);
  987.  
  988. native fseek(File: handle, position = 0, seek_whence: whence = seek_start);
  989. native flength(File: handle);
  990. native fexist(const pattern[]);
  991. native bool:fmatch(name[], const pattern[], index = 0, size = sizeof name);
  992.  
  993.  
  994.  
  995. //____[time.inc]______________________________________________________________________________
  996. #if defined _time_included
  997. #endinput
  998. #endif
  999. #define _time_included
  1000. #pragma library Time
  1001.  
  1002. native gettime(&hour=0, &minute=0, &second=0);
  1003. native getdate(&year=0, &month=0, &day=0);
  1004. native tickcount(&granularity=0);
  1005.  
  1006.  
  1007.  
  1008. //____[string.inc]____________________________________________________________________________
  1009. #if defined _string_included
  1010. #endinput
  1011. #endif
  1012. #define _string_included
  1013. #pragma library String
  1014.  
  1015. native strlen(const string[]);
  1016. native strpack(dest[], const source[], maxlength=sizeof dest);
  1017. native strunpack(dest[], const source[], maxlength=sizeof dest);
  1018. native strcat(dest[], const source[], maxlength=sizeof dest);
  1019.  
  1020. native strmid(dest[], const source[], start, end, maxlength=sizeof dest);
  1021. native bool: strins(string[], const substr[], pos, maxlength=sizeof string);
  1022. native bool: strdel(string[], start, end);
  1023.  
  1024. native strcmp(const string1[], const string2[], bool:ignorecase=false, length=cellmax);
  1025. native strfind(const string[], const sub[], bool:ignorecase=false, pos=0);
  1026.  
  1027. native strval(const string[]);
  1028. native valstr(dest[], value, bool:pack=false);
  1029. native bool: ispacked(const string[]);
  1030.  
  1031. native uudecode(dest[], const source[], maxlength=sizeof dest);
  1032. native uuencode(dest[], const source[], numbytes, maxlength=sizeof dest);
  1033. native memcpy(dest[], const source[], index=0, numbytes, maxlength=sizeof dest);
  1034.  
  1035.  
  1036.  
  1037. //____[datagram.inc]__________________________________________________________________________
  1038. #if defined _datagram_included
  1039. #endinput
  1040. #endif
  1041. #define _datagram_included
  1042. #pragma library DGram
  1043.  
  1044. native sendstring(const message[], const destination[]="");
  1045. native sendpacket(const packet[], size, const destination[]="");
  1046.  
  1047. native listenport(port);
  1048.  
  1049. forward @receivestring(const message[], const source[]);
  1050. forward @receivepacket(const packet[], size, const source[]);
  1051.  
  1052.  
  1053.  
  1054. //____[float.inc]_____________________________________________________________________________
  1055. #if defined _Float_included
  1056. #endinput
  1057. #endif
  1058. #define _Float_included
  1059. #pragma library Float
  1060.  
  1061. /* Different methods of rounding */
  1062. enum floatround_method {
  1063. floatround_round,
  1064. floatround_floor,
  1065. floatround_ceil,
  1066. floatround_tozero,
  1067. floatround_unbiased
  1068. }
  1069. enum anglemode {
  1070. radian,
  1071. degrees,
  1072. grades
  1073. }
  1074.  
  1075. /**************************************************/
  1076. /* Convert an integer into a floating point value */
  1077. native Float:float(value);
  1078.  
  1079. /**************************************************/
  1080. /* Convert a string into a floating point value */
  1081. native Float:floatstr(const string[]);
  1082.  
  1083. /**************************************************/
  1084. /* Multiple two floats together */
  1085. native Float:floatmul(Float:oper1, Float:oper2);
  1086.  
  1087. /**************************************************/
  1088. /* Divide the dividend float by the divisor float */
  1089. native Float:floatdiv(Float:dividend, Float:divisor);
  1090.  
  1091. /**************************************************/
  1092. /* Add two floats together */
  1093. native Float:floatadd(Float:oper1, Float:oper2);
  1094.  
  1095. /**************************************************/
  1096. /* Subtract oper2 float from oper1 float */
  1097. native Float:floatsub(Float:oper1, Float:oper2);
  1098.  
  1099. /**************************************************/
  1100. /* Return the fractional part of a float */
  1101. native Float:floatfract(Float:value);
  1102.  
  1103. /**************************************************/
  1104. /* Round a float into a integer value */
  1105. native floatround(Float:value, floatround_method:method=floatround_round);
  1106.  
  1107. /**************************************************/
  1108. /* Compare two integers. If the two elements are equal, return 0.
  1109. If the first argument is greater than the second argument, return 1,
  1110. If the first argument is less than the second argument, return -1. */
  1111. native floatcmp(Float:oper1, Float:oper2);
  1112.  
  1113. /**************************************************/
  1114. /* Return the square root of the input value, same as floatpower(value, 0.5) */
  1115. native Float:floatsqroot(Float:value);
  1116.  
  1117. /**************************************************/
  1118. /* Return the value raised to the power of the exponent */
  1119. native Float:floatpower(Float:value, Float:exponent);
  1120.  
  1121. /**************************************************/
  1122. /* Return the logarithm */
  1123. native Float:floatlog(Float:value, Float:base=10.0);
  1124.  
  1125. /**************************************************/
  1126. /* Return the sine, cosine or tangent. The input angle may be in radian,
  1127. degrees or grades. */
  1128. native Float:floatsin(Float:value, anglemode:mode=radian);
  1129. native Float:floatcos(Float:value, anglemode:mode=radian);
  1130. native Float:floattan(Float:value, anglemode:mode=radian);
  1131.  
  1132. /**************************************************/
  1133. /* Return the absolute value */
  1134. native Float:floatabs(Float:value);
  1135.  
  1136.  
  1137. /**************************************************/
  1138. #pragma rational Float
  1139.  
  1140. /* user defined operators */
  1141. native Float:operator*(Float:oper1, Float:oper2) = floatmul;
  1142. native Float:operator/(Float:oper1, Float:oper2) = floatdiv;
  1143. native Float:operator+(Float:oper1, Float:oper2) = floatadd;
  1144. native Float:operator-(Float:oper1, Float:oper2) = floatsub;
  1145. native Float:operator=(oper) = float;
  1146.  
  1147. stock Float:operator++(Float:oper)
  1148. return oper+1.0;
  1149.  
  1150. stock Float:operator--(Float:oper)
  1151. return oper-1.0;
  1152.  
  1153. stock Float:operator-(Float:oper)
  1154. return oper^Float:cellmin; /* IEEE values are sign/magnitude */
  1155.  
  1156. stock Float:operator*(Float:oper1, oper2)
  1157. return floatmul(oper1, float(oper2)); /* "*" is commutative */
  1158.  
  1159. stock Float:operator/(Float:oper1, oper2)
  1160. return floatdiv(oper1, float(oper2));
  1161.  
  1162. stock Float:operator/(oper1, Float:oper2)
  1163. return floatdiv(float(oper1), oper2);
  1164.  
  1165. stock Float:operator+(Float:oper1, oper2)
  1166. return floatadd(oper1, float(oper2)); /* "+" is commutative */
  1167.  
  1168. stock Float:operator-(Float:oper1, oper2)
  1169. return floatsub(oper1, float(oper2));
  1170.  
  1171. stock Float:operator-(oper1, Float:oper2)
  1172. return floatsub(float(oper1), oper2);
  1173.  
  1174. stock bool:operator==(Float:oper1, Float:oper2)
  1175. return floatcmp(oper1, oper2) == 0;
  1176.  
  1177. stock bool:operator==(Float:oper1, oper2)
  1178. return floatcmp(oper1, float(oper2)) == 0; /* "==" is commutative */
  1179.  
  1180. stock bool:operator!=(Float:oper1, Float:oper2)
  1181. return floatcmp(oper1, oper2) != 0;
  1182.  
  1183. stock bool:operator!=(Float:oper1, oper2)
  1184. return floatcmp(oper1, float(oper2)) != 0; /* "!=" is commutative */
  1185.  
  1186. stock bool:operator>(Float:oper1, Float:oper2)
  1187. return floatcmp(oper1, oper2) > 0;
  1188.  
  1189. stock bool:operator>(Float:oper1, oper2)
  1190. return floatcmp(oper1, float(oper2)) > 0;
  1191.  
  1192. stock bool:operator>(oper1, Float:oper2)
  1193. return floatcmp(float(oper1), oper2) > 0;
  1194.  
  1195. stock bool:operator>=(Float:oper1, Float:oper2)
  1196. return floatcmp(oper1, oper2) >= 0;
  1197.  
  1198. stock bool:operator>=(Float:oper1, oper2)
  1199. return floatcmp(oper1, float(oper2)) >= 0;
  1200.  
  1201. stock bool:operator>=(oper1, Float:oper2)
  1202. return floatcmp(float(oper1), oper2) >= 0;
  1203.  
  1204. stock bool:operator<(Float:oper1, Float:oper2)
  1205. return floatcmp(oper1, oper2) < 0;
  1206.  
  1207. stock bool:operator<(Float:oper1, oper2)
  1208. return floatcmp(oper1, float(oper2)) < 0;
  1209.  
  1210. stock bool:operator<(oper1, Float:oper2)
  1211. return floatcmp(float(oper1), oper2) < 0;
  1212.  
  1213. stock bool:operator<=(Float:oper1, Float:oper2)
  1214. return floatcmp(oper1, oper2) <= 0;
  1215.  
  1216. stock bool:operator<=(Float:oper1, oper2)
  1217. return floatcmp(oper1, float(oper2)) <= 0;
  1218.  
  1219. stock bool:operator<=(oper1, Float:oper2)
  1220. return floatcmp(float(oper1), oper2) <= 0;
  1221.  
  1222. stock bool:operator!(Float:oper)
  1223. return (_:oper & cellmax) == 0;
  1224.  
  1225. /* forbidden operations */
  1226. forward operator%(Float:oper1, Float:oper2);
  1227. forward operator%(Float:oper1, oper2);
  1228. forward operator%(oper1, Float:oper2);
  1229.  
  1230. //____[morphic.inc]___________________________________________________________________________
  1231.  
  1232. new pdistance = 1;
  1233. forward NameTimer();
  1234. Float:GetPointDistanceToPointExMorph(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2)
  1235. {
  1236. new Float:x, Float:y, Float:z;
  1237. x = x1-x2;
  1238. y = y1-y2;
  1239. z = z1-z2;
  1240. return floatsqroot(x*x+y*y+z*z);
  1241. }
  1242. stock SetPDistance(dista)
  1243. {
  1244. pdistance = dista;
  1245. }
  1246. stock GetPDistance()
  1247. {
  1248. return pdistance;
  1249. }
  1250. stock EnableDistancedNameTag(delay)
  1251. {
  1252. SetTimer("NameTimer",delay,1);
  1253. }
  1254. forward NameTimer();
  1255. public NameTimer()
  1256. {
  1257. for(new i = 0;i < MAX_PLAYERS;i++)
  1258. {
  1259. if(IsPlayerConnected(i))
  1260. {
  1261. for(new q = 0;q < MAX_PLAYERS;q++)
  1262. {
  1263. if(IsPlayerConnected(q))
  1264. {
  1265. new Float:p1x;
  1266. new Float:p1y;
  1267. new Float:p1z;
  1268. new Float:p2x;
  1269. new Float:p2y;
  1270. new Float:p2z;
  1271. if(IsPlayerConnected(i) && IsPlayerConnected(q))
  1272. {
  1273. GetPlayerPos(i,p1x,p1y,p1z);
  1274. GetPlayerPos(q,p2x,p2y,p2z);
  1275. if(GetPointDistanceToPointExMorph(p1x,p1y,p1z,p2x,p2y,p2z) < pdistance)
  1276. {
  1277. ShowPlayerNameTagForPlayer(i,q,1);
  1278. }
  1279. else
  1280. {
  1281. ShowPlayerNameTagForPlayer(i,q,0);
  1282. }
  1283. }}}}}
  1284. }
  1285.  
  1286.  
  1287.  
  1288. //____[utils.inc]_____________________________________________________________________________
  1289. IsNumeric(const string[])
  1290. {
  1291. for (new i = 0, j = strlen(string); i < j; i++)
  1292. {
  1293. if (string[i] > '9' || string[i] < '0') return 0;
  1294. }
  1295. return 1;
  1296. }
  1297.  
  1298. ReturnUser(text[], playerid = INVALID_PLAYER_ID)
  1299. {
  1300. new pos = 0;
  1301. while (text[pos] < 0x21) // Strip out leading spaces
  1302. {
  1303. if (text[pos] == 0) return INVALID_PLAYER_ID; // No passed text
  1304. pos++;
  1305. }
  1306. new userid = INVALID_PLAYER_ID;
  1307. if (IsNumeric(text[pos])) // Check whole passed string
  1308. {
  1309. // If they have a numeric name you have a problem (although names are checked on id failure)
  1310. userid = strval(text[pos]);
  1311. if (userid >=0 && userid < MAX_PLAYERS)
  1312. {
  1313. if(!IsPlayerConnected(userid))
  1314. {
  1315. /*if (playerid != INVALID_PLAYER_ID)
  1316. {
  1317. SendClientMessage(playerid, 0xFF0000AA, "User not connected");
  1318. }*/
  1319. userid = INVALID_PLAYER_ID;
  1320. }
  1321. else
  1322. {
  1323. return userid; // A player was found
  1324. }
  1325. }
  1326. /*else
  1327. {
  1328. if (playerid != INVALID_PLAYER_ID)
  1329. {
  1330. SendClientMessage(playerid, 0xFF0000AA, "Invalid user ID");
  1331. }
  1332. userid = INVALID_PLAYER_ID;
  1333. }
  1334. return userid;*/
  1335. // Removed for fallthrough code
  1336. }
  1337. // They entered [part of] a name or the id search failed (check names just incase)
  1338. new len = strlen(text[pos]);
  1339. new count = 0;
  1340. new name[MAX_PLAYER_NAME];
  1341. for (new i = 0; i < MAX_PLAYERS; i++)
  1342. {
  1343. if (IsPlayerConnected(i))
  1344. {
  1345. GetPlayerName(i, name, sizeof (name));
  1346. if (strcmp(name, text[pos], true, len) == 0) // Check segment of name
  1347. {
  1348. if (len == strlen(name)) // Exact match
  1349. {
  1350. return i; // Return the exact player on an exact match
  1351. // Otherwise if there are two players:
  1352. // Me and MeYou any time you entered Me it would find both
  1353. // And never be able to return just Me's id
  1354. }
  1355. else // Partial match
  1356. {
  1357. count++;
  1358. userid = i;
  1359. }
  1360. }
  1361. }
  1362. }
  1363. if (count != 1)
  1364. {
  1365. if (playerid != INVALID_PLAYER_ID)
  1366. {
  1367. if (count)
  1368. {
  1369. SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
  1370. }
  1371. else
  1372. {
  1373. SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
  1374. }
  1375. }
  1376. userid = INVALID_PLAYER_ID;
  1377. }
  1378. return userid; // INVALID_USER_ID for bad return
  1379. }
Add Comment
Please, Sign In to add comment