Jump to content
The Dark Mod Forums

VanishedOne

Member
  • Posts

    1235
  • Joined

  • Days Won

    24

Posts posted by VanishedOne

  1. How about the blackjack?

     

    I think what's probably going on is that if the barrel receives any damage at all, repeating that over time will whittle its health down. Maybe it should lose health only when dealt damage above a threshold amount in a single blow...?

  2. Maybe a rule could be made that if something's bounds are 90% or more within a closed visleaf it doesn't get rendered? I do remember SteveL having offered to look into this some years ago

    I don't think such a rule would play well with regular models, except as an opt-in: imagine setting up a building, with a tower/spire/etc. at one end that protrudes through caulk into the next area because players will expect to be able to see it from the next street over; but then it fails to render and you're wondering why...

     

    I fully agree about the problem of particles passing through walls, though.

  3. It works!

     

    So what needs to be fixed? It looks pretty good already.

    I think things that can definitely be considered bugs are:

     

    • It's so sensitive to moveable damage, you can set it alight by rubbing a loaf of bread against it.
    • The burning sound never turns off.
    • Fire stims (e.g.from a candle or slow match) often fail to set it aflame, presumably because they've been set up with a short radius and it's a big barrel, so the stim radius gets nowhere near the entity origin. This is an instance of http://bugs.thedarkmod.com/view.php?id=1727
    • More of a nice-to-have: ideally the model it switches to on exploding could have its own clipmodel (I've set it up to use a broken barrel that's much shorter than the intact barrel), and anything touching it when it disappears would drop to the floor. Edit: or it might be better just to stop the broken barrel vanishing, since it looks pretty bad when it just disappears.

     

    The rest is more a question of quite how we want it to behave. If we want a keg that can be 'killed' by throwing things at it, then it makes sense for it to explode from being thrown or dropped (more than a short distance) too, which doesn't seem to happen.

     

    (Also, how we get it working with TDM's Stim/Response system. We might not need a code change to create a fire stim for the explosion: the idea was, we'd spawn an invisible piece of debris that would carry the stim like a projectile result. I haven't tried that yet. The burning phase could complicate matters (shouldn't it have a fire stim? shouldn't water stims stop the burning?) but it probably won't matter if we only want a short fuse.)

  4. Well, if any modeller would care to step forward... :smile: I only started looking at thermometers because I was thinking about how one could be implemented in the material system, using a shaderparm to control the level. I was thinking of adding them to mundane places like forges and cold rooms.

     

    Also, I thought it might be a nice touch to use one of the various historical temperature scales that's unfamiliar to modern people, like Delisle or Wedgwood.

  5. Cheers. I'm not sure 'stark' isn't what I want here: those are rooms for very senior clergy, where you get to live if you're saintly good at climbing hierarchies, so I tried to make them look opulent yet at the same time keep a touch of strict religious regimen. The modular pieces are mainly from the mansion interior set (there's some church interior on the walls with windows, mostly unseen in these shots), and I was worried it could easily end up looking like a lavish nobleman's suite with the banners changed.

     

    I do still need to add a touch of ambient light around the windows though. Also the oil lamp in the foreground of the last shot has a rather strong white glass part against the dark background (I think it's one of Dragofer's light assets, and probably stands out here because I'm not using them consistently as he might); I've since added a particle glow that softens the effect a bit.

    • Like 1
  6.  

    Does not load the barrel for me

    Spawning entities
    WARNING:Unknown classname 'moveable_powderkeg' on 'moveable_powderkeg_1'.
    

    The map uses the defs in the OP. Save the spoilered text in the OP to /def/powderkeg.def

     

    By the way, I found another bug: snd_burn never gets cleared, so you can still hear burning after the explosion. Maybe id assumed it wouldn't be a looping sound.

  7.  

    ...I don't believe. it

     

    I'm very curious, can you perhaps PM me links to those?

    I'd have to trawl through a bunch of Mastodon instances to find out whether any of them explicitly puts that level of detail in its rules instead of expecting people to work it out by osmosis or getting called out. The culture I'm talking about is from the depths of the Fediverse, where every 'instance' federates with (shares content with, allows interaction from) other instances, and some are quite large and some are very small, and local cultures routinely clash with those of other instances. Depending on the instance you have an account on, it's quite possible you'll barely notice the really sensitive ones because they've defederated from, i.e. blocked, your instance (scholar.social, for example, pre-emptively blocks any unmoderated instance).

  8. Okay, here's a test map for the powder keg from the OP. I've supplied some moveables to throw at it or push against it, a candle, a slow match, broadheads and fire arrows.

    If you want to test the damage model feature I mention in the OP's last bullet point, uncomment this line in the def: It turns out you won't need to; I forgot to remove the spawnarg from the entity.

    //	"model_damage"			"models/darkmod/junk/barrell_broken04.lwo"
    

    powderkeg.map.txt

  9. I think the hammer is appropriate. This is a quasi-medieval society, so most social institutions would be quasi-religious, like European guilds and public admin would use Christian iconography. I see Inventors like masons, mixing a literal craft (masonry) with Christian-like mysticism & iconography.

     

    This is just my own vision for them. More generally speaking, I think about FM-based world building like comic strips, where different authors can have quite different visions for their world with different ideas about key characters and groups, as long as it's paying homage to some of the canon pieces (like Batman's or Superman's origin story shouldn't change, even if you play it very differently). So I think even inconsistent visions can co-exist for something like the Inventors. They're kind of designed to be shadowy and unclear anyway, so ripe for different visions.

     

    All that said, I think you'll get less complaints & greater appreciation if you use something other than a hammer, but still vaguely in the neighborhood, like masons themselves didn't use direct Christian iconography, but they used religious-like iconography.

    Interesting. When I made the 'sun gear' banner I linked earlier, it was for my take on Mechanist-ish themes, for an esoteric group that tried to be not just inventors but heralds of Progress and the New Dawn and all that. Instead of being a religious offshoot with a messiah figure, they were to be more about supplanting the old superstitions with Reason, with the universe as a grand Machine, and Man at its centre having learnt to manipulate it; they were to be religious in the sense that Comte's Religion of Humanity was religious. Their public face was to be more of an industrialist group, so the 'sun gear' logo was ostensibly honouring the current religion, the better to supplant it later as it naturally withered and died.

     

    (Incidentally, if anyone here with a Latin education knows about the semantics of 'futura', I've been trying to find out whether 'Ex malleo machina; ex machina futura' plausibly means what I want it to mean: 'From the hammer, the machine; from the machine, the future'.)

     

    Of course, the very idea of a guild for inventors owes something to the glorious historical schizo-mishmash of the setting; what actual gentlemen scientists came up with was the Royal Society. I just looked up their arms and they're nothing like the stuff we're discussing here: a silver shield with England's three lions in one quarter, and more elaborate surrounding paraphernalia including two hounds as supporters.

     

    On the hammer question, when it comes to real-world religious iconography there are lots of different heraldic crosses, some more strongly Christian-looking than others, and of course you're right, it's a natural thing for a pious armiger to want included; I wonder whether it helps that we're so used to seeing the abstract geometric design of the Cross, and we don't actually see crucifixions in daily life as we do hammers.

  10. The physics limitations sound like the flinder problem raised in the other thread.

     

    I wonder whether these spawnargs would let us invoke a script to break a moveable when it collides with something:

    fxCollide = spawnArgs.GetString( "fx_collide" );
    	nextCollideFxTime = 0;
    
    	// tels:
    	m_scriptCollide = spawnArgs.GetString( "script_collide" );
    	m_nextCollideScriptTime = 0;
    	m_collideScriptCounter = spawnArgs.GetInt( "collide_script_counter", "1" );
    
  11. I know what you mean with the Builders having cogwheels represented everywhere, but do you think it should be excluded everywhere even though it can mean multiple things?

    'Excluded everywhere' is an overstatement. Think of it this way: imagine you're seeing them in silhouette at some distance. How distinct are they? How obvious is it to someone who doesn't know the symbols already that the cog-on-a-stick and the cog-on-two-thin-sticks are totally unrelated?

    • Like 1
  12. The left-hand one resembles the Builder symbol though: a cogwheel at the top with a vertical element below. Despite having raised the concern about the electricians, I quite like the one on the right in the centre, with the lightning potentially implying literal electricity, thunderclaps of inspiration, even Frankenstein-esque power over Nature's elements...

    • Like 1
  13. I don't know what the problem with the spotlight is offhand; I'm not sure what kind of testing the existing def got. 2.07 was supposed to get an updated version with Epifire's model but it was left out by mistake. See recent comments on http://bugs.thedarkmod.com/view.php?id=4731

     

    The Doom 3 turret was a scripted AI, I believe.

     

    According to my notes on the security camera, it's supposed to update parm7 according to its state (I haven't tested), so maybe a script could check for that.

  14. Appears to be Obsttorte's work:

     

     

     

    //++++++++++++++++++++++++Explosive Urn++++++++++++++++++++++++++++++
    
    // Obsttorte: Explosive Urn Object that doesn't require additional setup in DR . This isnt used in Cauldron do it not providing an impulse on explosion.
    entityDef atdm:explosive_urn
    {
    	"inherit"  							"atdm:moveable_kitchen_breakable_base"
    	"spawnclass"						"idBarrel"
    	"editor_displayFolder"	     		"interactables/crates/explosive"
    	"mass"								"18"
    	"health"							"150"
    	
    	"model"								"models/volta/urn_explosive.ASE"
    	
    	"def_flinder"						"explodingCrate_flinder_medium"
    	"def_flinder1"						"explodingCrate_flinder_small"
    	"def_flinder2"						"explodingCrate_flinder_small"
    	"flinder_count"						"2"
    	"flinder_count1"					"3"
    	"flinder_count2"					"3"
    	"flinder_offset"					"-10 -10 -10"
    	"flinder_offset1"					"10 -10 -10"
    	"flinder_offset2"					"10 10 10"
    	
    	"scriptobject"						"tdm_explosive_urn"
    	
    	"def_attach1"						"light_exploding_urn"
    	"pos_attach1"						"light"
    	"attach_pos_name_1"					"light"
    	"attach_pos_origin_1"				"0 0 30"
    	
    	"def_attach2"						"crate_shooter"
    	"pos_attach"						"origin"
    }
    
    
    
    //Depricated version that uses S and R. Do not use.
    entityDef explosive_urn
    {
    
    	"inherit"  							"atdm:moveable_kitchen_breakable_base"
    	"spawnclass"						"idBarrel"
    	"editor_displayFolder"	     		"interactables/crates/explosive"
    	"mass"								"18"
    	"health"							"75"
    	
    	"model"								"models/volta/urn_explosive.ASE"
    	
    	//"spr_object_hardness"				"hard"
    	//"spr_object_size"					"large"
    	"sprS_bounce"						"urn_bounce"
    	
    	"snd_bounce"						"tdm_impact_large_ceramic"
    	"snd_bounce_wood"					"tdm_ceramic_on_wood"
    	"snd_bounce_dirt"					"tdm_impact_dirt_hard"
    	"snd_bounce_grass"					"tdm_impact_dirt_hard"
    	
    	"def_flinder"						"urn_flinder1"
    	"def_flinder1"						"urn_flinder2"
    	"def_flinder2"						"urn_flinder3"
    	"flinder_count"						"1"
    	"flinder_count1"					"1"
    	"flinder_count2"					"1"
    	"flinder_offset"					"0 6 0"
    	"flinder_offset1"					"6 -6 0"
    	"flinder_offset2"					"0 0 0"
    
    	
    //Example SR set up	
    
    	// "sr_class_1" "R"
    	// "sr_class_2" "R"
    	// "sr_class_3" "R"
    	// "sr_effect_1_1" "effect_kill"
    	// "sr_effect_1_1_arg1" "_SELF"
    	// "sr_effect_2_1" "effect_trigger"
    	// "sr_effect_2_1_arg1" "trigger_timer"
    	// "sr_effect_2_2" "effect_add_target"
    	// "sr_effect_2_2_arg1" "trigger_timer"
    	// "sr_effect_2_2_arg2" "explosive_urn"
    	// "sr_effect_2_3" "effect_light_ignite"
    	// "sr_effect_2_3_arg1" "light_exploding_urn"
    	// "sr_effect_3_1" "effect_clear_targets"
    	// "sr_effect_3_1_arg1" "trigger_timer"
    	// "sr_effect_3_2" "effect_light_extinguish"
    	// "sr_effect_3_2_arg1" "light_exploding_urn"
    	// "sr_state_1" "1"
    	// "sr_state_2" "1"
    	// "sr_state_3" "1"
    	// "sr_type_1" "STIM_TRIGGER"
    	// "sr_type_2" "STIM_FIRE"
    	// "sr_type_3" "STIM_WATER"
    	
    	// "sr_radius_2" "30"
    	
    }
    
    entityDef sprGS_urn_bounce
    {
    	"inherit" "atdm:propagated_sound_base"
    	"vol" "48"
    	"dur" "100"
    	"alert_factor"	"2"    // AI can hear footsteps at a distance but don't react strongly to just one
    	"alert_max"	"40"
    
    	"editor_usage"	"Propagated footstep sounds from the player"
    }
    
    //Light bound to urn
    entitydef light_exploding_urn
    {
    	"inherit"				"atdm:light_base"
    	"editor_displayFolder"	     		"interactables/crates/explosive/base"
    	"clipmodel_contents" "131072" // CONTENTS_RESPONSE
    
    	"mins"					"-6 -6 -6"
    	"maxs"					"6 6 24"
    
    	"model_lit"				"torchflame_movable.prt"
    	"model_extinguished"	"tdm_smoke_torchout.prt"
    	
    	"extinguished"				"1"
    	
    	"snd_lit"				"element_fire_torch"
    	"snd_extinguished"		"machine_steam01"
    
    	"falloff"				"0"
    	"texture" 				"lights/volta_light_spot01_flickering_flames"
    	"_color"                "0.835 0.427 0.157"
    	"light_radius"			"42 42 42"
    
    	"scriptobject"	"light_ext"
    	"AIuse"							"AIUSE_SUSPICIOUS"
    	
    	"ext_hide_delay"	"6"
    }
    
    //Flinders used by urn. Currently using wood flinders.
    entityDef urn_flinder1
    
    {
    	"editor_displayFolder"				"interactables/crates/explosive/base/flinder"
    	"inherit"							"atdm:moveable_small_base"
    	"model"								"models/volta/urn_shard1.ASE"
    	"mass"								"3"
    	"bouncyness"            			"0.2"
    	"solid"                 			"0"
    	"spr_object_hardness"				"hard"
    	"spr_object_size"					"small"
    	"frobable"              			"1"
    	"noshadows"							"1"
    	"gravity"							"700"
    
    	"friction"							"0.1"
    	"snd_bounce"						"tdm_impact_junk_plank_shorter"
    }
    
    entityDef urn_flinder2
    
    {
    	"editor_displayFolder"				"interactables/crates/explosive/base/flinder"
    	"inherit"							"atdm:moveable_small_base"
    	"model"								"models/volta/urn_shard2.ASE"
    	"mass"								"3"
    	"bouncyness"            			"0.2"
    	"solid"                 			"0"
    	"spr_object_hardness"				"hard"
    	"spr_object_size"					"small"
    	"frobable"             			 	"1"
    	"noshadows"							"1"
    	"gravity"							"700"
    
    	"friction"							"0.1"
    	"snd_bounce"						"tdm_impact_junk_plank_shorter"
    }
    
    entityDef urn_flinder3
    
    {
    	"editor_displayFolder"				"interactables/crates/explosive/base/flinder"
    	"inherit"							"atdm:moveable_small_base"
    	"model"								"models/volta/urn_shard3.ASE"
    	"mass"								"3"
    	"bouncyness"            			"0.2"
    	"solid"                 			"0"
    	"spr_object_hardness"				"hard"
    	"spr_object_size"					"small"
    	"frobable"             			 	"1"
    	"noshadows"							"1"
    	"gravity"							"700"
    
    	"friction"							"0.1"
    	"snd_bounce"						"tdm_impact_junk_plank_shorter"
    }
    
    //Func_shooter bound to urn.
    
    entityDef crate_shooter
    {
    	"inherit"							"atdm:func_shooter"
    	"spawnclass"						"tdmFuncShooter"
    	"editor_displayFolder"	    		"interactables/crates/explosive/base/projectile"
    	
    	"editor_mins"				"-12 -12 -12"
    	"editor_maxs"				"12 12 12"
    	"ammo"								"1"
    	"def_projectile"					"atdm:projectile_explodingCrate"
    	"fire_interval"						"10"
    	"fire_interval_fuzzyness"			"0"
    	"pitch"								"-90"
    	"start_off"							"1"
    }
    
    
    
    //Projectile used to create explosion. Basically a firearrow that explodes immediately. 
    
    entityDef atdm:projectile_explodingCrate
    {
    	"inherit"							"atdm:projectile_arrow"
    	"model"								"models/darkmod/weapons/volta_firearrow.ASE"
    	"editor_displayFolder"	    		"interactables/crates/explosive/base/projectile"
    
    	"editor_usage"						"The projectile fired by exploding crate"
    
    	"def_damage"						"atdm:damage_explodingCrate_direct"
    	"def_splash_damage"					"atdm:damage_explodingCrate_splash"
    
    	"impact_gib"						"1"	// whether projectile can gib a character or not (for example: bullets don't gib, but rockets do)
    
    	"mtr_detonate"					"textures/decals/ballburn01"
    	"decal_size"					"100"
    	"velocity"						"0"
    	"fuse"								"0.0001"
    
    	//"smoke_fly"						"imp_trail2.prt"	// particle effect while in the air
    	
    	"mtr_explode_light_shader"			"lights/volta_light_spot01"
    	"explode_light_color"				"0.906 0.627 0.447"
    	"explode_light_radius"				"120"
    	"explode_light_fadetime"			".2"
    	
    	"detonate_on_fuse"			"1"					
    	"detonate_on_death"			"1"					
    	"detonate_on_world"			"1"					
    	"detonate_on_actor"			"1"
    
    /*
    	"debris_count"						"3"
    	"def_debris"						"debris_largeshrapnel"
    	"def_shrapnel"						"debris_shrapnel"
    */
    
    	"has_result"						"1"
    	"def_result"						"atdm:result_explodingCrate"
    
    	// grayman #1104 - for when arrow hits water
    
    	"detonate_on_water"					"1"	// whether projectile should detonate when it hits a water surface
    	"def_result_water"					"atdm:result_explodingCrate_water"
    	"def_damage_water"					"atdm:damage_none"  // don't hurt the water
    	"no_water_splash_damage"			"1" // no splash damage when detonating on water
    	
    	// Crispy: Most arrows should not raise visual alerts in flight, but fire arrows are an exception
    	"AIUse"					   			 "AIUSE_SUSPICIOUS" // grayman #1327
    }
    
    //Damage
    entityDef atdm:damage_explodingCrate_direct {
    	"inherit"                       	"atdm:damage_base"
    	"editor_displayFolder"	   			"interactables/crates/explosive/base/damage"
    	
    	//Damage
    	"damage"							"200"
    	"radius"							"75"
    	"push"								"2000"
    
    	"mtr_wound_flesh"					"textures/decals/hurt02"
    	"mtr_splat_flesh"					""
    	"gib"								"1"
    	"smoke_wound_flesh"					"bloodwound.prt"
    }
    
    entityDef atdm:damage_explodingCrate_splash
    {
    	"inherit"                   		"atdm:damage_base"
    	"editor_displayFolder"	    		"interactables/crates/explosive/base/damage"
    	
    	//Damage
    	"damage"							"75"
    	"radius"							"150"
    	"knockback"							"50"
    	
    	"push"								"1500"
    	
    	"attackerDamageScale"				"1.0"
    	"attackerPushScale"					"1.0"
    	"gib"								"1"
    	
    }
    
    // Dummy result for stims
    entityDef atdm:result_explodingCrate
    {
    	"inherit"							"atdm:result_arrow_base"
    	"editor_displayFolder"	    		"interactables/crates/explosive/base/projectile"
    	
    	"model_dud"		       				"volta_explodingCrate_fx.prt"
    	"dud_align_surface"					"1"
    
    	"snd_dud"							"urn_explosion"
    	// propagated sound
    	"sprS_dud"							"mine_explode_2"
    
    	"copy_bind"							"0"
    
    	"remove_delay"						"15"
    	
    	"sr_type_1"							"1"		// STIM_FIRE -> script/tdm_stim_response.script
    	"sr_radius_1"						"35"	// expand from 10 units
    	"sr_radius_final_1"					"110"	// to 70 units
    	"sr_falloffexponent_1"				"1"
    	"sr_duration_1"						"250"	// stim duration 250 ms
    	"sr_time_interval_1"				"45"	// stim check is made roughly every 45 ms
    }
    
    // Water explosion
    entityDef atdm:result_explodingCrate_water
    {
    	"inherit"							"atdm:result_arrow_base"
    	"editor_displayFolder"	    		"interactables/crates/explosive/base/projectile"
    	
    	"model_dud"							"tdm_smoke_torchout.prt"
    	"dud_align_surface"					"1"
    
    	"snd_dud"							"machine_steam01"
    
    	"copy_bind"							"0"
    
    	"remove_delay"						"5"
    }
    
    #ifndef EXPLOSIVE_URN
    #define EXPLOSIVE_URN
    object tdm_explosive_urn
    {
    	void init();
    	void explode(float explosionDelay);
    	void LightsOn();
    	float onFire;
    	void updateLoop();
    };
    
    void tdm_explosive_urn::init()
    {
    	onFire=0;
    	thread updateLoop();
    }
    void tdm_explosive_urn::updateLoop()
    {
    	while(1)
    	{
    		sys.waitFrame();
    		if (onFire) explode(4.0);
    	}
    	
    }
    void tdm_explosive_urn::explode(float explosionDelay)
    {
    	sys.println("Urn explodes in "+explosionDelay);
    	entity shooter;
    	shooter=getBindChild(1);;
    	sys.wait(explosionDelay);
    	if (!onFire) return;
    	shooter.shooterFireProjectile();	
    }
    void tdm_explosive_urn::LightsOn()
    {
    	onFire=1;
    }
    void tdm_explosive_urn::LightsOff()
    {
    	onFire=0;
    }
    #endif
    

     

     

     

    I assume this from the map file is the 'additional setup' referred to in the top comment:

     

     

     

    {
    "classname" "explosive_urn"
    "name" "explosive_urn_11"
    "origin" "1607.7 -6797.02 -3326.44"
    "rotation" "0.0509955 0.458469 0.887246 -0.986941 0.159055 -0.0254631 -0.152795 -0.874362 0.460593"
    "sr_class_1" "R"
    "sr_class_2" "R"
    "sr_class_3" "R"
    "sr_effect_1_1" "effect_kill"
    "sr_effect_1_1_arg1" "_SELF"
    "sr_effect_2_1" "effect_trigger"
    "sr_effect_2_1_arg1" "trigger_timer_14"
    "sr_effect_2_2" "effect_add_target"
    "sr_effect_2_2_arg1" "trigger_timer_14"
    "sr_effect_2_2_arg2" "explosive_urn_11"
    "sr_effect_2_3" "effect_light_ignite"
    "sr_effect_2_3_arg1" "light_exploding_urn_11"
    "sr_effect_3_1" "effect_clear_targets"
    "sr_effect_3_1_arg1" "trigger_timer_14"
    "sr_effect_3_2" "effect_light_extinguish"
    "sr_effect_3_2_arg1" "light_exploding_urn_11"
    "sr_radius_2" "45"
    "sr_state_1" "1"
    "sr_state_2" "1"
    "sr_state_3" "1"
    "sr_type_1" "STIM_TRIGGER"
    "sr_type_2" "STIM_FIRE"
    "sr_type_3" "STIM_WATER"
    "target" "atdm_func_shooter_11"
    }
    

     

     

     

    It would be interesting to know what the problems were with getting an impulse, and why it uses such a complex set-up with a bound shooter (func_explosion would be the first thing I'd have tried, which makes me wonder whether it was tried and had problems; or if the idea is to launch a projectile, there's a script event for that, and the FX system might be another way). (For that matter, you can invoke impulses in scripts: it's how my speed and slowfall potions work. Though it's the kind of workaround you need if you're reliant on scripting to do the job, and was initially severely bugged.)

    • Like 1
  15. Spinning this topic off from discussion in NDRQs. I've been looking at Springheel's powder keg entity class; this is what I've currently got:

     

     

     

    entityDef moveable_powderkeg {
        "inherit" "atdm:entity_base"
        "editor_color"                "0 .5 .8"
        "editor_mins"                "-16 -16 0"
        "editor_maxs"                "16 16 48"
        "editor_rotatable"            "1"
        
    
        "editor_displayFolder"    "Moveables/Junk"
        "editor_usage"                    "Moveable barrel. Works just like a func_moveable. However the barrel"
        "editor_usage1"                    "has special handling to make it appear more round. This version also explodes when damaged enough."
        "editor_usage2"                    "Only add model, model_detonate or model_burn or health to override defaults"
        "editor_var burn"                "number of seconds to burn before exploding."
        "editor_model model_damage"        "model to leave as damaged base"
        "editor_model model_detonate"    "ips model to switch to for explosion."
        "editor_model model_burn"        "ips model to show when on fire."
        "editor_var def_debris"            "add as many as you like, debris1, debris2, etc.. "
        "editor_var health"                "how much health the barrel has, default is 5. If burn is set to 1, the health is effectively doubled so you have to kill it twice to get the explosion"
        "editor_var respawn"            "if non zero the number of seconds to respawn after killed"
        "editor_var respawn_range"        "no player in distance range to actually respawn - default 256"
        "editor_var respawn_again"        "try again in seconds if player in range - default 10"
        "editor_bool triggerTargets"        "if set to 1 will trigger targets after being killed"
        "editor_material mtr_lightExplode"    "light shader to use for explosion"
        "editor_material mtr_lightBurn"        "light shader to use for burning"
        
        "spawnclass"                "idExplodingBarrel"
    
        "density"                    "0.02"
        "friction"                    "0.2"
        "bouncyness"                "0.4"
    	"mass"						"45" // Copied from an empty barrel, so realistically should be higher
    	
    	"notPushable"				"0"
    	"frobable"					"1"
    	"grabable"					"1"
    	
    	"damage_explosion"			"damage_explosion"
    	"def_splash_damage"			"damage_explodingbarrel"
    
    
        "model"                        "models/darkmod/containers/barrell_med_closed.lwo"
        "def_debris"                "debris_generic1" //FIXME: change to something more suitable than ceramic shards
        "def_debris1"                "debris_generic1"
        "def_debris2"                "debris_generic1"
    	
    	"model_burn"				"barrelfire.prt"
    "snd_burn"     "element_fire_bonfire"
    	"burn"						"3"
    
        "model_detonate"            "mine_cloud.prt"
    //    "skin"                        "skins/exp_barrel_red"
        "mtr_lightexplode"            "lights/barrelexplode"
        "light_radius"                "300"
        "health"                    "5"
        // sound of shatter on impact or destroyed
        "snd_explode"            "mine_explode_2"
    	
    //	"model_damage"			"models/darkmod/junk/barrell_broken04.lwo"
    	"mtr_burnmark"			"textures/decals/ballburn01"
        
        // propogated sound on impact or destroyed
        "sprS_explode"            "mine_explode_2"
        "snd_bounce"                "metal_barrel_impact"
        "clipmodel"            "models/darkmod/misc/clipmodels/barrell_med_cm.lwo"
    	"solid"					"1"
    	
    	"sr_class_1" "R"
    	"sr_type_1" "STIM_FIRE"
    	"sr_state_1" "1"
    	"sr_effect_1_1" "effect_kill"
    	"sr_effect_1_1_arg1" "_SELF"
    }
    
    entityDef debris_generic1 {
        "inherit" "atdm:entity_base"
        "spawnclass"                "idDebris"
        "mins"                        "-3 -3 -3"
        "maxs"                        "3 3 3"
    
        "editor_displayFolder"            "x doom3 junk/Debris"
        "model"                     "models/darkmod/junk/generic_shards/ceramicflind04.ase"
        //"skin"                        "skins/exp_barrel_red"
    
        "health"                    "0"                    // amount of damage projectile can take if damaged (0 means it can't be destroyed)
        "velocity"                    "100 100 00"            // how fast the projectile leaves the gun (or distance if fuse is 0)
        "random_velocity"            "1"                        
        "angular_velocity"            "1 -1 1"            // how the projectile is rotating when it leaves the gun
        "thrust"                    "50"                    // the rate of acceleration (always in the direction of the projectiles model)
        "thrust_start"                "50"                    // when to start accelerating
        "thrust_end"                "0"                    // when to stop accelerating
        "linear_friction"            "0.8"                // "air" friction
        "angular_friction"            "1.1"
        "contact_friction"            "0.9"
        "bounce"                    "0.1"                // how much speed a projectile retains when it bounces off of objects (coefficient of restitution).  0 means no bounce.
        "mass"                        "4"
        "gravity"                    "266"                // how much gravity affects the trajectory.  gravity direction is same as the entity that fired it.
        "fuse"                        "15"                    // how long before the projectile is removed or self-detonates.  Use 0 for beam weapons (velocity == distance).
    
        "detonate_on_fuse"            "1"                    // whether projectile should detonate when it's fuse runs out
        "detonate_on_death"            "0"                    // whether projectile should detonate when it's "killed" (health runs out)
        "detonate_on_world"            "0"                    // whether projectile should detonate when it hits an obstacle
        "detonate_on_actor"            "0"                    // whether projectile should detonate when it hits a character in the game
    
        "smoke_fly"                    "imp_trail2"    // particle effect while in the air
    
        // parametric particles -- temp
        "model_detonate"            ""
        "smoke_detonate"            ""                    // particle effect when detonates
        "smoke_fuse"                ""
        "smoke_bounce"                ""
    }
    

     

     

     

    • Moving a slow match or a candle next to the barrel only ignites it because it's so sensitive to being pushed by moveables (see below). They don't have enough of a stim radius to reach the origin (and something weird's up with the candle flame: I had to move a light_candleflame entity right next to the origin to ignite it, regardless of radius). I fixed this on a slow match by giving it "sr_use_bounds" "1", but that has to be set on the stimming entity, not the response entity. Are we concerned about this? See also http://bugs.thedarkmod.com/view.php?id=1727
    • Fire arrows, on the other hand, are so effective that even before I set up the fire Response, detonating one near a powder keg would skip the burn phase and go straight to its explosion.
    • It's weirdly easy to set it off just by throwing objects at it or even pushing them against it: if something does any damage at all on collision, it can whittle the barrel's health down, even if it's a small object. (It might be possible to disable damage altogether and respond to fire stims alone if the enableDamage(float enable) script event is inherited; I haven't tried. [scratch that; it's for dealing damage.] Would we be happy if fire was the only way to set it off?)
    • On the other hand, you can chuck the barrel around all you like. I think this code change from D3XP (Resurrection of Evil) might be to change that. If it does, and we want it, someone would have to copy it over (and make sure it didn't make the things lethal just to move around).
    • Are we likely to want a long burning stage (id had 2.5 secs or nothing, I've currently set 3)? It raises questions of how to activate a fire stim when the burning stage starts, and whether water stims should stop the burning. (A function to stop burning was another D3XP addition, but I didn't notice a way to invoke it from outside C++ code, so we'd need that too...) Otherwise, we just need a fire stim to go with the explosion; I haven't tried the invisible debris idea yet.
    • You can set a model to switch to when the barrel explodes, but it vanishes pretty abruptly after a few seconds, which doesn't look great with TDM's broken barrel models; I think you're stuck with the same collision model even if you've switched to a much smaller visual model; and D3 physics strike again, in that anything that lands on the new model is likely to hover in mid-air after it vanishes.
    • Like 3
  16. Got a new question, this time about readables. Is it possible to feature an image on a readable? Like have a picture on a page in a readable book or something?

    I think this would involve making a modified GUI declaration. http://wiki.thedarkmod.com/index.php?title=GUI_Scripting#See_also You can examine the existing GUIs in /guis/readables inside tdm_gui01.pk4

     

    Also, Ive seen a lot of FMs have books as loot items but I cant find them in the loot list. Am I just missing them somehow? If not, how would I go about making an existing movable entity into a loot item?

    It's easier to do it the other way round: change the "model" and "inv_icon" spawnargs on an existing piece of loot. Or make an entityDef that inherits from a loot class if you're going to be placing a lot of the same type.

  17. I'm not sure where to look for impulses, but spawnargs like init_velocity are empty.

     

    The damage defs used by the fire arrow have "push" values, though, and when I fire one in the test map it sends a few bottles flying. It's the bottles that break that seem not to receive a push (or rather, the flinders that replace them don't).

     

    I see http://wiki.thedarkmod.com/index.php?title=Breakable_objects#Todo has the TODO note 'Damage needs to be calculated from the impulse, not from a fixed set of "damage" values', but I'm not sure what that implies for the current physics.

     

    Broken bottle parts have the idMoveable spawnclass, not idDebris: they're standard physics objects the player can grab, etc. (A second fire arrow sends them flying as one would expect.) Oddly, intact bottles have idBarrel (because they're approximately cylindrical, maybe?).

    • Like 1
  18. Breaking bottles do spawn flinders - a top half and a bottom half - but there seems to be a problem with them sitting in place instead of flying apart.

     

    Talk of liquids and throwing bottles against walls makes me wonder whether there's any way to make moveables splat decals on impact like projectiles can. I see an fx_collide spawnarg but the FX system only seems to like to splat vertically downwards. I also wondered about splats defined in the damage def, but I imagine mtr_killed_splat and mtr_wound won't do anything to, say, a wall. I don't know what mtr_blob does.

     

    I'm not actually sure what it would take to spawn S/R effects from a broken moveable, because I think spawning a 'result' entity on detonation might be unique to projectiles. If it is, maybe some kind of invisible flinder entity could provide a work-around... (The burning barrel that then explodes is an interesting case: probably the burning and exploding stages should have different radii for fire stims.)

     

    Regarding target_setinfluence, the entity def isn't in TDM's files but you can get one from https://github.com/DanielGibson/d3-base-assets/blob/master/sabase/def/targets.def

  19. There are cultures that develop around mental illness and so forth within which e.g. policing trigger warnings is normal and mutually reinforced; then those expectations get applied to interactions with people outside the group. I don't know whether any of that applies to Lavender though.

     

    I think it's understandable to find some views not merely wrong but repugnant; I imagine we'd be having a somewhat different discussion if the accusation had been of, say, anti-Semitism. But sometimes politics gets so polarised that you have people automatically imputing bigotry to whoever thinks differently on Trump or Brexit or whatever. It's often unclear whether opposition to 'the alt-right' is to neo-fascism or to conservatism.

     

    Good thing she never found out which members here also post on RPG Codex. :-P

    • Like 1
  20. Perhaps just an unbalanced person, going through some stuff? I have never seen this before...

    Oh, this is pretty mild. There are social sites where e.g. posting eye contact images or mentioning food without a content warning is frowned upon.

×
×
  • Create New...