Skocz do zawartości
  • Chmurka
  • Boróweczka
  • Jabłuszko
  • Limonka
  • Czekoladka
  • Węgielek
Zaloguj się, aby obserwować  
szogun

[Rozwiązane] Menu serwera v2

Polecane posty

Siemson, mam mały problem, chodzi o to że nie otwiera mi się menu forum , jak i zasady a pozostałe działają i nie wiem czemu

 

Spoiler

#include <sourcemod>

public void OnPluginStart()
{
	RegConsoleCmd("sm_menu", MenuSrv);
}

public OnClientPutInServer(client) 
{
	CreateTimer(0.5, Timer_JoinMenu, client);
	CreateTimer(60.0, Timer_WelcomeMessage, client, TIMER_FLAG_NO_MAPCHANGE);
}

public Action Timer_JoinMenu(Handle timer, any client)
{
    FakeClientCommand(client, "sm_menu");
}  

public Action Timer_WelcomeMessage(Handle timer, any client)
{
    PrintToChat(client, "★\x07[Menu Serwera] \x04%N \x02aby uzyskać pomoc, wpisz na czacie !menu");
}  

public Action MenuSrv(int client, int args)
{
	Menu menu = new Menu(MenuSr);
	menu.SetTitle("Menu serwera - OneFrag.pl \n");
	menu.AddItem("Rek", "*** REKRUTACJA ***");
	menu.AddItem("Zasady", "Regulamin");
	menu.AddItem("Forum", "Forum");
	menu.AddItem("Opis", "Opis Vipa");
	menu.AddItem("Kupno", "Jak kupić?");
	menu.ExitButton = true;
	menu.Display(client, MENU_TIME_FOREVER);
}

public Action Rek(int client)
{
	Menu menu = new Menu(MenuSr);
	menu.SetTitle("Wymagania na admina \n\n- Wiek* (Min 15lat) \n- 12H na serwerze \n- Sprawny mikrofon \n- Konto na forum \n- Podanie składamy na AceGO.pl \n");
	menu.AddItem("podanie", "Złóż podanie \n");
	menu.AddItem("powrot", "Wróć");
	menu.ExitButton = false;
	menu.Display(client, MENU_TIME_FOREVER);
}

public Action Zasady(int client)
{
	Menu menu = new Menu(MenuSr);
	menu.SetTitle("Zasady serwerta \n - Zakaz obrazanie graczy \n - Zakaz uzywania wulgarnego slownictwa \n - Zakaz wykorzystywania bugow mapy serwera \n- Cele mapy sa obowiazkowe \n - Zakaz reklamowania \n - Zakaz uzywania wspomagaczy \n - Mikro po mutacji lub +16 \n - Zakaz spamowanie na serwerze. \n- Zakaz utrudniania rozgrywki. \n");
	menu.AddItem("podanie", "Złóż podanien \n");
	menu.AddItem("powrot", "Wróć");
	menu.ExitButton = false;
	menu.Display(client, MENU_TIME_FOREVER);
}

public Action Forum(int client)
{
	Menu menu = new Menu(MenuSr);
	menu.SetTitle("Oficjalne forum serwera \n");
	menu.AddItem("for", "AceGo.pl \n");
	menu.AddItem("powrot", "Wróć");
	menu.ExitButton = false;
	menu.Display(client, MENU_TIME_FOREVER);
}

public Action Opis(int client)
{
	Menu menu = new Menu(MenuSr);
	menu.SetTitle(" Korzyści z posiadania VIP`a: \n- Dostep do wszystkich skinow \n- Wyrózniony kolor na say oraz prefix \n- Dodatkowe $$ za podłozenie/rozbrojenie paki \n- Dodatkowe $$ za podłozenie/rozbrojenie paki \n- Tag vip w tabeli \n- Pokazuje zadane obrazenia \n- Immunitet na ping \n- Kamizelka + Helm \n- Defuse Kit dla CT \n- Granaty He,Flash,Smoke,Molotov \n- Dodatkowe hp za kill/hs \n- Dodatkowe $$ w nowej rundzie \n- Dodatkowe $$ w nowej rundzie \n");
	menu.AddItem("powrot", "Wróć");
	menu.ExitButton = false;
	menu.Display(client, MENU_TIME_FOREVER);
}

public Action Kupno(int client)
{
	Menu menu = new Menu(MenuSr);
	menu.SetTitle("VIP'a można zakupić pod komendą !sklepsms oraz !sklepweb \n Koszt VIP'a SMS: 6.15zl \n Koszt VIP'a Przelew: 3.50zl \n");
	menu.AddItem("sms", "Kup przez smsa");
	menu.AddItem("web", "Kup przez psc,paypal \n");
	menu.AddItem("powrot", "Wróć");
	menu.ExitButton = false;
	menu.Display(client, MENU_TIME_FOREVER);
}

public int MenuSr(Handle handle, MenuAction action, int client, int pos)
{
	if(action == MenuAction_Select)
	{
		char item[32];
		GetMenuItem(handle, pos, item, sizeof(item));

		if(StrEqual(item, "Opis"))
		{
			Opis(client);
			PrintToChatAll("\x07 =============================================================", client);
			PrintToChatAll("★\x07 [VIP] \x04%N \x05właśnie czyta o tym, co posiada konto VIP! \n★ Więcej szczegołów pod komendą \x04!VIP", client);
			PrintToChatAll("\x07 =============================================================", client);
		}
		else if(StrEqual(item, "Kupno"))
		{
			Kupno(client);
			PrintToChatAll("\x07 =============================================================", client);
			PrintToChatAll("★\x07 [VIP] \x04%N \x05właśnie czyta jak zakupić konto VIP! \n★ Więcej szczegołów pod komendą \x04!VIP", client);
			PrintToChatAll("\x07 =============================================================", client);
		}
		else if(StrEqual(item, "Rek"))
		{
			Rek(client);
			PrintToChatAll("===============================================", client );
			PrintToChatAll("★\x07 [REKRUTACJA] \x04%N \x05Przegląda informacje o rekrutacji." ,client);
			PrintToChatAll("★\x07 [REKRUTACJA] \x05Więcej szczegołów pod komendą \x04!PODANIE" ,client);
			PrintToChatAll("===============================================", client);
			}
		else if(StrEqual(item, "Forum"))
		{
			PrintToChatAll("===============================================", client );
			PrintToChatAll("★\x07 [FORUM] \x04%N \x05Przegląda informacje o serwerze forum." ,client);
			PrintToChatAll("★\x07 [FORUM]  \x05Więcej szczegołów pod komendą \x04!FORUM" ,client );
			PrintToChatAll("===============================================" ,client);
		}
		else if(StrEqual(item, "for"))
		{
			FakeClientCommand(client, "say !forum");
			PrintToChat(client, "===============================================");
			PrintToChat(client, "★\x07 [FORUM] \x02Link został wysłany w prywatnej wiadomości steam");
			PrintToChat(client, "===============================================");
		}
		else if(StrEqual(item, "podanie"))
		{
			FakeClientCommand(client, "say !podanie");
			PrintToChat(client, "===============================================");
			PrintToChat(client, "★\x07 [REKRUTACJA] \x02Link został wysłany w prywatnej wiadomości steam");
			PrintToChat(client, "===============================================");
		}
		else if(StrEqual(item, "sms"))
		{
			FakeClientCommand(client, "say !sklepsms");
		}
		else if(StrEqual(item, "web"))
		{
			FakeClientCommand(client, "say !sklepweb");
			PrintToChat(client, "===============================================");
			PrintToChat(client, "★\x07 [SKLEP] \x02Link został wysłany w prywatnej wiadomości steam");
			PrintToChat(client, "===============================================");
		}
		else if(StrEqual(item, "powrot"))
		{
			MenuSrv(client, 0);
		}
	}
	else if(action == MenuAction_End) CloseHandle(handle);
}

 

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
PrintToChatAll("===============================================" ,client);

'client' nie ma się do czego odwołać

  • Lubię to! 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie kminie tego zrobiłem to od nowa na podstawie działającego menu rekrutacja i nadal te forum nie działa

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
PrintToChatAll("===============================================", client );
			PrintToChatAll("★\x07 [FORUM] \x04%N \x05Przegląda informacje o serwerze forum." ,client);
			PrintToChatAll("★\x07 [FORUM]  \x05Więcej szczegołów pod komendą \x04!FORUM" ,client );
			PrintToChatAll("===============================================" ,client);
		}

Zanim coś napiszesz przypatrz się dobrze na kod

 

sytuacja z 'client''em powtarza się w trzech miejscach

  • Lubię to! 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
7 minut temu, MAGNET napisał:

PrintToChatAll("===============================================", client );
			PrintToChatAll("★\x07 [FORUM] \x04%N \x05Przegląda informacje o serwerze forum." ,client);
			PrintToChatAll("★\x07 [FORUM]  \x05Więcej szczegołów pod komendą \x04!FORUM" ,client );
			PrintToChatAll("===============================================" ,client);
		}

Zanim coś napiszesz przypatrz się dobrze na kod

 

sytuacja z 'client''em powtarza się w trzech miejscach

Hmm, to poprawione ale bardziej mi chodzi o tą cześć , czemu jak z menu wybiore forum to nie pokazuje tego co jest pod tym

 

public Action MenuSrv(int client, int args)
{
	Menu menu = new Menu(MenuSr);
	menu.SetTitle("Menu serwera - OneFrag.pl \n");
	menu.AddItem("Rek", "*** REKRUTACJA ***");
	menu.AddItem("Zasady", "Regulamin");
	menu.AddItem("Forum", "Forum");
	menu.AddItem("Opis", "Opis Vipa");
	menu.AddItem("Kupno", "Jak kupić?");
	menu.ExitButton = true;
	menu.Display(client, MENU_TIME_FOREVER);
}


public Action Forum(int client)
{
	Menu menu = new Menu(MenuSr);
	menu.SetTitle("Oficjalne forum serwera \n");
	menu.AddItem("for", "AceGo.pl \n");
	menu.AddItem("powrot", "Wróć");
	menu.ExitButton = false;
	menu.Display(client, MENU_TIME_FOREVER);
}

 

Edytowano przez szogun

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

		else if(StrEqual(item, "Forum"))
		{
			PrintToChatAll("===============================================", client );
			PrintToChatAll("★\x07 [FORUM] \x04%N \x05Przegląda informacje o serwerze forum." ,client);
			PrintToChatAll("★\x07 [FORUM]  \x05Więcej szczegołów pod komendą \x04!FORUM" ,client );
			PrintToChatAll("===============================================" ,client);
		}

To drukuje tylko tekst, więc nie wywołuje żadnej funkcji, która miałaby otworzyć Forum(int client). Jeżeli chodzi o zasady(regulamin), to nawet tego nie ma w MenuSr(Handle handle, MenuAction action, int client, int pos).

Budowę kodu pozostawiam bez komentarza. 😉

  • Lubię to! 2

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
3 minuty temu, Avgariat napisał:


		else if(StrEqual(item, "Forum"))
		{
			PrintToChatAll("===============================================", client );
			PrintToChatAll("★\x07 [FORUM] \x04%N \x05Przegląda informacje o serwerze forum." ,client);
			PrintToChatAll("★\x07 [FORUM]  \x05Więcej szczegołów pod komendą \x04!FORUM" ,client );
			PrintToChatAll("===============================================" ,client);
		}

To drukuje tylko tekst, a jeżeli chodzi o zasady(regulamin), to nawet tego nie ma w MenuSr(Handle handle, MenuAction action, int client, int pos).

Budowę kodu pozostawiam bez komentarza. 😉

Zasady powinny się otworzyć jako menu tak samo jak i forum, tylko przy forum jest informacja na czacie w przeciwieństwie do zasad.

Czyli mamy główne menu, forum,zasady, opis vipa etc i po wyborze np. forum lub zasady powinno się otworzyć kolejne menu z opisem co się nie dzieje

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Widzę, że wskazówkami daleko nie zajdziemy, więc...


		else if(StrEqual(item, "Forum"))
		{
			Forum(client);
			PrintToChatAll("===============================================");
			PrintToChatAll("★\x07 [FORUM] \x04%N \x05Przegląda informacje o serwerze forum.", client);
			PrintToChatAll("★\x07 [FORUM]  \x05Więcej szczegołów pod komendą \x04!FORUM");
			PrintToChatAll("===============================================");
		}
		else if(StrEqual(item, "Zasady"))
		{
			Zasady(client);
			// whatever
		}

 

  • Lubię to! 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Nie chodzi mi o tekst na say.

Chodzi o samo menu, przy wejscu masz menu serwera z opcjami

1 Forum

2 Opis

3 BlaBla

Teraz po wyborze 1 powinno pojawić się menu gdzie będzie, które się nie otwiera tak jak w przypadku opisu gdzie jak wybierzesz opcje 2 otwiera się menu i ukazuje jakis opis

Tytuł - Oficjalne forum serwera nastepnie

Adres forum

Powrót do głównego menu

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy w ogóle próbowałeś zmienić kod na taki, który Ci podałem, czy tak sobie piszesz? ;v

 

Cały handler menu:

Spoiler

public int MenuSr(Handle handle, MenuAction action, int client, int pos)
{
	if(action == MenuAction_Select)
	{
		char item[32];
		GetMenuItem(handle, pos, item, sizeof(item));

		if(StrEqual(item, "Opis"))
		{
			Opis(client);
			PrintToChatAll("\x07 =============================================================");
			PrintToChatAll("★\x07 [VIP] \x04%N \x05właśnie czyta o tym, co posiada konto VIP! \n★ Więcej szczegołów pod komendą \x04!VIP", client);
			PrintToChatAll("\x07 =============================================================");
		}
		else if(StrEqual(item, "Kupno"))
		{
			Kupno(client);
			PrintToChatAll("\x07 =============================================================");
			PrintToChatAll("★\x07 [VIP] \x04%N \x05właśnie czyta jak zakupić konto VIP! \n★ Więcej szczegołów pod komendą \x04!VIP", client);
			PrintToChatAll("\x07 =============================================================");
		}
		else if(StrEqual(item, "Rek"))
		{
			Rek(client);
			PrintToChatAll("===============================================");
			PrintToChatAll("★\x07 [REKRUTACJA] \x04%N \x05Przegląda informacje o rekrutacji." ,client);
			PrintToChatAll("★\x07 [REKRUTACJA] \x05Więcej szczegołów pod komendą \x04!PODANIE");
			PrintToChatAll("===============================================");
		}
		else if(StrEqual(item, "Forum"))
		{
			Forum(client);
			PrintToChatAll("===============================================");
			PrintToChatAll("★\x07 [FORUM] \x04%N \x05Przegląda informacje o serwerze forum.", client);
			PrintToChatAll("★\x07 [FORUM]  \x05Więcej szczegołów pod komendą \x04!FORUM");
			PrintToChatAll("===============================================");
		}
		else if(StrEqual(item, "Zasady"))
		{
			Zasady(client);
			// whatever
		}
		else if(StrEqual(item, "for"))
		{
			FakeClientCommand(client, "say !forum");
			PrintToChat(client, "===============================================");
			PrintToChat(client, "★\x07 [FORUM] \x02Link został wysłany w prywatnej wiadomości steam");
			PrintToChat(client, "===============================================");
		}
		else if(StrEqual(item, "podanie"))
		{
			FakeClientCommand(client, "say !podanie");
			PrintToChat(client, "===============================================");
			PrintToChat(client, "★\x07 [REKRUTACJA] \x02Link został wysłany w prywatnej wiadomości steam");
			PrintToChat(client, "===============================================");
		}
		else if(StrEqual(item, "sms"))
		{
			FakeClientCommand(client, "say !sklepsms");
		}
		else if(StrEqual(item, "web"))
		{
			FakeClientCommand(client, "say !sklepweb");
			PrintToChat(client, "===============================================");
			PrintToChat(client, "★\x07 [SKLEP] \x02Link został wysłany w prywatnej wiadomości steam");
			PrintToChat(client, "===============================================");
		}
		else if(StrEqual(item, "powrot"))
		{
			MenuSrv(client, 0);
		}
	}
	else if(action == MenuAction_End) CloseHandle(handle);
}

 

 

  • Lubię to! 1

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak, juz działa jakis dziwny znak mi sie dodał. Tylko czemu teraz to podwojnie sie wysyla

 

	else if(StrEqual(item, "for"))
		{
			FakeClientCommand(client, "say !forum");
			PrintToChat(client, "===============================================");
			PrintToChat(client, "★\x07 [FORUM] \x02Link został wysłany w prywatnej wiadomości steam");
			PrintToChat(client, "===============================================");
		}

 

Edytowano przez szogun

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość
Temat jest zablokowany i nie można w nim pisać.
Zaloguj się, aby obserwować  

  • Kto przegląda   0 użytkowników

    Brak zalogowanych użytkowników przeglądających tę stronę.

×