| Preview | Name | Link |
|---|---|---|
![]() |
Special Hard Difficulty | 317KB |
Previously called «Harder Hard». This mod adjusts «Hard» difficulty setting by adding an ability for all received damage to be critical and potentially lethal. Numerous actors can simply gib the player immedaitely in melee range (e.g. Reptiloid and Demon).
This mod also shows a message in the top-left corner (like in classic games) that writes out a taunting message when the player dies due to crit hit. The message corresponds to the last attack type of the inflictor.
In the original game, if you played in a networked game (splitscreen with one player counts too), and you get killed by Exotech Larva, "Exotech Larva reduced &s to pulp." would be printed to the screen.
Messages and all other important systems are defined in Content/Shared/Scripts/PXCritCommon.lua Lua file.
--[[
-- worldGlobals.A_ATTACK
--
-- Define actors' attacks...
--
-- Format:
-- ["ActorName"] =
-- {
-- ["DamageType1"] = { chance, multiply, flatadd },
-- ["DamageType2"] = { chance, multiply, flatadd },
-- ...
-- }
--
-- If in-game the actor is not found in the table, we default to "__anyone_else__".
-- If the damage type is not found in the appropraite ActorName table, we default to ActorName's "__anything_else__",
-- if that doesn't exist, then we look at "__anything_else__" inside "__anyone_else__".
--
-- Note: Chance is generated in [0, 255] interval.
--]]
worldGlobals.A_ATTACK =
{
["__anyone_else__"] =
{
["__anything_else__"] = { 32, 2, 0 },
["Kicking"] = { 32, 5, 0 },
["Piercing"] = { 32, 5, 0 },
},
["Arachnoid_Soldier"] =
{
["Kicking"] = { 0, 1, 1e6 },
["Punch"] = { 0, 1, 1e6 },
["Bullet"] = { 32, 50, 4 },
},
["Gnaar"] =
{
["__anything_else__"] = { 32, 5, 6 },
},
["GnaarFemale_Flying"] =
{
["__anything_else__"] = { 191, 20, 12 },
},
--[[ ... ]]
};
--[[
-- worldGlobals.A_IBEATYOUMESSAGE
--
-- Message when the specific actor kills the player.
-- Format, special values and functionality is same as A_ATTACK.
--
-- Sandwhale is a special case and doesn't have a character class. This actor is parsed in worldGlobals.G_PlayerMain.
-- For indexing A_IBEATYOUMESSAGE, "Sandwhale" should be used.
--
-- Special sequences:
-- &s - Player's name
-- &p - Player's name (possessive)
-- &c - Inflictor's name
-- &w - Inflictor's name («Name» field in World Editor)
--]]
worldGlobals.A_IBEATYOUMESSAGE =
{
["__anyone_else__"] =
{
["__anything_else__"] = "&c was the end of &s.",
},
--[[ ... ]]
["ExotechLarva"] =
{
["Explosion"] = "Exotech Larva reduced &s to pulp.",
},
["Demon"] =
{
["Punch"] = "Demon ripped out &p entrails.",
["Explosion"] = "Demon liquified &s.",
},
["Reptiloid"] =
{
["Kicking"] = "Reptiloid trampled &s to dust!",
["Punch"] = "Reptiloid trampled &s to dust!", --[[ Rewrite me in your game title!!! ]]
["Impact"] = "Reptiloid dissolved &s.",
["Explosion"] = "Reptiloid dissolved &s.",
},
["Werebull"] =
{
["Punch"] = "&s was gored upon a Werebull.",
["Kicking"] = "Werebull trampled &p to paste!",
},
["Zumbul"] =
{
["Punch"] = "Zumbul concaved &p head.", --[[ Zumbul, AKA Goofy ]]
["Impact"] = "Zumbul splashed the ground with &p remains.",
["Explosion"] = "Zumbul splashed the ground with &p remains.",
},
--[[ ... ]]
};
Certain messages are adjusted in appropriate game title's script folder. This is because, for instance, Reptiloid's «Punch» attack in Serious Sam TSE is a punch, but in Serious Sam 3 he doesn't punch but stomps instead.
To add adjustments to messages and other tables per game title, edit the appropriate script for the game title. For example, this snippet can be found in Content/SeriousSamHD/Scripts/CustomWorldScripts/PXCrit.lua:
--[[
-- For more example usage, check other games' PXCrit.lua script.
--]]
dofile("Content/Shared/Scripts/PXCritCommon.lua");
--[[
-- Example patches.
--]]
worldGlobals.A_MESSAGE_TEXTEFFECT_SOLID_RES = LoadResource("Content/Shared/Presets/TextEffects/ConsoleMessageSolid_Green.tfx");
worldGlobals.A_ATTACK["UghZan"]["Impact"] = { [worldGlobals.A_ATTACK_ID_CHANCE] = 210, [worldGlobals.A_ATTACK_ID_MULTIPLY] = 5.0, [worldGlobals.A_ATTACK_ID_FLATADD] = 0 };
worldGlobals.A_IBEATYOUMESSAGE["Reptiloid"]["Punch"] = "Reptiloid crushed &p head!";