400 lines
16 KiB
Plaintext
400 lines
16 KiB
Plaintext
#using scripts\shared\system_shared;
|
|
|
|
|
|
|
|
#namespace tweakables;
|
|
|
|
function autoexec __init__sytem__() { system::register("tweakables",&__init__,undefined,undefined); }
|
|
|
|
function __init__()
|
|
{
|
|
level.clientTweakables = [];
|
|
level.tweakablesInitialized = true;
|
|
|
|
level.rules = [];
|
|
level.gameTweaks = [];
|
|
level.teamTweaks = [];
|
|
level.playerTweaks = [];
|
|
level.classTweaks = [];
|
|
level.weaponTweaks = [];
|
|
level.hardpointTweaks = [];
|
|
level.hudTweaks = [];
|
|
// commented out tweaks have not yet been implemented
|
|
|
|
registerTweakable( "game", "arcadescoring", "scr_game_arcadescoring", 0 ); //*
|
|
registerTweakable( "game", "difficulty", "scr_game_difficulty", 1 ); //*
|
|
registerTweakable( "game", "pinups", "scr_game_pinups", 0 ); //*
|
|
|
|
registerTweakable( "team", "teamkillerplaylistbanquantum", "scr_team_teamkillerplaylistbanquantum", 0 );
|
|
registerTweakable( "team", "teamkillerplaylistbanpenalty", "scr_team_teamkillerplaylistbanpenalty", 0 );
|
|
|
|
registerTweakable( "player", "allowrevive", "scr_player_allowrevive", 1 ); //*
|
|
|
|
registerTweakable( "weapon", "allowfrag", "scr_weapon_allowfrags", 1 );
|
|
registerTweakable( "weapon", "allowsmoke", "scr_weapon_allowsmoke", 1 );
|
|
registerTweakable( "weapon", "allowflash", "scr_weapon_allowflash", 1 );
|
|
registerTweakable( "weapon", "allowc4", "scr_weapon_allowc4", 1 );
|
|
registerTweakable( "weapon", "allowsatchel", "scr_weapon_allowsatchel", 1 );
|
|
registerTweakable( "weapon", "allowbetty", "scr_weapon_allowbetty", 1 );
|
|
registerTweakable( "weapon", "allowrpgs", "scr_weapon_allowrpgs", 1 );
|
|
registerTweakable( "weapon", "allowmines", "scr_weapon_allowmines", 1 );
|
|
|
|
registerTweakable( "hud", "showobjicons", "ui_hud_showobjicons", 1 ); //*
|
|
setClientTweakable( "hud", "showobjicons" );
|
|
|
|
registerTweakable( "killstreak", "allowradar", "scr_hardpoint_allowradar", 1 );
|
|
registerTweakable( "killstreak", "allowradardirection", "scr_hardpoint_allowradardirection", 1 );
|
|
registerTweakable( "killstreak", "allowcounteruav", "scr_hardpoint_allowcounteruav", 1 );
|
|
registerTweakable( "killstreak", "allowdogs", "scr_hardpoint_allowdogs", 1 );
|
|
registerTweakable( "killstreak", "allowhelicopter_comlink", "scr_hardpoint_allowhelicopter_comlink", 1 );
|
|
registerTweakable( "killstreak", "allowrcbomb", "scr_hardpoint_allowrcbomb", 1 );
|
|
registerTweakable( "killstreak", "allowauto_turret", "scr_hardpoint_allowauto_turret", 1 );
|
|
|
|
/#debug_refresh=true;#/
|
|
level thread updateUITweakables(debug_refresh);
|
|
}
|
|
|
|
function getTweakableDVarValue( category, name )
|
|
{
|
|
switch( category )
|
|
{
|
|
case "rule":
|
|
dVar = level.rules[name].dVar;
|
|
break;
|
|
case "game":
|
|
dVar = level.gameTweaks[name].dVar;
|
|
break;
|
|
case "team":
|
|
dVar = level.teamTweaks[name].dVar;
|
|
break;
|
|
case "player":
|
|
dVar = level.playerTweaks[name].dVar;
|
|
break;
|
|
case "class":
|
|
dVar = level.classTweaks[name].dVar;
|
|
break;
|
|
case "weapon":
|
|
dVar = level.weaponTweaks[name].dVar;
|
|
break;
|
|
case "killstreak":
|
|
dVar = level.hardpointTweaks[name].dVar;
|
|
break;
|
|
case "hud":
|
|
dVar = level.hudTweaks[name].dVar;
|
|
break;
|
|
default:
|
|
dVar = undefined;
|
|
break;
|
|
}
|
|
|
|
assert( isdefined( dVar ) );
|
|
|
|
value = getDvarInt( dVar );
|
|
|
|
return value;
|
|
}
|
|
|
|
|
|
function getTweakableDVar( category, name )
|
|
{
|
|
switch( category )
|
|
{
|
|
case "rule":
|
|
value = level.rules[name].dVar;
|
|
break;
|
|
case "game":
|
|
value = level.gameTweaks[name].dVar;
|
|
break;
|
|
case "team":
|
|
value = level.teamTweaks[name].dVar;
|
|
break;
|
|
case "player":
|
|
value = level.playerTweaks[name].dVar;
|
|
break;
|
|
case "class":
|
|
value = level.classTweaks[name].dVar;
|
|
break;
|
|
case "weapon":
|
|
value = level.weaponTweaks[name].dVar;
|
|
break;
|
|
case "killstreak":
|
|
value = level.hardpointTweaks[name].dVar;
|
|
break;
|
|
case "hud":
|
|
value = level.hudTweaks[name].dVar;
|
|
break;
|
|
default:
|
|
value = undefined;
|
|
break;
|
|
}
|
|
|
|
assert( isdefined( value ) );
|
|
return value;
|
|
}
|
|
|
|
|
|
function getTweakableValue( category, name )
|
|
{
|
|
switch( category )
|
|
{
|
|
case "rule":
|
|
value = level.rules[name].value;
|
|
break;
|
|
case "game":
|
|
value = level.gameTweaks[name].value;
|
|
break;
|
|
case "team":
|
|
value = level.teamTweaks[name].value;
|
|
break;
|
|
case "player":
|
|
value = level.playerTweaks[name].value;
|
|
break;
|
|
case "class":
|
|
value = level.classTweaks[name].value;
|
|
break;
|
|
case "weapon":
|
|
value = level.weaponTweaks[name].value;
|
|
break;
|
|
case "killstreak":
|
|
value = level.hardpointTweaks[name].value;
|
|
break;
|
|
case "hud":
|
|
value = level.hudTweaks[name].value;
|
|
break;
|
|
default:
|
|
value = undefined;
|
|
break;
|
|
}
|
|
|
|
overrideDvar = "scr_" + level.gameType + "_" + category + "_" + name;
|
|
if ( GetDvarString( overrideDvar ) != "" )
|
|
return getDvarInt( overrideDvar );
|
|
|
|
assert( isdefined( value ) );
|
|
return value;
|
|
}
|
|
|
|
|
|
function getTweakableLastValue( category, name )
|
|
{
|
|
switch( category )
|
|
{
|
|
case "rule":
|
|
value = level.rules[name].lastValue;
|
|
break;
|
|
case "game":
|
|
value = level.gameTweaks[name].lastValue;
|
|
break;
|
|
case "team":
|
|
value = level.teamTweaks[name].lastValue;
|
|
break;
|
|
case "player":
|
|
value = level.playerTweaks[name].lastValue;
|
|
break;
|
|
case "class":
|
|
value = level.classTweaks[name].lastValue;
|
|
break;
|
|
case "weapon":
|
|
value = level.weaponTweaks[name].lastValue;
|
|
break;
|
|
case "killstreak":
|
|
value = level.hardpointTweaks[name].lastValue;
|
|
break;
|
|
case "hud":
|
|
value = level.hudTweaks[name].lastValue;
|
|
break;
|
|
default:
|
|
value = undefined;
|
|
break;
|
|
}
|
|
|
|
assert( isdefined( value ) );
|
|
return value;
|
|
}
|
|
|
|
|
|
function setTweakableValue( category, name, value )
|
|
{
|
|
switch( category )
|
|
{
|
|
case "rule":
|
|
dVar = level.rules[name].dVar;
|
|
break;
|
|
case "game":
|
|
dVar = level.gameTweaks[name].dVar;
|
|
break;
|
|
case "team":
|
|
dVar = level.teamTweaks[name].dVar;
|
|
break;
|
|
case "player":
|
|
dVar = level.playerTweaks[name].dVar;
|
|
break;
|
|
case "class":
|
|
dVar = level.classTweaks[name].dVar;
|
|
break;
|
|
case "weapon":
|
|
dVar = level.weaponTweaks[name].dVar;
|
|
break;
|
|
case "killstreak":
|
|
dVar = level.hardpointTweaks[name].dVar;
|
|
break;
|
|
case "hud":
|
|
dVar = level.hudTweaks[name].dVar;
|
|
break;
|
|
default:
|
|
dVar = undefined;
|
|
break;
|
|
}
|
|
|
|
SetDvar( dVar, value );
|
|
}
|
|
|
|
|
|
function setTweakableLastValue( category, name, value )
|
|
{
|
|
switch( category )
|
|
{
|
|
case "rule":
|
|
level.rules[name].lastValue = value;
|
|
break;
|
|
case "game":
|
|
level.gameTweaks[name].lastValue = value;
|
|
break;
|
|
case "team":
|
|
level.teamTweaks[name].lastValue = value;
|
|
break;
|
|
case "player":
|
|
level.playerTweaks[name].lastValue = value;
|
|
break;
|
|
case "class":
|
|
level.classTweaks[name].lastValue = value;
|
|
break;
|
|
case "weapon":
|
|
level.weaponTweaks[name].lastValue = value;
|
|
break;
|
|
case "killstreak":
|
|
level.hardpointTweaks[name].lastValue = value;
|
|
break;
|
|
case "hud":
|
|
level.hudTweaks[name].lastValue = value;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
function registerTweakable( category, name, dvar, value )
|
|
{
|
|
if ( isString( value ) )
|
|
{
|
|
if( GetDvarString( dvar ) == "" )
|
|
SetDvar( dvar, value );
|
|
else
|
|
value = GetDvarString( dvar );
|
|
}
|
|
else
|
|
{
|
|
if( GetDvarString( dvar ) == "" )
|
|
SetDvar( dvar, value );
|
|
else
|
|
value = getDvarInt( dvar );
|
|
}
|
|
|
|
switch( category )
|
|
{
|
|
case "rule":
|
|
if ( !isdefined( level.rules[name] ) )
|
|
level.rules[name] = spawnStruct();
|
|
level.rules[name].value = value;
|
|
level.rules[name].lastValue = value;
|
|
level.rules[name].dVar = dvar;
|
|
break;
|
|
case "game":
|
|
if ( !isdefined( level.gameTweaks[name] ) )
|
|
level.gameTweaks[name] = spawnStruct();
|
|
level.gameTweaks[name].value = value;
|
|
level.gameTweaks[name].lastValue = value;
|
|
level.gameTweaks[name].dVar = dvar;
|
|
break;
|
|
case "team":
|
|
if ( !isdefined( level.teamTweaks[name] ) )
|
|
level.teamTweaks[name] = spawnStruct();
|
|
level.teamTweaks[name].value = value;
|
|
level.teamTweaks[name].lastValue = value;
|
|
level.teamTweaks[name].dVar = dvar;
|
|
break;
|
|
case "player":
|
|
if ( !isdefined( level.playerTweaks[name] ) )
|
|
level.playerTweaks[name] = spawnStruct();
|
|
level.playerTweaks[name].value = value;
|
|
level.playerTweaks[name].lastValue = value;
|
|
level.playerTweaks[name].dVar = dvar;
|
|
break;
|
|
case "class":
|
|
if ( !isdefined( level.classTweaks[name] ) )
|
|
level.classTweaks[name] = spawnStruct();
|
|
level.classTweaks[name].value = value;
|
|
level.classTweaks[name].lastValue = value;
|
|
level.classTweaks[name].dVar = dvar;
|
|
break;
|
|
case "weapon":
|
|
if ( !isdefined( level.weaponTweaks[name] ) )
|
|
level.weaponTweaks[name] = spawnStruct();
|
|
level.weaponTweaks[name].value = value;
|
|
level.weaponTweaks[name].lastValue = value;
|
|
level.weaponTweaks[name].dVar = dvar;
|
|
break;
|
|
case "killstreak":
|
|
if ( !isdefined( level.hardpointTweaks[name] ) )
|
|
level.hardpointTweaks[name] = spawnStruct();
|
|
level.hardpointTweaks[name].value = value;
|
|
level.hardpointTweaks[name].lastValue = value;
|
|
level.hardpointTweaks[name].dVar = dvar;
|
|
break;
|
|
case "hud":
|
|
if ( !isdefined( level.hudTweaks[name] ) )
|
|
level.hudTweaks[name] = spawnStruct();
|
|
level.hudTweaks[name].value = value;
|
|
level.hudTweaks[name].lastValue = value;
|
|
level.hudTweaks[name].dVar = dvar;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
function setClientTweakable( category, name )
|
|
{
|
|
level.clientTweakables[level.clientTweakables.size] = name;
|
|
}
|
|
|
|
|
|
|
|
function updateUITweakables(debug_refresh)
|
|
{
|
|
do
|
|
{
|
|
for ( index = 0; index < level.clientTweakables.size; index++ )
|
|
{
|
|
clientTweakable = level.clientTweakables[index];
|
|
curValue = getTweakableDVarValue( "hud", clientTweakable );
|
|
lastValue = getTweakableLastValue( "hud", clientTweakable );
|
|
|
|
if ( curValue != lastValue )
|
|
{
|
|
updateServerDvar( getTweakableDvar( "hud", clientTweakable ), curValue );
|
|
setTweakableLastValue( "hud", clientTweakable, curValue );
|
|
}
|
|
}
|
|
|
|
wait ( randomfloatrange(1.0-0.1,1.0+0.1) );
|
|
}
|
|
while(isdefined(debug_refresh));
|
|
}
|
|
|
|
|
|
function updateServerDvar( dvar, value )
|
|
{
|
|
//makeDvarServerInfo( dvar, value );
|
|
}
|