Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* SA-MP Include Jobsystem
- *
- * (c) by Kaliber, 2013
- *
- */
- #if !defined _samp_included
- #include <a_samp>
- #endif
- #if defined _job_included
- #endinput
- #else
- #define _job_included
- #endif
- #if !defined MAX_JOBS
- #define MAX_JOBS 20
- #endif
- #define INVALID_LENGTH -1
- enum J_ENUM {
- Float:J_X,
- Float:J_Y,
- Float:J_Z,
- J_ID,
- J_NAME[64],
- Float:S_X,
- Float:S_Y,
- Float:S_Z,
- Float:S_A,
- S_INT,
- S_WORLD
- }
- static JobVal[MAX_PLAYERS],JobInfo[MAX_JOBS][J_ENUM],JobCars[MAX_VEHICLES];
- forward _OnPlayerSpawn(playerid);
- public OnPlayerSpawn(playerid) {
- new jobid = JobVal[playerid];
- if(jobid > 0) {
- SetPlayerInterior(playerid,JobInfo[jobid][S_INT]);
- SetPlayerVirtualWorld(playerid,JobInfo[jobid][S_WORLD]);
- SetPlayerPos(playerid,JobInfo[jobid][S_X],JobInfo[jobid][S_Y],JobInfo[jobid][S_Z]);
- SetPlayerFacingAngle(playerid,JobInfo[jobid][S_A]);
- SetCameraBehindPlayer(playerid);
- }
- return CallLocalFunction("_OnPlayerSpawn","i",playerid);
- }
- #if defined _ALS_OnPlayerSpawn
- #undef OnPlayerSpawn
- #else
- #define _ALS_OnPlayerSpawn
- #endif
- #define OnPlayerSpawn _OnPlayerSpawn
- stock SetJobSpawn(jobid,Float:x,Float:y,Float:z,Float:a,interior,world) {
- 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;
- }
- stock GetJobRange(playerid) {
- new jobid = JobVal[playerid];
- if(IsPlayerInRangeOfPoint(playierid,2.0,JobInfo[jobid][J_X],JobInfo[jobid][J_Y],JobInfo[jobid][J_Z])) return JobInfo[jobid][J_ID];
- else return INVALID_LENGTH;
- }
- stock CreateJobIcon(jobid,Float:X,Float:Y,Float:Z,text[]) {
- CreatePickup(1239,23,X,Y,Z,-1);
- Create3DTextLabel(text,0xFF4800FF,X,Y,Z,30.0,0,0);
- JobInfo[jobid][J_X]=X,JobInfo[jobid][J_Y]=Y,JobInfo[jobid][J_Z]=Z,JobInfo[jobid][J_ID]=jobid;
- }
- stock SetPlayerJob(playerid,jobid) {
- JobVal[playerid] = jobid;
- }
- stock GetPlayerJob(playerid) {
- return JobVal[playerid];
- }
- stock SetJobName(jobid,name[]) {
- if(strlen(name) > 64) return INVALID_LENGTH;
- format(JobInfo[jobid][J_NAME],64,name);
- return 1;
- }
- stock GetJobName(jobid,name[],len) {
- if(len <= 0 || len > 64) return INVALID_LENGTH;
- format(name,len,JobInfo[jobid][J_NAME]);
- return 1;
- }
- stock CreateJobVehicle(jobid,model,Float:X,Float:Y,Float:Z,Float:A,c1,c2,respawn=-1) {
- new car = CreateVehicle(model,X,Y,Z,A,c1,c2,respawn);
- JobCars[car] = jobid;
- return car;
- }
- stock GetJobCar(veh) {
- return JobCars[veh];
- }
- stock SendJobMessage(jobid,farbe,string[]) {
- for(new i; i<MAX_PLAYERS; i++) {
- if(JobInfo[i] == jobid && IsPlayerConnected(i)) SendClientMessage(i,farbe,string);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement