Hammer Editor v.2 (Half-Life 2)
In this topic, ask questions and get answers on the Hammer Editor, the map editor for Source games.The previous version of the theme.
The question is a little not in the editor, but still. I created an animated normal map, tobish compiled several textures into one. Could you tell me what parameters it is necessary to register in the vmf to the animation of the textures worked. Tried to copy from another animated texture, it turned out that the bump map just moves in a certain direction, and the animation is not.
it turned out that the bump map just moves in a certain direction, and the animation does not go
it became like a conveyor tape? I assume you're with the slaym textures copied, or energy fields of harvesters, see TDC water
Yes, that's exactly what a water and copied, but not working. Well, God bless that, now faced with a new problem. Want to pack all the resources in the map with paketom. For some reason he doesn't put in the texture map models, all purple. Although third-party world texture added. Tell what you can do here. Manually add is not an option, too many files(
Animation bump for some reason does not work for me when I was trying to do. Or worked through time... basically, there proxy should be like:
TextureScroll
{
texturescrollvar $bumptransform
texturescrollrate 0.005
texturescrollangle -90
texturescale 1.0
}
That in bold, you can substitute the appropriate values — for example, basetexture[transform] will give a shift of the main texture, and the like.
upd
With water I would copy and did not, because there are other Shader.
Here I have an example of animated material, work offset bump textures:
Spoiler
WorldVertexTransition
{
$baseTexture interval_hyper/hyper_breedertexture003
$baseTexture2 interval_hyper/hyper_breedertexture001
%tooltexture interval_hyper/hyper_breedertexture003
$bumpmap interval_hyper/hyper_breedertexture001_ssbump
$bumpmap2 interval_hyper/hyper_breedertexture001_ssbump
$ssbump 1
$envmap env_cubemap
$normalmapalphaenvmapmask 1
$envmapcontrast 1
$envmapsaturation 1
$envmaptint [.5 .5 .7]
$surfaceprop fleshspecial
$texoffset [0 0]
$texscale 1
Proxies
{
//TextureScroll
//{
// Texturescrollvar $basetexturetransform
// Texturescrollrate 0.002
// Texturescrollangle $scrollAng
//}
TextureScroll
{
texturescrollvar $bumptransform
texturescrollrate 0.05
texturescrollangle -90
texturescale 1.0
}
}
}
A blend-texture, double, for displacment. But the point needs to run on regular.
Someone tell me how to make so that when you press the same button twice was turning on and off of the object? Let's say I want to do-run button fan, I know how to make to the press he was involved, and how to make so that when pressed again it is off?
not all objects have input toggle, sometimes only turn of and only turn it
but the button has a flag toggle, if you turn it on when you first click the button will be pressed, and when you re wrung out, and make the appropriate output appropriate action
People, everyone's troubles with the editor? After crossing half on the Packed vpk editor quite strayed from the hands. Me in amconfig the path to the new folder but still does not help. Searched for the solution online, I suggest dancing with a tambourine and not 100 guarantee. Somebody knows how to fix this or just wait for a miracle remains?
I proposed to make from the folder akuanta all concerning Corsica (two-three folders uguali), and try to run it to zero, to update the extracted files
//removed do not delete - there are all your Navy, etc., then you can carefully transfer your if you help
[I understand that beech is not that much, and VERY MUCH in principle you can download the updated beta+ already included in it face-up and try to understand the syntax of the makefile yourself, or simply juzat ready, only path change; about whether or not touch make at all, you will be able to understand the findings, and if that is not enough, see screenshots]
Damn Pagac doesn't want to fill the 11.4-meter beta+ even in the gallery =( Again, limit to 10 lowered, galleries?.. You have to fill in parts:
http://i.playground.ru/i/94/88/98/00/pix/image.jpg
http://i.playground.ru/i/84/88/98/00/pix/image.jpg
It's not just pictures, and 7z.png just save them as .7z file and open 7-zip'om WinRAR or'om, extract the contents of the pictures^W archives in one folder and run the batch file — it needs to do it all.
I guess it's better to hide under spoilersi you are tired of compelete card butikami, and GUI-shnye Batch Compiler's not TRU, or just not satisfied with the functionality, can offer an alternative tool called make. This is a standard GNU utility, which is in any POSIX-compliant system (Linux, Unix). For Windows it is in the composition and Cygwin ports of the GNU utilities, e.g., GnuWin32. Not to download the whole package, here you have only exe-shnik make'a with the two required libraries. Additionally, your make is composed in Borland C++ Builder'a, and the like even in Visual Studio (where he is called nmake, but now it is no longer used).
Scripts to make'a called makefile's. Indeed, the main task of the make for which it was created — it is just make files. And, no matter what files, and how to do it. And although usually Makefile used to compile C/C++ programs, we can accommodate them and to compile maps.
Typical MacPhail consists of several parts, which I will call as: directives, variables, scripts, goals and team. This conditional name, I use them for convenience and to help you understand, decipher what was meant.
The most important are goal. In addition to them, in principle, can be nothing else to write. Objectives have the following syntax:
result : the source
any action
as a result of which
from the source we get a result
To make it clearer, here is an example:
hello.exe: hello.c
gcc hello.c-o hello.exe
hello.exe — what you need to;
hello.c — what you need to (there may be multiple files, for example, if our hello.c connects hello.h, you can specify it in the delimiter used is a space; it should be noted that instead of hello.exe can be specified multiple files, too, through space);
gcc hello.c-o hello.exe — the team that converts hello.c hello.exe.
Note the indentation before the last line for the post, I made it unbreakable spaces, but in the file it should be a tab, and always, without it will not work (and instead to put a tab in front of goal can not in any way, otherwise make will think that this is a team that needs to pass shell, i.e., cmd.exe in the case of Windows). If you want, you can replace a tab with something else, but first, I don't see the point, and secondly, I did not understand how all this is done.
In the rest of the code it is working, if you have Cygwin, you can create in any folder a file hello.c, makefile (that is, without an extension, though often the name is appended with -1, -2 or .mk .make, and basically, the name can be anything, you just need to additionally specify the-f filename) with this code, run Cygwin, go to folder and type the command make (or make-f filename if it's custom). The result of the command:
Although specifically in this case to make use a little too bold, then too soon drive gcc hello.c. However, except for the purposes of MacPhail may have any acceptable number of different commands and combinations of them. Standard are commands install, uninstall and clean, which are used for setup and cleanup of the project. For the above example, we can write them as follows:
install:
cp hello.exe /cygdrive/c/Program Files/
uninstall:
rm-f /cygdrive/c/Program Files/hello.exe
clean:
rm-f hello.exe
For a typical vinduzyatniki these teams look creepy, isn't it? :D actually, the install command only copies the file to the desired folder using standard utilities cp, and clean and uninstall, it is removed. Unfortunately, under ciguena we can't use standard commands windowas the command line, if we write instead of the last del /Q /F hello.exe, make will issue an error. But to compile the BSP, we won't use Cygwin'ovsky make, as the typical mapper do not need a Linux in my pocket, enough of the standalone edition version of that I pulled from GnuWin32. But it allows to use the native commandline.
But before we turn to him, first let's deal with the syntax of the make'a. At first glance it seems that the teams slightly, but differ from the targets, an example of which is given even higher, but in fact, the team has the same goals, only simplified. The difference is that the teams do not have real result. Executing make install will not have the install file. Respectively, and indicate that he turns is not necessary, so that after the colon, we immediately put the paragraph.
However, make it stupid^W^W file-oriented utility (as indeed the vast majority of other onikovich utilities, and the Linux and UNIX can be called), and every time he will check the existence of files install, clean, uninstall. To avoid this, we use the Directive .PHONY. It should be noted in the beginning of the file, and after the colon, list all non-file command. For our case it will look like this:
.PHONY: install uninstall clean
Although, if you do not specify, nothing bad will happen, everything will work. However, the risk is not worth it, who knows what effects will entail the presence of files with names coinciding with the names of the teams.
We have to figure out how to run these commands. There is nothing complicated, just now instead of make you need to write make install, make uninstall or make clean. Another example from Cygwin:
playground.ru/images/9/3/hello_2.png>
If to enter simply make will execute the command specified in Makefile first. That is, if the first goal hello.exe then a simple call to make will start compilation of the code. The best opportunity to make'a that we can accomplish several goals or commands, for example, we can type make install clean, they will run sequentially. However, preferred not to enter the sequence manually (it can be long), and to use what I call scripts. In fact, similarly to the commands, the scripts are the same purpose, only more trimmed. By themselves, the scripts do nothing, and just asking a series of commands and/or objectives that need to be done. Suppose we want to compile, install and clean the project in one action. Let this script called auto. It will look like this:
auto: hello.exe install clean
If we point this script at the beginning of the file (after .PHONY), by simply running make from the command line (or run make.exe double-clicking from Windows Explorer, if you put it in the same folder as the makefile) will compile, install and clean the project. You can even add auto-run compiled programs full of happiness. Example:
The last thing left to consider variables. I guess to explain what it is, too. They are declared as simple, if not primitive:
NAME = VALUE
Even easier than in bernikah. In this case, you can surround the = with spaces, it does not break operation of the make. But to declare a variable is half the battle, the most difficult to use it. To substitute the value stored in a variable, you need to use $(NAME) or ${NAME} (the latter is the form generally used in shell scripts, but, oddly enough, in macpelah works too). However, typically, you use the first form, the second is not even highlighted in Notepad2 and Notepad++. However, they backlight Mikhailov in General is lame, because I had the best showed himself to the Sublime (eg. diagram of Cobalt), and there are not highlighted variables.
Variables will help us to make MacPhail more versatile and easier to edit. Even in our simplest example, for example, what if, instead of hello.exe we want to compile something else? Will have to replace hello with %something else% throughout the document. Although you can use Ctrl+H in Notepad, it is a bad and uncomfortable way, all the inconvenience which you will test when MacPhail will grow and there will be dozens of variable parameters. Therefore, it is better to declare a variable, for example, NAME, and assign it the value hello, and in the future some more. Also, you should alter the path variable of the installation. You can go ahead and even turn into a variable the name of the compiler (in case we decide to utilize some other) or even an rm-f on del /Q /F (sorry, it is not so simple, but more on that later), but in this example I will limit myself to the first two. The final example will look something like this:
(due to imperfections in the backlight I barely finished manually).
Please note: even is the goal hello.exe now is $(NAME).exe. Variables can be used anywhere.
Well, it was all a long introduction before the main action: the automation of the compilation maps. Not going to write a long introductory words, if you've read and understood, then disassemble and understand the following MacPhail you will not be difficult:
(the picture attached archive meiktila, just save and open it in 7-zip or WinRAR, or copy it at this link)
Although without explanation, of course, can not do. First, this makfil to compile maps beta, with the option of conversion under the release. Secondly, if you run make without parameters, it will not do anything useful, just displays the help listing of useful commands:
The help command is at the bottom and consists of strange at first glance, the lines:
make full
At first I used the usual echo, but the make'a has a particularity: it always displays what it does, i.e., it will output the string echo make full, and then he will take echo make full. The result is a mess of duplicate rows. The easiest way out: instead of echo to pass a string to some other program or command that will not display anything. In cmd you can just use the colon — he treats it as a label. You can also use the comment character :: or rem command, but the latter leaves behind a paragraph, and the very rem not going anywhere. And dvoetazna looks like a marking of the list.
Other macros will leave for later, first let us examine the commands:
– set sets the environment variable, without which the compilation will not proceed normally. Unfortunately, the utility setx may be missing in your Windows, but simple set, alas, is not enough. To compelete it will be, but the models won't see. So the best option is still to set the VProject manually. In both cases, the set command need to throw out of meiktila;
– what is full_compile and fast_compile to explain too (although they differ only in the parameter -fast from vis'a, and someone has to do only with fast'th and compiled, so no sense in two configurations a little);
– convert converts bsp bsp v18 to v19 for the release of half;
game simply launches the game to test vietnamienne map;
– install copies the map from the bin folder (where should lie this makefile with the make utility) in the folder hl2/maps;
the other three removed files. The question immediately arises, why use the design if exist $(FILE) del $(FILE) instead of just del $(FILE)? The fact is that make stops automatically as soon as an error occurs. This is the main difference the make'a batch'a: if we just call the batch file vbsp, vvis, vrad, and if during compilation an error occurs (for example, the source is banal does not exist), vis and rad will still work, and if there are any actions (cleaning, copying, running game), then they will be run. Eg. if on the map there is a leak, vrad will still consider lighting, despite the fact that vvis not really worked. And the result is copied into the game (perhaps replacing the normal map, tampilannya earlier). With make'om such a scenario does not happen, it will stop immediately after vvis will fail out with an error.
Unfortunately, it is not only a plus but also a minus the make'a. However, the problem is not so much in it, as in the command line the Windows. The fact that the del command will produce an error (i.e. exit code 0 if all OK, other value — error), if you can't find the file which need to remove And since this MacPhail removes the compile log before starting the compilation, then at the first attempt running a make full matter to it never comes. And the /Q /F does not help (at that time, as the rm has a-f option which causes the utility to remain silent). However, I found a roundabout solution: to check for the file before deleting it (which, in principle, in any case you should do, I use it in batisah). And it worked.
Perhaps now the scripts at the top there is no need to describe, it's just the execution sequence of the previous commands.
What do you say, useful makefile comfortable?
In fact, nothing from him a little, because it does not use the main feature of make. Look carefully at the makefile again and compare it with the first example. What is the difference between them? That new makfile no real purpose commands and scripts. We don't specify the make he needs to, and of which he knows nothing about it. Why is it so important? The essence of make, its main feature is that it monitors the build process and does only those steps that are required. Returning to the example of hello.exe if the folder is already present ready exe-shnik will not make it again to percepisce. However, if we change hello.c (quite a bit, or just re-register or refresh the date changes uniksboy utility touch), the compilation will start. I don't know exactly how it works but as I understand it, just make compares the date of creation/modification. If product date modified earlier than the source you need to precompiling, otherwise, make will not do it.
It is very convenient, especially on complex projects consisting of many files. If part of them is already in finished form, the make will just skip compiling them and process only the changed files. The important thing to remember for this to work — not to do automatic cleanup, as was done in the examples above. If the make will not find the intermediate file, it will start the process of its creation, and since the date of the new intermediate file and destination will differ, the end will also be canceled. Therefore, to this worked example, hello, there you need to clean the clean command from the script to auto (leaving only compilation and installation).
We can go further and improve the example hello.exe even more. Suppose that we have forgotten that our programm is already installed, and run make again. What happens in this case? You could assume that once the make is so smart, he realized that hello.exe not changed, and therefore nothing will happen. But it's not. Make stupid. Compilation hello.exe it will not start, but copying will still happen. The problem is that the make necessary to specify that what turns out, or he just does not see the connection, do not check these files, and will blindly follow a prescribed. The install command does not make any information with which he could operate. But it's easy to fix. You just need to turn this team into a goal. For this, instead of install: we have to write product: source. Despite the fact that copying, it would seem, has nothing to do with compiling (although the words are suddenly like), it also takes as input a source (copy the file) and outputs the result (copied file). It remains only to record, but here too there are no complications, the benefit we use variables. The copied file (the result) will look like this: $(INSTALL)/$(NAME).exe, and the source just $(NAME).exe (because our MacPhail is in the same folder as the compiled hello.exe). Thus, the installation code will look like this:
$(INSTALL)/$(NAME).exe $(NAME).exe
cp $(NAME).exe $(INSTALL)
Unfortunately, if we want to only run the installation, it will be difficult, because it will be necessary to remember the installation path, and file name, the resulting string will look like this: make /cygrdive/c/Program File/hello.exe (note that it is written as is, with spaces if you put quotes here or in Makefile will be mistakes, will not work). Merry stitching, isn't it? However, under Ciguena very conveniently, to make completion is taboo, but in any case, it is much easier to make a script that will simply call this a long command. Called this script will suddenly install. In the end, we will have this makefile:
(this picture attached archive with examples; the makefile slightly different, added automatic startup and removed all the extensions .exe and it works, but MacPhail becomes cross platform you can run it on Linux without any changes (well, except the way, of course))
And now — surprise. Please note the section macros. auto is only install. By and large, auto now do not need, still install and so is next, but I left it for clarity. As so, make will immediately install the program? But that he would install if the program is not compiled?
This is another feature of the make'a. Finding install, it will see that as a source (after all, you do not forget that the commands, scripts and purpose are one and the same?) for this purpose, you can use $(INSTALL)/$(NAME).exe. make seeks this goal and finds it, and sees that she, in turn, as the source uses $(NAME).exe. Now make searches Makefile the target $(NAME).exe. This goal is also available, it uses as the source $(NAME).c. Such target in the makefile there, so it looks for the file on the disk, finds, then looks for a file $(NAME).exe, and if it finds — compares the date of the change. If $(NAME).c is newer than $(NAME).exe, run the command to achieve the target $(NAME).exe. If not, make skips this step and immediately proceed to next, $(INSTALL)/$(NAME)exe, and again checks the modification dates of files. If the target is older than source copy. If not — make exits with message the goal does not require running commands (to auto install, and it already does not pass, because it is not real purpose, just links, as indicated by the Directive .PHONY).
Thus, there is no need to describe in detail each step of the execution of the makefile if the goals are interrelated, and one pulls behind itself another — a make still follow the chain. This fundamental difference between the makefile from bat file — the latter is done sequentially, step by step, first is processed immediately, turns out the dependencies, and then runs along the chain. Therefore, the order of goals in makfile not so important.
This appending and parsing example hello is finished. But it was just a warm-up before the finale. Now the most difficult is the right script to compile the maps.
(the picture attached archive file, or copypaste with pastebin)
It differs markedly from the previous superskogo of meiktila. There are no fast-compile-only command full. Here's how it will look when you compile it using:
If we try to run make full twice, the second time will see only this:
Because all the files we already have, and make it only remains to run the game.
But what happens if the map is leaked:
And if we compile and check our map under beta release, we don't have to precompiling, there will be conversion:
As you can see from the last screenshot, there is install and run the release version of the game. Unfortunately, is associated with this small nuisance: despite all the tricks, make will still copy the card to release it in the game folder, and somehow twice in a row (ichskh in cygwin present exactly the same bug). With the installation of nanobite this does not happen, perhaps the problem is that the release game is on another drive... because Of this I have, by the way, she release the full game, but the problem is that this driverspack: if being on the C: drive to drive in command prompt D:\TempGames\Half-Life 2\hl2.exe -steam, the game will not start, but HL2UE6 in a similar situation working.
Everything else works (don't forget about nuance with setx), and you can check to see meiktila in beta+, for which it was created. To do this you need to download the beta+, meyk, MacPhail, and optionally some b-roll map source, but in General, the beta+ is already Mapa-example, you only need to tweak Makefile name and path. Don't forget that the make and MacPhail need to lay down bin\. To run it in several ways:
– open a command prompt and type make macro;
– create a batch file or shortcut that will run make with the desired parameters;
– edit the makefile and substitute auto help is what you need, and then just run make.exe;
– add in the Humvee command make.exe macro. Suggest disabling Process window. First, will not be displayed correctly, and secondly, beta when run from the hammer hangs (at least, I do) that is treated only by minimize hammer before you start, and with the active Process window it will not work (note that this make needs to run the latest, after it should be nothing! The first step is to change directory to $exedir\bin).
Conclusions.
We need finally to note, what make is different from the batch file. All main features have already been mentioned above, but it would be nice to collect them in one place and compare. At the same time we see if you can implement the functionality of make in battah (only in words, but if you're interested, I can try to make such other in the future):
1. In one Makefile you can list several different instructions, for example, compiling and cleaning, installation and removal. You only need to set the parameter to make the name of the desired action. We can set a chain of actions and execute them with one command.
In principle, even in battah, if you want, we can do something similar. It's enough to use the label, call and goto, and then call the batch file label.
2. make checks the modification time of the file, and performs the action only if the produced file is older than the source.
Perhaps the most important function of make. However, it is quite possible to try to put into battah, for example, Tupas used the time to build/modify for naming the converted file, but of course, writing such a function will require some effort and time and it is constantly will have to call manually from the batch file, make takes this task on himself, we can only properly prepare the makefile.
3. make immediately stops execution when an error occurs.
Example leaks the most revealing. But in my opinion, in botnico is also possible to catch the exit code of the application and in the case of a non-zero value to terminate execution. But again, to make for that no need to write anything extra, we never have to think about it (except when this feature prevent, of course).
4. make maintains dependency and performs the necessary operations, if something is missing.
This item is a natural result of the second and third. If not a missing file make goes to the action which produces it, for example, invoking the command install: $(FILE), make checks to see whether a compiled file that you want to install is out of date do it, and if it compiles first, and if it is impossible — interrupts execution. The main thing is to make the makefile, clearly indicating that what turns out. If everything is entered correctly, make itself will understand that and in what order to perform, there is no need to strictly define the order. In the case of batch file we have to do it, and that the process does not go in the wrong direction or not run a bunch of meaningless actions necessary to implement each step a bunch of tests.
Thus, it is clear that the functionality of make is simple enough to — more or less — could run on bernikah. However, this code is not trivial, and likely complex, the same makefile will be much shorter and easier to understand. Therefore, using the capabilities of the make'a, it will be easier to write more sophisticated and clever script than to try to implement a similar functionality on the bare batch'e.
Finally, I note that the compilation of maps is, of course, not everything that can be automated using make, it is similarly possible to compile models, sprites, convert textures, and, of course, the code, although in this case it is better to use the tools MSVS. Under Linux/Unix make very widely used, but it is worth noting that complex makefile's in any case, not written manually, instead it is easier to use a special utility generators, but in our case it's redundant.
P. S. Keep in mind that learning to make while I spent only one day (+ a day on experiments and writing lined makhailov + three days writing and preparing this post), so the resulting makefile is certainly not optimal, and, most likely, still be refined.
MacPhail is not a crap, which now makes Gabin to collect the source code to SDK 2013? FUCK IT, Gabin even before DDG already reached!..
... or am I confused. I mean no disrespect, but if the work is not a single double click, then I have nothing to do.
MacPhail is not a crap, which now makes Gabin to collect the source code to SDK 2013?
makefile is the standard way to build programs from source in any unix'e, circulated it very widely. Crap can to do everywhere, no need to have negative attitude towards technology, had met with one unsuccessful example. Although many programmers on the same habré are negative, but only because I use automatic generators makhailov... But it's not a fit.
but if the work is not a single double click
Well, I have my map for the beta and copeley, double-click on make.exe but the file that I give as a sample it is necessary a little podredaktirovat for this behaviour, or write a batch file/create shortcut/open cmd.EXE, in which the drive line make full. And, of course, replace the path and file name for your.
By the way, I beta+ is not particularly tested, so if something goes wrong... oops ^^'
Although, like it has nothing to do with SDK 2013 and how there need to compile visual projects visual. OK, I would get up and study this treatise.
Although, like it has nothing to do with SDK 2013 and how there need to compile visual projects visual.
Well, of course, has not)) I even Have a sun no. Then you need to download only the make the link and skopipastit MacPhail and put them in the bin folder of beta and nano-beta. After fixing the paths everything should work without problems, at least works for me. Here at release have already finished MacPhail itself, but here we do understand, we all have different paths, different compiler, most importantly, what the backbone is. And, in principle, in my opinion, makfile — it's easy, at least I just a day (well, two) was able to understand.
And I'm still not confused, it makfile is the obscurantist garbage, which velv replaced the pre-compiled projects for the visual. Well, to be promoted at the expense of Linux as if it someone modic, Oh my God.
https://developer.valvesoftware.com/wiki/Source_SDK_2013#Creating_Project_.26_Makefiles
And since it only spoils life, to read about this one yesterday.
You already zadolbali with his gabaritam. We all love Valve and Gabe for what he does HL3 and spoils the game and SDK, enough every day to repeat it :P
And I already said that to judge on one bad example that is used incorrectly, it is impossible. And moreover, not even trying the least bit to grasp and understand.
And actually, I have somewhere was a source SSDK13 (why the heck are they I really need as if waiting for this moment). I'll try to start a thread on a sweatshirt, what happens.
And get this:
As can be seen, generate .vcxproj files are used some .vpc files. An example file:
// DEFAULT.VGC
//
// Configurations for all Source(TM) Projects
////////////////
// Game Names //
////////////////
$Games
{
EPISODIC
HL2
}
// Makes the VPC scripts work in the SDK's context
$Conditional SOURCESDK 1
$Include vpc_scripts\projects.vgc
$Include vpc_scripts\groups.vgc
This syntax has nothing to makefile'am, it is the next Bicycle invented by Valve. If there somewhere there is a makefile, it is likely that they are only needed for Mac and Linux. Sobsna, the makefile in the'e I found in is composed of the source and it is written in black and WHI^W^W^W green on grey, in my case:
# Base makefile for Linux and OSX
it's like he's someone moddet
With the emergence of a Jackhammer, this is no longer a cause for ridicule. However, before this was and is at least GTKRadiant, the benefit that id, unlike any of Valve's always let your game Open Source. And Sauerbraten, for which there are no editors, no need, because all the editing takes place directly in the game.
So do not lyapat language what you do not know.
You already zadolbali with his gabaritam. We all love Valve and Gabe for what he does HL3 and spoils the game and SDK, enough every day to repeat it :P
Gabe has ruined modding, it is a simple fact. You can easily compile all the projects and put in the SDK, what would have changed? 3 KB more weight would be? All of this support Linux only for the sake of PR and nothing more. And I slice, talked about modding the source on Linux, not at all.
Can't find steam app user info.
sourcedc of the glorious times of approximately mid 2008 year, HL2+EP1, garrysmod works SDK does not start at all only gives this extremely informative error on copied config folder from steam into subfolders sdca, not helped, what do I do with it?
For the first time faced with the loss of the source. And together with the source killed my Windows :D
epicfailstory
After reading the whole forum beta and truly imbued with its spirit, I wanted to gash his card under it. Moreover, with the beta and so is steam source, so without thinking twice subjected to torture devtest, deciding just to do without claims for realism, consistency, plot, etc. — it truly playable level for the beta (of which there is little, although I beat all Betania maps, links to which were live: also, a HUGE THANK you [it is a pity that he wont see it ;( ] Chitravelu that carefully thanks almost all small stuff on yupapa; unfortunately, much was lost, but something has become unavailable on the folder... of the original files I keep, perhaps, perezalil them somewhere else...). So, work on the map was in full growth, much has been fixed, much added, changed, etc. However, I did a stupid thing, the fact that devtest is so healthy and complex that I hammer the brakes for him, and on the 2D views! Helped the approach of the 2D-view so you can see less objects on the grid. Or prosquality somewhere to the side. And it had to do every time, because the hammer centers the 2D-types relative to the origin, and the level was built around it. Instead of wasting time scrolling (which was carried out slowly enough to irritate), I decided to highlight the entire map (Ctrl+A) and move it to the side (I didn't disdain it during goldsrc mapping, usually dragging pieces of levels, separate rooms). I shouldn't have done... the Problem is that even though I moved the level on the grid (for the biggest), entity, small and rotated on a non-standard corners brushes broke the alignment, and as a result, almost all objects have been shifted relative to the grid, even the smallest, even worse, their coordinates become non-integer. Thus, for instance, we had a party with the coordinates 256 256 256 after shift was, say, 511.986 511.986 511.986. In General, special problems that are not delivered: level compelely normally, there are no seams and other problems, nothing broke. But, first, increased the size of the source (compare entry 256 vs 511.986), and secondly, compile time has increased noticeably (though not too much), third, when I wanted to change the geometry, we had to align normal (but still aligned, of course, was impossible, was too high level). Part of what helped align the fine grid, but only partially. Anyway, the source I messed up, but I wanted to give it to OpenSRS (I think it has ruined society beta: almost all the staff they laid out only in the final form, and even on untrusted hosts, who quickly died, and they themselves did not attend and had constantly lost its sources and results; it is good that now the Internet is much better and there are so many cloud storage services... true stupidity and all the storage in the world won't save...). But I was lazy to redo it all over again on a clean source, so with a shrug (se La vie), I continued to work on what it was.
Not yet completely ruined it. I barely understand what happened, but I think I simultaneously launched compilatio from hammer and make'om (at least, I hardly remember what started compiling of the hammer and stand with make). Apparently, the result of simultaneous application to the same file, the system took off in BSOD (although it is possible that the reasons were other: I have constantly pulls out the SATA cable from the new drive (which I had with all the beta stuff, when for standard (Gold)Source, all lying on the old) and although I terribly disliked the IDE (not just the bent and the unbent his needle...), from Saty I have no less a baguette, IDE connection for all its inconvenience at least reliable); in General, it is possible that the BSOD was the result of setproblem).
After reboot, I first thing checked the source code. Attempt to load him in the Humvee was svalilas. Opened it with Notepad instead of plain text or the garbage, or does NULы. Opened vmx — he, too, was damaged! While in the notebook small piece looked normal, but the rest is some kind of binary data is obviously garbage. Make this something not possible. But I did not give up so easily and decided to try to restore his utility to rescue deleted files. Recuva immediately showed their helplessness, but I remember showing good results, but the paid EASEUS Handy Recovery cracked version which in times past has helped me more than once. The program, campaign, old, abandoned. In the process of exploitation it was found that with 64-bit XP isn't she with friends: hang out, had to resetti. Then I tried to 7ke — strangely enough, there she worked on hurrah. But found nothing, she was able to restore just the same broken file, and even worse. And rebooting in XP, I suddenly found that the last reset was fatal for her: the registry of the system has been corrupted, the system became unworkable. If I had a backup of the registry that I could recover my Windows, but I didn't have since disabled the system restore.
If anyone knows the Windows registry is not something ephemeral, but it is a file or set of files that can be found in %WINDIR%\system32\config. Some of these files damaged. When you install Windows creates a backup of the registry in %WINDIR%\repair — of course, this is a copy of the register at the time of installation, i.e., after the recovery, get clean Windows, such what it was during the installation, no programs, settings and other things. I already had a registry corruption, and I was able to experimentally identify the section affected and to restore this key only. I think it was the system But this time was affected by software (the largest section, which houses a large part of the registry), so I decided that it is better to reinstall Windows from scratch. And that was done.
It should be noted that, being not entirely stupid, I remembered that need to do backups. And this backup I really was!.. just a month ago. And this month I have done quite a bit of work...
EPIC FAIL
On the other hand, everything has a positive side. I was thinking about how to back up data and important files ШІИДОШ3, so now I have on Linux there is a script that I run almost every time when loaded into it (can generally autorun at system startup add, s), this script backs up the %WINDIR%\system32\config 7-zip'om the \home Linux (turns a little, something around 4 to 7 meters, depending on the size of the registry). From a running Windows to compress, unfortunately, can not, does not-S.
Well, now, after reinstalling, .NET Framework is not so much good.
I was also thinking about how to automate backuping the results of the work on the maps, which was written a couple of batch file and included them into the new version of the nano-bets: a quick backup of the vmf and bsp the complete backup of the source code: vmf, qc, modelsrc, materialsrc, rad, lst, scripts, and full backup most nano-beta. However, the latter normally does not work, I did not understand how to say 7-zip'to he was expelled from backuping folder backups, LOL. On -x option something he swears, NID help...
Generally, traditional 7z.png nanoblog:
http://i.playground.ru/i/80/09/79/00/pix/image.jpg
http://i.playground.ru/i/90/09/79/00/pix/image.jpg
Here are a couple of minor changes. So, I figured out what was wrong with my meiktila that he did not want to work with reteylovy half. It turned out that the fault was not another drive letter and a space. In Unix,'Oh, decided to escape the space backward slash (as path in Windows; in UNIX paths use slashes, as in web references). Ie, on Linux pathGames\Half-Life 2\hl2\maps should look like Games/Half-Life\ 2/hl2/maps (you can of course to take in quotes, but make this not understand). And the wind slesicki will be the same, and therefore the way D:\TempGames\Half-Life 2\hl2\maps should be written as D:\TempGames\Half-Life\ 2\hl2\maps
In addition, I split the makefile into two files, one simply connects another. Other attached extension mk to be its associated with the program //although generally speaking, in Windows it is possible to make files without extensions are opened with Notepad, and even had some icon (for that in HKCR, you need to create section with the name . (dot), and arrange it in the image and likeness of the other).
I also added in a lyricist (batniki, macfile, etc.) comments, so you can quickly own to figure out/remember what's what. All the comments on my novaengliae.
And also added the JFL file.NFO with descriptions and links to all resources used. Tubingless of Agen.
// else noticed that background_example reason not compileda normal lighting, WTF?!
TL;DR
The essence of this post: make backups! Make backups always! Do them regularly, consistently. Make backups even when you are doing backups. Losing data — be it maps, mods or something else — very easy. To restore then it is impossible.
I wrote a couple batch file to create automatic backups and put them together with the next release nano-bets. But because backups are important, I'll post the text separately batch file:
http://pastebin.com/mf7Cihid
http://pastebin.com/AL9GG7KF
http://pastebin.com/d7dX006D
Of course, you have to write for themselves. In its current form, they assume that they are in the bin folder, and all the sources are right here. Backups are made in "backups" folder. Please note that _backups_complete.bat bekapit everything, including "backups" folder, which is not good... I'm still going to think about him before I can assume to make "backups" folder to some other place (which, in principle, even more reliable, especially if you put it in your Dropbox folder'a or maylor, Yandex.drive, mega and others, to load on the online store).
While on the subject of backups.
After all, dealing with 7-zip'om. At first they even wanted to ask a question on sartorially page of the program (the author of the program - Igor Pavlov - there's quite responsible), even glamorous kartinochku drew to explain my problem... But then I found the search button and decided to see if maybe the answer to a similar question has already been given. It turned out that the forum was a whole bunch of messages with complaints about non-working key -x, and all that I went were the found solution. One user generally excelled in all the topics about exclude wrote about a broken -x...
However, one of the themes still helped me. I. P. gave a couple of examples with file-list exclude, i.e., it was necessary to use switch -x!the names of files and -x@file-list. This file must be a plain text file that lists (one per line) to exclude from all processing files and folders. Moreover, it is not necessary to specify the full path, you can use the relative, and the mask.
In short, to _backups_complete.bat earned as much as I had originally planned, you need to create the file, e.g. backups_exclude.txt to write him:
bin/backups/
put this file next to the batch file and the batch file to correct a line call 7-zip'a:
misc\7za a-t7z backups\%filename%.7z .. -x@backups_exclude.txt -mx9
Now everything works as it should. In any case, once the full text of the batch file, with the fixes: http://pastebin.com/6npadwBw
Because now I've dealt with exclude, finally able to gash what has long been wanted: superultimate, megauniversity, etc. the batch file for backups. Of course, nazyvaetsya it even just universal and the ultimate is impossible, though, because you'll have to partially rewrite it for yourself (Yes even with the bugs 7-zip'and to compete), but I tried to make it, first, unit, second, to make all the important parameters in variables.
Well, here it is... my bochnicek!
http://pastebin.com/4WUUzshx
Fffuuu, pastebin somehow singled out comments :: the same color as the label. Better copy it into Notepad (Notepad2 for example) and see it with normal lighting.
The batch file semidocumentary, there are a couple of examples, but without explanation, perhaps, can not do, because to give a brief overview on its use.
Help
1. The batch file (if you hold my sample and will not rewrite it under the relative path) can be stored in any convenient location. I personally put in %WINDIR%, it was convenient to call it from the command line or by using Win+R, but you can just add the path to the batch file in %PATH% (or even assign the full path to the batch file to some variable and call it, abramiv with percentage signs, e.g. %backup%). You can, of course, and the shortcut to do, but the batch file is confined to a manual call from the console, so what's the use of that label a little bit, except to create a shortcut to each target, or copy all at once (this point will become clearer below).
2. With 7-zip'om, you can do the same as with the batch file: either to throw 7z/7za in the %WINDIR% or to add to %PATH%, or you can edit the batch file and instead set archiver=7z a-t7z write:
set archiver=C:\Program Files\7zip\7z.exe a-t7z
You can even change to another archiver (rar is the same), but because of this, at least, will have to rewrite the backup settings.
3. Need to create a file exclude.lst (you can call him something else) and write the path in the following line:
set optionsпы щь=-x@%WINDIR%\exclude.lst -mx9
Instead of %WINDIR%\exclude.lst you need to substitute your path (in quotes if it contains spaces)
Exclude may need, if you want zabekapit the contents of the directory, not including the one or more files and folders. This is especially useful if you want zabekapit all except the subdirectory/s attachment/s to the catalog. You can, of course, to solve it this way: copy the desired files to a different location by using copy and then back up, but I think the disadvantages of this approach are obvious.
In your batch file I use one exclude file at all, but you can make a separate list for each file. In principle, the second variant is better, because it will not have matches ways to be excluded from the same archive with a path that is included in another. On the other storony, the first option is more convenient. And even though I chose it, the batch file can always be corrected.
Sample file-exclude:
C:\Demos\theprodukkt\Werkkzeug3Tex\backup\
C:\Demos\theprodukkt\Werkkzeug3Tex\*export\
C:\Games\Mapping\BSPquakeditor\anti матHalf?Life\textures\
C:\Games\Mapping\BSPquakeditor\anti матtutor_bsp.swf
C:\Games\Minecraft\?minecraft\screenshots\
D:\TempGames\The Aether\?minecraft\screenshots\
SourceSDK_Content\generic\mapsrc\dec\
SourceSDK_Content\oldarkinterval\mapsrc\alex\
source\zothers\
wads\cof\
wads\Dmitrich!\
wads\hq2\
wads\q3\
workspace\?metadata\
xDDGx\xcompile\
I tried to use full path names, but due to glitches 7-zip'a at random had to fix some relatively. I don't know what the reason, even thought the problem is in the spaces, but 7-zip refuses to recognize the way exclude in the most unexpected moments. There was also a problem with the path C:\Games\Mapping\BSPquakeditor\анти матHalf-Life\textures\, but I guessed that he didn't like the hyphen, so to say, I thecentury word Half*Life, hiding the hyphen wildcard. Then I changed * on ?, because in the first case the mask is more suitable names. However, the question mark is the crutch of creepy that you want to be careful (e.g. if there will be a folder Half2Life\textures, it would also not sabakutani), but what can you do...
With the folder .minecraft is the same thing, but then had to zarensuite point.
4. Of course, you need to fix the path to the folder in which the backups will be stored:
set prefix=I:\Uploads\Backups
You can specify the Dropbox directory'a, Yandex.Drive, mega etc. to automatically fill in online backups.
5. The batch file creates files with names like imagenest.7z. If you want to do backups more than once per day, you can add somewhere above this line this code:
set currtime=%TIME%
set hours=!currtime:~0,-9!
set minutes=!currtime:~3,-6!
set secondsпы Sch=!currtime:~6,-3!
A string
set postfix=%day%_%month%_%year%.7z
Correct to:
set postfix=%day%_%month%_%year%__anti slip Mat%hours%_%minutes%_%seconds%.7z
6. The idea is that the batch file must be called like this:
the batch file.bat что_бэкапить1 что_бэкапить2 ... что_бэкапитьN
As parameters are passed to labels names, each of which represents an abbreviated name of the thing backup. For convenience, I'll call them targets. For example, if I want zabekapit the icons that I so much time tried, painted and finally, I simply dial backup icons in the command bar or menu Win+R. To sbekapit minecraft with all mods, sobrenome, batinikama, etc., I simply dial backup mine. You can even gain just a backup mine icons to simultaneously zabekapit and icons, and main, or even dial backup all to process everything.
To do as I have, you need to start, create a batch file in your goals, which are such things Ratnikova subroutine or options. Each such procedure starts with label name and looks like this:
mark
set name=imaarv
set paths=putiatina
deleting existing backup files containing the name %name%_
call archiver %archiver%: archiving %paths%, backup %name%data.7z in the folder %prefix% given %options%
the end
Such templates are already in the batch file, you just have to correct them and, if necessary, to nanopipette else. As a rule, you need to correct only the first three lines: change the name of the label that is understandable to you, the name of the archive, and ways of archiving, i.e. paths to files and folders to be backed up. But you can remove the delete old backups if you don't want to add extra options to the penultimate line, or even add any additional steps, for example, in one case I had to change the drive and path.
In addition, after creating all the goals, it is advisable to list them with a space here:
if [%1]==[all] (
set cmdline=bsp src icons mine twice
) else (
set cmdline=%*
)
This test is located at the beginning of the batch. In the second line, after the equal to specify your goals. Then you can just dial backup all to zabekapit all, will not work differently, so it is important not to forget to maintain this list up to date...
More useful to list the goal at the end of the batch file, where should label help:
:help
echo.
echo valid options are:
echo all - all backup targets
echo bsp
echo icons
echo mine
echo src
echo twice
echo.
If you call the batch file without parameters, it lists the names of all available targets; in case you forgot how I called this or that purpose, it is possible to append a short transcript (to write in Russian, the batch file will have to transcode in CP-866, in Notepad2 it is labeled as OEM 866).