turn me 'on'

antaine

King
Joined
Aug 1, 2005
Messages
737
So, I'm trying to turn "on" (enable for human play) one of the minor civs in RFC (namely, the Celts). I know that I'll need to make some other changes in order to preserve a sense of balance (different start location, UHVs, etc), but for now I'm stuck on step one.

I know people have added new civs, rewritten old ones etc. If anyone can enlighten me with this bare minimum step I would appreciate it tremendously.

What files do I need to alter? Does the order of civs in any of the files matter? If so, what are the implications of changing the order on other files?

Anyone who's added or activated a civ, I'm interested in your input. Much thanks!

-Antaine
 
also, when asked in 2007 about activating the Byzantines, Rhye replied

Non playable civs such as Byzantium don't count as "new civs". New civs are Maya, Netherlands, Portugal + other 2.
Charlemagne isn't represented as himself as German leader: he's renamed Otto I

To make them fully playable some code should be edited to activate their stability counting (cos you know, minor civs have no one)

how do I tinker with that? I've taken a look at stability.py, but can't make heads or tails out of it enough to see what to do.
 
alright, I've tried to make the Celts team 5 (spawning between the Greeks and the Persians in RFC 3000 BC unlocked). I've reordered the lists and/or added the Celts after going through every file in the folder.

I'm getting a turn 0 "you have been defeated" for all civs now. I don't know what else I'm missing...

Can I not move the other civs in order to add another major, playable one? Do I really have to simply replace one of the civs in the mix now (swapping Celts and Ethopians or Mayans or somesuch)?
 
I really wish somebody here could help you. It seems that nobody has an answer to your questions, hence the lack of responses. Try asking this in the main Rhye's forum and see if you get better luck.
 
You cannot do this without changes to the C++ code. You need to familiarize yourself with both python and C++.

From My GamesBeyond the Sword\CivilizationIV.ini, you can enable debugging (open the file with Notepad or better yet, install TextPad), and the in My GamesBeyond the Sword\Logs you will find PythonErr files that will tell you why are having those problems. However, python editing alone will not be enough to make a civ playable, there is a lot of stuff in the C++ that needs to be changed.
 
can I do it with the xml and python by making the Carthaginians team 30 and the Celts team 6? This would make the Carths a minor civ that gives way to Byzantium in the late start version, I think. I know I'd have to go in and change all the .py files to swap all iCeltias for iCarthaginias and switch coordinates so the Celts spawn at 53,48 with corresponding core territory etc and the Carthaginians spawn in the right spot instead of northern Italy. Would that require C++ editing as well?
 
can I do it with the xml and python by making the Carthaginians team 30 and the Celts team 6? This would make the Carths a minor civ that gives way to Byzantium in the late start version, I think. I know I'd have to go in and change all the .py files to swap all iCeltias for iCarthaginias and switch coordinates so the Celts spawn at 53,48 with corresponding core territory etc and the Carthaginians spawn in the right spot instead of northern Italy. Would that require C++ editing as well?

You are basically proposing to rename the Carthaginians Celts and the Celts Carthaginians. This can be easily done, however, there will be some issues in gameplay.

1. Changing any spawn date needs C++ code. Basically, Celts have to spawn the exact date Carthage currently spawns.

2. Settlers maps are hard-coded in C++ and those affect stability quite a bit. Basically France is completely outside the Carthaginian core and thus you will suffer massive stability penalties for being outside of what is considered "your" core. This can be circumvented with some good Python coding, however, it will require very special treatment of the Celts.

3. Settlers maps affect AI behavior and without them AI Celtia will be no good (will have no idea where to settle).

4. There are productions/growth/commerce bonuses and penalties that exist in C++ only and cannot be changed from outside. This will make balancing tricky.

5. Most of the UP are in C++, but Carthage is done in Python. You will be able to "turn is off", however, you will have to replace that with another Python implementable power.

There are other issues such as city name maps and war maps. Also I believe the random spawn of Celtic units was done in Python, so will have to change that (you don't want random Carthaginian units spawning in France) and I am sure there other somewhat minor issues that I am forgetting here. Use the 90/10 rule, 90 of a job takes 90 percent of the time, the other 10 percent take another 90 percent of the time.
 
Yeah, that's pretty much what I'm doing, lol.

First I swapped all references, so they literally just switched roles. I've now got the Celts spawning where I want them, the Carths spawning where they should (I turned them "on" as a major civ, although they're not human playable. I just did the maps and stuff (including redefining core and normal areas). I'm working on UHVs now.

The Celts actually do predate the Romans (Greek references), so having them start a few turns before them is no big deal to me. I'm able to take care of the time descrepancy for the Carths by using self spawning cities (since they can't "birth" like a regular civ).

I even figured out how to let the Celts produce settlers (patting myself on the back there).

I'm not really done yet, but I testplayed a game until about 600 AD as the celts. I founded several cities and whatnot, and my stability was fine.

I'm assuming that the files that end in cpp are C++ (don't laugh, it took me a while), if so, I've been editing them as well as the xml and py files.
 
ps - The Celts were all about mercenaries from the time of the Romans all the way through to the Gallowglasses and Wild Geese in the modern age...I think the Carthaginian's UP will work just fine as-is
 
If you just edit a cpp file (yes it means C++), you are not actually changing anything in the game. You have to recompile the code into a new .dll file. You will have to read some tutorials since this involves installing compilers, editing Makefiles and other.

Glad you got the rest figured out.
 
oh....hm....know where I can get a mac C++ compiler?

Good question.

I don't think you can use any compiler. Technically gcc has versions for pretty much every OS out there, but I don't think it can compile the Civilization .dll without a lot of tweaking/work. For RFC:Europe I use MS Visual C++ 2005 with an old copy of XP under Virtual Box (my OS is Ubuntu Linux). I don't think MS has version for Mac, but you can always check.
 
I have parallels running XP, so I can run pc programs without a problem.

One difficulty I'm having, however, is that once I've installed it I can't find it, lol. It shows up under "add or remove software," but the file finder can't find it nor is it in the programs menu.

Still, if that's the toughest thing I have to deal with all day I've got it made ;-)
 
Top Bottom