Thread Tools
Old November 20, 2000, 16:51   #1
ajbera
Prince
 
ajbera's Avatar
 
Local Time: 09:41
Local Date: October 31, 2010
Join Date: Apr 1999
Location: of the Cookieville Minimum Security Orphanarium
Posts: 428
Sabotage!
One of the things I miss most (from Civ2) is the diplomat/spy's ability to perform acts of sabotage. Is there any way this can be implemented via SLIC? The option to destroy a city improvement, random or targeted, always costing gold and having a random chance of success depending upon the happiness of the targeted city? Gold amount also varies with city happiness, of course.
In a similar vein, how about targeted bombings by aircraft? These days we can destroy chosen structures in a city with a reasonable degree of accuracy. Can this be modeled in CtP2 via SLIC, either in a new unit or an ability that becomes available to a regular bomber after discovering a particular tech? The city may have to be pre-investigated, but that's okay. Send in the spy, have him do recon, then have your fleet of bombers take out the enemy's cathedral/TV station/whatever.
Just an idea.
ajbera is offline  
Old November 20, 2000, 17:43   #2
Mad-Kat
Chieftain
 
Local Time: 09:41
Local Date: October 31, 2010
Join Date: Apr 1999
Location: Camarillo, CA, USA
Posts: 72
Good idea! I miss that spy tactic also.
Mad-Kat is offline  
Old November 20, 2000, 22:00   #3
Mr Ogre
Warlord
 
Local Time: 09:41
Local Date: October 31, 2010
Join Date: Dec 1969
Location: Azeroth
Posts: 147
I believe the only way you can remove a building from a city via SLIC is with the SellBuilding event. I can't think of any way to destroy a building from a script otherwise, unfortunately. The SellBuilding event has two problems:

1) it'll give the player who owns the city gold for the building (which can then be removed with AddGold(-sellprice))

2) You can only sell a building once per turn per city, so if you use this, you'd only be able to sabotage one building per turn per city.

I realize the documentation on SLIC2 isn't available yet, so taking this out of context probably doesn't help much, but the syntax for adding a sell building event in a script is:

Event:SellBuilding(city, buildingDBIndex);

I'm also not sure how you'd go about asking them what building they want to destroy, SLIC isn't so hot for presenting a whole bunch of options. But maybe someone can think up something clever.
Mr Ogre is offline  
Old November 20, 2000, 23:30   #4
TheLimey
Prince
 
Local Time: 09:41
Local Date: October 31, 2010
Join Date: May 2000
Posts: 384
I'm sorry to hear, MrOgre... sounds like a good candidate for an additional SLIC command in a patch. I might be wrong but it doesn't sound too complex to implement. I can think of a million uses for a create and destroy improvement/wonder statement, in scenario design.

I think thats a pretty serious ommission.
TheLimey is offline  
Old November 21, 2000, 00:11   #5
Mr Ogre
Warlord
 
Local Time: 09:41
Local Date: October 31, 2010
Join Date: Dec 1969
Location: Azeroth
Posts: 147
Creating them can be done, that's no problem.

And, in fact, destroying all buildings in a city is possible. You'd have to modify the percentage on the nano-infect order to be 100% (so you'd probably want to remove nano-infect as an order) and generate a NanoInfection event for the city.

Then, recreate all the buildings you didn't want to destroy.

So, I guess I was wrong, maybe you can do it, it's just a bit convoluted.

I don't have a trick for removing a wonder, but I do have an alternative - since wonders are unique in the world, and can have advances which obsolete them - just add an advance that can't be gotten any other way, then give that advance to the player that owns the wonder you want to "remove". It won't remove the wonder, but it will turn off its effects. Just as good .

[This message has been edited by Mr Ogre (edited November 20, 2000).]
Mr Ogre is offline  
Old November 21, 2000, 00:13   #6
DarthVeda
Emperor
 
DarthVeda's Avatar
 
Local Time: 05:41
Local Date: October 31, 2010
Join Date: Dec 1969
Location: Baltimore, MD
Posts: 4,325
oh god... let me think I'm sure I have something laying around about events I'd like that was more tailored to civ2 but might have a good bearing in Ctp2.
DarthVeda is offline  
Old November 21, 2000, 03:09   #7
lev
Warlord
 
lev's Avatar
 
Local Time: 09:41
Local Date: October 31, 2010
Join Date: May 1999
Location: Beaverton, OR, USA
Posts: 102
So, how about a spy sabotaging a military unit?

Actually, you could do that as a "bombard", I suppose, and give it a chance of making the spy veteran. It should be fairly weak, so as to damage and not destroy.

Another good spy slic - is there any way a spy could examine an army in the field and report what units are in the stack, and/or their health? That would be very useful!
lev is offline  
Old November 21, 2000, 10:09   #8
TheLimey
Prince
 
Local Time: 09:41
Local Date: October 31, 2010
Join Date: May 2000
Posts: 384
MrOgre> Would it really be such a big deal to include something in the patch so this stuff isn't so kludgy?

I know that there is other stuff to do, but this does seem such a small thing.

BTW... if you do a kill unit command, please make sure it doesn't affect your score.
TheLimey is offline  
Old November 22, 2000, 09:47   #9
Locutus
Apolytoners Hall of FameCiv4 SP Democracy GameCiv4 InterSite DG: Apolyton TeamBtS Tri-LeagueC4BtSDG TemplarsC4WDG Team ApolytonCivilization IV CreatorsCTP2 Source Code ProjectPolyCast Team
Deity
 
Locutus's Avatar
 
Local Time: 11:41
Local Date: October 31, 2010
Join Date: Nov 1999
Location: De Hel van Enschede
Posts: 11,702
Mr Ogre,
How about the BuildingRemoved(City, Int) and WonderRemoved(City, Int) events? Can those only be listened to or can they also be called? If the latter is the case, that might work.

And as far as telling what building to destroy I see a few options (though not very pretty). Most feasible are buttons and messageboxes. How many buttons can be put in a messagebox/alertbox? IIRC this was only three or so in CtPI, has this increased in CtPII? Does the length of the text on the buttons have anything to do with this? If the number is something like 5 or more (the more the better of course), the right improvement could easily be selected by combining a few messageboxes/alertboxes in a clever way (FE select type of building first - happiness, science, production - and the specific building after that in a second messagebox/alterbox).

Another option would be ldl files. Any chance a modmaker could cook something of a selecting menu of some sort up with these?
Locutus is offline  
Old September 30, 2002, 17:50   #10
SMIFFGIG
Call to Power II Democracy GameCall to Power II MultiplayerCTP2 Source Code Project
Prince
 
SMIFFGIG's Avatar
 
Local Time: 10:41
Local Date: October 31, 2010
Join Date: Jul 2002
Location: Great Britain
Posts: 684
Sabatage, Precision bombing and Bribing
Along with bribing, this would be a great idea to add to the spy, i would love it. Especially if the AI used it agianst you too.

The thing about being able to use precision bombing would be amazing too. These would be cool for your HotW mod Locutus.
I thought of that idea myself but didnt mention it as i thought it was already in ctp2. But i think im getting mixed up with civ3 (which doesnt implement it as good as being able to pick specifics) I THINK

Anyway 2 very good ideas. Could they not now (2yrs later) be implemented with SLIC ?
__________________
Oxygen should be considered a drug
Tiberian Sun Retro
My Mod for Tiberian Sun Webmaster of
http://www.tiberiumsun.com

Last edited by SMIFFGIG; September 30, 2002 at 18:36.
SMIFFGIG is offline  
Old September 30, 2002, 18:26   #11
SMIFFGIG
Call to Power II Democracy GameCall to Power II MultiplayerCTP2 Source Code Project
Prince
 
SMIFFGIG's Avatar
 
Local Time: 10:41
Local Date: October 31, 2010
Join Date: Jul 2002
Location: Great Britain
Posts: 684
Steal map as spy ability
Another cool spy option would be "STEAL MAP" it would be very low chance of getting it with it increasing with the newer units eg cyberninja etc. Or even steal partial map either as the initial task or as a lesser outcome for when trying to steal whole map.
Im pretty sure this can be done cause in the const.txt it has the following:

Quote:
GOSSIP_MAP_RADIUS 10 # When a map is revealed through gossip, a circle of # this radius appears
A leftover from gossip (which by the way can it be added back into the game??).
Could something like this be used to make the steal partial map work?
__________________
Oxygen should be considered a drug
Tiberian Sun Retro
My Mod for Tiberian Sun Webmaster of
http://www.tiberiumsun.com

Last edited by SMIFFGIG; September 30, 2002 at 18:32.
SMIFFGIG is offline  
Old September 30, 2002, 20:09   #12
Pedrunn
Call to Power II Democracy Game
King
 
Pedrunn's Avatar
 
Local Time: 06:41
Local Date: October 31, 2010
Join Date: Jul 2001
Location: of Natal, Brazil
Posts: 2,555
A steal map order? Really easy to do. I may consider this to my mod

And I alreay have a totally functional and tested bribery code order for my mod.
__________________
"Kill a man and you are a murder.
Kill thousands and you are a conquer.
Kill all and you are a God!"
-Jean Rostand
Pedrunn is offline  
Old September 30, 2002, 20:11   #13
SMIFFGIG
Call to Power II Democracy GameCall to Power II MultiplayerCTP2 Source Code Project
Prince
 
SMIFFGIG's Avatar
 
Local Time: 10:41
Local Date: October 31, 2010
Join Date: Jul 2002
Location: Great Britain
Posts: 684
cool!

what about Sabatage and Precision bombing these are very good ideas too (IMO)
__________________
Oxygen should be considered a drug
Tiberian Sun Retro
My Mod for Tiberian Sun Webmaster of
http://www.tiberiumsun.com
SMIFFGIG is offline  
Old September 30, 2002, 20:27   #14
Pedrunn
Call to Power II Democracy Game
King
 
Pedrunn's Avatar
 
Local Time: 06:41
Local Date: October 31, 2010
Join Date: Jul 2001
Location: of Natal, Brazil
Posts: 2,555
I think so
We coud use CityHasBuilding(city, building), DestroyBuilding(city, building) and my messagebox spinner idea from the PBEM fix attempt.
But i dont think i will have time for it (It isnt as easy as the steal map order )
__________________
"Kill a man and you are a murder.
Kill thousands and you are a conquer.
Kill all and you are a God!"
-Jean Rostand
Pedrunn is offline  
Old October 3, 2002, 16:51   #15
SMIFFGIG
Call to Power II Democracy GameCall to Power II MultiplayerCTP2 Source Code Project
Prince
 
SMIFFGIG's Avatar
 
Local Time: 10:41
Local Date: October 31, 2010
Join Date: Jul 2002
Location: Great Britain
Posts: 684
DAMN IT happened again lost post (lucky I copied my post )

Looks like FIRAXIS nicked my steal map idea

Another thing they have is (Sabatage Production) now here are some ideas (which you dont have time to do i know but maybe could be done for HotW)

1) Steal map option
15% Chance you steal whole map
35% Chance you get a percentage of there map but not whole map
25% Chance you get nothing
25% Chance you get nothing and spy unit gets killed

2) Sabatage option
20% Chance you get to destroy a building of your choice presented in a list
30% Chance you get to destroy a building but its random
25% Chance you destroy nothing
25% Chance you destroy nothing and get captured and killed

And precision bombing


Look here

http://apolyton.net/dir/index.php?id...s=3759&cat=187

IMO what a crap way to implement it??? Oh well dont bother me
__________________
Oxygen should be considered a drug
Tiberian Sun Retro
My Mod for Tiberian Sun Webmaster of
http://www.tiberiumsun.com
SMIFFGIG is offline  
Old October 3, 2002, 17:25   #16
Pedrunn
Call to Power II Democracy Game
King
 
Pedrunn's Avatar
 
Local Time: 06:41
Local Date: October 31, 2010
Join Date: Jul 2001
Location: of Natal, Brazil
Posts: 2,555
Quote:
35% Chance you get a percentage of there map but not whole map
From all the stuff you mentioned this is the only one impossible for CTP2

Note: The big Mc used to use you new avatar. Every time i see it i think i am talking to him
__________________
"Kill a man and you are a murder.
Kill thousands and you are a conquer.
Kill all and you are a God!"
-Jean Rostand
Pedrunn is offline  
Old October 7, 2002, 09:12   #17
The Big Mc
CTP2 Source Code Project
King
 
The Big Mc's Avatar
 
Local Time: 09:41
Local Date: October 31, 2010
Join Date: Oct 2001
Location: Of the universe / England
Posts: 2,061
Me to I look at that avatar and think there my posts.

but I am working on a new avatar for myself.
__________________
"Every time I learn something new it pushes some old stuff out of my brain" Homer Jay Simpson
The BIG MC making ctp2 a much unsafer place.
Visit the big mc’s website
The Big Mc is offline  
Old October 29, 2002, 23:31   #18
Pedrunn
Call to Power II Democracy Game
King
 
Pedrunn's Avatar
 
Local Time: 06:41
Local Date: October 31, 2010
Join Date: Jul 2001
Location: of Natal, Brazil
Posts: 2,555
Since my mod is taking longer than i expected.

Here is the bribe code if anyone wants it:

Code:
// Bribe Order
//////////////////////////

int_t BribedType[];
unit_t BribedUnit[];
location_t BribeLocation;
int_t BribeCount;
int_t BRIBE_COST;

HandleEvent(AirliftOrder) 'BribeOrderByPedrunn' pre {
int_t num;
int_t i;
int_t j;
int_t tmpPlayer;
unit_t tmpUnit;
location_t tmpLoc;
location_t tmpLoc2;
city_t tmpCity;
	tmpPlayer = g.player;
	BRIBE_COST = 0;
	BribeCount = 0;
	tmpLoc = location[0];
	num = GetUnitsAtLocation(tmpLoc);
	GetCityByLocation(tmpLoc, tmpCity);
	if(!CityIsValid(tmpCity)
	&& num > 0) {
		for(i = 0; i < num; i = i + 1){
			GetUnitFromCell(tmpLoc, i, tmpUnit);
			BribedUnit[BribeCount] = tmpUnit;
			BribedType[BribeCount] = tmpUnit.type;
			BribeCount = BribeCount + 1;
			BRIBE_COST = BRIBE_COST + (Random(200) 
//						+ (30*IsFlankingUnit(tmpUnit)) 
//						+ (100*IsEliteUnit(tmpUnit)) 
//						+ (40*IsNonGroupLandUnit(tmpUnit)) 
//						+ (20*SeaTransporterCapacity(tmpUnit)) 
//						+ (40*IsAirUnit(tmpUnit)) 
//						+ (100*IsLeviathonUnit(tmpUnit)) 
//						+ (50*(1 + AS_GetAge(tmpUnit)))
						);
			if(tmpUnit.owner == 0) {
				BRIBE_COST = BRIBE_COST/2;
			}
		}
		if(BribeCount > 0) {
			if(PlayerGold(tmpPlayer) > BRIBE_COST) {
				if(IsHumanPlayer(tmpPlayer)) {
					BribeLocation = BribedUnit[0].location;
					message(tmpPlayer, 'DoYouWantToBribe');
				}
				else{
					for(i = 0; i < BribeCount; i = i + 1) {
						Event: DisbandUnit(BribedUnit[i]);
					}
					for(j = 0; j < BribeCount; j = j + 1) {
						CreateUnit(tmpPlayer, BribedType[j], BribeLocation, 0);
					}
					AddEffect(location[0], "SPECEFFECT_REVOLUTION", "SOUND_ID_REVOLUTION");
					AddGold(tmpPlayer, BRIBE_COST);
				}
			}
			else{
				if(IsHumanPlayer(tmpPlayer)) {
					message(tmpPlayer, 'NotEnoughMoneyForBribe');
				}
			}
		}
	}
	else{
//		AddEffect(BribeLocation, "SPECEFFECT_NONE", "SOUND_ID_NONE"); // Dont exist
	}
	return STOP;
}

alertbox 'DoYouWantToBribe' {
int_t i;
int_t j;
int_t tmpPlayer;
	tmpPlayer = g.player;
	show();
	text(ID_DO_YOU_WANT_TO_BRIBE);
	Button(ID_YES) {
		if(Random(4) == 0) {
			for(i = 0; i < BribeCount; i = i + 1) {
				Event: DisbandUnit(BribedUnit[i]);
			}
			for(j = 0; j < BribeCount; j = j + 1) {
				CreateUnit(tmpPlayer, BribedType[j], BribeLocation, 0);
			}
			AddEffect(location[0], "SPECEFFECT_REVOLUTION", "SOUND_ID_REVOLUTION");
			AddGold(tmpPlayer, BRIBE_COST);
		}
		else{
			message(tmpPlayer, 'TheyAreGoodSoldiers');	
		}
		Kill();  
	}
	Button(ID_NO) {			// if the player does accept	
		Kill();
	}

}

alertbox 'NotEnoughMoneyForBribe' {
	show();
	text(ID_BRIBE_COST_TOO_HIGH);
	Button(ID_OK) {	
		Kill();  
	}
}

alertbox 'TheyAreGoodSoldiers' {
	show();
	text(ID_BRIBE_REFUSED);
	Button(ID_OK) {	
		Kill();  
	}
}
and this should go to the orders.txt (note: all units that can sue will have the brice ability.
Code:
ORDER_BRIBE {
  Gold 0
  Move 100
  EventName "AirliftOrder"

  LocalizedName str_ldl_order_airlift
  StatusText str_ldl_order_airlift

  TargetPretest:EnemySpecialUnit
  UnitPretest_CanSue
  
  Range 1

  CPIcon "upsi21.tga"
  ButtonLocation 10
  DefaultIcon ICON_ORDER_INCITE_REVOLUTION
  Cursor 40
  InvalidCursor 41
}
And this should go in the info_str.txt

Code:
DO_YOU_WANT_TO_BRIBE	"Great Leader, we could surely use this army for our needs but they we calculate an overall cost of {BRIBE_COST} gold from our treasury. Are you Do you want to send them the offer?"
BRIBE_COST_TOO_HIGH	"Unfortunetly, Our treasury cannot afford the {BRIBE_COST} gold expense for bribing these units. "

BRIBE_REFUSED		"The men you tried to bribe are too patriotic soldiers so they did not accept the offer."
and finally this is to go in the scen_str.txt.

Code:
ORDER_BRIBE			"Bribe"
str_ldl_order_airlift		"Bribe"
OK		"Ok"
Sorry for messing up the thread lenght
__________________
"Kill a man and you are a murder.
Kill thousands and you are a conquer.
Kill all and you are a God!"
-Jean Rostand

Last edited by Pedrunn; October 30, 2002 at 18:47.
Pedrunn is offline  
 

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

Forum Jump


All times are GMT -4. The time now is 05:41.


Design by Vjacheslav Trushkin, color scheme by ColorizeIt!.
Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Apolyton Civilization Site | Copyright © The Apolyton Team