Jump to content
The Dark Mod Forums

Search the Community

Searched results for '/tags/forums/black and whitemonochrome/' or tags 'forums/black and whitemonochrome/q=/tags/forums/black and whitemonochrome/&'.

  • 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. I just recently became aware of this feature: https://wiki.thedarkmod.com/index.php?title=Particle_collisions_and_cutoff Unfortunately I completely missed it, as when I went to create weather effects in my FMs I just followed this (which doesn't mention it): https://wiki.thedarkmod.com/index.php?title=A_-_Z_Beginner_Full_Guide_Page_3#Rain_and_Snow The point of this thread is to a) make people aware of it and b) gather feedback from any mappers that have used it so we can get some mapper-focused documentation in the Wiki. The page above is great for background information about how it works, but as a mapper I really just want to know: What are the limitations of this (i.e. when should it be used and when shouldn't it be used)? Why isn't it the default behaviour? Why all this work to get it into the map? What built-in support for it exists (particle definitions, materials, etc). Do I need to create all this stuff myself? Texture layout vs. Linear layout: what's the difference in the end, pros/cons, why would I use one over the other... Why does it need a separate command (runParticle)? Can this just not be bundled in with dmap? A clear, step-by-step instruction on how to implement it in a map from beginning to end using a simple use case. Tagging some users who have relevant experience with this: @stgatilov @Goldwell @Amadeus
  2. Interesting idea. Not sure about my upcoming time availability to help. A couple of concerns here - - I assume the popup words uses the "Informative Texts" slot, e.g., where you might see "Acquired 80 in Jewels", so it likely wouldn't interfere with that or with already-higher subtitles. - There are indications that #str is becoming unviable in FMs; see my just-posted: https://forums.thedarkmod.com/index.php?/topic/22434-western-language-support-in-2024/
  3. @The Black Arrow That's a good analysis. I don't disagree but we're referring to different time periods with different quality aims: In the early days of 3D and low-res CRT screens when we had 256x256 textures, detail textures were used to make surfaces appear as if they have 1024x1024 textures... today in the age of 1080p monitors such texture can appear blurry from up close, we want to make 1024x1024 textures appear of 4096x4096 quality. Back then the goal was to get at least a little bit of perceived sharpness, today the goal is to see those microscopic details on every surface as if everything is real... while the concept of detail textures is old it scales to cover both aims. As you correctly pointed out, the ideal solution would be upgrading the actual textures themselves. Sadly there are two big problems with this that will likely never be possible to overcome: Someone must create or find identical textures to replace existing ones, which have to retroactively fit every old FM. That would be a huge effort for so many images, and will not look exactly the same way so people would complain how "this wall used to be made of small red bricks which are now larger and yellower which isn't what I intended and no longer line up". An advanced upscaling filter may be able to bump the resolution with good results, this would be a lot less effort and retain the exact appearance of textures. The even greater issue is storage and memory use would go through the roof. Imagine all our textures (from surfaces to entity skins) being 4096x4096 which would be the aim for decent quality today: TDM could take over 100 GB of drive space, you'd need at least 16 GB of RAM to run it, and the loading time of a FM will be 5 minutes. Detail textures are a magic solution for both problems: They're overlayed in realtime on top of the standard textures without changing their base appearance. This means you see pixels several times the scale of the image without requiring any image to actually be at that resolution, no vRAM or loading time increase. And if detail layers are disabled with distance you also don't lose FPS in per-pixels calculations when distant lights update.
  4. Who I am is of little importance, what matters is the job I am offering. Though the item in question may be simple, I can assure you that the reward is anything but. The task, to those brave enough to follow through, is this: During the peak of Braeden's Harvest Festival, break into Lord Alister Squashbottom's manor and steal that which is most valuable to him: his prize-winning pumpkin. This is the very pumpkin he intends on submitting to the judges of this year's competition, and you are to ensure he has no choice but to resign in failure. It may be dangerous, to which you will be amply compensated, but I have little doubt you will be able to weather all obstacles and keep your eye on the prize to complete this task. For those brave enough to accept the job, start here. Cordially, E. Siltstone Gameplay Notes TDM version 2.12 is required to play this mission. Mines are pickable; simply approach them with lockpicks equipped to frob-disarm. A moss arrow can be shot at glass to make it break more quietly. I recommend playing all three difficulties, as they are very different. This FM may be more hardware intensive than normal. LOD settings can be set below "Normal" to improve performance on low-end machines. Download Version 1.0 - This FM is available here via Google Drive, and will soon be made available via the in-game mission downloader. Promotional Screenshots ThiefGuild Release Page Credits A huge thanks to my beta testers Goldwell, WellingtonCrab, Kingsal, Baal, and Rezar for all of your fantastic feedback Voice Credits - Goldwell! Asset Credits Kingsal Wellingtoncrab Goldwell Sotha Bikerdude Refle3cks Arcturus +++And thank YOU for playing!+++
  5. I wasn't aware that you changed the whistle so I am probably using an old version which I like pretty much. I just renamed the internals in the vain hope that our mods can be mixed that way, but there are too many other overlapping definitions. P.S.: I looked closer into it and it seems there was only one other overlap which I fixed by renaming, so now the patch and your modpack can be merged with each other ! As you use x_ as prefix your features will override mine though ...
  6. In post https://forums.thedarkmod.com/index.php?/profile/254-orbweaver/&status=3994&type=status @nbohr1more found out what the Fixup Map functionality is for. But what does it actually do? Does it search for def references (to core?) that don't excist anymore and then link them to defs with the same name elswhere? Also I would recommend to change the name into something better understood what it is for. Fixup map could mean anything. And it should be documented in the wiki.
  7. In Prey 2017, I've reached the Arboretum but noticed somewhere along the journey through GUTS I now got permanent wobbly legs which is annoying. Keep shaking about every few seconds. Why? And can it be fixed? Health, Psi, Suit, and Rads okay far as I can tell. Not drank any alcoholic drinks.
  8. DarkRadiant 3.9.0 is ready for download. What's new: Feature: Add "Show definition" button for the "inherit" spawnarg Improvement: Preserve patch tesselation fixed subdivisions when creating caps Improvement: Add Filters for Location Entities and Player Start Improvement: Support saving entity key/value pairs containing double quotes Improvement: Allow a way to easily see all properties of attached entities Fixed: "Show definition" doesn't work for inherited properties Fixed: Incorrect mouse movement in 3D / 2D views on Plasma Wayland Fixed: Objective Description flumoxed by double-quotes Fixed: Spinboxes in Background Image panel don't work correctly Fixed: Skins defined on modelDefs are ignored Fixed: Crash on activating lighting mode in the Model Chooser Fixed: Can't undo deletion of atdm_conversation_info entity via conversation editor Fixed: 2D views revert to original ortho layout each time running DR. Fixed: WX assertion failure when docking windows on top of the Properties panel on Linux Fixed: Empty rotation when cloning an entity using editor_rotatable and an angle key Fixed: Three-way merge produces duplicate primitives when a func_static is moved Fixed: Renderer crash during three-way map merge Internal: Replace libxml2 with pugixml Internal: Update wxWidgets to 3.2.4 Windows and Mac Downloads are available on Github: https://github.com/codereader/DarkRadiant/releases/tag/3.9.0 and of course linked from the website https://www.darkradiant.net Thanks to all the awesome people who keep creating Fan Missions! Please report any bugs or feature requests here in these forums, following these guidelines: Bugs (including steps for reproduction) can go directly on the tracker. When unsure about a bug/issue, feel free to ask. If you run into a crash, please record a crashdump: Crashdump Instructions Feature requests should be suggested (and possibly discussed) here in these forums before they may be added to the tracker. The list of changes can be found on the our bugtracker changelog. Keep on mapping!
  9. Hello! Tracking down information on software and plug-ins that work with D3 / TDM can be a tough. So I have created a thread here where people can post what software/ plug-ins/ tutorials or other references they've had success or failure with in TDM. 3DS MAX 2013 64bit .ase - Default .ASE model exporter works. However you have to open the .ase file in text edit and manual change the *BITMAP line on each material to read something like: "//base/textures/common/collision" which allows the engine to read the correct material path. md5.mesh / animation - Beserker's md5 exporter/importers for 3dsmax. http://www.katsbits.com/tools, Importing and exporting works. The model must be textured, UV'd, with a skin modifier attached to the bones to export. PM me (Kingsal) for help with this. Imported models using the script will not be weighted appropriately, so this is not recommended if you are simply trying to edit existing tdm content. (Use blender instead) MAYA 2011 32bit md5.mesh - So far I've not had any luck with Maya 2011. I am using Greebo's MayaImportx86 for Maya 2011. I've got the importer working however I get a "Unexpected Internal Failure(kFailure)" and the import fails. This could be due to something finicky in Maya that I am not doing correctly. Will keep trying.. Blender 2.7 about - Blender is commonly used and pretty well supported on the forums/ wiki. Various versions may work as well - https://www.blender.org/download/ md5.mesh / animation Blender MD5 importer/exporter (io_scene_md5.zip): https://sourceforge.net/projects/blenderbitsbobs/files/ Sotha's guide Blender Male/ Female rigs by Arcturus - Here Edit by Dragofer: more links found in this post.
  10. The script might not be too far off what I was thinking anyways, because one of the reasons I wanted to be able to do it in DR is because you could then have a test script like 'Check for missing EFX on info_location entities'. So maybe we can just have a script called 'generate EFX file' or something like @datiswous is suggesting. The problem is that if feels a bit like a halfway house instead of a proper implementation. Also I think we all could probably agree the EFX file will never go away in case people want to do more than just presets, so we would have to support both the info_location method and the file method. Just thinking out loud here, and good discussion
  11. This should definitely be possible. The python scripting API has functions to loop through entities and read their spawnargs, and then you could use standard python file functions to write the EFX file. It would be cool to have a proper EFX editor in DR, but writing a script would be a lot less work. @Frost_Salamander if you decide to write a script like this I'd be happy to help you out if you get stuck. You can check out count_loot.py for a minimal example of looping through entities.
  12. Maybe it's possible to make a script that extracts all the info_locations from the map file and creates an efx file from that in the correct format (run again to update). Then you can simply fill it in. Possibly you could also edit in DR the efx-data as a fake spawnarg for that info_location entity and make the script write that to the efx file. This might also be possible via a script/plugin inside DR.
  13. 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; } }
  14. aye the rtx 3060 was another weird one, it only has a 128 bit bus which is to low to effectively handle 12 gb so it did not really help with the extra vram in higher resolutions. sadly they decided to continue with the same eh "mistake" with the rtx 4060 16 gb model . id call that deception to make users pay more for a card which is not even rated for 4K... sadly. the 16 gb 3070 model was scrapped by nvidia because it would be a contender for the much higher priced 3080 non ti i guess as it has a 256 bit bus and hence would be a capable 4k card. the 3060 ti 8 gb was a much better card sadly. https://www.techradar.com/reviews/evga-geforce-rtx-3060-black-xc
  15. This post differentiates between "gratis" ("at no monetary cost") and "libre" ("with little or no restriction") per https://en.wikipedia.org/wiki/Gratis_versus_libre * A libre version of TDM could: ** Qualify TDM for an article on the LibreGameWiki *** TDM is currently listed as rejected https://libregamewiki.org/Libregamewiki:Rejected_games_list because "Media is non-commercial (under CC-BY-NC-SA 3.0). The engine is free though (modified Doom 3) (2013-10-19)" ** Qualify for software repositories like Debian *** TDM is currently listed as unsuitable https://wiki.debian.org/Games/Unsuitable#The_Dark_Mod because 1) "The gamedata is very large (2.3 GB)", and 2) "The license of the gamedata (otherwise it must go into non-free with the engine into contrib)" and links to https://svn.thedarkmod.com/publicsvn/darkmod_src/trunk/LICENSE.txt Questions: 1) tdm_installer.linux64 is 4.2 MB (unzipped), which is far from the 2.3 GB which is said to be too large. Yes, the user can use it to download data that is non-libre, but so can any web browser too. If the installer itself is completely libre, does anyone know the reason why it cannot be accepted into the Debian repository? 2) If adding the installer to the repository is not a viable solution, would it be possible to package the engine with a small and beginner friendly mission built only from libre media/gamedata into a "TDM-libre" release, and add user friendly functionality to download the 2.3 GB media/gamedata using "TDM-libre" (similar to mission downloading)? 3) Would such a "TDM-libre" release be acceptable for the Debian repository? 4) Would such a "TDM-libre" release be acceptable for LibreGameWiki? 5) Would the work be worth it? * Pros: Exposure in channels covering libre software (e.g. the LibreGameWiki). Distribution in channels allowing only libre software (e.g. the Debian repository). * Cons: The work required for the modifictions and release of "TDM-libre". Possible maintenance of "TDM-libre". I'm thinking that the wider reach may attract more volunteers to work on TDM, which may eventually make up for this work and hopefully be net positive. 6) Are there any TDM missions that are libre already today? If not, would anyone be willing to work on one to fulfill this? I'll contribute in any way I can. 7) I found the following related topics on the forum: * https://forums.thedarkmod.com/index.php?/topic/16226-graphical-installers-for-tdm/ (installing only the updater) * https://forums.thedarkmod.com/index.php?/topic/16640-problems-i-had-with-tdm-installation-on-linux-w-solutions/ (problems with installation on Linux) * https://forums.thedarkmod.com/index.php?/topic/17743-building-tdm-on-debian-8-steamos-tdm-203/ (Building TDM on Debian 8 / SteamOS) * https://forums.thedarkmod.com/index.php?/topic/18592-debian-packaging/ (Dark Radiant) ... but if there are other related previous discussions, I'd appreciate any links to them. Any thoughts or comments?
  16. +++ Announcing the Heart of Lone Salvation +++ Enjoy your extended weekend with this monster easter egg! Heart is a full-size Dark Mod FM, the third in the Thief's Den series in which you play Farrell. Story: Not heard from Sam since I turned down the Edridge job as too risky. Now I'm low on funds and have no choice. A gem called the Heart of Lone Salvation which they say brings good luck - but only once. Sounds foolish but who cares? Worth a fortune on the thieves' market if I can get inside Edridge Hall - and Lord Edridge is very wealthy. Sam knew him from the old days as a common lifter who made good when he found the Heart. It's a beautiful night - dank, cold; fog's rolling in; maybe Edridge's luck is about to run out. Must read: The Heart must NOT be destroyed until you have finished all your other objectives. If you have then sorry, it may be that you will have to noclip to finish the mission. Nobody, including myself, ever did it that way before. I'll have to find a solution and do an update in the future. SIZE: ALLOW 5 TO 6 HOURS PLAY FIRST TIME AROUNDPERFORMANCE: Players with low end machines should play this with low settings on Hard-LoPC [difficulty level] with fewer guards. You won't miss anything. I've played it on a 2GB machine with an old Geforce FX5900 card. Lag in some areas but tolerable.SECRETS: There are many 'secrets' in this FM. If you don't like secrets, [then to] turn off 'Found Secret' messages, create/add to autoexec.cfg in doom3/base a line:seta mvr_show_secrets 0In-Game FOG: Game characters may see through fog better than you. Take extra care.Player tools Slow Match: You have a slow match (smouldering splint) and a spare [match] important to this mission so don't lose them. Practice on any candle or torch that is not lit or just as a convenient light in a dark area. Ghosters can use it to relight extinguished flames. Use the drop control to put the match in your hands and move the match so the glowing end is close to the wick, etc. Press the 'Use' control to put the match back in your inventory bag.BODIES: You need space to shoulder a body as well as drop one so you may need to drag into an open area before trying to shoulder again with the 'use' control.NEW OBJECTIVES: New objectives go to the top of the list to make them easier to find. Sometimes more than one at once.BRIEFING: Do not use Esc during the briefing or the cursor becomes invisible. (You can still select blind though looking for highlights.) You can skip the briefing with the left mouse button. If you miss anything you can use the back button to show it again.Info: This mission was optimized and updated to version 2 by Bikerdude, a klot of bugs were quashed and performance improved through out the mission.
  17. A new "trick" to cover up a security camera using moss arrow and broadhead arrow : This is a huge leap forward from previous old tricks : - using rope arrow and pickable book bug: - the other random bug: But carrying all of these things throughout the mission will weigh down your time....
  18. There was an idea to add two features to GUI scripts (6164). The first one is runScript command, which allows GUI script to call a function from game script. Interestingly, this feature is already supported in the GUI engine, but the game code only processes this command when the player clicks left mouse button on the GUI (i.e. usually it works in onAction handler, but not in namedEvent or onTime handlers). Obviously, ID initially did not envision runScript as a global feature which works the same way everywhere, their idea was that it is context-sensitive, and whoever calls the GUI code can then pull the commands generated by the call and do whatever he wants with them. I'm not sure I really want to change this architecture... Anyway: what are the possible use cases for runScript command? The second feature is namedEvent command, which simply generates/calls a named event with specified name on the whole UI, which can be then handled by matching onNamedEvent handlers. However, this command can be implemented in several ways: Whenever namedEvent command is executed, the named event is processed immediately. The rest of the script (after namedEvent command) is continued only after generated named event is fully processed. Whenever namedEvent command is executed, named event is put into some kind of queue, then the current script continues to execute. The generated named event is executed at some moment later, but surely on the current frame. The point 2 can be further differentiated on the exact order when generated named events are processed. So the first approach is how functions normally behave in normal imperative languages, with a real call stack. The second approach is delayed execution, like what we currently do with "resetTime X; -> X::onTime 0 {...}" combo (at least everywhere in the main menu GUI). My worry with the first approach is that it is an major change for GUI engine with no past experience, and it will probably not match well with the long-established GUI wierdness (I mean e.g. the wierdness that all expressions in GUI script are executed before the script commands start executing). And it would work different both from the "resetTime + onTime 0" combo. On the other hand, the callGui in game scripts do execute named event immediately. And I must admit nested GUI calls could be used to reduce the issues from the GUI weirdness mentioned above. Also, this command exists in Quake 4, but I'm not sure how exactly it works. And it's probably good idea to make TDM work the same way.
  19. I would like to recommend adding "Warning: Skin names cannot start with numbers, as it will cause models to appear black in-game."
  20. I made a small update including the fixed fonts by Geep and also brought Snatcher's Whistle back, because a) I noticed that hitting something with blackjack or sword has not the same effect and b) the name now doesn't look bad anymore because of the font fix .
  21. Hello. There's one suggestion I wanted to make in regard to potential new entities and assets. I noticed there are now rat and horse NPC's, which can be placed on maps and offer a nice touch. Since the action usually takes place in towns, and players can break into people's houses or encounter civilians, I was wondering if cats and dogs could ever be expected. I think they'd add some nice extra detail to towns, and could even have a few roles in regard to gameplay. I was thinking of something among these lines: Cats: Can run about as fast as rats, and have the ability to somewhat block the player (slightly impede movement). Additionally, they can jump and may bump into objects... causing a noise that can alert guards, just like the player throwing objects at walls does. Obviously it should be a very small alert... we wouldn't want an entire army / gang running around the place because a cat bumped into a vase Dogs: Slower than cats and rats but still faster than players, blocks movement like a human NPC. I believe there should be two categories: Dogs that attack, and dogs that only bark (potentially attacking if attacked first). An enemy dog that barks can make a lot of noise, and alert guards from afar to your location.
  22. So path_follow_actor actually DOES work if you want it to follow the player. You just need to target the player entity dynamically in game. It doesn't work if you target the player_start entity. I can't remember if that's what people were doing (or even if that's what I was doing), but that won't work because the player_start entity and the player entity aren't the same thing. You can use a atdm:target_changetarget entity to do this, or a script: $path_follow_actor_1.addTarget($player1); Both can just be triggered by another path node, a atdm:target_callscriptfunction, whatever. Also you need to add the player target to the path_follow_actor node BEFORE the AI gets to it. If the target gets added after the AI reaches that node, it won't work. Video where the AI hits a node that triggers a atdm:target_changetarget entity: https://drive.proton.me/urls/A3DJW5EYFM#0WgYnCVOU6nv test map attached as well. EDIT: I have no idea why just manually setting 'target' 'player1' on the path_follow_actor node in DR doesn't work. I'll try to look into this. UPDATE: It appears the the player1 entity simply isn't there during initialization when the path_follow_actor's targets are evaluated. As a result, the 'actor' is null and the node does nothing. I didn't mention it before, but when I used the script method I just stuck in the map script's main function like so, and this works too: void main() { sys.waitFrame(); $path_follow_actor_1.addTarget($player1); } UPDATE 2: Wiki updated: https://wiki.thedarkmod.com/index.php?title=Path_Nodes#path_follow_actor path.map
  23. There are very few things that would drive a man of the streets like myself to the high seas. Before I even thought there were none at all. Yet when one of the nobles whom I had paid a visit to decided to make it his personal objective to end me, promising a mound of gold to the first cutthroat who brings him my head, it became clear no one could be trusted anymore. It was time for change. The most recent version (v2, June 2023) is available from the ingame downloader. Special thanks to: *Betatesters Oldjim, Bikerdude, Airship Ballet, Goldwell, Nbohr1more, JackFarmer, joebarnin, The Black Arrow, datiswous and Acolytesix - for their truly diligent efforts in getting this mission polished in all aspects *The DarkRadiant wiki, which is excellent and covers as good as everything *Bikerdude - for allowing me to repurpose his architecture models to improve the ending of the mission *Grayman - for allowing me to repurpose a mission of his for my briefing *Sotha - for his excellent briefing Format Update v2.0 (18/June/2023) Update v1.5 (02/March/2015)
  24. Yes. Sure, I will change it, but I do mind. In addition to changing the forum title, I have also had the name of the pk4 changed in the mission downloader and the thiefguild.com site’s named changed. It's not just some "joke". The forum post and thread are intended to be a natural extension of the mission’s story, a concept that is already SUPER derivative of almost any haunted media story or most vaguely creepy things written on the internet in the past 10 or 15 years. Given your familiarity with myhouse.wad, you also can clearly engage with something like that on some conceptual level. Just not here on our forums? We can host several unhinged racist tirades in the off-topic section but can’t handle creepypasta without including an advisory the monsters aren’t actually under the bed? (Are they though?) I am also trying to keep an open mind, but I am not really feeling your implication that using a missing person as a framing of a work of fiction is somehow disrespectful to people who are actually gone. I have no idea as even a mediocre creative person what to say to that or why I need to be responsible for making sure nobody potentially believes some creative work I am involved in, or how that is even achievable in the first place. Anyway, apologies for the bummer. That part wasn’t intentional. I am still here. I will also clarify that while I love the game, I never got the biggest house in animal crossing either. In the end Tom Nook took even my last shiny coin.
×
×
  • Create New...