Unique Civ-Specific Great People Names

Very small nitpick, but never the less...

Good idea, but I think you should keep philosophers' names as Scientists (as opposed to Prophets). Science after all is the product of Philosophy, and if you go back in history far enough (I am thinking Ancient Pre-Socratic Greece) you could not be a Scientist and NOT a Philosopher.

The first philosphers who were trying to form an "account of all things" came to realize that in order to do this, there would have to be logical standards for every argument of nature. These first philosphers did things such as giving the first evolutionary account of the species, and the first to assert that water was necessary for life on earth, among many other things.
 
i think that either of the Caesars should be in the gg section for Rome ex Julius concurred several provinces including Gual and England and Augustus one sevral major battles on land and sea which ended the civil war caused by Julius's death and that finally brought Egypt into Roman hands
 
Guys,
I'v just tested the mod for BtS 3.13 and great generals do not work. So they appear not specificly for civilization. For Russia I got Shingan which is native american great general.
Gaius, I really appreciate and love your mod. Do you have any news about fixing this great general issue?

Guys, Mexico, and one request: when you will update your great general fix.dll, please enable more then 18 civs! (As far as I understand it has to be done in the same dll file. So if it will not be enabled, I could not combine Civ_Specific mod with some other mods). I need 24 civs enabled, not more.
 
Guys,
I'v just tested the mod for BtS 3.13 and great generals do not work. So they appear not specificly for civilization. For Russia I got Shingan which is native american great general.
Gaius, I really appreciate and love your mod. Do you have any news about fixing this great general issue?

Guys, Mexico, and one request: when you will update your great general fix.dll, please enable more then 18 civs! (As far as I understand it has to be done in the same dll file. So if it will not be enabled, I could not combine Civ_Specific mod with some other mods). I need 24 civs enabled, not more.

Yes, you are right; there is no accompanying DLL in the file, which would fix this as per Mexico's solution. However, once we make the switch to Python, the extra DLL will not be necessary, so I have not bugged him about it.

And so we come to the issue of Python. Yes, yes, I know, I promised to have it done quite some time ago. In fact, I had a very nice program written up, but due to a foul-up, I have lost all my progress on it (temporarily, I hope). :mad:

I have been working on several other projects, which have all taken away time from this mod. Nonetheless, they are all mods for which this would be very useful, so I plan to start from scratch (if necessary :() and include it as a separate download here. Personally, I think my greatest contribution was not a program per se, but the lists, which were extraordinary time-consuming to create. So I will get around to it sooner or later, and I do apologize for any feathers my delays have ruffled. Judging from the number of downloads it is not nearly as important to the Civ community as my other projects, so I have put in time where it will do the most good. :D But I will be back...
 
Gaius, thank you very much. I fully understand your workload. Nobody blaims you. You really did fantastic job. I guess that this mod is more appreciated by people with historical background who really upset when Belisarius is borning in Japan or Kromvell in Rome. Majority of players probably do not pay attention on this. That is why mod is not so popular as others. But still please do not forget sometimes to finish this job for BtS!
 
Civ-Specific Great People 2.0

I've completely redone the naming system, converted it all to Python and added a new option for sequential or random name ordering, for those who might want to have chronological great people.

This new BtS mod contains nearly 3,000 names, a slight increase from last time but largely the same. Again, the naming convention is done completely through Python this time, though I've deleted the original names from Civ4UnitInfos.XML to accomplish this. (But no gameplay changes have been made.) This is a self-contained mod, so you do not need to download Mexico's great general fix or anything else.

Known issues: the way the mod works right now, if you reload a saved game it resets the list, so you might get duplicate great people. If you also start a new game without reloading the mod first, it will use the existing (truncated) list, so you'll get fewer people than you should. The latter is fairly easy to fix with a refresh upon the start of a new game, but I do not know how to fix the former without exporting some kind of list within each save file.

Notes to modmakers: the system simply renames the units when they are born, so all you will see in the event log is "Great X has been born in Y!" This temporarily solves the problem that NikNaks brought up about being able to figure out who your opponents are before you meet them, but in a less-than-ideal way. I plan to add custom event notifications along with a simple check to see if you have met the target civ in the future to make things more interesting. One of my favorite parts was seeing all the other civs' names.

Anyways, enjoy. :)

http://forums.civfanatics.com/./downloads.php?do=file&id=7844


EDIT: Oh, one last observation. I said this is a BtS version because I have included everything for all the new civs and the Great Spy unit. However, the way the Python is set up, you should be able to use it for Vanilla and Warlords as well, though I have not tested that. Just remember you will have to replace the included XML file with the appropriate Warlords or Vanilla Civ4UnitInfos.XML, and you'll need to delete the great people names, but that's it.
 
Thankyou, it looks great! :) However I have one concern... If I were to play a game into the industrial era (using the sequential name ordering) and then if I were to save the game, after loading it back would I be re-getting all the ancient great people again? That would be incredibly annoying :cringe:
 
I was under the impression thast this was dead but i guess its not.:goodjob:
 
Thankyou, it looks great! :) However I have one concern... If I were to play a game into the industrial era (using the sequential name ordering) and then if I were to save the game, after loading it back would I be re-getting all the ancient great people again? That would be incredibly annoying :cringe:

Yes, that is exactly what would happen. :( The only way I know to get around this would be to export a file of the used names, so the mod will know where to start when you reload... but this gets tricky. If you played with more than one game at a time, you would need to include something in each save to get around it, because one list wouldn't work for everything. Maybe this can be done with SDK, but it's beyond me at the moment (and modding the SDK was kind of what I wanted to avoid, because many people like to use this with other mods and recompiling makes it harder for the masses to use). Perhaps Rhye or NikNaks can make some suggestions...? :mischief:
 
You can specify in Python an exported list (like a text file), which the game could load when you reload the mod. This would fix the issue about resetting the index, but there would still be the problem of running multiple games simultaneously. Say I get Albert Einstein in one game that I am playing and Socrates in another. With one list, they'd both be excluded... unless you want to make a list for every saved game, but then it would seem much simpler to incorporate it directly into the save itself, so this would be sort of pointless.
 
I don't usually play multiple games at once but I agree a better fix (directly into the save?) would be better just in case. I don't know anything about python :( (the times I've tried it I always end up with no interface) so you'll have to fix that exported list thing :)

@ strategy - it's meant to do that :D so you can't tell who is getting the great person.
 
Quite right. It is meant not to pass through the event log, because you can immediately tell who your rivals are even if you have not met them yet. In a future version, I will add a check to see if you've already met them, and it will display a unique message for each person type. Right now you can still see their names by looking directly at the unit. :D
 
Great, fantastic idea. Just that I searched for our new project :)
I´m not programmer. How I can add new empire to the python, please? :please:
 
You will need to add a new portion to the civilizationNameHash in the Python naming file (CivSpecificGreatPeopleModNameUtils). It's a very long file, with something that looks like this:

Code:
"CIVILIZATION_AMERICA" :
{
"GP" : ("William Brewster", "Roger Williams", "William Penn", ...),
"GA" : ("Louis Armstrong", "Duke Ellington", "Miles Davis", ...),
"GS" : ("Albert Einstein", "Richard Feynman", "J. Robert Oppenheimer", ...),

...

},

All you need to do is to add a new entry for your own civilization. The name MUST match the way you have it defined in XML, however, so if you added CIVILIZATION_AUSTRALIA in Civ4CivilizationInfos, that is exactly how it must appear in this file.

I left the "default" tag at the end of the list to make it easier to copy. Remember that indentation is very important, so I recommend you download Python if you don't have it already - it's much easier to use than Notepad. Remember also to include the new unit types if you add new kinds of great people.

As an example, suppose I wanted to add a new civ with three new great people types. In the names hash, you'd put:

Code:
"CIVILIZATION_FAWLTY" :
{
"Manager" : ("Basil Fawlty", "Sybil Fawlty", ...),
"Staff" : ("Polly", "Chef", "Manuel from Barcelona", ...),
"Annoying Guests" : ("The Major", "The Ladies", "The Germans", ...),
},

and then below that, under the existing "if" statements, you'd add your new unit types:

Code:
if (infoUnit == gc.getInfoTypeForString("UNITCLASS_MANAGER")):
        strGPtype = "Manager"

if (infoUnit == gc.getInfoTypeForString("UNITCLASS_STAFF")):
        strGPtype = "Staff"

if (infoUnit == gc.getInfoTypeForString("UNITCLASS_ANNOYING_GUESTS")):
        strGPtype = "Annoying Guests"

:D
 
It is a great job that you did ! I've been waiting for this for a long time. :thumbsup:
Will there someday be a next step with era-specific GP ?? :love:
 
Top Bottom