November 20, 2000, 16:51
|
#1
|
Prince
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.
|
|
|
|
November 20, 2000, 17:43
|
#2
|
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.
|
|
|
|
November 20, 2000, 22:00
|
#3
|
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.
|
|
|
|
November 20, 2000, 23:30
|
#4
|
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.
|
|
|
|
November 21, 2000, 00:11
|
#5
|
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).]
|
|
|
|
November 21, 2000, 00:13
|
#6
|
Emperor
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.
|
|
|
|
November 21, 2000, 03:09
|
#7
|
Warlord
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!
|
|
|
|
November 21, 2000, 10:09
|
#8
|
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.
|
|
|
|
November 22, 2000, 09:47
|
#9
|
Deity
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?
|
|
|
|
September 30, 2002, 17:50
|
#10
|
Prince
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.
|
|
|
|
September 30, 2002, 18:26
|
#11
|
Prince
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.
|
|
|
|
September 30, 2002, 20:09
|
#12
|
King
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
|
|
|
|
September 30, 2002, 20:11
|
#13
|
Prince
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
|
|
|
|
September 30, 2002, 20:27
|
#14
|
King
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
|
|
|
|
October 3, 2002, 16:51
|
#15
|
Prince
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
|
|
|
|
October 3, 2002, 17:25
|
#16
|
King
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
|
|
|
|
October 7, 2002, 09:12
|
#17
|
King
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
|
|
|
|
October 29, 2002, 23:31
|
#18
|
King
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.
|
|
|
|
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 05:41.
|
|