Fair Strides

Administrators
  • Content Count

    2,334
  • Joined

  • Last visited

  • Days Won

    73

Everything posted by Fair Strides

  1. Looks like Windu survived the fall... http://imgur.com/44c9TIB

    1. aneeryrlue

      aneeryrlue

      lol right. the force being with her.. Oo

  2. Okay, I'm going to go a bit basic here and I apologize if that makes you feel bad. In AniCam, we make a new model just by opening the program. A. This is the entry index in the animation. Think of this as a list of steps or instructions. The lower the number, the closer to the beginning this step is. B. The time of the entry. 0 is right when the animation begins, 0.5 is half a second after the animation begins, and so on. C. This is the X-coordinate for the camera at the given moment in the animation. If you looked at a level from above, the X-coordinate would be where you are on a horizontal (left-to-right) line. D. This is the Y-coordinate for the camera at the given moment in the animation. If you looked at a level from above, the Y-coordinate would be where you are on a vertical (top-to-bottom) line. E. Z-coordinates are a little different. Basically the Z-coordinate is your height. If it's 0, then it's on the ground (or in the ground depending on elevation). About eye-level with most NPCS would be 1.66. F. Your Heading is measured in degrees. It is also your horizontal rotation. For example, if you were standing in front of a door, and then turned 90 degrees to your left, your Heading would be 90. Yes, it's measured counter-clockwise (CCW). G. Your Pitch is your vertical rotation. If you look at the floor, your Pitch is 0; if you look at the ceiling, it's 180. The default Pitch is 0, but a Pitch of 90 is staring straight ahead. H. Your Roll probably won't be used much, but it's a very powerful tool. A default of 0 means the camera is normal. If you were to set it to 90, however, your camera would be "sideways". Like you had set the camera down on it's side on the ground. I. What kind of interpolation you have. If you have "No interpolation", your camera would jump from one entry to another, and could look rather stiff. If you have "Cubic Spline interpolation", it will attempt to gradually shift between the entries of the animation, and will indeed be much smoother. J. Your camera's name. This can be up to 16 characters long, and it should also be what you name the .mdl and .mdx files. Following that vein, it should also be what you put into the DLG Editor. K. The duration of the animation. If it's the same length as the last Time of the last entry, then all is well. If it's longer than than the last Time of the last entry, then the camera will pause there until its time is done. For example, if I have a 28-second animation but the Camera Shot Length is set to 30, the camera will stay at its final position for 2 seconds. Now for a very small primer on the coordinates in-game. Depending how the level is set-up, X can be horizontal or vertical movement, and the Y will always be the opposite; however, Z will always be the height. 0 doesn't necessarily mean the ground, though. If you're on a 5-meter tall hill for example, the "ground-level" Z-coordinate would be 5, and eye-level would be 6.66. You can find the coordinates of ground-level for where the player is by downloading, installing, and cheating in these items: http://www.mediafire.com/download/elz7k5r3jakre91/Utility_Armbands.zip Read the read-me please. You will need to get the Orientation armband in-game by using "giveitem sa_ori_arm" in the cheat console. Once you have it, equip it, and the icon should appear where your stimulants and energy shields are in the UI. For the purposes of this example, this is where I'm at in the game and I won't be moving except to get more coordinates. Activate the armband and then open your menu. Go to your Journal menu and click on the Message Log. In the message Log, go to the Feedback section. You will need to scroll up a bit to see the beginning output. In the above picture, the only things we care about are the Player Location and the Angle Orientation. Here the Player Location is 315.696, 113.64, 6.78. These correspond directly to XYZ. The Angle Orientation is 322.43, and this is what you would put in the Heading. If we were to use the above data for the beginning of an animation, it'd look like this (ground-level of course, unless you want to add 1.66 to the Z-coordinate). To keep it simple, let's make the camera come up to eye-level mid-way between my PC and Handmaiden. To do this, we need to modify our original coordinates to be a bit to the left and in front of where I'm standing, and facing to my right. I'm thinking 3 seconds is slow enough to be a good speed, and all we need to do is animate the Z-coordinate to change each time (otherwise this would be much harder). However, I'm setting the animation length to 5 seconds to give a chance to see the angle. Here's the animation in AniCam when all is said and done. You might notice that I've named the model "fs_test". I'll use this in the DLG file. (double-checking the read-me, it seems you start with 1200, not 1201... oops) Now I follow the instructions in my original post, but I use Handmaiden's DLG file. I still use 1200, then 1000, then 1000 for the Camera Animation numbers. When I test it in-game though, something interesting happens. The entire angle is rotated for some reason. After doing some testing, I found that you need to subtract 90 from the Angle Orientation you get from the armband. So 222.58 needs to be 132.58 in AniCam. Test_Files.7z Here's the files to see this in action below (mind you, I'm using a vanilla handmaiden.dlg, so if you have one in your Override folder, back it up before you overwrite).
  3. If you're referring to the areas on Telos, the lower areas are actually part of the walkmesh and perfectly valid in the game's logic. I've never head of the game ignoring the Z value in any cases for creatures, regardless of how they're made... Edit: And if you really wanted to, there is the SetCameraFacing function to correct the issue.
  4. I don't think going below the ground will work. Only works on placeables and doors and stuff. Creatures are glued to the ground, even in the .git file.
  5. In that case, you can use the Player's position and the position of the farthest object away and make good use of the HasLineOfSight function: "// 820 // RWT-OEI 04/06/04 // This returns TRUE or FALSE if there is a clear line of sight from // the source vector to the target vector. This is used in the AI to // help the creatures using ranged weapons find better places to shoot // when the player moves out of sight. int HasLineOfSight( vector vSource, vector vTarget, object oSource = OBJECT_INVALID, object oTarget = OBJECT_INVALID );"
  6. vector vPCPos = GetPosition(GetFirstPC()); // Get PC's XYZ float fPCFace = GetFacing(GetFirstPC()); // Get PC's directional facing (0 - 359) vPCPos.x = vPCPos.x - 1.5; // Now we're 1.5 meters behind the PC's X-coordinate vPCPos.y = vPCPos.y - 1.5; // Now we're 1.5 meters behind the PC's Y-coordinate // (effectively 1.5 meters diagonally away from the PC) location lPCLoc = (vPCPos, fPCFace); // Our new location, which could then be used // in CreateObject to spawn something.
  7. Ideally, you'd have it setup like this (I was just giving an example with Carth and the player):
  8. Actually, that's not the case. You can use GetAppearanceType(OBJECT_SELF) to figure out the appearance.2da row the player is using. And each player in K1 uses one of three rows to account for the different class heights. So, the first female asian player uses rows 91-93. So if GetAppearanceType(OBJECT_SELF) returned 91, 92, or 93, you'd know the player had the first female asian head (row 26 or heads.2da). So you'd have them equip an item only to equip another item over that later? Besides that, the approach you've described is used in Antonia's Disguise mod for K1. The boolean and effect and all that was why I opted for the EffectDisguise route, but if you wanted to be really sure of things, you could take all of the code I posted above and move it to a custom function. Then you could use the following to remove most of the delay and keep the effect current between effect-removals: (for the following, let's assume I moved all the code into a new function named DisguiseCheck and pass OBJECT_SELF to it) DisguiseCheck(OBJECT_SELF); DelayCommand(1.0, DisguiseCheck(OBJECT_SELF)); DelayCommand(2.0,DisguiseCheck(OBJECT_SELF)); DelayCommand(3.0,DisguiseCheck(OBJECT_SELF)); DelayCommand(4.0,DisguiseCheck(OBJECT_SELF)); DelayCommand(5.0,DisguiseCheck(OBJECT_SELF));
  9. I've just checked, and apart from modifying the OnHeartbeat script and using checks for the object, tag, and a global boolean, you wouldn't be able to do what you want to do. For modifying the OnHeartbeat, you'd need to do something like this: That would have to be done for every party member, and in the case of the player, you'd see GetTag equaled "", since the player has no tag. The only real cons here are the following: 1. This depends on the Heartbeat, which fires every six seconds, so there could easily be a delay between the item being equipped and the effect happening. 2. This is done by an Effect, and despite it being DURATION_TYPE_PERMANENT, this effect can be removed with ClearAllEffects. This could be worked around a bit by this:
    1. Salk

      Salk

      I tried... :) Not sure I can be of any help though.

  10. If it was something like an armband, then it would indeed be possible. Otherwise, there's no way to make an item activate a script.
  11. Random numbers won't work. You need to make the exact edits from my instructions, but if you want to use different numbers, you'd need to make more animations in the model in AniCam. For example, the second animation in AniCam would use 1202 and 1002 in DLG Editor. 5th would use 1205 and 1005. Something else to watch out for: the coordinates you enter in AniCam are not relative. If the X coordinate in AniCam is 100.0, then the animation will be at 100.0 in the X plane in-game. So this will look different in every module you use it in.
  12. *sigh* I'm not trying to sound cruel or ungrateful or anything like that, but I've kind of been holding off on talking about any of this stuff or dealing with it because in all of the two pages of discussion in the MDLOps thread and all the weeks since that started, no one thought to contact me and ask for any input or help. My name's at the top of the thread and the first post, and several times in the discussion you guys mentioned getting help and contacting people, but I'm not sure if that ever happened. @ndix UR: I am very grateful for your most recent post in the MDLOps thread and that does help a lot. I'd be interested in further contact and I can work up some tables for the formats at a later date. Most of the time, I juggle between projects, so I can't guarantee on when.
  13. Replying to Aneerylue in the PM he sent me, so hopefully he'll stop spamming the forums.
  14. Replying to Aneerylue in the PM he sent me, so hopefully he'll stop spamming the forums.
  15. Replying to Aneerylue in the PM he sent me, so hopefully he'll stop spamming the forums.
  16. Worth noting is the fact that when I opened the baodur.dlg file, none of the edits from your pictures were there. Did you send me an un-edited DLG file? Anyways, I applied the edits just like what was in your pictures and then loaded up your save. I should say that I have the .dlg, .mdl, and .mdx in the Override folder before I started the game up. Everything worked in-game, though the camera actually wasn't showing you anything because of the position.
  17. @Salk: I will definitely be investigating that when I have the time. @NotYourTypicalNurse: Have you tried re-downloading the installer? Generally if something is marked "corrupt" it won't matter what decompress you use, since the download most likely got interrupted or cut off.
  18. Can you give me a save on here to test the Beks part of the swoop race? Also, I can fix the Republic guys.
  19. Try using 1200 and 1000, and if that doesn't work, send me the dlg, a save, and the .mdl and .mdx files.
  20. You do not need KT's Conversation Editor (it's actually encouraged that you not use that one, especially since you can't use it for KotOR 2 dialogs). I recommend grabbing the DLG Editor from the Modding Tools section of the Downloads. For which files to edit, you just need the dialogs themselves. In DLG Editor, the dialog content is shown in an upper pane and you click on a line to see its properties appear in the lower pane. You can also right-click a line to add new lines under it (Entries are the red lines and are for NPCs; Replies are blue and are the player's lines). Added lines automatically have the StrRef (lower pane, upper-right corner) set to -1, so you just need to type your text into the big box underneath. Conditional scripts are used to make a line show up or not show up, and are marked in DLG Editor on the lower pane's far left (the "Script that determines availability" field). One last thing: To make a line's properties actually get registered by DLG Editor, you need to click on another line in the upper pane. After that, you can save the file.
  21. Yes, though you don't need to edit the dialog.tlk file if you're only interested in the mod being in English. You can just leave the String Ref in the DLG entry -1 and type your text in.
  22. They're specific scripts and so are contained in the level itself. So they're in lev_m40aa_s.rim. You shouldn't need to worry about that, since you should just be able to put those into any dialogs in that level. And that's the only level where your party members are under your control, so there's nothing to worry about. Besides, all the "k_plev_escplot#x" scripts do is check if the global number "Lev_Escape" is equal to #. Similarly, the "k_plev_escplot#" scripts set the "Lev_Escape" global number. All you need to do for this to work in this level is put the script names in the previous post into the "Script that determines availability" field for your added lines.
  23. Looking at the scripts, you could actually just use the scripts themselves. k_plev_escplot1x = Mission k_plev_escplot2x = T3 k_plev_escplot3x = Jolee k_plev_escplot4x = Canderous k_plev_escplot5x = Juhani k_plev_escplot6x = HK-47 Zaalbar's out because he's a Wookie, and obviously Carth and Bastila aren't available, so that's everyone.
  24. I'm including some pictures here as well as descriptions, so hopefully this goes okay. First, your DLG file, opened up in DLG Editor, but otherwise untouched. Clicking on the black line at the very top (containing the path to the current file), you will see some overall properties of the DLG file. The box with the highlighted text is where you'd put the name of your camera model, without the file extension. Now let's say we want an animated shot for this red line, the blue line after it (that says "continue"), and keep the animation going for the red line after that. First thing we do is change the Camera ID to -1. Then change the Camera Angle to 4. Last thing to do for this red line is actually start the animation. We do this by putting a number in the Camera Animation box. But we can't just put any number... If we want to start an animation, we put 1200 + the animation's "index" in the model. For example, the first animation (what would be called "CUT001W" or "CUT001" in Ani Cam) would be started with 1201. Let's use that in the Camera Animation for the red line. Now we're on the blue line after it. The Camera ID was already -1 and I've already changed the Camera Angle to 4, so all that's left is the Camera Animation field. But now we need to use a different number. The numbers start at 1200 if you want to start an animation. But if you want to continue an animation, you need to start back at 1000. Since we want to continue the first animation in the model, we need to use 1001. After that, we move onto the next red line. Like we did before, change the Camera ID to -1 and the Camera Angle to 4. Last is the animation, but we are finishing the animation this time. To do that, we just let it continue like it was before, so we need to use 1001. After this, the animation just plays until it's done. After this is done, click on another entry in the dialog and then save it. Some closing tips: The most important thing to remember when working with animated cameras is that an animation plays until it's done. If you start an animation and then give the player a choice of lines to say, the animation will keep going until it's done. This can be bad if you needed the animation to be playing during the next line. Some things from Ani Cam's readme (I'm restating them in different ways rather than quoting them): If you have a 20-second animation but give the player some replies and they take 30 seconds to respond, what happens? 1. If the animation's number for the entry before the replies was a 1200 number, the animation will start back at the beginning and keep on doing that. 2. But if the animation's number is a 1000 number, the camera will stop in whatever position/rotation it was in at the end of the animation. Also worthy of note is what happens when you try to start an animation (a 1200 number) while another's still going: 1. If the animation running is the same as the one you're trying to start, the game will act as if you used a 1000 number instead and continue the animation wherever it is. 2. If the animation number's different, it should switch to the new animation right away. Could look weird...