Advertisement
Nyft_

Sistema de Fome/Sede/Sono em TextDraw ~Nyft

Sep 28th, 2020 (edited)
1,053
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.69 KB | None | 0 0
  1. #include a_samp
  2. #include dof2
  3.  
  4. #define function%0(%1) \
  5.     forward%0(%1); public%0(%1)
  6.  
  7. static const TIMER_HUNGRY = 20; // Segundos
  8. static const TIMER_THIRST = 15; // Segundos
  9. static const TIMER_SLEEP = 30; // Segundos
  10.  
  11. static gPlayerHungry[MAX_PLAYERS];
  12. static gPlayerThirst[MAX_PLAYERS];
  13. static gPlayerSleep[MAX_PLAYERS];
  14. static gPlayerHungryTimer[MAX_PLAYERS];
  15. static gPlayerThirstTimer[MAX_PLAYERS];
  16. static gPlayerSleepTimer[MAX_PLAYERS];
  17. static PlayerText:textSystemHTS[MAX_PLAYERS][6];
  18.  
  19. main(){}
  20.  
  21. public OnGameModeExit()
  22. {
  23.     DOF2::Exit();
  24.     return 1;
  25. }
  26.  
  27. public OnPlayerConnect(playerid)
  28. {
  29.     textSystemHTS[playerid][0] = CreatePlayerTextDraw(playerid, 11.250000, 183.583328, "hud:radar_burgerShot");
  30.     PlayerTextDrawLetterSize(playerid, textSystemHTS[playerid][0], 0.000000, 0.000000);
  31.     PlayerTextDrawTextSize(playerid, textSystemHTS[playerid][0], 15.000000, 17.000000);
  32.     PlayerTextDrawAlignment(playerid, textSystemHTS[playerid][0], 1);
  33.     PlayerTextDrawColor(playerid, textSystemHTS[playerid][0], -1);
  34.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][0], 0);
  35.     PlayerTextDrawSetOutline(playerid, textSystemHTS[playerid][0], 0);
  36.     PlayerTextDrawBackgroundColor(playerid, textSystemHTS[playerid][0], 255);
  37.     PlayerTextDrawFont(playerid, textSystemHTS[playerid][0], 4);
  38.     PlayerTextDrawSetProportional(playerid, textSystemHTS[playerid][0], 0);
  39.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][0], 0);
  40.  
  41.     textSystemHTS[playerid][1] = CreatePlayerTextDraw(playerid, 12.875003, 207.051361, "hud:radar_dateDrink");
  42.     PlayerTextDrawLetterSize(playerid, textSystemHTS[playerid][1], 0.000000, 0.000000);
  43.     PlayerTextDrawTextSize(playerid, textSystemHTS[playerid][1], 12.000000, 14.979976);
  44.     PlayerTextDrawAlignment(playerid, textSystemHTS[playerid][1], 1);
  45.     PlayerTextDrawColor(playerid, textSystemHTS[playerid][1], -1);
  46.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][1], 0);
  47.     PlayerTextDrawSetOutline(playerid, textSystemHTS[playerid][1], 0);
  48.     PlayerTextDrawBackgroundColor(playerid, textSystemHTS[playerid][1], 255);
  49.     PlayerTextDrawFont(playerid, textSystemHTS[playerid][1], 4);
  50.     PlayerTextDrawSetProportional(playerid, textSystemHTS[playerid][1], 0);
  51.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][1], 0);
  52.  
  53.     textSystemHTS[playerid][2] = CreatePlayerTextDraw(playerid, 12.875003, 229.801376, "hud:radar_ZERO");
  54.     PlayerTextDrawLetterSize(playerid, textSystemHTS[playerid][2], 0.000000, 0.000000);
  55.     PlayerTextDrawTextSize(playerid, textSystemHTS[playerid][2], 12.000000, 13.000000);
  56.     PlayerTextDrawAlignment(playerid, textSystemHTS[playerid][2], 1);
  57.     PlayerTextDrawColor(playerid, textSystemHTS[playerid][2], -1);
  58.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][2], 0);
  59.     PlayerTextDrawSetOutline(playerid, textSystemHTS[playerid][2], 0);
  60.     PlayerTextDrawBackgroundColor(playerid, textSystemHTS[playerid][2], 255);
  61.     PlayerTextDrawFont(playerid, textSystemHTS[playerid][2], 4);
  62.     PlayerTextDrawSetProportional(playerid, textSystemHTS[playerid][2], 0);
  63.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][2], 0);
  64.  
  65.     textSystemHTS[playerid][3] = CreatePlayerTextDraw(playerid, 31.875000, 184.166656, "100%");
  66.     PlayerTextDrawLetterSize(playerid, textSystemHTS[playerid][3], 0.276249, 1.337499);
  67.     PlayerTextDrawAlignment(playerid, textSystemHTS[playerid][3], 1);
  68.     PlayerTextDrawColor(playerid, textSystemHTS[playerid][3], -1);
  69.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][3], 0);
  70.     PlayerTextDrawSetOutline(playerid, textSystemHTS[playerid][3], -1);
  71.     PlayerTextDrawBackgroundColor(playerid, textSystemHTS[playerid][3], 255);
  72.     PlayerTextDrawFont(playerid, textSystemHTS[playerid][3], 2);
  73.     PlayerTextDrawSetProportional(playerid, textSystemHTS[playerid][3], 1);
  74.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][3], 0);
  75.  
  76.     textSystemHTS[playerid][4] = CreatePlayerTextDraw(playerid, 31.875000, 207.268066, "100%");
  77.     PlayerTextDrawLetterSize(playerid, textSystemHTS[playerid][4], 0.276249, 1.337499);
  78.     PlayerTextDrawAlignment(playerid, textSystemHTS[playerid][4], 1);
  79.     PlayerTextDrawColor(playerid, textSystemHTS[playerid][4], -1);
  80.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][4], 0);
  81.     PlayerTextDrawSetOutline(playerid, textSystemHTS[playerid][4], -1);
  82.     PlayerTextDrawBackgroundColor(playerid, textSystemHTS[playerid][4], 255);
  83.     PlayerTextDrawFont(playerid, textSystemHTS[playerid][4], 2);
  84.     PlayerTextDrawSetProportional(playerid, textSystemHTS[playerid][4], 1);
  85.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][4], 0);
  86.  
  87.     textSystemHTS[playerid][5] = CreatePlayerTextDraw(playerid, 31.875000, 229.569427, "100%");
  88.     PlayerTextDrawLetterSize(playerid, textSystemHTS[playerid][5], 0.276249, 1.337499);
  89.     PlayerTextDrawAlignment(playerid, textSystemHTS[playerid][5], 1);
  90.     PlayerTextDrawColor(playerid, textSystemHTS[playerid][5], -1);
  91.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][5], 0);
  92.     PlayerTextDrawSetOutline(playerid, textSystemHTS[playerid][5], -1);
  93.     PlayerTextDrawBackgroundColor(playerid, textSystemHTS[playerid][5], 255);
  94.     PlayerTextDrawFont(playerid, textSystemHTS[playerid][5], 2);
  95.     PlayerTextDrawSetProportional(playerid, textSystemHTS[playerid][5], 1);
  96.     PlayerTextDrawSetShadow(playerid, textSystemHTS[playerid][5], 0);
  97.     return 1;
  98. }
  99.  
  100. public OnPlayerDisconnect(playerid, reason)
  101. {
  102.     SavePlayerAccount(playerid);
  103.     ResetPlayerAccount(playerid);
  104.     return 1;
  105. }
  106.  
  107. public OnPlayerSpawn(playerid)
  108. {
  109.     if(!DOF2::FileExists(Account(playerid)))
  110.         CreatePlayerAccount(playerid);
  111.     else
  112.         LoadPlayerAccount(playerid);
  113.  
  114.     gPlayerHungryTimer[playerid] = SetTimerEx("OnPlayerHungryUpdate", TIMER_HUNGRY * 1000, true, "i", playerid);
  115.     gPlayerThirstTimer[playerid] = SetTimerEx("OnPlayerThirstUpdate", TIMER_THIRST * 1000, true, "i", playerid);
  116.     gPlayerSleepTimer[playerid] = SetTimerEx("OnPlayerSleepUpdate", TIMER_SLEEP * 1000, true, "i", playerid);
  117.     ShowPlayerTextDrawsHTS(playerid);
  118.     return 1;
  119. }
  120.  
  121. function OnPlayerHungryUpdate(playerid)
  122. {
  123.     if(gPlayerHungry[playerid] <= 0)
  124.     {
  125.         gPlayerHungry[playerid] = 30;
  126.         SetPlayerHealth(playerid, 0.0);
  127.         SendClientMessage(playerid, -1, "* Você não comeu nada e morreu de fome.");
  128.         return 1;
  129.     }
  130.     new string[6];
  131.     format(string, sizeof(string), "%i%", gPlayerHungry[playerid]);
  132.     PlayerTextDrawSetString(playerid, textSystemHTS[playerid][3], string);
  133.     return 1;
  134. }
  135.  
  136. function OnPlayerThirstUpdate(playerid)
  137. {
  138.     if(gPlayerThirst[playerid] <= 0)
  139.     {
  140.         gPlayerThirst[playerid] = 30;
  141.         SetPlayerHealth(playerid, 0.0);
  142.         SendClientMessage(playerid, -1, "* Você não bebeu nada e morreu de sede.");
  143.         return 1;
  144.     }
  145.     new string[6];
  146.     format(string, sizeof(string), "%i%", gPlayerThirst[playerid]);
  147.     PlayerTextDrawSetString(playerid, textSystemHTS[playerid][4], string);
  148.     gPlayerThirst[playerid]--;
  149.     return 1;
  150. }
  151.  
  152. function OnPlayerSleepUpdate(playerid)
  153. {
  154.     if(gPlayerSleep[playerid] <= 0)
  155.     {
  156.         gPlayerSleep[playerid] = 100;
  157.         SendClientMessage(playerid, -1, "* Você não dormiu e desmaiou de sono.");
  158.         return 1;
  159.     }
  160.     new string[6];
  161.     format(string, sizeof(string), "%i%", gPlayerSleep[playerid]);
  162.     PlayerTextDrawSetString(playerid, textSystemHTS[playerid][5], string);
  163.     gPlayerSleep[playerid]--;
  164.     return 1;
  165. }
  166.  
  167. Account(playerid)
  168. {
  169.     new file[40];
  170.     format(file, sizeof(file), "Contas/%s.ini", GetPlayerNamef(playerid));
  171.     return file;
  172. }
  173.  
  174. GetPlayerNamef(playerid)
  175. {
  176.     new name[MAX_PLAYER_NAME];
  177.     GetPlayerName(playerid, name, MAX_PLAYER_NAME);
  178.     return name;
  179. }
  180.  
  181. CreatePlayerAccount(playerid)
  182. {
  183.     DOF2::CreateFile(Account(playerid));
  184.     DOF2::SetInt(Account(playerid), "Fome", gPlayerHungry[playerid] = 100);
  185.     DOF2::SetInt(Account(playerid), "Sede", gPlayerThirst[playerid] = 100);
  186.     DOF2::SetInt(Account(playerid), "Sono", gPlayerSleep[playerid] = 100);
  187.     DOF2::SaveFile();
  188. }
  189.  
  190. LoadPlayerAccount(playerid)
  191. {
  192.     gPlayerHungry[playerid] = DOF2::GetInt(Account(playerid), "Fome");
  193.     gPlayerThirst[playerid] = DOF2::GetInt(Account(playerid), "Sede");
  194.     gPlayerSleep[playerid] = DOF2::GetInt(Account(playerid), "Sono");
  195. }
  196.  
  197. SavePlayerAccount(playerid)
  198. {
  199.     DOF2::SetInt(Account(playerid), "Fome", gPlayerHungry[playerid]);
  200.     DOF2::SetInt(Account(playerid), "Sede", gPlayerThirst[playerid]);
  201.     DOF2::SetInt(Account(playerid), "Sono", gPlayerSleep[playerid]);
  202.     DOF2::SaveFile();
  203. }
  204.  
  205. ResetPlayerAccount(playerid)
  206. {
  207.     KillTimer(gPlayerHungryTimer[playerid]);
  208.     KillTimer(gPlayerThirstTimer[playerid]);
  209.     KillTimer(gPlayerSleepTimer[playerid]);
  210.     HidePlayerTextDrawsHTS(playerid);
  211. }
  212.  
  213. ShowPlayerTextDrawsHTS(playerid)
  214. {
  215.     for(new i; i != sizeof(textSystemHTS); i++)
  216.         PlayerTextDrawShow(playerid, textSystemHTS[playerid][i]);
  217. }
  218.  
  219. HidePlayerTextDrawsHTS(playerid)
  220. {
  221.     for(new i; i != sizeof(textSystemHTS); i++)
  222.         PlayerTextDrawHide(playerid, textSystemHTS[playerid][i]);
  223. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement