Skocz do zawartości

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

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


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
4 odpowiedzi w tym temacie

#1 ChrisN

    Wszechpomocny

  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 01.05.2018 15:06

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?


  • +
  • -
  • 0

#2 K@MILOVVSKY

    Zaawansowany

  • Użytkownik

Reputacja: 35
Życzliwy

  • Postów:118
  • Steam:steam
  • Imię:Kamil
Offline

Napisano 01.05.2018 15:11

Pokaż .sma, chociażby tylko tej funkcji. 


  • +
  • -
  • 0

#3 ChrisN

    Wszechpomocny

  • Autor tematu
  • Użytkownik

Reputacja: 31
Życzliwy

  • Postów:303
  • Imię:Christopher
Offline

Napisano 01.05.2018 17:46

Pokaż .sma, chociażby tylko tej funkcji. 

 

Zwykły sklepik :D

 

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;
}

  • +
  • -
  • 0

#4 Toldi

    Czempion

  • Power User

Reputacja: 259
Wszechwidzący

  • Postów:841
  • Imię:Mateusz
  • Lokalizacja:wies
Offline

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,


  • +
  • -
  • 1

#5 Robiin

    Godlike

  • Support Team

Reputacja: 1 107
Super Hero

  • Postów:2 051
  • Imię:Robert
  • Lokalizacja:Wrocław
Offline

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

Spoiler

 

zrób tak

 

Spoiler

 

oczywiście nie zapominajac o tablicy "koszt_przedmiotow", która przykładowo powinna wyglądać tak:

Spoiler

  • +
  • -
  • 0

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