User:Dutchmega/code: Difference between revisions
No edit summary |
|||
Line 85: | Line 85: | ||
Just don't forget to change the define everytime you release a new version | Just don't forget to change the define everytime you release a new version | ||
== Improved lagcompensation code == | == Improved lagcompensation code == | ||
Line 134: | Line 129: | ||
* When you kill a combine with the combine ball, the (dropped) items/weapons aren't dissolved. | * When you kill a combine with the combine ball, the (dropped) items/weapons aren't dissolved. | ||
* APCs laserdot isn't hidden | * APCs laserdot isn't hidden | ||
* Grenades float in the air when dropped by an NPC | * Grenades float in the air when dropped by an NPC or when destroying an ammobox. | ||
* You hear the ammo-warningsound & deathsound when you spawn without any weapons | * You hear the ammo-warningsound & deathsound when you spawn without any weapons | ||
* NPCs aren't frozen at an intermission. | * NPCs aren't frozen at an intermission. | ||
Line 149: | Line 144: | ||
* Ammo in the HUD doesn't reposition good after an resolution-change | * Ammo in the HUD doesn't reposition good after an resolution-change | ||
* Many sounds of the physcannon are disabled in HL2DM | * Many sounds of the physcannon are disabled in HL2DM | ||
* Physcannon isn't predicted good, which results in weird results while picking up objects | |||
* You don't see swing-animations of stunstick & crowbar of other players | |||
* You don't hear fastzombie's alertsound | |||
* Metrocops won't walk around | |||
* Metrocop's stunstick isn't blue, like in SP | |||
* CPASAttenuationFilter doesn't work in MP, which results in not hearing sounds | |||
* Deathnotice won't always show when killed by an NPC | |||
<br> | <br> | ||
All fixed, so if you ask nice, I'll give you the fix.<br> | All fixed, so if you ask nice, I'll give you the fix.<br> | ||
Of course, there's a bigger list of missing features. For example: 'Get points when you kill an NPC' or a deathnotice with the name of the NPC that killed you. | Of course, there's a bigger list of missing features. For example: 'Get points when you kill an NPC' or a deathnotice with the name of the NPC that killed you. |
Revision as of 03:41, 9 July 2006
Making the antlion burn!
Add the following under protected
in npc_antlion.h
virtual bool AllowedToIgnite( void ) { return true; }
Well, now the damh thing burns but it doesn't visually respond to it. You can use the drown-animation: Add the following piece of code to the top of the function GatherConditions():
if( IsOnFire() ) { SetCondition( COND_ANTLION_IN_WATER ); }
UTIL_LoadTexture
Here's a very handy function from the Plan Of Attack source.
int UTIL_LoadTexture(const char *szFile) { #ifdef CLIENT_DLL char szStr[256]; // try to pull it int iID = vgui::surface()->DrawGetTextureId(szFile); // did we get it? if(iID >= 0) return iID; // does the file exist? Q_snprintf(szStr, sizeof(szStr), "materials/%s.vmt", szFile); if(!vgui::filesystem()->FileExists(szStr)) { DevMsg("UTIL_LoadTexture: texture %s does not exist!\n", szFile); return -1; } // create the new texture iID = vgui::surface()->CreateNewTextureID(); vgui::surface()->DrawSetTextureFile(iID, szFile, true, false); return iID; #else return -1; #endif }
Disallow players connecting to a server with a different version
Add the file version.h
to your game_shared and add it to both projects. Content:
#define VERSION "0.01"
Then add to cdll_client_int.cpp
:
void cl_versionCallback_f( ConVar *var, char const *pOldString ) { if( Q_stricmp( var->GetString(), var->GetDefault() ) ) var->Revert(); } static ConVar cl_version ( "cl_version", VERSION, FCVAR_USERINFO|FCVAR_CLIENTDLL, "The version of this mod", cl_versionCallback_f );
Then open GameInterface.cpp
and find the function ClientConnect()
Replace the contents of that function with this:
// DM: Get the version of the client and compare it with the server's version const char* version = engine->GetClientConVarValue( engine->IndexOfEdict( pEdict ), "cl_version" ); if (stricmp(VERSION, version) == 0) { return g_pGameRules->ClientConnected( pEdict, pszName, pszAddress, reject, maxrejectlen ); // Aka true } else { char string [256]; Q_snprintf( string, sizeof(string), "The server runs a different version (%s)", VERSION); Q_strcpy( reject, string ); maxrejectlen = strlen(string); return false; }
Just don't forget to change the define everytime you release a new version
Improved lagcompensation code
Open dlls/player_lagcompensation.cpp
and replace, around line 369
// lost track, too much difference return;
with
// DM: Some small improvements for lagcompensation // From Plan of Attack-source // did we found a context smaller then target time ? if ( record->m_flSimulationTime <= flTargetTime ) break; // hurra, stop // store this position for the next time through the loop prevOrg = record->m_vecOrigin; // go one step back curr = track->Next( curr );
Also take a look at the code from Sticky Player Collisions
Bugs found while making a HL2 co-op mod
- NPCs don't work with the HL2MP weapons
- You don't see blood
- You hear the warning-sound when you spawn without any weapons & ammo.
- Fallen items/weapons from NPCs respawn.
- APC doesn't aim good
- Metropolice with stunstick doesn't work
- Citizens with RPG don't work
- You don't hear footsteps of NPCs.
- Crash or 'players not dropping objects' when hit hard and have something picked with the gravity gun.
- Sceneentity doesn't find
!player
. effects/strider_muzzle
not precached when you spawn an combine with the AR2.- Deaths are not counted at the scoreboard when killed by an NPC.
filter_damage_type
-entity doesn't work- Commanding citizens doesn't work.
- Hoppers don't work
- You don't see tracers & muzzleflash when a NPC shoots
- Flashlight isn't aimed in the right direction if the model has a stunstick/crowbar/grenade.
- You don't hear tracer-sounds
- Items/weapons with the SF_NORESPAWN flag move to their original position.
- You hear the metropolice deathsound (radio) when you kill it with the combine ball.
- Scanner doesn't find any players when it's only allowed to inspect players.
- When you die in the water, the underwater-ambientsound never stopts.
- Combine soldiers don't do hand signals
- When you kill a combine with the combine ball, the (dropped) items/weapons aren't dissolved.
- APCs laserdot isn't hidden
- Grenades float in the air when dropped by an NPC or when destroying an ammobox.
- You hear the ammo-warningsound & deathsound when you spawn without any weapons
- NPCs aren't frozen at an intermission.
- env_message doesn't work in MP
- It's possible to turn on the flashlight without the suit.
- You don't see the muzzleflash/tracer of a func_tank gun.
- You don't see underwater bubbles
- When the player is on fire and dies, the fire doesn't disappear when he respawns
- Using shield-scanner in maps is not possible unless the mapname begins with
d3
- Scriptsound NPC_CeilingTurret.ShotSounds doesn't exist
- Not all sk_ variables in the
game_shared
have the flag FCVAR_REPLICATED - The sk_ damage variables for the crowbar and stunstick are removed in HL2DM
- Stunstick-sparks (random effect) are shown while the stunstick isn't the active weapon
- Ammo in the HUD doesn't reposition good after an resolution-change
- Many sounds of the physcannon are disabled in HL2DM
- Physcannon isn't predicted good, which results in weird results while picking up objects
- You don't see swing-animations of stunstick & crowbar of other players
- You don't hear fastzombie's alertsound
- Metrocops won't walk around
- Metrocop's stunstick isn't blue, like in SP
- CPASAttenuationFilter doesn't work in MP, which results in not hearing sounds
- Deathnotice won't always show when killed by an NPC
All fixed, so if you ask nice, I'll give you the fix.
Of course, there's a bigger list of missing features. For example: 'Get points when you kill an NPC' or a deathnotice with the name of the NPC that killed you.