/* Plugin generated by AMXX-Studio */ #include #include #include #include #include #define PLUGIN "[COD]Magazyn Perkow" #define VERSION "1.1" #define AUTHOR "Goliath" new vault; new PerkSlot1[33]; new PerkSlot2[33]; new PerkSlot3[33]; new nazwaPerkSlot1[33]; new nazwaPerkSlot2[33]; new nazwaPerkSlot3[33]; new klasa_gracza[33]; new nazwa_gracza[33]; new cvar_typ_zapisu; new typ_zapisu; public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /magazyn", "PokazMagazyn"); cvar_typ_zapisu = get_cvar_pointer("cod_savetype"); typ_zapisu = get_pcvar_num(cvar_typ_zapisu); } public PokazMagazyn(id) { new menu = menu_create("Magazyn Perkow", "PokazMagazyn_Handle"); new napisPerkSlot1[64]; new napisPerkSlot2[64]; new napisPerkSlot3[64]; new napis1[64]; new napis2[64]; new napis3[64]; if(PerkSlot1[id] == 0) format(napis1, 40, "Pusty slot"); else { cod_get_perk_name(PerkSlot1[id], napisPerkSlot1[id], 32); format(napis1, 40, "%s", napisPerkSlot1[id]); } if(PerkSlot2[id] == 0) format(napis2, 40, "Pusty slot"); else { cod_get_perk_name(PerkSlot2[id], napisPerkSlot2[id], 32); format(napis2, 40, "%s", napisPerkSlot2[id]); } if(PerkSlot3[id] == 0) format(napis3, 40, "Pusty slot"); else { cod_get_perk_name(PerkSlot3[id], napisPerkSlot3[id], 32); format(napis3, 40, " %s", napisPerkSlot3[id]); } menu_additem(menu, napis1);//0 menu_additem(menu, napis2);//1 menu_additem(menu, napis3);//2 menu_additem(menu, "Usun perk z 1. slotu");//3 menu_additem(menu, "Usun perk z 2. slotu");//4 menu_additem(menu, "Usun perk z 3. slotu");//5 menu_setprop(menu, MPROP_EXITNAME, "Wyjdz"); menu_setprop(menu, MPROP_BACKNAME, "Poprzednia strona"); menu_setprop(menu, MPROP_NEXTNAME, "Nastepna strona"); menu_display(id, menu); client_cmd(id, "spk QTM_CodMod/select"); } public PokazMagazyn_Handle(id, menu, item) { if(!is_user_alive(id) || !is_user_connected(id)) return PLUGIN_CONTINUE; if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } new perkgracza[33]; perkgracza[id] = cod_get_user_perk(id); new zapasowyperk[33]; switch(item) { case 0: { if(PerkSlot1[id] == 0 && perkgracza[id] != 0) { PerkSlot1[id] = cod_get_user_perk(id); cod_get_perk_name(PerkSlot1[id], nazwaPerkSlot1[id], 32); cod_set_user_perk(id, 0, 0, 0); PokazMagazyn(id); ZapiszMagazyn(id); } else if(perkgracza[id] == 0 && PerkSlot1[id] != 0) { cod_set_user_perk(id, PerkSlot1[id], 1, 0); PerkSlot1[id] = 0; format(nazwaPerkSlot1[id], 32, "brak"); PokazMagazyn(id); ZapiszMagazyn(id); } else if(perkgracza[id] == 0 && PerkSlot1[id] == 0) { ColorChat(id, GREEN, "[COD:MW] Nie posiadasz zadnego perku"); PokazMagazyn(id); } else if(perkgracza[id] != 0 && PerkSlot1[id] != 0) { zapasowyperk[id] = PerkSlot1[id]; PerkSlot1[id] = cod_get_user_perk(id); cod_set_user_perk(id, zapasowyperk[id], 1, 0); cod_get_perk_name(PerkSlot1[id], nazwaPerkSlot1[id], 32); zapasowyperk[id] = 0; PokazMagazyn(id); ZapiszMagazyn(id); } } case 1: { if(PerkSlot2[id] == 0 && perkgracza[id] != 0) { PerkSlot2[id] = cod_get_user_perk(id); cod_get_perk_name(PerkSlot2[id], nazwaPerkSlot2[id], 32); cod_set_user_perk(id, 0, 0, 0); PokazMagazyn(id); ZapiszMagazyn(id); } else if(perkgracza[id] == 0 && PerkSlot2[id] != 0) { cod_set_user_perk(id, PerkSlot2[id], 1, 0); PerkSlot2[id] = 0; format(nazwaPerkSlot2[id], 32, "brak"); PokazMagazyn(id); ZapiszMagazyn(id); } else if(perkgracza[id] == 0 && PerkSlot2[id] == 0) { ColorChat(id, GREEN, "[COD:MW] Nie posiadasz zadnego perku"); PokazMagazyn(id); } else if(perkgracza[id] != 0 && PerkSlot2[id] != 0) { zapasowyperk[id] = PerkSlot2[id]; PerkSlot2[id] = cod_get_user_perk(id); cod_set_user_perk(id, zapasowyperk[id], 1, 0); cod_get_perk_name(PerkSlot2[id], nazwaPerkSlot2[id], 32); zapasowyperk[id] = 0; PokazMagazyn(id); ZapiszMagazyn(id); } } case 2: { if(PerkSlot3[id] == 0 && perkgracza[id] != 0) { PerkSlot3[id] = cod_get_user_perk(id); cod_get_perk_name(PerkSlot3[id], nazwaPerkSlot3[id], 32); cod_set_user_perk(id, 0, 0, 0); PokazMagazyn(id); ZapiszMagazyn(id); } else if(perkgracza[id] == 0 && PerkSlot3[id] != 0) { cod_set_user_perk(id, PerkSlot3[id], 1, 0); PerkSlot3[id] = 0; format(nazwaPerkSlot3[id], 32, "brak"); PokazMagazyn(id); ZapiszMagazyn(id); } else if(perkgracza[id] == 0 && PerkSlot3[id] == 0) { ColorChat(id, GREEN, "[COD:MW] Nie posiadasz zadnego perku"); PokazMagazyn(id); } else if(perkgracza[id] != 0 && PerkSlot3[id] != 0) { zapasowyperk[id] = PerkSlot3[id]; PerkSlot3[id] = cod_get_user_perk(id); cod_set_user_perk(id, zapasowyperk[id], 1, 0); cod_get_perk_name(PerkSlot3[id], nazwaPerkSlot3[id], 32); zapasowyperk[id] = 0; PokazMagazyn(id); ZapiszMagazyn(id); } } case 3: { PerkSlot1[id] = 0; format(nazwaPerkSlot1[id], 32, "brak"); PokazMagazyn(id); ZapiszMagazyn(id); } case 4: { PerkSlot2[id] = 0; format(nazwaPerkSlot2[id], 32, "brak"); PokazMagazyn(id); ZapiszMagazyn(id); } case 5: { PerkSlot3[id] = 0; format(nazwaPerkSlot3[id], 32, "brak"); PokazMagazyn(id); ZapiszMagazyn(id); } } return PLUGIN_CONTINUE; } public ZapiszMagazyn(id) { vault = nvault_open("CodMagazyn") klasa_gracza[id] = cod_get_user_class(id); get_user_name(id, nazwa_gracza[id], 32); if(!klasa_gracza[id]) return PLUGIN_CONTINUE; new vaultkey[128],vaultdata[256],identyfikator[64]; if(PerkSlot1[id] == 0) format(nazwaPerkSlot1[id], 31, "brak"); if(PerkSlot2[id] == 0) format(nazwaPerkSlot2[id], 31, "brak"); if(PerkSlot3[id] == 0) format(nazwaPerkSlot3[id], 31, "brak"); format(vaultdata, charsmax(vaultdata), "#%s#%s#%s", nazwaPerkSlot1[id], nazwaPerkSlot2[id], nazwaPerkSlot3[id]); replace_all(vaultdata, 255, " ", "_"); 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-%i-magazyn", identyfikator, typ_zapisu); nvault_set(vault, vaultkey, vaultdata); return PLUGIN_CONTINUE; } public WczytajMagazyn(id) { vault = nvault_open("CodMagazyn") get_user_name(id, nazwa_gracza[id], 32); new vaultkey[128], vaultdata[256], identyfikator[64]; nvault_get(vault, vaultkey, vaultdata); 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-%i-magazyn", identyfikator, typ_zapisu); if(!nvault_get(vault,vaultkey,vaultdata,255)) { format(vaultkey, charsmax(vaultkey), "%s-%i-magazyn", identyfikator, typ_zapisu); nvault_get(vault,vaultkey,vaultdata,255); } replace_all(vaultdata, 255, "#", " "); new Sloty1[33], Sloty2[33], Sloty3[33]; parse(vaultdata, Sloty1, 32, Sloty2, 32, Sloty3, 32); if(equal(Sloty1[id], "brak")) PerkSlot1[id] = 0; else { replace_all(Sloty1, 32, "_", " "); format(nazwaPerkSlot1[id], 32, "%s", Sloty1); PerkSlot1[id] = cod_get_perkid(nazwaPerkSlot1[id]); } if(equal(Sloty2[id], "brak")) PerkSlot2[id] = 0; else { replace_all(Sloty2, 32, "_", " "); format(nazwaPerkSlot2[id], 32, "%s", Sloty2); PerkSlot2[id] = cod_get_perkid(nazwaPerkSlot2[id]); } if(equal(Sloty3[id], "brak")) PerkSlot3[id] = 0; else { replace_all(Sloty3, 32, "_", " "); format(nazwaPerkSlot3[id], 32, "%s", Sloty3); PerkSlot3[id] = cod_get_perkid(nazwaPerkSlot3[id]); } return PLUGIN_CONTINUE; } public client_disconnect(id) { ZapiszMagazyn(id); } public client_connect(id) { WczytajMagazyn(id); } public client_authorized(id) { WczytajMagazyn(id); }