Jump to content
The Dark Mod Forums

STRUNK

Member
  • Posts

    388
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by STRUNK

  1. @MirceaKitsune Lol, I let your script and mine run together it does add up, where your script also has a difference in move speed and distance moved, my script just flings the stuff with the same speed. Also, sometimes two objects move at the same time this way or get influenced by the 2 scripts in the same move. Maybe you could try running your script 2 times (different names and different random triggers)? VIDEO - 2 annoyed Ghosts throwing stuff around I make a little bow for script btw, I can't abbreviate my thought into script like this, 'caus i'm thinking cogs and rods : ) Also, is it an objective to set the ghosts free?
  2. Nice! You are learning fast! You trigger it with a trigger with random wait time I guess? I posted a video with added fx. You could use the same trigger and an other trigger to tiggeron/off sound and visual fx : ) In my adjusted script it also only jerks on it. Looks quite spooky actually. I found there is also moveable loot that can be used, only if the player get's the loot it's still listed in the trigger_sequencer, and the script stops when it can't find the (random chosen) entityname.
  3. VIDEO: randomly thrown stuff by scary ghosts part 2
  4. @MirceaKitsune This is funny stuff : D I got it figured out. You can use all entitys from the Moveables category (Create entity -> Moveables) and you need to set the spawnargs of all the items to frobable : 0 , otherwise strange things happen when you are holding one of the items. It doesn't matter where you put them. The next step will take care of it. Next you need to create a trigger_sequencer (Create entity -> Triggers), name it Stuff, and target (ctrl+k) all of the items that you want to be thrown. The script will randomly pick one of the targets from the "list" of targets that this trigger_sequencer has. Then you have to make a moving object, like a sliding door, to be the target that the stuff is thrown towards, and name it ThrowTarget. Here is an example of how I set the spawnargs on this (see video at the end): Also you have to create a little brush and make it a func_mover (Create entity ->Func -> Movers) and name it Mover. This wil go, by script, to the position of the item that is to be thrown and then to the position of ThrowTarget, and the stuff binds to it, and unbinds. The script to start it all is StartThrowingStuff and can be called by a target_callscriptfunction, an objective, etc. Here is the script: And here is a video of the test in my workshop, where the blue block is ThrowTarget, and the red cube is Mover (they shall be textured NoDraw ofc. but for now it shows a bit of the mechanics at work): VIDEO: randomly thrown stuff by scary ghosts part 1 There are still tweaks possible, like having the stuff not thrown that hard, changing the ThrowTarget path, or have it thrown toward, but not directly at, the player. Even a throwing sound can be added and spooky light/particle fx : )
  5. @MirceaKitsune I have something simple but effective working for 1 object now. It looks just as throwing and it's going a different direction every time. Tomorrow I'll look at how to have more objects thrown in random order, with random time between throws. This is already very cool, and with very little change throws can be at the players head also : D
  6. @MirceaKitsune There is a scriptfunction moveToTarget that I use for a bat, chasing a semi-random moving target. You could have some targets moving "around", and have the items move to these targets. Do they have to fall down again?
  7. @MirceaKitsune I can't think of another posibility. You already have a script for the killing AI when taking the trophy (I think). This works the same and you put it in the same script file, so it should be easy. Only thing is you have to put all your locations into it to get all their music to nosound so only the final music is heard everywhere.
  8. @MirceaKitsune Ok, you can add the following to your script, that can be called by completing an objective: void ChangeMusic() { $LocSet.stopSound(0,0); //LocSet is the name of the atdm:location_settings sys.trigger($FinalMusic); //FinalMusic is the name of a atdm:speaker_ambient_music $LocSet.setKey("snd_room1","nosound"); //snd_room1 is the name of a location $LocSet.setKey("snd_room2","nosound"); } An atdm:speaker_ambient_music is heard in the whole map, so you set the music there that should be played from that moment to the end. You should aad this in your map and make shure to set s_waitfortrigger:1
  9. @Bienie That is even less script, so that's good : ) I thought acuity_tact to 0 would somehow change the behaviour of AI a bit and would be least noticable on zombies. Intrestingly zombies don't seem to need having StimEnable (14, 0) on the dead bodies to not see them. Could you test with only acuity_tact:0? It looks like that might be the only thing needed from my quick test.
  10. @MirceaKitsune Dou you have all the music for your locations defined in your location settings entity?
  11. @MirceaKitsune I think I found how the DropDead script works for zombies now. See last sentence in my former post.
  12. @MirceaKitsune @Bienie I think I found a solution!! VIDEO - Guards and Zombies don't bother dead bodies, but react to the player EDITED. What I posted first didn't work. This I tested and think really works. void DropDead() //Or whatever name you gave it { $Target1.setEnemy($Guard1); //Target1 is becoming enemy to Guard1 (before it dies) //Guard1 is the name of the AI that shouldn't bother about the corpse $Target1.setEnemy($Guard2); $Target1.setEnemy($Guard3); $Target1.kill(); $Target2.setEnemy($Guard1); $Target2.setEnemy($Guard2); $Target2.setEnemy($Guard3); $Target2.kill(); $Target3.setEnemy($Guard1); $Target3.setEnemy($Guard2); $Target3.setEnemy($Guard3); $Target3.kill(); } Be sure to put the Guard(s) in a different team then the Target(s) (In the enty editor, spawnarg team) and that they are not too close to the Target(s) when they drop dead. To work for zombies, just use the "old" DropDead script and set the zombie's spawnarg acuity_tact to 0
  13. @MirceaKitsune In the script, could you test replace kill with becomeRagdoll to see if the zombies react to that? void DropDead() //Or whatever name you gave it { $Target_1.becomeRagdoll(); $Target_2.becomeRagdoll(); $Target_3.becomeRagdoll(); } If they don't react, the fallen ones should be stopped flopping around, and I still don't know how to do that. I found stopMove() and https://modwiki.dhewm3.org/StopAnim_(script_event) You could try void DropDead() //Or whatever name you gave it { $Target_1.becomeRagdoll(); $Target_1.stopMove(); $Target_2.becomeRagdoll(); $Target_2.stopMove(); $Target_3.becomeRagdoll(); $Target_3.stopMove(); } but I don't know if it works. I also don't know how and if stopAnim works ... For the Luteplayer beïng invincible you could add this to your script void KeepPlayingLute() // or void wathever_name_YouWant { $LutePlayer.ignoreDamage(); //Did test } void main() // this exact name "main" will be called by the system itself at gamestart. It only "knows" the things above it, not under it { KeepPlayingLute(); //This says: execute KeepPlayerLute. //Note: The other script you made for the AI dropping dead when player gets the trophy is called by the objecive } Here is a page with the script events from doom3, they work for TDM. There is a lot to play around with: https://modwiki.dhewm3.org/Script_events_(Doom_3)
  14. @MirceaKitsune You schouldn't attach it to a joint. You schould only have spawnarg "def_attach5 : atdm:prop_playable_lute" for the lute prop overwrites/sets the "idle anim" and the position of the lute. https://forums.thedarkmod.com/index.php?/topic/9082-newbie-darkradiant-questions/&do=findComment&comment=452516
  15. @MirceaKitsune To mute the lute with an invisable objective set the following, where LuteMusic is the name of the speaker and LutePlayer is the name of the AI:
  16. @MirceaKitsune I found the entity definition for this lute: It seems you only have to attach it and the rest is done for you, so you don't have to specify a joint. As for the sound I guess you have to use a speaker. Here is a thread about the lute:
  17. Aha : ) When I make a spere patch and then apply a texture it seems ok.
  18. @MirceaKitsune Why don't you have a flat patch then?
  19. @MirceaKitsune I don't understand what you mean. You have a patch that is half a sphere and want to have that rug fitting the patch, or do you want a straigt flat rug/carpet?
  20. @Destined I tried again with the grammo, but nothing happens, even with a trigger in between. I guess a model on it's own doesn't have anything in it to define what happens when frobbed, so a frob_action_script should be added. I also tried frob_action_script:frob_door , that is already in the game itself, so doesn't have to be scripted separately, but that doesn't work. But I found a post regarding this: That way it works without having to write your own script : ) Thanks .. I have put the simple/obvious method in to the post/tutorial.
  21. @Destined I figured it out and changed it in the post.
  22. @Destined Thanx for the wiki link, I got it figured out. There is a checkbox "Player responsible", and when that is checked for the "do NOT kill"Component, the mission only fails when the player kills an AI, not when AI is killed by a script. @grayman I got it working. @MirceaKitsune I made a little map with the things you want to happen, and added a little something to the script to have the AI not drop dead all at once, but with a little time in between. Be shure to also read the wiki page about Objectives that Destined linked to to understand what is going on in the Map -> Objectives (editor). Note that the yellow cube is a "atdm:target_addobjectives" and the (renamed) "kill" script is not called by a (simular looking) "atdm:target_callscriptfunction" but from the Objective(s) "Steal the Trophy". Put the map and the script in the folder where your own map and script is, so you can check it out and run it like your own map. Objectives.mapObjectives.script VIDEO Objectives For the gramophone: Create model -> darkmod/musical/grammo3.ase. If you want music to come out of it when frobbed, add 2 spawnargs in the Entity editor (of the gramophone) : frobable:1 and frob_action_script:frob_trigger Now Create speaker (like you create an entity or a model etc) and choose: The Dark Mod 2.0 (Standalone)/sfx/world/musical/frob_instrument_victrola , and click ok. Then, in the speakers Entity editor add a new spawnarg: s_waitfortrigger:1 (otherwise it starts playing at game/map start). Now simply select the grammo, then the speaker and press ctrl+k so the speaker is triggerd when the grammo gets frobbed. You can set the reach of the sound comming from the speaker by dragging in or out the cricle(sphere) around it (a bit like how you can do with lights). Also read https://wiki.thedarkmod.com/index.php?title=Setting_Up_Speakers for more about working with speakers. I also made a more complex map with the gramophone and playing music is now an objective to complete the mission, adding yet an other way to complete objectives : Objectives2.scriptObjectives2.map Video Objectives2
  23. It should happen when an objective is completed.
  24. @MirceaKitsune Oh sorry for that, may bad. I didn't think of that. Glad you got your first script to work.
×
×
  • Create New...