Raised This Month: $51 Target: $400
 12% 

[ES][TUT] Metodo register_cvar


  
 
 
Thread Tools Display Modes
Author Message
shinoda
Spanish Moderator
Join Date: Nov 2009
Location: ag_crossfire
Old 09-04-2010 , 13:04   [ES][TUT] Metodo register_cvar
#1

Mi primer tutorial

No se si este método ya existe, pero es lo que siempre uso ^^.

PHP Code:
#include <amxmodx>

/* Crear una constante, o si se prefiere, crear un macro.
Debe ser igual a la mitad de la cantidad de grupos que contendra szCvarsValues
En este caso, szCvarsValues contiene 14 grupos
14 / 2 = 7 */
const NUM_CVARS 7

/* Si se va a registrar una cvar, por lógica va a tener un valor,
quiere decir que los grupos siempre sera un número par.
Multiplicar NUM_CVARS * 2, resultado = 14*/
new const szCvarsValues[NUM_CVARS 2][] = {
    
"sv_uno",    "10"// 0 - 1
    
"sv_dos",    "20"// 2 - 3
    
"sv_tres",   "30"// 4 - 5
    
"sv_cuatro""40"// 6 - 7
    
"sv_cinco",  "50"// 8 - 9
    
"sv_seis",   "60"// 10 - 11
    
"sv_siete",  "70"  // 12 - 13
}


// Crear una variable, en este caso de 7 grupos.
new Cvars[NUM_CVARS]

public 
plugin_init() {
    
register_plugin("RegisterCvars""0.1""Shinoda")

    
// Para testear
    
register_clcmd("say test""cmdTest")
    
    
// Registrar las Cvars
    
RegisterCvars()
}

RegisterCvars() {
    
// Crear variable i, se usará para ubicarse en cada grupo de szCvarsValues
    
static i
    
    
// El bucle se repetirá siempre que j sea menor a 7.
    
for(new j=0j<NUM_CVARSj++) {
        
/* Cvars[j] = inicia de 0, al terminar la primera pasada del bucle, j incrementa en 1
         (i = 0) register_cvar(szCvarsValues[i] = Obtiene el grupo cero de szCvarsValues "sv_uno"
         (i+1=1) szCvarsValues[i+1] = Se dirige al grupo 1, es decir "10" */
        
Cvars[j] = register_cvar(szCvarsValues[i], szCvarsValues[i+1])
        
        
// Sumar 2 a la variable i, luego i sera igual a 2, ya que inicialmente era 0.
        
+= 2
    
}
}

public 
cmdTest(id) {
    
// Variables para igualar lo obtenido de las pcvar
    
new pCvars[NUM_CVARS]
        
    
// Se repetira si i es menor a 7
    
for(new i=0i<NUM_CVARSi++) {
        
// pCvars[i] = Almacena los valores
        // get_pcvar_num(Cvars[i] = Obtiene valor de las cvar
        
pCvars[i] = get_pcvar_num(Cvars[i])
        
        
// Guardamos en un log el resultado, para comprobar.
        
log_amx("pCvars[%d] = %d"ipCvars[i])
    }
    
    
// Para no mostrar el say ^^
    
return 1

Sin lineas de comentario.
PHP Code:
#include <amxmodx>

const NUM_CVARS 7

new const szCvarsValues[NUM_CVARS 2][] = {
    
"sv_uno",    "10",
    
"sv_dos",    "20",
    
"sv_tres",   "30",
    
"sv_cuatro""40",
    
"sv_cinco",  "50",
    
"sv_seis",   "60",
    
"sv_siete",  "70" 
}

new 
Cvars[NUM_CVARS]

public 
plugin_init() {
    
register_plugin("RegisterCvars""0.1""Shinoda")
    
register_clcmd("say test""cmdTest")

    
RegisterCvars()
}

RegisterCvars() {
    static 
i

    
for(new j=0j<NUM_CVARSj++) {
        
Cvars[j] = register_cvar(szCvarsValues[i], szCvarsValues[i+1])

        
+= 2
    
}
}

public 
cmdTest(id) {
    new 
pCvars[NUM_CVARS]
    
    for(new 
i=0i<NUM_CVARSi++) {
        
pCvars[i] = get_pcvar_num(Cvars[i])
        
        
log_amx("pCvars[%d] = %d"ipCvars[i])
    }
    
    return 
1

Resultado:
Code:
pCvars[0] = 10
pCvars[1] = 20
pCvars[2] = 30
pCvars[3] = 40
pCvars[4] = 50
pCvars[5] = 60
pCvars[6] = 70


Otros métodos:
http://forums.alliedmods.net/showpos...98&postcount=3
http://forums.alliedmods.net/showpos...37&postcount=5
__________________
Oh hell no this shit is awesome !!!

Last edited by shinoda; 09-04-2010 at 20:00.
shinoda is offline
Send a message via MSN to shinoda Send a message via Skype™ to shinoda
alan_el_more
Veteran Member
Join Date: Jul 2008
Location: amxmodx-es.com
Old 09-04-2010 , 18:46   Re: [ES][TUT] Metodo register_cvar
#2

Como nadie te da las gracias, yo te doy...

Gracias
__________________
alan_el_more is offline
Marote <3
Junior Member
Join Date: Sep 2010
Old 09-04-2010 , 18:47   Re: [ES][TUT] Metodo register_cvar
#3

Yo todavia no entiendo mucho de script, igual lo leo, parece interesante, Gracias.
Marote <3 is offline
Destro-
Veteran Member
Join Date: Jun 2010
Location: $me->location();
Old 09-04-2010 , 18:48   Re: [ES][TUT] Metodo register_cvar
#4

Una pregunta,cual es la diferencia en el rendimiento del cpu?
__________________
Destro- is offline
emilianol
Senior Member
Join Date: Jul 2010
Old 09-04-2010 , 18:49   Re: [ES][TUT] Metodo register_cvar
#5

Gracias
__________________
'EmilianO*
emilianol is offline
alan_el_more
Veteran Member
Join Date: Jul 2008
Location: amxmodx-es.com
Old 09-04-2010 , 18:52   Re: [ES][TUT] Metodo register_cvar
#6

Quote:
Originally Posted by Destro- View Post
Una pregunta,cual es la diferencia en el rendimiento del cpu?
No creo que tenga mucha diferencia pero es más facil para editar las cvars en el sma
__________________
alan_el_more is offline
shinoda
Spanish Moderator
Join Date: Nov 2009
Location: ag_crossfire
Old 09-04-2010 , 20:01   Re: [ES][TUT] Metodo register_cvar
#7

Thanks
__________________
Oh hell no this shit is awesome !!!
shinoda is offline
Send a message via MSN to shinoda Send a message via Skype™ to shinoda
Celeron
Senior Member
Join Date: Jul 2010
Location: Argentina - Mendoza
Old 09-04-2010 , 20:02   Re: [ES][TUT] Metodo register_cvar
#8

Esta bueno, me sirve!.
Igual en mi gusto me mareo, pero me resulta mas fácil.
__________________
Celeron is offline
Send a message via MSN to Celeron
alan_el_more
Veteran Member
Join Date: Jul 2008
Location: amxmodx-es.com
Old 09-05-2010 , 10:19   Re: [ES][TUT] Metodo register_cvar
#9

Es mejor el metodo de shinoda que registrar cvars una por una

Profile metodo shinoda:
Code:
type |                             name |      calls | time / min / max
-------------------------------------------------------------------
   n |                  register_plugin |          1 | 0.000001 / 0.000001 / 0.000001
   n |                    register_cvar |          7 | 0.000029 / 0.000003 / 0.000007
   p |                      plugin_init |          1 | 0.000001 / 0.000001 / 0.000001
   f |                    RegisterCvars |          1 | 0.000002 / 0.000002 / 0.000002
Profile registrando cvar una por una:
Code:
type |                             name |      calls | time / min / max
-------------------------------------------------------------------
   n |                  register_plugin |          1 | 0.000001 / 0.000001 / 0.000001
   n |                    register_cvar |          7 | 0.000089 / 0.000002 / 0.000071
   p |                      plugin_init |          1 | 0.000001 / 0.000001 / 0.000001
   f |                    RegisterCvars |          1 | 0.000003 / 0.000003 / 0.000003
__________________
alan_el_more is offline
S34Qu4K3
Veteran Member
Join Date: Jan 2010
Location: Galicia
Old 09-05-2010 , 10:20   Re: [ES][TUT] Metodo register_cvar
#10

Alan, como podes ver eso, el time que gasta cada funcion etc?
ON: Buen tuto Shinode, bien explicadito ^^
__________________

- ASM2SMA: Experimental AMXX Assembly encoder

- Defuse Bar Fix

Quote:
Originally Posted by Arkshine
I DON'T WANT TO SEE NOOOOOOOOOOOOOOO AHHHHH. MY EYES ARE ALREADY HURT.
S34Qu4K3 is offline
 



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 05:44.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode