• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

2012: The Legendary Fight ~ Work Presentation, Discussion, Feedback

Status
Not open for further replies.
Level 33
Joined
Mar 27, 2008
Messages
8,035
You know Jazztastic, you can use this Condition to cover up all Condition IsUnitChanneling;
  • Unit - A unit Stops casting an ability
That is IF my memory served me right, I used to make Channeling Ability and I used that Event, it turned out quite great.

Possibilities of that Event;
Caster Dies
Caster Stunned
Caster Moves
 
Last edited:
I guess, was comparing it to starfall, anyhow if you still want to try it out, i suggest trying:
Abilities\Spells\Orc\LightningShield\LightningShieldTarget.mdl

in the caster field of the spell, i found the effect quite fun.

Well that is all i have to share on this submission, nice way of checking whether the spell is still channeling, did you test it if the caster dies during channel?

Wow that actually works so well with the effect.

As far as the channeling part goes, it makes a check to see if the unit still has the same order, channel. If it gets stunned, or dies, or moves, or is moved, or polymorphs, or whatever, then it will no longer have the channel order, and the spell will clear itself then turn off. I also tested it ingame to see about the dying bit. It turns off and stops correctly. As far as I know right now it's bugless.

That is also the same reason I'm not using Defskulls event, a unit stops the effect of an ability. Instead of having another trigger for the turn off, I simply melded it in with the looping part.
 
Level 33
Joined
Mar 27, 2008
Messages
8,035
But remember, that trigger uses an interval of 0.10s per check where my suggestion is to use that Event does not has any interval check at all, just a single check per unit stop cast ability, efficiency my friend, efficiency.
 
Level 25
Joined
Jun 5, 2008
Messages
2,572
But remember, that trigger uses an interval of 0.10s per check where my suggestion is to use that Event does not has any interval check at all, just a single check per unit stop cast ability, efficiency my friend, efficiency.

An event that fires off on every unit that stops casting, meaning if you have a lot of units the loop is more effective. Also i think stunning a unit won't result in "Event Unit Stops casting an ability" firing off (not sure didn't check).

Edit:

Stunning a unit does fire off the event. However every single spell cast also fires it, thus i would go with the periodic check , it is more efficent in all the situations imo.
 
Level 9
Joined
Mar 6, 2012
Messages
64
THis is a preview of my work
215734-albums5686-picture59431.png

_____________________________________________________________
-the hero will stomp creating a furious wave around him and then he will jump creating a :goblin_boom: huge impact!!!!!!
 
Level 27
Joined
Jun 23, 2009
Messages
4,787
Alright, WIP time!
I was a bit unsure of what to write at first, since although one of my exams this year was actually on fables and fairytales i have NO experience with writing them.
Then i had one of those evenings where you can't sleep due to too many ideas in your head.

It was a sunny day. The wind was blowing back and forth, causing the maiden's hair to sway.
She was sitting by a lake, at the center of a grove, far above her could be seen the flight of a white dove.
She had gone for a walk, into the forest so dark, for she desired to hear the song of the lark.
But the grove had been so nice, so lush and green, that her walk had ceased and the trees she now sat between.
However, as she enjoyed the sun's light, came into the grove a forest sprite.
A creature of the woods, it was an olden troll that came, and little did the maiden know this was a troll of much fame.
When she saw it her heart froze, fear overcoming her brain, for she was afraid she would not see her home again.
Immediately she decided, that in this forest she would seize her strolls, for believe it or not, she had heard some bad things about trolls.
The troll smiled and sat down, next to her by that lake, making it clear that her life was not at stake.
“Fear not my child. Although I may be a troll, I am too old to be wild.”
The maiden couldn't help but smile, for despite the rumors, this creature did not seem vile.
The olden troll started telling stories, of countries far away, of places that he had seen while he had sailed from bay to bay.
Soon the maiden laughed, as the troll told his tales part by part, for at this point it was clear that no evil dwelled in the troll's heart.


And yes, i intend to make it rhyme.
All of it.
 
Level 29
Joined
Mar 10, 2009
Messages
5,016
Well here's my spell and maybe my FINAL entry...
attachment.php


JASS:
/*
===DarkElementals v1.0
===Made by Mckill2009
===Entry for: The Legendary Fight 2012

HOW TO INSTALL:
- Copy the custom abilities and units to your map.
- Import this code and ALL the required libraries to your map.
- Change the rawID's of the custom abilities and units if necessary.
- Done!

CREDITS:
- TimerUtils by Vexorian
- Table by Bribe
- SpellEffectEvent by Bribe
- RegisterPlayerUnitEvent by Magtheridon96

ICONS AND MODELS CREDITS:
- Ice Elemental by Burning_Dragoon5
- ShadowInfernal by Necromancer_187
- LightningTitan by ???
- BTNShadowSpawm by Mr.Goblin
- BTNInfernal by bigapple90
- BTNBrassInfernal by b17rider
*/

library DarkElementals uses TimerUtils, Table, SpellEffectEvent

globals
    private TableArray el
    private constant integer SPELL_ID = 'A002'
    private constant integer DUMMY_ID = 'h000'
    private constant integer SHELL_ID = 'h002'
    private constant integer FIRE_ID = 'n000'
    private constant integer ICE_ID = 'n001'
    private constant integer SHADOW_ID = 'n002'
    private constant integer ROCK_ID = 'n003'
    private constant integer LIGHTNING_ID = 'n004'
    private constant integer SUPER_ID = 'n005'
    private constant real AOE = 700
    private constant integer ORDER_ID = 852593 //stampede
    private constant string C_SFX = "Abilities\\Spells\\NightElf\\Starfall\\StarfallCaster.mdl"
    private constant string DY_SFX = "Abilities\\Spells\\Other\\Doom\\DoomDeath.mdl" 
    private constant string SUPER_SFX = "Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl"
endglobals

native UnitAlive takes unit a returns boolean

struct DE
    unit c
    unit elemental
    unit dummy
    unit shell
    real xSpell
    real ySpell
    real dur
    real facing
    real shellSize
    real flyHeight
    integer count
    effect cSfx
    boolean superChk
    
    private static unit tempU
    private static integer DATA
    private static group restoreGroup = CreateGroup()
    
    private method destroy takes nothing returns nothing
        call DestroyEffect(.cSfx)
        call KillUnit(.dummy)
        set .c = null
        set .elemental = null
        set .dummy = null
        set .shell = null
        set .cSfx = null
        call .deallocate()
    endmethod
    
    private static method restoreNow takes nothing returns nothing
        local thistype this = DATA
        local unit u = GetEnumUnit()
        call GroupRemoveUnit(restoreGroup,u)
        call PauseUnit(u,false)
        call SetUnitInvulnerable(u,false)  
        call SetUnitOwner(u,GetOwningPlayer(.c),true)
        set u = null
    endmethod
    
    private static method filterElemental takes unit u returns boolean
        return GetUnitTypeId(u)==FIRE_ID or GetUnitTypeId(u)==ICE_ID or GetUnitTypeId(u)==SHADOW_ID or GetUnitTypeId(u)==ROCK_ID or GetUnitTypeId(u)==LIGHTNING_ID
    endmethod
    
    private method createElemental takes integer unitID returns unit
        call ShowUnit(.elemental,false)
        call KillUnit(.elemental)
        set tempU = CreateUnit(Player(15),unitID,.xSpell,.ySpell,.facing)
        call DestroyEffect(AddSpecialEffectTarget(DY_SFX,tempU,"origin"))
        call SetUnitAnimation(tempU,"birth")
        call PauseUnit(tempU,true)
        call SetUnitInvulnerable(tempU,true)
        return tempU
    endmethod
    
    private static method onLooper takes nothing returns nothing
        local thistype this = GetTimerData(GetExpiredTimer())
        local unit elem
        local integer i
        if GetUnitCurrentOrder(.c)==ORDER_ID then
            if .superChk then
                set .count = .count + 1
                set .shellSize = .shellSize + 0.4
                set .flyHeight = .flyHeight + 25
                set elem = el[.count].unit[GetHandleId(.dummy)]
                call DestroyEffect(AddSpecialEffect(DY_SFX,GetUnitX(elem),GetUnitY(elem)))
                call KillUnit(elem)
                call SetUnitScale(.shell,.shellSize,.shellSize,.shellSize)
                call SetUnitFlyHeight(.shell,.flyHeight,0)
                if .count==5 then
                    //summon super elemental here!
                    call KillUnit(.shell)
                    set elem = CreateUnit(GetOwningPlayer(.dummy),SUPER_ID,.xSpell,.ySpell,.facing)
                    call DestroyEffect(AddSpecialEffectTarget(SUPER_SFX,elem,"origin"))
                    call IssueImmediateOrder(.c,"stop")
                endif
                set elem = null
            else
                //if .superChk==false, or less than 5 it creates normal elementals
                set .dur = .dur + 0.2
                if .dur==5 then
                    set .elemental = .createElemental(FIRE_ID)   
                elseif .dur==10 then
                    set .elemental = .createElemental(ICE_ID) 
                elseif .dur==15 then
                    set .elemental = .createElemental(SHADOW_ID)             
                elseif .dur==20 then
                    set .elemental = .createElemental(ROCK_ID) 
                elseif .dur==25 then
                    set .elemental = .createElemental(LIGHTNING_ID) 
                endif          
            endif
        else
            if .superChk then
                //restore elementals if spell ends prematurely
                call KillUnit(.shell)
                set i = 0
                loop
                    set i = i + 1
                    set elem = el[i].unit[GetHandleId(.dummy)]
                    if UnitAlive(elem) then
                        call PauseUnit(elem,false)
                        call SetUnitInvulnerable(elem,false)
                        call SetUnitAnimation(elem,"stand")
                        call SetUnitOwner(elem,GetOwningPlayer(.c),true)
                    endif
                    set elem = null
                    exitwhen i==5
                endloop
            endif
            //superChk==false
            if .elemental!=null then
                call PauseUnit(.elemental,false)
                call SetUnitInvulnerable(.elemental,false)
                call SetUnitAnimation(.elemental, "stand")
                call SetUnitOwner(.elemental,GetOwningPlayer(.c),true)
            endif
            call ReleaseTimer(GetExpiredTimer())
            call .destroy()
        endif
    endmethod
    
    //! textmacro PICK takes dumID
        set el[$dumID$].boolean[dumID] = false
        set el[$dumID$].unit[dumID] = first
        set counter = counter + 1
        call PauseUnit(first,true)
        call SetUnitInvulnerable(first,true)
        call GroupAddUnit(restoreGroup,first)
        call SetUnitOwner(first,Player(15),true)
    //! endtextmacro

    private static method onCast takes nothing returns nothing
        local thistype this = allocate()
        local unit first
        local integer dumID
        local integer fID
        local integer counter = 0
        set .c = GetTriggerUnit()
        set .elemental = null
        set .xSpell = GetSpellTargetX()
        set .ySpell = GetSpellTargetY()
        set .dur = 0
        set .dummy = CreateUnit(GetTriggerPlayer(),DUMMY_ID,.xSpell,.ySpell,0)
        set .cSfx = AddSpecialEffectTarget(C_SFX,.dummy,"origin")
        set .facing = GetUnitFacing(.c)+180
        set dumID = GetHandleId(.dummy)
        set el[1].boolean[dumID] = true
        set el[2].boolean[dumID] = true
        set el[3].boolean[dumID] = true
        set el[4].boolean[dumID] = true
        set el[5].boolean[dumID] = true
        call GroupEnumUnitsInRange(bj_lastCreatedGroup,.xSpell,.ySpell,AOE,null)
        loop
            set first = FirstOfGroup(bj_lastCreatedGroup)
            exitwhen first==null
            if UnitAlive(first) and filterElemental(first) and GetOwningPlayer(first)==GetTriggerPlayer() then
                set fID = GetHandleId(first)
                if GetUnitTypeId(first)==FIRE_ID and el[1].boolean[dumID] then
                    //! runtextmacro PICK("1")
                elseif GetUnitTypeId(first)==ICE_ID and el[2].boolean[dumID] then
                    //! runtextmacro PICK("2")
                elseif GetUnitTypeId(first)==SHADOW_ID and el[3].boolean[dumID] then
                    //! runtextmacro PICK("3")
                elseif GetUnitTypeId(first)==ROCK_ID and el[4].boolean[dumID] then
                    //! runtextmacro PICK("4")
                elseif GetUnitTypeId(first)==LIGHTNING_ID and el[5].boolean[dumID] then
                    //! runtextmacro PICK("5")
                endif
            endif           
            call GroupRemoveUnit(bj_lastCreatedGroup,first)
        endloop
        //call BJDebugMsg(I2S(counter))
        if counter==5 then
            set .superChk = true
            set .count = 0
            set .flyHeight = 100
            set .shellSize = 0.5
            set .shell = CreateUnit(GetTriggerPlayer(),SHELL_ID,.xSpell,.ySpell,0)
            call SetUnitScale(.shell,.shellSize,.shellSize,.shellSize)
            call SetUnitFlyHeight(.shell,.flyHeight,0)
            call TimerStart(NewTimerEx(this),3.0,true,function thistype.onLooper) 
        else
            set DATA = this
            call ForGroup(restoreGroup, function thistype.restoreNow)
            set .superChk = false
            call TimerStart(NewTimerEx(this),0.2,true,function thistype.onLooper) 
        endif    
    endmethod
    
    private static method onInit takes nothing returns nothing
        call RegisterSpellEffectEvent(SPELL_ID, function thistype.onCast)
        set el = TableArray[0x2000]
    endmethod
endstruct

endlibrary
 

Attachments

  • DarkElementals.jpg
    DarkElementals.jpg
    65.5 KB · Views: 206
  • DarkElementals.w3x
    806 KB · Views: 48
I have my spell idea, and i'll do the final work this evening, or tomorrow afternoon.

I won't do in originality but in utility ^^".

It's another form of the Blizzard wc3 spell (the Archimage's spell).
I'll remove the waves part and there'll be continue fall of ice randomly in the target area. The damages will be done in a little aoe around the falling projectile, and also, there'll be a stackable slow (more you get touched by projectiles, more you get damages and more you slowed.)

If no better ideas come to my mind, it's what i'll do.
 
Level 11
Joined
May 13, 2010
Messages
167
Okay! First WIP for my AoE spell contest against Jazz.

I got sightly inspired by his thunder creation so i decided to do something similar. This is a energy field that grows larger until it explodes damaging nearby foes. Simple as that.

I owe you guys the screenshot. In next version maybe! :D

I haven't started to clean leaks yet, and it kinda lags when multiple units are beign hit.. Oh well, i hope i can get the final version done in a couple of hours :grin:
 

Attachments

  • Shocking Spell WIP.w3x
    58 KB · Views: 63
Level 33
Joined
Mar 27, 2008
Messages
8,035
Okay my first WiP, it is like 75% complete, gotta handle the rest of the movement and some conditional situation.
Ability Name might be changed, there is a simple tooltips about the spell (tooltips and name of ability are subject to change)
 

Attachments

  • Command Earth v1.0.w3x
    21.8 KB · Views: 37
Level 25
Joined
Jun 5, 2008
Messages
2,572
@Defskull

Ripple deformations are one of the most processing hard visual effects in wc3. That is why you never use shockwave as a base for a custom spell for example and why no one uses them when making a custom spell =\

@BetaGod

Your spell deals damage to magic immune beings.
 
Level 28
Joined
Oct 28, 2011
Messages
4,759
Well things got ridiculous to me, I lost my god damn map again, and this one is the worst, so I'll just announce -Kobas- as the winner of our challenge.


Well I was working on my first WiP, that you can see on this thread, but the map crashed without me saving the map. So I decided to change some plans, so I made a barren type map, it got great terraining but the map crashed, I haven't save it but I tested it a few progress back so I opened the the map on the test folder, I made good progress and luckily I survived, I saved the map and sleep, and today I woke up, I did not even attend univ to finish my work, I've done incredible progress after that I saved the map then took a break, and this is the worst part, one my friend recommended a system that I should use for my map, so I quickly opened my world editor to save it, well looks like the system is to complicated for my map so I rejected it, and a few minutes later I decided to continue the map.... but its gone since its the Test map on the test folder, since I tested a new map....
 
Well things got ridiculous to me, I lost my god damn map again, and this one is the worst, so I'll just announce -Kobas- as the winner of our challenge.


Well I was working on my first WiP, that you can see on this thread, but the map crashed without me saving the map. So I decided to change some plans, so I made a barren type map, it got great terraining but the map crashed, I haven't save it but I tested it a few progress back so I opened the the map on the test folder, I made good progress and luckily I survived, I saved the map and sleep, and today I woke up, I did not even attend univ to finish my work, I've done incredible progress after that I saved the map then took a break, and this is the worst part, one my friend recommended a system that I should use for my map, so I quickly opened my world editor to save it, well looks like the system is to complicated for my map so I rejected it, and a few minutes later I decided to continue the map.... but its gone since its the Test map on the test folder, since I tested a new map....

Wow are people still seriously not using the autosave feature? Seriously turn that shit on it will save you from all these unfortunate circumstances
 
Well things got ridiculous to me, I lost my god damn map again, and this one is the worst, so I'll just announce -Kobas- as the winner of our challenge.


Well I was working on my first WiP, that you can see on this thread, but the map crashed without me saving the map. So I decided to change some plans, so I made a barren type map, it got great terraining but the map crashed, I haven't save it but I tested it a few progress back so I opened the the map on the test folder, I made good progress and luckily I survived, I saved the map and sleep, and today I woke up, I did not even attend univ to finish my work, I've done incredible progress after that I saved the map then took a break, and this is the worst part, one my friend recommended a system that I should use for my map, so I quickly opened my world editor to save it, well looks like the system is to complicated for my map so I rejected it, and a few minutes later I decided to continue the map.... but its gone since its the Test map on the test folder, since I tested a new map....


I worked on map half hour only as well, I just created basic shape so far.
Don't quit there is still time.
 

Attachments

  • Terrain Contest.w3x
    99.7 KB · Views: 41
Level 37
Joined
Aug 14, 2006
Messages
7,601
Hey.

So I finished my entry and I'm definitely not happy about it. I did what I had with my very very very short time. I'm about to release next version of my campaign so that sucked all my time from the contest. Anyway, I finished my entry and we'll see if it's good enough for the next round.

If I'm ever going to manage to go second round then I promise do something far more better.
 

Attachments

  • 3.jpg
    3.jpg
    416.5 KB · Views: 132
  • 4.jpg
    4.jpg
    378.9 KB · Views: 172
  • 2.jpg
    2.jpg
    423.1 KB · Views: 130
  • 1.jpg
    1.jpg
    255.8 KB · Views: 100
  • EPIC SUPERB BOSS FIGHT.w3x
    15.4 KB · Views: 70
  • 5.jpg
    5.jpg
    253.4 KB · Views: 116
  • 6.jpg
    6.jpg
    763.3 KB · Views: 109
Level 25
Joined
Jun 5, 2008
Messages
2,572
I present to you, my terrain with the theme of:
Glorious Battle

Made for 2012 legendary fight challenge between me and MaTiJa97.

Any further updates will be inside this post.
The terrain can be viewed ingame also, the units are all paused and the camera is applied.
To view the terrain properly ingame you will need to use the "iseedeadpeople" cheat tho, since i forgot to add a visibility modifier.
 

Attachments

  • final.PNG
    final.PNG
    3.2 MB · Views: 146
  • Legendary Fight - Kingz.w3x
    4 MB · Views: 67
This is a very early WiP:

JASS:
library VengefulMissile requires Table, SpellEffectEvent, RegisterPlayerUnitEvent, Dummy, CTL
/*****************************************************
*
*   VengefulMissile
*   v1.0.0.0
*   By Magtheridon96
*
*   - This spell launches a missile at a target point
*     to deal damage to all units in range. Missiles will 
*     then be launched at all living targets in an even 
*     larger radius.
*
*   Requires:
*   ---------
*
*       RegisterPlayerUnitEvent By Magtheridon96
*           - 
*       SpellEffectEvent By Bribe
*           - 
*       Dummy By Nestharus
*           - 
*       Table By Bribe
*           - 
*       CTL By Nestharus
*           - 
*
*   Implementation:
*   ---------------
*
*       1. Import all the required systems.
*       2. Import the object editor data.
*          (1 ability, 1 unit)
*       3. Copy this trigger to your map.
*       4. Import dummy.mdx into your map.
*       5. Configure the spell to your liking.
*       6. Enjoy!
*
*   Configuration:
*   --------------
*
*****************************************************/
    globals
/*****************************************************
*
*
*
*****************************************************/
        private constant integer ABIL_CODE = 'A000'
/*****************************************************
*
*
*
*****************************************************/
        private constant boolean DESTROY_TREES = true
/*****************************************************
*
*
*
*****************************************************/
        private constant real MISSILE_ACCELERATION = 0.7
        private constant real MISSILE_INITIAL_SPEED = 1
    endglobals
/*****************************************************
*
*
*
*****************************************************/
    private function GetDamageAoE takes integer level returns real
        return 200 + level * 50.
    endfunction
/*****************************************************
*
*
*
*****************************************************/
    private function GetHomingDamageAoE takes integer level returns real
        return 350 + level * 75.
    endfunction
/*****************************************************
*
*
*
*****************************************************/
    private function GetDamage takes integer level returns real
        return 225 + level * 50.
    endfunction
/*****************************************************
*
*
*
*****************************************************/
    private function GetHomingDamage takes integer level returns real
        return 100 + level * 50.
    endfunction
/*****************************************************
*
*
*
*****************************************************/

    private struct VengefulMissile extends array
        private static unit array caster
        private static real array targetX
        private static real array targetY
        private static integer array level
        private static real array homingDamage
        private static boolean array phaseOne
        private static Dummy array missile
        
        private static Table array stack   // Dummy array
        private static Table array targets // unit array
        private static integer array count
        
        static if DESTROY_TREES then
            private static rect treeRect = null
            private static unit treeDetector = null
            private static real treesRadius = 0
            private static real treesX = 0
            private static real treesY = 0
            
            private static method isTree takes destructable d returns boolean
                return IssueTargetOrderById(treeDetector, 852018, d) and IssueImmediateOrderById(treeDetector, 851972)
            endmethod
            
            private static method destroyTree takes nothing returns nothing
                local destructable d = GetEnumDestructable()
                local real x = GetWidgetX(d) - treesX
                local real y = GetWidgetY(d) - treesY
                
                /*
                *   If the destructable is a tree and it 
                *   is in the circle, kill it
                */
                if x*x+y*y <= treesRadius and isTree(d) then
                    call KillDestructable(d)
                endif
                
                set d = null
            endmethod
        endif
        
        implement CTL
            local unit u
        implement CTLExpire
            
            if phaseOne[this] then
            
                
            
            else
            
            endif
            
        implement CTLNull
        
        implement CTLEnd
        
        private static method run takes nothing returns nothing
            /*
            *   This will create a new instance.
            */
            local thistype this = create()
            
            /*
            *   This will set all the spell 
            *   data.
            */
            set caster[this] = GetTriggerUnit()
            set targetX[this] = GetSpellTargetX()
            set targetY[this] = GetSpellTargetY()
            set level[this] = GetUnitAbilityLevel(caster[this], ABIL_CODE)
            set homingDamage[this] = 
            set phaseOne[this] = true
            
            /*
            *   This is where I create the initial missile.
            */
            set missile[this] = Dummy.create(targetX[this], targetY[this], 0)
            
            /*
            *   The logic here is funny, but it 
            *   works the way I want it to.
            */
            if stack[this] == 0 then
                set stack[this] = Table.create()
            else
                set count[this] = 0
            endif
        endmethod
        
        private static method onInit takes nothing returns nothing
            call RegisterSpellEffectEvent(ABIL_CODE, function thistype.run)
            
            static if DESTROY_TREES then
                set treeDetector = CreateUnit(Player(15), 'hfoo', 0, 0, 0)
                call UnitAddAbility(treeDetector, 'Ahrl')
                call UnitAddAbility(treeDetector, 'Aloc')
                call ShowUnit(treeDetector, false)
                set treeRect = Rect(0,0,0,0)
            endif
        endmethod
    endstruct
    
endlibrary

I still haven't coded the actual iteration code :p
 
Level 27
Joined
Jun 23, 2009
Messages
4,787
Alright, here's my short fable.
Hopefully the rhymes aint too bad. ^^



The Smiling Beast

It was a sunny day. The wind was blowing back and forth, causing the maiden's hair to sway.
She was sitting by a lake, at the center of a grove, far above her could be seen, the flight of a white dove.
She had gone for a walk, into the forest so dark, for she desired to hear the song of the lark.
But the grove had been so nice, so lush and green, that her walk had ceased and the trees she now sat between.
However, as she enjoyed the sun's light, came into the grove a forest sprite.

A creature of the woods, it was an olden troll that came, and little did the maiden know this was a troll of much fame.
When she saw it her heart froze, fear overcoming her brain, for she was afraid she would not see her home again.
Immediately she decided, that in this forest she would seize her strolls, for believe it or not, she had heard some bad things about trolls.

The troll smiled and sat down, next to her by that lake, making it clear that her life was not at stake.
“Fear not my child. I may be a troll, but I am past the age of being wild.”
The maiden couldn't help but smile, for despite the rumors this creature did not seem vile.
The olden troll started telling stories, of countries far away, of places that he had seen while he had sailed from bay to bay.
Soon the maiden laughed, as the troll told his tales part by part, for at this point it was clear that no evil dwelled in the troll's heart.

Alas, the harmony was broken, as a knight entered the grove. His heart was light, his hair was bright, but his righteousness was token.
Seeing the troll, he was quick to judge, and he drew his sword to make the beast budge.
The maiden screamed as the sword flashed, the troll caught by surprise as the knight dashed.
With a thundering sound into the lake the troll fell, the knight letting out a victory yell.
His sword however was stuck in the creature's back, and despite the knight's best attempt he could not move it a tack

As the troll hit the water the knight grabbed the maid, his rough grasp unfurling her braid.
“We must leave here now, before more come!”, he yelled as he feared the troll's war drum.
Before the maiden could protest, they had left the wood. As they ran she yelled and screamed, but he never understood.
However, during their flight, back in the grove occurred something quite a sight.

In the middle of the lake the troll stood up, as his muscles tensed the sword came free.
“I won't die that easily.”
Back at the knight's castle the maiden told her tale, but when she sided with the beast the castle's priest did wail.
She was accused of witchcraft, on a fire she was to burn, although she cried and pleaded, her words she couldn't turn.
The fire was lit, it seemed to be her fate, but the execution halted when a troll broke down the gate.

Men from the castle rushed toward the troll with fire, but he walked past them as a fight he did not desire.
As best they could they tried to kill the beast, but their torches and blades didn't hurt it in the least.
He reached the pyre and freed the maiden, then turned around to leave. As the two walked out of the courtyard, the maiden did not her eyes believe.

Alas, before they could escape, the knight blocked their way. With sword in hand and helmet on, he inquired the maiden to stay.
The troll did sigh, then knocked the knight to the ground. And once he was down it took his sword, and snapped it in two without a sound.
As they were leaving the knight yelled at the troll “Why do you not take my life?!”, as to him it all seemed pointless, as he had failed his strife.
The troll turned to him, with a smile on it's face, as he lay there flat, then said with an overbearing voice “What good would I gain from that?”.

Then they left, the maiden and the troll, back to the forest's deep. There, under the shade of the leaves, the maiden was soon fast asleep.
The troll carried her home, to her village on a hill, where he was greeted by her father, at the mill.
Her father, who knew the troll, inquired him to stay. But with a smile the troll said no, as he had things to do far away.

Now, when the troll walks in the forest, he sometimes hears the maiden's call. But for her sake he now sticks to his own kind, as he is a troll after all.
 
Level 51
Joined
Dec 8, 2008
Messages
4,358
Here is my map. Hopefully it works, as I occured one or two bugs last time playing and I hope I fixed them now :O

Anway, have fun and tell me quickly if there is any error please!

Edit: Damn connection. Gonna upload the map again soon -.-

Edit 2: Lol, now it's there ^^
 

Attachments

  • 1.PNG
    1.PNG
    1.7 MB · Views: 83
  • 2.PNG
    2.PNG
    1.9 MB · Views: 122
  • The Legendary Fight.w3x
    433.9 KB · Views: 32
Well, Lebanon has no more electricity. I was in the middle of completing my entry when my power went out and i had only 20 minutes before personal generator would run out. All the oil and gas was used up yesterday when we faced the same problem and used our building's generator. Im sorry.

Im posting this from my phone using 3G and i only have 19% power left.

ShadowFox04 wins this round thanks to my shitty craphole of a country.

You have permission to deduct 120 rep points.
 
Level 33
Joined
Mar 27, 2008
Messages
8,035
I don't even know what time does it follows...
Is it THW ? Or the world... which part ?

next round I wanna fight againts defskull, haha!
I disagree, your standards are low, haha ! joking~
Well, I don't know, is there a table that links all match ?
So we can know who is our next possible opponents ?
 
I found out I'm leaving town on the 11th, for a period of at least two weeks.

I would like my entry to be judged against BetaGod-'s just the same, but regardless of the outcome I want him to proceed forward. Unless round 2 starts tomorrow or Saturday I won't have enough time to submit an entry. Plus even if I go to round 2 and win I won't be able to continue into round 3.

Well this was fun and I made a submission worthy resource, but circumstances simply disallowed me from proceeding.
 
Status
Not open for further replies.
Top