 |
|  |
 |
|
Kull

|
|
El Paso, TX USA
Mar 1999 time: 22:13
|
|
Any designer who builds scenarios for ToT has GOT to examine Angelo Scotto's new Event Creation tool. I spent a week editing the Instruction Manual, and have to say that this tool absolutely blows me away! CSPL functions by editing Civ2 game files while they are running in computer memory. This allows scenario designers to create entire CATEGORIES of events that simply aren't available in Civ2! The download file also contains a large manual which functions as a step-by-step tutorial. To give you an idea of CSPL's capabilities, here's some of the examples from the manual:
1) (Ch5) WorldLink: In this example we will link two ToT maps east-west. This effect is impossible to obtain normally, but with CSPL it becomes quite easy.
2) (Ch6) "Colonization"-type Improvements: This early Sid Meier game allows Improvements present in a city to determine which units can or cannot be built in that city. For example, an artillery unit cannot be built in a city if a Barracks is not present there. In Civ2 only techs determine which unit can be built and so an event such as the one described above is simply impossible to obtain with ToT. This effect IS possible with CSPL and we'll code exactly this event.
3) (Ch7) Submissive Civs: With Civ2:MGE the AI became much more aggressive, making it difficult to build scenarios which depend upon long term alliances. In this example we will make alliances between civs more solid by changing Attitude values directly in memory. Let's say we are creating a scenario based on WWII and we want to implement two civs, English and Americans. With CSPL they can have normal contact and diplomacy ennabled and STILL keep their alliance for the whole game.
4) (Ch8) The Moving Wonder: One of the annoyances about Wonders is that they're stuck in the cities in which they're built. In some scenarios it would be interesting to move wonders from city to city, almost as if they were units. Imagine a Special King unit which acts as a wonder when present in a particular city (maybe as Shakespeare's Theatre to calm down the citizenry or as King Richard's Crusade to boost production in the city) or an Einstein unit which acts as a moving Copernicus observatory. This is exactly what CSPL will do in this example.
5) (Ch9) SwitchCiv: This effect can be used to simulate civil wars in which the player now controls a new faction, or you can use this effect in multi-protagonist scenarios (play the first half with one civ, the second half with another), and a lot of other interesting effects (such as scenarios designed with companies instead of civs where the player is hired first by one company and then by another, etc). In the following example let's have the player start with the white civ and at turn 10 the player controlled civ will become the green one.
6) (Ch10) Miner Unit: Imagine having a CSPL program which changes a tile to a special terrain type (Mine) which was not used on the map at the start. Imagine also a special unit, the Miner, and a CSPL coded event of this type: "IF Miner is on Mine THEN Send number of Money/Shields/Food to Miner HomeCity". Obviously, controlling Mines with Miners in this way would be vital for each player (although it's doubtful the AI would be able to "learn" how to do this). Miners should send resources to the HomeCity only once per turn.
7) (Ch11) Unit "Level Ups": In Colonization, Indians who were able to defeat European soldiers could seize their rifles (or horses), thus changing the Indian unit into a more powerful one (natives+guns).
There are a lot of situations in Civ2 where similar functionality would be very useful (in sci-fi or fantasy scenarios for example, apart from the historical example given above). We could also imagine a hierarchy of levels: Starting from level0, units will battle against other units gaining sometimes (for each 10 units killed or something similar) a level advance and thus a change to their unit type. Or you can use the exact opposite. If after a battle the winner unit has a health bar in the red, this means it sustained too much damage and it is then transformed into a weaker unit type. Both effects (and variations thereof) are possible with CSPL.
8) (Ch12) Specialized Artillery: I know, ToT already has artillery and howitzer units, but our artillery unit will definitely be more interesting. Imagine having an artillery unit which is able to create a shell unit (a missile) when the player presses a key. Obviously, to avoid players creating infinite shells in the same turn, we need to implement a rule. Let's say that each time an artillery unit "fires", it's health bar goes down by 1/3. When it is under 50% (let's say), we cannot fire but we have to wait until the health bar goes over 50%. OK, this is exactly what we're going to implement.
The examples above are interesting, some even astounding, but it's just the tip of the iceberg. Almost ANY kind of event you can conceive of CAN be created using CSPL! As I told Angelo, "This isn't a tool to manipulate Civ2....it's a whole new game"!
For a limited time only, the new improved CSPL (with edited manual and library bug fixes) is available exclusively from the Ancient Empires web site! (At least until other web site owners grab it and post it!) You'll find it on the AE Tools Page. Enjoy!
|
|
|  |
 |
|  |
 |
|  |
 |
|
Kull

|
|
El Paso, TX USA
Mar 1999 time: 22:13
|
|
Darth: Your Kyokujitsu maps do contain East-West map links, but you have to admit it doesn't look "normal"! CSPL allows you to create a seamless transition from one map to the next without having to jump through portals. In that respect it's at least visually superior. One area in which CSPL is probably INFERIOR with respect to such linkages, is AI cognizance. Humans will know that sailing/walking/flying to the map edge will automatically send you on to the next one, but I suspect the AI would never figure this out.
Xin Yu: Are you sure that capability doesn't already exist? Remember, the examples cited above are just the tip of the iceberg.....mere hints at what's possible for those who use the tool to its fullest.
St.Leo: Don't hold your breath! Angelo is pretty much burnt out from the effort already expended on CSPL, and even upgrades to the ToT version are probably not going to happen anytime soon.
However, there MAY be hope for FW scenario creators: Most of Angelo's work was based on the information gleaned from Allard's Hex Editing document. Ipsofacto, that means CSPL is probably 98% compliant with Fantastic Worlds already! Sooooo, if there are any C++ geeks out there who'd like to perform a HUGE service for the Civ2 community, please take a look at CSPL and see if you can make it FW compatible. If you want your name in the "Thank You" section of a hundred readmes, I can't think of a better way to get it there!!
|
|
|  |
 |
|  |
 |
|
Angelo Scotto
|
|
Milan, Italy
Oct 1999 time: 05:13
|
|
Xin Yu: Great idea! like i said, the new version will have full access to city, civ & unit section, i forgot something?
BTW Xin Yu, in another thread i saw you're realizing a program similar to CSPL (able to access Civ2 memory while loaded) have you found a way to detect if city screen is opened or closed?
A last thing, it's not true that you can't say if a unit has been moved or not , the MoveLost parameter represent the quantity of move points lost by the unit in current turn (i took it directly from Tot memory), so if the unit has been moved this parameter will be positive elsewhere it will be 0 (and this means that the unit can do paradrop, can be healed and so on)
St Leo, JPetroski & Jimmywax: I don't want to implement CSPL for Tot (as Kull said i need relax ) but (again as Kull said) CSPL is heavily based on Allard's Hex Editing document, probably you'll need to find location of structures in Civ2 memory (they'll be different from Tot) and change a bit of other things and then you'll have CSPL for FW.
Xin Yu, are you interested? (BTW SouceCode is a real mess with a lot of comments in italian, so i don't think it can be really useful, maybe if i'll find the time to clean up a bit the code...)
Sorry for the CSPL.res problem, it's a fault of mine, i forgot to add it to the package.
Angelo
|
|
|  |
 |
|
Xin Yu
|
 |
Emeryville, CA, USA
Jan 1970 time: 21:13
|
|
quote: Originally posted by Angelo Scotto
BTW Xin Yu, in another thread i saw you're realizing a program similar to CSPL (able to access Civ2 memory while loaded) have you found a way to detect if city screen is opened or closed?
A last thing, it's not true that you can't say if a unit has been moved or not , the MoveLost parameter represent the quantity of move points lost by the unit in current turn (i took it directly from Tot memory), so if the unit has been moved this parameter will be positive elsewhere it will be 0 (and this means that the unit can do paradrop, can be healed and so on)
|
Angelo:
How to find out whether a city window is open:
When a city window is open, search for 'City of ...' (the string on the title of the window) and find the address. Then closed the window and that string will change. So just check the address to see if it starts with 'City of' then you'll know. It is not a perfect method, since a) some scenarios will change labels and not use 'city' as city's names; b) the address may change from game to game -- I have only tested a couple of games so I'm not sure the address will keep the same. However, at least I'm one step closer to find the true address for the city window.
Here's what I vaguely remembered from a past experience, it may not be true:
Have you tried moving a settler several steps via railroad then to a mountain square? The settler may fail to enter that square. Which means, there is a flag for unit moved even no moving points are lost.
For changing CSPL to FW:
I don't have FW. But I can try MPE. I use Microsoft Visual C++ for programming. If you use the same software then we can cooperate. To me, it's better to work as a team then try everything by myself.
Cheers.
|
|
|  |
 |
|  |
 |
|
Angelo Scotto
|
|
Milan, Italy
Oct 1999 time: 05:13
|
|
Henrik:
Unfortunately, as StLeo said, i see few chances to convert CSPL to Mac.
CSPL was build under Windows and uses heavily native Win32 code, even if someone will be able to convert the library under MAC i think that CSPL user-made programs will use always some Win32 specific function.
Xin Yu:
I usually code in VC++ but CSPL was realized in Borland C++, i think you should keep that language 'cause it's free.
I would like to help you but, as mercator can tell you, i'm not very good in team programming, plus in this period i'm working on other projects.
Anyway, if you don't mind to wait a couple of month i accept.
Greetings,
Angelo
|
|
|  |
 |
|  |
All times are GMT. The time now is 05:13. Apolyton Time is 00:13. |
top of page
|
| archivepost |
|
Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
|
HTML code is ON
vB code is ON
Smilies are ON
[IMG] code is ON
|
|
|
|
|
|