Plik ten (award.wav) możesz śmiało usunąć. cstrike/sound/jjhdrank/promotion.wav natomiast zostaw! Jest odtwarzany w momencie awansu do kolejnej rangi.
Bez promotion.wav plugin nie wystartuje, a award.wav jest już niepotrzebny, bo zdobywanie odznak (których de facto niema) jest oczywiście niemożliwe.
2. Usunąłem resztę niepotrzebnych zmiennych i funkcji, większość jako pozostałości po skomplikowanym menu oraz odznakach.
Antybuga związanego z cichym chodzeniem też usunąłem, bo miał związek z odznakami.
3. Zmieniłem autora na pRED*, gdyż w obliczu takich cięć, to on znów jest głównym autorem, ale zostawiłem notkę o MisieQ
register_plugin(gPluginName, gPluginVersion, "pRED*"); // Bazuje na Battlefield 2: Rank Mod 1.5.3 by pRED*
// Plugin spolszczony przez MisieQ i zmodyfikowany
4. BF2mod standardowo nawet w Colormodzie dla zlota nie ma ColorChata. Chyba dlatego, ze wtedy kolor jest zloty

Dlatego dla zlota specjalnie ColorChata nie pisalem.
5. Odnośnie rang: Mamy następujące rangi:
new const gRankName[MAX_RANKS+5][] =
{
"Szeregowy", //0
"Starszy Szeregowy",
"Kapral",
"Starszy Kapral",
"Plutonowy",
"Sierzant",
"Starszy Sierzant",
"Mlodyszy Chorazy", //7
"Chorazy", //8
"Starszy Chorazy",
"Chorazy Sztabowy",
"Podporucznik",
"Porucznik",
"Kapitan",
"Major",
"Podpulkownik", //15
"Pulkownik", //16
"General Brygady", //17 (Ranga specjalna)
"General Dywizji", //18 (Ranga specjalna)
"General Broni", //19 (Ranga specjalna)
"General", //20 (Ranga specjalna, wym. 2. miejsce w rankingu)
"Marszalek Polski" //21 (Ranga specjalna, wym. 1. miejsce w rankingu)
};
Oraz następujące wymagania dla rang specjalnych:
switch(newrank)
{
case 7:
if ( numofbadges[id] >= MAX_BADGES )
g_PlayerRank[id] = 17;
case 8:
if ( numofbadges[id] >= (MAX_BADGES*2) )
g_PlayerRank[id] = 18;
case 15:
if ( numofbadges[id] == (MAX_BADGES*3) )
g_PlayerRank[id] = 19;
case 16:
//If active, Lieutenant General and General require all badges
if ( get_pcvar_num(gPcvarBadgesActive) && numofbadges[id] != (MAX_BADGES*4) )
g_PlayerRank[id] = 15; //If badges active and they don't have all badges demote back to Brigadier General
else if ( ranked == 2 )
g_PlayerRank[id] = 20; //Promote to General if Number 2 ranked.
else if ( ranked == 1 )
g_PlayerRank[id] = 21; //Promote to Marszalek Polski if Number 1 ranked.
}
Nie ma już odznak, więc dla odznak 17,18,19 zmieniłem następujące warunki:
Dla 17 (General Brygady) zamiast min. 1/4 odznak zdobytych z możliwych do zdobycia, trzeba zdobyć min. 40 złotych medali. Dla 18 (General Dywizji) zamiast min. 1/2 odznak zdobytych z możliwych do zdobycia, trzeba zdobyć min. 60 złotych medali. Dla 19 (General Broni) zamiast min. 3/4 odznak zdobytych z możliwych do zdobycia, trzeba zdobyć min. 100 złotych medali. 20 (Generał) Wymagane 2. miejsce w rankingu (Wymóg wszystkich odznak zamieniony na min. 100 złotych medali) 21 (Marszalek Polski) Wymagane 1. miejsce w rankingu (Wymóg wszystkich odznak zamieniony na min. 100 złotych medali)Dodałem także stałe dla ilości wymaganych złotych medali:
new const gRankGold[5]= // Wymagana liczba zlotych medali
{
40, // General Brygady
60, // General Dywizji
100, // General Broni
100, // General
100 // Marszalek Polski
}
Stąd nowe wymagania odnośnie 5 rang specjalnych (17-21):
if ( g_PlayerRank[id]==17 && gold[id] < gRankGold[0] )
g_PlayerRank[id] = 7; //Degrade if the requirements became higher
if ( g_PlayerRank[id]==18 && gold[id] < gRankGold[1] )
g_PlayerRank[id] = 8; //Degrade if the requirements became higher
if ( g_PlayerRank[id]==19 && gold[id] < gRankGold[2] )
g_PlayerRank[id] = 15; //Degrade if the requirements became higher
if ( g_PlayerRank[id]==20 && gold[id] < gRankGold[3] )
g_PlayerRank[id] = 16; //Degrade if the requirements became higher
if ( g_PlayerRank[id]==21 && gold[id] < gRankGold[4] )
g_PlayerRank[id] = 16; //Degrade if the requirements became higher
switch(newrank)
{
case 7:
if ( gold[id] >= gRankGold[0] )
g_PlayerRank[id] = 17;
case 8:
if ( gold[id] >= gRankGold[1] )
g_PlayerRank[id] = 18;
case 15:
if ( gold[id] >= gRankGold[2] )
g_PlayerRank[id] = 19;
case 16:
if ( ranked == 2 && gold[id] >= gRankGold[3] )
g_PlayerRank[id] = 20; //Promote to General if Number 2 ranked.
else if ( ranked == 1 && gold[id] >= gRankGold[4] )
g_PlayerRank[id] = 21; //Promote to Marszalek Polski if Number 1 ranked.
}
6. Stock Create_TE_PLAYERATTACHMENT, jako jedyny pozostały w effect.inl, przeniosłem do stocks.inl,
tym samym pozbywając się effects.inl (Możesz śmiało wyrzucić effect.inl)
7. Choć show_rankhelp(id) nie jest używane (cmds.inl), to zostawiłem, i zaktualizowałem o zmiany
w systemie rankingowym (usunięcie odznak) może kiedyś Ci się przyda taka informacja do wstawienia.
Jeśli chcesz używać, to odkomentuj linijki 121-122 w plugin_init głównego pliku. Bez problemu zmienisz też
nazwę ewentualnej komendy na to z /rankhelp an inną, po prostu zmieniając ją w tych dwóch linijkach kodu.
8. Informację o złotych medalach w lewym dolnym rogu dodałem.
9. Usunąłem drobne niedopatrzenie w ham.inl dotyczące botów w CZ.
10. Usunąłem też dużo innych niepotrzebnych stocków, głównie z fakemety.
11. Usunąłem całe BF2menu, zamiast tego dodałem komednę /adminmenu, otwierającą Menu Administracji.
W Menu Administracji można 1. Dodać fragi (10, 100, 1000 lub własną liczbę) - wymagana flaga ADMIN_LEVEL.
Lub można 2. Zresetować wszystkie statystyki (wymagana flaga ADMIN_RESET). Jest pytanie bezpieczeństwa.
12. Zabieranie fragów (czyli dodawanie ujemnej liczby fragów) jest dostępne tylko dla Admina z flagą ADMIN_RESET.
Możliwe jest to przez komendę add_kills w konsoli lub poprzez Menu Admina -> 1 -> 4 -> Podanie ujemnej wartości -> Wybór gracza.
W takim wypadku zostanie wyświetlony stosowny komunikat zamiast odbierać fragi graczowi.
Przy domyślnych ustawieniach zarówno ADMIN_LEVEL, jak i ADMIN_RESET to flaga A (immunitet) i niniejszy punkt nie ma znaczenia.
13. Podsumowując, dostępne są następujące komendy:
add_kills <komu dodac zabicia> <ile zabic dodac> (w konsoli) dla Adminów z flagą ADMIN_LEVEL (domyślnie flaga A -immunitet, DEFINE linijki 6. głównego pliku);
/adminmenu dostępne na sayu lub teamsayu dla Adminów z flagą ADMIN_LEVEL lub ADMIN_RESET (domyślnie flaga A -immunitet, DEFINE linijki 6-7 głównego pliku);
/mestats dostępne dla każdego na sayu lub teamsayu.
/serverstats dostępne dla każdego na sayu lub teamsayu.
/whostats <czyje statystki pokazac> dostępne dla każdego na sayu lub teamsayu.
oraz /rankhelp (jeśli odkomentujesz linijki 121-122 w pliku głównym) dostępne dla każdego na sayu lub teamsayu.
BTW. Zdaje się, że wszystko działa, przetestowałem u siebie, kod zdaje się być OK.
Posprawdzaj i daj znać. Mam nadzieję, że nic nie przeoczyłem.
PS. Odnośnie zapisu vault z głównymi statami serwera (komenda /serverstats) - widziałem, że coś zmieniłeś.
Było OK, więc jeśli teraz nie działa, to musisz ponownie to sprawdzić, wierzę, że wiesz, co zmieniłeś, więc nie sprawdzałem.
PPS. To by było na tyle. Wszystko Ci opisałem, kod masz cały dostępny poniżej.
