Hey, mam pytanie mianowicie zrobiłem w sklepie taką opcje jak kupno losowej inteligencji do konca mapy, tylko nie mam pojeciac jak zablokowac mozliwosc kupna jej drugi raz na tej samej mapie?
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.
|

Blokada po zakupie

Najlepsza odpowiedź Toldi, 01.05.2018 17:57
Nad plugin init dodaj kupil_zdrowie[33];
case 0: { if(kupil_zdrowie[id]) // sprawdzam czy gracz juz kupil dodatkowy hp. Tak kupił. Pokaz info i zatrzymaj dawanie bonusu. { client_print(id, print_chat, " Kupiles juz dodatkowe zdrowia do konca mapy!"); return PLUGIN_HANDLED; } else if(kasa >= 120) { new losowy = random_num(5, 10); cod_set_user_coins(id, kasa-120); cod_set_user_bonus_intelligence(id, cod_get_user_intelligence(id, 0, 0)+losowy); client_print(id, print_chat, " Dostales %i dodatkowego zdrowia do konca mapy!", losowy); kupil_zdrowie[id]=true; // kupil zdrowie wiec ustawiam true, aby zablokowac ponowne kupienie tego samego bonusu } if(kasa < 120) client_print(id, print_chat, " Masz za malo kasy!"); }
Resztę robisz analogicznie do tego tj. kupil_pancerz, kupil_jakisbonus,
Przejdź do postu
#1
Napisano 01.05.2018 15:06
#2
Napisano 01.05.2018 15:11
Pokaż .sma, chociażby tylko tej funkcji.
#3
Napisano 01.05.2018 17:46
Pokaż .sma, chociażby tylko tej funkcji.
Zwykły sklepik
public sklepumiejetnosci_handler(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 kasa = cod_get_user_coins(id) switch(item) { case 0: { if(kasa >= 120) { new losowy = random_num(5, 10); cod_set_user_coins(id, kasa-120); cod_set_user_bonus_intelligence(id, cod_get_user_intelligence(id, 0, 0)+losowy); client_print(id, print_chat, " Dostales %i dodatkowego zdrowia do konca mapy!", losowy); } if(kasa < 120) client_print(id, print_chat, " Masz za malo kasy!"); } case 1: { if(kasa >= 120) { new losowy = random_num(5, 10); cod_set_user_coins(id, kasa-120); cod_set_user_bonus_health(id, cod_get_user_health(id, 0, 0)+losowy); client_print(id, print_chat, " Dostales %i dodatkowego zdrowia do konca mapy!", losowy); } if(kasa < 120) client_print(id, print_chat, " Masz za malo kasy!"); } case 2: { if(kasa >= 120) { new losowy = random_num(5, 10); cod_set_user_coins(id, kasa-120); cod_set_user_bonus_stamina(id, cod_get_user_stamina(id, 0, 0)+losowy); client_print(id, print_chat, " Dostales %i dodatkowej wytrzymalosci do konca mapy!", losowy); } if(kasa < 120) client_print(id, print_chat, " Masz za malo kasy!"); } case 3: { if(kasa >= 120) { new losowy = random_num(5, 10); cod_set_user_coins(id, kasa-120); cod_set_user_bonus_trim(id, cod_get_user_trim(id, 0, 0)+losowy); client_print(id, print_chat, " Dostales %i dodatkowej kondycji do konca mapy!", losowy); } if(kasa < 120) client_print(id, print_chat, " Masz za malo kasy!"); } } return PLUGIN_CONTINUE; }
#4
Napisano 01.05.2018 17:57 Najlepsza odpowiedź
Nad plugin init dodaj kupil_zdrowie[33];
case 0: { if(kupil_zdrowie[id]) // sprawdzam czy gracz juz kupil dodatkowy hp. Tak kupił. Pokaz info i zatrzymaj dawanie bonusu. { client_print(id, print_chat, " Kupiles juz dodatkowe zdrowia do konca mapy!"); return PLUGIN_HANDLED; } else if(kasa >= 120) { new losowy = random_num(5, 10); cod_set_user_coins(id, kasa-120); cod_set_user_bonus_intelligence(id, cod_get_user_intelligence(id, 0, 0)+losowy); client_print(id, print_chat, " Dostales %i dodatkowego zdrowia do konca mapy!", losowy); kupil_zdrowie[id]=true; // kupil zdrowie wiec ustawiam true, aby zablokowac ponowne kupienie tego samego bonusu } if(kasa < 120) client_print(id, print_chat, " Masz za malo kasy!"); }
Resztę robisz analogicznie do tego tj. kupil_pancerz, kupil_jakisbonus,
#5
Napisano 01.05.2018 18:59
Na przyszłość; lepiej użyj jakiejś ładnie napisanej funkcji, niż takiego zbitego, repetytywnego kodu, na przykłąd zamiast
zrób tak
oczywiście nie zapominajac o tablicy "koszt_przedmiotow", która przykładowo powinna wyglądać tak:
Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych