Guest User

Untitled

a guest
Oct 31st, 2012
226
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.83 KB | None | 0 0
  1. /*  SA-MP Functions
  2.  *
  3.  *  (c) Copyright 2005-2012, SA-MP Team
  4.  *
  5.  */
  6.  
  7. #if defined _samp_included
  8.     #endinput
  9. #endif
  10. #define _samp_included
  11. #pragma library samp
  12.  
  13. #pragma tabsize 4
  14. // Ignores warning 217 for properly indented PAWNO code
  15. // It's tab size is 4 and often uses 4 spaces instead, PAWNCC's is 8
  16.  
  17. #include <core>
  18. #include <float>
  19. #include <string>
  20. #include <file>
  21. #include <time>
  22. #include <datagram>
  23. #include <a_players>
  24. #include <a_vehicles>
  25. #include <a_objects>
  26. #include <a_sampdb>
  27.  
  28. // Limits and internal constants
  29. #define MAX_PLAYER_NAME                         (24)
  30. #define MAX_PLAYERS                             (500)
  31. #define MAX_VEHICLES                            (2000)
  32. #define INVALID_PLAYER_ID                       (0xFFFF)
  33. #define INVALID_VEHICLE_ID                      (0xFFFF)
  34. #define NO_TEAM                                 (255)
  35. #define MAX_OBJECTS                             (1000)
  36. #define INVALID_OBJECT_ID                       (0xFFFF)
  37. #define MAX_GANG_ZONES                          (1024)
  38. #define MAX_TEXT_DRAWS                          (2048)
  39. #define MAX_PLAYER_TEXT_DRAWS                   (256)
  40. #define MAX_MENUS                               (128)
  41. #define MAX_3DTEXT_GLOBAL                       (1024)
  42. #define MAX_3DTEXT_PLAYER                       (1024)
  43. #define MAX_PICKUPS                             (4096)
  44. #define INVALID_MENU                            (0xFF)
  45. #define INVALID_TEXT_DRAW                       (0xFFFF)
  46. #define INVALID_GANG_ZONE                       (-1)
  47. #define INVALID_3DTEXT_ID                       (0xFFFF)
  48.  
  49. // --------------------------------------------------
  50. // Natives
  51. // --------------------------------------------------
  52.  
  53. // Util
  54. native print(const string[]);
  55. native printf(const format[], {Float,_}:...);
  56. native format(output[], len, const format[], {Float,_}:...);
  57. native SendClientMessage(playerid, color, const message[]);
  58. native SendClientMessageToAll(color, const message[]);
  59. native SendPlayerMessageToPlayer(playerid, senderid, const message[]);
  60. native SendPlayerMessageToAll(senderid, const message[]);
  61. native SendDeathMessage(killer,killee,weapon);
  62. native GameTextForAll(const string[],time,style);
  63. native GameTextForPlayer(playerid,const string[],time,style);
  64. native SetTimer(funcname[], interval, repeating);
  65. native SetTimerEx(funcname[], interval, repeating, const format[], {Float,_}:...);
  66. native KillTimer(timerid);
  67. native GetTickCount();
  68. native GetMaxPlayers();
  69. native CallRemoteFunction(const function[], const format[], {Float,_}:...);
  70. native CallLocalFunction(const function[], const format[], {Float,_}:...);
  71. native Float:asin(Float:value);
  72. native Float:acos(Float:value);
  73. native Float:atan(Float:value);
  74. native Float:atan2(Float:x, Float:y);
  75.  
  76. // Game
  77. native SetGameModeText(const string[]);
  78. native SetTeamCount(count);
  79. native AddPlayerClass(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo);
  80. 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);
  81. native AddStaticVehicle(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2);
  82. native AddStaticVehicleEx(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, color1, color2, respawn_delay);
  83. native AddStaticPickup(model, type, Float:X, Float:Y, Float:Z, virtualworld = 0);
  84. native CreatePickup(model, type, Float:X, Float:Y, Float:Z, virtualworld = 0);
  85. native DestroyPickup(pickup);
  86. native ShowNameTags(show);
  87. native ShowPlayerMarkers(mode);
  88. native GameModeExit();
  89. native SetWorldTime(hour);
  90. native GetWeaponName(weaponid, const weapon[], len);
  91. native EnableTirePopping(enable);
  92. native AllowInteriorWeapons(allow);
  93. native SetWeather(weatherid);
  94. native SetGravity(Float:gravity);
  95. native AllowAdminTeleport(allow);
  96. native SetDeathDropAmount(amount);
  97. native CreateExplosion(Float:X, Float:Y, Float:Z, type, Float:Radius);
  98. native EnableZoneNames(enable);
  99. native UsePlayerPedAnims();     // Will cause the players to use CJ running/walking animations
  100. native DisableInteriorEnterExits();  // will disable all interior enter/exits in the game.
  101. native SetNameTagDrawDistance(Float:distance); // Distance at which nametags will start rendering on the client.
  102. native DisableNameTagLOS(); // Disables the nametag Line-Of-Sight checking
  103. native LimitGlobalChatRadius(Float:chat_radius);
  104. native LimitPlayerMarkerRadius(Float:marker_radius);
  105.  
  106. // Npc
  107. native ConnectNPC(name[], script[]);
  108. native IsPlayerNPC(playerid);
  109.  
  110. // Admin
  111. native IsPlayerAdmin(playerid);
  112. native Kick(playerid);
  113. native Ban(playerid);
  114. native BanEx(playerid, const reason[]);
  115. native SendRconCommand(command[]);
  116. native GetServerVarAsString(const varname[], buffer[], len);
  117. native GetServerVarAsInt(const varname[]);
  118. native GetServerVarAsBool(const varname[]);
  119. native GetPlayerNetworkStats(playerid, retstr[], retstr_size);
  120. native GetNetworkStats(retstr[], retstr_size);
  121. native GetPlayerVersion(playerid, const version[], len); // Returns the SA-MP client revision as reported by the player
  122.  
  123. // Menu
  124. native Menu:CreateMenu(const title[], columns, Float:x, Float:y, Float:col1width, Float:col2width = 0.0);
  125. native DestroyMenu(Menu:menuid);
  126. native AddMenuItem(Menu:menuid, column, const menutext[]);
  127. native SetMenuColumnHeader(Menu:menuid, column, const columnheader[]);
  128. native ShowMenuForPlayer(Menu:menuid, playerid);
  129. native HideMenuForPlayer(Menu:menuid, playerid);
  130. native IsValidMenu(Menu:menuid);
  131. native DisableMenu(Menu:menuid);
  132. native DisableMenuRow(Menu:menuid, row);
  133. native Menu:GetPlayerMenu(playerid);
  134.  
  135. // Text Draw
  136. native Text:TextDrawCreate(Float:x, Float:y, text[]);
  137. native TextDrawDestroy(Text:text);
  138. native TextDrawLetterSize(Text:text, Float:x, Float:y);
  139. native TextDrawTextSize(Text:text, Float:x, Float:y);
  140. native TextDrawAlignment(Text:text, alignment);
  141. native TextDrawColor(Text:text, color);
  142. native TextDrawUseBox(Text:text, use);
  143. native TextDrawBoxColor(Text:text, color);
  144. native TextDrawSetShadow(Text:text, size);
  145. native TextDrawSetOutline(Text:text, size);
  146. native TextDrawBackgroundColor(Text:text, color);
  147. native TextDrawFont(Text:text, font);
  148. native TextDrawSetProportional(Text:text, set);
  149. native TextDrawSetSelectable(Text:text, set);
  150. native TextDrawShowForPlayer(playerid, Text:text);
  151. native TextDrawHideForPlayer(playerid, Text:text);
  152. native TextDrawShowForAll(Text:text);
  153. native TextDrawHideForAll(Text:text);
  154. native TextDrawSetString(Text:text, string[]);
  155.  
  156. // Gang Zones
  157. native GangZoneCreate(Float:minx, Float:miny, Float:maxx, Float:maxy);
  158. native GangZoneDestroy(zone);
  159. native GangZoneShowForPlayer(playerid, zone, color);
  160. native GangZoneShowForAll(zone, color);
  161. native GangZoneHideForPlayer(playerid, zone);
  162. native GangZoneHideForAll(zone);
  163. native GangZoneFlashForPlayer(playerid, zone, flashcolor);
  164. native GangZoneFlashForAll(zone, flashcolor);
  165. native GangZoneStopFlashForPlayer(playerid, zone);
  166. native GangZoneStopFlashForAll(zone);
  167.  
  168. // Global 3D Text Labels
  169. native Text3D:Create3DTextLabel(text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, virtualworld, testLOS=0);
  170. native Delete3DTextLabel(Text3D:id);
  171. native Attach3DTextLabelToPlayer(Text3D:id, playerid, Float:OffsetX, Float:OffsetY, Float:OffsetZ);
  172. native Attach3DTextLabelToVehicle(Text3D:id, vehicleid, Float:OffsetX, Float:OffsetY, Float:OffsetZ);
  173. native Update3DTextLabelText(Text3D:id, color, text[]);
  174.  
  175. // Per-player 3D Text Labels
  176. native PlayerText3D:CreatePlayer3DTextLabel(playerid, text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, attachedplayer=INVALID_PLAYER_ID, attachedvehicle=INVALID_VEHICLE_ID, testLOS=0);
  177. native DeletePlayer3DTextLabel(playerid, PlayerText3D:id);
  178. native UpdatePlayer3DTextLabelText(playerid, PlayerText3D:id, color, text[]);
  179.  
  180. // Player GUI Dialog
  181. #define DIALOG_STYLE_MSGBOX     0
  182. #define DIALOG_STYLE_INPUT      1
  183. #define DIALOG_STYLE_LIST       2
  184. #define DIALOG_STYLE_PASSWORD   3
  185.  
  186. native ShowPlayerDialog(playerid, dialogid, style, caption[], info[], button1[], button2[]);
  187.  
  188. // --------------------------------------------------
  189. // Defines
  190. // --------------------------------------------------
  191.  
  192. // States
  193. #define PLAYER_STATE_NONE                       (0)
  194. #define PLAYER_STATE_ONFOOT                     (1)
  195. #define PLAYER_STATE_DRIVER                     (2)
  196. #define PLAYER_STATE_PASSENGER                  (3)
  197. #define PLAYER_STATE_EXIT_VEHICLE               (4) // (used internally)
  198. #define PLAYER_STATE_ENTER_VEHICLE_DRIVER       (5) // (used internally)
  199. #define PLAYER_STATE_ENTER_VEHICLE_PASSENGER    (6) // (used internally)
  200. #define PLAYER_STATE_WASTED                     (7)
  201. #define PLAYER_STATE_SPAWNED                    (8)
  202. #define PLAYER_STATE_SPECTATING                 (9)
  203.  
  204. // Marker modes used by ShowPlayerMarkers()
  205. #define PLAYER_MARKERS_MODE_OFF         (0)
  206. #define PLAYER_MARKERS_MODE_GLOBAL      (1)
  207. #define PLAYER_MARKERS_MODE_STREAMED    (2)
  208.  
  209. // Weapons
  210. #define WEAPON_BRASSKNUCKLE             (1)
  211. #define WEAPON_GOLFCLUB                 (2)
  212. #define WEAPON_NITESTICK                (3)
  213. #define WEAPON_KNIFE                    (4)
  214. #define WEAPON_BAT                      (5)
  215. #define WEAPON_SHOVEL                   (6)
  216. #define WEAPON_POOLSTICK                (7)
  217. #define WEAPON_KATANA                   (8)
  218. #define WEAPON_CHAINSAW                 (9)
  219. #define WEAPON_DILDO                    (10)
  220. #define WEAPON_DILDO2                   (11)
  221. #define WEAPON_VIBRATOR                 (12)
  222. #define WEAPON_VIBRATOR2                (13)
  223. #define WEAPON_FLOWER                   (14)
  224. #define WEAPON_CANE                     (15)
  225. #define WEAPON_GRENADE                  (16)
  226. #define WEAPON_TEARGAS                  (17)
  227. #define WEAPON_MOLTOV                   (18)
  228. #define WEAPON_COLT45                   (22)
  229. #define WEAPON_SILENCED                 (23)
  230. #define WEAPON_DEAGLE                   (24)
  231. #define WEAPON_SHOTGUN                  (25)
  232. #define WEAPON_SAWEDOFF                 (26)
  233. #define WEAPON_SHOTGSPA                 (27)
  234. #define WEAPON_UZI                      (28)
  235. #define WEAPON_MP5                      (29)
  236. #define WEAPON_AK47                     (30)
  237. #define WEAPON_M4                       (31)
  238. #define WEAPON_TEC9                     (32)
  239. #define WEAPON_RIFLE                    (33)
  240. #define WEAPON_SNIPER                   (34)
  241. #define WEAPON_ROCKETLAUNCHER           (35)
  242. #define WEAPON_HEATSEEKER               (36)
  243. #define WEAPON_FLAMETHROWER             (37)
  244. #define WEAPON_MINIGUN                  (38)
  245. #define WEAPON_SATCHEL                  (39)
  246. #define WEAPON_BOMB                     (40)
  247. #define WEAPON_SPRAYCAN                 (41)
  248. #define WEAPON_FIREEXTINGUISHER         (42)
  249. #define WEAPON_CAMERA                   (43)
  250. #define WEAPON_PARACHUTE                (46)
  251. #define WEAPON_VEHICLE                  (49)
  252. #define WEAPON_DROWN                    (53)
  253. #define WEAPON_COLLISION                (54)
  254.  
  255. // Keys
  256. #define KEY_ACTION              (1)
  257. #define KEY_CROUCH              (2)
  258. #define KEY_FIRE                (4)
  259. #define KEY_SPRINT              (8)
  260. #define KEY_SECONDARY_ATTACK    (16)
  261. #define KEY_JUMP                (32)
  262. #define KEY_LOOK_RIGHT          (64)
  263. #define KEY_HANDBRAKE           (128)
  264. #define KEY_LOOK_LEFT           (256)
  265. #define KEY_SUBMISSION          (512)
  266. #define KEY_LOOK_BEHIND         (512)
  267. #define KEY_WALK                (1024)
  268. #define KEY_ANALOG_UP           (2048)
  269. #define KEY_ANALOG_DOWN         (4096)
  270. #define KEY_ANALOG_LEFT         (8192)
  271. #define KEY_ANALOG_RIGHT        (16384)
  272. #define KEY_YES                 (65536)
  273. #define KEY_NO                  (131072)
  274. #define KEY_CTRL_BACK           (262144)
  275.  
  276. #define KEY_UP                  (-128)
  277. #define KEY_DOWN                (128)
  278. #define KEY_LEFT                (-128)
  279. #define KEY_RIGHT               (128)
  280.  
  281. // --------------------------------------------------
  282. // Forwards (Callback declarations)
  283. // --------------------------------------------------
  284.  
  285. forward OnGameModeInit();
  286. forward OnGameModeExit();
  287. forward OnFilterScriptInit();
  288. forward OnFilterScriptExit();
  289. forward OnPlayerConnect(playerid);
  290. forward OnPlayerDisconnect(playerid, reason);
  291. forward OnPlayerSpawn(playerid);
  292. forward OnPlayerDeath(playerid, killerid, reason);
  293. forward OnVehicleSpawn(vehicleid);
  294. forward OnVehicleDeath(vehicleid, killerid);
  295. forward OnPlayerText(playerid, text[]);
  296. forward OnPlayerCommandText(playerid, cmdtext[]);
  297. forward OnPlayerRequestClass(playerid, classid);
  298. forward OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
  299. forward OnPlayerExitVehicle(playerid, vehicleid);
  300. forward OnPlayerStateChange(playerid, newstate, oldstate);
  301. forward OnPlayerEnterCheckpoint(playerid);
  302. forward OnPlayerLeaveCheckpoint(playerid);
  303. forward OnPlayerEnterRaceCheckpoint(playerid);
  304. forward OnPlayerLeaveRaceCheckpoint(playerid);
  305. forward OnRconCommand(cmd[]);
  306. forward OnPlayerRequestSpawn(playerid);
  307. forward OnObjectMoved(objectid);
  308. forward OnPlayerObjectMoved(playerid, objectid);
  309. forward OnPlayerPickUpPickup(playerid, pickupid);
  310. forward OnVehicleMod(playerid, vehicleid, componentid);
  311. forward OnEnterExitModShop(playerid, enterexit, interiorid);
  312. forward OnVehiclePaintjob(playerid, vehicleid, paintjobid);
  313. forward OnVehicleRespray(playerid, vehicleid, color1, color2);
  314. forward OnVehicleDamageStatusUpdate(vehicleid, playerid);
  315. forward OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat);
  316. forward OnPlayerSelectedMenuRow(playerid, row);
  317. forward OnPlayerExitedMenu(playerid);
  318. forward OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid);
  319. forward OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
  320. forward OnRconLoginAttempt( ip[], password[], success );
  321. forward OnPlayerUpdate(playerid);
  322. forward OnPlayerStreamIn(playerid, forplayerid);
  323. forward OnPlayerStreamOut(playerid, forplayerid);
  324. forward OnVehicleStreamIn(vehicleid, forplayerid);
  325. forward OnVehicleStreamOut(vehicleid, forplayerid);
  326. forward OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
  327. forward OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid);
  328. forward OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid);
  329. forward OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ);
  330. forward OnPlayerClickTextDraw(playerid, Text:clickedid);
  331. forward OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid);
  332.  
  333. #define CLICK_SOURCE_SCOREBOARD     0
  334. forward OnPlayerClickPlayer(playerid, clickedplayerid, source);
  335.  
  336. #define EDIT_RESPONSE_CANCEL        0
  337. #define EDIT_RESPONSE_FINAL         1
  338. #define EDIT_RESPONSE_UPDATE        2
  339.  
  340. forward OnPlayerEditObject( playerid, playerobject, objectid, response,
  341. Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ );
  342.  
  343. forward OnPlayerEditAttachedObject( playerid, response, index, modelid, boneid,
  344. Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ,
  345. Float:fRotX, Float:fRotY, Float:fRotZ,
  346. Float:fScaleX, Float:fScaleY, Float:fScaleZ );
  347.  
  348. #define SELECT_OBJECT_GLOBAL_OBJECT 1
  349. #define SELECT_OBJECT_PLAYER_OBJECT 2
  350.  
  351. forward OnPlayerSelectObject(playerid, type, objectid, modelid, Float:fX, Float:fY, Float:fZ);
  352.  
  353. // --------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment