Announcement

Collapse
No announcement yet.

The Ages Of Man

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • I've never played CTP before, but AOM looks great! Perhaps I will be buying it in December...

    Comment


    • There were cheap copies of ctp2 available on ebay.

      You can download AOM from Apolyton or get a disc and a 2nd hand ctp2 game from the AOM website.

      Comment


      • Some major developments on version 1.03 (Yin's update).



        I am confident the coordinated ai attack code (where the ai will use multiple stacks) is working, but I will tweak it a little more before release.

        In addition, I found a new way to designate a target for the allies of the human player, outside diplomacy code (which is sooooo hard). So now the human can have a working meaningful alliance with the ai, but I am planning some surprises.

        Comment


        • Pretty impressive stuff, Stan.

          That a relative amateur (no offense) can take an ancient game like CTP2 and tweak the AI to the point where it's SIGNIFICANTLY better than the AI in games released in late 2005.....well....that says something.
          To La Fayette, as fine a gentleman as ever trod the Halls of Apolyton

          From what I understand of that Civ game of yours, it's all about launching one's own spaceship before the others do. So this is no big news after all: my father just beat you all to the stars once more. - Philippe Baise

          Comment


          • I am allowing 10 days to tweak and test the final then everyone can have a Christmas present,

            "relative amateur " with help, refer to credits for AOM. But I do claim credit for the concept and most of the hard work as well as 2000 hours playesting.

            Comment


            • Hi stankarp,

              I accept you invitation on trying Age of Man. I have only heard great things about it.
              Last edited by Pedrunn; November 22, 2005, 14:36.
              "Kill a man and you are a murder.
              Kill thousands and you are a conquer.
              Kill all and you are a God!"
              -Jean Rostand

              Comment


              • Hi Pedrunn, I am honoured by your return and comment.

                I am emailing you direct to get your address so I can post you a complimentary copy as offerred earlier this year.

                If you have broadband, you can download from Apolyton. There is a revolving add at the top or bottom of this page that appears periodically.

                Comment


                • The download is the best option for me but I cant find it (the database is a link to your website). If I only someone could show me the link...
                  "Kill a man and you are a murder.
                  Kill thousands and you are a conquer.
                  Kill all and you are a God!"
                  -Jean Rostand

                  Comment


                  • Originally posted by Pedrunn
                    If I only someone could show me the link...
                    Try http://apolyton.net/dir/index.php?id...ts=5594&cat=28

                    Comment


                    • As everyone knows, I am only a dogged amateur with slic but I have a problem/question. I am very reluctant to remove anything from others code, especially experienced slicer's, but this one has me puzzled.

                      HandleEvent(EndTurn) 'FAI_set_AttackTarget' pre {
                      int_t i;
                      int_t j;
                      int_t num;
                      location_t tmpLoc;
                      city_t tmpCity;
                      int_t tmpDistance;
                      int_t minDistance;

                      if (IsHumanPlayer(player[0]) && FAI_FRENZY > 0 && FAI_INIT == 1000) {
                      FAI_HumanNumber = player[0];
                      minDistance = 10000;
                      if(player[0].cities > 0) {
                      for (i = 0; i <= FAI_MAXPLAYERS; i = i + 1) { // LOQ: set start value at 0 so Barbs can play too...
                      ***if(ArmyIsValid(FAI_FirstArmy[i])) {

                      I have marked the puzzling line ***. Am I right in saying this line is not required as this is an end turn event and no army has been identified or called. The same line is used in a frenzy begin turn event and I established by using checkers that it did not work as there is again, no army called or identified.

                      Thanks for any help.

                      Comment


                      • Originally posted by stankarp
                        As everyone knows, I am only a dogged amateur with slic but I have a problem/question. I am very reluctant to remove anything from others code, especially experienced slicer's, but this one has me puzzled.

                        HandleEvent(EndTurn) 'FAI_set_AttackTarget' pre {
                        int_t i;
                        int_t j;
                        int_t num;
                        location_t tmpLoc;
                        city_t tmpCity;
                        int_t tmpDistance;
                        int_t minDistance;

                        if (IsHumanPlayer(player[0]) && FAI_FRENZY > 0 && FAI_INIT == 1000) {
                        FAI_HumanNumber = player[0];
                        minDistance = 10000;
                        if(player[0].cities > 0) {
                        for (i = 0; i <= FAI_MAXPLAYERS; i = i + 1) { // LOQ: set start value at 0 so Barbs can play too...
                        ***if(ArmyIsValid(FAI_FirstArmy[i])) {

                        I have marked the puzzling line ***. Am I right in saying this line is not required as this is an end turn event and no army has been identified or called. The same line is used in a frenzy begin turn event and I established by using checkers that it did not work as there is again, no army called or identified.

                        Thanks for any help.
                        If you don't post what is the under the controll of the marked if statement then I don't know whether this is really necessary. I can't see what it it is supposed to do and whether it does make sense to do.

                        And by the way next time you should use the [CODE] and [/CODE] tags to enclose the code. Code without proper indention is not very readible.

                        -Martin
                        Last edited by Martin Gühmann; November 23, 2005, 21:21.
                        Civ2 military advisor: "No complaints, Sir!"

                        Comment


                        • Do you still get the second settler bug? IIRC, these FAI_FirstArmy[i]'s are global but either the first army or the second army was being initialized to the human player's second settler.

                          Comment


                          • Do you still get the second settler bug? IIRC, these FAI_FirstArmy[i]'s
                            No, never have. I recall many moons ago Locutus and I worked out a fix and I cannot even remember what it was now.

                            Code:
                            HandleEvent(EndTurn) 'FAI_set_AttackTarget' pre {
                            int_t		i;
                            int_t		j;
                            int_t		num;
                            location_t	tmpLoc;
                            city_t	tmpCity;
                            int_t		tmpDistance;
                            int_t		minDistance;
                            
                            	if (IsHumanPlayer(player[0]) && FAI_FRENZY > 0 && FAI_INIT == 1000) {
                            		FAI_HumanNumber = player[0];
                            		minDistance = 10000;
                            		if(player[0].cities > 0) {
                            			for (i = 0; i <= FAI_MAXPLAYERS; i = i + 1) {						// LOQ: set start value at 0 so Barbs can play too...
                            				if(ArmyIsValid(FAI_FirstArmy[i])) {	//############			
                            					for(j = 0; j < player[0].cities; j = j + 1) {
                            						GetCityByIndex(player[0], j, tmpCity);
                            						tmpDistance = Distance(tmpCity.location, FAI_FirstArmy[i].location);
                            						if (tmpDistance < minDistance && !IsUnderseaCity(tmpCity)) {
                            							if(IsContinentBiggerThan(tmpCity.location, tmpDistance) && IsContinentBiggerThan(FAI_FirstArmy[i].location, tmpDistance)) {
                            								//GetRandomNeighbor(tmpCity.location, tmpLoc);	// LOQ: let the AI move to nearest square (as opposed to random), take city if it's empty
                            								FAI_AttackTarget[i] = tmpCity.location;		// LOQ: idem
                            								minDistance = tmpDistance;
                            							}
                            						}
                            					}//############
                            				} else {	// if there's no valid FAI_FirstArmy, use 1st city as target point.
                            					GetCityByIndex(player[0], 0, tmpCity);
                            					//GetRandomNeighbor(tmpCity.location, tmpLoc);				// LOQ: let the AI move to nearest square (as opposed to random), take city if it's empty
                            					FAI_AttackTarget[i] = tmpCity.location;					// LOQ: idem
                            			           }
                            			}
                            		}
                            	}
                            }
                            Sorry, I could not recall how to insert code, was sure the code handlers used to be on the reply page.

                            Anyway, it was a general question. The FAI_FirstArmy[i] is already initialised at the start of the game. I would have thougt that as this is not a move unit / beginturnarmy type event, you would have to call something like GetarmybyIndex first?

                            So everything between where I marked //############ would not work?

                            Comment


                            • Thinking back now, I am sure we (Locutus and I) stuck an extra;

                              if (!isHumanPlayer(player[0]) ){

                              in somewhere. I had added one which he though was unecessary, when he removed it, the bug appeared so by consent we put it back.

                              I am over 50 now, memory is not as good as it used to be

                              Comment


                              • Originally posted by stankarp
                                Anyway, it was a general question. The FAI_FirstArmy[i] is already initialised at the start of the game. I would have thougt that as this is not a move unit / beginturnarmy type event, you would have to call something like GetarmybyIndex first?
                                You are right FAI_FirstArmy[i] is initialized somewhere else. And it is not a build in array and it is global. Therefore it is valid, except the army was killed during the turn. So from that point of view the code should work. And actually it just selects the target for the frenzied armies. Well maybe the code contains some other problems but not this.

                                -Martin
                                Civ2 military advisor: "No complaints, Sir!"

                                Comment

                                Working...
                                X