if you are using fteqcc, you should be able to completely omit the array length number within the array definition, on the condition that its initialised.
it should also accept formulas for the array size so long as each part is a constant (and you're not using -O0), this includes constants specified within enums.
if you still have compile issues after following seven's advice regarding the comma stuff, stick your code into a pastebin or something and I'm sure someone will take great pleasure in trying to spot the issue before anyone else can.
Announcement
Collapse
No announcement yet.
HEXEN II community work and discussion
Collapse
This is a sticky topic.
X
X
-
Hello Mathuzzz,
Do not worry, you and me and we both together will manage it somehow
First of all: Thank you for the link. Yes, I knew Sitters page before.
You maybe want to look here for some more interesting links: click
Now let us fight this error in your compiler together
I assume you are using the HC source 1.12a as your base ?
Please check if you did these points:
1.) You added your new model _ENTS floats in spawn.hc ?
Example:
Right below this line you have to add your new _ENTS floats:
I just tested it and added these as placeholders/samples:float ENT_DRAGLION = 91; // this is the last model from portals
float ENT_MATHUZZZ = 92;
float ENT_SEVEN = 93;
float ENT_QUAKEONE = 94;
2.) Now the next function you have to edit is:
I added only 3 new ENTS, that is why I changes the value from 552 to 570float entity_spawnvalues[570] =
Formula is: 6 * (float of your highest ENT + 1) = 6 * (94 + 1) = 570
2.a)Next is to add the 3 lines at the end of this function
So, as a placeholder I added 3 identical lines at the end of float entity_spawnvalues:
This is the last line in original function:
You MUST edit it to:100, 200, 0, 3, 1, 1 // ENT_DRAGLION
Pay attention to the last "," !100, 200, 0, 3, 1, 1, // ENT_DRAGLION
Now add our 3 new lines:
Pay attention that the very last value has NO ",".100, 200, 0, 3, 1, 1, // ENT_MATHUZZZ
100, 200, 0, 3, 1, 1, // ENT_SEVEN
100, 200, 0, 3, 1, 1 // ENT_QUAKEONE
I think this was the root cause for the error you received when compiling
3.) Do the same for the function
We added 3 ENTS in this example, so you would have to change it from "184" to "190"vector entity_box[184] =
Formula is: 2 * (float of your highest ENT + 1) = 2 * (94 + 1) = 190
3.a) Do not forget to add a "," behind the last original value.
Then add your 3 new lines and do NOT add a "," after the very last value.
That is the necessary syntax for these functions.
I think, now you can compile your new code.
It compiled for me without errors.
By the way:
Do you use the FTEQCC compiler ?
Please pay attention if the spiders are still killable when using the new progs.dat.
There seem to be a bug in original Hexen2 that causes this.
I had this bug, when using a new compiled source 1.12a (without any changes !) with FTEQCC.
Please do not forget your map screens
Best wishes,
Seven
Leave a comment:
-
Well, thank you for such a helpful reply, Seven
I mostly did exactly what you wrote except the thing with
float entity_spawnvalues[552] =
vector entity_box[184] =
That may be the problem. I havenīt touched those values.
I created entity function in object.hc, than I have put the necessary values into spawn.hc, but it came up with the error, something like "expected }, found 200", where 200 is one of the values for the new entity.
I will look at it tomorrow and post my results.
About the models.
There is the known site, Iīm sure you came across
Untitled Page
Models are md2, but there are plenty of programs which can easily convert between md2 and mdl.
There are packs with various models, mostly modern, but there are great egyptian themed models, some dungeon themed and interesting pack with trees/bushes, which I especially find useful.
In the past I found even better model packs, but I was not able to find them now.
Also, Heretic 2 had some nice models.
EDIT: I tried it again today, with modified values, but still same error "spawn.hc(206) : expected }, found 100". I donīt know what else Iīm missing.Last edited by Mathuzzz; 07-24-2013, 11:51 AM.
Leave a comment:
-
Hello Mathuzzz,
Great news, that you managed to compile your map

You mentioned that you found fitting Hexen2 models.
Could you please share the link, where you found them ?
Because I always search for these kind of models too.
Thank you.
Regarding the question to bring new models into H2:
I am a bloody beginner with .hc
But I also was playing around with .hc recently and I think I can help you.
Of course, if Spike can jump in and explain it, it would even be better
1.) It all starts with calling the models via its specific function in your .bsp:
Let us follow the procedure with the regular model:
chair.mdl
This is how it could look in the mapīs ent file:
{
"classname" "obj_chair"
"origin" "1050 1722 144"
"scale" "1.4"
}
2.) With that, your map calls the specific entity function (in our case the regular chair)
It is inside object.hc:
Code:void obj_chair() { precache_model("models/chair.mdl"); CreateEntityNew(self,ENT_CHAIR,"models/chair.mdl",chunk_death); self.touch = obj_push; self.flags = self.flags | FL_PUSH; }
3.) The CreateEntityNew line calls the universal "entity-Spawner" function together with all necessary arguments for that special entity (in your case the chair).
The function CreateEntityNew is inside spawn.hc
4.) Inside the universal CreateEntityNew function, the given arguments are used to call the 2 important functions:
- entity_spawnvalues
- entity_box
(both are also inside spawn.hc)
Several other things are also done, but that is not so important in our case.
5.) The entity_spawnvalues function contains the necessary values for the chair.
There are 6 spawn-value fields for each entity !
The function knows (because of the given arguments), that it is ENT_CHAIR, so it uses this line (with its given values) for the chair.
6.) The entity_box function contains the necessary values for the chairīs bbox size.
There are 2 fields for each entityīs bbox !
The function knows (because of the given arguments), that it is ENT_CHAIR, so it uses this line for its values.
That is the regular precedure from .bsp to in-game spawning of entities.
If you want to add new entities, you have to create new functions and lines where necessary.
ATTENTION:
Hexen 1.11 has theses values for its functions:
Hexen 1.12a has theses values for its functions:float entity_spawnvalues[456] =
vector entity_box[152] =
The mission pack uses more models and needs therefore more values in both spawn functions !float entity_spawnvalues[552] =
vector entity_box[184] =
There is a comment in HC source 1.12a that tells you the formular for these values.
You MUST modify the values, if you add additional models into your map/hc:
Formulars are:
- for entity_spawnvalues: 6 * (float of your highest ENT + 1)
- for entity_box: 2 * (float of your highest ENT + 1)
Original Hexen2 uses 75 models + world = 76
Portals uses 91 models + world = 92
Example:
If you want to add 2 new models into original Hexen2, your function must look like this:
Dont forget to add the 2 new lines with the models values in both functions.float entity_spawnvalues[468] =
vector entity_box[156] =
Beside the extension of these 2 functions inside spawn.hc, you must also add the specific model functions in object.hc.
Remember, the one for the chair was: void obj_chair ()
These new functions for your model will be used/called inside your map (.bsp).
You have to bring them somehow into your mapping tool (or add it via .ent files is a dirty solution), because the mapping tools doesnt know your new models...
As mentioned before, I am a bloody beginner with .hc, but I think that is what you need to edit when you want to put new models into your map.
Cant wait to see some screenshots of your map
All the best,
Seven
Leave a comment:
-
What I had in mind were especially environmental models, like rocks, which usually eat a lot of brushes and I mostly had to remove them.Originally posted by Rino View Post@ Mathuzzz
I would hate touch the complex brushes, made by me, to which I have devoted a lot of time and effort, to insert models.
Alternatively I suggest, decrease the polygons, in some areas of the map, where the detail is not necessary, in replacement with use of Textures made ad hoc.
Leave a comment:
-
@ Mathuzzz
I'm glad that you were able to solve!. : D
Regarding the models, I use the ones in the game, or PoP.
I would hate touch the complex brushes, made by me, to which I have devoted a lot of time and effort, to insert models.
Alternatively I suggest, decrease the polygons, in some areas of the map, where the detail is not necessary, in replacement with use of Textures made ad hoc.
Leave a comment:
-
@ Rino
If I will ever be able to run my map, then I will make some screenshots
. Unfortunately, my last two days of removing brushwork and covering all the remaining brushwork in clip brushes didnīt help.
EDIT
Great! I finally managed to kill the error for now.
I found large amount of useful models, so I was thinking I would try to work with them, reducing the number of complicated brushes. However there is one problem. I have to compile them into progs.dat. I tried that last night, but spawn.hc had compile errors, even though I just copied the formula from other decorative entities. Have you ever adding some simple decorative stuff to the game?Last edited by Mathuzzz; 07-21-2013, 03:44 AM.
Leave a comment:
-
@Rino
Iīm having a problem with MAX_MAP_CLIPNODES, which is BSP limit. In other words, my map is too big, I will have to either remove most of the details or cut it to pieces.
@ Mathuzzz
Hello, if your map has reached the limit, (a castle with soil I think), you should cut into sectors.
I think Seven has already suggested this, (I'm talking about single player)
Do not remove the details, you can add, then you split it in 2/3 maps.
Between one slice and the other, you may create a changelevel, for example, the portal main entrance of the castle, so as to divide the outer area, from the inner zone, for example, map1 outdoor area all, with only perimeter walls castle, and the"drawbridge" with changelevel, entry to map2 and return.
You can delete the entire interior, rooms, etc., lightening the BSP.
In map2 you can delete all the exterior (soil, trees, etc.), you can keep the main door from the inside (where you will appear from changelevel of map1).
At this point if the BSP works, it could be a solution, otherwise divide in planes (or in rooms, groups), the internal area, with other changelevel, map2 to map3 and vice versa, as if you're thinking about the architecture of a house,
example, ground floor, first floor etc..
Naturally, your map will need to organize it in a different way, from how it is made currently.
There will be delays in loading map (as they have already said) in singleplayer is not big problem.
I hope I have helped,
when you're ready I'd be curious to see some shot, good mapping!
I greet all
Rino
Leave a comment:
-
you can find fte's built-in particle scripts here: FTE QuakeWorld / Code / [r4417] /trunk/engine/partcfgs (inside h2part.cfg, for the hexen2-specific ones)
I tried using namespaces with it (which sidesteps the whole 'select preset' issue), so the effects you replace will need a name like 'h2part.ce_foo' inside your custom particle config and it should override 'ce_foo' inside h2part.cfg.
Leave a comment:
-
Hello Mathuzzz,
Veirdoīs Mage weapon pack was designed and developed for the Doomsday engine.
Veirdo is a professional and works in gamedev industry as vfx artist.
Particle effects and dynamic simulations are his everyday duty.
So, dont expect it to be too easy to create effects like he did...
The Doomsday engine and Spikeīs FTE engine use a basically similar way of creating particles and bringing them into the game.
- You have the predefined game effects which you can replace/edit
- You can create totally custom/new efects names and call them at specific situations
- You can use as many different particle textures as you want.
- ...
Especially the last point makes FTE and Doomsday superior to Darkplaces particles system, as you can only use 64 - 1 = 63 textures in DP. 63 is an awefully small amount, if one is "effect-hungry" like you are (and others in this forum
)
Haze is/was a real master in creating FTE particle effects.
Spike linked his work here recently.
If you are like me (I need examples to learn/study new things) you will take a look at his work and see and understand how it works. The linked WIKI will do the rest
Back to Veirdoīs effects:
Dont let them confuse you, he mixed texture particles together with real small models and light effects.
The ice shards and other small things are real models.
You can do this of course in FTE too, but this would need some "QC" edits (if you can call Hexen2 mechanics "QC"...).
But you are absolutely correct:
I never saw such beautiful particle effects in a Quake-type game of this age before.
But no wonder, Veirdo is a professional vfx artist and works with this stuff everyday
Doomsday is such an advanced engine and it is also developed regularly.
It can stand in 1 line with the Quake engines FTE and DP in this manner.
Have fun creating particles for your weapons.
Seven
Leave a comment:
-
FTE runs Hexen 2 and has a particle system, so that would be possible. I'm not sure about other H2 engines. Here's a bit of a log where Spike talks about FTE particles:
I use FTE particles in SJ, so far I made rain (hurrah). Basically you need to fire off a TE_something effect in the QC, and make a custom particle to suit it!03:29 <Spoike> the console command r_exportbuiltinparticles will write out a few .cfg files
03:29 <Spoike> can can then just exec them directly in order to test them
03:30 <Spoike> but the proper way to use them is to set r_particledesc $FOO and put them as quake/$GAMEDIR/particles/$FOO.cfg
03:32 <Spoike> note that 'built-in' effects cannot be loaded from the filesystem as a cheat prevention measure (actually, I can relax that a bit, its just a little lazy)
03:32 <Spoike> so if you load them via that cvar, you'll need to rename them first
Try the different particle settings FTE comes with (they work in Quake at least, not sure about H2).
The FTE wiki also has something about it:
http://www.fteqw.com/wiki/index.php?...edParticleSets
erm, this seems to be the more relevant part of the wiki:
http://www.fteqw.com/wiki/index.php?title=R_partLast edited by golden_boy; 07-02-2013, 09:55 AM.
Leave a comment:
-
What I meant was whether I can enrich Hexen 2 weapons with some nice looking particle effects with available engines?
Leave a comment:
-
Quake engines? FTE has a particle system that allows you to do all kinds of things. DP has particlefonts for example, too. The Doom 3 engine has great particles.
With Hexen 1, perhaps look into ZDoom, which is an advanced Doom 1 engine and I think it plays Hexen 1 as well, though I'm not sure.
Leave a comment:

Leave a comment: