Modyfikacja: Zombie Plaque 4.3
Nazwa Modyfikacji: Premium Klasa Zombi
Stan: Testowany
Autor: [AvP] ELOS
Pliki do edycji
- zombieplague.inc - edycja natywu
- zombie_plague40.sma - edycja kodu
- zp_zclasses40.sma && Własne Klasy Zombie - edycja natywu rejestrującego klasę zombi oraz dopisanie kodu.
Temat został napisany do działu ZombieMod.
W tym temacie dowiecie się jak dodać klasę zombie na daną flagę. Dołączam do tego poradnik na 2 sposoby wyglądu klasy premium.
zombie_plague40.sma
Zaczynając od początku, powinniśmy stworzyć zmienne na których będziemy pracować.
Za
new Array:g_zclass_kb // knockbackdodajemy zmienną która będzie przetwarzać naszą flagę w natywie
new Array:g_zclass_flags // flaga
Następną częścią naszej modyfikacji jest edycja natywu w naszym silniku
a więc zamieniamy
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback)na nasz nowy natyw
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback, flags)następnie przechodzimy do plugin_precache
gdzie za
g_zclass_kb = ArrayCreate(1, 1)dodajemy
g_zclass_flags = ArrayCreate(1, 1)Następnym krokiem będzie edycja
public native_register_zombie_classza
Float:knockbackmusimy dodać
, flagsa więc nasz kod wygląda tak
public native_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback, flags)Gdy edytowaliśmy już funkcje naszego publica należy edytować go w zawartości a więc w publicu
native_register_zombie_classza
ArrayPushCell(g_zclass_kb, knockback)należy dodać
ArrayPushCell(g_zclass_flags, flags)
Edycje silnika mam już prawie skończoną pozostaje nam edycja kodu odpowiadającego za wyświetlanie naszej klasy
a więc przechodzimy do
show_menu_zclass(id)oraz do
static menuid, menu[128], class, buffer[32], buffer2[32]dodajemy
, flagaa więc ma wyglądać to tak
static menuid, menu[128], class, buffer[32], buffer2[32], flagaZa
ArrayGetString(g_zclass_info, class, buffer2, charsmax(buffer2))dodajemy
flaga = ArrayGetCell(g_zclass_flags, class)edytujemy
menu_additem(menuid, menu, buffer)na
menu_additem(menuid, menu, buffer, flaga)Jeżeli chcesz aby był widoczny napis (Premium) naciśnij Spoiler
zombieplague.inc
.
A więc przejdźmy do edycji pliku inc.Szukamy oraz
native zp_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback)za
Float:knockbackdodajemy
, flagsKod ma wyglądać tak
native zp_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback, flags)
Funkcje mamy już gotową pozostaje nam edytować nasze klasy Zombie.
zp_zclasses40.sma && Własne Klasy Zombie
Pozostaje nam edycją zp_zclasses40 oraz naszym własnych klas zombie powinniśmy edytować również klasy które nie posiadają premium w innym wypadku klasy nie będą działać a w przypadku zp_zclasses40 nie będzie działał nasz zombie mod.
W każdej klasie za
const Float:zclass_knockback = 1.0 // knockbacknależy dodać (gdy chcemy premium)
const zclass_flags = NASZA_FLAGAw przypadku zwykłych klas
const zclass_flags = 0następnie trzeba edytować naszą rejestracje natywu a więc do każdego
zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback)trzeba dodać
, flagsWygląda to tak
zp_register_zombie_class(zclass_name, zclass_info, zclass_model, zclass_clawmodel, zclass_health, zclass_speed, zclass_gravity, zclass_knockback, zclass_flags)
Mam nadzieje że modyfikacja wam się spodobała włożyłem w nią trochę mojego czasu a w poradniku starałem się opisać wszystko dokładnie.
Gdy powstanie dział ZombieMod moderatora proszę o przeniesienie.