• 🏆 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!
  • 🏆 Hive's 6th HD Modeling Contest: Mechanical is now open! Design and model a mechanical creature, mechanized animal, a futuristic robotic being, or anything else your imagination can tinker with! 📅 Submissions close on June 30, 2024. Don't miss this opportunity to let your creativity shine! Enter now and show us your mechanical masterpiece! 🔗 Click here to enter!

[JASS] I need a challenge

Status
Not open for further replies.
Level 7
Joined
Mar 12, 2006
Messages
407
You can do a farming system like in Age of Empires 2
including food sources like berries, hunting and ofc farming on a field

Where hunters automatically start hunting a new deer/boar when there is no flesh left on the old one and where you have to rebuild the fields when they are harvested
 
Level 8
Joined
Nov 21, 2008
Messages
316
You can do a farming system like in Age of Empires 2
including food sources like berries, hunting and ofc farming on a field

Where hunters automatically start hunting a new deer/boar when there is no flesh left on the old one and where you have to rebuild the fields when they are harvested

lmao seconded. id love to see some1 attempt this. n if all elf fails do a weather system. that actually works.
 
Easy, exactly and will be used in some maps; systems should be good for all maps.
Anyway, Mr. Element, i suggest you did something (since you want challenge indeed) to detect armor/ magic resistance/ damage (current) of a unit (the 33 - 41 damage thing)/ attack speed (Ok, these are the obvious ones that someone would need).

Another one i would like, based off this Age of Empires idea, is this: When a unit in Age of Empires is issued an order to build some wall for example, you can extend the order and make a path of dummy walls, which orders that unit once it finishes construction of the first wall, to go to the second, until all of them are done. In Warcraft 3, you can order a unit to build a building. Then, at the Point of issued order, you get that building with 50% transparency, until the ordered unit reaches it and starts constructing it. How would you do the same thing but for multiple buildings, which are defined through a drag-out of the mouse?
o <- Building to be constructed (Warcraft 3)
oooooooooooooo <- Buildings to be constructed (Age of Empires)
 
It would be impossible to show where the buildings would be placed when the mouse is moved without RtC, and I don't want to use that as i have the newest patch and I don't want to downgrade, and RtC bugs anyway. It would be too easy to make it just build a line of buildings when it's issued two build orders...

BTW I played AoE3 for a long time so you don't need to explain AoE ideas to me (unless they're in previous versions and not in AoE3).
 
Level 16
Joined
Mar 3, 2006
Messages
1,564
For me I want a new spell system in WC3.

Most of the spells in WC3 system do a fixed amount of damage, meaning Holy Light does 75 divine damage, no matter what you do it will always be 75, what I need is [min - max damage]. I think applying this idea to all the spells in WC3 would prove challenging. Not only that, I want to add saving throw* system to WC3 spell system.

Saving throw system is from D&D system and it is a number assined to a character, when a spell is cast on him, he is allowed to roll (1d20 + His Saving Throw) if that number is greater than or equal to the Spell Saving Throw; he is allowed to take half the damage or take nothing at all or avoid certain effects like stuning, slow. This could be great if applyed to Finger of Death, you die instantly if you failed your saving throw or takes a damage otherwise
 
Level 7
Joined
Jul 29, 2009
Messages
276
i dont know how hard it is but you should try this:

a vehicle system that makes vehicle nutral and units can get inside and drive them.
also there are vehicle such as catapults that needs the driver (or servel for more speed) to push it from out side (and the enemy can choose to kill the driver and keep the catapult in one peice and than use it himself).
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,222
Make an event - A unit starts building a building which allows you to get both the unit being built and the builder for all races.

There is no native event to do this. I has to support more than 2 building units per player.

I made such a system, and trust me its not as easy as you may imagine.
 
You don't have to make every spell, just choose the one that will be most difficult to make, I am assuming that you will use vJASS. Try Immolation with min-max damage.
None of the spells are difficult to make. I want a challenge.

EDIT: Just saw DSG's post. That should be interesting. I'll try that, although I doubt it'll take me that long...

EDIT2: Ok, I think I've worked out how to do it.

1) I detect when a unit is issued a order targeting a point. I store this unit in a temporary global unit variable.
2) I detect when a unit starts construction. The builder will be the temp unit. I create a group containing the temp unit and attach it to the building.
3) I detect when a unit is issued an order targeting a widget. If this order is "repair", then I check to see if the target unit has my data attached to it. If so, I store the triggering unit in the attached group.
4) I detect when a unit is issued any order. If this order is not "repair", and this unit is in a group attached to a building, I remove this unit from that group.
5) I detect when a building has finished construction. I clear all data for that building.
6) I design an API for the system.

Conclusion: you're right, this is hard, but I can do it.
 
Level 16
Joined
Oct 12, 2008
Messages
1,570
A harvesting system, that keeps track of every unit that gathers lumber. Save it in Hashtable or use UnitUserData or something, but make it MUI and for every race. Also stackable of course so that i can order a unit to cut 5 lumber, walk away for an hour, and come back for 4 more lumber, and then turn in the lumber, then the LumberTracker should give a value of 9. AND that when it turns in lumber, the tracker gets to 0 again of course..

Though this might be too easy, or maybe the exact opposite, impossible. If so, just do DSG's thing, that is needed also!
 
Level 10
Joined
Jan 21, 2007
Messages
576
You could help me optimize my heroes 3 spells and my updated Heal/Damage/Move over time system =p
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,222
3) I detect when a unit is issued an order targeting a widget. If this order is "repair", then I check to see if the target unit has my data attached to it. If so, I store the triggering unit in the attached group.

Sorry, does not work. Only human builders do this and only if the unit can issue the repair order. Undead, orc and NE do not build like this so there is no repair order issued.

I managed to create a system which can detect when a specific unit starts building a building of any race and runs code as well as passes the builder and building via globals. The problem I suffered was if 2 units built the same building for the same player at the same location on the map before the building starts being built. In my system this results in a chance of the wrong unit being passed as the builder, but I classed this as minor as the benifits from this would be near none.

Trust me, it ends up quite complex and the creation of it alone took more than 100 lines of code for me, which included the use of H2I() and methods to store data. I never did build the destruction part of the system.

Anyway, as for the use of this system... Some of you are surely asking why make this. Well this is exactly the base system you need to make a builder hero which is fully MUI and not just PUI. After you make this system, you should show off what it is capable of with a hero which uses it.
 
Level 40
Joined
Dec 14, 2005
Messages
10,532
More of a creativity problem than a coding problem once you figure out the solution--something I wrote a while ago and was surprised at how easy it was and yet how it was weird as you didn't tend to notice it right away:

Figure out a specific event spread system (damage detect, acquire target detect, whatever) which will not leak in any way and at the same time will not have lag issues with ridiculous numbers of units (thousands). You may assume the user is competent.

This is an excersize rather than a request, if you feel like trying something different.
 
Level 20
Joined
Oct 21, 2006
Messages
3,231
Another one i would like, based off this Age of Empires idea, is this: When a unit in Age of Empires is issued an order to build some wall for example, you can extend the order and make a path of dummy walls, which orders that unit once it finishes construction of the first wall, to go to the second, until all of them are done. In Warcraft 3, you can order a unit to build a building. Then, at the Point of issued order, you get that building with 50% transparency, until the ordered unit reaches it and starts constructing it. How would you do the same thing but for multiple buildings, which are defined through a drag-out of the mouse?
o <- Building to be constructed (Warcraft 3)
oooooooooooooo <- Buildings to be constructed (Age of Empires)
Can already be done in Warcraft 3 normally by using waypoint commands. (Hold shift and give orders)
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,222
Its a problem because the system does not trigger at all when those races build units. The whole point of the system is go get when a unit starts building a building, not when a building is started. Normally without such a system you can only easilly get the building being started, however such a system should allow you at the same time to get the building and the unit who started the building.

Ofcourse your idea is ok, I guess a system of getting which builders built a building will also work for some tasks, however it still only works for human buildings as only they issue orders when they start construction so you will not be able to get the builders of other races.
 
Level 1
Joined
Aug 1, 2009
Messages
1
I was just considering doing yesterday was making a line-of-sight system. Giving units/players sight based on the positioning of the units. All I tried was to see if you could locally create line-of-sight blockers, in which you can't. It caused an immediate server split. =/ I'm not sure how else you could do this, if possible.

-----------------------------------------------------

Another possibility would be to expand on my worker AI system that I never finished.

Units have priorities, all resource gathering was to be scripted, never using the built-in gold/lumber/food system.

I got as far as each working unit had a list of priorities, for example one that was set to gather lumber had it's highest priority to pick up items. (This could be triggered to automatically put lumber in inventory if you wanted it that way). This priority checked if the units inventory was full, if it was, it was set to bring the items back to a drop-off point and drop them off. (This is as far as I got with bringing resources back, I planned on making buildings that "held" the resources with a certain capacity)

Next priority was attack/destroy/kill/harvest nearest tree. I don't really know why, but this took me a good while to do. I guess I was just still learning some of how things worked in war3.

Third priority was to wander. If there weren't any trees within the immediate vicinity, it'd wander pseudo-randomly in a generally random direction and continually check the other priorities while it wandered.

This whole system could be expanded to make some elaborately realistic village simulator. Peasants start with a hut or two, and go out and gather lumber until they can build resource holding bins or what-not. Then they could expand on the village until a decent population is there to the point where they need to create technology, such as improved ways to gather lumber, etc.
 
Level 10
Joined
Jan 21, 2007
Messages
576
More of a creativity problem than a coding problem once you figure out the solution--something I wrote a while ago and was surprised at how easy it was and yet how it was weird as you didn't tend to notice it right away:

Figure out a specific event spread system (damage detect, acquire target detect, whatever) which will not leak in any way and at the same time will not have lag issues with ridiculous numbers of units (thousands). You may assume the user is competent.

This is an excersize rather than a request, if you feel like trying something different.

Kind of confused as to what you are suggesting, a (using one of your examples) detects damage done to thousands of units without lagging or leaking? Sounds like a pretty useful system to me, curious to see how it is done because most of the damage detect systems I have seen leak/lag a lot with the more units registered or use up an orb (does yours?).

But I am also pretty inexperienced with the whole damage detecting game, for I have only ever really needed to register a very few amount of units which is easily accomplished by adding events.

And if that ^ is not what you meant then :hohum:, could you elaborate a little bit more.
 
Level 40
Joined
Dec 14, 2005
Messages
10,532
It doesn't have any of those problems, except the last one (the orbs) is necessary unless you want to do Dusk's approach where all spell damage is triggered. I personally just go for the trigger-all-spell-damage option if I need it.

Also, the system is handy, but not particularly releasable as it is volatile and thus can screw up your map if you don't code properly. It's also incredibly simple; if you don't work it out you'll probably be kicking yourself when you see it (I know I was surprised it took me so long to realize it would be a viable approach).
 
Level 10
Joined
Jan 21, 2007
Messages
576
Sorry for the late response was buried in the editor. I have never really understood what using up an orb does for a damage detect system. Does every unit have an orb, and then when a unit takes a damage you check if the damage type is fire (if they have orb of fire for example) and that is how you know it is an auto attack?

Wouldn't any damage detect system inevitably require adding events to a trigger, and if it is applied to thousands of units wouldn't that cause massive problems?

On the other hand I was thinking about ways to do what you are talking about without adding events, does it have to do with structs. Creating an instance of the struct for every unit, storing the unit and it's life, and looping through it to see if the health is lower? I don't think so because that has no way of detecting from where the damage came from so... fail lol.

Edit: I plan on having all spell damage coded, is there a way to be able to detect damage done to any unit on the map without an orb that is lag free? You make it sound like there is but I can't think of a way. bleh.
 
Level 12
Joined
Feb 23, 2007
Messages
1,030
Anyone have any ideas for a really hard-to-make vJass system? I need a good challenge. BTW I won't do anything that requires imports (such as full screen inventory, etc)

Create a boardgame.

Here's something to challenge you. Now make an algorithm to detect every possible movement path. Be sure to have it where it records the movement path so the unit can move from square to square. Good luck and have fun! I reccomend having a string that records each circle the algorithm went to. Also note there are units that take up 4 CoP, but that shouldn't make it too complicated. BTW This algorithm should run when a unit is selected (it changes the owner of the CoP to the player).

The second attachment is a more complete version, but I decided to remake it with a board size you can edit (which is the top map).
 

Attachments

  • Blood Board 1.0.w3x
    27 KB · Views: 53
  • Blood Board WIP.w3x
    37.8 KB · Views: 60
@Poot

I'm currently working on DSG's suggestion, but I have an idea of how you might do that:

1) When an event is registered using your special register function, add this event to a hashtable and register every unit on the map to a new trigger.
2) Detect units entering the map and add them to every trigger with every event.
3) Periodically destroy all triggers and re-register units. (?)
4) When one of your triggers in the array is fired, loop through the array of triggers registered to the system and fire each of them.

Done.

@Dreadnought

A whole game... hmm... I don't think so.

Anyway, STOP now. I've had enough input. Thank you.
 
Level 12
Joined
Feb 23, 2007
Messages
1,030
@Poot

I'm currently working on DSG's suggestion, but I have an idea of how you might do that:

1) When an event is registered using your special register function, add this event to a hashtable and register every unit on the map to a new trigger.
2) Detect units entering the map and add them to every trigger with every event.
3) Periodically destroy all triggers and re-register units. (?)
4) When one of your triggers in the array is fired, loop through the array of triggers registered to the system and fire each of them.

Done.

@Dreadnought

A whole game... hmm... I don't think so.

Anyway, STOP now. I've had enough input. Thank you.

Well actually, just an algorithm to detect all possible movement paths, and save the shortest route to each in a string. Not an entire map, but I suppose I did give that impression.

I have an idea of how to do it, but I may need some help.
 
I know how to do it. If you know how to generate and use pathmaps, it's easy. For my Paintball TD I'm working on a system which detects if a tower will block the creeps instantly - as soon as you start building it.

EDIT: My GetBuildingUnit system is coming along. I've just got one problem - if a unit owned by the same player is stood next to the building when it starts building - closer than the actual builder - it will detect that unit as the original builder instead of the real one...
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,222
That is why you have to store the issued order to the unit. It is logical that units that have not been issued to build a unit can not be valid builder.

The below map contains my version of the system 1.23 compatiable (not 1.24 due to H2I). You may wish to see how I did it and combine your ideas with it to give more accuracy.
 

Attachments

  • Builder Hero VAlpha.w3x
    30.5 KB · Views: 65
I'm not going to look at yours until I have mine complete. So far I have:

JASS:
/******************************************************************************************
*                                 GetBuildingUnit(s)
*                             by Element of Water (EoW)
*******************************************************************************************
*                                   Introduction
*
* GetBuildingUnit(s) is a system designed to retrieve the constructing unit (or units) in
* response to a CONSTRUCT_START, CONSTRUCT_CANCEL or CONSTRUCT_FINISH event. You may also
* use it on a building to retrieve its constructor(s) at any time during its construction.
* It requires: 
*
* - JassHelper by Vexorian
* - TimerUtils by Vexorian
* - GroupUtils by Rising_Dusk
* - BoolexprUtils by Vexorian
* - Table by Vexorian
* - InRangeWithSource by Element of Water (
********************************************************************************************
*                                     Functions
*
* There are two functions in the library available for use outside of it. These are:
*
* 1) function GetConstructingUnit takes unit building returns unit
* 2) function GetConstructingUnits takes unit building returns group
*
* 1) Should be used when you know that only unit can be constructing the building, IE in
*    response to a CONSTRUCT_START event or when you know the race of the building player
*    is not one which allows more than one worker to work on one building at once.
*
* 2) Should be used if it is possible that more than one unit may be working on the
*    building, as (1) will simply return a random unit in the group which will be returned
*    by this function
*******************************************************************************************/
library GetBuildingUnits initializer Init requires TimerUtils, GroupUtils, BoolexprUtils, Table

    private function TriggerRegisterAnyUnitEvent takes trigger trig, playerunitevent whichEvent returns nothing
        local integer i = 0
        loop
            exitwhen i >= bj_MAX_PLAYERS
            call TriggerRegisterPlayerUnitEvent(trig, Player(i), whichEvent, BOOLEXPR_TRUE)
            set i = i + 1
        endloop
    endfunction
    
    //============================================
    
    globals
        private constant integer REPAIR_ID              = 852024
        private constant integer SMART_ID               = 851971
        private constant integer HUMAN_REPAIR_ABIL_ID   = 'Ahrp'
        private constant real CLEAR_DATA_TIMER          = 2.0
        
    //============================================
    
        private HandleTable ht
        private HandleTable ht2
        
        private unit TempUnit = null
    endglobals
    
    //============================================
    
    globals
        private real X
        private real Y
        private unit U
        private unit B
        private real D
        
        private group ENUM_GROUP = CreateGroup()
        private boolexpr TheFilter 
    endglobals
    
    private function FilterFunc takes nothing returns boolean
        local real dx
        local real dy
        local real dist
        local unit u = GetFilterUnit()
        
        if not IsUnitType(u, UNIT_TYPE_STRUCTURE) and ht2.exists(u) then
            if ht2[u] == GetUnitTypeId(B) then
                set dx = GetUnitX(GetFilterUnit()) - X
                set dy = GetUnitY(GetFilterUnit()) - Y
                set dist = SquareRoot(dx*dx + dy*dy)
                if dist < D then
                    set D = dist
                    set U = GetFilterUnit()
                endif
            endif
        endif
        
        set u = null
        return false
    endfunction
    
    private function ClosestUnit takes real x, real y, unit u, player owner returns unit
        set X = x
        set Y = y
        set U = null
        set B = u
        set D = 1000000
        call GroupEnumUnitsOfPlayer(ENUM_GROUP, owner, TheFilter)
        return U
    endfunction
    
    //============================================
    
    private struct Data
        unit u
        group g
        
        static method create takes nothing returns Data
            local Data d = Data.allocate()
            
            set d.g = NewGroup()
            
            return d
        endmethod
        
        method onDestroy takes nothing returns nothing
            call ReleaseGroup(.g)
        endmethod
    endstruct
    
    //============================================
    
    function GetConstructingUnit takes unit building returns unit
        local Data d = ht[building]
        if not ht.exists(building) then
            call BJDebugMsg("NO!")
        endif
        return FirstOfGroup(d.g)
    endfunction
    
    function GetConstructingUnits takes unit building returns group
        local Data d
        
        if ht.exists(building) then
            set d = ht[building]
            return d.g
        endif
        
        return null
    endfunction
    
    //============================================
    
    private function ClearData takes nothing returns nothing
        local timer t = GetExpiredTimer()
        local Data d = GetTimerData(t)
        
        call d.destroy()
        call ReleaseTimer(t)
        
        set t = null
    endfunction
    
    private function StopBuilding takes nothing returns boolean
        local Data d
        local timer t
        
        if ht.exists(GetTriggerUnit()) then
            set d = ht[GetTriggerUnit()]
            set t = NewTimer()
            call SetTimerData(t, d)
            call TimerStart(t, CLEAR_DATA_TIMER, false, function ClearData)
            
            set t = null
        endif
        
        return false
    endfunction
    
    private function StartBuilding takes nothing returns boolean
        local Data d
        local unit u = GetTriggerUnit()
        local unit c = ClosestUnit(GetUnitX(u), GetUnitY(u), u, GetOwningPlayer(u))
        
        if c != null then
            set d = Data.create()
            call GroupAddUnit(d.g, c)
            set d.u = GetTriggerUnit()
            set ht[GetTriggerUnit()] = d
            set ht[c] = d
        endif
        
        set u = null
        set c = null
        
        return false
    endfunction
    
    private function AnyOrder takes nothing returns boolean
        local integer order = GetIssuedOrderId()
        local Data d
        local unit u
        if order == REPAIR_ID then
            //an additional builder has been ordered to work on the building
            if ht.exists(GetOrderTarget()) then
                set d = ht[GetOrderTarget()]
                call GroupAddUnit(d.g, GetTriggerUnit())
                set ht[GetTriggerUnit()] = d
            endif
        elseif order == SMART_ID then
            
        endif
        
        if ht2.exists(GetTriggerUnit()) then
            if ht2[GetTriggerUnit()] != order then
                set ht2[GetTriggerUnit()] = 0
            endif
        endif
        
        return false
    endfunction
    
    private function PointOrder takes nothing returns boolean
        local integer id = GetIssuedOrderId()
        local real x = GetOrderPointX()
        local real y = GetOrderPointY()
        local unit u = CreateUnit(Player(13), id, x, y, 90.)
        if u != null then
            if IsUnitType(u, UNIT_TYPE_STRUCTURE) then
                set ht2[GetTriggerUnit()] = id
            endif
            call RemoveUnit(u)
        endif
        return false
    endfunction
    
    //============================================
    
    private function Init takes nothing returns nothing
        //Create the trigger to detect point orders.
        local trigger t = CreateTrigger()
        local boolexpr c = Condition(function PointOrder)
        call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER)
        call TriggerAddCondition(t, c)
        //============================================
        
        //Create the trigger to detect any order.
        set t = CreateTrigger()
        set c = Condition(function AnyOrder)
        call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_ISSUED_ORDER)
        call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER)
        call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER)
        call TriggerAddCondition(t, c)
        //============================================
        
        //Create the trigger to detect start building.
        set t = CreateTrigger()
        set c = Condition(function StartBuilding)
        call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_CONSTRUCT_START)
        call TriggerAddCondition(t, c)
        //============================================
        
        //Create the trigger to detect stop building.
        set t = CreateTrigger()
        set c = Condition(function StartBuilding)
        call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_CONSTRUCT_FINISH)
        call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_CONSTRUCT_CANCEL)
        call TriggerAddCondition(t, c)
        //============================================
        
        //Initialise some stuff
        set ht = HandleTable.create()
        set ht2 = HandleTable.create()
        set TheFilter = Filter(function FilterFunc)
        
        //Clean leaks
        set t = null
        set c = null
    endfunction
endlibrary

Yeah, it requires a lot of stuff (TimerUtils, BoolexprUtils, GroupUtils, Table). The only problem is smart orders... I can't think of a way to handle them... I figured the storing the order to the unit thing before you told me about it. Mine only stores actual build orders, however :D.

EDIT: The problem with your test map is, you never get any gold or lumber to build anything...

EDIT: Looking over your code, I don't see any way, using your system, to get multiple units which are building something - I have a function which returns a unit group, but you don't have anything like that...
 

Dr Super Good

Spell Reviewer
Level 64
Joined
Jan 18, 2005
Messages
27,222
Well because only 1 unit ever starts to build a building and can build a building for most races. Only human buildings support 2 units or more building at once, but still there will always be only one initial builder who actually started the building which my sytem resturns. My system runs when a unit starts building a building and gives you the building and the builder (not when a unit joins or helps build a building). It was designed so that you can get stats from the orignal builder, eg in the map I made each builder can only have a limated number of buildings at a time unique to that builder.

As for the gold thing.... It was alpha so easy testing was not added. Also is it really so hard to "greedisgood 1000000"? Afterall that is how I test it. I put the hero on hold till 1.24 is out as I believe the hashtables are far faster than my hash system.

Good old WC3 legal cheatcodes, thereisnospoon, whosyourdaddy 9999999 (yes it takes an integer which does nothing lol), greedisgood 9999999, warpten. Do not know how spell testers could live with out them.
Ofcourse there is the no CD one as well as the no food one, but you do hardly ever need them.
 
Well because only 1 unit ever starts to build a building and can build a building for most races. Only human buildings support 2 units or more building at once, but still there will always be only one initial builder who actually started the building which my sytem resturns. My system runs when a unit starts building a building and gives you the building and the builder (not when a unit joins or helps build a building). It was designed so that you can get stats from the orignal builder, eg in the map I made each builder can only have a limated number of buildings at a time unique to that builder.

As for the gold thing.... It was alpha so easy testing was not added. Also is it really so hard to "greedisgood 1000000"? Afterall that is how I test it. I put the hero on hold till 1.24 is out as I believe the hashtables are far faster than my hash system.

Good old WC3 legal cheatcodes, thereisnospoon, whosyourdaddy 9999999 (yes it takes an integer which does nothing lol), greedisgood 9999999, warpten. Do not know how spell testers could live with out them.
Ofcourse there is the no CD one as well as the no food one, but you do hardly ever need them.
Meh, I always forget about cheats. I don't like cheating in games (campaign, single player melee), so I just forget about them when they're useful.

Ok, I guess I'll cut the system down A LOT by removing that functionality for added builders. When you said, when you gave me the challenge, "it must work for more than 2 builders per player", I thought you meant added on builders.

Have you looked over my code? I know I approached it in a far different way to you.
 
Level 4
Joined
Jul 1, 2009
Messages
65
how about changing in game minimap....while in game......i have two different parts of my map....if u choose one mode you go to one part of map with camera bounds...and that messes up minimap....

.right now i made a fix for it by using a minimap i made with the other minimap as overlay...so you can see both at same time........but it would be awesome if i could change with Jass
 
Status
Not open for further replies.
Top