| 
 
	
	| 
	
	
		|  November 7, 2002, 05:38 | #1 |  
	| Emperor 
				 
				
					Local Time: 20:35 Local Date: November 1, 2010 Join Date: Dec 2000 
					Posts: 3,944
				        | 
				What Govt Am I? THE SOLUTION!
			 
			
			Yep, you modders read it right.  I have the solution to finding out a players (Human or AI) government attached to this very thread.    WARNING! 
This modification will NOT run by itself!  This is a modders resource!  Of course, if you were to add it to the default game, it will work.
Concept: 
Okay.  Here I was just quietly fixing Citrix profiles, when it suddenly hit me that a Cleric and Fascist is only built by certain governments.  Then I remembered that it's possible to check what's in the build queue.  So by putting two and two together, an idea formed........    
1. Create units specific to one government. 
2. Put that unit in the build queue. 
3. Check if that unit is in the build queue. 
4. If it is, then logically the player is in that government.
 
Now to find a unit which is in the game all the time....... a settler is available from turn 0, but is obsoleted by the urban planner.  But who would build a settler over an urban planner?  Not even the vanilla AI.      So I figured, add a unit, call it something like "DONT BUILD ME AS I DISAPPEAR EVERY TURN!", and voila.  I should be able to extract what government someone is in be checking what govt-specific unit I can build.    Installing: 
1. Put the SLIC file in the usual place, and enable it through script.slc. 
2. Add what's contained in units.txt to the real units.txt (my file only contains the changed values). 
3. Add names for each unit in gl_str.txt. 
4. And away we go!  No need for uniticon.txt, newsprite.txt or any other file to be modified.    How to use: 
The variable GOVT_WhatGovtAmI[player] contains the integar which correlates to the GovernmentDB index (hence why the array is setup in govern.txt order).  Just check the value of that variable, and you have your government!
Bugs: 
The bane of a modder....... 
1. The unit will actually stay in the build queue.  No matter where I put KillUnitFromBuildQueue, it only worked from HandleEvent(EndTurn).  Maybe if we give the units names like "DONT BUILD ME!" or something, and definitely not put it in unitbuildlists.txt for the AI.    
2. Because of the above bug, if you have nothing in the build queue, the production will accumulate and you'll eventually be able to build one of the temp units (not good).  I'd say a simple CreateUnit check to see if one's built, and replace it with a standard settler if one actually is built will do nicely here.     
This is definitely a huge step for us modders.      SOOOOOOOOOOOOOOOOO much can be done with knowing what Government someone is in.
 
EDIT: Clarification - The temp unit only stays in the build queue till the EndTurn event is called.  The KillUnitFromBuildQueue command works from there.  So as soon as you hit the "End Turn" button, the temp unit disappears.
		
				 Last edited by Dale; November 7, 2002 at 05:49.
 |  
	|   |  |  |  
	| 
	
	
		|  November 7, 2002, 05:39 | #2 |  
	| Emperor 
				 
				
					Local Time: 20:35 Local Date: November 1, 2010 Join Date: Dec 2000 
					Posts: 3,944
				        | 
			
			The file.....................
 EDIT: Removed attachment to save on confusion.
 
				 Last edited by Dale; November 8, 2002 at 17:18.
 |  
	|   |  |  |  
	| 
	
	
		|  November 7, 2002, 06:31 | #3 |  
	| Prince 
				 
				
					Local Time: 11:35 Local Date: November 1, 2010 Join Date: Dec 2000 Location: in perpetuity 
					Posts: 4,962
				        | 
			
			Genius!      
				__________________Concrete, Abstract, or Squoingy?
"I don't believe in giving scripting languages because the only additional power they give users is the power to create bugs."  - Mike Breitkreutz, Firaxis
			 |  
	|   |  |  |  
	| 
	
	
		|  November 7, 2002, 07:07 | #4 |  
	| Prince 
				 
				
					Local Time: 10:35 Local Date: November 1, 2010 Join Date: Apr 2002 Location: England 
					Posts: 310
				        |  |  
	|   |  |  |  
	| 
	
	
		|  November 7, 2002, 08:06 | #5 |  
	| Prince 
				 
				
					Local Time: 11:35 Local Date: November 1, 2010 Join Date: Jul 2002 Location: Great Britain 
					Posts: 684
				        | 
			
			Does this mean the idea i mentioned long ago about governments can be implemented ??Here   
EDIT: 
A quote from the post
 
quote:
 
Originally posted by Pedrunn  
But if we are gotng to implement this how do we know wich gov the player has? 
 
 
Ah yes. This is not possible.
Posted by Immortal Wombat 
				__________________Oxygen should be considered a drug
Tiberian Sun Retro 
My Mod for Tiberian Sun Webmaster  of
http://www.tiberiumsun.com |  
	|   |  |  |  
	| 
	
	
		|  November 7, 2002, 11:55 | #6 |  
	| Prince 
				 
				
					Local Time: 11:35 Local Date: November 1, 2010 Join Date: Dec 2000 Location: in perpetuity 
					Posts: 4,962
				        | 
			
			oops...    
				__________________Concrete, Abstract, or Squoingy?
"I don't believe in giving scripting languages because the only additional power they give users is the power to create bugs."  - Mike Breitkreutz, Firaxis
			 |  
	|   |  |  |  
	| 
	
	
		|  November 7, 2002, 15:31 | #7 |  
	| Emperor 
				 
				
					Local Time: 11:35 Local Date: November 1, 2010 Join Date: Jul 2001 Location: England 
					Posts: 3,826
				        | 
			
			A truly inspired workaround   .  It seems there's not much we can't do if we think about it long enough.
		 |  
	|   |  |  |  
	| 
	
	
		|  November 8, 2002, 01:20 | #8 |  
	| Emperor 
				 
				
					Local Time: 20:35 Local Date: November 1, 2010 Join Date: Dec 2000 
					Posts: 3,944
				        | 
			
			I'm sure a few of you know I've been looking at this problem for almost 2 years now.  Remember for the first diplomod I wanted same-government diplomatic bonuses.      And that was Jan 01!!!!
		 |  
	|   |  |  |  
	| 
	
	
		|  November 8, 2002, 01:40 | #9 |  
	| Emperor 
				 
				
					Local Time: 20:35 Local Date: November 1, 2010 Join Date: Dec 2000 
					Posts: 3,944
				        | 
			
			
	
 
	| Quote: |  
	| Originally posted by J Bytheway A truly inspired workaround
  .  It seems there's not much we can't do if we think about it long enough. |  
	
 
Does this put me in the ranks of St Swithin?     
More workarounds than you can shake a lemur poo at!
		 |  
	|   |  |  |  
	| 
	
	
		|  November 8, 2002, 01:48 | #10 |  
	| Emperor 
				 
				
					Local Time: 20:35 Local Date: November 1, 2010 Join Date: Dec 2000 
					Posts: 3,944
				        | 
			
			
	
 
	| Quote: |  
	| Originally posted by SMIFFGIG Does this mean the idea i mentioned long ago about governments can be implemented ??
 
 Here
 
 
   |  
	
 
Yeah I suppose it could, but I agree with Locutus that it's not realistic, unless you use it as a diplomatic bonus, not an absolute like you suggested.  I mean come on!  5 years ago Australia was flirting with China for an alliance!
		 |  
	|   |  |  |  
	| 
	
	
		|  November 8, 2002, 09:30 | #11 |  
	| Emperor 
				 
				
					Local Time: 20:35 Local Date: November 1, 2010 Join Date: Dec 2000 
					Posts: 3,944
				        | 
				SLIC Update!  Version 0.2
			 
			
			Here's an updated SLIC file for the modders.  It fixes all bugs found thus far, including the ones mentioned above.     
- So you will no longer accumulate production if the temp unit is the only thing in your capital's build queue. 
- The temp unit will no longer show in the player's turn in the build queue (but will still be selectable from the list).  The temp unit will actually be in the build queue during everyone else's turn.  But that's irrelevant as far as I can see. 
- The government you are in is now updated on the turn you change government, instead of the next turn as previous.  IE: You click "Enact" on a government, and when you hit "End Turn" the variable updates to "Anarchy".
 
This is pretty much finished/fixed and working properly now.     
EDIT: Deleted attachment to save on confusion.
		
				 Last edited by Dale; November 8, 2002 at 17:19.
 |  
	|   |  |  |  
	| 
	
	
		|  November 8, 2002, 09:47 | #12 |  
	| Prince 
				 
				
					Local Time: 22:35 Local Date: November 1, 2010 Join Date: Mar 2002 Location: ATM Hawera NZ 
					Posts: 616
				        | 
				Flott!!!!
			 
			
			 
Wonderful
		  
				__________________When it all comes to it, life is nothing more than saltfish - Salka Valka
 |  
	|   |  |  |  
	| 
	
	
		|  November 8, 2002, 16:44 | #13 |  
	| Emperor 
				 
				
					Local Time: 20:35 Local Date: November 1, 2010 Join Date: Dec 2000 
					Posts: 3,944
				        | 
				Version 0.3
			 
			
			Okay, one last update v0.3: 
- I've made it easier to Mod.
What this Mod does: 
This Mod is a project I've been trying to get working for almost 2 years.  It finds out and stores what Govt everyone is in for use in other scripts.  This script is intended for other Modders to help them in their projects.  Please leave the header of this script with the code.    How to add this to a Mod? 
1. Put this SLIC in the usual place and add to script.slc 
2. Create temp units in Units.txt for every government in the Mod, remembering to use the "GovernmentType" flag to limit each unit to a seperate government (IE: like the Cleric is).  These units MUST be one after the other and in GovernmentDB order! 
3. Open this SLIC and modify the following: 
 - In 'GOVT_SetupArrays' setup the GOVT_GovtUnits array with the names of every temp unit. 
 - In 'GOVT_SetupArrays' change the variable GOVT_FirstUnitIndex to the UnitDB index of the first temp unit.  In the vanilla game this is 72 if you put the temp units after all the others. 
4. In 'gl_str.txt' add names for these temp units (I would use something like "Govt Check Unit"). 
5. When referencing the Govt variable, check GOVT_WhatGovtAmI[playerNum] to get the GovernmentDB index (IE: If in Tyranny in vanilla game you get 10).
 
Any comments let me know.  Hope this helps expand people's Mods.  This will be VERY useful for the Dark Ages in Ages of Man!     
EDIT: Added to the directory in Modification\Text and Slics.
		
				 Last edited by Dale; November 8, 2002 at 16:52.
 |  
	|   |  |  |  
	| 
	
	
		|  December 19, 2002, 09:59 | #14 |  
	| King 
				 
				
					Local Time: 07:35 Local Date: November 1, 2010 Join Date: Jul 2001 Location: of Natal, Brazil 
					Posts: 2,555
				        | 
			
			Are you sure BuildUnit(city_t, int_t) does work as a funtion?
 I tested it as a event handler and it didnt!
  
				__________________"Kill a man and you are a murder.
 Kill thousands and you are a conquer.
 Kill all and you are a God!"
 -Jean Rostand
 |  
	|   |  |  |  
	| 
	
	
		|  December 19, 2002, 17:34 | #15 |  
	| Emperor 
				 
				
					Local Time: 20:35 Local Date: November 1, 2010 Join Date: Dec 2000 
					Posts: 3,944
				        | 
			
			
	
 
	| Quote: |  
	| Originally posted by Pedrunn Are you sure BuildUnit(city_t, int_t) does work as a funtion?
 
 I tested it as a event handler and it didnt!
 |  
	
 
Yep.      I tested extensively.
		 |  
	|   |  |  |  
	| 
	
	
		|  December 19, 2002, 18:01 | #16 |  
	| King 
				 
				
					Local Time: 07:35 Local Date: November 1, 2010 Join Date: Jul 2001 Location: of Natal, Brazil 
					Posts: 2,555
				        | 
			
			  
That really is funny. But nice to hear that since i couldnt get the function AddUnitToBuildList(city, unittype) to wortk either. The BuildUnit(city_t, int_t) will be the perfect replacement to my plans.     
				__________________"Kill a man and you are a murder.
 Kill thousands and you are a conquer.
 Kill all and you are a God!"
 -Jean Rostand
 |  
	|   |  |  |  
	| 
	
	
		|  December 19, 2002, 21:43 | #17 |  
	| King 
				 
				
					Local Time: 03:35 Local Date: November 1, 2010 Join Date: Jul 2002 Location: Berkeley 
					Posts: 1,375
				        | 
			
			so many updates    |  
	|   |  |  |  
	| 
	
	
		|  December 22, 2002, 18:57 | #18 |  
	| Super Moderator 
				 
				
					Local Time: 12:35 Local Date: November 1, 2010 Join Date: Mar 2001 Location: Tübingen, Germany 
					Posts: 6,206
				        | 
			
			I just took a look into the directory and find this file there, but actual Locutus I thought Dale made this file and not you.
 -Martin
  
				__________________Civ2 military advisor: "No complaints, Sir!"
 |  
	|   |  |  |  
	| 
	
	
		|  December 23, 2002, 02:39 | #19 |  
	| Emperor 
				 
				
					Local Time: 20:35 Local Date: November 1, 2010 Join Date: Dec 2000 
					Posts: 3,944
				        | 
			
			Yeah!  That's my file!  :doitnow:
		 |  
	|   |  |  |  
	| 
	
	
		|  May 22, 2003, 13:17 | #20 |  
	| Warlord 
				 
				
					Local Time: 12:35 Local Date: November 1, 2010 Join Date: Apr 2003 Location: Vienna, proud home of bureaucracy 
					Posts: 252
				        | 
			
			Hi everybody! 
As I am working on my own humble MOD, in which governements should be more important in some aspects, I am very interested in the „SLICability“ of government-types. I read this thread & SLIC, also Martin’s “getting the government by comparing GovernmentDB-entries”, finally I recurred to the “placeholder”-lines in IW’s “AI-superpowers-script”:
 
	
 
	| PHP Code: |  
	| 
     if(player[0].govttype  == GovernmentDB(GOVERNMENT_ANARCHY)){
…;
 }
 
 |  
	
 
I understood that player.govttype contains a string. If I compare the above lines with the way you may check unit.type I presume that
 
SomeDB(DATABASE_ITEM)
 
always returns the database-index (integer) of that item – as for unit.type you may use
 
either or unit.type == UnitDB(UNIT_SOMEUNIT)
 
So IMHO the above govttype-example doesen’t work because it compares some string with the database-index of GOVERNMENT_ANARCHY rather than the string ‘GOVERNMENT_ANARCHY’. The obvious thing for me would be trying something like
 
	
 
	| PHP Code: |  
	| 
     if(player[0].govttype  == ‘GOVERNMENT_ANARCHY’){
…;
 }
 
 |  
	
 
instead. Alternatively – if the “string” mentioned in the documentation is NOT the database-string – I could think of the “string” from gl_str.txt (if it was meant to be used in messages rather than functions), unfortunately I can’t think of any other “string” in this context.
 
Obviously I have to admit that I haven’t tested that at all – taking into consideration that most likely someone in this forum would explain to me in five words that my ‘idea’ is merely useless and what the heck am I thinking why the whole experienced community is researching some more advanced workarounds for months …. ????
 
BUT after some hesitating I just had to post this before messing around for some hours or days – thank you for your patience!
		 |  
	|   |  |  |  
	| 
	
	
		|  May 22, 2003, 13:52 | #21 |  
	| Super Moderator 
				 
				
					Local Time: 12:35 Local Date: November 1, 2010 Join Date: Mar 2001 Location: Tübingen, Germany 
					Posts: 6,206
				        | 
			
			So why don't you test it on your own, BureauBert. Well in this case I tested it, and it does not work, I did not test the a String from the gl_str.txt, I doubt that this would work. And the disadvantage of this method would be that you have to modify the slic code for every language version of CTP2, so it is not a good idea. Actual noone got the idea to make it like this, because there is a not working StringCompare function, so why is there such a function if it would be so easy.    Well it could have worked...
 
-Martin
		 
				__________________Civ2 military advisor: "No complaints, Sir!"
 |  
	|   |  |  |  
	| 
	
	
		|  May 22, 2003, 18:35 | #22 |  
	| Prince 
				 
				
					Local Time: 11:35 Local Date: November 1, 2010 Join Date: Dec 2000 Location: in perpetuity 
					Posts: 4,962
				        | 
			
			Nah, I tested both ways, using GOVERNMENT_* and the string from gl_str.txt, eg. "Monarchy", neither method even loads in the game.
		  
				__________________Concrete, Abstract, or Squoingy?
"I don't believe in giving scripting languages because the only additional power they give users is the power to create bugs."  - Mike Breitkreutz, Firaxis
			 |  
	|   |  |  |  
	| 
	
	
		|  May 22, 2003, 18:53 | #23 |  
	| Emperor 
				 
				
					Local Time: 10:35 Local Date: November 1, 2010 Join Date: Jan 2002 Location: UK 
					Posts: 3,272
				        | 
			
			   this is really usefull, it can be used in loads of ways to help keep the AI's game up to pace.......Dale i'm glad this has stayed in your mind for the last two years! Hey i'm glad you are still around to think on CTP2    
				__________________ 
				'The very basis of the liberal idea – the belief of individual freedom is what causes the chaos' - William Kristol, son of the founder of neo-conservitivism, talking about neo-con ideology and its agenda for you.info here . prove me wrong.
 
Bush's Republican=Neo-con for all intent and purpose. be afraid.
			 |  
	|   |  |  |  
	| 
	
	
		|  May 24, 2003, 11:37 | #24 |  
	| Super Moderator 
				 
				
					Local Time: 12:35 Local Date: November 1, 2010 Join Date: Mar 2001 Location: Tübingen, Germany 
					Posts: 6,206
				        | 
			
			
	
 
	| Quote: |  
	| Originally posted by child of Thor 
  this is really usefull, it can be used in loads of ways to help keep the AI's game up to pace.......Dale i'm glad this has stayed in your mind for the last two years! Hey i'm glad you are still around to think on CTP2   |  
	
 
Well I rather use my way, so I only have to modify some governments slightly instead of adding some units.
 
-Martin
		  
				__________________Civ2 military advisor: "No complaints, Sir!"
 |  
	|   |  |  |  
	| 
 
 
 
	| 
	|  Posting 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 
 |  |  |  
 
 All times are GMT -4. The time now is 06:35. 
 |  
 
	
	
		
	
	
 |