Właściciel Pawel Opublikowano 13 Stycznia 2019 Właściciel Udostępnij Opublikowano 13 Stycznia 2019 Witam wszystkich udostępniam tutaj poradnik ze starego forum W ostatnim czasie przybyło nam kilku opiekunów dlatego uznałem ,że może im się przydać umiejętność napisania jakiegoś menu. Z doświadczenia wiem ,że będą oni nie jednokrotnie z tego korzystać, więc zaczynajmy. Na początku musimy dodać includy. Domyślnie w programie SPEdit przy tworzeniu nowego skryptu mamy 2 includy. #include <sourcemod> #include <sdktools> Nie ma sensu usuwać żadnego include jeśli nie będziemy go używać, ponieważ tak czy tak biblioteka się nie załączy i nie będzie żadnych errorów. Po includach dodajemy: #pragma semicolon 1 #pragma newdecls required Dzięki tym dwóm linijkom będziemy pamiętać o nowej składni . Jeżeli chcemy możemy również dodać info o autorze pluginu czyli po prostu o sobie. public Plugin myinfo = { name = "Nazwa Pluginu", author = "Autor", description = "Opis Pluginu", version = "Wersja Pluginu", url = "Link do np. swojego profilu steam lub strony." }; Po w miarę krótkim wstępie przechodzimy do startu pluginu. W tym celu do: public void OnPluginStart() { } dodajemy: RegConsoleCmd("sm_tutorial", Tutorial_CMD); W tym momencie zarejestrowaliśmy swoją komendę oraz jej callback. Callback posłuży nam do wywołania akcji podczas wpisania komendy. Następnym krokiem będzie bezpośrednie zbudowanie menu. W tym celu rozpoczynamy nową akcję z naszym callbackiem. public Action Tutorial_CMD(int client, int args) { } Po rozpoczęciu akcji tworzymy menu: Menu yMenu = new Menu(yMenu_Handler); Ja moje menu nazwałem "yMenu" wy możecie wprowadzić tam własną nazwę. Dodatkowo w miejscu gdzie jest "yMenu_Handler" możecie zrobić to samo. Teraz należy ustawić jakiś tytuł menu. Robimy to poprzez wpisanie. yMenu.SetTitle("Proste Menu"); Gdy już to zrobimy możemy dodać różne opcje wyboru np. jaki jest link do grupy steam oraz kto jest właścicielem serwera. (Sorry ale nie mam żadnego pomysłu.) yMenu.AddItem("1", "Grupa Steam"); yMenu.AddItem("2", "Administracja"); Nasze menu automatycznie będzie miało przycisk zamknięcia pod "9". Jednak jeżeli chcemy aby był on pod następną opcją ( w tym przypadku pod 3, ponieważ nasza ostatnia opcja to 2) dodajemy do kodu: yMenu.AddItem("no", "Zamknij"); yMenu.ExitButton = false; Możemy również ustalić przez jaki czas nasze menu będzie się wyświetlać w moim przypadku będzie to 30 sekund, więc do kodu dodaję: yMenu.Display(client, 30); Następnie odowłujemy się do naszego handlera. public int yMenu_Handler(Menu menu, MenuAction action, int client, int Position) { } Do tego dodajemy: if(action == MenuAction_Select) { char Item[32]; GetMenuItem(menu, Position, Item, sizeof(Item)); if(StrEqual(Item, "1")) { PrintToChat(client, "Link do grupy steam: https://steamcommunity.com/groups/ArenaSkilla_pl } else if(StrEqual(Item, "2")) { PrintToChat(client, "Wypisana administracja"); } } else if(action == MenuAction_End) CloseHandle(menu); Krótkie wyjaśnienie jeżeli wybierzemy opcję numer 1 na chacie wyświetli nam się link do grupy steam. Do tego użyliśmy funkcji StrEqual. Jednak jeżeli wybierzemy zamiast opcji numer 1 opcję numer 2 na chacie wyświeli nam się administracja serwera. Dlatego do: if(StrEqual(Item, "2")) dodaliśmy słowo "else". Funkcja "PrintToChat" jak można się domyślić służy do napisania tekstu na chacie. Cały kod powinien wyglądać tak: #include <sourcemod> #include <sdktools> #pragma newdecls required #pragma semicolon 1 public Plugin myinfo = { name = "Proste Menu", author = "Yamakashi", description = "Proste Menu", version = "1.0", url = "http://forum.arenaskilla.pl/" }; public void OnPluginStart() { RegConsoleCmd("sm_tutorial", Tutorial_CMD); } public Action Tutorial_CMD(int client, int args) { Menu yMenu = new Menu(yMenu_Handler); yMenu.SetTitle("Proste Menu"); yMenu.AddItem("1", "Grupa Steam"); yMenu.AddItem("2", "Administracja"); yMenu.AddItem("no", "Zamknij"); yMenu.ExitButton = false; yMenu.Display(client, 30); } public int yMenu_Handler(Menu menu, MenuAction action, int client, int Position) { if(action == MenuAction_Select) { char Item[32]; GetMenuItem(menu, Position, Item, sizeof(Item)); if(StrEqual(Item, "1")) { PrintToChat(client, "Link do grupy steam: https://steamcommunity.com/groups/ArenaSkilla_pl"); } else if(StrEqual(Item, "2")) { PrintToChat(client, "Wypisana administracja"); } } else if(action == MenuAction_End) CloseHandle(menu); } Dorzucam plik do pobrania poradnik.sp 1 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
vic Opublikowano 13 Stycznia 2019 Udostępnij Opublikowano 13 Stycznia 2019 Stare forum [*] Nadal fajny poradnik. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
F4n4tyK. Opublikowano 13 Stycznia 2019 Udostępnij Opublikowano 13 Stycznia 2019 Poradnik na plus Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dank Opublikowano 13 Stycznia 2019 Udostępnij Opublikowano 13 Stycznia 2019 Dobry poradnik Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
easyy Opublikowano 13 Stycznia 2019 Udostępnij Opublikowano 13 Stycznia 2019 Postarałeś się Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Gawron Opublikowano 13 Stycznia 2019 Udostępnij Opublikowano 13 Stycznia 2019 Najs Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
protohype Opublikowano 13 Stycznia 2019 Udostępnij Opublikowano 13 Stycznia 2019 Dobry poradnik! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TiFu Opublikowano 13 Stycznia 2019 Udostępnij Opublikowano 13 Stycznia 2019 Dobry poradnik Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
NTM Opublikowano 13 Stycznia 2019 Udostępnij Opublikowano 13 Stycznia 2019 Jeden z lepszych poradników jak był! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Deriv Opublikowano 13 Stycznia 2019 Udostępnij Opublikowano 13 Stycznia 2019 Dobry poradnik Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rum1n Opublikowano 13 Stycznia 2019 Udostępnij Opublikowano 13 Stycznia 2019 Dobry poradnik! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administrator Wyróżniony komentarz Tomgra Opublikowano 28 Marca 2023 Administrator Wyróżniony komentarz Udostępnij Opublikowano 28 Marca 2023 Istnieje bezpłatne narzędzie, które bez znajomości SourcePawna pozwala tworzyć zarówno te prostsze, jak i te bardziej skomplikowane menu. https://alextheregent.github.io/#/ Spoiler Wiem, że temat i że za pół roku zupełnie się zdezaktualizuje, ale może przez ten czas komuś ułatwi życie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Opublikowane przez Tomgra,
0 reakcji
Pokaż odpowiedź