←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] Jaki kod na komende którą mo...

Locked

  • +
  • -
aRrOw's Photo aRrOw 17.07.2015

Witajcie, mam kolejny problem sam już nie wiem który z kolei :D ale przechodząc do sedna rzeczy. Jaki kod na zablokowanie komendy żeby można ją było użyć raz na mapę?
Quote

  • +
  • -
vanillah's Photo vanillah 17.07.2015

podaj kod tej komendy to ci pomoge

Quote

  • +
  • -
aRrOw's Photo aRrOw 17.07.2015

A nie można tego poprostu w publicu? Ty podajesz kod który mam wrzucić do publica odpowiedzialnego za to co komenda ma robić? Bo ja jeszcze ogólnie pluginy nie mam zrobionego. Bo chcę zrobić tak że po wpisaniu /losuj losujesz sobie perk i żeby była ta komenda raz na mape.
Quote

  • +
  • -
Wielkie Jol's Photo Wielkie Jol 17.07.2015

Dodaj zmienną typu boolean 33elementową.

 

W funkcji, która się wywołuje po wpisaniu odpowiedniej komendy sprawdzasz, czy wartość zmiennej jest na false, jeżeli jest na false puszczasz plugin dalej i ustawiasz w tym miejscu wartość na true.

 

Jest pełno poradników/pluginów zawierających taką modyfikację, wystarczy poświęcić 5min.

Quote

  • +
  • -
aRrOw's Photo aRrOw 17.07.2015

Szukałem ale niestety nie znalazłem a nawet jeśli bym znalazł to po przerobieniu by na pewno wywaliło jakieś błędy wiem z doświadczenia..

 

Mam już tyle:


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)

	register_clcmd("say /losuj", "losujperk");
        register_clcmd("say /losuj2", "losujperk2");
}

public losujperk(id)
{
        if(cod_get_user_perk(id))
                client_print(id, 3, "Posiadasz juz perk, wyrzuc go aby wylosowac drugi")
        else
	        cod_set_user_perk(id, -1, -1, 1);
}

public losujperk2(id)
{
        if(cod_get_user_perk(id))
                client_print(id, 3, "Posiadasz juz perk, wyrzuc go aby wylosowac drugi")
        else
                cod_set_user_perk(id, -1, -1, 1, 1);
}

Jak do tego dodać żeby komenda /losuj2 była na flage H a /losuj na zwykłą USERA, i jak dodać właśnie te zabezpieczenie żeby można było te komendy użyć raz na mapę. Pomoże ktoś :) ?


Edited by aRrOw, 17.07.2015 14:59.
Quote

  • +
  • -
Linux''s Photo Linux' 17.07.2015

new bool:uzywal[33];
public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)

	register_clcmd("say /losuj", "losujperk");
	register_clcmd("say /losuj2", "losujperk2");
}
public client_authorized(id)
{
	uzywal[id] = false;
}
public losujperk(id)
{
	if(get_user_flags(id) & FLAGA)
	{
		if(!uzywal[id])
		{
			if(cod_get_user_perk(id))
				client_print(id, "Posiadasz juz perk, wyrzuc go aby wylosowac drugi");
			else
			{
				cod_set_user_perk(id, -1, -1, 1);
				uzywal[id] = true;
			}
		}
		else
			client_print(id, "Uzywales juz tej komendy.");
	}
	else
		client_print(id, "Nie posiadasz dostepu do tej komendy.");
}
public losujperk2(id)
{
	if(get_user_flags(id) & FLAGA)
	{
		if(!uzywal[id])
		{
			if(cod_get_user_perk(id))
				client_print(id, "Posiadasz juz perk, wyrzuc go aby wylosowac drugi");
			else
			{
				cod_set_user_perk(id, -1, -1, 1, 1);
				uzywal[id] = true;
			}
		}
		else
			client_print(id, "Uzywales juz tej komendy.");
	}
	else
		client_print(id, "Nie posiadasz dostepu do tej komendy.");
}

Nie ustawialem tylko flag, poniewaz od jakiegos czasu nie operuje w amxx i zapomnialem nazw :P.

 

Powiedz mi jeszcze, na co ta trojka w skladni?

client_print(id, 3, "Posiadasz juz perk, wyrzuc go aby wylosowac drugi")

Edit: Aaa no tak, juz przejrzalem dokumentacje i wiem o co chodzi hehe :D.

Quote

  • +
  • -
aRrOw's Photo aRrOw 17.07.2015

client_print(id, 3, "xxxxxxxxxxxxxxxxxxx")

Przyznaję się  ;>  - Ten kod skopiowałem z innego pluginu więc nwm :D

 

Czyli teraz jeśli ktoś wylosuje perk i wyjdzie z serwera a po chwili wejdzie to nie będzie mógł użyć komendy aż do zmiany mapy tak?


Edited by aRrOw, 17.07.2015 15:25.
Quote

  • +
  • -
Linux''s Photo Linux' 17.07.2015

client_print(id, 3, "xxxxxxxxxxxxxxxxxxx")

Ten kod skopiowałem z innego pluginu więc nwm :D

 

Czyli teraz jeśli ktoś wylosuje perk i wyjdzie z serwera a po chwili wejdzie to nie będzie mógł użyć komendy aż do zmiany mapy tak?

 

 

Dobrze masz skladnie, zapomnialem za co to odpowiada :P. Nie nie to tak nie dziala, jak ktos to uzyje to az do zmiany mapy nie bedzie mogl tego ponownie uzyc lub przelogowania sie. Jak chcesz to zrobic tak jak mowisz to mozesz sprobowac usunac resetowanie zmiennej przy wchodzeniu na serwer (client_authorized(id)), powinna zmienna resetowac dopiero sie po zmianie mapy ale tez nie w kazdym przypadku. Trzeba by zrobic zapisywanie i resetowac co zmiane mapy.

Quote

  • +
  • -
aRrOw's Photo aRrOw 17.07.2015

No dobra dzięki ponownie :D. można zamknąć

Quote

  • +
  • -
MAGNET's Photo MAGNET 21.07.2015

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Quote
Locked