Jump to content
The Dark Mod Forums


Active Developer
  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Dragofer

  1. I've been using basicfog in recent times, I'll try out Delta fog later again. And shaderParm3 is currently set to 12000, but it's a bit of an unhappy compromise between skybox visiblity and mapspace fog opacity. I'd have liked somewhere between 5000-8000 for my map.
  2. Thanks greebo! It was great watching you make short work of my bug reports as they came in, and I can really appreciate those QoL fixes (i.e. clicks in the layers window always hitting their mark, 'Choose ...' buttons always affecting the intended entity)
  3. My theory was not so much an actual correlation between date & likelihood for the icon to be missing, but that it'd be only accounts created before June 2019 that'd be affected, so basically just an issue with account migration. No users that registered more recently have reported this issue so far, but we only had 1 such member post in here until now. And yeah stgatilov, I haven't even received a confirmation from Invision support that they received my message, so this looks like it would be something for the likes of taaaki to take up with them, if he needs to do so.
  4. Any ideas for how to make skyboxes mesh better with fog? I'd like things in my mapspace to be slightly obscured, but as soon as I add any noticeable foglight the skybox turns into featureless soup. Ideally I'd like to let the skybox be unaffected by mapspace fog and instead place a second small foglight in the skybox so I can control the opacity of both areas separately. (I did already move my skybox out of the foglight's range.)
  5. @peter_spy I'd think so too. I've sent a message to Invision support briefly describing what I and others are (not) seeing and put it in relation to the 2019 forum upgrade and our account creation dates.
  6. Thanks for yet more good suggestions, but the result stays the same... /photo/# brings me to the same page as /photo, and dragging a picture onto that page simply turns my browser into a picture viewer.
  7. That's a great idea STRUNK: simply go to my profile and type photo at the end of the website URL. But it doesn't work unfortunately. On Reverend's URL I'm presented multiple options to specify an image, but on Dragofer it's just an empty box with 'Continue' at the bottom. When I click on 'Continue' it lets me re-crop my existing profile picture.
  8. Thanks for sharing boissiere. Should've clarified that the button's missing on both mobile and desktop versions of the forums. My equivalent of your screenshot is: Tried clicking on the spot where the button *should* be but it just brings up a closeup of my current image.
  9. Not so long ago I found what could make a pretty good profile picture and decided to try it out on these new forums. But I couldn't find a button anywhere that would let me change it. I asked on Discord and it seems Spooks also couldn't find anything anywhere. So I logged into an old alternative account and, lo and behold, that account has a button. This is on the first screen I get when I: 1) click on my account name in the top-right of the browser -> 2) click on 'profile'. Compared to my actual account: Are you also missing this button on your account? It'd be very much appreciated if that functionality could be restored to any of the affected accounts.
  10. That'd be a type mismatch because m_target_name is declared at the start as a string but should actually be an entity.
  11. Also, you can make a repeating script to find and apply to all targets. In this case I just triggered the targets. float i; //integer entity target; //placeholder name for any targets found for( i = 0; i < numTargets( ); i++ ) { target = getTarget(i); sys.trigger(target); } If anyone could show me how to do this for other spawnargs than "target" I'd very much appreciate that.
  12. Taking a closer look at your script line, the syntax is in fact off. It should be m_target_name.setKey(m_key, m_value). When you use a $ you tell the script to look for an entity in your map that's actually called m_target_name, but what you really want is to use m_target_name as a placeholder for whatever your init script found when it did getKey("target0"). That needs no $. Similarly for m_key and m_value, when you put those in quotations you're telling the script to literally set a spawnarg "m_key" with the value "m_value". But again, you want to use them as placeholder names so they should be input without any extra formating. $m_target_name.setKey("m_key", "m_value")
  13. I'm encountering the same issue with sys.waitFor(self) in a scriptobject for a new func_mover: it doesn't wait at all. The only time sys.waitFor() will work is if I put it in a map script and manually enter a name: sys.waitFor($func_mover_1). Won't work with placeholder names, i.e. sys.waitFor(mover_name); Is something like the below broken for you even when it's in a map script? string spawnarg_name; string spawnarg_value; $door_1.setKey(spawnarg_name, spawnarg_value); If yes, then we may have encountered the same problem.
  14. For the new spawnarg-controlled func_mover STRUNK and I are developing I'd like to make it trigger its targets upon reaching certain positions (position # = the # of motions away from the starting point) I've implemented this for a single position, but I'd like to allow the mapper to specify an indefinite number of positions via spawnargs. For this I think I'm missing, and would appreciate advice on: (1) something like numTargets and getTarget(#), but for my custom spawnarg series trigger_at_positionx instead of targetx (2) the correct way to form this conditional: if(current_position == any of the positions retrieved by (1)) For (1), it looks like numTargets and getTarget(#) are hardcoded, so I'm not sure how I can derive something that works for a custom spawnarg. For (2), all the C tutorials I found mention things like != and <=, but never something like if(number == 3, 4 or 7).
  15. S/R is best for this, takes a total of 5s if you've done it before: Select the pouch -> go to top and click Entity -> Stim/Response -> Response tab -> add Response 'frob' -> right-click & 'add' effect in the box on the right -> change the new effect to run_script with your thread name. Plenty of other effects available too, and you can also make these happen in response to a 'Trigger' instead of a 'Frob'.
  16. Alright, I can take a look at that tomorrow. Could you edit your post with a link to what you have so far please? Also, since this discussion has taken on a mostly two-way character I'd suggest switching to direct messages from now on. My hope was a public discussion would let coders weigh in on any roadblocks, but I think that's much more feasible if we keep most of our exchange in a PM and post the roadblocks as precise questions in this thread.
  17. @STRUNK those are spawnargs, so they should go into the def file. Also, blue screen indicates you're working with the script from the /scripts folder? I found it much easier to develop it while it was in the map script.
  18. I'm thinking if the player drops a crate in the way of the mover. The mover should stop and, when the crate is removed, be able to continue to its target position & angle. Either automatically or when re-triggered. Would be a good reason to check each frame how far the mover has gotten so it can resume from where it stopped. Or check i.e. every 10 frames. This would also work, because we have disabled its response to further triggers/frobs, so it can't move any further in those 10 frames.
  19. This line can both enable and disable a response to trigger & frob: void ResponseEnable(float type, float state); state: 0 = disabled, 1 = enabled Type is the ID # seen in the S/R Editor Hmm, spawning a speaker might not be so good after all. If something stops the mover, how does the scriptobject know it's stopped so it can turn off the speaker? Could maybe check the location & angle every frame, but that may slow things down if there are many movers moving. Note to self: we also want trigger_at_start and trigger_at_end for all targeted entities. If it's not already existing, we can find suitable code in the candleholder scriptobjects.
  20. @STRUNK Great, thanks for including all the remaining spawnargs already existing for func_movers in the entity def, that'll make it easier to use those, and for further developing the scriptobject. Haven't had as much time for actual TDM work today so it's nice to see progress still being made. Regarding the trigger response, there are script commands to deactivate and activate responses. Just need the ID # of 'trigger', which you can find in the S/R editor. I'd also switch from frob_action_script to S/R for frob and use the above method to deactivate/activate. (Initially I sought other solutions than S/R because all the 'official' entities seem to use other ways to trigger themselves. But for a community resource that works as it should it's certainly fine.) Don't really like the existing snd spawnargs. Snd_move starts playing at the start of acceleration, then restarts at the end of acceleration with a pop, then at the start of deceleration there's another pop and then silence. Also, if the soundshader for snd_accel or snd_decel loops by default, it'll continue looping after the mover has finished moving. And unfortunately scripted sounds for movers are broken. That's why I sought to workaround by spawning a speaker that can be controlled more accurately. I think for most scenarios just a single sound throughout the entire movement will be enough, for now.
  21. @JackFarmer the circling suggests the AI is trying to get to a position but can't get close enough because something is in the way (monsterclip or the door). It might be the switch is too close to the door / the path_corner is too close to the switch or the door. I'd suggest spreading the switch & the path_corner out more. (An AI can't get closer than 16 units to a monsterclip wall, and doors/moveables seem to dynamically create monsterclip walls around themselves). Btw the correct way to use path_interact is to use "ent" spawnarg with the name of the entity to interact with.
  22. Thanks again for sorting this out, I was wondering what was going on there. Btw, In Remembrance of Him by RPGista is well-known for the whole map being bathed in faint purple parallel moonlight. I don't recall seeing anything wrong when I played it, but you know what you're looking for.
  23. Took a look at his actual script too now - just need to put that into his while loop like so and you're set: while(1) { if (distanceTo($player1)<1024) { vector direction=$Statue.getOrigin()-$player1.getOrigin(); direction_z=0; $Statue.setAngles(sys.VecToAngles(-direction)+'0 90 0'); } } sys.waitFrame(); Probably also bind a trigger_hurt brush to the particle and toggle it on whenever it starts flying. Please do post that to the Trap Workshop when it's finalised (f you're not first reserving it for your own FM). On my side, looks like the func_mover already supports movement sounds (snd_move, snd_accel, snd_decel etc.), but they don't really seem to work properly unfortunately and are bugtracker-worthy in several ways, i.e. don't play at their intended times, loop forever if the original shader has looping, popping sounds etc. Guess I'll just use my own way and spawnargs for getting sound to play.
  24. @STRUNKnice, who'd have thought I'd get an entity named after me one day Good idea to make it a proper entity so that it displays all the custom spawnargs properly in DR. As you point out there are indeed still a few things that can make the new scriptobject fully versatile. Func_movers aren't really accessible to mappers who don't script, so it may be quite useful to have one that mappers can control by spawnargs instead of scripts. 1) the mover could spawn its own speaker (def_attach). A sound for it can be selected from a list provided by a new snd_move spawnarg. (Workaround for bug #5102) 2) maybe I can find a way to let the mover call its move_mover component when triggered or frobbed. Any button could set it in motion then. 3) the move_mover script shouldn't respond to new triggers until it's done. Unless the mapper wants it to be interruptable. 4) the trigger_count spawnarg can be used to make the mover's first inversion occur sooner (i.e. the mover has already moved a few times at map start) etc. Something of a stumbling block for me atm is I couldn't yet figure out how to access an entity's rotation. I'd like something like $mover.getRotation() so I know what direction it's facing currently (in x, y and z). Essential for an "interruption" functionality. Well probably mover_door has what I need.
  • Create New...