Poziom nie usuwa się jeśli z większego ust...
Best Answer Rellik # 25.11.2014 16:46
Czemu cały czas wydawało mi się, że dodałem wzmiankę o silniku? Jego zapis up ... Nie ważne.. Co zmieniłem?
Dodane tu zostało || doswiadczenie_gracza[id] < 1 || vault == INVALID_HANDLE)
co odpowiada valut invalid handle za kasowanie poziomów co 20 dni jesli ktoś nie wejdzie w tym czasie na serwer.
public ZapiszDane(id) { if(!klasa_gracza[id] || doswiadczenie_gracza[id] < 1 || vault == INVALID_HANDLE) return PLUGIN_CONTINUE;
public WczytajDane(id, klasa) { if(vault == INVALID_HANDLE) return PLUGIN_CONTINUE;
i oczywiście zdefiniowałem
#define VAULT_EXPIREDAYS 20
i do plugin _cfg
public plugin_cfg() { new lokalizacja_cfg[33]; get_configsdir(lokalizacja_cfg, charsmax(lokalizacja_cfg)); server_cmd("exec %s/codmod.cfg", lokalizacja_cfg); server_exec(); if(vault != INVALID_HANDLE) nvault_prune(vault, 0, get_systime()-(86400*VAULT_EXPIREDAYS)); }Go to the full post
Rellik #
09.11.2014
Witam, mam pewien problem z CoD. Mianowicie jeśli na jakiejkolwiek kllasie ustawie np. poziom 30 i zmienie mape to on będzie 30... Jeśli z tego 30 zmienie np. na 2 i zmienie mape to nadal jest 30... Mogę wiedzieć jak to naprawić?
Publiki zapiszdane i wczytajdane:
public ZapiszDane(id) { if(!klasa_gracza[id] || doswiadczenie_gracza[id] < 1 || vault == INVALID_HANDLE) return PLUGIN_CONTINUE; new vaultkey[128],vaultdata[256], identyfikator[64]; format(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i#%i", doswiadczenie_gracza[id], poziom_gracza[id], inteligencja_gracza[id], zdrowie_gracza[id], wytrzymalosc_gracza[id], kondycja_gracza[id], player_armor[id]); new typ_zapisu = get_pcvar_num(cvar_typ_zapisu); switch(typ_zapisu) { case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]); case 2: get_user_authid(id, identyfikator, charsmax(identyfikator)); case 3: get_user_ip(id, identyfikator, charsmax(identyfikator)); } format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa_gracza[id]], typ_zapisu); nvault_set(vault,vaultkey,vaultdata); return PLUGIN_CONTINUE; } public WczytajDane(id, klasa) { if(vault == INVALID_HANDLE) return PLUGIN_CONTINUE; new vaultkey[128],vaultdata[256], identyfikator[64]; new typ_zapisu = get_pcvar_num(cvar_typ_zapisu); switch(typ_zapisu) { case 1: copy(identyfikator, charsmax(identyfikator), nazwa_gracza[id]); case 2: get_user_authid(id, identyfikator, charsmax(identyfikator)); case 3: get_user_ip(id, identyfikator, charsmax(identyfikator)); } format(vaultkey, charsmax(vaultkey),"%s-%s-%i-cod", identyfikator, nazwy_klas[klasa], typ_zapisu); if(!nvault_get(vault,vaultkey,vaultdata,255)) // Jezeli nie ma danych gracza sprawdza stary zapis. { format(vaultkey, charsmax(vaultkey), "%s-%i-cod", nazwa_gracza[id], klasa); nvault_get(vault,vaultkey,vaultdata,255); } replace_all(vaultdata, 255, "#", " "); new danegracza[7][32]; parse(vaultdata, danegracza[0], 31, danegracza[1], 31, danegracza[2], 31, danegracza[3], 31, danegracza[4], 31, danegracza[5], 31, danegracza[6], 31); doswiadczenie_gracza[id] = str_to_num(danegracza[0]); poziom_gracza[id] = str_to_num(danegracza[1])>0?str_to_num(danegracza[1]):1; inteligencja_gracza[id] = str_to_num(danegracza[2]); zdrowie_gracza[id] = str_to_num(danegracza[3]); wytrzymalosc_gracza[id] = str_to_num(danegracza[4]); kondycja_gracza[id] = str_to_num(danegracza[5]); player_armor[id] = str_to_num(danegracza[6]); punkty_gracza[id] = (poziom_gracza[id]-1)*2-inteligencja_gracza[id]-zdrowie_gracza[id]-wytrzymalosc_gracza[id]-kondycja_gracza[id]-player_armor[id]; return PLUGIN_CONTINUE; }
Rellik #
09.11.2014
Nie możliwe Nawet jest plugin na przeniesienie poziomu, który jeśli gracz ma dajmy na to 50lvl na klasie X i przeniesie sobie na klasę Y to powinien mieć ten 50 lvl na klasie Y, tak jest tylko na aktualnej mapie, jeśli się mapa zmieni ma 50 lvl na klasie Y i do tego X...
Engi
09.11.2014
Rellik #
23.11.2014
Chociażby podać sma pluginu którym zmieniasz poziomy
Jest mi ktoś w stanie pomóc? : / Kod pluginu jak prosił wyżej pan:
#3Skille Grease'M
23.11.2014
/* Plugin generated by AMXX-Studio */ #include #include #include new opcja, gracz_id[33], wybrany; new ilosc[33], name[33], nazwa_perku[256], nazwa_klasy[256]; public plugin_init() { register_plugin("HolyFrag Menu", "1.5", "MieTeK"); register_clcmd("say /codadmin", "AM", ADMIN_LEVEL_B); register_clcmd("ile","pobierz"); } public AM(id) { if(!(get_user_flags(id) & ADMIN_IMMUNITY)) return PLUGIN_HANDLED; new tytul[64]; format(tytul, 63, "\rEpic Menu"); new menu = menu_create(tytul, "AM_handler"); menu_additem(menu, "Dodaj \rEXP");//1 menu_additem(menu, "Ustaw \rLVL");//2 menu_additem(menu, "Daj \rItem");//3 menu_additem(menu, "Przenies \rEXP");//4 menu_additem(menu, "Zamien \rEXP");//5 menu_additem(menu, "Zsumuj \rEXP");//6 menu_display(id, menu); return PLUGIN_HANDLED; } public AM_handler(id, menu, item) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: { Gracz(id); opcja = 1; } case 1: { Gracz(id); opcja = 2; } case 2: { Gracz(id); opcja = 3; } case 3: { Gracz(id); opcja = 4; } case 4: { Gracz(id); opcja = 5; } case 5: { Gracz(id); opcja = 6; } } return PLUGIN_CONTINUE; } public Gracz(id) { new menu = menu_create("Wybierz gracza:", "Gracz_handler"); for(new i=0, n=0; i<=32; i++) { if(!is_user_connected(i)) continue; gracz_id[n++] = i; new nazwa_gracza[64]; get_user_name(i, nazwa_gracza, 63) menu_additem(menu, nazwa_gracza, "0", 0); } menu_display(id, menu); } public Gracz_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } wybrany = gracz_id[item]; get_user_name(wybrany, name, 32); if(opcja == 3) wybierz_perk(id); else if(opcja == 4 || opcja == 5 || opcja == 6) wybierz_klase(id); else console_cmd(id, "messagemode ile"); return PLUGIN_HANDLED; } public pobierz(id) { new text[192] read_argv(1,text,191) format(ilosc, charsmax(ilosc), "%s", text); dawaj(id) } public dawaj(id) { if(opcja == 1) { cod_set_user_xp(wybrany, cod_get_user_xp(wybrany)+str_to_num(ilosc)); client_print(id, print_chat, "Ustawiles graczowi %s %i EXP", name, str_to_num(ilosc)); } if(opcja == 2) { new potrzeba; potrzeba = cod_get_level_xp(str_to_num(ilosc)-1); cod_set_user_xp(wybrany, potrzeba); client_print(id, print_chat, "Ustawiles graczowi %s %i LVL", name, str_to_num(ilosc)); } } public wybierz_klase(id) { new tytul[64]; format(tytul, sizeof(tytul), "\rNa jaka klase :"); new menu = menu_create(tytul, "wybierz_klase_handler"); for(new i=1; i<=cod_get_classes_num(); i++) { cod_get_class_name(i, nazwa_klasy, 255) menu_additem(menu, nazwa_klasy) } menu_display(id, menu); } public wybierz_klase_handler(id, menu, item) { if(item++ == MENU_EXIT) { menu_destroy(menu) return PLUGIN_CONTINUE; } new klasa[2][65]; if(opcja == 4) { new exp = cod_get_user_xp(wybrany); cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_xp(wybrany, 0); cod_set_user_class(wybrany, item, 1); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_xp(wybrany, exp); client_print(id, print_chat, "Przeniosles EXP graczowi %s z klasy %s na klase %s", name, klasa[0], klasa[1]); } if(opcja == 5) { new exp = cod_get_user_xp(wybrany); new oldclass = cod_get_user_class(wybrany) cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_class(wybrany, item, 1); new exp2 = cod_get_user_xp(wybrany); cod_set_user_xp(wybrany, exp); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_class(wybrany, oldclass, 1); cod_set_user_xp(wybrany, exp2); cod_set_user_class(wybrany, item, 1); client_print(id, print_chat, "Zamieniles EXP graczowi %s miedzy klasa %s a klasa %s", name, klasa[0], klasa[1]); } if(opcja == 6) { new exp = cod_get_user_xp(wybrany); cod_set_user_xp(wybrany, 0); cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_class(wybrany, item, 1); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_xp(wybrany, cod_get_user_xp(wybrany)+exp); client_print(id, print_chat, "Zsumowales EXP graczowi %s z klasy %s na klase %s", name, klasa[0], klasa[1]); } return PLUGIN_CONTINUE; } public wybierz_perk(id) { new tytul[64]; format(tytul, 63, "\rWybierz perk :"); new menu = menu_create(tytul, "wybierz_perk_handler"); for(new i=1; i<=cod_get_perks_num(); i++) { cod_get_perk_name(i, nazwa_perku, 255) menu_additem(menu, nazwa_perku); } menu_display(id, menu); } public wybierz_perk_handler(id, menu, item) { if(item++ == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } cod_set_user_perk(wybrany, item, -1, 0); cod_get_perk_name(item++, nazwa_perku, 255); client_print(id, print_chat, "Dales graczowi %s perk %s", name, nazwa_perku); return PLUGIN_HANDLED; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
Rellik #
23.11.2014
Zobacz czy zadziała.
/* Plugin generated by AMXX-Studio */ #include #include #include new opcja, gracz_id[33], wybrany; new ilosc[33], name[33], nazwa_perku[256], nazwa_klasy[256]; public plugin_init() { register_plugin("HolyFrag Menu", "1.5", "MieTeK"); register_clcmd("say /codadmin", "AM", ADMIN_LEVEL_B); register_clcmd("ile","pobierz"); } public AM(id) { if(!(get_user_flags(id) & ADMIN_IMMUNITY)) return PLUGIN_HANDLED; new tytul[64]; format(tytul, 63, "\rEpic Menu"); new menu = menu_create(tytul, "AM_handler"); menu_additem(menu, "Dodaj \rEXP");//1 menu_additem(menu, "Ustaw \rLVL");//2 menu_additem(menu, "Daj \rItem");//3 menu_additem(menu, "Przenies \rEXP");//4 menu_additem(menu, "Zamien \rEXP");//5 menu_additem(menu, "Zsumuj \rEXP");//6 menu_display(id, menu); return PLUGIN_HANDLED; } public AM_handler(id, menu, item) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: { Gracz(id); opcja = 1; } case 1: { Gracz(id); opcja = 2; } case 2: { Gracz(id); opcja = 3; } case 3: { Gracz(id); opcja = 4; } case 4: { Gracz(id); opcja = 5; } case 5: { Gracz(id); opcja = 6; } } return PLUGIN_CONTINUE; } public Gracz(id) { new menu = menu_create("Wybierz gracza:", "Gracz_handler"); for(new i=0, n=0; i<=32; i++) { if(!is_user_connected(i)) continue; gracz_id[n++] = i; new nazwa_gracza[64]; get_user_name(i, nazwa_gracza, 63) menu_additem(menu, nazwa_gracza, "0", 0); } menu_display(id, menu); } public Gracz_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } wybrany = gracz_id[item]; get_user_name(wybrany, name, 32); if(opcja == 3) wybierz_perk(id); else if(opcja == 4 || opcja == 5 || opcja == 6) wybierz_klase(id); else console_cmd(id, "messagemode ile"); return PLUGIN_HANDLED; } public pobierz(id) { new text[192] read_argv(1,text,191) format(ilosc, charsmax(ilosc), "%s", text); dawaj(id) } public dawaj(id) { if(opcja == 1) { cod_set_user_xp(wybrany, cod_get_user_xp(wybrany)+str_to_num(ilosc)); client_print(id, print_chat, "Ustawiles graczowi %s %i EXP", name, str_to_num(ilosc)); } if(opcja == 2) { new potrzeba; potrzeba = cod_get_level_xp(str_to_num(ilosc)-1); cod_set_user_xp(wybrany, potrzeba); client_print(id, print_chat, "Ustawiles graczowi %s %i LVL", name, str_to_num(ilosc)); } } public wybierz_klase(id) { new tytul[64]; format(tytul, sizeof(tytul), "\rNa jaka klase :"); new menu = menu_create(tytul, "wybierz_klase_handler"); for(new i=1; i<=cod_get_classes_num(); i++) { cod_get_class_name(i, nazwa_klasy, 255) menu_additem(menu, nazwa_klasy) } menu_display(id, menu); } public wybierz_klase_handler(id, menu, item) { if(item++ == MENU_EXIT) { menu_destroy(menu) return PLUGIN_CONTINUE; } new klasa[2][65]; if(opcja == 4) { new exp = cod_get_user_xp(wybrany); cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_xp(wybrany, 0); cod_set_user_class(wybrany, item, 1); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_xp(wybrany, exp); client_print(id, print_chat, "Przeniosles EXP graczowi %s z klasy %s na klase %s", name, klasa[0], klasa[1]); } if(opcja == 5) { new exp = cod_get_user_xp(wybrany); new oldclass = cod_get_user_class(wybrany) cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_class(wybrany, item, 1); new exp2 = cod_get_user_xp(wybrany); cod_set_user_xp(wybrany, exp); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_class(wybrany, oldclass, 1); cod_set_user_xp(wybrany, exp2); cod_set_user_class(wybrany, item, 1); client_print(id, print_chat, "Zamieniles EXP graczowi %s miedzy klasa %s a klasa %s", name, klasa[0], klasa[1]); } if(opcja == 6) { new exp = cod_get_user_xp(wybrany); cod_set_user_xp(wybrany, 0); cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_class(wybrany, item, 1); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_xp(wybrany, cod_get_user_xp(wybrany)+exp); client_print(id, print_chat, "Zsumowales EXP graczowi %s z klasy %s na klase %s", name, klasa[0], klasa[1]); } return PLUGIN_CONTINUE; } public wybierz_perk(id) { new tytul[64]; format(tytul, 63, "\rWybierz perk :"); new menu = menu_create(tytul, "wybierz_perk_handler"); for(new i=1; i<=cod_get_perks_num(); i++) { cod_get_perk_name(i, nazwa_perku, 255) menu_additem(menu, nazwa_perku); } menu_display(id, menu); } public wybierz_perk_handler(id, menu, item) { if(item++ == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } cod_set_user_perk(wybrany, item, -1, 0); cod_get_perk_name(item++, nazwa_perku, 255); client_print(id, print_chat, "Dales graczowi %s perk %s", name, nazwa_perku); return PLUGIN_HANDLED; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
Coś tak troche nie halo ..
Welcome to the AMX Mod X 1.8.1-300 Compiler. Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team t.sma(7) : error 017: undefined symbol "register_plugin" t.sma(9) : error 017: undefined symbol "register_clcmd" t.sma(9) : error 088: number of arguments does not match definition t.sma(10) : error 017: undefined symbol "register_clcmd" t.sma(16) : error 017: undefined symbol "get_user_flags" t.sma(17) : error 017: undefined symbol "PLUGIN_HANDLED" t.sma(20) : error 017: undefined symbol "format" t.sma(21) : error 017: undefined symbol "menu_create" t.sma(22) : error 017: undefined symbol "menu_additem" t.sma(23) : error 017: undefined symbol "menu_additem" t.sma(24) : error 017: undefined symbol "menu_additem" t.sma(25) : error 017: undefined symbol "menu_additem" t.sma(26) : error 017: undefined symbol "menu_additem" t.sma(27) : error 017: undefined symbol "menu_additem" t.sma(29) : error 017: undefined symbol "menu_display" t.sma(31) : error 017: undefined symbol "PLUGIN_HANDLED" t.sma(32) : warning 204: symbol is assigned a value that is never used: "menu" t.sma(36) : error 017: undefined symbol "is_user_connected" t.sma(37) : error 017: undefined symbol "PLUGIN_CONTINUE" t.sma(39) : error 017: undefined symbol "MENU_EXIT" t.sma(41) : error 017: undefined symbol "menu_destroy" t.sma(42) : error 017: undefined symbol "PLUGIN_CONTINUE" t.sma(79) : error 017: undefined symbol "PLUGIN_CONTINUE" t.sma(84) : error 017: undefined symbol "menu_create" t.sma(88) : error 017: undefined symbol "is_user_connected" t.sma(92) : error 017: undefined symbol "get_user_name" t.sma(93) : error 017: undefined symbol "menu_additem" Compilation aborted. 26 Errors. Done.
#3Skille Grease'M
23.11.2014
/* Plugin generated by AMXX-Studio */ #include #include #include new opcja, gracz_id[33], wybrany; new ilosc[33], name[33], nazwa_perku[256], nazwa_klasy[256]; public plugin_init() { register_plugin("COD Admin Menu by MieTeK", "1.5", "MieTeK"); register_clcmd("say /codadmin", "AM", ADMIN_LEVEL_B); register_clcmd("ile","pobierz"); } public AM(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_H)) return PLUGIN_HANDLED; new tytul[64]; format(tytul, 63, "\rEpic Menu"); new menu = menu_create(tytul, "AM_handler"); menu_additem(menu, "Dodaj \rEXP");//1 menu_additem(menu, "Ustaw \rLVL");//2 menu_additem(menu, "Daj \rItem");//3 menu_additem(menu, "Przenies \rEXP");//4 menu_additem(menu, "Zamien \rEXP");//5 menu_additem(menu, "Zsumuj \rEXP");//6 menu_display(id, menu); return PLUGIN_HANDLED; } public AM_handler(id, menu, item) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: { Gracz(id); opcja = 1; } case 1: { Gracz(id); opcja = 2; } case 2: { Gracz(id); opcja = 3; } case 3: { Gracz(id); opcja = 4; } case 4: { Gracz(id); opcja = 5; } case 5: { Gracz(id); opcja = 6; } } return PLUGIN_CONTINUE; } public Gracz(id) { new menu = menu_create("Wybierz gracza:", "Gracz_handler"); for(new i=0, n=0; i<=32; i++) { if(!is_user_connected(i)) continue; gracz_id[n++] = i; new nazwa_gracza[64]; get_user_name(i, nazwa_gracza, 63) menu_additem(menu, nazwa_gracza, "0", 0); } menu_display(id, menu); } public Gracz_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } wybrany = gracz_id[item]; get_user_name(wybrany, name, 32); if(opcja == 3) wybierz_perk(id); else if(opcja == 4 || opcja == 5 || opcja == 6) wybierz_klase(id); else console_cmd(id, "messagemode ile"); return PLUGIN_HANDLED; } public pobierz(id) { new text[192] read_argv(1,text,191) format(ilosc, charsmax(ilosc), "%s", text); dawaj(id) } public dawaj(id) { if(opcja == 1) { cod_set_user_xp(wybrany, cod_get_user_xp(wybrany)+str_to_num(ilosc)); client_print(id, print_chat, "Ustawiles graczowi %s %i EXP", name, str_to_num(ilosc)); } if(opcja == 2) { new potrzeba; potrzeba = cod_get_level_xp(str_to_num(ilosc)-1); cod_set_user_xp(wybrany, potrzeba); client_print(id, print_chat, "Ustawiles graczowi %s %i LVL", name, str_to_num(ilosc)); } } public wybierz_klase(id) { new tytul[64]; format(tytul, sizeof(tytul), "\rNa jaka klase :"); new menu = menu_create(tytul, "wybierz_klase_handler"); for(new i=1; i<=cod_get_classes_num(); i++) { cod_get_class_name(i, nazwa_klasy, 255) menu_additem(menu, nazwa_klasy) } menu_display(id, menu); } public wybierz_klase_handler(id, menu, item) { if(item++ == MENU_EXIT) { menu_destroy(menu) return PLUGIN_CONTINUE; } new klasa[2][65]; if(opcja == 4) { new exp = cod_get_user_xp(wybrany); cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_xp(wybrany, 0); cod_set_user_class(wybrany, item, 1); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_xp(wybrany, exp); client_print(id, print_chat, "Przeniosles EXP graczowi %s z klasy %s na klase %s", name, klasa[0], klasa[1]); } if(opcja == 5) { new exp = cod_get_user_xp(wybrany); new oldclass = cod_get_user_class(wybrany) cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_class(wybrany, item, 1); new exp2 = cod_get_user_xp(wybrany); cod_set_user_xp(wybrany, exp); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_class(wybrany, oldclass, 1); cod_set_user_xp(wybrany, exp2); cod_set_user_class(wybrany, item, 1); client_print(id, print_chat, "Zamieniles EXP graczowi %s miedzy klasa %s a klasa %s", name, klasa[0], klasa[1]); } if(opcja == 6) { new exp = cod_get_user_xp(wybrany); cod_set_user_xp(wybrany, 0); cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_class(wybrany, item, 1); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_xp(wybrany, cod_get_user_xp(wybrany)+exp); client_print(id, print_chat, "Zsumowales EXP graczowi %s z klasy %s na klase %s", name, klasa[0], klasa[1]); } return PLUGIN_CONTINUE; } public wybierz_perk(id) { new tytul[64]; format(tytul, 63, "\rWybierz perk :"); new menu = menu_create(tytul, "wybierz_perk_handler"); for(new i=1; i<=cod_get_perks_num(); i++) { cod_get_perk_name(i, nazwa_perku, 255) menu_additem(menu, nazwa_perku); } menu_display(id, menu); } public wybierz_perk_handler(id, menu, item) { if(item++ == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } cod_set_user_perk(wybrany, item, -1, 0); cod_get_perk_name(item++, nazwa_perku, 255); client_print(id, print_chat, "Dales graczowi %s perk %s", name, nazwa_perku); return PLUGIN_HANDLED; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
Rellik #
23.11.2014
łapaj te poprawiłem kody i sprawdzałem na moich serwerach. Działa poprawnie
/* Plugin generated by AMXX-Studio */ #include #include #include new opcja, gracz_id[33], wybrany; new ilosc[33], name[33], nazwa_perku[256], nazwa_klasy[256]; public plugin_init() { register_plugin("COD Admin Menu by MieTeK", "1.5", "MieTeK"); register_clcmd("say /codadmin", "AM", ADMIN_LEVEL_B); register_clcmd("ile","pobierz"); } public AM(id) { if(!(get_user_flags(id) & ADMIN_LEVEL_H)) return PLUGIN_HANDLED; new tytul[64]; format(tytul, 63, "\rEpic Menu"); new menu = menu_create(tytul, "AM_handler"); menu_additem(menu, "Dodaj \rEXP");//1 menu_additem(menu, "Ustaw \rLVL");//2 menu_additem(menu, "Daj \rItem");//3 menu_additem(menu, "Przenies \rEXP");//4 menu_additem(menu, "Zamien \rEXP");//5 menu_additem(menu, "Zsumuj \rEXP");//6 menu_display(id, menu); return PLUGIN_HANDLED; } public AM_handler(id, menu, item) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(item) { case 0: { Gracz(id); opcja = 1; } case 1: { Gracz(id); opcja = 2; } case 2: { Gracz(id); opcja = 3; } case 3: { Gracz(id); opcja = 4; } case 4: { Gracz(id); opcja = 5; } case 5: { Gracz(id); opcja = 6; } } return PLUGIN_CONTINUE; } public Gracz(id) { new menu = menu_create("Wybierz gracza:", "Gracz_handler"); for(new i=0, n=0; i<=32; i++) { if(!is_user_connected(i)) continue; gracz_id[n++] = i; new nazwa_gracza[64]; get_user_name(i, nazwa_gracza, 63) menu_additem(menu, nazwa_gracza, "0", 0); } menu_display(id, menu); } public Gracz_handler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } wybrany = gracz_id[item]; get_user_name(wybrany, name, 32); if(opcja == 3) wybierz_perk(id); else if(opcja == 4 || opcja == 5 || opcja == 6) wybierz_klase(id); else console_cmd(id, "messagemode ile"); return PLUGIN_HANDLED; } public pobierz(id) { new text[192] read_argv(1,text,191) format(ilosc, charsmax(ilosc), "%s", text); dawaj(id) } public dawaj(id) { if(opcja == 1) { cod_set_user_xp(wybrany, cod_get_user_xp(wybrany)+str_to_num(ilosc)); client_print(id, print_chat, "Ustawiles graczowi %s %i EXP", name, str_to_num(ilosc)); } if(opcja == 2) { new potrzeba; potrzeba = cod_get_level_xp(str_to_num(ilosc)-1); cod_set_user_xp(wybrany, potrzeba); client_print(id, print_chat, "Ustawiles graczowi %s %i LVL", name, str_to_num(ilosc)); } } public wybierz_klase(id) { new tytul[64]; format(tytul, sizeof(tytul), "\rNa jaka klase :"); new menu = menu_create(tytul, "wybierz_klase_handler"); for(new i=1; i<=cod_get_classes_num(); i++) { cod_get_class_name(i, nazwa_klasy, 255) menu_additem(menu, nazwa_klasy) } menu_display(id, menu); } public wybierz_klase_handler(id, menu, item) { if(item++ == MENU_EXIT) { menu_destroy(menu) return PLUGIN_CONTINUE; } new klasa[2][65]; if(opcja == 4) { new exp = cod_get_user_xp(wybrany); cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_xp(wybrany, 0); cod_set_user_class(wybrany, item, 1); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_xp(wybrany, exp); client_print(id, print_chat, "Przeniosles EXP graczowi %s z klasy %s na klase %s", name, klasa[0], klasa[1]); } if(opcja == 5) { new exp = cod_get_user_xp(wybrany); new oldclass = cod_get_user_class(wybrany) cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_class(wybrany, item, 1); new exp2 = cod_get_user_xp(wybrany); cod_set_user_xp(wybrany, exp); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_class(wybrany, oldclass, 1); cod_set_user_xp(wybrany, exp2); cod_set_user_class(wybrany, item, 1); client_print(id, print_chat, "Zamieniles EXP graczowi %s miedzy klasa %s a klasa %s", name, klasa[0], klasa[1]); } if(opcja == 6) { new exp = cod_get_user_xp(wybrany); cod_set_user_xp(wybrany, 0); cod_get_class_name(cod_get_user_class(wybrany), klasa[0], 64); cod_set_user_class(wybrany, item, 1); cod_get_class_name(cod_get_user_class(wybrany), klasa[1], 64); cod_set_user_xp(wybrany, cod_get_user_xp(wybrany)+exp); client_print(id, print_chat, "Zsumowales EXP graczowi %s z klasy %s na klase %s", name, klasa[0], klasa[1]); } return PLUGIN_CONTINUE; } public wybierz_perk(id) { new tytul[64]; format(tytul, 63, "\rWybierz perk :"); new menu = menu_create(tytul, "wybierz_perk_handler"); for(new i=1; i<=cod_get_perks_num(); i++) { cod_get_perk_name(i, nazwa_perku, 255) menu_additem(menu, nazwa_perku); } menu_display(id, menu); } public wybierz_perk_handler(id, menu, item) { if(item++ == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } cod_set_user_perk(wybrany, item, -1, 0); cod_get_perk_name(item++, nazwa_perku, 255); client_print(id, print_chat, "Dales graczowi %s perk %s", name, nazwa_perku); return PLUGIN_HANDLED; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
To samo... + nie działa kompilacja ;x
#3Skille Grease'M
23.11.2014
Engi
23.11.2014
Może inaczej, czemu modyfikowałeś oryginalne menu admina? Co ci w nim nie pasowało? Przecież działało prawidłowo, a zmiana nazw nie ma nic do przenoszenia poziomów.
PS.
Kod w postach (np. źródło pluginu) umieszczaj w odpowiednich tagach (code/php/spoiler itp.), a powyżej 200 linijek tylko w załączniku lub na wklejce.
Rellik #
24.11.2014
Może inaczej, czemu modyfikowałeś oryginalne menu admina? Co ci w nim nie pasowało? Przecież działało prawidłowo, a zmiana nazw nie ma nic do przenoszenia poziomów.
PS.
Kod w postach (np. źródło pluginu) umieszczaj w odpowiednich tagach (code/php/spoiler itp.), a powyżej 200 linijek tylko w załączniku lub na wklejce.
Ja tam nic więcej nie modyfikowałem tylko tą nazwę... A jak wcześniej działało tak teraz nie działa, gdy zmieniłem w silniku to co napisałem w 1 poscie.
#3Skille Grease'M
24.11.2014
Rellik #
25.11.2014
Chłopie ty jesteś jakiś dziwny menu admina cod'a musi działać. Musiałeś coś dodawać do niego.
Weź przeczytaj dokładnie co napisałem w pierwszym poście -.- . Że robiłem zmiany w silniku i tak się dzieje teraz -.-
Engi
25.11.2014
Chłopie ty jesteś jakiś dziwny menu admina cod'a musi działać. Musiałeś coś dodawać do niego.
Weź przeczytaj dokładnie co napisałem w pierwszym poście -.- . Że robiłem zmiany w silniku i tak się dzieje teraz -.-
Pierwsze słyszę żebyś pisał o jakiejś modyfikacji silnika, takie rzeczy pisze się na starcie, a temat powinien być w prośby o przerobienie pluginu. Teraz juz wszystko jasne czemu poziom się nie zapisuje.
"gdy zmieniłem w silniku to co napisałem w 1 poscie." - toś mnie rozbawił teraz, najpierw zmieniałeś niby tylko nazwy menu i pozycji, a teraz dowiadujemy się o jakichś zmianach w silniku!
Użytkowniku, włącz myślenie!
Podaj nam wszystko co zmieniałeś w zapisie nVault cod moda!
Nikt tu nie jest jasnowidzem, nikt nic nie wiedział o twoich zmianach w silniku ani w ogóle jakie one są!
Best Answer
Rellik #
25.11.2014
Czemu cały czas wydawało mi się, że dodałem wzmiankę o silniku? Jego zapis up ... Nie ważne.. Co zmieniłem?
Dodane tu zostało || doswiadczenie_gracza[id] < 1 || vault == INVALID_HANDLE)
co odpowiada valut invalid handle za kasowanie poziomów co 20 dni jesli ktoś nie wejdzie w tym czasie na serwer.
public ZapiszDane(id) { if(!klasa_gracza[id] || doswiadczenie_gracza[id] < 1 || vault == INVALID_HANDLE) return PLUGIN_CONTINUE;
public WczytajDane(id, klasa) { if(vault == INVALID_HANDLE) return PLUGIN_CONTINUE;
i oczywiście zdefiniowałem
#define VAULT_EXPIREDAYS 20
i do plugin _cfg
public plugin_cfg() { new lokalizacja_cfg[33]; get_configsdir(lokalizacja_cfg, charsmax(lokalizacja_cfg)); server_cmd("exec %s/codmod.cfg", lokalizacja_cfg); server_exec(); if(vault != INVALID_HANDLE) nvault_prune(vault, 0, get_systime()-(86400*VAULT_EXPIREDAYS)); }
Edited by Rellik #, 25.11.2014 16:48.