Jump to content

Teancum

Members
  • Posts

    546
  • Joined

  • Last visited

Everything posted by Teancum

  1. I have forked OpenJK to DarkJedi (Dark Forces + Jedi Academy). http://github.com/GTTeancum/DarkJedi I have not uploaded any changes yet. I have to figure out the local Git app, but I did update Readme.md on GitHub to reflect what it's goals are.
  2. I have forked OpenJK to DarkJedi (Dark Forces + Jedi Academy). http://github.com/GTTeancum/DarkJedi I have not uploaded any changes yet. I have to figure out the local Git app, but I did update Readme.md on GitHub to reflect what it's goals are.
  3. That would be great. It will make such a difference to have that off my plate. I really need to get Git installed.
  4. Ugh, the Fusion Cutter code is so completely frustrating. If push comes to shove I'll just make a single-barrel version of it or something.
  5. Correction -- should have said had potential. But the burned bridges will ultimately taint things forever. Too bad, too. Even though I don't like it the mod could have been accepted by the community at large if proper credit and permissions had been given.
  6. Primary fire for the Mortar Gun is now done. Still working on secondary. The Fusion Cutter's secondary fire will be working once I get vectors figured out.
  7. In regards to JKE, what absolutely breaks it for me is having saber throw as a force power. For me it feels like taking the most effective way of using the saber and trying something different. JKE is something I'd like to contribute to in the future, as I think it has the most potential out of these kinds of mods. That being said elements/concepts from KotF would make a great addition to JKE. For example, it'd be nice to have a player model select screen that you can swap in the species screen for single player. Not to derail, but for JKE I'd love to commit my melee updates along with the mortar gun, fusion cutter and assault cannon (once completed, of course). I do think KotF has potential, and that it's not quite as taboo design-wise as people feel. I think so much of that is charged by not properly crediting everyone, even if he didn't bother to hunt down permission. He's got credits on his website, but I don't remember them always being there, and they certainly aren't in any readme file. I will say the menus are stupidly busy sometimes (particularly the character menu) and could do with a bit more minimalist design.
  8. If you're actually serious about updating KotF, the firs thing you should do is go through every map, character, etc and find the original author. Seek out permission and try to let them know you want to credit everyone, and that you're not the original author. Seeing that everyone gets proper credit was one of the huge issues with KotF. Other than that I think it's a fairly solid mod. It would definitely take some work to be sure, but if people got the credit and if permission were given for their stuff I could see this being a mod that people don't hate. As far as actually updating it goes, the biggest issue would be sorting out the absolute mess of PK3 files. Adding OpenJK support and even coding it to read both /base and a /kotf folder wouldn't be difficult. Since OpenJK already addresses 99% of bugs and gameplay issues I think it's a must if you were to continue it.
  9. I get that accuracy would be great, but as I said above I'm swamped. I'd be grateful if you guys tried to hunt down the model, or see if you or someone else can make it. In the meantime if I get to level 10 and need a Jan model I'll have to use the default.
  10. The models were never released, other than Mercenary Kyle.
  11. So some progress has been made. I programmed the secondary fire, but the four barrels are offsetting relative to the hard vectors in the gameplay world, and not the player's direction. Here's the code for secondary fire: //--------------------------------------------------------- static void WP_DEMP2_AltFire( gentity_t *ent ) //--------------------------------------------------------- { vec3_t start; int damage = weaponData[WP_DEMP2].damage; gentity_t *missileA, *missileB, *missileC, *missileD; vec3_t barrelA = { -60.0f, -20.0f, 0.0f }; vec3_t barrelB = { 35.0f, -20.0f, 0.0f }; vec3_t barrelC = { -35.0f, -20.0f, 0.0f }; vec3_t barrelD = { -60.0f, -20.0f, 0.0f }; vec3_t shotVec; VectorCopy(muzzle, start); WP_TraceSetStart(ent, start, vec3_origin, vec3_origin); //make sure our start point isn't on the other side of a wall //Calculate damages if (ent->s.number != 0) { if (g_spskill->integer == 0) { damage = DEMP2_NPC_DAMAGE_EASY; } else if (g_spskill->integer == 1) { damage = DEMP2_NPC_DAMAGE_NORMAL; } else { damage = DEMP2_NPC_DAMAGE_HARD; } } //Barrel A WP_MissileTargetHint(ent, start, forwardVec); VectorMA(start, 1, barrelA, shotVec); //VectorAdd(start, barrelA, shotVec); missileA = CreateMissile(shotVec, forwardVec, DEMP2_VELOCITY, 10000, ent); //Com_Printf(S_COLOR_YELLOW "wp_demp2.cpp - firing secondary mode, barrel A", "barrel A"); missileA->classname = "demp2_proj"; missileA->s.weapon = WP_DEMP2; VectorSet(missileA->maxs, DEMP2_SIZE, DEMP2_SIZE, DEMP2_SIZE); VectorScale(missileA->maxs, -1, missileA->mins); missileA->damage = damage; missileA->dflags = DAMAGE_DEATH_KNOCKBACK; missileA->methodOfDeath = MOD_DEMP2; missileA->clipmask = MASK_SHOT | CONTENTS_LIGHTSABER; missileA->bounceCount = 0; // we don't want it to ever bounce //Barrel B WP_MissileTargetHint(ent, start, forwardVec); VectorMA(start, 1, barrelB, shotVec); //VectorAdd(start, barrelB, shotVec); missileB = CreateMissile(shotVec, forwardVec, DEMP2_VELOCITY, 10000, ent); //Com_Printf("wp_demp2.cpp - firing secondary mode, barrel B", "barrel B"); missileB->classname = "demp2_proj"; missileB->s.weapon = WP_DEMP2; VectorSet(missileB->maxs, DEMP2_SIZE, DEMP2_SIZE, DEMP2_SIZE); VectorScale(missileB->maxs, -1, missileB->mins); missileB->damage = damage; missileB->dflags = DAMAGE_DEATH_KNOCKBACK; missileB->methodOfDeath = MOD_DEMP2; missileB->clipmask = MASK_SHOT | CONTENTS_LIGHTSABER; missileB->bounceCount = 0; // we don't want it to ever bounce //Barrel C WP_MissileTargetHint(ent, start, forwardVec); VectorMA(start, 1, barrelC, shotVec); //VectorAdd(start, barrelC, shotVec); missileC = CreateMissile(shotVec, forwardVec, DEMP2_VELOCITY, 10000, ent); //Com_Printf("wp_demp2.cpp - firing secondary mode, barrel C", "barrel C"); missileC->classname = "demp2_proj"; missileC->s.weapon = WP_DEMP2; VectorSet(missileC->maxs, DEMP2_SIZE, DEMP2_SIZE, DEMP2_SIZE); VectorScale(missileC->maxs, -1, missileC->mins); missileC->damage = damage; missileC->dflags = DAMAGE_DEATH_KNOCKBACK; missileC->methodOfDeath = MOD_DEMP2; missileC->clipmask = MASK_SHOT | CONTENTS_LIGHTSABER; missileC->bounceCount = 0; // we don't want it to ever bounce //Barrel D WP_MissileTargetHint(ent, start, forwardVec); VectorMA(start, 1, barrelD, shotVec); //VectorAdd(start, barrelD, shotVec); missileD = CreateMissile(shotVec, forwardVec, DEMP2_VELOCITY, 10000, ent); //Com_Printf("wp_demp2.cpp - firing secondary mode, barrel D", "barrel D"); missileD->classname = "demp2_proj"; missileD->s.weapon = WP_DEMP2; VectorSet(missileD->maxs, DEMP2_SIZE, DEMP2_SIZE, DEMP2_SIZE); VectorScale(missileD->maxs, -1, missileD->mins); missileD->damage = damage; missileD->dflags = DAMAGE_DEATH_KNOCKBACK; missileD->methodOfDeath = MOD_DEMP2; missileD->clipmask = MASK_SHOT | CONTENTS_LIGHTSABER; missileD->bounceCount = 0; // we don't want it to ever bounce } And for primary fire I've tried the idea that @@ensiform had of tying it to the player/entity. I looked at how the rocket launcher hooked up the tracking values, and came up with this in g_weapon.cpp. Basically each time it's called it'll increment the barrel number and output it. // some naughty little things that are used cg side int g_rocketLockEntNum = ENTITYNUM_NONE; int g_rocketLockTime = 0; int g_rocketSlackTime = 0; int currentFusionShot = 0; //to loop through fusion rifle barrels ...... //----------------------------------------------------------------------------- void WP_fusionBarrel(int currentFusionShot) //----------------------------------------------------------------------------- { //whenever this is called, it will increment the number (max of 3, then returns to 0) //it will then pass that information to wp_fusion.cpp currentFusionShot++; if ( currentFusionShot >= 3 ) { currentFusionShot = 0; } } From there I run the function in wp_fusion.cpp to grab the current int. However it's still not outputting a number to the console, so I can't tell if its actually iterating, or even if it's pulling the value from g_weapon.cpp //--------------------------------------------------------- static void WP_DEMP2_MainFire( gentity_t *ent ) //--------------------------------------------------------- { vec3_t start; int damage = weaponData[WP_DEMP2].damage; gentity_t *missile; vec3_t barrel[] = { { 22.0f, 0.0f, 0.0f }, { 11.0f, 0.0f, 0.0f }, { -11.0f, 0.0f, 0.0f }, { -22.0f, 0.0f, 0.0f } }; vec3_t shotVec; VectorCopy(muzzle, start); WP_TraceSetStart(ent, start, vec3_origin, vec3_origin);//make sure our start point isn't on the other side of a wall WP_MissileTargetHint(ent, start, forwardVec); /*missile = CreateMissile(start, forwardVec, DEMP2_VELOCITY, 10000, ent);*/ WP_fusionBarrel(currentShot); //get the current barrel number from g_weapon.cpp and store it Com_Printf(S_COLOR_YELLOW "wp_demp2.cpp - firing primary mode, barrel #", currentShot); for (currentShot = 0; currentShot <= 3; currentShot++) { VectorCopy(muzzle, shotVec); VectorAdd(shotVec, barrel[currentShot], shotVec); missile = CreateMissile(shotVec, forwardVec, DEMP2_VELOCITY, 10000, ent); } missile->classname = "demp2_proj"; missile->s.weapon = WP_DEMP2; // Do the damages if ( ent->s.number != 0 ) { if ( g_spskill->integer == 0 ) { damage = DEMP2_NPC_DAMAGE_EASY; } else if ( g_spskill->integer == 1 ) { damage = DEMP2_NPC_DAMAGE_NORMAL; } else { damage = DEMP2_NPC_DAMAGE_HARD; } } VectorSet( missile->maxs, DEMP2_SIZE, DEMP2_SIZE, DEMP2_SIZE ); VectorScale( missile->maxs, -1, missile->mins ); missile->damage = damage; missile->dflags = DAMAGE_DEATH_KNOCKBACK; missile->methodOfDeath = MOD_DEMP2; missile->clipmask = MASK_SHOT | CONTENTS_LIGHTSABER; // we don't want it to ever bounce missile->bounceCount = 0; } I have to say, being able to spit out debug info to the console is super nice. Glad I found that function.
  12. In the Mysteries of the Sith mod source files there are a few protocol droid skin variants. You might be able to cobble something close to TC-14 from those. There's a grey one, but it's a darker color.
  13. Yeah, but I'm not really concerned about it at. Crix Madine can be improved with a Luke reskin, and Jan to me will look fine in her JO outfit. I agree that his look better, but I have to make sure I'm not spreading myself too thin trying to get all this stuff. I mean for now I'm just going to use place holder models where I don't have better ones. That's why I was hoping other people would contribute, even if it's just emailing someone else. I'm swamped.
  14. You can try to contact him via infinity_blade@yahoo.com but the email address is almost 13 years old.
  15. Dunno just yet. I'd like to do a cutscene for the final version where one of the head smugglers says something to Zuckuss/4-LOM like "Hey, we've got company, take care of him!" and then Kyle runs in the room. That's a long way off though.
  16. Yes. All of the original boss fights will stay, I just want to expand on things. As far as the expanded story goes Zuckuss and 4-LOM will just be working security detail for the smugglers.
  17. Three words: work in progress ***EDIT*** Also this is literally the first time I've ever used GTKRadiant, so I'm not gonna be as good as Salv.
  18. It's very near the end that the fight takes place. Right now it's the room before the final room, which I specifically built for the boss fight. Here are some screens of the new areas I've added in order to complete the level: Part of the starting outdoor area -- most of it, actually. Two stormtroopers are guarding the elevator to go down. AshuraDX's awesome Devaronian Mercenary with a Disruptor in a new room. (need to ask AshuraDX's permission) Same room, different part, facing off against a Gamorrean. In the distance you can see the big elevator and huge door at the top. At the top is a micro command center for shipping and receiving. It's basically to make the hall less boring. Looking the other direction we see an airlock to a ship that's docked. Hmmm, that structure looks familiar... What? Imperials are running an old Blockade Runner? They really must be trying to keep a low profile. (thanks to Several Sided Sid for his permission to use the Blockade Runner map) You'll be stealing this gentleman's key. It's back out to the command hallway to open the locked door. Reminds me of the beginning of Indiana Jones and the Crystal Skull A view from the other end of the room A noclip view of the boss room. Zuckuss is on the left, 4-LOM on the right. 4-LOM Zuckuss, bathed in blue light from his repeater.
  19. DING! It's both, actually. Zuckuss will move around and attack while 4-LOM stays somewhat stationary and fires his concussion rifle. Screens to come soon.
  20. Not Greedo. Again, this is an alien who often works with a partner. And he's seen briefly in the briefing for the hunt for Han Solo in the movies.
  21. So the bounty hunter fight just got more exciting. I added CLASS_REBORN to the .npc file and this alien got more aggressive. Even though it doesn't have force powers, it moves around the room quickly, using flips, dodging, etc. I might even make this a duo fight with their partner with them (if there's a model for it). Any guesses?
  22. Any ideas? Perhaps a global within the C++ code? Like perhaps initializing the variable for looping elsewhere and then in wp_fusion.cpp extern int currentShot;Also two other quick questions: Can I specify a secondary hard-read folder? I want to do without the -path switch for /dfmod and have it hard coded along with the /base folder. -----Yep, in files.cpp, FS_BuildOSPath()Is there a command to write debug info to the console? That'd be incredibly helpful. -- Yep, the function is Com_Printf("TEXT MESSAGE", parameter2);
  23. Points for the Back to the Future reference.
  24. I think the issue comes in the time to light and set all the scripting elements for the maps. They can be converted, but even with the geometry being converted, we're talking well over 100 hours of work.
×
×
  • Create New...