Jump to content

- Advertisement -
Photo

[CS16-Scripting] Cvaruri


  • Please log in to reply
2 replies to this topic

#1
Andrei;

Andrei;

    Administrator

  • Administrator
  • 3201 posts
  • 398 topics
  • Joined 16-December 12
  • Country: Country Flag

Cvarurile sunt foarte importante, ne ajuta sa modificam modul in care un plugin se comporta fara sa trebui sa editam sursa. Datorita faptului ca exista mai multe tipuri de date, un cvar poate stoca integere/floaturi/stringuri.

 

1. Creearea unui cvar:

register_cvar(const name[],const string[],flags = 0,Float:fvalue = 0.0);
  • name este numele cvarului
  • string este valoarea
  • flags sunt flagurile cvarurlui
  • ultimul parametru nu am idee pentru ce e,nu am vazut pe nimeni sa il foloseasca...

Le puteti atribui unei variabile pentru a lucra mai usor,direct cu variabila. Se pot inregistra in init/cfg chiar si precache, insa recomandat este in init, astfel alte pluginuri le pot altera valorile in cfg.

new PrimulCvar
new AlDoileaCvar
new AlTreileaCvar

public plugin_init ( )
{ 
    PrimulCvar = register_cvar("test1", "123")  //retine un integer
    AlDoileaCvar = register_cvar("test2", "23.2") //retine un float
    AlTreileaCvar = register_cvar("test3", "CS16Gaming") //retine un string

}

2. Citirea valorilor dintr-un cvar:

 

Nativele cu care lucram:

get_pcvar_num(cvar)
get_pcvar_float(cvar)
get_pcvar_string(cvar,string,lungime)

Nu folositi nativele get_cvar_*,sunt mult prea lente.

new PrimulCvar
new AlDoileaCvar
new AlTreileaCvar

public plugin_init ( )
{ 
    PrimulCvar = register_cvar("test1", "123")  //retine un integer
    AlDoileaCvar = register_cvar("test2", "23.2") //retine un float
    AlTreileaCvar = register_cvar("test3", "CS16Gaming") //retine un string

}

public CevaRandom ( )
{
  new iNum = get_pcvar_num(PrimulCvar) // luam valoarea din primul cvar,este integer
  new Float: fNum = get_pcvar_float(AlDoileaCvar) //luam valoarea din al doilea cvar,este float
  new szString[ 25 ]
  get_pcvar_string(AlTreileaCvar, szString, sizeof szString -1) //luam valoarea din al treilea cvar,in variabila szString.
}

3. Pointere

 

Native get_cvar_pointer ne permite sa citim valoarea oricarui cvar, din orice plugin, chiar si cele default.

new g_pCvarPointer

g_pCvarPointer = get_cvar_pointer( "sv_maxspeed" )//acceseaza ia valoarea cvarului sv_maxspeed in g_pCvarPointer

new iValue = get_pcvar_num( g_pCvarPointer )//ia valoarea din pointer,acum putem lucra direct cu iValue

Nu este obligatoriu sa salvati valorile in variabile, insa este o practica buna in anumite situatii.

 

Si acum, ca aveti toate notiunile plictisitoare, sa trecem la un plugin.

#include < amxmodx >
#include < fun >//pentru a seta hpul

new g_iHp;//retine cvarul

public plugin_init ( )
{
	g_iHp = register_cvar("health_to_give", "123" );//inregistram cvarul
	register_clcmd("say /hp", "ClCmdHp");//inregistram comanda
}

public ClCmdHp( id )
{
	if(!is_user_alive(id))//verificam daca e in viata
	{
		client_print(id, print_chat, "Comanda functionala doar cand est in viata");
		return 1;
	}
	
	set_user_health(id, get_user_health(id) + get_pcvar_num(g_iHp));//ii adaugam la hpul pe care il are acum,valoarea din cvar. Daca vrei sa ii dea cat hp e in cvar,nu sa adune folositi set_user_health(id, get_pcvar_num(g_iHp));
	return 0;
}

Cvarurile au si flaguri, insa nu sunt foarte importante.


Edited by Artick ;, 30 July 2014 - 12:00 PM.

  • Minnie likes this

#2
Razvan-

Razvan-

    Banned

  • Banned
  • 858 posts
  • 95 topics
  • Joined 09-June 13
  • Country: Country Flag
Pai la ce folosesc flagurile ? Ce legatura are cu cvar-urile

#3
Andrei;

Andrei;

    Administrator

  • Topic Starter

  • Administrator
  • 3201 posts
  • 398 topics
  • Joined 16-December 12
  • Country: Country Flag

Pai la ce folosesc flagurile ? Ce legatura are cu cvar-urile

De ce te gandesti la flagurile de admin ? Cvarurile au propriile lor flaguri, pentru a le schimba anumite proprietati insa sunt inutile, din punctul meu de vedere + ca ar intra in categoria advanced scripting. Daca vrei neaparat o sa va explic ce e si cu flagurile.






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users