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

Czasowa jedna opcja z menu


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

#1 pewex

    Życzliwy

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:27
  • Lokalizacja:ijijijiji
Offline

Napisano 29.12.2012 02:38

Witam, mam zwykle menu opierajace sie na funkcjach menu_additem, jednak spośród 6 opcji do wyboru chcialbym aby jedna z tych opcji byla niedostepna po 300 sekundach od rozpoczecia rundy, czyli jak minie ta ilosc sekund, to opcja ta staje sie nieaktywna i w menu pokazana jest na "szaro" (po wyborze takiej opcji nie przenosi i nie reaguje w żaden sposó B)

Jak to zrobic?


Menu:

stock menu_test(id)
{
	new menu = menu_create("\rTest", "menu_test_h");
	menu_additem(menu, "Opcja \y(\r6 \yAP)");			//0
	menu_additem(menu, "Opcja");			//1
	menu_additem(menu, "OPCJA");		//2
	menu_additem(menu, "OPCJA");		//3
	menu_additem(menu, "Opcja");		//4
	menu_additem(menu, "Opcja");		//5
	menu_additem(menu, "Opcja");			//6
	menu_display(id, menu);
}

A wiec chcialbym aby np. 6 opcja byla niedostepna do wyboru po upldywie 300 sec. od rozpoczecia rundy

Jak to zrobic? Jakie funkcje nadac? Jaki task?

proszę o konkretna i szczegółową odp.

Użytkownik pewex edytował ten post 29.12.2012 02:39

  • +
  • -
  • 0

#2 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 077
Godlike

  • Postów:5 706
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 29.12.2012 11:15

Tak więc -
Dodajesz zmienną logiczną (true/false)
new bool:odblokowana;
Wyłapujesz moment startu nowej rundy

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

i dodajesz funkcje do obsługi odblokowania i zablokowania
public newRound()
{
odblokowana =false;
set_task(300.0,"Zablokuj");
}
public Zablokuj()
odblokowana = true;


w handlu opcji 6tej dodajesz
if(odblokowana)
{
//Robi cos
}
else
{
client_print(id,print_chat,"Ta opcja jest dostępna po 300 sekundach od nowej rundy");
}

  • +
  • -
  • 1

#3 glut

    Godlike

  • Przyjaciel

Reputacja: 954
Master

  • Postów:2 086
  • GG:
  • Steam:steam
  • Imię:Mateusz
  • Lokalizacja:Namysłów
Offline

Napisano 29.12.2012 11:28

@CheQ

on chciał

]niedostepna po 300 sekundach od rozpoczecia rundy

@Pewex

jeżeli dobrze zrozumiałem zamień tą część CheQ

public newRound()
{
odblokowana =false;
set_task(300.0,"Zablokuj");
}
public Zablokuj()
odblokowana = true;


na

public newRound()
{
odblokowana =true;
set_task(300.0,"Zablokuj");
}
public Zablokuj()
odblokowana = false;


dasiek (29.12.2012 11:42):
11.30 - jeszcze nie wstałem.

  • +
  • -
  • 1

Nie pomagam za darmo na PW/GG/Steam od tego jest forum

 

TP Game + RR

 

Znak rozpoznawczy :coto:


#4 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 29.12.2012 14:01

Warto też usuwać taska w nowej rundzie

public newRound()
{
odblokowana =true;
set_task(300.0,"Zablokuj");
}
public Zablokuj()
odblokowana = false;
zamienić na:
public newRound()
{
odblokowana =true;
remove_task(666);
set_task(300.0,"Zablokuj", 666);
}
public Zablokuj()
odblokowana = false;

  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#5 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 29.12.2012 17:56

To co wyżej jest ok, ale nigdzie nie ma zamiany opcji na szaro ^ ^
stock menu_test(id)
{
new menu = menu_create("\rTest", "menu_test_h");
new menucallback = menu_makecallback("menucallback");
menu_additem(menu, "Opcja \y(\r6 \yAP)"); //0
menu_additem(menu, "Opcja"); //1
menu_additem(menu, "OPCJA"); //2
menu_additem(menu, "OPCJA"); //3
menu_additem(menu, "Opcja"); //4
menu_additem(menu, "Opcja"); //5
menu_additem(menu, "Opcja", _, _, menucallback); //6
menu_display(id, menu);
}

public menucallback(id, menu, item) {
if(!odblokowana && item == 6) return ITEM_DISABLED;

return ITEM_ENABLED;
}

  • +
  • -
  • 1

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#6 pewex

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:27
  • Lokalizacja:ijijijiji
Offline

Napisano 29.12.2012 19:43

A więc, serwer po tej ilości sekund, powoduje iż opcja znika z menu, natomiast nie staje się "szara" i niedostępna...
  • +
  • -
  • 0

#7 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 29.12.2012 20:23

sebul dał ci kod.
  • +
  • -
  • 0

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#8 pewex

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:27
  • Lokalizacja:ijijijiji
Offline

Napisano 29.12.2012 21:06

Wiem, jednak tak jest po zastosowaniu wszystkich informacji z tego tematu, czyli poprawki gluta, huberta i sebula

A więc któraś z tych rad edycji sma, sprawia iz opcja znika
  • +
  • -
  • 0

#9 speedkill

    Godlike

  • Przyjaciel

Reputacja: 1 592
Godlike

  • Postów:2 733
  • GG:
  • Steam:steam
  • Imię:Michał
  • Lokalizacja:Prudnik
Offline

Napisano 29.12.2012 21:09

Sebula oraz Huberta, musisz wkleić ten kod co Ci podali do swojego sma ;)
  • +
  • -
  • 0

If you can dream it, you can do it.


#10 pewex

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:27
  • Lokalizacja:ijijijiji
Offline

Napisano 29.12.2012 21:15

Sebula oraz Huberta, musisz wkleić ten kod co Ci podali do swojego sma ;)


Pfff ..

Sorry, może jeszcze nie wspomniałem, ale racjonalnie myśleć i edytować pluginy pawna już dawno umiem..

Plugin został zedytowany, wszystko działa poprawnie, jedynie ta opcja po czasie znika zamiast być szara - proste? proste
  • +
  • -
  • 0

#11 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 29.12.2012 21:16

Sebula oraz Huberta, musisz wkleić ten kod co Ci podali do swojego sma ;)


Pfff ..

Sorry, może jeszcze nie wspomniałem, ale racjonalnie myśleć i edytować pluginy pawna już dawno umiem..

Plugin został zedytowany, wszystko działa poprawnie, jedynie ta opcja po czasie znika zamiast być szara - proste? proste

Czyli robisz coś źle. Pokaż jak to zrobiłeś.
  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo


#12 pewex

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:27
  • Lokalizacja:ijijijiji
Offline

Napisano 29.12.2012 21:22

Wycinek odpowiadajacy za wszystko:


new bool:odblokowana;	// zmienna logiczna

------------------------

public menucallback(id, menu, item) {
		if(!odblokowana && item == 1) return ITEM_DISABLED;

		return ITEM_ENABLED;
}

public newRound()
{
	odblokowana =true;
	remove_task(666);
	set_task(300.0,"Zablokuj", 666);
}
public Zablokuj()
odblokowana = false;

---------------------------------


menu_test(id)
{
	new menu = menu_create("\rTEST:", "menu_test_h");
	new menucallback = menu_makecallback("menucallback");
	menu_additem(menu, "TEST");	//0
	if(odblokowana)
	{
	menu_additem(menu, "\yTEST", _, _, menucallback); //1
	}
	else
	{
	ColorChat(id, RED, "!zTEST");
	}
	menu_additem(menu, "TSEST");		//2
	menu_additem(menu, "TEST");		//3
	menu_additem(menu, "TEST");		//4
	menu_additem(menu, "TEST");		//5
	menu_additem(menu, "TEST");			//6
	menu_display(id, menu);
}

-------------------------------

proszę bardzo ;)

Użytkownik pewex edytował ten post 29.12.2012 21:38

  • +
  • -
  • 0

#13 sebul

    Godlike

  • Przyjaciel

Reputacja: 2 035
Godlike

  • Postów:5 411
  • Steam:steam
  • Imię:Sebastian
  • Lokalizacja:Ostrołęka
Offline

Napisano 30.12.2012 00:32

Nie wiem czy aby na pewno umiesz racjonalnie myśleć przy edytowaniu pluginów, nie wnikam, ale skoro przy tworzeniu menu dodajesz lub nie drugą opcję, to nie ma co się dziwić, że jest ona tylko na samym początku. Funkcję z tworzeniem menu zamień na tą
menu_test(id)
{
new menu = menu_create("\rTEST:", "menu_test_h");
new menucallback = menu_makecallback("menucallback");
menu_additem(menu, "TEST"); //0
menu_additem(menu, "\yTEST", _, _, menucallback); //1
menu_additem(menu, "TSEST"); //2
menu_additem(menu, "TEST"); //3
menu_additem(menu, "TEST"); //4
menu_additem(menu, "TEST"); //5
menu_additem(menu, "TEST"); //6
menu_display(id, menu);
}

sebul (30.12.2012 00:34):
Co do tego warunku, to CheQ pisał, aby go dodać w funkcji, która wyłapuje to co się nacisnęło, a nie przy tworzeniu menu.

  • +
  • -
  • 0

Posiadam TBM (inaczej PTB), które działa dużo lepiej niż zwykłe PTB, nawet na modach z lvlami. Zainteresowany? Proszę bardzo





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

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