←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
połączenie wytrzymałości perku w codmod na...

Alpacino - zdjęcie Alpacino 26.02.2014

Witam mam pytanie jak mogę połączyć wytrzymałość perku by nie był w osobnym pluginie tylko w qtm_codmod by kanału nie zajmował

Odpowiedz

  • +
  • -
Drago36 - zdjęcie Drago36 27.02.2014

Serio? Najpierw wykonaj kopie zapasową. Brakujące biblioteki dopisz. Dodaj w odpowiednie miejsce zmienne i rejestracje, a reszte kodu już wrzuć na sam koniec. Skompiluj i wgraj.
Odpowiedz

Alpacino - zdjęcie Alpacino 28.02.2014

Może byś powiedział a nie bo zielony jestem :( łączyć próbowałem ale errory

Odpowiedz

  • +
  • -
Drago36 - zdjęcie Drago36 28.02.2014

Musisz pokazać pluginy, a cię lepiej pokieruje. - [wytrzymałość perku, silnik cod'a]

Odpowiedz

Alpacino - zdjęcie Alpacino 28.02.2014

Ok

Załączone pliki

Odpowiedz

Alpacino - zdjęcie Alpacino 28.02.2014

możesz też powiedzieć jak sam hud dodać do coda bo łączyć nie chce tylko hud na 1 kanał ale mi to 1 rożnica

Odpowiedz

  • +
  • -
Drago36 - zdjęcie Drago36 28.02.2014

Wczytuj się porządnie:

Do bibliotek dodaj:

#include <codmod>


 

Pod bibliotekami dodaj:

(tu: dodane są pcvary oraz zmienna)

new cvar_max_wytrzymalosc, cvar_uszkodzenia_za_smierc;
new wytrzymalosc_perku[33];


Do plugin_init dodaj, tu: rejestrujesz śmierć gracza, cvary:

register_event("DeathMsg", "Death", "ade");
cvar_max_wytrzymalosc = register_cvar("cod_maxperkdurability", "100");
cvar_uszkodzenia_za_smierc = register_cvar("cod_perkdamage", "10")



Do plugin_natives dodajesz (trochę musimy pozmieniać, jeśli chcemy wkleić do silnika):

register_native("cod_get_perk_durability", "PobierzWytrzymaloscPerku", 1);
register_native("cod_set_perk_durability", "UstawWytrzymalosc", 1);


A teraz to na sam koniec/dół:

public cod_perk_changed(id, perk)
{
static poprzedni_perk[33];

if(poprzedni_perk[id] == perk) return;

wytrzymalosc_perku[id] = perk? get_pcvar_num(cvar_max_wytrzymalosc): 0;

poprzedni_perk[id] = perk;
}

public Death()
{
new id = read_data(2);

if(!cod_get_user_perk(id)) return;

new uszkodzenia_za_smierc = get_pcvar_num(cvar_uszkodzenia_za_smierc);
wytrzymalosc_perku[id] -= (wytrzymalosc_perku[id] > uszkodzenia_za_smierc)? uszkodzenia_za_smierc: wytrzymalosc_perku[id];
if(wytrzymalosc_perku[id] <= 0)
{
  cod_set_user_perk(id, 0);
  client_print(id, print_chat, "Twoj perk ulegl zniszczeniu.");
}
else
  client_print(id, print_chat, "Pozostala wytrzymalosc twojego perku to %i.", wytrzymalosc_perku[id]);
}
public UstawWytrzymalosc(id, wartosc)
{
new max_wytrzymalosc = get_pcvar_num(cvar_max_wytrzymalosc);
wytrzymalosc_perku[id] = (wartosc > max_wytrzymalosc)? max_wytrzymalosc: wartosc;
}
public PobierzWytrzymaloscPerku(id)
return wytrzymalosc_perku[id];



I zaczynamy dodawać do HUD:

W PokazInformacje(id):

Są dwie podobne do siebie linijki (ale nie do końca).

Najpierw edytujemy tą co jest wyżej:

ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Exp : %i] / %i^n[Poziom : %i / 200]^n[Perk : %s]^n[VIP : %s]^n[Zdrowie : %d]^n[KillStreak : x%d]^n[DeathStreak : x%d]", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]], get_user_flags(target) & ADMIN_LEVEL_H ? "Tak" : "Nie", hp, licznik_zabiccod[target], licznik_smiercicod[target]);

Zmieniasz ją na:

ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Exp : %i] / %i^n[Poziom : %i / 200]^n[Perk : %s]^n[VIP : %s]^n[Zdrowie : %d]^n[KillStreak : x%d]^n[DeathStreak : x%d]^n[Wytrzymalosc Perku: %i/%i]", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]], get_user_flags(target) & ADMIN_LEVEL_H ? "Tak" : "Nie", hp, licznik_zabiccod[target], licznik_smiercicod[target], wytrzymalosc_perku[id], get_pcvar_num(cvar_max_wytrzymalosc));



A teraz tą linijkę:

ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Exp : %i / %i]^n[Poziom : %i / 200]^n[Perk : %s]^n[VIP : %s]^n[Zdrowie : %d]^n^n[KillStreak : x%d]^n[DeathStreak : x%d]^n[Godzina : %s]^n[Forum : Cs-Zyciowka.com.pl]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]], get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie", hp, licznik_zabiccod[id], licznik_smiercicod[id], Time);

Na:

ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Exp : %i / %i]^n[Poziom : %i / 200]^n[Perk : %s]^n[VIP : %s]^n[Zdrowie : %d]^n^n[KillStreak : x%d]^n[DeathStreak : x%d]^n[Godzina : %s]^n[Forum : Cs-Zyciowka.com.pl]^n[Wytrzymalosc Perku: %i/%i]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]], get_user_flags(id) & ADMIN_LEVEL_H ? "Tak" : "Nie", hp, licznik_zabiccod[id], licznik_smiercicod[id], Time, wytrzymalosc_perku[id], get_pcvar_num(cvar_max_wytrzymalosc));


Na wszelki wypadek wstawię ci już edytowany silnik z wytrzymałością perku.

Załączone pliki

Odpowiedz

Alpacino - zdjęcie Alpacino 28.02.2014

ooooo oto kaman thx była mała pomyłka z id na traget ale poprawiłem thx leci +

Odpowiedz