Jump to content
The Dark Mod Forums

Newbie DarkRadiant Questions


demagogue

Recommended Posts

how it was done in nhat and training mission ?

 

 

I know in NHAT that the terrain was patches but it was broken into segments then exported as ASE models. Then the models were vertex painted in Blender and imported back into Dark Radiant.

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

damn :(

 

another questions : I saw magis Stim in stims catalog,but there no mages in 1.03

 

The any source of magic steam in current entities ?

 

and another one: there pretty easy for me create scene in dromed:servant pick up plate and put it on another table.How i can connect plate with AI hand in game (n Dr of course) ?

 

 

Proceed with caution!

Link to comment
Share on other sites

There is a Prop attachment wiki:

 

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

 

...but it may require scripting to get the desire results?

 

You might be able to use the bottle animation and inhibit the drinking portion? :unsure:

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

damn :(

 

another questions : I saw magis Stim in stims catalog,but there no mages in 1.03

 

The any source of magic steam in current entities ?

 

and another one: there pretty easy for me create scene in dromed:servant pick up plate and put it on another table.How i can connect plate with AI hand in game (n Dr of course) ?

 

 

Yeah that animation may not have been created yet.

I always assumed I'd taste like boot leather.

 

Link to comment
Share on other sites

Workaround, say model plate.

Bind func_static plate to AI hand and give it hide 0

Conv to get AI to lean forward anim

Teleport moveable plate from table to blue room

Trigger static plate in hand so visible

conv sends AI to other place

AI lean forward anim

Teleport moveable plate from blue room to hand position

Might need to trigger it so it drops

Trigger static plate in hand so invisible

Link to comment
Share on other sites

I got this object that I want to put in a slot but I'lled rather uses the stim system to do the slotting, than the, frob fake button teleport fake obj to slot delete real object from players inventory. How would I do that as the stim system is different to dromed's stim system, I know how to do it in dromed stim, but tdm stim system looks like gobblegook.

Link to comment
Share on other sites

A good example for placing something is in Lockdown. You can probably copy and paste the components into your own map then modify them to how you want:

 

The custom stim is just a name and number and gets stored on worldspawn. It can be typed manually or created in the s & r 3rd tab with any entity selected.

 

Look at func_static_383 which is small nodraw brush with the custom stim. Adjust the stim radius to what you want.

 

playersTip is a scroll in the inventory with a response to that stim and this response is set to 'trigger'. In this case it triggers an objective complete which then triggers a script to swop the script for playersTip2 so it drops naturally. Instead you can trigger the script direct if you want. This script just teleports the new script to the hand position.

 

If you just want to place a moveable in a niche in a wall then that should be suffiicient. If you want to position something precisely then the script should place it more directly.

 

Here's the script from lockdown:

 

void swapPlayerTip()
{
vector playersTipOrigin = $playersTip.getOrigin();
$playersTip2.setAngles($playersTip.getAngles() );
$playersTip2.setOrigin(playersTipOrigin);
$playersTip.remove();
}

Link to comment
Share on other sites

A good example for placing something is in Lockdown.

 

My deepest apologies, but I wouldn't say Lockdown had a GOOD example of how to do placing. The placing there had the huge issue of the placement area was way too small. In that map I dropped the tip several times on the table and wondered why the objective did not tick off even when the tip was on the table.

 

When you do placement-things it is vital that the the placement area is big enough. Test thoroughly. It must be intuitive. Make sure the player knows where exactly to put it if the drop location is very small.

 

If it is a slot-thing, S&R is probably fine. But if it is a general drop item at location I recommend this: http://modetwo.net/d...ertain_Location

 

In Lockdowns case the incorrect approach was used, the above objective thingy would have been perfect.

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

I agree that personally I would not have used s & r in Lockdown if it had been my own FM. I just fixed what was there. The choice of big v small radii was permit the thing to trigger held very high or even under the desk versus limit placement to desk centre. I thought the thing triggering over the edge of the desk and possibly falling on the floor was bad. I agree it's a bad example of how to drop something on a desk as an objective.

 

I don't agree it's a bad example per se. It's a good example of how to do what was specifically asked for using s & r and not knowing the exact situation. It might be perfect for a tiny brush in a slot in a wall into which something is being inserted.

 

The defence rests. :P

Link to comment
Share on other sites

The defence rests. :P

 

Aye. The main idea, I suppose, is to choose the correct solution for the given problem. Either case, thorough testing is needed to see that it works. Even the sub-optimal solution is fine as long as it works smoothly.

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

If it has to be precisely placed then instead of the script I'd use the stim responses, teleport and the remove. You can have any number of responses on the same one so if the stim brush is small the player has to get it fairly closely lined up anyway so when it jumps into position it won't be too noticeable. Orient the replacement in a blue room so its facing the right way. Unless it's a moveable and might drop to a different rotation. Else try the set angles response. There's another response where you can also optionally deactivate the stim afterwards although a single stim firing once a second is not a big performance issue.

Link to comment
Share on other sites

Hi Fidcal, do you remember when you advised me how to make the chandelier extinguishable? Now I have another 2 chandeliers in my map and I adjusted them same as the first one. However, I don't know how to change the script file to work for all chandeliers.

 

The original script file is:

 

void ExtinguishChandelier()

{

$Chandelier1.setSkin("chandelier_candles_out");

}

 

One of my desperate attempts is this.

 

void ExtinguishChandelier()

{

$Chandelier1.setSkin("chandelier_candles_out");

 

$Chandelier2.setSkin("chandelier_candles_out");

 

$Chandelier3.setSkin("chandelier_candles_out");

}

 

Ofcourse its not working :D

So I would be grateful if you can advise me again :)

Link to comment
Share on other sites

Rek, unless I'm mistaken, you probably want each chandelier to be extinguished on a case by case basis? So create 3 separate scripts (void ExtinguishChandelier1()... void ExtinguishChandelier2()...) each operating on their own single chandelier. And then assign those scripts to the chandeliers in question (and reassign the original to it's new void ExtinguishChandelier1() routine).

 

You could do things cleaner I imagine with a set of "case" or "select" statements, yes, but I do not know the syntax of these scripts so I can't help beyond the suggestions I give you here.

 

Hope you get the gist of it.

Edited by Aprilsister
Link to comment
Share on other sites

Well I can try that. To make you better understand what I mean here is what Fidcal sent me:

 

Try this:

 

  • Create the model:
  • models/darkmod/lights/extinguishable/ chandelier_6candles_longchain.lwo OR...
  • models/darkmod/lights/extinguishable/ chandelier_6candles.lwo
  • Name it Chandelier1
  • Optionally give it noShadows 1
  • Optionally convert it to func_pendulum and give it speed 0.5

 

  • Create light_extinguishable_moving and place it at about the height of the model candle flames but in the centre of the chandelier.
  • Give it target ExtinguishChandelierScript
  • If pendulum then bind it to the chandelier

 

  • Create a atdm:target_callscriptfunction and stick it in the middle somewhere.
  • Name it ExtinguishChandelierScript
  • Give it call ExtinguishChandelier

 

Create a plain text script file if you haven't already got one named mymap.script and put it in your maps folder

Put in it:

 

void ExtinguishChandelier()

{

$Chandelier1.setSkin("chandelier_candles_out");

}

 

Create a plain text skin file called say mymap.skin and put it in a skins folder

 

Put in it:

 

skin chandelier_candles_out

{

model models/darkmod/lights/extinguishable/chandelier_6candles.lwo

model models/darkmod/lights/extinguishable/chandelier_6candles_longchain.lwo

 

textures/particles/candlefire nodraw

models/mapobjects/hell/Site3/archviletemple/

candle_d nodraw

}

 

It works fine for my one chandelier and now I want to get it work for another two.

Edited by Rek
Link to comment
Share on other sites

First make three little changes to your original as follows:

 

In your text editor, change your first script name from

void ExtinguishChandelier() to

void ExtinguishChandelier1() so it looks like this.....

 

void ExtinguishChandelier1()

{

$Chandelier1.setSkin("chandelier_candles_out" );

}

 

Rename your atdm:target_callscriptfunction entity from ExtinguishChandelierScript to

ExtinguishChandelier1Script

Then change the name in its 'call' property value to

ExtinguishChandelier1

 

In your light_extinguishable_moving change the target from ExtinguishChandelierScript to

ExtinguishChandelier1Script

 

Test it and make sure it still works.

 

~~~~~~~~~~~

 

If it's OK then you need only copy it as follows:

 

Copy the 4 lines in the script file and paste them below in the same file and renumber the 1 to a 2 so it looks like this.....

 

void ExtinguishChandelier2()

{

$Chandelier2.setSkin("chandelier_candles_out" );

}

 

In Dark Radiant, Clone your atdm:target_callscriptfunction entity and name it ExtinguishChandelier2Script

then change the name in its call property value to ExtinguishChandelier2

 

Clone your light_extinguishable_moving then change the target in the clone from ExtinguishChandelier1Script to ExtinguishChandelier2Script

 

Clone your chandelier and name the clone Chandelier2

 

Test that works. If OK, then repeat for the third chandelier but change the '2's to '3's.

 

Note that you don't need to change or add to the skin or material files.

 

So each one works like this:

 

water arrow > flame1 (extinguishes) > scriptcaller1 > script1 > change skin on chandelier1

water arrow > flame2 (extinguishes) > scriptcaller2 > script2 > change skin on chandelier2

water arrow > flame3 (extinguishes) > scriptcaller3 > script3 > change skin on chandelier3

Link to comment
Share on other sites

there any optimizations methods exept visportalizing ?

 

General Performance Advice:

 

http://wiki.thedarkmod.com/index.php?title=Performance:_Essential_Must-Knows

 

Monster Clipping:

 

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

 

Interleaved Thinking Optimizations:

 

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

 

Finally:

 

Make any ornamental architecture into func_static. If if cannot be reached set it to nosolid.

 

You need to balance how large a surface is hit by a single light source verses how many lights are in a scene verses how many materials.

 

You may create low-poly "shadow meshes" inside your Brushwork and set your Brushwork to noshadows.

 

(That's all I can think of without wacky stuff like Strombine lighting or Camera Cubemapped Visportal Patches)

Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Status Updates

    • taffernicus

      i am so euphoric to see new FMs keep coming out and I am keen to try it out in my leisure time, then suddenly my PC is spouting a couple of S.M.A.R.T errors...
      tbf i cannot afford myself to miss my network emulator image file&progress, important ebooks, hyper-v checkpoint & hyper-v export and the precious thief & TDM gamesaves. Don't fall yourself into & lay your hands on crappy SSD
       
      · 2 replies
    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 7 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
    • The Black Arrow

      I wanna play Doom 3, but fhDoom has much better features than dhewm3, yet fhDoom is old, outdated and probably not supported. Damn!
      Makes me think that TDM engine for Doom 3 itself would actually be perfect.
      · 6 replies
    • Petike the Taffer

      Maybe a bit of advice ? In the FM series I'm preparing, the two main characters have the given names Toby and Agnes (it's the protagonist and deuteragonist, respectively), I've been toying with the idea of giving them family names as well, since many of the FM series have named protagonists who have surnames. Toby's from a family who were usually farriers, though he eventually wound up working as a cobbler (this serves as a daylight "front" for his night time thieving). Would it make sense if the man's popularly accepted family name was Farrier ? It's an existing, though less common English surname, and it directly refers to the profession practiced by his relatives. Your suggestions ?
      · 9 replies
×
×
  • Create New...