Poradnik jest autorstwa @daring. autor dużo czytał na ten temat aby napisać poradnik, proszę zostaw mi reputację oraz jak chcesz skopiować na inną stronę to proszę abyś skontaktował się ze mną.
Może zacznijmy od tego który model broni za co odpowiada.
v_* = Jest to taki model który widzimy tylko my z perspektywy pierwszej osoby.
p_* = Jest to model naszej broni który widzi cały serwer na którym owe modele są zainstalowane oraz podmienione ( Podam teraz przykład broni podmienionej ).
w_* = Jest to model broni który widzimy kiedy broń leży itp. na ziemi.
To może zacznijmy od przygotowania pliku .sma ( Nazwa klasy w której będzie podmieniony model broni to będzie Kucacz ).
Dodajmy teraz pośród zmiennych warunek zwany true/false, ( Klasa musi się nazywać ma_klase, perk ma_perk ).
Wrzućmy teraz do forwardów -
Jeśli chodzi o klasę to : cod_class_enabled i cod_class_disabled
Jeśli chodzi o perk to : cod_perk_enabled i cod_perk_disabled
Po wrzuceniu forwardów musimy zaincladować potrzebną bibliotekę fakemeta oraz dodać modele do plugin_precache.
Teraz zróbmy zmiane modelów p_* i v_*.
Dodajemy tą linijkę do plugin_init -
register_event("CurWeapon", "CurWeapon", "be", "1=1")
Tak powinien wyglądać koniec pliku.
public CurWeapon(id)
{
new weapon = read_data(2);
if(ma_klase[id]) //tutaj wstawiamy ma_klase lub ma_perk
{
if(weapon == CSW_M3) //tutaj ustawiamy broń, jakiej model będziemy zmieniać
{
set_pev(id, pev_viewmodel2, "models/cod/v_m3.mdl")
//tu dajemy ścieżkę do nowego modeli v_
set_pev(id, pev_weaponmodel2, "models/cod/p_m3.mdl")
//tu dajemy ścieżkę do nowego modeli p_
}
}
Całość prezentuje się właśnie tak -
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <codmod>
new const nazwa[] = "Kucacz";
new const opis[] = "Brak";
new const bronie = 1<<CSW_M3;
new const zdrowie = 0;
new const kondycja = 55;
new const inteligencja = 10;
new const wytrzymalosc = 0;
public plugin_init() {
register_plugin(nazwa, "1.1", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);}
#include <amxmodx>
#include <codmod>
#include <engine>
#include <fakemeta>
new const nazwa[] = "Kucacz";
new const opis[] = "Brak";
new const bronie = 1<<CSW_M3;
new const zdrowie = 0;
new const kondycja = 55;
new const inteligencja = 10;
new const wytrzymalosc = 0;
new bool:ma_klase[33];
public plugin_init() {
register_plugin(nazwa, "1.1", "QTM_Peyote");
cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);
}
public cod_class_enabled(id)
{
ma_klase[id] = true;
}
public cod_class_disabled(id)
{
ma_klase[id] = false;
}
public plugin_precache()
{
precache_model("models/cod/w_m3.mdl");
precache_model("models/cod/p_m3.mdl");
precache_model("models/cod/v_m3.mdl");
//powyżej zmieniasz ścieżki do nowych modeli
public CurWeapon(id)
{
new weapon = read_data(2);
if(ma_klase[id]) //tutaj wstawiamy ma_klase lub ma_perk
{
if(weapon == CSW_M3) //tutaj ustawiamy broń, jakiej model będziemy zmieniać
{
set_pev(id, pev_viewmodel2, "models/cod/v_m3.mdl")
//tu dajemy ścieżkę do nowego modeli v_
set_pev(id, pev_weaponmodel2, "models/cod/p_m3.mdl")
//tu dajemy ścieżkę do nowego modeli p_
}
}
Jeszcze raz proszę przed skopiowaniem skontaktować się ze mną, starałem się to pisząc oraz mogłem się pomylić bo to pisałem z głowy a takie rzeczy mam średnio opanowane.
#Pomocnicze źródło - amxx.pl