Jump to content


  • Posts

  • Joined

  • Last visited

Profile Information

  • Gender
  • Location
    Delaware, USA
  • Interests
    Learning about computer science, starting mods I don't finish, capoeira, guitar, ministry, trying not to be a selfish bastard 24/7.

    Some game series I'm into: Megaman (Battle Network, X, Classic), Kingdom Hearts, Sonic, Zelda, Racing games, Xenoblade
  • Modding Interests
    General Modding
  • Gaming Specialty
    Moviebattles 2
  • Operating System
    Windows 10

Contact Methods

  • PSN

Recent Profile Visitors

6,649 profile views

Dusty's Achievements

  1. Basic knowledge and values for UI coding and menus. Based off Affinity's original guide. Hopefully it will be helpful to you. menuDef: name - this is the name you use when referring to the menu through commands such as "open" or "close", not the actual name of the .menu file fullScreen - The main menu has to be fullscreen, other menus can open as a small window. rect - sets the position and the resolution of the menu. If fullScreen is set to 1, it should be always set to 0 0 640 480. An item's rectangle gets drawn starting with the top left corner going downward and to the right. visible - defines the visibility of the menu. Better set it to 1. focusColor - sets the color of the item that is in focus (= in contact with the mouse). desc... - the description-text that appears when you hover over the buttons (usually located at the bottom of the menu). descX, descY - the positioning of the desc-text. descScale - the size of the desc-text. descColor - the color of the desc-text. descAlignment - the alignment of the desc-text. Itemdef The Background (for example the Star Wars-logo on the top): name - sets the name of the item. Can be important if you want to open or focus items. group - you can refer to a group of items by name saying "hide (groupname) ;" or "show (groupname) ;" to have a whole bunch of items operate/be controlled as one style - defines the style of the item. WINDOW_STYLE_EMPTY no background WINDOW_STYLE_FILLED filled with background color WINDOW_STYLE_GRADIENT gradient bar based on background color WINDOW_STYLE_SHADER gradient bar based on background color WINDOW_STYLE_TEAMCOLOR team color WINDOW_STYLE_CINEMATIC cinematic rect - the position and the resolution of the item. An item's rectangle gets drawn starting with the top left corner going downward and to the right (further explanation in the end of the tutorial.) background - the path of the background-image. Can also be a path to a shader-file. DOES NOT NEED a file extension like .jpg or .tga forecolor - the fore color used in the item. 0 0 0 0; each 0 except the last represents a color, see below. visible - defines the visibility of the item, if 1 the item shows by default on loading the menu, if 0 you must manually show the item but it will not show by default decoration - makes you not touching and picking the item with the mouse. The Button (for example the Loadgame-button) Pretty similar to the background-items. You can actually also use an image to be a button. But in JK:JA there are only text-buttons used. text - the path to the text-string (@MENUS_YES for example, use these for multi-language support), or you can write text in " " marks (i.e. "Bla bla bla") descText - the path to the description text-string, works the same as text font - the font used for the text (1-4). textscale - the size of the text; but be forewarned; with values besides 1 as text alignment algorithms don't work as well textaligny, textalignx - changes the position of the text relative to the rect of the menu item, so if the menu item starts at x = 100 and you put 100 here, the text will start at 200 textalign - the alignment of the text; see alignment styles below for more info textstyle - there are different textstyles, like shadowed text, blinking; values are 0-2 IIRC type - important command that can be used to implement listboxes, checkboxes, etc. ITEM_TYPE_TEXT simple text, this will highlight though when the mouse hovers over it even though you can't click it like a button, make this a decoration if you don't want that to happen ITEM_TYPE_BUTTON button, basically text with a border, however it has an action block (see below) ITEM_TYPE_RADIOBUTTON toggle button, may be grouped ITEM_TYPE_CHECKBOX check box ITEM_TYPE_EDITFIELD editable text that is loaded to a cvar ITEM_TYPE_COMBO drop down list //DOES NOT WORK IN JA ITEM_TYPE_LISTBOX scrollable list, this takes a few extra parameters I don't remember right now (elementheight, elementwidth are two of them I believe, check raven's .menu files to see how they do them) ITEM_TYPE_MODEL model, used for model viewers like the custom character screen I believe ITEM_TYPE_OWNERDRAW owner draw, name specs what it is; this is CODED, use this if you have a hardcoded menu item you want to refer to ITEM_TYPE_NUMERICFIELD editable text, associated with a cvar; probably only takes numbers ITEM_TYPE_SLIDER mouse speed, volume, etc.; takes something like sliderwidth, sliderheight, and some other values I believe ITEM_TYPE_YESNO yes no cvar setting, text for the menu item will display automatically as Yes/No ITEM_TYPE_MULTI multiple list setting, enumerated, click/right-click to cycle back and forth ITEM_TYPE_BIND binds the cvar to the chosen key ITEM_TYPE_TEXTSCROLL scrolls text, use this to make scrollable text boxes ITEM_TYPE_INTSLIDER mouse speed, volume, etc.; needs parameters for width, height, and scale like an ITEM_TYPE_LISTBOX, check Raven's files to see what they are, I don't remember off the top of my head The "on" commands Only used in the menuDef: onOpen - stuff that happens when the menu gets opened onEsc - stuff that happens when the menu gets closed Events used in the itemDefs: (these execute commands shown below) Action - gets executed when you click on the item. For example a new menu opens. mouseEnter - gets executed when you touch the item with the mouse. mouseExit - gets exectued when you leave the item with the mouse. doubleclick - gets executed when you doubleclick the item. - commands you can use are show, hide, open, close, and exec: (separate consecutive commands with a ; symbol) show - shows the named menu item or group of items hide - hide the named menu item or group of items open - use this to open a menu (make sure you close the existing menu first unless you want the new menu to open on top of the existing one!); i.e. "open ingame_setup" close - closes the named menu; a useful command I often use is "close all" which closes all menus currently open before I open a new menu play - plays the sound file path you give exec - probably one of THE most powerful commands you can use; allows you to execute a chain of commands as if you typed them into the console; i.e. " exec "helpusobi 1; g_gravity 100" ", use " " and ; for chains of commands just like a normal .cfg script Remember! Always put a semi-colon ( ; ) after each command except the last one inside braces or you may get weird bugs sometimes. Rect The rect-command works like this: rect X Y W H X = horizontal position Y = vertical position W = width H = height An item's rectangle gets drawn starting with the top left corner going downward and to the right, so keep that in mind when choosing height, width, and position! Colors The colors work like this: color R G B T Values go from 0 to 1, with 1 being the highest, and 0 being the lowest. Set to 1 1 1 1 to get a white color. R = red G = green B = blue T = transparency ; 1 is completely non-transparent whereas 0 is invisible Text Alignment Text alignment has 3 styles: ITEM_ALIGN_RIGHT - This lines up the beginning of the text with the rect of the menu item, so the text will start at the item's x position example - [TEXT ], [LONGTEXT] (TEXT or LONGTEXT (longtext just shows how a bigger/longer line of text compares to a smaller one) is whatever the menu item's text/string is, whereas the [ ] represents the menu item's interaction rectangle or rect) ITEM_ALIGN_LEFT - This shifts the text to the left of the menu item so that where the text ends, the rect of the menu item starts example - TEXT[ ] , LONGTEXT[ ] ITEM_ALIGN_CENTER - This centers the text half-way between aligning to the left or the right, so about half of the text will be inside the rect and about half will be on the left side outside the rect. example - TE[XT], LONG[TEXT]
  2. The classes are organized in this order: Jedi/Saberist, Gunner, Droid, and Beast. Generally I list the stat-affecting traits of a class, then any unique AI patterns they have, then any effects on the player's stats and abilities if playing as an NPC with that class. This guide is mostly about how the classes behave in Single Player. They are probably similar in MP, but I would not expect them to be exactly the same. If I put a question mark at the end of a statement, it means: either I'm not 100% sure if this always applies, if the NPC needs certain scripts/stats or what not for this effect to work, or if it that's exactly how it works. Please give me comments if you think I left out something or got something wrong! An important thing to note before you read this guide: Basic AI and abilities are determined by WEAPON. not class. Giving an NPC a saber makes them act and fight like Jedi. Giving an NPC a gun will cause them to use Gunner AI and stats. Classes only create certain effects, AI patterns, and abilities, but will not generally change basic behavior unless it's a beast or a droid class. Jedi Classes: Notes: These turds like to use their own saberstyles unless you restrict it in the .sab file of the saber they use. This has something to do with ranking (crewman, ltcomm, captain etc.), which also affects how much they use force powers and special attack evasion, among other things. They seem generally a bit more likely to use dark-side powers than light-side powers if they have them across most classes. They take a bit less damage from saber attacks than other classes. Also, their saber offense can go up to at least 5, if not 7-9. This affects the complexity of their saber moves, and their strength in a saber lock, however I strongly recommend instead of altering this you just give the NPC a custom saber with buffed stats instead. Some classes are "boss classes," like Class_Desann or Class_Kyle. Most boss classes share the properties of increased saber lock strength, more resistance to saber damage, very difficult to knock down, recover from parries and guard breaks quickly, and always evade katas. According to eezstreet, boss classes (unlike normal non-boss classes) are also coded to have special AI behaviors that are slightly different from normal classes, such as force power usage frequency, behavior in groups vs. being alone, etc.... It's difficult to tell the exact differences between classes however without thorough code analysis... Stats Analysis: Aggression - How often saberists change saber styles, taunt, and use dark force powers and how quickly they generate "aggression"/anger. Player-aligned NPCs have a smaller max aggression scale than enemies, and Desann is hardcoded for 2x the aggression of average enemy saberists. Aim - No known effect. Evasion - How likely saberists are to evade from saber locks, force grip, and force drain. Rank affects evasion of other attacks. Intelligence - No known effect. Higher ranks are generally "smarter". Move - No known effect. Higher ranks generally use more complex attacks and movements. Reactions - How many AI actions take place per second. Class_Player: Main feature of this class is it uses the g_char cvars to determine it's appearance so it will look like the player's custom model. They fight kinda weird. They normally stand still and do nothing. No positive or negative effect on player abilities/stats I'm pretty sure. This class is used by the player.npc which is used for cutscenes. Class_Alora: (semi-boss) Treated by the game as a semi-boss class. This means they retrieve dropped saber throws quickly, are tough to knock down, etc. Will use Alora's special acrobatic moves and attacks when they have dual sabers (like throwing both sabers at you at the same time). Always evades katas. Class_Desann: (boss) Their force powers like force lightning and push are extra strong, even for a boss. Good at resisting force powers, tough to knock down in general. Pushes harder in saberlocks (this increases w/ game difficulty). Uses force powers more often than other boss classes, and in general. Immune to being hit by saber throws. Takes less damage from saber attacks (maybe even less than other bosses). Will NOT use wallruns, cartwheels, and other certain aerial moves. Has a 1/4 recovery time from being able to parry after taking damage (1/2 delay for any class with RANK_LT_JG and up). Fixed 66% chance to follow up a won saber lock with an attack like Luke (other classes have a 15% chance). This class affects the strength of player force attacks and knockdown resistance. Class_Jedi: Has decent dueling skills. I feel like they fight less aggressively than class_reborn, but I don't know, I just feel like they would. They can defeat strong reborn at low stats somehow (try having a reborn_new and jedi_random NPC duel), but they are easy to defeat as the player at low stats. Not more or less likely to use light or dark powers in combat than class_reborn (at least as far as I can tell.) With RANK_COMMANDER and up frequently follows up parries with Fast Blue attacks. Player-aligned NPCs with this class can only taunt at RANK_COMMANDER or up. Against enemy NPCs, RANK_CIVILIAN/RANK_LT_JG will only use Fast style; RANK_CREWMAN/RANK_ENSIGN will only use Medium (cultists ignore this if even if they have CLASS_JEDI). At RANK_ENSIGN and RANK_LT and up, has a 50% chance to use a Force attack (selecting from either saber throw, grip, lightning, or pull. RANK_LT + above will always throw their saber the other 50% of the time) as a start instead of passively counter-attacking with the saber. Other classes use a different calculation. Class_Kyle: (boss) Resistant to being knocked over, and exceptionally good at resisting force push/pull. Recovers from parries quickly I assume. Pushes harder in saber locks. Takes less damage from saber attacks. Returns from knockdown and retrieves dropped sabers quickly. Uses force protect in acid rain possibly. Has extra spawn flags when you put them in a map (not known what they do). This class may relate to the kyle_boss npc using melee katas and what not. However it may not be possible to duplicate these effects on other npcs, even those with similar names (like kyle_boss2 etc.). Always tries to evade special attacks. May give the player knockdown resistance. Also does auto-force pushes for you like Class_Luke. Class_Luke: (boss) Pushes harder in saber locks (goes up w/ game difficulty increase). Recovers from parries quickly. Resistant to knock down like other boss classes. Takes less damage than normal from saber attacks. Always tries to evade special attacks (roll stabs, katas etc.) Returns from knockdown and retrieves dropped sabers quickly. Fixed 66% chance to follow up a won saber lock with an attack like Desann. As the player causes you to automatically force push at times. Probably gives you knock down resistance. Decreases parry/knockaway recovery time slightly? Class_Reborn: Might be more aggressive than Class_Jedi. Melee users will sort of use force powers and throw punches at you; (npcs named starting with "cultist" are supposed to use only force powers, and no punches, this is hardcoded, however I haven't gotten it to work myself with custom NPCs). With RANK_LT_JG and up frequently follows up parries with Fast Blue attacks. This class along with other saberist classes may increase the likelihood of NPCs using flipping animations for jumps compared to non-saberist classes, however this is purely a visual animation thing. For info on how this class affects gunners, see the gunner section. (This class has special properties for gunners.) Class_Shadowtrooper: (semi-boss) Gets boss-style damage reduction from saber attacks, which is more than a normal Class_Reborn/Jedi type gets. Able to recover from a guard break/parry quickly. They retrieve their sabers quickly from disarms/drops. Always evades katas. If given an npc name starting with "shadowtrooper"; (the name has to start with shadowtrooper, for ex. shadowtrooper5, or shadowtrooper_gunner would work), they drop force crystals and have a cloaking effect (both work in JA, except the force gem hud and model is missing). 'Shadowtrooper' named NPCs don't know how to use weapons besides lightsabers. Ex. if you give them a blaster, they won't fire. Class_Tavion: Uses force lightning more often than normal. Very resistant to knock down I assume (this is a boss class). Pushes harder in saber locks. Returns from knockdown and retrieves dropped sabers quickly. Takes less damage from saber attacks. Frequently follows up parries with Fast style attacks. Fixed 33% chance to follow up a won saber lock with an attack (other classes have a 15% chance, Desann and Luke have a 66% chance). Gunner Classes: Stats Analysis: Aggression - How quickly NPCs start attacking you after being alerted. How likely they are to chase from a long distance away. How likely they are to give up searching for you if you've evaded them. Aim - How well they aim. Can actually go up to "6". For snipers, lower aim values will shoot faster but more inaccurately, whereas high aim values will shoot slower but miss less. Snipers act like normal gunners if given an aim value of "6". Evasion - How likely a gunner is to duck/crouch. Intelligence - No known effect. Higher ranks are generally "smarter". Move - No known effect. Higher ranks generally use more complex tactics? Reactions - How many AI actions take place per second. Class_Bespin_Cop: Special hack that makes it use more reaction sounds when npc is named "bespincop". Other than that nothing unusual. Class_Bobafett: Has a jetpack and flies around. Can switch between multiple weapons like the E11, missle launcher, and what not. Will randomly use alt fire for weapons in conjunction with primary fire I assume. Uses a flamethrower. Can not be defeated without being scripted/invincible. Automatically gets 100 force points and force jump 1; (the force points act like fuel for his jetpack I think.) Class_Commando: Has no effect in MP. It's effect is unknown in single player. Prolly just defaults to regular gunner AI. It's dual pistol effects have been given to class_reborn. Class_Gran: When you give them thermal dets and melee, they'll throw the detonators at you from far away, and then upclose try to sock you with their fists. The thermal detonators can't be pulled from them; (pretty sure this is a class_gran only effect.) Class_Hazardtrooper: Immune to gas. Saber damage towards them is reduced by 90%. They are immune to acid rain, slime, and lava. They use a different skeleton setup. Has a little slap move that pushes you backwards. Hard-coded reduced movement speed. Class_Imperial: Will use the "hands behind back" anim while standing, can hold keys (like for doors). May get firing speed bonuses w/ increased game difficulty. Can also order troops to attack (only in JK2). Stands still unless you alert them (can script them to be cued I would think). Doesn't search for the player, only commands other NPCs to search. He won't chase after you if you lose him. Class_Impworker: Like the imperial, it will use the "hands behind back" anim while standing and will always stare in one direction and not do anything unless a cue is given. Their aim gets a higher degree of random slop than a class_stormtrooper type. Class_Jan: Shoots faster than normal. Can't have their weapons pulled by force pull. Rather than getting firing speed bonuses w/ difficulty increase, they have a general always-high rate of fire. Class_Lando: Shoots faster than normal. Can't have their weapons pulled. Not sure of the difference between this class and Class_Jan... Class_Prisoner: Shoots faster than normal possibly. Can have weapon pulled. Doesn't pick up weapons when unarmed? Class_Rebel: Doesn't shoot when a CPU puts their hands up to surrender. (Some other classes might do this too, but class_rebel does it for sure!) Pretty sure they get bonuses/penalties to firing/movement speed based on the game difficulty, no random aim slop however (at least I don't think.) Class_Reborn: Allows gunners to ignore way points and use rolls and cartwheels. If you give them the blaster pistol, and also captain rank, they should have dual pistols which fire really fast. Also, you can't pull the weapons from these guys (I can't anyway with my NPCs). RANK_LT_JG and up will actively evade saber attacks. Like Jedi these guys will ignore waypoints and just run their own movement scripts. Class_Reelo: When placed on an emplaced gun, he will use a constant wave of firepower. Fires in bursts with blasters. Class_Rockettrooper: When alerted, he will jump into the air and activate his jetpack. Their speed is reduced by 25%. Automatically given level 3 Jump and 100 force. The NPC "rockettrooper2officer" is hard-coded and specifically referenced by the game to not use his jetpack and will simply try to chase the player down. Spawnflags 2 gives these guys a little flashlight. They cannot be knocked down. They are immune to gas. They use a different skeleton setup. RANK_LT and above will stay in the air always. Class_Saboteur: Uses the stealth cloaking (can't fire while cloaked). Shoots the blaster pistol slightly faster than other classes. Only kicks when you give them a sword/saber, doesn't slash. - This is an effect of giving a saberist NPC the alt-fire stat in their NPC file. Class_Stormtrooper: Firing and movement speed go up with game difficulty. 25% accuracy bonus with ensign rank or higher. At Jedi Knight difficulty and up, they fire almost as fast as Class_Jan. Uses the accuracy field in the .npc file to determine accuracy (apparently not all NPCs do?). Has a random amount of slop added to accuracy. This makes their aim kind of erratic, which generally makes it worse, but in some cases (perhaps with an explosive weapon) it can possibly work to their advantage. Class_Swamptrooper: Shoots VERY quickly compared to other gunners. They can see further underwater and can also hold their breath for VERY long underwater (about twice what the player can). Accuracy is given a random amount of slop like stormtroopers. They probably get bonuses to firing and movement speed with game difficulty. Class_Tusken: On Jedi Knight and Jedi Master modes, Tusken Raiders run faster then the player. Tusken raiders only have a 25% chance to leave a surrendering enemy alone. This class also forces the NPC to always taunt upon starting a fight. Other than that, nothing special. Class_Rodian: Has very good aim, even at a low aim stat. No random slop added to aim. Gets bonuses to firing speed with game difficulty. Fires at about the same rate as a stormtrooper. Class_Trandoshan: No random aim sloppiness, aim ability is average. Gets bonuses to firing speed w/ game difficulty increase. Whips around and starts blasting more slowly than a stormtrooper. Firing speed is about the same as a stormtrooper. Class_Weequay: Nothing special. Gets the firing speed bonuses, no aim slop. Alerts slightly faster than a trandoshan. Rate of fire is about the same as a stormtrooper. Class_Noghri: Pretty sure they're almost exactly the same as the previous 2 classes. Droid Classes: Notes: Droids are immune to gas, and will never surrender. The DEMP2 does 5x as much damage towards them. CLASS_ASSASSIN_DROID: Use shields that block sabers and blasters, and hurts if you touch it. Doesn't fire while they're shield is up. Takes less damage than normal from sabers. CLASS_ATST: Does not drop items. Acts like an ATST walker. Immune to most blaster bolts (they bounce off). Can be hit by the DEMP2. Causes humanoids to only move their heads and be immune to knockdown. CLASS_INTERROGATOR: Cool and WORKING unused droid in JA. When stabbed by one of these buggers, your screen will get a tunnel vision effect. CLASS_GALAKMECH: Pops a shield around itself, and randomly fires repeater missiles, unless it is challenged up close, in which case it smacks the player. Same as the boss in JK2 I think? CLASS_MARK1: Another cool and WORKING AI that exists in JA. Once you port the model over from JK2, the AI works exactly like you think it should. CLASS_MARK2: Sits there and does nothing. It will trigger action music however. CLASS_MOUSE: Receives 7x as much damage instead of the usual 5x damage from the DEMP2. Can see the player if they do /notarget. Plays sounds when controlled by the player. CLASS_PROBE: Not much to say here, other than that the sounds it makes are purely hardcoded and it does them between 2-4 seconds (at random). Fun fact though: there are ancient pics of these guys getting their heads blown off (instead of the standard death anim) CLASS_PROTOCOL: Can see the player if they use /notarget. Their corpse can be dismembered after death. They are also one of the few droids that have corpses. CLASS_R2D2: Can see the player after they /notarget. Otherwise, nothing to see here. This will make humanoid models spin their head occasionally in SP (as well as droid models I'd assume, but that's to be expected.) CLASS_R5D2: Same thing as R2D2, except a different number of idle sounds. They always lose their head when hit by the DEMP2 (lol?) CLASS_SABER_DROID: Acts like the big droids with lightsabers. Pretty sure they're immune to knockdown. Different saber stance animation. Uses different attacks and animations than humanoids. CLASS_SEEKER + CLASS_REMOTE: These are the SAME BLOODY THING...only difference is who they decide to target (apparently). Basically, seekers good, remotes bad. Same 'ol, same 'ol. CLASS_SENTRY: Similar to the CLASS_PROBE, except they can shield themselves and they shoot faster. Beast Classes: CLASS_CLAW: Does not flee and cannot surrender. Other than that, we have no idea about anything regarding them. CLASS_FISH: No idea. Same as above. CLASS_FLIER2: Same as above. CLASS_GLIDER: There is a model in existence for these guys, but they are never used. We have the same info as above for them, except that they have the flying flag set on them (so basically their AI is essentially complete) CLASS_HOWLER: Two interesting little tidbits about these brutes. First, they cannot die from falling damage or impact damage. Second, they possess the ability to reach places by jumping. As said by Raven themselves... "These jokers can jump" (If it's not obvious, they will probably act like Howler lizards from the opening level in JK3!) CLASS_LIZARD: Does not work/do anything. CLASS_MINEMONSTER: Unused AI from JK2. This twerp will chase you down, and attack with either a gnaw or jumping bite attack. Acts like the annoying crabs in the Artus Prime mines in JK2. CLASS_MURJJ: Does not do anything, I think... CLASS_RANCOR: This is used for both the mutant rancor and the regular rancor. The mutant rancor is heavily hardcoded, however regular rancors can be added to the game no problem. Neither of them can receive knockback. When being chased by one of these fatties, NPCs will cower in fear. They are extra resistant to explosives. Fun fact: Trying to jump on their head will send you flying back pretty far. CLASS_SAND_CREATURE: Acts like the annoying sandworms that burrow. CLASS_WAMPA: Apparently mind trick level 3 works on them. Acts like a wampa. Immune to force lightning level 3 knockback in JK2 but not JA?
  • Create New...