Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
Rozpoczynaj nowe tematy i odpowiedaj na inne
Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
Dodawaj wydarzenia do kalendarza społecznościowego
Stwórz swój własny profil i zdobywaj nowych znajomych
Podam tutka do dodania kilku komend : ] a) Dodawanie oraz odejmowanie EXPa Dodawanie oraz odejmowanie LEVELi c) Wyświetlanie informacji o graczach (Thx 4 kyku & Knopers)
A ) Dodawanie oraz odejmowanie EXPa
1. Szukamy
#define ZADANIE_USTAW_SZYBKOSC
Po tym dodajemy
#define MAXEXP XXXXX
Gdzie XXXXX to maksymalna wartość EXPa z tabelki new const doswiadczenie_poziomu[] (Ta ostatnia liczba : d)
2. Szukamy w public plugin_init()
register_concmd("cod_setlvl", "cmd_setlvl", ADMIN_KICK, "<name> <level to set>");
Po tym dodajemy
register_concmd("cod_addexp", "cmd_addexp", ADMIN_KICK, "<name> <exp to add>");
register_concmd("cod_remexp", "cmd_remexp", ADMIN_KICK, "<name> <exp to remove>");
Gdzie ADMIN_KICK to flaga jaką gracz musi posiadać, aby użyć komendy.
3. Na koniec kodu dodajemy
Spoiler
public cmd_addexp(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg1[33];
new arg2[10];
read_argv(1,arg1,32);
read_argv(2,arg2,9);
new player = cmd_target(id, arg1, 0);
remove_quotes(arg2);
new exp = str_to_num(arg2);
if(doswiadczenie_gracza[player] + exp > MAXEXP) {
client_print(id, print_console, "[COD:MW] Chciales dodac za duzo expa (expgracza + wartosc < %i)", MAXEXP)
} else {
doswiadczenie_gracza[player] += exp;
SprawdzPoziom(player);
}
return PLUGIN_HANDLED;
}
public cmd_remexp(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg1[33];
new arg2[10];
read_argv(1,arg1,32);
read_argv(2,arg2,9);
new player = cmd_target(id, arg1, 0);
remove_quotes(arg2);
new exp = str_to_num(arg2);
if(doswiadczenie_gracza[player] - exp < 1) {
client_print(id, print_console, "[COD:MW] Chciales odjac za duzo expa (expgracza - wartosc > 1)")
} else {
doswiadczenie_gracza[player] -= exp;
SprawdzPoziom(player);
}
return PLUGIN_HANDLED;
}
B ) Dodawanie oraz odejmowanie LEVELi
1. Szukamy
#define ZADANIE_USTAW_SZYBKOSC
Po tym dodajemy
#define MAXLVL XXX
Gdzie XXX to nasz maksymalny poziom na serwerze.
2. Szukamy w public plugin_init()
register_concmd("cod_setlvl", "cmd_setlvl", ADMIN_KICK, "<name> <level to set>");
Po tym dodajemy
register_concmd("cod_addlvl", "cmd_addlvl", ADMIN_KICK, "<name> <lvl to add>");
register_concmd("cod_remlvl", "cmd_remlvl", ADMIN_KICK, "<name> <lvl to remove>");
Gdzie ADMIN_KICK to flaga jaką gracz musi posiadać, aby użyć komendy.
3. Na koniec kodu dodajemy
Spoiler
public cmd_addlvl(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg1[33];
new arg2[4];
read_argv(1, arg1, 32);
read_argv(2, arg2, 3);
new player = cmd_target(id, arg1, 0);
remove_quotes(arg2);
new lvl = str_to_num(arg2);
if(poziom_gracza[player] + lvl > MAXLVL) {
client_print(id, print_console, "[COD:MW] Chciales dodac za duzo lvli (lvlgracza + wartosc < %i)", MAXLVL)
} else {
doswiadczenie_gracza[player] = doswiadczenie_poziomu[poziom_gracza[player] + lvl];
SprawdzPoziom(player);
}
return PLUGIN_HANDLED;
}
public cmd_remlvl(id, level, cid)
{
if(!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg1[33];
new arg2[4];
read_argv(1, arg1, 32);
read_argv(2, arg2, 3);
new player = cmd_target(id, arg1, 0);
remove_quotes(arg2);
new lvl = str_to_num(arg2);
if(poziom_gracza[player] - lvl < 1) {
client_print(id, print_console, "[COD:MW] Chciales usunac za duzo lvli (lvlgracza - wartosc > 1)")
} else {
doswiadczenie_gracza[player] = doswiadczenie_poziomu[poziom_gracza[player] - lvl];
SprawdzPoziom(player);
}
return PLUGIN_HANDLED;
}
C ) Wyświetlanie informacji o graczach
1. Szukamy w public plugin_init()
register_concmd("cod_setlvl", "cmd_setlvl", ADMIN_KICK, "<name> <level to set>");
Po tym dodajemy
register_concmd("cod_info", "InformacjeGraczy", ADMIN_KICK, "- Wyswietla informacje o graczach")
Gdzie ADMIN_KICK to flaga jaką gracz musi posiadać, aby użyć komendy.
2. Na koniec kodu dodajemy - COD z wytrzymałością itemów
Spoiler
public InformacjeGraczy(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
new players[32], lgraczy, name[32];
get_players(players, lgraczy)
console_print(id, "===================================");
console_print(id, "= Klasa | Level | Przedmiot : Wytrzymalosc --> Nick =");
console_print(id, "===================================");
for (new a = 0; a < lgraczy; ++a)
{
new plr = players[a];
if(!is_user_connected(plr) || is_user_hltv(plr))
continue;
get_user_name(plr, name, 31)
if(informacje_przedmiotu_gracza[plr][0])
console_print(id, "= %s | %i | %s : %i/100 --> %s", nazwy_klas[klasa_gracza[plr]], poziom_gracza[plr], nazwy_przedmiotow[informacje_przedmiotu_gracza[plr][0]], wytrzymalosc_itemu[plr], name);
else
console_print(id, "= %s | %i | Brak --> %s", nazwy_klas[klasa_gracza[plr]], poziom_gracza[plr], name);
}
console_print(id, "===================================");
return PLUGIN_HANDLED
}
- COD bez wytrzymałości itemów
Spoiler
public InformacjeGraczy(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
new players[32], lgraczy, name[32];
get_players(players, lgraczy)
console_print(id, "===================================");
console_print(id, "= Klasa | Level | Przedmiot --> Nick =");
console_print(id, "===================================");
for (new a = 0; a < lgraczy; ++a)
{
new plr = players[a];
if(!is_user_connected(plr) || is_user_hltv(plr))
continue;
get_user_name(plr, name, 31)
if(informacje_przedmiotu_gracza[plr][0])
console_print(id, "= %s | %i | %s --> %s", nazwy_klas[klasa_gracza[plr]], poziom_gracza[plr], nazwy_przedmiotow[informacje_przedmiotu_gracza[plr][0]], name);
else
console_print(id, "= %s | %i | Brak --> %s", nazwy_klas[klasa_gracza[plr]], poziom_gracza[plr], name);
}
console_print(id, "===================================");
return PLUGIN_HANDLED
}
Mam nadzieję, że się przyda Zawsze coś : P
@EDIT Poprawiono - nie wyświetla wiadomosci "Nieznana komenda", mała gafa w zdaniu.
Użytkownik camilost edytował ten post 01.10.2010 17:21
czemu jak wpisuje flage a to jest na kompilacji pisze ze error 272 linijka a jak admin_kick to nic ?
QTM_CodMod.sma(272) : error 017: undefined symbol "a" QTM_CodMod.sma(272) : warning 215: expression has no effect QTM_CodMod.sma(272) : error 001: expected token: ";", but found ")" QTM_CodMod.sma(272) : error 029: invalid expression, assumed zero QTM_CodMod.sma(272) : fatal error 107: too many error messages on one line
Użytkownik Vandal edytował ten post 05.10.2010 17:07
ma być TAK
register_concmd("cod_setlvl", "cmd_setlvl", a, "<name> <level to set>");
register_concmd("cod_addexp", "cmd_addexp", a, "<name> <exp to add>");
register_concmd("cod_remexp", "cmd_remexp", a, "<name> <exp to remove>");
czy tak ?
register_concmd("cod_setlvl", "cmd_setlvl", ADMIN_KICK, "<name> <level to set>");
register_concmd("cod_addexp", "cmd_addexp", ADMIN_KICK, "<name> <exp to add>");
register_concmd("cod_remexp", "cmd_remexp", ADMIN_KICK, "<name> <exp to remove>");