Jump to content
The Dark Mod Forums

Search the Community

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

  • 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. edit: TL;DR: I've tweaked the .lwo exporter to preserve autosmooth angle Ahem. When I started writing this post a couple of days ago, it was supposed to be a "please help me, models won't smooth" kind of thing, but as I started taking screenshots and such for a comprehensive view of the problem, the question morphed into a "is there a hack to get .lwo's to export the way .ase's do", then to "how to get the same surface smoothing from Blender as you can get from Lightwave" and eventually to "does anyone around know python and blender enough to fix the export plugin". But then I fixed the addon myself, so it was almost as if there's no point to the thread. However, while googling around for a solution I stumbled upon a whole bunch of incomplete (1,2) or outright wrong (1,2) information, and whenever the question came up the issue was never really resolved completely. That might be because the problem isn't obvious, since a lot of exported models will actually end up correctly smoothed on export, leading one to believe wrong shading in rare cases is due to modeling mistakes / bad shadowmesh / etc. Point is, having the definitive .lwo smoothing post seems useful. Identifying the problem: Here's the mesh. I add an 'edge split' modifier (I use sharp edges while modeling the low poly, so I can uncheck the 'edge angle' option). I can now apply the modifier(s) and export to .ase (triple the mesh either in export options or in modifiers beforehand). The .ase looks alright in-game: Now I'll export it to .lwo using this script. Depending on export options, here are the results: If I also check "remove doubles", I'll lose all of the split (sharp) edges: (recalculating normals on export can be unpredictable as well, so clean up the model beforehand instead) Right about this point I start searching for a solution online, stumble upon this and try the renderbump hack. However, all it seems to do is weld all of the vertices back together at runtime and attempt to smooth the whole surface, similarly to "remove duplicates", but with no upper threshold. (to anyone possibly reading this in the future: don't forget to revert your changes to the materials!) Source of the problem: At this point I still wasn't sure if it's even possible to get .lwo's identical to .ase's, so I installed Lightwave. Naturally, it took some time to eventually stumble upon Surface Editor (F5), and the "smoothing threshold" contained therein. But then I just had to crank it up to 180 and export to "LWO2". That fixes everything in-game: So the issue is trivial, I just have to find a way to somehow pass on a smoothing angle through the exporter. However, the "auto smooth" option on the object data tab doesn't seem to affect anything regardless of angle. Long story short, after some hex-comparison magic, I home in on SMAN block in the exporter script: So what it actually does is set your smoothing angle to either 90°, 86°(??), or 0°, depending on whether you've chosen "idtech compatible", "smoothed", or neither. The solution: Now, I don't know Python and I don't know Blender scripting, so I can't say with full certainty that I didn't break anything. But I did cobble together a version of the script that seems to do the job. Here it is, mirror / do whatever you want with it. If your mesh has autosmooth enabled, and you've checked "idtech" or "smoothed" on export, your chosen autosmooth angle will now transfer to the surface in .lwo: I took the liberty of changing the default export options to what seems to suit TDM the best, you can just open the script in notepad and edit them to your taste. Wrapping up, there are still some mysteries I didn't solve, such as "idtech compatible" models taking up only half the size of models exported otherwise (including from Lightwave itself), there doesn't seem to be any visible difference in-game, at least in TDM. That "1.5 radian" in the code still makes me scratch my head. And I still don't know if the 4-8x size savings over .ase matter for in-game memory at all (but at least I know I won't have to edit the *BITMAPs manually anymore). Even after all this, the .ase still has just slightly better shading, but since the outputs of the exporter and Lightwave itself are now identical, seems safe to say it's as good as it gets.
  2. That is my recollection too. The i18n system was basically Tels' personal pet project (hence the Perl script which is unmaintained because nobody in the world except Tels and Larry Wall have any interest in writing code in Perl). Because of the various implementation problems and general user-unfriendliness, Greebo didn't approve of merging it into the main mod, so it became a sort of optional extra that individual mappers could use by accessing various resources on Tels' personal server.
  3. BTW, the Perl script I18N.pl expects only an integer value after "#str_". Could be modified (or deprecated).
  4. The Adventures of Thomas: Lucy's Quest Author: gg 2022-06-20 Version: 1.1 Required TDM Version: 2.10 or higher EFX: Yes ============================================================== Cautionary note: This FM needs a strong CPU/GPU combination sufficient to play the more demanding TDM FMs. Just as for many or most of the new FMs being released with the new gfx possibilities opened up it does a world of good to tweak the advanced video settings for the best combination of settings for your PC. For example, on my weaker laptop I set shadows as stencil and soft shadows off. On my desktop I set shadows as maps and soft shadows medium. Bloom off. Ambient occlusion off. Since the FM was built and extensively tested at these settings I believe either should produce a satisfactory experience. ============================================================== Sound Credits: freemusicarchive.org music Aislinn04_-_Aislinn_-_Lovely_Maria freesound.org klankbeeld_horror_1 freesound.org/people/CarlosCarty/sounds/522687/ om_aum_mantra_male_chant_bb freesound.org/people/Still%20Frames/sounds/37720/ still_frames freemusicarchive.org music The_Mind_Orchestra_Bruwynn tecknic.bandcamp.com/album/the-dark-mod-ambience-and-atmospheres Zack Bower Ancient_2, _3, _5. Solemn_1 freesound.org/people/Jagadamba/sounds/256006/ group_chanting_om_aum ============================================================== Thanks to: The TDM/DR developers for producing such a beautiful machine. The keepers of the wiki pages which are looking very good these days. Sotha for his invaluable tutorial "The Bakery Job". This tutorial is a jewel. Springheel for creating an atmosphere. Bikerdude for... ideas how to do things and scale things. Playtesters and advisors Dragofer, wesp5, datiswous, shadow. datiswous pointed out some immersion breaking lighting faults, so I got the idea. wesp5 gave me some good advice on how to tell the story - so it's more understandable. Dragofer gave me some early advice on optimizing the mission, which gave me a couple of months work with results that are well worth it. Dragofer wrote a script which optimizes CPU calculations of AI interactions. Shadow helped by testing the script, as well as testing other attempts at optimization. With the script in action only the minimal of AI interactions in the player's vicinity are called to be calculated. The script provides a general benefit but the results vary from computer to computer. The script targets a CPU task. ============================================================== Gameplay: Notes attached to objectives contain essential information on gameplay, on who the good/bad guys are, on what the player must do, and why. Mandatory objectives are linear, directing the player along a route to the goal. Optional objectives can be completed anytime. ============================================================== CAUTION: spiders, rats, undead, necrophiles, cannibals, psychotic thugs, and some generally unsavory characters. No snakes, though. The spiders ate them. ==============================================================
  5. I wanted to internationalise The Hare in the Snare before I released it but I couldn't get the scripts to work and had some other questions as well. I posted about it Newbie Dark Radiant Questions and nobody replied, so I gave up. It being my first FM I didn't feel confident digging into it and just wanted to release the FM. I just got the impression that it wasn't a big deal and nobody cared about it. From memory, the script worked once but I needed to re-run it and just couldn't get it to work. It's also Perl which nobody really uses anymore. I think I recommended to a 'I want to help' person to convert it to Python, but that didn't go anywhere. I don't think you need the script though if you internationalise from the very beginning (i.e. create your own dictionaries). At the end of the day it's extra work for the mapper and if it adds too much overhead (i.e. is broken or is a PITA) then nobody is going to use it. https://wiki.thedarkmod.com/index.php?title=Internationalization
  6. Taffers, Time ago @Obsttorte and I worked on an AutoHotKey script that allows to control the player speed with the mouse wheel. In a further attempt to reduce the amount of critical keys this game demands I also created back then a script that allows the Left Alt Key to act as a lean modifier: Left Alt + W = Lean forward Left Alt + A = Lean left Left Alt + D = Lean right I never got around publishing the script because it isn't as good as it needs to be but I think we can debate regardless whether such a Lean Modifier Key would be welcomed in the core game or not. The most interesting aspect in my opinion is that we can claim back important keys such as Q and E and use them for other purposes. ---------------------------------------------------------------------- Here below is the script in case anyone wants to give it a try (you must be familiar with AutoHotKey). The required key bindings for the script to work are: Move forward [W], Strafe Left [A], Strafe Right [D] Lean Forward [Numpad8], Lean Left [Numpad4], Lean Right [Numpad6] You can of course change the script to your liking.... #IfWinActive ahk_exe TheDarkModx64.exe ; run only when TDM is in focus <!w:: while (GetKeyState("LAlt", "P") && GetKeyState("w", "P")) { Send {Blind}{Numpad8 down} } Send {Numpad8 up} return <!a:: while (GetKeyState("LAlt", "P") && GetKeyState("a", "P")) { Send {Blind}{Numpad4 down} } Send {Numpad4 up} return <!d:: while (GetKeyState("LAlt", "P") && GetKeyState("d", "P")) { Send {Blind}{Numpad6 down} } Send {Numpad6 up} return Cheers!
  7. That is one reason. That is 2 more reasons. You'd like a script that, if you had to run it again, would "do the right thing". Unfortunately, that right thing is very hard to program, and needs IMHO to be both bidirectional and with a better method of string version control, to support both the FM author's updates and potentially multiple translators. Yes, another reason. Currently, it is my understanding that updating an FM (from the non-converted copy) and running the conversion script again causes mis-alignment of newly-generated #str values and previous .lang #str values. Another important cause of "nobody is making these language packs" is that Dark Radiant at best tolerates converted FMs. It offers no special translation support, as expressed in this code comment: "...we don't have any support for parsing the mod-specific translation data...." [from DR's DifficultySettingsManager.cpp]. That's where we are now. So officially give up on FM Western translations? Or improve the #str system to make it work for everyone? Or invent a new system? A new system. What would that look like to the FM author? To a non-author translator
  8. Nameless Objects Mod v1.0 Description: this mod adds names to almost all core objects players can grab and hold in their hands. ------------------------------------------------------------------- How to use: As of this moment the Mod only works if you have "Core Essentials", which is included in TDM Modpack v4.0. Make sure to have "Core Essentials" and then download the *.pk4 attached to this post and place it in your TDM folder. I try my best to provide stuff people can experience first hand to form an opinion. I suggest you try "Business as Usual" by Bikerdude since this mission includes quite a few items you can grab right at the beginning. ------------------------------------------------------------------- Technical: The mod consists in a couple of def files and a script. I had to include two defs because otherwise there can be issues related with inheritance. The script does most of the work and it will run in the background as soon as a mission starts. The script runs once but it takes its time (10 to 30 seconds) not to hinder performance. All this is transparent to you. ------------------------------------------------------------------ Future: I wouldn't like this to remain as a mod and I volunteer to add names to all core defs for 2.13. I would, of course, use the translation system so that names can be translated in the future to languages other than English. I can name all core defs in a couple of rainy mornings but the Development Team must guarantee this work won't go to waste. The idea is that we name all core objects today and we let it stay: nothing changes in the source code and nothing gets displayed on screen. We get stuff done in the background and someday perhaps, all or part of it sees the light in some form. ------------------------------------------------------------------ There are quite a few things that must be discussed and agreed before we get started but the first step is: yes or no. People that might be interested in supporting and helping with this initiative: @datiswous, @Geep. Cheers! z_nameless_objects_mod_v1.0.pk4
  9. 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; } }
  10. I don't understand this. When I download a mission, I can still download and update the translation files for it using the build-in mission downloader. Also, the language packs are downloadable for the missions that have them. Nobody is making these language packs though. Not sure why. I heard the translation conversion script is hard to use. I only know 2 languages and there's no need for language packs in one of those (Dutch).
  11. 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/
  12. Since due to the nature of this forum, file/image sharing is used quite frequently, I thought to present some alternatives to the widely used Gdrive, which I don't like so much, especially since the last TOS change. File Sharing To share large files there are several options that also do not require registration. The first is File Hosting Online, which supports files up to 25 Gb, encrypted and also includes a Virus Scan that ensures safe use Another good option is Gofile, free to use, privacy focused and unlimited Bandwith. No refistry needed. While the files are accesed or downloaded at least one time a week, they are never deleted, otherwise inactive files are deleted after 10 days. If you prefer to use P2P, that means to share files directly from PC to other, without a hoster in the middle, there are also very good options, which permits to share files and folders without limites of type and size. The most easy to use is O&O File Direct, a small Desktop app (sadly only Windows), very easy to use 1 Open the app and drag the files/folders you like to share in its window 2 Optional adjust the days and amount of permited downloads and if you want a password 3 Share the link which apears in the app Done The only limits are, that the receptor only can download your files, when your PC is online, on the other hand this permits that you can stop the download in any moment, going offline or shutting down the PC. The other limit is, that the files to share can't be in a protected folder. Her are an Example with a list of Search Enines (Html file 423,56 Kb). While I am online, you can download it https://file.direct/f/pmjVFnjfkjFTKTt5 Videos One of the best options is Streamable (need a free account, inactive videos are deleted after 90 days in the free version) Alternatively you can use Streamja, a simple Video sharer with good privacy, free account optional (nick, mail) Images Ok, there are a lot of Image sharer, most used the known Imgur, because of this I add only one which offers some advantages over Imgur. ImgBox (free account) is a reliable platform to share and host images like Imgur, but it make it very easy to upload and post dozend of images simultaneous, selecting all the images you want and drag them on the window, offering coresponding bulk codes from the selected images to post them with one click for forums (BBcode), Html and others, fullsize or thumbnails. More since Imgur used since some time the hated webm formats for gif images, hardly accepted in most forums.
  13. For the people eager to play with the latest state of development, two things are provided: regular dev builds source code SVN repository Development builds are created once per a few weeks from the current trunk. They can be obtained via tdm_installer. Just run the installer, check "Get Custom Version" on the first page, then select proper version in "dev" folder on the second page. Name of any dev version looks like devXXXXX-YYYY, where XXXXX and YYYY are SVN revision numbers from which the build was created. The topmost version in the list is usually the most recent one. Note: unless otherwise specified, savegames are incompatible between any two versions of TDM! Programmers can obtain source code from SVN repository. Trunk can be checked out from here: https://svn.thedarkmod.com/publicsvn/darkmod_src/trunk/ SVN root is: https://svn.thedarkmod.com/publicsvn/darkmod_src Build instructions are provided inside repository. Note that while you can build executable from the SVN repository, TDM installation of compatible version is required to run it. Official TDM releases are compatible with source code archives provided on the website, and also with corresponding release tags in SVN. A dev build is compatible with SVN trunk of revision YYYY, where YYYY is the second number in its version (as described above). If you only want to experiment with the latest trunk, using the latest dev build gives you the maximum chance of success. P.S. Needless to say, all of this comes with no support. Although we would be glad if you catch and report bugs before the next beta phase starts
  14. 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.
  15. Lord Edgars Bathhouse By Goldwell Credits Briefing video - Crowind Briefing script revision - Moonbo Beta testers - 161803398874989, AluminumHaste, Bikerdude Splash screen - Dominus (created), MalachiAD (edited) Special thanks to Bikerdude for creating the weapon shop & blinging up the outside starting city area Voice Actors: Bikerdude, Goldwell Sound effects from Freesound.org: Headphaze (234516), unfa (157133), JimiMod (252762) sonsdebarcelona (71149), simplen00b (182331) Erokia (183881), kyles (51806), Dpoggioli (213605) rdneubauer (93783), ninebilly (173014), crcavol (154655) sangtao (189664), stereodivo (101847) Other sfx/music credits Bluedark - Invisible Figures Michael J Schumacher - E Flat Drone Speedenza - Big space drone 3 Blue Sizzle" Kevin MacLeod (incompetech.com) Licensed under Creative Commons: By Attribution 3.0 http://creativecommons.org/licenses/by/3.0/ Available via the in-game downloader Filesize: 67.73 MB
  16. I detect two use cases where the script is limited: Trying to blackjack AI on the move (players may want to lean forward) Trying to pickpocket AI on the move (players may want to lean forward) The proper implementation of a Lean Modifier Key should be: If the player is moving and the Lean Modifier Key is pressed, the player leans while moving. If the player is not moving and the Lean Modifier Key is pressed, the player simply leans.
  17. Thought it would be a good idea to collate a useful list for new and old mappers alike and this post will update as we go. Abandoned works: Any WIP projects that were abandoned by the original author - http://forums.thedarkmod.com/topic/12713-abandoned-works/ Darkradiant & Darkmod shortcut settings: Some example settings for new mappers - http://forums.thedarkmod.com/topic/15152-darkradiant-and-darkmod-shortcut-folder-settings/ Darkradiant howto, must knows, tips and faqs - http://forums.thedarkmod.com/topic/12558-usefull-important-editing-links/?do=findComment&comment=272581 Info for Beginners: Newbie DarkRadiant Questions - http://forums.thedar...iant-questions/ Dark Radient Must Know Basic Intro - http://wiki.thedarkm...now_Basic_Intro Editing Tips for Beginners - http://wiki.thedarkm...s_for_Beginners Editing FAQ (Troubleshooting & How-To) - http://wiki.thedarkmod.com/index.php?title=Editing_FAQ_-_Troubleshooting_%26_How-To Sotha's excellent Mapping Tutorial series: http://forums.thedarkmod.com/topic/18680-lets-map-tdm-with-sotha-the-bakery-job/ Springheel's New Mapper's Workshop: http://forums.thedarkmod.com/topic/18945-tdm-new-mappers-workshop/ Inspiration: Collection of screenshots and images people have found online - http://forums.thedarkmod.com/topic/11610-darkmod-inspiration-thread/ Mapping Resources: List of Voice actors available for voice recording - http://modetwo.net/d...6-voice-actors/ Lengthy collection of city reference pictures - http://modetwo.net/d...rence-pictures/ Collection of texture resource sites - http://modetwo.net/d...ture-resources/ Free Ambient Tracks - http://skeksisnetlabel.wordpress.com/2009/12/30/10-songs-for-free-download-vol-10-full-moon-over-noricum/ Mapping Tools: 3 useful tools for texture creation - http://forums.thedarkmod.com/topic/18581-must-have-tools-for-the-descerning-mapper/ Modular Building: What is Modular building - http://forums.thedarkmod.com/topic/14832-modular-building-techniques/ Working example tutorial on modular building - http://forums.thedarkmod.com/topic/18680-lets-map-tdm-with-sotha-the-bakery-job/ Springheels new modular models - http://forums.thedarkmod.com/topic/18683-using-springheels-205-modules/ Some related mapper recipies - Easy Vaults - http://forums.thedarkmod.com/topic/14859-easy-vault-recipe/?hl=%2Beasy+%2Brecipe Easy Outdoors - http://forums.thedarkmod.com/topic/16159-easy-outdoors-recipe/?hl=%2Beasy+%2Brecipe Easy Caverns - http://forums.thedarkmod.com/topic/14469-quick-caverns-recipe/?hl=recipe Easy Alert Ai - http://forums.thedarkmod.com/topic/17157-easy-alert-ai-recipe/?hl=%2Beasy+%2Brecipe Easy Alert Ai Custom Behavour - http://forums.thedarkmod.com/topic/17160-easy-alert-ai-custom-behavior-recipe/?hl=recipe Tutorials: Collection of video tutorials for DR - http://modetwo.net/d...in-darkradiant/ Using Lighting and detail effectively: - http://forums.thedar...l-and-lighting/ Voice Actors list: List of available voice actors - http://forums.thedarkmod.com/topic/12556-list-of-available-voice-actors/ Usefull Console commands: A list of console commands for testing in-game - http://wiki.thedarkm...Useful_Controls
  18. There's been talk over the years on how we could improve texture quality, often to no avail as it requires new high-resolution replacements that need to be created and will look different and add a strain on system resources. The sharpness post-process filter was supposed to improve that, but even with it you see ugly blurry pixels on any nearby surface. Yet there is a way, a highly efficient technique used by some engines in the 90's notably the first Unreal engine, and as it did wonders then it can still do so today: Detail textures. Base concept: You have a grayscale pattern for various surfaces, such as metal scratches or the waves of polished wood or the stucco of a rough rock, usually only a few highly generic patterns are needed. Each pattern is overlayed on top of corresponding textures several times, every iteration at a smaller... as with model LOD smaller iterations fade with camera distance as to not waste resources, the closer you get the more detail you see. This does wonders in making any texture look much sharper without changing the resolution of the original image, and because the final mixture is unique you don't perceive any repetitiveness! Here's a good resource from UE5 which seems to support them to this day: https://dev.epicgames.com/documentation/en-us/unreal-engine/adding-detail-textures-to-unreal-engine-materials Who else agrees this is something we can use and would greatly improve graphical fidelity? No one's ever going to replace every texture with a higher resolution version in vanilla TDM; Without this technique we'll always be stuck with early 2000's graphics, with it we have a magic way of making it look close to AAA games today! Imagine being able to see all those fine scratches on a guard's helmet as light shines on it, the thousands of little holes on a brick, the waves of wood as you lean into a table... all without even losing much performance nor a considerable increase in the size of game data. It's like the best deal one could hope for! The idTech 4 material system should already have what we need, namely the ability to mix any textures at independent sizes; Unlike the old days when only a diffuse texture was used, the pattern would now need to be applied to both albedo / specular / normal maps, to my knowledge there are shader keywords to combine each. Needless to say it would require editing every single material to specify its detail texture with a base scale and rotation: It would be painful but doable with a text injection script... I made a bash script to add cubemap reflections once, if it were worth it I could try adapting it to inject the base notation for details. A few changes will be needed of course: Details must be controlled by a main menu setting activating this system and specifying the level of detail, materials properties can't be controlled by cvars. Ultimately we may need to overlay them in realtime, rather than permanently modifying every material at load time which may have a bigger performance impact; We want each iteration to fade with distance and only appear a certain length from the camera, the effect will cause per-pixel lighting to have to render more detail per light - surface interaction so we'll need to control the pixel density.
  19. So I was reading the DarkRadiant Script Reference and it gives an example to move the cameraview by setting coordinates: import darkradiant as dr camview = GlobalCameraManager.getActiveView() camview.setCameraOrigin(dr.Vector3(50,0,50)) This works, but then I wanted to use the tdm position coordinates that you can get by doing getviewpos in the console in tdm. But these coordinates don´t give the same position in DR. Why is that? Is there an other way? Edit: WHOOPS it does actually work. (some layers in the testmap were disabled)
  20. 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)

       

  21. In the latest dev17026-10712, GUI debriefing is supported. It works exactly the same way as GUI briefing. It would be great if someone tries it For the nearest future, I'd like to support passing information from game script to GUI debriefing. So that you could show different things in debriefing depending on what player did in the mission.
  22. I'm happy to present my first FM, The Spider and the Finch. There may be a spider, but no ghosts or undead. It should run a couple hours. It's now available on the Missions page or the in-game downloader. Many thanks to the beta testers Acolytesix, Cambridge Spy, datiswous, madtaffer, Shadow, and wesp5 for helping me improve and making the mission to the best of my abilities. This would not be have been possible without Fidcal's excellent DarkRadiant tutorial. Thanks also to the many people who answered my questions in the TDM forums. Cheers! 2023-12-13 Mission updated to version 3. Fixed a bug where the optional loot option objective was not actually optional. Updated the animations for Astrid Added a hallway door so the guards are less likely to be aggroed en masse.
  23. 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!
  24. Flakebridge Monastery In this mission you will visit a Builder outpost to steal some valuable books. It is the first in what I hope will be a series about Selis Woderose. I would like to take the opportunity to thank my beta testers: Aprilsister, Bikerdude, Chiron, lost_soul, and prjames. As well as Fidcal for his starting map, and Melan for his texture pack. Known bugs: A small number may appear at the bottom left corner of your screen when the mission loads. Press sheath weapon to make it disappear. As already mentioned this is the first mission in a series. When you have completed it you may know what you'll be going after in the next mission. You may even know where! Enjoy! And please use spoiler tags where appropriate. A couple of screens: (thanks lowenz) http://2.bp.blogspot...0/shot00001.jpg http://3.bp.blogspot...0/shot00003.jpg
  25. New script for mappers: my flavour of a fog density fading script. To add this to your FM, add the line "thread FogIntensityLoop();" to your map's void main() function (see the example in fogfade.script) and set "fog_fade" "1" on each foglight to enable script control of it. Set "fog_intensity_multiplier" on each info_location entity to change how thick the fog is in that location (practically speaking it's a multiplier for visibility distance). Lastly, "fog_fade_speed" on each foglight determines how quickly it will change its density. The speed scales with the current value of shaderParm3, using shaderParm3 = 1000 as a baseline. So i.e. if shaderParm is currently at 1/10th of 1000, then fade speed will be 1/10th as fast. Differences to Obsttorte's script: https://forums.thedarkmod.com/index.php?/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/&do=findComment&comment=310436 my script uses fog lights you created, rather than creating one for you. Obsttorte's script will delete the foglight if entering a fogfree zone and recreate it later more than one fog light can be controlled (however, no per-fog-light level of control) adding this to the map requires adding a line to your void main() script, rather than adding an info_locations_settings entity with a custom scriptobject spawnarg in my script, mappers set a multiplier of fog visibility distance (shaderParm3), while in Obsttorte's script a "fog_density" spawnarg is used as an alternative to shaderParm3 smaller and less compactly written script fogfade.scriptfogfade.map
×
×
  • Create New...