Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <csgomod>
- #include <ColorChat>
- new const PREFIX[] = "Rynek"
- new id_skina[33];
- #define MAX_VALUE 100 // maxymalna cena
- #define MIN_VALUE 1 // minimalna cena
- #define MAX_ITEMS 1 // maksymalna ilosc
- new perk_gracza[33][MAX_ITEMS][512];
- new maxplayers, ilosc_perkow;
- public plugin_init()
- {
- register_plugin("CoD Rynek", "1.3", "MAGNET (pomoc - GT Team) edited by SeeK");
- register_clcmd("say /rynek", "rynek");
- register_clcmd("cena", "wystawienie");
- maxplayers = get_maxplayers();
- ilosc_perkow = 0;
- }
- public plugin_natives()
- {
- register_native("csgo_rynek_wystawia", "rynek_czy_wystawia", 1);
- }
- public rynek_czy_wystawia(id){
- return getPlayerItemsAmount(id);
- }
- public client_authorized(id)
- {
- for(new i = 0; i < MAX_ITEMS; i ++){
- copy(perk_gracza[id][i], charsmax(perk_gracza[][]), "0#0#0");
- id_skina[i]=0;
- }
- }
- public client_disconnect(id)
- {
- for(new i = 0; i < MAX_ITEMS; i ++){
- copy(perk_gracza[id][i], charsmax(perk_gracza[][]), "0#0#0");
- id_skina[i]=0;
- }
- }
- public wybierz_skina(id){
- new menu, Line[128];
- formatex(Line, 127, "\d Przekaz Skina");
- menu = menu_create(Line, "csgo_daj_komenda_handler");
- formatex(Line, 127, "Wszystkie Bronie");
- menu_additem(menu, Line, "1");
- formatex(Line, 127, "AK47");
- menu_additem(menu, Line, "2");
- formatex(Line, 127, "M4A1");
- menu_additem(menu, Line, "3");
- formatex(Line, 127, "AWP");
- menu_additem(menu, Line, "4");
- formatex(Line, 127, "Deagla");
- menu_additem(menu, Line, "5");
- formatex(Line, 127, "Noza");
- menu_additem(menu, Line, "6");
- formatex(Line, 127, "Usp-s");
- menu_additem(menu, Line, "7");
- formatex(Line, 127, "Glock-18");
- menu_additem(menu, Line, "8");
- formatex(Line, 127, "Famas");
- menu_additem(menu, Line, "9");
- formatex(Line, 127, "Pozostale");
- menu_additem(menu, Line, "10");
- menu_display(id, menu);
- return PLUGIN_CONTINUE;
- }
- public csgo_daj_komenda_handler(id, menu, item){
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- new szText[128], szMenu[128], String[33], id_broni[33], pozostale[33], wszystkie[33];
- switch(item){
- case 0:
- {
- formatex(szMenu, 127, "Twoje Wszystkie Skiny");
- wszystkie[id]++
- }
- case 1:
- {
- formatex(szMenu, 127, "Twoje Skiny do AK-47");
- id_broni[id]=28;
- }
- case 2:
- {
- formatex(szMenu, 127, "Twoje Skiny do M4A1");
- id_broni[id]=22;
- }
- case 3:
- {
- formatex(szMenu, 127, "Twoje Skiny do AWP");
- id_broni[id]=18;
- }
- case 4:
- {
- formatex(szMenu, 127, "Twoje Skiny do Deagla");
- id_broni[id]=26;
- }
- case 5:
- {
- formatex(szMenu, 127, "Twoje Skiny do Noza");
- id_broni[id]=29;
- }
- case 6:
- {
- formatex(szMenu, 127, "Twoje Skiny do USP");
- id_broni[id]=16;
- }
- case 7:
- {
- formatex(szMenu, 127, "Twoje Skiny do GLOCK-18");
- id_broni[id]=17;
- }
- case 8:
- {
- formatex(szMenu, 127, "Twoje Skiny do Famasa");
- id_broni[id]=15;
- }
- case 9:
- {
- formatex(szMenu, 127, "Twoje Skiny do Pozostalych broni");
- pozostale[id]++;
- }
- }
- new menu = menu_create(szMenu, "menu_skiny_handler");
- for(new i = 1; i < csgo_get_allweapon(); i++)
- {
- if(!pozostale[id])
- {
- if(wszystkie[id]){
- if(csgo_get_user_uweapon(id, i)<=0)
- continue;
- }
- else
- {
- if(csgo_weapons(i)!=id_broni[id] || csgo_get_user_uweapon(id, i)<=0)
- continue;
- }
- }
- else
- {
- if(csgo_weapons(i)==28 || csgo_weapons(i)==22 || csgo_weapons(i)==18 || csgo_weapons(i)==26 || csgo_weapons(i)==15 || csgo_weapons(i)==16 || csgo_weapons(i)==17 || csgo_weapons(i)==29 || csgo_get_user_uweapon(id, i)<=0)
- continue;
- }
- new nazwa[255];
- csgo_get_weapon_names(i, nazwa, 254)
- formatex(String, 32, "%d %d", i, csgo_weapons(i));
- formatex(szText, 127, "%s ", nazwa);
- menu_additem(menu, szText, String);
- }
- menu_display(id, menu);
- pozostale[id]=0;
- wszystkie[id]=0;
- return PLUGIN_CONTINUE;
- }
- public menu_skiny_handler(id, menu, item){
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- new access, callback, Data[4][33], skin[33];
- menu_item_getinfo(menu, item, access, Data[0], 32, Data[1], 32, callback);
- parse(Data[0], skin, 32);
- id_skina[id] = str_to_num(skin);
- client_print(id, print_center, "Podaj Cene");
- client_cmd(id, "messagemode cena");
- return PLUGIN_CONTINUE;
- }
- public rynek(id)
- {
- new szText[128];
- formatex(szText, charsmax(szText), "\rCoD Rynek");
- new menu = menu_create(szText, "rynek_handler");
- new cb = menu_makecallback("rynek_callback");
- if(!csgo_allow(id))
- {
- client_print(id, 3, "Musisz posiadac /konto");
- return PLUGIN_HANDLED;
- }
- new amount;
- //if(!csgo_get_user_uweapon(id, id_skina[id]))
- // formatex(szText, charsmax(szText), "Nie masz zadnego Skina do wystawienia.");
- if((amount = getPlayerItemsAmount(id)) >= MAX_ITEMS)
- formatex(szText, charsmax(szText), "Wystawiles/as juz %d skinow. Nie mozesz wiecej.",amount);
- else
- formatex(szText, charsmax(szText), "Wystaw Skina ( Max Cena: %i )",MAX_VALUE);
- menu_additem(menu, szText, _, _, cb);
- formatex(szText, charsmax(szText), "%s", (ilosc_perkow > 0)? "Kup Skina": "Brak Ofert Kupna");
- menu_additem(menu, szText, _, _, cb);
- formatex(szText, charsmax(szText), "Usun Skina z Rynku");
- menu_additem(menu, szText, _, _, cb);
- menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER);
- menu_setprop(menu, MPROP_EXIT, 0);
- menu_display(id, menu);
- return PLUGIN_CONTINUE;
- }
- public rynek_callback(id, menu, item)
- {
- new amount = getPlayerItemsAmount(id);
- switch(item)
- {
- case 0: return amount < MAX_ITEMS ? ITEM_ENABLED : ITEM_DISABLED;
- case 1: return (ilosc_perkow > 0)? ITEM_ENABLED: ITEM_DISABLED;
- case 2: return (amount > 0)? ITEM_ENABLED: ITEM_DISABLED;
- }
- return ITEM_ENABLED;
- }
- public rynek_handler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- switch(item)
- {
- case 0: rynek_sprzedaz(id);
- case 1: rynek_kupno(id);
- case 2: rynek_usun(id);
- }
- return PLUGIN_CONTINUE;
- }
- public rynek_sprzedaz(id)
- {
- if(getPlayerItemsAmount(id) >= MAX_ITEMS)
- {
- client_print(id, print_center, "Mozesz wystawic tylko %d Skinow!",MAX_ITEMS);
- rynek(id);
- return;
- }
- wybierz_skina(id);
- }
- public wystawienie(id)
- {
- new szIle[8];
- read_argv(1, szIle, charsmax(szIle));
- new ile = str_to_num(szIle);
- if( ile <= 0 || ile > MAX_VALUE || ile<MIN_VALUE)
- {
- client_print(id, print_center, "Niepoprawna wartosc (MAX. %i) (Min. %i)", MAX_VALUE, MIN_VALUE);
- rynek(id);
- return PLUGIN_CONTINUE;
- }
- for(new y = 0; y < MAX_ITEMS; y ++)
- {
- if(!equal(perk_gracza[id][y], "0#0#0"))
- continue;
- new nick[32];
- get_user_name(id, nick, charsmax(nick));
- new perk_id = id_skina[id];
- new perk_name[64];
- csgo_get_weapon_names(perk_id, perk_name, charsmax(perk_name));
- new dane[512];
- format(dane, charsmax(dane), "%i#%i#%i", id, ile, perk_id);
- copy(perk_gracza[id][y], charsmax(perk_gracza[][]), dane);
- //cod_set_user_perk(id, 0);
- ilosc_perkow ++;
- client_print(id, print_center, "Wystawiles/as Skin na rynku!");
- ColorChat(0, GREEN, "[%s]^x01 Gracz^x03 %s^x01 wystawil Skin^x03 %s^x01 na rynku za^x03 %i Euro^x01.", PREFIX, nick, perk_name, ile);
- break;
- }
- return PLUGIN_CONTINUE;
- }
- public rynek_kupno(id)
- {
- new szText[128];
- formatex(szText, charsmax(szText), "\yDostepne Oferty:");
- new menu = menu_create(szText, "rynek_kupno_handler");
- for(new i = 1; i <= maxplayers; i ++)
- {
- if(!is_user_connected(i))
- continue;
- for(new y = 0; y < MAX_ITEMS; y ++)
- {
- if(equal(perk_gracza[i][y], "0#0#0"))
- continue;
- new dane[512];
- format(dane, charsmax(dane), perk_gracza[i][y]);
- replace_all(dane, charsmax(dane), "#", " ");
- new dane2[3][32];
- parse(dane, dane2[0], charsmax(dane2[]), dane2[1], charsmax(dane2[]), dane2[2], charsmax(dane2[]));
- new id_wystawiajacego = str_to_num(dane2[0]);
- new cena_perku_wystawiajacego = str_to_num(dane2[1]);
- new id_perku_wystawiajacego = str_to_num(dane2[2]);
- new nick[32];
- get_user_name(id_wystawiajacego, nick, charsmax(nick));
- new perk_name[64];
- csgo_get_weapon_names(id_perku_wystawiajacego, perk_name, charsmax(perk_name));
- new data[4];
- data[0] = id_wystawiajacego;
- data[1] = cena_perku_wystawiajacego;
- data[2] = id_perku_wystawiajacego;
- data[3] = y;
- formatex(szText, charsmax(szText), "%s\y [%s]\w Cena:\r [%i Euro]", nick, perk_name, cena_perku_wystawiajacego);
- menu_additem(menu, szText, data);
- }
- }
- menu_setprop(menu, MPROP_BACKNAME, "Wstecz");
- menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
- menu_setprop(menu, MPROP_EXIT, "Wyjscie");
- menu_display(id, menu);
- return PLUGIN_CONTINUE;
- }
- public rynek_kupno_handler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- new szText[512], iLen = 0, iMax = sizeof(szText) - 1;
- new data[4], zaccess, callback;
- menu_item_getinfo(menu, item, zaccess, data, sizeof(data), _, _, callback);
- new id_wystawiajacego = data[0];
- //new cena_perku_wystawiajacego = data[1];
- new id_perku_wystawiajacego = data[2];
- new nick[32];
- get_user_name(id_wystawiajacego, nick, charsmax(nick));
- new perk_name[64];
- csgo_get_weapon_names(id_perku_wystawiajacego, perk_name, charsmax(perk_name));
- iLen += formatex(szText[iLen], iMax-iLen, "Potwierdzenie kupna Skina od: \r%s^n", nick);
- iLen += formatex(szText[iLen], iMax-iLen, "\yPerk: \r%s^n", perk_name);
- //iLen += formatex(szText[iLen], iMax-iLen, "\yKoszt: \r%i Euro^n", cena_perku_wystawiajacego);
- iLen += formatex(szText[iLen], iMax-iLen, "\wCzy chcesz kupic ten Skin?");
- new menu = menu_create(szText, "rynek_kupno_potwierdzenie");
- menu_additem(menu, "Tak", data);
- menu_additem(menu, "Nie");
- menu_setprop(menu, MPROP_EXIT,MEXIT_NEVER)
- menu_display(id, menu);
- return PLUGIN_CONTINUE;
- }
- public rynek_kupno_potwierdzenie(id, menu, item)
- {
- if(item == MENU_EXIT || item == 1)
- {
- rynek_kupno(id);
- return PLUGIN_HANDLED;
- }
- new data[4], zaccess, callback;
- menu_item_getinfo(menu, item, zaccess, data, sizeof(data), _, _, callback);
- new slot_perku_wystawiajacego = data[3];
- new dane[512];
- format(dane, charsmax(dane), perk_gracza[data[0]][slot_perku_wystawiajacego]);
- replace_all(dane, charsmax(dane), "#", " ");
- new dane2[3][32];
- parse(dane, dane2[0], charsmax(dane2[]), dane2[1], charsmax(dane2[]), dane2[2], charsmax(dane2[]));
- new id_wystawiajacego = str_to_num(dane2[0]);
- new cena_perku_wystawiajacego = str_to_num(dane2[1]);
- new id_perku_wystawiajacego = str_to_num(dane2[2]);
- if(!id_wystawiajacego || !is_user_connected(id_wystawiajacego))
- {
- client_print(id, print_center, "Skin zostal juz usuniety ze sprzedazy!");
- rynek_kupno(id);
- return PLUGIN_CONTINUE;
- }
- if(!cena_perku_wystawiajacego || !id_perku_wystawiajacego)
- {
- client_print(id, print_center, "Skin zostal juz kupiony.");
- rynek_kupno(id);
- return PLUGIN_CONTINUE;
- }
- if(id == id_wystawiajacego)
- {
- ColorChat(id, GREEN, "[%s]^x03 Nie mozesz kupic swojego skina!", PREFIX);
- rynek_kupno(id);
- return PLUGIN_CONTINUE;
- }
- if(Float:csgo_get_user_euro(id) < float(cena_perku_wystawiajacego))
- {
- client_print(id, print_center, "Masz za malo Euro!");
- rynek_kupno(id);
- return PLUGIN_CONTINUE;
- }
- new nick[32];
- get_user_name(id, nick, charsmax(nick));
- csgo_set_user_euro(id, Float:csgo_get_user_euro(id)-cena_perku_wystawiajacego);
- csgo_set_user_euro(id_wystawiajacego, Float:csgo_get_user_euro(id_wystawiajacego)+cena_perku_wystawiajacego);
- csgo_set_user_uweapon(id, id_perku_wystawiajacego, csgo_get_user_uweapon(id, id_perku_wystawiajacego)+1);
- csgo_set_user_uweapon(id_wystawiajacego, id_perku_wystawiajacego, csgo_get_user_uweapon(id_wystawiajacego, id_perku_wystawiajacego)-1);
- ilosc_perkow --;
- ColorChat(id, GREEN, "[%s]^x01 Skin zostal zakupiony pomyslnie.", PREFIX);
- ColorChat(id_wystawiajacego, GREEN, "[%s]^x01 Twoj Skin zostal zakupiony przez^x03 %s^x01. Otrzymujesz^x03 %i Euro^x01.", PREFIX, nick, cena_perku_wystawiajacego);
- copy(perk_gracza[id_wystawiajacego][slot_perku_wystawiajacego], charsmax(perk_gracza[][]), "0#0#0");
- return PLUGIN_CONTINUE;
- }
- public rynek_usun(id)
- {
- new szText[128];
- formatex(szText, charsmax(szText), "\yTwoje Oferty:");
- new menu = menu_create(szText, "rynek_usun_handler");
- for(new y = 0; y < MAX_ITEMS; y ++)
- {
- if(equal(perk_gracza[id][y], "0#0#0"))
- continue;
- new dane[512];
- format(dane, charsmax(dane), perk_gracza[id][y]);
- replace_all(dane, charsmax(dane), "#", " ");
- new dane2[3][32];
- parse(dane, dane2[0], charsmax(dane2[]), dane2[1], charsmax(dane2[]), dane2[2], charsmax(dane2[]));
- new cena_perku_wystawiajacego = str_to_num(dane2[1]);
- new id_perku_wystawiajacego = str_to_num(dane2[2]);
- new perk_name[64];
- csgo_get_weapon_names(id_perku_wystawiajacego, perk_name, charsmax(perk_name));
- new data[3];
- data[0] = cena_perku_wystawiajacego;
- data[1] = id_perku_wystawiajacego;
- data[2] = y;
- formatex(szText, charsmax(szText), "\y[%s]\w Cena:\r [%i Euro]", perk_name, cena_perku_wystawiajacego);
- menu_additem(menu, szText, data);
- }
- menu_setprop(menu, MPROP_BACKNAME, "Wstecz");
- menu_setprop(menu, MPROP_NEXTNAME, "Dalej");
- menu_setprop(menu, MPROP_EXIT, "Wyjscie");
- menu_display(id, menu);
- }
- public rynek_usun_handler(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- new szText[256], iLen = 0, iMax = sizeof(szText) - 1;
- new data[3], zaccess, callback;
- menu_item_getinfo(menu, item, zaccess, data, sizeof(data), _, _, callback);
- //new cena_perku_wystawiajacego = data[0];
- new id_perku_wystawiajacego = data[1];
- new perk_name[64];
- csgo_get_weapon_names(id_perku_wystawiajacego, perk_name, charsmax(perk_name));
- iLen += formatex(szText[iLen], iMax-iLen, "Potwierdzenie usuniecia^n");
- iLen += formatex(szText[iLen], iMax-iLen, "\ySkin: \r%s^n", perk_name);
- iLen += formatex(szText[iLen], iMax-iLen, "\wCzy chcesz usunac?");
- new menu = menu_create(szText, "rynek_usun_potwierdzenie");
- menu_additem(menu, "Tak", data);
- menu_additem(menu, "Nie");
- menu_setprop(menu, MPROP_EXIT,MEXIT_NEVER)
- menu_display(id, menu);
- return PLUGIN_CONTINUE;
- }
- public rynek_usun_potwierdzenie(id, menu, item)
- {
- if(item == MENU_EXIT || item == 1)
- {
- rynek_usun(id);
- return PLUGIN_HANDLED;
- }
- new data[3], zaccess, callback;
- menu_item_getinfo(menu, item, zaccess, data, sizeof(data), _, _, callback);
- new slot_perku_wystawiajacego = data[2];
- new dane[512];
- format(dane, charsmax(dane), perk_gracza[id][slot_perku_wystawiajacego]);
- replace_all(dane, charsmax(dane), "#", " ");
- new dane2[3][32];
- parse(dane, dane2[0], charsmax(dane2[]), dane2[1], charsmax(dane2[]), dane2[2], charsmax(dane2[]));
- new cena_perku_wystawiajacego = str_to_num(dane2[1]);
- new id_perku_wystawiajacego = str_to_num(dane2[2]);
- if(!cena_perku_wystawiajacego || !id_perku_wystawiajacego)
- {
- client_print(id, print_center, "Skin zostal juz kupiony.");
- rynek_usun(id);
- return PLUGIN_CONTINUE;
- }
- ilosc_perkow --;
- copy(perk_gracza[id][slot_perku_wystawiajacego], charsmax(perk_gracza[][]), "0#0#0");
- ColorChat(id, GREEN, "[%s]^x01 Skin zostal pomyslnie usuniety z rynku.", PREFIX)
- rynek_usun(id);
- return PLUGIN_CONTINUE;
- }
- public getPlayerItemsAmount(id)
- {
- if(!is_user_connected(id))
- return 0;
- new amount = 0;
- for(new y = 0; y < MAX_ITEMS; y ++)
- {
- if(equal(perk_gracza[id][y], "0#0#0"))
- continue;
- amount ++;
- }
- return amount;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement