Advertisement
Guest User

KineticNRG

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