harIII Posted September 17, 2009 Share Posted September 17, 2009 I'm only starting to play around with Force Power scripting. I'm able to make Force Power "beams" run between two objects if I declare it in the script but I want to make them universal. This is my script void main() { object oTarget = GetFirstObjectInShape( SHAPE_SPHERE, 15.00, GetLocation( OBJECT_SELF ), TRUE, OBJECT_TYPE_CREATURE ); effect eBeam1 = EffectBeam(2052, OBJECT_SELF, BODY_NODE_HAND_RIGHT, TRUE); effect eBeam2 = EffectBeam(2061, OBJECT_SELF, BODY_NODE_HAND_LEFT, TRUE); effect eBeam3 = EffectBeam(2026, OBJECT_SELF, BODY_NODE_CHEST, TRUE); effect efVisual = EffectVisualEffect(1009, 0); ApplyEffectSingle(oTarget, DURATION_TYPE_INSTANT, eBeam1, 1.5); ApplyEffectOnObject(oTarget, DURATION_TYPE_INSTANT, eBeam1, 1.5); ApplyEffectToObject(oTarget, DURATION_TYPE_INSTANT, eBeam1, 1.5); } When I use it in the game the PC does the animations to start the power such as force push but nothing happens. Can somebody please tell me what is happening with the power, the idea is to have something similar to Force Lightning. Link to comment Share on other sites More sharing options...
VarsityPuppet Posted September 17, 2009 Share Posted September 17, 2009 Okay, it would seem that you're casting this power... it's a ranged power, but it's taking effect around the PC You're declaring the effect variables... good. It seems you're only applying 1 of the effects though. void main() { object oTarget = GetFirstObjectInShape( SHAPE_SPHERE, 15.00, GetLocation( OBJECT_SELF ), TRUE, OBJECT_TYPE_CREATURE ); effect eBeam1 = EffectBeam(2052, OBJECT_SELF, BODY_NODE_HAND_RIGHT, TRUE); effect eBeam2 = EffectBeam(2061, OBJECT_SELF, BODY_NODE_HAND_LEFT, TRUE); effect eBeam3 = EffectBeam(2026, OBJECT_SELF, BODY_NODE_CHEST, TRUE); effect efVisual = EffectVisualEffect(1009, 0); [color="Lime"]while (GetIsEnemy(oTarget)){[/color] ApplyEffectSingle(oTarget, DURATION_TYPE_INSTANT, [color="DarkOrange"]eBeam1[/color], 1.5); ApplyEffectOnObject(oTarget, DURATION_TYPE_INSTANT, [color="DarkOrange"]eBeam1[/color], 1.5); ApplyEffectToObject(oTarget, DURATION_TYPE_INSTANT, [color="Orange"]eBeam1[/color], 1.5); [color="Lime"]oTarget = GetNextObjectInShape( SHAPE_SPHERE, 15.00, GetLocation( OBJECT_SELF ), TRUE, OBJECT_TYPE_CREATURE );}[/color] } It seems you're only applying the effect 1 to the the target... and actually you probably only need the last one "ApplyEffectToObject(etc, etc)" Lastly, are you sure that effect 2052 is a valid beam effect? EDIT: I forgot, but if you're trying to get the effects to apply to a number of enemies in the vicinity, you need to put it in a While function.. It should look something like that. Link to comment Share on other sites More sharing options...
harIII Posted September 17, 2009 Author Share Posted September 17, 2009 Thanks for the script but unfortunately it's not working. I keep getting an error message "Type mismatch in parameter 1 to call to "ApplyEffectToObject" My script now looks like this: void main() { object oTarget = GetFirstObjectInShape( SHAPE_SPHERE, 15.00, GetLocation( OBJECT_SELF ), TRUE, OBJECT_TYPE_CREATURE ); effect eBeam1 = EffectBeam(2052, OBJECT_SELF, BODY_NODE_HAND_RIGHT, TRUE); effect eBeam2 = EffectBeam(2061, OBJECT_SELF, BODY_NODE_HAND_LEFT, TRUE); effect eBeam3 = EffectBeam(2026, OBJECT_SELF, BODY_NODE_CHEST, TRUE); effect efVisual = EffectVisualEffect(1009, 0); while (GetIsEnemy(oTarget)){ ApplyEffectToObject(oTarget, DURATION_TYPE_INSTANT, eBeam1, 1.5); ApplyEffectToObject(oTarget, DURATION_TYPE_INSTANT, eBeam1, 1.5); ApplyEffectToObject(oTarget, DURATION_TYPE_INSTANT, eBeam1, 1.5); oTarget = GetNextObjectInShape( SHAPE_SPHERE, 15.00, GetLocation( OBJECT_SELF ), TRUE, OBJECT_TYPE_CREATURE );} } Link to comment Share on other sites More sharing options...
stoffe Posted September 17, 2009 Share Posted September 17, 2009 Thanks for the script but unfortunately it's not working. I keep getting an error message "Type mismatch in parameter 1 to call to "ApplyEffectToObject" My script now looks like this: That script would stop looping through objects in the 15 meter radius around the caster if it encounters someone who's not hostile to the caster. Since the caster is included in this there is a fair chance they (or a party member) get returned first, which kills the loop. Your post was somewhat unclear: do you want this power to target everyone around the caster, or just a single target? If it's single-target then do: void main() { object oTarget = GetSpellTargetObject(); effect eBeam1 = EffectBeam(2052, OBJECT_SELF, BODY_NODE_HAND_RIGHT); effect eBeam2 = EffectBeam(2061, OBJECT_SELF, BODY_NODE_HAND_LEFT); effect eBeam3 = EffectBeam(2026, OBJECT_SELF, BODY_NODE_CHEST); effect efVisual = EffectVisualEffect(1009); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBeam1, oTarget, 1.5); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBeam2, oTarget, 1.5); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBeam3, oTarget, 1.5); ApplyEffectToObject(DURATION_TYPE_INSTANT, efVisual, oTarget); } If it's supposed to hit all enemies nearby then do: void main() { effect eBeam1 = EffectBeam(2052, OBJECT_SELF, BODY_NODE_HAND_RIGHT); effect eBeam2 = EffectBeam(2061, OBJECT_SELF, BODY_NODE_HAND_LEFT); effect eBeam3 = EffectBeam(2026, OBJECT_SELF, BODY_NODE_CHEST); effect efVisual = EffectVisualEffect(1009); location lLoc = GetLocation(OBJECT_SELF); object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 15.0, lLoc); while (GetIsObjectValid(oTarget)) { if (GetIsEnemy(oTarget) && !GetIsDead(oTarget)) { ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBeam1, oTarget, 1.5); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBeam2, oTarget, 1.5); ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBeam3, oTarget, 1.5); ApplyEffectToObject(DURATION_TYPE_INSTANT, efVisual, oTarget); } oTarget = GetNextObjectInShape(SHAPE_SPHERE, 15.0, lLoc); } } Link to comment Share on other sites More sharing options...
harIII Posted September 17, 2009 Author Share Posted September 17, 2009 I tried them but I'm not seeing the animations. At this point I'm just going to wait for my Force Power modder to do some of this stuff. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.