Jump to content

Asgarath83

Members
  • Posts

    2,023
  • Joined

  • Last visited

Everything posted by Asgarath83

  1. You can Make a custom player NPC with CLASS_LUKE or CLASS_KYLE or CLASS_DESANN as class setting. and use playermodel cheat for play it. this allow you to autopush the force gripping. about instead auto push explosive shoots, and autododge sniper rifles... eeeeh, that require coding, man. it's not so easy.
  2. O.o :huh: Sure it not work man. I think is the first time you use icarus. you need to put two separate command: SET_ENEMY "targetname" SET_BEHAVOUR_STATE BS_DEFAULT understood? every command is a separate line \ string. if you want the NPC attack the player, you need to set. SET_ENEMY "player" if you want an NPC attack another opponent you need to set the opponent's targetname into the radiant map. example: SET_ENEMY "merc1" the enemy will search, attack and chase a NPC with "merc1" as targetname. BEHAVOUR state change the behavour of the NPC. in that case it set the AI of NPC to default setting. so if an NPC was into cinematic modality, because you place into the map with cinematic spawnflag, this turn NPC into Default modality with full AI. i suggest you however to study how are the icarus script of the default JA \ JO ibi files, for fully understand how work scripting.
  3. My pleasure
  4. you can check how works t1_danger icarus codes. it fires up the end of the level only when jaden take fourth item and place it into the damaged ship. there are 2 interessing if \ else field in this map code, you can create something like that, but instead of setting the various Jaden sound voice, when happen something you can set SET_OBJECTIVE or SET_OBJECTIVE_CLEAR with name of objectives. (now i not remember exactly how are named the icarus setting names)
  5. I was ever frustrated because with saber you can defend by other projectiles, but you haven't any defense when you ysing shoot weapons. so i was thinking of making a code that can allow to use the projectiles hitself as shield: example: if a blaster hits a blatser shooted by an enemy, the two blaster shoot crash each other and play wall impact efx. is this possible to make something like that? maybe using an half way between the wall impact code and the force pushing code of projectiles or the force defense saber code? i can also make simply all projectiles pushables with force push, but also NPC will do that and it should be frustrating. also, is hard to push a fast projectiles with the same speed of NPC. a sith with force push resist to concussion and tocket launcher many more of player. because is hard to shoot the force push in the correct moment for deflect the shoot. however, i want to improve a lot the shoot fight because in JKA shooters are ever outmached against saberist.
  6. I suggest you to check force how work force lightning effect orientation in cg_players.cpp you need to set the same thing on flamethrower efx code. search "palpatine" as search word in the file and you fill find what you need
  7. well, in that case you need to check the force crystal code for see how it works. also maybe can be useful the code related about the NPC that spawns the pickables weapons when they are killed. But also you need to make something different because you not want to spawn a MD3 or a GLM model, you wanna to spawn an NPC. you need to do a perfect functionally NPC rakghoult model and to make a code that spawn this particular NPC like the shadowtroopers force crystal. spawning a model in this case is not useful, because the model is not setted with AI. you need to call an NPC by the death of another NPC.
  8. mmmm why not a frankesteining - polygon edit - reweight - reskin of an hazard trooper model? o.o
  9. SET_ENEMY "targertname" With BS_DEFAULT behavour.
  10. LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOL XDDD hilarous!!! a genial request, but however, nice and legittim. Please someone do it if possible XDDD ...
  11. Sorry man, i am not a modeller.
  12. I suppose is that: http://starwars.wikia.com/wiki/Jaxxon http://vignette2.wikia.nocookie.net/starwars/images/e/e9/Jaxxon-gamer.jpg/revision/latest/scale-to-width-down/270?cb=20061025214956 Remember me the old game jazz jackrabbit 2. XD Weird idea, but technically is possible.
  13. Hello Culley. I think we can start some Mp conversation with cerez and darth sion regard this. i have checked your source map and is fine. this afternoon i merge it with the waypoints node i created, i remove padmé ships and i place the z95 jaden model on landpad, so i can host up the files. i am sorry but i am too much busy and lazy this months for work on the project. basically it need just to place NPC entities and to script they. but for scripting i think Cerez will manage it. for placing entities, if after i host the map can do that @@Darth Sion should be great, really this need just gtk radiant, the map file and... placing entities. basic mapping, men! right click of mouse on map grid, choose the entities, place in the coordinates, nothing of more easiest. i cannot end the job until september because i cannot stay too much on computer with hot weather of the summer. >.< i have not a good heal. also this weeks i am busy with another project of my personal life. sorry for that.
  14. When i make the tutorial about adding new saber colors, i did it because many peoples ask for this things. specially this was for a request of of the "epic challenge mod " i add some saber color and some weapons to SP code for this mod. i admit that my saber tutorial is specified only for SP in game stuff. i never checked how to add new saber color to the menu of saber selection. but i think you need to create a custom menu with new saber color icons that call an ui menu command. this command need to be coded into the code for works fine. i am pretty busy these days and i cannot check this thing. you can check how works the ui menu's code about the default saber colors and reply this for the new color you are created. it's however an unkwown field of SP code, i never dive about the user interface code of SP clients. instead, if you saber is for Multiplayer, i am sorry, but i wrote that for single player side only >.<
  15. make these grenade with a thermal code hacked should be really amazing!!! D:
  16. well, basically you can follow my tutorial about adding an SP weapon, simply you need to do a rifle, instead of a blaster. if you are good with efx and you can make a cool efx of a black hole for hit wall and flesh impact effect, should be really a nice weapon. the only technical problem is for add the suck function, but you can do with an inverse knockback (a knockback with negative value) applied on the victims on cg_weapons when you set the efx of hitting players or the hitting wall efx. i applyied with success a negative knockback for a black hole force power attack with a customized version of force repulse for my mod. enemy are pulled to the players when you cast the shockwave force power. totally fun!
  17. It need a blackhole rifle! it shoot singularity and sucks the player! D: i think is possible to make a weapon like that with coding.
  18. Amazing Khalos! Is face remember me the foe of Kain and Raziel the Elder God . I really hope a day i can try a demo of your mod Langerd, really is the more amazing project i never seen into JKA.
  19. Yes the absurd damage of the soul reaver is thinked for SP. (it's however a blade that rip a part and crush the flesh and devour the souls ) but you can simply edit the value or remove the damagescale field there is also a shockwave version of soul reaver, but for the multiplayer of JKA is too powerful, so i not allegated. my mod is for Single Player. i did any kind of elemental attack with charging of reavers powers using as base the force repulse code of JAE PS: if you need something contact me with MP or quoting posts. i check every day if i have notifications.
  20. Hello. WOW! nice work man! It's perfect! well, i have the sounds of the old kain model XIII in english. i get also the sounds for my mod of all kain dialogue of soul reaver, soul reaver 2, defiance and blood omen 2 BUT... they are in italian, my home language. ._. so i doubt they can be useful for you. it's possible to rip the sounds with the tools on the site lostworlds.net (soul spiral for exctract the file of the game, mulwav for extract defiance sound and "sound of his wings" utility for process the sounds of soul reaver and soul reaver 2. this is the bad news, the good news is i can pass to you the sounds for custom effects, swings etc of the soul reaver. you can download here. i make the sounds by fraps registrations of my games. turning off the music and ripping sounds. however i can pass you. - SAB file of my soul reaver version (is very HEAVY as weapon, BIG DAMAGE, is devastating like the soul reaver of Defiance, after raziel sacrifice. ) - effect file of soul reaver - kain sound (by kain raziel XIII mod + some sound i replace with betters: laughts, pains and vae victis. ) - soul reaver sounds (the sound of swings Defiance, when kain fight Elder God with pure blade. i have also all other elements if is necessary.) - gfx materials (but be careful about this. i used multiple sprites by multiple original mods. the sprites of reaverbalance and reaverwraith folder are ripped by defiance graphical stuff. ) https://www.sendspace.com/file/d2v4tm If you want other sounds you can exctract by youtube, youn can download this video and extract the audio trace with audacity, cut the dialogue you want and paste into a new audio track, and save it as MP3 .
  21. the SoundOn, SoundLoop and SoundOff are only 1 into sab files, by default, but i am sure is possible to add others with and ediiting of code realted to .SAB file. but you need to add a new command for reply this functions (like SoundOn2, SoundOn3 etc.) and make a q_irand variable for the correct sound playing. for the sounds of hitting func_breakable objects, or enemies, or the lock and parries, it not need necessary code hacking. you can set custom efx for a saber \ blade with the bladeeffect, hitothereffect, hitpersoneffect, blockeffect commands into the sab file. instead of use sab file command for the sounds of this events, you can simply add sounds variable to the effects. you can set multiple sounds for an effect, and they will play randomly by the engine. example by my mod. reaver1 { name "Dark Reaver" saberType SABER_SINGLE saberModel "models/weapons2/reaver1/reaver1.glm" saberColor Purple g2MarksShader "gfx/damage/darkmark" soundOn "sound/weapons/Dark_Reaver/darkreaver1.mp3" soundOff "sound/weapons/Dark_Reaver/darkreaver3.mp3" saberLength 44 throwable 0 saberradius 20 disarmable 0 forceRestrict FP_LIGHTNING forceRestrict FP_SEE saberstylelearned fast saberstylelearned medium saberstylelearned strong saberstyleforbidden desann saberstyleforbidden tavion saberstyleforbidden staff spinsound "sound/weapons/Dark_Reaver/DarkReaver3.mp3" swingsound1 "sound/weapons/Dark_Reaver/DarkReaver1.mp3" swingsound2 "sound/weapons/Dark_Reaver/DarkReaver2.mp3" swingsound3 "sound/weapons/Dark_Reaver/DarkReaver3.mp3" blockEffect "reavers/darkblock.efx" hitPersonEffect "reavers/darkimpactbody.efx" hitOtherEffect "reavers/darkimpact.efx" BladeEffect "reavers/darkblade.efx" damagescale 1.3 trailstyle 1 noclashflare 1 nowallmarks 1 lockbonus 4 parrybonus 7 disarmbonus 8 drawAnim BOTH_CCWCIRCLEBREAK readyAnim BOTH_SABERSTAFF_STANCE putawayAnim BOTH_CCWCIRCLEBREAK kataMove LS_A2_SPECIAL lungeAtkMove LS_ROLL_STAB jumpAtkFwdMove LS_SPINATTACK noidleeffect 1 oninwater 1 } the "darkimpactbody.efx" effect can play also ten differenct sounds for this effect if is necessary. inside an EFX file the code of a random sound it's this: you can create it manually editing with notepad the EFX file, or using EffectEd utility. Sound { sounds [ sound/weapons/Dark_Reaver/darkreaverhit1.mp3 sound/weapons/Dark_Reaver/darkreaverhit2.mp3 sound/weapons/Dark_Reaver/darkreaverhit3.mp3 ] } as you can see i added only 3 hit sound, but is possible to make something like that: Sound { sounds [ sound/weapons/Dark_Reaver/darkreaverhit1.mp3 sound/weapons/Dark_Reaver/darkreaverhit2.mp3 sound/weapons/Dark_Reaver/darkreaverhit3.mp3 sound/weapons/Dark_Reaver/darkreaverhit4.mp3 sound/weapons/Dark_Reaver/darkreaverhit5.mp3 sound/weapons/Dark_Reaver/darkreaverhit6.mp3 sound/weapons/Dark_Reaver/darkreaverhit7.mp3 sound/weapons/Dark_Reaver/darkreaverhit8.mp3 sound/weapons/Dark_Reaver/darkreaverhit9.mp3 sound/weapons/Dark_Reaver/darkreaverhit10.mp3 sound/weapons/Dark_Reaver/darkreaverhit11.mp3 sound/weapons/Dark_Reaver/darkreaverhit12.mp3 ] }
  22. @@Langerd , for fix the FX origin position, simply try to rename the tag by *flash to bolt_flash on blender and re export the model "bolt_" should be convert into * when you build the GLM with carcass. Or you're exporting directly on GLM format by blender? if you get some XSI exporter for build the GLM on carcass, try to rename all tags by "*_tagname" to "bolt_"tagname" i do the models on max, and not on blender, but on max i got issues when i export model with *_ instead of bolt_
  23. instead they works. when i learn to rigging with psyk0sith tutorials, ! i followed the hierarchy of the firsts models i watched on modview. stupidtriangle_off was the pivot tag of all stuff. his parent with it on this way on my custom models: stupidtriangle_off -> hips -> all other meshes | |-> model_root -> mesh_root |-> skeleton_root |-> pelvis |-> all other bones. i not know how or why, but works too also in this way. also, on my max i see that model, skeleton and mesh_root are not bones, but helpers. however good to know, i followed wrong hierarchy for all this years because i used as example a model with wrong hierarchy o.o D: otherwise, it works however, i not know how is possible. o.o
  24. mmm, strange, in the hierarchy i just put the skeleton root as children of model_root and mesh_root, and these as children of stupidtriangle_off but i not think is an hierarchy error.
  25. I never checked atst AI code of SP, but i did some test with an Custom NPC file and an humanoid model with swords or shootinng weapons for tryi how fight the CLASS_ATST. what i learned its. - atst class cannot use the sabers. or can? i not remember in this moment. - atst class shoot ever every weapons bolts by the torso of the model. O_o, not by the r_hand tag. - atst not jump, simply chase the player until smash walking upon jaden - if an enemy with atst crash walk on your jedi or player, he die immediatly. consiederation: i think the origin of muzzle flash and altmuzzleflash fire, and so, also of weapon shoots, is setted by the code for a specific NPC name. maybe there is some qstring parameter related to specific atst setting, exactly like cultist commando, destroyer or galakmech. if is really this, this can be fixed only with a change on this string of code. instead of setting the tag position for a specific npc, setting the tag positin for all the AT_ST class should fix the problem. . atst AI code. #define MIN_MELEE_RANGE 640 #define MIN_MELEE_RANGE_SQR ( MIN_MELEE_RANGE * MIN_MELEE_RANGE ) #define MIN_DISTANCE 128 #define MIN_DISTANCE_SQR ( MIN_DISTANCE * MIN_DISTANCE ) #define TURN_OFF 0x00000100//G2SURFACEFLAG_NODESCENDANTS #define LEFT_ARM_HEALTH 40 #define RIGHT_ARM_HEALTH 40 extern void G_SoundOnEnt( gentity_t *ent, soundChannel_t channel, const char *soundPath ); /* ------------------------- NPC_ATST_Precache ------------------------- */ void NPC_ATST_Precache(void) { G_SoundIndex( "sound/chars/atst/atst_damaged1" ); G_SoundIndex( "sound/chars/atst/atst_damaged2" ); RegisterItem( FindItemForWeapon( WP_ATST_MAIN )); //precache the weapon RegisterItem( FindItemForWeapon( WP_BOWCASTER )); //precache the weapon RegisterItem( FindItemForWeapon( WP_ROCKET_LAUNCHER )); //precache the weapon G_EffectIndex( "env/med_explode2" ); // G_EffectIndex( "smaller_chunks" ); G_EffectIndex( "blaster/smoke_bolton" ); G_EffectIndex( "droidexplosion1" ); } //----------------------------------------------------------------- static void ATST_PlayEffect( gentity_t *self, const int boltID, const char *fx ) { if ( boltID >=0 && fx && fx[0] ) { mdxaBone_t boltMatrix; vec3_t org, dir; gi.G2API_GetBoltMatrix( self->ghoul2, self->playerModel, boltID, &boltMatrix, self->currentAngles, self->currentOrigin, (cg.time?cg.time:level.time), NULL, self->s.modelScale ); gi.G2API_GiveMeVectorFromMatrix( boltMatrix, ORIGIN, org ); gi.G2API_GiveMeVectorFromMatrix( boltMatrix, NEGATIVE_Y, dir ); G_PlayEffect( fx, org, dir ); } } /* ------------------------- G_ATSTCheckPain Called by NPC's and player in an ATST ------------------------- */ void G_ATSTCheckPain( gentity_t *self, gentity_t *other, vec3_t point, int damage, int mod,int hitLoc ) { int newBolt; if ( rand() & 1 ) { G_SoundOnEnt( self, CHAN_LESS_ATTEN, "sound/chars/atst/atst_damaged1" ); } else { G_SoundOnEnt( self, CHAN_LESS_ATTEN, "sound/chars/atst/atst_damaged2" ); } if ((hitLoc==HL_ARM_LT) && (self->locationDamage[HL_ARM_LT] > LEFT_ARM_HEALTH)) { if (self->locationDamage[hitLoc] >= LEFT_ARM_HEALTH) // Blow it up? { newBolt = gi.G2API_AddBolt( &self->ghoul2[self->playerModel], "*flash3" ); if ( newBolt != -1 ) { // G_PlayEffect( "small_chunks", self->playerModel, self->genericBolt1, self->s.number); ATST_PlayEffect( self, self->genericBolt1, "env/med_explode2" ); G_PlayEffect( "blaster/smoke_bolton", self->playerModel, newBolt, self->s.number); } gi.G2API_SetSurfaceOnOff( &self->ghoul2[self->playerModel], "head_light_blaster_cann", TURN_OFF ); } } else if ((hitLoc==HL_ARM_RT) && (self->locationDamage[HL_ARM_RT] > RIGHT_ARM_HEALTH)) // Blow it up? { if (self->locationDamage[hitLoc] >= RIGHT_ARM_HEALTH) { newBolt = gi.G2API_AddBolt( &self->ghoul2[self->playerModel], "*flash4" ); if ( newBolt != -1 ) { // G_PlayEffect( "small_chunks", self->playerModel, self->genericBolt2, self->s.number); ATST_PlayEffect( self, self->genericBolt2, "env/med_explode2" ); G_PlayEffect( "blaster/smoke_bolton", self->playerModel, newBolt, self->s.number); } gi.G2API_SetSurfaceOnOff( &self->ghoul2[self->playerModel], "head_concussion_charger", TURN_OFF ); } } } /* ------------------------- NPC_ATST_Pain ------------------------- */ void NPC_ATST_Pain( gentity_t *self, gentity_t *inflictor, gentity_t *other, vec3_t point, int damage, int mod,int hitLoc ) { G_ATSTCheckPain( self, other, point, damage, mod, hitLoc ); NPC_Pain( self, inflictor, other, point, damage, mod ); } /* ------------------------- ATST_Hunt -------------------------` */ void ATST_Hunt( qboolean visible, qboolean advance ) { if ( NPCInfo->goalEntity == NULL ) {//hunt NPCInfo->goalEntity = NPC->enemy; } NPCInfo->combatMove = qtrue; NPC_MoveToGoal( qtrue ); } /* ------------------------- ATST_Ranged ------------------------- */ void ATST_Ranged( qboolean visible, qboolean advance, qboolean altAttack ) { if ( TIMER_Done( NPC, "atkDelay" ) && visible ) // Attack? { TIMER_Set( NPC, "atkDelay", Q_irand( 500, 3000 ) ); if (altAttack) { ucmd.buttons |= BUTTON_ATTACK|BUTTON_ALT_ATTACK; } else { ucmd.buttons |= BUTTON_ATTACK; } } if ( NPCInfo->scriptFlags & SCF_CHASE_ENEMIES ) { ATST_Hunt( visible, advance ); } } /* ------------------------- ATST_Attack ------------------------- */ void ATST_Attack( void ) { qboolean altAttack=qfalse; int blasterTest,chargerTest,weapon; if ( NPC_CheckEnemyExt() == qfalse )//!NPC->enemy )// { NPC->enemy = NULL; return; } NPC_FaceEnemy( qtrue ); // Rate our distance to the target, and our visibilty float distance = (int) DistanceHorizontalSquared( NPC->currentOrigin, NPC->enemy->currentOrigin ); distance_e distRate = ( distance > MIN_MELEE_RANGE_SQR ) ? DIST_LONG : DIST_MELEE; qboolean visible = NPC_ClearLOS( NPC->enemy ); qboolean advance = (qboolean)(distance > MIN_DISTANCE_SQR); // If we cannot see our target, move to see it if ( visible == qfalse ) { if ( NPCInfo->scriptFlags & SCF_CHASE_ENEMIES ) { ATST_Hunt( visible, advance ); return; } } // Decide what type of attack to do switch ( distRate ) { case DIST_MELEE: NPC_ChangeWeapon( WP_ATST_MAIN ); break; case DIST_LONG: NPC_ChangeWeapon( WP_ATST_SIDE ); // See if the side weapons are there blasterTest = gi.G2API_GetSurfaceRenderStatus( &NPC->ghoul2[NPC->playerModel], "head_light_blaster_cann" ); chargerTest = gi.G2API_GetSurfaceRenderStatus( &NPC->ghoul2[NPC->playerModel], "head_concussion_charger" ); // It has both side weapons if (!(blasterTest & TURN_OFF) && !(chargerTest & TURN_OFF)) { weapon = Q_irand( 0, 1); // 0 is blaster, 1 is charger (ALT SIDE) if (weapon) // Fire charger { altAttack = qtrue; } else { altAttack = qfalse; } } else if (!(blasterTest & TURN_OFF)) // Blaster is on { altAttack = qfalse; } else if (!(chargerTest & TURN_OFF)) // Blaster is on { altAttack = qtrue; } else { NPC_ChangeWeapon( WP_NONE ); } break; } NPC_FaceEnemy( qtrue ); ATST_Ranged( visible, advance,altAttack ); } /* ------------------------- ATST_Patrol ------------------------- */ void ATST_Patrol( void ) { if ( NPC_CheckPlayerTeamStealth() ) { NPC_UpdateAngles( qtrue, qtrue ); return; } //If we have somewhere to go, then do that if (!NPC->enemy) { if ( UpdateGoal() ) { ucmd.buttons |= BUTTON_WALKING; NPC_MoveToGoal( qtrue ); NPC_UpdateAngles( qtrue, qtrue ); } } } /* ------------------------- ATST_Idle ------------------------- */ void ATST_Idle( void ) { NPC_BSIdle(); NPC_SetAnim( NPC, SETANIM_BOTH, BOTH_STAND1, SETANIM_FLAG_NORMAL ); } /* ------------------------- NPC_BSDroid_Default ------------------------- */ void NPC_BSATST_Default( void ) { if ( NPC->enemy ) { if( (NPCInfo->scriptFlags & SCF_CHASE_ENEMIES) ) { NPCInfo->goalEntity = NPC->enemy; } ATST_Attack(); } else if ( NPCInfo->scriptFlags & SCF_LOOK_FOR_ENEMIES ) { ATST_Patrol(); } else { ATST_Idle(); } }
×
×
  • Create New...