first release
This commit is contained in:
22
Readme.txt
Normal file
22
Readme.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
ChaChaComboGibv1a - ChaCha (2022)
|
||||
|
||||
== A ComboGib mutator for UT2004 ! ==
|
||||
|
||||
|
||||
Behavior:
|
||||
-> No configuration needed
|
||||
-> Beam and (main) Shock ball change colour depending on team
|
||||
|
||||
|
||||
Single player on your computer:
|
||||
=> Install package (sources not needed)
|
||||
|
||||
Multiplayer:
|
||||
=> Install package (sources not needed)
|
||||
=> Install redirect
|
||||
=> Add ChaChaComboGibv1a to ServerPackages
|
||||
=> Add ChaChaComboGibv1a.ChaChaComboGib to Mutator list
|
||||
|
||||
|
||||
Version History:
|
||||
1a (11/22): Initial release
|
||||
BIN
Redirect/ChaChaComboGibv1a.u.uz2
Normal file
BIN
Redirect/ChaChaComboGibv1a.u.uz2
Normal file
Binary file not shown.
BIN
Redirect/ChaChaComboGibv1a.utx.uz2
Normal file
BIN
Redirect/ChaChaComboGibv1a.utx.uz2
Normal file
Binary file not shown.
121
Run.sh
Normal file
121
Run.sh
Normal file
@@ -0,0 +1,121 @@
|
||||
#!/bin/bash
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
OUTPUT_DIR="$2"
|
||||
CFG_FILE="$3"
|
||||
DEFAULT_CFG_FILE=UT2004.ini
|
||||
function add_iniKeyEx() {
|
||||
crudini --set $OUTPUT_DIR/System/$1 $2 __$3 $4
|
||||
# Warning: ugly hack with sed to allow multiple key instances + to remove space around '='
|
||||
sed -i "s/[[:space:]]*__$(echo $3 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')[[:space:]]*=[[:space:]]*/$(echo $3 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')=/g" $OUTPUT_DIR/System/$1
|
||||
}
|
||||
# !!Warning!! section is not considered
|
||||
function del_iniKeyEx() {
|
||||
sed -i "/[[:space:]]*$(echo $3 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')[[:space:]]*=[[:space:]]*$(echo $4 | sed -e 's/\([[\/.*]\|\]\)/\\&/g')/d" $OUTPUT_DIR/System/$1
|
||||
}
|
||||
function add_iniKey() {
|
||||
add_iniKeyEx $CFG_FILE $1 $2 $3
|
||||
}
|
||||
# !!Warning!! section is not considered
|
||||
function del_iniKey() {
|
||||
del_iniKeyEx $CFG_FILE $1 $2 $3
|
||||
}
|
||||
function add_ServerPackage() {
|
||||
add_iniKey 'Engine.GameEngine' ServerPackages $1
|
||||
}
|
||||
function del_ServerPackage() {
|
||||
del_iniKey 'Engine.GameEngine' ServerPackages $1
|
||||
}
|
||||
function add_ServerActors() {
|
||||
add_iniKey 'Engine.GameEngine' ServerActors $1
|
||||
}
|
||||
function del_ServerActors() {
|
||||
del_iniKey 'Engine.GameEngine' ServerActors $1
|
||||
}
|
||||
|
||||
function getmodprefix() {
|
||||
_File=$(find $OUTPUT_DIR/System -type f -iname "ChaChaComboGibv*\.u" -exec basename {} \; | sort -nr | head -n 1)
|
||||
BaseName="${_File%.*}"
|
||||
echo "$BaseName"
|
||||
}
|
||||
|
||||
function install() {
|
||||
rsync -a $SCRIPT_DIR/Help/ $OUTPUT_DIR/Help/ --exclude '.git'
|
||||
rsync -a $SCRIPT_DIR/System/ $OUTPUT_DIR/System/ --exclude '.git'
|
||||
|
||||
echo install ok
|
||||
}
|
||||
|
||||
function enable() {
|
||||
BaseName="$(getmodprefix)"
|
||||
add_ServerPackage $BaseName
|
||||
|
||||
echo enable ok
|
||||
}
|
||||
|
||||
function disable() {
|
||||
BaseName="$(getmodprefix)"
|
||||
del_ServerPackage $BaseName
|
||||
|
||||
echo disable ok
|
||||
}
|
||||
|
||||
function show_help() {
|
||||
echo
|
||||
echo "Usage: $0 { getmodprefix | install | enable | disable } <UT2k4_INSTALL_DIR> [<UT2k4_CONFIG_FILE>]"
|
||||
echo
|
||||
}
|
||||
|
||||
function check_cfg_file() {
|
||||
if [ -z ${CFG_FILE} ]
|
||||
then
|
||||
echo "CFG_FILE is unset, setting it to $DEFAULT_CFG_FILE"
|
||||
CFG_FILE=$DEFAULT_CFG_FILE
|
||||
else
|
||||
echo "CFG_FILE is set to '$CFG_FILE'"
|
||||
fi
|
||||
|
||||
if [ ! -f $OUTPUT_DIR/System/$CFG_FILE ]
|
||||
then
|
||||
echo "$OUTPUT_DIR/System/$CFG_FILE does not exist"
|
||||
show_help
|
||||
exit 9999 # die with error code 9999
|
||||
fi
|
||||
}
|
||||
|
||||
function check_game_dir() {
|
||||
### Check if a directory does not exist ###
|
||||
if [ ! -d $OUTPUT_DIR ]
|
||||
then
|
||||
echo "incorrect <UT2k4_INSTALL_DIR>"
|
||||
show_help
|
||||
exit 9999 # die with error code 9999
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
'getmodprefix')
|
||||
check_game_dir
|
||||
getmodprefix
|
||||
;;
|
||||
'install')
|
||||
check_game_dir
|
||||
install
|
||||
;;
|
||||
'enable')
|
||||
check_game_dir
|
||||
check_cfg_file
|
||||
disable
|
||||
enable
|
||||
;;
|
||||
'disable')
|
||||
check_game_dir
|
||||
check_cfg_file
|
||||
disable
|
||||
;;
|
||||
*)
|
||||
show_help
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
22
Sources/Classes/ChaChaComboGib.uc
Normal file
22
Sources/Classes/ChaChaComboGib.uc
Normal file
@@ -0,0 +1,22 @@
|
||||
class ChaChaComboGib extends MutInstaGib
|
||||
config;
|
||||
|
||||
|
||||
function ModifyPlayer(Pawn Other)
|
||||
{
|
||||
Super.ModifyPlayer(Other);
|
||||
|
||||
Other.GiveWeapon(WeaponString);
|
||||
|
||||
if ( NextMutator != None )
|
||||
{
|
||||
NextMutator.ModifyPlayer(Other);
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
WeaponName="ChaChaComboShockRifle"
|
||||
WeaponString="ChaChaComboGibv1a.ChaChaComboShockRifle"
|
||||
FriendlyName="ChaChaComboGib"
|
||||
}
|
||||
11
Sources/Classes/ChaChaComboGibProjFire.uc
Normal file
11
Sources/Classes/ChaChaComboGibProjFire.uc
Normal file
@@ -0,0 +1,11 @@
|
||||
class ChaChaComboGibProjFire extends ShockProjFire;
|
||||
|
||||
var class<ShockProjectile> ProjectileClassRED;
|
||||
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
ProjectileClass=Class'ChaChaComboGibv1a.ChaChaComboGibProjectile'
|
||||
|
||||
}
|
||||
|
||||
10
Sources/Classes/ChaChaComboGibProjFire_RED.uc
Normal file
10
Sources/Classes/ChaChaComboGibProjFire_RED.uc
Normal file
@@ -0,0 +1,10 @@
|
||||
class ChaChaComboGibProjFire_RED extends ShockProjFire;
|
||||
|
||||
var class<ShockProjectile> ProjectileClassRED;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
ProjectileClass=Class'ChaChaComboGibv1a.ChaChaComboGibProjectile_RED'
|
||||
|
||||
}
|
||||
|
||||
10
Sources/Classes/ChaChaComboGibProjectile.uc
Normal file
10
Sources/Classes/ChaChaComboGibProjectile.uc
Normal file
@@ -0,0 +1,10 @@
|
||||
class ChaChaComboGibProjectile extends ShockProjectile;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Texture=Texture'ChaChaComboGibv1a.Shock.shock_core_low_blue'
|
||||
DrawScale=0.700000
|
||||
Skins(0)=Texture'ChaChaComboGibv1a.Shock.shock_core_low_blue'
|
||||
ComboDamageType=Class'XWeapons.DamTypeSuperShockBeam'
|
||||
}
|
||||
|
||||
10
Sources/Classes/ChaChaComboGibProjectile_RED.uc
Normal file
10
Sources/Classes/ChaChaComboGibProjectile_RED.uc
Normal file
@@ -0,0 +1,10 @@
|
||||
class ChaChaComboGibProjectile_RED extends ShockProjectile;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
Texture=Texture'ChaChaComboGibv1a.Shock.shock_core_low_red'
|
||||
DrawScale=0.700000
|
||||
Skins(0)=Texture'ChaChaComboGibv1a.Shock.shock_core_low_red'
|
||||
ComboDamageType=Class'XWeapons.DamTypeSuperShockBeam'
|
||||
}
|
||||
|
||||
81
Sources/Classes/ChaChaComboGibRiflePickup.uc
Normal file
81
Sources/Classes/ChaChaComboGibRiflePickup.uc
Normal file
@@ -0,0 +1,81 @@
|
||||
class ChaChaComboGibRiflePickup extends SuperShockRiflePickup;
|
||||
|
||||
|
||||
|
||||
static function StaticPrecache(LevelInfo L)
|
||||
{
|
||||
if ( class'ShockRifle'.Default.bUseOldWeaponMesh )
|
||||
{
|
||||
L.AddPrecacheMaterial(Texture'WeaponSkins.Skins.ShockTex0');
|
||||
L.AddPrecacheMaterial(Texture'WeaponSkins.ShockLaser.lasermist');
|
||||
}
|
||||
L.AddPrecacheMaterial(Material'XEffects.ShockHeatDecal');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.shock_flash');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.shock_flare_a');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.shock_core');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.purple_line');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.shock_sparkle');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.shock_core_low');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.shock_Energy_green_faded');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.Shock_Elec_a');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.shock_gradient_b');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.Shock_ring_a');
|
||||
L.AddPrecacheMaterial(Material'XEffectMat.ShockComboFlash');
|
||||
L.AddPrecacheMaterial(Material'XGameShaders.shock_muzflash_1st');
|
||||
L.AddPrecacheMaterial(Material'XGameShaders.WeaponShaders.shock_muzflash_3rd');
|
||||
L.AddPrecacheMaterial(Material'XWeapons_rc.ShockBeamTex');
|
||||
L.AddPrecacheMaterial(Material'XEffects.SaDScorcht');
|
||||
L.AddPrecacheMaterial(Material'DeployableTex.C_T_Electricity_SG');
|
||||
L.AddPrecacheMaterial(Material'UT2004Weapons.ShockRipple');
|
||||
|
||||
L.AddPrecacheStaticMesh(StaticMesh'Editor.TexPropSphere');
|
||||
L.AddPrecacheStaticMesh(StaticMesh'NewWeaponPickups.ShockPickupSM');
|
||||
|
||||
L.AddPrecacheMaterial(Material'ChaChaComboGibv1a.shock_core_low_blue');
|
||||
L.AddPrecacheMaterial(Material'ChaChaComboGibv1a.shock_core_low_red');
|
||||
}
|
||||
|
||||
|
||||
simulated function UpdatePrecacheMaterials()
|
||||
{
|
||||
if ( class'ShockRifle'.Default.bUseOldWeaponMesh )
|
||||
{
|
||||
Level.AddPrecacheMaterial(Texture'WeaponSkins.Skins.ShockTex0');
|
||||
Level.AddPrecacheMaterial(Texture'WeaponSkins.ShockLaser.lasermist');
|
||||
}
|
||||
Level.AddPrecacheMaterial(Material'XEffects.ShockHeatDecal');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.shock_flash');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.shock_flare_a');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.shock_core');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.purple_line');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.shock_sparkle');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.shock_core_low');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.shock_Energy_green_faded');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.Shock_Elec_a');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.shock_gradient_b');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.Shock_ring_a');
|
||||
Level.AddPrecacheMaterial(Material'XEffectMat.ShockComboFlash');
|
||||
Level.AddPrecacheMaterial(Material'XGameShaders.shock_muzflash_1st');
|
||||
Level.AddPrecacheMaterial(Material'XGameShaders.WeaponShaders.shock_muzflash_3rd');
|
||||
Level.AddPrecacheMaterial(Material'XWeapons_rc.ShockBeamTex');
|
||||
Level.AddPrecacheMaterial(Material'DeployableTex.C_T_Electricity_SG');
|
||||
Level.AddPrecacheMaterial(Material'XEffects.SaDScorcht');
|
||||
Level.AddPrecacheMaterial(Material'UT2004Weapons.ShockRipple');
|
||||
|
||||
Level.AddPrecacheMaterial(Material'ChaChaComboGibv1a.shock_core_low_blue');
|
||||
Level.AddPrecacheMaterial(Material'ChaChaComboGibv1a.shock_core_low_red');
|
||||
|
||||
super.UpdatePrecacheMaterials();
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
MaxDesireability=0.650000
|
||||
InventoryType=Class'ChaChaComboGibv1a.ChaChaComboShockRifle'
|
||||
PickupMessage="You got the ChaCha ComboGib."
|
||||
PickupSound=Sound'PickupSounds.ShockRiflePickup'
|
||||
PickupForce="ChaChaComboShockRifle"
|
||||
DrawType=DT_StaticMesh
|
||||
StaticMesh=StaticMesh'WeaponStaticMesh.ShockRiflePickup'
|
||||
DrawScale=0.500000
|
||||
}
|
||||
35
Sources/Classes/ChaChaComboShockRifle.uc
Normal file
35
Sources/Classes/ChaChaComboShockRifle.uc
Normal file
@@ -0,0 +1,35 @@
|
||||
//=============================================================================
|
||||
// SuperShockRifle
|
||||
//=============================================================================
|
||||
|
||||
class ChaChaComboShockRifle extends SuperShockRifle
|
||||
HideDropDown
|
||||
CacheExempt;
|
||||
|
||||
|
||||
#exec OBJ LOAD FILE=ChaChaComboGibv1a.utx
|
||||
|
||||
|
||||
|
||||
simulated event PreBeginPlay()
|
||||
{
|
||||
Log("Instigator="$Instigator);
|
||||
if ( (Instigator.PlayerReplicationInfo.Team != None) && (Instigator.PlayerReplicationInfo.Team.TeamIndex == 1) )
|
||||
{
|
||||
FireModeClass[1]=Class'ChaChaComboGibv1a.ChaChaComboGibProjFire';
|
||||
Log("BLUE");
|
||||
}
|
||||
else
|
||||
{
|
||||
FireModeClass[1]=Class'ChaChaComboGibv1a.ChaChaComboGibProjFire_RED';
|
||||
Log("RED");
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
FireModeClass(0)=Class'XWeapons.SuperShockBeamFire'
|
||||
//FireModeClass(1)=Class'XWeapons.ShockProjFire'
|
||||
FireModeClass(1)=Class'ChaChaComboGibv1a.ChaChaComboGibProjFire'
|
||||
PickupClass=Class'ChaChaComboGibv1a.ChaChaComboGibRiflePickup'
|
||||
}
|
||||
BIN
Sources/Pict/shock_core_low.dds
Normal file
BIN
Sources/Pict/shock_core_low.dds
Normal file
Binary file not shown.
BIN
Sources/Pict/shock_core_low_blue.dds
Normal file
BIN
Sources/Pict/shock_core_low_blue.dds
Normal file
Binary file not shown.
BIN
Sources/Pict/shock_core_low_blue.xcf
Normal file
BIN
Sources/Pict/shock_core_low_blue.xcf
Normal file
Binary file not shown.
BIN
Sources/Pict/shock_core_low_red.dds
Normal file
BIN
Sources/Pict/shock_core_low_red.dds
Normal file
Binary file not shown.
BIN
Sources/Pict/shock_core_low_red.xcf
Normal file
BIN
Sources/Pict/shock_core_low_red.xcf
Normal file
Binary file not shown.
48
Sources/build.bat
Normal file
48
Sources/build.bat
Normal file
@@ -0,0 +1,48 @@
|
||||
@echo off
|
||||
setlocal enabledelayedexpansion enableextensions
|
||||
set BUILD_DIR=%~dp0
|
||||
|
||||
pushd "%BUILD_DIR%"
|
||||
|
||||
for /f "delims=" %%X IN ('dir /B /A /S *') DO (
|
||||
for %%D in ("%%~dpX\.") do (
|
||||
set PACKAGE_NAME=%%~nxD
|
||||
goto FoundPkgName
|
||||
)
|
||||
)
|
||||
|
||||
:FoundPkgName
|
||||
pushd ..\System
|
||||
|
||||
:: make sure to always rebuild the package
|
||||
:: New package GUID, No doubts about staleness
|
||||
del %PACKAGE_NAME%.u
|
||||
del %PACKAGE_NAME%.ucl
|
||||
|
||||
ucc make -ini="%BUILD_DIR%make.ini"
|
||||
|
||||
popd
|
||||
:: dont do the post-process steps if compilation failed
|
||||
if ERRORLEVEL 1 goto cleanup
|
||||
pushd ..\System
|
||||
|
||||
:: Generate compressed file for redirects
|
||||
ucc compress %PACKAGE_NAME%.u
|
||||
|
||||
:: Dump i18n strings
|
||||
del %PACKAGE_NAME%.int
|
||||
ucc dumpint %PACKAGE_NAME%.u
|
||||
|
||||
:: copy to release location
|
||||
copy %PACKAGE_NAME%.u "%BUILD_DIR%System" >NUL
|
||||
copy %PACKAGE_NAME%.ucl "%BUILD_DIR%System" >NUL
|
||||
copy %PACKAGE_NAME%.int "%BUILD_DIR%System" >NUL
|
||||
copy %PACKAGE_NAME%.u.uz2 "%BUILD_DIR%System" >NUL
|
||||
|
||||
popd
|
||||
|
||||
if exist "PostBuildHook.bat" call "PostBuildHook.bat"
|
||||
|
||||
:cleanup
|
||||
popd
|
||||
endlocal
|
||||
56
Sources/make.ini
Normal file
56
Sources/make.ini
Normal file
@@ -0,0 +1,56 @@
|
||||
[Engine.Engine]
|
||||
EditorEngine=Editor.EditorEngine
|
||||
|
||||
[Editor.EditorEngine]
|
||||
CacheSizeMegs=32
|
||||
EditPackages=Core
|
||||
EditPackages=Engine
|
||||
EditPackages=Fire
|
||||
EditPackages=Editor
|
||||
EditPackages=UnrealEd
|
||||
EditPackages=IpDrv
|
||||
EditPackages=UWeb
|
||||
EditPackages=GamePlay
|
||||
EditPackages=UnrealGame
|
||||
EditPackages=XGame_rc
|
||||
EditPackages=XEffects
|
||||
EditPackages=XWeapons_rc
|
||||
EditPackages=XPickups_rc
|
||||
EditPackages=XPickups
|
||||
EditPackages=XGame
|
||||
EditPackages=XWeapons
|
||||
EditPackages=XInterface
|
||||
EditPackages=XAdmin
|
||||
EditPackages=XWebAdmin
|
||||
EditPackages=Vehicles
|
||||
EditPackages=BonusPack
|
||||
EditPackages=SkaarjPack_rc
|
||||
EditPackages=SkaarjPack
|
||||
EditPackages=UTClassic
|
||||
EditPackages=UT2k4Assault
|
||||
EditPackages=Onslaught
|
||||
EditPackages=GUI2K4
|
||||
EditPackages=UT2k4AssaultFull
|
||||
EditPackages=OnslaughtFull
|
||||
EditPackages=xVoting
|
||||
EditPackages=StreamlineFX
|
||||
EditPackages=UTV2004c
|
||||
EditPackages=UTV2004s
|
||||
EditPackages=ChaChaComboGibv1a
|
||||
|
||||
[Core.System]
|
||||
SavePath=../Save
|
||||
CachePath=../Cache
|
||||
CacheExt=.uxx
|
||||
CacheRecordPath=../System/*.ucl
|
||||
MusicPath=../Music
|
||||
SpeechPath=../Speech
|
||||
Paths=../System/*.u
|
||||
Paths=../Maps/*.ut2
|
||||
Paths=../Textures/*.utx
|
||||
Paths=../Sounds/*.uax
|
||||
Paths=Sounds/*.uax
|
||||
Paths=../Music/*.umx
|
||||
Paths=../StaticMeshes/*.usx
|
||||
Paths=../Animations/*.ukx
|
||||
Paths=../Saves/*.uvx
|
||||
6
System/ChaChaComboGibv1a.int
Normal file
6
System/ChaChaComboGibv1a.int
Normal file
@@ -0,0 +1,6 @@
|
||||
[ChaChaComboGib]
|
||||
FriendlyName="ChaChaComboGib"
|
||||
|
||||
[ChaChaComboGibRiflePickup]
|
||||
PickupMessage="You got the ChaCha ComboGib."
|
||||
|
||||
BIN
System/ChaChaComboGibv1a.u
Normal file
BIN
System/ChaChaComboGibv1a.u
Normal file
Binary file not shown.
1
System/ChaChaComboGibv1a.ucl
Normal file
1
System/ChaChaComboGibv1a.ucl
Normal file
@@ -0,0 +1 @@
|
||||
Mutator=(ClassName=ChaChaComboGibv1a.ChaChaComboGib,GroupName=Arena,IconMaterialName=MutatorArt.nosym,FriendlyName=ChaChaComboGibv1a.ChaChaComboGib.FriendlyName,Description=ChaChaComboGibv1a.ChaChaComboGib.Description,FriendlyName=ChaChaComboGibv1a.ChaChaComboGib.FriendlyName,FallbackName="ChaChaComboGib",FallbackDesc="Instant-kill combat with modified Shock Rifles.")
|
||||
BIN
Textures/ChaChaComboGibv1a.utx
Normal file
BIN
Textures/ChaChaComboGibv1a.utx
Normal file
Binary file not shown.
Reference in New Issue
Block a user