Tropico 2: Pirate Cove

Tropico 2: Pirate Cove

Gamerwolfsix Jun 15, 2020 @ 10:19am
Skill Cheats?
Are there any skill cheats to improve pirate stats?
< >
Showing 1-7 of 7 comments
knight905416 Apr 19, 2021 @ 3:06am 
I have the same question. Looking through DOCUMENTATION.TXT, looks like there is
change_pirate_trait_modifier
change_skill_modifier
Anyone have any sample code to get these to work correctly? Would like to see this: donating money to a pirate, also increases their skill by 1, or sends them to a school. And no, we don't want to manually send them to school, we want to automate the most terrible part of the game.
These commands are global functions, each pirate or prisoner is affected by this change.

For example, this code increases the seamanship by three points for every pirates:
action change_skill_modifier{skill: "seam"; amount: 3;}
Gamerwolfsix May 8, 2021 @ 6:58am 
Originally posted by Hurricane Andy392:
These commands are global functions, each pirate or prisoner is affected by this change.

For example, this code increases the seamanship by three points for every pirates:
action change_skill_modifier{skill: "seam"; amount: 3;}
How do you do that?
knight905416 May 14, 2021 @ 4:54am 
What I eventually figured out was the commands to change skill and add workers and add a monthly event to add a optioned worker or workers. This was my added script:
rule pick_random_event
{
frequency month;

conditions
{
always_true;
}

actions
{
action create_message_dialog
{
title: "A Random Event has Occured.";

body: "Pick a random event to occur:";
pictureID: OVERLAY_PIC_LITERATE;

option1_label: "Shipwreak of Prisoners";
option1_detail: "Add 2-10 prisoners.";
option1_rule: "AddPrisoners";

option2_label: "Shipwreak of Pirates";
option2_detail: "Add 2-10 pirates.";
option2_rule: "AddPirates";

option3_label: "Add a Skilled Farmer";
option3_detail: "Add a skilled farmer.";
option3_rule: "AddFarmer";

option4_label: "Add a Skilled Wench";
option4_detail: "Add a skilled wench.";
option4_rule: "AddWench";

option5_label: "More...";
option5_detail: "More...";
option5_rule: "pick_random_event_page_2";

option6_label: "None.";
option6_detail: "None, thank you.";
}
}
}


rule pick_random_event_page_2
{
frequency invokation;

conditions
{
always_true;
}

actions
{
action create_message_dialog
{
title: "A Random Event has Occured.";

body: "Pick a random event to occur:";
pictureID: OVERLAY_PIC_LITERATE;

option1_label: "Add a Skilled Miner";
option1_detail: "Add a skilled miner.";
option1_rule: "AddMiner";

option2_label: "Add a Skilled Server";
option2_detail: "Add a skilled server.";
option2_rule: "AddServer";

option3_label: "Add a Skilled Lumberjack";
option3_detail: "Add a skilled lumberjack.";
option3_rule: "AddLumberjack";

option4_label: "Add a Skilled Blacksmith";
option4_detail: "Add a skilled blacksmith.";
option4_rule: "AddBlacksmith";

option5_label: "More...";
option5_detail: "More...";
option5_rule: "pick_random_event_page_3";

option6_label: "None.";
option6_detail: "None, thank you.";
}
}
}


rule pick_random_event_page_3
{
frequency invokation;

conditions
{
always_true;
}

actions
{
action create_message_dialog
{
title: "A Random Event has Occured.";

body: "Pick a random event to occur:";
pictureID: OVERLAY_PIC_LITERATE;

option1_label: "Add a Skilled distiller";
option1_detail: "Add a skilled distiller.";
option1_rule: "AddDistiller";

option2_label: "Add a Skilled tobacconist";
option2_detail: "Add a skilled tobacconist.";
option2_rule: "AddTobacconist";

option3_label: "Add a Skilled engineer";
option3_detail: "Add a skilled engineer.";
option3_rule: "AddEngineer";

option4_label: "Add a Skilled gunsmith";
option4_detail: "Add a skilled gunsmith.";
option4_rule: "AddGunsmith";

option5_label: "Add a Skilled Priest";
option5_detail: "Add a skilled priest.";
option5_rule: "AddPriest";

option6_label: "None.";
option6_detail: "None, thank you.";
}
}
}


rule AddDistiller
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 2); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "sdis"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}


rule AddTobacconist
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 2); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "stob"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}


rule AddGunsmith
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 2); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "sgun"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}

rule AddEngineer
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 2); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "seng"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}


rule AddPriest
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 2); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "spri"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}


rule AddBlacksmith
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 2); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "ssmi"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}



rule AddServer
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 2); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "sser"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}

rule AddLumberjack
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 2); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "slum"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}





rule AddPrisoners
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(2, 10); }
action assert_string { name: "nation_name"; value: random_nationality; }

action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_unskilled { amount: num_prisoners; species: "ugen"; nationality: nation_name; }

action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }

}

}

rule AddPirates
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_pirates"; value: random_number(2, 10); }
action assert_string { name: "nation_name"; value: random_nationality; }

action add_pirates { amount: num_pirates; species: "crew"; nationality: nation_name; }

action retract { name: "num_pirates"; }
action retract { name: "nation_name"; }
}
}


rule AddFarmer
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 3); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "sfar"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}


rule AddWench
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 3); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "spro"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}

rule AddMiner
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action assert_int { name: "num_prisoners"; value: random_number(1, 3); }
action assert_string { name: "nation_name"; value: random_nationality; }
action create_message_dialog
{
title: "/text/dial/scen/pris/titl";
body: pattern_string("/text/dial/scen/pris/mess", nation_name, num_prisoners);
artType: "illu";
pictureID: "pris";
}

action add_skilled { amount: num_prisoners; species: "smin"; nationality: nation_name; }
action retract { name: "num_prisoners"; }
action retract { name: "nation_name"; }
}
}





rule pick_pirate_skill_to_increase
{
frequency month;
//inactive;

conditions
{
always_true;
}

actions
{
action create_message_dialog
{
title: "Pick A Skill to Increase";

body: "Choose a skill to increase:";
pictureID: OVERLAY_PIC_LITERATE;

option1_label: "Swordsmanship";
option1_detail: "Increases swordmanship for each pirate.";
option1_rule: "change_skill_modifier_swordsmanship";

option2_label: "Marksmanship";
option2_detail: "Increases Marksmanship for each pirate.";
option2_rule: "change_skill_modifier_marksmanship";

option3_label: "Gunnery";
option3_detail: "Increases gunnery for each pirate.";
option3_rule: "change_skill_modifier_gunnery";

option4_label: "Navigation";
option4_detail: "Increases Navigation for each pirate.";
option4_rule: "change_skill_modifier_navigation";

option5_label: "Seamanship";
option5_detail: "Increases Seamanship, courage and leadership for each pirate.";
//, notoriety and loyality
option5_rule: "change_skill_modifier_seamanship";

option6_label: "None.";
option6_detail: "None, thank you.";
}
}
}

rule change_skill_modifier_seamanship
{ frequency invokation;

conditions
{
always_true;
}
actions
{
action change_pirate_trait_modifier { trait: TRAIT_COURAGE; amount: 1; }
action change_pirate_trait_modifier { trait: TRAIT_LEADERSHIP; amount: 1; }
//action change_pirate_trait_modifier { trait: TRAIT_NOTORIETY; amount: 1; }
//action change_pirate_trait_modifier { trait: TRAIT_LOYALTY; amount: 1; }

action change_skill_modifier { skill: SKILL_SEAMANSHIP; amount: 1; }
}
}

rule change_skill_modifier_gunnery
{ frequency invokation;
conditions
{
always_true;
}
actions
{

action change_skill_modifier { skill: SKILL_GUNNERY; amount: 1; }
//action change_pirate_trait_modifier { trait: SKILL_MARKSMANSHIP; amount: 1; }
//action change_pirate_trait_modifier { trait: SKILL_GUNNERY; amount: 1; }
}

}

rule change_skill_modifier_marksmanship
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action change_skill_modifier { skill: SKILL_MARKSMANSHIP; amount: 1; }
//action change_pirate_trait_modifier { trait: SKILL_MARKSMANSHIP; amount: 1; }
//action change_pirate_trait_modifier { trait: SKILL_MARKSMANSHIP; amount: 1; }
}
}

rule change_skill_modifier_swordsmanship
{ frequency invokation;
conditions
{
always_true;
}
actions
{
action change_skill_modifier { skill: SKILL_SWORDSMANSHIP; amount: 1; }
//action change_pirate_trait_modifier { trait: SKILL_MARKSMANSHIP; amount: 1; }
//action change_pirate_trait_modifier { trait: SKILL_SWORDSMANSHIP; amount: 1; }
}
}

rule change_skill_modifier_navigation
{ frequency invokation;
conditions
{
always_true;
}
actions
{
//action change_pirate_trait_modifier { trait: SKILL_MARKSMANSHIP; amount: 1; }
//action change_pirate_trait_modifier { trait: SKILL_NAVIGATION; amount: 1; }
action change_skill_modifier { skill: SKILL_NAVIGATION; amount: 1; }
}
}
Hurricane Andy392 May 18, 2021 @ 10:46am 
Good work knight905416. I suggest to reduce the frequency to every year (frequency year).

Originally posted by knight905416:
action assert_string { name: "nation_name"; value: random_nationality; }

action add_skilled { amount: num_prisoners; species: "sdis"; nationality: nation_name; }
You can add random_nationality directly on nationality parameter without asserting a variable.
knight905416 May 19, 2021 @ 5:21pm 
I agree. And also a money charge. Can I ask who you are and if you had any influence in the development?

Hurricane Andy392 May 21, 2021 @ 10:16am 
I am a simple gamer. I bought the original Tropico 2 CD in 2003 and have been using scenario scripts for years.
< >
Showing 1-7 of 7 comments
Per page: 1530 50