mirror of
https://github.com/sfall-team/sfall.git
synced 2026-07-27 16:52:34 -07:00
Added full ddraw.ini + other config files and all relevant artifacts from latest modderspack.
This commit is contained in:
@@ -80,7 +80,6 @@ dlldata.c
|
||||
|
||||
# DNX
|
||||
project.lock.json
|
||||
artifacts/
|
||||
|
||||
*_i.c
|
||||
*_p.c
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
;This is the old critical override format.
|
||||
;I advise against using it, due to the effects on loading times
|
||||
|
||||
;Enable overriding the critical hit tables
|
||||
;For details on the tables and their values, see:
|
||||
; http://falloutmods.wikia.com/wiki/Critical_hit_tables
|
||||
;In the section names, the first two digits are the critter type
|
||||
; the third digit is the body part, (0-8) and the forth is the
|
||||
; level of critical hit (0-5)
|
||||
|
||||
[c_01_0_0]
|
||||
DamageMultiplier=100
|
||||
EffectFlags=0
|
||||
StatCheck=0
|
||||
StatMod=0
|
||||
FailureEffect=0
|
||||
Message=0
|
||||
FailMessage=0
|
||||
@@ -0,0 +1,30 @@
|
||||
;This is the new critical hit table override format
|
||||
;It's faster loading than the old one, and is compatible with the extra kill types option
|
||||
;Note that the player's critter number is now 38 rather than 19
|
||||
|
||||
;Enable overriding the critical hit tables
|
||||
;For details on the tables and their values, see:
|
||||
; http://falloutmods.wikia.com/wiki/Critical_hit_tables
|
||||
|
||||
[c_00] ; The entries for the 'men' critter type
|
||||
Enabled=1 ; Tell sfall that we want to modify this table
|
||||
Part0=1 ; Tell sfall that we want to modify the head entries
|
||||
; If we had set 'Enabled=2' then sfall will assume you want to modify all
|
||||
; parts, and will not check the PartX entries
|
||||
|
||||
[c_00_0] ; The entries for the head table of the men critter type.
|
||||
e0_DamageMultiplier=100 ;First level critical
|
||||
e0_EffectFlags=0
|
||||
e0_StatCheck=0
|
||||
e0_StatMod=0
|
||||
e0_FailureEffect=0
|
||||
e0_Message=0 ; This is an index into the msg file, not a string
|
||||
e0_FailMessage=0
|
||||
e1_... ; Second level critical
|
||||
... ; And so on up to the hardest hitting level 5 critical
|
||||
e5_...
|
||||
|
||||
;You can skip any entries from this section to leave them at their defaults
|
||||
;Any missing entries for critters 19-37 will be replaced by a 0, since they have no default
|
||||
;Note that the UOP fixes are included in the defaults, and do not need to be
|
||||
; added manually when using this override format, as opposed to the old one
|
||||
@@ -0,0 +1,39 @@
|
||||
;This file handles modifications to perks and traits
|
||||
;When adding extra perks to a mod, it's advisable to use
|
||||
; the fake perk scripting functions rather than make modifications
|
||||
; in this file, as some perks have hardcoded effects which may
|
||||
; catch you out
|
||||
;Since traits need to be picked before any scripts run, they
|
||||
; have an additional NoHardcode option in this file which can
|
||||
; be used to remove their hardcoded effects, and add new stat/skill effects
|
||||
|
||||
;This is a modification to perk 119
|
||||
[119]
|
||||
Name=Example
|
||||
Desc=This is an example perk~Second line
|
||||
Image=72
|
||||
Ranks=1
|
||||
Level=1
|
||||
Type=0
|
||||
Stat=-1
|
||||
StatMag=0
|
||||
Skill1=-1
|
||||
Skill1Mag=0
|
||||
Skill2=-1
|
||||
Skill2Mag=0
|
||||
STR=0
|
||||
PER=0
|
||||
END=0
|
||||
CHR=0
|
||||
INT=0
|
||||
AGL=0
|
||||
LCK=0
|
||||
|
||||
;This is a modification to trait 0
|
||||
[t0]
|
||||
NoHardcode=0
|
||||
Name=Example
|
||||
Desc=This is an example trait
|
||||
Image=72
|
||||
StatMod=0|-1 ;Subtract 1 from strength
|
||||
SkillMod=0|20|1|-5 ;Add 20 to the players small guns skill and subtract 5 from big guns
|
||||
@@ -0,0 +1,11 @@
|
||||
;This file lets you set the formula for calculating skills
|
||||
|
||||
[skills]
|
||||
BasedOnPoints=0 ;Set to 1 to base skill costs on spent points instead of current level
|
||||
|
||||
Skill0=s1|i2|l1.5 ;Skill 0 (small guns) is str*1 + int*2 + luck*1.5
|
||||
SkillBase1=50 ;Big guns has a base of 50
|
||||
SkillMulti2=10 ;Each point spent in energy weapons increases it by 10
|
||||
SkillImage1=72
|
||||
|
||||
SkillCost0=0|0|0|0|0|300 ;Each level of small guns costs 6 skill points
|
||||
@@ -0,0 +1,55 @@
|
||||
;This file can be used to set the relationship between derived stats and base stats
|
||||
;Put the stat id in brackets, then use the following keys
|
||||
;base - the initial value of the stat
|
||||
;min - the lower limit of the stat after applying the base stats,
|
||||
; but before adding any extra/perk/trait bonuses
|
||||
;multi[x] - where x is from 0 to 6, the multiplier of st/pe/en/etc.
|
||||
;shift[x] - shifts the base stat before the multiplication
|
||||
|
||||
|
||||
;max hp
|
||||
[7]
|
||||
base=15 ; base of 15
|
||||
multi0=1 ; +1*st
|
||||
multi2=2 ; +2*en
|
||||
|
||||
;max ap
|
||||
[8]
|
||||
base=5 ; base of 5
|
||||
multi5=0.5 ; +0.5*ag
|
||||
|
||||
;ac
|
||||
[9]
|
||||
multi5=1
|
||||
|
||||
;melee damage
|
||||
[11]
|
||||
min=1
|
||||
shift0=-5
|
||||
multi0=1
|
||||
|
||||
;carry weight
|
||||
[12]
|
||||
base=25
|
||||
multi0=25
|
||||
|
||||
;sequence
|
||||
[13]
|
||||
multi1=2
|
||||
|
||||
;heal rate
|
||||
[14]
|
||||
min=1
|
||||
multi2=0.3333333333
|
||||
|
||||
;critical chance
|
||||
[15]
|
||||
multi6=1
|
||||
|
||||
;rad resist
|
||||
[31]
|
||||
multi2=2
|
||||
|
||||
;poison resist
|
||||
[32]
|
||||
multi2=5
|
||||
@@ -0,0 +1,14 @@
|
||||
[sfall]
|
||||
SaveInCombat=Cannot save at this time
|
||||
KarmaGain=You gained %d karma.
|
||||
KarmaLoss=You lost %d karma.
|
||||
HighlightFail1=You aren't carrying a motion sensor.
|
||||
HighlightFail2=Your motion sensor is out of charge.
|
||||
SuperStimExploitMsg=You cannot use a super stim on someone who is not injured!
|
||||
BlockedCombat=You cannot enter combat at this time.
|
||||
SaveSfallDataFail=ERROR saving extended savegame information! Check if other programs interfere with savegame files/folders and try again.
|
||||
|
||||
[AppearanceMod]
|
||||
RaceText=Race
|
||||
StyleText=Style
|
||||
MainButtonText=Appearance
|
||||
@@ -0,0 +1,19 @@
|
||||
; Allows to reassign books to different object PIDs, text messages.
|
||||
; Maximum 30 books are allowed (25 if overrideVanilla is 0)
|
||||
|
||||
[main]
|
||||
; total number of books in this file
|
||||
count=5
|
||||
|
||||
; set to 1 to override all vanilla books, so you will have to define ALL books in this file;
|
||||
; otherwise only new books are defined here
|
||||
overrideVanilla=0
|
||||
|
||||
; count starts from 1
|
||||
[1]
|
||||
; book item PID
|
||||
PID=626
|
||||
; textID from proto.msg which displayed when reading book
|
||||
TextID=802
|
||||
; corresponding skill
|
||||
Skill=15
|
||||
@@ -0,0 +1,26 @@
|
||||
;Controls the elevators
|
||||
;Image must match up with the image of an existing elevator
|
||||
;Make sure you specify the correct number of exit targets
|
||||
;The maximum number of elevators is currently capped at 50
|
||||
|
||||
;Override elevator 0
|
||||
[000]
|
||||
;This elevator uses the frm of the original forth elevator
|
||||
Image=4
|
||||
|
||||
;Set up the first exit point
|
||||
ID1=49
|
||||
Elevation1=0
|
||||
Tile1=14920
|
||||
|
||||
;Second exit point
|
||||
ID2=49
|
||||
Elevation2=1
|
||||
Tile2=15120
|
||||
|
||||
;Third exit point
|
||||
ID3=50
|
||||
Elevation3=0
|
||||
Tile3=12944
|
||||
|
||||
;No forth exit point
|
||||
@@ -0,0 +1,9 @@
|
||||
sfall's main configuration options appear in ddraw.ini, but there are several other configuration files that it can read in for modding purposes.
|
||||
|
||||
books.ini: Lets you override/add books to the game (associated PIDs, skills and messages)
|
||||
perks.ini: Lets you override the name/description/frm image/other stats of perks and traits
|
||||
elevators.ini: Lets you override which elevators lead where
|
||||
CriticalOverrides.ini: Lets you make modifications to the critical hit tables
|
||||
Translations.ini: Contains some text strings which sfall displays, to allow their translation
|
||||
Skills.ini: Lets you change the formula used for calculating skills
|
||||
stats.ini: Lets you change the formula used to calculate the derived stats
|
||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,77 @@
|
||||
/*
|
||||
|
||||
AP costs mod for fallout 2 by phobos2077
|
||||
----------------------------------------
|
||||
|
||||
- increases AP cost of using all non-weapon items from main interface to 4
|
||||
- AP are reduced even when using items (eg. stimpaks) from the inventory
|
||||
|
||||
Requires sfall 3.5 or higher
|
||||
|
||||
*/
|
||||
|
||||
|
||||
#include "..\headers\define.h"
|
||||
#include "sfall.h"
|
||||
#include "define_extra.h"
|
||||
|
||||
#define ITEM_USE_COST (4)
|
||||
|
||||
variable last_used_item;
|
||||
|
||||
procedure item_by_attack_type(variable critter, variable type) begin
|
||||
variable slot;
|
||||
if (type > 3 and type != ATKTYPE_LWEP_RELOAD and type != ATKTYPE_RWEP_RELOAD) then
|
||||
return 0;
|
||||
if (type < 2 or type == ATKTYPE_LWEP_RELOAD) then
|
||||
slot := INVEN_TYPE_LEFT_HAND;
|
||||
else
|
||||
slot := INVEN_TYPE_RIGHT_HAND;
|
||||
return critter_inven_obj(critter, slot);
|
||||
end
|
||||
|
||||
procedure apcost_handler begin
|
||||
variable args := get_sfall_args, item;
|
||||
item := item_by_attack_type(args[0], args[1]);
|
||||
if (obj_item_subtype(item) != item_type_weapon) then begin
|
||||
set_sfall_return(ITEM_USE_COST);
|
||||
last_used_item := item;
|
||||
end
|
||||
end
|
||||
|
||||
procedure useobjon_handler begin
|
||||
variable target, critter, item, ap, cost;
|
||||
target := get_sfall_arg;
|
||||
critter := get_sfall_arg;
|
||||
item := get_sfall_arg;
|
||||
|
||||
if (combat_is_initialized) then begin
|
||||
if (get_game_mode bwand INVENTORY) then
|
||||
cost := ITEM_USE_COST;
|
||||
else if (last_used_item != item) then
|
||||
cost := ITEM_USE_COST - 2;
|
||||
else
|
||||
cost := 0;
|
||||
if (cost > 0) then begin
|
||||
ap := get_critter_current_ap(critter);
|
||||
if (ap >= ITEM_USE_COST) then begin
|
||||
set_critter_current_ap(critter, ap - cost);
|
||||
end else begin
|
||||
if (cost < ITEM_USE_COST) then
|
||||
set_critter_current_ap(critter, ap + ITEM_USE_COST - cost);
|
||||
set_sfall_return(0);
|
||||
end
|
||||
end
|
||||
end
|
||||
last_used_item := 0;
|
||||
end
|
||||
|
||||
procedure start begin
|
||||
if game_loaded then begin
|
||||
// if you only want to reduce AP when using stuff from inventory by 2,
|
||||
// comment out following line and change ITEM_USE_COST to 2
|
||||
register_hook_proc(HOOK_CALCAPCOST, apcost_handler);
|
||||
register_hook_proc(HOOK_USEOBJON, useobjon_handler);
|
||||
end
|
||||
end
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
AP costs mod for fallout 2 by phobos2077
|
||||
----------------------------------------
|
||||
|
||||
- increases AP cost of using all misc items to 4
|
||||
- AP are reduced even when using items (eg. stimpaks) from the inventory
|
||||
|
||||
|
||||
To use, copy gl_itemapcost.int to your scripts folder.
|
||||
|
||||
This mod is a simple example of a global script, so I've also included an uncompiled copy in the scripts folder.
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,93 @@
|
||||
procedure start;
|
||||
procedure update_shader;
|
||||
|
||||
variable perception;
|
||||
variable boozes;
|
||||
variable shader1;
|
||||
variable shader2;
|
||||
variable shader3;
|
||||
variable shader4;
|
||||
variable drunk_level;
|
||||
variable next_reduction;
|
||||
|
||||
procedure start begin
|
||||
variable new_pe;
|
||||
variable new_booze;
|
||||
variable drunk_count;
|
||||
if (metarule(22,0)) then return;
|
||||
if (game_loaded) then begin
|
||||
if(not graphics_funcs_available) then begin
|
||||
display_msg("ERROR: You must set sfall to use graphics mode 4 or 5 to use this mod");
|
||||
return;
|
||||
end else begin
|
||||
//new_pe:=create_object_sid(125, 0, 0, -1);
|
||||
//add_mult_objs_to_inven(dude_obj, new_pe, 10);
|
||||
perception:=get_pc_extra_stat(1);
|
||||
boozes:=obj_is_carrying_obj_pid(dude_obj, 125);
|
||||
set_global_script_repeat(25);
|
||||
set_global_script_repeat(-1);
|
||||
shader1:=load_shader("booze1.fx");
|
||||
shader2:=load_shader("booze2.fx");
|
||||
shader3:=load_shader("booze3.fx");
|
||||
shader4:=load_shader("booze4.fx");
|
||||
drunk_level:=0;
|
||||
next_reduction:=0;
|
||||
//display_msg("Init: " + perception + ", " + boozes);
|
||||
end
|
||||
end else begin
|
||||
new_pe:=get_pc_extra_stat(1);
|
||||
new_booze:=obj_is_carrying_obj_pid(dude_obj, 125);
|
||||
if( (perception != new_pe) or (boozes != new_booze) ) then begin
|
||||
//display_msg("var change: " + perception + ", " + boozes + " -> " + new_pe + ", " + new_booze);
|
||||
if ( (perception > new_pe) and (boozes > new_booze) ) then begin
|
||||
if ( (perception - new_pe) < (boozes - new_booze) ) then begin
|
||||
drunk_count:=perception - new_pe;
|
||||
end else begin
|
||||
drunk_count:=boozes - new_booze;
|
||||
end
|
||||
drunk_level:=drunk_level + (drunk_count*10);
|
||||
//display_msg("Increasing booze count: " + drunk_level);
|
||||
call update_shader;
|
||||
next_reduction:=game_time + game_ticks(6);
|
||||
end
|
||||
perception:=new_pe;
|
||||
boozes:=new_booze;
|
||||
end
|
||||
if( (next_reduction != 0 ) and (game_time >= next_reduction) ) then begin
|
||||
drunk_level:=drunk_level - 1;
|
||||
if(drunk_level == 0) then next_reduction:=0;
|
||||
else next_reduction:=next_reduction + game_ticks(6);
|
||||
call update_shader;
|
||||
//display_msg("Decreasing booze count: " + drunk_level);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
procedure update_shader begin
|
||||
if(drunk_level >= 100) then begin
|
||||
deactivate_shader(shader1);
|
||||
deactivate_shader(shader2);
|
||||
deactivate_shader(shader3);
|
||||
activate_shader(shader4);
|
||||
end else if(drunk_level >= 50) then begin
|
||||
deactivate_shader(shader1);
|
||||
deactivate_shader(shader2);
|
||||
activate_shader(shader3);
|
||||
deactivate_shader(shader4);
|
||||
end else if(drunk_level >= 25) then begin
|
||||
deactivate_shader(shader1);
|
||||
activate_shader(shader2);
|
||||
deactivate_shader(shader3);
|
||||
deactivate_shader(shader4);
|
||||
end else if(drunk_level > 0) then begin
|
||||
activate_shader(shader1);
|
||||
deactivate_shader(shader2);
|
||||
deactivate_shader(shader3);
|
||||
deactivate_shader(shader4);
|
||||
end else begin
|
||||
deactivate_shader(shader1);
|
||||
deactivate_shader(shader2);
|
||||
deactivate_shader(shader3);
|
||||
deactivate_shader(shader4);
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,25 @@
|
||||
sampler s0;
|
||||
|
||||
static const float2 rcpres =
|
||||
{
|
||||
0.0015625,
|
||||
0.0020833333333333333333333333333333
|
||||
};
|
||||
|
||||
float4 Blur( float2 Tex : TEXCOORD0 ) : COLOR0
|
||||
{
|
||||
float4 Color = 0;
|
||||
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x + rcpres.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x - rcpres.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y + rcpres.y));
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y - rcpres.y));
|
||||
|
||||
return Color * 0.2;
|
||||
}
|
||||
|
||||
Technique blur
|
||||
{
|
||||
Pass P0 { PixelShader = compile ps_2_0 Blur(); }
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
sampler s0;
|
||||
|
||||
static const float2 rcpres =
|
||||
{
|
||||
0.0015625,
|
||||
0.0020833333333333333333333333333333
|
||||
};
|
||||
|
||||
float4 Blur( float2 Tex : TEXCOORD0 ) : COLOR0
|
||||
{
|
||||
float4 Color = 0;
|
||||
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x + rcpres.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x - rcpres.x, Tex.y));
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y + rcpres.y));
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y - rcpres.y));
|
||||
|
||||
return Color * 0.2;
|
||||
}
|
||||
|
||||
Technique blur
|
||||
{
|
||||
Pass P0 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P1 { PixelShader = compile ps_2_0 Blur(); }
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
sampler s0;
|
||||
|
||||
static const float2 rcpres =
|
||||
{
|
||||
0.0015625,
|
||||
0.0020833333333333333333333333333333
|
||||
};
|
||||
|
||||
float4 Blur(float2 Tex : TEXCOORD0) : COLOR0
|
||||
{
|
||||
float4 Color = 0;
|
||||
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x + rcpres.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x - rcpres.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x, Tex.y + rcpres.y));
|
||||
Color += tex2D(s0, float2(Tex.x, Tex.y - rcpres.y));
|
||||
|
||||
return Color * 0.2;
|
||||
}
|
||||
|
||||
float4 Blind(float2 Tex : TEXCOORD0) : COLOR0
|
||||
{
|
||||
float4 Color = tex2D(s0, Tex);
|
||||
return Color * saturate(1.8 - (length(Tex - 0.5)*2));
|
||||
}
|
||||
|
||||
Technique blur
|
||||
{
|
||||
Pass P0 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P1 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P2 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P3 { PixelShader = compile ps_2_0 Blind(); }
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
sampler s0;
|
||||
|
||||
static const float2 rcpres =
|
||||
{
|
||||
0.0015625,
|
||||
0.0020833333333333333333333333333333
|
||||
};
|
||||
|
||||
float4 Blur(float2 Tex : TEXCOORD0) : COLOR0
|
||||
{
|
||||
float4 Color = 0;
|
||||
|
||||
Color += tex2D( s0, float2(Tex.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x + rcpres.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x - rcpres.x, Tex.y));
|
||||
Color += tex2D(s0, float2(Tex.x, Tex.y + rcpres.y));
|
||||
Color += tex2D(s0, float2(Tex.x, Tex.y - rcpres.y));
|
||||
|
||||
return Color * 0.2;
|
||||
}
|
||||
|
||||
float4 Blind(float2 Tex : TEXCOORD0) : COLOR0
|
||||
{
|
||||
float4 Color = tex2D(s0, Tex);
|
||||
return Color * saturate(1.5 - (length(Tex - 0.5)*2));
|
||||
}
|
||||
|
||||
Technique blur
|
||||
{
|
||||
Pass P0 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P1 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P2 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P3 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P4 { PixelShader = compile ps_2_0 Blur(); }
|
||||
Pass P5 { PixelShader = compile ps_2_0 Blind(); }
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user