Idea for one Mod with all features mentioned in this forum


(nUllSkillZ) #1

Hi,

I’m currently working at the UI.
I edited two of the menu files because I wanted to test options without compiling new.
Another reason is that the option is not harcoded and can be changed to what you like.
Currently the UI side is working.
What remains is to get the options into the code (cvars).
(But thats not the reason for this post).
I added two pictures of the new menus:

I added the Additional Button which opens next menu.


The menu where the options can be choosen.
In this case I want to test the idea of speed in dependance of health.

And suddenly I had the idea to create something like an Uber-Mod with all the features (the “little” tweaks) mentioned in this forum.
In such a menu you could select whether it is a headshot server or not.
Or choose to tweak the weapons (Sephmod). Or how to shuffle.
And all the other ideas I haven’t mentioned.
The Admin of a server has the choice.
And the people only need one mod.
Only an idea.


(Lanz) #2

I don’t wanna rain on your parade but isn’t that exactly the purpose of the Shrub mod?

Add millions of small “gadgets” in one package?


(SCDS_reyalP) #3

If people post their code as patches (context diffs) then it should be fairly easy to merge them. Assuming people want to share. I hope to make a patch set of common bug fixes, at the very least.

If you want a ‘do everything’ mod, I suggest the right way to do it would be to re-work the game code so the areas of interest were scriptable in some way. See the tribes games for an example of this :stuck_out_tongue:

That said, I’m not sure a million minor game variations is a good thing, especially if they are not chosen with game balance in mind.


(TFate) #4

Notice that shrubet hasn’t been updated for AGES… methinketh it dead?

Anyway I think it’s a great idea… just as long as it’s only small tweaks and serious ones. One thing I didn’t like about shrubmod & shrubet is all the weird stuff which ruins the game.


(sniser) #5

Maybe - but for this to be the same Shrub would need to open the source.

If you want a ‘do everything’ mod, I suggest the right way to do it would be to re-work the game code so the areas of interest were scriptable in some way.

Here’s how an obsessive/compulsive person with hardly any C++ and zero Quake knowledge does it (some things don’t work, I’m kinda collecting anything that might be of interest, turning hardcoded values into constants etc.)

(Err, if this is too long truncate or delete it - but you have to consider that if you go really full monty with that it would be many many times as big)

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// DEBUGGING
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_SKILLSTART_LIGHTWEAPONS 0
#define SNI_SKILLSTART_FIRSTAID 0
#define SNI_SKILLSTART_ENGINEER 0
#define SNI_SKILLSTART_HEAVYWEAPONS 0
#define SNI_SKILLSTART_COVOPS 0
#define SNI_SKILLSTART_BATTLESENSE 0

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// GFX
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_GRENADE_BUBBTRAIL_SIZE 1 // 2
#define SNI_GRENADE_BUBBTRAIL_SPACING 4 // 8
#define SNI_ROCKET_BUBBTRAIL_SIZE 1.5 // 3
#define SNI_ROCKET_BUBBTRAIL_SPACING 4 // 8
#define SNI_BULLET_BUBBTRAIL_SIZE 0.25f // 0.5
#define SNI_BULLET_BUBBTRAIL_SPACING 4 // 8
#define SNI_BULLET_BUBBTRAIL_DISTANCE 1536 // 1024
#define SNI_BUBBTRAIL_LIFESPAN1 100 // 1000 (has no effect?)
#define SNI_BUBBTRAIL_LIFESPAN2 5000 // 250 (random)
#define SNI_SMOKE_FACTOR 2.0f // n/a - 1.0 (duration) (none of these 3 seem to have any f-in’ effect?)
#define SNI_SMOKE_BOUNCE 0.5f // 0.25f
#define SNI_SMOKE_GROW 1.5f // 1.25f
#define SNI_FUSE_SPARK_LIFE 100 // 100 no effect?
#define SNI_FUSE_SPARK_LENGTH 30 // 30
#define SNI_BLOOD_SPURT_COUNT 16 // 4
#define SNI_BLOOD_SPURT_FREQUENCY1 250 // 500
#define SNI_BLOOD_SPURT_FREQUENCY2 500 // 1000
#define SNI_BLEED_DURATION1 900 // 450
#define SNI_BLEED_DURATION2 100 // 50
#define SNI_BLEED_COUNT1 8 // 2
#define SNI_BLEED_COUNT2 8 // 2
#define SNI_BLEED_SPEED 150 // 100
#define SNI_BLEED_RANDSCALE 0.15 // 0.1
#define SNI_GIB_VELOCITY 150 // 75
#define SNI_GIB_JUMP 350 // 250
#define SNI_GIB_FADETIME 5000 // 1000
#define SNI_GIB_LIFESPAN1 60000 // 20000 (no effect?)
#define SNI_GIB_LIFESPAN2 30000 // 5000
#define SNI_GIB_BLOOD_DOTS 5 // 3
#define SNI_HELMET_LIFESPAN1 60000 // 20000
#define SNI_HELMET_LIFESPAN2 30000 // 5000
#define SNI_HELMET_FADETIME 5000 // 1000
#define SNI_BULLETMARK_DISTANCE 1768 // 384 “only spawn the bullet hole if we are close” - does this have any effect?
#define SNI_AIRSTRIKE_SMOKETRAIL_STEP 20 // 30 (does this have any effect?)
#define SNI_LT_MS 1 // 100 “random number will change every LT_MS millseconds”
#define SNI_MAX_SMOKESPRITES 1024 // 512 (does this have any effect? doesn’t seem so :D)
#define SNI_SPRINTTIME 50000.0f // 20000.0f
#define SNI_VOTETIME 60000 // 30000
#define SNI_CCPULSE_FREQUENCY 1500 // 2000
#define SNI_ITEM_TIMEOUT 30000 // 30000
#define SNI_FLAG_TIMEOUT 30000 // 30000
#define SNI_PACK_SINKSPEED 19 // 5
#define SNI_PACK_ANGLECLAMP 30 // 30
#define SNI_PACK_THROWSPEED 64 // 64

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// FLAMETHROWER STUFF
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_MIN_BURN_INTERVAL 399 // 399
#define SNI_BURN_DAMAGE 5 // 5
#define SNI_BURN_DAMAGE2 2 // 2 (“for non-clients”)
#define SNI_FIRE_FLASH_TIME 500 // 2000
#define SNI_MAX_FLAME_CHUNKS 1024 // 1024 (does this have any effect? not tested yet)
#define SNI_FLAMETHROWER_RANGE 2500 // 2500
#define SNI_FLAME_START_SIZE 1.0 // 1.0
#define SNI_FLAME_START_MAX_SIZE 100.0 // 100.0 “when the flame is spawned, it should endevour to reach this size”
#define SNI_FLAME_START_SPEED 1200.0 // 1200.0 “speed of flame as it leaves the nozzle”
#define SNI_FLAME_MIN_SPEED 60.0 // 60.0
#define SNI_FLAME_LENGTH (SNI_FLAMETHROWER_RANGE + 50.0) // (FLAMETHROWER_RANGE + 50.0)
#define SNI_FLAME_LIFETIME (int)((SNI_FLAME_LENGTH/SNI_FLAME_START_SPEED)1000) // (int)((FLAME_LENGTH/FLAME_START_SPEED)1000)
#define SNI_FLAME_FRICTION_PER_SEC (2.0f
SNI_FLAME_START_SPEED) // (2.0f
FLAME_START_SPEED)
#define SNI_GET_FLAME_SIZE_SPEED(x) (((float)x / SNI_FLAME_LIFETIME) / 0.3) // (((float)x / FLAME_LIFETIME) / 0.3)
#define SNI_FLAME_THRESHOLD 0 // 0
#define SNI_FLAME_MAX_SIZE 200.0 // 200.0
#define SNI_FLAME_CHUNK_DIST 8.0 // 8.0
#define SNI_FLAME_MAXFLAMECHUNKSPERFRAME 50 // 75
#define SNI_FLAME_MAXRADIUS 6 // 6 (does this have any effect?)
#define SNI_FLAME_SOUNDRANGE 1536.0 // 1024.0
#define SNI_NUM_FLAME_SPRITES 256 // 45 (does this have any effect?)
#define SNI_MIN_BLOW_VOLUME 1 // 30 (flamethrower minimum volume)
#define SNI_FLAME_GROWSPEED 10.0f // 10.0f
#define SNI_FLAME_DECCELERATETIME 800 // 800
#define SNI_FLAMEQUOTA_FALLOFF 3.5f // 2.5f (not sure what this does)
#define SNI_FLAMEQUOTA_INCREASE 5 // 5 (same here)
#define SNI_FLAMEDAMAGE_FREQUENCY 50 // 100
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// WEAPONS
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_WEAPONSPREAD_STEN 200 // 200
#define SNI_WEAPONSPREAD_FG42SCOPE 200 // 200
#define SNI_WEAPONSPREAD_MP40 400 // 400
#define SNI_WEAPONSPREAD_THOMPSON 400 // 400
#define SNI_WEAPONSPREAD_FG42 500 // 500
#define SNI_WEAPONSPREAD_GARAND 500 // 250
#define SNI_WEAPONSPREAD_CARBINE 500 // 250
#define SNI_WEAPONSPREAD_KAR98 500 // 250
#define SNI_WEAPONSPREAD_K43 500 // 250
#define SNI_WEAPONSPREAD_LUGER 600 // 600
#define SNI_WEAPONSPREAD_SILENCER 600 // 600
#define SNI_WEAPONSPREAD_AKIMBO_LUGER 600 // 600
#define SNI_WEAPONSPREAD_AKIMBO_SILENCEDLUGER 600 // 600
#define SNI_WEAPONSPREAD_COLT 600 // 600
#define SNI_WEAPONSPREAD_SILENCED_COLT 600 // 600
#define SNI_WEAPONSPREAD_AKIMBO_COLT 600 // 600
#define SNI_WEAPONSPREAD_AKIMBO_SILENCEDCOLT 600 // 600
#define SNI_WEAPONSPREAD_GARAND_SCOPE 700 // 700
#define SNI_WEAPONSPREAD_K43_SCOPE 700 // 700
#define SNI_WEAPONSPREAD_MOBILE_MG42 2500 // 2500
#define SNI_WEAPONSPREAD_MOBILE_MG42_SET 2500 // 2500
#define SNI_WEAPONDAMAGE_DEFAULT 1 // 1
#define SNI_WEAPONDAMAGE_KNIFE 10 // 10
#define SNI_WEAPONDAMAGE_STEN 14 // 14
#define SNI_WEAPONDAMAGE_FG42 15 // 15
#define SNI_WEAPONDAMAGE_LUGER 18 // 18
#define SNI_WEAPONDAMAGE_SILENCER 18 // 18
#define SNI_WEAPONDAMAGE_AKIMBO_LUGER 18 // 18
#define SNI_WEAPONDAMAGE_AKIMBO_SILENCEDLUGER 18 // 18
#define SNI_WEAPONDAMAGE_COLT 18 // 18
#define SNI_WEAPONDAMAGE_SILENCED_COLT 18 // 18
#define SNI_WEAPONDAMAGE_AKIMBO_COLT 18 // 18
#define SNI_WEAPONDAMAGE_AKIMBO_SILENCEDCOLT 18 // 18
#define SNI_WEAPONDAMAGE_THOMPSON 18 // 18
#define SNI_WEAPONDAMAGE_MP40 18 // 18
#define SNI_WEAPONDAMAGE_MOBILE_MG42 18 // 18
#define SNI_WEAPONDAMAGE_MOBILE_MG42_SET 18 // 18
#define SNI_WEAPONDAMAGE_CARBINE 20 // 34
#define SNI_WEAPONDAMAGE_GARAND 20 // 34
#define SNI_WEAPONDAMAGE_KAR98 20 // 34
#define SNI_WEAPONDAMAGE_K43 20 // 34
#define SNI_WEAPONDAMAGE_FG42SCOPE 30 // 30
#define SNI_WEAPONDAMAGE_GARAND_SCOPE 50 // 50
#define SNI_WEAPONDAMAGE_K43_SCOPE 50 // 50
#define SNI_WEAPONDAMAGE_ARTILLERYSPOTTER 50 // 0
#define SNI_WEAPONDAMAGE_ARTILLERY 50 // 0
#define SNI_WEAPONDAMAGE_GPG40 125 // 150
#define SNI_WEAPONDAMAGE_M7 125 // 150
#define SNI_WEAPONDAMAGE_LANDMINE 200 // 250
#define SNI_WEAPONDAMAGE_SMOKE_MARKER 200 // 170
#define SNI_WEAPONDAMAGE_MAPMORTAR 250 // 250
#define SNI_WEAPONDAMAGE_GRENADE_LAUNCHER 250 // 250
#define SNI_WEAPONDAMAGE_PINEAPPLE 250 // 250
#define SNI_WEAPONDAMAGE_SATCHEL 250 // 250
#define SNI_WEAPONDAMAGE_TRIPMINE 300 // 300
#define SNI_WEAPONDAMAGE_PANZERFAUST 300 // 400
#define SNI_WEAPONDAMAGE_AIRSTRIKE 300 // 400
#define SNI_WEAPONDAMAGE_MORTAR_SET 350 // 400
#define SNI_WEAPONDAMAGE_DYNAMITE 750 // 500
#define SNI_WEAPONSPLASHDAMAGE_ARTILLERYSPOTTER 150 // 90
#define SNI_WEAPONSPLASHDAMAGE_MAPMORTAR 200 // 250
#define SNI_WEAPONSPLASHDAMAGE_PANZERFAUST 250 // 400
#define SNI_WEAPONSPLASHDAMAGE_ARTILLERY 300 // 400
#define SNI_WEAPONSPLASHDAMAGE_AIRSTRIKE 350 // 400
#define SNI_WEAPONSPLASHRADIUS_ARTILLERYSPOTTER 25 // 50
#define SNI_WEAPONSPLASHRADIUS_MAPMORTAR 100 // 120
#define SNI_WEAPONSPLASHRADIUS_ARTILLERY 200 // 400
#define SNI_WEAPONSPLASHRADIUS_AIRSTRIKE 200 // 400
#define SNI_WEAPONSPLASHRADIUS_PANZERFAUST 250 // 300
#define SNI_AIRSTRIKE_CANCEL_DELAY 1000 // 1000 // the delay between “can’t see target” and exploding canister
#define SNI_AIRSTRIKE_ACCURACY 15 // 30
#define SNI_AIRSTRIKE_BOMBDELAY 50 // 100
#define SNI_AIRSTRIKE_BOMBDELAY2 50 // 50
#define SNI_AIRSTRIKE_PLANEDELAY_MIN 1000 // 2000 // delay between planes
#define SNI_AIRSTRIKE_PLANEDELAY_MAX 2000 // 2000 // delay between planes
#define SNI_AIRSTRIKE_NUMBOMBS 20 // 10
#define SNI_AIRSTRIKE_BOMBSPREAD 50 // 150
#define SNI_AIRSTRIKE_SMOKETRAIL_LINGER 230 // 50 (how long the marker smoke hangs around)
#define SNI_ARTILLERY_SPOTTERSMOKE_COUNT 6 // 7
#define SNI_ARTILLERY_SPOTTERSMOKE_LIFESPAN1 1000 // 1000
#define SNI_ARTILLERY_SPOTTERSMOKE_LIFESPAN2 1000 // 300 (random)
#define SNI_ARTILLERY_SPOTTERSMOKE_UPSPEED1 150 // 500
#define SNI_ARTILLERY_SPOTTERSMOKE_UPSPEED2 500 // 500 (random)
#define SNI_ARTILLERY_SPOTTERSMOKE_LINGER 300 // 50 (how long the spotter round smoke hangs around)
#define SNI_KNIFE_BACKSTAB_DAMAGE 75 // 100
#define SNI_KNIFE_BACKSTAB_ANGLE 0.6f // 0.6f
#define SNI_NADE_SPEED 900 // 900 (throwing)
#define SNI_MG42_MAXHEAT 2000.f // 1500.f
#define SNI_MG42_HEALTH 500 // 350
#define SNI_MG42_SPREAD_CROUCH 0.66f // 0.66f
#define SNI_MG42_SPREAD_PRONE 0.33f // 0.66f
#define SNI_MAPMORTAR_LIFESPAN 20000 // 20000
#define SNI_MINE_SPEED 400 // 400 (throwing)
#define SNI_MINE_PRIMEDELAY 3000 // 2000 (the delay between priming it and the mine being armed)
#define SNI_MINE_DISARMDELAY 2000 // 1000
#define SNI_MINE_TRIGGERDISTANCE 48.0f // 64.0f
#define SNI_MINE_TRIGGERDELAY 300 // 300
#define SNI_PF_SPEED 2000 // 2500
#define SNI_PF_LIFESPAN 20000 // 20000
#define SNI_RIFLEGREN_LIFESPAN 10000 // 4000
#define SNI_RIFLEGREN_ARMDELAY 1200 // 750
#define SNI_SATCHEL_SPEED 400 // 400 (how far you throw teh shizzle)
#define SNI_SMOKEGREN_SIZE1 0 // 16
#define SNI_SMOKEGREN_SIZE2 1280 // 640
#define SNI_SMOKEGREN_GROWTIME 3000 // 1000
#define SNI_SMOKEGREN_SMOKETIME 25000 // 15000
#define SNI_SMOKEGREN_POSTSMOKETIME 2000 // 2000
#define SNI_TNT_SPEED 400 // 400 (throwing)
#define SNI_TNT_DISARMDELAY 3000 // 1000
#define SNI_TNT_BOOMDELAY 30000 // 30000

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// MOVEMENT
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_RUNSPEED 0.85 // 0.8
#define SNI_SPRINTSPEED 1.15 // 1.1
#define SNI_CROUCHSPEED 0.44 // 0.25
#define SNI_PRONESPEED 0.26 // 0.21 “was: 0.18 (too slow) then: 0.24 (too fast)”
#define SNI_SPECTATORSPEED 600 // 800
#define SNI_SPECTATORSPRINT 5 // 3
#define SNI_WATERSWIMSPEED 0.75 // 0.50
#define SNI_WATERWADESPEED 0.85 // 0.70
#define SNI_SLAGSWIMSPEED 0.50 // 0.30
#define SNI_SLAGWADESPEED 0.80 // 0.70
#define SNI_STOPSPEED 50 // 100
#define SNI_WATERSINKSPEED 90 // 60
#define SNI_ACCELERATE 10 // 10
#define SNI_AIRACCELERATE 1 // 1
#define SNI_WATERACCELERATE 2 // 4
#define SNI_SLAGACCELERATE 2 // 2
#define SNI_FLYACCELERATE 8 // 8
#define SNI_FRICTION 6 // 6 // player/ground
#define SNI_FRICTION2 1.0 // 1.0 // ? air?
#define SNI_WATERFRICTION 1 // 1
#define SNI_SLAGFRICTION 1 // 1
#define SNI_FLIGHTFRICTION 2 // 3
#define SNI_LADDERFRICTION 10 // 14
#define SNI_SPECTATORFRICTION 8 // 5
#define SNI_LEAN_MAX 28.0f // 28.0f
#define SNI_LEAN_TIMETO 200.0f // 200.0f time to get to/from full lean
#define SNI_LEAN_TIMEFROM 300.0f // 300.0f
#define SNI_DEADFRICTION 30 // 20
#define SNI_JUMPAY 750 // 850 (minumum time between two jumps)
#define SNI_JUMP_STAMINA 50 // 2500 (no effect?)
#define SNI_UNSCOPE_SPEED 127 // 127 - “80 == crouch, 128 == walk, 256 == run”

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// PHYSICS
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_MAX_KNOCKBACK 500 // 200
#define SNI_OVERCLIP 1.111 // 1.001

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// DAMAGE
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_WATERLEVEL1CRASH 0.5 // 0.5 (falling damage gets multiplied by this)
#define SNI_WATERLEVEL2CRASH 0.25 // 0.25
#define SNI_ARMSHOT_DAMAGE 1.1f // 1.0f
#define SNI_LEGSHOT_DAMAGE 0.7f // 1.0f
#define SNI_BODYSHOT_DAMAGE 1.0f // 1.0f
#define SNI_HEADSHOT_DAMAGE 2.5f // 2.0f
#define SNI_HEADSHOT_MINDAMAGE 10 // 50
#define SNI_HELMET_FACTOR 0.25f // 0.5f
#define SNI_HELMET_FACTOR_SNIPE 0.5f // 0.8f

#define SNI_HOLDBREATHTIME 10000 // 12000
#define SNI_DROWNREPEAT_MIN 500 // 1000 (how often drown damage occurs/increases)
#define SNI_DROWNREPEAT_MAX 1500 // 1000
#define SNI_DROWNDAMAGE_MIN 1 // 2 (by how much it increases)
#define SNI_DROWNDAMAGE_MAX 2 // 2
#define SNI_RESPAWN_DELAY 400 // 800
#define SNI_SPAWN_INVULN1 1000 // 1000
#define SNI_SPAWN_INVULN2 3000 // 3000
#define SNI_REVIVE_LOCKTIME 1000 // 2100

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// VARIOUS
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_COMPLAINT_ENDTIME 30000 // 20500
#define SNI_GASPTIME 6000 // 6000
#define SNI_ADRENALINE_DURATION 10000 // 10000

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// SCORING
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
//#define SQUARE_COMPASS
#define SNI_SCORE_SUICIDE -1 // -1
#define SNI_SCORE_MINEKILL 1 // 1
#define SNI_SCORE_CAPTURE_BONUS 10 // 15 capturing major game objective
#define SNI_SCORE_STEAL_OBJ_BONUS 3 // 10 stealing objective (first part of capture)
#define SNI_SCORE_SECURE_OBJ_BONUS 5 // 10 securing objective from slain enemy
#define SNI_SCORE_MEDIC_BONUS 2 // 2 medic resurrect teammate
#define SNI_SCORE_MEDIC_BONUS_TK 0 // 0 SNI: medic resurrect tked teammate
#define SNI_SCORE_REPAIR_BONUS 1 // 2 engineer repair (mg42 etc) bonus
#define SNI_SCORE_DYNAMITE_BONUS 3 // 5 engineer dynamite barriacade (dynamite only flag)
#define SNI_SCORE_FRAG_CARRIER_BONUS 5 // 10 bonus for fragging enemy carrier
#define SNI_SCORE_FLAG_DEFENSE_BONUS 3 // 5 bonus for frag when shooter or target near flag position
#define SNI_SCORE_CP_CAPTURE 2 // 3 uncapped checkpoint bonus
#define SNI_SCORE_CP_RECOVER 3 // 5 capping an enemy-held checkpoint bonus
#define SNI_SCORE_SP_CAPTURE 1 // 1 uncapped spawnpoint bonus
#define SNI_SCORE_SP_RECOVER 2 // 2 recovering enemy-held spawnpoint
#define SNI_SCORE_CP_PROTECT_BONUS 2 // 3 protect a capture point by shooting target near it
#define SNI_SCORE_SP_PROTECT_BONUS 1 // 1 protect a spawnpoint
#define SNI_SCORE_FRIENDLY_PENALTY -3 // -3 penalty for fragging teammate
#define SNI_SCORE_FRAG_BONUS 1 // 1 score for fragging enemy soldier
#define SNI_SCORE_DYNAMITE_PLANT 1 // 5 planted dynamite at objective
#define SNI_SCORE_DYNAMITE_DIFFUSE 3 // 5 diffused dynamite at objective
#define SNI_SCORE_CP_PROTECT_RADIUS 600 // 600 wolf capture protect radius
#define SNI_SCORE_AMMO_UP 1 // 1 pt for giving ammo not to self
#define SNI_SCORE_HEALTH_UP 1 // 1 pt for giving health not to self

#define SNI_BODYSINK_DELAY 15000 // 10000
#define SNI_BODYSINK_DELAY2 1000 // 1500
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// SCORING (XP)
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_COMPLAINT_LIGHTWEAPONS 3.f // 3.f
#define SNI_COMPLAINT_HEAVYWEAPONS 3.f // 3.f
#define SNI_COMPLAINT_COVOPS 3.f // 3.f
#define SNI_COMPLAINT_ENGINEER 3.f // 3.f
#define SNI_COMPLAINT_SIGNALS 3.f // 3.f
#define SNI_XP_REVIVE 4.f // 4.f
#define SNI_XP_REVIVETK 2.f // 0

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// NOT SORTED YET / TESTING
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_MEDIC_HEALTHPICKUP 1.12f // 1.12f
#define SNI_BATTLESENSE_PERIOD 30000 // 45000
#define SNI_BATTLESENSE_SUPERHOT 5 // 8 (killed + received)
#define SNI_BATTLESENSE_HOTTER 4 // n/a (killed)
#define SNI_BATTLESENSE_HOT 3 // 5 (damaged + received)
#define SNI_BATTLESENSE_WARMER 2 // n/a (damaged)
#define SNI_BATTLESENSE_WARM 1 // 2 (other (?))
#define SNI_HQMINEREPORT_FREQUENCY 20000 // 20000

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// CLASSES
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_MEDIC_HEALTH 120 // 100 // base health
#define SNI_COVOPS_HEALTH 100 // 100
#define SNI_FIELDOPS_HEALTH 100 // 100
#define SNI_SOLDIER_HEALTH 150 // 100
#define SNI_ENGINEER_HEALTH 100 // 100
#define SNI_MEDIC_HEALTHMEDICBONUS 5 // 10 // how much each medic on a team adds to the starting health
#define SNI_COVOPS_HEALTHMEDICBONUS 2 // 10
#define SNI_FIELDOPS_HEALTHMEDICBONUS 5 // 10
#define SNI_SOLDIER_HEALTHMEDICBONUS 10 // 10
#define SNI_ENGINEER_HEALTHMEDICBONUS 7 // 10
#define SNI_MEDIC_HEALTHCAP 150 // 125 (after medic bonus)
#define SNI_COVOPS_HEALTHCAP 150 // 125
#define SNI_FIELDOPS_HEALTHCAP 150 // 125
#define SNI_SOLDIER_HEALTHCAP 200 // 125
#define SNI_ENGINEER_HEALTHCAP 150 // 125
#define SNI_MEDIC_HEALTHCAP2 500 // 140 (after battle sense)
#define SNI_COVOPS_HEALTHCAP2 500 // 140
#define SNI_FIELDOPS_HEALTHCAP2 500 // 140
#define SNI_SOLDIER_HEALTHCAP2 500 // 140
#define SNI_ENGINEER_HEALTHCAP2 500 // 140

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// SKILL: Battle Sense
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_BATTLESENSE_SK0_HEALTHBONUS 1.00f // n/a… was a fixed value of 15 (on level 3 and above)
#define SNI_BATTLESENSE_SK1_HEALTHBONUS 1.10f //
#define SNI_BATTLESENSE_SK2_HEALTHBONUS 1.20f //
#define SNI_BATTLESENSE_SK3_HEALTHBONUS 1.30f //
#define SNI_BATTLESENSE_SK4_HEALTHBONUS 1.40f //
#define SNI_BATTLESENSE_SK4_HQMINEREPORTRANGE 512.f // 256.f
#define SNI_BATTLESENSE_SK3_HQMINEREPORTRANGE 384.f // 256.f
#define SNI_BATTLESENSE_SK2_HQMINEREPORTRANGE 256.f // 256.f
#define SNI_BATTLESENSE_SK1_HQMINEREPORTRANGE 196.f // 256.f
#define SNI_BATTLESENSE_SK0_HQMINEREPORTRANGE 128.f // 256.f
#define SNI_BATTLESENSE_SK0_HOLDBREATH 10000
#define SNI_BATTLESENSE_SK1_HOLDBREATH 11000
#define SNI_BATTLESENSE_SK2_HOLDBREATH 12000
#define SNI_BATTLESENSE_SK3_HOLDBREATH 13000
#define SNI_BATTLESENSE_SK4_HOLDBREATH 15000
#define SNI_BATTLESENSE_SK0_DROWNCAP 25
#define SNI_BATTLESENSE_SK1_DROWNCAP 20
#define SNI_BATTLESENSE_SK2_DROWNCAP 15
#define SNI_BATTLESENSE_SK3_DROWNCAP 10
#define SNI_BATTLESENSE_SK4_DROWNCAP 7
#define SNI_BATTLESENSE_SK0_DROWNREPEAT 0
#define SNI_BATTLESENSE_SK1_DROWNREPEAT 100
#define SNI_BATTLESENSE_SK2_DROWNREPEAT 250
#define SNI_BATTLESENSE_SK3_DROWNREPEAT 500
#define SNI_BATTLESENSE_SK4_DROWNREPEAT 1000

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// SKILL: Covert Ops
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_COVOPS_SK3_KNIFEBACKSTAB 1.50f // 1.00
#define SNI_COVOPS_SK2_KNIFEBACKSTAB 1.30f // 1.00
#define SNI_COVOPS_SK1_KNIFEBACKSTAB 1.20f // 1.00
#define SNI_COVOPS_SK0_KNIFEBACKSTAB 1.10f // 1.00
#define SNI_COVOPS_SK4_KNIFEDAMAGE 3.00f // 2.00
#define SNI_COVOPS_SK3_KNIFEDAMAGE 2.50f // 2.00
#define SNI_COVOPS_SK2_KNIFEDAMAGE 2.00f // 2.00
#define SNI_COVOPS_SK1_KNIFEDAMAGE 1.50f // 2.00
#define SNI_COVOPS_SK0_KNIFEDAMAGE 1.20f // 2.00
#define SNI_COVOPS_SK4_SOUNDPROB 10 // DOESNT WORK YAY :smiley:
#define SNI_COVOPS_SK3_SOUNDPROB 25
#define SNI_COVOPS_SK2_SOUNDPROB 50
#define SNI_COVOPS_SK1_SOUNDPROB 75
#define SNI_COVOPS_SK0_SOUNDPROB 95
#define SNI_COVOPS_SK0_HOLDBREATH 1.2f
#define SNI_COVOPS_SK1_HOLDBREATH 1.5f
#define SNI_COVOPS_SK2_HOLDBREATH 2.0f
#define SNI_COVOPS_SK3_HOLDBREATH 2.5f
#define SNI_COVOPS_SK4_HOLDBREATH 3.0f
#define SNI_COVOPS_SK0_SATCHELRANGE 2000 // 2000
#define SNI_COVOPS_SK1_SATCHELRANGE 2000 // 2000
#define SNI_COVOPS_SK2_SATCHELRANGE 2000 // 2000
#define SNI_COVOPS_SK3_SATCHELRANGE 2000 // 2000
#define SNI_COVOPS_SK4_SATCHELRANGE 500 // 2000
#define SNI_COVOPS_SK0_KEEPDISGUISESHOOT 0 // 0
#define SNI_COVOPS_SK1_KEEPDISGUISESHOOT 666 // 0
#define SNI_COVOPS_SK2_KEEPDISGUISESHOOT 444 // 0
#define SNI_COVOPS_SK3_KEEPDISGUISESHOOT 222 // 0
#define SNI_COVOPS_SK4_KEEPDISGUISESHOOT 111 // 0
#define SNI_COVOPS_SK0_KEEPDISGUISEFLAG 0 // 0
#define SNI_COVOPS_SK1_KEEPDISGUISEFLAG 100 // 0
#define SNI_COVOPS_SK2_KEEPDISGUISEFLAG 250 // 0
#define SNI_COVOPS_SK3_KEEPDISGUISEFLAG 500 // 0
#define SNI_COVOPS_SK4_KEEPDISGUISEFLAG 1000 // 0

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// SKILL: First Aid
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_FIRSTAID_SK4_SYRINGES 14 // Does this work?
#define SNI_FIRSTAID_SK3_SYRINGES 12
#define SNI_FIRSTAID_SK2_SYRINGES 10
#define SNI_FIRSTAID_SK1_SYRINGES 8
#define SNI_FIRSTAID_SK0_SYRINGES 6
#define SNI_FIRSTAID_SK4_HEALTHCOST 0.10f // 0.15
#define SNI_FIRSTAID_SK3_HEALTHCOST 0.13f // 0.15
#define SNI_FIRSTAID_SK2_HEALTHCOST 0.16f // 0.15
#define SNI_FIRSTAID_SK1_HEALTHCOST 0.20f // 0.25
#define SNI_FIRSTAID_SK0_HEALTHCOST 0.25f // 0.25
#define SNI_FIRSTAID_SK4_REVIVEHEALTH 1.00f // 1
#define SNI_FIRSTAID_SK3_REVIVEHEALTH 1.00f // 1
#define SNI_FIRSTAID_SK2_REVIVEHEALTH 0.75f // 0.5
#define SNI_FIRSTAID_SK1_REVIVEHEALTH 0.50f // 0.5
#define SNI_FIRSTAID_SK0_REVIVEHEALTH 0.25f // 0.5
#define SNI_FIRSTAID_SK4_HEALTHLIFESPAN 60000 // 30000
#define SNI_FIRSTAID_SK3_HEALTHLIFESPAN 45000 // 30000
#define SNI_FIRSTAID_SK2_HEALTHLIFESPAN 40000 // 30000
#define SNI_FIRSTAID_SK1_HEALTHLIFESPAN 35000 // 30000
#define SNI_FIRSTAID_SK0_HEALTHLIFESPAN 30000 // 30000

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// SKILL: Heavy Weapons
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_HEAVYWEAPONS_SK4_MG42SPREADFACTOR 0.030f // when deployed/stationary
#define SNI_HEAVYWEAPONS_SK3_MG42SPREADFACTOR 0.035f // 0.05f
#define SNI_HEAVYWEAPONS_SK2_MG42SPREADFACTOR 0.040f // 0.05f
#define SNI_HEAVYWEAPONS_SK1_MG42SPREADFACTOR 0.045f // 0.05f
#define SNI_HEAVYWEAPONS_SK0_MG42SPREADFACTOR 0.050f // 0.05f
#define SNI_HEAVYWEAPONS_SK4_MG42SPREADFACTOR2 0.50f // when using undeployed
#define SNI_HEAVYWEAPONS_SK3_MG42SPREADFACTOR2 0.63f // 1.00f
#define SNI_HEAVYWEAPONS_SK2_MG42SPREADFACTOR2 0.75f // 1.00f
#define SNI_HEAVYWEAPONS_SK1_MG42SPREADFACTOR2 0.88f // 1.00f
#define SNI_HEAVYWEAPONS_SK0_MG42SPREADFACTOR2 1.00f // 1.00f

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// SKILL: Light Weapons
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_LIGHTWEAPONS_SK4_ACCURACY 0.50f // 0.66f
#define SNI_LIGHTWEAPONS_SK3_ACCURACY 0.62f // 1
#define SNI_LIGHTWEAPONS_SK2_ACCURACY 0.75f // 1
#define SNI_LIGHTWEAPONS_SK1_ACCURACY 0.88f // 1
#define SNI_LIGHTWEAPONS_SK0_ACCURACY 1.0f // 1
#define SNI_LIGHTWEAPONS_SK4_RELOAD 0.40f // .66
#define SNI_LIGHTWEAPONS_SK3_RELOAD 0.55f // .66
#define SNI_LIGHTWEAPONS_SK2_RELOAD 0.70f // .66
#define SNI_LIGHTWEAPONS_SK1_RELOAD 0.85f // 1
#define SNI_LIGHTWEAPONS_SK0_RELOAD 1 // 1
#define SNI_LIGHTWEAPONS_SK4_AIMSPREADCAP 1.0f // 1.0f
#define SNI_LIGHTWEAPONS_SK3_AIMSPREADCAP 1.5f // 1.0f
#define SNI_LIGHTWEAPONS_SK2_AIMSPREADCAP 2.0f // 1.0f
#define SNI_LIGHTWEAPONS_SK1_AIMSPREADCAP 2.5f // 1.0f
#define SNI_LIGHTWEAPONS_SK0_AIMSPREADCAP 3.0f // 1.0f
#define SNI_LIGHTWEAPONS_SK4_AIMSPREADMIN 0.001f // 0.15f
#define SNI_LIGHTWEAPONS_SK3_AIMSPREADMIN 0.01f // 0.15f
#define SNI_LIGHTWEAPONS_SK2_AIMSPREADMIN 0.03f // 0.15f
#define SNI_LIGHTWEAPONS_SK1_AIMSPREADMIN 0.1f // 0.15f
#define SNI_LIGHTWEAPONS_SK0_AIMSPREADMIN 0.15f // 0.15f

///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
// SKILL: Signals
///|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\//|\/
#define SNI_SIGNALS_SK4_AMMOCOST 0.10f // 0.15
#define SNI_SIGNALS_SK3_AMMOCOST 0.13f // 0.15
#define SNI_SIGNALS_SK2_AMMOCOST 0.16f // 0.15
#define SNI_SIGNALS_SK1_AMMOCOST 0.20f // 0.15
#define SNI_SIGNALS_SK0_AMMOCOST 0.25f // 0.25
#define SNI_SIGNALS_SK4_AMMODENSITY 3 // 2 (how much ammo is in one pack)
#define SNI_SIGNALS_SK3_AMMODENSITY 2 // 2
#define SNI_SIGNALS_SK2_AMMODENSITY 2 // 2
#define SNI_SIGNALS_SK1_AMMODENSITY 1 // 2
#define SNI_SIGNALS_SK0_AMMODENSITY 1 // 1
#define SNI_SIGNALS_SK4_AMMOLIFESPAN 60000 // 30000
#define SNI_SIGNALS_SK3_AMMOLIFESPAN 45000 // 30000
#define SNI_SIGNALS_SK2_AMMOLIFESPAN 40000 // 30000
#define SNI_SIGNALS_SK1_AMMOLIFESPAN 35000 // 30000
#define SNI_SIGNALS_SK0_AMMOLIFESPAN 30000 // 30000
#define SNI_SIGNALS_SK4_AIRSTRIKECOST 0.75f // (does not work 100%)
#define SNI_SIGNALS_SK3_AIRSTRIKECOST 0.66f
#define SNI_SIGNALS_SK2_AIRSTRIKECOST 0.75f
#define SNI_SIGNALS_SK1_AIRSTRIKECOST 0.90f
#define SNI_SIGNALS_SK0_AIRSTRIKECOST 0.1f
#define SNI_SIGNALS_SK4_AIRSTRIKEPLANECOUNT 3 // 2
#define SNI_SIGNALS_SK3_AIRSTRIKEPLANECOUNT 2 // 2
#define SNI_SIGNALS_SK2_AIRSTRIKEPLANECOUNT 2 // 1
#define SNI_SIGNALS_SK1_AIRSTRIKEPLANECOUNT 1 // 1
#define SNI_SIGNALS_SK0_AIRSTRIKEPLANECOUNT 1 // 1
#define SNI_SIGNALS_SK4_AIRSTRIKEPLANEDELAY 2500 // 2500
#define SNI_SIGNALS_SK3_AIRSTRIKEPLANEDELAY 3000 // 2500
#define SNI_SIGNALS_SK2_AIRSTRIKEPLANEDELAY 3500 // 3500
#define SNI_SIGNALS_SK1_AIRSTRIKEPLANEDELAY 4000 // 3500
#define SNI_SIGNALS_SK0_AIRSTRIKEPLANEDELAY 4500 // 3500
#define SNI_SIGNALS_SK4_ARTYMINCHARGE 1.00f // 0.66
#define SNI_SIGNALS_SK3_ARTYMINCHARGE 0.88f // 0.66
#define SNI_SIGNALS_SK2_ARTYMINCHARGE 0.75f // 0.66
#define SNI_SIGNALS_SK1_ARTYMINCHARGE 0.62f // 1.00
#define SNI_SIGNALS_SK0_ARTYMINCHARGE 0.50f // 1.00
#define SNI_SIGNALS_SK4_ARTIBOMBS 20
#define SNI_SIGNALS_SK3_ARTIBOMBS 16
#define SNI_SIGNALS_SK2_ARTIBOMBS 12
#define SNI_SIGNALS_SK1_ARTIBOMBS 8
#define SNI_SIGNALS_SK0_ARTIBOMBS 4
#define SNI_SIGNALS_SK4_ARTISTARTDELAY 3000 // 5000
#define SNI_SIGNALS_SK3_ARTISTARTDELAY 3500 // 5000
#define SNI_SIGNALS_SK2_ARTISTARTDELAY 4000 // 5000
#define SNI_SIGNALS_SK1_ARTISTARTDELAY 4500 // 5000
#define SNI_SIGNALS_SK0_ARTISTARTDELAY 5000 // 5000
#define SNI_SIGNALS_SK4_ARTISTARTDELAY2 5000 // 8950
#define SNI_SIGNALS_SK3_ARTISTARTDELAY2 6000 // 8950
#define SNI_SIGNALS_SK2_ARTISTARTDELAY2 7000 // 8950
#define SNI_SIGNALS_SK1_ARTISTARTDELAY2 8000 // 8950
#define SNI_SIGNALS_SK0_ARTISTARTDELAY2 9000 // 8950
#define SNI_SIGNALS_SK4_ARTYCOST 0.80f
#define SNI_SIGNALS_SK3_ARTYCOST 0.85f
#define SNI_SIGNALS_SK2_ARTYCOST 0.90f
#define SNI_SIGNALS_SK1_ARTYCOST 0.95f
#define SNI_SIGNALS_SK0_ARTYCOST 1.00f
#define SNI_SIGNALS_SK4_ARTYACCURACY 450 // 250
#define SNI_SIGNALS_SK3_ARTYACCURACY 400 // 250
#define SNI_SIGNALS_SK2_ARTYACCURACY 350 // 250
#define SNI_SIGNALS_SK1_ARTYACCURACY 300 // 250
#define SNI_SIGNALS_SK0_ARTYACCURACY 250 // 250
#define SNI_SIGNALS_SK4_ARTIDELAY 600 // 400
#define SNI_SIGNALS_SK3_ARTIDELAY 900 // 800
#define SNI_SIGNALS_SK2_ARTIDELAY 1300 // 1200
#define SNI_SIGNALS_SK1_ARTIDELAY 1650 // 1600
#define SNI_SIGNALS_SK0_ARTIDELAY 2000 // 2000


(Ifurita) #6

Take a look at the Beryllium mod for Q3

http://www.planetquake.com/beryllium/main.shtm

Including the config gen on the left nav bar for an example of a super configurable mod with a nice web GUI to help make config files


(sniser) #7

Sorry, went back and reloaded the post page (dubble post) ack.


(Ifurita) #8

Well done - double posting a long assed thread :wink: I’m so tempted to quote you


(sniser) #9

Well, thanks to your reply I nearly wouldn’t have realized it :stuck_out_tongue:
Plus, you might have noticed I offered to truncate or delete it. If you had simply asked instead of ;)ing… :blah:

(edit: uh sorry for sounding so pissed off… it IS a kinda stupid thing to post, but if it motivates one person to tweak the hell out of ET it’s worth it :D)


(Ifurita) #10

I didn’t mind the long assed code snippet, but I got it the first time :slight_smile:


(leo) #11

Doh. I thinked that etpro was that


(nUllSkillZ) #12

@sniser:
Thanks for the list with all your constants.
I will take a look and try to make a menu for some of them.
And try to include these with cvars in the game.
Because that are round about 500 constants not all of them will be controllable via menus.


(sniser) #13

You are aware that none of these constants exist in the code? I’m confused :smiley: And quite a few of these are duplicates, that is I simply replaced “#define NAME x” with “#define NAME SNI_NAME” so that I have all the stuff in one place.

I thought about adding options/cvars too - but I’d rather wait with that, and then find a way to automate it or something? I just can’t see adding support for many hundred constants by hand (okay I don’t what is involved there, but even if it’s simple it’s a lot) - nevermind menus - so maybe one could make a php script or something that reads the list of constants and spits out c++ code that checks for a cvar, and sets the default from the define (if the cvar is not set)? If you added a “allowed range” and “type” (string, int, float, bool) that could even be used to help in creating/updating the menu? Hmm, that’s a bit too far out for me right now, baby steps…