Jump to content
The Dark Mod Forums

teh_saccade

Member
  • Posts

    693
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by teh_saccade

  1. Didn't Arcturus come up with a fancy way of making realistic, animated water surface textures that could be adapted to have specular and bump and stuff?
    Think there was some talk as Orbweaver confirmed in that it's killer render to do this, but the accurately moving water round a bend kinda trumped the need for it to reflect as a mirror, since the effect was awe-inspiring enough.

    I can't find it now, but the water in the animated grass test maps from a while before still looks really nice:
    http://forums.thedarkmod.com/topic/12985-animated-grass-test-map/

    2nd & 3rd screenshots.

    The water in this map has good reflections. The scenery is great. The light cast upon it works well, there is enough detail surrounding to not make it the main feature.

    Increasing the detail of the objects that are being reflected - giving an impressionist feel to the reflections... it's really effective.
    The pool has so much going on in it, it doesn't need to be an accurate mirror - it's a good example of good scene design that means no matter where your eye rests, the scene looks full.

    Also, water doesn't reflect shadows... it reflects only reflects light.
    This could easily be simulated by pointing spotlights onto the surfaces that the light from the water would reflect (eg, under a bridge over a canal, light is seen in the water from a streetlight, along with objects adjacent to the water body - the light from the source and the lighted objects is seen in the water reflection by default, but - the light bounces from the surface of the water, fake-reflected by use of a spotlight that has a watery light pointed up into the archway, casts shadows).

    Don't see why that wouldn't work without having to mess with shaders or mirrors or grinding render to 0.1fps.

    It's good, effective level design.
    Fake it til you make it (or, more likely, someone else does and you steal it).

    Sometimes mechanical illusion is as good coding magic, imo.

  2. Yeah, I don't get why it's not working either... // I've even changed the numbers of the args it places, in case they were incorrectly ordered, like "srclass 9000" etc...

    Have you tried another damage def? I've tried suicide for insta-death but that doesn't work using the instructed stim/response set-up either. Not tried fire or anything.

  3. Don't need nurbs for movers that at least move in a straight line:p

    Gonna guess that $safebolt is the bar entity and $safebolt_pos_1 is the no-draw entity that is used to snag the origin for $safebolt to slide on over to? Named worldspawn or must be entity, eg, func_static?

    That's a nice, simple script to do the same thing.


    $safebolt could be substituted for anything - eg, even another no-draw func_static entity that is bound to a ragdoll to snatch it into a blood-stained vent or down a pit, from a trigger as the player spots it (a la alien - ragdoll held in place by bind to the no-draw func_static).
    In which case sys.wait(time as integer) might be used, before setting a new trajectory if required; as sys.waitFor is used for mover entities.

    I'm a little more scared of the builder's boiler-room guy, now, that person was dragged and beaten to death with a wrench - maybe chasing him scared him off..? He's obviously not as harmless as he makes out and it explains why the cook was gloating about how she always has fresh meat at this pilgrimage way-station in her kitchen journal... Now I might search her room to find a secret note from the boiler room guy saying the next "delivery" is waiting in the usual place and trigger an optional objective to find a way to expose their plot (cos I've read the "fresh meat" kitchen journal, triggered the body event and now have the "delivery" note - enough evidence to warrant investigation) or end it by any means necessary (either drop the note and journal evidence on the abbot's desk or take 'em out - fun way's to KO them and chuck them down the well, but headshot does the trick).

    That's a side-quest, designed to give me something else to do in a limited area, add a bit of intrigue and not get bored with the main quest. Plus I've a few options on how to deal with the situation: A lawful way and hope the abbot's not in on it (oh I find out he is? Now I gotta give all the evidence to that guard officer who I might've read was investigating suspected disappearances, as I was nicking all his stuff earlier when I first infiltrated, somehow...), a slightly less lawful way (kill all conspirators) and a idgaf way (ignore it and just complete my main mission).

    Think of all the cool stuff you could do with that simple script - a player walks down a hallway with a mirror at the end and - as they approach, a buzzing starts and, with a scream they see the lights go out and a spotlight reveal a haunt or enemy in the mirror, but - by the time they've turned around to approach or run away - lights change back the corpse/enemy/ghost is no longer there as it has been moved out of the light and into a playerclip, 100% darkbox in the ceiling at super-speed as to have "vanished". A nice little, one-shot "wtf" trick to raise the pulse for an otherwise bland corridor I'd use to roll a smoke and make tea while waiting for the inevitable patrol, IN WHICH THE PAINTINGS AREN'T LOOT, AGAIN!? ART'S THE MOST VALUABLE THING, DAMMIT. A piece of paper's worth $100 - just ask a $100 bill.

    Why opening a safe might be the same as a billion other things.

    Knowing a simple thing like the script functions that Stumpy's just put, and how they might be applied, can open the opportunity for a lot of stuff to develop in a mission and its narrative (now with simple intrigue events, not only pages of readables I can't be bothered to read due to lack of intrigue).

     

  4. I can be your test subject for the S/R page, Destined.
    Need to learn faster to keep up with things and figure easier solutions in TDM level design, rather than bitch about things changing faster - testing wiki pages would be a good method to accomplish this.

    I'll have time to help update documentation after a shadowbreak. Appears that an upcoming unity project has fallen to pieces before it's past concept. The rest is my own stuff, ad hoc.
    Maybe after a camping trek round the SWCP for a month or so to get the legs and lungs working again after sitting down so long, drinking cold tea and eating cigarettes.

    Need direction, or at least a method to figure (or a way people can flag) which pages need a check/redirect to update.

    In my 20's, as a break from MCSE/CCNA, some reason decided to qualify under Chapterhouse in proof-reading and copy-editing and was a member of the SfEP - have worked on games engine and database software documentation before.

    Might have a bit of ring-rust, but pretty sure checking wiki articles/tuts isn't much different from BVT.
    Here's a reference.

  5. Hello Nocturnal,

    1) Creating a briefing for your mission is covered in your new best friend, the A-Z Beginner's guide on the TDM wiki (also contains links to another and video tutorials at the top of the first page):

    http://wiki.thedarkmod.com/index.php/A_-_Z_Beginner_Full_Guide_Start_Here!#Story.2C_Briefing

    // ps, don't forget to follow the highlighted link to Briefing: http://wiki.thedarkmod.com/index.php?title=Briefing

    2) It might be that the buggy shadow triangle thingy is what is referred to as "z-fighting", in that there are two brushes that are overlapping and both assigned textures are fighting to be displayed at once - a screenshot would be useful if you want to attach a screenshot using the "more reply options" button (500kb max).

    • Like 1
  6. You kinda hit the point right there, Stumpy - from the miles of letters in that post (medal for reading it, btw) - there are a lot places in the wiki that are in desperate need of some updating.

    ----

    A system that is used at a place I volunteer, to ensure accuracy and validity of information/data entered into archive/documentation:

    One person submits the information (author).
    It is then checked by two people, who comment/discuss on the information (triage).
    Editor then determines final, based upon their competency, taking triage under advisement (updated/published).

    While it's not exactly de rigour for an author to also be editor or triage, due to bias, such things do happen.
    However, this is a subjective field in psychopharmacology and not a precise topic such as one particular computer game's wiki.

    I trust a wiki article written by someone like Grayman: http://wiki.thedarkmod.com/index.php?title=Security_Camera <--- it's very complete. I know kung fu.
    But idk about something more "free" such as this: http://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor <--- that is a few lines on a more complicated thing.

    First is thorough and helpful, well documented for a single module - I understand how to use it and will anticipate it in design (eg, remove my own versions of a security camera, because this is 10,000x better. Maybe change the model...).
    Second is nothing useful, poorly documented, to understand how to do many more things with your own lego bricks (eg, understand how to use the stim/response editor to cause damage to stuff cos the examples don't work).

    If I knew how to say "damage to the security camera using stim/response, triggers this script that removes it from the gameworld and replaces it with a broken camera model and turns off the camera, with a chance of setting an alarm state, etc..." - perhaps I could destroy it with a fire arrow as well as turn it off or KO the guard watching or sneak under it or whatever...

    ----

    I can't update what I don't fully understand myself, in order to help others understand by giving them a link to the wiki where it can be explained more than in the forum.

  7. http://forums.thedarkmod.com/topic/9082-newbie-darkradiant-questions/page-323

    // the discussion is sliding way out of newbie questions, so figured it'd be good to make a new thread regarding this.

    This first stuff is not really related - a preamble.


    The bar opens fine without the function - It only won't reset to closed (is possible to lock the safe with the bar preventing it from closing).

    Idk if anyone else noticed, in game, that the bar on the safe didn't close without that line - or if it's even necessary in most instances.
    Therefore, is it such a thing really necessary when there are other, more easily understandable and documented, solutions to fabricating such device as a sliding bar, bound to a door?

    What is harder to understand and isn't documented is how the combination lock works.

    The new-style combination lock is a nice step up from /prefab/tdm_wheel_lock.pfb - testmap and script found: http://forums.thedarkmod.com/topic/11190-working-combination-lock-download/

    Unfortunately, despite being "nicer", ANJ safe combo lock is more complicated in design and function (such as disabling player weapons, scroll wheel) - so I'm still with Destined in including it as a prefab object numberwheel with a wiki page containing the information on how the scripts and DR stuff makes it work...

    If the combo-mech was /prefab/tdm_numberwheel_lock.pfb - with description that there was a wiki page that provided a generic script for tdmbase01/script/numberwheel[_lock].script and gui for people to use, explaining the reason for the calls (eg. setting/getting processStim for lock/unlock, calling gui msg, disableWeapon, digits, how to change the combination by checking the float stim/response, why its necessary to #ifndef, etc...)...

    It's a complicated thing for people to figure out, when they say they have no scripting experience at all and are new and want to learn, not even knowing where to start and relying on workarounds...

    If no-one's willing to take the time to explain... only simply, "go figure it out" - it's a rabbit-hole of confusion, give up and make and yet another key-hunt round a nice-looking mansion/city area.

    Is it like a top-secret recon mission where compartmentalisation of the information means that it's for the safety of everyone involved that only each person knows what they need to know?
    Or is it about helping people find answers and directing them to the information, explained, so that each person knows what they need to knoiw..?

    I've not seen anyone use the "motion/noise detector" or "[fake] laser tripwires" or "camera (portalsky method doesn't work any longer, so now it's more mechanical)" or searchlights or even a simple floor-trap flagstone that slams a gate over a treasure room that's rushed at (or door step through to prevent backtrack to grab boxes to escape, must face problem, etc...) or - as extension - even stepping stone puzzle (failure result in particle emitter of "poison gas" and playerhurt, until back to start and pull reset switch - solution scrawled in glyphs around level, locations of which are in readable/codex, must find cos objective trigger) in any FM.

    /* I realise that I scrubbed my mapping thread, when in a bad mood... so... my bad. Also that taking the time to provide an adequete explanation - in a forum - of why and how something works is often a lot to read and digest and difficult to make as concise as a few tweets, and I've been warned about the length of my posts in the past 'cos ain't no-one got time for wall of text. */

    And the script and method for that kinda stuff is a piece of piss to understand, (for eg, searchlights) with a simple tutorial on nurbs and movers and calling the script and how to get AI to interact with objects when alarmed. Which is basically how every trick and trap I make works, mechanically and using simple, documented solutions, pieced together, rather than complicated scripting and messing with the game).

    
    
    
    void searchlight()
    
    {
    
            $anchor.time(40);
    
            $anchor.accelTime(.1);
    
            $anchor.decelTime(.1);
    
            $anchor.startSpline($spline1);
    
      
    
    //spine2, anterotation, is to direct searchlight in correct direction
    
    
    
            $anchor.time(40);
    
            $anchor.accelTime(.1);
    
            $anchor.decelTime(.1);
    
            $anchor.startSpline($spline2);   
    
    
    
    }
    
    
    
    void main()
    
    
    
    {
    
    
    
    }
    
    

    You know, that's all it takes to get a basic searchlight pattern to add tension to a courtyard and force a player to time movement between the revealing light and the patrols. More "action" less "I'm gonna have a smoke break 'til he comes around again and KO him".

    Maybe

    
    killswitch{
    
    switch = false;
    
    }
    
     
    
    while ( switch == true ){
    
    loop;
    
    }
    
    

    to not have to fiddle with timing and the "blink" reset to start of curve and also to keep it moving no matter where the "loop" ends, allowit it to be killed by AI or player, if not more simply call/end searchlight by mechanical switch in-game - one that AI is set to use when alert.

    Track the light towards player location, based upon how AI looks for the player's likely hiding spots, and suddenly it's as if the AI at the searchlight is actively searching... until they're shot in the head with an arrow - in which case the light is "dead" too,

    (['killswitch' also targets named AI entity, ends searchlight mover], or the light's disabled [mechanical switch])

    or location passed with or without incident or whatever...

    How often do I ask non-rhetorical questions, or questions not designed to provoke discussion into an issue?

    The questions I ask can usually only be answered by someone such as Obsttorte or Stumpy or an active dev.
    Often, they might go unanswered 'cos it's above paygrade or no time to explain in such detail.



    Modular design with assets and perhaps explanation to help learn, allowing increase in creativity and mission diversity or achieving vision.
    or
    Here, catch.
    or
    Go figure it out.

    First is more work, but helps people a lot.
    Second is less work, simply provide a solution.
    Third is no work, ship without a rudder.

    In short, it'd be really nice to get more hands on deck with updating the wiki.

    As and when required/prompted by newbie questions, so it's easier for people to find and understand the answers to the questions they need to ask and take the time to go figure it out:
    http://wiki.thedarkmod.com/index.php?title=Special:RecentChanges

    No-one's born a brain surgeon, but everyone can pick someone's brains.
    People CAN learn to be a brain surgeon, if they have access to the edu-material on how to become one, know where to search and find - and can understand it.

    ----

    I've included a case study, using the current documentation, trying to discard as much pre-existing knowledge of DR and rely solely on the wiki and forum for answers - not asking any questions.

    A simple challenge for the player:

    Entering a corridor, the door slams shut behind.
    A series of scythes swing across the path to safety, as an ornate door slowly opens to reveal a zombie shambler.

    There is no way back - the player is under pressure to run from the zombie (potentially lethal damage if caught), while timing their sprints along the corridor between the scythe traps (potentially lethal damage, increasing in speed/damage given).

    Ultimately, to escape, they must leap across a dangerously deep pit (potentially lethal fall damage - fake, safe drop into water, where there is some hidden loot and escape via ladder).

    The player is placed into peril and must react - if they fail the traps or get caught by zombie, damage or death. If they fail the jump - believe might die, but actually safe and can grab hidden reward. Succeed the jump - zombie is held up by scythes (and clip), so has time to notice ladder and perhaps explore the pit if they're uber-cool and pass the challenge 100%.

    The only danger is "inside" the trap. Once past - there's uncertain safety. Except I've revealed it now, so it's not uncertain, heh.

    post-0-0-80268800-1519665690_thumb.jpg

    So - Here's a route I might take to go about achieving this, knowing nothing about DR and relying purely on existing documentation.

    Hopefully it will remind the veterans just how much there is to figure out in order to something basic such as this, and greens just how difficult it can be to realise a simple gameplay concept.

    Big challenge for new mapper:


     

    The new-style combination lock answer is one example of "go figure it out".
    The doors on a diagonal is not quite the same (the raising doors make a great way to escape a level due to the extra height provided, if diagonal, then - awesome).
    If that was in the wiki, it'd be a good example of "design explanation" that'd be a great addition to the doors wiki page. Along with many other questions that have been asked and answered in the forum on other topics.
    Things such as the modelling issues that Kitsune was running into and managed to solve aren't collected in the wiki and/or explicit. Again, "design explanation".

    Location system question that came up recently - the answer might be found here, if the person knew what to look for..: http://wiki.thedarkmod.com/index.php?title=Location_Settings - that's an example of "Here, catch the ball".

    'Cos, you know, "show inherited properties" isn't checked by default... Also, how to know the spawnargs to look up and add, unless you've read and - more importantly - understood the Location Settings wiki page..?

    Look at all those lovely spawnargs listed on that page... ambient_light_fade_time - making that longer would mask the sudden green area within one of Spook's FMs during a location change... He figured it out, cos he's an investigative mapper (and someone pointed it out, thinking it was a bug).

     

     

    So this leads to the case study of how I would have to go about figuring something out, using the available documentation to me on Dark Radiant and in the forum, and just how frustrating and warren-like it can be to use, in its current state..:

     


    Reading that page again about locations, I realise that one of my traps/design features can be a simple script using the location system instead of mucking around with more complicated stuff. "Call_once_on_entry" - bam. Problem solved in a far more elegant manner and it frees up a whole bunch of mechanical wiring in DR using triggers and movers and s/r stuff.

    I learned something, because it was documented and easy to understand - I'd've never have thought about that, because I'm a noob and idk wtf I'm doing.

    If someone had pointed me towards http://wiki.thedarkmod.com/index.php?title=Making_Moveables_Damage_Things (http://forums.thedarkmod.com/topic/4723 is now 404) - plus the fact that it didn't work... I probably wouldn't have cried so much when moveables no longer caused damage and not be constantly getting stuck under movers that act as elevators (eg, Thief's Den).

    IIRC - the solution to me crying about the "movers don't cause damage no more" thing was "add playerhurt spawnarg to everything". A "Here, catch the ball".

    Now, because I know I can start the corridor's swinging scythes and slam shut the door behind (to stop a player backtracking and grabbing boxes/chairs to block the movers), releasing a zombie to add tension so the player is under pressure to negotiate the traps in front of them and escape the zombie - cos zombies can't jump and mantle over the water-filled pit at the end of that corridor (no damage if player falls)...

    The bottom of such pit containing some loot at the bottom and a ladder up - so failure to make the jump isn't punishment, but an unexpected reward, and curiosity exploration is also rewarded.
    It's only a spawnarg to make the zombie not take damage, but still get pushed back - lessening tension as the trap is further negotiated...

    Additionally I can also mitigate damage from initial "hasty mistakes under duress" by players mis-timing a sprint through a swinging mover scythe along a nurbs, make the end of the corridor more challenging (at which time the pressure and tension to get the timing of the sprint correct is less, because the zombie is further away, so ramp damage with "need to get it right" being less...), by using the provided solution for variable damage based upon velocity:

    Changing the moveable's def.

    BUT:

    Does it still work, seven years later..?
    Because: http://wiki.thedarkmod.com/index.php?title=Moveables#Complete_List_of_Default_Key.2FValues_for_Moveable_entities does not list this key...

    So, have to assume that the moveable must be converted to a model, to include the def for variable damage - not simply a brush on a mover with player hurt spawn-arg or whatever it was, because the "making moveables cause damage" page doesn't state that and brush mover would have to be converted to a model and have a def file, etc..: I'd have to guess.

    The only reason I'd be able to guess it'd have to be a model is because I've taken the time to learn that models use defs, but worldspawn brushes don't.

    BUT:

    What if I didn't know how to change something into a func_static..? It doesn't explain... The answer lies hidden in the patches page of the wiki: http://wiki.thedarkmod.com/index.php?title=Patches#Trim_Arches
    Oh, how simple...

    Perhaps I ought to update the instructions on the "moveables" wiki page that say, "convert to func_static" to say, "change the brush to a func_static by right-clicking in the grid-view and converting to func_static"..? Because that'd be more helpful than having to search "func static" in the wiki - that returns this: http://wiki.thedarkmod.com/index.php?title=Special%3ASearch&search=func+static&go=Go (which is no help).

    But - oh wait... how do I export my brushwork as a model, to import to follow those instructions on the moveables page..?
    The "Models" page that's linked isn't much help..: http://wiki.thedarkmod.com/index.php?title=Models

    Having read the forum in the past, and knowing there's a DR option to export my brushes as obj or convert to ase... If I didn't know these functions, perhaps I'd think - crap, I have to do all of that again in Blender?

    I'll try convert to .ase, which is not in the wiki:

    
    Error while executing file: commands\convert_to_ase_and_replace.py:
    
    Traceback (most recent call last):
    
      File "D:/DarkRadiant/scripts/commands\convert_to_ase_and_replace.py", line 418, in <module>
    
        execute()
    
      File "D:/DarkRadiant/scripts/commands\convert_to_ase_and_replace.py", line 159, in execute
    
        GlobalSelectionSystem.foreachSelected(walker)
    
      File "D:/DarkRadiant/scripts/commands\convert_to_ase_and_replace.py", line 140, in visit
    
        import re
    
    ImportError: No module named re
    
    

    Oh - it didn't work... maybe pathing might be incorrect as /commands\convert has \ and / so no \o/ joy. Probably I've not updated my DR or the script just does a Simon the Sorcerer and doesn't work atm.

    This means I'll have to go and export that nice brush and mesh-work I've done as an .obj, but I know that only because I bothered to explore DR and ... but wait a sec - didn't I see "convert to model" when I was doing "convert to func_static"..? I'm sure I saw it in "doors" when I was doing the A-Z one time... the "convert to model" thing. Also, I'm not making a door, I'm making a swinging scythe trap...

    Perhaps I could try making it a prefab? But how would I know about that unless I already knew... hmm...

    No, that doesn't work and there's nothing on the wiki about "converting brushes to models" - there's "brushes vs models" that leads to a dead end on modwiki... So I guess I'll have to try exporting the whole lot as an obj using the script (if it works), as the only reference that's found is here: http://forums.thedarkmod.com/topic/15602-dark-radiant-export-to-obj-file-format/

    Well that worked, and even with \ and / Done writing OBJ data to C:\Users\user\Desktop/box.obj

    But what do I do with the .obj?

    So I guess I'll have to check the wiki for "modeling" help, rather than look up "models".
    Well, the Modeling pages on the wiki tell me to use DR's file/export as obj... That's not quite the way I did it, but I'm using my pre-existing knowledge of DR - so that page is out-dated.

    So I'll have a quick search in the wiki for help with "modeling" and read those pages:
    http://wiki.thedarkmod.com/index.php?title=Modeling

    This gives me a basic idea of what I'm doing...

    Let's hope it looks the same and has kept the textures. As my default .obj editor is photoshop, and I'm used to Zbrush... nope - it's simply the brushes in white.

    But I know there's some help on the forums for that because I've looked in the past, so that's where a google search comes in and it would be useful if the modelling pages in the wiki explained how to do this, in case I don't know how to search the forums for answers, once every 15 seconds (why google "forums dark mod xxxxxxx"), rather than ask a question where someone may or may not point me to a wiki page or forum post or say, "here, catch"...

    But first of all, in order to follow the tutorial on modelling I need to get the file open in Blender.
    So - Importing the file into Blender, first I notice that there's none of the texture saved (np), but also that it's no longer the same .obj that I saw in photoshop... I exported a cube and in Blender it's an extruded triange.

    Strange.

    Let's try another option and export as .ase.

    http://wiki.thedarkmod.com/index.php?title=Creating_an_ASE_model_using_multiple_Materials

    Oh that says I have to use blender also... but I've exported my model using DR's script... So is all that stuff about separating meshes and applying textures still relevant? Idk... I'm not going to rebuild everything again - I've already done it once and I've an .ase file ready to test.

    The instructions are simply, "Now create a testmap and place your model into it. Load it into the game and voilà".

    Wtf do I do that? "place my model into it, and voila"..?

    Well I guess I'd better search the wiki for "import model", which leads me to this page: http://wiki.thedarkmod.com/index.php?title=Modeling_-_Basic_Tutorial - this tutorial, like the other on creating .ase models for DR, tells me that I must put the model in the correct place and then edit the .ase to use the correct textures, as appropriate for Doom3, to display in DoomEd's model browser.

    That's a little confusing, because I'm not using DoomEd - I'm using DarkRadiant - but I've enough common sense to follow the convention for models because I read the Basic Modeling Tutorials.

    I'll take a look at the DR exported .ase to see if it has retained the texture - it doesn't open in any of my graphics software (eg, photoshop) so I'd better follow the instructions and check the text.

    Well - Notepad++ reports in the Material list that there's MATERIAL_COUNT 1 and that the *BITMAP is "\\purgatory\purgatory\doom\base\textures\darkmod\wood\panels\panel_carved_round_dark" and this is the texture that I had set to test for the cube.

    So - now I know that DR exports my brush and mesh/patch-work as as .ase fine and retains the texture information, as well as the offset - and I notice that it has *BITMAP_FILTER pyramidal, which might account as to why Blender thought it was not a cube... - I'll try with to use DR's export .ase script with two brushes with different textures/materials.

    Keeping the wood, that will form a small part - hopefully it will export the other brush as keeping the heavy rust.

    Oh, how great, it does. MATERIAL_COUNT 2 and *BITMAPS are as they should be.

    Nice - that's how I can model in DR using brushes and patches and retain all the texture and surface information, rather than have to deal with using modeling software and imports and exports and manual changes of text files to paths for materials and textures that I might spend hours looking for...

    So now I have the model and I know where to place it because I read the modelling pages earlier and I saw there's a convention for Model Folder Structure:
    http://wiki.thedarkmod.com/index.php?title=Model_Folder_Structure

    So I'm going to put it in /dungeon.
    But... the Model Folder Structure tells me to put it in a models/dungeon, that I can't find in either DR or TDM folders...

    So I'm going to look at the TDM folder and find anything related to models, where I find "tdm_models01 & 02.pk4". I guess this must be the place to put the model, now, not in a folder - but in the base .pk4... which means... I'll need to figure out later how to pack my FM so that the model I'm shipping with my level is included for everyone else.

    Using 7-zip to open the archive, rather than rename it to .zip and back again - I find that the file is in use by another process (DR), so that means I must save my map and close DR in order to copy the file.
    But 7-zip crashes because of a bug in 7-zip, so... reopen and repeat. Success.

    Hopefully, the model will appear in DR now. Hopefully...

    Luckily, because I read the A-Z Beginner's guide, I know that I can "right-click and create model" to add a model - and... oh great, it's actually there, just as it looked as the brush/mesh model I created in DR before, in the DR model browser, in the Dungeon section.

    Not quite how the documentation instructed me to do it, but it's there and that's what matters.

    The texture sizes are the same as the original brush-work, the size is the same. Everything's the same - and I didn't need to open blender once, really. Which is great, because it didn't look right and now I can export all my intricate brushwork buildings as models with simple collision meshes - if I ever wanted to put a building in a map that was nothing more than a facade and not-enterable.
    Now, I need to create a collision mesh for the model - which according to http://wiki.thedarkmod.com/index.php?title=Moveables I can do by following the instructions on how to create a collision model, rather than following the Modeling tutorials in creating a collision model - kind of a strange place to find the collision model tutorial, but at least it appears in a wiki search and I remembered it from earlier since I'm trying to make a moveable...

    Since I already have the original brushwork - perhaps I can use this as the basic brush to create the collision mesh.

    Using pre-existing knowledge - I'll try to merge the brushwork using the CSG merge:
    CSG Merge: Failed - result would not be convex.

    Well, it was worth a shot. "Best fit" will have to do for those concave angles.

    There's a small bug here in that - after using this tool and getting this error, the "undo" function in DR no longer works for anything before getting the CSG Merge: Failed. So it's a good thing that I'm working in a testmap and not in my main mission file. Anything I do after will still undo and redo fine.
    So, after a little re-rigging of the brushwork I want to use as a collision model - to remove the convex parts so it CSG merges - I'll return to following the instructions to make the brush func_statics into a collision model.

    I get an unspecified error that states it can't export the collision model... oh dear... but it CAN'T export the collision model to the same path as the model... because the file is in use in DR :)

    DOH. but the error allowed me to see that the collision model had "moved" to a different point - evidently I'd not lined up the origins, so that's a quick fix using the origin property - setting both to 0,0,0.

    So - reading the instructions again, it says to export the collision mesh as an .ase with the collision texture. But wtf is the collision texture hidden? I guess the easiest way to find any texture is to open a map that contains that texture and select it so it gives me the Shader and Definition paths.

    It's textures/common/collision. Snap back to the testmap, and it's nice that the collision texture is still selected for me to easily right-click and apply to my selection.

    So it would appear that, while there is no need to merge, since the collision model will be exported - it is a good way to test that the collision model will follow at least one of the rules for cm's - no convex faces. Also, in re-rigging it, I've made sure that the faces are reduced to be as simple as possible. It says a max of 12. The origins are also lined up in DR, due to previous fail highlighting this.

    It appears there's another bug with the undo - accidentally dragging the cm, I can't undo the drag after the "failed to save cm" message. And DR crashes... Reopening without even having the testmap in the recent file list. Luckily I've learned to be OCD with saving testmap001-999.

    No matter what I do - there's no way that I'll be able to make the collision model using this method as DR appears unable to save the file into the model01.pk4 as the file is in use.

    So screw that - I'll have to find out how to stick it to the model.
    If I didn't already know - this is where I might need to ask a question... However, I already know there's a spawnarg named "bind" that will parent the model to the cm: http://wiki.thedarkmod.com/index.php?title=Bind

    Changing the name of the imported model from "func_static1" to "scythe", it's possible to add the spawnarg "bind" to the cm.

    Now I'll group the selection of the model and its bound collision mesh, so I can move them into position.

    Now there's the model and a bound collision mesh. Idk if that's needed, because http://wiki.thedarkmod.com/index.php?title=Making_Moveables_Damage_Things says that there might be a small knockback, if using "damage_generic" - although, to me, this looks to be a spawnarg that's been called a def.
    http://wiki.thedarkmod.com/index.php?title=EntityDef

    Which means all this messing around with the model and collision mesh might be entirely pointless and not required at all.

    In fact, after reading a page again, I'm fairly certain that the "def":
    "damage" "<name of your damage def, INCLUDING the "damage_" prefix>"
    ISN'T a def - but a key/value, which means they're spawnargs that I could've applied to my original brushwork group...
    AAAAARRRRRRGGGGGHHHHH!!! FUCK FUCK FUCK FUCK FUCK FUCK FUCK FUCK.

    So all that crap with the model and collision model was a waste of time?!!

    BUT. Looking on the bright side - in doing it, I've learned that I can export brush-mesh-work as .ase and also test out a collision model/mesh made from brushes in DR using certain functions, which is useful.

    The model already has those base materials defined... so it will inherit things such as whether or not an arrow will stick into it or what noise it will make when hit with a sword.

    So - since the model's there, I'm going to try to make it a move in a pendulum motion, so it slices across the corridor and hurts the player if they get hit by it.
    The problem is... the actual scythe isn't going to be a mover. The mover will be an invisible cube to which the scythe is bound. The invisible cube will move along a NURBS curve, using a small script.
    http://wiki.thedarkmod.com/index.php?title=NURBS_Curves

    A shame that link is 404, but I have the doom3world.org content saved in my DR note blog, so...

    Adding a "damage" spawnarg with the additional "min & max DamageVelocity" spawnargs... I have no idea wtf to set these to, so it will be trial and error, starting with random numbers - I'm applying this to collision mesh, that is "bind" to the model.

    Pretending that I know what that wiki entry says, because I'm using the wayback machine to read it or whatever...

    I make a small, nodraw box that I place at the lowest part of the scythe, and create a "pivot" because it might be that the scythe is simply going to float along the curve rather than swing like a pendulum.

    This entails a cylinder func_static onto which the the scythe - shaped like an anchor - is "hanged".

    I make a nurbs curve for the swinging path and make a location that, upon entering, calls the script to start the nodraw cube moving along the nurbs - however, I've no information on how to script the [de]acceleration for the cube to move along this curve - so perhaps I'll look in the script repository to find it, after learning a little about scripting basics:

    http://wiki.thedarkmod.com/index.php?title=Scripting_basics

    This lets me know how to call a script and how to call a script that will be triggered by entering the location:
    http://wiki.thedarkmod.com/index.php?title=Location_Settings#Script_calls

    Now I have to add the script to the FM and try to achieve things this way.

    Does it work?
    Not as expected.

    I want the scythe to swing back and forwards as a pendulum. Causing damage if it hits the player (or any non-protected AI) and this does not achieve the swinging motion I want.

    So - being the type of person I am... I give up on this idea and make a mansion mission without traps.

    ----

    However, because I'm the type of person I am... I know there's another solution, as what I want to achieve is possible within TDM ('cos I've done it before and it doesn't require models or scripts - only DR functions and some mechanical solution).


    So - after all that complicated shit and a run-around the wiki. I've learned a few things and found a whole bunch of pages that give me an inkling into what the game was like in 2011.

    So, I search the wiki for "move" and discover the page about moving platforms that gives me a few new spawnargs to play with:

    http://wiki.thedarkmod.com/index.php?title=Platform_That_Moves_When_Button_Is_Pressed

    Specifically - the accel_time and decel time. That's great. That's what I want. Except not for a laterally moving platform. I want something that rotates around an axis.

    "Rotate" sounds like a good thing to look up, so I'm going to type that into the wiki, which scores me the same page.

    "Rotater" (dicktater) or "rotating" is another word that describes the action I want - so I search that and find this page:

    http://wiki.thedarkmod.com/index.php?title=Elevators,_multi-floor

    This page - idk where, I can't remember, tells me there's such a thing as a "func_rotating"

    Perhaps this is useful... If I redesign my idea. Rather than the scythe rocking back and forth as a pendulum - I can fake the effect by having it continually rotate by binding it to a cylinder that is spinning, while re-jigging the corridor so that there is enough space for the scythe to pass through a gap in the wall and ceiling, rather than only nest into the walls.

    To test the idea quickly - I open an old "environment" map that is simply a mesh with a flat space and player start point and quickly rig up some func_rotating cylinders, operated by a switch and bind a func_static to one of them with damage min/max spawnargs in order to test. Not bothering with accel or decel times because I want to simply test if:

    1 - the rotating thing works and
    2 - the "scythe" (in this instance a small block, bound to a rotating cylinder) is going to do damage.

    Now I've set that up, I need to go back to figuring out how to put my design into a playable level and how to get it working in TDM - going back to the A-Z beginner's guide, I remember DMAP:

    http://wiki.thedarkmod.com/index.php?title=Dmap

    I copy my test2.map from my testmap folder into TDM map folder (that's starting to get a little cluttered... have to sort these out into directories....) and open the console using control+alt+` and &dmap test2.map

    Passes without issue, so I load it to play with &map test2.map, as described in the Beginner's Guide:
    http://wiki.thedarkmod.com/index.php/A_-_Z_Beginner_Full_Guide_Start_Here!
    http://wiki.thedarkmod.com/index.php?title=Dark_Radiant_Must_Know_Basic_Intro
    It doesn't work - so it appears that the "damage" spawnarg isn't doing its job.
    There is are entity classes that causes damage that might be bound to the cylinder.

    But - I will have to look at the wiki to figure that out, so I search the wiki for "damage" and discover that the pages I've been using are from 2006 and 2011, which is quite a long time ago:

    http://wiki.thedarkmod.com/index.php?title=Special%3ASearch&search=damage&go=Go

    So, it's probably a good idea to go with a more recent wiki page, that is from the last year or so.

    It appears that the damage spawnarg might have been supersceded by stim/response, but this is getting into scripting - and I want to avoid that, because I like to keep things as simple as possible.

    http://wiki.thedarkmod.com/index.php?title=Stim/Response_Key/Values

    Since searching the wiki is not turning up anything useful - perhaps at this point, I'd ask a question.
    Rather than ask anyone in the forum, as I want the answer right now - I ask google, "dark mod wiki damage spawnarg" and it returns as the first hit something that looks promising:

    http://wiki.thedarkmod.com/index.php?title=Triggers

    I can already see the one I want because it's been visited before and is purple, but I want to look at "trigger_hurt". But first, it's important to read how the triggers work. The page tells me how to create one using a worldspawn brush and right-clicking it to become an entity (that will not function if overlapping others [other triggers]). It also tells me that I need to target something. I want to target the player - so how do I do this..?

    Google helps again with "target player dark mod" and it returns:
    http://forums.thedarkmod.com/topic/16412-setting-spawnargs-on-player/

    that explains that there might be some difficulty in getting the trigger hurt to target everything on the map, but - perhaps a compromise can be made and it would only be the player and AI or objects in the area. But it turns out that a trigger_hurt entity will hurt anything that can take damage, 10 points per second.

    http://wiki.thedarkmod.com/index.php?title=Triggers#trigger_hurt

    This explains a little about the def_damage and damage.def file - referenced earlier in the wiki page on how to get movers causing damage, that was difficult to understand. It mentions def_damage, but there is no further information on this. But it does hint that I might find damage in the root for entity classes.

    The trigger_hurt will damage the activator - either the player or AI (not objects, sadly, which would require stim/response and possibly scripting - which I don't want to have to do, because I don't know anything about scripting yet - I simply want to build a trap... that's activated by a script called by the location system, but, eh well... I'll figure required scripting when I have to), but does allow some control of the amount of damage based upon proximity to the entity that is set to cause damage. Furthermore, can do things such as destroy boxes and other things that are scripted to take damage and "die".

    This would be good for a "graze" if the player barely scrapes past the scythe, or a lethal hit if they are caught with it. But - first to try the simple trigger.

    Back to DR and follow the instructions to make a trigger_hurt to place on the test scythe.

    It works - every time the player comes into contact with the trigger_hurt, it causes 10 points of damage per second, just as the wiki article stated.

    So - without having to delve into scripts or anything too complicated - with some reading in the wiki, I've found a very simple solution to achieve the scythe trap that I wanted to make.

    While it'd be good to start it off with a script called by the location system, it's not really necessary, as - now I now about triggers, I could produce the same effect with a "trigger once" to turn the traps on and open a sarcophagus door to release the zombie and use another trigger to turn all the traps off.

    There's no going back, anyway, so it doesn't matter in which position the scythes end, although it'd be nice to return them to a hidden position... there are other ways to "delete" them as the player jumps across the pit to escape the zombie chasing them down the trapped corridor. From a level design point of view - because there is hidden loot at the bottom of the pit, in the water that is there as a safety net in case the player fails the jump - the zombie being trapped between scythes (as it is invincible) is a good thing, as it removes the fear of descending into the pit to explore, or having that area made off limits by the zombie somehow dropping into it.

    But, because I wanted to ramp up the damage along the corridor, perhaps because the scythes spin faster and the zombie is further away and the player is a little less tense, more focused - a quick look at the stim/response system isn't going to hurt.

    Not hurt me, anyway... Hopefully hurt the player.

    http://wiki.thedarkmod.com/index.php?title=Stim/Response_Key/Values#Damage_Stim

    Straight away - I see: "Note: There is now a stim/response editor accessed via the Dark Radiant entity menu which makes it easier to set these key/values."

    Which makes it far less intimidating - so I search on how to use the stim/response editor in the wiki:

    http://wiki.thedarkmod.com/index.php?title=Stim/Response_Editor

    It's fairly simple, it appears, and contains trigger effects, so I can mess with this fairly simply. It even tells me where to find the editor in DR.

    The stim/response editor is very useful for faking such things as cameras and motion detectors, by using an AI to respond in a certain mannner, eg, pull a switch that causes an alarm and chaos if they become alerted by the player's footsteps on a noisy floor (fake motion detector - player must sneak v. slow or "disable" the system by turning it off and closing the tiny tunnel through which the AI is able to hear the player moving. Just make sure there's no moss arrows available up until that point, or until after the system is disabled).

    There is a small bug with the stim/response editor in that sometimes, after editing a response, it is impossible to change unless the editor is closed and re-opened.

    Not knowing how to use the stim/response editor for damage like this - I follow the instructions on the wiki and set the stim to be the damage. The player is vulnerable to a damage effect. I set the response to be a trigger, damage, target _SELF, but... idk the damage def... there is nothing in the wiki about this and idk where to look for the types of damage (nowhere tells me that there is a list in ..\darkmod\tdm_defs01.pk4\def\ of the different types of damage_def).

    But I DO know from http://wiki.thedarkmod.com/index.php?title=Stim/Response_Key/Values that there is an "atdm:damage_simple" that should be directed at _SELF.

    The stim is set to be active, have a magnitude of 5 and a falloff exponent of 5, chance 100, leaving the bounds to the default values. Just to test.

    All of these properties should now be visible in the entity spawnarg list. I change the trigger_hurt back to func_static

    While checking these properties - I notice that the stim/reponse editor has removed the "bind", so I must put this back in order to re-attach the "blade" to the func_rotating.

    Hopefully, this will cause 50 damage with a close hit and less the further away the player is - that's a decent graze from a heavy swinging scythe..

    But... I've never managed to get the stim/response working for damage like this. Tried pretty much every combination, response only, stim only, etc...

    So, now I have two options open to me as the wiki doesn't really explain well how to do this and I'm too dumb to figure it out.

    Either ask and hope someone answers with an explanation as to what I'm doing wrong - likely get tossed a ball to catch and try to figure it out myself.

    Or - re-think the design and go back to the original trigger_hurt that causes 10 damage and have 10 scythes to negotiate, the last few being doubled up (two placed together), which would prove lethal if failing every timed sprint (or less if the zombie hits).

    That's kinda good enough for a short section of gameplay - but the solution to the problem of "how do I make a corridor of swinging blades for the player to have to run past, while being chased by a zombie" took a lot of reading, a lot of failure and still isn't quite as I'd like it to be.

    I don't even need to touch scripts. Can do it all with triggers and spawnargs and basic level design.



    The reason - other than for this is because the documentation in certain places, such as the stim/response editor is not much more than a single example to copy that does not explain anything.



    This makes it very difficult to simply walk into Mordor and figure out what is not working and why.



    It seems that it would be useful - for, eg, getting crushed under an elevator - to set damage stim/response on one face of the elevator brush for almost insta-death for anything crushed underneath.

    As it is, having to settle for something like the nodraw trigger_hurt works for being crushed under an elevator... it's not the best way and - without the reference and documentation updated as things come up - there's no choice but to have to ask a question, the answer to which often doesn't explain much, or settle for a solution that isn't quite what was wanted.



    But... that's an example of the run-around behind being able to figure out how to do something only one simple thing from a simple scenario, without having to nag about it and hope someone tosses a ball that contains the solution without an explanation.

    If it was painful to read - that's good. Because it was painful having to go through the whole process to find out, "that'll have to do, 'cos can't figure how to do it 'cos there's some missing reading available atm for tdm".

    Also having to type it all... ouch.

     

    • Like 1
  8. Gotta admit - the idea of having the combination lock as a prefab that can be scripted for [multiple] target would be really nice.

    Not only can be used in safes, but also similar to T2:shipping&receiving - for doors or key holders and would allow for more exploration and observation or investigative based alternatives to "find the key" for progression.

    The fact it's only 3 digit combination means it wouldn't take long to brute-force either, if anyone was really stuck. Difficulty could be ramped by adding two combination locks.

    ---

    Quickly testing out ANJ - renaming the mission, inserting the "fixed" script (rem barthing) that stops people's use of the safe in other missions causing a crash - saving the mission in DR, minus ai, and calling the "fixed" script over base, dmap and play - it works fine, 'cept the bar won't move. Didn't notice a crash without // closebar($thatthing) line.

    TBH it might be that the combination lock is more wanted than the safe itself - allowing custom safe designs, but providing the more complex mechanism (eg, disable tools while using combination lock, scroll wheel - rather than change combination with buttons and movers). Plus it negates the need for obstortte to provide the function or the game to include in base for that one particular thing with the bar.

    With a bit of a reshuffle - the closebar function might simply be a mover / nurbs glued to the door that's timed after the wheel turns...

    It's possible to bolt an open door.

    While it might leave the vis. open and cause some ai issues if they're to close the door (eternal, huh, close door), it's kinda neat to put a barrel bolt on a door with a catch on the frame than use the old piece of wood barring the way.

    A combination bolt is security rated 4/10.
    Chain of key hunts is boredom rated 8/10.

    Allowing people to use the NJ safe function (ie, the combination lock) without it being tailored for that one particular safe (with closebar) does appear to be a good solution that mightn't affect anything other than expanding a mission author's toolkit and creative freedom.

  9. That solution is why I asked the questions I did.

    I'm glad someone came up with add function to base, script the mission and allow others to more easily use the combo-safe as module/design asset without problems as backwards FM compatibilty.

    Had said it - it would have likely been dismissed unless it was someone else's solution to an issue raised by another. oh wait... it was.

  10.  

    It would be a better all around solution to get that working generically, rather than having to make alternate versions for each mission.

     

    What does the closebar function do that NewJob needs but other maps don't?

    Without it, in NewJob, the locking bar of the safe does not slide back into place when the door is closed and the safe locked by changing the combination. (console, 123 incorrect combination, locked, nothing else to do, or something - I can't remember the script's output. You or grayman wrote that, icr the //comments).

  11. Grayman - if abusimplea keeps talking to in the manner they do - there's going to be a problem.

    Don't believe any of us have time for that.

    Not contributing anything constructive doesn't lead to anything constructive nor help anyone.

    I understand they're young and into minecraft, but that is no excuse to continually goad me at every interaction.

  12. There we go, thanks Dragofer - not only have you clearly and directly given a hint as to what to look at doing in an instance such as this, you've also highlighted why it's not always the most ingenious solution to the issue 'cos it can cause problems in the future.

    From what you've said, it can be understood that - yes, the script you place (that isn't called customscript.script) into your scripts folder will be used in place of the one named within tdmbase01.pk4, if it has the same name as the script it's going to replace. Furthermore, elaborated that other parts of TDM base might be altered in the same way.

    That's a decent answer to the question as to why it works and how.


    /* I've updated the wiki with an example, alarm script - it's not mentioned anywhere else - as well as clear up the .dds not being a bitmap issue with fonts. Not mentioned GUIs, defs or anything.
    http://wiki.thedarkmod.com/index.php?title=Mission_Filestructure#script */

    • Like 1
  13. Oi, clever clogs - Allow me to highlight that tdmbase01.pk4 is one of the game files, not the mission file...

    How do I go about updating and altering scripts inside of the base TDM .pk4's with my mission.pk4 script, rather than have to fix base tdmbase01.pk4 if I'd like to use this..?

     

    // Did anyone test to see if changing tdmbase01.pk4 script means that A New Job still works? (yes it does).

    Sarcasm and trying to be a smartarse doesn't really help anyone, right?
    An explanation as to help people understand how they can use this ingenious and extremely common method of including a fix for TDM base file FUBARS would probably be more useful, I'd reckon.

    Where in the solution does it say, "oh you can just use your custom script to fix the fact that there's a call for a missing routine that causes the crash, by scripting a change to the base01 script?".

    Also the folder isn't "../scripts" - it's "../script".

    Try.
    Writing.
    After.
    Thinking.

    Grayman said:

    Since closeBar() doesn't exist, either that line in the SVN version of tdm_numberwheel_lock.script has to be removed, or Obs needs to provide the missing routine.
    • Like 1
  14. Believe "faulty" = "bespoke".

    How do you propose to get everyone to change their tdm.pk4s in order to play a mission with that safe..?

    Does the original mission still work with the changes you have made..?

    If yes, perhaps chuck it in the bugtracker, as it's a minor fix and would allow others to use the asset without requiring players to mess around with their game files.

    If it breaks the original mission - then it's not a great work-around, as it means anyone to play your mission is going to have to mess around with their game files and then revert when bored, which is probably a more likely outcome than changing anything in A New Job.

  15. None of the free samples are royalty free without credit, which means typing a whole extra line into readme.txt, that no-one readsme...

    The only royalty free samples that might be remotely suited to TDM would be the reverse sound effects.

    Idk how well Youtube 360 Noscope dubstep music fits into TDM, but at least I've filled a few Gb with .wav files...

    Reckon there's need to isolate and advertise to the correct target market. But if ever I sell the real kit for making electronic music and fall back to using the same samples in a tracker and software emu. that everyone else has heard a billion times - I wouldn't pay for this.

    The fine print was probably the most exciting thing I found at the site.

     

    Just can't imagine sneaking around to this string of free samples, beaded together like the shit that comes out of a goldfish's arse.




    Joins, posts minutes later, leaves, gone like the wind (actually, if you had fart sound effects, that might at least be useful for a computer game).

    If you come back you can tell me why your samples are awesome and why they're so good for TDM and why they're not the bunch of generic, useless shite that I think they are.


    (I'm selling these fine leather jackets).
    • Like 1
  16. Not knowing what I'm talking about, I've really no idea how to set about accomplishing what you are trying to achieve. Might be more confusing than anything...


    I only know that the .def frob_script call is there from looking - it's not something I've used nor ever seen anyone else use with regards to a weapon...

     

    /* don't forget that any script disabling weapons will need to enableWeapon(); to get it working again, but... it's from the definition script call, so, every time it's picked up it'd have to check it it's disabled... idk that one.

    It would be cool to be able to break open locks with a combat knife instead of using picks, but idk how you'd tie that in.

    GetDoor, GetLock(); Open(); (idk, it'd have to target the door and lock or something... idk how lockpicks work, but it'd be a case of figuring that out - probably somewhere in the SDK - and changing it so the knife is a weapon as well as a lockpick)

    */

    Considering how the other guys have explained how weapons work in TDM, how to drop them, spawn a dupe and all that, I can't think of a reason why calling a script would intefere with the item pickup - unless the script purposefully does so.

    Examples of using the .def frob_script for TDM that I might think of:
    Some ultimate loot and the .def says to call a script to start a mover to wake and release a bunch of guards and set an alarm state.
    Tampering with some wiring for a camera, because a button wasn't pushed to "close" the camera view (eg, closing a small hole in rotating room with guard set peeking through the hole who's gonna trigger an alarm).
    Entering or exiting some realm / drugged up state / dream by teleporting the player around the map with some cool effects.
    Setting off a timed explosion to destroy some stuff, closing off a tunnel, replacing the skybox and revealing a bunch of debris objects, particles, sounds, etc... and starting or ending a chain of events.

    There are easier solutions to all of these, without messing with the .def stuff - I'd reckon that everything would have to be scripted, and it'd probably end up being fairly complicated considering the dependencies and calls required.

    There's:

     

    scriptEvent entity getGrabbed(); (to target entity currently in grabber) scriptEvent float isDroppable(); (player - is item droppable?) or scriptEvent void setDroppable(float droppable); (when item picked up - can be dropped?) scriptEvent float holdEntity(entity entity); (force player to "grab", dropping current item - wonder what would happen if the equipped item wasn't droppable and this was used..?)

    Might help with figuring some way to deselect a held item or force it to be dropped or "deselected" by being replaced with $null_entity, by using holdEntity. Would have to figure a way of tying that into the "hotkey" press (it would be really nice to be able to simply press the same button to put away the weapon in TDM, but there's the "clear weapon/inventory" buttons instead (I use ` and ¦ or backspace for those, or tap "1" and scrollwheel down to holster - can be annoying if "1" is the sword cos it increases visability for a moment).

     

     

    Wrt to weapons:

    scriptEvent void selectWeapon(string weapon); (player, selects weapon to be held - this entry is duplicated in script reference, use the 2nd entry)
    (
    $player1.selectWeapon(s);

    where 's' is one of these strings:

    "unarmed" "blackjack" "shortsword" "broadhead" "waterarrow" "firearrow" "ropearrow" "gasarrow" "noisemaker" "mossarrow" "vinearrow")

     

    Guess that something like this might be a "use" script..?

    scriptEvent void activate(entity activator); (activates as trigger, like the brush - idk if there can be another use) scriptEvent void activateTargets(entity activator); (same as before but for multiples)

     

    For "select", idk...

    scriptEvent entity setCurInvItem(string itemName); (don't understand this one, but states it does something with inventory pointing)

    Maybe it'd be easier to steal the definitions of the closest matching weapon in TDM, cos the scripts target those things already... and... thing is - it's gonna run this script every time the weapon is picked up. So there's probably a lot to take into account that someone who is involved with that knows about.

    Idk if you can make a .def call more than one script, but there's no reason why a single script can't catch everything.

    It's just gonna be a pain in the arse to figure out and be mammoth scripting - the script reference page is not pretty to look at and doesn't explain much, so it's a case of trying stuff out until it kind of does what you want, or you figure out another way of doing it, I guess. But it's your best bet, I reckon...
    That's why I prefer to work with "mechanical" solutions using the most basic scripts that I can figure.

    I'm only a lowly artist who gets roped into making puzzles and comes up with ideas, narrative and design that occasionally work, plus BVT/QA if there's nothing else.
    It helps sometimes to speculate why something fails or works in a report.

    Until it's built, idk jack til someone who knows jack figures it out and the new test lets me know what the difference was that means it works now.



    Maybe someone who knows what they're talking about can help more..?

     



  17. Memtest each stick in slot 1.

    Flash new BIOS.

    As biker says - use correct slots for dual channel.

    Drop to 1.2v or switch XMP profile 2 - ought to support 1.35v.

    Ignore rated and go with supported.

    Hope the over-voltage hasn't damaged.

    If not - try to set XMP manually, timings, frequency and voltage or disable.

    Personally, I question the need to overclock. Generally leads to overspending for minimal gain.

     

    // oh you've done it. 1.5v is max, but 1.2/1.35. What's displayed is rated, not recommended or supported. 2666mhz is decent. You're only going to get single channel if you don't use a1/b1.

  18. Check the script ref on wiki for weapons stuff.

    Include keybind for weapon pickup as ready:

    http://wiki.thedarkmod.com/index.php?title=DEF_Files

    "frob action script"

    http://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference#idWeapon

    "weaponstate"

    /* also "an" is only used before a word that has a hard/glottal U sound. Such as "an umbrella / "an umbered coloured gemstone". If it's a "you" U sound - a is how it goes. "A use key" "Pete's a useless tosser". Not "Pete's AN useless tosser" */

     

    As for the inventory stuff, idk about that.
    Used the inventory screen once - didn't like it - never used it again.

  19. Do you remember the issue with visportals and noisemakers?



    Sometimes, a broadhead or simply throwing something works in such instances.

    tbh - I've stopped using noisemakers and take more broadheads as they are more effective and do not cause alert. A broadhead will make a guard turn or walk over to investigate it (and, if it's stuck in wood, is reclaimable).

     

    /* also, if you creep off the box behind the guard at the door and land on the bale while still creeping, it's easy to sneak behind the door guard (or take the thieve's highway near where the bird nest is). You can also kill him if you shoot him in the face or after a bunch of leg-hits with the sword. It's faster to creep, but more stealthy to use the thieve's highway [which I'm guessing is the alternate route] if you're playing ghost. */

     

    // never realised that lowering the ai difficulty would have that effect. Crank everything to full and get rid of the light-gem - it's more fun.

    • Like 1
  20. Nice one, Mike.

    For certain you'll get a lot more help with learning FM design for TDM than with T3.

    Here's a starting point: http://wiki.thedarkmod.com/index.php?title=DarkRadiant - the forums are also searchable and there's the newbie's questions thread also. Maybe in editor's guild. I can't remember where it is...

    Also check out Springheel's tutorial videos: http://wiki.thedarkmod.com/index.php?title=DarkRadiant_Video_Tutorials

    Also Fidcal et al's beginner's guide is a must: http://wiki.thedarkmod.com/index.php/A_-_Z_Beginner_Full_Guide_Start_Here!

     

    /* oh... wait... You're saying "Despite TDM is probably a good idea and I'd receive more help and direction in using it and people might even play the levels I designed... Even though I probably won't get any help figuring out how to do anything [if I run into an issue with T3ed] - it never hurts to get [t3ed] working and [t3ed] shouldn't be that hard to figure out either"..?

    I'm refraining from saying something about getting T2x working.

    dw np... hope it works out for you. (but correct me if I misunderstood - I was dropped on my head a lot as a child, so have difficulty understanding things like accurate transmission of information via structured use of any type of lexical format requiring of logical, correct or grammatical syntax)
    */

  21. forgot. The characters you'll need, other than your own:

     

    !"£$%^&*()_+.-./#1234567890;:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]`abcdefghijklmnopqrstuvwxyz{|}~

     

    (maybe not currency, since it's usually "gold/silver/copper pieces")

    Valentine's Rose: @~8~~~
    Penis: 8==D
    Breasts: ( . Y . )
    etc...

    (super important for readables)

    For .dds font, with shaders and specular maps and stuff - usually it requires something like this:

    http://www.rastertek.com/dx10tut12.html

    So - not knowing how TDM handles fonts, I'm starting to think that the .dds is included as alternative hack-wrap for game engine and not for including such things for fonts to display in-game. (maybe i'm wrong, but idk about that stuff, really - esp. not with TDM)

    Thanks for helping me kinda figure that one out... can scratch that off the list of things that keep me awake at night:P

    • Like 1
  22. Are you able to actually open the .dds files in paint.net..? It's not a bitmap - it's a hack-wrap.

     

    System.FormatException: File does not appear to be a DDS image
    
    
    
       at PaintDotNet.Data.Dds.DdsFile.Load(Stream input) in D:\src\pdn\src\PaintDotNet\Data\Dds\DdsFile.cs:line 469
    
    
    
       at PaintDotNet.Data.Dds.DdsFileType.OnLoad(Stream input) in D:\src\pdn\src\PaintDotNet\Data\Dds\DdsFileType.cs:line 225
    
    
    
       at PaintDotNet.FileType.Load(Stream input) in D:\src\pdn\src\Data\FileType.cs:line 496
    
    
    
       at PaintDotNet.Functional.Func.Eval[T1,TRet](Func`2 f, T1 arg1) in D:\src\pdn\src\Base\Functional\Func.cs:line 158
    
    

     



    It won't parse for me - the .ttf renamed as .dds won't parse in ANY image editor, because it is not a bitmap - it's simply a .ttf renamed so the game engine can snag it using arcane or pagan magic of some kind.

    TL;DR - use a .ttf editor and, if it won't import and/or you can't draw - trace it, either over (insert glyph under and trace/alter) or under (print the glyph onto thin paper-stock and stick it on your screen and trace/alter).

    Even though .dds is a bitmap format - it appears that it's merely used as a hack-wrap for the font in this instance so that TDM can understand it. Same as the .dat (which is the convention used in pretty much every TDM FM).

    As an alternative, if the idea of doing things the easy way is intimidating - it might be worth checking out the old Doom3 font.dat editor:
    https://github.com/Zbyl/BFGFontTool
    which would make the process only a little more complicated.

    Perhaps you might find Fontforge easier to use, as it can add accents to existing fonts:

    Here's an alternative workflow that might prove easier for you (bring the pain!).

    1. Copy the font.dat you want to edit to your desktop.
    2. Rename the font.dat to font.ttf.
    3. Install the font by double-clicking the .ttf.
    4. Open Inkscape and add the character from the font you wish to edit.
    5. Expand the font [object] to path [vector] (ctrl+shift+C) - a tutorial on the process is here: http://studios.clockworkmagpie.com/content/how-make-outlined-text-inkscape <--- only need to do the expand - but, the more you know... // not g, sorry.
    6. Export the vector as .svg, ready to import into Fontforge.
    6a. You will need to do this for each and every character you want to alter, individually; I'm not sure there's a way to batch this using these programmes.
    7. Import vector from inkscape into Fontforge - a tutorial on the process is here: https://fontforge.github.io/importexample.html
    7a. If you're up for a challenge, or for some reason the font doesn't correctly appear, printscreen the character and trace it, manually or with the... "tool" provided: https://inkscape.org/en/doc/tutorials/tracing/tutorial-tracing.en.html
    8. Use the imported vector [character].svg in Fontforge and add the diacritic you need: http://designwithfontforge.com/en-US/Diacritics_and_Accents.html <--- grab Fontforge from git from this link.
    9. Rinse and repeat - I can't remember if there's a way to add (alternative) characters to a font using Fontforge, or if you'll have to do every character from the original .ttf.
    9a. Don't forget to take into account the technical stuff for character spacing, etc..: http://designwithfontforge.com/en-US/Spacing_Metrics_and_Kerning.html
    10. Export the new font you've created as _sl_24.ttf. Hopefully it'll install so you check it out (either in text editor or as html in browser). Rename to .dat and test it in a readable.
    11. Maybe the font can be patched to include the additional characters, but do not believe it would be necessary as you've essentially created a well and accurately-crafted version of the existing typeface, no spacing errors. There's a wiki article about that somewhere.
    12. Job's done, pat yourself on the back.
    13. For good luck - take a 13.

    That's it - it's a bit of a learning curve, will take time, but it's the way I'd do it.

    From this point on, I'm pretty useless to you wrt to fonts in TDM.
    That's the extent of my typographic skill and knowledge and problem solving ability.

    You're not simply "cleaning" up a typeface using a click of a button and a few coding commands - what you're doing is editing the font, like a real typesetter. As how it was made, originally.

    In fact, you're creating a new version of the font.
    Kudos.

    ----



    Afaik - the .dds are the same as the .dat - I could tell no difference, which is why the speculation that it was for compression or placeholder/alternative/for additional maps for the font.

    If you don't like to use Bird - I tried it out and got along with it fine, although it's a little laggy and kind of assumes familiarity from the start - to edit the .ttf and follow the instructions so the .ttf is recognised by the game by simply renaming the resulting font as .dat (conventional) or .dds (apparently not used often, if at all)...

    Awkwardly - perhaps you can use the method similar to games such as old M&B custom fonts, but for doom:

    http://www.angelcode.com/products/bmfont/ <--- bitmap font editor, edit your font, save as .ttf / .dds / .xml (for formatting), etc...
    http://www.angelcode.com/products/pupp/ <--- specifically for .dds (even though the .dds is a renamed .ttf, it might work).
    https://github.com/Zbyl/BFGFontTool/ <--- doom3 font.dat [f/m]aker (requires angel bmfont, never tried it)
    https://www.aconvert.com/image/ttf-to-dds/ <--- online converter, in case of jinks (poss. redundant due to .dds being merely renamed .ttf and not really .dds - also doesn't convert back to .ttf, heh - perhaps a rename will work to .dat, idk... doubtful, as the .dds is not a bitmap, but a renamed .ttf - not sure i've mentioned that...).

    Considering all the stuff is gone that Swyter made to do it for us in a browser, you might need some help understanding how to mess with .xml output in order to adjust the font:
    http://helpsharepointvision.nevron.com/XML_Formatted_Texts.html

    But... even if you could simply convert the .dds bitmat to .dat with a file extension change... that still leaves how to incorporate all the adjustments made using the xml in order for it to correctly display...
    Plus - it's not technically a bitmap - it's a .ttf FONT that has been RENAMED and NOT CONVERTED TO A BITMAP as this appears to happen somewhere in the game engine and I'm too dumb to understand how this works.
    Soooo... for that part it makes sense to be working backwards and setting up the .ttf with .xml BEFORE converting to .dds... which would be a lot of hassle and frustration.
    But... it's not necessary to change to .dds, since:

    a. you've already edited the font using a bitmap editor that's free and easy
    b. there's birdie, which does everything from the .ttf that's wrapped up as .dat/.dds (if you can't draw, simply print the character on a piece of paper and tape it over your screen and trace it underneath - or, copy paste the character from the original glyph and add the marks you need).
    c. the .dds isn't a bitmap, it's a hack-wrapped .ttf font file.
    d. the missions appear to mostly use .dat not .dds... because that's the way the wiki says; it's the convention that appears everyone uses.

    As for getting every FM to use .dds rather than the .dat - that's likely an overhaul of every mission to use .dds fonts instead of .dat, idk.
    I don't think anyone particularly cares much about that side of things right now - it's all about models and squares and graphics and optimisation and breaking the lightspeed barrier.

     

    I've not spotted any use of .dds files in any TDM FM as the convention appears to be to use the .dat.


    I'd prefer a lot of things to be different about my workflow, but even though I can hammer in a nail with a wrench - it doesn't mean I can tighten a bolt with a hammer.

    I've no idea why there are two standards for TDM fonts, so perhaps pretending that the .dds isn't there might help..?

    Here - have some sad, soothing music to listen to while sitting in the corner and sobbing quietly about how it feels to live in a tiny fraction of my world:





    All I figured about the fonts is that they're .ttf that are renamed to .dat and they work if you do that.
    Therefore, instead of working with the extension in a bitmap editor (which doesn't work, as it's a renamed .ttf and not a bitmap, in case I didn't mention that yet) - it makes sense to make alterations to the source, as there may be more to it opening up what may or may not be able to be converted to bitmap and chucking a few dots over it before flicking that bitmap back to a .ttf to format (either using xml or a free font editor...) and rename to .dat or .dds.

    Which'd be a fucking nightmare.

    All the fonts are .ttf.
    They're simply renamed so the game engine can use them.

    That's all there is to it.

    If it was a case of simply editing a bitmap image - I wouldn't have taken the time and gone to such extent to explain the process of how I would do all this if I had to...


    Sorry, mate - sometimes you gotta just "grab the uplay and bite the pillow".

    I can't be more concise than this.

    If you need any help understanding any of this - ping and I'll lend what assist I can, depending available; plate's full.

    GLHF

    • Like 1
×
×
  • Create New...