mazing td help
Forum rules
Before making a new topic:
First, check if your question has already been answered in the Tutorials section.
If you didn't find a solution, use the search function.
If searching didn't help either, you can make a new topic.
Topic title & content:
You must use a descriptive title. (Help plz is not good) (Need help with Dialog buttons is good)
Go into much detail when posting. You should post attachments. Like screenshots of the problem, the map you are making, replays of the error. Or you could even make a screencast (video) of your problem and upload it here.
Spelling:
Grammar seems to be a serious problem amongst teenagers, so use a spell checker or you will get no love.
Read your posts twice, before pressing the reply button.
And do not use profanity. Chatspeak (y r u nub) and Leetspeak (1 C4N S33 H4X) are not welcome here either.
Only World Editor related questions are allowed here!
(Click for Battle.net help) (Click for World Editor help)
Before making a new topic:
First, check if your question has already been answered in the Tutorials section.
If you didn't find a solution, use the search function.
If searching didn't help either, you can make a new topic.
Topic title & content:
You must use a descriptive title. (Help plz is not good) (Need help with Dialog buttons is good)
Go into much detail when posting. You should post attachments. Like screenshots of the problem, the map you are making, replays of the error. Or you could even make a screencast (video) of your problem and upload it here.
Spelling:
Grammar seems to be a serious problem amongst teenagers, so use a spell checker or you will get no love.
Read your posts twice, before pressing the reply button.
And do not use profanity. Chatspeak (y r u nub) and Leetspeak (1 C4N S33 H4X) are not welcome here either.
Only World Editor related questions are allowed here!
(Click for Battle.net help) (Click for World Editor help)
mazing td help
Hi. This is my first warcraft map I've made and I decided I want a mazing type td (maybe not the best choice). Anyway, my question is how would I prevent the players from building towers that will block the path of the creeps? I disabled the attacks of the creeps so they can't destroy the towers and I would prefer if I could keep it that way. Thanks.
- 3ICE
- Admin
- Posts: 2631
- Joined: Sat Mar 01, 2008 11:34 pm
- Realm: Europe
- Account: 3ICE
- Clan: 3ICE
- Location: Hungary
- Contact:
Re: mazing td help
Definitely not the best choice. Try making a melee map instead. (And then add some triggers for practice.)
Step 1: Google: http://www.google.com/search?q=warcraft+tower+defense+map+pathing+and+lanes
Step 2: Read...
Step 3: Problem solved
p.s.: You need to re-enable creeps' attack or else how would you punish the blocking player? (And make sure you don't put the "Invulnerable" ability on any tower.)
Step 1: Google: http://www.google.com/search?q=warcraft+tower+defense+map+pathing+and+lanes
Step 2: Read...
Step 3: Problem solved
p.s.: You need to re-enable creeps' attack or else how would you punish the blocking player? (And make sure you don't put the "Invulnerable" ability on any tower.)
Re: mazing td help
I've already read that. I'm doing fairly well on the map the triggers seem to be fairly logical if you simply think through most of it. I've played a map (can't remember which one for the life of me) but when you tried building a tower that would block the creeps paths it wouldn't let you and notify you that of it. Therefore you wouldn't need creep attacks because no one could block in the first place.
Re: mazing td help
Ok. So when I have the creeps attacks enabled they just seem to want to destory everything in their sight. Is their an easy remedy to this?
- 3ICE
- Admin
- Posts: 2631
- Joined: Sat Mar 01, 2008 11:34 pm
- Realm: Europe
- Account: 3ICE
- Clan: 3ICE
- Location: Hungary
- Contact:
Re: mazing td help
I think you've played a flash game, not a map.Evilnoah wrote:I've played a map
Why does everyone want everything to be easy? By the way the word "their" is not proper English. You should have spelled it like this: "there". EDIT: Forgot to mention that the remedy is on the page you've read (or probably just skimmed).Evilnoah wrote:Is their an easy remedy to this?
No, you haven't... (Or you didn't pay attention to the "Creeps keep Attacking?" chapter!...)Evilnoah wrote:I've already read that.
(RULE 2010: No double posting! I understand that double posting is an acceptable solution for lazy people, but please try editing the second post into the first one the next time. It isn't hard.)
- manstie
- Posts: 310
- Joined: Wed Jun 17, 2009 9:27 am
- Account: manstie
- Location: Perth, Australia
- Contact:
Re: mazing td help
It would be great to find out how the maker of "Mazing Contest" did their anti-blocking system.
________________________________________________________________
Or you could make the units have Blink and if its blocking - instead of attack, make them blink like, 200 distance, to the next waypoint.
________________________________________________________________
Or you could make the units have Blink and if its blocking - instead of attack, make them blink like, 200 distance, to the next waypoint.
- 3ICE
- Admin
- Posts: 2631
- Joined: Sat Mar 01, 2008 11:34 pm
- Realm: Europe
- Account: 3ICE
- Clan: 3ICE
- Location: Hungary
- Contact:
Re: mazing td help
Here:
His protection is pathetic (asfgasdasdfsdgasd)! Just imagine having to go through all your variables and triggers and renaming them to nonsense (asfgasdasdfsdgasd ) every time you released a new version. If Vexorian didn't create his Map Optimizer, we'd be doomed for sure!
EDIT: A Blinking trigger can be taken from Power Towers (It's in vJASS, but don't let that bother you.)
Code: Select all
//===========================================================================
// Trigger: asdgasdfgasdgasdf
//===========================================================================
function Trig_asdgasdfgasdgasdf_Func011C takes nothing returns boolean
if ( not ( udg_asdgsadfasdgas == 'h000' ) ) then
return false
endif
return true
endfunction
function Trig_asdgasdfgasdgasdf_Func012Func002C takes nothing returns boolean
if ( not ( GetUnitTypeId(GetLastCreatedUnit()) == 'h001' ) ) then
return false
endif
return true
endfunction
function Trig_asdgasdfgasdgasdf_Func012C takes nothing returns boolean
if ( not ( udg_asdfsdgsadfs == true ) ) then
return false
endif
return true
endfunction
function Trig_asdgasdfgasdgasdf_Func013C takes nothing returns boolean
if ( not ( RectContainsLoc(udg_asdgfasdfsdgssdf[udg_temp_int], udg_temp_point) == true ) ) then
return false
endif
return true
endfunction
function Trig_asdgasdfgasdgasdf_Actions takes nothing returns nothing
set udg_temp_unit = GetTriggerUnit()
set udg_temp_int = GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))
set udg_temp_point = GetUnitLoc(GetTriggerUnit())
set udg_asdgsadfasdgas = GetUnitTypeId(GetTriggerUnit())
set udg_asdfgasdfasg = true
set udg_asdgasdgasdfasasdgfa = 1
call RemoveUnit( udg_temp_unit )
call CreateNUnitsAtLoc( 1, udg_asdgsadfasdgas, ConvertedPlayer(udg_temp_int), udg_temp_point, bj_UNIT_FACING )
set udg_temp_unit = GetLastCreatedUnit()
call SetUnitUserData( udg_temp_unit, GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit())) )
if ( Trig_asdgasdfgasdgasdf_Func011C() ) then
set udg_asdgfasdgasdfas = 1
call UnitRemoveAbilityBJ( 'AHtc', GetLastCreatedUnit() )
else
set udg_asdgfasdgasdfas = 0
endif
if ( Trig_asdgasdfgasdgasdf_Func012C() ) then
call UnitAddAbilityBJ( 'A000', GetLastCreatedUnit() )
if ( Trig_asdgasdfgasdgasdf_Func012Func002C() ) then
call UnitAddAbilityBJ( 'A001', GetLastCreatedUnit() )
else
endif
else
endif
if ( Trig_asdgasdfgasdgasdf_Func013C() ) then
call RemoveLocation (udg_temp_point)
call ConditionalTriggerExecute( gg_trg_asdgasdfgasdgasdfsa )
else
call AddSpecialEffectLocBJ( udg_temp_point, "Abilities\\Spells\\Human\\DispelMagic\\DispelMagicTarget.mdl" )
call DestroyEffectBJ( GetLastCreatedEffectBJ() )
call RemoveUnit( udg_temp_unit )
call RemoveLocation (udg_temp_point)
call AdjustPlayerStateBJ( udg_asdgasdgasdfasasdgfa, ConvertedPlayer(udg_temp_int), PLAYER_STATE_RESOURCE_GOLD )
call AdjustPlayerStateBJ( udg_asdgfasdgasdfas, ConvertedPlayer(udg_temp_int), PLAYER_STATE_RESOURCE_LUMBER )
endif
endfunction
//===========================================================================
function InitTrig_asdgasdfgasdgasdf takes nothing returns nothing
set gg_trg_asdgasdfgasdgasdf = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( gg_trg_asdgasdfgasdgasdf, EVENT_PLAYER_UNIT_CONSTRUCT_START )
call TriggerAddAction( gg_trg_asdgasdfgasdgasdf, function Trig_asdgasdfgasdgasdf_Actions )
endfunction
//===========================================================================
// Trigger: asdgasdfgasdgasdfsa
//===========================================================================
function Trig_asdgasdfgasdgasdfsa_Actions takes nothing returns nothing
set udg_asdfasdgasd = false
set udg_asdfasdgsdf = false
call GroupClear( udg_Chain )
call GroupClear( udg_Chain_New_Additions_1 )
call GroupAddUnitSimple( udg_temp_unit, udg_Chain )
call GroupAddUnitSimple( udg_temp_unit, udg_Chain_New_Additions_1 )
set udg_temp_point = GetUnitLoc(udg_temp_unit)
call ConditionalTriggerExecute( gg_trg_asdfgasdgasdfasdgasd )
call RemoveLocation (udg_temp_point)
call ConditionalTriggerExecute( gg_trg_asdfasdgasdfasdgsasd )
endfunction
//===========================================================================
function InitTrig_asdgasdfgasdgasdfsa takes nothing returns nothing
set gg_trg_asdgasdfgasdgasdfsa = CreateTrigger( )
call TriggerAddAction( gg_trg_asdgasdfgasdgasdfsa, function Trig_asdgasdfgasdgasdfsa_Actions )
endfunction
//===========================================================================
// Trigger: asdfasdgasdfasdgsasd
//===========================================================================
function Trig_asdfasdgasdfasdgsasd_Func003A takes nothing returns nothing
call GroupAddUnitSimple( GetEnumUnit(), udg_Chain_New_Additions_2 )
endfunction
function Trig_asdfasdgasdfasdgsasd_Func005Func002002002001 takes nothing returns boolean
return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == true )
endfunction
function Trig_asdfasdgasdfasdgsasd_Func005Func002002002002 takes nothing returns boolean
return ( IsUnitInGroup(GetFilterUnit(), udg_Chain) == false )
endfunction
function Trig_asdfasdgasdfasdgsasd_Func005Func002002002 takes nothing returns boolean
return GetBooleanAnd( Trig_asdfasdgasdfasdgsasd_Func005Func002002002001(), Trig_asdfasdgasdfasdgsasd_Func005Func002002002002() )
endfunction
function Trig_asdfasdgasdfasdgsasd_Func005Func003Func002C takes nothing returns boolean
if ( not ( DistanceBetweenPoints(udg_temp_point, udg_temp_point_2) < 182.00 ) ) then
return false
endif
return true
endfunction
function Trig_asdfasdgasdfasdgsasd_Func005Func003A takes nothing returns nothing
set udg_temp_point = GetUnitLoc(GetEnumUnit())
if ( Trig_asdfasdgasdfasdgsasd_Func005Func003Func002C() ) then
call GroupAddUnitSimple( GetEnumUnit(), udg_Chain )
call GroupAddUnitSimple( GetEnumUnit(), udg_Chain_New_Additions_1 )
call ConditionalTriggerExecute( gg_trg_asdfgasdgasdfasdgasd )
set udg_asdgdsafsdsg = true
else
endif
call RemoveLocation (udg_temp_point)
endfunction
function Trig_asdfasdgasdfasdgsasd_Func005A takes nothing returns nothing
set udg_temp_point_2 = GetUnitLoc(GetEnumUnit())
set udg_temp_group = GetUnitsInRectMatching(udg_asdgfasdfsdgssdf[udg_temp_int], Condition(function Trig_asdfasdgasdfasdgsasd_Func005Func002002002))
call ForGroupBJ( udg_temp_group, function Trig_asdfasdgasdfasdgsasd_Func005Func003A )
call RemoveLocation (udg_temp_point_2)
call DestroyGroup (udg_temp_group)
endfunction
function Trig_asdfasdgasdfasdgsasd_Func006001 takes nothing returns boolean
return ( udg_asdgdsafsdsg == true )
endfunction
function Trig_asdfasdgasdfasdgsasd_Actions takes nothing returns nothing
set udg_asdgdsafsdsg = false
call GroupClear( udg_Chain_New_Additions_2 )
call ForGroupBJ( udg_Chain_New_Additions_1, function Trig_asdfasdgasdfasdgsasd_Func003A )
call GroupClear( udg_Chain_New_Additions_1 )
call ForGroupBJ( udg_Chain_New_Additions_2, function Trig_asdfasdgasdfasdgsasd_Func005A )
if ( Trig_asdfasdgasdfasdgsasd_Func006001() ) then
call ConditionalTriggerExecute( GetTriggeringTrigger() )
else
call ConditionalTriggerExecute( gg_trg_asdfasdgasdfasdga )
endif
endfunction
//===========================================================================
function InitTrig_asdfasdgasdfasdgsasd takes nothing returns nothing
set gg_trg_asdfasdgasdfasdgsasd = CreateTrigger( )
call TriggerAddAction( gg_trg_asdfasdgasdfasdgsasd, function Trig_asdfasdgasdfasdgsasd_Actions )
endfunction
//===========================================================================
// Trigger: asdfgasdgasdfasdgasd
//===========================================================================
function Trig_asdfgasdgasdfasdgasd_Func001Func002Func002Func002C takes nothing returns boolean
if ( ( GetLocationY(udg_temp_point) <= GetLocationY(udg_asdfasdgasdfasdgsss[udg_temp_int]) ) ) then
return true
endif
if ( ( GetLocationY(udg_temp_point) >= ( GetLocationY(udg_asdfasdgasdfasdgsss[udg_temp_int]) + ( 128.00 * 7.00 ) ) ) ) then
return true
endif
return false
endfunction
function Trig_asdfgasdgasdfasdgasd_Func001Func002Func002C takes nothing returns boolean
if ( not ( GetLocationX(udg_temp_point) <= ( GetLocationX(udg_asdfasdgasdfasdgsss[udg_temp_int]) + ( 128.00 * 4.00 ) ) ) ) then
return false
endif
if ( not Trig_asdfgasdgasdfasdgasd_Func001Func002Func002Func002C() ) then
return false
endif
return true
endfunction
function Trig_asdfgasdgasdfasdgasd_Func001Func002C takes nothing returns boolean
if ( ( GetLocationX(udg_temp_point) <= GetLocationX(udg_asdfasdgasdfasdgsss[udg_temp_int]) ) ) then
return true
endif
if ( Trig_asdfgasdgasdfasdgasd_Func001Func002Func002C() ) then
return true
endif
return false
endfunction
function Trig_asdfgasdgasdfasdgasd_Func001C takes nothing returns boolean
if ( not Trig_asdfgasdgasdfasdgasd_Func001Func002C() ) then
return false
endif
return true
endfunction
function Trig_asdfgasdgasdfasdgasd_Func002Func002Func002Func002C takes nothing returns boolean
if ( ( GetLocationY(udg_temp_point) <= GetLocationY(udg_asdfasdgasdfasdgsss[udg_temp_int]) ) ) then
return true
endif
if ( ( GetLocationY(udg_temp_point) >= ( GetLocationY(udg_asdfasdgasdfasdgsss[udg_temp_int]) + ( 128.00 * 7.00 ) ) ) ) then
return true
endif
return false
endfunction
function Trig_asdfgasdgasdfasdgasd_Func002Func002Func002C takes nothing returns boolean
if ( not ( GetLocationX(udg_temp_point) >= ( GetLocationX(udg_asdfasdgasdfasdgsss[udg_temp_int]) + ( 128.00 * 4.00 ) ) ) ) then
return false
endif
if ( not Trig_asdfgasdgasdfasdgasd_Func002Func002Func002Func002C() ) then
return false
endif
return true
endfunction
function Trig_asdfgasdgasdfasdgasd_Func002Func002C takes nothing returns boolean
if ( ( GetLocationX(udg_temp_point) >= ( GetLocationX(udg_asdfasdgasdfasdgsss[udg_temp_int]) + ( 8.00 * 128.00 ) ) ) ) then
return true
endif
if ( Trig_asdfgasdgasdfasdgasd_Func002Func002Func002C() ) then
return true
endif
return false
endfunction
function Trig_asdfgasdgasdfasdgasd_Func002C takes nothing returns boolean
if ( not Trig_asdfgasdgasdfasdgasd_Func002Func002C() ) then
return false
endif
return true
endfunction
function Trig_asdfgasdgasdfasdgasd_Actions takes nothing returns nothing
if ( Trig_asdfgasdgasdfasdgasd_Func001C() ) then
set udg_asdfasdgasd = true
else
endif
if ( Trig_asdfgasdgasdfasdgasd_Func002C() ) then
set udg_asdfasdgsdf = true
else
endif
endfunction
//===========================================================================
function InitTrig_asdfgasdgasdfasdgasd takes nothing returns nothing
set gg_trg_asdfgasdgasdfasdgasd = CreateTrigger( )
call TriggerAddAction( gg_trg_asdfgasdgasdfasdgasd, function Trig_asdfgasdgasdfasdgasd_Actions )
endfunction
EDIT: A Blinking trigger can be taken from Power Towers (It's in vJASS, but don't let that bother you.)
Who is online
Users browsing this forum: No registered users and 33 guests