Advertisement
Guest User

Simple Job Include (c) by Kaliber

a guest
Jan 16th, 2013
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.60 KB | None | 0 0
  1. /* SA-MP Include Jobsystem
  2.  *
  3.  * (c) by Kaliber, 2013
  4.  *
  5.  */
  6. #if !defined _samp_included
  7.     #include <a_samp>
  8. #endif
  9. #if defined _job_included
  10.     #endinput
  11. #else
  12.     #define _job_included
  13. #endif
  14. #if !defined MAX_JOBS
  15.     #define MAX_JOBS 20
  16. #endif
  17. #define INVALID_LENGTH -1
  18. enum J_ENUM {
  19.     Float:J_X,
  20.     Float:J_Y,
  21.     Float:J_Z,
  22.     J_ID,
  23.     J_NAME[64],
  24.     Float:S_X,
  25.     Float:S_Y,
  26.     Float:S_Z,
  27.     Float:S_A,
  28.     S_INT,
  29.     S_WORLD
  30. }
  31. static JobVal[MAX_PLAYERS],JobInfo[MAX_JOBS][J_ENUM],JobCars[MAX_VEHICLES];
  32. forward _OnPlayerSpawn(playerid);
  33. public OnPlayerSpawn(playerid) {
  34.     new jobid = JobVal[playerid];
  35.     if(jobid > 0) {
  36.         SetPlayerInterior(playerid,JobInfo[jobid][S_INT]);
  37.         SetPlayerVirtualWorld(playerid,JobInfo[jobid][S_WORLD]);
  38.         SetPlayerPos(playerid,JobInfo[jobid][S_X],JobInfo[jobid][S_Y],JobInfo[jobid][S_Z]);
  39.         SetPlayerFacingAngle(playerid,JobInfo[jobid][S_A]);
  40.         SetCameraBehindPlayer(playerid);
  41.     }
  42.     return CallLocalFunction("_OnPlayerSpawn","i",playerid);
  43. }
  44. #if defined _ALS_OnPlayerSpawn
  45.     #undef OnPlayerSpawn
  46. #else
  47.     #define _ALS_OnPlayerSpawn
  48. #endif
  49. #define OnPlayerSpawn _OnPlayerSpawn
  50.  
  51. stock SetJobSpawn(jobid,Float:x,Float:y,Float:z,Float:a,interior,world) {
  52.     JobInfo[jobid][S_X]=x,JobInfo[jobid][S_Y]=y,JobInfo[jobid][S_Z]=z,JobInfo[jobid][S_a]=a,JobInfo[jobid][S_INT]=interior,JobInfo[jobid][S_WORLD]=world;
  53. }
  54. stock GetJobRange(playerid) {
  55.     new jobid = JobVal[playerid];
  56.     if(IsPlayerInRangeOfPoint(playierid,2.0,JobInfo[jobid][J_X],JobInfo[jobid][J_Y],JobInfo[jobid][J_Z])) return JobInfo[jobid][J_ID];
  57.     else return INVALID_LENGTH;
  58. }
  59. stock CreateJobIcon(jobid,Float:X,Float:Y,Float:Z,text[]) {
  60.     CreatePickup(1239,23,X,Y,Z,-1);
  61.     Create3DTextLabel(text,0xFF4800FF,X,Y,Z,30.0,0,0);
  62.     JobInfo[jobid][J_X]=X,JobInfo[jobid][J_Y]=Y,JobInfo[jobid][J_Z]=Z,JobInfo[jobid][J_ID]=jobid;
  63. }
  64. stock SetPlayerJob(playerid,jobid) {
  65.     JobVal[playerid] = jobid;
  66. }
  67. stock GetPlayerJob(playerid) {
  68.     return JobVal[playerid];
  69. }
  70. stock SetJobName(jobid,name[]) {
  71.     if(strlen(name) > 64) return INVALID_LENGTH;
  72.     format(JobInfo[jobid][J_NAME],64,name);
  73.     return 1;
  74. }
  75. stock GetJobName(jobid,name[],len) {
  76.     if(len <= 0 || len > 64) return INVALID_LENGTH;
  77.     format(name,len,JobInfo[jobid][J_NAME]);
  78.     return 1;
  79. }
  80. stock CreateJobVehicle(jobid,model,Float:X,Float:Y,Float:Z,Float:A,c1,c2,respawn=-1) {
  81.     new car = CreateVehicle(model,X,Y,Z,A,c1,c2,respawn);
  82.     JobCars[car] = jobid;
  83.     return car;
  84. }
  85. stock GetJobCar(veh) {
  86.     return JobCars[veh];
  87. }
  88. stock SendJobMessage(jobid,farbe,string[]) {
  89.     for(new i; i<MAX_PLAYERS; i++) {
  90.         if(JobInfo[i] == jobid && IsPlayerConnected(i)) SendClientMessage(i,farbe,string);
  91.     }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement