Jump to content
The Dark Mod Forums

Search the Community

Searched results for '/tags/forums/damage/' or tags 'forums/damage/q=/tags/forums/damage/&'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General Discussion
    • News & Announcements
    • The Dark Mod
    • Fan Missions
    • Off-Topic
  • Feedback and Support
    • TDM Tech Support
    • DarkRadiant Feedback and Development
    • I want to Help
  • Editing and Design
    • TDM Editors Guild
    • Art Assets
    • Music & SFX

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. After some amount of work I'm happy to be able to share my Christmas gift for TDM! Or at least half of it, considering the other half is still only in design phase. I created an addon that implements detailed player functionality, inspired by the first DeusEx game (The Conspiracy). It's NOT a mission script but an addon, meaning you place the pk4 in your TDM directory to enable the system and it will automatically work in each and every FM. Note that due to using tdm_user_addons.script / user_addon_init() it may disable or get disabled by other addons you have installed... this is a design limitation which can hopefully be lifted at some point in the future. This plugin will be included in my cyberpunk total conversion The Dark Module and automatically active with it, but first I shall design it and make it available as a small independent addon for vanilla TDM. In the current initial release it implements just per-limb damage; The upcoming plan is to add a skill / augmentation system, allowing the player to use loot as skill points to enhance various body parts and gain new or improved abilities. Due to the scripting system being very limited in what it lets me modify, I'm still gathering documentation on how to implement those skills and which I can have. So until then detailed body damage with penalties remains the only part that's theoretically finished so far (further improvements are required here too)... including a HUD component above the lightgem showing the status of each body part: Green = full health, yellow = half health, red = (close to) no health, black = no health left. The individual limbs available: Head, Torso, Left Arm, Right Arm, Left Leg, Right Leg... arms and legs work in unity however. They each take damage with the player as well as healing together with them. The more damaged a group is, the more a respective penalty is applied to the player. Groups and penalties include: Head: When the head is damaged, the player begins to get dizzy and has their vision impaired. Currently the only effect replicates the flashbomb, causing white dots to appear around the player and disrupt their view until the head is healed. As the player can't live without a head, reaching 0 will cause instant death. More effects are possible and pending. Torso: Damage to the torso translates to damage to the cloak, increasing the player's lightgem and rendering them more visible even in dark spots. As the player can't live without a torso, reaching 0 will cause instant death. Given script limitations I'm unable to simulate lung damage and decrease / limit the amount of air the player has. Arms: Arm damage makes it difficult for the player to hold items: In-world objects being held will probabilistically get dropped, more often the worse your arms are hurt. When both arms reach 0 health, the player can no longer pick up anything in the world without instantly dropping it... you also become unable to use any weapons. Due to limitations in the scripting system, I'm unable to decrease the speed or accuracy of the blackjack / sword / bow as was desired. Legs: As expected leg damage will make the player walk more slowly. It was desired that when one leg is lost the player can no longer jump, whereas when both legs are gone you remain stuck in crouch mode until healed... due to limitations in the scripting system this part is also not possible at the moment. A crude limitation is the fact that limb damage is primarily based on the direction the player is walking toward... for example, increased likelihood of suffering damage to your right arm and leg if strafing right the moment you take the damage. The script system doesn't let you extract the vector direction of the last damage event, thus I can't use the real direction the hit came from when calculating which body part should absorb the most health loss. This means that even if an arrow comes from above and hits the player's head area, the player will only take damage to the legs if they're falling downward the moment they got hit... for the time being this provides a bare minimum amount of realism but is a very bitter implementation. For this reason it would be greatly appreciated if any of the code developers could join this discussion and verify if they can help with adding the necessary hooks to external scripts: With 2.09 getting periodic beta releases at this point in time, it would be a great opportunity to make changes to the builtin player script that allow an external function to modify more player variables. This includes the efficiency of weapons, if the player is allowed to jump or forced to always crouch, and I'd also really appreciate a hook to manipulate the breath so air can be lowered as if the player is underwater. I understand other priorities exist or if the work may be considered too much, however this would help in being able to finish this mod with the proper functionality and planned skill set. In the meantime let me know what you think of this idea and how I went about it! So far no new assets are included except the GUI graphics: Everything is done with less than 250 lines of script which I'd say is a good achievement I've attached the pk4 and since it's so lightweight I'll also add the main script straight in this post. player_damage_1.0.pk4 #define DAMAGE_WAIT 0.0166667 #define EXPOSURE_ARM_LEFT 2 #define EXPOSURE_ARM_RIGHT 2 #define EXPOSURE_LEG_LEFT 2 #define EXPOSURE_LEG_RIGHT 2 #define EXPOSURE_HEAD 3 #define EXPOSURE_TORSO 1 #define PENALTY_TORSO_LIGHTGEM 4 player self; float damage_gui; boolean dizzy; entity dizzy_particles; float bound(float val, float min, float max) { if(val < min) return min; if(val > max) return max; return val; } // Range based probability: Calculates a probability per frame independent of wait time (0 - 1 range at 1 chance per second) boolean prob(float x) { return sys.random(1) > x && sys.random(1) < DAMAGE_WAIT; } // Directional exposure calculator float dex(vector dir, float ex_front, float ex_back, float ex_right, float ex_left, float ex_up, float ex_down) { float maxvel = 100; float dir_front = bound(dir_x / maxvel, 0, 1) * ex_front; float dir_back = bound(-dir_x / maxvel, 0, 1) * ex_back; float dir_right = bound(dir_y / maxvel, 0, 1) * ex_right; float dir_left = bound(-dir_y / maxvel, 0, 1) * ex_left; float dir_up = bound(dir_z / maxvel, 0, 1) * ex_up; float dir_down = bound(-dir_z / maxvel, 0, 1) * ex_down; return dir_front + dir_back + dir_right + dir_left + dir_up + dir_down; } void player_damage_update_arm(float dmg_l, float dmg_r) { float hl_l = self.getFloatKey("health_arm_left"); float hl_r = self.getFloatKey("health_arm_right"); float hl = (hl_l + hl_r) / 2; if(dmg_l != 0 || dmg_r != 0) { hl_l = bound(hl_l - dmg_l, 0, 1); hl_r = bound(hl_r - dmg_r, 0, 1); hl = (hl_l + hl_r) / 2; self.setKey("health_arm_left", hl_l); self.setKey("health_arm_right", hl_r); self.setGuiFloat(damage_gui, "PlayerDamage_ItemArmLeft", hl_l); self.setGuiFloat(damage_gui, "PlayerDamage_ItemArmRight", hl_r); // Penalty #1: Disable the weapon once the arm are damaged to minimum health if(hl == 0) { self.selectWeapon(WEAPON_UNARMED); self.disableWeapon(); } else { self.enableWeapon(); } } // Penalty #2: Probabilistically drop held items based on arm damage if(hl == 0 || prob(hl)) if(self.heldEntity() != $null_entity) self.holdEntity($null_entity); } void player_damage_update_leg(float dmg_l, float dmg_r) { float hl_l = self.getFloatKey("health_leg_left"); float hl_r = self.getFloatKey("health_leg_right"); float hl = (hl_l + hl_r) / 2; if(dmg_l != 0 || dmg_r != 0) { hl_l = bound(hl_l - dmg_l, 0, 1); hl_r = bound(hl_r - dmg_r, 0, 1); hl = (hl_l + hl_r) / 2; self.setKey("health_leg_left", hl_l); self.setKey("health_leg_right", hl_r); self.setGuiFloat(damage_gui, "PlayerDamage_ItemLegLeft", hl_l); self.setGuiFloat(damage_gui, "PlayerDamage_ItemLegRight", hl_r); // #Penalty #1: Make movement slower self.setHinderance("health", 0.25 + hl * 0.75, 1); } } void player_damage_update_head(float dmg) { float hl = self.getFloatKey("health_head"); float time_current = sys.getTime(); if(dmg != 0) { hl = bound(hl - dmg, 0, 1); self.setKey("health_head", hl); self.setGuiFloat(damage_gui, "PlayerDamage_ItemHead", hl); // Penalty #1: Without a head the player dies if(hl == 0) self.damage(self, self, self.getOrigin(), "damage_suicide", 1); // Penalty #2: Simulate dizzyness starting at half health if(hl <= 0.5) { if(!dizzy) { dizzy_particles = sys.spawn("func_emitter"); dizzy_particles.setModel("flashbomb.prt"); dizzy_particles.setOrigin(self.getEyePos()); dizzy_particles.bind(self); dizzy = true; } } else { if(dizzy) { dizzy_particles.remove(); dizzy = false; } } } } void player_damage_update_torso(float dmg) { float hl = self.getFloatKey("health_torso"); if(dmg != 0) { hl = bound(hl - dmg, 0, 1); self.setKey("health_torso", hl); self.setGuiFloat(damage_gui, "PlayerDamage_ItemTorso", hl); // Penalty #1: Without a torso the player dies if(hl == 0) self.damage(self, self, self.getOrigin(), "damage_suicide", 1); // Penalty #2: Torso damage negatively affects the lightgem self.setLightgemModifier("damage", (1 - hl) * PENALTY_TORSO_LIGHTGEM); } } void player_damage() { sys.waitFrame(); self = $player1; damage_gui = self.createOverlay("guis/player_damage.gui", 1); float health_old = 100; // Init by sending a heal event filling the limbs to full health player_damage_update_arm(-1, -1); player_damage_update_leg(-1, -1); player_damage_update_head(-1); player_damage_update_torso(-1); while(1) { // sys.waitFrame(); sys.wait(DAMAGE_WAIT); float health_current = self.getHealth(); float dmg = (health_old - health_current) / 100; float dmg_arm_left = dmg * EXPOSURE_ARM_LEFT; float dmg_arm_right = dmg * EXPOSURE_ARM_RIGHT; float dmg_leg_left = dmg * EXPOSURE_LEG_LEFT; float dmg_leg_right = dmg * EXPOSURE_LEG_RIGHT; float dmg_head = dmg * EXPOSURE_HEAD; float dmg_torso = dmg * EXPOSURE_TORSO; // If this is damage and not healing, apply directional damage to each limb if(dmg > 0) { // Currently we estimate damage direction based on the player's velocity, we should fetch the real direction of a damage event when this becomes possible vector dir = self.getMove(); vector ang = self.getViewAngles(); // Protections based on the player's position and relation to the environment // protection_look: 1 when looking up, 0 when looking down // protection_low: Higher as the lower part of the body is exposed float protection_look = 1 - (90 + ang_x) / 180; float protection_low = 1; if(self.AI_CROUCH) protection_low = 0; else if(self.AI_ONGROUND) protection_low = 0.75; // Use the dex function to calculate directional exposure patterns, direction order: Front, back, right, left, up, down // Arms: Somewhat likely to be hit, no added protection // Legs: Somewhat likely to be hit, added protection when the player is crouching // Head: Unlikely to be hit, added protection when the player is looking down // Torso: Likely to be hit, no added protection float exposure_arm_left = bound(sys.random(0.375) + dex(dir, 0.5, 0.25, 0.0, 1.0, 0.0, 0.25), 0, 1); float exposure_arm_right = bound(sys.random(0.375) + dex(dir, 0.5, 0.25, 1.0, 0.0, 0.0, 0.25), 0, 1); float exposure_leg_left = bound(sys.random(0.375) + dex(dir, 0.75, 0.5, 0.0, 0.5, 0.0, 1.0) * protection_low, 0, 1); float exposure_leg_right = bound(sys.random(0.375) + dex(dir, 0.75, 0.5, 0.5, 0.0, 0.0, 1.0) * protection_low, 0, 1); float exposure_head = bound(sys.random(0.25) + dex(dir, 0.25, 0.75, 0.5, 0.5, 1.0, 0.0) * protection_look, 0, 1); float exposure_torso = bound(sys.random(0.5) + dex(dir, 0.75, 1.0, 0.0, 0.0, 0.0, 0.0), 0, 1); // Apply the exposure to damage, multiplied to simulate the sensitivity / resistance of each limb dmg_arm_left = exposure_arm_left * dmg * EXPOSURE_ARM_LEFT; dmg_arm_right = exposure_arm_right * dmg * EXPOSURE_ARM_RIGHT; dmg_leg_left = exposure_leg_left * dmg * EXPOSURE_LEG_LEFT; dmg_leg_right = exposure_leg_right * dmg * EXPOSURE_LEG_RIGHT; dmg_head = exposure_head * dmg * EXPOSURE_HEAD; dmg_torso = exposure_torso * dmg * EXPOSURE_TORSO; } player_damage_update_arm(dmg_arm_left, dmg_arm_right); player_damage_update_leg(dmg_leg_left, dmg_leg_right); player_damage_update_head(dmg_head); player_damage_update_torso(dmg_torso); health_old = health_current; } }
  2. Finally got my PC back from the shop after my SSD got corrupted a week ago and damaged my motherboard. Scary stuff, but thank goodness it happened right after two months of FM development instead of wiping all my work before I could release it. New SSD, repaired Motherboard and BIOS, and we're ready to start working on my second FM with some added version control in the cloud just to be safe!

    1. Show previous comments  1 more
    2. The Black Arrow

      The Black Arrow

      Wait, how can a SSD corrupt and damage a motherboard? I gotta know so I can avoid it.

    3. Ansome

      Ansome

      @The Black ArrowWish I could tell ya, but unless I decide to ship it off to a data recovery company to interrogate it further, I'm not going to be able to figure out how it got corrupted or why it was as catastrophic as it was for the rest of the system. All I know is that even when I removed my old SSD to boot from my backup HDD, parts of my bios, partitions, and even some parts of the built-in recovery options weren't functional. It wouldn't even let me boot from my trusty USB repair media! I don't think it was a virus or anything, the repair shop I went to has apparently seen something similar four times in the last two years with Samsung's 970 series, but whether that's a genuine issue or a coincidence is anyone's guess.

    4. The Black Arrow

      The Black Arrow

      Okay, that's very scary now...I really hope it was a coincidence because I also have one Samsung 970 and I don't ever want anything bad to happen to it, I think I've had it since 3 years now as well.

  3. Is there something wrong with the forums lately, or is it my browser? I've been having trouble formatting posts, and just now I couldn't format anything at all.

    I'm using Vivaldi.

    Usually I have to: select text, click bold, nothing happens, select again, click bold, then it works. 

    Same for other stuff, like creating spoilers, bullet points, links. Nothing works the first time. 

    1. datiswous

      datiswous

      I have no problem. I use Firefox. @Zerg Rush also uses Vivaldi. Have you tried without extensions, or in another browser?

      (btw. bold, italic and underline have shortcut keys: Ctrl B, Ctrl I and Ctrl U, you could try that)

       

  4. In my mission, there is a script that is supposed to display a message if a player is damaged by an explosion. It didn't work because health stays at 100 even when the light gem shows damage was taken. at the start of script I did this; PlayerHealth = $player1.getHealth(); sys.print("Start health = " + PlayerHealth + "\n"); and it reports 100 (or less if player is damaged already) after the explosion (more) damage is taken per light gem, but this; PlayerHealth = $player1.getHealth(); sys.print("health now = " + PlayerHealth + "\n"); Still shows the value recorded before damage was taken. So how do I test for actual health?
  5. Since Aluminum directed me here ( https://forums.thedarkmod.com/index.php?/topic/9082-newbie-darkradiant-questions/page/437/#comment-475263 ) can we have unlimited renderer effects? Well, maybe not unlimited, by maybe 3-5? Thanks.

     

    1. Show previous comments  1 more
    2. Nort

      Nort

      Since I wasn't the one mainly asking, I'll just cite you in the original thread instead.

    3. AluminumHaste

      AluminumHaste

      There already is a kind of sorting, sort nearest, sort decal, sort <n>. For things like windows and such, sort nearest should probably have the desirable affect, though looking through multiple translucent shaders might kill performance.

    4. Nort

      Nort

      Is having multiple render effects really killing performance that badly? I don't understand. You're saying that if I have two transparent objects side-by-side, then they'll just count as two render effects, but when combined, they somehow become something much more difficult to render?

      Never-the-less, unless we're talking some kind of infinite portal problem, why not let the mapper choose how much he wants to kill performance? Just warn him against putting too many effects close together.

  6. Woo!! 2.10 Beta "Release Candidate" ( 210-07 ) is out:

    https://forums.thedarkmod.com/index.php?/topic/21198-beta-testing-210/

    It wont be long now :) ...

  7. I don't think there's a link to thedarkmod.com on forums.thedarkmod.com ...

    1. datiswous

      datiswous

      Yeah and the wiki and moddb. It should have those links in the footer I think. Probably easy to add by an admin.

      Edit: And a link to the bugtracker. I'm always searching for a post in the forum that links to that because I can't remember the url.

    2. Petike the Taffer

      Petike the Taffer

      I drew attention to this several times in the last few years. No one payed it any attention, so I just gave up.

    3. duzenko

      duzenko

      Reluctance to improve the forums is matched by reluctance to allow more people to work on it. Talk about trust and power.

  8. On House of Theo, I knocked out the guard patrolling outside. Then I threw him off the side, down to where you start the mission. This is plenty far enough to kill me (the player) but when I fly down there, he's still alive. Shouldn't knocked out AI's suffer from falling damage too? I don't know if Thief 1/2 did this, but I do know that if you knocked someone out and dumped them in water, the game would credit you with killing them and you would fail if the mission objectives prohibited it. Actually I do think knocked out AI's in that game did suffer falling damage as well. EDIT: Just tested, Thief 1 AI's still do take damage when you drop them while they're unconscious.
  9. Not so long ago I found what could make a pretty good profile picture and decided to try it out on these new forums. But I couldn't find a button anywhere that would let me change it. I asked on Discord and it seems Spooks also couldn't find anything anywhere. So I logged into an old alternative account and, lo and behold, that account has a button. This is on the first screen I get when I: 1) click on my account name in the top-right of the browser -> 2) click on 'profile'. Compared to my actual account: Are you also missing this button on your account? It'd be very much appreciated if that functionality could be restored to any of the affected accounts.
  10. Hi, I need to know what the code is to use Spoiler Tags. I am using my tablet and I don't have the options to use anything, like spoiler tags, quote tags, text changes etc. Thanks
  11. Does anyone know why the player has two identical Damage Responses set in the player def file? Won't this result in the player taking double damage from STIM_DAMAGE entities?
  12. Still spreading the word about TDM on forums to new peops... Funny to see people say "Awesome, I loved playing Thief back in the day!"

    1. Show previous comments  2 more
    2. kano

      kano

      Yes it was in a discussion where someone was saying how unhappy they are with the way game companies grant themselves permission to do whatever they like to your PC and personal info today. I pointed out that giving up games completely is an unnecessarily overkill solution when there are free games like TDM to play.

    3. Epifire

      Epifire

      Honestly the mod/Indie genre is still really booming right now. And they aint got no reason to do shady invasive privacy bs.

    4. Petike the Taffer

      Petike the Taffer

      What Epifire said. :-)

    1. Tarhiel

      Tarhiel

      Awesome, congratulations!!! :o

    2. Bikerdude

      Bikerdude

      Yup, all the remianing bugs were ironed out, so it nigh on perfect now.

    3. AluminumHaste

      AluminumHaste

      version 2.1 is now uploaded to mirrors ready to download.

  13. Hi guys, through the "cheats" topic I got the idea, that it would be quite useful, if there were tags for missions (the post was about removing the killing restriction in some missions to suit the prefered play style). I don't know how easy or difficult this is, but with them, it would be quite convenient to pick missions with playstyles, environment, etc one does want to use. This could also be expanded to other mission properties. I remember a discussion about climbable drains, handles on doors, that cannot be picked and other things the map author chooses for himself. That way these things would be clearer and as I said before, it is easier to choose missions with playstyles that suit oneself. What do think?
  14. can somebody fix the mainpage of our site? http://forums.thedarkmod.com/topic/19469-new-layout-error/

    1. nbohr1more
    2. Springheel

      Springheel

      It's under construction at the moment.

       

  15. Experimenting with TDM on Steam Link on Android. see topic http://forums.thedarkmod.com/topic/19432-tdm-on-steam-link-for-android/

    1. freyk

      freyk

      Did the TDM team removed D3's internal Joypad feature? (tdm works only with systemkey binders for joysicks)

    2. freyk

      freyk

      Thanks to shadrach, i got my joypad working in TDM on steam link!

  16. Testing new section, replaying through level. A bunch of my traps no longer work if player "blocks" with flimsy sword. Discovered by accident when messing around. Whole section can now walk through without taking damage, totally ignore "traps" - no longer damaged by fast mover, sharp object, spinning wheel of blades - can simply block and that's that. idMovers no longer cause damage? http://wiki.thedarkmod.com/index.php?title=TDM_Movers What is a workaround for this? Any way to make mover cause damage without having to set up some stim/response (eg "set it on [invisible] fire").
  17. Last year I raised attention to an issue in 2.02 where unconscious AI were not sustaining fall damage; the Bugtracker code for that issue is 0003699, and Grayman went about resolving the issue. As 2.03 has just been released, I wanted to test out my one map where I first encountered the issue. So I went about knocking out different AI and proceeded to noclip up to various heights and then drop them down to earth. What I have discovered is that while the issue has been "fixed" inasmuch that the unconscious AI do eventually die, the height distances from which this happens and the number of drops required to kill the AI, do vary in unexpected ways. In the first instance, I had to drop an unconscious standard City Watch guard from a height of approximately 670-700 Doom Units (DU) around six times before he died. Contrast this experience with the single drop - from exactly the same height - that it took to kill an unconscious 'Wench.' What was even more strange was that it only took four drops to kill the unconscious standard City Watch guard from a height of around 280-300 DU; but it took around seven to kill an ordinary 'Thug.' Regardless of the fact that it is taking more than a single drop to kill unconscious AI from either a single story or - in the case of 670-700 DU, a three story - building, one would anticipate that it would take less drops from a higher height than a lower one. As I noted at the beginning, the issue is technically solved; however, it would seem that perhaps some variables require tweaking?
  18. So, I am almost done with the def file of my ghosts, but still have one problem: They can be killed by fire arrows and mines, due to the splash damage they get. Other damage sources do not affect them, because they are completely nonsolid and thus cannot be hit. I have already set all "damage_scale" spawnargs to 0, but they still recieve splash damage. Also, they should not trigger mines, but since they are AI, I am not sure, if it possible to remove the trigger... Still, this would not matter that much, if the splash damage would not kill them.
  19. Did a great find today: Quake 4 mods for dummies. Now online readable. http://forums.thedarkmod.com/topic/5576-book-quake-4-mods-for-dummies/?p=412644

×
×
  • Create New...