Guest User

Lumber FS by Lynnstrum

a guest
Sep 29th, 2013
809
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.77 KB | None | 0 0
  1. /*|____________________________________________________|*
  2.  *|--------------------[LUMBER SYSTEM]-----------------|*
  3.  *|---------------------[By:Lynnstrum]-----------------|*
  4.  *|____________________________________________________|*/
  5.  
  6. #include <a_samp>
  7. #include <zcmd> // Command Processer used.
  8.  
  9. #define DIALOG_LUMBER 1000
  10.  
  11. #define C_WHITE 0xFFFFFFAA
  12.  
  13. forward LoadLumber(); // Loads the Lumber when the filterscript is initiated.
  14. forward SaveLumber(); // Saves the lumber when lumber is added or removed.
  15. forward splits(const strsrc[], strdest[][], delimiter);
  16.  
  17. enum LumberInfo// Information used for the lumber system
  18. {
  19.     Text3D:LumberText,//3DText loaded stating the amount of lumber
  20.     Lumber
  21. }
  22. new L_Info[LumberInfo];// Shortened way of saying LumberInfor
  23.  
  24. public OnFilterScriptInit()
  25. {
  26.     LoadLumber();// Loads Lumber
  27.     return 1;
  28. }
  29.  
  30. public LoadLumber() {
  31.     new LoadCoords[1][24];
  32.     new strFromFile2[256];
  33.     new str[128];
  34.     new File: file = fopen("LSLRP/Jobs/lumber.cfg", io_read);
  35.     if (file) {
  36.         fread(file, strFromFile2);
  37.         splits(strFromFile2, LoadCoords, '|');
  38.         L_Info[Lumber] = strval(LoadCoords[0]);
  39.         format(str, sizeof str, "Lumber Avalible:\n{F81414}%d", L_Info[Lumber]);
  40.         L_Info[LumberText] = Create3DTextLabel(str, C_WHITE, -62.2114,-1121.7120,1.2945, 10.0, 0);// Lumber
  41.         print("Lumber Loaded");
  42.         fclose(file);
  43.     }
  44.     return 1;
  45. }
  46. public SaveLumber() {
  47.     new FString[256], File: flocation = fopen("LSLRP/Jobs/lumber.cfg", io_write);//
  48.     format(FString, sizeof(FString), "%d", L_Info[Lumber]);
  49.     fwrite(flocation, FString);
  50.     return fclose(flocation);// Closes the file, after the information above has been Saved.
  51. }
  52.  
  53. CMD:editlumber(playerid, params[])
  54. {
  55.     ShowPlayerDialog(playerid, DIALOG_LUMBER, DIALOG_STYLE_INPUT, "Lumber Settings", "Input the new lumber amount.", "Done", "Cancel");
  56.     return 1;
  57. }
  58. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  59. {
  60.     new string[128+MAX_PLAYER_NAME];
  61.     if(dialogid == DIALOG_LUMBER)
  62.     {
  63.         new lumber = strval(inputtext);
  64.         if(response)
  65.         {
  66.             if(lumber < 0 || lumber > 1000000)
  67.             {
  68.                 SendClientMessage(playerid, C_WHITE, "SYNTAX: {00FF22}Only lumber amounts {FFFFFF}0-1000000 {00FF22}are valid.");
  69.                 return 1;
  70.             }
  71.             else {
  72.                 L_Info[Lumber] = lumber;
  73.                 format(string, sizeof string, "Lumber Avalible\n{F81414}%d", L_Info[Lumber]);
  74.                 Update3DTextLabelText(L_Info[LumberText], C_WHITE, string);
  75.                 SaveLumber();
  76.             }
  77.         }
  78.     }
  79.     return 1;
  80. }
  81. public splits(const strsrc[], strdest[][], delimiter)
  82. {
  83.     new i, li;
  84.     new aNum;
  85.     new len;
  86.     while(i <= strlen(strsrc)){
  87.         if(strsrc[i]==delimiter || i==strlen(strsrc)){
  88.             len = strmid(strdest[aNum], strsrc, li, i, 128);
  89.             strdest[aNum][len] = 0;
  90.             li = i+1;
  91.             aNum++;
  92.         }
  93.         i++;
  94.     }
  95.     return 1;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment