diff --git a/docs/zr.css b/docs/zr.css index e165a60..8257dd0 100644 --- a/docs/zr.css +++ b/docs/zr.css @@ -104,7 +104,7 @@ td { text-align: left; vertical-align: top; - padding: 3px; + padding: 5px; } td.commandheader @@ -128,7 +128,7 @@ th color: #900000; vertical-align: top; text-align: left; - padding: 3px; + padding: 5px; border-bottom-style: solid; border-bottom-width: 2px; } diff --git a/docs/zr_manual.htm b/docs/zr_manual.htm index 99dad07..9b1165d 100644 --- a/docs/zr_manual.htm +++ b/docs/zr_manual.htm @@ -4113,29 +4113,690 @@ might help.

When jumping it's not easy for humans to hit the head and they can't get that good knock back anymore. With multiple zombies jumping fast, pushing eachother on their way into a tube, the humans are doomed. The tube camping problem much better balanced. This problem can also be solved by -using a class editor volume or anti-camp in tubes and +using a class editor volume or anti-camp in tubes and vents.

-

5. Troubleshooting

+

5. Troubleshooting

-

5.1 Verifying Requirements

-

5.2 Startup

-

5.3 Error Messages

-

5.4 Common Problems

-

5.5 Known Issues

+

5.1 Verifying Requirements

+

5.2 Startup

+ +

5.3 Error Messages

+ +

There are several error levels that are handled differently in the plugin. Fatal errors +will stop the plugin, errors might disable features, and warnings will usually fall +back to a default action.

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Error Messages
Module:Type:Message:
-fatalUnexpected error encountered loading: <file>
+

Description: Something wrong happened when trying to parse/open a + configuration file.

+

Cause: File permissions, or (for developers:) that invalid file + structure were specified when loading.

+
accountfatalOffset "CCSPlayer::m_iAccount" was not found.
+

Description: The required offset for accessing players' money value + wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
configerrorInvalid reload function for config: <module config>
+

Description: Couldn't get the function for reloading the specified + module. This should never happend, unless someone tampered with the code.

+

For developers: If you're doing modifications/additions in the config + system make sure you "register" the module as described in top of + config.inc.

+
downloadsfatalMissing downloads file: <file>
+

Description: Startup validation failed because the + list of downloads could not be found.

+
downloadserrorMissing file <file>
+

Description: Couldn't find the specified file during validation of + download list content. Verify that the path is correct (path is relative to the + cstrike folder). Check for typos.

+
hitgroupsfatalMissing hitgroups file: <file>
+

Cause:Startup validation failed because the hit groups + file could not be found.

+
hitgroupserrorNo usable data found in hitgroups config file: <file>
+

Cause: The hit groups file is empty, - or there's a typo so the parser + think it's empty. Check for missing quotes (") or brackets ({ }).

+
hitgroupserrorUnexpected error caching data from hitgroups config file: <file>
+

Description: Something wrong happened when trying to parse/open a + configuration file.

+

Cause: Usually file permissions, or (for developers:) that invalid + file structure were specified when loading.

+
hitgroupserrorCouldn't cache hitgroup data for: <hit group name>
+

Description: Couldn't find the specified hit group name in the + configuration file.

+

Cause: A quote is missing somewhere, or the hit group section is + actually missing.

+
modelsfatalMissing models file: <file>
+

Description: Startup validation failed because the + list of models could not be found.

+
modelserrorError opening model path directory: <directory>
+

Description: The model path doesn't exist. Check for typos. Path + is relative to the cstrike folder.

+
modelserrorMissing model files on server (<file>)
+

Description: The model file doesn't exist. Check for typos. Path + is relative to the cstrike folder.

+
modelsfatalNo usable (public) model paths in <file>
+

Description: There's no public models to be assigned zombies and humans.

+

Cause: Typos or invalid paths in model list.

+
offsetsfatalOffset "CBaseEntity::m_nWaterLevel" was not found.
+

Description: The required offset for getting players' water level + wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
offsetsfatalOffset "CBasePlayer::m_vecVelocity[0]" was not found.
+

Description: The required offset for getting players' velocity + wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
offsetsfatalOffset "CCSPlayer::m_flLaggedMovementValue" was not found.
+

Description: The required offset for getting players' speed/movement + wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
offsetsfatalOffset "CCSPlayer::m_bHasNightVision" was not found.
+

Description: The required offset for getting players' night vision + settings wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
offsetsfatalOffset "CCSPlayer::m_bNightVisionOn" was not found.
+

Description: The required offset for getting players' night vision + setttings wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
offsetsfatalOffset "CBasePlayer::m_iDefaultFOV" was not found.
+

Description: The required offset for getting players' field of + view setting wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
offsetsfatalCan't load game config file (plugin.zombiereloaded.txt) from the + gamedata directory.
+

Description: The required configuration file with offsets and + function signatures wasn't found, or couldn't be loaded.

+

Cause: Usually file permissions.

+
offsetsfatalSignature "CGameRules::TerminateRound" was not found.
+

Description: The required function signature for terminating the + round wasn't found

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
offsetsfatalSignature "CBasePlaye::CSWeaponDrop" was not found.
+

Description: The required function signature for dropping players' + weapons wasn't found

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
playerclasseswarningFailed to set <class name> as default spawn class + for team <team id>. The class doesn't exist or the team IDs doesn't match. Falling + back to the first class in the team.
+

Description: Couldn't find the specified class name, or there's no + class with that name and team id. Default class in class configuration will be used.

+

Cause: Typo in plugin configuration or class configuration, the + specified class is a human class while it expected a zombie class (or oposite), - or + the class has wrong team id set.

+
playerclassesfatalMissing playerclasses config file <file>
+

Description: Couldn't find the specified class configuration file. + Verify that the zr_config_path_playerclasses console variable is correct.

+
playerclassesfatalCan't find any classes in <file>
+

Description: There's no classes.

+

Cause: Usually a missing quote (") or bracket ({ }).

+
playerclasseswarningWarning: Maximum classes reached (<max classes>). Skipping + other classes.
+

Description: Maximum number of classes reached during parsing. + Additional classes are skipped.

+
playerclasseswarningWarning: Invalid class at index <class index>, disabled class. + Class error flags: <flags>.
+

Description: The specified class has one or more invalid attribute + values. Class will be disabled. Check the flag value to find out + what attributes that are invalid.

+
playerclassesfatalThe class configuration doesn't match the team requirements.
+

Description: Class requirement conditions not met. See + Class Requirements (3.7.3) for details. Zombie:Reloaded will not + start without valid classes.

+
playerclassesfatalCouldn't find a default class for one or more teams. At least one + class per team must be marked as default.
+

Description: Missing a default class for humans or zombies. See + Class Requirements (3.7.3) for details. Zombie:Reloaded will not + start without valid classes.

+
playerclasseswarningWarning: Failed to get the specified zombie class, falling back + to default class in class config. Check spelling in "zr_classes_default_zombie".
+

Description: Couldn't find the class specified in + zr_classes_default_zombie. Check for typos.

+
playerclasseswarningWarning: Failed to get the specified human class, falling back + to default class in class config. Check spelling in "zr_classes_default_human".
+

Description: Couldn't find the class specified in + zr_classes_default_human. Check for typos.

+
soundeffectserrorInvalid sound file specified in "zr_ambientsounds_file": <file>
+

Description: Couldn't find the sound file. The path is relative to + the cstrike/sound folder. Check for typos.

+
soundeffectserrorAmbient sound volume specified in "zr_ambientsounds_volume" is either muted or invalid.
+

Description: Volume has a invalid value (zero or negative). Valid + range is from 0.1 to 1.0.

+
soundeffectserrorAmbient sound length specified in "zr_ambientsounds_length" is invalid.
+

Description: The specified sound file length is zero or negative. Must be positive.

+
visualeffectsfatalOffset "CCSPlayer::m_hRagdoll" was not found.
+

Description: The required offset for getting players' ragdoll + wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
visualeffectserrorCouldn't find handle to cvar: "sv_skyname"
+

Description: Couldn't find cvar sv_skyname.

+

Cause: This is most likely caused by running Zombie:Reloaded on + another mod than it's made for. Counter-Strike: Source is required.

+
volfeatureswarningWarning: Invalid interval <interval> in anticamp volume + <id>.
+

Description: Invalid attribute value. Must be positive and non-zero. + Volume will be disabled.

+
volfeatureswarningWarning: Console variable "zr_vol_update_interval" is zero or + negative. Must be positive. Volumetric Features will be disabled.
+

Description: Invalid value. Must be positive and non-zero.

+
volfeatureswarningWarning: Console variable "zr_vol_trigger_interval" is zero or + negative. Must be positive. Volumetric Features will be disabled.
+

Description: Invalid value. Must be positive and non-zero.

+
weaponsfatalOffset "CBaseCombatWeapon::m_iClip1" was not found.
+

Description: The required offset for getting players' primary + ammo value wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
weaponsfatalOffset "CBaseCombatWeapon::m_iClip2" was not found.
+

Description: The required offset for getting players' secondary + ammo value wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
weaponsfatalOffset "CBasePlayer::m_iAmmo" was not found.
+

Description: The required offset for getting players' reserve + ammo value wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
weaponsfatalOffset "CBasePlayer::m_hActiveWeapon" was not found.
+

Description: The required offset for getting players' active + weapon index wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
weaponserrorMissing weapons config file: <file>
+

Description: Could not find the weapons configuration + file. Check for typos in console variable zr_config_path_weapons.

+
weaponserrorNo usable data found in weapons config file: <file>
+

Cause: The weapon config file is empty, - or there's a typo so the + parser think it's empty. Check for missing quotes (") or brackets ({ }).

+
weaponserrorCouldn't cache weapon data for: <weapon name> (check weapons + config)
+

Description: The specified weapon name wasn't found in weapon + configuration file.

+
weaponsfatalOffset "CCSPlayer::m_bInBuyZone" was not found.
+

Description: The required offset for getting players' buy zone + state wasn't found.

+

Cause: Usually a update by Valve. Report to a Zombie:Reloaded + developer, or the SourceMod team.

+
weaponserrorInvalid weapon (<weapon name>) selected from the ZMarket menu.
+

Description: Something went wrong when converting a weapon name + to a weapon index. This should never happend, and if so it's a bug.

+
weaponserrorClient <player name> attempted to buy weapon entity <weapon + name> marked as a projectile. Check your weapon config.
+

Description: The weapon is probably not a grenade type. Check the + weapontype attribute of that weapon.

+
+ +

5.4 Common Problems

+

5.5 Known Issues

Conflicts with WCS Races plugin and other plugins who change player model/skin and speed.

Do not run es_tools, it's not compatible with SourceMod.

-

6. Gameplay Guidelines

+

6. Gameplay Guidelines

-

6.1 Briefing - Map Configuration Files

-

6.2 Map Balance

-

6.3 Knock Back Settings

-

6.4 Map Time

-

6.5 Servers With Unlimited Ammo And No Reloading

+

6.1 Briefing - Map Configuration Files

+

6.2 Map Balance

+

6.3 Knock Back Settings

+

6.4 Map Time

+

6.5 Servers With Unlimited Ammo And No Reloading

7. Reporting Bugs And Problems

diff --git a/src/zr/playerclasses/filtertools.inc b/src/zr/playerclasses/filtertools.inc index 9099ec1..ec641dc 100644 --- a/src/zr/playerclasses/filtertools.inc +++ b/src/zr/playerclasses/filtertools.inc @@ -1177,7 +1177,7 @@ stock ClassGetDefaultSpawnClass(teamid, filter[ClassFilter] = ClassNoSpecialClas if (ClassValidateIndex(classindex)) { // Log a warning. - LogEvent(false, LogType_Error, LOG_CORE_EVENTS, LogModule_Playerclasses, "Default Spawn Class", "Warning: The default class name \"%s\" does not exist or matches the team ID.", classname); + //LogEvent(false, LogType_Error, LOG_CORE_EVENTS, LogModule_Playerclasses, "Default Spawn Class", "Warning: The default class name \"%s\" does not exist or matches the team ID.", classname); return classindex; } else diff --git a/src/zr/playerclasses/playerclasses.inc b/src/zr/playerclasses/playerclasses.inc index 3df17a8..582cfa2 100644 --- a/src/zr/playerclasses/playerclasses.inc +++ b/src/zr/playerclasses/playerclasses.inc @@ -1081,7 +1081,7 @@ ClassClientSetDefaultIndexes(client = -1) { // Invalid class index. Fall back to default class in class config and // log a warning. - LogEvent(false, LogType_Error, LOG_CORE_EVENTS, LogModule_Playerclasses, "Set Default Indexes", "Warning: Failed to get specified zombie class, falling back to default class in class config. Check spelling in \"zr_classes_default_zombie\"."); + LogEvent(false, LogType_Error, LOG_CORE_EVENTS, LogModule_Playerclasses, "Set Default Indexes", "Warning: Failed to get the specified zombie class, falling back to default class in class config. Check spelling in \"zr_classes_default_zombie\"."); // Use default class. zombieindex = ClassGetDefaultClass(ZR_CLASS_TEAM_ZOMBIES, filter); @@ -1091,7 +1091,7 @@ ClassClientSetDefaultIndexes(client = -1) { // Invalid class index. Fall back to default class in class config and // log a warning. - LogEvent(false, LogType_Error, LOG_CORE_EVENTS, LogModule_Playerclasses, "Set Default Indexes", "Warning: Failed to get specified human class, falling back to default class in class config. Check spelling in \"zr_classes_default_human\"."); + LogEvent(false, LogType_Error, LOG_CORE_EVENTS, LogModule_Playerclasses, "Set Default Indexes", "Warning: Failed to get the specified human class, falling back to default class in class config. Check spelling in \"zr_classes_default_human\"."); // Use default class. humanindex = ClassGetDefaultClass(ZR_CLASS_TEAM_HUMANS, filter); diff --git a/src/zr/soundeffects/ambientsounds.inc b/src/zr/soundeffects/ambientsounds.inc index 65653e7..5c66dd5 100644 --- a/src/zr/soundeffects/ambientsounds.inc +++ b/src/zr/soundeffects/ambientsounds.inc @@ -90,7 +90,7 @@ bool:AmbientSoundsValidateConfig() if (ambientvolume <= 0.0) { // Log invalid ambient sound volume error. - LogEvent(false, LogType_Error, LOG_CORE_EVENTS, LogModule_SEffects, "Config Validation", "Ambient sound volume specified in \"zr_ambientsounds_volume\"is either muted or invalid."); + LogEvent(false, LogType_Error, LOG_CORE_EVENTS, LogModule_SEffects, "Config Validation", "Ambient sound volume specified in \"zr_ambientsounds_volume\" is either muted or invalid."); return false; } diff --git a/src/zr/tools.inc b/src/zr/tools.inc index 574cf42..4caddd2 100644 --- a/src/zr/tools.inc +++ b/src/zr/tools.inc @@ -148,6 +148,6 @@ ToolsSetupGameData() // If offset "CSWeaponDrop" can't be found, then stop the plugin. if(g_hToolsCSWeaponDrop == INVALID_HANDLE) { - LogEvent(false, LogType_Fatal, LOG_CORE_EVENTS, LogModule_Tools, "GameData", "Signature \"CBasePlaye::CSWeaponDrop\" was not found."); + LogEvent(false, LogType_Fatal, LOG_CORE_EVENTS, LogModule_Tools, "GameData", "Signature \"CBasePlayer::CSWeaponDrop\" was not found."); } } diff --git a/src/zr/volfeatures/volanticamp.inc b/src/zr/volfeatures/volanticamp.inc index d3a9c00..5ac18d0 100644 --- a/src/zr/volfeatures/volanticamp.inc +++ b/src/zr/volfeatures/volanticamp.inc @@ -123,6 +123,8 @@ VolAnticampEnable(volumeIndex) /** * Starts all existing anticamp timers. + * + * TODO: Reuse code! This is almost duplicate of VolAnticampEnable. */ stock VolAnticampEnableAll() { @@ -682,7 +684,7 @@ VolAnticampWarningToString(VolAnticampeWarningType:warningType, String:buffer[], } case Anticamp_Menu: { - return shortName ? strcopy(buffer, maxlen, "meny") : strcopy(buffer, maxlen, "Message in menu panel"); + return shortName ? strcopy(buffer, maxlen, "menu") : strcopy(buffer, maxlen, "Message in menu panel"); } } diff --git a/src/zr/weapons/zmarket.inc b/src/zr/weapons/zmarket.inc index cd514ce..493518e 100644 --- a/src/zr/weapons/zmarket.inc +++ b/src/zr/weapons/zmarket.inc @@ -839,7 +839,7 @@ stock bool:ZMarketEquip(client, const String:weapon[], bool:rebuy = false) if (grenadetype == GrenadeType_Invalid) { - LogEvent(false, LogType_Error, LOG_GAME_EVENTS, LogModule_Weapons, "Grenades", "Client \"%L\" attempted to buy weapon entity \"%s\" marked as a Projectile. Check your weapon config.", client, weaponentity); + LogEvent(false, LogType_Error, LOG_GAME_EVENTS, LogModule_Weapons, "Grenades", "Client \"%L\" attempted to buy weapon entity \"%s\" marked as a projectile. Check your weapon config.", client, weaponentity); return false; } @@ -1174,4 +1174,4 @@ stock bool:ZMarketIsClientInBuyZone(client) { // Return if client is in buyzone. return bool:GetEntData(client, g_iToolsInBuyZone); -} \ No newline at end of file +}