Age of Empires 1

Level 23
Joined
Nov 29, 2006
Messages
2,483
[K40$]-Spectre;1434180 said:
, this sounds a bit strange, but maybe you can give the villager an ability so it changes into an other villager (everything looks the same except for the buildings they can make).

The way of doing so, replacing the unit, would cause alot of troubles, not only for the AI, but for all players, as it would interrupt all queued orders and all current orders.

I found a way to do it. I did give it an ability, but what it does is to change what's buildable for the player. So whenever Toggle Military Structures is set to on, all normal structures in the building list will disappear, making room for the other ones. Upon deactivation, it reverses the effect. Now this will make it more pleasable for the player, and also the AI, since the AI isnt using this ability at all, and has all structures on the list all at once.
 
Level 31
Joined
Apr 17, 2009
Messages
3,574
Greek civilisation isn't finished ...
It will take some more, time because the next two weeks I can't do anything, because I work in the bank 8-10 hours every day.
Eccho, do you know the building system in Fortress Survival?
You should check, that, but I think it just replaces the worker, but I'm not sure.
Master of Eagles, that's good but make it more red and fix the wrapping of the roof.
Also it's a bit blank, could you add some details, maybe on the pillars, just make them with the texture of the Warcraft Doodad City Scape Pillars.
 
Level 23
Joined
Nov 29, 2006
Messages
2,483
Spellbooks cannot contain build units orders. It does allow you to use "item build tiny <insert type>", but it doesn't work very well, as all those abilities are based on the same orderid, thus, they do not stack at all. Whenever you try to build something with them, it keeps ordering the same build ability, due to the orderid...
So no, it wasnt that easy.
 
Level 23
Joined
Nov 29, 2006
Messages
2,483
Well I found a way, similar to the one used in Fortress survival, except that mine shouldnt be interrupting orders and shift orders (it may under some circumstances).

I am wondering, Chilla Killa, are we planning to have all the different villager types too? Remember when you you go from "builder" to "farmer" for´instance, and stuff like that. Since they have different stats, and different names, we most likely could use all 10 different types. But I'd say it is not a very huge concern atm. Im going to further work on the techtree instead.
 
Level 12
Joined
Jun 9, 2009
Messages
1,131
Eccho, you can make it in triggers but it will take more time, i use it for my equipment system. PM me for more description, i will post only half of that. Description : (this is one of ways) 1. Setting the open ability for military and normal building. When the unit starts (example : military) ability replace casting unit with military builder. After replacing make the trigger select last replaced. Then order unit to (example : (human)) build. Closing or Removing (human) build from last replaced can be with ESC like (Player skips cinematic, then replace the dummy with first worker that was be) and you are finished. But you can do it with selection, then again remove.... I think that I helped you. If I was, Im too happy. Good luck with continuing work on this project.

Edit : All what i say is easier way, but i have more ideas to do that. Ask me here or PM and i will say you other ways
 
Last edited:
Level 4
Joined
May 12, 2012
Messages
137
ok i see your trying to figure out what to do with the beuilding system. seems eccho already figured it out but seems a bit complicated. can t you simply have 2 different icons for access to 2 different menus? isnt it just easier? i mean i have NO clue about making build menus so i could be totally wrong :/ hell i dunno have the stuff eccho talked about, i just got the jist of most of it xD
also as for the different units go, id say you could just add attachments to the original villager and have the words "farmer" or "forager" depending on what his job is over his head
 
Level 23
Joined
Nov 29, 2006
Messages
2,483
Eccho, you can make it in triggers but it will take more time, i use it for my equipment system. PM me for more description, i will post only half of that. Description : (this is one of ways) 1. Setting the open ability for military and normal building. When the unit starts (example : military) ability replace casting unit with military builder. After replacing make the trigger select last replaced. Then order unit to (example : (human)) build. Closing or Removing (human) build from last replaced can be with ESC like (Player skips cinematic, then replace the dummy with first worker that was be) and you are finished. But you can do it with selection, then again remove.... I think that I helped you. If I was, Im too happy. Good luck with continuing work on this project.

Edit : All what i say is easier way, but i have more ideas to do that. Ask me here or PM and i will say you other ways

First of all, that will make it even move complex. I will use the *chaos* ability. For instance, if I first have a tech builder and want to switch to a military builder, I have an ability based on a spell which doesnt interrupt orders (in my case, mana sield) to trigger the replacement. Chaos work that way, that it switches the unit without destroying the order queue you have given it. Even "shift-orders" are staying. The con about this however is, that after switching, if you have queued a tech building, it will not be allowed to build it, because it doesnt exist in the buildign list. But this is as far as we can get to a good building system.

And thus that explains it, that the system you have breaks all orders you queue with shift. Sadly, even "human-build" makes the unit stop. Replacing units through triggers make the unit stop too, and could look croppy. I appreciated the help however.

ok i see your trying to figure out what to do with the beuilding system. seems eccho already figured it out but seems a bit complicated. can t you simply have 2 different icons for access to 2 different menus? isnt it just easier? i mean i have NO clue about making build menus so i could be totally wrong :/ hell i dunno have the stuff eccho talked about, i just got the jist of most of it xD
also as for the different units go, id say you could just add attachments to the original villager and have the words "farmer" or "forager" depending on what his job is over his head

If it were that simple, I would have done it, afaik, I haven't found away, nor seen anyone found a way to create two building menus, as it isn't natively supported to do so. You can only have one building list, and that one is defined in the Techtree - Structures Built field in the unit editor, per each unit.
 
Level 7
Joined
Jun 19, 2009
Messages
277
well for buildings use two spell-books
and make each ability create the building on the targeted point
also how will players pick their civs
and will this have custom ui
if it does will it change through ages
cause there is a way to do that
 
Level 23
Joined
Nov 29, 2006
Messages
2,483
No problem, I did say I appreciated your help:p. But so far this is what I needed, and its better than all "dummy" solutions I/you/we thought of yet:
2 chaos abilities
2 button press abilities
2 villager unittypes
It will be fine dont worry.
 
Level 23
Joined
Nov 29, 2006
Messages
2,483
I am only going to give a quick status report. I've been working more on the general tech handling and how it should be evaluated and so on in game. Right now, I have all proper gameplay constants written in the code - it contains all units, buildings and upgrades which exists in the game. I have also took alot of time working on a "Tech Library" which basically stores all custom data we have for the different things.
For instance, this is how I have chosen to initialise all techs.
JASS:
    private function InitTechLib takes nothing returns nothing
        //The parameters are techId, woodcost, foodcost, goldcost, stonecost
        //For UpgradeEx, another parameter is included, which is telling what level of the upgrade it is.
        call SetTechUnit(   VILLAGER            , 0, 50, 0, 0)
        call SetTechUnit(   PRIEST              , 0, 0, 125, 0)
        call SetTechUnit(   CLUBMAN             , 0, 50, 0, 0)
        call SetTechUnit(   SLINGER             , 0, 40, 0, 10)
        call SetTechUnit(   SHORT_SWORDSMAN     , 0, 35, 15, 0)
        call SetTechUnit(   HOPLITE             , 0, 60, 40, 0)
        call SetTechUnit(   BOWMAN              , 20, 40, 0, 0)
        call SetTechUnit(   IMPROVED_BOWMAN     , 0, 40, 20, 0)
        call SetTechUnit(   CHARIOT_ARCHER      , 70, 40, 0, 0)
        call SetTechUnit(   ELEPHANT_ARCHER     , 0, 180, 60, 0)
        call SetTechUnit(   HORSE_ARCHER        , 0, 50, 70, 0)
        call SetTechUnit(   SCOUT               , 0, 100, 0, 0)
        call SetTechUnit(   CAMEL_RIDER         , 0, 70, 60, 0)
        call SetTechUnit(   CHARIOT             , 60, 40, 0, 0)
        call SetTechUnit(   CAVALRY             , 0, 70, 80, 0)
        call SetTechUnit(   WAR_ELEPHANT        , 0, 170, 40, 0)
        call SetTechUnit(   STONE_THROWER       , 180, 0, 80, 0)
        call SetTechUnit(   BALLISTA            , 100, 0, 80, 0)
        call SetTechUnit(   FISHING_BOAT        , 50, 0, 0, 0)
        call SetTechUnit(   TRADE_BOAT          , 100, 0, 0, 0)
        call SetTechUnit(   LIGHT_TRANSPORT     , 150, 0, 0, 0)
        call SetTechUnit(   SCOUT_SHIP          , 135, 0, 0, 0)
        call SetTechUnit(   FIRE_GALLEY         , 115, 0, 40, 0)
        call SetTechUnit(   CATAPULT_TRIREME    , 135, 0, 75, 0)
        call SetTechBuil(   WATCH_TOWER         , 0, 0, 0, 150)
        call SetTechBuil(   SMALL_WALL          , 0, 0, 0, 5)
        call SetTechBuil(   FARM                , 75, 0, 0, 0)
        call SetTechBuil(   HOUSE               , 30, 0, 0, 0)
        call SetTechBuil(   WONDER              , 1000, 0, 1000, 1000)
        call SetTechBuil(   ACADEMY             , 200, 0, 0, 0)
        call SetTechBuil(   ARCHERY_RANGE       , 150, 0, 0, 0)
        call SetTechBuil(   BARRACKS            , 125, 0, 0, 0)
        call SetTechBuil(   DOCK                , 100, 0, 0, 0)
        call SetTechBuil(   GOVERNMENT_CENTER   , 175, 0, 0, 0)
        call SetTechBuil(   GRANARY             , 120, 0, 0, 0)
        call SetTechBuil(   MARKET              , 150, 0, 0, 0)
        call SetTechBuil(   SIEGE_WORKSHOP      , 200, 0, 0, 0)
        call SetTechBuil(   STABLE              , 150, 0, 0, 0)
        call SetTechBuil(   STORAGE_PIT         , 120, 0, 0, 0)
        call SetTechBuil(   TEMPLE              , 200, 0, 0, 0)
        call SetTechBuil(   TOWN_CENTER         , 200, 0, 0, 0)
        call SetTechUpgrEx( UPG_MELEE_ATTACK    , 0, 0, 100, 0, 0)
        call SetTechUpgrEx( UPG_MELEE_ATTACK    , 1, 0, 200, 120, 0)
        call SetTechUpgrEx( UPG_MELEE_ATTACK    , 2, 0, 300, 180, 0)
        call SetTechUpgrEx( UPG_INFANTRY_SHIELD , 0, 0, 150, 180, 0)
        call SetTechUpgrEx( UPG_INFANTRY_SHIELD , 1, 0, 200, 320, 0)
        call SetTechUpgrEx( UPG_INFANTRY_SHIELD , 2, 0, 250, 400, 0)
        call SetTechUpgrEx( UPG_ARCHER_ARMOR    , 0, 0, 100, 0, 0)
        call SetTechUpgrEx( UPG_ARCHER_ARMOR    , 1, 0, 125, 50, 0)
        call SetTechUpgrEx( UPG_ARCHER_ARMOR    , 2, 0, 150, 100, 0)
        call SetTechUpgrEx( UPG_CAVALRY_ARMOR   , 0, 0, 125, 0, 0)
        call SetTechUpgrEx( UPG_CAVALRY_ARMOR   , 1, 0, 150, 50, 0)
        call SetTechUpgrEx( UPG_CAVALRY_ARMOR   , 2, 0, 175, 100, 0)
        call SetTechUpgrEx( UPG_INFANTRY_ARMOR  , 0, 0, 75, 0, 0)
        call SetTechUpgrEx( UPG_INFANTRY_ARMOR  , 1, 0, 100, 50, 0)
        call SetTechUpgrEx( UPG_INFANTRY_ARMOR  , 2, 0, 125, 100, 0)
        call SetTechUpgr(   UPG_ARCHITECTURE    , 175, 150, 0, 0)
        call SetTechUpgr(   UPG_NOBILITY        , 0, 175, 120, 0)
        call SetTechUpgr(   UPG_WRITING         , 0, 200, 75, 0)
        call SetTechUpgr(   UPG_LOGISTICS       , 0, 180, 100, 0)
        call SetTechUpgr(   UPG_ARISTOCRACY     , 0, 175, 150, 0)
        call SetTechUpgr(   UPG_ALCHEMY         , 0, 250, 200, 0)
        call SetTechUpgr(   UPG_BALLISTICS      , 0, 200, 50, 0)
        call SetTechUpgr(   UPG_ENGINEERING     , 100, 200, 0, 0)
        call SetTechUpgrEx( UPG_WOODCUTTING     , 0, 75, 120, 0, 0)
        call SetTechUpgrEx( UPG_WOODCUTTING     , 1, 150, 170, 0, 0)
        call SetTechUpgrEx( UPG_WOODCUTTING     , 2, 200, 240, 0, 0)
        call SetTechUpgrEx( UPG_STONE_MINING    , 0, 0, 100, 0, 50)
        call SetTechUpgrEx( UPG_STONE_MINING    , 1, 0, 190, 0, 100)
        call SetTechUpgrEx( UPG_GOLD_MINING     , 0, 100, 120, 0, 0)
        call SetTechUpgrEx( UPG_GOLD_MINING     , 1, 0, 200, 100, 0)
        call SetTechUpgrEx( UPG_FARM_PRODUCTION , 0, 50, 200, 0, 0)
        call SetTechUpgrEx( UPG_FARM_PRODUCTION , 1, 75, 250, 0, 0)
        call SetTechUpgrEx( UPG_FARM_PRODUCTION , 2, 100, 300, 0, 0)
        call SetTechUpgr(   UPG_WHEEL           , 75, 175, 0, 0)
        call SetTechUpgr(   UPG_ASTROLOGY       , 0, 0, 150, 0)
        call SetTechUpgr(   UPG_MYSTICISM       , 0, 0, 120, 0)
        call SetTechUpgr(   UPG_POLYTHEISM      , 0, 0, 120, 0)
        call SetTechUpgr(   UPG_FANATICISM      , 0, 0, 150, 0)
        call SetTechUpgr(   UPG_MONOTHEISM      , 0, 0, 350, 0)
        call SetTechUpgr(   UPG_AFTERLIFE       , 0, 0, 275, 0)
        call SetTechUpgr(   UPG_JIHAD           , 0, 0, 120, 0)
        call SetTechUpgr(   UPG_MARTYRDOM       , 0, 0, 600, 0)
        call SetTechUpgr(   UPG_MEDICINE        , 0, 0, 150, 0)
        call SetTechUpgrEx( UPG_AGE             , 0, 0, 500, 0, 0)
        call SetTechUpgrEx( UPG_AGE             , 1, 0, 800, 0, 0)
        call SetTechUpgrEx( UPG_AGE             , 2, 0, 1000, 800, 0)
    endfunction
Some upgrades is still missing from the list, but I'll make sure to add them soon.

Edit: All techs are added now (not on the current list)
 
Last edited:
Level 23
Joined
Nov 29, 2006
Messages
2,483
good question. I'm not sure who is going to make that feature and how yet, but it is not natively supported in wc3. Doing it 1 by 1 would kill everything about it, lol:p Let us counsel that with chilla killa
 
Level 7
Joined
Dec 4, 2009
Messages
175
Hey, are you guys going to be using attachments for the upgraded units or are you just making new units for every upgrade?

BTW: Eccho, whats the differance between woodcost and lumbercost, because thats what you have in your JASS Code?
 
Level 31
Joined
Apr 17, 2009
Messages
3,574
I was thinking about that, too, but I didn't find a solution, so I planned, that the player has to build one by one. But if you have ideas how to make it work, I would appreciate that.
For the rotation of the walls (horizontal ,_, or vertical I) I planned to make two different models and give the walls the ability to upgrade to the other rotation (for free of course)
 
Level 23
Joined
Nov 29, 2006
Messages
2,483
oh yes, it is a typo:p the last row is ofcourse rock/stone

As it would be for the walls. Chilla Killa, I dont think you need to create different animations for different facings(eg vertical and horizontal) It would be more smooth if we just let it expand in whatever area you want, not just vertically and horizontally. I made an example.

Edit: yeah if I thought right now :O
Edit2: well they can actually be in whatever size they want, but they should preferrable be scaled down to fit ~128 length or slightly more ingame to make it visually smooth. Ill send another example including some code or video which demonstrates the process
 

Attachments

  • thought.png
    thought.png
    1 MB · Views: 115
Last edited:
I have made Governmet Center's model with 1000 polies(Each horse with 108 polies). But I can't upload anything because our government doesn't want that the world see the movies of police and army killing people in the streets. I'm going to get an ADSL modem because I've heard that it can upload something if I use proxy programs and can't connect to internet for one or two weeks. Just tell me which buildings should I make during these week(s) and I'll make them.
 
Level 15
Joined
Aug 19, 2007
Messages
1,381
I have made Governmet Center's model with 1000 polies(Each horse with 108 polies). But I can't upload anything because our government doesn't want that the world see the movies of police and army killing people in the streets. I'm going to get an ADSL modem because I've heard that it can upload something if I use proxy programs and can't connect to internet for one or two weeks. Just tell me which buildings should I make during these week(s) and I'll make them.
, in which country do you live :O?
 
I've got a idea for walls.
Okay 1st you build the stand off wall (this my strategy need to use 128 pathing swuares.) Next you build a 2nd square from 1 - 5 sqaures away. Then run a trigger like this.
  • walls
  • Events
    • Events Generic player Event ( a player builds a building )
  • Conditions
    • Conditions Unit-type of built unit is( = to (wall))
  • Actions
    • Actions loop do (1 to 4)
after check every 90 degrees then if a wall is within 500 of that wall get the distance between the 2 set it as a variable divide it by 100 and loop it by the variable you made. After you set that up you create the loop basically create 2 variables length and Point (1 a point and the other integer or real) set it the degrees that it is = to like you built 1 west and another 1 west you would make the offset 100 west. after that you create wall at that point and set length ( length + 100 ) and after the loop set length back to 0 and you have a wall system

Edit( you could make the loop 360 and make it go +1 every time the loop happends but in age of empires it was a traditional 90 degrees )
 
Level 23
Joined
Nov 29, 2006
Messages
2,483
Yeah relax, I know how to do it:p There are some major differences however.
*Ill make it in jass/vjass
*Dividing by 128, probably, not 100.
*Not using points, I use coordinates
*100 again changed to 128.

Some things which really should be expanded...
*In Age of Empires one, you pay 5 stone for each "square" of wall you build. Thus it will only place wall segments until it reaches destination, or gets out of stone resource.
*It will probable be angulated, not 90degrees checking all the time. It will look better, and makes it less complicated.
*Each segment of wall should also be constructed by a worker (if we now are following the standards of age of empires 1). So, whenever a wall segment is created, it will only have just been placed, no construction time is set. it will be build when a worker builds it.

I understood your general concept, thank you. But I had it all figured out however =)
 
That sounds totally wrong. So what makes you to have the permission of using internet at all, but not uploading files?

I'm from Iran and we can't access most of sites without proxy applications . If some of the governmental offices didn't use internet, I think they wouldn't even let people to connect to internet. We can only access sites which have permission from the government. We can't access facebook, twitter, BBC, ect....

@chilla killa:OK. I'll make the academies and even the siegefactory.
 
Level 23
Joined
Nov 29, 2006
Messages
2,483
I have a question by the way. I assumed that the models for the buildings are separate, each for each race type and each for each age?

Is it possible, that in models you include all of the ages in one, and somewhat lets it play the next number of animation?

Also, don't forget that the structures should have attachments for the burning effects when they lose health.
 
Top