Jump to content

Serenity937

Members
  • Posts

    123
  • Joined

  • Last visited

Everything posted by Serenity937

  1. {Quote} All that stuff Asgarth83 just said... Well that seems like a lot of stuff you want to do, and some of it is going to be difficult for a beginner. I'm sorry i don't really have time to get my head in to a "new" project . the only advice i can give you is "think small, start small." I really wish i had more time to help you but i just don't.I can offer small advice to get you started . like with FP_LIGHTNING but adding new force powers is a bigger task that would need a lot of code work , new effects to be made , new sounds and more. Maybe you could ask one of the other known coders who may have more time to help you than i do.But be careful who you ask, because some coders can be "touchy" and just flame your ass for asking! Or even open a new post to ask if anybody wants to join your mod team and stress you need a coder! 1: changing effects for some weapons SP like blaster pistol briar pistol and jawa,., they have the same efx >_> also many droid weapons use same efx of other, i wanna every weapon do dmg of a different element (i edit the efx after with effected) so i need to change some address for efx of the weapons. Changing the address of weapon effects This would mean adding a new weapon function starting in the weapons.dat muzzleEffect briar_pistol/muzzle_flashmissileFuncName briar_pistol_func then adding the new function in code g_weaponload.cpp // Table used to attach an extern missile function string to the actual cgame function func_t funcs[] = { {"bryar_func", FX_BryarProjectileThink}, {"bryar_alt_func", FX_BryarAltProjectileThink}, {"blaster_func", FX_BlasterProjectileThink}, {"blaster_alt_func", FX_BlasterAltFireThink}, {"bowcaster_func", FX_BowcasterProjectileThink}, {"repeater_func", FX_RepeaterProjectileThink}, {"repeater_alt_func", FX_RepeaterAltProjectileThink}, {"demp2_func", FX_DEMP2_ProjectileThink}, {"demp2_alt_func", FX_DEMP2_AltProjectileThink}, {"flechette_func", FX_FlechetteProjectileThink}, {"flechette_alt_func", FX_FlechetteAltProjectileThink}, {"rocket_func", FX_RocketProjectileThink}, {"rocket_alt_func", FX_RocketAltProjectileThink}, {"conc_func", FX_ConcProjectileThink}, {"emplaced_func", FX_EmplacedProjectileThink}, {"turret_func", FX_TurretProjectileThink}, {"atstmain_func", FX_ATSTMainProjectileThink}, {"atst_side_alt_func", FX_ATSTSideAltProjectileThink}, {"atst_side_main_func", FX_ATSTSideMainProjectileThink}, {"tusk_shot_func", FX_TuskenShotProjectileThink}, {"noghri_shot_func", FX_NoghriShotProjectileThink}, {"briar_pistol_func", FX_briar_pistolProjectileThink}, {"briar_pistol_alt_func", FX_briar_pistolAltProjectileThink}, {NULL, NULL} }; FX_brayar_pistol.cpp FX_BryarProjectileThink ------------------------- */ void FX_briar_pistolProjectileThink( centity_t *cent, const struct weaponInfo_s *weapon ) { vec3_t forward; if ( VectorNormalize2( cent->gent->s.pos.trDelta, forward ) == 0.0f ) { if ( VectorNormalize2( cent->currentState.pos.trDelta, forward ) == 0.0f ) { forward[2] = 1.0f; } } // hack the scale of the forward vector if we were just fired or bounced...this will shorten up the tail for a split second so tails don't clip so harshly int dif = cg.time - cent->gent->s.pos.trTime; if ( dif < 75 ) { if ( dif < 0 ) { dif = 0; } float scale = ( dif / 75.0f ) * 0.95f + 0.05f; VectorScale( forward, scale, forward ); } if ( cent->gent && cent->gent->owner && cent->gent->owner->s.number > 0 ) { theFxScheduler.PlayEffect( "briar_pistol/npcshot", cent->lerpOrigin, forward ); } else { theFxScheduler.PlayEffect( cgs.effects.briar_pistolShotEffect, cent->lerpOrigin, forward ); } } Basicly follow all the traces of the effect you want to change in the code . in this example briar_pistolShotEffect then make a "renamed" copy and change the effect in cg_weapons.cpp case WP_BRYAR_PISTOL: cgs.effects.briar_pistolShotEffect = theFxScheduler.RegisterEffect( "briar_pistol/shot" ); theFxScheduler.RegisterEffect( "briar_pistol/NPCshot" ); 2: cucstom class damage: like demp2 deadly for droid and unuseful against living enemies, i need to make the same thing for other weapisn, so a earth shoot weapon can be deadly for a enemy of element fire, the "light" weapons can be deadly for the vampires. the darks weapons are strongs against humans, the fire weapons against ice and water monster etc etc. custom class damge. there are already examples of this in the code you can use as guidelines start here weapons.h // Concussion Rifle //--------- //primary #define CONC_VELOCITY 3000 #define CONC_DAMAGE 150 #define CONC_NPC_SPREAD 0.7f #define CONC_NPC_DAMAGE_EASY 15 #define CONC_NPC_DAMAGE_NORMAL 30 #define CONC_NPC_DAMAGE_HARD 50 #define CONC_SPLASH_DAMAGE 50 #define CONC_SPLASH_RADIUS 256 //alt #define CONC_ALT_DAMAGE 225//100 #define CONC_ALT_NPC_DAMAGE_EASY 10 #define CONC_ALT_NPC_DAMAGE_MEDIUM 20 #define CONC_ALT_NPC_DAMAGE_HARD 30 Follow the examples of how the code increases the damage and add a class definition for it. level 3: enemy get paralyse (a spell called incapacitate, that require an aura efx like protect for statis duration, like in KOTOR game) enemy cannot atk, move, or do any animation and be freeze for some lot of second. using force absorb or force push can nullify the statis state. this is a biggie look in to bg_public.h MOVE MODULE The pmove code takes a player_state_t and a usercmd_t and generates a new player_state_t and some other output data. Used for local prediction on the client game and true movement on the server game. =================================================================================== */ typedef enum { PM_NORMAL, // can accelerate and turn PM_NOCLIP, // noclip movement PM_SPECTATOR, // still run into walls PM_DEAD, // no acceleration or turning, but free falling PM_FREEZE, // stuck in place with no control PM_INTERMISSION // no movement or status bar } pmtype_t; I think you will be able to use PM_FREEZE by adding an activator and effect etc. bg_pmove.cpp in void Pmove( pmove_t *pmove ) { look for this to get you started if (pm->ps->pm_type == PM_FREEZE) { return; // no movement at all } add the effect in cg_player.cpp somewhere in void CG_AddRefEntityWithPowerups( refEntity_t *ent, int powerups, centity_t *cent ) { Cant think of anything better at the moment to help you get started, without getting out my code and actually writing the stuff! I did a similar thing to this in Evolution of combat by making a freeze grenade . http://www.moddb.com/mods/serenitysabersystems/images/eociii-pro#imagebox Good luck and remember "Think small, start small". Ill keep my eye on this topic and help where i can
  2. Well if i understand you correctly ..Urm.. Making force lightning different colors for different classes would be handled by adding new Lightning effects firstly in code and then secondly the effect its self. sorry i dont know "Hyldens class" but you would need to look into cg_weapons.cpp cgs.effects.forceLightning = theFxScheduler.RegisterEffect( "force/lightning" ); cgs.effects.forceLightningWide = theFxScheduler.RegisterEffect( "force/lightningwide" ); adding your new lightning effect here first then Activate or Action your new effect here in cg_players.cpp if ( cent->gent->client->ps.forcePowersActive&(1<<FP_LIGHTNING) ) {//doing the electrocuting //FIXME: if the target is absorbing or blocking lightning w/saber, draw a beam from my hand to his (hand?chest?saber?) vec3_t tAng, fxDir; VectorCopy( cent->lerpAngles, tAng ); if ( cent->gent->client->ps.forcePowerLevel[FP_LIGHTNING] > FORCE_LEVEL_2 ) {//arc vec3_t fxAxis[3]; AnglesToAxis( tAng, fxAxis ); theFxScheduler.PlayEffect( cgs.effects.forceLightningWide, cent->gent->client->renderInfo.handLPoint, fxAxis ); if ( cent->gent->client->ps.torsoAnim == BOTH_FORCE_2HANDEDLIGHTNING || cent->gent->client->ps.torsoAnim == BOTH_FORCE_2HANDEDLIGHTNING_START || cent->gent->client->ps.torsoAnim == BOTH_FORCE_2HANDEDLIGHTNING_HOLD || cent->gent->client->ps.torsoAnim == BOTH_FORCE_2HANDEDLIGHTNING_RELEASE ) {//jackin' 'em up, Palpatine-style theFxScheduler.PlayEffect( cgs.effects.forceLightningWide, cent->gent->client->renderInfo.handRPoint, fxAxis ); } } else {//line AngleVectors( tAng, fxDir, NULL, NULL ); theFxScheduler.PlayEffect( cgs.effects.forceLightning, cent->gent->client->renderInfo.handLPoint, fxDir ); if ( cent->gent->client->ps.torsoAnim == BOTH_FORCE_2HANDEDLIGHTNING || cent->gent->client->ps.torsoAnim == BOTH_FORCE_2HANDEDLIGHTNING_START || cent->gent->client->ps.torsoAnim == BOTH_FORCE_2HANDEDLIGHTNING_HOLD || cent->gent->client->ps.torsoAnim == BOTH_FORCE_2HANDEDLIGHTNING_RELEASE ) {//jackin' 'em up, Palpatine-style theFxScheduler.PlayEffect( cgs.effects.forceLightning, cent->gent->client->renderInfo.handRPoint, fxDir ); } } } the damage effect of lightning would start here wp_saber.cpp void ForceLightningDamage( gentity_t *self, gentity_t *traceEnt, vec3_t dir, float dist, float dot, vec3_t impactPoint, int saberNum, int bladeNum ) { traceEnt->s.powerups |= ( 1 << PW_SHOCKED ); Its the PW_SHOCKED part that plays the effect . it can be altered or messed with here cg_players.cpp // Electricity //------------------------------------------------ if ( (powerups & ( 1 << PW_SHOCKED )) ) { int dif = gent->client->ps.powerups[PW_SHOCKED] - cg.time; if ( dif > 0 && random() > 0.4f ) { // fade out over the last 500 ms int brightness = 255; if ( dif < 500 ) { brightness = floor((dif - 500.0f) / 500.0f * 255.0f ); } ent->renderfx |= RF_RGB_TINT; ent->shaderRGBA[0] = ent->shaderRGBA[1] = ent->shaderRGBA[2] = brightness; ent->shaderRGBA[3] = 255; if ( rand() & 1 ) { ent->customShader = cgs.media.electricBodyShader; } else { ent->customShader = cgs.media.electricBody2Shader; } cgi_R_AddRefEntityToScene( ent ); if ( random() > 0.9f ) cgi_S_StartSound ( ent->origin, gent->s.number, CHAN_AUTO, cgi_S_RegisterSound( "sound/effects/energy_crackle.wav" ) ); } } so you can see messing with the lightning effect is possible but a little more complicated than protect, see rage or absorb. But the principle of code remains the same of classes or force levels ,easily done at a basic level through an else if tree. The hardest part (not hard at all really) would be adding new variations of lightning or different colored lightning effects and then letting this raziel guy use it through a class addition...
  3. Well your very welcome Once you get the general idea of what you can or want to do with this color thing you can use a mix of force levels or class, here is a small example for you to use as you wish, alter the RGB colors / class or Fp Level how you wish until you get the effect you like. This example deals with ABSORB but you could theoretically add an "AURA" for any FP like when speeding ,or for example Saber Defense low fp glow by adding a fp check similar to "ps.forcePower < 30" for example else if ( cent->gent->client->ps.forcePowersActive & (1 << FP_ABSORB)) { //absorb is represented by blue.. //Normally but not anymore if ( cent->gent->client->NPC_class == CLASS_DESANN || cent->gent->client->NPC_class == CLASS_SHADOWTROOPER || cent->gent->client->NPC_class == CLASS_TAVION || cent->gent->client->NPC_class == CLASS_ALORA || cent->gent->client->NPC_class == CLASS_REBORN ) { ent->shaderRGBA[0] = 255; //add any number from 0-255 to use your own color ent->shaderRGBA[1] = 120; //add any number from 0-255 to use your own color ent->shaderRGBA[2] = 255; //add any number from 0-255 to use your own color } else if ( cent->gent->client->NPC_class == CLASS_SBD || cent->gent->client->NPC_class == CLASS_ASSASSIN_DROID || cent->gent->client->NPC_class == CLASS_BATTLEDROID || cent->gent->client->NPC_class == CLASS_DROIDEKA || cent->gent->client->NPC_class == CLASS_SABER_DROID ) { ent->shaderRGBA[0] = 100; //add any number from 0-255 to use your own color ent->shaderRGBA[1] = 90; //add any number from 0-255 to use your own color ent->shaderRGBA[2] = 160; //add any number from 0-255 to use your own color } else if ( cent->gent->client->NPC_class == CLASS_JEDI || cent->gent->client->NPC_class == CLASS_LUKE || cent->gent->client->NPC_class == CLASS_KYLE ) { ent->shaderRGBA[0] = 0; //add any number from 0-255 to use your own color ent->shaderRGBA[1] = 120; //add any number from 0-255 to use your own color ent->shaderRGBA[2] = 0; //add any number from 0-255 to use your own color } else if ( cent->gent->client->NPC_class == CLASS_R2D2 || cent->gent->client->NPC_class == CLASS_R5D2 || cent->gent->client->NPC_class == CLASS_PROTOCOL ) { ent->shaderRGBA[0] = 255; ent->shaderRGBA[1] = 255; ent->shaderRGBA[2] = 230; } else if ( cent->gent->client->NPC_class == CLASS_JAN )// Jan gets her own because she is my bitch and i need to know where bitch is all the time { ent->shaderRGBA[0] = 125; ent->shaderRGBA[1] = 255; ent->shaderRGBA[2] = 230; } else if ( cent->gent->client->NPC_class == CLASS_PLAYER ) //Oh shit its me ? { if ( cent->gent->client->ps.forcePowerLevel[FP_ABSORB] > FORCE_LEVEL_2 ) // if i have fp 3 i get this color { ent->shaderRGBA[0] = 120; ent->shaderRGBA[1] = 190; ent->shaderRGBA[2] = 255; ent->shaderRGBA[3] = 254; } else //if i have less than FP 3 i get this color { ent->shaderRGBA[0] = 0; ent->shaderRGBA[1] = 120; ent->shaderRGBA[2] = 0; } } else //this just insures i didnt miss anybody { if ( cent->gent->client->ps.forcePowerLevel[FP_ABSORB] > FORCE_LEVEL_2 ) { ent->shaderRGBA[0] = 0; ent->shaderRGBA[1] = 0; ent->shaderRGBA[2] = 255; ent->shaderRGBA[3] = 254; } else { ent->shaderRGBA[0] = 0; ent->shaderRGBA[1] = 120; ent->shaderRGBA[2] = 0; } } ent->renderfx &= ~RF_RGB_TINT; if ( cent->gent->client->ps.forcePowerLevel[FP_ABSORB] > FORCE_LEVEL_1 ) { ent->customShader = cgs.media.forceShell; } else { ent->customShader = cgs.media.playerShieldDamage; } cgi_R_AddRefEntityToScene( ent ); } hope this helps get you going with this.
  4. Well i haven't done anything with PROTECT or ABSORB in SJE myself, only the CLASS SENSE but i think its possibly a good idea to add some variety. Ill look in to this further but for now i can tell you your answer probably lies in cg_players.cpp start in here void CG_AddRefEntityWithPowerups( refEntity_t *ent, int powerups, centity_t *cent ) { and the area your going to need to work with will probably be here if ( (cent->gent->client->ps.forcePowersActive & (1 << FP_PROTECT)) && (cent->gent->client->ps.forcePowersActive & (1 << FP_ABSORB)) ) {//using both at once, save ourselves some rendering //protect+absorb is represented by cyan.. ent->shaderRGBA[0] = 0; ent->shaderRGBA[1] = 255; ent->shaderRGBA[2] = 255; ent->shaderRGBA[3] = 254; ent->renderfx &= ~RF_RGB_TINT; //ent->renderfx &= ~RF_FORCE_ENT_ALPHA; if ( cent->gent->client->ps.forcePowerLevel[FP_PROTECT] > FORCE_LEVEL_1 || cent->gent->client->ps.forcePowerLevel[FP_ABSORB] > FORCE_LEVEL_1 ) { ent->customShader = cgs.media.forceShell; } else { ent->customShader = cgs.media.playerShieldDamage; } cgi_R_AddRefEntityToScene( ent ); } else if ( cent->gent->client->ps.forcePowersActive & (1 << FP_PROTECT) ) { //protect is represented by green.. ent->shaderRGBA[0] = 0; ent->shaderRGBA[1] = 255; ent->shaderRGBA[2] = 0; ent->shaderRGBA[3] = 254; ent->renderfx &= ~RF_RGB_TINT; //ent->renderfx &= ~RF_FORCE_ENT_ALPHA; if ( cent->gent->client->ps.forcePowerLevel[FP_PROTECT] > FORCE_LEVEL_1 ) { ent->customShader = cgs.media.forceShell; } else { ent->customShader = cgs.media.playerShieldDamage; } cgi_R_AddRefEntityToScene( ent ); } else if ( cent->gent->client->ps.forcePowersActive & (1 << FP_ABSORB)) { //absorb is represented by blue.. ent->shaderRGBA[0] = 0; ent->shaderRGBA[1] = 0; ent->shaderRGBA[2] = 255; ent->shaderRGBA[3] = 254; ent->renderfx &= ~RF_RGB_TINT; //ent->renderfx &= ~RF_FORCE_ENT_ALPHA; if ( cent->gent->client->ps.forcePowerLevel[FP_ABSORB] > FORCE_LEVEL_1 ) { ent->customShader = cgs.media.forceShell; } else { ent->customShader = cgs.media.playerShieldDamage; } cgi_R_AddRefEntityToScene( ent ); } the shaders that support the effect can be found in effects.shader under the heading gfx/misc/forceprotect use a small else if tree for such simple instances to get the desired effect and just alter the RGB number to your desired color. I will post an example when i get time later if you need more help Hope this helps
  5. In the Code you can change the colors of individual classes in void CG_AddForceSightShell( refEntity_t *ent, centity_t *cent ) I did this for the SJE /* =============== CG_AddForceSightShell Adds the special effect =============== */ extern void CG_AddHealthBarEnt( int entNum ); void CG_AddForceSightShell( refEntity_t *ent, centity_t *cent ) { ent->customShader = cgs.media.forceShell; ent->renderfx &= ~RF_RGB_TINT; // See through walls. ent->renderfx |= (RF_MORELIGHT|RF_NODEPTH); if ( (cent->currentState.eFlags&EF_FORCE_VISIBLE) || (cent->currentState.eType == ET_PLAYER && cent->gent && cent->gent->message) ) { ent->shaderRGBA[0] = 0; ent->shaderRGBA[1] = 0; ent->shaderRGBA[2] = 255; ent->shaderRGBA[3] = 254; cgi_R_AddRefEntityToScene( ent ); return; } ent->shaderRGBA[0] = 210; ent->shaderRGBA[1] = 145; ent->shaderRGBA[2] = 55; team_t team = TEAM_NEUTRAL; if ( cent->gent && cent->gent->client ) { team = cent->gent->client->playerTeam; } else if ( cent->gent->owner ) { if ( cent->gent->owner->client ) { team = cent->gent->owner->client->playerTeam; } else { team = cent->gent->owner->noDamageTeam; } } switch ( team ) { case TEAM_ENEMY: if ( cent->gent->client->NPC_class == CLASS_DESANN || cent->gent->client->NPC_class == CLASS_SHADOWTROOPER || cent->gent->client->NPC_class == CLASS_TAVION || cent->gent->client->NPC_class == CLASS_ALORA || cent->gent->client->NPC_class == CLASS_REBORN ) { ent->shaderRGBA[0] = 255; ent->shaderRGBA[1] = 120; ent->shaderRGBA[2] = 255; } else if ( cent->gent->client->NPC_class == CLASS_SBD || cent->gent->client->NPC_class == CLASS_ASSASSIN_DROID || cent->gent->client->NPC_class == CLASS_BATTLEDROID || cent->gent->client->NPC_class == CLASS_DROIDEKA || cent->gent->client->NPC_class == CLASS_SABER_DROID ) { ent->shaderRGBA[0] = 100; ent->shaderRGBA[1] = 90; ent->shaderRGBA[2] = 160; } else { ent->shaderRGBA[0] = 255; ent->shaderRGBA[1] = 50; ent->shaderRGBA[2] = 50; } break; case TEAM_PLAYER: if ( cent->gent->client->NPC_class == CLASS_JEDI || cent->gent->client->NPC_class == CLASS_LUKE || cent->gent->client->NPC_class == CLASS_KYLE ) { ent->shaderRGBA[0] = 0; ent->shaderRGBA[1] = 120; ent->shaderRGBA[2] = 0; } else if ( cent->gent->client->NPC_class == CLASS_R2D2 || cent->gent->client->NPC_class == CLASS_R5D2 || cent->gent->client->NPC_class == CLASS_PROTOCOL ) { ent->shaderRGBA[0] = 255; ent->shaderRGBA[1] = 255; ent->shaderRGBA[2] = 230; } else if ( cent->gent->client->NPC_class == CLASS_JAN ) { ent->shaderRGBA[0] = 125; ent->shaderRGBA[1] = 255; ent->shaderRGBA[2] = 230; } else { ent->shaderRGBA[0] = 75; ent->shaderRGBA[1] = 75; ent->shaderRGBA[2] = 255; } break; case TEAM_FREE: if ( cent->gent && cent->gent->client ) { if ( cent->gent->client->NPC_class == CLASS_TUSKEN || cent->gent->client->NPC_class == CLASS_RANCOR || cent->gent->client->NPC_class == CLASS_WAMPA || cent->gent->client->NPC_class == CLASS_SAND_CREATURE ) { ent->shaderRGBA[0] = 255; ent->shaderRGBA[1] = 120; ent->shaderRGBA[2] = 0; } } break; } if ( g_entities[0].client->ps.forcePowerLevel[FP_SEE] > FORCE_LEVEL_2 ) {//TEST: level 3 also displays health if ( cent->gent && cent->gent->health > 0 && cent->gent->max_health > 0 ) {//draw a health bar over them CG_AddHealthBarEnt( cent->currentState.clientNum ); } } //if ( g_entities[0].client->ps.forcePowerLevel[FP_SEE] < FORCE_LEVEL_2 ) //{ //only level 2+ can see players through walls // ent->renderfx &= ~RF_NODEPTH; //} cgi_R_AddRefEntityToScene( ent ); } The end result is this for the classes http://www.moddb.com/mods/serenitysabersystems/images/force-class-sense This allows you to see the different classes in different colors.
  6. Further development tester http://www.mediafire.com/download/u375ia2zp05plqb/Serenity+Jedi+Engine+V0.8.rar Added location based damage dismemberment for weapons (Guns that fire projectiles only). You now have to press the use key to pick anything up ,.no longer walking on a weapon/item picks it up. Some animation fixes for models that dont use the standard _humanoid ie rancor,wampa rockettrooper etc started work on ledge grab (not finished)
  7. Further Development : Location Based Damage Dismemberment http://www.youtube.com/watch?v=fivV6ZHAnes&feature=c4-overview&list=UUI2Ol6YCN70G6nN-XD-1Iug Saber Ignition Flare http://www.youtube.com/watch?v=S7OS-5em-BM&feature=c4-overview&list=UUI2Ol6YCN70G6nN-XD-1Iug Small details making a difference
  8. If your looking for some code for MP ? Speak to stoiss , he has his own EoC source from when we worked together ,he has the same MP source that i have. My SP source is almost exactly the same as MP just changed to make it work in sp. I dont know how much contact you have with him but maybe if you ask him he will give you some code? I dont know if he will give you his source from the old EoC MP ,I cant speak for him but im not uploading my sp source for at least 2 more weeks when its finished and implemented in EoC it just cost too much money to keep updating on line my internet is "pay as you go" and every MB cost me money. Dont think there,s anything in my sp source you couldnt do yourself (probably better). Plus you can get 75% of it from OJP 1.2 as that is the source me and stoiss started with. Your JKG sabersystem looks interesting. Ive also built a personal JK2 source sabersystem with the same stuff as SJE . for personal use. I would be willing to upload that code for you as it is much smaller? Pm me if you want the JK2 source with manual blocking . Im doing ledge grab next and then im finished
  9. Thanks mate I took a look at your code and i have to say its very nice and clean our sfx saber code is almost the same lol but im using OJP sfx stuff and shaders. You have implemented the full sfx saber code where as i just altered the cg_dosaber code to glow at different levels depending on how much FP you have.Its a good way to see if your opponent is getting weaker.I think your method is probably better but i wanted to do something different in mine than the usual. http://www.moddb.com/mods/serenitysabersystems/images/sfx http://www.moddb.com/mods/serenitysabersystems/videos/saber-and-force-connection#imagebox Your saber holster code is very good.I must have tried 50 different ways over the space of a week to get the saber to sit correctly. Our methods are similar but your is far cleaner. I put the 1 hand saber on the hips also but i put the staffs (2 hand sabers) round the back to stop it clipping the player. http://www.moddb.com/mods/serenitysabersystems/images/holster#imagebox http://www.moddb.com/mods/serenitysabersystems/images/holster1#imagebox I would love to put the single saber on the top of the leg near the waist but i couldnt figure it out. lol Im doing ledge grab next if you have any advice that would be cool
  10. I have to ask you, Are you asking as a player and it seems slow or just from watching the videos? Some of the swings are slower yes . And some of them are faster. why? When me and stoiss started building the sabersystem about 3 years ago we tested and tested every aspect we could think of over and over again and together we discussed and changed the system accordingly .The typical moves that everybody just spamms and spamms ,the moves that people could call "overpowered" are now less effective or slower. There are also certain moves that just could not be manually blocked because they were too fast and quicker than the human eye and thought process. some of the moves were just too slow and pathetic ,these moves were beefed up altered and worked on. The thing about JKA sabersystem is that everybody plays in a different way, everybody has there own ideas of what is good ,what is bad and how it should be.And every player thinks they are the best master at it. This is simply my and stoiss interpretation of what we wanted it to be like. "I have to also give credit to stoiss as he has played a major part in building the system ,his ideas and input were invaluable" We strived to make the system more manageable and we took a lot of inspiration from the movies. many people wont like what we have done because it does take time to master and if you don't know what your doing it will seem random and you'll get frustrated and die very quickly. The sabersystem assumes that you already have a good working knowledge of the base system and it just builds on that. Your moves will become slower as you become fatigued or severely injured.Good blocking or killing an opponent will "top up" your FP as a reward.and as a result your moves become faster again.
  11. Firstly ive got to give a big thankyou to boothand once again for doing such a long detailed video. Ill make some points ,in reference to your game play style and hopefully these will help you. The biggest thing i noticed was an immediate improvement in skill and style. And to compliment that i noticed as time went on you got better at dealing with sith and gunners. This tells me that you just need more practice ,as its not actually so hard to play once you understand the basic mechanics. I'm sure you will master the system in not time at all. I also notice that you realised that running headlong in to a room full of stormtroopers is just tactically dangerous. :wacko: The blocking drains of blocking shots from 5- 10 stormtroopers will soon leave you fatigued. You started to take cover and think tactically,picking off your targets and then going back in to cover. This is exactly the idea i intended. The days of running in to a room full of stormtroopers standing still as they all shoot at you and miss ,then you just hold saberthrow as the saber floats round the room killing all the stormtroopers is over. Gunners are now far more accurate and will defend themselves aggressively in close combat against jedi (you). As time went on you started to use your force powers more and more. Your force powers are essential in combat and you need to think like "more than 5 gunners ,push them down and pick them off". Force pull will also pull there weapons from there hands but be beware , gunners will now automaticly switch to melle if you disarm them.No longer will they just stand there holding there arms in the air and surrender. you can also pull a gunner at you and immediately push them away, (select melee and do this to slam them in to walls). Now to the saber fight at the end with tavion..... You actually made it look hard, but once again i think that,s my fault because you need more information to help you. Every now and again you forgot the basics and reverted back to base JKA fighting style,but then you composed yourself and started to make progress again. Ive tried my best to make this a thinkers mod .Think tactics and reactions, your offensive and defensive actions need to be composed and controlled, learn your enemy's fighting style and anticipate a commonly used reaction to your actions. there are about 10 different fighting styles your enemy's can use depending on saberstyle and class. Exmple Tavion NPC , she will use tavion saberstyle individual to her but now she can mix and match saberstyles, she can do saber fake attacks and shes a good blocker... but she is a sith master so what do you expect? she will also use force lightning on you when you least expect it. Things you need to add to your fighting style are combined melle attacks, use the force to distract your enemy. When you pick up a bacta tank it will no longer regen your health, you need to look in to your inventory and use it like in the old JK2 days. So to help you further ive made another tutorial. Tutorial 1. http://www.moddb.com/mods/serenitysabersystems/videos/serenitysabersystem-tutorial-part-1#imagebox Tutorial 2. http://www.moddb.com/mods/serenitysabersystems/videos/sabering-tutorial-part-2#imagebox I will make another tutorial with more advanced stuff in it next. I realised also that you changed your mind about many aspects of the sabersystem after seeing the first tutorial, hopefully this will help you further. With reference to what you said about making the sabersystem in a similar fashion to another game you play. You've got to realise about how the code is built . To totally rebuild the sabersystem would be just madness, so ive tried to work with the system provided adding to it removing stuff from it and changing it where possible and doing the best i can with the tools provided. Thanks again Serenity P.S One comment you made in the video "WoW This is hard ".... this is exactly what i want people to think. So they stop and concentrate. use there heads and be tactical. It is important to note that the new saber system was designed to be more movie-like than the base Jedi Academy (JA) saber system. http://www.youtube.com/watch?v=tOMuHtnD4OI&feature=youtu.be
  12. I like this idea . Ill put some thought into this and how to do it thankyou for this suggestion.
  13. No it comes with FP cost so it will fail you if spammed.Meaning you need to keep your attention on manual and standing blocking. I think if you faced 2/3 enemy,s at the same time and tried autoblock only you wouldnt last 2 min because it takes time to reset and would drain your fp very fast. Try this: devmap bespin_platform A good hard level that will test all the skillz required to get through it. Maybe you could make another vid to show your progress after watching the tutorial?
  14. You only get 1 autoblock for free.The idea is that manual blocking can be soooooo difficult sometimes ,that the autoblock can really save your ass if you re set it fast enough in fast saber combat. Look in " ext_data / npcs" for all the npc names or see here for the npc names to spawn http://www.gamefaqs.com/pc/914574-star-wars-jedi-knight-jedi-academy/faqs/26885
  15. OMG I just found this thread,Some totally awesome work is being done here. I would love to know how you did the sfx/rgb sabers and holstered sabers? I have also done this but i had some real nightmares with both. Took me a week to get the saber holster thing working. Me and stoiss were only talking about this 2 weeks ago on skype when i started it. I used the RGB/sfx sabers in a different way than normal to indicate how much FP you have. I wish you well with your mod and im happy to see some new super cool mods coming for singleplayer. Fantastic...
  16. So i made a basic Introduction tutorial video. http://www.moddb.com/mods/serenitysabersystems/videos It starts right at the beginning ,basic to more advanced blocking. Im going to do some more of these tut videos when i get more time. Hopefully this will be useful. In the mean time im working on a full tutorial read me. That exactly correct ,it bugs me when a modder/coder spends months building a mod and people just cheat there way through the mod and finish it in 5 min .Makes the whole process of building a mod a waste of time. http://www.youtube.com/watch?v=fXpaU5KFjPY&feature=c4-overview&list=UUI2Ol6YCN70G6nN-XD-1Iug It wont be more than 2/3 weeks before i upload the whole pack as a zip.pk3........Almost ready
  17. Im currently making a Sabering tutorial Video. Ill get back to you with answers as soon as i finish. The difference between EoC and SJC If you play EoC MP and SJE SP its 2 different engines EoC sp will use SJE. Absolutely correct, couldn't have said it better myself. You can do pretty much anything with this build,Ive tried to make it as flexible as possible. Add your own models, maps ,etc.. I will run any or all singleplayer mods EXCEPT : Movieduels 2 . Why? . because movieduels 2 runs its own specific _humanoid folder and in the movieduels 2 humanoid gla the new animations are missing , this would result in the movieduels mod showing the jesus pose when the code tries to run the new animations. IE Fatigue animations. FIX: Would be to add all the new animations in to the movieduels 2 humanoid But it plays Movieduels 1 fine Basicly it will run any singlplayer mod that does not need a specialized _humanoid gla. The trick is not to remove anything from the SJE .pk3 but you can alter the humanoid for animations or replace/improve any of the other assets in the pk.3 Supported mods that have been tested survival mod escape yavin movieduels 1 ALL the Nina mods Dark forces mod demos 1+2 redemption mod syndicate mod crash on tatooine resurgence mod it also play many outcast mods
  18. Well the first thing i have to say is thankyou for your time and effort in actually making a video. The main thing i picked up for me is I really got to make a read me with a Sabersystem manual. You we playing the saber combat like its base ,running and swinging and expecting the autoblocking to pick up a lot of the accuracy for you. Now i see someone else playing I realize that's totally normal and to be expected and i ask myself "How is he supposed to know how to do it without a Saber manual?" For this i have to apologise , I'm going to make this my next mission. You have this problem of not understanding the blocking and how it works and that is totally my fault and i apologise. I have to say LOL to not knowing where to go on the map,Under the room turn off the generator ,follow the path past the generator ,up the lift, in to the control room through the floor grate ,Kill the sith and open the switches to open all the doors. Ok the first response i can give you about the stormtroopers kicking you is in the form of a video with an explanation. http://www.moddb.com/mods/serenitysabersystems/videos/stormtrooper#imagebox When in close proximity to an enemy the absolute worst thing to do is start running. You need to stand your ground holding your block button ready to do a direction block. Or if you are attacking and swinging your saber ,then you need to be walking also,running and swinging makes your attack very inaccurate and easy to block and knock you aside There are lots of new saber moves designed specifically to defeat certain classes of enemy's for example the saber flick as seen in the video for beating stormtrooper You were correct in your video when you said holding the block button to deflect shots with accuracy, However i must also tell you if you are saber attacked and you are not holding the block button and your opponents saber hits your saber. So effectively your just holding your saber,,,,when the enemy's saber attack hits your saber he will knock you back.This is what was happening to you alot and making you stumble back so you can not attack. Here are some quotes from the saber manual i started after seeing this video that may help. You can now only walk during a Knockaway Manual Blocking. Hold down Block button and use your movement keys to set a direction.The current controls are inverted (backwards for upper positions, forwards for lower) The available positions are Lower Left, Lower Right, Upper Right,Upper Left, Top. Sabers now bounces off players (and other damageable objects) when the saber does non-lethal damage. Layman translation: NO MORE GROSS SABER PASSTHRU. sabers now use actual saber radius's for saber collision checks Saber behaviour completely rewrote. - Running or moving faster than a walk greatly increases your chances of screwing up.- Manually block an attack has a high probability of creating an opening in your opponent's defences Your Force Points now regenerate at a slower rate and most combat actions cause Force Points. Attempting a saber move that costs more than your current FP will result in you doing the move much slower than normal. The objective of this system is to make players concentrate on fighting smartly by effective mixes of attacking and defending. Force Regen Rates Standing = StandardRunning = No RegenWalking = Standard/2Meditate (using the meditate taunt) = Standard * 3 Force Costs:Standard Saber Attack = 1Standard Saber Spin (transition) = 1 Parry block (this is the most important technique): Hold the directional key to move into whatever side your getting hit on. A and D for side hits, S for high swings (up-down swings) and W for lunge and low hits. This move lessens hit damage on you greatly.Regular swings require holding down the attack button for at least half the swing, otherwise you will perform a basic/start fake Tavion's and Desann's and duel and staff saber styles are now accessible with single saber and are coloured on the FP hud All styles can kick by using the alternate weapon attack Proto Visual weapons code - While you're not using your saber, it will appear on your belt Moded Force Fall so that it gradually slows down = instant slow down. - Saber Fakes - pressing the block button before an attack starts will make your player do a fake. Using Block + a direction will transistion the swing into different attack (based on the direction pressed). Using Block without movement will cause the player to abort the attack and resume the ready position. Watch the angle at which your opponent's swing. Watch whether it's a high swing, coming from the side, or a lunge. Also watch the angle at which it is about to hit you.Use your forward, back, and side keys (w, a, s, and d) to move into the swing. It is important to remember that the direction for high swings is inverted from what you might expect. You parry high swings by pressing the back key (s). Side swings are parried by moving into the swings with the side buttons (a and d).Lunges or low swings can be parried by pressing forward (w). Note: The parry is determined based on where you get hit. For example: If your player gets hit lower on their body with a high diagonal swing, the proper parry direction would be to move to that side. Check if your opponent has been parried and/or if you do a knockaway animation or lost less FP. You will do a one handed block and your opponent will bounce slowly if you do it correctly. If you opponent was very low Fp, he might max out and fall over or lose his saber. Block-to-swing or swing-to-swing transitions: This technique allows you to bounce out of your block into a swing faster than you usually would and allows you to combo easier in different directions when your swing bounces off an opponent's saber. It is a very effective way of countering after you have blocked or hit. Step 1: Watch for a saber block or a bounce hit off an opponent. If your opponent parries you, You'll bounce slowly and will not be able to do the transition. Step 2: Hold the attack button and press a different movement direction than you blocked or swung in, or just keep holding it and what ever direction your were holding before and it will automatically switch. Step 3: Watch and see if your transition was successful. If it was successful, you will usually get the first hit and force a block by your opponent. If used correctly, you can chain several of these swings and do a lot of FP drain on your opponent. Attack Feints: Attack feints are a very useful technique allows you to fake swing in one direction and hit in another. The Attack fake also causes one-third more damage than the regular swing. There is also a cost of 1 FP for each change of direction you do in the faking. The Attack fake also does 1.25 times the damage of a normal swing Step 1: Look for an appropriate situation to use an attack feint. While usage of this technique is more personal preference than anything, the best times to use this technique is starting at a distance in order to avoid getting hit in the process. Step 2: While pressing and holding block and attack, use the directional keys to change direction of the swing. By default, the attack fakes will usually change directions at a 90 degree angle unless you press in a different direction Step 3: Hit your opponent with the attack feint at any part of their body where their saber isn't in front of or in a place where you don't believe it will be parried. As with any swing, you have to be careful about where you hit. Watch you opponent's movements because if you hit high and they are moving backwards for example, you will get parried. It is also good to transition into another swing if you can in order to do more damage. You will know if you have successfully hit your opponent without getting parried if you see both of you go into a quick saberlock animation in which you win automatically (this is more for visual effect than anything). Start Fakes (Occasionally referred to as wind up fakes or basic fakes): These are a lot more straight-forward than attack fakes, but still useful in many ways. They cost no FP to use Step 1: Look for the right situation to use the windup fake. Attack fakes have many uses depending on your personal preference. You can use them to fake out an opponent, disguise a parry (which can be done during the fake), and even block a swing for no fP cost if you move your saber in front of the opponent's swing (this is a very hard technique to do). It also causes a little fP damage on your opponent at very close range. Step 2: Tap the attack button and press the directional buttons in the direction you want do the basic fake or simply let go of the attack button during a windup or transition Step 3: Watch your opponent's reaction to the fake and plan your next move based on that reaction Thats all for now ill do a proper sabersystem read me tonight.
  19. Thats some really valid points you make about the word Engine and i totally accept your opinion, but i don't make the claim that its a "Whole new Engine".Its just a modified code and i choose to give it a name to make it recognisable. If I may direct your attention to Part 2 of GNU GPLv2. 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. So if i Give the code a name then there is no legal issues about alterations As for the Github issue ,Im happy to answer that in full. I live in a very small village in the Yorkshire dales,less than 2000 people. When i left the Army i used the money i saved to move to the smallest ,quietest country village i could afford to buy in to. Some people say its like middle earth here! https://imageshack.com/i/ndcg6qj This is the main street in my village. One of the downsides of living so far away from mainstream life is bad quality internet. You might even say "Its sooo 2000 ".The internet is an Expensive privilege not enjoyed by all.As i have a 9 month old baby, I have to prioritize my money .So uploading , maintaining code on a web site is "FOR ME" a total waste of money. This is why i choose to do the old but tried and tested method of rar/zip. Hopefully you can understand my point. As for running Jedi Outcast in Jedi Academy , you are absolutely correct it was easy to do.But that isnt the main aim of SJE . As i stated in my original post. The point is this... The engine comes with all the files ,assets required to run it and is only 47mb.The rest is up to you to add new effects,maps or use it to power your mod project. SJE is defiantly not going to be everybody,s "cup of tea" and thats ok because the community has Openjk .For these people the only response i can give is Dont download SJE. Obviously if SJE has a very bad reception and nobody likes it or the idea of it then i wont be releasing it and then there will be no need for me to release any code either, Some things go down well some things go down badly, that's the point of putting it here to get some feedback. Thank you for your response
  20. Not yet! Its going to be more of a path of discovery until i get enough time to sit down and write a change log.There is a small read me in the files explaining some basic use instructions.However ,If people want to know anything then they can PM me or ask here and ill be happy to help. Yes im trying to standardize the name to all the stuff i did.I use the name Serenity only concerning jedi academy matters mods/playing online , forums. etc. My facebook page does not say serenity lol. I chose the name Serenity as it is part of the Jedi Codex and i like its meaning...http://www.oxforddictionaries.com/definition/english/serenity "steadiness of mind under stress" Im ex Forces and have served in some "HOT" places and i think it describes me well. So there is actually a reason why i chose this name.
  21. When the code is released then you would need to re-edit the code and put it back to base .That wouldn't be too difficult to probably copy paste the sabering code back in but it does kind of defeat the purpose of the engine ,maybe openjk would be suited better to some people for this reason.This is more of a "Modders mod" as opposed to playing base. The code is heavily modified and will be available for people to use in any way they see fit.So you could just copy the parts you like and use them to build your own code/mod. I really just put the engine here to get a feedback of gameplay /possible bugs i missed and get a general feel of reaction before i release it in full with EoC.It will come as part of the EoC pack with the source and all the assets.
  22. So some time has passed and i want to make SJE available to people so they can test it take a look and maybe give me some feedback. The Serenity Jedi Engine is a small project I am doing on the side. SJE =Serenity Jedi Engine The aim is to provide a new engine for modders to use ,replacing the normal JKA engine. Why? Well this engine has many more features animations and a new sabersystem . Over 40 new animations and able to run multiple _humanoid folders simultaneously with a built in class system that is animation specific (Superbattledroid has its own animations etc,etc). Some examples are provided in SJE asset.pk3 It can run jedi outcast or jedi academy and most of the popular mods available.Script edits provided in SJE. Many of the limitations of JKA have been increased to fit with modern modding .IE entities limit code rebuilt to play much more detailed maps.(Ever tried playing battle over coruscant map and got the max entities crash...fixed in SJE). It has many many fixes that plagued the JKA engine. It is used to power Evolution of Combat 2014 version soon to be released . The point is this... The engine comes with all the files ,assets required to run it and is only 47mb.The rest is up to you to add new effects,maps or use it to power your mod project. The engine comes with full permission to alter anything you want in the files ,IE change the animations if you are an animator. But must be credited in your readme files with "Contains SerenitySaberSystems".. Thats not too much to ask...? The SDK for the Serenity Jedi Engine will be released with Evolution of Combat 2014 edition. The Serenity Jedi Engine will come as part of the package with the new Evolution of Combat 2014 edition and SDK, Soon to be released. Or if you cant wait until then and you are a modder working on a project or wishing to start a new project with a new engine then get it here now. http://www.mediafire.com/download/v8sf3iiw54bq3aa/Serenity+Jedi+Engine+V0.7.rar The engine is still in its beta phase but i think its in good enough condition for people to test
  23. I think it will stay alive as long as "WE" modders keep it alive. Now the full codes are released i hope to see some new mods coming for sp and mp. Every time a new mod comes out ,the community has a revitalisation ,I remember how movieduels 2 brought sp back to life. Moviebattles 2 (love it or hate it) keeps mp alive and im sure the advent of JKG will bring new and old members back on the scene.
  24. Well i hope you find the people you need to continue,I wish i could help you,but my area is not maps. I apologise to you DT85 for going off topic on your thread, the video i made was "In honour" of your efforts. Im just sorry that the possible confusion caused by the use of the word "engine" has slurred your thread. I played your mod as a "player" not a "modder" looking for bugs.And enjoyed it a lot. I wish you all the best and hope to see a full mod in time time to come .
  25. Im releasing it with the mod.When its finished.
×
×
  • Create New...