• 🏆 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!

Race Building Contest #3 - Mini Melee Race

Status
Not open for further replies.
Level 21
Joined
Jul 27, 2008
Messages
14,361
Well maybe something else fits?

EDIT: Here is beta screen-shot
picture.php


Name of the race is Sea Legion or Follower of Leviathan. If you are interested in sorry check the Naga fan social group.
 
Last edited:
Level 11
Joined
Feb 14, 2009
Messages
884
@chrome67

Got approval from everybody but Pyritie; don't know why, to be honest. I shall replace Pyritie and Lirch with me. I don't know if I will use another member, I may use some other model for my heavy air.
 
Level 11
Joined
Feb 14, 2009
Messages
884
Then you are officially my heavy air unit. I don't know you well enough though, could you please tell me your preference on model and abilities? :D
 
Level 38
Joined
Jan 10, 2009
Messages
854
once again, if u know how to read and think, go get the Custom Race system from wc3c. its posted somewhere earlier in the thread. its really is quite simple.

Well, there is a small problem with using the custom race system from WC3C, which also happens to be the reason I did not post it for this contest.

Archmage Owenalacaster said:
Please do not redistribute this system. This is a WC3C-exclusive resource, and I wish it to remain that way.

The above quote is from the resources creator from the page the resource is on. If you are using it you might want to find a different system :(
 
Level 9
Joined
Dec 26, 2008
Messages
134
oh well for some problems i wont be participating in this one, and i dont think ill do anything related to war3 >.<, well at least i still appear here in the forums,
oh well
Bye

PD:Kercyn, for the builder, to fit the theme you need a good terrainer user, i recommend Zlatnislav

:D
 
Level 22
Joined
Nov 14, 2008
Messages
3,256
Yes ofc you can make your own custom race system. I've alrdy made one that is far better and easier but results a bit with a system at WC3C so basiclly human wont be playable for players ;) (Ps haven't edited the human race, I just made something else with triggers so ^^ )

@ Levi race

very sweet screenie but I feel the goblin merc building not fitting :/ dunno why
 
Level 11
Joined
Jul 2, 2008
Messages
601
I'd be very pleased if somebody can explain me how to make upgrades being shown in the small square under the Attack-Type/Damage/Distance etc info. Cause the damage of my units grow, but the level of upgrade is still "0" and it's treated like Human upgrade, which is really zero, you know... Hope, I explained my problem clearly. =\
 
Level 16
Joined
Jun 17, 2008
Messages
550
Do they show "0" or is there no number at all? If its no number, under 'Upgrades' simply set:

Stat-Class - (some class other than None)

For example, set one upgrade type for 'Melee' and one more for 'Armor', and the affected unit will now show a proper 'number' under the icons.
 
Level 17
Joined
Sep 8, 2007
Messages
994
WIP Time!

WIP.jpg
Please note that all buildings are in their raw states like this. Eventually, they will have more in detail.

I will now continue with all units. I am having 3 now. Next WIP when at least 80% of them are done.

Edit:
Some people asked me how I solved the problem with the town hall. I just deleted the "enforce victory/defeat conditions" action in the melee trigger and included this one to the map ...
JASS:
scope TownHallFix initializer Init
//===========================================================================
    globals
        private group TmpGroup
    endglobals
//===========================================================================
    private function Conditions takes nothing returns boolean
        return IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE) == true or IsUnitType(GetTriggerUnit(), UNIT_TYPE_PEON) == true
    endfunction
//===========================================================================
    private function Enum takes nothing returns boolean
        return GetUnitState(GetFilterUnit(), UNIT_STATE_LIFE) > 0.405
    endfunction
//===========================================================================
    private function Actions takes nothing returns nothing
        local player trig = GetOwningPlayer(GetTriggerUnit())
        local player death = GetOwningPlayer(GetDyingUnit())
        local integer Count = 0
        local unit f
        call GroupEnumUnitsOfPlayer(TmpGroup, death, Condition(function Enum))
        loop
            set f = FirstOfGroup(TmpGroup)
            exitwhen f == null
            set Count = Count + 1
            call GroupRemoveUnit(TmpGroup, f)
        endloop
        if Count <= 0 then
            call CustomDefeatBJ(death, "Defeat!")
        endif

        if GetPlayers() <= 1 then
            call CustomVictoryBJ(trig, true, true)
        endif

    endfunction
//===========================================================================
    private function Init takes nothing returns nothing
        local trigger tri = CreateTrigger()
        call TriggerRegisterAnyUnitEventBJ(tri, EVENT_PLAYER_UNIT_DEATH)
        call TriggerAddCondition(tri, Condition(function Conditions))
        call TriggerAddAction(tri, function Actions)
        set TmpGroup = CreateGroup()
    endfunction
endscope
(This is an overwritten version of someone who posted the trigger earlier in the thread)
I don't guarantee that this is working for 100% but it hasn't made any problems yet. If you get bugs due to this please inform me.
 
Last edited:
Level 16
Joined
Jun 17, 2008
Messages
550
@ xxdingo93xx: I like your choice of buildings for the storm race, imho the altar, spirit shard and the timeless crystal are decent choices. But Town Hall could use better 'oomph' :)

~~~~~

I'd like to post a question about summoned unit limits. I have a custom unit, where 100% of its usage is to replace all unit-type instances for the Hex spell, ie: Hexing enemies will always turn them into this custom unit. And the custom unit does nothing else.

Will this unit be counted into my summoned unit total?


@Edit: Forget it. Dumb idea anyway.
 
Level 17
Joined
Sep 8, 2007
Messages
994
@ xxdingo93xx: I like your choice of buildings for the storm race, imho the altar, spirit shard and the timeless crystal are decent choices. But Town Hall could use better 'oomph' :)
Yup, I share your opinion. Problem: got any alternative? :D
I was looking for matching models EVERYWHERE and I had no convincing success. Therefore, I partly used models which originally are doodads (so they have animations)
 
Level 17
Joined
Sep 8, 2007
Messages
994
Okay guys, found the solution. Very simple, just remove this action:

  • Melee Game - Enforce victory/defeat conditions (for all players)

If you only do that, you won't be able to win if you defeat your enemy. Meeh, I'll overwrite my trigger to default jass...
JASS:
function DefeatConditions takes nothing returns boolean
    return IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE) == true or IsUnitType(GetTriggerUnit(), UNIT_TYPE_PEON) == true
endfunction
//===========================================================================
function DefeatEnum takes nothing returns boolean
    return GetUnitState(GetFilterUnit(), UNIT_STATE_LIFE) > 0.405
endfunction
//===========================================================================
function DefeatActions takes nothing returns nothing
    local player trig = GetOwningPlayer(GetTriggerUnit())
    local player death = GetOwningPlayer(GetDyingUnit())
    local group TmpGroup = CreateGroup()
    local integer Count = 0
    local unit f
    call GroupEnumUnitsOfPlayer(TmpGroup, death, Condition(function DefeatEnum))
    loop
        set f = FirstOfGroup(TmpGroup)
        exitwhen f == null
        set Count = Count + 1
        call GroupRemoveUnit(TmpGroup, f)
    endloop
    if Count <= 0 then
        call CustomDefeatBJ(death, "Defeat!")
    endif

    if GetPlayers() <= 1 then
        call CustomVictoryBJ(trig, true, true)
    endif

endfunction
//===========================================================================
function InitTrig_Init takes nothing returns nothing
    local trigger tri = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(tri, EVENT_PLAYER_UNIT_DEATH)
    call TriggerAddCondition(tri, Condition(function DefeatConditions))
    call TriggerAddAction(tri, function DefeatActions)
endfunction
This should do it...
 
Level 17
Joined
Sep 8, 2007
Messages
994
I really suck at Jass...

Maybe I should just make custom victory trigger?

When you import then DO NOT remove the allready existing text. Just insert the code below the other code. That should fix the problem.

Meh, you both should call that trigger "Init".
Why?:
The compiler isn't able to find the initializations trigger just like that in jass so you have to give that function the prefix InitTrig_. Now, since you know how you to tell the compiler which function the initializations function is, you do so. The trigger name is Init, so the initializations function will be InitTrig_Init. Easy going, ehh? :)
 
Status
Not open for further replies.
Top