hlmod.hu
https://hlmod.hu/

Pcvar készítés
https://hlmod.hu/viewtopic.php?f=14&t=3513
Oldal: 1 / 1

Szerző:  Silent [ 2012.02.23. 19:01 ]
Hozzászólás témája:  Pcvar készítés

Kód:
#include <amxmodx>  

#define PLUGIN "Cvar Tutorial"  //név
#define VERSION "1.0"  //verzió
#define AUTHOR "Slt"   //készítő

new cvar_value //létrehozunk egy globális változót, ez fogja tárolgatni a cvarunk értékét


public plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
cvar_value register_cvar("amx_cvar""1"// itt "deklaráljuk" a változónkat cvarnak
    
register_clcmd("say /cvar""check_cvar")
}

public 
check_cvar(id)
{
    if(
get_pcvar_num(cvar_value) == 1)  // lekérjük a cvarunk értékét, fontos hogy a pointert kérdezzük és ne a cvar nevét
    
client_print(idprint_chat"A cvar erteke 1!")
    else if(
get_pcvar_num(cvar_value) == 2client_print(idprint_chat"A cvar erteke 2!")
    else 
client_print(idprint_chat"A cvar erteke nem 1 es nem 2!")
}

/*
    Tehát. Létrehoztunk egy globális változót, ami majd hordozni fogja a cvarunk értékét.
    Plugin_initben deklaráltuk, kijelentettük, hogy a pointerünk fogja hordozni a cvar értékét.
    Ezek után létrehoztunk egy kliens parancsot, ami a /cvar csetbe való írásával kiírja az amx_cvar értékét.
    Hogyan? Először is lekérdezzük a cvar értékét a get_pcvar_num függvénnyel, és megnézzük, hogy az 1-e.
    Mivel 1, kiírjuk neki, hogy 1. 
    Na de nem egy, ezért tovább lép és rájön, hogy 2. Ezért kiírja hogy 2.
    De ha nem 1 és nem is 2, akkor kiírja, hogy nem 1 és nem 2 az érték.
    
    
*/
 

Szerző:  Bence98007 [ 2012.09.25. 22:01 ]
Hozzászólás témája:  Re: Pcvar készítés

Ez miben különbözik a rendes cvartól? Érdekel ez a téma...:)

Szerző:  kiki [ 2012.09.26. 06:58 ]
Hozzászólás témája:  Re: Pcvar készítés

Globális változóra van készítve, de szerintem ha kinyitnád a szemed és érdekelne is nem csak a hsz gyaraposítás miatt írnál tudnád te is...

Szerző:  Bence98007 [ 2012.09.26. 17:55 ]
Hozzászólás témája:  Re: Pcvar készítés

kiki írta:
Globális változóra van készítve, de szerintem ha kinyitnád a szemed és érdekelne is nem csak a hsz gyaraposítás miatt írnál tudnád te is...

Érdekel. Nem hsz gyarapítás...amúgy egy változó tárolja a cvart, és akkor nem kell változóba rakni a cvart, hanem az elején is elég, hogy több helyen is lehessen egyből használni?

Szerző:  Metal [ 2012.09.28. 15:39 ]
Hozzászólás témája:  Re: Pcvar készítés

No akkor....

Kód:
cvar_value //létrehozunk egy globális változót, ez fogja tárolgatni a cvarunk értékét

Ez így ebben a formában nem igaz. Ebben az adott cvar referenciája kerül, nem pedig az értéke.
(inkább nevezd így el a változót: pcvar_value).

Tehát a változónk tulajdonképpen egy pointer lesz, ami a cvar memóriabeli helyére mutat. (Emiatt get_pcvar_num fgvt használjuk)
Érdemes ezt használni, mivel ha többször használsz egy regisztrált cvart, s nem pointeresen használod, hanem hivatkozol a cvarra, mint konstans string (get_cvar_num), akkor működik, de esetleg ha át akard nevezni a cvart, akkor több helyen kell átírni. Sőt, ekkor a memóriában sem szükséges lefoglalni egy string értékét még egyszer, ha már cvarban bent van.
Pl: register_cvar("almafa", "Korteeefaaminagyonhosszuszovegakarnovellaislehetne")
Megteheted, hogy ezt eltárolod változóban (+memóriaigény, jelen esetben 52 byte), VAGY egy pointert kreálsz hozzá, amin keresztül eléred (a mérete a pointernek fix, 4 byte)

További megjegyzések:
Egy változó lehet lokálisan is létrehozva (és pointer is lehet ez), ami a fgv futása végén eltűnik.
(Érdemes törekedni arra, hogy inkább lokális változókat használjunk: Nagyobb pluginnál sokat jelent, ha nem 10 megát zabál, hanem 1 megát. Azokat a változókat,a melyeket folyamatosan vagy gyakran használunk, érdemes kipakolni, így nem vesz el időt a memória foglalás/allokálás).


Kérdés?

u.i.:
Kicsit átírnám a kommentet silent, pl így:
/*
Tehát.
Létrehoztunk egy globális változót, ami tartalmazni fogja a cvarunk címét.
Plugin_initben deklaráltuk, s beállítottuk, hogy a változónk melyik cvarra lesz "kötve". (Innentől kezdve pointerként fog funkcionálni)
Ezek után létrehoztunk egy kliens oldali parancsot: ha sabye beírjuk, hogy "/cvar" akkor kiírj üzenetet a saybe az alábbiak szerint:
Lekéri a get_pcvar_num függvénnyel a változónk aktuális értékét.
Ha ez 1, akkor ezt látjuk majd: "A cvar erteke 1!"
Ha 2, akkor ezt: "A cvar erteke 2!"
Ha nem 1 és nem 2, akkor ezt írja ki: "A cvar erteke nem 1 es nem 2!"
*/



(u.i. 2: Nagyot nevettem ezen: "ezért tovább lép és rájön, hogy 2" :D Rájön? :D ilyen okos? :D)

Szerző:  OldSilent [ 2012.12.30. 20:41 ]
Hozzászólás témája:  Re: Pcvar készítés

Bocsaanat Mr.Metal. xd

Szerző:  Silent [ 2013.04.26. 20:04 ]
Hozzászólás témája:  Re: Pcvar készítés

Feel free to edit my post. Jórégi amm, kicsit gáz is :DD

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/