←  Poradniki, Łatki oraz Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

CoD Nowy
KillStreak i DeathStreak w HUD

  • +
  • -
Play 4FuN's Photo Play 4FuN 10.10.2012

Witam, dzisiaj pokaże wam jak dodać KillStreak i DeathStreak do HUD'a. Dodanie ks i ds do hud wygląda następująco:

Znajdź:

new bool:freezetime = true;

Daj dwa entery i dodaj:

new licznik_zabiccod[33];
new licznik_smiercicod[33];

U mnie po edycji wygląda to tak:

new bool:freezetime = true;

new licznik_zabiccod[33];
new licznik_smiercicod[33];

Znajdź:

register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");

Dodaj pod:

register_event("DeathMsg", "SmiercGraczaKillCod", "a");

U mnie po edycij wygląda to tak:

register_event("HLTV", "NowaRunda", "a", "1=0", "2=0");
register_event("DeathMsg", "SmiercGraczaKillCod", "a");

Znajdź "public PokazInformacje(id)" i odszukaj w nim:

ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);

Na końcu informacji co ma pokazywać (Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s) dodaj:

^nKillStreak : x%d^nDeathStreak : x%d

Na końcu:

ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s^nKillStreak : x%d^nDeathStreak : x%d", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]]);

Na końcu (czyli za nazwy_perkow[perk_gracza[target]])
Dodaj:

, licznik_zabiccod[target], licznik_smiercicod[target]

Po edycji powinno wyglądać mniej więcej tak:

ShowSyncHudMsg(id, SyncHudObj, "Klasa : %s^nDoswiadczenie : %i / %i^nPoziom : %i^nPerk : %s^nKillStreak : x%d^nDeathStreak : x%d", nazwy_klas[klasa_gracza[target]], doswiadczenie_gracza[target], PobierzDoswiadczeniePoziomu(poziom_gracza[target]), poziom_gracza[target], nazwy_perkow[perk_gracza[target]], licznik_zabiccod[target], licznik_smiercicod[target]);

W tym samym public'u (public PokazInformacje(id)) znajdź:

ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);

Na końcu informacji co ma pokazywać ([Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]) dodaj:

^n[KillStreak : x%d]^n[DeathStreak : x%d]

Na końcu:

ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]^n[KillStreak : x%d]^n[DeathStreak : x%d]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]]);

Na końcu (czyli za nazwy_perkow[perk_gracza[target]])
Dodaj:

, licznik_zabiccod[id], licznik_smiercicod[id]

Po edycji powinno wyglądać mniej więcej tak:

ShowSyncHudMsg(id, SyncHudObj, "[Klasa : %s]^n[Doswiadczenie : %i / %i]^n[Poziom : %i]^n[Perk : %s]^n[KillStreak : x%d]^n[DeathStreak : x%d]", nazwy_klas[klasa_gracza[id]], doswiadczenie_gracza[id], PobierzDoswiadczeniePoziomu(poziom_gracza[id]), poziom_gracza[id], nazwy_perkow[perk_gracza[id]], licznik_zabiccod[id], licznik_smiercicod[id]);

Znajdź:

public ZarejestrujKlase(plugin, params)
{
     if(params != 7)
          return PLUGIN_CONTINUE;

     if(++ilosc_klas > MAX_ILOSC_KLAS)
          return -1;

     pluginy_klas[ilosc_klas] = plugin;

     get_string(1, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
     get_string(2, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);

     bronie_klasy[ilosc_klas] = get_param(3);
     zdrowie_klas[ilosc_klas] = get_param(4);
     kondycja_klas[ilosc_klas] = get_param(5);
     inteligencja_klas[ilosc_klas] = get_param(6);
     wytrzymalosc_klas[ilosc_klas] = get_param(7);

     return ilosc_klas;
}

Stwórz pod nim taki public:

public SmiercGraczaKillCod(id)
{
     new zabojcacod = read_data(1)
     new ofiaracod = read_data(2)

     licznik_smiercicod[zabojcacod] = 0;
     licznik_zabiccod[zabojcacod]++;

     if(!is_user_alive(id))
     {
          licznik_zabiccod[ofiaracod] = 0;
          licznik_smiercicod[ofiaracod]++;
     }
}

Po edycji powinno to wyglądać mniej więcej tak:

public ZarejestrujKlase(plugin, params)
{
     if(params != 7)
          return PLUGIN_CONTINUE;

     if(++ilosc_klas > MAX_ILOSC_KLAS)
          return -1;

     pluginy_klas[ilosc_klas] = plugin;

     get_string(1, nazwy_klas[ilosc_klas], MAX_WIELKOSC_NAZWY);
     get_string(2, opisy_klas[ilosc_klas], MAX_WIELKOSC_OPISU);

     bronie_klasy[ilosc_klas] = get_param(3);
     zdrowie_klas[ilosc_klas] = get_param(4);
     kondycja_klas[ilosc_klas] = get_param(5);
     inteligencja_klas[ilosc_klas] = get_param(6);
     wytrzymalosc_klas[ilosc_klas] = get_param(7);

     return ilosc_klas;
}

public SmiercGraczaKillCod(id)
{
     new zabojcacod = read_data(1)
     new ofiaracod = read_data(2)

     licznik_smiercicod[zabojcacod] = 0;
     licznik_zabiccod[zabojcacod]++;

     if(!is_user_alive(id))
     {
          licznik_zabiccod[ofiaracod] = 0;
          licznik_smiercicod[ofiaracod]++;
     }
}

Screen:
amxx_1350073152__ks_ds_w_hud_amxxpl.png

Testowane na local'u i serwerze

Wszystko starałem się opisać najprościej jak umiałem ;)

Gotowiec:
Attached File  QTM_CodMod.sma   39.68KB   237 downloads

Quote

Zapomniany's Photo Zapomniany 11.10.2012

Jakiś ss jak to wygląda?
Quote

  • +
  • -
TSUBA's Photo TSUBA 11.10.2012

Play dzięki od dawna tego szukałem ;) później zobaczę czy ten poradnik działa jeżeli tak to nagrodzę + ;P a umiałbyś dodać wytrzymałość perku do silnika cod?
Quote

  • +
  • -
Play 4FuN's Photo Play 4FuN 12.10.2012

Screen:
Posted Image
Quote

  • +
  • -
mefistos's Photo mefistos 13.10.2012

wiem jak dodac sma, a gdzie dodac amxx? skoro ja juz mam taki plik to gdzie to w nim dopisac?
Quote

  • +
  • -
dasiek's Photo dasiek 13.10.2012

Skompiluj plik sma do amxx i wrzuć na serwer.
Quote

  • +
  • -
d0naciak's Photo d0naciak 16.10.2012

szczerze powiedziawszy, to moim zdaniem lepszym sposobem byłoby zrobienie nowego pluginu, a dlaczego ?
- ludzie nie mieli by takich kłopotów z dodaniem pluginu, niż z dodaniem kodu do silnika
- i tak było by bezsensowne rejestrowanie 2 razy eventów, które i tak występują już w tutku
- na starego coda też by działało :>
Edited by d0n tHe Pr0oo, 16.10.2012 17:50.
Quote

  • +
  • -
TSUBA's Photo TSUBA 16.10.2012

Tylko że tworząc nowy plugin to informacja o killstreak zajęła by dodatkowy kanał w HUD niż przy połączeniu tego z COD modem
Quote

  • +
  • -
d0naciak's Photo d0naciak 16.10.2012

ale to nie taki duży problem ;]
Quote

  • +
  • -
TSUBA's Photo TSUBA 16.10.2012

Generalnie tak ale weź na przykład kogoś kto ma powiedzmy 3 kanały zapchane wiadomościami w HUD i dodałby 4 kanał to zaraz tematy na forum dlaczego mi HUD mryga podczas gry ;P zresztą to już autora wola czy zechcę zrobić killstreak w HUD jako osobny plugin
Quote

  • +
  • -
Fafik's Photo Fafik 26.10.2012

przydatne widziałem to kiedyś na jakimś zagranicznym serwerze ;P
Quote

  • +
  • -
3_Evil's Photo 3_Evil 11.10.2014

mam problem z kompilacją wyskakuje mi błąd

 

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright © 1997-2006 ITB CompuPhase, AMX Mod X Team
 
QTM_CodMod_edit.sma(1325) : error 028: invalid subscript (not an array or too many subscripts): "get_user_health"
QTM_CodMod_edit.sma(1325) : warning 215: expression has no effect
QTM_CodMod_edit.sma(1325) : error 001: expected token: ";", but found "]"
QTM_CodMod_edit.sma(1325) : error 029: invalid expression, assumed zero
QTM_CodMod_edit.sma(1325) : fatal error 107: too many error messages on one line
 
Compilation aborted.
4 Errors.
 
Pomocy :c

radim (11.10.2014 17:56):
Załóż nowy temat
Quote