| 11-22-2003, 07:14 PM | #1 |
i am trying to make these 2 spells for a little test map am doing for a Element Mage.... i sm trying to make a Firewall spell and a Frozen Orb spell both from D2.... i can make the firewall with Stampede but it just looks kinda gay.... and the Ice Glacier i dont know how id do the triggers for it... i know both involves triggers and variables.... so can anyone tell me or make me a test map with it in it plz... |
| 11-22-2003, 09:32 PM | #2 |
Cmon anyone? plz? emote_confused |
| 11-24-2003, 03:35 AM | #3 |
I have never heard about Ice Glacier in D2, but oh well, do you mean Glaciar Spike? Maybe for the Firewall you can When you enter some chat string, use some item, order something to the unit, or use some skill, move a second region to the target unit, and line many Fire special effects in that region, and make it damage the target constantly In other words //*************************************************************************** //* //* Triggers //* //*************************************************************************** //=========================================================================== // Trigger: Cast Firewall //=========================================================================== function Trig_Cast_Firewall_Actions takes nothing returns nothing call EnableTrigger( gg_trg_FireWall ) endfunction //=========================================================================== function InitTrig_Cast_Firewall takes nothing returns nothing set gg_trg_Cast_Firewall = CreateTrigger( ) call TriggerRegisterPlayerChatEvent( gg_trg_Cast_Firewall, Player(0), "-Cast Firewall", true ) call TriggerAddAction( gg_trg_Cast_Firewall, function Trig_Cast_Firewall_Actions ) endfunction //=========================================================================== // Trigger: FireWall //=========================================================================== function Trig_FireWall_Actions takes nothing returns nothing call MoveRectToLoc( gg_rct_Regi__n_000, GetUnitLoc(GetOrderTargetUnit()) ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, -500.00), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, -400.00), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, -300.00), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, -200.00), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, -100.00), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, 0), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, 100.00), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, 200.00), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, 300.00), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, 400.00), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call AddSpecialEffectLocBJ( OffsetLocation(GetRectCenter(gg_rct_Regi__n_000), 0, 500.00), "Doodads\\Cinematic\\TownBurningFireEmitter\\TownBurningFireEmitter.mdl" ) call SetUnitLifeBJ( GetOrderTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) - 10.00 ) ) call TriggerSleepAction( 1.00 ) call SetUnitLifeBJ( GetOrderTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) - 10.00 ) ) call TriggerSleepAction( 1.00 ) call SetUnitLifeBJ( GetOrderTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) - 10.00 ) ) call TriggerSleepAction( 1.00 ) call SetUnitLifeBJ( GetOrderTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) - 10.00 ) ) call TriggerSleepAction( 1.00 ) call SetUnitLifeBJ( GetOrderTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) - 10.00 ) ) call TriggerSleepAction( 1.00 ) call SetUnitLifeBJ( GetOrderTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) - 10.00 ) ) call TriggerSleepAction( 1.00 ) call SetUnitLifeBJ( GetOrderTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) - 10.00 ) ) call TriggerSleepAction( 1.00 ) call SetUnitLifeBJ( GetOrderTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) - 10.00 ) ) call TriggerSleepAction( 1.00 ) call SetUnitLifeBJ( GetOrderTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) - 10.00 ) ) call TriggerSleepAction( 1.00 ) call SetUnitLifeBJ( GetOrderTargetUnit(), ( GetUnitStateSwap(UNIT_STATE_LIFE, GetOrderTargetUnit()) - 10.00 ) ) call TriggerSleepAction( 1.00 ) endfunction |
| 11-24-2003, 04:02 AM | #4 |
You'll have to get into the advanced geometry Math calculations here, but for the Firewall spell, here's an idea. Please reference the picture below. ![]() The wall's center is located at the point where the spell is cast. It then runs perpendicular to the caster-center line in both directions. Try to figure out how to determine this process with the editor. It'll be as easy as math and I know it can be done, but the actual process escapes me at the moment. As for implementation into the map, try basing it off of Serpent Ward and using a ward-like summon with Unknown (aloc) and Immolation. When the unit is summoned, sample the caster and ward's X/Y position, factor it into the equation, crank out a value, and use it to summon additional wards at the desired angle. Change the unit graphics and you're in business. Once you get past the math, it shouldn't be hard. As for Ice Glacier, I read what you wanted in another threat, and the spell's name is Frozen Orb. This one is rather simple. When the sorcerer casts the spell, have a trigger create a summoned unit with Unknown (aloc) at the location of the caster and order it to move to the selected point, stopping periodically to cast a modified Fan of Knives on it's way. Change the unit model and FoK art accordingly, and you're done. |
| 11-24-2003, 08:38 PM | #5 |
yeah i ment Frozen Orb... sry heh... |
| 11-24-2003, 08:45 PM | #6 |
Frozen Orb without the use of triggers: * Copy the Summon Water Elemental skill. * Make the summoned unit be the frozen orb (I suggest using the Frost Wyrm attack to use as the Frozen Orb unit.) * Give it a "Barrage" attack. This "Barrage" attack should be able to target land units, and have the "Ice Bolt" attack look. * Give it a "Cold Attack" so units will be chilled when it hits them. * Edit it's Minimum speed to a high number so it constantly moves. * Edit it's turn rate high so it can't make sharp turns. * Back to the skill, make the duration and cooldown short. * Change the skill to look like Frozen Orb, description, levels, etc. * Done. No triggers were used in the making of this skill. Note: This Frozen Orb will attack into the direction the character is facing. |
