Jak zrobić własne GameMenu CS 1.6

Poradnik opisuje tworzenie własnego GameMenu w Counter-Strike 1.6. Wbrew pozorom nie jest to takie trudne. Przykładowe GameMenu: 2012-08-08_00002 Na początek znajdujemy plik który odpowiada za wygląd GameMenu Steam:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<ŚCIEŻKA DO FOLDERU STEAM>\Steam\steamapps\common\Half-life\cstrike\resource
<ŚCIEŻKA DO FOLDERU STEAM>\Steam\steamapps\common\Half-life\cstrike\resource
<ŚCIEŻKA DO FOLDERU STEAM>\Steam\steamapps\common\Half-life\cstrike\resource
Non Steam:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<ŚCIEŻKA DO FOLDERU CS>\cstrike\resource
<ŚCIEŻKA DO FOLDERU CS>\cstrike\resource
<ŚCIEŻKA DO FOLDERU CS>\cstrike\resource
Szukamy pliku GameMenu.res lub samo GameMenu jeśli mamy wyłączone pokazywanie rozszerzeń. Klikamy na plik prawym przyciskiem myszy , odznaczamy opcje „Tylko do Odczytu” klikamy zastosuj i zamykamy okno właściwości. Otwieramy go edytorem tekstowym np. Notepad++. Przykładowy wygląd takiego pliku
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
"GameMenu"
{
"1"
{
"label" "#GameUI_GameMenu_ResumeGame"
"command" "ResumeGame"
"OnlyInGame" "1"
}
"2"
{
"label" "#GameUI_GameMenu_Disconnect"
"command" "Disconnect"
"OnlyInGame" "1"
"notsingle" "1"
}
"4"
{
"label" "#GameUI_GameMenu_PlayerList"
"command" "OpenPlayerListDialog"
"OnlyInGame" "1"
"notsingle" "1"
}
"8"
{
"label" ""
"command" ""
"OnlyInGame" "1"
}
"9"
{
"label" "#GameUI_GameMenu_NewGame"
"command" "OpenCreateMultiplayerGameDialog"
}
"10"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
}
"11"
{
"label" "#GameUI_GameMenu_Options"
"command" "OpenOptionsDialog"
}
"12"
{
"label" "#GameUI_GameMenu_Quit"
"command" "Quit"
}
}
"GameMenu" { "1" { "label" "#GameUI_GameMenu_ResumeGame" "command" "ResumeGame" "OnlyInGame" "1" } "2" { "label" "#GameUI_GameMenu_Disconnect" "command" "Disconnect" "OnlyInGame" "1" "notsingle" "1" } "4" { "label" "#GameUI_GameMenu_PlayerList" "command" "OpenPlayerListDialog" "OnlyInGame" "1" "notsingle" "1" } "8" { "label" "" "command" "" "OnlyInGame" "1" } "9" { "label" "#GameUI_GameMenu_NewGame" "command" "OpenCreateMultiplayerGameDialog" } "10" { "label" "#GameUI_GameMenu_FindServers" "command" "OpenServerBrowser" } "11" { "label" "#GameUI_GameMenu_Options" "command" "OpenOptionsDialog" } "12" { "label" "#GameUI_GameMenu_Quit" "command" "Quit" } }
"GameMenu"
{
"1"
{
"label" "#GameUI_GameMenu_ResumeGame"
"command" "ResumeGame"
"OnlyInGame" "1"
}
"2"
{
"label" "#GameUI_GameMenu_Disconnect"
"command" "Disconnect"
"OnlyInGame" "1"
"notsingle" "1"
}
"4"
{
"label" "#GameUI_GameMenu_PlayerList"
"command" "OpenPlayerListDialog"
"OnlyInGame" "1"
"notsingle" "1"
}
"8"
{
"label" ""
"command" ""
"OnlyInGame" "1"
}
"9"
{
"label" "#GameUI_GameMenu_NewGame"
"command" "OpenCreateMultiplayerGameDialog"
}
"10"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
}
"11"
{
"label" "#GameUI_GameMenu_Options"
"command" "OpenOptionsDialog"
}
"12"
{
"label" "#GameUI_GameMenu_Quit"
"command" "Quit"
}
}
Teraz dodajemy do menu nowy wpis.
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
"99"
{
"label" "<tytuŁ>"
"command" "engine connect <ip serwera="">"
}</ip></tytuŁ>
"99" { "label" "<tytuŁ>" "command" "engine connect <ip serwera="">" }</ip></tytuŁ>
 "99"
{
"label" ""
"command" "engine connect "
}
Powinno to wyglądać w ten sposób
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
"GameMenu"
{
"1"
{
"label" "DarkGL Test Server"
"command" "engine connect 144.76.110.231:27015"
}
"2"
{
"label" ""
"command" ""
}
"3"
{
"label" "#GameUI_GameMenu_ResumeGame"
"command" "ResumeGame"
"OnlyInGame" "1"
}
"4"
{
"label" "#GameUI_GameMenu_Disconnect"
"command" "Disconnect"
"OnlyInGame" "1"
"notsingle" "1"
}
"5"
{
"label" "#GameUI_GameMenu_PlayerList"
"command" "OpenPlayerListDialog"
"OnlyInGame" "1"
"notsingle" "1"
}
"6"
{
"label" ""
"command" ""
"OnlyInGame" "1"
}
"7"
{
"label" "#GameUI_GameMenu_NewGame"
"command" "OpenCreateMultiplayerGameDialog"
}
"8"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
}
"9"
{
"label" "#GameUI_GameMenu_Options"
"command" "OpenOptionsDialog"
}
"10"
{
"label" "#GameUI_GameMenu_Quit"
"command" "Quit"
}
}
"GameMenu" { "1" { "label" "DarkGL Test Server" "command" "engine connect 144.76.110.231:27015" } "2" { "label" "" "command" "" } "3" { "label" "#GameUI_GameMenu_ResumeGame" "command" "ResumeGame" "OnlyInGame" "1" } "4" { "label" "#GameUI_GameMenu_Disconnect" "command" "Disconnect" "OnlyInGame" "1" "notsingle" "1" } "5" { "label" "#GameUI_GameMenu_PlayerList" "command" "OpenPlayerListDialog" "OnlyInGame" "1" "notsingle" "1" } "6" { "label" "" "command" "" "OnlyInGame" "1" } "7" { "label" "#GameUI_GameMenu_NewGame" "command" "OpenCreateMultiplayerGameDialog" } "8" { "label" "#GameUI_GameMenu_FindServers" "command" "OpenServerBrowser" } "9" { "label" "#GameUI_GameMenu_Options" "command" "OpenOptionsDialog" } "10" { "label" "#GameUI_GameMenu_Quit" "command" "Quit" } }
"GameMenu"
{
"1"
{
"label" "DarkGL Test Server"
"command" "engine connect 144.76.110.231:27015"
}
"2"
{
"label" ""
"command" ""
}
"3"
{
"label" "#GameUI_GameMenu_ResumeGame"
"command" "ResumeGame"
"OnlyInGame" "1"
}
"4"
{
"label" "#GameUI_GameMenu_Disconnect"
"command" "Disconnect"
"OnlyInGame" "1"
"notsingle" "1"
}
"5"
{
"label" "#GameUI_GameMenu_PlayerList"
"command" "OpenPlayerListDialog"
"OnlyInGame" "1"
"notsingle" "1"
}
"6"
{
"label" ""
"command" ""
"OnlyInGame" "1"
}
"7"
{
"label" "#GameUI_GameMenu_NewGame"
"command" "OpenCreateMultiplayerGameDialog"
}
"8"
{
"label" "#GameUI_GameMenu_FindServers"
"command" "OpenServerBrowser"
}
"9"
{
"label" "#GameUI_GameMenu_Options"
"command" "OpenOptionsDialog"
}
"10"
{
"label" "#GameUI_GameMenu_Quit"
"command" "Quit"
}
}
Pamiętajmy o tym aby nie powtarzać liczb w kolejnych wpisach pomiędzy cudzysłowami np. „12”. To wszystko zapisujemy plik i przywracamy właściwość tylko do odczytu którą przed chwilą usuneliśmy. Dzięki temu nasz plik nie zostanie nadpisany a my nie stracimy naszej pracy. Jeszcze krótki opis parametrów których możemy używać
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
"99" //Numer w menu odpowiadając za kolejność
{
"label" "" //Nazwa pokazywana w menu
"command" "" //Tutaj podajemy komendę do wykonania po kliknięciu w napis
"OnlyInGame" "1" // Ustawia że menu pokazuje się tylko wtedy kiedy jesteśmy w trakcie gry tzn. na serwerze
"notsingle" "1" // Podobnie jak wyżej
}
"99" //Numer w menu odpowiadając za kolejność { "label" "" //Nazwa pokazywana w menu "command" "" //Tutaj podajemy komendę do wykonania po kliknięciu w napis "OnlyInGame" "1" // Ustawia że menu pokazuje się tylko wtedy kiedy jesteśmy w trakcie gry tzn. na serwerze "notsingle" "1" // Podobnie jak wyżej }
"99" //Numer w menu odpowiadając za kolejność
{
"label" "" //Nazwa pokazywana w menu
"command" "" //Tutaj podajemy komendę do wykonania po kliknięciu w napis
"OnlyInGame" "1" // Ustawia że menu pokazuje się tylko wtedy kiedy jesteśmy w trakcie gry tzn. na serwerze
"notsingle" "1" // Podobnie jak wyżej
}

6 komentarzy o “Jak zrobić własne GameMenu CS 1.6

  1. Można dać komenda taką, by wchodzić na jakiś serwer i wczytywało wybrany cfg?
    Przykładowo: „engine connect xxx.xx.xxx.xxx:xxxxx; engine exec nazwa.cfg” nie działa.

    1. Musiałbyś wywalić ich pliki tracker.dll, ponieważ on cały czas pobiera Ci GameMenu.res na nowo

Dodaj komentarz

This site uses Akismet to reduce spam. Learn how your comment data is processed.