Jump to content

Dusty

Members
  • Posts

    672
  • Joined

  • Last visited

Everything posted by Dusty

  1. In Dusty's Patch (so corny naming the mod after myself ) you kick by default with every saber type but you have to bind +forcefocus to a button and hold that down to do saber throws. That was the best I could come up with.
  2. Scrolling saber styles... sounds... complicated. What do you mean by your other ideas? That last one I understand, make an NPC that can use melee katas like boss kyle right? That's a cool idea. I would like to merge this mod with JA Enhanced. Maybe redsaurus could help me with that. That's a really good idea. How about this: Class_Manda is a boba fett without undying. Class_Commando acts like boba fett but without undying and without the jetpack or flamethrower. I talked to eezstreet who's both a more advanced C/C++ programmer and more of an expert in the code framework, and he basically said that the AI is almost exactly the same in the code for JA and JK2, but that its due to poor waypointing in the SP maps that NPCs aren't as "smart" unfortunately.
  3. Personally, I find JA very unfriendly to animation mods. For example most animation mods are incompatible without making a new mod that combines them. Then there are other things, like the fact you must always start a new game for animations to take effect... I have a list of proposals, that I think would make OpenJK way more friendly to animation modding: 1. **Allow multiple .gla files to exist**. And allow specification of which .gla to load frames from for an animation slot in the animation config. Current style: BOTH_A7_KICK_S 1008 34 -1 20 My proposal: BOTH_A7_KICK_S 1008 34 -1 20 spinkick This would load BOTH_A1_BL_TR from spinkick.gla in the _humanoid folder. Otherwise it would default to _humanoid.gla 2. **Allow multiple config files to exist**. Sort of like with pk3s, the last loaded config file will take priority for controlling the properties of any animation slot it defines. An example _humanoid folder: animation.cfg (in animation.cfg: BOTH_A7_KICK_S 1008 34 -1 20) spinkick.cfg (in spinkick.cfg: BOTH_A7_KICK_S 0 27 -1 45) The properties of the definition of BOTH_A7_KICK_S in spinkick.cfg would take priority over the one in animation.cfg in this scenario. 3. **Separate config and animevents files for SP and MP**. More compartmentalization this way. Any files with a _sp suffix in their name (i.e. _spinkick_sp.cfg, animevents_sp.cfg, animation_sp.cfg_) would take priority in being loaded by Single Player, and would be ignored by multiplayer. That way old mods still work, but you can make mods that are specific to one side of the game. 4. **Other things that could use addressing**. You shouldn't have to start a new game to get an animation mod to work. The bug where looping animations played in reverse tending to get stuck could use fixing. Also, it would be nice if you could specify in the animation.cfg whether an animation should be played only on the upper body or lower body (but maybe that's asking too much). I understand most or all of these would break save game compatibility. This new animation system could just be ifdef'd in that case. But even then, animation mods by nature break save game compatibility, and people can just use cheats to remake their savegames. If I am completely honest, I don't see why that's such a big deal.
  4. 437 downloads

    Updated 7/11/16: The animations mod must now be downloaded separately (to avoid legal issues?). I also realized I made some mistakes in the installation instructions in the readme. If you are having problems I suggest re-downloading to make sure you installed properly. Other small fixes to the documentation. Warning: This mod is not compatible with existing save games. Just use cheats to remake your savegame. This is a test run for a modded Jedi Academy single player. All the features are code-side except for the animations (download Dusty's Patch: Animations to get them). The code uses as a base the OpenJK build that existed at the time of release, so if your system has issues with OpenJK, you most likely will have problems running this. Feel free to report issues, give feedback, or suggest features. Remember though, I'm just one person. Changes from base JA/OpenJK... New Cvars ------------------------------------------------------------------------------------------------------------------------------ g_autoRoll* - default is 1, if 1 default JA behavior, if 0 you have to be holding USE to roll g_char_forcePowerMax* - requires level restart, controls number of player force points g_char_forceRegen* - requires level restart, controls force point regen rate of player g_char_parryBonus* - same as .sab file setting but applied on savegame load for player g_char_breakParryBonus* - same as .sab file setting but applied on game load for player g_handicap* - can go up to 200 now g_saberDamageScale* - this scales saber damage, and is saved with your savegame. This effect stacks on top of the effect caused by g_saberMoreRealistic. g_saberDeflectAutoAim* - if 0, blaster deflections are not auto-aimed but go in the direction of the crosshair with randomness based on Saber Defense level g_saberForceDrains - if 1 special moves drain the amount of FP from the next cvar, katas not affected g_saberForceDrainAmount - if g_saberForceDrains is 1, special moves drain this amount of FP, katas not affected g_saberLockSuperBreaks* - if 1 default JA behavior of saber locks, if 0 no super breaks (1-hit KOs) ever happen after saber locks g_saberMoreRealistic* - no longer write-protected g_weaponVelocity*, g_weaponAltVelocity* - use this to multiply the speed of most projectiles Gameplay mechanics ------------------------------------------------------------------------------------------------------------------------------ Force powers (activated with g_forceNewPowers 1) ------------------------------------------------------------------------------------------------------------------------------ - Force Jump height for all levels increased by 25% - Force Pull level 1 pulls weapons only, level 2 can knockdown, level 3 can pull toward you a little bit - ***Force Sense gives limited snipershot dodging ability (you might need to hold down Use) - Force Speed decreases FP cost of sniper shot dodging at Level 3 (for auto-dodging anyway) - **Force Protect 1/2/3 gives only 10/20/40% damage reduction against saber attacks instead of 25/50/75% - Force Heal costs slightly fewer force points at Level 3 if I remember correctly NPC AI ------------------------------------------------------------------------------------------------------------------------------ - Improvements to NPC AI pertaining to the use of JA-exclusive abilities... NPCs only use Force Rage if close to the player and if have > 25% HP, only kick if close to the player, only use katas if close to the player - NPC Jedi will try very hard to dodge your attacks if you knock their saber throw to the ground (before they were more apt to just stand there) - NPC Jedi get up much more quickly from knockdown on higher difficulties (no easy marios for the win) - NPC Jedi will activate their saber very quickly after being gripped or drained based on difficulty and rank - Force-only Cultists react properly to explosives, sniper shots, and saber throws now - Force-only Cultists will very rarely throw in a quick punch if you get right in their face - Non-saber wielding NPCs with Class_Reborn try extra hard to dodge saber attacks and throws (because they can't block) - Light Jedi with non-dark Jedi AI (class_reborn, class_desann, etc.) classes don't attack surrendered or unarmed enemies now at all - **Grenadier Grans will alternate punches/thermal detonators even if your saber is out if you are really close to them - **NPCs surrender more like JK2 (the animation is more consistent, once they decide to surrender they will usually stay surrendered) - Allied NPCs receive 150%/125%/100% HP for Padawan/Jedi/Jedi Knight difficulties now instead of 100%/125%/150% like enemies - Assassin Droids now fire even with their shields up - Class_Rodian with E11 and Class_Imperial at commander rank use alt-fire now always Saber System (activated with g_saberNewCombat 1) ------------------------------------------------------------------------------------------------------------------------------ - Saber Offense gives a base "attack power" (AP) (+2/+4/+6) - Saber Defense gives a base "defense power" (DP) (+2/+4/+6) and a number of block points (BP, is equal to 1 + your SD level IIRC) - "attack power" is modified by saber style (-2/0/+2/-1/+1/-1/+1 for Fast/Med/Strong/Duals/Staff/Tavion/Desann) - Desann style is as strong as Red if you are CLASS_DESANN, otherwise it does not cause knockdown as often as Red, and is slightly weaker - style attack chaining altered: can only chain 2 slashes if running, staff and duals cannot chain infinitely (5 slash maximum now), chain counts are also not random (Medium can always chain 5 slashes while walking for example) How saber combat then works: - AP > DP = attack blocked but lose a number of BP equivalent to AP - DP - all BP lost = guard crushed - BPs regenerate about 1 per second if walking/standing still (total BP = your Saber Def. level + 1 if I remember correctly) - special attacks ignore BP: either crush guard or are blocked partially Other saber-related changes (always active regardless of g_saberNewCombat) - player's ability to parry saber attacks and blaster fire is improved while walking or standing still for Medium and Strong styles - Saber Defense 0 no longer causes blaster fire to pass through the player - A saber with autoblocking 0 now has a very narrow blocking arc for the player (so you can't cheat and block super easy) - Holding Use and standing still will let you try to manual block blaster bolts as it currently does in Base JA, however the arc is super narrow Melee changes -------------------------------------------------------------------------------------------------------------------------------- - Player can use kicks with any saber type by default, you must use +forcefocus to saberthrow (bind this to a key, maybe your mousewheel click-down) - Player's melee abilities determined by Saber Offense level (1 = punches and kicks, 2 = katas, 3 = spin kicks) - if you're not cheating (using g_debugMelee or iknowkungfu)... Player melee katas have less range, must be aimed more precisely, and do not work on certain types of enemies - Spin/Flip kicks are only enabled for Saber Offense 3 but do slightly more damage - Spin Kicks are possible on demand by holding Use and pressing the Alt Attack button, however costs 10 FP (the auto version doesn't cost any) - **Knockdown from a kick to Jedi happens only if your Saber Offense >= their Saber Defense - Player punches do 7/5 damage now instead of 6/3 and aren't randomized - **Force Speed punching is more consistent now and less cheap (never did actually test) - **Heavy/Slow Melee punching is specifically associated with Chewbacca, Class_Gran, and Class_Trandoshan, other NPC types will punch more quickly but weakly if given WP_MELEE Other additions ---------------------------------------------------------------------------------------------------------------------------- - visual effect for blocking Force Lightning with your lightsaber (it's subtle but there, it just plays a reverse-direction version of the Lightning level 1 effect, will make this a separate file) - rolls and acrobatics are possible in 1st Person now Future ideas ---------------------------------------------------------------------------------------------------------------------------- Things to do - - *savegame screenshots - *separate cvar for player HP and Shields - reborn masters with debounce to limit constant saber throwing + lightning - *NPCs avoid cliffs - *extra fields in Weapons.dat such as NPCDamageMult, NPCAltDamageMult, saber ignition/deignition time - force push strong version, mindtrick changes - doing a full slash when starting saber off regardless of movement - *camera controls (1st, 2nd, 3rd, 4th person) - better AI for NPCs deciding to surrender * would like to implement into OpenJK ** not completely tested but should work *** incomplete/unfinished/not working completely
  5. What do you give your soul to?

    1. Show previous comments  30 more
    2. Ping

      Ping

      Notice also that I don't 'debate your beliefs' whatsoever, i.e. the content of your sentences is entirely irrelevant to any of the things I said. I was questioning the validity of your inferences, the structure of your arguments and the coherence of your expression. What exactly you argued for I couldn't care less about. You could replace all the subject terms with 'x' and all the predicates with 'y' and it would raise the same problems.

    3. Dusty

      Dusty

      To throw my hand in this... There are different beliefs about hell and the death/eternality of the soul (in Christianity). Personally I think it makes the most sense for your soul to be immortal, that aside... The traditional (or most common today) view is that hell is eternal. Another view is that your soul dies in hell, or at least you "cease to exist". Another view is that hell may last a long time, proportional to the way you live your life, but that it is "purifying", and...

    4. Dusty

      Dusty

      eventually you are allowed to be in the presence of the Lord. In the original language, I believe hell is referred to as a "punishment of the ages" which leaves the translation a little bit open to interpretation. Is it forever? A long time? Either way, calling it the second death makes sense. Either you are separated from God forever, you cease to exist, or your sin nature "dies". Heavy stuff.

  6. Besides the projects for the game's code, there are so many others are included! They are... Assets, ALL_BUILD, ZERO_CHECK, INSTALL, PACKAGE, bundled_libjpeg, bundled_libpng, bundled_minizip, bundled_zlib, GetExeSymbolDir, GetPdbSymbolDir. I tried generating the solution without some of the default options checked but I would get errors when I would do that. There didn't use to be so many projects! Are all of these necessary to compile OpenJK without installing any extra libraries?
  7. So usually nav mesh doesn't need to be explicitly set up by the mapper? In that case that sounds really cool. My apologies for not understanding sooner.
  8. I found this here, it seems like it would explain a lot of the use of vectors in JA's code. http://wiki.ioquake3.org/Vectors
  9. Getting AI Jedi to activate Force Speed independently shouldn't be too difficult... that is, if it's possible. I haven't explicitly checked, but Raven might not have programmed what an NPC using Force Speed independently would look like. I can rummage through the code later and see what I find.
  10. What are nav meshes exactly? Is it something a mapper must place -- is it a similar concept to an NPC-no-enter area except expanded? Or is it some kind purely AI calculated type thing? Is it what Xycaleth shows in his picture? If so, it seems kind of unnecessary to me, at least purely for solving cliff-avoidance issues, unless if you want to get more in-depth than that (walls, obstacles etc.) or more intelligent about the avoidance. I would be satisfied with just stopping at a cliff even if it leaves the NPC stuck temporarily. If you guys want to talk about nav-meshing and waypointing that's fine, but when I made the topic, I guess one thing I was wondering, was does it look like Raven's solution was going to work? It was hard for me to decipher exactly, because I'm not sure how all of their vector and trace things work...
  11. The way I see it, waypoints would still be necessary for navigating from Point A to Point B in any intelligent sort of way. But right now they are also pretty necessary to keep NPCs from doing silly things like running off drops. There are also lots of areas in maps where it wouldn't make sense to add NPCs because there are no NPC-no enter areas to keep Jedi from running off edges. Heck even in some SP maps in areas where Jedi are supposed to be like t3_hevil there are not properly placed barriers = reborn running off edges trying to get to you. I also feel uncomfortable letting a stormtrooper run away from you if he's not using waypoints because he might just do the same thing. You can say "it's the mappers responsibility" and maybe it is, but it's a little difficult to fix/expand the waypointing of a map in JA considering we have non of the original map files. This idea Raven has seems pretty simple to me. Check if there's a large height difference in the vertical direction in my current path of travel, if so, cease any movement in that direction and turn a little bit until it's no longer true.
  12. I found an interesting snippet of code in JASP: void NPC_AvoidWallsAndCliffs (void) { /* vec3_t forward, right, testPos, angles, mins; trace_t trace; float fwdDist, rtDist; //FIXME: set things like this forward dir once at the beginning //of a frame instead of over and over again if ( NPCInfo->aiFlags & NPCAI_NO_COLL_AVOID ) { return; } if ( ucmd.upmove > 0 || NPC->client->ps.groundEntityNum == ENTITYNUM_NONE ) {//Going to jump or in the air return; } if ( !ucmd.forwardmove && !ucmd.rightmove ) { return; } if ( fabs( AngleDelta( NPC->currentAngles[YAW], NPCInfo->desiredYaw ) ) < 5.0 )//!ucmd.angles[YAW] ) {//Not turning much, don't do this //NOTE: Should this not happen only if you're not turning AT ALL? // You could be turning slowly but moving fast, so that would // still let you walk right off a cliff... //NOTE: Or maybe it is a good idea to ALWAYS do this, regardless // of whether ot not we're turning? But why would we be walking // straight into a wall or off a cliff unless we really wanted to? return; } VectorCopy( NPC->mins, mins ); mins[2] += STEPSIZE; angles[YAW] = NPC->client->ps.viewangles[YAW];//Add ucmd.angles[YAW]? AngleVectors( angles, forward, right, NULL ); fwdDist = ((float)ucmd.forwardmove)/16.0f; rtDist = ((float)ucmd.rightmove)/16.0f; VectorMA( NPC->currentOrigin, fwdDist, forward, testPos ); VectorMA( testPos, rtDist, right, testPos ); gi.trace( &trace, NPC->currentOrigin, mins, NPC->maxs, testPos, NPC->s.number, NPC->clipmask ); if ( trace.allsolid || trace.startsolid || trace.fraction < 1.0 ) {//Going to bump into something, don't move, just turn ucmd.forwardmove = 0; ucmd.rightmove = 0; return; } VectorCopy(trace.endpos, testPos); testPos[2] -= 128; gi.trace( &trace, trace.endpos, mins, NPC->maxs, testPos, NPC->s.number, NPC->clipmask ); if ( trace.allsolid || trace.startsolid || trace.fraction < 1.0 ) {//Not going off a cliff return; } //going to fall at least 128, don't move, just turn... is this bad, though? What if we want them to drop off? ucmd.forwardmove = 0; ucmd.rightmove = 0; return;*/ } It's declared in NPC.cpp and it's called by NPC_ExecuteBState later on in the file. It wouldn't be so bad for NPCs to be able to run around outside the waypoint system here and there if we knew that they would stop before a drop or not try to run through walls.
  13. 1 Corinthians 6:18-20: Flee sexual immorality. Every other sin that a man commits is outside the body, but the immoral man sins against his own body. Or do you not know that your body is a temple of the Holy Spirit who is in you, whom you have from God, and that you are not your own? For you have been bought with a price: therefore glorify God in your body.

    1. Show previous comments  4 more
    2. Ping

      Ping

      I love religion!

    3. Seven

      Seven

      Jared Fogle 2015 - Nevermind

    4. Ramikad

      Ramikad

      I don't mind religion. Whatever floats your boat. Just prepare adequately for the consequences.

  14. Awesome job guys! Better finish my scribbles. Maybe I can merge it with this piece of awesome you guys have!
  15. Hmm, that would be a nice feature... I was thinking of adding a cvar for this in Dusty's Patch... I could look at Eezstreet's code and try and copy it I guess and maybe it could be put into OpenJK, or the projectile speed cvar, or both...
  16. ^If I want to be detailed in the implementation (as opposed to quickly throwing some feature together), I think coding would be the best. Maybe you get their HP down to 1, then they attack much less aggressively for a short time (maybe only 5 or 10 seconds). Some sort of visual indication would be important. Some kind of behavior signifying you "won" for the moment. Then when they are ready for action maybe they do a flourish or taunt. Then they get half or all of their HP back and start fighting normally. Or maybe all that is too detailed. Maybe it should be more left up to the player to figure out that the enemy is not completely beatable and when they get their chance to progress past or escape the enemy. Or you could always just make the NPCs ridiculously tough, but if they are defeatable that implies Jaden/the player is supposed to be stronger or more skilled than them in some way... plus that would emphasize either the NPCs being kind of cheap or the player having to be very cheap to defeat them, turning everything into a cheapness game. MB2's saber system... that would be hard for a single player game... still my altered saber system will have a few nods to MB2's style...
  17. I remember having this conversation partially before with Eez. He said the main differences between JK2 and JA npcs were these 2 things: - JK2 maps are "waypointed" much better than JA maps - certain portions of the JA NPC code from JK2 are commented out
  18. I always thought Jaden's supposed power level in JA was kind of ridiculous. Wouldn't it make more sense, if some enemies were "invincible" in the same way as Boba Fett? Like for example, Reborn Masters, and Jedi Masters/Trainers? Maybe they would be unable to be defeated completely? Like they get "wounded" and you have a short chance to get past them or run away from them until they start attacking again? I feel like that would be kind of cool actually. Anyone have any ideas? I just sort of thought of this a second ago. Most enemies this should work because you don't actually have to fight them. The only one is one of the Reborn Masters in the first part of Korriban you have to fight because defeating him unlocks a door...
  19. So, the obvious issue with JA's NPCs is that the maps aren't waypointed nearly as well as in JK2, so NPCs seem less dynamic and smart and more stoic and not smart. Is there anything that can be done AI-wise to even things out a little? Like for example, if we let JA NPCs go outside the waypoint system a little more; example, they are allowed to stray up to 70 game units from the nearest waypoint pathway, sort of like how Jedi ignore waypoints? Anyone smarter than me *cough* @@eezstreet *cough* have any thoughts or ideas?
  20. That's weird... Sxx was relatively nice to me in my time as an MB2 dev... maybe someone framed him... or he was just being a jerk. Dunno.
  21. Ok, really, you guys should at least fix the link for the Movie Battles website, here it is: https://community.moviebattles.org/
  22. how2add new animation slots in JA? Magic?

    1. DT.

      DT.

      Search for say, BOTH_STAND1, and just add new ones to the list(s). Then you'll be able to use them elsewhere in the code

    2. Dusty

      Dusty

      It's that easy?!

  23. JK2 doesn't have a weapons.dat file, only JA I'm pretty sure. Unless if you ran OpenJK in JK2 mode... maybe that would work...
×
×
  • Create New...