[Include] ptvar.inc - PlayerArrays que se resetean al salir

¿Encontraste un Plugin que te asombró? ¿Qué opinas de mostrárnoslo? ¡Súbelo y compártelo con los demás! También, encuentra gran cantidad de Includes.

Moderador: Ayudantes

Reglas del Foro
  • Si publicas un Plugin de tu autoría, deberás publicar el código fuente del mismo. No olvides utilizar el BBCode [Pawn]Código aquí[/Pawn].
  • Si no eres el autor del plugin/include o has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
Responder
Avatar de Usuario
Graber
Junior
Junior
Mensajes: 194
Registrado: 10 Abr 2016 19:16
Contactar:
Reputación: 22

03 Sep 2018 02:07

ptvar
Imagen
Introduce una sintaxis con la cual pueden declarar variables en un estilo "Player-Array", en los cuales el slot del player se resetea a un valor inicial (especificado al crear la variable) cuando se vuelven a unir al juego, ideal para variables inimportantes que solo necesitamos cuando el jugador esta conectado y necesiten resetearse a un valor cuando se van.

Depende en YSI, especificamente en y_amx (para acceder a la tabla de funciones publicas internas AMX) y y_hooks (para saber cuando el player entra o sale).

Instalacion
Para usuarios de sampctl es muy sencillo, simplemente instalas el paquete, lo incluyes y ya:

Código: Seleccionar todo

sampctl package install AGraber/ptvar
O bien puedes descargar la ultima version del include manualmente por aqui:
https://raw.githubusercontent.com/AGrab ... /ptvar.inc (recomiendo dar click derecho y "Guardar como..." ya que el link suele mostrarse en texto en vez de descarga automatica)
 Codigo Pawno:
1

#include <ptvar>
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1

Uso
Muy simple:
 Codigo Pawno:
1
2

// Wow[playerid] vuelve a INVALID_PLAYER_ID (por ejemplo) cada vez que playerid se vuelve a unir al juego.
ptvar Wow[MAX_PLAYERS] = INVALID_PLAYER_ID;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 2
Si el termino "ptvar" ya esta definido en tu codigo (improbable) puedes usar este define para usar otro sintax que no haga conflicto:
 Codigo Pawno:
1
2
3
4

#define DONT_USE_PRETTY_PTVAR
#include <ptvar>

PTVAR__ Woah[MAX_PLAYERS] = INVALID_PLAYER_ID;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 4
Creditos
- Graber (yo xd)
- Y_Less al cual le robe preste codigo de y_scriptinit
- Yashas el cual ha hecho una [url=https://github.com/YashasSamaga/AMX-Ass ... OCUMENT.md]magnifica documentacion en AMX Assembly en donde aprendi a pushear variables como argumentos para llamar a una funcion usando #emit
- y ustedes por usarlo <3
Imagen

No doy soporte por privado y no estoy disponible para ningún trabajo/proyecto/lo que sea. Eviten MPs de ese tema

Avatar de Usuario
Kemula
Junior
Junior
Mensajes: 207
Registrado: 25 Ago 2015 09:36
Ubicación: España.
Reputación: 14

03 Sep 2018 06:59

Me parece bastante útil.

¡Buen aporte! -hi
Avatar de Usuario
FR0Z3NH34R7
Junior
Junior
Mensajes: 70
Registrado: 10 Jul 2017 13:44
Contactar:
Reputación: 15

10 Sep 2018 20:15

Bastante útil diría yo, pero en tema de velocidad, ¿es más rápido usar variables globales?
ForwardDevs - Desarrollo Web
FAN PAGE
+54 9 11 4144 9924
https://www.forwarddevs.com

¡Buscamos personal!

Avatar de Usuario
MattHudson
Moderador Global
Moderador Global
Mensajes: 1666
Registrado: 31 Oct 2015 18:16
Ubicación: Argentina, Buenos Aires, San Miguel.
Contactar:
Reputación: 89

10 Sep 2018 20:36

Simplemente increíble, me hubiera venido muy bien esto hace unos años... -good

FR0Z3NH34R7 escribió:
10 Sep 2018 20:15
Bastante útil diría yo, pero en tema de velocidad, ¿es más rápido usar variables globales?
¿En comparación con que?, si te refieres a las variables por jugador(PVar) o las de servidor(SVar), siguiendo el concepto en el que me quede(ando medio anticuado) las variables globales, si bien consumen memoria, son las mas rápidas por diferencia. Si mal no recuerdo son un 300% mas rápidas que las variables por jugador(PVar), y respecto a las de servidor(SVar) ya no se porque nunca llegue a ver/hacer un test con eso... pero imagino que es lo mismo. Corrijanme si me equivoco(no seria de extrañar puesto que el concepto en el que me quede es muy ambiguo respecto a todos los cambios que día a día van apareciendo en SA:MP gracias a la comunidad)

Saludos, -bye
Avatar de Usuario
Graber
Junior
Junior
Mensajes: 194
Registrado: 10 Abr 2016 19:16
Contactar:
Reputación: 22

06 Oct 2018 15:51

FR0Z3NH34R7 escribió:
10 Sep 2018 20:15
Bastante útil diría yo, pero en tema de velocidad, ¿es más rápido usar variables globales?
Se podría decir que si, recordando tambien que variables que son declaradas como static ya son creadas en el espacio "global" (solo que no puedes acceder a ellas afuera de su función/archivo), y conservan su valor siempre a pesar de que se llamen multiples veces.

En cuanto el tema de velocidad al conectar, el include busca todos los public creados de su "sistema" mediante una comparación a modo de como si fuera un numero (son 4 bytes los primeros caracteres de la función los cuales gracias a YSI pueden ser representados como un numero entero usando un macro), y luego llama a la función mediante el pointer, asi que no hay mucho drama.

Recuerden que tambien se pueden usar funciones como valor inicial, aunque procuren que no sea una lenta asi todo va bien.
Imagen

No doy soporte por privado y no estoy disponible para ningún trabajo/proyecto/lo que sea. Eviten MPs de ese tema

-Diego Estefano-
Aprendiz
Aprendiz
Mensajes: 28
Registrado: 12 Oct 2018 19:30
Ubicación: PawnScript
Contactar:
Reputación: 0

27 Oct 2018 14:32

Muy util para todos los usuarios!! -punk -punk
  • Mi Perfil.
 Codigo Pawno:
1

-- [Dueño de Missers Roleplay]
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
 Codigo Pawno:
1

-- [Scripter: Diego Estefano]
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Programación - 97%
Scripter - 82%
HTML - 50%
Mapper- 5%
  • APORTES:
- Todavía no contengo ninguno.
Spoiler:
Mapeos:
- [Mapeos] Liberación de muchos mapeos: viewtopic.php?f=43&t=31307
Spoiler:
Guías y Aportes:
- [Guía] Como poner un mapeo en una GM: viewtopic.php?f=40&t=31357
- [Guía] Como utilizar ZCMD para una GM: viewtopic.php?f=40&t=31366
Spoiler:
ARRIBA URUGUAY PAPA!!!!
Avatar de Usuario
Gibarch
Junior
Junior
Mensajes: 164
Registrado: 12 Nov 2018 11:24
Contactar:
Reputación: 10

14 Nov 2018 23:50

Bien esto le veo útil por ejemplo para crear el tiempo que lleva conectado el jugador (por ejemplo) con gettime


y no se me ocurren que otras cosas... si pudieras dar un ejemplo extenso de uso de la inclusión sería un gusto utilizarlo para mi gamemode, por ahora no le veo mucho caso usarlo a menos que des algunos ejemplos
Responder