Jump to content
The Dark Mod Forums

MirceaKitsune

Member
  • Posts

    2252
  • Joined

  • Last visited

  • Days Won

    35

Everything posted by MirceaKitsune

  1. Submitted an issue on the bug tracker as well for this: https://bugs.thedarkmod.com/view.php?id=5445
  2. A very basic one... like Destined said if you write in a window you'll get a basic form of search. I suggested a better alternative recently, so far no response to my idea.
  3. glxinfo doesn't appear to say anything about GL_MAX_SAMPLES, I attached the full output. The issue doesn't occur in Xonotic when I enable 4x AA, over there I can clearly see the filter smoothing the edges when on and the same effect as in TDM when off... this should thus be TDM specific. I attached a cropped jpg exported at 100% quality, should be the same as a png... need to ask the forum admins if they can raise the attachment limit to 1 MB per post, 500 KB is rather limiting. glxinfo.txt
  4. Doesn't seem to. This is with sharpen disabled and 4x AA, settings applied at startup.
  5. Just yesterday I noticed that AA isn't working for me. I don't know if it's specific to the new version, I had issues with it in the past though sometimes it worked. I posted a separate thread to debug this here as it seems like a separate discussion. I do wish other types of AA could be added to the engine, I've seen others engines use stuff like Temporal AA which look pretty nice (blurry but in a tasteful way).
  6. I get the feeling antialiasing does not wish to work for me, even when I use the 4x or 16x option in the main menu. I remember getting the impression that it worked sometimes in the past, but yesterday I looked at the edges of some objects and could clearly see the jagged edges of the geometry. I wonder if this is specific to the Linux version: I have an AMD card and use the free amdgpu driver... there was talk about Mesa having issues handling AA properly depending on how the engine calls it. What do you suggest I check?
  7. In this case it really feels like something vanilla TDM could and would make sense to offer. So just as you have $player1.getHealth(), could we have a $player1.getAir() as well? And in this case a $player1.setAir() too to be able to change it? This is an obvious limitation to be fair, and I'm assuming it would take a few minutes to implement such a hook for mod makers to use. If so maybe it can still hit 2.9, so it wouldn't take until next year to be able to use it? @Dragofer@stgatilov@SpringheelAny thoughts on adding those functions to the player script? Is it something the devs would agree on and still possible to do before 2.9 goes out of Beta? If I have the time and knowledge, I might change the player script myself and post the updated with those functions... maybe I can even add a hook to let mods make the player crouch / jump and other things I needed to use in my mod but was missing functions for.
  8. It might help to see it, sure! Though in this case it really feels like core TDM should make a change to the player script and add functions for accessing the breath: This sounds like a big limitation including for mappers.
  9. Thanks. Luckily no need to reset the config: I played with those color correction settings recently and knew where to find them. That is if it only involves the r_postprocess_ColorCorrect* cvars, I reset those to their new defaults of 0. The menu brightness remains an issue if the brightness setting is turned up; I settled for using r_postprocess_brightness 1.0 + r_postprocess_gamma 1.5 which gives a nice distribution and lets me see properly in dark rooms. By the way, a little thought: I noticed the menu setting for r_bloom_weight only goes up to 0.7. Any reason why it's not a full 1.0? Since it seems to look a bit more significant that way when using lower brightness settings... I was partly tempted to use higher ones just to get more realistic looking glare.
  10. Alright; I started replaying the FM Down by the Riverside last night, restarted it tonight on the new version. Everything seems to be wonderful: The sharpness filter is looking great, I even turned it all the way up to 1 and love the results it offers Shadow maps are also faster than stencil shadows for the first time, I permanently switched over to the shadowmapping option for better results... r_shadowMapSinglePass shows no noticeable issues either. In terms of actual bugs I can't see any. The only thing that even comes close is that midway through the loading screen (when the map first starts) the screen will show pink square corruption for half a second before the normal loading GUI resumes. It might have done this before too but was only a black screen at the time. The one and only change I find questionable is the decision to make menus and HUD items follow the brightness and gamma of the scene. The issue with this is that I have my luminosity and contrast turned up to get proper visuals: This gives me just the right results in the world, however it makes the main menu and objectives page horribly bright. Would it be possible to rethink this in a better way? Here are two screenshots taken with the same brightness settings, one in-game and one from the main menu... you can probably see that the game one looks balanced but the yellow menu background is glowing to almost white! For reference I have r_postprocess_brightness = 1.5 with r_postprocess_gamma = 1.5.
  11. Cheers. A little suggestion then if it's possible: When a geometry change is detected... could there be a mode that automatically pauses the game, runs dmap, then unpauses it on the updated version? Just like running dmap while being connected, but instead of ending up in the main menu everything seamlessly resumes once the map has recompiled. Only thinking of this for completions sake... I can't say I see myself using even the live entity updates so this offers more than enough in terms of helping mappers
  12. I seemingly have the knowledge to do that, unless something more than my experiences with scripting so far is involved. Main problem with that is I'd need to modify a default script, talk with the devs to see if they approve the change, and even if they do wait for the next TDM release (one every 6 - 12 months) so it can be normally used by everyone.
  13. Such great work again! As I want to have the latest version and helping with testing is the least I can do for all your work, I got the installer and am upgrading to the latest beta right now. Will let you know if I find any bugs... for reference I'm testing on Linux (openSUSE Tumbleweed) x64, AMD card running on the free video drivers (amdgpu / Mesa). And as suggested in another post I'm going to enable r_shadowMapSinglePass too and see how much that improves FPS and if without breaking stuff.
  14. Didn't think mapping could be even further improved, yet this feature sounds like a great way to do it. Thank you for another great idea! So if the player modifies the map in DR and saves it, they can automatically alt-tab switch to TDM and see the changes? First issue that pops to mind is how adding or removing areas may cause the player to get stuck inside walls or left floating / falling in the void, unless there's a smart way to know how to reposition them. The rest I'm assuming solutions have been found for... like caching newly added textures in realtime, I know the engine wants every asset to be loaded at map start. Something that would be equally useful, perhaps even more if not as much as this change: Could DarkRadiant offer a button to launch TDM on the map currently being edited? So each time you want to test you don't have to manually open TDM then type the name of the map in the console, just hit one button and it all happens for you.
  15. tdm_events.script seems to contain documentation for the same functions as the Scripting Reference page. I search these periodically, however they don't provide functions or information for a few of the things needed.
  16. Fun fact: I never knew about testmap, always used dmap followed by map separately. This is actually a little easier now that I know about it!
  17. Aha... I see it now: So I would use $player1.heal("air", 1) to make the breath restore more rapidly. But how do I decrease the breath down to a certain amount as well... should I use heal with a negative value, a $player1.damage() event I can call with the right damage def, or perhaps there's a flag I can use to make the player act as if underwater? Also I don't even know how to read the breath of the player... we have $player1.getHealth() but no such thing as a getAir().
  18. Much appreciated. The speaker remains unclear so for now I'm not implementing the sound part... it's no emergency anyway. I took note of the entity finding script, just what I needed for what I hope to do next Using "player self = $player1" will correctly let me access the AI flags; I assumed that $player1 is automatically of type player, but now that I think twice it's indeed a plain entity definition. I can correctly read flags like self.AI_CROUCH now... but when it comes to crouching how can I also set it and tell the player to crouch? I looked in the builtin scripts directory but couldn't find any reference for the word "breath". Wasn't the breath potion a default asset? Search isn't helping me and this time I used a search engine too.
  19. Never thought of using Google to search a forum... also I don't use Google to avoid being spied on, I default to DuckDuckGo. That thread offers exactly the info I needed! So to boost the player speed you use something among the lines of: vector boost = $player1.getMove() * '10 10 1'; $player1.applyImpulse($player1, 0, $player1.getOrigin(), boost); I haven't tested it yet but if it works that should take care of that. Please let me know about finding entities of a given type within a certain radius, still don't know where to start there. The sound isn't urgent for what I'm doing for now. Oh, and another important thing I need: How do I know if the player is crouching?! The script reference has no function related to crouch, though I can probably access that via a player variable. It would also help my plan if I could read and modify the player's breath. Can I at least set a flag that makes the breath system behave as if the player is underwater and suffocating even when they aren't? Update: Found the flags to check the player's movements: $player1.AI_CROUCH, $player1.AI_RUN, $player1.AI_JUMP, $player1.AI_CREEP, $player1.AI_ONGROUND. However if I attempt to use them like that I get unknown value errors! Other parts of the player script use this though, why doesn't it work in my case? Update 2: Also found how to make a custom GUI follow the HUD settings... just use "gui::HUD_Opacity" and "gui::iconSize" in your definition
  20. Running into a few more issues. One is how I'm trying to spawn a speaker (attached to the player) and have it loop a sound... $player1.startSound() doesn't handle looping nor does it allow me to stop the sound once it no longer needs to play, thus I'm using a speaker instead. The entity probably spawns but the sound cannot be heard. I couldn't find any function to set the sound so I just used setKey, however this doesn't seem to be enough. What am I missing please? entity my_sound; my_sound = sys.spawn("speaker"); my_sound.setKey("s_shader", "eerie01_loop"); my_sound.setOrigin($player1.getEyePos()); my_sound.bind($player1); Something else I'm going to need: I would like to know how I can find an entity of a given type within a given radius from a point or a bounding box. Order isn't important, any entity can be picked at random as far as I'm concerned. I tried playing with $ent.findActorsInBounds('-256 -256 -256', '256 256 256') but only got weird and random results... can I tell it what classname I want, ideally without having to call it on another entity on the map? If that doesn't work then how would I loop through all entities on the map then check the distance and pick the closest one? For what I want the algorithm should detect items near the player... loot objects would do as well as tools / ammo / readables / etc. Also I really need to see an example of how to make the player faster and able to jump higher; $player1.setHinderance() only allows me to lower the walk speed, using values over 1 or negative values don't allow you to go faster instead. People are saying that an implementation of the speed potion exists and was posted on this forum, but I searched and can't find it anywhere... please link me to the thread so I can check out its code.
  21. I'm referring to the settings in this menu: I want to attach custom components to the lightgem for instance, thus I'd like my GUI element to follow its size setting and especially the HUD opacity. The settings themselves are just cvars so I'd only need to know their names... followed by how a GUI definition can translate a float cvar into a rectangle component (I'll look for the answer among existing GUI's).
  22. Most of the above issues have been answered. Seems I can discover a lot by looking at the script reference wiki page mixed with unpacking the default scripts directory and using grep to look through the code. Only a simplistic implementation is possible but I can put part of my idea in practice at least. For movement $player1.setHinderance and $player1.setTurnHinderance are what you need... could have really used one for jumping too but for now this will do. $player1.disableWeapon and $player1.enableWeapon can be used to block the weapon. Only concrete question that remains unanswered is how to make my HUD GUI follow the HUD settings in the main menu. Size too if possible but at least the alpha! Let me know if anyone has the parameters required.
  23. I see... definitely gets more complicated, thanks. It's worth noting that in this case what I'm trying to do isn't a map script but an addon, intended to work in every FM and which people can install by placing the pk4 in their TDM directory. Of course it's limited to the "hooks" allowed by map script functions as I don't plan to modify default scripts (that would be a nightmare to maintain even if I knew how to do it). Yes I was thinking of checking health changes in a loop, which from other examples I'm seeing is as simple as using while(1). The problem is that for what I need I also must get the direction the damage came from; Bones are indeed overboard as the player model is only rendered for limited visual purposes, so I'd be better off with a vector of the form <left-right, front-back, top-bottom> (eg: <-0.75, 0.23, 0.14>) relative to the player's orientation... no idea how to get that. I'm assuming many stats are stored as variables for the player objects, but I'm not sure if enough of them to make what I want possible. Which well I guess I can say includes a skill system among other things, where certain capabilities would be possible to upgrade (player walk speed, player jump speed, how silent the player is while walking, additional decreases in the light gem so the player stays more hidden, faster and better bow firing, etc). It would really help if someone could point out every such variables that exist and which I can edit... I'll look at existing scripts that I can find too but not many FM's with such functionality come to mind.
  24. There's another little something I wanted to work on in terms of scripting. I wanna keep exactly what I'm doing a surprise... maybe I'll decide to release this one as a Christmas gift or something So instead I'm going to ask about exactly the stuff I need to do with my script... this time a script that affects the player. Here's a few different things I need to do for starters: How do I define a custom variable on an entity, in this case the player? I know I can't just write $player1.mycounter = 10 as the script would complain that "mycounter" is not defined: Is a separate function needed to declare it first? When the player is damaged by anything in the environment, I need to know the amount of damage that was dealt. Just as importantly I must know either the direction the damage came from relative to the player (as a vector), or even better the proximity of the damage to a given bone (eg: how close it was to "hand_r"). Does a custom script allow me to access and modify generic player parameters? This includes things like: The walk / run speed, the jump speed (how high the player jumps), whether the player is allowed to run or jump at all, and I'm curious if it's possible to force the player into always crouching. Additionally I'd like to modify the accuracy of arrows, how long it takes to draw them, and for how long the player can hold an arrow drawn before he tires out. Can I also change how difficult it is for the player to carry an item in the world, like how boxes drag behind more slowly because they're heavier? How can the script call a GUI with a number parameter? I've seen the $player1.callGui(mygui, callname) command which does what I want but I can't parse variables with it: I'd like something just like that but which allows me to pass a float variable for the GUI to use. Or maybe the GUI definition lets me read a variable from the player instead? Another GUI related question: When using this command to modify the GUI from the script, is it possible to tell it that I want a change to fade? Like if I change the color or alpha of a GUI element: Instead of it instantly snapping to the new color / alpha, can I tell the engine I want a smooth transition during say 0.5 seconds? Yet another final GUI question: I'm doing this for a HUD, so how do I tell the whole thing to follow the alpha of the HUD as configured in the settings menu? Ideally even resize with it as IIRC that's also an option in the HUD menu.
  25. I simplified the code a bit and gave alert / evidence states priority over the normal voice (customized with the frob_bark parameter) while alert state checks were fixed so both levels are within normal bounds. Use whichever version of the script you find most fitting for your FM of course. void ai_frob(ai self) { if(self.AI_DEAD || self.AI_KNOCKEDOUT || self.AI_AlertLevel > 2 || self.isEnemy($player1)) return; string frob_type = self.getKey("frob_bark"); string frob_bark; if(self.AI_AlertLevel > 1) { frob_bark = "snd_warnSawEnemy"; } else if(self.AI_AlertLevel > 0) { frob_bark = "snd_somethingSuspicious"; } else if(self.hasSeenEvidence()) { frob_bark = "snd_warnSawEvidence"; } else { if(frob_type == "alert") frob_bark = "snd_warnSawEnemy"; else if(frob_type == "suspicious") frob_bark = "snd_warnSawEvidence"; else if(frob_type == "angry") frob_bark = "snd_admonish_friend"; else if(frob_type == "rambling") frob_bark = "snd_relaxed"; else frob_bark = "snd_greeting_generic"; } float look_time = 1 + sys.random(1); self.bark(frob_bark); self.lookAt($player1, look_time); sys.wait(look_time); } ai_frob.script
×
×
  • Create New...