Witam!
W tym poradniku pokażę, jak zrobić multijump (dodatkowe skoki w powietrzu) dla klasy lub perku.
1.
Weźmy *.sma przykładowej klasy np. Rushera:
2
. Zacznijmy od przygotowania pliku. Stwórz 33-elementową tablicę globalną ma_klase (lub ma_perk dla perku) oraz funkcje cod_class_enabled i cod_class_disabled (cod_perk_enabled i cod_perk_disabled dla perku) w następujący sposób:
Jeśli twoja klasa ma już coś takiego, możesz pominąć w/w punkt.
3.
Następnie upewnij się, że masz dołączoną do pluginu bibliotekę fakemeta. Jeśli nie, dodaj wśród innych "include'ów" to:
#include
4.
Następnie musimy dopisać to do plugin_init:
register_forward(FM_CmdStart, "CmdStart");
5.
Teraz musimy stworzyć nową tablicę globalną - skoki oraz dodać na koniec pluginu funkcję CmdStart:
new skoki[33];
public CmdStart(id, uc_handle)
{
if(!is_user_alive(id) || !ma_klase[id]) //jeśli tworzymy perk, wstawiamy ma_perk zamiast ma_klase
return FMRES_IGNORED;
new flags = pev(id, pev_flags);
if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id])
{
skoki[id]--;
new Float:velocity[3];
pev(id, pev_velocity,velocity);
velocity[2] = random_float(265.0,285.0);
set_pev(id, pev_velocity,velocity);
}
else if(flags & FL_ONGROUND)
skoki[id] = 2; //tutaj podajemy ilość skokow w powietrzu, jaką może wykonać klasa
return FMRES_IGNORED;
}
6.
Kompilujemy plik i gotowe!
A tutaj gotowy, przerobiony rusher: