PDA

View Full Version : [Tutorial] Forwarduri de baza



Royce.
30-03-2017, 09:56 PM
O sa va explic pe larg forwardurile de baza cu care lucram cel mai des.

1.plugin_precache
Este primul forward care se executa cand mapa se schimba, serverul porneste/primeste restart. Se foloseste pentru a pregati resursele ce urmeaza sa fie folosite: modele,sprite,sunete. Cu toate ca modulul fakemeta ne permite alternative la functiile de precache default din amxmodx, nu le recomand.
Nativele cu care lucram:

precache_model //modele si spriteuri
precache_generic //sunetele mp3/altele
precache_sound //suntele wav
La precache este mult de vorbit, el are anumite restrictii, multe chestii care ii incurca pe incepatori.

1.a) precache_model
1.1 Modele pentru arme. Majoritatea armelor au 3 modele v,p,w. v este modelul pe care il vedeti cand tineti arma in mana. p este modelul pe care il vad ceilalti cand se uita la voi. w este modelul armei care este pe jos.

new const ModelV [ ] = "models/v_arma.mdl;
new const ModelP [ ] = "models/p_arma.mdl;
new const ModelW [ ] = "models/w_arma.mdl;

public plugin_precache( )
{
precache_model(ModelV);
precache_model(ModelP);
precache_model(ModelW);
}

Nota: folosirea ; la final de linie nu este obligatorie. Este necesara doar in cazul in care #pragma semicolon este folosit. Nu este necesar ca toate armele sa aiba toate cele 3 modele.

Se poate si fara creearea unor constante noi,putem pune direct locatia in precache_model,dar este o practica buna sa faceti asa.
Mult mai usor de editat.

Intre [ ] se pune lungimea stringului dintre "",insa nu este necesar. Compilerul isi da si singur seama.
new const declara o constanta noua. Puteati face simplu new ModelV [ ], dar folosind constantele este mai optimizat.

1.2 Modelul unui player. Este doar un singur fisier, care trebuie sa se afle in models/player/nume_model/nume_model.mdl

Modul I ) precache_model("models/player/test/test.mdl")
//Ambele moduri sunt echivalente. Recomand modul II
new const MOLDE_PLAYER [ ] = "models/player/test/test.mdl"

Modul II ) precache_model(MODEL_PLAYER)
1.b ) precache_sound & precache generic

1.1) precache_sound
Csul foloseste sunete in format wav,deci precache_sound suporta doar suntele in acest format. Ele trebuie sa fie scrise in precache fara /sound in path.

new const SOUND [ ] = "sunet.wav" //locatia este sound/sunet.wav
precache_sound( SOUND )


1.2)precache_generic

Se foloseste cel mai des pentru sunetele de tipul mp3. Ele trebuie folosite cu tot cu /sound in path.

new const SOUND [ ] = "sound/sunet.mp3"
precache_generic( SOUND )
1.c) precache_model pentru spriteuri

new const SPRITE[ ] = "sprites/test.spr"
precache_model( SPRITE )

2.plugin_init
Este al doilea forward care se executa,dupa plugin_precache. Tot ce se poate inregistra in init se poate si in precache. Se foloseste pentru comenzi, cvaruri, eventuri, forwarduri. Nu insisit prea mult,am mai vorbit despre el.

3. plugin_cfg
Se foloseste pentru a altera cvaruri, este forwardul de configurare al pluginului, de obicei in el se creeaza fisiere etc. Este chemat dupa init.

4. plugin_end
Este ultimul forward care se executa, in momentul cand mapa se schimba/se da restart si plugin isi "termina activitatea".