1. #include <a_samp> // (Necesario)
  2. /*
  3. [] Carga las Funciones de SA-MP.
  4. */
  5. #include <progress> // (Necesario)
  6. /*
  7. [] Carga las Funciones del Progress.
  8. */
  9. new
  10. Bar:barra[MAX_PLAYERS]
  11. //[] creada un id unico para el player asi sera mas facil indentificarlo.
  12. ;
  13. new
  14. variablebarra[MAX_PLAYERS] = 0
  15. //[] La Variable La cual Sera el valor de la Barra
  16. ;
  17. new
  18. ChauTimer[MAX_PLAYERS]
  19. //[] creada un id unico para el player asi sera mas facil indentificarlo.
  20. ;
  21. public OnPlayerConnect(playerid) {
  22. barra[playerid] = CreateProgressBar(500.00, 107.00, 106.50, 19.20, -1, 100.0);
  23. /*
  24. [] variable[playerid] = CreateProgressBar (x, y, ancho, altura, color, max)
  25. [] Crea una barra de progreso (casi lo mismo que TextDrawCreate).[*] x and y: los valores son la posición de la barra en la pantalla;[*] ancho y la altura: son el tamaño de la barra (que tienen valores por defecto, sólo _ poner como parámetro);[*] color: es el color de la barra, obviamente;[*] max: es el porcentaje máximo de la barra puede llegar (por defecto 100).[*] variable[playerid]: creada un id unico para el player asi sera mas facil indentificarlo.
  26. */
  27. SetProgressBarMaxValue(barra[playerid], 100.0);
  28. /*
  29. [] El valor máximo es dinámica, puede cambiar cuando lo desee, y va a actualizar por sí mismo (el valor actual de la barra de progreso siendo el mismo, la diferencia que se ve en el bar).
  30. */
  31. SetProgressBarValue(barra[playerid], 0);
  32. /*
  33. [] Cambia el porcentaje actual de la barra de progreso determinada (es punto flotante). Recuerde que el valor máximo es el valor que se le dio a ella en CreateProgressBar.
  34. [-] Sera el Valor que iniciara la barra
  35. */
  36. return 1;
  37. }
  38. public OnPlayerDisconnect(playerid, reason) {
  39. HideProgressBarForPlayer(playerid, barra[playerid]);
  40. /*
  41. [] Oculta la barra de progreso de un determinado jugador.
  42. */
  43. DestroyProgressBar(barra[playerid]);
  44. /*
  45. [] Destruye un bar creado.
  46. */
  47. KillTimer(ChauTimer[playerid]);
  48. /*
  49. [] Detiene el SetTimerEx correspondiente.
  50. */
  51. return 1;
  52. }
  53. public OnPlayerSpawn(playerid) {
  54. ShowProgressBarForPlayer(playerid, barra[playerid]);
  55. /*
  56. [] Simplemente muestra la barra de progreso para un jugador dado.
  57. */
  58. ChauTimer[playerid] = SetTimerEx("ejemplo", 100, true, "i", playerid);
  59. /*
  60. [] ChauTimer[playerid]: creada un id unico para el player asi sera mas facil indentificarlo.
  61. [] SetTimerEx: Establece un temporizador para llamar a una función después de algún tiempo. Esta variante puede pasar parámetros a la función.
  62. [] ejemplo: Nombre de la Funcion (public) Cargada el SetTimerEx.
  63. [] 1000: Tiempo en milisegundos que Cargada la Funcion (public) del SetTimerEx.
  64. [] true: Cargada infinitamente el SetTimerEx segun los milisegundos que halla colocado, hasta ke se elimine con KillTimer
  65. [] "i": Formato específico que indique los tipos de valores que el temporizador Cargada, que en este caso son enteros = playerid (id del player correspondiente)
  66. */
  67. return 1;
  68. }
  69. /*
  70. [] hare un ejemplo con el que llenare la barra con una variable mediante un timer.
  71. */
  72. forward ejemplo(playerid);
  73. public ejemplo(playerid) {
  74. variablebarra[playerid] ++; //pone a 1 la variable correspondiente.
  75. SetProgressBarValue(barra[playerid], variablebarra[playerid]); //[] chequeara el porcentaje actual de la barra , que ahora sel ocolocaremos con la variable. (variablebarra[playerid])
  76. UpdateProgressBar(barra[playerid], playerid); //[] Actualiza la barra al player correspondiente.
  77. if(variablebarra[playerid] == 100) //[] Chequea si el payer correspondiente tiene la variable co nel valor igual a 100 (Sera el maximo para que de la funcion corespondiente), y dara la funcion correspondiente al player.
  78. {
  79. variablebarra[playerid] = 0; //pone a 0 la variable correspondiente.
  80. SetProgressBarValue(barra[playerid], variablebarra[playerid]); //[] chequeara el porcentaje actual de la barra , que ahora sel ocolocaremos con la variable. (variablebarra[playerid])
  81. UpdateProgressBar(barra[playerid], playerid); //[] Actualiza la barra al player correspondiente.
  82. /*
  83. [] o colocan cualquier otra funcion que quieran que haga al llegal al tope de la barra correspondiente.
  84. */
  85. }
  86. return 1;
  87. }

TUTORIAL = [] ¿Como Utilizo ProgressBar? By Otacon