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


Dodatki SourceMod













