Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Art. Brut. - zdjęcie

Art. Brut.

Rejestracja: 05.07.2011
Aktualnie: Nieaktywny
Poza forum Ostatnio: 18.11.2012 10:45
-----

#217391 Zmiana modeli broni dla klas/perków

Napisane przez Goliath w 19.02.2011 20:34

Witam!
Dzisiaj pokażę wam, jak zrobić klasę/perk ze zmienionym modelem broni (p_/v_/w_). Zacznę od wytłumaczenia, który model za co odpowiada:
- v_* jest to model, który widzimy my z perspektywy 1. osoby,
- p_* jest to model broni w naszych rękach, jaki widzą inni gracze,
- w_* jest to model broni leżącej na ziemi.

CoD Nowy
Zacznijmy od przygotowania pliku. Weźmy np. takiego Rushera. Plik .sma wygląda tak:
Spoiler

Dodajmy wsród zmiennych warunek typu true/false (o nazwie ma_klase dla klasy lub ma_perk dla perku) i wrzućmy do forwardów cod_class_enabled i cod_class_disabled (jeżeli zmieniamy to dla perku, to do forwardów cod_perk_enabled i cod_perk_disabled). Następnie zaincludujmy potrzebną bibliotekę fakemeta oraz dodajmy modele do plugin_precache (żeby się ściągały przed dołączeniem do serwera).
Spoiler


Zacznijmy od zmiany modelów p_ i v_. Dodajemy to do plugin_init:
register_event("CurWeapon", "CurWeapon", "be", "1=1")

A to na 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ść wygląda tak:
Spoiler

Teraz zajmijmy się zmianą modelu w_. Dodajemy to do plugin_init:
register_forward(FM_SetModel, "fw_SetModel");

A to na koniec pliku:
public fw_SetModel(entity, model[])
{
if(!pev_valid(entity))
return FMRES_IGNORED

if(!equali(model, "models/w_m3.mdl")) //tutaj wpisujemy ścieżkę do STAREGO modelu w_, czyli tego który chcemy podmienić
return FMRES_IGNORED;

new entityowner = pev(entity, pev_owner);

if(!ma_klase[entityowner]) //tutaj wpisujemy ma_perk lub ma_klase
return FMRES_IGNORED;

engfunc(EngFunc_SetModel, entity, "models/cod/w_m3.mdl")
return FMRES_SUPERCEDE
}

A to gotowy .sma:
Spoiler


To by było na tyle. Mam nadzieję, że zrozumieliście jak to zrobić. Niestety - modele musicie sami sobie znaleść ;P.
  • +
  • -
  • 38