←  Problemy

AMXX.pl: Support AMX Mod X i SourceMod

»

[ROZWIĄZANE] [Problem] Menu wyboru VIPa ty...


Locked

  • +
  • -
Aramis's Photo Aramis 03.02.2023

Mam VIPa z forumowego generatora. Tworzy on menu od trzeciej rundy:

public menu_handler(id, menu, item){
	if(is_user_alive(id)){
		if(gRound>=3){
			if(item==0){
				menu_1_handler(id);
			}
			if(item==1){
				menu_2_handler(id);
			}
			if(item==2){
				menu_3_handler(id);
			}
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;

Czy jest możliwość, żeby funkcja dodatkowo sprawdzała rodzaj granej mapy? Chciałbym, aby menu włączało się tylko dla map CS/DE, ale było nieaktywne gdy grane są AIM/FY itd.

 

Quote

  • +
  • -
Aramis's Photo Aramis 04.02.2023

Niestety, poległem. Nie jestem rasowym programistą, i chociaż staram się zrozumieć to działam na chłopski rozum, co daje różnorakie efekty :P

Zmieniłem kod wg. wskazówek, plugin się kompiluje ale niestety dalej daje menu niezależnie od mapy:

public show_vip_menu(id){
	
	new szMapName[32];
	get_mapname(szMapName, 31);
	if (!equal(szMapName, "fy_", 3) || !equal(szMapName, "aim_", 4)){
	
		menu=menu_create("\rMenu VIPa","menu_handler");
		menu_callback_handler=menu_makecallback("menu_callback");
		new bool:active=false, num=-1;
		menu_additem(menu,"\wAK47 + DGL","",0,menu_callback_handler);
		if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
			active=true;
		}
		menu_additem(menu,"\wM4A1 + DGL","",0,menu_callback_handler);
		if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
			active=true;
		}
		menu_additem(menu,"\wAWP + DGL","",0,menu_callback_handler);
		if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
			active=true;
		}
		menu_additem(menu,"\wMP5 + DGL","",0,menu_callback_handler);
		if(menu_callback(id, menu, ++num)==ITEM_ENABLED){
			active=true;
		}
		menu_additem(menu,"\wKrowa + DGL","",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 Elite VIP");
			menu_setprop(menu,MPROP_NUMBER_COLOR,"\r");
			menu_display(id, menu);
		} else {
			menu_destroy(menu);
		}
	}
}

To, że nie działa - to już wiemy. Bardzo proszę o wersję, która ma szansę zadziałać, ale również krótkie wytłumaczenie co tutaj robię źle. Trzeba się uczyć na błędach :)

 

Quote

  • +
  • -
PANDA_2zl's Photo PANDA_2zl 04.02.2023

if (!equal(szMapName, "fy_", 3) || !equal(szMapName, "aim_", 4)){
W tym zamienić || (lub) na && (i) wtedy będzie patrzeć czy ani to ani to nie pojawia się w nazwie mapy, możesz też użyć zamiast equal
https://amxx.pl/doku...a/f1362/contain
I w warunku
if(contain(szMapName, "fy_")!=0 && contain(szMapName, "aim_")!=0){
Quote

  • +
  • -
Aramis's Photo Aramis 04.02.2023

Poprawiłem to co miałem - działa, bardzo dziękuję :)

Quote

  • +
  • -
dasiek's Photo dasiek 06.02.2023

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