Forum posts

Posted 1 day ago2024-09-16 05:26:16 UTC
in Jack won't compile bsp Post #349165
Firstly, JACK doesn't do any compilation, it just calls the compile tools that do it.
Secondly, compile logs and their error messages are humanly readable. You do not need any special expertise to read them, let alone depend on strangers online to read it for you.

Now check your compile log, and compare the map name that the compile tools see with the map name in the console error message you posted earlier.
Very much at the very top for me, something that makes me not even click past the thumbnail, is seeing it's a mere content replacement pack.
"Edgier zombie mod". "Realistic MP5 mod". Stuff like that. It has been over 25 years since HL came out, and any novelty any such packs could bring is long gone. Past that, there's nothing interesting those packs bring to the gameplay value.
Posted 1 week ago2024-09-08 22:15:52 UTC
in Need help with monstermakers!!! Post #349136
Not possible either, in vanilla.

Since you mentioned it's an endless battle but that weapons are piling up somehow, then I assume it means you're providing the player with constant supply of ammunition.
If you insist on staying vanilla, then perhaps getting rid of this ammunition supply could help towards staying within the entity budget, by forcing the player to collect the dropped weapons for ammunition. Not the perfect solution, but might be the best you can do without code changes.

Either that, or replace the human soldiers with monsters that don't drop anything on death.
Posted 1 week ago2024-09-08 17:06:08 UTC
in Need help with monstermakers!!! Post #349134
As far as I'm aware there's no option to disable weapon drop by monsters in vanilla HL/Op4.
That would need some game code changes.
Also please don't make duplicate threads. People will reply when and if they can help.
(Previous thread: https;//twhl.info/thread/view/20845)
Duplicate thread is gone now - Urby
Posted 2 weeks ago2024-08-29 20:37:43 UTC
in How realistic would be making money just by modding? Post #349113
As you say, there is not much demand.
Though there are people out there still willing to pay for getting modding work done, it's just a matter of finding them (or getting found by them) and prove to them your skills are worth it.

A good start would be building up a portfolio, a collection of work you've done to show off your skills.
Posted 2 weeks ago2024-08-29 07:50:25 UTC
in Why are there sparkle things around monster_zombie? Post #349110
The pollen effect is a visual indicator used by the game to show that a monster is stuck in geometry, e.g. in a wall or, as in your case, in the floor.
I guess you could create a flag m_fInBurst (set to false in Spawn()) that you set to true in PrimaryAttack() if m_iBurst is equal to m_iMaxBurst, and set to false if m_iBurst is zero.
If m_fInBurst is true, set m_flTimeWeaponIdle to 0.1.

Then in WeaponIdle() do something like
void CMP5::WeaponIdle()
{
    if (m_fInBurst && m_iBurst > 0)
    {
        PrimaryAttack();
        m_flTimeWeaponIdle = 0.1;
        return;
    }
    // ... rest of code
Essentially use PrimaryAttack() to start the burst fire, and let WeaponIdle() as a loop to call PrimaryAttack() until the burst count is exhausted.

Again, I'm just guessing here.
Hi and welcome to TWHL!
Now I haven't dabbled much in the weapons related game code so I'm sure someone else might have a better way of doing it than I.

The way I'd do it is to give new members of type int to CMP5's header; int m_iMaxBurst and m_iBurst and initialise both of these to 3 in CMP5's Spawn() method.

Then in the PrimaryAttack() method, add a decrement to m_iBurst just below the m_iClip decrement, and further down add a check for if m_iBurst is exhausted, and if it is then add a 0.5 second delay to the next fire property and reset m_iBurst to m_iMaxBurst.

At the top:
void CMP5::PrimaryAttack()
{
    // don't fire underwater
    if (m_pPlayer->pev->waterlevel == 3)
    {
        PlayEmptySound();
        m_flNextPrimaryAttack = 0.15;
        return;
    }

    if (m_iClip <= 0)
    {
        PlayEmptySound();
        m_flNextPrimaryAttack = 0.15;
        return;
    }

    m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME;
    m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH;

    m_iClip--;
    m_iBurst--;

    // ... rest of code
At the bottom:
    // ... rest of code

    m_flNextPrimaryAttack = GetNextAttackDelay(0.1);

    if (m_flNextPrimaryAttack < UTIL_WeaponTimeBase())
        m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;

    if (m_iBurst < 1)
    {
        m_flNextPrimaryAttack += 0.5;
        m_iBurst = m_iMaxBurst;
    }

    m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat(m_pPlayer->random_seed, 10, 15);
}
You'd then need to make a check if the fire button had been released in the middle of a burst to reset m_iBurst back to m_iMaxBurst.
Posted 3 weeks ago2024-08-26 21:12:58 UTC
in Help with JACK. Post #349086
Just as I thought, an invalid character in the path.
These old tools don't play nicely with non-ASCII characters :p
Posted 3 weeks ago2024-08-25 20:59:09 UTC
in Help with JACK. Post #349077
These decompiled map files you downloaded, were those in a different directory from the ones you decompiled yourself?
Because that question mark in the path from the error message implies there is an invalid character in that directory name.
Awesome! Good job! 🙌
I'd recommend converting from the RGB images the 8-bit images came from, if possible, for better colour quality.

As for software for doing the conversion I can highly recommend IrfanView. It's free and does the best job of colour preservation when reducing an image's bit depth that I'm aware of.
Using Wally they've likely become indexed 8-bit images, while GoldSrc uses 24-bit TGA (AKA RGB True colour).
The dimensions being 256x256 is correct though.
This post was made on a thread that has been deleted.
Posted 1 month ago2024-08-05 08:20:50 UTC
in The release of my HL1 mod. Post #349034
To be fair, model packs are mods (specifically, a sub-category of mods), but just as Urby says they're very unpopular, especially for a game as old as Half-Life.

Model packs, and other content-replacement packs such as texture replacement and audio replacement, don't bring any new experiences to the game. The game might look or sound different, but the gameplay is identical and any novelty introduced with the pack quickly fades to boredom.

However, if you made a series of maps that fit the mood of the models, and bundled all that together, now that would be a far more interesting mod!
Posted 2 months ago2024-07-14 20:24:12 UTC
in MESS 1.2.3 is now available Post #348988
What are you planning, Kimilil? 😃
Posted 2 months ago2024-07-14 15:25:07 UTC
in MESS 1.2.3 is now available Post #348985
Awesome, fantastic work! 🥳
Posted 2 months ago2024-07-10 07:54:47 UTC
in Is there a way to make a toggleable looping circuit? Post #348973
In your typical multi_manager loop, you set the Multi-threaded flag and have it target whatever is supposed to repeatedly trigger, and after some delay it'll trigger itself.
User posted image
Triggering the multi_manager again will only create more loops, so instead of a button to start the loop we can use a trigger_auto to start it from the beginning of the map, and instead of triggering the target directly we can use a trigger_relay, but we'll leave the relay's target empty to begin with.

To connect the target to the loop, we let the button target a trigger_changetarget (we can name it turn_on) to change the relay's target to our env_blood. We can use another trigger_changetarget (sharing the same name as the first) that will change the button's target to turn_off.
Now we create another pair of trigger_changetarget, both named turn_off. One will change the relay's target back to empty, and the other will change the button's target to turn_on.
User posted image
It might be a bit complicated, but here's an example map for such a toggled loop:
Loading embedded content: Vault Item #6924
Posted 2 months ago2024-07-08 18:48:57 UTC
in Improving accuracy of collisions with pushables? Post #348967
I'm sorry, I was wrong. My brain must have had a hiccup last night. Of course changing the pev->movetype to MOVETYPE_STEP won't help, and monsters uses the cliphulls as well for entity-to-world collisions.

Maybe you could force it to use the pointhull, and do your own collision checks using its bounding box. The performance won't be as good as with cliphull-based collisions, of course.
Posted 2 months ago2024-07-08 12:28:02 UTC
in Map Optimization Question Post #348965
There's no reason for hollowing out solid brushes for "performance" reasons.
If the hollow volume is big enough, it'll even produce more clipnodes as Urby says, just wasting away the clipnode budget for no good reason.

If those brushes are world brushes, it's even less reason to do so as any outside and unseen faces will be stripped out by the compilers automatically anyway.

Manually NULLing faces is an optimisation step you only should do if you need to. Otherwise you're just wasting time that could have gone to actually building the map.
Posted 2 months ago2024-07-08 09:33:01 UTC
in Random ambient sounds? Post #348961
You could take a look at the speaker entity. It plays a sentence from sentences.txt at a random interval between 3 and 10 minutes. Using a sentence group (sentences with the same name but different number suffix) will make it choose a random sentence from the group.

It's used a lot in the original Half-Life campaign where it adds random background noises. In these cases multiple speaker entities are used together to make the sounds play more often. An example would be c2a5c, where four speaker entities set to play the FAR_WAR sentence group to add an ambiance of distant combat.

If you're mapping for HL, you can take a look at predefined sentence groups in sentences.txt and see if any fits your need. If you're making a mod, you could create a new custom sentence group that fits exactly your need.
Posted 2 months ago2024-07-07 21:36:58 UTC
in Improving accuracy of collisions with pushables? Post #348959
Your guess of it having something to do with the HULL sizes is correct.
While player-on-pushable collisions uses the pushable's bounding box, the pushable's collisions with the level uses clipping hulls instead.

Clipping hulls date back to Quake. Essentially, instead of continuously testing mesh-on-mesh collisions (very expensive), the player and pushables are simulated as a single point, and collision hulls are pre-calculated by expanding the solid level geometry by an appropriate amount (e.g. 16 units horizontally and 36 units vertically for HULL1). This way collisions are tested using point-on-mesh instead, which is computationally very cheap. It performs better, and that's why the engine uses this instead of bounding boxes.

It might be possible to force it to use bounding box instead, I'm guessing changing the pev->movetype to MOVETYPE_STEP should get it to use similar collisions as monsters, though it's not guaranteed to be better.
Posted 2 months ago2024-07-02 22:31:59 UTC
in Creating a texture swap for a mod Post #348944
The process is exactly the same as any custom content for the mod: Place the custom assets in the corresponding folder in your mod's folder.

If you've already started working on your mod, you should have a folder at .../Steam/steamapps/common/Half-Life/<your_mod>.
Any custom models should then be placed in .../Steam/steamapps/common/Half-Life/<your_mod>/models.
This way when you launch the mod, it'll use the custom models instead of the vanilla models.

You can check out Tutorial: Setting up a Mod: Part 1 - Mod directory and liblist.gam (Steam) for more information about setting up a mod.
No problem! It's easy to miss things, sometimes all you need is another pair of eyes to take a look 🙂
I haven't tried TB yet, but I suspect that the CSG lacking a checkmark to the left of it, unlike the BSP just below it, in that screenshot might tell us that CSG is disabled.
The problem is that you're missing the CSG compiler at the start of the compilation process, you're only running BSP, VIS and RAD.

It should have been CSG -> BSP -> VIS -> RAD.
Posted 2 months ago2024-06-22 14:33:33 UTC
in sven co-op widescreen problem (again) Post #348913
The Sven Co-op engine (AKA Svengine) is a modified version of GoldSrc.
Even if it had the same engine, it's still a standalone game with its own executable and settings separate from Half-Life.

So, did you try out the advice you got in the other thread for Sven Co-op specifically?
Posted 2 months ago2024-06-21 12:48:50 UTC
in sven co-op widescreen problem (again) Post #348908
Did you try out the advice you got in the last thread for Sven Co-op as well?

Sven Co-op and Half-Life are two different games using separate executables and settings, so fixing the problem in one game won't affect the other.
Posted 3 months ago2024-06-12 07:50:31 UTC
in Playermodel hovering Post #348871
When you made the model replacement, did you shift the origin up to the center (36 units up from the bottom of the model)?

Most prop and monster models have the origin placed at the bottom/feet, but playermodels specifically has the origin at the center of the player bounds.
Posted 3 months ago2024-06-04 22:20:57 UTC
in I made a wad but some textures don't show up. Post #348851
Is the valve/aleph.wad the same WAD package that has been updated, or is your Game Configuration in JACK pointing to a different WAD file?
Posted 3 months ago2024-06-02 08:13:50 UTC
in why decals doesnt show up Post #348849
Both the Apply Decals tool and the infodecal entity it creates can only use textures from decals.wad. Any other textures won't work.

To create signs using textures from any other WAD, such as halflife.wad, you can instead create a very thin brush with the chosen texture and tie it to func_detail.
User posted image
Set the Passable (zhlt_noclip) keyvalue to Yes (1) and then the player won't be able to collide with it.
Posted 3 months ago2024-06-01 21:13:24 UTC
in How do i run a map Post #348847
Congrats! 🥳

Keep it up!
Posted 3 months ago2024-06-01 15:24:05 UTC
in How do i run a map Post #348843
The compile tools are fine, the Run Dialogue are finding them and launching them without issue, as you can see from the compile log (again, you should read it).

The problem now, as you can easily find by reading the compile log, is that the WAD file /Users/marii/Documents/1compiletools/tools/sdhlt.wad is not found. You should change the entry for this WAD in the Game Configuration, to point to its location on the X:/ drive.
Posted 3 months ago2024-05-31 21:11:26 UTC
in How do i run a map Post #348838
Hi, and welcome to TWHL!

Please don't be intimidated by the compile log, it has a lot of useful information about the compile process and learning how to read it will be very helpful in the long run.
If you look near the end of the log, you will see the text
"There was a problem compiling the map."

When you see that, or a BSP was for some reason not produced, open the compile log in a text editor and search for the keyword "Error".
Compile logs like this will produce lines starting with "Error: " that will tell you what went wrong and oftentimes how to fix it.

Try it out yourself before continuing.

In this case the error is:

Error: Could not open wad file /Users/marii/Documents/1compiletools/tools/sdhlt.wad
Error: Could not find WAD file
Description: The compile tools could not locate a wad file that the map was referencing.
Howto Fix: Make sure the wad's listed in the level editor actually all exist

Unfortunately this one can be a bit cryptic. I noticed your compile tools and game directories are in two different drives (C:\ and X:\). The compile tools tend to have issues with finding files that are on a different drive, so I recommend moving the compile tools to the same drive as the game installation.
Posted 3 months ago2024-05-31 16:02:30 UTC
in How do I rotate sprites? Post #348836
Most sprites in GoldSrc already automatically rotate on their own, to face the player camera. This is known as Parallel Orientation. It is one of 5 Orientation types:
  • Parallel - Most common default type; image always faces camera
  • Parallel Upright - Locked to z-axis so only rotates to face camera (best for things that need to be placed on ground, for example trees or fire effect)
  • Oriented - Does not rotate to camera; has a fixed orientation defined in hammer (not for use with env_glow)
  • Parallel Oriented - Faces camera just like Parallel but can be rotated in hammer (not for use with env_glow)
  • Facing Upright - Lesser used mode that works just like Parallel upright, but rotation aligns with player origin instead of camera. (can be buggy at close distances, would only recommend for a specific effect)
- From The303's GoldSrc Sprite Tutorial
What you might want to use is the Oriented type. In vanilla HL1 you're not able to set a sprite's Orientation type through mapping, it must be done by editing the sprite file itself. You can use Half-Life Texture Tools to do this, either when creating a new sprite or when editing an existing one.

After that the sprite will obey the Entity Attribute: Pitch Yaw Roll (angles) keyvalue.
Posted 4 months ago2024-05-12 21:34:55 UTC
in Is it possible? Post #348796
By "particle" you likely mean sprite, which are 2D image objects in the game, and yes these can be attached to a playermodel and turned on/off based on various conditions such as when a flashlight is turned on/off.

Both making the sprite turn on/off, and limiting its use to only specific weapons, should be possible to code in CBasePlayer::FlashlightTurnOn() and CBasePlayer::FlashlightTurnOff() methods. Of course, you'll need to use programming for this using the SDK.
Posted 4 months ago2024-05-09 11:01:46 UTC
in Sven Co-op Repair men Post #348785
By "repair men", do you mean Gus?
Gus (forklift.mdl)Gus (forklift.mdl)
If so the model name is forklift.mdl and it's one of Half-Life standard assets (so this version from Half-Life/valve/models can be used in your mod).

On the other hand, if you mean some player model then there's /models/player/HL_Construction/HL_Construction.mdl and /models/player/HL_Gus/HL_Gus.mdl from Sven Co-op and these are specific to SC, which means that you should ask for permission to use these in your mod, and possibly need to do some conversion as the player skeleton and/or sequences are different between HL and SC.
As for using assets from the main games (such as Half-Life, Blue Shift and Opposing Force), it's generally fine to do so for a HL/BS/Op4 mod. So re-using a main game texture in your mod's WAD is all good.

It's only a problem if you lift these assets out of these games and put them in another non-Valve game.
Posted 4 months ago2024-04-29 18:10:07 UTC
in How to change hand texture throughout maps Post #348761
I remember seeing this being done in some mod, could it have been Azure Sheep?

If I recall correctly, there was basically a duplicated set of weapons, one that used the uniform-clothed hands and another with the hands wearing the HEV suit. Then at some point in the campaign you would be stripped of your weapons and find yourself a HEV suit before being given the HEV-variants of the weapons.

This is of course a game code change, not something that can be done purely through mapping.
Posted 4 months ago2024-04-29 05:29:58 UTC
in How to make fake elevator? Post #348759
If this is a singleplayer campaign, you can fake the elevator just like how it's done in the HL1 campaign (e.g. the transition from c1ac1 to c1a2, the end of Unforeseen Consequences and start of Office Complex). This is probably the easiest solution.

Basically there's no moving elevator whatsoever. Just a room that looks like an elevator, a set of doors, and a button inside to trigger a trigger_changelevel.
After the level transition you're taken to an identical "elevator" room. An env_shake creates a rumbling and various ambient_generics creates noise, together creating the illusion of movement. Do this for a few seconds, then trigger a ambient_generic with a "ding!" sound and trigger the doors to open.
Add other details/effects to taste.
If it has to be within one level, then as Urby says a trigger_teleport has no relative offset in vanilla GoldSrc which would be very obvious and immersion-breaking. Additionally, to "toggle" a trigger_teleport you need to use a multisource master as trigger_teleport cannot be triggered on/off directly.

Another solution, which is a lot more complex than the others, is instead of using func_door for the doors you use func_train. Essentially 3 trains moving together to create the elevator.
This sort of setup needs careful timing and path_corner's Fire on Pass key can be of great help with that.
Posted 4 months ago2024-04-26 21:57:16 UTC
in How to close door? Post #348751
The Delay before close (wait) value of -1 makes it never close.

What you likely want in this situation is a Delay before close value greater than zero, but with the Toggle (32) spawnflag set instead.
That way, the door will open the first time it's triggered, and then close on the next trigger.
Posted 4 months ago2024-04-19 18:28:41 UTC
in BEGINNER TO RESKINNING HALF-LIFE 1 MODELS? Post #348729
Hi and welcome to TWHL! It's nice to see someone with passion for learning to mod HL 🙂

Textures, whether for models or for maps, are very similar in requirements and how they're made. You can follow The303's map texture guide here.
For the image editor I can recommend Gimp. Alternatively there's also Paint.net, and for the final conversion to 8BPP BMP (AKA 256 colours indexed BMP) I recommend IrfanView as it does a really great job at preserving the colour quality. All three are free.

As for why the image loses quality when converting to 8BPP it's simply because you're reducing the amount of colour values that exists in the image, typically from 16,777,216 different colour values (24bit RGB) to only 256 colours!

For model viewers, these days it's recommended to use HLAM as it's far more up-to-date and have a lot of nice features.
Posted 5 months ago2024-04-16 15:44:37 UTC
in func_door_rotating problem Post #348719
Ah, I see. Thanks for the update, Solokiller!
Posted 5 months ago2024-04-15 07:03:40 UTC
in func_door_rotating problem Post #348712
Could you take a screenshot of your door's keyvalues with SmartEdit disabled?
Posted 5 months ago2024-04-06 13:48:12 UTC
in help me with this please Post #348691
Please post your solution, so that others that stumble upon this thread may learn from it. 🙂
Posted 5 months ago2024-04-05 07:21:11 UTC
in Gmod saves not loading Post #348688
I haven't messed around with GMod in quite some years, but could you give some more details?

When loading fails, is that only happening on a particular map?
And when you say loading works from a different map, is that any other map, or a specific map?
You can use a multisource as a logic AND gate (i.e. all inputs must be ON at the same time).

Make sure it's only your two trigger_multiple entities that are targetting the multisource.
Posted 5 months ago2024-03-18 13:42:00 UTC
in help with bug Post #348662
That's not a bug but instead a common level design error known as a Leak. It means that the level isn't properly sealed (all entities must be contained within world geometry).

This guide can help you fixing those leaks.
Posted 6 months ago2024-03-11 09:09:20 UTC
in Hurt trigger in map changes gravity!!! Post #348642
"model 0" is the worldspawn model, i.e. all world brushes (including func_detail).
The coordinates you get is the lower bounds (-X, -Y, -Z) and upper bounds (X, Y, Z) and the problem brush is within that box.
If it's hard to visualise this bounding box, you could make a box brush with those bounds, or use the Cordon Tool to limit the map to those bounds, and look if there's any misshapen brushes in there (either world brush or func_detail).
Posted 6 months ago2024-03-06 18:37:46 UTC
in Hurt trigger in map changes gravity!!! Post #348637
Hm, at a first glace it looks fine to me. Nothing that seems out of place and it doesn't seem like there's any direct contact, geometric or trigger-wise, between the trigger_hurt and the trigger_gravity volumes.

I ended up working longer than I expected today and so I think I'll wait until tomorrow to set up a DoD config and compile and test this myself, sorry.
If you want to, you could compile it yourself with -chart argument on the compile tools and check for warnings and any limits being reached, and run the map with developer 2 and check for any console messages when the trigger_hurt is triggered.