Jump to content
The Dark Mod Forums

STRUNK

Member
  • Posts

    479
  • Joined

  • Last visited

  • Days Won

    14

Everything posted by STRUNK

  1. @MirceaKitsune I think I found how the DropDead script works for zombies now. See last sentence in my former post.
  2. @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
  3. @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)
  4. @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
  5. @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:
  6. @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:
  7. Aha : ) When I make a spere patch and then apply a texture it seems ok.
  8. @MirceaKitsune Why don't you have a flat patch then?
  9. @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?
  10. @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.
  11. @Destined I figured it out and changed it in the post.
  12. @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
  13. It should happen when an objective is completed.
  14. @MirceaKitsune Oh sorry for that, may bad. I didn't think of that. Glad you got your first script to work.
  15. Never worked with objectives, so I don't even know where to find (fill in) that : D The script I understand.
  16. @MirceaKitsune With a button you can also trigger scripts to run. $NPC_Name.kill(); should go in a script. In fact it's very simple, and can get very complicated. When you make a switch, instead of targeting a light ( ctrl+k), you can trigger a "atdm:target_callscriptfunction" (rightclick (with nothing selected) and choose Create entity -> Targets -> atdm:target_callscriptfunction. You'll get a yellow cube. Select the switch, then the yellow cube and press ctrl+k. Then select only the yellow cube. In the entity inspector you add a new "spawnarg" by typing in the first box: call and in the second box: kill, like this: Then you have to open notepad and type the following, where $Target_1 $Target_ etc (you can add more targets ofc.) are the names of the AI that should die, with $ in front of it ($gatekeeper, $guard2, $whatever ... ). void kill() //this could also be: void DropDead() if you set the spawnarg "call" to "DropDead" { $Target_1.kill(); $Target_2.kill(); $Target_3.kill(); } Then save it with the same name as your map as a .script file; yourmap.script. That .script file must now be put in the same directory as where your .map file is, and it should work. Springheels method is easier for this case, especially when you bind the damage brush to the AI ... but with a little knowledge of scripting you can do a whole lot of epic stuff : )
  17. @grayman That would be it : D But how to have a finished objective trigger that? (I never did anything with objectives)
  18. I'm trying to get stopAnim( float channel, float frames ) to work, but I don't even have a clue about what the channel should be : D And when putting -1 as frames, is it never going to stop (endles number of frames)? The ragdoll is working, but they keep flopping around a bit : P Other thing is, my approach would be scripting the event with becomeRagdoll and having the AI lay still. Simultaniously a death screem is triggered from speakers bound to the targeted guards. But I haven't got experience with AI in a map yet. How would you approach this?
  19. @MirceaKitsune I found this script event: BecomeRagdoll https://modwiki.dhewm3.org/BecomeRagdoll_(script_event) If you are familliar with writing scripts you can try if that does what you want, otherwise I can try making a simple script for it.
  20. The camera approach to the "portal" doesn't seem to work in any way I can imagine. Even tried adding a mirror to point the camera at. Now I had an other idea: having a brush with portal_sky texture, you can see through a wall with that, to move over a wall relative to the players position but the problem is .. you can only see through the wall when it's still worldspawn, so it can't be moved by script .. Does anyone know of an other glich that works when it's a func_mover ... or any other glich that might worth looking into?
  21. @MirceaKitsune There is a button in the top of the screen called "Select Group Parts" (looks like a rubix cube a bit). When you activate it you can select individual brushes .. it seems. Other entities like triggers and models can't be selected that way ... it seems. (I just tried this for the first time).
  22. I'm trying to recreate some sort of portal like in @Dragofer's post above and have a camera a target_null and a screen. I have the target_null moving relative (in an other room) to the players EyePos(ition) .. but it doesn't change the view. (have a visable cube bound to it to check if it it's indeed moving, and it is). When I place the target_null in a different place in DR, the view angle of the camera is different, so it seems to me it only checks whet the target_null is at gamestart, but doesn't update after that. Is there a spawnarg that should be applied to have it update all the time, or do I have to take a different approach and ajust the camera view angle (rotation) with a script? EDIT: Have the camera now looking around, but ofc. this doesn't work, for when you pan a camera, the straight horizontal lines get skewed on the screen : )
  23. @Dragofer I'm gonna try if this works : )
  24. @Dragofer If a camera was in an other room, and it stays in relatively the same position as the players head (getOrigin() and add distance in one direction to be in the other room). And you can make it "look" the same direction as the player (getViewAngles( )), you could have that video feed showing on a screen in the room where the player is, so he can see it.
×
×
  • Create New...