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

Zablokowanie opcji w menu od x graczy


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

#1 XXL

    Wszechmogący

  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 06.01.2017 14:53

Witam potrzebuje kodu aby zablokować opcje w menu od ilości graczy na serwerze


  • +
  • -
  • 0

#2 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

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

Napisano 06.01.2017 14:56

Zablokować możliwość wybrania opcji, czy zablokować instrukcję po wybraniu opcji?


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#3 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 06.01.2017 15:42

Zablokować opcje że nie można kliknąć (callback) 


  • +
  • -
  • 0

#4 tytusek

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 06.01.2017 16:27

public menu(id){
  new tytul[64];
  format(tytul, 63, "\rmenu graczy");
  new menu = menu_create(tytul, "menu_handler");
  new cb = menu_makecallback("menu_Callback");
  menu_additem(menu, "opcja1");
  menu_additem(menu, "opcja2, "0", 0, cb"); //blokuje od 20graczy
  menu_additem(menu, "opcja3");
  menu_display(id, menu);
}
public menu_Callback(id, menu, item)
{
  item++;
  new players[32], num;
  get_players(players, num);
  if(item==2 && num>20)  //blokuje od 20 graczy
  return ITEM_DISABLED;
  return ITEM_ENABLED;
}
public menu_handler(id, menu, item){
  if(item++ == MENU_EXIT)
  {
  menu_destroy(menu);
  return PLUGIN_CONTINUE;
  }
  //dalsze instrukcje...
}
 
 
 
nie testowane

  • +
  • -
  • 1

#5 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 10.01.2017 14:59

A od x graczy danego teamu?


  • +
  • -
  • 0

#6 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 10.01.2017 18:32

public ShowMenu(id)
{
	static hMenu, hCb;
	hMenu = menu_create("Tytul menu", "Handle_ShowMenu");
	hCb = menu_makecallback("Callback_ShowMenu");
	menu_additem(hMenu, "Opcja #1", _, _, hCb); //blokujemy to jak jest wiecej niz 20 wszystkich terrorystow
	menu_additem(hMenu, "Opcja #2");
	menu_additem(hMenu, "Opcja #3");
	return menu_display(id, hMenu);
}

public Callback_ShowMenu(id, hMenu, iItem)
{
	if(iItem == 0)
	{
		return getPlayers(1) > 20 ? ITEM_DISABLED : ITEM_ENABLED;
	}
	return ITEM_ENABLED;		
}

public Handle_ShowMenu(id, hMenu, iItem)
{
	if(iItem == MENU_EXIT)
	{
		return;
	}

	// dalszy kod
}

/*
* iTeam:
* 1 - terrorysci
* 2 - anty-terrorysci
* 3 - widzowie
*
* bAlive:
* false - niezywi
* true - zywi
*/
stock getPlayers(iTeam, bool:bAlive = false)
{
	static iszPlayers[32], iNum;
	get_players(iszPlayers, iNum, bAlive ? "aceh" : "ceh", iTeam == 1 ? "TERRORIST" : "CT");
	return iNum;
}

  • +
  • -
  • 1

#7 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 24.01.2017 19:36

EDIT Nie działa


  • +
  • -
  • 0

#8 Ogen Dogen

    Czempion

  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 27.01.2017 11:33

Może tak ?

public showmenu(id)
{
	new menu = menu_create("Moje menu", "menu_handler");
	new cb = menu_makecallback("menu_callback");
	menu_additem(menu, "Opcja 1");
	menu_additem(menu, "Opcja 2");
	menu_additem(menu, "Opcja 3");
	menu_display(id, menu, 0);
}

public menu_handler(id, menu, item)
{
	if (item == MENU_EXIT) return PLUGIN_HANDLED;
	switch(item)
	{
		// obsluga menu
	}
}

public menu_callback(id, menu, item)
{
	if (item == 0 && get_team_players(1) > 5) return ITEM_DISABLED;
	return ITEM_ENABLED;
}

stock get_team_players(team)
{
	new counter = 0;
	for (new i=0; i<33; i++) if (is_user_connected(i) && get_user_team(i) == team) counter++;
	return counter;
}

  • +
  • -
  • 1

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#9 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 27.01.2017 14:36

Kto ma jeszcze jakiś pomysł? 


  • +
  • -
  • 0

#10 Asiap

    Wszechpomocny

  • Girl

Reputacja: 171
Profesjonalista

  • Postów:323
  • Lokalizacja:Kętrzyn
Offline

Napisano 27.01.2017 17:36

moj kod nie ma prawa nie dzialac
  • +
  • -
  • 0

#11 tytusek

    Czempion

  • Power User

Reputacja: 229
Wszechwidzący

  • Postów:822
Offline

Napisano 27.01.2017 18:47

  1. public Callback_ShowMenu(id, hMenu, iItem)
  2. {
  3. if(iItem == 1)
  4. {
  5. return getPlayers(1) > 20 ? ITEM_DISABLED : ITEM_ENABLED;
  6. }
  7. return ITEM_ENABLED;
  8. }

1 opcja menu chyba ma wartosc itemu 1

sprobuj to edytowac 


  • +
  • -
  • 1

#12 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 28.01.2017 13:50

Skoro jesteś pewien że kod działa to może ja coś źle robię?

 

@UP dalej nic :(


  • +
  • -
  • 0

#13 Aexis

    Pomocny

  • Użytkownik

Reputacja: 35
Życzliwy

  • Postów:59
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wrocław
Offline

Napisano 28.01.2017 17:06

#include <amxmodx>

#define OPCJA_OD 10



new menu, menu_callback_handler;

public plugin_init(){
	register_plugin("Menu", "1.0", "Aexis");
	register_clcmd("say /menu","Menu")
}




public Menu(id){
	menu=menu_create("\rMenu","menu_handler");
	menu_callback_handler=menu_makecallback("menu_callback");
	new bool:active=false, num=-1;
	menu_additem(menu,"\wpierwsza opcja","",0,menu_callback_handler);
	if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
		active=true;
	}
	menu_additem(menu,"\wdruga opcja","",0,menu_callback_handler);
	if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
		active=true;
	}
	menu_additem(menu,"\wtrzecia opcja","",0,menu_callback_handler);
	if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
		active=true;
	}
	menu_additem(menu,"\wczwarta opcja","",0,menu_callback_handler);
	if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
		active=true;
	}
	if(active){
		menu_setprop(menu,MPROP_EXITNAME,"Wyjscie");
		menu_setprop(menu,MPROP_TITLE,"\yMenu");
		menu_setprop(menu,MPROP_NUMBER_COLOR,"\r");
		menu_display(id, menu);
	} else {
		menu_destroy(menu);
	}
}

public menu_callback(id, menu, item){
	if(is_user_alive(id)){
		if(item==0){
			return ITEM_ENABLED;
		}
		
		if(item==1){
			return ITEM_ENABLED;
		}
		
		if(get_playersnum()>= OPCJA_OD){
			if(item==2){
				return ITEM_ENABLED;
			}
		}
		
		if(item==3){
			return ITEM_ENABLED;
		}
		
	}
	return ITEM_DISABLED;
}
public menu_handler(id, menu, item){
	if(is_user_alive(id)){
		if(item==0){
			menu_1_handler(id);
		}
		
		if(item==1){
			menu_2_handler(id);
		}
		
		if(get_playersnum()>= OPCJA_OD){
			if(item==2){
				menu_3_handler(id);
				//return PLUGIN_HANDLED
			}
			
		}
		if(item==3){
			menu_4_handler(id);
		}
		
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}


public menu_1_handler(id)
{
	client_print(id, print_center, "Elo");
}

public menu_2_handler(id)
{
	client_print(id, print_center, "Melo");
}

public menu_3_handler(id)
{
	client_print(id, print_center, "Trzy dwa");
}

public menu_4_handler(id)
{
	client_print(id, print_center, "ZERO");
}

Ten musi działać  ;)


  • +
  • -
  • 1

1228979531_oie_291885ZfujEGiH(1).png.af1


#14 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 29.01.2017 13:58

Działa :)

 

A jeszczze pytanie idzie jakoś przyśpieszyć ten plugin po zmianie mapy/restartu serwa? 


  • +
  • -
  • 0

#15 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

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

Napisano 29.01.2017 14:05

Przyśpieszyć? Żeby plugin był czytany priorytetowo?


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#16 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 29.01.2017 14:44

tak


  • +
  • -
  • 0

#17 Robiin

    Godlike

  • Support Team

Reputacja: 1 106
Super Hero

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

Napisano 29.01.2017 15:29

Wystarczy Ci przerzucić go w plugins.ini na górę, ale nie pomiń reszty tj. adminhelp.amxx itd.


  • +
  • -
  • 0

Nie dołączam do żadnej sieci, nie pomagam z tworzeniem paczek, nie napisze pluginów za zero.


#18 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 29.01.2017 19:03

A jest jeszcze jakiś sposób na to? Może zmiana bibliotek coś pomoże?


  • +
  • -
  • 0

#19 Aexis

    Pomocny

  • Użytkownik

Reputacja: 35
Życzliwy

  • Postów:59
  • GG:
  • Imię:Paweł
  • Lokalizacja:Wrocław
Offline

Napisano 29.01.2017 19:08

Ale co  Ty konkretnie chcesz tym osiągnąć?


A jeszczze pytanie idzie jakoś przyśpieszyć ten plugin po zmianie mapy/restartu serwa? 


  • +
  • -
  • 0

1228979531_oie_291885ZfujEGiH(1).png.af1


#20 XXL

    Wszechmogący

  • Autor tematu
  • Power User

Reputacja: 139
Zaawansowany

  • Postów:637
Offline

Napisano 02.02.2017 20:39

Mniejsza o powyższe pytanie dziękuje wszystkim za pomoc 

 

Można zamknąć 


  • +
  • -
  • 0




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

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