• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Optionaly Paired System Contest, Spell Generator

Status
Not open for further replies.
Level 7
Joined
Jan 28, 2012
Messages
266
the%20hive%20workshop.png

paired.png

spell.png
contest.png
number.png
8.png



Optionaly Paired System Contest
Contestants must create a system that supports the random generation of spells in game, points will be awarded for the variety of spells it can generate. An Ideal Spell Generator would support a variety of "delivery types"(ie missiles, instant etc..) a variety of effects(DoTs, Straight damage, summoning, as well as being easy to add new effects to it) and would be able to support more effects.
Recommended Systems/Helpful Libraries

JASS:
library sfx initializer Init
    // this is just a Compilation of all of Warcraft III's Built in effects, catogorized by apearance
    globals
        public constant integer MAGIC_EFFECTS  = 0
        public constant integer LIFE_EFFECTS   = 1
        public constant integer DEATH_EFFECTS  = 2
        public constant integer NATURE_EFFECTS = 3
        
        // elemental spells
        public constant integer FIRE_EFFECTS   = 4
        public constant integer WATER_EFFECTS  = 5
        public constant integer EARTH_EFFECTS  = 6
        public constant integer AIR_EFFECTS    = 7
        
        private string array EFFECTS
        public integer array spellCount
        private constant integer SIZE = 100
        private constant integer HEIGHT = 50
    endglobals
    private function AddEffect takes integer whattype, integer IsProj, string path returns integer//expects a 0 or 1 for missile
        local integer x = whattype*2+IsProj
        local integer current = spellCount[x]+1
        set spellCount[x] = current
        set EFFECTS[whattype*SIZE + IsProj*HEIGHT + current] = path
        return current
    endfunction

    function GetSFX takes integer whatType, integer isProj, integer whichone returns string
        return EFFECTS[whatType*SIZE + isProj*HEIGHT + whichone]
    endfunction
    
    function GetRandomSFX takes integer whatType, integer isProj returns string
        return EFFECTS[whatType*SIZE + isProj*HEIGHT + GetRandomInt(1,spellCount[whatType*2+isProj])]
    endfunction

    function Init takes nothing returns nothing
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Spells\\Undead\\AbsorbMana\\AbsorbManaBirthMissile.mdl" )
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Human\\DispelMagic\\DispelMagicTarget.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Spells\\Human\\Avatar\\AvatarCaster.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\NightElf\\Blink\\BlinkTarget.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\NightElf\\Blink\\BlinkCaster.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Other\\Charm\\CharmTarget.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Spells\\Undead\\DeathPact\\DeathPactTarget.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Spells\\Undead\\DevourMagic\\DevourMagicBirthMissile.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Human\\Invisibility\\InvisibilityTarget.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Spells\\Items\\OrbCorruption\\OrbCorruptionMissile.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Items\\AIil\\AIilTarget.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Items\\AIre\\AIreTarget.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Human\\MassTeleport\\MassTeleportTarget.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Spells\\Undead\\OrbOfDeath\\AnnihilationMissile.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Items\\AIma\\AImaTarget.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Items\\SpellShieldAmulet\\SpellShieldCaster.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Spells\\NightElf\\SpiritOfVengeance\\SpiritOfVengeanceOrbs1.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Undead\\ReplenishMana\\ReplenishManaCasterOverhead.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Items\\TomeOfRetraining\\TomeOfRetrainingCaster.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Spells\\NightElf\\SpiritOfVengeance\\SpiritOfVengeanceBirthMissile.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Spells\\Undead\\OrbOfDeath\\OrbOfDeathMissile.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Weapons\\WingedSerpentMissile\\WingedSerpentMissile.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Weapons\\DragonHawkMissile\\DragonHawkMissile.mdl")
        call AddEffect(MAGIC_EFFECTS,1,"Abilities\\Weapons\\DruidoftheTalonMissile\\DruidoftheTalonMissile.mdl")
        call AddEffect(MAGIC_EFFECTS,0,"Abilities\\Spells\\Undead\\OrbOfDeath\\OrbOfDeathMissile.mdl")
        // LIFE effects next
        call AddEffect(LIFE_EFFECTS,1,"Abilities\\Weapons\\FaerieDragonMissile\\FaerieDragonMissile.mdl")
        call AddEffect(LIFE_EFFECTS,1,"Abilities\\Spells\\NightElf\\FaerieFire\\FaerieFireTarget.mdl")
        call AddEffect(LIFE_EFFECTS,1,"Abilities\\Spells\\Other\\HealingSpray\\HealBottleMissile.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Orc\\HealingWave\\HealingWaveTarget.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Items\\AIem\\AIemTarget.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Items\\AIlm\\AIlmTarget.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Items\\AIim\\AIimTarget.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Items\\AIsm\\AIsmTarget.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Items\\AIda\\AIdaCaster.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Other\\Levelup\\LevelupCaster.mdl")
        call AddEffect(LIFE_EFFECTS,1,"Abilities\\Weapons\\ProcMissile\\ProcMissile.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Human\\Resurrect\\ResurrectCaster.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Human\\Resurrect\\ResurrectTarget.mdl")
        call AddEffect(LIFE_EFFECTS,0,"Abilities\\Spells\\Human\\ReviveHuman\\ReviveHuman.mdl")
        call AddEffect(LIFE_EFFECTS,1,"Abilities\\Spells\\Orc\\Shockwave\\ShockwaveMissile.mdl")
        call AddEffect(LIFE_EFFECTS,1,"Abilities\\Weapons\\SorceressMissile\\SorceressMissile.mdl")
        //DEATH
        call AddEffect(DEATH_EFFECTS,1,"Abilities\\Spells\\Undead\\DeathCoil\\DeathCoilMissile.mdl")
        call AddEffect(DEATH_EFFECTS,1,"Abilities\\Weapons\\AvengerMissile\\AvengerMissile.mdl")
        call AddEffect(DEATH_EFFECTS,0,"Abilities\\Weapons\\AvengerMissile\\AvengerMissile.mdl")
        call AddEffect(DEATH_EFFECTS,0,"Abilities\\Spells\\Undead\\AnimateDead\\AnimateDeadTarget.mdl")
        call AddEffect(DEATH_EFFECTS,0,"Abilities\\Spells\\Demon\\DarkPortal\\DarkPortalTarget.mdl")
        call AddEffect(DEATH_EFFECTS,0,"Abilities\\Spells\\Undead\\DarkRitual\\DarkRitualTarget.mdl")
        call AddEffect(DEATH_EFFECTS,1,"Abilities\\Spells\\Undead\\DarkSummoning\\DarkSummonMissile.mdl")
        call AddEffect(DEATH_EFFECTS,0,"Abilities\\Spells\\Undead\\Darksummoning\\DarkSummonTarget.mdl")
        call AddEffect(DEATH_EFFECTS,0,"Abilities\\Spells\\Undead\\DeathCoil\\DeathCoilSpecialArt.mdl")
        call AddEffect(DEATH_EFFECTS,0,"Abilities\\Spells\\Demon\\DemonBoltImpact\\DemonBoltImpact.mdl")
        call AddEffect(DEATH_EFFECTS,0,"Abilities\\Spells\\Other\\HowlOfTerror\\HowlCaster.mdl")
        call AddEffect(DEATH_EFFECTS,1,"Abilities\\Spells\\Undead\\Possession\\PossessionMissile.mdl")
        call AddEffect(DEATH_EFFECTS,0,"Objects\\Spawnmodels\\Undead\\UCancelDeath\\UCancelDeath.mdl")
        call AddEffect(DEATH_EFFECTS,0,"Objects\\Spawnmodels\\Undead\\UndeadDissipate\\UndeadDissipate.mdl")
        //Nature
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Spells\\Undead\\CarrionSwarm\\CarrionSwarmMissile.mdl")
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Weapons\\ChimaeraAcidMissile\\ChimaeraAcidMissile.mdl")
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Spells\\NightElf\\FanOfKnives\\FanOfKnivesMissile.mdl")
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Spells\\NightElf\\TargetArtLumber\\TargetArtLumber.mdl")
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Weapons\\IllidanMissile\\IllidanMissile.mdl")
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Spells\\Undead\\PlagueCloud\\PlagueCloudCaster.mdl")
        call AddEffect(NATURE_EFFECTS,0,"Abilities\\Weapons\\IllidanMissile\\IllidanMissile.mdl")
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Spells\\Items\\OrbVenom\\OrbVenomMissile.mdl")
        call AddEffect(NATURE_EFFECTS,0,"Abilities\\Spells\\NightElf\\ManaBurn\\ManaBurnTarget.mdl")
        call AddEffect(NATURE_EFFECTS,0,"Abilities\\Weapons\\BansheeMissile\\BansheeMissile.mdl")
        call AddEffect(NATURE_EFFECTS,0,"Abilities\\Weapons\\DemonHunterMissile\\DemonHunterMissile.mdl")
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Weapons\\DemonHunterMissile\\DemonHunterMissile.mdl")
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Weapons\\GreenDragonMissile\\GreenDragonMissile.mdl")
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Weapons\\KeeperGroveMissile\\KeeperGroveMissile.mdl")
        call AddEffect(NATURE_EFFECTS,1,"Abilities\\Weapons\\snapMissile\\snapMissile.mdl")
        call AddEffect(NATURE_EFFECTS,0,"Abilities\\Spells\\NightElf\\CorrosiveBreath\\ChimaeraAcidTargetArt.mdl")
        call AddEffect(NATURE_EFFECTS,0,"Abilities\\Spells\\NightElf\\EntanglingRoots\\EntanglingRootsTarget.mdl")
        call AddEffect(NATURE_EFFECTS,0,"Abilities\\Spells\\NightElf\\EntanglingRoots\\EntanglingRootsTarget.mdl")
        call AddEffect(NATURE_EFFECTS,0,"Abilities\\Spells\\NightElf\\EntanglingRoots\\EntanglingRootsTarget.mdl")
        call AddEffect(NATURE_EFFECTS,0,"Abilities\\Spells\\Undead\\Sleep\\SleepSpecialArt.mdl")
        call AddEffect(NATURE_EFFECTS,0,"Abilities\\Spells\\Undead\\Web\\WebTarget.mdl")
        //Fire
        call AddEffect(FIRE_EFFECTS,0,"Abilities\\Weapons\\DemolisherFireMissile\\DemolisherFireMissile.mdl")
        call AddEffect(FIRE_EFFECTS,1,"Abilities\\Weapons\\FireBallMissile\\FireBallMissile.mdl")
        call AddEffect(FIRE_EFFECTS,0,"Abilities\\Spells\\Human\\FlameStrike\\FlameStrike1.mdl")
        call AddEffect(FIRE_EFFECTS,1,"Abilities\\Weapons\\LordofFlameMissile\\LordofFlameMissile.mdl")
        call AddEffect(FIRE_EFFECTS,0,"Abilities\\Spells\\Items\\AIfb\\AIfbSpecialArt.mdl")
        call AddEffect(FIRE_EFFECTS,1,"Abilities\\Weapons\\RedDragonBreath\\RedDragonMissile.mdl")
        call AddEffect(FIRE_EFFECTS,1,"Abilities\\Weapons\\RedDragonBreath\\RedDragonMissile.mdl")
        call AddEffect(FIRE_EFFECTS,1,"Abilities\\Weapons\\LavaSpawnMissile\\LavaSpawnMissile.mdl")
        call AddEffect(FIRE_EFFECTS,0,"Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl")
        call AddEffect(FIRE_EFFECTS,1,"Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile.mdl")
        call AddEffect(FIRE_EFFECTS,1,"Abilities\\Weapons\\WitchDoctorMissile\\WitchDoctorMissile.mdl")
        call AddEffect(FIRE_EFFECTS,0,"Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl")
        call AddEffect(FIRE_EFFECTS,1,"Abilities\\Spells\\Human\\MarkOfChaos\\MarkOfChaosTarget.mdl")
        call AddEffect(FIRE_EFFECTS,1,"Abilities\\Weapons\\PhoenixMissile\\Phoenix_Missile_mini.mdl")
        // Water Effects
        call AddEffect(WATER_EFFECTS,1,"Abilities\\Spells\\Other\\CrushingWave\\CrushingWaveMissile.mdl")
        call AddEffect(WATER_EFFECTS,0,"Abilities\\Spells\\Other\\CrushingWave\\CrushingWaveDamage.mdl")
        call AddEffect(WATER_EFFECTS,1,"Abilities\\Spells\\Undead\\FreezingBreath\\FreezingBreathMissile.mdl")
        call AddEffect(WATER_EFFECTS,1,"Abilities\\Weapons\\ZigguratFrostMissile\\ZigguratFrostMissile.mdl")
        call AddEffect(WATER_EFFECTS,1,"Abilities\\Spells\\Other\\FrostBolt\\FrostBoltMissile.mdl")
        call AddEffect(WATER_EFFECTS,1,"Abilities\\Weapons\\FrostWyrmMissile\\FrostWyrmMissile.mdl")
        call AddEffect(WATER_EFFECTS,0,"Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl")
        call AddEffect(WATER_EFFECTS,1,"Abilities\\Weapons\\LichMissile\\LichMissile.mdl")
        call AddEffect(WATER_EFFECTS,0,"Abilities\\Spells\\NightElf\\MoonWell\\MoonWellTarget.mdl")
        call AddEffect(WATER_EFFECTS,1,"Abilities\\Weapons\\SeaElementalMissile\\SeaElementalMissile.mdl")
        call AddEffect(WATER_EFFECTS,1,"Abilities\\Weapons\\WaterElementalMissile\\WaterElementalMissile.mdl")
        call AddEffect(WATER_EFFECTS,1,"Objects\\Spawnmodels\\Naga\\NagaDeath\\NagaDeath.mdl")
        call AddEffect(WATER_EFFECTS,0,"Objects\\Spawnmodels\\Naga\\NagaDeath\\NagaDeath.mdl")
        call AddEffect(WATER_EFFECTS,0,"Objects\\Spawnmodels\\Naga\\NagaDeath\\NagaDeath.mdl")
        call AddEffect(WATER_EFFECTS,0,"Doodads\\Cinematic\\FrostTrapUp\\FrostTrapUp")
        // Earth Effects
        call AddEffect(EARTH_EFFECTS,0,"Abilities\\Spells\\Orc\\EarthQuake\\EarthQuakeTarget.mdl")
        call AddEffect(EARTH_EFFECTS,0,"Abilities\\Spells\\Undead\\Impale\\ImpaleHitTarget.mdl")
        call AddEffect(EARTH_EFFECTS,0,"Abilities\\Spells\\Other\\Volcano\\VolcanoDeath.mdl")
        call AddEffect(EARTH_EFFECTS,1,"Abilities\\Weapons\\AncientProtectorMissile\\AncientProtectorMissile.mdl")
        call AddEffect(EARTH_EFFECTS,0,"Abilities\\Weapons\\AncientProtectorMissile\\AncientProtectorMissile.mdl")
        call AddEffect(EARTH_EFFECTS,1,"abilities\\weapons\\catapult\\catapultmissile.mdl")
        call AddEffect(EARTH_EFFECTS,0,"Objects\\Spawnmodels\\Undead\\ImpaleTargetDust\\ImpaleTargetDust.mdl")
        call AddEffect(EARTH_EFFECTS,0,"Abilities\\Spells\\Undead\\Impale\\ImpaleMissTarget.mdl")
        //Air effects
        call AddEffect(AIR_EFFECTS,1,"Abilities\\Spells\\Orc\\LightningBolt\\LightningBoltMissile.mdl")
        call AddEffect(AIR_EFFECTS,0,"Abilities\\Spells\\Orc\\LightningBolt\\LightningBoltMissile.mdl")
        call AddEffect(AIR_EFFECTS,0,"Abilities\\Weapons\\Bolt\\BoltImpact.mdl")
        call AddEffect(AIR_EFFECTS,0,"Abilities\\Spells\\Human\\Invisibility\\InvisibilityTarget.mdl")
        call AddEffect(AIR_EFFECTS,1,"Abilities\\Weapons\\FarseerMissile\\FarseerMissile.mdl")
        call AddEffect(AIR_EFFECTS,0,"Abilities\\Spells\\Items\\AIlb\\AIlbSpecialArt.mdl")
        call AddEffect(AIR_EFFECTS,0,"Abilities\\Spells\\Orc\\Purge\\PurgeBuffTarget.mdl")
        call AddEffect(AIR_EFFECTS,1,"Abilities\\Spells\\Orc\\Purge\\PurgeBuffTarget.mdl")
        call AddEffect(AIR_EFFECTS,0,"Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl")
        call AddEffect(AIR_EFFECTS,1,"Abilities\\Spells\\Human\\CloudOfFog\\CloudOfFog.mdl")
        call AddEffect(AIR_EFFECTS,1,"Abilities\\Spells\\Undead\\Cripple\\CrippleTarget.mdl")
        call AddEffect(AIR_EFFECTS,0,"Abilities\\Spells\\NightElf\\Cyclone\\CycloneTarget.mdl")
        call AddEffect(AIR_EFFECTS,1,"Abilities\\Spells\\Orc\\LightningShield\\LightningShieldTarget.mdl")
        call AddEffect(AIR_EFFECTS,0,"Abilities\\Spells\\Other\\Monsoon\\MonsoonBoltTarget.mdl")
        call AddEffect(AIR_EFFECTS,1,"Abilities\\Spells\\Other\\Tornado\\Tornado_Target.mdl")
        call AddEffect(AIR_EFFECTS,1,"Abilities\\Spells\\Other\\Tornado\\TornadoElementalSmall.mdl")
        call AddEffect(AIR_EFFECTS,0,"Abilities\\Spells\\Other\\Tornado\\TornadoElementalSmall.mdl")
    endfunction

endlibrary
Missile Systems
Missile By Dirac
Gui Projectile System by Kingz


contest%20rules%20and%20conditions.png

    • No submission may violate any of the site rules.
    • If a submission does not follow the spell submission rules the creator will be disqualified.
    • Your submission must be posted before the deadline. The post containing your final submission must also contain the following:
      • An in game screenshot showing your submission in action.
      • The file in the appropriate format.
    • You must show at least one unfinished preview of your submission, before the deadline, as proof that it’s yours.
    • Your submission may not be started/made before the official launch of the contest.
    • Judges may not participate.
    • Your final submission must be bug free.
    • Imports are discourged
    • Either GUI or JASS may be used to create your spell; you will not be penalized if you use GUI over JASS. in fact if you make it with Gui I will be in awe of you
    • Generated Spells must be at least MUI
    • Third party editors may be used in the creation of your spell, but you must clearly state which editor you used to create the map. If a third party editor is necessary to use your spell, add a link, along with your spell submission, to download the editor.

      Examples of third party editors are:
      • World Editor Unlimited
      • JassNewGenPack (or Grimoire)
      • UMSWE
    • You may use any system on the hiveworkshop, including but not limited to Missile Systems, Damage detection systems, Nova Systems etc... It is recommended that you support multiple effects per spell.
    prizes.png


    • First Place: 50 reputation points and your entry on the award icon
    • Second Place: 35 reputation points and an award icon
    • Third Place: 25 reputation points and an award icon
      Functional entry 10 rep


    judges.png
    • To be anounced
    contest%20judging%20and%20voting.png


    Efficiency
    Is it Leakless?/10

    Special effects
    How do the generated spells look?, do the effects add up?/5

    Delivery
    What different delivery methods does it support, is it easy to add more ones?(examples of delivery methods, Meteor, Meteor shower, Missile, Mrv,Multiple Missiles,/25

    Targets
    what types of targets does it support, does it support AoE, single target, or multiple targets?/10

    Effects
    What effects does it support?/25
    • 80% of the winner shall be determined by the contest's appointed judge(s).
    • 20 % of the winner shall be determined by the results of a public poll.
    contest%20dates%20and%20deadline.png
    • The contest shall begin on Date and conclude on Date, GMT
 
Last edited:
Level 2
Joined
Nov 21, 2011
Messages
14
I think he means that it assembles spells ingame, SO you make a list of special effects, and create a list of ways you can have your spell reach you target, (so missles, instant, and other cool stuff like that) and a list of what they do when they arrive there. your generator, then grabs a special effect or two, a delivery method, and an effect and sows them together, creating a spell

offtopic:Ender, I play Qxf2, checkmate!;)
 
Last edited:
Status
Not open for further replies.
Top