Hosting and domain costs until October 2024 have been generously sponsored by dumptruck_ds. Thank you!
Editing Skybox Support
From Quake Wiki
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 12: | Line 12: | ||
A skybox is loaded using either the "loadsky" console command or directly from the BSP file (by specifying a skybox name in the worldspawn entry). | A skybox is loaded using either the "loadsky" console command or directly from the BSP file (by specifying a skybox name in the worldspawn entry). | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
===The "loadsky" Command=== | ===The "loadsky" Command=== | ||
Line 36: | Line 23: | ||
Assuming that all of the above is true then: | Assuming that all of the above is true then: | ||
− | In the "worldspawn" QuakeC function, that is usually defined in the "world.qc" file, issue the "loadsky" command of your favorite Quake client or engine that you use by using the "localcmd" C function, that is usually defined in the "defs.qc" file, without forgetting the line feed suffix "\n" | + | In the "worldspawn" QuakeC function, that is usually defined in the "world.qc" file, issue the "loadsky" command of your favorite Quake client or engine that you use by using the "localcmd" C function, that is usually defined in the "defs.qc" file, without forgetting the line feed suffix "\n" of course! |
localcmd is a C function of every Quake client and engine written in the C programming language and this function can be used in QuakeC without having to mess up with the C source code of your favorite Quake client/engine that you chose to use to play any Quake game. | localcmd is a C function of every Quake client and engine written in the C programming language and this function can be used in QuakeC without having to mess up with the C source code of your favorite Quake client/engine that you chose to use to play any Quake game. | ||
Line 46: | Line 33: | ||
stuffcmd is also usually defined in the "defs.qc" file like localcmd, it is also every Quake client and engine function written in the C programming language like localcmd and it is also can be used in QuakeC like localcmd. | stuffcmd is also usually defined in the "defs.qc" file like localcmd, it is also every Quake client and engine function written in the C programming language like localcmd and it is also can be used in QuakeC like localcmd. | ||
− | But both '''luckily''' and '''fortunately''' the "loadsky" command has nothing to do with the player entity that you are controlling in the game with both your keyboard and mouse and this means that the "loadsky" command can be automatically issued with the "localcmd" function and this is both an excellent and wonderful fact because the "localcmd" function is both much simpler and easier than the "stuffcmd" function since the "localcmd" function does not require a player entity as a | + | But both '''luckily''' and '''fortunately''' the "loadsky" command has nothing to do with the player entity that you are controlling in the game with both your keyboard and mouse and this means that the "loadsky" command can be automatically issued with the "localcmd" function and this is both an excellent and wonderful fact because the "localcmd" function is both much simpler and easier than the "stuffcmd" function since the "localcmd" function does not require a player entity as a parameter unlike stuffcmd which does require! |
− | '''For example''' if you want to always see a blue sky no matter what map, level, episode and skill you play then make sure that you have all the six images files of a blue skybox in the "id1/gfx/env" directory or folder or in a pak or pk3 file(s) and | + | '''For example''' if you want to always see a blue sky no matter what map, level, episode and skill you play then make sure that you have all the six images files of a blue skybox in the "id1/gfx/env" directory or folder or in a pak or pk3 file(s) and in the "worldspawn" function, that is usually defined in the "world.qc" file, somewhere just insert/inject the following line of code: |
localcmd("loadsky bluesky\n"); //I want to see a blue sky all the time | localcmd("loadsky bluesky\n"); //I want to see a blue sky all the time | ||
Line 60: | Line 47: | ||
else | else | ||
localcmd("loadsky bluesky\n"); //I love to see blue sky when I am killing monsters and finding secrets | localcmd("loadsky bluesky\n"); //I love to see blue sky when I am killing monsters and finding secrets | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Use the "skill" global variable instead of the "self.model" variable if you have at least 4 skies each for Easy, Normal, Hard and Nightmare skills. | Use the "skill" global variable instead of the "self.model" variable if you have at least 4 skies each for Easy, Normal, Hard and Nightmare skills. | ||
− | If you do have them then you may want in the "worldspawn" QuakeC function, usually defined in the | + | If you do have them then you may want in the "worldspawn" QuakeC function, usually defined in the world.qc file, somewhere insert/inject the following piece of code: |
if (skill == 0) localcmd("loadsky easy\n"); //Load the "easy" sky if I am playing the game on the "Easy" skill | if (skill == 0) localcmd("loadsky easy\n"); //Load the "easy" sky if I am playing the game on the "Easy" skill | ||
Line 78: | Line 57: | ||
else if (skill == 3) localcmd("loadsky nightmare\n"); //Load the "nightmare" sky if I am playing the game on the "Nightmare" skill | else if (skill == 3) localcmd("loadsky nightmare\n"); //Load the "nightmare" sky if I am playing the game on the "Nightmare" skill | ||
− | + | This is both an excellent and wonderful way to know what is the skill of the game that you are playing without having to manually bring down the console by pressing the tilde key on your keyboard and then type and enter the word "skill". | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | This is both an excellent and wonderful way to know what is the skill of the | ||
Just look up on the sky and the sky will tell you what is the skill of the game that you are playing! | Just look up on the sky and the sky will tell you what is the skill of the game that you are playing! | ||
Line 102: | Line 69: | ||
Nowadays this is very well known that all the QuakeC developers, coders and programmers use either FTEQCC or GMQCC to compile QuakeC code. | Nowadays this is very well known that all the QuakeC developers, coders and programmers use either FTEQCC or GMQCC to compile QuakeC code. | ||
− | But between the two mentioned QuakeC compilers | + | But between the two mentioned QuakeC compilers, FTEQCC is my favorite QuakeC compiler because it has a GUI version, and in addition to that FTEQCC is also both fast, lightweight and very easy to use exactly like Notepad and in addition to that I don't have to suffer from compiling C source code unlike GMQCC that does not have even a GUI version at all! |
Yes indeed I personally love all software that are both fast, lightweight and very easy to use! | Yes indeed I personally love all software that are both fast, lightweight and very easy to use! | ||
Line 108: | Line 75: | ||
But of course that you should choose the software that best fits your needs. | But of course that you should choose the software that best fits your needs. | ||
− | If you are using a QuakeC compiler that is a console application (that is using Command Prompt) then make sure that the executable file of the | + | If you are using a QuakeC compiler that is a console application (that is using Command Prompt) then make sure that the executable file of the QuakeC compiler is in the same directory or folder where all the source QuakeC files are before executing the compiler that should compiles your QuakeC code. |
If you are using the GUI version of FTEQCC, usually called "fteqccgui.exe" for 32 bit windows operating system or "fteqccgui64.exe" for 64 bit windows operating system, then you can place the executable file wherever you want but when launching the GUI version of FTEQCC you must find and open the "progs.src" file! | If you are using the GUI version of FTEQCC, usually called "fteqccgui.exe" for 32 bit windows operating system or "fteqccgui64.exe" for 64 bit windows operating system, then you can place the executable file wherever you want but when launching the GUI version of FTEQCC you must find and open the "progs.src" file! | ||
− | The "progs.src" file should be in the same directory or folder where all the QuakeC | + | The "progs.src" file should be in the same directory or folder where all the source QuakeC files are. |
The "progs.src" file must come with every QuakeC source code and every QuakeC source code must include a "progs.src" file because the "progs.src" file lists all the QC files that have to be compiled in the order which is obviously indeed both essential and vital information for all the QuakeC compilers which obviously must know what QC files to compile and in what order to compile them. | The "progs.src" file must come with every QuakeC source code and every QuakeC source code must include a "progs.src" file because the "progs.src" file lists all the QC files that have to be compiled in the order which is obviously indeed both essential and vital information for all the QuakeC compilers which obviously must know what QC files to compile and in what order to compile them. | ||
Line 118: | Line 85: | ||
If you have successfully compiled your QuakeC source code with the help of your favorite QuakeC compiler, that you chose to use, then your favorite QuakeC compiler, that you chose to use, should have created a "progs.dat" file, Usually '''outside''' of the directory or folder where all the QuakeC source code files, that you have compiled with the help of your favorite QuakeC compiler, are. | If you have successfully compiled your QuakeC source code with the help of your favorite QuakeC compiler, that you chose to use, then your favorite QuakeC compiler, that you chose to use, should have created a "progs.dat" file, Usually '''outside''' of the directory or folder where all the QuakeC source code files, that you have compiled with the help of your favorite QuakeC compiler, are. | ||
− | Make sure that this "progs.dat" file is inside the "id1" directory/folder where all the pak and pk3 files of the | + | Make sure that this "progs.dat" file is inside the "id1" directory/folder where all the pak and pk3 files of the game should be unless your favorite Quake client/engine executes with a "-game" command argument. |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | This mustn't be "id1" if you execute your favorite Quake client/engine with the "-game" command argument but it should be X instead if the "-game X" command argument specified before starting the Quake client/engine where X can be any word or name of a game that you want to play. | |
− | + | If everything was done both right and correctly from start to end and the "progs.dat" file, that was created by your favorite QuakeC compiler, is really inside the right or correct directory or folder then you can play the game with all your favorite skies and they will be loaded '''automatically''' as you want! And this means that you don't have to manually issue the "loadsky" command anymore every time you either start a new map, level or episode which is indeed much more both convenient and better quality of life! | |
===Unloading a Skybox=== | ===Unloading a Skybox=== |