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
Zombie Mod

[Poradnik] Jak dodać ograniczenie do kupna extra itemu?

zombie mod zombie plague drago 36 dr@gon ograniczenie extra item limit

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

#1 Drago36

    Profesjonalista - if you know what i mean

  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 08.03.2014 00:55

Witam!

 

W tym poradniku chcę wam przedstawić jak ustawić ograniczenie kupna danego extra itemu na rundę.

Postaram się w jak najprostszy sposób wam to pokazać i wyjaśnić co dane parametry oznaczają.

 

1. Otwieramy nasz extra item (plik .sma)

2. Pod bibliotekami (tu: #include) dodajemy:

new iBuyCount[33]
const iMaxBuy = 4 // <=ile razy mozna kupic extra item na runde

3. Następnie rejestrujemy nową rundę (w plugin_init)

register_event("HLTV", "event_round_start", "a", "1=0", "2=0")

4. Dodajemy całą funkcje, najlepiej na sam koniec:

public event_round_start()
	for(new i = 1; i <= 33; i++)
		iBuyCount[i] = 0

Publik resetuje nam ilość naszego kupna. Jeśli kupiliśmy ex item 4 razy, w nowej rundzie zostanie on zmieniony na 0, więc jeśli mieliśmy ogranicznik ustawiony na 4 to będziemy znowu mogli kupować item 4 razy, w przeciwnym wypadku nasza ilość nie zostanie zresetowana i dalsze kupno będzie niemożliwe.



5. I tu zaczyna się tak "trochę ciężej dla zielonych". Radzę uważnie czytać.

Public zp_extra_item_selected przeważnie wygląda tak:

public zp_extra_item_selected(player, itemid)
{
	if (itemid == g_itemid1)
	{
		client_print(player, print_chat, "[ZP] Kupiles EXTRA ITEM!") // opis
		moc[player] = true  // zmienna włączająca dany skill/moc/atrybut
                give_item(player, "weapon_hegrenade") // i tam dla bajeru, dostaje się granata
	}
}

Ten przykładowy ex item musimy przerobić na ograniczenie.

Wystarczy, że przed naszymi dodatkami z ex itemu, czyli:

client_print(player, print_chat, "[ZP] Kupiles EXTRA ITEM!") // opis
moc[player] = true  // zmienna włączająca dany skill/moc/atrybut
give_item(player, "weapon_hegrenade") // i tam dla bajeru, dostaje się granata

Dodajemy:

if(iBuyCount[player] >= iMaxBuy)
{
	client_print(player, print_chat, "[ZP] Przepraszamy, ale juz nie mozesz tego kupowac!")
	return ZP_PLUGIN_HANDLED;
}
iBuyCount[player]++

 

I do if (itemid == g_itemid1) zwrócimy wartość PLUGIN_CONTINUE.

Czyli nasz publik powinien wyglądać tak:

public zp_extra_item_selected(player, itemid)
{
	if (itemid == g_itemid1)
	{
		if(iBuyCount[player] >= iMaxBuy)
		{
			client_print(player, print_chat, "[ZP] Przepraszamy, ale juz nie mozesz tego kupowac!")
			return ZP_PLUGIN_HANDLED;
		}
		iBuyCount[player]++
		
		client_print(player, print_chat, "[ZP] Kupiles EXTRA ITEM!")
		moc[player] = true
		give_item(player, "weapon_hegrenade")
	}
	return PLUGIN_CONTINUE;
}

Od teraz gracz, który kupił dany extra item 4 razy nie będzie mógł kupować go dalej. Dopiero od nowej rundy.

Niżej przykładowy extra item.

Spoiler

Poradnik piszę "sam z głowy", nie kieruje się innym poradnikiem, lecz przeanalizowałem plugin, przetestowałem i dzielę się z wami.

I to by było na tyle, bye.


Użytkownik Drago36 edytował ten post 15.09.2014 16:08

  • +
  • -
  • 1

#2 xXxBoy4GirlxXx

    Zombie Plague Advance 1.6.2!

  • Użytkownik

Reputacja: 58
Pomocny

  • Postów:258
  • GG:
  • Steam:steam
  • Imię:Krzysztof
  • Lokalizacja:Olsztyn
Offline

Napisano 08.03.2014 20:21

Cudowne :) Mogłbyś dodać jeszcze do tego aby po zakupie wyświetlało w hud kupującemu "Zakupiłeś 100 kamizelki, mozesz kupić jeszcze x razy" Hm?


  • +
  • -
  • 0
<p>Szukasz pluginów do zombie modahttp://amxx.pl/topic...spis-extra-itemKupię Klucz steam lub konto CS: Source, pw/gg 36374005

#3 Drago36

    Profesjonalista - if you know what i mean

  • Autor tematu
  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 09.03.2014 01:24

Możliwe, że zrobię.


  • +
  • -
  • 0

#4 Drago36

    Profesjonalista - if you know what i mean

  • Autor tematu
  • Power User

Reputacja: 561
Wszechwiedzący

  • Postów:707
  • GG:
  • Imię:Mów mi D.ave
  • Lokalizacja:Polska
Offline

Napisano 11.03.2014 21:14

xXxBoy4GirlxXx niżej w spoilerze, masz z "x razy możesz jeszcze kupić".

 

Spoiler

Użytkownik Drago36 edytował ten post 15.09.2014 16:09

  • +
  • -
  • 1

#5 Sinner

    Zaawansowany

  • Użytkownik

Reputacja: 15
Początkujący

  • Postów:79
  • Imię:Adam
  • Lokalizacja:Białystok
Offline

Napisano 22.04.2020 13:56

Cześć przeglądałem twój poradnik i znalazłem mały błąd tzn z tego:

public event_round_start()
    for(new i = 1; i <= 33; i++)
        iBuyCount[i] = 0

powinno być tak:

public event_round_start()
    for(new i = 1; i < 33; i++)
        iBuyCount[i] = 0

<= Ten znak jest niepotrzebny być może missclicka strzeliłeś i niechcący dodałeś po < znak równości. Przez to tablica będzie o jedną wartość za mała i serwer będzie spamował niegroźnym errorem w logach.
 


 


  • +
  • -
  • 0





Również z jednym lub większą ilością słów kluczowych: zombie mod, zombie, plague, drago, 36, dr@gon, ograniczenie, extra item, limit

Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych