Advertisement
Isigar

IJobs4

Nov 29th, 2013
510
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.46 KB | None | 0 0
  1. #if defined _ijob_included
  2.   #endinput
  3. #endif
  4. #define _ijob_included
  5. /*=============================================================================================================*/
  6. /*=============================================================================================================*/
  7. #define MAX_JOBS 50
  8. #define C_GR 0x00B500FF
  9. #define C_R 0xDC0000FF
  10. #define C_Y 0xC87D00FF
  11. #define Y_W 0xFFFFFFFF
  12.  
  13. #define green "{00B500}"
  14. #define red "{DC0000}"
  15. #define inform "{C87D00}"
  16. #define white "{FFFFFF}"
  17. #define JoinMess ""white"Pro připojení do práce strickni "red"Y"
  18. #define ChangeSkinMess ""white"Pro změnu pracovního skinu stiskni "red"N"
  19.  
  20. #define IsPlayerInSphere(%0,%1,%2,%3,%4) IsPlayerInRangeOfPoint(%0,%4,%1,%2,%3)
  21. #define PRESSED(%0) \
  22.     (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
  23.  
  24. /*=============================================================================================================*/
  25. enum JobData
  26. {
  27.     jID,
  28.     jName,
  29.     Float:jX,
  30.     Float:jY,
  31.     Float:jZ,
  32.     jSkin1,
  33.     jSkin2,
  34.     jSkin3,
  35.     jW1,
  36.     jW2,
  37.     jW3,
  38.     jA1,
  39.     jA2,
  40.     jA3
  41. }
  42. new JData[MAX_JOBS][JobData];
  43.  
  44. enum JobPlayerData
  45. {
  46.     jActualJob,
  47.     jMoney,
  48.     jPoints,
  49.     jLevel,
  50. }
  51. new JPD[MAX_PLAYERS][JobPlayerData];
  52. /*=============================================================================================================*/
  53. /*=============================================================================================================*/
  54. stock LoadJob(jobname[])
  55. {
  56.     new jid = GetIDFromJobName(jobname);
  57.  
  58.     new FILE[120];
  59.     format(FILE,120,"Jobs/%s.ini",jobname);
  60.     if(DOF2_FileExists(FILE))
  61.     {
  62.         JData[jid][jID] = DOF2_GetInt(FILE,"ID");
  63.         JData[jid][jName] = DOF2_GetInt(FILE,"JobName");
  64.         JData[jid][jX] = DOF2_GetFloat(FILE,"X");
  65.         JData[jid][jY] = DOF2_GetFloat(FILE,"Y");
  66.         JData[jid][jZ] = DOF2_GetFloat(FILE,"Z");
  67.         JData[jid][jSkin1] = DOF2_GetInt(FILE,"Skin1");
  68.         JData[jid][jSkin2] = DOF2_GetInt(FILE,"Skin2");
  69.         JData[jid][jSkin3] = DOF2_GetInt(FILE,"Skin3");
  70.         JData[jid][jW1] = DOF2_GetInt(FILE,"W1");
  71.         JData[jid][jW2] = DOF2_GetInt(FILE,"W2");
  72.         JData[jid][jW3] = DOF2_GetInt(FILE,"W3");
  73.         JData[jid][jA1] = DOF2_GetInt(FILE,"A1");
  74.         JData[jid][jA2] = DOF2_GetInt(FILE,"A2");
  75.         JData[jid][jA3] = DOF2_GetInt(FILE,"A3");
  76.     }
  77.     else
  78.     {
  79.         return 0;
  80.     }
  81.     return 1;
  82. }
  83. /*=============================================================================================================*/
  84. stock SetPlayerJob(playerid,jobname[])
  85. {
  86.     DOF2_SetString(Account(playerid),"ActualJob",jobname,"Jobs");
  87.     return 1;
  88. }
  89.  
  90. /*=============================================================================================================*/
  91. stock GetPlayerJob(playerid)
  92. {
  93.     new jobname[200];
  94.     format(jobname,sizeof(jobname),"%s",DOF2_GetString(Account(playerid),"ActualJob","Jobs"));
  95.     return jobname;
  96. }
  97. /*=============================================================================================================*/
  98. stock SetPlayerStats(playerid,money,points,level)
  99. {
  100.     new formatstring[200];
  101.     format(formatstring,sizeof(formatstring),"%s",DOF2_GetString(Account(playerid),"ActualJob","Jobs"));
  102.        
  103.     DOF2_SetInt(Account(playerid),"Money",money,formatstring);
  104.     DOF2_SetInt(Account(playerid),"Points",points,formatstring);
  105.         DOF2_SetInt(Account(playerid),"Level",level,formatstring);
  106.     return true;
  107. }
  108.  
  109. stock SetPlayerStatsEx(playerid,name[],value)
  110. {
  111.     new formatstring[200];
  112.     format(formatstring,sizeof(formatstring),"%s",DOF2_GetString(Account(playerid),"ActualJob","Jobs"));
  113.  
  114.     DOF2_SetInt(Account(playerid),name,value,formatstring);
  115.     return true;
  116. }
  117. /*=============================================================================================================*/
  118. stock GetPlayerStats(playerid)
  119. {
  120.     new formatstring[200];
  121.     format(formatstring,sizeof(formatstring),"%s",DOF2_GetString(Account(playerid),"ActualJob","Jobs"));
  122.  
  123.     JPD[playerid][jMoney] = DOF2_GetInt(Account(playerid),"Money",formatstring);
  124.     JPD[playerid][jPoints] = DOF2_GetInt(Account(playerid),"Points",formatstring);
  125.     JPD[playerid][jLevel] = DOF2_GetInt(Account(playerid),"Level",formatstring);
  126.    
  127.     return true;
  128. }
  129. stock LoadPlayerStatsEx(playerid,name[])
  130. {
  131.     new formatstring[200];
  132.     format(formatstring,sizeof(formatstring),"%s",DOF2_GetString(Account(playerid),"ActualJob","Jobs"));
  133.  
  134.     new str = DOF2_GetInt(Account(playerid),name,formatstring);
  135.     return str;
  136. }
  137. /*=============================================================================================================*/
  138. stock CreateJob(jid,jobname[],Float:X,Float:Y,Float:Z,skin1,skin2,skin3,w1,w2,w3,a1,a2,a3)
  139. {
  140.     new FILE[120];
  141.     format(FILE,120,"Jobs/%s.ini",jobname);
  142.     if(!DOF2_FileExists(FILE))
  143.     {
  144.         DOF2_CreateFile(FILE);
  145.         DOF2_SetInt(FILE,"ID",jid);
  146.         DOF2_SetString(FILE,"JobName",jobname);
  147.         DOF2_SetFloat(FILE,"X",X);
  148.         DOF2_SetFloat(FILE,"Y",Y);
  149.         DOF2_SetFloat(FILE,"Z",Z);
  150.         DOF2_SetInt(FILE,"Skin1",skin1);
  151.         DOF2_SetInt(FILE,"Skin2",skin2);
  152.         DOF2_SetInt(FILE,"Skin3",skin3);
  153.         DOF2_SetInt(FILE,"W1",w1);
  154.         DOF2_SetInt(FILE,"W2",w2);
  155.         DOF2_SetInt(FILE,"W3",w3);
  156.         DOF2_SetInt(FILE,"A1",a1);
  157.         DOF2_SetInt(FILE,"A2",a2);
  158.         DOF2_SetInt(FILE,"A3",a3);
  159.     }
  160.  
  161.     new JobPickup = CreatePickup(1244,1,X,Y,Z,0);
  162.     Create3DTextLabel(jobname,C_GR,X,Y,Z+0.5,60,0,0);
  163.     Create3DTextLabel(JoinMess,C_GR,X,Y,Z+0.1,40,0,0);
  164.     Create3DTextLabel(ChangeSkinMess,C_GR,X,Y,Z,40,0,0);
  165.     for(new i=0;i<MAX_PLAYERS;i++)
  166.     {
  167.         SetPlayerMapIcon( i, jid,X,Y,Z, 11, 0, MAPICON_LOCAL );
  168.     }
  169.     return JobPickup;
  170. }
  171. /*=============================================================================================================*/
  172. stock PlayerJoinToJob(playerid,jobname[])
  173. {
  174.     new jid = GetIDFromJobName(jobname);
  175.     new FILE[120];
  176.     format(FILE,120,"Jobs/%s.ini",jobname);
  177.     if(DOF2_FileExists(FILE))
  178.     {
  179.         LoadJob(jobname);
  180.  
  181.         GivePlayerWeapon(playerid,JData[jid][jW1],JData[jid][jA1]);
  182.         GivePlayerWeapon(playerid,JData[jid][jW2],JData[jid][jA2]);
  183.         GivePlayerWeapon(playerid,JData[jid][jW3],JData[jid][jA3]);
  184.  
  185.         new skin = random(3);
  186.         switch(skin)
  187.         {
  188.             case 0:SetPlayerSkin(playerid,JData[jid][jSkin1]);
  189.             case 1:SetPlayerSkin(playerid,JData[jid][jSkin2]);
  190.             case 2:SetPlayerSkin(playerid,JData[jid][jSkin3]);
  191.         }
  192.  
  193.         SetPlayerJob(playerid,jobname);
  194.     }
  195.     else
  196.     {
  197.         return 0;
  198.     }
  199.     return 1;
  200. }
  201. /*=============================================================================================================*/
  202. stock IsPlayerAroundOfJob(playerid,jobname[])
  203. {
  204.     new jid = GetIDFromJobName(jobname);
  205.     LoadJob(jobname);
  206.    
  207.     if(IsPlayerInSphere(playerid,JData[jid][jX],JData[jid][jY],JData[jid][jZ],5))
  208.     {
  209.         return 1;
  210.     }
  211.     else
  212.     {
  213.         return 0;
  214.     }
  215. }
  216. /*=============================================================================================================*/
  217. stock IsPlayerInJob(playerid,jobname[])
  218. {
  219.     if(strmatch(jobname,DOF2_GetString(Account(playerid),"ActualJob","Jobs")))
  220.     {
  221.         return true;
  222.     }
  223.     else
  224.     {
  225.         return false;
  226.     }
  227. }
  228. /*=============================================================================================================*/
  229. stock ChangePlayerJobSkin(playerid,jobname[])
  230. {
  231.     new jid = GetIDFromJobName(jobname);
  232.     LoadJob(jobname);
  233.     new skin = random(3);
  234.     if(skin == 1)
  235.     {
  236.         SetPlayerSkin(playerid,JData[jid][jSkin1]);
  237.     }
  238.     else if(skin == 2)
  239.     {
  240.         SetPlayerSkin(playerid,JData[jid][jSkin2]);
  241.     }
  242.     else if(skin == 3)
  243.     {
  244.         SetPlayerSkin(playerid,JData[jid][jSkin3]);
  245.     }
  246.     return 1;
  247. }
  248. /*=============================================================================================================*/
  249. stock GetIDFromJobName(jobname[])
  250. {
  251.     new FILE[120];
  252.     format(FILE,120,"Jobs/%s.ini",jobname);
  253.    
  254.     new ID = DOF2_GetInt(FILE,"ID");
  255.     return ID;
  256. }
  257. /*=============================================================================================================*/
  258. /*=============================================================================================================*/
  259. /*
  260. native CreateJob(jid,jobname[],Float:X,Float:Y,Float:Z,skin1,skin2,skin3,w1,w2,w3,a1,a2,a3);
  261. native PlayerJoinToJob(playerid,jobname[]);
  262. native ChangePlayerJobSkin(playerid,jobname[]);
  263. native IsPlayerInJob(playerid,jobname[]);
  264. native IsPlayerAroundOfJob(playerid,jobname[]);
  265. native GetPlayerStats(playerid);
  266. native SetPlayerStats(playerid,money,points,level);
  267. native GetIDFromJobName(jobname[]);
  268. native SetPlayerJob(playerid,jobname[]);
  269. native GetPlayerJob(playerid);
  270. native LoadJob(jobname[]);
  271. native SetPlayerStatsEx(playerid,name[],value);
  272. native GetPlayerStatsEx(playerid,name[],value);
  273. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement