Dodawanie X punktow w statystyke
DarkGL
03.07.2011
Gracz może napisać ile chce dodać punktów
do zmiennych globalnych (na samej górze pluginu już po #include ale przed pierwszym public)
#define MAX_PKT 100 - tutaj ustawiamy maksymalny level umiejętności
do plugin_init
w dowolne miejsce
Standardowe funkcje PrzydzielPunkty i PrzydzielPunkty_Handler podmieniamy na
zostałem o to poproszony pomysł należy do Frajer'a [CoD Stary] Pewna funkcja - AMXX.pl: Support AMX Mod X
do zmiennych globalnych (na samej górze pluginu już po #include ale przed pierwszym public)
#define MAX_PKT 100 enum umiejetnosci{ eInteligencja, eZdrowie, eWytrzymalosc, eKondycja } new umiejetnosci:iModePrzydziel[33];
#define MAX_PKT 100 - tutaj ustawiamy maksymalny level umiejętności
do plugin_init
register_clcmd("wprowadz_ilosc_pkt","iDodaj")
w dowolne miejsce
public iDodaj(id) { new szDodaj[196]; read_args(szDodaj,charsmax(szDodaj)) remove_quotes(szDodaj) if(is_str_num(szDodaj)) { new iIle = str_to_num(szDodaj) if(iIle > punkty_gracza[id]){ ColorChat(id, GREEN, "[COD:MW]^x01 Masz za malo punktow"); if(punkty_gracza[id]>0) PrzydzielPunkty(id); return PLUGIN_CONTINUE; } switch(iModePrzydziel){ case eInteligencja:{ if(inteligencja_gracza[id] + iIle > MAX_PKT){ iIle = MAX_PKT - inteligencja_gracza[id]; } inteligencja_gracza[id] += iIle; punkty_gracza[id] -= iIle; ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w inteligencje. %s", iIle,inteligencja_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":""); } case eZdrowie:{ if(zdrowie_gracza[id] + iIle > MAX_PKT){ iIle = MAX_PKT - zdrowie_gracza[id]; } zdrowie_gracza[id] += iIle; punkty_gracza[id] -= iIle; ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w zycie. %s", iIle,zdrowie_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":""); } case eWytrzymalosc:{ if(wytrzymalosc_gracza[id] + iIle > MAX_PKT){ iIle = MAX_PKT - wytrzymalosc_gracza[id] } wytrzymalosc_gracza[id] += iIle; punkty_gracza[id] -= iIle; ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w wytrzymalosc %s", iIle,wytrzymalosc_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":""); } case eKondycja:{ if(kondycja_gracza[id] + iIle > MAX_PKT){ iIle = MAX_PKT - kondycja_gracza[id]; } kondycja_gracza[id] += iIle; punkty_gracza[id] -= iIle; ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w kondycje. %s", iIle,kondycja_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":""); } } if(punkty_gracza[id]>0) PrzydzielPunkty(id); } else{ ColorChat(id, GREEN, "[COD:MW]^x01 Tylko cyfry!"); if(punkty_gracza[id]>0) PrzydzielPunkty(id); return PLUGIN_CONTINUE; } return PLUGIN_CONTINUE; }
Standardowe funkcje PrzydzielPunkty i PrzydzielPunkty_Handler podmieniamy na
public PrzydzielPunkty(id) { new inteligencja[65]; new zdrowie[60]; new wytrzymalosc[60]; new kondycja[60]; new tytul[25]; format(inteligencja, 64, "Inteligencja: \r%i \y(Zwieksza obrazenia zadawane przedmiotami)", inteligencja_gracza[id]); format(zdrowie, 59, "Zycie: \r%i \y(Zwieksza zycie)", zdrowie_gracza[id]); format(wytrzymalosc, 59, "Wytrzymalosc: \r%i \y(Zmniejsza obrazenia)", wytrzymalosc_gracza[id]); format(kondycja, 59, "Kondycja: \r%i \y(Zwieksza tempo chodu)", kondycja_gracza[id]); format(tytul, 24, "Przydziel Punkty(\r%i):", punkty_gracza[id]); new menu = menu_create(tytul, "PrzydzielPunkty_Handler"); menu_additem(menu, inteligencja); menu_additem(menu, zdrowie); menu_additem(menu, wytrzymalosc); menu_additem(menu, kondycja); menu_additem(menu,"Dodaj X punktow w Inteligencje"); menu_additem(menu,"Dodaj X punktow w Zycie"); menu_additem(menu,"Dodaj X punktow w Wytrzymalosc"); menu_additem(menu,"Dodaj X punktow w Kondycje"); menu_display(id, menu); #if defined BOTY if(is_user_bot2(id)) PrzydzielPunkty_Handler(id, menu, random(4)); #endif } public PrzydzielPunkty_Handler(id, menu, item) { client_cmd(id, "spk QTM_CodMod/select"); if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: { if(inteligencja_gracza[id]<MAX_PKT) inteligencja_gracza[id]++; else ColorChat(id, GREEN, "[COD:MW]^x01 Maxymalny poziom inteligencji osiagniety"); } case 1: { if(zdrowie_gracza[id]<MAX_PKT) zdrowie_gracza[id]++; else ColorChat(id, GREEN, "[COD:MW]^x01 Maxymalny poziom sily osiagniety"); } case 2: { if(wytrzymalosc_gracza[id]<MAX_PKT) wytrzymalosc_gracza[id]++; else ColorChat(id, GREEN, "[COD:MW]^x01 Maxymalny poziom zrecznosci osiagniety"); } case 3: { if(kondycja_gracza[id]<MAX_PKT) kondycja_gracza[id]++; else ColorChat(id, GREEN, "[COD:MW]^x01 Maxymalny poziom zwinnosci osiagniety"); } case 4: { if(inteligencja_gracza[id]<MAX_PKT){ client_cmd(id, "messagemode wprowadz_ilosc_pkt"); iModePrzydziel[id] = eInteligencja; return PLUGIN_HANDLED; } } case 5: { if(punkty_gracza[id]){ client_cmd(id, "messagemode wprowadz_ilosc_pkt"); iModePrzydziel[id] = eZdrowie; return PLUGIN_HANDLED; } } case 6: { if(punkty_gracza[id]){ client_cmd(id, "messagemode wprowadz_ilosc_pkt"); iModePrzydziel[id] = eWytrzymalosc; return PLUGIN_HANDLED; } } case 7: { if(punkty_gracza[id]){ client_cmd(id, "messagemode wprowadz_ilosc_pkt"); iModePrzydziel[id] = eKondycja; return PLUGIN_HANDLED; } } } punkty_gracza[id]--; if(punkty_gracza[id]>0) PrzydzielPunkty(id); return PLUGIN_CONTINUE; }to wszystko
zostałem o to poproszony pomysł należy do Frajer'a [CoD Stary] Pewna funkcja - AMXX.pl: Support AMX Mod X
ExTaza?!
04.07.2011
Tzn gracza ma np. 200 pkt i moze je przydzielic np od razu 50 do HP 50 do Kondycji itp jedna komenda? Bez klikania 1,2,3 ?
ExTaza?!
05.07.2011
Tzn gracza ma np. 200 pkt i moze je przydzielic np od razu 50 do HP 50 do Kondycji itp jedna komenda? Bez klikania 1,2,3 ?
No to odpowiesz Autorze ?
DarkGL
05.07.2011
klika 5 wpisuje 50 i enter klika 6 znow 50 i enter i tak jeszcze dwa razy i dał po 50 w każdy skill zresztą możesz sprawdzić to w grze
Edited by DarkGL, 05.07.2011 17:11.
Edited by DarkGL, 05.07.2011 17:11.
ExTaza?!
05.07.2011
Czyli beda opcje ze po 1 pkt mozna dodawac i opcja ze od razu 50 ? Jak tak to jutro to tam do swojego przetestuje jak fajne bedzie plusik ;] Ale i tak bedzie ;]
Kusek
07.07.2011
po prostu wpisujesz ile chcesz sobie dodać w statystykę, masz np. 100pkt to zamiast klikać cały czas do 100 to wpisujesz i masz
ExTaza?!
07.07.2011
No i o to pytalem. Plusik idzie.
Dodano 08 lipiec 2011 - 02:30:
Zrob wersje z TYM bo cos nie moge a mam to
Dodano 08 lipiec 2011 - 02:30:
Zrob wersje z TYM bo cos nie moge a mam to
ric0
10.07.2011
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team
kopia.sma(1783) : error 033: array must be indexed (variable "-unknown-")
1 Error.
Could not locate output file kopia.amxx (compile failed)
Wywala mi błąd taki i to jest gdy wklejam to na koniec :
public iDodaj(id)
{
new szDodaj[196];
read_args(szDodaj,charsmax(szDodaj))
remove_quotes(szDodaj)
if(is_str_num(szDodaj))
{
new iIle = str_to_num(szDodaj)
if(iIle > punkty_gracza[id]){
ColorChat(id, GREEN, "[COD:MW]^x01 Masz za malo punktow");
if(punkty_gracza[id]>0)
PrzydzielPunkty(id);
return PLUGIN_CONTINUE;
}
switch(iModePrzydziel){
case eInteligencja:{
if(inteligencja_gracza[id] + iIle > MAX_PKT){
iIle = MAX_PKT - inteligencja_gracza[id];
}
inteligencja_gracza[id] += iIle;
punkty_gracza[id] -= iIle;
ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w inteligencje. %s",
iIle,inteligencja_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":"");
}
case eZdrowie:{
if(zdrowie_gracza[id] + iIle > MAX_PKT){
iIle = MAX_PKT - zdrowie_gracza[id];
}
zdrowie_gracza[id] += iIle;
punkty_gracza[id] -= iIle;
ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w zycie. %s",
iIle,zdrowie_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":"");
}
case eWytrzymalosc:{
if(wytrzymalosc_gracza[id] + iIle > MAX_PKT){
iIle = MAX_PKT - wytrzymalosc_gracza[id]
}
wytrzymalosc_gracza[id] += iIle;
punkty_gracza[id] -= iIle;
ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w wytrzymalosc %s",
iIle,wytrzymalosc_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":"");
}
case eKondycja:{
if(kondycja_gracza[id] + iIle > MAX_PKT){
iIle = MAX_PKT - kondycja_gracza[id];
}
kondycja_gracza[id] += iIle;
punkty_gracza[id] -= iIle;
ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w kondycje. %s",
iIle,kondycja_gracza[id] >= 100 ? "Maksymalny poziom osiagniety":"");
}
}
if(punkty_gracza[id]>0)
PrzydzielPunkty(id);
}
else{
ColorChat(id, GREEN, "[COD:MW]^x01 Tylko cyfry!");
if(punkty_gracza[id]>0)
PrzydzielPunkty(id);
return PLUGIN_CONTINUE;
}
return PLUGIN_CONTINUE;
}
Dodano 11 lipiec 2011 - 14:33:
Poradziłem sobie z wyżej wymienionym problemem ale nadal to nie działa.. likam daj x pkt w kondycje wpisuje i to nic nie daje i w czacie nei ma info..
Edited by Squady, 10.07.2011 11:46.
Gość_deLL_* 12.07.2011
Na moje oko nie dodałeś do plugin_init tego :
register_clcmd("wprowadz_ilosc_pkt","iDodaj")
Bratt 09.08.2011
eey
a dokladnie to gdzie to wpisac ?
register_clcmd("wprowadz_ilosc_pkt","iDodaj")
a dokladnie to gdzie to wpisac ?
register_clcmd("wprowadz_ilosc_pkt","iDodaj")
Kolar`. 04.09.2011
#define MAX_WIELKOSC_FRAKCJA 64
#define MAX_PKT 100
enum umiejetnosci{
eInteligencja,
eZdrowie,
eWytrzymalosc,
eKondycja
}
new umiejetnosci:iModePrzydziel[33];
new const maxAmmo[31] = {0, 52, 0, 90, 1, 31, 1, 100, 90, 1, 120, 100, 100, 90, 90, 90, 100, 120, 30, 120, 200, 31, 90, 120,
90, 2, 35, 90, 90,0, 100};
new MsgScreenfade;
Errory:
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team Error: Array must be indexed (variable "-unknown-") on line 1684 1 Error. Could not locate output file C:\Users\Kamil\Desktop\CoD dmg\QTM_CodMod.amx (compile failed).
To tutaj:
public iDodaj(id)
{
new szDodaj[196];
read_args(szDodaj,charsmax(szDodaj))
remove_quotes(szDodaj)
if(is_str_num(szDodaj))
{
new iIle = str_to_num(szDodaj)
if(iIle > punkty_gracza[id]){
ColorChat(id, GREEN, "[COD:MW]^x01 Masz za malo punktow");
if(punkty_gracza[id]>0)
PrzydzielPunkty(id);
return PLUGIN_CONTINUE;
}
switch(iModePrzydziel){ ///////////////////////////// TUTAJ
case eInteligencja:{
if(inteligencja_gracza[id] + iIle > MAX_PKT){
iIle = MAX_PKT - inteligencja_gracza[id];
}
inteligencja_gracza[id] += iIle;
punkty_gracza[id] -= iIle;
ColorChat(id, GREEN, "[COD:MW]^x01 Dodales %d punktow w inteligencje. %s",
Co jest nie tak ?
Wszystko raczej dodałem dobrze ...
Edited by Kolar`., 04.09.2011 20:00.
Kolar`. 04.09.2011
}
switch(iModePrzydziel[id])
case eInteligencja:{ <<<<<<<<<<<<<<<<<<<<<<< TUTAJ
if(inteligencja_gracza[id] + iIle > MAX_PKT){
iIle = MAX_PKT - inteligencja_gracza[id];
}
Errory
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team Error: Expected token: "{", but found "case" on line 1685 1 Error. Could not locate output file C:\Users\Kamil\Desktop\CoD dmg\QTM_CodMod.amx (compile failed).
Edited by Kolar`., 04.09.2011 20:16.
Kolar`. 04.09.2011
Zmień:
switch(iModePrzydziel)
Na:switch(iModePrzydziel[id])
To Twój błąd.
Teraz działa.
+