Skocz do zawartości
NaTeOooO

[ZAMKNIĘTY [CS 1.6 TUTORIAL] Multijump dla klasy/perku.

Rekomendowane odpowiedzi

Napisano (edytowane)

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:

 

 

 

 

/* Plugin generated by AMXX-Studio */

 

 

 

#include

 

#include

 

 

 

new const nazwa[] = "Rusher";

 

new const opis[] = "Brak";

 

new const bronie = 1<

 

new const zdrowie = 0;

 

new const kondycja = 55;

 

new const inteligencja = 10;

 

new const wytrzymalosc = 0;

 

 

 

public plugin_init() {

 

    register_plugin(nazwa, "1.0", "QTM_Peyote");

 

    

 

    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

 

}

 

 

 

 

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:

 

 

 

/* Plugin generated by AMXX-Studio */

 

 

 

#include

 

#include

 

 

 

new const nazwa[] = "Rusher";

 

new const opis[] = "Brak";

 

new const bronie = 1<

 

new const zdrowie = 0;

 

new const kondycja = 55;

 

new const inteligencja = 10;

 

new const wytrzymalosc = 0;

 

 

 

new ma_klase[33];

 

 

 

public plugin_init() {

 

    register_plugin(nazwa, "1.0", "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;

 

}

 

 

 

 

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:

 

 

 

/* Plugin generated by AMXX-Studio */

 

 

 

#include

 

#include

 

#include

 

 

 

new const nazwa[] = "Rusher";

 

new const opis[] = "Ma potrojny skok";

 

new const bronie = 1<

 

new const zdrowie = 0;

 

new const kondycja = 55;

 

new const inteligencja = 10;

 

new const wytrzymalosc = 0;

 

 

 

new ma_klase[33];

 

new skoki[33];

 

 

 

public plugin_init() {

 

    register_plugin(nazwa, "1.0", "QTM_Peyote");

 

    

 

    cod_register_class(nazwa, opis, bronie, zdrowie, kondycja, inteligencja, wytrzymalosc);

 

    

 

    register_forward(FM_CmdStart, "CmdStart");

 

}

 

 

 

public cod_class_enabled(id)

 

{

 

    ma_klase[id] = true;

 

}

 

 

 

public cod_class_disabled(id)

 

{

 

    ma_klase[id] = false;

 

}

 

 

 

public CmdStart(id, uc_handle)

 

{

 

    if(!is_user_alive(id) || !ma_klase[id])

 

        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;

 

    

 

    return FMRES_IGNORED;

 

}

 

 

 

 

 

 

 

 

Edytowane przez klqs

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...