Half-Life Enhanced Created 1 year ago2016-07-15 18:57:29 UTC by Solokiller Solokiller

Created 1 year ago2016-07-15 18:57:29 UTC by Solokiller Solokiller

Posted 1 year ago2016-08-10 17:42:26 UTC Post #331153
I've refactored the client's HUD colors.

Previously, HUD colors were referred to directly. Most were references to RGB_YELLOWISH. Now, all 3 most commonly used colors are members of CHud.

This covers the primary HUD color (RGB_YELLOWISH), empty / nearly empty items (RGB_REDISH), and the ammo bar (RGB_GREENISH).

In addition, i've added the ability to customize these colors on a per-map and per-player basis.

You can specify colors in worldspawn to use instead of the default colors, and a new entity called player_hudcolors can control hud colors at will. You can modify an individual player's hud colors, or change all players' hud colors. You can also reset the colors to the global defaults set in worldspawn, or the game defaults, if no overrides exist in worldspawn.

Some screenshots to show what it looks like:

This is the "serious" color scheme; dark green primary color, dark gray for empty items, and red for the ammo bar.
User posted image
This is the "goofy" color scheme; pink colors for primary and empty items, white for the ammo bar.
User posted image
This is the map default; a bright green primary with blue empty items, and average gray for the ammo bar.
User posted image
Unfortunately, crosshairs are unaffected since those have multiple colors. I'll have to add support for HUD sprite overriding on a per-map and per-player basis to support that.

You can check this out for yourself on the test map, it's called test_hudcolors. The green square switches to serious, the red square switches to goofy, and the blue square switches back to default.
Posted 1 year ago2016-08-10 18:06:17 UTC Post #331156
This is great and all, but why would you change the default from the standard Half-Life HUD color?
Posted 1 year ago2016-08-10 18:19:54 UTC Post #331157
If you wanted to make custom maps that use a different HUD color. For example, if you ported Opposing Force you could set the HUD color to green.
Posted 1 year ago2016-08-11 11:45:16 UTC Post #331165
will be possible to create a custom GUI where a player is able to buy a weapons and ammunition in angel script?
Posted 1 year ago2016-08-11 13:49:31 UTC Post #331171
Eventually, yes. At some point the means to create your own VGUI UI will be possible, allowing you to do pretty much anything. The communication between the server and the client will be the hard part, but i'm sure there's a way to solve that problem.
Posted 1 year ago2016-08-14 08:24:46 UTC Post #331222
This is the first time I use CMake to build a project, so my questions will reach the level 999 of the noob level.

First thing I would like to know is how to setup properly the "SteamCommon" variable for the "CMakeLists.txt", my dirty workaround was to edit this file and add "SET(ENV{SteamCommon}, '~/.steam/steam/steamapps/common')" at the beginning. I guess it would have been better to do "export SteamCommon='~/.steam/steam/steamapps/common'" but I had the "Steam common folder not found".

Second thing is how do I build the projects ? I tried to "cmake .", "cmake Makefile2" but I don't find the Makefiles or whatever they are.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-14 09:11:09 UTC Post #331224
If you're using the CMake GUI you can set the variable in the GUI after configuring once. I haven't used the command line for this, but this should be how it's done: http://stackoverflow.com/questions/12896988/passing-the-argument-to-cmake-via-command-prompt

CMake itself doesn't build projects. It generates project files using a given build system. On Linux i use makefiles. When you first configure the project it will ask you which build system you want to use.

You'll have to select a source directory and a binary directory. The source directory is the root Git directory containing the main CMakeLists file.

The binary directory is any directory of your choosing, but i use projects_*, where * is the platform. For Linux i use projects_Linux. These directories are excluded from Git so you can place them inside the repository.

When you've set the source and binary directories, configured and set up the SteamCommon & other options, generate the build system-specific files. Then you can compile it. On Windows, you can open the generated solution. On Linux, you can execute make in the bin directory to build it.

Note that you'll need CMake 3.6 which apt-get won't install. You'll need to download it from their site. I symlinked usr/bin/cmake and usr/bin/cmake-gui to the install so it works.

Once you've set everything up, any changes made to the CMakeLists files will be automatically included when you make since it checks for modifications. Still, i prefer to manually regenerate the makefiles after making changes. On Windows, it will also detect changes, but will only prompt to reload projects after finishing a build. I'm not sure if it includes the changes in the build or not, but i don't take the chance.
Posted 1 year ago2016-08-14 16:26:46 UTC Post #331236
You misunderstood my question on the HUD colors. I'm not asking why "someone" would change the HUD color, I'm specifically asking you, why did you make the default green (which is not HL's normal color)?
Posted 1 year ago2016-08-14 16:33:34 UTC Post #331237
It's only default for that map. It's an example, hence the name of the map being test_hudcolors.
Posted 1 year ago2016-08-14 16:33:45 UTC Post #331238
@Unq : I think SoloKiller misformed his sentence because at the time I am writing this:

Color.h
#define RGB_YELLOWISH MAKE_RGB( 255, 160, 0 )

And this is the RGB code that correspond to Half-Life's orange, so no worries ^^
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-14 16:49:25 UTC Post #331240
OK that makes sense. It was not clear from your explanation.
Posted 1 year ago2016-08-14 16:53:10 UTC Post #331241
Sorry about that, i didn't realize that i was unclear about how it works. I'm not changing the default look and feel of the SDK, just making it easier to work with.

Also, the constants you should look at to know which colors are being used are in HudColors.h. That defines the HUD_DEFAULT_* constants which are used in code. I'm not going to change the RGB_* constants since that would be confusing. RGB_YELLOWISH being green wouldn't make much sense after all.
Posted 1 year ago2016-08-16 10:22:25 UTC Post #331267
I've added global model replacement support. You can now specify a file in worldspawn's properties that contains a list of filenames to replace.

The file format is simple enough:
"path/to/original/filename.ext" "path/to/replacement/filename.ext"
The replacement file extension doesn't matter, i used .txt. The path for the file starts in the mod directory, which is hlenhanced in this case.

To add this i added a new feature to the server: the ability to override engine functions. You can replace the function and handle calls yourself, or process the inputs/output before passing it along. Currently PrecacheModel and SetModel are overridden for global model replacement.

The implementation for this can be found in ServerEngineOverride.h and ServerEngineOverride.cpp.

To allow you to call the engine's implementation a new global g_hlenginefuncs has been added. This represents the unmodified engine functions.

I could use this to implement non-shutdown versions of precache and model setting functions. Keeping a list of precached models will allow the server to check if it was precached before trying to set it, and late precaching can be ignored to prevent shutdowns. This should reduce the chances of server shutdowns.
Posted 1 year ago2016-08-16 13:28:04 UTC Post #331274
I've fixed some issues with the new weapons code and CMap class instantiation. After level transitions in singleplayer the game would crash because weapon data isn't initialized yet by that time, so i've worked around the issue. I've also added a workaround to detect the earliest moment that a new map has started. They're pretty ugly hacks, but they get the job done.

I really wish i had a way to add new interfaces to the engine, because this isn't a very good way to handle these problems.
Posted 1 year ago2016-08-16 18:56:51 UTC Post #331282
I gave another try on Linux, I managed to get the CMake part working, some fixes were required however :

common/CMakeLists.txt - Minmax.h -> MinMax.h
game/server/entities/NPCs/CMakeLists.txt - CHassassin.h -> CHAssassin.h
game/server/entities/NPCs/CMakeLists.txt - CHassassin.cpp -> CHAssassin.cpp
Rename CHassassin.cpp to CHAssassin.cpp
game/server/entities/NPCs/CTalkMonster.cpp - #include "defaultai.h" -> #include "DefaultAI.h"

After that, it fails on "CSaveRestoreBuffer.cpp" because "_rotr was not decalred on this scope". I tried to add <stdio.h> or <cstring> as some Internet searches suggested but it failed.

I'm using the latest version of Manjaro XFCE 64 bits (Ubuntu/Debian refuses to work on my VMs), I run the latest Linux kernel (4.7) and CMake (3.6.1), I do have GCC/G++ 5 and 6 (and the multilib counterparts), that error happen on both GCC/G++ 5 and 6.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-16 20:36:08 UTC Post #331284
I had problems with _rotr as well. It's defined as a macro in newer versions of GCC on my system, so it is only defined in util.cpp if it doesn't exist. I guess the code was relying on old C behavior where you can call functions without declaring them. I'll add a declaration to util.h to hopefully fix this.

I'll also fix the other issues you've listed.
Posted 1 year ago2016-08-17 16:12:22 UTC Post #331285
I've fixed the issues you noted, including adding a declaration for _rotr if it's not declared. It should work now, if not something else is going on.
Posted 1 year ago2016-08-18 07:36:38 UTC Post #331292
Another try, I'm almost there ^^

usr/bin/ld : can't find -l:/home/shepard.steam/steam/steamapps/common/Half-Life/vgui.so
collect2: error : ld returned 1 as execution code state
make[2]: *** [CMakeFiles/client.dir/build.make:4524: home/shepard.steam/steam/steamapps/common/Half-Life/hlenhanced/cl_dlls/client.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:105: CMakeFiles/client.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

The path to "vgui.so" is correct (unless CMake doesn't like symbolic links).
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-18 11:45:00 UTC Post #331293
It's unable to find vgui.so. Does it actually exist on your system?

EDIT: I recompiled the client on Linux. I got the same error as you, but after clearing the CMake variable for vgui and rerunning CMake it works.
Posted 1 year ago2016-08-18 16:47:18 UTC Post #331295
I still have the error even with all paths to "vgui.so" that are correct.

I tried those paths for STEAMCOMMON :
home/shepard.steam/steam/steamapps/common
~/.steam/steam/steamapps/common
home/shepard.local/share/Steam/steamapps/common
~/.local/share/Steam/steamapps/common

And CMake gave me those paths for VGUI :
home/shepard.steam/steam/steamapps/common/Half-Life/vgui.so
~/.steam/steam/steamapps/common/Half-Life/vgui.so
home/shepard.local/share/Steam/steamapps/common/Half-Life/vgui.so
~/.local/share/Steam/steamapps/common/Half-Life/vgui.so

All of them failed, I even tried the "vgui.so" in the "linux" and "linux/release" folder.

I tried to leave the CMake variable empty and it fails, if I remove the CMake variable from the cache, it regenerate the path to "vgui.so" inside the Half-Life folder.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-19 10:37:17 UTC Post #331302
Could you look for the linker settings in the generated makefile? Maybe there's something we're missing in there.

I have this in projects_Linux/CMakeFiles/client.dir/link.txt:

-l:"/home/sam/.steam/steam/steamapps/common/Half-Life/vgui.so"

That works for me.
Posted 1 year ago2016-08-20 08:16:35 UTC Post #331314
I've cleaned up the client side some more. The WeaponsResource class has been merged into CBasePlayer, making most code work like it does on the server side. Client side ammo counters are stored in the server's client synchronization variables to avoid stomping on prediction data.

Additionally, global variables in the various hud class files have been moved into their respective classes, making code cleaner than before. Unused code and types have been removed as well.

I've also fixed a bug in the CHudSayText class that was introduced with the conversion to Vector where the wrong array dereference order was used, causing garbage values to be used for player colors.

I've also made sure that player text is always printed using yellow. As the comment in the code says, the color is reset after every draw call. Specifically, to the con_color cvar.

I also fixed non-player saytext using the last color that was set.

I'm going to clean up the VGUI code a bit, moving classes and utility code to their own files to reduce the size of the viewport files, and to tidy stuff up.

I know there are some bugs in that code so i'll be on the lookout for anything suspicious.

I'm considering moving all of the CHud* classes to VGUI. This would eliminate the older Hud stuff and merge everything together, at the cost of not being able to use sprites to draw the Hud anymore. It might make drawing things like crosshairs at a higher resolution easier, i'm not sure about that.
Posted 1 year ago2016-08-20 08:37:32 UTC Post #331315
I have the exact same thing except that it's "shepard" instead of "sam", I'm going to try with a 32 bits Manjaro instead of a 64 bits one to see if it makes any difference or not.
I'm considering moving all of the CHud* classes to VGUI. This would eliminate the older Hud stuff and merge everything together, at the cost of not being able to use sprites to draw the Hud anymore. It might make drawing things like crosshairs at a higher resolution easier, i'm not sure about that.
What about letting the modder choose between the "sprites HUD" and the "VGUI HUD" (using something like "USE_VGUI_HUD" like it's friend "USE_OPFOR") ?

Sent you a PR about missing "USE_OPFOR" conditions for the M40A1 bullet and damage. There also was a missing "break" statement that would make the M40A1 fire it's bullet and the default one.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-20 09:10:11 UTC Post #331316
I've merged your pull request.

It's possible that ld can't find vgui because it's 32 bit, so that's definitely a good thing to check.

I can rework the UI code to make switching between the CHud* and VGUI classes relatively easy. I'll have to see about that, i've got some things to take care of before that becomes an issue.
Posted 1 year ago2016-08-20 11:28:56 UTC Post #331319
Even on Manjaro XFCE 32 bits it fails, and the path to "vgui.so" is correct, I can remove/copy/rename it.

Just by curiosity, which Linux distro are you using ?

EDIT : Also, there is a typo fix on GitHub's little description "Half-Life Enhanched. Vanilla SDK with improvements." Look at "Enhanched", one "h" to remove.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-20 13:44:02 UTC Post #331322
I'm using Ubuntu 14.04 LTS 64 bit. I've been using this install for a quite a while, so perhaps there's something i set up a long time ago that's allowing it to work. I'll look into it and see what i can do.

I've corrected the descriptions, thanks for letting me know.

I've seen your PR regarding the Pipe Wrench and commented about FindHullIntersection. Once that's been moved it can be merged in.
Posted 1 year ago2016-08-20 17:26:22 UTC Post #331323
I made a test again using Lubuntu 14.04.5 32 bits and it's working, I don't know if Manjaro or Arch Linux made something that prevent me to compile or whatever.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-20 17:30:38 UTC Post #331324
Maybe some systems require the directory that the library resides in to be passed in with -L and the library name to be passed in with -l? I'm not sure how that would work in CMake though.
Posted 1 year ago2016-08-20 20:05:01 UTC Post #331325
I can confirm that changing "-l" to "-L" under Manjaro works. I'm gonna update the wiki instructions.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-21 16:45:27 UTC Post #331349
I've added the M249. Everything seems to be working great. I found a possible bug in Op4: it save/restores the reload start time as a float instead of as a time, so if it restores a different time it can end up out of sync.

I changed the Pipe Wrench bullet type constant so the 5.56 value matches that of Opposing Force.
Posted 1 year ago2016-08-21 20:12:32 UTC Post #331352
I've also added the Desert Eagle. I'm pretty sure it works, the laser required a bit of extra networking.

I also added a zoo map for all the weapons. For those unfamiliar with the concept, zoo maps are maps that contain all of a certain type of object, a "zoo" of them. Valve uses them to prototype and test and features.

I also noticed that the Pipe Wrench uses the Crowbar's bullet type in Opposing Force. Should we merge this or keep it as a separate constant?
Posted 1 year ago2016-08-21 20:23:16 UTC Post #331356
I also noticed that the Pipe Wrench uses the Crowbar's bullet type in Opposing Force. Should we merge this or keep it as a separate constant?
I suggest the merge, in that way, we'll stick to vanilla Opposing Force.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-21 21:46:06 UTC Post #331358
I've merged the bullet type.

Tomorrow i'm going to try to add some more weapons. All that's left now is the Barnacle Grapple, Displacer, Spore Launcher and Shock Rifle.

The Penguin bomb would probably be nice to have too i guess.
Posted 1 year ago2016-08-21 21:50:36 UTC Post #331359
Don't forget the knife too.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-22 09:33:48 UTC Post #331364
Thanks for reminding me :)

I've added the knife. The Crowbar, Pipe Wrench and Knife share a lot of code, so their classes should probably be refactored into something like CBaseMeleeWeapon or something.
Posted 1 year ago2016-08-22 09:57:06 UTC Post #331365
That would require to do the same thing with other weapons, the common thing between the Glock, Python, Desert Eagle, MP5, Shotgun, M40A1 and M249 is that they are firearms (that would be a CBaseWeaponFirearm). Crossbow, RPG, Hornet gun, Spore Launcher and Shock rifle would be projectile weapons (CBaseWeaponProjectile). Gauss and Egon are laser weapons (CBaseWeaponLaser). Hand grenades, Squeak grenades and Penguin bombs are throwable weapons (CBaseWeaponThrowable). Only the Barnacle is "special".

I don't know if it would be good or not, maybe someone else can decide if it will be good or not.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-22 11:42:31 UTC Post #331368
That's how it's done in Source, at least for hitscan weapons.
Posted 1 year ago2016-08-22 14:15:25 UTC Post #331369
Don't forget the knife too.
What about weapon_baguette? :o
Posted 1 year ago2016-08-22 15:44:53 UTC Post #331370
What about weapon_baguette? :o
Not part of Half-Life or any other official addon ^^
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-22 16:52:25 UTC Post #331371
If you can prove it's in any official Half-Life game i'll add it.

I've added the Barnacle Grapple. It should work, but i experienced some issues while adding it. If sv_maxvelocity is lower than normal the tip might veer off course.

I also fixed some issues while working on it:
  • Crosshair drawing has been moved up to allow weapons that don't use ammo to use crosshairs.
  • Scientists could crash the game by talking about being afraid of a removed entity.
I've also added some stuff to zoo_weapons to test out the Grapple as well as other weapons. If you're playing it in multiplayer, make sure to set mp_allowmonsters to 1 to spawn the monsters.

That's it for the melee weapons. Up next is the shock rifle.
Posted 1 year ago2016-08-22 22:38:32 UTC Post #331376
I've added the shock rifle. It's identical to the Op4 version with a few exceptions:
  • Holding down secondary attack doesn't prevent ammo regen.
  • The discharge sound that plays when you fire underwater plays on a different channel to prevent regen from stopping it.
The shock beam might be slightly off center, but that also happens in Op4.

I'd like to make it clear that this code did not come from Sven Co-op. I remember seeing very similar looking code (same variable and method names), so to dissuade any accusations later on, i did not use their work.

EDIT: i've moved the beam effects to the client side, which also allows them to be used in multiplayer without any additional lag.
Posted 1 year ago2016-08-23 15:44:08 UTC Post #331392
I've added the Displacer Cannon, as well as entities that are required for it to function:
Xen and Earth targets have been added, as well as trigger_xen_return, which teleports the player to the best Earth target.

The algorithm to determine that target works as follows:

When the player teleports to Xen, the position in the world where the player was is stored. When you teleport back, the Earth target closest to that position is where you'll be sent.

In addition, the beam effects have been made client side, which eliminates 4 beam entities on the server side, and allows them to be visible in multiplayer games.

It also handles the firing animation and sound on the client side, which was previous handled on the server side.

To accomplish this i needed to add a new feature on the client side: the ability to run think functions for weapons. This means that weapons can set think functions for delayed events on the client, just like on the server side.
Only the active weapon supports this at the moment.

There is some CTF specific code that is currently commented out. If and when i add CTF gamerules, i'll add that as well.

Only 2 weapons remain: the Spore Launcher and the Penguin bomb.
Posted 1 year ago2016-08-23 17:51:40 UTC Post #331395
I'm really so impressed with your efforts here Solokiller. In a way it's sad of course that you left or got kicked out of the Svencoop team. But for that from all I read we seem to benefit in a much more polished Half-Life version pretty soon.

So my highest gratitude to you Solokiller +Shepard62700FR for helping out on location.

Will you eventually add some Spirit like features once the main code has been cleared of any remaining bugs or commented out features? Thinking about model swaps in this particular case or adding custom npc voices also a spirit feature. Of course that possibly would be something for a very far away future day.

That with the rope you re-added as 1st person ever - the weather/fog effects - the fixes and op4 entities alone would make every hl1 mappers dream come true. At least for those of us that are unable to code for themselves. :) Again epic work and please keep going with this!
Posted 1 year ago2016-08-23 18:03:56 UTC Post #331396
Thanks for the compliments, i really appreciate it :)

The whole Sven Co-op situation is pretty disappointing, but there's nothing that can be done about that. They want to do things a particular way, and i don't agree with it (nor do a fair number of people from what i've heard). Given recent additions to HLE, this mod might cover SC's feature set at some point. I hope i won't get accused of making a spin-off again as a result, but i don't think i have to worry about that.

I've already added global model replacement, and the framework for per-entity model replacement is already partially in place. Once i'm done with the weapons i'm going to overhaul the monster code to deal with code duplication.
The main monster initialization pattern will be defined in one place, and that'll make adding things like per-entity model replacement trivially easy to add. Things like player ally settings will be easy to add at that point as well.

Custom voices will be possible sometime after the talk monster overhaul is done. I have to rework CTalkMonster into a component class for that.

I'm hoping i get a response from Valve regarding the engine, if they go for any form of access or community support that'll make my job a whole lot easier.
Posted 1 year ago2016-08-23 20:00:21 UTC Post #331401
I'm really so impressed with your efforts here Solokiller. In a way it's sad of course that you left or got kicked out of the Svencoop team. But for that from all I read we seem to benefit in a much more polished Half-Life version pretty soon.
A few days ago I came across Solokiller's interesting technical Gold Source details post on Sven-Coop forums, I started reading it and like an idiot I forgot to bookmark it. I wanted to read the rest today so I made a Google search and the first results were the "Sven Co-op drama", I did read some stuff from both sides and I was horribly shocked that one of the most popular Half-Life 1 mods have to suffer from this.
So my highest gratitude to you Solokiller +Shepard62700FR for helping out on location.
I don't think I deserve any kind of credit but thanks ^^
Will you eventually add some Spirit like features once the main code has been cleared of any remaining bugs or commented out features? Thinking about model swaps in this particular case or adding custom npc voices also a spirit feature. Of course that possibly would be something for a very far away future day.
Some Spirit of Half-Life features need to be recoded because they relies on dirty hacks and/or dirty systems (like the state system). Also, I think that some or most of the Spirit of Half-Life features can be replicated with Angelscript.
The whole Sven Co-op situation is pretty disappointing, but there's nothing that can be done about that. They want to do things a particular way, and i don't agree with it (nor do a fair number of people from what i've heard). Given recent additions to HLE, this mod might cover SC's feature set at some point. I hope i won't get accused of making a spin-off again as a result, but i don't think i have to worry about that.
As you always said, the primary goal of Half-Life Enhanced is to provide a better "modding experience" mostly for programmers but also for other areas of modding. Unless you change the whole co-op game rules to mimic Sven Co-op's, you shouldn't have any problem.
Custom voices will be possible sometime after the talk monster overhaul is done. I have to rework CTalkMonster into a component class for that.
Something that I disliked with Spirit of Half-Life is the fact it allow you to change the sentence group only (BA_, SC_), changing the "hardcoded" sound (pain, death...) wasn't possible.
I'm hoping i get a response from Valve regarding the engine, if they go for any form of access or community support that'll make my job a whole lot easier.
I remember that all members of TWHL isn't aware of this so I might explain. At the end of June, Solokiller and some other Half-Life 1 modders have started a petition to Valve to provide the complete engine source code of Half-Life 1 (like id Software did with most of their games). The main reason of why we ask this to Valve is to let the community have more freedom for their mods but also make sure give a fresh look to Gold Source, and by fresh look, we don't mean SSAO, HDR, bloom and such. We mean, optimization, documentation and also better compatibility with modern toolsets and hardware. The petition and some extra details are available here for those who are interested. Thank you.

UPDATE : If I remember correctly, I saw on Sven Co-op's Discord server that the forums will be wiped out once the leader (Sniper) finished the website, so unless someone else tells me that I've been dreaming and/or stupid, you might want to start some backups.
Shepard62700FR Shepard62700FRHalf-Cat is watching...
Posted 1 year ago2016-08-23 20:11:07 UTC Post #331402
I don't think I deserve any kind of credit but thanks ^^
Well by reading some of your previous posts you did conduct testing and reported some issues to solo so that makes you some sort of tester and bug hunter too. ;) My gratitude stays with you. :P
Something that I disliked with Spirit of Half-Life is the fact it allow you to change the sentence group only (BA_, SC_), changing the "hardcoded" sound (pain, death...) wasn't possible.
Agreed although what bothered me even more is the fact that it was only possible for Human like npcs which actually talked. What about monster sound replacements. Not necessarily limiting that to simple re-skins. Plenty of models out there shared the same animation sequences and attack patterns but had a completely different model. So with the spirit AI code mimic feature you were able to use these monsters after all but couldn't change their sounds.
The main reason of why we ask this to Valve is to let the community have more freedom for their mods but also make sure give a fresh look to Gold Source, and by fresh look, we don't mean SSAO, HDR, bloom and such. We mean, optimization, documentation and also better compatibility with modern toolsets and hardware.
Yes that would be lovely indeed. I doubt though that Valve would jump onto that train. They don't strike me as company releasing their engine codes. Might be a License thing might be the fact that it could threaten their sales etc. But ya lets hope for the best. I will sign it as soon as I remember my Github login. ^^
Posted 1 year ago2016-08-23 20:12:55 UTC Post #331403
In the Goldsource world, everybody should make backups of everything! But yeah, if you're right, everybody should work on it!
Posted 1 year ago2016-08-23 21:30:25 UTC Post #331406
I don't think I deserve any kind of credit but thanks ^^
You've helped me out quite a bit so far, and noted some important things that i've missed. It has definitely helped to have somebody checking things :)
As you always said, the primary goal of Half-Life Enhanced is to provide a better "modding experience" mostly for programmers but also for other areas of modding. Unless you change the whole co-op game rules to mimic Sven Co-op's, you shouldn't have any problem.
Never underestimate the SC team's ability to feel like they're being attacked in some manner.
UPDATE : If I remember correctly, I saw on Sven Co-op's Discord server that the forums will be wiped out once the leader (Sniper) finished the website, so unless someone else tells me that I've been dreaming and/or stupid, you might want to start some backups.
Sniper's been saying that for a while. He wants to replace the forums with one that uses Steam account integration, and archive/purge the current forums. One of the reasons he cited was people using old threads to start discussions on how the team is being mismanaged.

Also keep in mind that i wrote the thread about the engine before i had access to it. Some of it is based on what i was told by programmers that did have access at the time.

I've added the Spore Launcher and spore ammo plant thing.

I'm not 100% sure that the plant works as it should since i had to rotate its spore launch direction, which didn't appear to be the case in Opposing Force. If it's shooting out the wrong way, that'll be why.

I'm pretty sure i networked all required variables, but they should be double checked to be sure.

Now there's just the Penguin. I've never used it, but if i understand it correctly it's a reskinned Snark, so it should be easy enough to add.

EDIT: a Penguin that blows up, apparently.

Regarding sound replacement, i'll have to implement a solution that works on the client side as well as the server side since some sounds are handled through animation events. Ideally i'd implement a server -> client data transfer system for that, so that no matter how many replacements are in use, the client will always get the full list. I should be able to cannibalize the ENet client server prototype for that.
Posted 1 year ago2016-08-24 14:06:26 UTC Post #331412
I've added the Penguin Grenade. That finishes all weapons, though some testing is required to make sure there are no edge cases or networking issues.

Note that impulse 101 does not give them, since it doesn't do that in Opposing Force.
Posted 1 year ago2016-08-24 16:19:58 UTC Post #331416
Em impulse 101 gives me all opfor weapons in Opposing Force except the Pingu. ;) I know as I mod for it almost every day. :)
You must be logged in to post a response.